@cldmv/slothlet 3.9.2 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -16
- package/REFERENCE.md +19 -19
- package/dist/lib/builders/api_builder.mjs +1 -1
- package/dist/lib/builders/builder.mjs +1 -1
- package/dist/lib/builders/modes-processor.mjs +1 -1
- package/dist/lib/handlers/api-cache-manager.mjs +1 -1
- package/dist/lib/handlers/api-manager.mjs +1 -1
- package/dist/lib/handlers/hook-manager.mjs +1 -1
- package/dist/lib/handlers/permission-manager.mjs +1 -1
- package/dist/lib/helpers/config.mjs +1 -1
- package/dist/lib/helpers/generate-manifest.mjs +1 -1
- package/dist/lib/helpers/module-discovery.mjs +1 -1
- package/dist/lib/helpers/module-manifest-validator.mjs +1 -1
- package/dist/lib/i18n/languages/de-de.json +90 -64
- package/dist/lib/i18n/languages/en-gb.json +90 -64
- package/dist/lib/i18n/languages/en-us.json +90 -64
- package/dist/lib/i18n/languages/es-es.json +90 -64
- package/dist/lib/i18n/languages/es-mx.json +90 -64
- package/dist/lib/i18n/languages/fr-fr.json +90 -64
- package/dist/lib/i18n/languages/hi-in.json +90 -64
- package/dist/lib/i18n/languages/ja-jp.json +90 -64
- package/dist/lib/i18n/languages/ko-kr.json +90 -64
- package/dist/lib/i18n/languages/pt-br.json +90 -64
- package/dist/lib/i18n/languages/ru-ru.json +92 -66
- package/dist/lib/i18n/languages/zh-cn.json +90 -64
- package/dist/lib/modes/eager.mjs +1 -1
- package/dist/lib/modes/lazy.mjs +1 -1
- package/package.json +7 -4
- package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
- package/types/dist/lib/builders/builder.d.mts.map +1 -1
- package/types/dist/lib/builders/modes-processor.d.mts.map +1 -1
- package/types/dist/lib/handlers/api-cache-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/api-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/hook-manager.d.mts +4 -0
- package/types/dist/lib/handlers/hook-manager.d.mts.map +1 -1
- package/types/dist/lib/handlers/permission-manager.d.mts +2 -0
- package/types/dist/lib/handlers/permission-manager.d.mts.map +1 -1
- package/types/dist/lib/helpers/config.d.mts +3 -0
- package/types/dist/lib/helpers/config.d.mts.map +1 -1
- package/types/dist/lib/helpers/generate-manifest.d.mts +1 -0
- package/types/dist/lib/helpers/generate-manifest.d.mts.map +1 -1
- package/types/dist/lib/helpers/module-discovery.d.mts.map +1 -1
- package/types/dist/lib/helpers/module-manifest-validator.d.mts.map +1 -1
- package/types/dist/lib/modes/eager.d.mts +2 -1
- package/types/dist/lib/modes/eager.d.mts.map +1 -1
- package/types/dist/lib/modes/lazy.d.mts +2 -1
- package/types/dist/lib/modes/lazy.d.mts.map +1 -1
|
@@ -1,54 +1,110 @@
|
|
|
1
1
|
{
|
|
2
2
|
"translations": {
|
|
3
3
|
"INVALID_CONFIG": "Error de configuración: {option} es {value}, se esperaba {expected}. {hint}",
|
|
4
|
+
"HINT_INVALID_CONFIG": "Compruebe el valor de la configuración y asegúrese de que coincide con el tipo y formato esperados.",
|
|
5
|
+
"INVALID_CONFIG_SYNTHETIC_EXPORTS_SHAPE": "Error de configuración: las exports en línea deben ser un objeto plano de { default?, ...named }, se recibió {received}.",
|
|
6
|
+
"HINT_INVALID_CONFIG_SYNTHETIC_EXPORTS_SHAPE": "Pase exports como un objeto plano, por ejemplo { default: fn } o { name: fn } — o un envoltorio { exports: { default?, ...named } }, o una función directa.",
|
|
7
|
+
"INVALID_CONFIG_SYNTHETIC_INPUT": "Error de configuración: el contenido en línea debe ser un objeto plano de exports { default?, ...named }, un envoltorio { exports: … }, o una función directa; se recibió {received}.",
|
|
8
|
+
"HINT_INVALID_CONFIG_SYNTHETIC_INPUT": "Pase exports en línea como un objeto plano o una función directa; un montaje en sistema de archivos requiere una ruta en cadena.",
|
|
9
|
+
"INVALID_CONFIG_SYNTHETIC_NAME": "Error de configuración: syntheticName debe ser una cadena no vacía; se recibió {received}.",
|
|
10
|
+
"HINT_INVALID_CONFIG_SYNTHETIC_NAME": "Proporcione un nombre de clave en cadena para la construcción sintética, por ejemplo \"synthetic\".",
|
|
11
|
+
"INVALID_CONFIG_PRELOADED_STRUCTURE": "Error de configuración: preloadedStructure debe ser un objeto simple con arreglos files y directories, recibido {received}.",
|
|
12
|
+
"HINT_INVALID_CONFIG_PRELOADED_STRUCTURE": "preloadedStructure se construye internamente; pase un objeto con arreglos files y directories, u omítalo para escanear un directorio.",
|
|
4
13
|
"INVALID_CONFIG_DIR_MISSING": "Error de configuración: se debe proporcionar la opción 'dir'. Especifique la ruta al directorio que carga la API.",
|
|
14
|
+
"HINT_INVALID_CONFIG_DIR_MISSING": "La ruta del directorio es obligatoria pero no se ha proporcionado.",
|
|
5
15
|
"INVALID_CONFIG_BROWSER_REQUIRES_MANIFEST": "Error de configuración: 'manifest' es requerido cuando env es 'browser'. Proporciona un objeto manifest pregenerado con los arreglos 'files' y 'directories'.",
|
|
6
16
|
"INVALID_CONFIG_BROWSER_MANIFEST_INVALID": "Error de configuración: 'manifest' debe ser un objeto plano con los arreglos 'files' y 'directories'. Recibido: {received}",
|
|
7
17
|
"INVALID_CONFIG_BROWSER_RESOLVE_SPECIFIER_INVALID": "Error de configuración: 'resolveModuleSpecifier' debe ser una función cuando env es 'browser'. Recibido: {received}",
|
|
8
18
|
"INVALID_CONFIG_DIR_INVALID": "Error de configuración: 'dir' debe ser una ruta de cadena no vacía. Recibido: {dir}",
|
|
19
|
+
"HINT_INVALID_CONFIG_DIR_INVALID": "Asegúrese de que la ruta del directorio es una cadena válida y apunta a un directorio existente.",
|
|
9
20
|
"INVALID_CONFIG_MODE_INVALID": "Error de configuración: 'mode' debe ser 'eager' o 'lazy'. Recibido: {value}",
|
|
21
|
+
"HINT_INVALID_CONFIG_MODE_INVALID": "El modo debe ser 'eager' o 'lazy'.",
|
|
10
22
|
"INVALID_CONFIG_NOT_LOADED": "No se puede realizar la operación '{operation}': la instancia no está cargada. Llame a load() primero.",
|
|
23
|
+
"HINT_INVALID_CONFIG_NOT_LOADED": "La instancia debe estar cargada antes de realizar esta operación. Llame a load() primero.",
|
|
11
24
|
"INVALID_CONFIG_LAZY_MATERIALIZATION_FAILED": "Error al materializar el proxy diferido para '{apiPath}'. Compruebe que el módulo se carga correctamente.",
|
|
12
25
|
"INVALID_CONFIG_NOT_A_FUNCTION": "No se puede llamar a '{apiPath}': no es una función (se obtuvo {actualType}). Compruebe que el módulo exporta una función llamable.",
|
|
13
26
|
"INVALID_CONFIG_API_PATH_INVALID": "Ruta de API inválida '{apiPath}': {reason}. Las rutas de API deben ser cadenas de puntos no vacías y bien formadas, y no pueden entrar en conflicto con nombres reservados. Fragmento en el índice {index}: '{segment}'.",
|
|
27
|
+
"HINT_INVALID_CONFIG_API_PATH_INVALID": "Asegúrese de que la ruta de la API es una cadena de notación de puntos válida (ej., 'plugins.tools') sin segmentos vacíos ni nombres reservados (slothlet, shutdown, destroy).",
|
|
14
28
|
"INVALID_CONFIG_FORCE_OVERWRITE_REQUIRES_MODULE_ID": "Error de configuración: forceOverwrite/allowOverwrite requiere un moduleID. Proporcione un moduleID único cuando use opciones de sobrescritura para la ruta '{apiPath}'.",
|
|
29
|
+
"HINT_INVALID_CONFIG_FORCE_OVERWRITE_REQUIRES_MODULE_ID": "Cuando use forceOverwrite o allowOverwrite, debe proporcionar un moduleID único para rastrear la propiedad de la ruta sobrescrita.",
|
|
15
30
|
"INVALID_METADATA_TARGET": "Objetivo de metadatos inválido: se esperaba {expected}, se recibió {target}. Las operaciones de metadatos requieren una referencia a una función u objeto.",
|
|
31
|
+
"HINT_INVALID_METADATA_TARGET": "El objetivo debe ser una función u objeto cargado a través de Slothlet. Pase la referencia real de la función/objeto, no una cadena ni un valor primitivo.",
|
|
16
32
|
"METADATA_NO_MODULE_ID": "No se pueden establecer metadatos de usuario: no se encontró moduleID en los metadatos del sistema. Asegúrese de que el objetivo sea una función u objeto cargado a través de Slothlet.",
|
|
33
|
+
"HINT_METADATA_NO_MODULE_ID": "Asegúrese de que la función/objeto se cargó a través del sistema de módulos de Slothlet. Solo las funciones gestionadas por Slothlet tienen metadatos asociados.",
|
|
17
34
|
"METADATA_LIFECYCLE_BYPASS": "tagSystemMetadata() debe llamarse a través del sistema de ciclo de vida. Use lifecycle.emit('impl:created') o lifecycle.emit('impl:changed') en lugar de llamar directamente.",
|
|
35
|
+
"HINT_METADATA_LIFECYCLE_BYPASS": "Nunca llame a tagSystemMetadata() directamente. En su lugar, active los eventos de ciclo de vida 'impl:created' o 'impl:changed', que invocarán tagSystemMetadata() a través del canal adecuado.",
|
|
18
36
|
"INVALID_METADATA_KEY": "Clave de metadatos inválida: se esperaba {expected}, se recibió el tipo {type} para la clave '{key}'. Las claves de metadatos deben estar bien formadas.",
|
|
37
|
+
"HINT_INVALID_METADATA_KEY": "Las claves de metadatos deben ser cadenas, arrays de cadenas u objetos con valores de array. Compruebe que el formato de la clave coincide con uno de estos tipos.",
|
|
19
38
|
"WARNING_METADATA_MISMATCH": "ADVERTENCIA DE SEGURIDAD: desajuste en la ruta del archivo de metadatos para '{apiPath}'. El seguimiento de pila muestra '{stackFile}', pero los metadatos registraron '{metadataFile}'. Esto puede indicar una recarga en caliente o manipulación.",
|
|
39
|
+
"HINT_WARNING_METADATA_MISMATCH": "Esta advertencia indica que la ubicación de ejecución de la función no coincide con su ruta de metadatos registrada. Esto puede ocurrir durante una recarga en caliente o si la función fue alterada. En la mayoría de los casos, esto es de esperar durante el desarrollo con la recarga en caliente habilitada.",
|
|
20
40
|
"COLLISION_ERROR": "Error de colisión en '{key}' (contexto: {collisionContext}, modo: {collisionMode}). Establezca el modo de colisión en 'merge', 'replace', 'warn' o 'skip' para manejar colisiones.",
|
|
41
|
+
"HINT_COLLISION_ERROR": "El modo de colisión está establecido en 'error', lo que evita cualquier sobrescritura. Use en su lugar collision: 'merge' (combinar propiedades), 'replace' (sobrescribir completamente), 'warn' (advertir pero mantener el existente) o 'skip' (ignorar silenciosamente).",
|
|
21
42
|
"COLLISION_DEFAULT_EXPORT_ERROR": "Colisión detectada: la propiedad '{key}' ya existe en la exportación por defecto en '{apiPath}'. El modo de colisión es 'error'.",
|
|
43
|
+
"HINT_COLLISION_DEFAULT_EXPORT_ERROR": "Una exportación nombrada entra en conflicto con una propiedad ya presente en el objeto de exportación por defecto en esta ruta. Cambie el modo de colisión a 'merge', 'replace', 'warn' o 'skip', o renonmbre la propiedad en conflicto.",
|
|
22
44
|
"INVALID_ARGUMENT": "Argumento inválido '{argument}': se esperaba {expected}, se recibió {received}.",
|
|
45
|
+
"HINT_INVALID_ARGUMENT": "La ruta debe ser una cadena con notación de puntos (ej., 'math.add').",
|
|
23
46
|
"RUNTIME_NO_ACTIVE_CONTEXT": "No se encontró un contexto activo. Esta operación requiere ser llamada desde una función de la API de slothlet.",
|
|
47
|
+
"HINT_RUNTIME_NO_ACTIVE_CONTEXT": "metadata.self() debe ser llamado desde dentro de una función de la API de slothlet.",
|
|
24
48
|
"INVALID_CONFIG_MUTATIONS_DISABLED": "No se puede realizar '{operation}': la mutación está deshabilitada. Establezca allowMutation: true para habilitar las operaciones de modificación de la API (add/remove/reload).",
|
|
49
|
+
"HINT_INVALID_CONFIG_MUTATIONS_DISABLED": "Las operaciones de mutación de la API requieren allowMutation: true en la configuración. Use diagnostics: true para acceder a estos métodos para pruebas sin habilitar las mutaciones reales.",
|
|
25
50
|
"CACHE_MODULEID_MISMATCH": "Desajuste de moduleID en la entrada de caché: se esperaba '{cacheKey}', pero la entrada tiene '{entryModuleID}'. Esto indica una inconsistencia interna de la caché.",
|
|
51
|
+
"HINT_CACHE_MODULEID_MISMATCH": "Este es un error interno que indica corrupción de la caché. Por favor, informe de este problema aportando los pasos para reproducirlo.",
|
|
26
52
|
"CACHE_NOT_FOUND": "Entrada de caché no encontrada para moduleID '{moduleID}' durante la operación '{operation}'. Es posible que el módulo no esté cargado o que la caché haya sido limpiada.",
|
|
53
|
+
"HINT_CACHE_NOT_FOUND": "Asegúrese de que el módulo se ha cargado antes de intentar recargarlo o reconstruir su caché. Compruebe que el moduleID es correcto.",
|
|
27
54
|
"CACHE_MANAGER_NOT_AVAILABLE": "El gestor de caché no está disponible. No se puede realizar la operación '{operation}'. Asegúrese de que el gestor de caché esté inicializado.",
|
|
55
|
+
"HINT_CACHE_MANAGER_NOT_AVAILABLE": "El gestor de caché debería inicializarse automáticamente. Si ve este error, puede indicar un problema de inicialización interna.",
|
|
28
56
|
"MODULE_LOAD_FAILED": "Error al cargar el módulo '{modulePath}' (ID: {moduleID}): {error}",
|
|
57
|
+
"HINT_MODULE_LOAD_FAILED": "Compruebe el archivo del módulo en busca de errores. Asegúrese de que tiene una sintaxis de JavaScript válida y exportaciones.",
|
|
29
58
|
"MODULE_NOT_FOUND": "Módulo no encontrado: {modulePath}. {hint}",
|
|
59
|
+
"HINT_MODULE_NOT_FOUND": "Asegúrese de que el módulo existe y la ruta es correcta. Compruebe si hay errores tipográficos en la sentencia de importación.",
|
|
30
60
|
"MODULE_IMPORT_FAILED": "Error al importar el módulo '{modulePath}': {error}. Compruebe que el archivo existe y tiene una sintaxis válida.",
|
|
61
|
+
"HINT_MODULE_IMPORT_FAILED": "Asegúrese de que el archivo del módulo existe y puede ser importado. Compruebe si hay errores de sintaxis o dependencias faltantes.",
|
|
31
62
|
"CONTEXT_ALREADY_EXISTS": "El contexto para la instancia '{instanceID}' ya existe. No se puede inicializar dos veces.",
|
|
63
|
+
"HINT_CONTEXT_ALREADY_EXISTS": "Este contexto ya existe. Compruebe si está intentando inicializar la misma instancia dos veces.",
|
|
32
64
|
"CONTEXT_NOT_FOUND": "Contexto no encontrado para la instancia '{instanceID}'. Es posible que la instancia se haya cerrado. Instancias disponibles: {availableInstances}",
|
|
65
|
+
"HINT_CONTEXT_NOT_FOUND": "Asegúrese de que la instancia de slothlet está inicializada y el contexto se ha creado antes de acceder a él. Compruebe que está usando el ID de instancia correcto.",
|
|
33
66
|
"CONTEXT_EXECUTION_FAILED": "Error al ejecutar en el contexto para la instancia '{instanceID}': {error}",
|
|
67
|
+
"HINT_CONTEXT_EXECUTION_FAILED": "Ocurrió un error al ejecutar la función. Consulte los detalles del error para más información.",
|
|
34
68
|
"NO_ACTIVE_CONTEXT_LIVE": "Sin contexto activo: ninguna instancia está activa actualmente en modo de enlaces en vivo (live bindings).",
|
|
69
|
+
"HINT_NO_ACTIVE_CONTEXT_LIVE": "No se encontró un contexto activo. Asegúrese de que está llamando a esta función desde dentro de un contexto de slothlet en vivo.",
|
|
35
70
|
"NO_ACTIVE_CONTEXT_ASYNC": "Sin contexto activo: la función debe llamarse dentro del contexto de la API de slothlet.",
|
|
71
|
+
"HINT_NO_ACTIVE_CONTEXT_ASYNC": "No se encontró un contexto activo. Asegúrese de que está llamando a esta función desde dentro de un contexto asíncrono de slothlet.",
|
|
36
72
|
"RUNTIME_NO_ACTIVE_CONTEXT_SELF": "Sin contexto activo: no se puede acceder a 'self'. Asegúrese de llamar desde una función de la API de Slothlet.",
|
|
73
|
+
"HINT_RUNTIME_NO_ACTIVE_CONTEXT_SELF": "No se puede acceder a 'self' fuera del contexto de una función de la API de slothlet.",
|
|
37
74
|
"RUNTIME_NO_ACTIVE_CONTEXT_CONTEXT": "Sin contexto activo: 'context' solo puede modificarse dentro de llamadas a la API de slothlet.",
|
|
75
|
+
"HINT_RUNTIME_NO_ACTIVE_CONTEXT_CONTEXT": "No se puede acceder a 'context' fuera de una función de la API de slothlet. El contexto solo puede modificarse dentro de llamadas a la API de slothlet.",
|
|
38
76
|
"OWNERSHIP_INVALID_MODULE_ID": "Registro de propiedad inválido: el moduleID '{moduleID}' es inválido.",
|
|
77
|
+
"HINT_OWNERSHIP_INVALID_MODULE_ID": "El ID del módulo es inválido. Asegúrese de que el módulo se cargó correctamente y el ID es correcto.",
|
|
39
78
|
"OWNERSHIP_INVALID_API_PATH": "Registro de propiedad inválido: el apiPath '{apiPath}' es inválido.",
|
|
79
|
+
"HINT_OWNERSHIP_INVALID_API_PATH": "La ruta de la API es inválida. Asegúrese de que el formato de la ruta es correcto.",
|
|
40
80
|
"OWNERSHIP_CONFLICT": "Conflicto de propiedad: la ruta '{apiPath}' ya es propiedad del módulo '{existingModuleId}', no se puede asignar a '{newModuleId}'. Use forceOverwrite: true o removeApi primero.",
|
|
81
|
+
"HINT_OWNERSHIP_CONFLICT": "La ruta ya pertenece a otro módulo. Opciones: (1) Use forceOverwrite: true en las opciones de api.add(), (2) Establezca la configuración de colisión en 'merge' o 'replace', (3) Llame a api.slothlet.api.remove() primero para limpiar la ruta.",
|
|
41
82
|
"LOOSE_SET_NOT_OWNED": "El módulo {callerApiPath} no puede escribir en {apiPath}. Un módulo solo puede escribir debajo de su propio apiPath; usa api.slothlet.api.add() para registrar otra ruta.",
|
|
83
|
+
"HINT_LOOSE_SET_NOT_OWNED": "Un módulo cuyo apiPath es \"P\" solo puede escribir bajo \"P.*\". Para registrar código en otro espacio de nombres, llama a api.slothlet.api.add().",
|
|
42
84
|
"LOOSE_SET_RESERVED_KEY": "No se puede asignar al segmento de clave reservada '{segment}' en apiPath '{apiPath}'. Nombres como __proto__, prototype y constructor están bloqueados para prevenir la contaminación del prototipo del árbol de la API.",
|
|
85
|
+
"HINT_LOOSE_SET_RESERVED_KEY": "Los segmentos __proto__, prototype y constructor no pueden usarse como nombres de apiPath porque escribir en ellos mutaría la cadena de prototipos de JavaScript. Elige otro nombre.",
|
|
43
86
|
"INVALID_DIRECTORY": "Directorio inválido '{dir}': {error}. Asegúrese de que el directorio existe y es accesible.",
|
|
87
|
+
"HINT_INVALID_DIRECTORY": "Asegúrese de que la ruta del directorio es correcta y el directorio existe y es accesible.",
|
|
44
88
|
"WARN_DIRECTORY_EMPTY": "El directorio '{dir}' (resuelto como: '{resolvedPath}') está vacío o no contiene módulos cargables (archivos .mjs, .cjs, .js). Esto es válido para los flujos de trabajo de add-api, pero puede indicar una ruta mal configurada.",
|
|
89
|
+
"HINT_WARN_DIRECTORY_EMPTY": "Compruebe que la ruta del directorio es correcta. Los directorios vacíos son válidos para los flujos de trabajo de add-api donde los módulos se añadirán dinámicamente.",
|
|
90
|
+
"WARN_SYNTHETIC_ROOT_EMPTY": "La adición sintética en la ruta de API '{apiPath}' no aportó ninguna hoja; no se montó nada.",
|
|
91
|
+
"HINT_WARN_SYNTHETIC_ROOT_EMPTY": "Proporciona al menos una exportación (una función predeterminada con nombre o exportaciones con nombre) para que la adición sintética tenga algo que montar.",
|
|
92
|
+
"WARN_SYNTHETIC_ROOT_UNNAMED": "La adición sintética en la raíz de la API tiene una exportación predeterminada anónima; no se puede asignar a la raíz y se omitió.",
|
|
93
|
+
"HINT_WARN_SYNTHETIC_ROOT_UNNAMED": "Nombra la función predeterminada (su nombre se convierte en la clave raíz), proporciona exportaciones con nombre o monta la hoja en un apiPath con nombre.",
|
|
94
|
+
"WARN_SYNTHETIC_ROOT_COLLISION": "La adición sintética en la raíz de la API reasigna su predeterminado a '{name}', pero una exportación con nombre ya usa '{name}'; la exportación con nombre tiene prioridad.",
|
|
95
|
+
"HINT_WARN_SYNTHETIC_ROOT_COLLISION": "Cambia el nombre de la función predeterminada o de la exportación con nombre en conflicto para que cada una use una clave raíz distinta.",
|
|
45
96
|
"INTERNAL_HOOK_STATE_CORRUPT": "[ERROR INTERNO] El estado de HookManager está corrupto: gancho \"{hookId}\" ({type}/{subset}/{pattern}) — {detail}. Esto es un bug en Slothlet — por favor infórmelo.",
|
|
97
|
+
"HINT_INTERNAL_HOOK_STATE_CORRUPT": "El estado interno de HookManager es inconsistente. Esto nunca debería ocurrir con un uso normal — por favor, envíe un informe de bug incluyendo cómo llamó a hook.on() y hook.remove().",
|
|
46
98
|
"WARNING_RESERVED_PROPERTY_CONFLICT": "La API de usuario entra en conflicto con propiedades reservadas: {properties}",
|
|
99
|
+
"HINT_WARNING_RESERVED_PROPERTY_CONFLICT": "El nombre de propiedad 'slothlet' está reservado para métodos integrados de la API. Renombre su módulo de API o su propiedad para evitar conflictos con slothlet.shutdown(), slothlet.api.*, etc.",
|
|
47
100
|
"WARNING_LANGUAGE_LOAD_FAILED": "Error al cargar el idioma '{lang}', volviendo al inglés.",
|
|
48
101
|
"WARNING_LANGUAGE_UNAVAILABLE": "El idioma '{lang}' no está disponible, usando inglés.",
|
|
49
102
|
"WARNING_OWNERSHIP_CONFLICT": "Conflicto de propiedad en '{apiPath}': ya es propiedad de '{existingModuleId}', no se puede registrar '{newModuleId}'. Manteniendo el existente.",
|
|
103
|
+
"HINT_WARNING_OWNERSHIP_CONFLICT": "La ruta ya pertenece a otro módulo. Para forzar la sobrescritura, use forceOverwrite: true en las opciones de api.add(), o llame a api.slothlet.api.remove() primero para limpiar la ruta.",
|
|
50
104
|
"WARNING_HOT_RELOAD_PATH_COLLISION": "Colisión de ruta en {apiPath}: manteniendo el valor existente (modo de colisión: warn).",
|
|
105
|
+
"HINT_WARNING_HOT_RELOAD_PATH_COLLISION": "Ocurrió una colisión durante la recarga en caliente en la ruta especificada. Se mantiene el valor existente. Para forzar el reemplazo, use el modo de colisión 'replace' en lugar de 'warn'.",
|
|
51
106
|
"WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "No se pueden fusionar valores primitivos en {apiPath}: manteniendo el valor existente. Use el modo de colisión 'replace' para sobrescribir o asegúrese de que ambos valores sean objetos.",
|
|
107
|
+
"HINT_WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "No se pueden fusionar valores primitivos (cadenas, números, booleanos). Para reemplazar el valor, use el modo de colisión 'replace'. Para mantener el valor existente, continúe usando el modo 'warn'.",
|
|
52
108
|
"WARNING_COLLISION_FILE_FOLDER_MERGE": "Colisión detectada en '{key}': fusionando exportaciones de archivo y carpeta (modo de colisión: 'warn').",
|
|
53
109
|
"HINT_WARNING_COLLISION_FILE_FOLDER_MERGE": "Un archivo y una carpeta comparten el mismo nombre en '{key}'. Sus exportaciones se están fusionando. Renombre uno para evitar ambigüedad, o establezca collisionMode en 'replace' o 'error' si la fusión no es intencionada.",
|
|
54
110
|
"WARNING_COLLISION_DEFAULT_EXPORT_OVERWRITE": "Advertencia de colisión: la propiedad '{key}' ya existe en la función de exportación por defecto en {apiPath}. La exportación nombrada la sobrescribirá.",
|
|
@@ -58,10 +114,13 @@
|
|
|
58
114
|
"WARNING_LIFECYCLE_HANDLER_ERROR": "El manejador de eventos del ciclo de vida lanzó un error para el evento '{event}'. Otros manejadores para este evento continuaron ejecutándose.",
|
|
59
115
|
"HINT_WARNING_LIFECYCLE_HANDLER_ERROR": "Un manejador de ciclo de vida registrado para el evento '{event}' lanzó un error. Compruebe si hay bugs en su manejador lifecycle.on('{event}', ...). Otros manejadores en el mismo evento no se ven afectados.",
|
|
60
116
|
"WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Se detectaron múltiples exportaciones de funciones por defecto a nivel de raíz: {rootContributors}. Cada una ha sido organizada por nombre de archivo (ej., api.{firstContributor}()). Considere usar una única exportación por defecto a nivel de raíz o mover los archivos a subdirectorios.",
|
|
117
|
+
"HINT_WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Múltiples archivos exportan funciones por defecto en el nivel raíz. Cada una ha sido organizada en su propio espacio de nombres (ej., api.filename()). Considere consolidarlos en una única exportación raíz o mover los archivos a subdirectorios para una organización más clara.",
|
|
61
118
|
"WARN_SUPPRESS_FIX_ACTIVE": "La corrección de regla '{rule}' está suprimida mediante 'suppressFixes'. Consulte {url} para más detalles. Esta es una anulación temporal que se eliminará en v4. El comportamiento corregido de '{rule}' se aplicará de forma permanente.",
|
|
62
119
|
"HINT_WARN_SUPPRESS_FIX_ACTIVE": "Elimine '{rule}' de 'suppressFixes' y actualice la estructura de directorios de su API para adaptarse al comportamiento corregido antes de actualizar a v4.",
|
|
63
120
|
"V3_CONFIG_DEPRECATED": "La opción de configuración '{option}' está obsoleta y se eliminará en v4. Utilice '{replacement}' en su lugar.",
|
|
121
|
+
"HINT_V3_CONFIG_DEPRECATED": "Esta opción de configuración fue renombrada para mayor claridad. Actualice su código para usar el nuevo nombre de opción y garantizar compatibilidad futura con v4.",
|
|
64
122
|
"V2_CONFIG_UNSUPPORTED": "La opción de configuración '{option}' de v2 no está soportada en v3. {hint} Use '{replacement}' en su lugar.",
|
|
123
|
+
"HINT_V2_CONFIG_UNSUPPORTED": "Esta opción de configuración de v2 no está soportada en v3. Actualice su configuración para usar el equivalente de v3 para un mejor control y claridad.",
|
|
65
124
|
"DEBUG_MODE_ROOT_CONTRIBUTOR": "[{mode}] Contribuidor raíz detectado: {functionName}",
|
|
66
125
|
"DEBUG_MODE_ROOT_CONTRIBUTOR_APPLIED": "[{mode}] Patrón de contribuidor raíz aplicado: API de función con {properties} propiedades adicionales",
|
|
67
126
|
"DEBUG_MODE_PROCESSING_DIRECTORY": "[{mode}] Procesando directorio: {categoryName} (profundidad {currentDepth})",
|
|
@@ -230,72 +289,15 @@
|
|
|
230
289
|
"DEBUG_MODE_LAZY_WRAPPER_MATERIALIZED": "Envoltorio diferido materializado",
|
|
231
290
|
"DEBUG_MODE_ALL_LAZY_WRAPPERS_MATERIALIZED": "Todos los envoltorios diferidos materializados",
|
|
232
291
|
"HINT_REFERENCE_REMOVED": "La exportación 'reference' ha sido eliminada de '@cldmv/slothlet/runtime'. Los objetos de referencia ahora se fusionan directamente en la API. Acceda a ellos a través de 'self.*' en su lugar (ej., 'self.myRefProperty').",
|
|
233
|
-
"HINT_MODULE_NOT_FOUND": "Asegúrese de que el módulo existe y la ruta es correcta. Compruebe si hay errores tipográficos en la sentencia de importación.",
|
|
234
292
|
"HINT_SYNTAX_ERROR": "Compruebe si hay errores de sintaxis en el archivo del módulo. Problemas comunes: falta de paréntesis, cadenas de texto sin cerrar o sintaxis de JavaScript inválida.",
|
|
235
|
-
"HINT_CONTEXT_NOT_FOUND": "Asegúrese de que la instancia de slothlet está inicializada y el contexto se ha creado antes de acceder a él. Compruebe que está usando el ID de instancia correcto.",
|
|
236
|
-
"HINT_CONTEXT_ALREADY_EXISTS": "Este contexto ya existe. Compruebe si está intentando inicializar la misma instancia dos veces.",
|
|
237
|
-
"HINT_CONTEXT_EXECUTION_FAILED": "Ocurrió un error al ejecutar la función. Consulte los detalles del error para más información.",
|
|
238
|
-
"HINT_NO_ACTIVE_CONTEXT": "No se encontró un contexto activo. Asegúrese de que está llamando a esta función desde dentro de un contexto de slothlet (modo async o live).",
|
|
239
|
-
"HINT_NO_ACTIVE_CONTEXT_ASYNC": "No se encontró un contexto activo. Asegúrese de que está llamando a esta función desde dentro de un contexto asíncrono de slothlet.",
|
|
240
|
-
"HINT_NO_ACTIVE_CONTEXT_LIVE": "No se encontró un contexto activo. Asegúrese de que está llamando a esta función desde dentro de un contexto de slothlet en vivo.",
|
|
241
|
-
"HINT_OWNERSHIP_INVALID_MODULE_ID": "El ID del módulo es inválido. Asegúrese de que el módulo se cargó correctamente y el ID es correcto.",
|
|
242
|
-
"HINT_OWNERSHIP_INVALID_API_PATH": "La ruta de la API es inválida. Asegúrese de que el formato de la ruta es correcto.",
|
|
243
|
-
"HINT_OWNERSHIP_CONFLICT": "La ruta ya pertenece a otro módulo. Opciones: (1) Use forceOverwrite: true en las opciones de api.add(), (2) Establezca la configuración de colisión en 'merge' o 'replace', (3) Llame a api.slothlet.api.remove() primero para limpiar la ruta.",
|
|
244
|
-
"HINT_INVALID_CONFIG": "Compruebe el valor de la configuración y asegúrese de que coincide con el tipo y formato esperados.",
|
|
245
|
-
"HINT_INVALID_CONFIG_DIR_INVALID": "Asegúrese de que la ruta del directorio es una cadena válida y apunta a un directorio existente.",
|
|
246
|
-
"HINT_INVALID_CONFIG_FORCE_OVERWRITE_REQUIRES_MODULE_ID": "Cuando use forceOverwrite o allowOverwrite, debe proporcionar un moduleID único para rastrear la propiedad de la ruta sobrescrita.",
|
|
247
|
-
"HINT_COLLISION_ERROR": "El modo de colisión está establecido en 'error', lo que evita cualquier sobrescritura. Use en su lugar collision: 'merge' (combinar propiedades), 'replace' (sobrescribir completamente), 'warn' (advertir pero mantener el existente) o 'skip' (ignorar silenciosamente).",
|
|
248
|
-
"HINT_COLLISION_DEFAULT_EXPORT_ERROR": "Una exportación nombrada entra en conflicto con una propiedad ya presente en el objeto de exportación por defecto en esta ruta. Cambie el modo de colisión a 'merge', 'replace', 'warn' o 'skip', o renonmbre la propiedad en conflicto.",
|
|
249
|
-
"HINT_INVALID_ARGUMENT": "La ruta debe ser una cadena con notación de puntos (ej., 'math.add').",
|
|
250
|
-
"HINT_RUNTIME_NO_ACTIVE_CONTEXT": "metadata.self() debe ser llamado desde dentro de una función de la API de slothlet.",
|
|
251
|
-
"HINT_INVALID_CONFIG_MODE_INVALID": "El modo debe ser 'eager' o 'lazy'.",
|
|
252
|
-
"HINT_INVALID_CONFIG_MODE_UNKNOWN": "Se ha especificado un modo desconocido. Use 'eager' o 'lazy'.",
|
|
253
|
-
"HINT_INVALID_CONFIG_DIR_MISSING": "La ruta del directorio es obligatoria pero no se ha proporcionado.",
|
|
254
|
-
"HINT_INVALID_CONFIG_API_PATH_INVALID": "Asegúrese de que la ruta de la API es una cadena de notación de puntos válida (ej., 'plugins.tools') sin segmentos vacíos ni nombres reservados (slothlet, shutdown, destroy).",
|
|
255
|
-
"HINT_INVALID_CONFIG_MUTATIONS_DISABLED": "Las operaciones de mutación de la API requieren allowMutation: true en la configuración. Use diagnostics: true para acceder a estos métodos para pruebas sin habilitar las mutaciones reales.",
|
|
256
|
-
"HINT_CACHE_MODULEID_MISMATCH": "Este es un error interno que indica corrupción de la caché. Por favor, informe de este problema aportando los pasos para reproducirlo.",
|
|
257
|
-
"HINT_CACHE_NOT_FOUND": "Asegúrese de que el módulo se ha cargado antes de intentar recargarlo o reconstruir su caché. Compruebe que el moduleID es correcto.",
|
|
258
|
-
"HINT_CACHE_MANAGER_NOT_AVAILABLE": "El gestor de caché debería inicializarse automáticamente. Si ve este error, puede indicar un problema de inicialización interna.",
|
|
259
|
-
"HINT_INVALID_METADATA_TARGET": "El objetivo debe ser una función u objeto cargado a través de Slothlet. Pase la referencia real de la función/objeto, no una cadena ni un valor primitivo.",
|
|
260
|
-
"HINT_METADATA_NO_MODULE_ID": "Asegúrese de que la función/objeto se cargó a través del sistema de módulos de Slothlet. Solo las funciones gestionadas por Slothlet tienen metadatos asociados.",
|
|
261
|
-
"HINT_METADATA_LIFECYCLE_BYPASS": "Nunca llame a tagSystemMetadata() directamente. En su lugar, active los eventos de ciclo de vida 'impl:created' o 'impl:changed', que invocarán tagSystemMetadata() a través del canal adecuado.",
|
|
262
|
-
"HINT_INVALID_METADATA_KEY": "Las claves de metadatos deben ser cadenas, arrays de cadenas u objetos con valores de array. Compruebe que el formato de la clave coincide con uno de estos tipos.",
|
|
263
|
-
"HINT_WARNING_METADATA_MISMATCH": "Esta advertencia indica que la ubicación de ejecución de la función no coincide con su ruta de metadatos registrada. Esto puede ocurrir durante una recarga en caliente o si la función fue alterada. En la mayoría de los casos, esto es de esperar durante el desarrollo con la recarga en caliente habilitada.",
|
|
264
|
-
"HINT_WARNING_INIT_COMPONENT_SKIPPED": "Los archivos de componentes que fallen al importar se omitirán. Esto es normal para componentes opcionales. Compruebe el mensaje de error para más detalles si el componente debería haberse cargado.",
|
|
265
|
-
"HINT_WARNING_MULTIPLE_ROOT_CONTRIBUTORS": "Múltiples archivos exportan funciones por defecto en el nivel raíz. Cada una ha sido organizada en su propio espacio de nombres (ej., api.filename()). Considere consolidarlos en una única exportación raíz o mover los archivos a subdirectorios para una organización más clara.",
|
|
266
|
-
"HINT_WARNING_HOT_RELOAD_PATH_COLLISION": "Ocurrió una colisión durante la recarga en caliente en la ruta especificada. Se mantiene el valor existente. Para forzar el reemplazo, use el modo de colisión 'replace' en lugar de 'warn'.",
|
|
267
|
-
"HINT_WARNING_HOT_RELOAD_MERGE_PRIMITIVES": "No se pueden fusionar valores primitivos (cadenas, números, booleanos). Para reemplazar el valor, use el modo de colisión 'replace'. Para mantener el valor existente, continúe usando el modo 'warn'.",
|
|
268
|
-
"HINT_WARNING_OWNERSHIP_CONFLICT": "La ruta ya pertenece a otro módulo. Para forzar la sobrescritura, use forceOverwrite: true en las opciones de api.add(), o llame a api.slothlet.api.remove() primero para limpiar la ruta.",
|
|
269
|
-
"HINT_V2_CONFIG_UNSUPPORTED": "Esta opción de configuración de v2 no está soportada en v3. Actualice su configuración para usar el equivalente de v3 para un mejor control y claridad.",
|
|
270
|
-
"HINT_V3_CONFIG_DEPRECATED": "Esta opción de configuración fue renombrada para mayor claridad. Actualice su código para usar el nuevo nombre de opción y garantizar compatibilidad futura con v4.",
|
|
271
|
-
"HINT_MODULE_LOAD_FAILED": "Compruebe el archivo del módulo en busca de errores. Asegúrese de que tiene una sintaxis de JavaScript válida y exportaciones.",
|
|
272
|
-
"HINT_MODULE_IMPORT_FAILED": "Asegúrese de que el archivo del módulo existe y puede ser importado. Compruebe si hay errores de sintaxis o dependencias faltantes.",
|
|
273
|
-
"HINT_MODULE_NO_EXPORTS": "El módulo debe exportar al menos una función u objeto.",
|
|
274
|
-
"HINT_INVALID_DIRECTORY": "Asegúrese de que la ruta del directorio es correcta y el directorio existe y es accesible.",
|
|
275
|
-
"HINT_WARN_DIRECTORY_EMPTY": "Compruebe que la ruta del directorio es correcta. Los directorios vacíos son válidos para los flujos de trabajo de add-api donde los módulos se añadirán dinámicamente.",
|
|
276
|
-
"HINT_INVALID_CONFIG_LAZY_NOT_READY": "En modo diferido, acceda a las propiedades para activar la materialización antes de llamar a funciones.",
|
|
277
|
-
"HINT_INTERNAL_INVALID_STATE": "Ocurrió un error de estado interno. Esto es probablemente un bug — por favor, infórmelo aportando detalles.",
|
|
278
|
-
"HINT_INTERNAL_HOOK_STATE_CORRUPT": "El estado interno de HookManager es inconsistente. Esto nunca debería ocurrir con un uso normal — por favor, envíe un informe de bug incluyendo cómo llamó a hook.on() y hook.remove().",
|
|
279
|
-
"HINT_INVALID_CONFIG_LAZY_ASYNC_REQUIRED": "Sugerencia: El modo diferido requiere operaciones asíncronas. Use el modo inmediato (eager) o implemente patrones asíncronos adecuados.",
|
|
280
|
-
"HINT_RUNTIME_NO_ACTIVE_CONTEXT_SELF": "No se puede acceder a 'self' fuera del contexto de una función de la API de slothlet.",
|
|
281
|
-
"HINT_RUNTIME_NO_ACTIVE_CONTEXT_CONTEXT": "No se puede acceder a 'context' fuera de una función de la API de slothlet. El contexto solo puede modificarse dentro de llamadas a la API de slothlet.",
|
|
282
|
-
"HINT_LOOSE_SET_NOT_OWNED": "Un módulo cuyo apiPath es \"P\" solo puede escribir bajo \"P.*\". Para registrar código en otro espacio de nombres, llama a api.slothlet.api.add().",
|
|
283
|
-
"HINT_LOOSE_SET_RESERVED_KEY": "Los segmentos __proto__, prototype y constructor no pueden usarse como nombres de apiPath porque escribir en ellos mutaría la cadena de prototipos de JavaScript. Elige otro nombre.",
|
|
284
|
-
"HINT_INVALID_CONFIG_NOT_LOADED": "La instancia debe estar cargada antes de realizar esta operación. Llame a load() primero.",
|
|
285
|
-
"HINT_INVALID_CONFIG_RELOAD_NOT_IMPL": "Sugerencia: La funcionalidad de recarga aún no está implementada y se añadirá en una iteración futura.",
|
|
286
|
-
"HINT_WARNING_RESERVED_PROPERTY_CONFLICT": "El nombre de propiedad 'slothlet' está reservado para métodos integrados de la API. Renombre su módulo de API o su propiedad para evitar conflictos con slothlet.shutdown(), slothlet.api.*, etc.",
|
|
287
|
-
"HINT_DEPRECATED_CONFIG_OPTION": "Esta opción de configuración está obsoleta y se eliminará en una versión futura. Actualice su configuración para usar el reemplazo recomendado.",
|
|
288
|
-
"HINT_ERROR_RUNTIME_IMPORT_FAILED": "No se pudo cargar el módulo de tiempo de ejecución. Esto puede ocurrir si la exportación @cldmv/slothlet/runtime no está disponible o si hay una dependencia circular. Algunas características que requieren acceso en tiempo de ejecución pueden verse limitadas.",
|
|
289
|
-
"INVALID_HOOK_TYPE": "Tipo de gancho inválido \"{type}\". Debe ser uno de: {validTypes}.",
|
|
290
293
|
"INVALID_HOOK_HANDLER": "El manejador de gancho debe ser una función. Tipo recibido: {receivedType}.",
|
|
291
|
-
"DUPLICATE_HOOK_ID": "Ya existe un gancho con ID \"{id}\". Use un ID único u omita la opción id para generar uno automáticamente.",
|
|
292
|
-
"INVALID_HOOK_SUBSET": "Subconjunto de gancho inválido \"{subset}\". Debe ser \"before\", \"primary\" o \"after\". Subconjuntos válidos: {validSubsets}.",
|
|
293
|
-
"INVALID_TYPE_PATTERN": "Patrón de tipo inválido \"{typePattern}\". {expected}",
|
|
294
|
-
"HINT_INVALID_HOOK_TYPE": "Use uno de los tipos de gancho válidos: before, after, always o error.",
|
|
295
294
|
"HINT_INVALID_HOOK_HANDLER": "Proporcione una función como manejador del gancho, no una cadena u otro tipo.",
|
|
295
|
+
"DUPLICATE_HOOK_ID": "Ya existe un gancho con ID \"{id}\". Use un ID único u omita la opción id para generar uno automáticamente.",
|
|
296
296
|
"HINT_DUPLICATE_HOOK_ID": "Use un valor de id diferente o elimine la opción id para dejar que Slothlet genere un ID único automáticamente.",
|
|
297
|
+
"INVALID_HOOK_SUBSET": "Subconjunto de gancho inválido \"{subset}\". Debe ser \"before\", \"primary\" o \"after\". Subconjuntos válidos: {validSubsets}.",
|
|
297
298
|
"HINT_INVALID_HOOK_SUBSET": "Los subconjuntos controlan el orden de ejecución. Use 'before' para preprocesamiento, 'primary' (por defecto) para ganchos principales, o 'after' para postprocesamiento.",
|
|
298
|
-
"
|
|
299
|
+
"INVALID_TYPE_PATTERN": "Patrón de tipo inválido \"{typePattern}\". {expected}",
|
|
300
|
+
"HINT_INVALID_TYPE_PATTERN": "Los patrones de hook usan la forma 'pattern:type', como 'math.*:before' o '**:error'. La forma anterior 'type:pattern' todavía funciona pero está en desuso.",
|
|
299
301
|
"HOOK_BEFORE_RETURNED_PROMISE": "El gancho 'before' '{id}' para la ruta '{path}' devolvió una Promesa. Los ganchos 'before' deben ser sínconos.",
|
|
300
302
|
"HINT_HOOK_BEFORE_RETURNED_PROMISE": "Los ganchos 'before' se ejecutan sínconamente antes de la llamada a la API. Elimine el uso de async/await o Promesas de este gancho, o cámbielo a un gancho 'after' si necesita procesamiento asíncrono.",
|
|
301
303
|
"HOOK_BRACE_EXPANSION_MAX_DEPTH": "La expansión de llaves en el patrón del gancho excede la profundidad máxima de anidamiento de {maxDepth}.",
|
|
@@ -383,11 +385,11 @@
|
|
|
383
385
|
"INVALID_CONFIG_VERSION_DISPATCHER": "config.versionDispatcher debe ser una cadena (clave de metadatos) o una función; recibido: {received}",
|
|
384
386
|
"INVALID_CONFIG_VERSION_TAG": "versionConfig.version debe ser una cadena no vacía; recibido: {received}",
|
|
385
387
|
"VERSION_NOT_FOUND": "La versión '{version}' no está registrada en la ruta '{apiPath}'.",
|
|
388
|
+
"HINT_VERSION_NOT_FOUND": "Llame a api.slothlet.versioning.list('{apiPath}') para ver qué etiquetas de versión están actualmente registradas en esa ruta.",
|
|
386
389
|
"VERSION_NO_DEFAULT": "No hay versión predeterminada configurada para la ruta '{apiPath}' y no se pudo resolver ninguna versión desde los metadatos del llamador.",
|
|
387
390
|
"VERSION_DISPATCH_NOT_CALLABLE": "El despachador versionado en '{apiPath}' es un namespace, no una función invocable.",
|
|
388
391
|
"VERSION_REGISTER_DUPLICATE": "La versión '{version}' ya está registrada en la ruta '{apiPath}'. Use collisionMode 'replace' para sobrescribir.",
|
|
389
392
|
"HINT_VERSION_REGISTER_DUPLICATE": "Llame primero a api.slothlet.versioning.unregister('{apiPath}', '{version}') o regístrela con una etiqueta de versión diferente.",
|
|
390
|
-
"HINT_VERSION_NOT_FOUND": "Llame a api.slothlet.versioning.list('{apiPath}') para ver qué etiquetas de versión están actualmente registradas en esa ruta.",
|
|
391
393
|
"VERSION_DISCRIMINATOR_INVALID_RETURN": "La función versionDispatcher devolvió '{returned}', que no es una etiqueta de versión registrada para la ruta '{apiPath}'.",
|
|
392
394
|
"DEBUG_VERSION_RESOLVED": "Versión resuelta: {version} para la ruta {apiPath} (llamador: {callerModule})",
|
|
393
395
|
"DEBUG_VERSION_DEFAULT_USED": "Sin coincidencia del discriminador para la ruta {apiPath}; se usa la versión predeterminada {version}.",
|
|
@@ -417,7 +419,27 @@
|
|
|
417
419
|
"HINT_MODULE_MANIFEST_NOT_FOUND": "Los módulos plugin deben incluir un 'slothlet.module.json' en la raíz del paquete (o el archivo/clave especificado mediante la sobrescritura `manifest`). Verifica que el archivo exista en el paquete y que el localizador de sobrescritura sea correcto.",
|
|
418
420
|
"MODULE_MANIFEST_INVALID": "El manifiesto del módulo no es válido para el paquete '{packageName}' en '{manifestPath}': {reason}.",
|
|
419
421
|
"HINT_MODULE_MANIFEST_INVALID": "Abre el manifiesto y asegúrate de que sea JSON válido y coincida con el esquema del módulo slothlet (consulta schemas/slothlet.module.schema.json). Campos requeridos: schemaVersion, mountPath, apiDir.",
|
|
420
|
-
"
|
|
422
|
+
"MODULE_MANIFEST_REASON_NOT_OBJECT": "el manifiesto debe ser un objeto JSON",
|
|
423
|
+
"MODULE_MANIFEST_REASON_MISSING_FIELD": "falta el campo requerido '{field}'",
|
|
424
|
+
"MODULE_MANIFEST_REASON_FIELD_TYPE": "el campo '{field}' debe ser {expected}",
|
|
425
|
+
"EXPECTED_NON_EMPTY_STRING": "una cadena no vacía",
|
|
426
|
+
"EXPECTED_STRING": "una cadena",
|
|
427
|
+
"EXPECTED_FINITE_NUMBER": "un número finito",
|
|
428
|
+
"EXPECTED_PLAIN_OBJECT": "un objeto plano",
|
|
429
|
+
"EXPECTED_ARRAY_OF_RULE_OBJECTS": "una matriz de objetos de regla",
|
|
430
|
+
"MODULE_MANIFEST_REASON_MOUNTPATH_SHAPE": "el campo 'mountPath' debe ser una cadena no vacía o un arreglo no vacío de cadenas no vacías",
|
|
431
|
+
"MODULE_MANIFEST_REASON_MOUNTPATH_ENTRIES": "todas las entradas del arreglo del campo 'mountPath' deben ser cadenas no vacías",
|
|
432
|
+
"MODULE_MANIFEST_REASON_DEPENDENCY_TYPE": "la dependencia '{dependency}' debe ser un rango de versión en cadena",
|
|
433
|
+
"MODULE_MANIFEST_REASON_PERMISSION_RULE": "permissions[{index}] debe ser un objeto de regla",
|
|
434
|
+
"MODULE_MANIFEST_REASON_PERMISSION_CALLER": "permissions[{index}].caller debe ser una cadena no vacía",
|
|
435
|
+
"MODULE_MANIFEST_REASON_PERMISSION_TARGET": "permissions[{index}].target debe ser una cadena no vacía",
|
|
436
|
+
"MODULE_MANIFEST_REASON_PERMISSION_EFFECT": "permissions[{index}].effect debe ser \"allow\" o \"deny\"",
|
|
437
|
+
"MODULE_MANIFEST_REASON_JSON_PARSE": "error al analizar JSON: {error}",
|
|
438
|
+
"GENERATE_MANIFEST_DIR_INVALID": "generateManifest: dir debe ser una cadena no vacía, se recibió {received}",
|
|
439
|
+
"GENERATE_MANIFEST_DIR_UNREADABLE": "generateManifest: no se puede leer el directorio \"{dir}\": {reason}",
|
|
440
|
+
"GENERATE_MANIFEST_NOT_DIRECTORY": "generateManifest: \"{dir}\" no es un directorio",
|
|
441
|
+
"GENERATE_BROWSER_ASSETS_SLOTHLET_BASE_INVALID": "generateBrowserAssets: options.slothletBase debe ser una cadena (ruta desde la que se sirve @cldmv/slothlet en el navegador), se recibió {received}",
|
|
442
|
+
"MODULE_MANIFEST_UNKNOWN_FIELD": "El manifiesto del módulo para el paquete '{packageName}' en '{manifestPath}' contiene un campo de nivel superior no reconocido '{field}'. Los campos desconocidos son rechazados; usa el bloque 'metadata' dedicado para extras definidos por el desarrollador.",
|
|
421
443
|
"HINT_MODULE_MANIFEST_UNKNOWN_FIELD": "Si '{field}' es un error tipográfico, corrígelo. Si son metadatos intencionales del desarrollador, muévelos dentro del objeto 'metadata'.",
|
|
422
444
|
"MODULE_MANIFEST_NAME_MISMATCH": "El manifiesto del módulo para el paquete '{packageName}' declara el nombre '{manifestName}' que no coincide con el nombre en package.json '{packageName}'.",
|
|
423
445
|
"HINT_MODULE_MANIFEST_NAME_MISMATCH": "El campo 'name' en slothlet.module.json es opcional pero debe coincidir con package.json cuando está presente. Elimina el campo 'name' del manifiesto o alinéalo con package.json.",
|
|
@@ -434,7 +456,11 @@
|
|
|
434
456
|
"MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "El paquete de módulo '{packageName}' versión '{version}' se encontró en múltiples rutas reales distintas: {paths}.",
|
|
435
457
|
"HINT_MODULE_DUPLICATE_NAME_VERSION_MISMATCH": "Esto es casi con certeza una configuración incorrecta — el mismo paquete en la misma versión instalado en dos ubicaciones no relacionadas. Investiga cuál instalación es la deseada y elimina la otra.",
|
|
436
458
|
"MODULE_MOUNT_COLLISION": "El paquete de módulo '{packageName}' no se puede montar en '{mountPath}': la ruta ya está ocupada por el módulo '{existingModuleID}' y collisionMode es '{collisionMode}'.",
|
|
437
|
-
"HINT_MODULE_MOUNT_COLLISION": "Cambia el mountPath del manifiesto, pasa `collisionMode: \"merge\"` a `addModule()` / `addModules()` para permitir la coexistencia, o llama primero a `removeModule()` en el módulo existente."
|
|
459
|
+
"HINT_MODULE_MOUNT_COLLISION": "Cambia el mountPath del manifiesto, pasa `collisionMode: \"merge\"` a `addModule()` / `addModules()` para permitir la coexistencia, o llama primero a `removeModule()` en el módulo existente.",
|
|
460
|
+
"HOOK_TYPEPATTERN_PREFIX_DEPRECATED": "La forma de registro de hook '{given}' está obsoleta y se eliminará en v4. Usa en su lugar la forma con la ruta primero '{suggested}' (p. ej. 'math.*:before').",
|
|
461
|
+
"HINT_HOOK_TYPEPATTERN_PREFIX_DEPRECATED": "Mueve el tipo de hook al final como sufijo: reescribe un selector con el tipo primero como 'before:math.add' a la forma con la ruta primero 'math.add:before'.",
|
|
462
|
+
"HOOK_UNPINNED_IGNORED": "lockCaller:false se ignoró para el hook '{pattern}'; los hooks se fijan a su módulo de registro. Configura hook.pin:false (init) o llama a api.slothlet.hook.pin.disable() para permitir hooks no fijados.",
|
|
463
|
+
"HINT_HOOK_UNPINNED_IGNORED": "Los hooks registrados por un módulo siempre se fijan a su propietario por seguridad. Para permitir hooks no fijados, configura hook.pin:false en la configuración de slothlet o llama a api.slothlet.hook.pin.disable() en tiempo de ejecución."
|
|
438
464
|
},
|
|
439
465
|
"metadata": {
|
|
440
466
|
"code": "es-mx",
|