# Nombres globales de Total.js 5

> Funciones y objetos globales de Total.js 5, con su propósito y uso de recetas.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: es
Content-SHA256: 0702b3c96c1ab8b043379455c635e2b676cf16a9e8a60271966f39e4f573604b
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Total.js 5 expone funciones y objetos globales para las herramientas de itinerancia, acciones, almacenamiento, mensajes y aplicaciones.

| Nombre | Tipo | Qué hace | Receta |
|---|---|---|---|
| `ON` | function | Registra un oyente para un evento de la aplicación. | [events](/en/total5/events/) |
| `ONCE` | function | Como `ON`, pero el oyente se ejecuta solo para el primer evento. | [events](/en/total5/events/) |
| `OFF` | function | Elimina un oyente registrado con `ON`. | [events](/en/total5/events/) |
| `EMIT` | function | Emite un evento con hasta siete argumentos. | [events](/en/total5/events/) |
| `LOAD` | function | Carga los archivos del proyecto (controladores, definiciones...); el framework lo llama por ti al iniciar. | [load-and-npminstall](/en/total5/load-and-npminstall/) |
| `LOADCONFIG` | function | Analiza un texto en el formato de `config` y lo aplica a `CONF`. | [configuration-file](/en/total5/configuration-file/) |
| `LOADRESOURCE` | function | Carga un recurso (un archivo de traducción) desde un texto o desde una URL. | [localization](/en/total5/localization/) |
| `PAUSESERVER` | function | Pausa o reanuda el servidor por nombre: mientras está en pausa, las peticiones reciben una página 503. | [pause-server](/en/total5/pause-server/) |
| `DEBUG` | boolean | `true` en modo debug, `false` en modo release. | [release-mode-and-debugging](/en/total5/release-mode-and-debugging/) |
| `CONF` | object | La configuración de la aplicación (el archivo `config` y sus valores por defecto). | [configuration-file](/en/total5/configuration-file/) |
| `DEF` | object | Manejadores y ajustes por defecto del framework (`DEF.onMail`, `DEF.helpers`, `DEF.onCSRFcheck`...). | [view-helpers-and-config](/en/total5/view-helpers-and-config/) |
| `F` | object | El objeto del framework. `Total` es el mismo objeto. | [utility-globals](/en/total5/utility-globals/) |
| `Total` | object | El objeto del framework (igual que `F`). `Total.run()` inicia la aplicación. | [release-mode-and-debugging](/en/total5/release-mode-and-debugging/) |
| `MAIN` | object | Un objeto vacío que el framework crea para los datos de tu aplicación. | [utility-globals](/en/total5/utility-globals/) |
| `REPO` | object | Un objeto vacío que el framework crea para tus propios datos. | [utility-globals](/en/total5/utility-globals/) |
| `FUNC` | object | Un objeto vacío que el framework crea para tus propias funciones. | [utility-globals](/en/total5/utility-globals/) |
| `TEMP` | object | Un objeto para datos temporales; el framework lo reemplaza por uno nuevo y vacío de vez en cuando. | [utility-globals](/en/total5/utility-globals/) |
| `NOW` | object | La fecha actual, actualizada por el framework una vez por minuto y por algunas llamadas como `CACHE`. | [utility-globals](/en/total5/utility-globals/) |
| `EMPTYARRAY` | object | Un array vacío congelado, para evitar crear nuevos. | [utility-globals](/en/total5/utility-globals/) |
| `EMPTYOBJECT` | object | Un objeto vacío congelado, para evitar crear nuevos. | [utility-globals](/en/total5/utility-globals/) |
| `MODS` | object | Los módulos cargados de la carpeta `modules/`, por id. | [utility-globals](/en/total5/utility-globals/) |
| `PLUGINS` | object | Los plugins cargados de la carpeta `plugins/`, por id. | [utility-globals](/en/total5/utility-globals/) |
| `NOOP` | function | Una función que no hace nada. | [utility-globals](/en/total5/utility-globals/) |
| `print` | function | Lo mismo que `console.log`. | [utility-globals](/en/total5/utility-globals/) |
| `REQUIRE` | function | Como `require`, pero también busca en la carpeta `node_modules` de la aplicación y acepta nombres `node:`. | [utility-globals](/en/total5/utility-globals/) |

