# Nomes globais de Total.js 5

> Funções globais e objetos de Total.js 5, com seu propósito e uso receitas.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: pt
Content-SHA256: 0e27e9693b5e5434b31fc4c8bc00bd1b36a931933a5fbe118e0b923060db6de5
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Total.js 5 expõe funções e objetos globais para roteamento, ações, armazenamento, mensagens e utilidades de aplicação.

| Nome | Tipo | O que faz | Receita |
|---|---|---|---|
| `ON` | function | Regista um ouvinte para um evento da aplicação. | [events](/en/total5/events/) |
| `ONCE` | function | Como `ON`, mas o ouvinte só corre para o primeiro evento. | [events](/en/total5/events/) |
| `OFF` | function | Remove um ouvinte registado com `ON`. | [events](/en/total5/events/) |
| `EMIT` | function | Emite um evento com até sete argumentos. | [events](/en/total5/events/) |
| `LOAD` | function | Carrega os ficheiros do projeto (controladores, definições...); o framework chama-o por si no arranque. | [load-and-npminstall](/en/total5/load-and-npminstall/) |
| `LOADCONFIG` | function | Analisa um texto no formato de `config` e aplica-o a `CONF`. | [configuration-file](/en/total5/configuration-file/) |
| `LOADRESOURCE` | function | Carrega um recurso (um ficheiro de tradução) a partir de um texto ou de um URL. | [localization](/en/total5/localization/) |
| `PAUSESERVER` | function | Pausa ou retoma o servidor por nome: enquanto está em pausa, os pedidos recebem uma página 503. | [pause-server](/en/total5/pause-server/) |
| `DEBUG` | boolean | `true` no modo debug, `false` no modo release. | [release-mode-and-debugging](/en/total5/release-mode-and-debugging/) |
| `CONF` | object | A configuração da aplicação (o ficheiro `config` e os seus valores predefinidos). | [configuration-file](/en/total5/configuration-file/) |
| `DEF` | object | Manipuladores e definições predefinidos do framework (`DEF.onMail`, `DEF.helpers`, `DEF.onCSRFcheck`...). | [view-helpers-and-config](/en/total5/view-helpers-and-config/) |
| `F` | object | O objeto do framework. `Total` é o mesmo objeto. | [utility-globals](/en/total5/utility-globals/) |
| `Total` | object | O objeto do framework (igual a `F`). `Total.run()` inicia a aplicação. | [release-mode-and-debugging](/en/total5/release-mode-and-debugging/) |
| `MAIN` | object | Um objeto vazio que o framework cria para os dados da sua aplicação. | [utility-globals](/en/total5/utility-globals/) |
| `REPO` | object | Um objeto vazio que o framework cria para os seus próprios dados. | [utility-globals](/en/total5/utility-globals/) |
| `FUNC` | object | Um objeto vazio que o framework cria para as suas próprias funções. | [utility-globals](/en/total5/utility-globals/) |
| `TEMP` | object | Um objeto para dados temporários; o framework substitui-o por um novo objeto vazio de vez em quando. | [utility-globals](/en/total5/utility-globals/) |
| `NOW` | object | A data atual, atualizada pelo framework uma vez por minuto e por algumas chamadas como `CACHE`. | [utility-globals](/en/total5/utility-globals/) |
| `EMPTYARRAY` | object | Um array vazio congelado, para evitar criar novos. | [utility-globals](/en/total5/utility-globals/) |
| `EMPTYOBJECT` | object | Um objeto vazio congelado, para evitar criar novos. | [utility-globals](/en/total5/utility-globals/) |
| `MODS` | object | Os módulos carregados da pasta `modules/`, por id. | [utility-globals](/en/total5/utility-globals/) |
| `PLUGINS` | object | Os plugins carregados da pasta `plugins/`, por id. | [utility-globals](/en/total5/utility-globals/) |
| `NOOP` | function | Uma função que não faz nada. | [utility-globals](/en/total5/utility-globals/) |
| `print` | function | O mesmo que `console.log`. | [utility-globals](/en/total5/utility-globals/) |
| `REQUIRE` | function | Como `require`, mas procura também na pasta `node_modules` da aplicação e aceita nomes `node:`. | [utility-globals](/en/total5/utility-globals/) |

