@pasosdejesus/m 0.27.2 → 0.29.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 +2 -2
- package/dist/CHANGELOG.md +147 -0
- package/dist/compose/data.d.ts +30 -0
- package/dist/compose/data.d.ts.map +1 -0
- package/dist/compose/data.js +46 -0
- package/dist/compose/data.js.map +1 -0
- package/dist/compose/derive.d.ts +59 -0
- package/dist/compose/derive.d.ts.map +1 -0
- package/dist/compose/derive.js +143 -0
- package/dist/compose/derive.js.map +1 -0
- package/dist/compose/discover.d.ts +32 -0
- package/dist/compose/discover.d.ts.map +1 -0
- package/dist/compose/discover.js +96 -0
- package/dist/compose/discover.js.map +1 -0
- package/dist/compose/git.d.ts +31 -0
- package/dist/compose/git.d.ts.map +1 -0
- package/dist/compose/git.js +71 -0
- package/dist/compose/git.js.map +1 -0
- package/dist/compose/index.d.ts +19 -0
- package/dist/compose/index.d.ts.map +1 -0
- package/dist/compose/index.js +18 -0
- package/dist/compose/index.js.map +1 -0
- package/dist/compose/manifest.d.ts +89 -0
- package/dist/compose/manifest.d.ts.map +1 -0
- package/dist/compose/manifest.js +16 -0
- package/dist/compose/manifest.js.map +1 -0
- package/dist/compose/sync.d.ts +12 -0
- package/dist/compose/sync.d.ts.map +1 -0
- package/dist/compose/sync.js +27 -0
- package/dist/compose/sync.js.map +1 -0
- package/dist/compose/usage.d.ts +54 -0
- package/dist/compose/usage.d.ts.map +1 -0
- package/dist/compose/usage.js +167 -0
- package/dist/compose/usage.js.map +1 -0
- package/dist/compose/vendor.d.ts +68 -0
- package/dist/compose/vendor.d.ts.map +1 -0
- package/dist/compose/vendor.js +166 -0
- package/dist/compose/vendor.js.map +1 -0
- package/dist/compose/verify.d.ts +11 -0
- package/dist/compose/verify.d.ts.map +1 -0
- package/dist/compose/verify.js +74 -0
- package/dist/compose/verify.js.map +1 -0
- package/dist/e2e/env.d.ts +1 -1
- package/dist/e2e/env.js +3 -3
- package/dist/e2e/env.js.map +1 -1
- package/dist/e2e/local-node.js +1 -1
- package/dist/e2e/local-node.js.map +1 -1
- package/dist/e2e/wallet-mock.js +1 -1
- package/dist/e2e/wallet-mock.js.map +1 -1
- package/dist/e2e/warmup.js +1 -1
- package/dist/e2e/warmup.js.map +1 -1
- package/dist/engine.d.ts +3 -16
- package/dist/engine.d.ts.map +1 -1
- package/dist/i18n/locales/cli.d.ts.map +1 -1
- package/dist/i18n/locales/cli.js +20 -10
- package/dist/i18n/locales/cli.js.map +1 -1
- package/dist/m.js +15 -10
- package/dist/m.js.map +1 -1
- package/dist/shadcn_components/ui/button.d.ts +1 -1
- package/dist/tasks/create.d.ts +1 -1
- package/dist/tasks/create.d.ts.map +1 -1
- package/dist/tasks/create.js +5 -13
- package/dist/tasks/create.js.map +1 -1
- package/dist/tasks/db.d.ts +2 -1
- package/dist/tasks/db.d.ts.map +1 -1
- package/dist/tasks/db.js +14 -11
- package/dist/tasks/db.js.map +1 -1
- package/dist/tasks/e2e-summary.js +1 -1
- package/dist/tasks/e2e-summary.js.map +1 -1
- package/dist/tasks/e2e.js +1 -1
- package/dist/tasks/e2e.js.map +1 -1
- package/dist/tasks/engine.d.ts.map +1 -1
- package/dist/tasks/engine.js +436 -17
- package/dist/tasks/engine.js.map +1 -1
- package/dist/tasks/msip.d.ts +11 -0
- package/dist/tasks/msip.d.ts.map +1 -0
- package/dist/tasks/{base-model.js → msip.js} +161 -25
- package/dist/tasks/msip.js.map +1 -0
- package/dist/tasks/warmup.js +1 -1
- package/dist/tasks/warmup.js.map +1 -1
- package/dist/templates/apps/hardhat/README.md +0 -8
- package/dist/templates/apps/nextjs/bin/m +3 -0
- package/dist/templates/apps/nextjs/tests/global-setup.ts +28 -0
- package/dist/templates/apps/nextjs/vitest.config.ts +3 -0
- package/dist/test-utils/console.d.ts +1 -1
- package/dist/test-utils/console.js +1 -1
- package/dist/test-utils/kysely-mocks.d.ts +1 -1
- package/dist/test-utils/kysely-mocks.js +1 -1
- package/dist/test-utils/wallet-mocks.js +1 -1
- package/dist/test-utils/wallet-setup.js +1 -1
- package/dist/util/engines.d.ts +4 -6
- package/dist/util/engines.d.ts.map +1 -1
- package/dist/util/engines.js +5 -38
- package/dist/util/engines.js.map +1 -1
- package/dist/util/msip.d.ts +17 -0
- package/dist/util/msip.d.ts.map +1 -0
- package/dist/util/msip.js +86 -0
- package/dist/util/msip.js.map +1 -0
- package/dist/wallet/index.js +1 -1
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/next/i18n.d.ts +1 -1
- package/dist/wallet/next/i18n.js +1 -1
- package/dist/wallet/next/index.js +1 -1
- package/dist/wallet/next/index.js.map +1 -1
- package/dist/wallet/next/namespaces.d.ts +1 -1
- package/dist/wallet/next/namespaces.js +1 -1
- package/dist/wallet/storage/idb.d.ts +1 -1
- package/dist/wallet/storage/idb.js +1 -1
- package/package.json +4 -6
- package/src/e2e/README.md +6 -6
- package/src/tasks/README.md +3 -3
- package/src/test-utils/README.md +2 -2
- package/src/wallet/README.md +4 -4
- package/dist/base-model/baseline.generated.d.ts +0 -48
- package/dist/base-model/baseline.generated.d.ts.map +0 -1
- package/dist/base-model/baseline.generated.js +0 -930
- package/dist/base-model/baseline.generated.js.map +0 -1
- package/dist/base-model/check.d.ts +0 -6
- package/dist/base-model/check.d.ts.map +0 -1
- package/dist/base-model/check.js +0 -195
- package/dist/base-model/check.js.map +0 -1
- package/dist/base-model/forward/baseline_1_0_0.d.ts +0 -3
- package/dist/base-model/forward/baseline_1_0_0.d.ts.map +0 -1
- package/dist/base-model/forward/baseline_1_0_0.js +0 -23
- package/dist/base-model/forward/baseline_1_0_0.js.map +0 -1
- package/dist/base-model/forward/index.d.ts +0 -28
- package/dist/base-model/forward/index.d.ts.map +0 -1
- package/dist/base-model/forward/index.js +0 -126
- package/dist/base-model/forward/index.js.map +0 -1
- package/dist/base-model/forward/index.test.d.ts +0 -2
- package/dist/base-model/forward/index.test.d.ts.map +0 -1
- package/dist/base-model/forward/index.test.js +0 -65
- package/dist/base-model/forward/index.test.js.map +0 -1
- package/dist/base-model/forward/policy.d.ts +0 -16
- package/dist/base-model/forward/policy.d.ts.map +0 -1
- package/dist/base-model/forward/policy.js +0 -37
- package/dist/base-model/forward/policy.js.map +0 -1
- package/dist/base-model/forward/policy.test.d.ts +0 -2
- package/dist/base-model/forward/policy.test.d.ts.map +0 -1
- package/dist/base-model/forward/policy.test.js +0 -40
- package/dist/base-model/forward/policy.test.js.map +0 -1
- package/dist/base-model/forward/types.d.ts +0 -21
- package/dist/base-model/forward/types.d.ts.map +0 -1
- package/dist/base-model/forward/types.js +0 -2
- package/dist/base-model/forward/types.js.map +0 -1
- package/dist/base-model/generate.d.ts +0 -42
- package/dist/base-model/generate.d.ts.map +0 -1
- package/dist/base-model/generate.js +0 -241
- package/dist/base-model/generate.js.map +0 -1
- package/dist/base-model/guidelines.d.ts +0 -13
- package/dist/base-model/guidelines.d.ts.map +0 -1
- package/dist/base-model/guidelines.js +0 -61
- package/dist/base-model/guidelines.js.map +0 -1
- package/dist/base-model/index.d.ts +0 -24
- package/dist/base-model/index.d.ts.map +0 -1
- package/dist/base-model/index.js +0 -29
- package/dist/base-model/index.js.map +0 -1
- package/dist/base-model/parse-structure.d.ts +0 -4
- package/dist/base-model/parse-structure.d.ts.map +0 -1
- package/dist/base-model/parse-structure.js +0 -170
- package/dist/base-model/parse-structure.js.map +0 -1
- package/dist/base-model/queries.d.ts +0 -34
- package/dist/base-model/queries.d.ts.map +0 -1
- package/dist/base-model/queries.js +0 -118
- package/dist/base-model/queries.js.map +0 -1
- package/dist/base-model/references/learn-tg.d.ts +0 -21
- package/dist/base-model/references/learn-tg.d.ts.map +0 -1
- package/dist/base-model/references/learn-tg.js +0 -65
- package/dist/base-model/references/learn-tg.js.map +0 -1
- package/dist/base-model/references/msip.d.ts +0 -29
- package/dist/base-model/references/msip.d.ts.map +0 -1
- package/dist/base-model/references/msip.js +0 -33
- package/dist/base-model/references/msip.js.map +0 -1
- package/dist/base-model/types.d.ts +0 -207
- package/dist/base-model/types.d.ts.map +0 -1
- package/dist/base-model/types.js +0 -10
- package/dist/base-model/types.js.map +0 -1
- package/dist/base-model/version.d.ts +0 -19
- package/dist/base-model/version.d.ts.map +0 -1
- package/dist/base-model/version.js +0 -26
- package/dist/base-model/version.js.map +0 -1
- package/dist/base-model/wallet-link.d.ts +0 -69
- package/dist/base-model/wallet-link.d.ts.map +0 -1
- package/dist/base-model/wallet-link.js +0 -220
- package/dist/base-model/wallet-link.js.map +0 -1
- package/dist/base-model/wallet-link.test.d.ts +0 -2
- package/dist/base-model/wallet-link.test.d.ts.map +0 -1
- package/dist/base-model/wallet-link.test.js +0 -147
- package/dist/base-model/wallet-link.test.js.map +0 -1
- package/dist/e2e/env.test.d.ts +0 -2
- package/dist/e2e/env.test.d.ts.map +0 -1
- package/dist/e2e/env.test.js +0 -72
- package/dist/e2e/env.test.js.map +0 -1
- package/dist/e2e/full-wallet.test.d.ts +0 -2
- package/dist/e2e/full-wallet.test.d.ts.map +0 -1
- package/dist/e2e/full-wallet.test.js +0 -63
- package/dist/e2e/full-wallet.test.js.map +0 -1
- package/dist/e2e/in-app-wallet.test.d.ts +0 -2
- package/dist/e2e/in-app-wallet.test.d.ts.map +0 -1
- package/dist/e2e/in-app-wallet.test.js +0 -52
- package/dist/e2e/in-app-wallet.test.js.map +0 -1
- package/dist/e2e/local-node.test.d.ts +0 -2
- package/dist/e2e/local-node.test.d.ts.map +0 -1
- package/dist/e2e/local-node.test.js +0 -43
- package/dist/e2e/local-node.test.js.map +0 -1
- package/dist/e2e/retry.test.d.ts +0 -2
- package/dist/e2e/retry.test.d.ts.map +0 -1
- package/dist/e2e/retry.test.js +0 -43
- package/dist/e2e/retry.test.js.map +0 -1
- package/dist/e2e/signer.test.d.ts +0 -2
- package/dist/e2e/signer.test.d.ts.map +0 -1
- package/dist/e2e/signer.test.js +0 -57
- package/dist/e2e/signer.test.js.map +0 -1
- package/dist/e2e/siwe-optional.test.d.ts +0 -2
- package/dist/e2e/siwe-optional.test.d.ts.map +0 -1
- package/dist/e2e/siwe-optional.test.js +0 -13
- package/dist/e2e/siwe-optional.test.js.map +0 -1
- package/dist/e2e/wallet-mock.test.d.ts +0 -2
- package/dist/e2e/wallet-mock.test.d.ts.map +0 -1
- package/dist/e2e/wallet-mock.test.js +0 -28
- package/dist/e2e/wallet-mock.test.js.map +0 -1
- package/dist/e2e/warmup.test.d.ts +0 -2
- package/dist/e2e/warmup.test.d.ts.map +0 -1
- package/dist/e2e/warmup.test.js +0 -67
- package/dist/e2e/warmup.test.js.map +0 -1
- package/dist/engine.test.d.ts +0 -2
- package/dist/engine.test.d.ts.map +0 -1
- package/dist/engine.test.js +0 -35
- package/dist/engine.test.js.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -11
- package/dist/index.test.js.map +0 -1
- package/dist/tasks/base-model.d.ts +0 -5
- package/dist/tasks/base-model.d.ts.map +0 -1
- package/dist/tasks/base-model.js.map +0 -1
- package/dist/tasks/create.test.d.ts +0 -2
- package/dist/tasks/create.test.d.ts.map +0 -1
- package/dist/tasks/create.test.js +0 -41
- package/dist/tasks/create.test.js.map +0 -1
- package/dist/tasks/e2e.test.d.ts +0 -2
- package/dist/tasks/e2e.test.d.ts.map +0 -1
- package/dist/tasks/e2e.test.js +0 -108
- package/dist/tasks/e2e.test.js.map +0 -1
- package/dist/tasks/update.test.d.ts +0 -2
- package/dist/tasks/update.test.d.ts.map +0 -1
- package/dist/tasks/update.test.js +0 -79
- package/dist/tasks/update.test.js.map +0 -1
- package/dist/tasks/warmup.test.d.ts +0 -2
- package/dist/tasks/warmup.test.d.ts.map +0 -1
- package/dist/tasks/warmup.test.js +0 -40
- package/dist/tasks/warmup.test.js.map +0 -1
- package/dist/templates/apps/nextjs/tests/index.test.ts +0 -7
- package/dist/templates/apps/nextjs/tests/test-utils.example.test.ts +0 -169
- package/dist/templates/apps/nextjs/tsconfig.test.json +0 -38
- package/dist/test-utils/console.test.d.ts +0 -2
- package/dist/test-utils/console.test.d.ts.map +0 -1
- package/dist/test-utils/console.test.js +0 -70
- package/dist/test-utils/console.test.js.map +0 -1
- package/dist/test-utils/kysely-mocks.test.d.ts +0 -2
- package/dist/test-utils/kysely-mocks.test.d.ts.map +0 -1
- package/dist/test-utils/kysely-mocks.test.js +0 -126
- package/dist/test-utils/kysely-mocks.test.js.map +0 -1
- package/dist/test-utils/wallet-mocks.test.d.ts +0 -2
- package/dist/test-utils/wallet-mocks.test.d.ts.map +0 -1
- package/dist/test-utils/wallet-mocks.test.js +0 -55
- package/dist/test-utils/wallet-mocks.test.js.map +0 -1
- package/dist/test-utils/wallet-setup.test.d.ts +0 -2
- package/dist/test-utils/wallet-setup.test.d.ts.map +0 -1
- package/dist/test-utils/wallet-setup.test.js +0 -18
- package/dist/test-utils/wallet-setup.test.js.map +0 -1
- package/dist/util/engines.test.d.ts +0 -2
- package/dist/util/engines.test.d.ts.map +0 -1
- package/dist/util/engines.test.js +0 -79
- package/dist/util/engines.test.js.map +0 -1
- package/dist/wallet/biometric.test.d.ts +0 -2
- package/dist/wallet/biometric.test.d.ts.map +0 -1
- package/dist/wallet/biometric.test.js +0 -44
- package/dist/wallet/biometric.test.js.map +0 -1
- package/dist/wallet/crypto.test.d.ts +0 -2
- package/dist/wallet/crypto.test.d.ts.map +0 -1
- package/dist/wallet/crypto.test.js +0 -34
- package/dist/wallet/crypto.test.js.map +0 -1
- package/dist/wallet/destinations.test.d.ts +0 -2
- package/dist/wallet/destinations.test.d.ts.map +0 -1
- package/dist/wallet/destinations.test.js +0 -34
- package/dist/wallet/destinations.test.js.map +0 -1
- package/dist/wallet/external-provider.test.d.ts +0 -2
- package/dist/wallet/external-provider.test.d.ts.map +0 -1
- package/dist/wallet/external-provider.test.js +0 -44
- package/dist/wallet/external-provider.test.js.map +0 -1
- package/dist/wallet/indexeddb.test.d.ts +0 -2
- package/dist/wallet/indexeddb.test.d.ts.map +0 -1
- package/dist/wallet/indexeddb.test.js +0 -28
- package/dist/wallet/indexeddb.test.js.map +0 -1
- package/dist/wallet/kdf.test.d.ts +0 -2
- package/dist/wallet/kdf.test.d.ts.map +0 -1
- package/dist/wallet/kdf.test.js +0 -54
- package/dist/wallet/kdf.test.js.map +0 -1
- package/dist/wallet/next/components.test.d.ts +0 -2
- package/dist/wallet/next/components.test.d.ts.map +0 -1
- package/dist/wallet/next/components.test.js +0 -122
- package/dist/wallet/next/components.test.js.map +0 -1
- package/dist/wallet/next/useInAppWallet.test.d.ts +0 -2
- package/dist/wallet/next/useInAppWallet.test.d.ts.map +0 -1
- package/dist/wallet/next/useInAppWallet.test.js +0 -261
- package/dist/wallet/next/useInAppWallet.test.js.map +0 -1
- package/dist/wallet/provider.test.d.ts +0 -2
- package/dist/wallet/provider.test.d.ts.map +0 -1
- package/dist/wallet/provider.test.js +0 -170
- package/dist/wallet/provider.test.js.map +0 -1
- package/dist/wallet/signer.test.d.ts +0 -2
- package/dist/wallet/signer.test.d.ts.map +0 -1
- package/dist/wallet/signer.test.js +0 -62
- package/dist/wallet/signer.test.js.map +0 -1
- package/dist/wallet/storage.test.d.ts +0 -2
- package/dist/wallet/storage.test.d.ts.map +0 -1
- package/dist/wallet/storage.test.js +0 -103
- package/dist/wallet/storage.test.js.map +0 -1
- package/dist/wallet/wallet.test.d.ts +0 -2
- package/dist/wallet/wallet.test.d.ts.map +0 -1
- package/dist/wallet/wallet.test.js +0 -150
- package/dist/wallet/wallet.test.js.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolución del motor `msip` sin depender de él: `m` no lo declara en
|
|
3
|
+
* `dependencies` (sólo en `devDependencies`, para el monorepo), así que en tiempo de
|
|
4
|
+
* ejecución busca el motor **donde el consumidor lo tenga** y falla con
|
|
5
|
+
* instrucciones si no está. Así `m` se publica sin obligar a publicar el motor
|
|
6
|
+
* ([REQ/40](https://gitlab.com/pasosdeJesus/m/-/work_items/40) D1) y los consumidores pueden
|
|
7
|
+
* vendorizarlo (`eng:sync --vendor`).
|
|
8
|
+
*
|
|
9
|
+
* Orden: (1) la copia vendorizada del consumidor
|
|
10
|
+
* (`<cwd>/packages/generated/msip/dist`, compilada con `tsc -b`), (2) el paquete
|
|
11
|
+
* instalado. Un candidato sólo se acepta si expone **todos** los símbolos que `m`
|
|
12
|
+
* usa (`MSIP_SYMBOLS`), de modo que una versión incompatible se detecta al ejecutar.
|
|
13
|
+
*
|
|
14
|
+
* Los tipos **no** referencian el paquete del motor: eso dejaría un
|
|
15
|
+
* `typeof import('@pasosdejesus/msip')` en los `.d.ts` publicados, que un consumidor
|
|
16
|
+
* sin el motor (p. ej. con `skipLibCheck: false`) no podría resolver. Quien necesita
|
|
17
|
+
* los tipos exactos los aplica en su módulo (`src/tasks/msip.ts`).
|
|
18
|
+
*/
|
|
19
|
+
import { existsSync } from 'node:fs';
|
|
20
|
+
import { createRequire } from 'node:module';
|
|
21
|
+
import { dirname, join } from 'node:path';
|
|
22
|
+
import { pathToFileURL } from 'node:url';
|
|
23
|
+
/** Símbolos que `m` necesita del motor; un candidato sin todos ellos se descarta. */
|
|
24
|
+
export const MSIP_SYMBOLS = [
|
|
25
|
+
'BASE_MODEL_VERSION', 'parseStructureSql', 'buildBaseline', 'buildInventory',
|
|
26
|
+
'renderGeneratedModule', 'BASE_MODEL_MIGRATIONS', 'migrationMarker', 'planSetup', 'renderMigrationFile',
|
|
27
|
+
'checkMigrationPolicy', 'BASELINE_INVENTORY', 'BASELINE_SQL',
|
|
28
|
+
'seedTables', 'seedIsLoaded', 'countStatement', 'truncateStatement',
|
|
29
|
+
];
|
|
30
|
+
const cache = new Map();
|
|
31
|
+
/** `true` cuando el módulo expone todos los símbolos que `m` usa. */
|
|
32
|
+
function isCompatible(module) {
|
|
33
|
+
return MSIP_SYMBOLS.every((symbol) => symbol in module);
|
|
34
|
+
}
|
|
35
|
+
/** Resuelve y cachea el motor `msip` (vendorizado o instalado). */
|
|
36
|
+
export async function resolveMsip(cwd = process.cwd()) {
|
|
37
|
+
const cached = cache.get(cwd);
|
|
38
|
+
if (cached)
|
|
39
|
+
return cached;
|
|
40
|
+
const vendored = join(cwd, 'packages', 'generated', 'msip');
|
|
41
|
+
const candidates = [
|
|
42
|
+
// 1º la copia del consumidor (elección explícita, versión fijada y medida por `eng:check`),
|
|
43
|
+
// 2º el paquete instalado (resolución normal de Node desde `m`).
|
|
44
|
+
{ module: pathToFileURL(join(vendored, 'dist', 'index.js')).href, dir: vendored, kind: 'vendored' },
|
|
45
|
+
{ module: '@pasosdejesus/msip', dir: null, kind: 'installed' },
|
|
46
|
+
];
|
|
47
|
+
let incompatible = null;
|
|
48
|
+
for (const candidate of candidates) {
|
|
49
|
+
try {
|
|
50
|
+
const module = (await import(candidate.module));
|
|
51
|
+
if (!isCompatible(module)) {
|
|
52
|
+
incompatible = candidate.module;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const dir = candidate.dir ?? dirname(createRequire(import.meta.url).resolve('@pasosdejesus/msip/package.json'));
|
|
56
|
+
const resolved = { module, dir, kind: candidate.kind };
|
|
57
|
+
cache.set(cwd, resolved);
|
|
58
|
+
return resolved;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// el candidato no existe (o no se puede importar): siguiente
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (incompatible) {
|
|
65
|
+
throw new Error(`motor \`msip\` incompatible (${incompatible}): falta alguno de ${MSIP_SYMBOLS.join(', ')}; ` +
|
|
66
|
+
'actualiza el motor o vuelve a vendorizarlo (`eng:sync --vendor` + `tsc -b`)');
|
|
67
|
+
}
|
|
68
|
+
throw new Error('motor `msip` no encontrado: vendorízalo con ' +
|
|
69
|
+
'`bin/m eng:sync <ruta-al-checkout>/packages/msip --vendor` (y compílalo: `tsc -b` en ' +
|
|
70
|
+
'`packages/generated/msip`) o instala `@pasosdejesus/msip`');
|
|
71
|
+
}
|
|
72
|
+
/** Sólo el módulo del motor (para quien no necesita su directorio). */
|
|
73
|
+
export async function loadMsipModule(cwd = process.cwd()) {
|
|
74
|
+
return (await resolveMsip(cwd)).module;
|
|
75
|
+
}
|
|
76
|
+
/** ¿Hay motor (vendorizado o instalado) y es compatible? (sin lanzar). */
|
|
77
|
+
export function msipAvailable(cwd = process.cwd()) {
|
|
78
|
+
try {
|
|
79
|
+
createRequire(import.meta.url).resolve('@pasosdejesus/msip/package.json');
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return existsSync(join(cwd, 'packages', 'generated', 'msip', 'dist', 'index.js'));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=msip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msip.js","sourceRoot":"","sources":["../../src/util/msip.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @pasosdejesus/m/wallet — núcleo compartido de billetera (
|
|
1
|
+
// @pasosdejesus/m/wallet — núcleo compartido de billetera (https://gitlab.com/pasosdeJesus/m/-/work_items/14).
|
|
2
2
|
//
|
|
3
3
|
// Sin React y sin Kysely: mnemónica (BIP39), derivación, firma, cifrado en reposo
|
|
4
4
|
// (PBKDF2 + AES-GCM), almacenamiento intercambiable, estado de la billetera in-app,
|
package/dist/wallet/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,EAAE;AACF,kFAAkF;AAClF,oFAAoF;AACpF,8EAA8E;AAC9E,4EAA4E;AAC5E,8CAA8C;AAC9C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,MAAM,GAEP,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,MAAM,EACN,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,aAAa,CAAA;AAEpB,yDAAyD;AACzD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,GAGrB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAEL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AAEvB,iEAAiE;AACjE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,GAEpB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAE1B,uEAAuE;AACvE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,GAI9B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE5E,OAAO,EACL,SAAS,EACT,aAAa,GASd,MAAM,YAAY,CAAA"}
|
|
@@ -56,7 +56,7 @@ export declare function defaultMessages(lang: Lang): WalletReactMessages;
|
|
|
56
56
|
/**
|
|
57
57
|
* Texts for a language with the host's overrides on top. The components accept this
|
|
58
58
|
* as a `messages` prop so a consumer can inject its own wording without forking the
|
|
59
|
-
* package (
|
|
59
|
+
* package (https://gitlab.com/pasosdeJesus/m/-/work_items/37).
|
|
60
60
|
*/
|
|
61
61
|
export declare function resolveMessages(lang: Lang, override?: Partial<WalletReactMessages>): WalletReactMessages;
|
|
62
62
|
export {};
|
package/dist/wallet/next/i18n.js
CHANGED
|
@@ -56,7 +56,7 @@ export function defaultMessages(lang) {
|
|
|
56
56
|
/**
|
|
57
57
|
* Texts for a language with the host's overrides on top. The components accept this
|
|
58
58
|
* as a `messages` prop so a consumer can inject its own wording without forking the
|
|
59
|
-
* package (
|
|
59
|
+
* package (https://gitlab.com/pasosdeJesus/m/-/work_items/37).
|
|
60
60
|
*/
|
|
61
61
|
export function resolveMessages(lang, override) {
|
|
62
62
|
return { ...defaultMessages(lang), ...override };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @pasosdejesus/m/wallet/next — React layer of the in-app wallet (
|
|
1
|
+
// @pasosdejesus/m/wallet/next — React layer of the in-app wallet (https://gitlab.com/pasosdeJesus/m/-/work_items/37).
|
|
2
2
|
//
|
|
3
3
|
// Graduated from `learn.tg/packages/pdj-wallet-next`. Texts and storage namespaces are
|
|
4
4
|
// injected by the host; React is an optional peer, so importing the core barrel does
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet/next/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet/next/index.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,EAAE;AACF,uFAAuF;AACvF,qFAAqF;AACrF,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,GAInB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAA8B,MAAM,kCAAkC,CAAA;AAC/F,OAAO,EAAE,iBAAiB,EAA+B,MAAM,mCAAmC,CAAA;AAClG,OAAO,EACL,CAAC,EACD,eAAe,EACf,eAAe,GAIhB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,oBAAoB,EAA8B,MAAM,iBAAiB,CAAA;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -7,7 +7,7 @@ export interface InAppWalletNamespaces {
|
|
|
7
7
|
rpName?: string;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* Applies the host's storage namespaces to the shared wallet core (
|
|
10
|
+
* Applies the host's storage namespaces to the shared wallet core (https://gitlab.com/pasosdeJesus/m/-/work_items/37).
|
|
11
11
|
*
|
|
12
12
|
* A host that already has wallets **must** call this with its own values before the
|
|
13
13
|
* wallet is used, or existing records become unreadable (IndexedDB name, destination
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { setDestinationsPrefix, setRpName, setWalletDbName } from '../index.js';
|
|
2
2
|
/**
|
|
3
|
-
* Applies the host's storage namespaces to the shared wallet core (
|
|
3
|
+
* Applies the host's storage namespaces to the shared wallet core (https://gitlab.com/pasosdeJesus/m/-/work_items/37).
|
|
4
4
|
*
|
|
5
5
|
* A host that already has wallets **must** call this with its own values before the
|
|
6
6
|
* wallet is used, or existing records become unreadable (IndexedDB name, destination
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* version, so the version lives here and nowhere else.
|
|
8
8
|
*
|
|
9
9
|
* The database name is **configurable**: a shared package must not write into one
|
|
10
|
-
* consumer's namespace (
|
|
10
|
+
* consumer's namespace (https://gitlab.com/pasosdeJesus/m/-/work_items/14, "parametrizar las claves de almacenamiento").
|
|
11
11
|
* A consumer that already has data under its own name calls `setWalletDbName()`
|
|
12
12
|
* once at startup to keep reading it.
|
|
13
13
|
*/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* version, so the version lives here and nowhere else.
|
|
8
8
|
*
|
|
9
9
|
* The database name is **configurable**: a shared package must not write into one
|
|
10
|
-
* consumer's namespace (
|
|
10
|
+
* consumer's namespace (https://gitlab.com/pasosdeJesus/m/-/work_items/14, "parametrizar las claves de almacenamiento").
|
|
11
11
|
* A consumer that already has data under its own name calls `setWalletDbName()`
|
|
12
12
|
* once at startup to keep reading it.
|
|
13
13
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pasosdejesus/m",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Motor para crear y gestionar proyectos al estilo Pasos de Jesus.",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "ISC",
|
|
@@ -48,10 +48,6 @@
|
|
|
48
48
|
"import": "./dist/wba/index.js",
|
|
49
49
|
"types": "./dist/wba/index.d.ts"
|
|
50
50
|
},
|
|
51
|
-
"./base-model": {
|
|
52
|
-
"import": "./dist/base-model/index.js",
|
|
53
|
-
"types": "./dist/base-model/index.d.ts"
|
|
54
|
-
},
|
|
55
51
|
"./wba/routes": {
|
|
56
52
|
"import": "./dist/wba/routes/index.js",
|
|
57
53
|
"types": "./dist/wba/routes/index.d.ts"
|
|
@@ -126,6 +122,7 @@
|
|
|
126
122
|
},
|
|
127
123
|
"files": [
|
|
128
124
|
"dist",
|
|
125
|
+
"!dist/**/*.test.*",
|
|
129
126
|
"src/tasks/README.md",
|
|
130
127
|
"src/util/README.md",
|
|
131
128
|
"src/wba/README.md",
|
|
@@ -197,7 +194,8 @@
|
|
|
197
194
|
"typescript": "^5.9.3",
|
|
198
195
|
"viem": "^2.55.0",
|
|
199
196
|
"vitest": "3.2.6",
|
|
200
|
-
"wagmi": "^2.19.5"
|
|
197
|
+
"wagmi": "^2.19.5",
|
|
198
|
+
"@pasosdejesus/msip": "1.0.0"
|
|
201
199
|
},
|
|
202
200
|
"optionalPeerDependencies": {
|
|
203
201
|
"@radix-ui/react-accordion": "^1.2.12",
|
package/src/e2e/README.md
CHANGED
|
@@ -100,7 +100,7 @@ const page = await newPage(browser, address, timeout, true)
|
|
|
100
100
|
// GoodDollarClaimButton, wallet interactions now work
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
### Real-signature wallet (
|
|
103
|
+
### Real-signature wallet ([REQ/14](https://gitlab.com/pasosdeJesus/m/-/work_items/14))
|
|
104
104
|
|
|
105
105
|
```ts
|
|
106
106
|
installRealSigner(page, { privateKey, name?, typedDataName? }): Promise<RealSigner>
|
|
@@ -123,7 +123,7 @@ await setupFullWalletMock(page, { privateKey: process.env.PRIVATE_KEY })
|
|
|
123
123
|
await setupFullWalletMock(page, { privateKey: process.env.PRIVATE_KEY, rpcUrl: process.env.RPC_URL })
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
**Mock parity (
|
|
126
|
+
**Mock parity ([REQ/49](https://gitlab.com/pasosdeJesus/m/-/work_items/49) 14).** Without `rpcUrl`, `eth_getTransactionReceipt` used to return
|
|
127
127
|
`null`, so a spec that sends and awaits confirmation hung. Now `setupFullWalletMock` (and
|
|
128
128
|
`fullWalletMockCode`) accept `fakeReceipt` (`{status, blockNumber, transactionHash, logs}`),
|
|
129
129
|
`fakeCelo`, `fakeCallResult` and `fakeTxHash`:
|
|
@@ -135,7 +135,7 @@ await setupFullWalletMock(page, {
|
|
|
135
135
|
})
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
### In-app wallet driver (
|
|
138
|
+
### In-app wallet driver ([REQ/49](https://gitlab.com/pasosdeJesus/m/-/work_items/49) 15)
|
|
139
139
|
|
|
140
140
|
Drives the `m/wallet/next` components by their testids, so consumers do not rewrite selectors:
|
|
141
141
|
|
|
@@ -147,7 +147,7 @@ unlockInAppWallet(page, { password, timeoutMs? }): Promise<void>
|
|
|
147
147
|
With `mnemonic`/`privateKey` it switches to import mode; otherwise it creates a new wallet. It
|
|
148
148
|
selects by testid/`type` (not by localized text), so it works with any `lang`.
|
|
149
149
|
|
|
150
|
-
### Local EVM node (
|
|
150
|
+
### Local EVM node ([REQ/14](https://gitlab.com/pasosdeJesus/m/-/work_items/14))
|
|
151
151
|
|
|
152
152
|
```ts
|
|
153
153
|
startLocalRpc({ chainId?, accounts? }): Promise<LocalRpc> // { url, chainId, accounts, close() }
|
|
@@ -175,7 +175,7 @@ Lessons that cost time here (see also learn.tg's `doc/e2e-testing.md`):
|
|
|
175
175
|
- **Receipt hashes**: the local node re-signs, so `setupFullWalletMock` re-keys the receipt
|
|
176
176
|
under `keccak256(rawTransaction)` (the hash viem waits for).
|
|
177
177
|
|
|
178
|
-
### Runner: retry and summary (
|
|
178
|
+
### Runner: retry and summary ([REQ/49](https://gitlab.com/pasosdeJesus/m/-/work_items/49) P3/P4)
|
|
179
179
|
|
|
180
180
|
```sh
|
|
181
181
|
./bin/m test:e2e --retry 2 --retry-delay 15000 # re-run failed specs (fresh WALLET_INDEX each)
|
|
@@ -191,7 +191,7 @@ Lessons that cost time here (see also learn.tg's `doc/e2e-testing.md`):
|
|
|
191
191
|
row per spec, one column per log, marking `<-- difiere` when a spec's state changes between
|
|
192
192
|
runs (environmental vs product failure).
|
|
193
193
|
|
|
194
|
-
### Site warmup (
|
|
194
|
+
### Site warmup ([REQ/49](https://gitlab.com/pasosdeJesus/m/-/work_items/49) P5)
|
|
195
195
|
|
|
196
196
|
```ts
|
|
197
197
|
warmup(baseUrl, { paths, mode?, filter?, sequentialTimeoutMs?, parallelTimeoutMs?,
|
package/src/tasks/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Each file in this directory exports a `runXxx()` function registered in `../m.ts
|
|
|
13
13
|
| File | Commands | Purpose |
|
|
14
14
|
|------|----------|---------|
|
|
15
15
|
| `context.ts` | `ai:context` | Orchestrates the project context document (schema 1): detection, profiles, filters, budget and output |
|
|
16
|
-
| `
|
|
16
|
+
| `msip.ts` | `eng:msip:dump`, `eng:msip:baseline`, `eng:msip:setup`, `eng:msip:verify`, `eng:msip:seed` | Regenerates the model baseline from its schema, guards its derivation, and loads the initial data |
|
|
17
17
|
| `context-workspaces.ts` | *(internal)* | Detects project types and workspace roots (`rails`, `nextjs`, `hardhat`, `monorepo`, `node`) |
|
|
18
18
|
| `context-profiles.ts` | *(internal)* | Built-in task profiles plus JSON config loading, merging and validation |
|
|
19
19
|
| `context-ignore.ts` | *(internal)* | Default exclusions, absolute secrets deny list and filter precedence |
|
|
@@ -21,10 +21,10 @@ Each file in this directory exports a `runXxx()` function registered in `../m.ts
|
|
|
21
21
|
| `context-reqs.ts` | *(internal)* | Parses `REQ/*.md` and keeps only open requirements |
|
|
22
22
|
| `context-render.ts` | *(internal)* | Structure and document rendering with a hard size budget |
|
|
23
23
|
| `create.ts` | `m:create` | Scaffolds new projects from `templates/` via direct recursive copy (replaced Plop.js) |
|
|
24
|
-
| `db.ts` | `db:create`, `db:drop`, `db:super:createuser`, `db:structure:dump`, `db:structure:load`, `db:migrate`, `db:rollback`, `db:mig:make`, `db:seed`, `db:
|
|
24
|
+
| `db.ts` | `db:create`, `db:drop`, `db:super:createuser`, `db:structure:dump`, `db:structure:load`, `db:migrate`, `db:rollback`, `db:mig:make`, `db:seed`, `db:console`, `db:test`, `db:dump`, `db:restore` | PostgreSQL database lifecycle, migration management, schema verification, and backup/restore |
|
|
25
25
|
| `e2e.ts` | `test:e2e` | E2E tests (Puppeteer specs, axios smoke) |
|
|
26
26
|
| `edit.ts` | `ai:edit` | Parses and applies DeepSeek diff format from clipboard |
|
|
27
|
-
| `engine.ts` | `eng:
|
|
27
|
+
| `engine.ts` | `eng:list`, `eng:sync`, `eng:verify`, `eng:check`, `eng:remove`, `eng:msip:setup`, `eng:wba:setup`, `eng:credentials:setup` | Engine discovery, generated facts, drift, self-containment and migration generation |
|
|
28
28
|
| `env-diff.ts` | `env:diff` | Compares two `.env` files (default: `../.env.example` vs `../.env`), reports differences |
|
|
29
29
|
| `fuzzy.ts` | *(internal)* | Fuzzy string matching helpers for `ai:edit` |
|
|
30
30
|
| `glob.ts` | `ai:glob` | File search by glob pattern |
|
package/src/test-utils/README.md
CHANGED
|
@@ -284,7 +284,7 @@ beforeEach(() => {
|
|
|
284
284
|
- Mock for `pg.Pool` of PostgreSQL
|
|
285
285
|
- **Lesson learned:** The `sql.val()` method is crucial for queries using template tags
|
|
286
286
|
|
|
287
|
-
**Builder coverage (
|
|
287
|
+
**Builder coverage ([REQ/49](https://gitlab.com/pasosdeJesus/m/-/work_items/49) U1):** `MockKysely`/`apiDbMocks` ahora cubren lo que usan las
|
|
288
288
|
rutas reales, así que puedes **borrar tu `GlobalMockKysely` escrito a mano**:
|
|
289
289
|
- `eb.or`/`eb.and`/`eb.not`/`eb.exists` y el callback `eb('col', 'in', cb => …)`, que recibe un
|
|
290
290
|
builder con `selectFrom`/`selectNoFrom`/`insertInto`/`updateTable`/`deleteFrom` para armar
|
|
@@ -392,7 +392,7 @@ viemMocks.createPublicClient.mockReturnValue({ ... })
|
|
|
392
392
|
### 6. `console.ts` – Silenciar ruido esperado de consola
|
|
393
393
|
|
|
394
394
|
**Purpose:** Ocultar ruido esperado en las pruebas (reintentos, navegaciones canceladas,
|
|
395
|
-
warnings de una dependencia simulada). Graduado de `NOISY_PATTERNS` de learn.tg (
|
|
395
|
+
warnings de una dependencia simulada). Graduado de `NOISY_PATTERNS` de learn.tg ([REQ/49](https://gitlab.com/pasosdeJesus/m/-/work_items/49) U2).
|
|
396
396
|
|
|
397
397
|
```typescript
|
|
398
398
|
import { silenceConsole } from '@pasosdejesus/m/test-utils/console'
|
package/src/wallet/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @pasosdejesus/m/wallet
|
|
2
2
|
|
|
3
|
-
Núcleo compartido de billetera (
|
|
3
|
+
Núcleo compartido de billetera ([REQ/14](https://gitlab.com/pasosdeJesus/m/-/work_items/14)): mnemónica BIP39, derivación, firma,
|
|
4
4
|
cifrado en reposo, almacenamiento intercambiable, provider EIP-1193 y verificación
|
|
5
5
|
del usuario (WebAuthn). Sin React y sin Kysely: lo usan el CLI de `m` y los
|
|
6
6
|
consumidores (learn.tg, sivel3, stable-sl).
|
|
@@ -70,7 +70,7 @@ setRpName('learn.tg') // nombre de la credencial We
|
|
|
70
70
|
|
|
71
71
|
## React (`./wallet/next`)
|
|
72
72
|
|
|
73
|
-
Capa React de la billetera in-app (
|
|
73
|
+
Capa React de la billetera in-app ([REQ/37](https://gitlab.com/pasosdeJesus/m/-/work_items/37), graduada de `learn.tg/packages/pdj-wallet-next`):
|
|
74
74
|
|
|
75
75
|
```tsx
|
|
76
76
|
import {
|
|
@@ -113,7 +113,7 @@ O a mano: `import { setupWalletTests } from '@pasosdejesus/m/test-utils'; setupW
|
|
|
113
113
|
|
|
114
114
|
## Notas
|
|
115
115
|
|
|
116
|
-
- Fase 1/2 de
|
|
116
|
+
- Fase 1/2 de [REQ/14](https://gitlab.com/pasosdeJesus/m/-/work_items/14): primitivas, estado, storage, provider, WebAuthn (L1/L2),
|
|
117
117
|
destinos y resolutor EIP-6963. La capa React (hook + `InAppWalletSetup`/`InAppWalletUnlock`)
|
|
118
|
-
vive en el subpath `./wallet/next` (
|
|
118
|
+
vive en el subpath `./wallet/next` ([REQ/37](https://gitlab.com/pasosdeJesus/m/-/work_items/37)).
|
|
119
119
|
- E2E con firma real: `@pasosdejesus/m/e2e` (`injectEIP6963`, `setupFullWalletMock`).
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { BaselineInventory } from './types.js';
|
|
2
|
-
export declare const BASELINE_GENERATED_MANIFEST: {
|
|
3
|
-
readonly version: "1.0.0";
|
|
4
|
-
readonly reference: {
|
|
5
|
-
readonly source: "/var/www/adJ-ia/msip-2.2/test/dummy/db/structure.sql";
|
|
6
|
-
readonly sha256: "020e05eed2c281787ffd6f75b282b87c0768a976b0ceac447354ad50d56734cf";
|
|
7
|
-
};
|
|
8
|
-
readonly additions: "built-in msip additions (references/msip.ts)";
|
|
9
|
-
readonly tables: {
|
|
10
|
-
readonly usuario: {
|
|
11
|
-
readonly columns: 25;
|
|
12
|
-
readonly constraints: 3;
|
|
13
|
-
readonly extensions: 0;
|
|
14
|
-
};
|
|
15
|
-
readonly msip_pais: {
|
|
16
|
-
readonly columns: 27;
|
|
17
|
-
readonly constraints: 2;
|
|
18
|
-
readonly extensions: 0;
|
|
19
|
-
};
|
|
20
|
-
readonly msip_departamento: {
|
|
21
|
-
readonly columns: 23;
|
|
22
|
-
readonly constraints: 7;
|
|
23
|
-
readonly extensions: 0;
|
|
24
|
-
};
|
|
25
|
-
readonly msip_municipio: {
|
|
26
|
-
readonly columns: 22;
|
|
27
|
-
readonly constraints: 6;
|
|
28
|
-
readonly extensions: 0;
|
|
29
|
-
};
|
|
30
|
-
readonly msip_centropoblado: {
|
|
31
|
-
readonly columns: 21;
|
|
32
|
-
readonly constraints: 6;
|
|
33
|
-
readonly extensions: 0;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
readonly externalConstraints: readonly [{
|
|
37
|
-
readonly table: "msip_centropoblado";
|
|
38
|
-
readonly name: "msip_centropoblado_id_tcentropoblado_fkey";
|
|
39
|
-
readonly references: "msip_tcentropoblado(id)";
|
|
40
|
-
}, {
|
|
41
|
-
readonly table: "usuario";
|
|
42
|
-
readonly name: "fk_rails_cc636858ad";
|
|
43
|
-
readonly references: "msip_tema(id)";
|
|
44
|
-
}];
|
|
45
|
-
};
|
|
46
|
-
export declare const BASELINE_INVENTORY: BaselineInventory;
|
|
47
|
-
export declare const BASELINE_SQL = "-- Base model baseline (generated, do not edit by hand).\n-- Source of truth: the reference database; regenerate with\n-- bin/m base-model:dump --from-structure <structure.sql> [--additions <file>]\n-- Consumers apply this to a fresh database and then their own migrations.\n-- Base model version: 1.0.0\n-- Reference: /var/www/adJ-ia/msip-2.2/test/dummy/db/structure.sql (sha256 020e05eed2c281787ffd6f75b282b87c0768a976b0ceac447354ad50d56734cf)\n\nCREATE SEQUENCE public.usuario_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\n\nCREATE SEQUENCE public.msip_pais_histvigencia_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\nCREATE SEQUENCE public.msip_pais_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\n\nCREATE SEQUENCE public.msip_departamento_histvigencia_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\nCREATE SEQUENCE public.msip_departamento_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\n\nCREATE SEQUENCE public.msip_municipio_histvigencia_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\nCREATE SEQUENCE public.msip_municipio_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\n\nCREATE SEQUENCE public.msip_centropoblado_histvigencia_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\nCREATE SEQUENCE public.msip_centropoblado_id_seq\n START WITH 1\n INCREMENT BY 1\n NO MINVALUE\n NO MAXVALUE\n CACHE 1;\n\nCREATE TABLE public.usuario (\n nusuario character varying(15) NOT NULL,\n password character varying(64) DEFAULT ''::character varying NOT NULL,\n descripcion character varying(50),\n rol integer DEFAULT 4,\n idioma character varying(6) DEFAULT 'es_CO'::character varying NOT NULL,\n id integer DEFAULT nextval('public.usuario_id_seq'::regclass) NOT NULL,\n fechacreacion date DEFAULT ('now'::text)::date NOT NULL,\n fechadeshabilitacion date,\n email character varying(255) DEFAULT ''::character varying NOT NULL,\n encrypted_password character varying(255) DEFAULT ''::character varying NOT NULL,\n sign_in_count integer DEFAULT 0 NOT NULL,\n failed_attempts integer,\n unlock_token character varying(64),\n locked_at timestamp without time zone,\n reset_password_token character varying(255),\n reset_password_sent_at timestamp without time zone,\n remember_created_at timestamp without time zone,\n current_sign_in_at timestamp without time zone,\n last_sign_in_at timestamp without time zone,\n current_sign_in_ip character varying(255),\n last_sign_in_ip character varying(255),\n created_at timestamp without time zone,\n updated_at timestamp without time zone,\n nombre character varying(50),\n tema_id integer,\n CONSTRAINT usuario_check CHECK (((fechadeshabilitacion IS NULL) OR (fechadeshabilitacion >= fechacreacion))),\n CONSTRAINT usuario_rol_check CHECK ((rol >= 1))\n);\n\nCREATE TABLE public.msip_pais (\n id integer DEFAULT nextval('public.msip_pais_id_seq'::regclass) NOT NULL,\n nombre character varying(200),\n nombreiso_espanol character varying(200),\n latitud double precision,\n longitud double precision,\n alfa2 character varying(2),\n alfa3 character varying(3),\n codiso integer,\n div1 character varying(100),\n div2 character varying(100),\n div3 character varying(100),\n fechacreacion date,\n fechadeshabilitacion date,\n created_at timestamp without time zone,\n updated_at timestamp without time zone,\n observaciones character varying(5000),\n nombreiso_ingles character varying(512),\n nombreiso_frances character varying(512),\n ultvigenciaini date,\n ultvigenciafin date,\n svgruta character varying,\n svgcdx integer,\n svgcdy integer,\n svgcdancho integer,\n svgcdalto integer,\n svgrotx double precision,\n svgroty double precision\n);\n\nCREATE TABLE public.msip_departamento (\n id integer DEFAULT nextval('public.msip_departamento_id_seq'::regclass) NOT NULL,\n nombre character varying(500) NOT NULL,\n pais_id integer NOT NULL,\n deplocal_cod integer,\n latitud double precision,\n longitud double precision,\n fechacreacion date DEFAULT ('now'::text)::date NOT NULL,\n fechadeshabilitacion date,\n created_at timestamp without time zone,\n updated_at timestamp without time zone,\n observaciones character varying(5000),\n codiso character varying(6),\n catiso character varying(64),\n codreg integer,\n ultvigenciaini date,\n ultvigenciafin date,\n svgruta character varying,\n svgcdx integer,\n svgcdy integer,\n svgcdancho integer,\n svgcdalto integer,\n svgrotx double precision,\n svgroty double precision,\n CONSTRAINT departamento_check CHECK (((fechadeshabilitacion IS NULL) OR (fechadeshabilitacion >= fechacreacion)))\n);\n\nCREATE TABLE public.msip_municipio (\n id integer DEFAULT nextval('public.msip_municipio_id_seq'::regclass) NOT NULL,\n nombre character varying(500) NOT NULL,\n departamento_id integer NOT NULL,\n munlocal_cod integer,\n latitud double precision,\n longitud double precision,\n fechacreacion date DEFAULT ('now'::text)::date NOT NULL,\n fechadeshabilitacion date,\n created_at timestamp without time zone,\n updated_at timestamp without time zone,\n observaciones character varying(5000),\n codreg integer,\n ultvigenciaini date,\n ultvigenciafin date,\n tipomun character varying(32),\n svgruta character varying,\n svgcdx integer,\n svgcdy integer,\n svgcdancho integer,\n svgcdalto integer,\n svgrotx double precision,\n svgroty double precision,\n CONSTRAINT municipio_check CHECK (((fechadeshabilitacion IS NULL) OR (fechadeshabilitacion >= fechacreacion)))\n);\n\nCREATE TABLE public.msip_centropoblado (\n id integer DEFAULT nextval('public.msip_centropoblado_id_seq'::regclass) NOT NULL,\n nombre character varying(500) NOT NULL,\n municipio_id integer NOT NULL,\n cplocal_cod integer,\n tcentropoblado_id character varying(10) DEFAULT 'CP'::character varying NOT NULL,\n latitud double precision,\n longitud double precision,\n fechacreacion date NOT NULL,\n fechadeshabilitacion date,\n created_at timestamp without time zone,\n updated_at timestamp without time zone,\n observaciones character varying(5000),\n ultvigenciaini date,\n ultvigenciafin date,\n svgruta character varying,\n svgcdx integer,\n svgcdy integer,\n svgcdancho integer,\n svgcdalto integer,\n svgrotx double precision,\n svgroty double precision,\n CONSTRAINT msip_centropoblado_check CHECK (((fechadeshabilitacion IS NULL) OR (fechadeshabilitacion >= fechacreacion)))\n);\n\nALTER TABLE ONLY public.usuario\n ADD CONSTRAINT usuario_pkey PRIMARY KEY (id);\n\nALTER TABLE ONLY public.msip_pais\n ADD CONSTRAINT msip_pais_codiso_unico UNIQUE (codiso);\n\nALTER TABLE ONLY public.msip_pais\n ADD CONSTRAINT pais_pkey PRIMARY KEY (id);\n\nALTER TABLE ONLY public.msip_departamento\n ADD CONSTRAINT msip_departamento_id_key UNIQUE (id);\n\nALTER TABLE ONLY public.msip_departamento\n ADD CONSTRAINT msip_departamento_id_pais_id_deplocal_unico UNIQUE (pais_id, deplocal_cod);\n\nALTER TABLE ONLY public.msip_departamento\n ADD CONSTRAINT msip_departamento_pais_id_id_unico UNIQUE (pais_id, id);\n\nALTER TABLE ONLY public.msip_departamento\n ADD CONSTRAINT msip_departamento_pkey PRIMARY KEY (id);\n\nALTER TABLE ONLY public.msip_municipio\n ADD CONSTRAINT msip_municipio_departamento_id_id_unico UNIQUE (departamento_id, id);\n\nALTER TABLE ONLY public.msip_municipio\n ADD CONSTRAINT msip_municipio_id_departamento_id_munlocal_unico UNIQUE (departamento_id, munlocal_cod);\n\nALTER TABLE ONLY public.msip_municipio\n ADD CONSTRAINT municipio_pkey PRIMARY KEY (id);\n\nALTER TABLE ONLY public.msip_centropoblado\n ADD CONSTRAINT msip_centropoblado_id_municipio_id_cplocal_key UNIQUE (municipio_id, cplocal_cod);\n\nALTER TABLE ONLY public.msip_centropoblado\n ADD CONSTRAINT msip_centropoblado_municipio_id_id_unico UNIQUE (municipio_id, id);\n\nALTER TABLE ONLY public.msip_centropoblado\n ADD CONSTRAINT msip_centropoblado_pkey PRIMARY KEY (id);\n\nALTER TABLE ONLY public.msip_departamento\n ADD CONSTRAINT departamento_id_pais_fkey FOREIGN KEY (pais_id) REFERENCES public.msip_pais(id);\n\nALTER TABLE ONLY public.msip_departamento\n ADD CONSTRAINT fk_rails_92093de1a1 FOREIGN KEY (pais_id) REFERENCES public.msip_pais(id);\n\nALTER TABLE ONLY public.msip_municipio\n ADD CONSTRAINT fk_rails_089870a38d FOREIGN KEY (departamento_id) REFERENCES public.msip_departamento(id);\n\nALTER TABLE ONLY public.msip_municipio\n ADD CONSTRAINT msip_municipio_id_departamento_fkey FOREIGN KEY (departamento_id) REFERENCES public.msip_departamento(id);\n\nALTER TABLE ONLY public.msip_centropoblado\n ADD CONSTRAINT fk_rails_fb09f016e4 FOREIGN KEY (municipio_id) REFERENCES public.msip_municipio(id);\n\nALTER TABLE ONLY public.msip_centropoblado\n ADD CONSTRAINT msip_centropoblado_id_municipio_fkey FOREIGN KEY (municipio_id) REFERENCES public.msip_municipio(id);\n";
|
|
48
|
-
//# sourceMappingURL=baseline.generated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.generated.d.ts","sourceRoot":"","sources":["../../src/base-model/baseline.generated.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8C9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,iBAg3BhC,CAAC;AAEF,eAAO,MAAM,YAAY,0uSAA0uS,CAAC"}
|