## Rutas, acciones y middleware

| Nombre | Tipo | Qué hace | Receta |
|---|---|---|---|
| `ROUTE` | function | Declara una ruta (HTTP, `SOCKET`, `FILE`, `API` o un fallback como `#404`). | [http-methods](/en/total5/http-methods/) |
| `NEWACTION` | function | Declara una acción con su entrada, params, query, salida y permisos. | [actions-crud](/en/total5/actions-crud/) |
| `NEWSCHEMA` | function | Agrupa las acciones de una entidad bajo un nombre. | [schemas](/en/total5/schemas/) |
| `ACTION` | function | Ejecuta una acción desde tu propio código. | [calling-actions-from-code](/en/total5/calling-actions-from-code/) |
| `EXEC` | function | La misma función que `ACTION`. | [calling-actions-from-code](/en/total5/calling-actions-from-code/) |
| `NEWTRANSFORM` | function | Añade un paso a una cadena de transformaciones con nombre. | [transforms](/en/total5/transforms/) |
| `TRANSFORM` | function | Pasa un valor por una cadena de transformaciones. | [transforms](/en/total5/transforms/) |
| `MIDDLEWARE` | function | Registra un middleware para usarlo en rutas con `#name`. | [middleware](/en/total5/middleware/) |
| `NEWMIDDLEWARE` | function | La misma función que `MIDDLEWARE`. | [middleware](/en/total5/middleware/) |
| `PROXY` | function | Reenvía las peticiones bajo un prefijo de URL a otro servidor. | [proxy](/en/total5/proxy/) |
| `CORS` | function | Establece los orígenes que pueden llamar a la aplicación desde un navegador. | [cors](/en/total5/cors/) |
| `ErrorBuilder` | function | La clase que recoge los errores de validación. | [errors-and-audit](/en/total5/errors-and-audit/) |
| `SUCCESS` | function | Devuelve el objeto que el framework envía en una operación correcta (`{ success: true, value: value }`). | [errors-and-audit](/en/total5/errors-and-audit/) |
| `ERROR` | function | `ERROR(name)` devuelve un callback que registra el error que recibe con ese nombre; `ERROR()` devuelve el callback de error por defecto. | [errors-and-audit](/en/total5/errors-and-audit/) |
| `UNAUTHORIZED` | function | `UNAUTHORIZED($, ...permissions)` responde 401 y devuelve `true` cuando el usuario no tiene ninguno de los permisos; devuelve `false` cuando tiene uno de ellos o es superadministrador. | [action-user-and-permissions](/en/total5/action-user-and-permissions/) |
| `AUTH` | function | Autentica cada petición: una función, o las opciones de las sesiones integradas. | [sessions-with-built-in-auth](/en/total5/sessions-with-built-in-auth/) |
| `BLOCKED` | function | Cuenta las llamadas de una dirección IP e indica cuándo alcanzó el límite. | [rate-limiting](/en/total5/rate-limiting/) |
| `AUDIT` | function | Añade una entrada de auditoría (usuario, mensaje y tipo) a un archivo de registro en `logs/`. | [errors-and-audit](/en/total5/errors-and-audit/) |

## Datos y caché

| Nombre | Tipo | Qué hace | Receta |
|---|---|---|---|
| `NOSQL` | function | Abre una tabla de la base de datos NoSQL integrada. | [nosql-crud](/en/total5/nosql-crud/) |
| `DATA` | object | Entrada independiente de la base de datos al constructor de consultas. | [data-api](/en/total5/data-api/) |
| `DB` | function | Inicia una consulta con el constructor de consultas (`DB().find('table').where(...).callback($)`); la consulta la ejecuta el driver registrado con `NEWDB`. | [query-builder-db](/en/total5/query-builder-db/) |
| `NEWDB` | function | Registra un driver de base de datos `function(options, callback)` para el constructor de consultas: el predeterminado, o uno con nombre con `NEWDB('name', fn)`. | [query-builder-db](/en/total5/query-builder-db/) |
| `CACHE` | object | Un almacén en memoria con caducidad. | [cache](/en/total5/cache/) |
| `FILECACHE` | function | Calcula un resultado una vez y lo guarda en un archivo durante un tiempo. | [filecache](/en/total5/filecache/) |
| `MEMORIZE` | function | Un objeto JSON guardado en disco. | [memorize](/en/total5/memorize/) |
| `FILESTORAGE` | function | Un almacenamiento para archivos subidos. | [filestorage](/en/total5/filestorage/) |