## Rotas, ações e middleware

| Nome | Tipo | O que faz | Receita |
|---|---|---|---|
| `ROUTE` | function | Declara uma rota (HTTP, `SOCKET`, `FILE`, `API` ou um fallback como `#404`). | [http-methods](/en/total5/http-methods/) |
| `NEWACTION` | function | Declara uma ação com a sua entrada, params, query, saída e permissões. | [actions-crud](/en/total5/actions-crud/) |
| `NEWSCHEMA` | function | Agrupa as ações de uma entidade sob um nome. | [schemas](/en/total5/schemas/) |
| `ACTION` | function | Executa uma ação a partir do seu próprio código. | [calling-actions-from-code](/en/total5/calling-actions-from-code/) |
| `EXEC` | function | A mesma função que `ACTION`. | [calling-actions-from-code](/en/total5/calling-actions-from-code/) |
| `NEWTRANSFORM` | function | Acrescenta um passo a uma cadeia de transformações com nome. | [transforms](/en/total5/transforms/) |
| `TRANSFORM` | function | Faz passar um valor por uma cadeia de transformações. | [transforms](/en/total5/transforms/) |
| `MIDDLEWARE` | function | Regista um middleware para usar nas rotas com `#name`. | [middleware](/en/total5/middleware/) |
| `NEWMIDDLEWARE` | function | A mesma função que `MIDDLEWARE`. | [middleware](/en/total5/middleware/) |
| `PROXY` | function | Reencaminha os pedidos sob um prefixo de URL para outro servidor. | [proxy](/en/total5/proxy/) |
| `CORS` | function | Define as origens que podem chamar a aplicação a partir de um navegador. | [cors](/en/total5/cors/) |
| `ErrorBuilder` | function | A classe que recolhe os erros de validação. | [errors-and-audit](/en/total5/errors-and-audit/) |
| `SUCCESS` | function | Devolve o objeto que o framework envia numa operação bem-sucedida (`{ success: true, value: value }`). | [errors-and-audit](/en/total5/errors-and-audit/) |
| `ERROR` | function | `ERROR(name)` devolve um callback que regista o erro que recebe com esse nome; `ERROR()` devolve o callback de erro predefinido. | [errors-and-audit](/en/total5/errors-and-audit/) |
| `UNAUTHORIZED` | function | `UNAUTHORIZED($, ...permissions)` responde 401 e devolve `true` quando o utilizador não tem nenhuma das permissões; devolve `false` quando tem uma delas ou é super administrador. | [action-user-and-permissions](/en/total5/action-user-and-permissions/) |
| `AUTH` | function | Autentica cada pedido: uma função, ou as opções das sessões integradas. | [sessions-with-built-in-auth](/en/total5/sessions-with-built-in-auth/) |
| `BLOCKED` | function | Conta as chamadas de um endereço IP e indica quando atingiu o limite. | [rate-limiting](/en/total5/rate-limiting/) |
| `AUDIT` | function | Acrescenta uma entrada de auditoria (utilizador, mensagem e tipo) a um ficheiro de registo em `logs/`. | [errors-and-audit](/en/total5/errors-and-audit/) |

## Dados e cache

| Nome | Tipo | O que faz | Receita |
|---|---|---|---|
| `NOSQL` | function | Abre uma tabela da base de dados NoSQL integrada. | [nosql-crud](/en/total5/nosql-crud/) |
| `DATA` | object | Entrada independente da base de dados para o query builder. | [data-api](/en/total5/data-api/) |
| `DB` | function | Inicia uma consulta com o query builder (`DB().find('table').where(...).callback($)`); a consulta é executada pelo driver registado com `NEWDB`. | [query-builder-db](/en/total5/query-builder-db/) |
| `NEWDB` | function | Regista um driver de base de dados `function(options, callback)` para o query builder: o predefinido, ou um com nome com `NEWDB('name', fn)`. | [query-builder-db](/en/total5/query-builder-db/) |
| `CACHE` | object | Um armazenamento em memória com expiração. | [cache](/en/total5/cache/) |
| `FILECACHE` | function | Calcula um resultado uma vez e guarda-o num ficheiro durante algum tempo. | [filecache](/en/total5/filecache/) |
| `MEMORIZE` | function | Um objeto JSON guardado em disco. | [memorize](/en/total5/memorize/) |
| `FILESTORAGE` | function | Um armazenamento para ficheiros carregados. | [filestorage](/en/total5/filestorage/) |

