@nac3/forge-cli 1.15.0 → 1.16.1
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/dist/audit/persistence_async.d.ts +101 -0
- package/dist/audit/persistence_async.d.ts.map +1 -0
- package/dist/audit/persistence_async.js +435 -0
- package/dist/audit/persistence_async.js.map +1 -0
- package/dist/bin/yf.d.ts.map +1 -1
- package/dist/bin/yf.js +2 -0
- package/dist/bin/yf.js.map +1 -1
- package/dist/chat/doctrine_digest.d.ts.map +1 -1
- package/dist/chat/doctrine_digest.js +17 -9
- package/dist/chat/doctrine_digest.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +8 -2
- package/dist/chat/server.js.map +1 -1
- package/dist/commands/audit-persistence.d.ts +33 -0
- package/dist/commands/audit-persistence.d.ts.map +1 -0
- package/dist/commands/audit-persistence.js +173 -0
- package/dist/commands/audit-persistence.js.map +1 -0
- package/dist/docs/doctrine/persistence-interface.md +113 -0
- package/dist/relay/in_flight_turn.d.ts +42 -9
- package/dist/relay/in_flight_turn.d.ts.map +1 -1
- package/dist/relay/in_flight_turn.js +57 -13
- package/dist/relay/in_flight_turn.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/doctrine/persistence-interface.md +113 -0
- package/package.json +1 -1
- package/templates/nextjs-app/package.json +2 -1
- package/templates/react-app/package.json +2 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* El candado que faltaba: la interfaz de persistencia es ASINCRONICA desde la
|
|
3
|
+
* linea 1.
|
|
4
|
+
*
|
|
5
|
+
* POR QUE EXISTE (Pablo, 13-oct-2026, mirando ADIP-Kikan). El brain construyo
|
|
6
|
+
* Kikan bien en lo estructural: el primer commit dice "nucleo kawa/sazanami +
|
|
7
|
+
* persistencia MariaDB", hay capa de repositorio, y `mysqlStore` hace
|
|
8
|
+
* write-through a MariaDB con hidratacion al arranque -- el dato productivo es
|
|
9
|
+
* durable y siempre lo fue. La decision equivocada fue UNA, y es una FIRMA:
|
|
10
|
+
* la interfaz del repositorio quedo SINCRONICA. De ahi sale todo lo demas, por
|
|
11
|
+
* mecanica pura:
|
|
12
|
+
*
|
|
13
|
+
* 1. un driver SQL real es asincronico, y una interfaz sincronica no lo puede
|
|
14
|
+
* envolver;
|
|
15
|
+
* 2. entonces el store "de MariaDB" tuvo que quedarse el working set en RAM
|
|
16
|
+
* para servir lecturas sincronas -- su propia cabecera lo dice: "lecturas
|
|
17
|
+
* sincronas, interfaz IDENTICA a createMemoryStore -> no reescribe el
|
|
18
|
+
* motor";
|
|
19
|
+
* 3. y como un working set en memoria no necesita columnas, el esquema
|
|
20
|
+
* degenero en UNA tabla generica de JSON (`engine_rows`), con las 57
|
|
21
|
+
* tablas 3NF como read-model DERIVADO en vez de sistema de registro.
|
|
22
|
+
*
|
|
23
|
+
* Una firma de funcion, y de ahi 1.543 puntos de deuda y nueve slices de
|
|
24
|
+
* conversion.
|
|
25
|
+
*
|
|
26
|
+
* LA ASIMETRIA, que es la razon por la que esto no necesita ninguna ronda de
|
|
27
|
+
* dimensionamiento para decidirse:
|
|
28
|
+
*
|
|
29
|
+
* - `await` sobre un valor que no es Promise NO HACE NADA. Declarar el store
|
|
30
|
+
* asincronico desde la linea 1 cuesta CERO cuando el store es de memoria.
|
|
31
|
+
* - El camino inverso -- sincronico a asincronico -- es cada punto de
|
|
32
|
+
* llamada del sistema. En Kikan fueron 1.543.
|
|
33
|
+
*
|
|
34
|
+
* Dos opciones donde una es gratis y reversible y la otra es una reescritura no
|
|
35
|
+
* son dos opciones: una decision asimetrica se toma SIEMPRE del lado
|
|
36
|
+
* recuperable, incluso sin un solo dato de volumetria.
|
|
37
|
+
*
|
|
38
|
+
* POR QUE "DECLARADO async" Y NO "DEVUELVE UNA PROMISE": la segunda es mas
|
|
39
|
+
* precisa y requiere analisis de flujo. La primera es trivial de cumplir
|
|
40
|
+
* (`async` sobre algo que ya devuelve una promesa no cambia nada) y trivial de
|
|
41
|
+
* verificar. Una regla estricta y simple que cualquiera puede satisfacer vale
|
|
42
|
+
* mas que una regla astuta que hay que interpretar.
|
|
43
|
+
*
|
|
44
|
+
* EL MODO DE FALLAR QUE IMPORTA ES EL FALSO NEGATIVO: un store que el detector
|
|
45
|
+
* no reconoce es deuda que el candado no cuenta, y el numero daria verde sin
|
|
46
|
+
* que nadie haya hecho nada. Por eso un archivo que no se puede analizar va a
|
|
47
|
+
* `ilegibles` y el control FALLA, en vez de contar cero. Misma disciplina que
|
|
48
|
+
* el trinquete de Kikan.
|
|
49
|
+
*
|
|
50
|
+
* ASCII-only.
|
|
51
|
+
*/
|
|
52
|
+
/** Los verbos que tocan una fila. Si un modulo expone varios de estos, es un
|
|
53
|
+
* store, se llame como se llame. */
|
|
54
|
+
export declare const VERBOS_DATOS: readonly ["insert", "bulkInsert", "insertMany", "update", "patch", "upsert", "save", "remove", "removeAll", "delete", "deleteAll", "destroy", "get", "getById", "find", "findOne", "findAll", "findMany", "all", "list", "query", "select", "count", "exists", "first"];
|
|
55
|
+
/** Cuantos verbos distintos tiene que exponer un modulo sin nombre delator
|
|
56
|
+
* para que lo tratemos como store. */
|
|
57
|
+
export declare const VERBOS_MINIMOS_POR_FORMA = 4;
|
|
58
|
+
export type Forma = 'metodo' | 'propiedad-funcion' | 'propiedad-flecha';
|
|
59
|
+
export interface Hallazgo {
|
|
60
|
+
archivo: string;
|
|
61
|
+
linea: number;
|
|
62
|
+
metodo: string;
|
|
63
|
+
forma: Forma;
|
|
64
|
+
}
|
|
65
|
+
export interface Exento {
|
|
66
|
+
archivo: string;
|
|
67
|
+
linea: number;
|
|
68
|
+
metodo: string;
|
|
69
|
+
motivo: string;
|
|
70
|
+
}
|
|
71
|
+
export interface Resultado {
|
|
72
|
+
/** Los modulos que el detector trata como store. */
|
|
73
|
+
modulos: string[];
|
|
74
|
+
/** Metodos de acceso a datos vistos en esos modulos. */
|
|
75
|
+
vistos: number;
|
|
76
|
+
/** De esos, los declarados async. */
|
|
77
|
+
asincronicos: number;
|
|
78
|
+
/** Los SINCRONICOS: cada uno es una ocasion de repetir el defecto de Kikan. */
|
|
79
|
+
hallazgos: Hallazgo[];
|
|
80
|
+
/** Eximidos a mano, con su motivo. */
|
|
81
|
+
exentos: Exento[];
|
|
82
|
+
/** No se pudieron analizar. El control FALLA con esto no vacio. */
|
|
83
|
+
ilegibles: string[];
|
|
84
|
+
}
|
|
85
|
+
export declare function enmascarar(texto: string): string;
|
|
86
|
+
/** Las llaves balancean. Si no, el archivo no se puede analizar con confianza. */
|
|
87
|
+
export declare function balancea(mascara: string): boolean;
|
|
88
|
+
/** Es este archivo un store? */
|
|
89
|
+
export declare function esStore(ruta: string, mascara: string): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Analiza un archivo. `fuentes` es [ruta, texto].
|
|
92
|
+
*
|
|
93
|
+
* Devuelve null cuando el archivo NO es un store (nada que decir), y un
|
|
94
|
+
* resultado parcial cuando si lo es.
|
|
95
|
+
*/
|
|
96
|
+
export declare function analizarArchivo(ruta: string, texto: string): Resultado | null;
|
|
97
|
+
/** Junta el analisis de muchos archivos. */
|
|
98
|
+
export declare function analizar(fuentes: Array<[string, string]>): Resultado;
|
|
99
|
+
/** Pasa el control? Un ilegible lo hace fallar: no se afirma lo que no se midio. */
|
|
100
|
+
export declare function aprueba(r: Resultado): boolean;
|
|
101
|
+
//# sourceMappingURL=persistence_async.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence_async.d.ts","sourceRoot":"","sources":["../../src/audit/persistence_async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH;qCACqC;AACrC,eAAO,MAAM,YAAY,yQAMf,CAAC;AAIX;uCACuC;AACvC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAuB1C,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAExE,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sCAAsC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAgHD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqDhD;AAED,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOjD;AAyDD,gCAAgC;AAChC,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAK9D;AAQD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAqC7E;AAED,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAepE;AAED,oFAAoF;AACpF,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAE7C"}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* El candado que faltaba: la interfaz de persistencia es ASINCRONICA desde la
|
|
3
|
+
* linea 1.
|
|
4
|
+
*
|
|
5
|
+
* POR QUE EXISTE (Pablo, 13-oct-2026, mirando ADIP-Kikan). El brain construyo
|
|
6
|
+
* Kikan bien en lo estructural: el primer commit dice "nucleo kawa/sazanami +
|
|
7
|
+
* persistencia MariaDB", hay capa de repositorio, y `mysqlStore` hace
|
|
8
|
+
* write-through a MariaDB con hidratacion al arranque -- el dato productivo es
|
|
9
|
+
* durable y siempre lo fue. La decision equivocada fue UNA, y es una FIRMA:
|
|
10
|
+
* la interfaz del repositorio quedo SINCRONICA. De ahi sale todo lo demas, por
|
|
11
|
+
* mecanica pura:
|
|
12
|
+
*
|
|
13
|
+
* 1. un driver SQL real es asincronico, y una interfaz sincronica no lo puede
|
|
14
|
+
* envolver;
|
|
15
|
+
* 2. entonces el store "de MariaDB" tuvo que quedarse el working set en RAM
|
|
16
|
+
* para servir lecturas sincronas -- su propia cabecera lo dice: "lecturas
|
|
17
|
+
* sincronas, interfaz IDENTICA a createMemoryStore -> no reescribe el
|
|
18
|
+
* motor";
|
|
19
|
+
* 3. y como un working set en memoria no necesita columnas, el esquema
|
|
20
|
+
* degenero en UNA tabla generica de JSON (`engine_rows`), con las 57
|
|
21
|
+
* tablas 3NF como read-model DERIVADO en vez de sistema de registro.
|
|
22
|
+
*
|
|
23
|
+
* Una firma de funcion, y de ahi 1.543 puntos de deuda y nueve slices de
|
|
24
|
+
* conversion.
|
|
25
|
+
*
|
|
26
|
+
* LA ASIMETRIA, que es la razon por la que esto no necesita ninguna ronda de
|
|
27
|
+
* dimensionamiento para decidirse:
|
|
28
|
+
*
|
|
29
|
+
* - `await` sobre un valor que no es Promise NO HACE NADA. Declarar el store
|
|
30
|
+
* asincronico desde la linea 1 cuesta CERO cuando el store es de memoria.
|
|
31
|
+
* - El camino inverso -- sincronico a asincronico -- es cada punto de
|
|
32
|
+
* llamada del sistema. En Kikan fueron 1.543.
|
|
33
|
+
*
|
|
34
|
+
* Dos opciones donde una es gratis y reversible y la otra es una reescritura no
|
|
35
|
+
* son dos opciones: una decision asimetrica se toma SIEMPRE del lado
|
|
36
|
+
* recuperable, incluso sin un solo dato de volumetria.
|
|
37
|
+
*
|
|
38
|
+
* POR QUE "DECLARADO async" Y NO "DEVUELVE UNA PROMISE": la segunda es mas
|
|
39
|
+
* precisa y requiere analisis de flujo. La primera es trivial de cumplir
|
|
40
|
+
* (`async` sobre algo que ya devuelve una promesa no cambia nada) y trivial de
|
|
41
|
+
* verificar. Una regla estricta y simple que cualquiera puede satisfacer vale
|
|
42
|
+
* mas que una regla astuta que hay que interpretar.
|
|
43
|
+
*
|
|
44
|
+
* EL MODO DE FALLAR QUE IMPORTA ES EL FALSO NEGATIVO: un store que el detector
|
|
45
|
+
* no reconoce es deuda que el candado no cuenta, y el numero daria verde sin
|
|
46
|
+
* que nadie haya hecho nada. Por eso un archivo que no se puede analizar va a
|
|
47
|
+
* `ilegibles` y el control FALLA, en vez de contar cero. Misma disciplina que
|
|
48
|
+
* el trinquete de Kikan.
|
|
49
|
+
*
|
|
50
|
+
* ASCII-only.
|
|
51
|
+
*/
|
|
52
|
+
/** Los verbos que tocan una fila. Si un modulo expone varios de estos, es un
|
|
53
|
+
* store, se llame como se llame. */
|
|
54
|
+
export const VERBOS_DATOS = [
|
|
55
|
+
'insert', 'bulkInsert', 'insertMany',
|
|
56
|
+
'update', 'patch', 'upsert', 'save',
|
|
57
|
+
'remove', 'removeAll', 'delete', 'deleteAll', 'destroy',
|
|
58
|
+
'get', 'getById', 'find', 'findOne', 'findAll', 'findMany',
|
|
59
|
+
'all', 'list', 'query', 'select', 'count', 'exists', 'first',
|
|
60
|
+
];
|
|
61
|
+
const VERBOS = new Set(VERBOS_DATOS);
|
|
62
|
+
/** Cuantos verbos distintos tiene que exponer un modulo sin nombre delator
|
|
63
|
+
* para que lo tratemos como store. */
|
|
64
|
+
export const VERBOS_MINIMOS_POR_FORMA = 4;
|
|
65
|
+
/** El nombre del archivo o su carpeta ya lo delatan. */
|
|
66
|
+
const NOMBRE_DELATOR = /(^|[^a-z])(store|repo|repository|dao|persistence|datastore)([^a-z]|$)/i;
|
|
67
|
+
const CARPETA_DELATORA = /(^|[\\/])(data|stores?|repositor(y|ies)|persistence|dao)([\\/]|$)/i;
|
|
68
|
+
/**
|
|
69
|
+
* Parte camelCase para que el delator se vea: `memoryStore` -> `memory Store`,
|
|
70
|
+
* `userRepository` -> `user Repository`.
|
|
71
|
+
*
|
|
72
|
+
* Sin esto el detector se perdia `userRepository.ts` -- la palabra delatora
|
|
73
|
+
* estaba ahi, pero pegada a la anterior, y el borde que pedia el regex no
|
|
74
|
+
* existia. Es exactamente un FALSO NEGATIVO del detector, la clase de error que
|
|
75
|
+
* hace mentir a un candado, y lo encontro su propia bateria.
|
|
76
|
+
*/
|
|
77
|
+
function separarCamel(s) {
|
|
78
|
+
return s.replace(/([a-z0-9])([A-Z])/g, '$1 $2');
|
|
79
|
+
}
|
|
80
|
+
/** La marca para eximir un metodo a mano. Se CUENTA y se reporta: una exencion
|
|
81
|
+
* invisible es un agujero, una exencion contada es una decision. */
|
|
82
|
+
const MARCA_EXENTO = /persistence-async-ok:\s*(.+)$/;
|
|
83
|
+
/**
|
|
84
|
+
* Tapa comentarios y literales de cadena con espacios, conservando los saltos
|
|
85
|
+
* de linea para que los numeros de linea sigan siendo validos.
|
|
86
|
+
*
|
|
87
|
+
* Sin esto, un `insert(` dentro de un comentario o de un template string cuenta
|
|
88
|
+
* como declaracion, y la frase "no uses insert() sin await" en un comentario
|
|
89
|
+
* generaria un hallazgo fantasma.
|
|
90
|
+
*/
|
|
91
|
+
/** Fin de una cadena simple (`'` o `"`): el indice DESPUES de la comilla que cierra. */
|
|
92
|
+
function finDeCadena(texto, inicio, cierre) {
|
|
93
|
+
const n = texto.length;
|
|
94
|
+
let j = inicio + 1;
|
|
95
|
+
while (j < n) {
|
|
96
|
+
if (texto[j] === '\\') {
|
|
97
|
+
j += 2;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (texto[j] === cierre)
|
|
101
|
+
return j + 1;
|
|
102
|
+
if (texto[j] === '\n')
|
|
103
|
+
return j; /* cadena sin cerrar: no arrastra el archivo */
|
|
104
|
+
j++;
|
|
105
|
+
}
|
|
106
|
+
return n;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Fin de un template literal, el indice DESPUES del backtick que cierra.
|
|
110
|
+
*
|
|
111
|
+
* Tiene que entender `${...}` porque la interpolacion es CODIGO y puede
|
|
112
|
+
* contener otro template adentro. El caso real que lo trajo aca, de
|
|
113
|
+
* `sqlStore.js` de Kikan (encontrado calibrando, 13-oct-2026):
|
|
114
|
+
*
|
|
115
|
+
* `UPDATE \`${t}\` SET ${cols.map((c) => `\`${c}\` = ?`).join(', ')} WHERE ...`
|
|
116
|
+
*
|
|
117
|
+
* Un escaner ingenuo cierra el string en el backtick ANIDADO y a partir de ahi
|
|
118
|
+
* lee la mitad del template como codigo: en `sqlStore.js` eso dejaba tres `}`
|
|
119
|
+
* de mas y el archivo entero caia en `ilegibles`. O sea: el defecto no era un
|
|
120
|
+
* falso positivo molesto, era el candado dandose por vencido sobre el store
|
|
121
|
+
* mas importante del proyecto.
|
|
122
|
+
*/
|
|
123
|
+
function finDeTemplate(texto, inicio) {
|
|
124
|
+
const n = texto.length;
|
|
125
|
+
let j = inicio + 1;
|
|
126
|
+
while (j < n) {
|
|
127
|
+
const c = texto[j];
|
|
128
|
+
if (c === '\\') {
|
|
129
|
+
j += 2;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (c === '`')
|
|
133
|
+
return j + 1;
|
|
134
|
+
if (c === '$' && texto[j + 1] === '{') {
|
|
135
|
+
j = finDeInterpolacion(texto, j + 2);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
j++;
|
|
139
|
+
}
|
|
140
|
+
return n;
|
|
141
|
+
}
|
|
142
|
+
/** Desde justo despues de `${`, el indice DESPUES del `}` que cierra. */
|
|
143
|
+
function finDeInterpolacion(texto, desde) {
|
|
144
|
+
const n = texto.length;
|
|
145
|
+
let profundidad = 1;
|
|
146
|
+
let j = desde;
|
|
147
|
+
while (j < n && profundidad > 0) {
|
|
148
|
+
const c = texto[j];
|
|
149
|
+
if (c === '\\') {
|
|
150
|
+
j += 2;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (c === '`') {
|
|
154
|
+
j = finDeTemplate(texto, j);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
if (c === '"' || c === "'") {
|
|
158
|
+
j = finDeCadena(texto, j, c);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (c === '{') {
|
|
162
|
+
profundidad++;
|
|
163
|
+
j++;
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (c === '}') {
|
|
167
|
+
profundidad--;
|
|
168
|
+
j++;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
j++;
|
|
172
|
+
}
|
|
173
|
+
return j;
|
|
174
|
+
}
|
|
175
|
+
/* Palabras tras las cuales un `/` abre una expresion regular y no es division.
|
|
176
|
+
* `return /x/.test(s)` es el caso que importa. */
|
|
177
|
+
const ANTES_DE_REGEX = /(^|[^\w$])(return|typeof|case|in|of|new|delete|void|do|else|yield|await|throw)$/;
|
|
178
|
+
/**
|
|
179
|
+
* Abre una expresion regular este `/`, o es una division?
|
|
180
|
+
*
|
|
181
|
+
* La regla: es regex salvo que lo anterior sea algo que PUEDE TERMINAR una
|
|
182
|
+
* expresion -- un identificador, un numero, `)`, `]` o `}`. Mas la excepcion de
|
|
183
|
+
* las palabras clave, porque `return` termina en una letra pero no es un valor.
|
|
184
|
+
*
|
|
185
|
+
* Un `/` mal clasificado como division deja las llaves del regex contadas; mal
|
|
186
|
+
* clasificado como regex se come codigo hasta el proximo `/`. Las dos cosas
|
|
187
|
+
* terminan en `ilegibles`, que es ruidoso pero HONESTO: nunca en un conteo
|
|
188
|
+
* silenciosamente bajo.
|
|
189
|
+
*/
|
|
190
|
+
function abreRegex(texto, i) {
|
|
191
|
+
let k = i - 1;
|
|
192
|
+
while (k >= 0 && /\s/.test(texto[k]))
|
|
193
|
+
k--;
|
|
194
|
+
if (k < 0)
|
|
195
|
+
return true;
|
|
196
|
+
const c = texto[k];
|
|
197
|
+
if (/[)\]}]/.test(c))
|
|
198
|
+
return false;
|
|
199
|
+
if (/[\w$]/.test(c))
|
|
200
|
+
return ANTES_DE_REGEX.test(texto.slice(Math.max(0, k - 11), k + 1));
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
/** Fin de una expresion regular: el indice DESPUES del `/` que cierra. Si no
|
|
204
|
+
* cierra en la misma linea, no era un regex y no se tapa nada. */
|
|
205
|
+
function finDeRegex(texto, inicio) {
|
|
206
|
+
const n = texto.length;
|
|
207
|
+
let j = inicio + 1;
|
|
208
|
+
let enClase = false;
|
|
209
|
+
while (j < n) {
|
|
210
|
+
const c = texto[j];
|
|
211
|
+
if (c === '\\') {
|
|
212
|
+
j += 2;
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
if (c === '\n')
|
|
216
|
+
return inicio + 1; /* no era un regex */
|
|
217
|
+
if (enClase) {
|
|
218
|
+
if (c === ']')
|
|
219
|
+
enClase = false;
|
|
220
|
+
j++;
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (c === '[') {
|
|
224
|
+
enClase = true;
|
|
225
|
+
j++;
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
if (c === '/')
|
|
229
|
+
return j + 1;
|
|
230
|
+
j++;
|
|
231
|
+
}
|
|
232
|
+
return inicio + 1;
|
|
233
|
+
}
|
|
234
|
+
export function enmascarar(texto) {
|
|
235
|
+
const out = texto.split('');
|
|
236
|
+
let i = 0;
|
|
237
|
+
const n = texto.length;
|
|
238
|
+
const tapar = (desde, hasta) => {
|
|
239
|
+
for (let k = desde; k < hasta && k < n; k++) {
|
|
240
|
+
if (out[k] !== '\n')
|
|
241
|
+
out[k] = ' ';
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
while (i < n) {
|
|
245
|
+
const c = texto[i];
|
|
246
|
+
const d = texto[i + 1];
|
|
247
|
+
if (c === '/' && d === '/') {
|
|
248
|
+
let j = i + 2;
|
|
249
|
+
while (j < n && texto[j] !== '\n')
|
|
250
|
+
j++;
|
|
251
|
+
tapar(i, j);
|
|
252
|
+
i = j;
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
if (c === '/' && d === '*') {
|
|
256
|
+
let j = i + 2;
|
|
257
|
+
while (j < n && !(texto[j] === '*' && texto[j + 1] === '/'))
|
|
258
|
+
j++;
|
|
259
|
+
tapar(i, Math.min(j + 2, n));
|
|
260
|
+
i = j + 2;
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
if (c === '"' || c === "'") {
|
|
264
|
+
const fin = finDeCadena(texto, i, c);
|
|
265
|
+
tapar(i, fin);
|
|
266
|
+
i = fin;
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
if (c === '`') {
|
|
270
|
+
/* Se tapa el template COMPLETO, interpolaciones incluidas. Las llaves de
|
|
271
|
+
* una interpolacion vienen de a pares, asi que taparlas no desbalancea
|
|
272
|
+
* nada -- y el codigo de una interpolacion no declara metodos de store. */
|
|
273
|
+
const fin = finDeTemplate(texto, i);
|
|
274
|
+
tapar(i, fin);
|
|
275
|
+
i = fin;
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
if (c === '/' && abreRegex(texto, i)) {
|
|
279
|
+
/* Los literales de regex traen llaves: `{0,400}`, `\{`, `[^{}]`. Sin
|
|
280
|
+
* taparlos el balanceo miente -- y lo encontre con el candado corriendo
|
|
281
|
+
* sobre ESTE archivo, que es el que mas regex tiene del repo. */
|
|
282
|
+
const fin = finDeRegex(texto, i);
|
|
283
|
+
tapar(i, fin);
|
|
284
|
+
i = fin;
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
i++;
|
|
288
|
+
}
|
|
289
|
+
return out.join('');
|
|
290
|
+
}
|
|
291
|
+
/** Las llaves balancean. Si no, el archivo no se puede analizar con confianza. */
|
|
292
|
+
export function balancea(mascara) {
|
|
293
|
+
let n = 0;
|
|
294
|
+
for (const c of mascara) {
|
|
295
|
+
if (c === '{')
|
|
296
|
+
n++;
|
|
297
|
+
else if (c === '}') {
|
|
298
|
+
n--;
|
|
299
|
+
if (n < 0)
|
|
300
|
+
return false;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return n === 0;
|
|
304
|
+
}
|
|
305
|
+
/** Los verbos distintos que el modulo expone como DECLARACION. */
|
|
306
|
+
function verbosDeclarados(mascara) {
|
|
307
|
+
const vistos = new Set();
|
|
308
|
+
for (const m of declaraciones(mascara)) {
|
|
309
|
+
if (VERBOS.has(m.nombre))
|
|
310
|
+
vistos.add(m.nombre);
|
|
311
|
+
}
|
|
312
|
+
return vistos;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Las declaraciones de metodo del texto enmascarado.
|
|
316
|
+
*
|
|
317
|
+
* Una DECLARACION tiene su lista de parametros seguida de `{` o de `=>`; una
|
|
318
|
+
* LLAMADA termina en `;`, en `)` o en `,`. Eso es lo que separa
|
|
319
|
+
* `insert(table, row) {` de `store.insert(table, row);`. Y el `(?<![.\w$])`
|
|
320
|
+
* de adelante descarta `store.insert(` y `reinsert(`.
|
|
321
|
+
*
|
|
322
|
+
* La lista de parametros puede ocupar varias lineas, asi que se admiten saltos
|
|
323
|
+
* adentro -- acotados, para que un parentesis sin cerrar no arrastre el archivo
|
|
324
|
+
* entero.
|
|
325
|
+
*/
|
|
326
|
+
function* declaraciones(mascara) {
|
|
327
|
+
/* metodo de objeto o de clase: `nombre(...) {` con `async` opcional */
|
|
328
|
+
const reMetodo = /(?<![.\w$])(async\s+)?([A-Za-z_$][\w$]*)\s*\(([^()]{0,400})\)\s*\{/g;
|
|
329
|
+
for (let m = reMetodo.exec(mascara); m; m = reMetodo.exec(mascara)) {
|
|
330
|
+
const nombre = m[2];
|
|
331
|
+
/* `if (...) {`, `for (...) {`, `catch (...) {` tienen la misma forma */
|
|
332
|
+
if (CONTROL.has(nombre))
|
|
333
|
+
continue;
|
|
334
|
+
yield { nombre, indice: m.index, esAsync: !!m[1], forma: 'metodo' };
|
|
335
|
+
}
|
|
336
|
+
/* propiedad con funcion: `nombre: async function (...)` / `nombre: function` */
|
|
337
|
+
const reFn = /(?<![.\w$])([A-Za-z_$][\w$]*)\s*:\s*(async\s+)?function\b/g;
|
|
338
|
+
for (let m = reFn.exec(mascara); m; m = reFn.exec(mascara)) {
|
|
339
|
+
yield { nombre: m[1], indice: m.index, esAsync: !!m[2], forma: 'propiedad-funcion' };
|
|
340
|
+
}
|
|
341
|
+
/* propiedad con flecha: `nombre: async (...) =>` / `nombre: (...) =>` */
|
|
342
|
+
const reFlecha = /(?<![.\w$])([A-Za-z_$][\w$]*)\s*:\s*(async\s+)?\(([^()]{0,400})\)\s*=>/g;
|
|
343
|
+
for (let m = reFlecha.exec(mascara); m; m = reFlecha.exec(mascara)) {
|
|
344
|
+
yield { nombre: m[1], indice: m.index, esAsync: !!m[2], forma: 'propiedad-flecha' };
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/* Palabras de control que tienen la misma forma que un metodo. */
|
|
348
|
+
const CONTROL = new Set([
|
|
349
|
+
'if', 'for', 'while', 'switch', 'catch', 'function', 'return', 'do', 'else',
|
|
350
|
+
'with', 'typeof', 'await', 'new', 'delete_', 'try', 'finally',
|
|
351
|
+
]);
|
|
352
|
+
/** Es este archivo un store? */
|
|
353
|
+
export function esStore(ruta, mascara) {
|
|
354
|
+
const base = ruta.split(/[\\/]/).pop() ?? ruta;
|
|
355
|
+
if (NOMBRE_DELATOR.test(separarCamel(base)))
|
|
356
|
+
return true;
|
|
357
|
+
if (CARPETA_DELATORA.test(ruta))
|
|
358
|
+
return true;
|
|
359
|
+
return verbosDeclarados(mascara).size >= VERBOS_MINIMOS_POR_FORMA;
|
|
360
|
+
}
|
|
361
|
+
function lineaDe(texto, indice) {
|
|
362
|
+
let n = 1;
|
|
363
|
+
for (let i = 0; i < indice && i < texto.length; i++)
|
|
364
|
+
if (texto[i] === '\n')
|
|
365
|
+
n++;
|
|
366
|
+
return n;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Analiza un archivo. `fuentes` es [ruta, texto].
|
|
370
|
+
*
|
|
371
|
+
* Devuelve null cuando el archivo NO es un store (nada que decir), y un
|
|
372
|
+
* resultado parcial cuando si lo es.
|
|
373
|
+
*/
|
|
374
|
+
export function analizarArchivo(ruta, texto) {
|
|
375
|
+
const mascara = enmascarar(texto);
|
|
376
|
+
if (!esStore(ruta, mascara))
|
|
377
|
+
return null;
|
|
378
|
+
const res = {
|
|
379
|
+
modulos: [ruta], vistos: 0, asincronicos: 0, hallazgos: [], exentos: [], ilegibles: [],
|
|
380
|
+
};
|
|
381
|
+
if (!balancea(mascara)) {
|
|
382
|
+
res.ilegibles.push(ruta);
|
|
383
|
+
return res;
|
|
384
|
+
}
|
|
385
|
+
const lineas = texto.split('\n');
|
|
386
|
+
for (const d of declaraciones(mascara)) {
|
|
387
|
+
if (!VERBOS.has(d.nombre))
|
|
388
|
+
continue;
|
|
389
|
+
res.vistos++;
|
|
390
|
+
const linea = lineaDe(texto, d.indice);
|
|
391
|
+
if (d.esAsync) {
|
|
392
|
+
res.asincronicos++;
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
/* exencion a mano: en la misma linea o en la de arriba */
|
|
396
|
+
const cerca = (lineas[linea - 1] ?? '') + '\n' + (lineas[linea - 2] ?? '');
|
|
397
|
+
const marca = MARCA_EXENTO.exec(cerca);
|
|
398
|
+
if (marca) {
|
|
399
|
+
res.exentos.push({ archivo: ruta, linea, metodo: d.nombre, motivo: marca[1].trim() });
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
res.hallazgos.push({ archivo: ruta, linea, metodo: d.nombre, forma: d.forma });
|
|
403
|
+
}
|
|
404
|
+
/* LA CONTRACARA: si la FORMA dijo que es un store porque vio N verbos y el
|
|
405
|
+
* escaner de declaraciones encontro menos, entonces uno de los dos esta mal
|
|
406
|
+
* y el archivo no se puede afirmar. Vale sobre todo para un store con listas
|
|
407
|
+
* de parametros largas, que es justo donde el regex se queda corto. */
|
|
408
|
+
const porForma = verbosDeclarados(mascara).size;
|
|
409
|
+
if (res.vistos < porForma)
|
|
410
|
+
res.ilegibles.push(ruta);
|
|
411
|
+
return res;
|
|
412
|
+
}
|
|
413
|
+
/** Junta el analisis de muchos archivos. */
|
|
414
|
+
export function analizar(fuentes) {
|
|
415
|
+
const total = {
|
|
416
|
+
modulos: [], vistos: 0, asincronicos: 0, hallazgos: [], exentos: [], ilegibles: [],
|
|
417
|
+
};
|
|
418
|
+
for (const [ruta, texto] of fuentes) {
|
|
419
|
+
const r = analizarArchivo(ruta, texto);
|
|
420
|
+
if (!r)
|
|
421
|
+
continue;
|
|
422
|
+
total.modulos.push(...r.modulos);
|
|
423
|
+
total.vistos += r.vistos;
|
|
424
|
+
total.asincronicos += r.asincronicos;
|
|
425
|
+
total.hallazgos.push(...r.hallazgos);
|
|
426
|
+
total.exentos.push(...r.exentos);
|
|
427
|
+
total.ilegibles.push(...r.ilegibles);
|
|
428
|
+
}
|
|
429
|
+
return total;
|
|
430
|
+
}
|
|
431
|
+
/** Pasa el control? Un ilegible lo hace fallar: no se afirma lo que no se midio. */
|
|
432
|
+
export function aprueba(r) {
|
|
433
|
+
return r.hallazgos.length === 0 && r.ilegibles.length === 0;
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=persistence_async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence_async.js","sourceRoot":"","sources":["../../src/audit/persistence_async.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/yf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yf.d.ts","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AAUA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"yf.d.ts","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AAUA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,wBAAgB,YAAY,IAAI,OAAO,CA8GtC"}
|
package/dist/bin/yf.js
CHANGED
|
@@ -20,6 +20,7 @@ import { registerEmbedCommand } from '../commands/embed.js';
|
|
|
20
20
|
import { registerLicenseCommand } from '../commands/license.js';
|
|
21
21
|
import { registerDoctorCommand } from '../commands/doctor.js';
|
|
22
22
|
import { registerValidateCommand } from '../commands/validate.js';
|
|
23
|
+
import { registerAuditPersistenceCommand } from '../commands/audit-persistence.js';
|
|
23
24
|
import { registerPilotCommand } from '../commands/pilot.js';
|
|
24
25
|
import { registerGenTestsCommand } from '../commands/gen-tests.js';
|
|
25
26
|
import { registerGenFlowTestsCommand } from '../commands/gen-flow-tests.js';
|
|
@@ -106,6 +107,7 @@ export function buildProgram() {
|
|
|
106
107
|
registerLicenseCommand(program);
|
|
107
108
|
registerDoctorCommand(program);
|
|
108
109
|
registerValidateCommand(program);
|
|
110
|
+
registerAuditPersistenceCommand(program);
|
|
109
111
|
registerEmbedCommand(program);
|
|
110
112
|
registerPilotCommand(program);
|
|
111
113
|
registerGenTestsCommand(program);
|
package/dist/bin/yf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yf.js","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE;;;;;;;;sDAQsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,IAAI,CAAC;SACV,WAAW,CAAC,8DAA8D,CAAC;SAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,6BAA6B,CAAC;SAChE,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC;SACrC,kBAAkB,CAAC,0CAA0C,CAAC,CAAC;IAElE;;;8EAG0E;IAC1E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,aAAgE,CAAC,CAAC;YAC3F,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,MAAM,kBAAkB,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC,CAAC,wCAAwC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,mEAAmE;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IACxF,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/B;4DACwD;IACxD,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B;;kDAE8C;IAC9C,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC;qDACiD;IACjD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qDAAqD;IACrD,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B;kBACc;IACd,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,4DAA4D;IAC5D,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,qDAAqD;IACrD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,yEAAyE;IACzE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC;iEAC6D;IAC7D,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B;;sCAEkC;IAClC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B;;;oDAGgD;IAChD,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B;8DAC0D;IAC1D,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE9B;6EACyE;IACzE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB;;gFAE4E;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACnG,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,2DAA2D;AAC3D,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvD;;;uDAGmD;IACnD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACnE;sDACkD;IAClD,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzB;;;;;0BAKc;YACd,MAAM,EAAE,GAAI,GAAiC,CAAC,WAAW,CAAC;YAC1D,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;oBAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAW,CAAC,CAAC,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP;oEACgD;oBAChD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"yf.js","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctrine_digest.d.ts","sourceRoot":"","sources":["../../src/chat/doctrine_digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,eAAe,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"doctrine_digest.d.ts","sourceRoot":"","sources":["../../src/chat/doctrine_digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,eAAe,EAAE,mBAAmB,EA4JhD,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,MAAM,WAAW,qBAAqB;IACpC;4EACwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;uEACuE;AACvE,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,qBAA0B,GAAG,MAAM,EAAE,CAiBnF"}
|