## Clientes HTTP, WebSocket y de mensajería

| Nombre | Tipo | Qué hace | Receta |
|---|---|---|---|
| `REQUEST` | function | Cliente HTTP de bajo nivel. | [request-and-download](/en/total5/request-and-download/) |
| `DOWNLOAD` | function | Guarda la respuesta de una URL en un archivo. | [request-and-download](/en/total5/request-and-download/) |
| `RESTBuilder` | function | Constructor de llamadas a otras APIs HTTP. | [restbuilder](/en/total5/restbuilder/) |
| `AJAX` | function | `AJAX('METHOD /url/', data, callback)` hace una petición con la cabecera `x-requested-with` y devuelve el cuerpo analizado; devuelve una promesa cuando no hay callback. | [ajax-requests](/en/total5/ajax-requests/) |
| `API` | function | Llama a una operación de un servicio externo mediante su driver: `API('service', 'operation', data).callback($)`. | [api-drivers](/en/total5/api-drivers/) |
| `NEWAPI` | function | Registra el driver `function(options, next)` de un servicio para `API`, con una configuración opcional. | [api-drivers](/en/total5/api-drivers/) |
| `TotalAPI` | function | Llama a un servicio de la plataforma Total.js mediante `API('TAPI', name, model)`. | [remote-service-boundaries](/en/total5/remote-service-boundaries/) |
| `WEBSOCKETCLIENT` | function | Un cliente WebSocket para tu aplicación. | [websocket-client](/en/total5/websocket-client/) |
| `TMSCLIENT` | function | Un cliente del Total Messaging Service. | [tms](/en/total5/tms/) |
| `PUBLISH` | function | Envía un mensaje a los clientes TMS suscritos a él. | [tms](/en/total5/tms/) |
| `NEWPUBLISH` | function | Declara un mensaje que la aplicación publica. | [tms](/en/total5/tms/) |
| `SUBSCRIBE` | function | Añade un oyente para un mensaje que los clientes envían a la aplicación. | [tms](/en/total5/tms/) |
| `UNSUBSCRIBE` | function | Elimina los oyentes de un mensaje TMS. | [tms](/en/total5/tms/) |
| `NEWSUBSCRIBE` | function | Declara un mensaje que la aplicación recibe. | [tms](/en/total5/tms/) |
| `NEWCALL` | function | Declara una función que los clientes TMS pueden llamar. | [tms](/en/total5/tms/) |
| `OPENCLIENT` | function | Conecta con OpenPlatform por WebSocket para llamadas remotas, eventos y conexiones compartidas. | [openclient-protocol](/en/total5/openclient-protocol/) |
| `PROXYCLIENT` | function | Se conecta a un `PROXYSERVER` por WebSocket y responde a sus peticiones con un servidor local (un puerto o `ip:port`). | [proxy-tunnel](/en/total5/proxy-tunnel/) |
| `PROXYSERVER` | function | Convierte la aplicación en un servidor de túnel: las peticiones HTTP de un endpoint se envían por una ruta WebSocket a un `PROXYCLIENT`. | [proxy-tunnel](/en/total5/proxy-tunnel/) |
| `LDAP` | function | Se conecta a un servidor LDAP (puerto 389 salvo que `ldap.port` diga otra cosa) y devuelve el resultado en el callback. | [ldap-openldap](/en/total5/ldap-openldap/) |
| `MAIL` | function | Envía un correo cuyo cuerpo es una vista. | [send-email](/en/total5/send-email/) |
| `HTMLMAIL` | function | Envía un correo cuyo cuerpo es una cadena de HTML. | [send-email](/en/total5/send-email/) |
| `LOGMAIL` | function | Envía un correo cuyo cuerpo es un texto impreso en un bloque `<pre>` (pasa el cuerpo como texto). | [logmail](/en/total5/logmail/) |
| `Mail` | object | La clase detrás del envío de correo (SMTP). | [send-email](/en/total5/send-email/) |
| `AIMODEL` | function | Inicia una petición a un modelo de lenguaje registrado con `NEWAIMODEL`: `AIMODEL('name').user('text').callback($.callback())`. | [ai-models](/en/total5/ai-models/) |
| `AIPARSER` | function | Crea un parser para la respuesta en streaming de un proveedor de IA (`openai`, `claude`...): `write()` recibe fragmentos y `end()` devuelve el contenido, el razonamiento y las llamadas a herramientas. | [ai-models](/en/total5/ai-models/) |
| `NEWAIMODEL` | function | Registra el driver `function(ai, done)` de uno o más modelos de IA para `AIMODEL`, con una configuración opcional. | [ai-models](/en/total5/ai-models/) |
| `PYPELINE` | function | Ejecuta un archivo Python de la carpeta `pypelines/` (o código Python en línea) desde la aplicación y habla con él con tramas JSON por un socket. | [pypeline](/en/total5/pypeline/) |