## Clientes HTTP, WebSocket e de mensagens

| Nome | Tipo | O que faz | Receita |
|---|---|---|---|
| `REQUEST` | function | Cliente HTTP de baixo nível. | [request-and-download](/en/total5/request-and-download/) |
| `DOWNLOAD` | function | Guarda a resposta de um URL num ficheiro. | [request-and-download](/en/total5/request-and-download/) |
| `RESTBuilder` | function | Construtor de chamadas a outras APIs HTTP. | [restbuilder](/en/total5/restbuilder/) |
| `AJAX` | function | `AJAX('METHOD /url/', data, callback)` faz um pedido com o cabeçalho `x-requested-with` e devolve o corpo analisado; devolve uma promessa quando não há callback. | [ajax-requests](/en/total5/ajax-requests/) |
| `API` | function | Chama uma operação de um serviço externo através do seu driver: `API('service', 'operation', data).callback($)`. | [api-drivers](/en/total5/api-drivers/) |
| `NEWAPI` | function | Regista o driver `function(options, next)` de um serviço para `API`, com uma configuração opcional. | [api-drivers](/en/total5/api-drivers/) |
| `TotalAPI` | function | Chama um serviço da plataforma Total.js através de `API('TAPI', name, model)`. | [remote-service-boundaries](/en/total5/remote-service-boundaries/) |
| `WEBSOCKETCLIENT` | function | Um cliente WebSocket para a sua aplicação. | [websocket-client](/en/total5/websocket-client/) |
| `TMSCLIENT` | function | Um cliente do Total Messaging Service. | [tms](/en/total5/tms/) |
| `PUBLISH` | function | Envia uma mensagem aos clientes TMS que a subscreveram. | [tms](/en/total5/tms/) |
| `NEWPUBLISH` | function | Declara uma mensagem que a aplicação publica. | [tms](/en/total5/tms/) |
| `SUBSCRIBE` | function | Acrescenta um ouvinte para uma mensagem que os clientes enviam à aplicação. | [tms](/en/total5/tms/) |
| `UNSUBSCRIBE` | function | Remove os ouvintes de uma mensagem TMS. | [tms](/en/total5/tms/) |
| `NEWSUBSCRIBE` | function | Declara uma mensagem que a aplicação recebe. | [tms](/en/total5/tms/) |
| `NEWCALL` | function | Declara uma função que os clientes TMS podem chamar. | [tms](/en/total5/tms/) |
| `OPENCLIENT` | function | Liga-se ao OpenPlatform por WebSocket para chamadas remotas, eventos e ligações partilhadas. | [openclient-protocol](/en/total5/openclient-protocol/) |
| `PROXYCLIENT` | function | Liga-se a um `PROXYSERVER` por WebSocket e responde aos seus pedidos com um servidor local (uma porta ou `ip:port`). | [proxy-tunnel](/en/total5/proxy-tunnel/) |
| `PROXYSERVER` | function | Transforma a aplicação num servidor de túnel: os pedidos HTTP de um endpoint são enviados por uma rota WebSocket para um `PROXYCLIENT`. | [proxy-tunnel](/en/total5/proxy-tunnel/) |
| `LDAP` | function | Liga-se a um servidor LDAP (porta 389, a menos que `ldap.port` diga outra coisa) e devolve o resultado no callback. | [ldap-openldap](/en/total5/ldap-openldap/) |
| `MAIL` | function | Envia um email cujo corpo é uma vista. | [send-email](/en/total5/send-email/) |
| `HTMLMAIL` | function | Envia um email cujo corpo é uma string de HTML. | [send-email](/en/total5/send-email/) |
| `LOGMAIL` | function | Envia um e-mail cujo corpo é um texto impresso num bloco `<pre>` (passe o corpo como texto). | [logmail](/en/total5/logmail/) |
| `Mail` | object | A classe por trás do envio de email (SMTP). | [send-email](/en/total5/send-email/) |
| `AIMODEL` | function | Inicia um pedido a um modelo de linguagem registado com `NEWAIMODEL`: `AIMODEL('name').user('text').callback($.callback())`. | [ai-models](/en/total5/ai-models/) |
| `AIPARSER` | function | Cria um analisador para a resposta em streaming de um fornecedor de IA (`openai`, `claude`...): `write()` recebe pedaços e `end()` devolve o conteúdo, o raciocínio e as chamadas a ferramentas. | [ai-models](/en/total5/ai-models/) |
| `NEWAIMODEL` | function | Regista o driver `function(ai, done)` de um ou mais modelos de IA para `AIMODEL`, com uma configuração opcional. | [ai-models](/en/total5/ai-models/) |
| `PYPELINE` | function | Executa a partir da aplicação um ficheiro Python da pasta `pypelines/` (ou código Python em linha) e comunica com ele através de tramas JSON num socket. | [pypeline](/en/total5/pypeline/) |

