@pasosdejesus/m 0.29.0 → 0.30.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/README.md +1 -1
- package/dist/CHANGELOG.md +62 -0
- package/dist/compose/derive.d.ts +10 -0
- package/dist/compose/derive.d.ts.map +1 -1
- package/dist/compose/derive.js +36 -0
- package/dist/compose/derive.js.map +1 -1
- package/dist/compose/index.d.ts +2 -2
- package/dist/compose/index.d.ts.map +1 -1
- package/dist/compose/index.js +2 -2
- package/dist/compose/index.js.map +1 -1
- package/dist/compose/manifest.d.ts +2 -1
- package/dist/compose/manifest.d.ts.map +1 -1
- package/dist/compose/vendor.d.ts +30 -1
- package/dist/compose/vendor.d.ts.map +1 -1
- package/dist/compose/vendor.js +91 -5
- package/dist/compose/vendor.js.map +1 -1
- package/dist/compose/verify.d.ts.map +1 -1
- package/dist/compose/verify.js +37 -2
- package/dist/compose/verify.js.map +1 -1
- package/dist/i18n/locales/cli.js +22 -22
- package/dist/i18n/locales/cli.js.map +1 -1
- package/dist/m.js +6 -6
- package/dist/m.js.map +1 -1
- package/dist/tasks/engine.d.ts.map +1 -1
- package/dist/tasks/engine.js +7 -1
- package/dist/tasks/engine.js.map +1 -1
- package/dist/tasks/wallet.js +38 -38
- package/dist/tasks/wallet.js.map +1 -1
- package/dist/templates/AGENTS.md.hbs +3 -3
- package/dist/templates/ARCHITECTURE.md.hbs +7 -7
- package/dist/templates/CONTRIBUTING.md.hbs +2 -2
- package/dist/templates/README.md.hbs +2 -2
- package/dist/templates/apps/.env.example.hbs +1 -1
- package/package.json +2 -2
- package/src/tasks/README.md +2 -2
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ credentials). The `usdt` payment engine lives in `@pasosdejesus/usdt`.
|
|
|
32
32
|
|------|----------|
|
|
33
33
|
| Scaffolding | `m:create`, `m:update` |
|
|
34
34
|
| Database (PostgreSQL + Kysely) | `db:create`, `db:migrate`, `db:rollback`, `db:dump`, `db:restore`, `db:structure:dump/load`, `db:console`, `db:test`, `db:seed` |
|
|
35
|
-
| Wallet (replaces `cast` on OpenBSD) | `
|
|
35
|
+
| Wallet (replaces `cast` on OpenBSD) | `eng:opwallet:generate`, `eng:opwallet:import`, `eng:opwallet:list`, `eng:opwallet:balance`, `eng:opwallet:send`, `eng:opwallet:approve`, `eng:opwallet:call`, `eng:opwallet:sign`, `eng:opwallet:broadcast`, `eng:opwallet:keccak`, `eng:opwallet:derive` — keys in `~/.m/wallets/` with `chmod 600` |
|
|
36
36
|
| Contracts | `contract:test` (EVM via `@pasosdejesus/edr`, no native binaries) |
|
|
37
37
|
| AI tooling | `ai:context`, `ai:readfile`, `ai:writefile`, `ai:edit`, `ai:grep`, `ai:glob` |
|
|
38
38
|
| Requirements | `req:list`, `req:show`, `req:cross`, `req:compare`, `req:sync-from-repo`, `req:sync-to-repo`, `req:list-repo`, `req:create`, `req:close` |
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,68 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@pasosdejesus/m` are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.30.1] - 2026-10-14
|
|
6
|
+
|
|
7
|
+
### Fixed — `eng:sync --vendor` de un motor **con vistas** (auditoría de learn.tg)
|
|
8
|
+
|
|
9
|
+
- **La copia vendorizada nace consumible:** el `package.json` **preserva los `exports` reales** del motor
|
|
10
|
+
(los subpaths `./next`/`./model` dejan de apuntar a rutas inexistentes), **puentea** los motores de los
|
|
11
|
+
que depende **por nombre** (`@pasosdejesus/<alias>` → `generated-<alias>`: sus `import` se reescriben al
|
|
12
|
+
nombre puente y se declaran como dependencia `*`, porque el nombre real es `private` y el consumidor
|
|
13
|
+
vendoriza esos motores como hermanos y añade `packages/generated/*` a su workspace; **sin** rutas
|
|
14
|
+
`file:../…`, que atarían la copia al layout de una máquina), **no** emite rangos `workspace:` (inválidos
|
|
15
|
+
fuera del workspace) y pone los peers (`react`/`react-dom`) como `peerDependencies` opcionales +
|
|
16
|
+
`devDependencies`.
|
|
17
|
+
- El `tsconfig` de la copia añade `jsx: react-jsx` y `lib` DOM, así que `tsc -b` compila motores con `.tsx`.
|
|
18
|
+
|
|
19
|
+
## [0.30.0] - 2026-10-13
|
|
20
|
+
|
|
21
|
+
### Changed (breaking) — [m/REQ/50](https://gitlab.com/pasosdeJesus/m/-/work_items/50) Fase 1
|
|
22
|
+
|
|
23
|
+
- **`wallet:*` → `eng:opwallet:*`:** los 11 comandos del **CLI de operador** (llaves del dispositivo en
|
|
24
|
+
`~/.m/wallets`, `chmod 600`: generate, import, list, balance, send, approve, call, sign, broadcast,
|
|
25
|
+
keccak, derive) pasan a la gramática `eng:*`, **sin alias**. La billetera **del usuario** no es esto:
|
|
26
|
+
se convertirá en el motor `wallet` (Fase 2). Actualiza scripts y docs
|
|
27
|
+
(`wallet:generate` → `eng:opwallet:generate`, …). Claves i18n `cmd.wallet_*` → `cmd.eng_opwallet_*`.
|
|
28
|
+
|
|
29
|
+
### Added — [m/REQ/50](https://gitlab.com/pasosdeJesus/m/-/work_items/50) Fase 2 (motor `wallet`) y selección por columna
|
|
30
|
+
|
|
31
|
+
- **Motor `wallet`** (`packages/wallet`, `@pasosdejesus/wallet`, `private`): modelo propio
|
|
32
|
+
`billetera_usuario`/`billetera_invitada` (migraciones + `db/structure.sql`), `provides: ["auth","wallet"]`,
|
|
33
|
+
y compone `msip` sólo por `usuario`. El enlace billetera↔usuario (`wallet-link.ts`) **sale de `msip`** y
|
|
34
|
+
pasa a este motor (corte coordinado con learn.tg `R-#265`).
|
|
35
|
+
- **`engines.<motor>.columns`** (selección por columna): `eng:verify` valida que cada columna declarada
|
|
36
|
+
exista en la tabla del motor (`UNKNOWN_COLUMN`).
|
|
37
|
+
- **Controllers del motor `wallet`** (faceta C, `src/controllers.ts`): `inspectWallet`, `signInWallet`,
|
|
38
|
+
`linkSecondWallet`, `unlinkAccountWallet`, `inviteWalletToAccount`, `acceptWalletInvitation`,
|
|
39
|
+
`cancelAccountInvitation`. Framework-agnósticos; exigen que el **consumidor** afirme la verificación
|
|
40
|
+
SIWE/verificación (`WalletNotVerifiedError`).
|
|
41
|
+
- **Vistas del motor `wallet`** (`@pasosdejesus/wallet/next`, faceta V):
|
|
42
|
+
- `WalletConnect` — punto de entrada con el **modal de elección** (un botón «Conectar» → *in-app* o *externa*).
|
|
43
|
+
- `WalletPanel` — **panel completo**: cuenta (N billeteras), **saldos**, **recibir** (QR), **enviar**
|
|
44
|
+
(nativo/ERC20) y **coleccionables** (NFT). Secciones **deshabilitables** (`features`); auth-only = no
|
|
45
|
+
usar el panel. Config inyectada (tokens, red/explorer, clientes viem, `fetchNfts`).
|
|
46
|
+
- Sobrecargables (`renderBody`/`renderWallet`, D10); textos inyectables. `eng:sync` deriva `views.components`.
|
|
47
|
+
- Helpers puros portados de learn.tg (`wallet-amounts.ts`: `formatTokenAmount`, `parseTokenAmount`, `validateSend`, explorer, `normalizeNftImage`).
|
|
48
|
+
- `@pasosdejesus/wallet/next` **re-exporta** los primitivos de `@pasosdejesus/m/wallet/next` (transición);
|
|
49
|
+
`m` no obliga a ningún motor de billetera (composición **web2** con cero motores verificada).
|
|
50
|
+
- **Correcciones de la 2ª auditoría de learn.tg:** saldo desconocido ≠ insuficiente (con reintento),
|
|
51
|
+
rama de **iniciar sesión** en `WalletConnect` cuando la in-app está desbloqueada sin sesión,
|
|
52
|
+
`InvalidWalletAddressError`, error de invitación normalizado, imágenes NFT con `referrerPolicy`
|
|
53
|
+
y `loading="lazy"`, dirección validada en la URL del explorer, y `Máximo` no aplica si el saldo ≤ reserva
|
|
54
|
+
de gas; +pruebas de las rutas de dinero (ERC20, sin gas, bloqueada, saldo desconocido).
|
|
55
|
+
|
|
56
|
+
### Changed (contrato) — modelo del motor `wallet` endurecido
|
|
57
|
+
|
|
58
|
+
- **`linkWallet`/`ensureWalletLink` rechazan** (`WalletOwnedByOtherError`) una billetera ya vinculada a
|
|
59
|
+
**otra** cuenta (antes devolvían el enlace ajeno); `acceptInvitation(db, dirección, usuarioId)` **rechaza**
|
|
60
|
+
si la dirección es de otra cuenta y **no** marca `used_at`.
|
|
61
|
+
- **Atomicidad:** `unlinkWallet` y `acceptInvitation` pasan a **una sentencia** (CTE en `acceptInvitation`);
|
|
62
|
+
`upsertUserByWallet` limpia el usuario huérfano en una carrera. Se valida la dirección (`0x` + 40 hex).
|
|
63
|
+
- **DDL según diseño:** `linked_at NOT NULL DEFAULT now()`, `linked_by varchar(60)`, `expires_at NOT NULL
|
|
64
|
+
DEFAULT now() + 30 días`; `listWallets` devuelve `linked_at`.
|
|
65
|
+
- Basado en la auditoría de learn.tg (`tmp/audita-wallet-desde-learn.tg.md`, 2026-10-13).
|
|
66
|
+
|
|
5
67
|
## [0.29.0] - 2026-10-13
|
|
6
68
|
|
|
7
69
|
### Added — [m/REQ/40](https://gitlab.com/pasosdeJesus/m/-/work_items/40) (glue genérico, fuentes y drift)
|
package/dist/compose/derive.d.ts
CHANGED
|
@@ -27,12 +27,22 @@ export declare const GENERATED_RELATIVE = "src/m-engine.generated.ts";
|
|
|
27
27
|
* `m-engine.generated.ts` (el inventario completo de columnas/restricciones vive en el motor).
|
|
28
28
|
*/
|
|
29
29
|
export declare function structureTables(sql: string): string[];
|
|
30
|
+
/**
|
|
31
|
+
* Columnas por tabla de una estructura de referencia (`pg_dump`): lee el cuerpo de
|
|
32
|
+
* cada `CREATE TABLE` y descarta las restricciones de tabla. Sirve para validar la
|
|
33
|
+
* **selección por columna** del consumidor (`engines.<motor>.columns`,
|
|
34
|
+
* [REQ/50](https://gitlab.com/pasosdeJesus/m/-/work_items/50) D9): declarar sólo las columnas que se usan (p. ej. `usuario` sin
|
|
35
|
+
* las de Devise).
|
|
36
|
+
*/
|
|
37
|
+
export declare function structureColumns(sql: string): Record<string, string[]>;
|
|
30
38
|
/**
|
|
31
39
|
* Tables of a motor's own model, derived from its **reference structure**
|
|
32
40
|
* (`db/structure.sql`), never from scanning all migrations (which have
|
|
33
41
|
* `DROP`/`RENAME`). A motor with no structure has no model tables (`[]`).
|
|
34
42
|
*/
|
|
35
43
|
export declare function deriveTables(dir: string): string[];
|
|
44
|
+
/** Columns per table of a motor's reference structure, or `{}` when it ships none. */
|
|
45
|
+
export declare function deriveColumns(dir: string): Record<string, string[]>;
|
|
36
46
|
/** Migrations directory, by convention `db/migrations` when it exists. */
|
|
37
47
|
export declare function deriveMigrations(dir: string): string | undefined;
|
|
38
48
|
/** Solidity contract names, from `contracts/contracts/*.sol` (skipping `_`-prefixed mocks). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/compose/derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,+EAA0E,CAAA;AAEvG,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,0BAA0B,CAAA;AAEzD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,8BAA8B,CAAA;AAK7D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOlD;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOrD;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAWpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAc7F;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAWzD"}
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/compose/derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,+EAA0E,CAAA;AAEvG,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,0BAA0B,CAAA;AAEzD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,8BAA8B,CAAA;AAK7D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAIrD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAgBtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOlD;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAOnE;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAOrD;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAWpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAc7F;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAWzD"}
|
package/dist/compose/derive.js
CHANGED
|
@@ -35,6 +35,32 @@ export function structureTables(sql) {
|
|
|
35
35
|
found.add(match[1]);
|
|
36
36
|
return [...found].sort();
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Columnas por tabla de una estructura de referencia (`pg_dump`): lee el cuerpo de
|
|
40
|
+
* cada `CREATE TABLE` y descarta las restricciones de tabla. Sirve para validar la
|
|
41
|
+
* **selección por columna** del consumidor (`engines.<motor>.columns`,
|
|
42
|
+
* [REQ/50](https://gitlab.com/pasosdeJesus/m/-/work_items/50) D9): declarar sólo las columnas que se usan (p. ej. `usuario` sin
|
|
43
|
+
* las de Devise).
|
|
44
|
+
*/
|
|
45
|
+
export function structureColumns(sql) {
|
|
46
|
+
const result = {};
|
|
47
|
+
const tableRe = /^CREATE TABLE (?:ONLY )?public\.(\w+) \(\r?\n([\s\S]*?)^\);/gm;
|
|
48
|
+
for (const match of sql.matchAll(tableRe)) {
|
|
49
|
+
const [, table, body] = match;
|
|
50
|
+
const columns = [];
|
|
51
|
+
for (const line of body.split('\n')) {
|
|
52
|
+
const trimmed = line.trim();
|
|
53
|
+
if (!trimmed)
|
|
54
|
+
continue;
|
|
55
|
+
const first = trimmed.split(/\s+/)[0];
|
|
56
|
+
if (/^(CONSTRAINT|PRIMARY|FOREIGN|UNIQUE|CHECK|EXCLUDE|LIKE)$/i.test(first))
|
|
57
|
+
continue;
|
|
58
|
+
columns.push(first.replace(/^"|"$/g, ''));
|
|
59
|
+
}
|
|
60
|
+
result[table] = columns;
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
38
64
|
/**
|
|
39
65
|
* Tables of a motor's own model, derived from its **reference structure**
|
|
40
66
|
* (`db/structure.sql`), never from scanning all migrations (which have
|
|
@@ -49,6 +75,16 @@ export function deriveTables(dir) {
|
|
|
49
75
|
}
|
|
50
76
|
return [];
|
|
51
77
|
}
|
|
78
|
+
/** Columns per table of a motor's reference structure, or `{}` when it ships none. */
|
|
79
|
+
export function deriveColumns(dir) {
|
|
80
|
+
for (const candidate of STRUCTURE_CANDIDATES) {
|
|
81
|
+
const file = join(dir, candidate);
|
|
82
|
+
if (!existsSync(file))
|
|
83
|
+
continue;
|
|
84
|
+
return structureColumns(readFileSync(file, 'utf-8'));
|
|
85
|
+
}
|
|
86
|
+
return {};
|
|
87
|
+
}
|
|
52
88
|
/** Migrations directory, by convention `db/migrations` when it exists. */
|
|
53
89
|
export function deriveMigrations(dir) {
|
|
54
90
|
return existsSync(join(dir, 'db', 'migrations')) ? 'db/migrations' : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/compose/derive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/compose/derive.ts"],"names":[],"mappings":"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"}
|
package/dist/compose/index.d.ts
CHANGED
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
* "Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23)
|
|
9
9
|
*/
|
|
10
10
|
export type { Intention, Derived, DerivedModel, DerivedViews, EngineManifest, EngineMount, EngineRef, Finding, FindingCode, SyncResult, VerifyResult, } from './manifest.js';
|
|
11
|
-
export { deriveFrom, deriveTables, deriveMigrations, deriveContracts, deriveViews, deriveCommands, structureTables, renderGenerated, readGenerated, GENERATED_FILENAME, GENERATED_RELATIVE, GENERATED_HEADER, } from './derive.js';
|
|
11
|
+
export { deriveFrom, deriveTables, deriveColumns, deriveMigrations, deriveContracts, deriveViews, deriveCommands, structureTables, structureColumns, renderGenerated, readGenerated, GENERATED_FILENAME, GENERATED_RELATIVE, GENERATED_HEADER, } from './derive.js';
|
|
12
12
|
export { discoverEngines, readEngineManifest, readIntention, readPackageJson, engineClosure, } from './discover.js';
|
|
13
13
|
export { sync } from './sync.js';
|
|
14
14
|
export { verify } from './verify.js';
|
|
15
|
-
export { vendor, unvendor, drift, readProvenance, structureSha, type Provenance, type DriftFinding, type DriftCode, type DriftReason, type GitOrigin, } from './vendor.js';
|
|
15
|
+
export { vendor, unvendor, drift, readProvenance, structureSha, enginePackages, rewriteEngineImports, type Provenance, type DriftFinding, type DriftCode, type DriftReason, type GitOrigin, } from './vendor.js';
|
|
16
16
|
export { parseFromGit, materializeGit, motorInCheckout, gitCheckoutDir, gitAvailable, gitCacheRoot, } from './git.js';
|
|
17
17
|
export { motorMigrationDir, motorMigrationFiles, planMigrationCopy, motorSeedFile, type MigrationPlan, } from './data.js';
|
|
18
18
|
export { tablesUsed, declaredUsage, usageReport, projectSources, type DeclaredUsage, type UsageReport, } from './usage.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compose/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,SAAS,EACT,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EACL,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compose/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,YAAY,EACV,SAAS,EACT,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EACL,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAC3F,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,GACrF,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,GAC1F,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EACxE,KAAK,aAAa,GACnB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EACtD,KAAK,aAAa,EAAE,KAAK,WAAW,GACrC,MAAM,YAAY,CAAA"}
|
package/dist/compose/index.js
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
*
|
|
8
8
|
* "Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23)
|
|
9
9
|
*/
|
|
10
|
-
export { deriveFrom, deriveTables, deriveMigrations, deriveContracts, deriveViews, deriveCommands, structureTables, renderGenerated, readGenerated, GENERATED_FILENAME, GENERATED_RELATIVE, GENERATED_HEADER, } from './derive.js';
|
|
10
|
+
export { deriveFrom, deriveTables, deriveColumns, deriveMigrations, deriveContracts, deriveViews, deriveCommands, structureTables, structureColumns, renderGenerated, readGenerated, GENERATED_FILENAME, GENERATED_RELATIVE, GENERATED_HEADER, } from './derive.js';
|
|
11
11
|
export { discoverEngines, readEngineManifest, readIntention, readPackageJson, engineClosure, } from './discover.js';
|
|
12
12
|
export { sync } from './sync.js';
|
|
13
13
|
export { verify } from './verify.js';
|
|
14
|
-
export { vendor, unvendor, drift, readProvenance, structureSha, } from './vendor.js';
|
|
14
|
+
export { vendor, unvendor, drift, readProvenance, structureSha, enginePackages, rewriteEngineImports, } from './vendor.js';
|
|
15
15
|
export { parseFromGit, materializeGit, motorInCheckout, gitCheckoutDir, gitAvailable, gitCacheRoot, } from './git.js';
|
|
16
16
|
export { motorMigrationDir, motorMigrationFiles, planMigrationCopy, motorSeedFile, } from './data.js';
|
|
17
17
|
export { tablesUsed, declaredUsage, usageReport, projectSources, } from './usage.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compose/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EACL,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compose/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EACL,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,GAE5F,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,GAC1F,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,GAEzE,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,GAEvD,MAAM,YAAY,CAAA"}
|
|
@@ -69,12 +69,13 @@ export interface EngineManifest extends Intention, Derived {
|
|
|
69
69
|
dir: string;
|
|
70
70
|
}
|
|
71
71
|
/** Grado de un hallazgo de verificación (análogo a los grados D6 de conformidad). */
|
|
72
|
-
export type FindingCode = 'GENERATED_MISSING' | 'GENERATED_STALE' | 'MISSING_ENGINE' | 'UNKNOWN_TABLE' | 'BROKEN_REFERENCE';
|
|
72
|
+
export type FindingCode = 'GENERATED_MISSING' | 'GENERATED_STALE' | 'MISSING_ENGINE' | 'UNKNOWN_TABLE' | 'UNKNOWN_COLUMN' | 'BROKEN_REFERENCE';
|
|
73
73
|
export interface Finding {
|
|
74
74
|
code: FindingCode;
|
|
75
75
|
message: string;
|
|
76
76
|
motor?: string;
|
|
77
77
|
table?: string;
|
|
78
|
+
column?: string;
|
|
78
79
|
}
|
|
79
80
|
/** Resultado de `eng:sync`. */
|
|
80
81
|
export interface SyncResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/compose/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wFAAwF;AACxF,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,oHAAoH;IACpH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACpC;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,OAAO;IACxD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,qFAAqF;AACrF,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,CAAA;AAEtB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/compose/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wFAAwF;AACxF,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,oHAAoH;IACpH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CACpC;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,OAAO;IACxD,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,qFAAqF;AACrF,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,CAAA;AAEtB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,+BAA+B;AAC/B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB"}
|
package/dist/compose/vendor.d.ts
CHANGED
|
@@ -36,8 +36,37 @@ export declare function structureSha(dir: string): string | null;
|
|
|
36
36
|
* consumidor (mismo criterio que sus paquetes de motor, p. ej. `gdcluster`).
|
|
37
37
|
*/
|
|
38
38
|
export declare function vendoredTsconfig(): string;
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* `package.json` de la copia vendorizada: paquete propio, compilable por separado.
|
|
41
|
+
*
|
|
42
|
+
* La copia debe **nacer consumible** (auditoría de learn.tg, 2026-10-14):
|
|
43
|
+
* - **Preserva los `exports` reales del motor** (p. ej. `./next` → `dist/components/index.js`),
|
|
44
|
+
* no un `./*` genérico que rompe los subpaths.
|
|
45
|
+
* - **Puentea los motores de los que depende** por **nombre** (`generated-<alias>`): sus `import` se
|
|
46
|
+
* reescriben en la copia (ver `rewriteEngineImports`) y se declaran como dependencia `*` (el
|
|
47
|
+
* consumidor añade `packages/generated/*` a su workspace). **Sin rutas `file:../…`**: atarían la
|
|
48
|
+
* copia al layout de una máquina.
|
|
49
|
+
* - No emite rangos `workspace:`; los `peerDependencies` van como peers (opcionales) **y** como
|
|
50
|
+
* `devDependencies` para que la copia **compile**.
|
|
51
|
+
*/
|
|
40
52
|
export declare function vendoredPackageJson(motorDir: string, pkg: PackageJson | null): string;
|
|
53
|
+
/**
|
|
54
|
+
* Motores de los que depende `motorDir`, según su intención: `Map<nombre-de-paquete, alias>`.
|
|
55
|
+
* `engines.<alias>.package` da el nombre real; si falta, se asume `@pasosdejesus/<alias>`.
|
|
56
|
+
* Es la materia prima del **puente por nombre** (`rewriteEngineImports`).
|
|
57
|
+
*/
|
|
58
|
+
export declare function enginePackages(motorDir: string): Map<string, string>;
|
|
59
|
+
/**
|
|
60
|
+
* Reescribe los `import` de la copia a los motores de los que depende, **por nombre**:
|
|
61
|
+
* `@pasosdejesus/<alias>` (o el `package` declarado) → `generated-<alias>`, conservando el
|
|
62
|
+
* subpath (`@pasosdejesus/msip/model` → `generated-msip/model`). El consumidor vendoriza esos
|
|
63
|
+
* motores como hermanos en `packages/generated/*` y añade el glob a su workspace. **Sin rutas
|
|
64
|
+
* `file:../…`**: atarían la copia al layout de una máquina (auditoría de learn.tg, 2026-10-14).
|
|
65
|
+
*
|
|
66
|
+
* No toca el nombre propio del motor ni los paquetes que no declara (p. ej. `@pasosdejesus/m`,
|
|
67
|
+
* que sí es publicable).
|
|
68
|
+
*/
|
|
69
|
+
export declare function rewriteEngineImports(destDir: string, engines: Map<string, string>): void;
|
|
41
70
|
/**
|
|
42
71
|
* Motor original con el que medir el drift de una copia vendorizada: el `--from`
|
|
43
72
|
* (la carpeta del motor, o un checkout donde vive en `packages/<motor>`), y si no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor.d.ts","sourceRoot":"","sources":["../../src/compose/vendor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACtB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"vendor.d.ts","sourceRoot":"","sources":["../../src/compose/vendor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAKhF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACtB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAoBzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CA+CrF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAqBxF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS9G;AAED,mFAAmF;AACnF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CA6B1F;AAED,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAQhE;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIhD;AAED,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEjD,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,YAAY,CAoBvE"}
|
package/dist/compose/vendor.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* "Porque ¿quién de vosotros, queriendo edificar una torre, no se sienta primero y calcula los gastos…?" (Lucas 14:28)
|
|
8
8
|
*/
|
|
9
|
-
import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
9
|
+
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
10
10
|
import { createHash } from 'node:crypto';
|
|
11
11
|
import { basename, join } from 'node:path';
|
|
12
12
|
import { readIntention, readPackageJson } from './discover.js';
|
|
@@ -30,7 +30,8 @@ export function vendoredTsconfig() {
|
|
|
30
30
|
target: 'ES2022',
|
|
31
31
|
module: 'NodeNext',
|
|
32
32
|
moduleResolution: 'NodeNext',
|
|
33
|
-
lib: ['ES2022'],
|
|
33
|
+
lib: ['ES2022', 'DOM', 'DOM.Iterable'],
|
|
34
|
+
jsx: 'react-jsx',
|
|
34
35
|
rootDir: './src',
|
|
35
36
|
outDir: './dist',
|
|
36
37
|
declaration: true,
|
|
@@ -44,11 +45,41 @@ export function vendoredTsconfig() {
|
|
|
44
45
|
exclude: ['node_modules', 'dist'],
|
|
45
46
|
}, null, 2)}\n`;
|
|
46
47
|
}
|
|
47
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* `package.json` de la copia vendorizada: paquete propio, compilable por separado.
|
|
50
|
+
*
|
|
51
|
+
* La copia debe **nacer consumible** (auditoría de learn.tg, 2026-10-14):
|
|
52
|
+
* - **Preserva los `exports` reales del motor** (p. ej. `./next` → `dist/components/index.js`),
|
|
53
|
+
* no un `./*` genérico que rompe los subpaths.
|
|
54
|
+
* - **Puentea los motores de los que depende** por **nombre** (`generated-<alias>`): sus `import` se
|
|
55
|
+
* reescriben en la copia (ver `rewriteEngineImports`) y se declaran como dependencia `*` (el
|
|
56
|
+
* consumidor añade `packages/generated/*` a su workspace). **Sin rutas `file:../…`**: atarían la
|
|
57
|
+
* copia al layout de una máquina.
|
|
58
|
+
* - No emite rangos `workspace:`; los `peerDependencies` van como peers (opcionales) **y** como
|
|
59
|
+
* `devDependencies` para que la copia **compile**.
|
|
60
|
+
*/
|
|
48
61
|
export function vendoredPackageJson(motorDir, pkg) {
|
|
49
62
|
const name = `generated-${basename(motorDir)}`;
|
|
50
63
|
const version = pkg?.version ?? '0.0.0';
|
|
51
|
-
const
|
|
64
|
+
const engines = enginePackages(motorDir);
|
|
65
|
+
const dependencies = {};
|
|
66
|
+
for (const [dep, range] of Object.entries(pkg?.dependencies ?? {})) {
|
|
67
|
+
const sibling = engines.get(dep);
|
|
68
|
+
if (sibling)
|
|
69
|
+
dependencies[`generated-${sibling}`] = '*';
|
|
70
|
+
else
|
|
71
|
+
dependencies[dep] = range.startsWith('workspace:') ? '*' : range;
|
|
72
|
+
}
|
|
73
|
+
const peerDependencies = {};
|
|
74
|
+
const peerDependenciesMeta = {};
|
|
75
|
+
const devDependencies = {};
|
|
76
|
+
for (const [dep, range] of Object.entries(pkg?.peerDependencies ?? {})) {
|
|
77
|
+
const sibling = engines.get(dep);
|
|
78
|
+
const resolved = sibling ? `generated-${sibling}` : range.startsWith('workspace:') ? '*' : range;
|
|
79
|
+
peerDependencies[dep] = resolved;
|
|
80
|
+
peerDependenciesMeta[dep] = { optional: true };
|
|
81
|
+
devDependencies[dep] = resolved;
|
|
82
|
+
}
|
|
52
83
|
const manifest = {
|
|
53
84
|
name,
|
|
54
85
|
version,
|
|
@@ -57,7 +88,7 @@ export function vendoredPackageJson(motorDir, pkg) {
|
|
|
57
88
|
description: `Copia vendorizada de ${pkg?.name ?? name} v${version}, generada por \`bin/m eng:sync --vendor\`; no editar a mano.`,
|
|
58
89
|
main: 'dist/index.js',
|
|
59
90
|
types: 'dist/index.d.ts',
|
|
60
|
-
exports: {
|
|
91
|
+
exports: pkg?.exports ?? {
|
|
61
92
|
'.': { import: './dist/index.js', types: './dist/index.d.ts' },
|
|
62
93
|
'./*': { import: './dist/*.js', types: './dist/*.d.ts' },
|
|
63
94
|
},
|
|
@@ -69,8 +100,61 @@ export function vendoredPackageJson(motorDir, pkg) {
|
|
|
69
100
|
};
|
|
70
101
|
if (Object.keys(dependencies).length > 0)
|
|
71
102
|
manifest.dependencies = dependencies;
|
|
103
|
+
if (Object.keys(peerDependencies).length > 0) {
|
|
104
|
+
manifest.peerDependencies = peerDependencies;
|
|
105
|
+
manifest.peerDependenciesMeta = peerDependenciesMeta;
|
|
106
|
+
}
|
|
107
|
+
if (Object.keys(devDependencies).length > 0)
|
|
108
|
+
manifest.devDependencies = devDependencies;
|
|
72
109
|
return `${JSON.stringify(manifest, null, 2)}\n`;
|
|
73
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Motores de los que depende `motorDir`, según su intención: `Map<nombre-de-paquete, alias>`.
|
|
113
|
+
* `engines.<alias>.package` da el nombre real; si falta, se asume `@pasosdejesus/<alias>`.
|
|
114
|
+
* Es la materia prima del **puente por nombre** (`rewriteEngineImports`).
|
|
115
|
+
*/
|
|
116
|
+
export function enginePackages(motorDir) {
|
|
117
|
+
const map = new Map();
|
|
118
|
+
for (const [alias, ref] of Object.entries(readIntention(motorDir)?.engines ?? {})) {
|
|
119
|
+
map.set(ref.package ?? `@pasosdejesus/${alias}`, alias);
|
|
120
|
+
}
|
|
121
|
+
return map;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Reescribe los `import` de la copia a los motores de los que depende, **por nombre**:
|
|
125
|
+
* `@pasosdejesus/<alias>` (o el `package` declarado) → `generated-<alias>`, conservando el
|
|
126
|
+
* subpath (`@pasosdejesus/msip/model` → `generated-msip/model`). El consumidor vendoriza esos
|
|
127
|
+
* motores como hermanos en `packages/generated/*` y añade el glob a su workspace. **Sin rutas
|
|
128
|
+
* `file:../…`**: atarían la copia al layout de una máquina (auditoría de learn.tg, 2026-10-14).
|
|
129
|
+
*
|
|
130
|
+
* No toca el nombre propio del motor ni los paquetes que no declara (p. ej. `@pasosdejesus/m`,
|
|
131
|
+
* que sí es publicable).
|
|
132
|
+
*/
|
|
133
|
+
export function rewriteEngineImports(destDir, engines) {
|
|
134
|
+
if (engines.size === 0 || !existsSync(destDir))
|
|
135
|
+
return;
|
|
136
|
+
const pairs = [...engines.entries()].map(([name, alias]) => [name, `generated-${alias}`]);
|
|
137
|
+
const walk = (dir) => {
|
|
138
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
139
|
+
const full = join(dir, entry.name);
|
|
140
|
+
if (entry.isDirectory()) {
|
|
141
|
+
walk(full);
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (!/\.tsx?$/.test(entry.name))
|
|
145
|
+
continue;
|
|
146
|
+
const source = readFileSync(full, 'utf-8');
|
|
147
|
+
let rewritten = source;
|
|
148
|
+
for (const [from, to] of pairs) {
|
|
149
|
+
const escaped = from.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
150
|
+
rewritten = rewritten.replace(new RegExp(`(['"\`])${escaped}(?=[/'"\`])`, 'g'), `$1${to}`);
|
|
151
|
+
}
|
|
152
|
+
if (rewritten !== source)
|
|
153
|
+
writeFileSync(full, rewritten);
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
walk(destDir);
|
|
157
|
+
}
|
|
74
158
|
/**
|
|
75
159
|
* Motor original con el que medir el drift de una copia vendorizada: el `--from`
|
|
76
160
|
* (la carpeta del motor, o un checkout donde vive en `packages/<motor>`), y si no
|
|
@@ -101,6 +185,8 @@ export function vendor(motorDir, outDir, gitOrigin) {
|
|
|
101
185
|
if (existsSync(from))
|
|
102
186
|
cpSync(from, join(outDir, entry), { recursive: true, filter: keep });
|
|
103
187
|
}
|
|
188
|
+
// Puente por nombre: la copia importa `generated-<alias>`, no `@pasosdejesus/<alias>` (private).
|
|
189
|
+
rewriteEngineImports(join(outDir, 'src'), enginePackages(motorDir));
|
|
104
190
|
// Paquete propio + tsconfig autónomo: cada copia se compila por separado (`tsc -b`).
|
|
105
191
|
writeFileSync(join(outDir, 'package.json'), vendoredPackageJson(motorDir, pkg));
|
|
106
192
|
writeFileSync(join(outDir, 'tsconfig.json'), vendoredTsconfig());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../src/compose/vendor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../src/compose/vendor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAoB,MAAM,eAAe,CAAA;AAEhF,wEAAwE;AACxE,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAA;AAyBxE,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,eAAe,EAAE;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,UAAU;YAClB,gBAAgB,EAAE,UAAU;YAC5B,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC;YACtC,GAAG,EAAE,WAAW;YAChB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,gCAAgC,EAAE,IAAI;SACvC;QACD,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC;KAClC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,GAAuB;IAC3E,MAAM,IAAI,GAAG,aAAa,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,IAAI,OAAO,CAAA;IACvC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAExC,MAAM,YAAY,GAA2B,EAAE,CAAA;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,OAAO;YAAE,YAAY,CAAC,aAAa,OAAO,EAAE,CAAC,GAAG,GAAG,CAAA;;YAClD,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA;IACvE,CAAC;IACD,MAAM,gBAAgB,GAA2B,EAAE,CAAA;IACnD,MAAM,oBAAoB,GAA0C,EAAE,CAAA;IACtE,MAAM,eAAe,GAA2B,EAAE,CAAA;IAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA;QAChG,gBAAgB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;QAChC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QAC9C,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAA;IACjC,CAAC;IAED,MAAM,QAAQ,GAA4B;QACxC,IAAI;QACJ,OAAO;QACP,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wBAAwB,GAAG,EAAE,IAAI,IAAI,IAAI,KAAK,OAAO,+DAA+D;QACjI,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAG,GAAoC,EAAE,OAAO,IAAI;YACzD,GAAG,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE;YAC9D,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE;SACzD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE,2BAA2B;YACtC,KAAK,EAAE,kCAAkC;SAC1C;KACF,CAAA;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAA;IAC9E,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,QAAQ,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAC5C,QAAQ,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;IACtD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAA;IACvF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;IACrC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,iBAAiB,KAAK,EAAE,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,OAA4B;IAChF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAM;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,KAAK,EAAE,CAAU,CAAC,CAAA;IAClG,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAA;gBACV,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACzC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC1C,IAAI,SAAS,GAAG,MAAM,CAAA;YACtB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;gBAC3D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,OAAO,aAAa,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,IAAI,SAAS,KAAK,MAAM;gBAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC,CAAA;IACD,IAAI,CAAC,OAAO,CAAC,CAAA;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,SAAiB,EAAE,gBAAyB;IAC7F,IAAI,CAAC,IAAI;QAAE,OAAO,gBAAgB,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5F,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5D,MAAM,UAAU,GAAG;QACjB,IAAI;QACJ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACpD,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;KAClE,CAAA;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AACjF,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,MAAM,CAAC,QAAgB,EAAE,MAAc,EAAE,SAAqB;IAC5E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAA;IAC5F,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAErC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACtC,gEAAgE;IAChE,MAAM,IAAI,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClC,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5F,CAAC;IACD,iGAAiG;IACjG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnE,qFAAqF;IACrF,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/E,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAEhE,MAAM,UAAU,GAAe;QAC7B,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,OAAO;QAChC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ;QAClE,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpC,GAAG,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAC1H,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;IACD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC1F,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAe,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACrC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,WAAmB;IACvD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACzC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,MAAM,EAAE,EAAE,CAAA;IACnF,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,wDAAwD;SAC5G,CAAA;IACH,CAAC;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,IAAI,OAAO,CAAA;IACvE,IAAI,UAAU,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,OAAO,cAAc,yCAAyC;SAClH,CAAA;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,SAAS,EAAE,CAAA;AACrF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/compose/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAW,cAAc,EAAW,YAAY,EAAE,MAAM,eAAe,CAAA;AAMnF,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAa,GACtD,YAAY,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/compose/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAW,cAAc,EAAW,YAAY,EAAE,MAAM,eAAe,CAAA;AAMnF,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAa,GACtD,YAAY,CA4Fd"}
|
package/dist/compose/verify.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* "Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23)
|
|
8
8
|
*/
|
|
9
9
|
import { basename } from 'node:path';
|
|
10
|
-
import { deriveFrom, readGenerated } from './derive.js';
|
|
10
|
+
import { deriveColumns, deriveFrom, readGenerated } from './derive.js';
|
|
11
11
|
import { readIntention, readPackageJson } from './discover.js';
|
|
12
12
|
function sameDerived(a, b) {
|
|
13
13
|
return JSON.stringify(a) === JSON.stringify(b);
|
|
@@ -37,8 +37,17 @@ export function verify(dir, byName = new Map()) {
|
|
|
37
37
|
message: `m-engine.generated.ts no longer matches the sources; run \`eng:sync\``,
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
+
const columnsCache = new Map();
|
|
41
|
+
const knownColumns = (motorDir) => {
|
|
42
|
+
let cached = columnsCache.get(motorDir);
|
|
43
|
+
if (!cached) {
|
|
44
|
+
cached = deriveColumns(motorDir);
|
|
45
|
+
columnsCache.set(motorDir, cached);
|
|
46
|
+
}
|
|
47
|
+
return cached;
|
|
48
|
+
};
|
|
40
49
|
for (const [motor, ref] of Object.entries(intention.engines ?? {})) {
|
|
41
|
-
const dependency = byName.get(motor);
|
|
50
|
+
const dependency = (ref.package ? byName.get(ref.package) : undefined) ?? byName.get(motor);
|
|
42
51
|
if (!dependency) {
|
|
43
52
|
findings.push({
|
|
44
53
|
code: 'MISSING_ENGINE',
|
|
@@ -68,6 +77,32 @@ export function verify(dir, byName = new Map()) {
|
|
|
68
77
|
});
|
|
69
78
|
}
|
|
70
79
|
}
|
|
80
|
+
// Selección por columna (REQ/50 D9): cada columna declarada debe existir en la tabla del motor.
|
|
81
|
+
for (const [table, columns] of Object.entries(ref.columns ?? {})) {
|
|
82
|
+
if (!dependency.model.tables.includes(table)) {
|
|
83
|
+
findings.push({
|
|
84
|
+
code: 'UNKNOWN_TABLE',
|
|
85
|
+
motor,
|
|
86
|
+
table,
|
|
87
|
+
message: `engine "${motor}" does not own table "${table}"`,
|
|
88
|
+
});
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const tableColumns = knownColumns(dependency.dir)[table];
|
|
92
|
+
if (!tableColumns)
|
|
93
|
+
continue; // sin estructura de referencia: no se puede validar
|
|
94
|
+
for (const column of columns) {
|
|
95
|
+
if (tableColumns.includes(column))
|
|
96
|
+
continue;
|
|
97
|
+
findings.push({
|
|
98
|
+
code: 'UNKNOWN_COLUMN',
|
|
99
|
+
motor,
|
|
100
|
+
table,
|
|
101
|
+
column,
|
|
102
|
+
message: `engine "${motor}" table "${table}" has no column "${column}"`,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
71
106
|
}
|
|
72
107
|
return { ok: findings.length === 0, findings };
|
|
73
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/compose/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/compose/verify.ts"],"names":[],"mappings":"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"}
|