@pasosdejesus/m 0.28.0 → 0.30.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 +1 -1
- package/dist/CHANGELOG.md +69 -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 +18 -2
- package/dist/compose/derive.d.ts.map +1 -1
- package/dist/compose/derive.js +56 -5
- package/dist/compose/derive.js.map +1 -1
- 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 +4 -2
- package/dist/compose/index.d.ts.map +1 -1
- package/dist/compose/index.js +3 -1
- 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 +25 -2
- package/dist/compose/vendor.d.ts.map +1 -1
- package/dist/compose/vendor.js +28 -9
- 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.d.ts.map +1 -1
- package/dist/i18n/locales/cli.js +26 -22
- package/dist/i18n/locales/cli.js.map +1 -1
- package/dist/m.js +9 -7
- package/dist/m.js.map +1 -1
- package/dist/tasks/engine.d.ts.map +1 -1
- package/dist/tasks/engine.js +207 -11
- 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/dist/tasks/engine.js
CHANGED
|
@@ -4,24 +4,28 @@ import fs from 'fs';
|
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { createRequire } from 'node:module';
|
|
6
6
|
import { spawnSync } from 'node:child_process';
|
|
7
|
+
import { gunzipSync } from 'node:zlib';
|
|
7
8
|
import { success, info, warn, problem } from '../util/colors.js';
|
|
8
9
|
import { discoverEnginesUpward } from '../util/engines.js';
|
|
9
10
|
import { parseFlags } from '../util/cli-parser.js';
|
|
10
11
|
import { sync } from '../compose/sync.js';
|
|
11
12
|
import { verify } from '../compose/verify.js';
|
|
12
13
|
import { vendor, unvendor, drift, readProvenance, resolveOrigin } from '../compose/vendor.js';
|
|
14
|
+
import { parseFromGit, motorInCheckout } from '../compose/git.js';
|
|
15
|
+
import { planMigrationCopy, motorSeedFile } from '../compose/data.js';
|
|
13
16
|
import { readGenerated } from '../compose/derive.js';
|
|
14
17
|
import { readPackageJson } from '../compose/discover.js';
|
|
15
18
|
import { declaredUsage, tablesUsed, undeclaredImports, usageReport } from '../compose/usage.js';
|
|
19
|
+
import { runBaseModelSetup, runBaseModelSeed } from './msip.js';
|
|
16
20
|
import { createTranslator } from '../i18n/createTranslator.js';
|
|
17
21
|
import { detectLocale } from '../util/locale.js';
|
|
18
22
|
import commonCli from '../i18n/common-cli.js';
|
|
19
23
|
const t = createTranslator(detectLocale(), {
|
|
20
24
|
en: {
|
|
21
|
-
'engine.unknown': 'Unknown engine command: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check',
|
|
25
|
+
'engine.unknown': 'Unknown engine command: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check, setup, seed',
|
|
22
26
|
},
|
|
23
27
|
es: {
|
|
24
|
-
'engine.unknown': 'Comando de motor desconocido: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check',
|
|
28
|
+
'engine.unknown': 'Comando de motor desconocido: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check, setup, seed',
|
|
25
29
|
},
|
|
26
30
|
}, commonCli);
|
|
27
31
|
function getArg(args, name) {
|
|
@@ -149,7 +153,17 @@ async function cmdCheck(rest = []) {
|
|
|
149
153
|
continue;
|
|
150
154
|
const outDir = path.join(generatedDir, entry.name);
|
|
151
155
|
const provenance = readProvenance(outDir);
|
|
152
|
-
|
|
156
|
+
let originalDir = resolveOrigin(from, provenance?.motor ?? entry.name, provenance?.source);
|
|
157
|
+
// Fuente git (https://gitlab.com/pasosdeJesus/m/-/work_items/40 D4): sin original local, materializa el ref anotado.
|
|
158
|
+
if (!originalDir && provenance?.kind === 'git' && provenance.origin && provenance.ref) {
|
|
159
|
+
try {
|
|
160
|
+
originalDir = motorInCheckout({ url: provenance.origin, ref: provenance.ref, path: provenance.path });
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
warn(` [WARN] ${entry.name}: no se pudo materializar ${provenance.origin}#${provenance.ref}: ${error instanceof Error ? error.message : String(error)}`);
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
153
167
|
if (!originalDir) {
|
|
154
168
|
warn(` [WARN] vendorizada sin motor original localizable: ${entry.name}${from ? ` (--from ${from})` : ' (usa `eng:check --from <checkout>`)'}`);
|
|
155
169
|
continue;
|
|
@@ -232,15 +246,40 @@ async function motorDirs(target) {
|
|
|
232
246
|
return [process.cwd()];
|
|
233
247
|
return (await discoverEnginesUpward(process.cwd())).map((engine) => engine.dir);
|
|
234
248
|
}
|
|
235
|
-
/** `eng:sync [<motor>] [--check]
|
|
249
|
+
/** `eng:sync [<motor>] [--check] [--vendor] [--from-git <url>#<ref>] [--path <subdir>]`. */
|
|
236
250
|
async function cmdSync(rest) {
|
|
237
|
-
const { options } = parseFlags(rest, {
|
|
251
|
+
const { options, positional } = parseFlags(rest, {
|
|
238
252
|
check: { type: 'boolean' },
|
|
239
253
|
vendor: { type: 'boolean' },
|
|
240
254
|
out: { type: 'string' },
|
|
255
|
+
'from-git': { type: 'string' },
|
|
256
|
+
path: { type: 'string' },
|
|
241
257
|
});
|
|
242
|
-
const target =
|
|
243
|
-
|
|
258
|
+
const target = positional[0];
|
|
259
|
+
// Fuente git (https://gitlab.com/pasosdeJesus/m/-/work_items/40 D4): materializa el ref en caché y toma el motor de ahí.
|
|
260
|
+
const fromGit = options['from-git'];
|
|
261
|
+
let gitOrigin;
|
|
262
|
+
let dirs;
|
|
263
|
+
if (fromGit) {
|
|
264
|
+
const { url, ref } = parseFromGit(fromGit);
|
|
265
|
+
const sub = options.path;
|
|
266
|
+
gitOrigin = { url, ref, ...(sub ? { path: sub } : {}) };
|
|
267
|
+
const dir = motorInCheckout(gitOrigin);
|
|
268
|
+
if (!fs.existsSync(path.join(dir, 'm-engine.json'))) {
|
|
269
|
+
problem(`[FAIL] no hay motor en ${url}#${ref}${sub ? ` (--path ${sub})` : ''} (falta m-engine.json)`);
|
|
270
|
+
process.exitCode = 1;
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
dirs = [dir];
|
|
274
|
+
if (!options.vendor) {
|
|
275
|
+
info(`[OK] fuente git materializada: ${dir}`);
|
|
276
|
+
info(' usa `--vendor` para copiarla con procedencia');
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
dirs = await motorDirs(target);
|
|
282
|
+
}
|
|
244
283
|
if (dirs.length === 0) {
|
|
245
284
|
warn('[WARN] no motors discovered (no packages with m-engine.json)');
|
|
246
285
|
return;
|
|
@@ -248,10 +287,17 @@ async function cmdSync(rest) {
|
|
|
248
287
|
// Vendorización "etapa 0" (https://gitlab.com/pasosdeJesus/m/-/work_items/39 D17): copia trazable dentro del consumidor.
|
|
249
288
|
if (options.vendor) {
|
|
250
289
|
for (const dir of dirs) {
|
|
251
|
-
|
|
252
|
-
const
|
|
290
|
+
// El nombre del motor (no el basename del checkout, que en git es un hash) nombra la copia.
|
|
291
|
+
const name = gitOrigin ? await motorName(dir) : path.basename(dir);
|
|
292
|
+
const out = path.resolve(options.out ?? path.join(process.cwd(), 'packages', 'generated', name));
|
|
293
|
+
const provenance = vendor(dir, out, gitOrigin);
|
|
253
294
|
success(`[OK] vendorizado ${provenance.motor} v${provenance.version} → ${out}`);
|
|
254
|
-
|
|
295
|
+
if (provenance.kind === 'git') {
|
|
296
|
+
info(` origen ${provenance.origin}#${provenance.ref} sha256 ${provenance.sha256.slice(0, 12)}... (drift: \`eng:check\`)`);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
info(` procedencia sha256 ${provenance.sha256.slice(0, 12)}... (drift: \`eng:check\`)`);
|
|
300
|
+
}
|
|
255
301
|
}
|
|
256
302
|
return;
|
|
257
303
|
}
|
|
@@ -321,7 +367,13 @@ async function cmdRemove(rest) {
|
|
|
321
367
|
async function cmdVerify(rest) {
|
|
322
368
|
const target = rest.find((arg) => !arg.startsWith('-'));
|
|
323
369
|
const engines = await discoverEnginesUpward(process.cwd());
|
|
324
|
-
const byName = new Map(
|
|
370
|
+
const byName = new Map();
|
|
371
|
+
for (const engine of engines) {
|
|
372
|
+
byName.set(engine.name, engine);
|
|
373
|
+
const short = engine.name.split('/').filter(Boolean).pop();
|
|
374
|
+
if (short)
|
|
375
|
+
byName.set(short, engine);
|
|
376
|
+
}
|
|
325
377
|
const dirs = await motorDirs(target);
|
|
326
378
|
if (dirs.length === 0) {
|
|
327
379
|
warn('[WARN] no motors discovered (no packages with m-engine.json)');
|
|
@@ -350,6 +402,142 @@ async function cmdVerify(rest) {
|
|
|
350
402
|
if (!ok)
|
|
351
403
|
process.exitCode = 1;
|
|
352
404
|
}
|
|
405
|
+
/** Nombre corto del motor (último segmento del paquete, o el basename del directorio). */
|
|
406
|
+
async function motorName(dir) {
|
|
407
|
+
const pkg = readPackageJson(dir);
|
|
408
|
+
const name = pkg?.name ?? path.basename(dir);
|
|
409
|
+
return name.split('/').filter(Boolean).pop() ?? path.basename(dir);
|
|
410
|
+
}
|
|
411
|
+
/** Carga un seed con `psql -1`, descomprimiendo si es `.gz`. */
|
|
412
|
+
function loadSeedFile(file) {
|
|
413
|
+
let input;
|
|
414
|
+
try {
|
|
415
|
+
input = fs.readFileSync(file);
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
problem(`[FAIL] seed no encontrado: ${file} (${error instanceof Error ? error.message : String(error)})`);
|
|
419
|
+
return false;
|
|
420
|
+
}
|
|
421
|
+
if (file.endsWith('.gz')) {
|
|
422
|
+
try {
|
|
423
|
+
input = gunzipSync(input);
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
problem(`[FAIL] seed .gz ilegible: ${error instanceof Error ? error.message : String(error)}`);
|
|
427
|
+
return false;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
const res = spawnSync('psql', ['-1', '-v', 'ON_ERROR_STOP=1', '-q'], {
|
|
431
|
+
input,
|
|
432
|
+
encoding: 'utf-8',
|
|
433
|
+
env: { ...process.env, PSQLRC: '/dev/null', PAGER: '', PSQL_PAGER: '' },
|
|
434
|
+
timeout: 600_000,
|
|
435
|
+
});
|
|
436
|
+
if (res.status !== 0) {
|
|
437
|
+
problem(`[FAIL] el seed falló: ${(res.stderr ?? '').toString().trim()}`);
|
|
438
|
+
return false;
|
|
439
|
+
}
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* `eng:setup [<motor>] [--out db/migrations] [--check]` — escribe en el consumidor
|
|
444
|
+
* las migraciones de los motores ([REQ/40](https://gitlab.com/pasosdeJesus/m/-/work_items/40) D3). Un motor con
|
|
445
|
+
* `db/migrations` se copia de forma **idempotente**; `msip`, cuyas migraciones se
|
|
446
|
+
* generan desde sus pasos forward, delega en `eng:msip:setup`. `eng:msip:setup` es un alias.
|
|
447
|
+
*/
|
|
448
|
+
async function cmdSetup(rest) {
|
|
449
|
+
const { options, positional } = parseFlags(rest, {
|
|
450
|
+
out: { type: 'string' },
|
|
451
|
+
check: { type: 'boolean' },
|
|
452
|
+
});
|
|
453
|
+
const target = positional[0];
|
|
454
|
+
const dirs = target ? [await motorDir(target)] : await motorDirs();
|
|
455
|
+
if (dirs.length === 0) {
|
|
456
|
+
warn('[WARN] no motors discovered (no packages with m-engine.json)');
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
const out = options.out ?? path.join('db', 'migrations');
|
|
460
|
+
const outDir = path.resolve(process.cwd(), out);
|
|
461
|
+
let failed = false;
|
|
462
|
+
for (const dir of dirs) {
|
|
463
|
+
const name = await motorName(dir);
|
|
464
|
+
if (name === 'msip') {
|
|
465
|
+
await runBaseModelSetup();
|
|
466
|
+
if (process.exitCode)
|
|
467
|
+
failed = true;
|
|
468
|
+
continue;
|
|
469
|
+
}
|
|
470
|
+
const plan = planMigrationCopy(dir, outDir);
|
|
471
|
+
if (!plan.sourceDir) {
|
|
472
|
+
info(` [OK] ${name}: sin migraciones propias`);
|
|
473
|
+
continue;
|
|
474
|
+
}
|
|
475
|
+
if (options.check) {
|
|
476
|
+
if (plan.missing.length === 0)
|
|
477
|
+
success(` [OK] ${name}: migraciones al día (${plan.present.length})`);
|
|
478
|
+
else {
|
|
479
|
+
for (const file of plan.missing)
|
|
480
|
+
problem(` [FAIL] ${name}: falta ${file}`);
|
|
481
|
+
failed = true;
|
|
482
|
+
}
|
|
483
|
+
continue;
|
|
484
|
+
}
|
|
485
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
486
|
+
for (const file of plan.missing) {
|
|
487
|
+
fs.copyFileSync(path.join(plan.sourceDir, file), path.join(outDir, file));
|
|
488
|
+
success(`[OK] ${path.join(out, file)}`);
|
|
489
|
+
}
|
|
490
|
+
if (plan.missing.length === 0)
|
|
491
|
+
info(` [OK] ${name}: migraciones al día (${plan.present.length})`);
|
|
492
|
+
}
|
|
493
|
+
if (failed)
|
|
494
|
+
process.exitCode = 1;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* `eng:seed [<motor>] [--file <sql|sql.gz>] [--force] [--check]` — carga los datos
|
|
498
|
+
* iniciales de un motor (`<motor>/db/seed.sql.gz` por convención). Para `msip` usa su
|
|
499
|
+
* seed idempotente (`--force` recarga; `--check` reporta). `eng:msip:seed` es un alias.
|
|
500
|
+
*/
|
|
501
|
+
async function cmdSeed(rest) {
|
|
502
|
+
const { options, positional } = parseFlags(rest, {
|
|
503
|
+
file: { type: 'string' },
|
|
504
|
+
force: { type: 'boolean' },
|
|
505
|
+
check: { type: 'boolean' },
|
|
506
|
+
});
|
|
507
|
+
const target = positional[0];
|
|
508
|
+
const dirs = target ? [await motorDir(target)] : await motorDirs();
|
|
509
|
+
if (dirs.length === 0) {
|
|
510
|
+
warn('[WARN] no motors discovered (no packages with m-engine.json)');
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
let failed = false;
|
|
514
|
+
for (const dir of dirs) {
|
|
515
|
+
const name = await motorName(dir);
|
|
516
|
+
if (name === 'msip') {
|
|
517
|
+
await runBaseModelSeed();
|
|
518
|
+
if (process.exitCode)
|
|
519
|
+
failed = true;
|
|
520
|
+
continue;
|
|
521
|
+
}
|
|
522
|
+
const file = options.file ?? motorSeedFile(dir);
|
|
523
|
+
if (!file) {
|
|
524
|
+
problem(`[FAIL] el motor ${name} no trae seed (db/seed.sql[.gz]); usa --file <sql>`);
|
|
525
|
+
failed = true;
|
|
526
|
+
continue;
|
|
527
|
+
}
|
|
528
|
+
if (options.check) {
|
|
529
|
+
info(` [OK] ${name}: seed declarado (${path.relative(process.cwd(), file)}); --check no lo verifica sin metadatos del motor`);
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
info(`Aplicando seed ${file}...`);
|
|
533
|
+
if (loadSeedFile(file))
|
|
534
|
+
success(`[OK] ${name}: seed aplicado`);
|
|
535
|
+
else
|
|
536
|
+
failed = true;
|
|
537
|
+
}
|
|
538
|
+
if (failed)
|
|
539
|
+
process.exitCode = 1;
|
|
540
|
+
}
|
|
353
541
|
export async function runEngine(args) {
|
|
354
542
|
if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
|
|
355
543
|
console.log('Engine commands:');
|
|
@@ -358,6 +546,8 @@ export async function runEngine(args) {
|
|
|
358
546
|
console.log(' eng:remove <motor> [--drop] — Remove a vendored motor copy (--drop drops its tables)');
|
|
359
547
|
console.log(' eng:verify [motor] — Guard m-engine.generated.ts against the sources and the declared dependencies');
|
|
360
548
|
console.log(' eng:check [--from <dir>] — Verify engine schemas, vendored drift (--from a checkout) and self-containment');
|
|
549
|
+
console.log(' eng:setup [motor] [--check] — Write the motors migrations into the consumer (idempotent)');
|
|
550
|
+
console.log(' eng:seed [motor] [--force] — Load a motor seed (msip keeps its idempotent seed)');
|
|
361
551
|
console.log(' eng:wba:setup — Create WBA migration files');
|
|
362
552
|
console.log(' eng:credentials:setup — Create credential migration files');
|
|
363
553
|
}
|
|
@@ -387,6 +577,12 @@ export async function runEngine(args) {
|
|
|
387
577
|
case 'check':
|
|
388
578
|
await cmdCheck(rest);
|
|
389
579
|
break;
|
|
580
|
+
case 'setup':
|
|
581
|
+
await cmdSetup(rest);
|
|
582
|
+
break;
|
|
583
|
+
case 'seed':
|
|
584
|
+
await cmdSeed(rest);
|
|
585
|
+
break;
|
|
390
586
|
default:
|
|
391
587
|
problem(t('engine.unknown', command));
|
|
392
588
|
throw new Error(t('engine.unknown', command));
|
package/dist/tasks/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/tasks/engine.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,oFAAoF;AAEpF,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAmB,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,MAAM,CAAC,GAAG,gBAAgB,CAAC,YAAY,EAAE,EAAE;IACzC,EAAE,EAAE;QACF,gBAAgB,EAAE,qGAAqG;KACxH;IACD,EAAE,EAAE;QACF,gBAAgB,EAAE,2GAA2G;KAC9H;CACF,EAAE,SAAS,CAAC,CAAC;AAEd,SAAS,MAAM,CAAC,IAAc,EAAE,IAAY;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IACjE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7E,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;AACnE,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAE3C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,uBAAuB,CAAC,CAAA;IACzE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE;;;;;;;;;;;;;;CAchC,CAAC,CAAA;IAEA,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,yBAAyB,CAAC,CAAA;IACtE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE;;;;;;;;;;CAU1B,CAAC,CAAA;IAEA,OAAO,CAAC,8BAA8B,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAA;IAC3B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,iCAAiC,CAAC,CAAA;IAC/E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE;;;;;;;;;;;;;CAa5B,CAAC,CAAA;IAEA,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,iCAAiC,CAAC,CAAA;IACpF,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE;;;;;;;;;;CAUhC,CAAC,CAAA;IAEA,OAAO,CAAC,qCAAqC,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,OAAO;IACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAEjC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACrD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;QACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,6DAA6D;IAC7D,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;IACxE,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAA;IACnG,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAiB,EAAE;IACzC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,EAAE,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAI,OAAO,CAAC,IAA2B,IAAI,IAAI,CAAA;IACzD,IAAI,CAAC,6BAA6B,CAAC,CAAA;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAEhD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,CAAA;QACtC,IAAI,CAAC,UAAU;YAAE,SAAQ;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAClD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,mBAAmB,UAAU,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,+BAA+B,UAAU,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAC5D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAQ;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAClD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;YACzC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;YAC5F,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,IAAI,CAAC,wDAAwD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,sCAAsC,EAAE,CAAC,CAAA;gBAChJ,SAAQ;YACV,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;iBACtE,CAAC;gBAAC,OAAO,CAAC,YAAY,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,gIAAgI;IAChI,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAC9E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAA;YACnE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9C,MAAM,UAAU,EAAE,CAAA;AACpB,CAAC;AAED,2FAA2F;AAC3F,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9C,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC,CAAA;YACtE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAA;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,QAAQ,CAAC,MAAc;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAClF,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAAE,OAAO,MAAM,CAAA;IACpE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAA;IACtG,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,GAAG,CAAA;IAC3B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;WAChD,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;eACnD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;eACtD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,MAAe;IACtC,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACjF,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,OAAO,CAAC,IAAc;IACnC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE;QACnC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE;QACnC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE;QACpC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;KACjC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,8DAA8D,CAAC,CAAA;QACpE,OAAM;IACR,CAAC;IAED,yHAAyH;IACzH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACrB,OAAO,CAAC,GAA0B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC7G,CAAA;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACnC,OAAO,CAAC,oBAAoB,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,OAAO,MAAM,GAAG,EAAE,CAAC,CAAA;YAC/E,IAAI,CAAC,2BAA2B,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CAAC,CAAA;QAC7F,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,UAAU,IAAI,mCAAmC,CAAC,CAAA;gBAC1D,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,IAAI,qBAAqB,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IACD,IAAI,KAAK;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACjC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,IAAc;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE;QACnC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE;QAClC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;KACjC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,iDAAiD,CAAC,CAAA;QAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACrB,OAAO,CAAC,GAA0B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAChH,CAAA;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA;QACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,+BAA+B,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC7F,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;gBACxE,QAAQ,EAAE,OAAO;gBACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;aACxE,CAAC,CAAA;YACF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,4CAA4C,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;gBAC3F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;gBACpB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,oBAAoB,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,CAAA;IACb,OAAO,CAAC,cAAc,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC7F,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,SAAS,CAAC,IAAc;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;IAEpC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,8DAA8D,CAAC,CAAA;QACpE,OAAM;IACR,CAAC;IAED,IAAI,EAAE,GAAG,IAAI,CAAA;IACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACrF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,UAAU,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,IAAI,MAAM,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,IAAI,+DAA+D,CAAC,CAAA;;YAC9F,EAAE,GAAG,KAAK,CAAA;QAEf,6FAA6F;QAC7F,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/D,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YACxD,OAAO,CAAC,UAAU,IAAI,yBAAyB,OAAO,CAAC,IAAI,KAAK,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,EAAE,GAAG,KAAK,CAAA;IACvC,CAAC;IACD,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,iGAAiG,CAAC,CAAA;QAC9G,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAA;QACrG,OAAO,CAAC,GAAG,CAAC,+GAA+G,CAAC,CAAA;QAC5H,OAAO,CAAC,GAAG,CAAC,iHAAiH,CAAC,CAAA;QAC9H,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;QACxE,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;IAClF,CAAC;IAGD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,IAAI,CAAC;QACH,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC7C,MAAM,WAAW,EAAE,CAAA;QACrB,CAAC;aAAM,IAAI,OAAO,KAAK,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5D,MAAM,mBAAmB,EAAE,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,MAAM;oBAAE,MAAM,OAAO,EAAE,CAAC;oBAAC,MAAK;gBACnC,KAAK,MAAM;oBAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAK;gBACvC,KAAK,QAAQ;oBAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAK;gBAC3C,KAAK,QAAQ;oBAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAK;gBAC3C,KAAK,OAAO;oBAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAAC,MAAK;gBACzC;oBACE,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACnC,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/tasks/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/wallet.js
CHANGED
|
@@ -14,11 +14,11 @@ import { accountFromMnemonic, accountFromPrivateKey, newMnemonic, privateKeyFrom
|
|
|
14
14
|
const t = createTranslator(detectLocale(), {
|
|
15
15
|
en: {
|
|
16
16
|
'wallet.unknown': 'Unknown command: wallet:{{0}}',
|
|
17
|
-
'wallet.no_wallets': 'No wallets found. Use
|
|
17
|
+
'wallet.no_wallets': 'No wallets found. Use eng:opwallet:generate or eng:opwallet:import first.',
|
|
18
18
|
},
|
|
19
19
|
es: {
|
|
20
20
|
'wallet.unknown': 'Comando desconocido: wallet:{{0}}',
|
|
21
|
-
'wallet.no_wallets': 'No se encontraron billeteras. Use
|
|
21
|
+
'wallet.no_wallets': 'No se encontraron billeteras. Use eng:opwallet:generate o eng:opwallet:import primero.',
|
|
22
22
|
},
|
|
23
23
|
}, commonCli);
|
|
24
24
|
// ==================== STORAGE ====================
|
|
@@ -120,7 +120,7 @@ async function resolveToAddress(value) {
|
|
|
120
120
|
return w.address;
|
|
121
121
|
throw new Error(`Wallet not found and not a valid address: ${value}`);
|
|
122
122
|
}
|
|
123
|
-
// ====================
|
|
123
|
+
// ==================== eng:opwallet:generate ====================
|
|
124
124
|
async function cmdGenerate(args) {
|
|
125
125
|
const name = getArg(args, '--name');
|
|
126
126
|
const index = parseInt(getArg(args, '--index') || '0');
|
|
@@ -145,7 +145,7 @@ async function cmdGenerate(args) {
|
|
|
145
145
|
console.log(`\n${outputEnv}=${account.address}`);
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
// ====================
|
|
148
|
+
// ==================== eng:opwallet:approve ====================
|
|
149
149
|
async function cmdApprove(args) {
|
|
150
150
|
const name = getArg(args, '--name');
|
|
151
151
|
const token = getArg(args, '--token');
|
|
@@ -158,7 +158,7 @@ async function cmdApprove(args) {
|
|
|
158
158
|
}
|
|
159
159
|
const wallet = loadWallet(name);
|
|
160
160
|
if (!wallet)
|
|
161
|
-
throw new Error(`Wallet "${name}" not found. Use
|
|
161
|
+
throw new Error(`Wallet "${name}" not found. Use eng:opwallet:generate or eng:opwallet:import first.`);
|
|
162
162
|
if (!wallet.privateKey)
|
|
163
163
|
throw new Error(`Wallet "${name}" has no private key stored.`);
|
|
164
164
|
const spender = await resolveToAddress(spenderRaw);
|
|
@@ -231,7 +231,7 @@ function getDefaultRpc(network) {
|
|
|
231
231
|
};
|
|
232
232
|
return defaults[network] || '';
|
|
233
233
|
}
|
|
234
|
-
// ====================
|
|
234
|
+
// ==================== eng:opwallet:import ====================
|
|
235
235
|
async function cmdImport(args) {
|
|
236
236
|
const name = getArg(args, '--name');
|
|
237
237
|
const mnemonic = getArg(args, '--mnemonic');
|
|
@@ -259,7 +259,7 @@ async function cmdImport(args) {
|
|
|
259
259
|
success(`[OK] Wallet imported: ${name}`);
|
|
260
260
|
console.log(` Address: ${address}`);
|
|
261
261
|
}
|
|
262
|
-
// ====================
|
|
262
|
+
// ==================== eng:opwallet:list ====================
|
|
263
263
|
async function cmdList(args) {
|
|
264
264
|
const nameFilter = getArg(args, '--name');
|
|
265
265
|
const addressOnly = args.includes('--address-only');
|
|
@@ -270,7 +270,7 @@ async function cmdList(args) {
|
|
|
270
270
|
ensurePermissions(getWalletsDir());
|
|
271
271
|
const files = fs.readdirSync(getWalletsDir()).filter(f => f.endsWith('.json'));
|
|
272
272
|
if (files.length === 0) {
|
|
273
|
-
console.log('No wallets found. Use
|
|
273
|
+
console.log('No wallets found. Use eng:opwallet:generate or eng:opwallet:import to create one.');
|
|
274
274
|
return;
|
|
275
275
|
}
|
|
276
276
|
for (const file of files) {
|
|
@@ -298,7 +298,7 @@ async function cmdList(args) {
|
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
|
-
// ====================
|
|
301
|
+
// ==================== eng:opwallet:send ====================
|
|
302
302
|
async function cmdSend(args) {
|
|
303
303
|
const name = getArg(args, '--name');
|
|
304
304
|
const toRaw = getArg(args, '--to');
|
|
@@ -396,7 +396,7 @@ async function cmdSend(args) {
|
|
|
396
396
|
console.log(` TX: ${hash}`);
|
|
397
397
|
}
|
|
398
398
|
}
|
|
399
|
-
// ====================
|
|
399
|
+
// ==================== eng:opwallet:balance ====================
|
|
400
400
|
async function cmdBalance(args) {
|
|
401
401
|
const name = getArg(args, '--name');
|
|
402
402
|
const token = getArg(args, '--token');
|
|
@@ -441,7 +441,7 @@ async function cmdBalance(args) {
|
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
|
-
// ====================
|
|
444
|
+
// ==================== eng:opwallet:call ====================
|
|
445
445
|
async function cmdCall(args) {
|
|
446
446
|
const name = getArg(args, '--name');
|
|
447
447
|
const to = getArg(args, '--to');
|
|
@@ -481,7 +481,7 @@ async function cmdCall(args) {
|
|
|
481
481
|
});
|
|
482
482
|
console.log(result);
|
|
483
483
|
}
|
|
484
|
-
// ====================
|
|
484
|
+
// ==================== eng:opwallet:derive ====================
|
|
485
485
|
async function cmdDerive(args) {
|
|
486
486
|
const parentName = getArg(args, '--name');
|
|
487
487
|
const asName = getArg(args, '--as');
|
|
@@ -494,7 +494,7 @@ async function cmdDerive(args) {
|
|
|
494
494
|
const parentMnemonic = parent.mnemonic;
|
|
495
495
|
if (!parentMnemonic) {
|
|
496
496
|
throw new Error(`Cannot derive from "${parentName}" — no mnemonic stored. ` +
|
|
497
|
-
`Re-generate the wallet with
|
|
497
|
+
`Re-generate the wallet with eng:opwallet:generate.`);
|
|
498
498
|
}
|
|
499
499
|
const targetPath = getWalletPath(asName);
|
|
500
500
|
if (fs.existsSync(targetPath)) {
|
|
@@ -509,7 +509,7 @@ async function cmdDerive(args) {
|
|
|
509
509
|
console.log(` Derived from: ${parentName} (index ${index})`);
|
|
510
510
|
console.log(` Stored: ${targetPath}`);
|
|
511
511
|
}
|
|
512
|
-
// ====================
|
|
512
|
+
// ==================== eng:opwallet:sign (airgapped) ====================
|
|
513
513
|
async function cmdSign(args) {
|
|
514
514
|
const name = getArg(args, '--name');
|
|
515
515
|
const txFile = getArg(args, '--tx');
|
|
@@ -540,7 +540,7 @@ async function cmdSign(args) {
|
|
|
540
540
|
fs.writeFileSync(signedPath, JSON.stringify({ signedTx: signed }, null, 2));
|
|
541
541
|
success(`[OK] Signed transaction saved to ${signedPath}`);
|
|
542
542
|
}
|
|
543
|
-
// ====================
|
|
543
|
+
// ==================== eng:opwallet:broadcast ====================
|
|
544
544
|
async function cmdBroadcast(args) {
|
|
545
545
|
const signedFile = getArg(args, '--signed-tx');
|
|
546
546
|
const rpcUrl = getArg(args, '--rpc');
|
|
@@ -560,7 +560,7 @@ async function cmdBroadcast(args) {
|
|
|
560
560
|
// ==================== KECCAK ====================
|
|
561
561
|
async function cmdKeccak(args) {
|
|
562
562
|
if (args.length === 0) {
|
|
563
|
-
throw new Error('Usage: bin/m
|
|
563
|
+
throw new Error('Usage: bin/m eng:opwallet:keccak <string>');
|
|
564
564
|
}
|
|
565
565
|
const input = args.join(' ');
|
|
566
566
|
const hash = keccak(input);
|
|
@@ -569,56 +569,56 @@ async function cmdKeccak(args) {
|
|
|
569
569
|
// ==================== USAGE ====================
|
|
570
570
|
function usage(command) {
|
|
571
571
|
if (command === 'send') {
|
|
572
|
-
console.log('Usage: bin/m
|
|
572
|
+
console.log('Usage: bin/m eng:opwallet:send --name <n> --to <addr|name> [--amount <eth>] [--token <addr>] [--function "name(type,...)"] [--args "v1,v2"] [--data 0x...] [--network celoSepolia] [--rpc <url>]');
|
|
573
573
|
return;
|
|
574
574
|
}
|
|
575
575
|
if (command === 'generate') {
|
|
576
|
-
console.log('Usage: bin/m
|
|
576
|
+
console.log('Usage: bin/m eng:opwallet:generate --name <n> [--index 0] [--output-env <VAR>]');
|
|
577
577
|
return;
|
|
578
578
|
}
|
|
579
579
|
if (command === 'approve') {
|
|
580
|
-
console.log('Usage: bin/m
|
|
580
|
+
console.log('Usage: bin/m eng:opwallet:approve --name <n> --token <addr> --spender <addr|name> --amount <u> [--network celoSepolia] [--rpc <url>]');
|
|
581
581
|
return;
|
|
582
582
|
}
|
|
583
583
|
if (command === 'list') {
|
|
584
|
-
console.log('Usage: bin/m
|
|
584
|
+
console.log('Usage: bin/m eng:opwallet:list [--name <n>] [--address-only] [--balance] [--network celoSepolia] [--rpc <url>]');
|
|
585
585
|
return;
|
|
586
586
|
}
|
|
587
587
|
if (command === 'import') {
|
|
588
|
-
console.log('Usage: bin/m
|
|
588
|
+
console.log('Usage: bin/m eng:opwallet:import --name <n> [--mnemonic "..."] [--private-key 0x...] [--index 0]');
|
|
589
589
|
return;
|
|
590
590
|
}
|
|
591
591
|
if (command === 'balance') {
|
|
592
|
-
console.log('Usage: bin/m
|
|
592
|
+
console.log('Usage: bin/m eng:opwallet:balance --name <n> [--token <addr>] [--network celoSepolia] [--rpc <url>]');
|
|
593
593
|
return;
|
|
594
594
|
}
|
|
595
595
|
if (command === 'sign') {
|
|
596
|
-
console.log('Usage: bin/m
|
|
596
|
+
console.log('Usage: bin/m eng:opwallet:sign --name <n> --tx <json-file>');
|
|
597
597
|
return;
|
|
598
598
|
}
|
|
599
599
|
if (command === 'broadcast') {
|
|
600
|
-
console.log('Usage: bin/m
|
|
600
|
+
console.log('Usage: bin/m eng:opwallet:broadcast --signed-tx <json> [--rpc <url>]');
|
|
601
601
|
return;
|
|
602
602
|
}
|
|
603
603
|
if (command === 'keccak') {
|
|
604
|
-
console.log('Usage: bin/m
|
|
604
|
+
console.log('Usage: bin/m eng:opwallet:keccak <string>');
|
|
605
605
|
return;
|
|
606
606
|
}
|
|
607
607
|
if (command === 'call') {
|
|
608
|
-
console.log('Usage: bin/m
|
|
608
|
+
console.log('Usage: bin/m eng:opwallet:call --name <n> --to <addr> --function "name(type,...)" [--args "v1,v2"] [--network celoSepolia] [--rpc <url>]');
|
|
609
609
|
return;
|
|
610
610
|
}
|
|
611
611
|
console.log('Wallet commands:');
|
|
612
|
-
console.log(' bin/m
|
|
613
|
-
console.log(' bin/m
|
|
614
|
-
console.log(' bin/m
|
|
615
|
-
console.log(' bin/m
|
|
616
|
-
console.log(' bin/m
|
|
617
|
-
console.log(' bin/m
|
|
618
|
-
console.log(' bin/m
|
|
619
|
-
console.log(' bin/m
|
|
620
|
-
console.log(' bin/m
|
|
621
|
-
console.log(' bin/m
|
|
612
|
+
console.log(' bin/m eng:opwallet:generate --name <n> [--index 0] [--output-env <VAR>]');
|
|
613
|
+
console.log(' bin/m eng:opwallet:approve --name <n> --token <addr> --spender <addr|name> --amount <u> [--network celoSepolia] [--rpc <url>]');
|
|
614
|
+
console.log(' bin/m eng:opwallet:list [--name <n>] [--address-only] [--balance]');
|
|
615
|
+
console.log(' bin/m eng:opwallet:import --name <n> [--mnemonic "..."] [--private-key 0x...] [--index 0]');
|
|
616
|
+
console.log(' bin/m eng:opwallet:send --name <n> --to <addr|name> [--amount <eth>] [--token <addr>] [--function "name(type,...)"] [--args "v1,v2"] [--data 0x...]');
|
|
617
|
+
console.log(' bin/m eng:opwallet:balance --name <n> [--token <addr>]');
|
|
618
|
+
console.log(' bin/m eng:opwallet:sign --name <n> --tx <json-file>');
|
|
619
|
+
console.log(' bin/m eng:opwallet:broadcast --signed-tx <json> [--rpc <url>]');
|
|
620
|
+
console.log(' bin/m eng:opwallet:keccak <string>');
|
|
621
|
+
console.log(' bin/m eng:opwallet:call --name <n> --to <addr> --function "name(type,...)" [--args "v1,v2"]');
|
|
622
622
|
}
|
|
623
623
|
// ==================== ENTRY POINT ====================
|
|
624
624
|
export async function runWallet(args) {
|
|
@@ -626,12 +626,12 @@ export async function runWallet(args) {
|
|
|
626
626
|
usage();
|
|
627
627
|
return;
|
|
628
628
|
}
|
|
629
|
-
// Per-command help:
|
|
629
|
+
// Per-command help: eng:opwallet:send --help
|
|
630
630
|
if (args.length >= 2 && (args[1] === '--help' || args[1] === '-h')) {
|
|
631
631
|
usage(args[0]);
|
|
632
632
|
return;
|
|
633
633
|
}
|
|
634
|
-
// Generic help: wallet --help or
|
|
634
|
+
// Generic help: wallet --help or eng:opwallet:send --help (when command is --help directly)
|
|
635
635
|
if (args.includes('--help') || args.includes('-h')) {
|
|
636
636
|
usage();
|
|
637
637
|
return;
|