## Ficheiros, sistema e workers

| Nome | Tipo | O que faz | Receita |
|---|---|---|---|
| `PATH` | object | Helpers que constroem caminhos nas pastas do projeto (`PATH.root()`, `PATH.public()`, `PATH.tmp()`...). | [file-download](/en/total5/file-download/) |
| `MERGE` | function | Regista um ficheiro virtual feito de vários ficheiros, minificado. | [minification](/en/total5/minification/) |
| `TOUCH` | function | Limpa as entradas em cache minificadas, temporárias e de não encontrado de um URL, ou de todos. | [touch-static-cache](/en/total5/touch-static-cache/) |
| `CLEANUP` | function | Destrói um stream quando terminou. | [cleanup-streams](/en/total5/cleanup-streams/) |
| `BACKUP` | function | Empacota um diretório num só ficheiro. | [backup-restore-shell](/en/total5/backup-restore-shell/) |
| `RESTORE` | function | Desempacota um ficheiro criado com `BACKUP`. | [backup-restore-shell](/en/total5/backup-restore-shell/) |
| `SHELL` | function | Executa um comando de shell na pasta do projeto. | [backup-restore-shell](/en/total5/backup-restore-shell/) |
| `NPMINSTALL` | function | Instala um pacote npm na pasta de módulos da aplicação. | [load-and-npminstall](/en/total5/load-and-npminstall/) |
| `IMPORT` | function | Descarrega um ficheiro JavaScript de um URL e carrega-o. | [import-remote-module](/en/total5/import-remote-module/) |
| `Image` | object | Processamento de imagens com GraphicsMagick ou ImageMagick. | [images](/en/total5/images/) |
| `NEWTHREAD` | function | Inicia um worker thread. | [workers-and-threads](/en/total5/workers-and-threads/) |
| `NEWFORK` | function | Inicia um processo filho. | [workers-and-threads](/en/total5/workers-and-threads/) |
| `NEWTHREADPOOL` | function | Cria um conjunto de workers que as tarefas pedem emprestados um de cada vez. | [thread-pool](/en/total5/thread-pool/) |
| `CRON` | function | Executa uma função segundo um agendamento. | [cron-jobs](/en/total5/cron-jobs/) |
| `setTimeout2` | function | `setTimeout` com um id: chamá-lo de novo com o mesmo id substitui o temporizador anterior. | [debounce-timers](/en/total5/debounce-timers/) |
| `clearTimeout2` | function | Cancela um temporizador criado com `setTimeout2`. | [debounce-timers](/en/total5/debounce-timers/) |
| `Flow` | object | O gestor dos FlowStreams da aplicação: `Flow.load(schema)`, `Flow.remove(id)`, `Flow.instances` e `Flow.test()` para um componente. | [flowstream](/en/total5/flowstream/), [flowstream-component-test](/en/total5/flowstream-component-test/) |
| `FlowStream` | object | O mesmo objeto que `Flow`. | [flowstream](/en/total5/flowstream/) |
| `NEWMACRO` | function | Compila uma macro a partir de uma string. | [macros](/en/total5/macros/) |
| `NEWCOMPONENT` | function | Compila o HTML de um componente. | [native-components](/en/total5/native-components/) |
| `COMPONENTATOR` | function | Transfere um bundle Componentator para `public/` como `ui-<name>-<hash>.min.js` e guarda o endereço em `F.repo[name]`. | [remote-service-boundaries](/en/total5/remote-service-boundaries/) |