## Archivos, sistema y workers

| Nombre | Tipo | Qué hace | Receta |
|---|---|---|---|
| `PATH` | object | Helpers que construyen rutas en las carpetas del proyecto (`PATH.root()`, `PATH.public()`, `PATH.tmp()`...). | [file-download](/en/total5/file-download/) |
| `MERGE` | function | Registra un archivo virtual formado por varios archivos, minificado. | [minification](/en/total5/minification/) |
| `TOUCH` | function | Limpia las entradas en caché minificadas, temporales y de no encontrado de una URL, o de todas. | [touch-static-cache](/en/total5/touch-static-cache/) |
| `CLEANUP` | function | Destruye un stream cuando ha terminado. | [cleanup-streams](/en/total5/cleanup-streams/) |
| `BACKUP` | function | Empaqueta un directorio en un solo archivo. | [backup-restore-shell](/en/total5/backup-restore-shell/) |
| `RESTORE` | function | Desempaqueta un archivo creado con `BACKUP`. | [backup-restore-shell](/en/total5/backup-restore-shell/) |
| `SHELL` | function | Ejecuta un comando de shell en la carpeta del proyecto. | [backup-restore-shell](/en/total5/backup-restore-shell/) |
| `NPMINSTALL` | function | Instala un paquete npm en la carpeta de módulos de la aplicación. | [load-and-npminstall](/en/total5/load-and-npminstall/) |
| `IMPORT` | function | Descarga un archivo JavaScript de una URL y lo carga. | [import-remote-module](/en/total5/import-remote-module/) |
| `Image` | object | Procesamiento de imágenes con GraphicsMagick o ImageMagick. | [images](/en/total5/images/) |
| `NEWTHREAD` | function | Inicia un worker thread. | [workers-and-threads](/en/total5/workers-and-threads/) |
| `NEWFORK` | function | Inicia un proceso hijo. | [workers-and-threads](/en/total5/workers-and-threads/) |
| `NEWTHREADPOOL` | function | Crea un grupo de workers que los trabajos toman prestados de uno en uno. | [thread-pool](/en/total5/thread-pool/) |
| `CRON` | function | Ejecuta una función según un horario. | [cron-jobs](/en/total5/cron-jobs/) |
| `setTimeout2` | function | `setTimeout` con un id: llamarlo de nuevo con el mismo id reemplaza el temporizador anterior. | [debounce-timers](/en/total5/debounce-timers/) |
| `clearTimeout2` | function | Cancela un temporizador creado con `setTimeout2`. | [debounce-timers](/en/total5/debounce-timers/) |
| `Flow` | object | El gestor de los FlowStreams de la aplicación: `Flow.load(schema)`, `Flow.remove(id)`, `Flow.instances` y `Flow.test()` para un componente. | [flowstream](/en/total5/flowstream/), [flowstream-component-test](/en/total5/flowstream-component-test/) |
| `FlowStream` | object | El mismo objeto que `Flow`. | [flowstream](/en/total5/flowstream/) |
| `NEWMACRO` | function | Compila una macro a partir de una cadena. | [macros](/en/total5/macros/) |
| `NEWCOMPONENT` | function | Compila el HTML de un componente. | [native-components](/en/total5/native-components/) |
| `COMPONENTATOR` | function | Descarga un bundle de Componentator en `public/` como `ui-<name>-<hash>.min.js` y guarda su dirección en `F.repo[name]`. | [remote-service-boundaries](/en/total5/remote-service-boundaries/) |

