xonecode 0.1.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 +167 -0
- package/dist/agent/authEnDisco.js +56 -0
- package/dist/agent/authEnDisco.js.map +1 -0
- package/dist/agent/configEnDisco.js +109 -0
- package/dist/agent/configEnDisco.js.map +1 -0
- package/dist/agent/crearProyecto.js +34 -0
- package/dist/agent/crearProyecto.js.map +1 -0
- package/dist/agent/entorno.js +124 -0
- package/dist/agent/entorno.js.map +1 -0
- package/dist/agent/guionizado.js +53 -0
- package/dist/agent/guionizado.js.map +1 -0
- package/dist/agent/instantanea.js +129 -0
- package/dist/agent/instantanea.js.map +1 -0
- package/dist/agent/interrupts.js +83 -0
- package/dist/agent/interrupts.js.map +1 -0
- package/dist/agent/mensajes.js +24 -0
- package/dist/agent/mensajes.js.map +1 -0
- package/dist/agent/modelos.js +42 -0
- package/dist/agent/modelos.js.map +1 -0
- package/dist/agent/normalizar.js +20 -0
- package/dist/agent/normalizar.js.map +1 -0
- package/dist/agent/perfiles.js +103 -0
- package/dist/agent/perfiles.js.map +1 -0
- package/dist/agent/proyecto.js +107 -0
- package/dist/agent/proyecto.js.map +1 -0
- package/dist/agent/puente.js +142 -0
- package/dist/agent/puente.js.map +1 -0
- package/dist/agent/resumenDeTool.js +48 -0
- package/dist/agent/resumenDeTool.js.map +1 -0
- package/dist/agent/skills.js +65 -0
- package/dist/agent/skills.js.map +1 -0
- package/dist/agent/textoDeTool.js +113 -0
- package/dist/agent/textoDeTool.js.map +1 -0
- package/dist/agent/turnoReal.js +173 -0
- package/dist/agent/turnoReal.js.map +1 -0
- package/dist/agent/verificador.js +65 -0
- package/dist/agent/verificador.js.map +1 -0
- package/dist/agent/xoneAgent.js +106 -0
- package/dist/agent/xoneAgent.js.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/aprobar.js +82 -0
- package/dist/cli/aprobar.js.map +1 -0
- package/dist/cli/config.js +133 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/consola.js +346 -0
- package/dist/cli/consola.js.map +1 -0
- package/dist/cli/describe.js +53 -0
- package/dist/cli/describe.js.map +1 -0
- package/dist/cli/doctor.js +45 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/main.js +520 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/markdown.js +90 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/run.js +164 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/spinner.js +89 -0
- package/dist/cli/spinner.js.map +1 -0
- package/dist/cli/stdio.js +193 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/tema.js +40 -0
- package/dist/cli/tema.js.map +1 -0
- package/dist/cli/verify.js +62 -0
- package/dist/cli/verify.js.map +1 -0
- package/dist/core/bitacora.js +30 -0
- package/dist/core/bitacora.js.map +1 -0
- package/dist/core/config.js +236 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextos.js +56 -0
- package/dist/core/contextos.js.map +1 -0
- package/dist/core/deps.js +51 -0
- package/dist/core/deps.js.map +1 -0
- package/dist/core/diff.js +79 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/esqueleto.js +366 -0
- package/dist/core/esqueleto.js.map +1 -0
- package/dist/core/events.js +2 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/modelos.js +85 -0
- package/dist/core/modelos.js.map +1 -0
- package/dist/core/notify.js +106 -0
- package/dist/core/notify.js.map +1 -0
- package/dist/core/ports.js +114 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/turno.js +127 -0
- package/dist/core/turno.js.map +1 -0
- package/dist/vendor/hitl.js +103 -0
- package/dist/vendor/hitl.js.map +1 -0
- package/dist/vendor/skillLoaders/catalog.js +74 -0
- package/dist/vendor/skillLoaders/catalog.js.map +1 -0
- package/dist/vendor/tokenTracking.js +58 -0
- package/dist/vendor/tokenTracking.js.map +1 -0
- package/package.json +41 -0
- package/skills/xone-debugging/SKILL.md +52 -0
- package/skills/xone-debugging/references/faq.md +561 -0
- package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
- package/skills/xone-development/SKILL.md +105 -0
- package/skills/xone-development/references/anti-patrones.md +94 -0
- package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
- package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
- package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
- package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
- package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
- package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
- package/skills/xone-development/references/datos/appdata.md +611 -0
- package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
- package/skills/xone-development/references/datos/http.md +366 -0
- package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
- package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
- package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
- package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
- package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
- package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
- package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
- package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
- package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
- package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
- package/skills/xone-development/references/indice-completo.md +77 -0
- package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
- package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
- package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
- package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
- package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
- package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
- package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
- package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
- package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
- package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
- package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
- package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
- package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
- package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
- package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
- package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
- package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
- package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
- package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
- package/skills/xone-development/references/tipos-de-prop.md +28 -0
- package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
- package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
- package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
- package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
- package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
- package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
- package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
- package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
- package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
- package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
- package/skills/xone-development/references/xml-ui/mapas.md +685 -0
- package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
- package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
- package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
- package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
- package/skills/xone-plan-builder/SKILL.md +183 -0
- package/skills/xone-plan-builder/agents/openai.yaml +5 -0
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
- package/skills/xone-project-generator/SKILL.md +111 -0
- package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
- package/skills/xone-project-generator/references/colecciones-base.md +16 -0
- package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
- package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
- package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
- package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
- package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
- package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
- package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
- package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
- package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
- package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
- package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
- package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
- package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
- package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
- package/skills/xone-review/SKILL.md +189 -0
- package/skills/xone-spec-builder/SKILL.md +235 -0
- package/skills/xone-spec-builder/agents/openai.yaml +5 -0
- package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
- package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
- package/skills/xone-spec-builder/references/PLAN-FORMAT.md +120 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Generación XOne — Ejemplos por sector y prohibiciones
|
|
2
|
+
|
|
3
|
+
> Fuente: `xone/v2/xone-project-generator/references/xone-project-generation-workflow.md` §14, §16. Referencia de la skill; el índice está en [../SKILL.md](../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Contenido: §14 ejemplos por sector (logística, energía, comercio, salud, servicios) · §16 prohibiciones explícitas: lo que no se debe hacer nunca y la regla de oro
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 14. Ejemplos por Sector
|
|
10
|
+
|
|
11
|
+
### 14.1 Logistica
|
|
12
|
+
|
|
13
|
+
**Colecciones típicas:** Almacenes, Productos, Ubicaciones, Movimientos, Inventarios, Lotes
|
|
14
|
+
**Pantallas típicas:** Escaneo QR/código barras, Mapa de almacen, Lista de productos, Detalle de movimiento
|
|
15
|
+
**Integraciones:** Camara (escaneo QR), GPS (ubicaciones), Firma digital (recepciones)
|
|
16
|
+
|
|
17
|
+
**Ejemplo de colecciones:**
|
|
18
|
+
- Productos.xne - Catálogo con CODIGO_BARRAS, NOMBRE, STOCK, UBICACION
|
|
19
|
+
- Movimientos.xne - Entradas/salidas con TIPO, ID_PRODUCTO (FK), CANTIDAD, FECHA
|
|
20
|
+
- Inventarios.xne - Conteos con FECHA, ESTADO, OBSERVACIONES
|
|
21
|
+
|
|
22
|
+
### 14.2 Energía
|
|
23
|
+
|
|
24
|
+
**Colecciones típicas:** Instalaciones, Contadores, Lecturas, OrdenesTrabajo, Materiales, Checklists
|
|
25
|
+
**Pantallas típicas:** Ruta de lecturas, Detalle de contador, Formulario OT, Checklist
|
|
26
|
+
**Integraciones:** Camara (foto contador), GPS (ubicación), NFC (identificación equipo)
|
|
27
|
+
|
|
28
|
+
**Ejemplo de colecciones:**
|
|
29
|
+
- Contadores.xne - Puntos de lectura con NUMERO_SERIE, TIPO, DIRECCION, LATITUD, LONGITUD
|
|
30
|
+
- Lecturas.xne - Lecturas con ID_CONTADOR (FK), VALOR, FOTO, FECHA, ANOMALIA
|
|
31
|
+
- OrdenesTrabajo.xne - Mantenimiento con DESCRIPCION, PRIORIDAD, ESTADO
|
|
32
|
+
|
|
33
|
+
### 14.3 Comercio
|
|
34
|
+
|
|
35
|
+
**Colecciones típicas:** Clientes, Productos, Pedidos, LineasPedido, Facturas, Rutas
|
|
36
|
+
**Pantallas típicas:** Lista de clientes, Catálogo, Crear pedido, Historial
|
|
37
|
+
**Integraciones:** GPS (visitas), Firma digital (aceptacion), Bluetooth (impresora tickets)
|
|
38
|
+
|
|
39
|
+
**Ejemplo de colecciones:**
|
|
40
|
+
- Clientes.xne - Cartera con NOMBRE, CIF, DIRECCION, TELEFONO, SALDO
|
|
41
|
+
- Pedidos.xne - Con ID_CLIENTE (FK), FECHA, TOTAL, ESTADO
|
|
42
|
+
- LineasPedido.xne - Detalle con ID_PEDIDO (FK), ID_PRODUCTO (FK), CANTIDAD, PRECIO
|
|
43
|
+
|
|
44
|
+
### 14.4 Salud
|
|
45
|
+
|
|
46
|
+
**Colecciones típicas:** Pacientes, Citas, HistorialClinico, Tratamientos, Medicamentos
|
|
47
|
+
**Pantallas típicas:** Agenda, Ficha paciente, Historial, Prescripcion
|
|
48
|
+
**Integraciones:** Camara (fotos clinicas), Firma (consentimiento), Bluetooth (dispositivos)
|
|
49
|
+
|
|
50
|
+
**Ejemplo de colecciones:**
|
|
51
|
+
- Pacientes.xne - Con NOMBRE, DNI, FECHA_NACIMIENTO, GRUPO_SANGUINEO, ALERGIAS
|
|
52
|
+
- Citas.xne - Con ID_PACIENTE (FK), FECHA, HORA, MOTIVO, ESTADO
|
|
53
|
+
- HistorialClinico.xne - Con ID_PACIENTE (FK), DIAGNOSTICO, TRATAMIENTO, FECHA
|
|
54
|
+
|
|
55
|
+
### 14.5 Servicios
|
|
56
|
+
|
|
57
|
+
**Colecciones típicas:** Clientes, Servicios, PartesTrabajo, Materiales, Incidencias
|
|
58
|
+
**Pantallas típicas:** Lista trabajos, Detalle servicio, Parte trabajo, Mapa visitas
|
|
59
|
+
**Integraciones:** GPS (ubicación), Camara (antes/después), Firma digital (conformidad)
|
|
60
|
+
|
|
61
|
+
**Ejemplo de colecciones:**
|
|
62
|
+
- PartesTrabajo.xne - Con ID_CLIENTE (FK), DESCRIPCION, FECHA_INICIO, FECHA_FIN, ESTADO
|
|
63
|
+
- Materiales.xne - Con ID_PARTE (FK), NOMBRE, CANTIDAD, PRECIO
|
|
64
|
+
- Incidencias.xne - Con ID_PARTE (FK), DESCRIPCION, PRIORIDAD, FOTO, RESOLUCION
|
|
65
|
+
|
|
66
|
+
## 16. Prohibiciones Explicitas
|
|
67
|
+
|
|
68
|
+
### 16.1 Lo que NO se debe hacer NUNCA
|
|
69
|
+
|
|
70
|
+
#### En mappings.xne — REGLA ABSOLUTA
|
|
71
|
+
|
|
72
|
+
> **mappings.xne contiene UNICA Y EXCLUSIVAMENTE las colecciones `Empresas` y `Usuarios`. Sin excepciones.**
|
|
73
|
+
|
|
74
|
+
- **NO** añadir ninguna otra coleccion de negocio en `mappings.xne`, aunque sea pequeña, auxiliar o de apoyo
|
|
75
|
+
- **NO** añadir colecciones de catálogos, configuración, parámetros u otras en `mappings.xne`
|
|
76
|
+
- **TODA** coleccion adicional va en su propio fichero `.xne` independiente con el nombre de la coleccion
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
CORRECTO:
|
|
80
|
+
mappings.xne → solo Empresas y Usuarios
|
|
81
|
+
Clientes.xne → coleccion Clientes
|
|
82
|
+
Productos.xne → coleccion Productos
|
|
83
|
+
LineasPedido.xne → coleccion LineasPedido
|
|
84
|
+
|
|
85
|
+
INCORRECTO:
|
|
86
|
+
mappings.xne → Empresas + Usuarios + Clientes + Productos ← PROHIBIDO
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
#### En XML (.xne)
|
|
90
|
+
- **NO** inventar atributos XML que no estén en la knowledgebase
|
|
91
|
+
- **NO** usar nodos HTML (div, span, table)
|
|
92
|
+
- **NO** omitir `##PREF##` en queries SQL
|
|
93
|
+
- **NO** omitir `objname` si la coleccion debe persistirse en BD
|
|
94
|
+
- **NO** omitir campos obligatorios en Empresas: `CODIGO` (N), `NOMBRE` (T)
|
|
95
|
+
- **NO** omitir campos obligatorios en Usuarios: `IDEMPRESA` (N), `CODIGO` (T), `LOGIN` (T), `PWD` (X), `NOMBRE` (T)
|
|
96
|
+
- **NO** usar valores de `visible` fuera del rango 0-7
|
|
97
|
+
- **NO** usar tipos de propiedades no documentados (ver sección 3.3)
|
|
98
|
+
- **NO** usar `L`/`TL`, `THTML`, `B` o `Z` como tipos de datos en BD — son solo visuales
|
|
99
|
+
- **NO** omitir `progid="ASData.CASBasicDataObj"` en colecciones de negocio
|
|
100
|
+
- **NO** escribir la clausula WHERE en el atributo `sql` — usar `filter` para los filtros
|
|
101
|
+
- **NO** escribir ORDER BY en el atributo `sql` — usar `sort` para la ordenacion
|
|
102
|
+
- **NO** usar px en dimensiones de props o frames — usar `p` (puntos) o `%`
|
|
103
|
+
- **NO** olvidar `newline="false"` cuando se quieren elementos en horizontal — sin él, cada elemento ocupa su propia línea aunque los anchos sumen 100%
|
|
104
|
+
- **NO** usar frames vacios como espaciadores — un frame sin props visibles no se renderiza ni ocupa espacio
|
|
105
|
+
- **NO** omitir el prefijo `MAP_` en campos que provienen de tablas enlazadas mediante JOIN — son campos de solo lectura que no se graban en BD
|
|
106
|
+
- **NO** usar el prefijo `MAP_` en campos propios de la tabla principal que si deben grabarse
|
|
107
|
+
- **NO** repetir el mismo `name` en dos nodos dentro de una `<coll>` — es una restricción crítica de la plataforma. **El ambito de unicidad es la `<coll>` ENTERA**, no el `<group>` o `<frame>` inmediato: no pueden existir dos `<prop>`, dos `<group>`, dos `<frame>` ni dos eventos con el mismo `name` en cualquier parte de la misma coll, **aunque estén en `<group>` o `<frame>` distintos**. Razón: el `name` se publica a nivel de la coll (los `collprops`), por lo que actuaria como identificador único ambiguo si se repitiera. Excepción: dos `<coll>` distintas SI pueden tener contenido identico (mismos `name` internos) siempre que el atributo `name` de cada coll sea distinto
|
|
108
|
+
- **NO** usar el mismo `name` en dos `<coll>` del proyecto — cada coleccion debe tener nombre único (este es el único `name` que NO puede coincidir entre colecciones)
|
|
109
|
+
- **NO** declarar eventos de control como nodos XML: `onclick`, `ontextchanged`, `onfocuschanged`, `oneditoraction`, `onlongpress`, `onlongpressitem`, `onscroll`, `onconsolemessage`, `oncodescanned`, `ondateselected`, `onpageselected`, `ondraweropened`, `ondrawerclosed`, etc. son **siempre atributos** del `<prop>`/`<frame>`/`<coll>` con JS inline como valor. Construcciones tipo `<onconsolemessage>...</onconsolemessage>` u `<onclick>...</onclick>` son XML invalidos y XOne las ignora silenciosamente. Unica excepción: `onchange` admite ambas formas (atributo y nodo hijo del prop). Los nodos hijos de `<coll>` que SI existen son eventos de objeto/coleccion (`<create>`, `<load>`, `<before-edit>`, `<after-edit>`, `<onback>`, `<onrefresh>`, `<login-ok>`, `<login-fail>`), no eventos de control
|
|
110
|
+
|
|
111
|
+
#### En CSS
|
|
112
|
+
- **NO** usar unidades web: px, em, rem, vh, vw
|
|
113
|
+
- **NO** usar propiedades CSS web: font-size, margin-top, background-color, display, flex, grid
|
|
114
|
+
- **NO** usar selectores web: #id, elemento > hijo, :hover, :focus
|
|
115
|
+
- **NO** usar media queries (`@media`) ni gradientes / sombras / transformaciones / transiciones de CSS web
|
|
116
|
+
- **SÍ** se pueden usar variables CSS (`:root { --color: red; }` + `var(--color)`), `calc(...)` sobre números puros y `@import "ruta";` al inicio del archivo
|
|
117
|
+
|
|
118
|
+
#### En JavaScript
|
|
119
|
+
- **NO** usar APIs del DOM — XOne no es HTML y no tiene navegador. Estas funciones NO existen en XOne: `document`, `document.getElementById`, `document.querySelector`, `window`, `window.location`, `localStorage`, `sessionStorage`, `XMLHttpRequest`, `navigator`, `history`. Para HTTP idiomático usar `$http`; para navegación usar `ui.*`; para datos usar `self.*` y `appData.*`.
|
|
120
|
+
- **SÍ existen** con implementación custom de XOne y semántica spec-compatible: `Promise` (ES2024 con `all`/`allSettled`/`race`/`any`/`withResolvers`/`.then`/`.catch`/`.finally`), `fetch`, `setTimeout`/`setInterval`, `URL`, `Headers`, `AbortController`, `EventTarget`, `TextEncoder`/`TextDecoder`, `console`, `performance.now()`. Úsalos si el caso lo pide; los callbacks XOne idiomáticos siguen siendo la forma preferida para APIs nativas (`$http.get(url, req, ok, err)`, `ui.startGps(cb)`, etc.).
|
|
121
|
+
- **NO** usar `async`/`await` (parse error).
|
|
122
|
+
- **NO** usar módulos ES6 (`import`/`export`).
|
|
123
|
+
- **NO** asumir que `this` funciona igual que en web (usar `self`).
|
|
124
|
+
- **NO** mezclar sintaxis de React, Angular, Vue u otros frameworks.
|
|
125
|
+
- **SÍ** se puede usar `class` ES6+ (declaraciones, expresiones, `extends`/`super`/`static`/getters/setters/computed keys, **field declarations** `name = expr;` y `static name = expr;`, **generator methods** `*method()`). Los generadores con `yield` (con o sin `*`) usan runtime estilo SpiderMonkey legacy: `gen.next()` devuelve el valor directo y lanza `StopIteration` al terminar; `for...of` no los itera, usar `try { while (true) v = iter.next(); } catch (e) {}`. Limitaciones: no hay private fields `#name`, static blocks, ni `new.target`.
|
|
126
|
+
|
|
127
|
+
#### En Estructura de Proyecto
|
|
128
|
+
- **NO** usar un prefijo diferente a "gen" sin autorización del usuario
|
|
129
|
+
- Los formatos validos para `icons/` son PNG, JPG y SVG
|
|
130
|
+
- **NO** omitir la generación de la base de datos con `xone_db_generator`
|
|
131
|
+
- **NO** omitir la insercion de datos iniciales (Empresa + Usuario admin)
|
|
132
|
+
- **NO** omitir los READMEs en las carpetas
|
|
133
|
+
|
|
134
|
+
### 16.2 Regla de Oro
|
|
135
|
+
|
|
136
|
+
> **Cuando hay duda, SIEMPRE consultar las knowledgebases del proyecto antes de tomar una decisión. Si no hay documentación suficiente, buscar en los proyectos de ejemplo. Si aún así no hay respuesta, PREGUNTAR al usuario.**
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
*Documento generado como guía operativa para agentes de IA en la generación de proyectos XOne. Basado en el análisis de 224 proyectos reales, 5 proyectos sinteticos y la documentación oficial del sistema.*
|