## Utilitários, modelos e localização

| Nome | Tipo | O que faz | Receita |
|---|---|---|---|
| `U` | object | O objeto utilitário do framework (`U.extend()`, `U.clone()`...). | [utilities](/en/total5/utilities/) |
| `Utils` | object | O mesmo objeto que `U`. | [utilities](/en/total5/utilities/) |
| `UID` | function | Cria um id único curto ordenado por tempo. | [unique-ids-and-hashes](/en/total5/unique-ids-and-hashes/) |
| `GUID` | function | Cria uma string aleatória do comprimento indicado. | [unique-ids-and-hashes](/en/total5/unique-ids-and-hashes/) |
| `HASH` | function | Devolve um hash numérico rápido (não para palavras-passe). | [unique-ids-and-hashes](/en/total5/unique-ids-and-hashes/) |
| `CLONE` | function | Faz uma cópia profunda de um objeto. | [utility-globals](/en/total5/utility-globals/) |
| `COPY` | function | Copia as propriedades do primeiro objeto para o segundo e devolve o segundo. | [utility-globals](/en/total5/utility-globals/) |
| `DIFFARR` | function | Compara dois arrays de objetos por uma propriedade e devolve os objetos a acrescentar, os pares a atualizar e os valores a remover. | [diffarr-sync-lists](/en/total5/diffarr-sync-lists/) |
| `QUERIFY` | function | Constrói um URL com query string a partir de um objeto. | [utility-globals](/en/total5/utility-globals/) |
| `PROMISIFY` | function | `PROMISIFY(fn, a, b, c)` chama uma função que recebe um callback como último argumento e devolve uma promessa. | [utility-globals](/en/total5/utility-globals/) |
| `ENCRYPT` | function | Transforma um valor num token opaco. | [encrypt-and-decrypt](/en/total5/encrypt-and-decrypt/) |
| `DECRYPT` | function | Lê um valor de um token criado com `ENCRYPT`. | [encrypt-and-decrypt](/en/total5/encrypt-and-decrypt/) |
| `ENCRYPTREQ` | function | Cifra um valor juntamente com o user agent de um pedido (e o seu endereço IP em modo estrito). | [request-bound-tokens](/en/total5/request-bound-tokens/) |
| `DECRYPTREQ` | function | Lê um valor criado com `ENCRYPTREQ`; não devolve nada quando o pedido não corresponde. | [request-bound-tokens](/en/total5/request-bound-tokens/) |
| `LOCALIZE` | function | Escolhe a língua de cada pedido. | [localization](/en/total5/localization/) |
| `TRANSLATE` | function | Traduz os textos `@(...)` de uma string para uma língua. | [localization](/en/total5/localization/) |
| `Tangular` | object | O motor de modelos (`Tangular.render()`). | [tangular-templates](/en/total5/tangular-templates/) |
| `Ta` | object | Outro nome de `Tangular`, o motor de modelos. | [template-files](/en/total5/template-files/) |
| `Thelpers` | object | As funções helper disponíveis nos modelos Tangular. | [tangular-templates](/en/total5/tangular-templates/) |
| `TEMPLATE` | function | Renderiza um modelo Tangular que é um texto, um ficheiro da pasta `templates` ou um URL, e devolve uma promessa com o texto. | [template-files](/en/total5/template-files/) |

```js controllers/globals.js
exports.install = function() {
	ROUTE('GET /globals/', globals);
};

function globals($) {
	var output = {};
	for (var name of Object.getOwnPropertyNames(globalThis)) {
		var value;
		try {
			value = globalThis[name];
		} catch (e) {
			value = undefined;
		}
		output[name] = typeof(value) === 'function' ? 'function' : value === null ? 'null' : typeof(value);
	}
	$.json(output);
}
```