## Utilidades, plantillas y localización

| Nombre | Tipo | Qué hace | Receta |
|---|---|---|---|
| `U` | object | El objeto de utilidades del framework (`U.extend()`, `U.clone()`...). | [utilities](/en/total5/utilities/) |
| `Utils` | object | El mismo objeto que `U`. | [utilities](/en/total5/utilities/) |
| `UID` | function | Crea un id único corto ordenado por tiempo. | [unique-ids-and-hashes](/en/total5/unique-ids-and-hashes/) |
| `GUID` | function | Crea una cadena aleatoria de la longitud dada. | [unique-ids-and-hashes](/en/total5/unique-ids-and-hashes/) |
| `HASH` | function | Devuelve un hash numérico rápido (no para contraseñas). | [unique-ids-and-hashes](/en/total5/unique-ids-and-hashes/) |
| `CLONE` | function | Hace una copia profunda de un objeto. | [utility-globals](/en/total5/utility-globals/) |
| `COPY` | function | Copia las propiedades del primer objeto en el segundo y devuelve el segundo. | [utility-globals](/en/total5/utility-globals/) |
| `DIFFARR` | function | Compara dos arrays de objetos por una propiedad y devuelve los objetos que añadir, los pares que actualizar y los valores que eliminar. | [diffarr-sync-lists](/en/total5/diffarr-sync-lists/) |
| `QUERIFY` | function | Construye una URL con cadena de consulta a partir de un objeto. | [utility-globals](/en/total5/utility-globals/) |
| `PROMISIFY` | function | `PROMISIFY(fn, a, b, c)` llama a una función que recibe un callback como último argumento y devuelve una promesa. | [utility-globals](/en/total5/utility-globals/) |
| `ENCRYPT` | function | Convierte un valor en un token opaco. | [encrypt-and-decrypt](/en/total5/encrypt-and-decrypt/) |
| `DECRYPT` | function | Lee un valor de un token creado con `ENCRYPT`. | [encrypt-and-decrypt](/en/total5/encrypt-and-decrypt/) |
| `ENCRYPTREQ` | function | Cifra un valor junto con el user agent de una petición (y su dirección IP en modo estricto). | [request-bound-tokens](/en/total5/request-bound-tokens/) |
| `DECRYPTREQ` | function | Lee un valor creado con `ENCRYPTREQ`; no devuelve nada cuando la petición no coincide. | [request-bound-tokens](/en/total5/request-bound-tokens/) |
| `LOCALIZE` | function | Elige el idioma de cada petición. | [localization](/en/total5/localization/) |
| `TRANSLATE` | function | Traduce los textos `@(...)` de una cadena a un idioma. | [localization](/en/total5/localization/) |
| `Tangular` | object | El motor de plantillas (`Tangular.render()`). | [tangular-templates](/en/total5/tangular-templates/) |
| `Ta` | object | Otro nombre de `Tangular`, el motor de plantillas. | [template-files](/en/total5/template-files/) |
| `Thelpers` | object | Las funciones helper disponibles en las plantillas Tangular. | [tangular-templates](/en/total5/tangular-templates/) |
| `TEMPLATE` | function | Renderiza una plantilla Tangular que es un texto, un archivo de la carpeta `templates` o una URL, y devuelve una promesa con el 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);
}
```
