@pasosdejesus/m 0.18.5 → 0.19.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/dist/tasks/db.js CHANGED
@@ -4,6 +4,7 @@ import * as fs from 'fs';
4
4
  import * as os from 'os';
5
5
  import * as path from 'path';
6
6
  import { problem, success, info, warn } from '../util/colors.js';
7
+ import { discoverEnginesUpward, findPackagesDir } from '../util/engines.js';
7
8
  import { createTranslator } from '../i18n/createTranslator.js';
8
9
  import { detectLocale } from '../util/locale.js';
9
10
  import commonCli from '../i18n/common-cli.js';
@@ -523,6 +524,36 @@ export async function runDbTypesGen() {
523
524
  problem(t('db.types.gen_failed', e.message));
524
525
  }
525
526
  }
527
+ function runMigrationUp(bin, env, cwd) {
528
+ // Run one migration at a time so each is in its own transaction.
529
+ // If one fails, previously-applied migrations stay committed.
530
+ let applied = 0;
531
+ const migrated = [];
532
+ while (true) {
533
+ const args = cwd ? ['--cwd', cwd, 'migrate', 'up'] : ['migrate', 'up'];
534
+ const result = spawnSync(bin, args, { stdio: 'pipe', env, timeout: getSpawnTimeoutMs() });
535
+ const out = (result.stdout ? result.stdout.toString() : '') + (result.stderr ? result.stderr.toString() : '');
536
+ // Show output to user (but skip the "no new migrations" message since we break below)
537
+ const isSkipped = out.includes('no pending') || out.includes('no unmigrated') || out.includes('Migration skipped');
538
+ if (!isSkipped && out)
539
+ process.stdout.write(out);
540
+ if (result.status !== 0) {
541
+ if (isSkipped)
542
+ break;
543
+ if (out)
544
+ console.error(out);
545
+ throw new Error('Migration failed');
546
+ }
547
+ if (isSkipped)
548
+ break;
549
+ // Extract migration name from output like "✓ Migration 20260722_name"
550
+ const match = out.match(/Migration\s+(\S+)/);
551
+ if (match)
552
+ migrated.push(match[1]);
553
+ applied++;
554
+ }
555
+ return { applied, migrated };
556
+ }
526
557
  export async function runDbMigrate() {
527
558
  const t = dbT;
528
559
  info(t('db.migrate.start'));
@@ -532,39 +563,43 @@ export async function runDbMigrate() {
532
563
  const dbUrl = buildDatabaseUrl(cfg);
533
564
  console.error('[db:migrate] PGHOST=' + (env.PGHOST || '(default)') + ' URL=' + dbUrl.substring(0, 100) + ' timeout=' + (getSpawnTimeoutMs() || 'none') + 'ms');
534
565
  const bin = path.join('node_modules', '.bin', 'kysely');
535
- // Run one migration at a time so each is in its own transaction.
536
- // If one fails, previously-applied migrations stay committed.
537
- let applied = 0;
538
- const migrated = [];
539
- while (true) {
540
- const result = spawnSync(bin, ['migrate', 'up'], { stdio: 'pipe', env, timeout: getSpawnTimeoutMs() });
541
- const out = (result.stdout ? result.stdout.toString() : '') + (result.stderr ? result.stderr.toString() : '');
542
- // Show output to user (but skip the "no new migrations" message since we break below)
543
- const isSkipped = out.includes('no pending') || out.includes('no unmigrated') || out.includes('Migration skipped');
544
- if (!isSkipped && out)
545
- process.stdout.write(out);
546
- if (result.status !== 0) {
547
- if (isSkipped)
548
- break;
549
- if (out)
550
- console.error(out);
551
- throw new Error('Migration failed');
552
- }
553
- if (isSkipped)
554
- break;
555
- // Extract migration name from output like "✓ Migration 20260722_name"
556
- const match = out.match(/Migration\s+(\S+)/);
557
- if (match)
558
- migrated.push(match[1]);
559
- applied++;
560
- }
561
- if (applied > 0) {
562
- for (const name of migrated)
566
+ // Core migrations
567
+ const core = runMigrationUp(bin, env);
568
+ if (core.applied > 0) {
569
+ for (const name of core.migrated)
563
570
  console.log(' \u2713 ' + name);
564
- console.log(' ' + applied + ' migration(s) applied');
571
+ console.log(' ' + core.applied + ' migration(s) applied');
565
572
  }
566
573
  else
567
574
  info(t('db.migrate.none') || 'No pending migrations');
575
+ // Engine migrations (packages/*/engine.json with db.migrations)
576
+ const engines = await discoverEnginesUpward(process.cwd());
577
+ const packagesDir = await findPackagesDir(process.cwd());
578
+ for (const engine of engines) {
579
+ if (!engine.db?.migrations)
580
+ continue;
581
+ const engineRoot = packagesDir ? path.join(packagesDir, engine.name) : path.join(process.cwd(), 'packages', engine.name);
582
+ const configPath = path.join(engineRoot, '.config', 'kysely.config.ts');
583
+ const migrationsDir = path.join(engineRoot, engine.db.migrations);
584
+ if (!fs.existsSync(migrationsDir)) {
585
+ warn(`[db:migrate] engine ${engine.name}: migrations dir not found (${engine.db.migrations}), skipping`);
586
+ continue;
587
+ }
588
+ if (!fs.existsSync(configPath)) {
589
+ warn(`[db:migrate] engine ${engine.name}: no .config/kysely.config.ts, skipping migrations`);
590
+ continue;
591
+ }
592
+ info(`[db:migrate] engine ${engine.name}: running migrations`);
593
+ const eng = runMigrationUp(bin, env, engineRoot);
594
+ if (eng.applied > 0) {
595
+ for (const name of eng.migrated)
596
+ console.log(' \u2713 ' + name);
597
+ console.log(' ' + eng.applied + ` migration(s) applied (${engine.name})`);
598
+ }
599
+ else {
600
+ info(` ${engine.name}: no pending migrations`);
601
+ }
602
+ }
568
603
  success(t('db.migrate.success'));
569
604
  await runPostMigrationTasks();
570
605
  }
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/tasks/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/tasks/db.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/tasks/engine.ts"],"names":[],"mappings":"AA+HA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,iBA+B7C"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/tasks/engine.ts"],"names":[],"mappings":"AAuJA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,iBA+B7C"}
@@ -2,7 +2,8 @@
2
2
  // Engine management: setup, list, check for shared modules (WBA, credentials, etc.)
3
3
  import fs from 'fs';
4
4
  import path from 'path';
5
- import { success, info, problem } from '../util/colors.js';
5
+ import { success, info, warn, problem } from '../util/colors.js';
6
+ import { discoverEnginesUpward, findPackagesDir } from '../util/engines.js';
6
7
  import { createTranslator } from '../i18n/createTranslator.js';
7
8
  import { detectLocale } from '../util/locale.js';
8
9
  import commonCli from '../i18n/common-cli.js';
@@ -100,6 +101,13 @@ CREATE TABLE IF NOT EXISTS credential_emission (
100
101
  }
101
102
  async function cmdList() {
102
103
  console.log('Available engines:');
104
+ const engines = await discoverEnginesUpward(process.cwd());
105
+ for (const e of engines) {
106
+ const provides = e.provides?.length ? ` — provides: ${e.provides.join(', ')}` : '';
107
+ const api = e.apiPrefix ? ` — ${e.apiPrefix}` : '';
108
+ console.log(` ${e.name.padEnd(14)} v${e.version} [${e.stage}]${api}${provides}`);
109
+ }
110
+ // Built-in engines (always installable via eng:<name>:setup)
103
111
  console.log(' wba — Web analytics (web_event + transaction)');
104
112
  console.log(' credentials — Blockchain credentials (credential_metadata + credential_emission)');
105
113
  console.log();
@@ -108,6 +116,20 @@ async function cmdList() {
108
116
  }
109
117
  async function cmdCheck() {
110
118
  info('Verifying engine schemas...');
119
+ const engines = await discoverEnginesUpward(process.cwd());
120
+ const packagesDir = await findPackagesDir(process.cwd());
121
+ for (const e of engines) {
122
+ if (!e.db?.migrations)
123
+ continue;
124
+ const engineRoot = packagesDir ? path.join(packagesDir, e.name) : path.join(process.cwd(), 'packages', e.name);
125
+ const migrationsDir = path.join(engineRoot, e.db.migrations);
126
+ if (fs.existsSync(migrationsDir)) {
127
+ info(` [OK] ${e.name}: migrations in ${e.db.migrations}`);
128
+ }
129
+ else {
130
+ warn(` [WARN] ${e.name}: migrations dir not found: ${e.db.migrations}`);
131
+ }
132
+ }
111
133
  const { runDbCheck } = await import('./db.js');
112
134
  await runDbCheck();
113
135
  }
@@ -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,OAAO,EAAE,IAAI,EAAQ,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChE,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,+EAA+E;KAClG;IACD,EAAE,EAAE;QACF,gBAAgB,EAAE,qFAAqF;KACxG;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,2BAA2B,CAAC,CAAA;IACpC,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,kCAAkC,CAAC,CAAA;IAC3C,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;IACjC,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;IACrB,IAAI,CAAC,6BAA6B,CAAC,CAAA;IACnC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9C,MAAM,UAAU,EAAE,CAAA;AACpB,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,2DAA2D,CAAC,CAAA;QACxE,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;QAChF,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;QACrE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IACtE,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,OAAO;oBAAE,MAAM,QAAQ,EAAE,CAAC;oBAAC,MAAK;gBACrC;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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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Engine discovery + auto-loading for m.
3
+ *
4
+ * discoverEngines() reads engine.json manifests under the packages directory.
5
+ * loadEnginePackages() auto-imports plugin/engine packages from the consumer
6
+ * project's node_modules (the generalized form of the old loadPlugins()).
7
+ *
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
+ */
10
+ import { createRequire } from 'node:module';
11
+ import type { EngineManifest } from '../engine.js';
12
+ /**
13
+ * Decide whether a dependency is an m plugin/engine: by the
14
+ * @pasosdejesus/m-* naming convention or by declaring `mEngine: true`.
15
+ */
16
+ export declare function isEnginePackage(name: string, nodeModulesDir: string): boolean;
17
+ /**
18
+ * Resolve a plugin package's entry point relative to the consumer project.
19
+ * Prefers Node's own resolution; falls back to reading `exports`/`main` for
20
+ * ESM-only packages that lack a `require` condition.
21
+ */
22
+ export declare function resolveEngineEntry(name: string, projectRequire: ReturnType<typeof createRequire>, nodeModulesDir: string): string | null;
23
+ /**
24
+ * Auto-import plugin/engine packages declared in the consumer project's
25
+ * package.json (each self-registers on import).
26
+ */
27
+ export declare function loadEnginePackages(pkgFile: string): Promise<void>;
28
+ /**
29
+ * Discover engine manifests by reading engine.json files under packages/.
30
+ */
31
+ export declare function discoverEngines(rootDir: string): Promise<EngineManifest[]>;
32
+ /**
33
+ * Locate the `packages/` directory by searching upward from `startDir`.
34
+ * Mirrors the CLI's hierarchical .env / package.json lookup
35
+ * (apps/nextjs → apps → project root). Returns null if none found.
36
+ */
37
+ export declare function findPackagesDir(startDir: string): Promise<string | null>;
38
+ /**
39
+ * Discover engine manifests by searching upward from `startDir` for a
40
+ * `packages/` directory containing `engine.json` files.
41
+ */
42
+ export declare function discoverEnginesUpward(startDir: string): Promise<EngineManifest[]>;
43
+ //# sourceMappingURL=engines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../src/util/engines.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAM3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAQ7E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,EAChD,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,CAiBf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBvE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAoBhF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS9E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIvF"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Engine discovery + auto-loading for m.
3
+ *
4
+ * discoverEngines() reads engine.json manifests under the packages directory.
5
+ * loadEnginePackages() auto-imports plugin/engine packages from the consumer
6
+ * project's node_modules (the generalized form of the old loadPlugins()).
7
+ *
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
+ */
10
+ import { createRequire } from 'node:module';
11
+ import { dirname, join } from 'node:path';
12
+ import { pathToFileURL } from 'node:url';
13
+ import { existsSync, readFileSync } from 'node:fs';
14
+ import { readdir, readFile } from 'node:fs/promises';
15
+ /**
16
+ * Decide whether a dependency is an m plugin/engine: by the
17
+ * @pasosdejesus/m-* naming convention or by declaring `mEngine: true`.
18
+ */
19
+ export function isEnginePackage(name, nodeModulesDir) {
20
+ if (name.startsWith('@pasosdejesus/m') && name !== '@pasosdejesus/m')
21
+ return true;
22
+ try {
23
+ const pj = JSON.parse(readFileSync(join(nodeModulesDir, name, 'package.json'), 'utf-8'));
24
+ return pj.mEngine === true;
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ }
30
+ /**
31
+ * Resolve a plugin package's entry point relative to the consumer project.
32
+ * Prefers Node's own resolution; falls back to reading `exports`/`main` for
33
+ * ESM-only packages that lack a `require` condition.
34
+ */
35
+ export function resolveEngineEntry(name, projectRequire, nodeModulesDir) {
36
+ try {
37
+ return projectRequire.resolve(name);
38
+ }
39
+ catch {
40
+ // ESM-only package: no `require` condition in its exports map.
41
+ }
42
+ const pkgJsonPath = join(nodeModulesDir, name, 'package.json');
43
+ if (!existsSync(pkgJsonPath))
44
+ return null;
45
+ try {
46
+ const pj = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));
47
+ const root = pj.exports?.['.'];
48
+ const entry = typeof root === 'string' ? root
49
+ : (root?.import ?? root?.require ?? pj.main ?? 'index.js');
50
+ return join(nodeModulesDir, name, entry);
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ }
56
+ /**
57
+ * Auto-import plugin/engine packages declared in the consumer project's
58
+ * package.json (each self-registers on import).
59
+ */
60
+ export async function loadEnginePackages(pkgFile) {
61
+ let pkg;
62
+ try {
63
+ pkg = JSON.parse(readFileSync(pkgFile, 'utf-8'));
64
+ }
65
+ catch {
66
+ return;
67
+ }
68
+ const projectRequire = createRequire(pkgFile);
69
+ const nodeModulesDir = join(dirname(pkgFile), 'node_modules');
70
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
71
+ for (const [name] of Object.entries(deps)) {
72
+ if (isEnginePackage(name, nodeModulesDir)) {
73
+ try {
74
+ const entry = resolveEngineEntry(name, projectRequire, nodeModulesDir);
75
+ if (entry)
76
+ await import(pathToFileURL(entry).href);
77
+ }
78
+ catch {
79
+ // Plugin not installed or not a valid module — skip silently
80
+ }
81
+ }
82
+ }
83
+ }
84
+ /**
85
+ * Discover engine manifests by reading engine.json files under packages/.
86
+ */
87
+ export async function discoverEngines(rootDir) {
88
+ const packagesDir = join(rootDir, 'packages');
89
+ let entries;
90
+ try {
91
+ entries = await readdir(packagesDir, { withFileTypes: true });
92
+ }
93
+ catch {
94
+ return [];
95
+ }
96
+ const manifests = [];
97
+ for (const entry of entries) {
98
+ if (!entry.isDirectory())
99
+ continue;
100
+ try {
101
+ const raw = await readFile(join(packagesDir, entry.name, 'engine.json'), 'utf-8');
102
+ manifests.push(JSON.parse(raw));
103
+ }
104
+ catch {
105
+ // no engine.json — skip
106
+ }
107
+ }
108
+ return manifests;
109
+ }
110
+ /**
111
+ * Locate the `packages/` directory by searching upward from `startDir`.
112
+ * Mirrors the CLI's hierarchical .env / package.json lookup
113
+ * (apps/nextjs → apps → project root). Returns null if none found.
114
+ */
115
+ export async function findPackagesDir(startDir) {
116
+ let current = startDir;
117
+ for (let i = 0; i < 4; i++) {
118
+ if (existsSync(join(current, 'packages')))
119
+ return join(current, 'packages');
120
+ const parent = dirname(current);
121
+ if (parent === current)
122
+ break;
123
+ current = parent;
124
+ }
125
+ return null;
126
+ }
127
+ /**
128
+ * Discover engine manifests by searching upward from `startDir` for a
129
+ * `packages/` directory containing `engine.json` files.
130
+ */
131
+ export async function discoverEnginesUpward(startDir) {
132
+ const packagesDir = await findPackagesDir(startDir);
133
+ if (!packagesDir)
134
+ return [];
135
+ return discoverEngines(dirname(packagesDir));
136
+ }
137
+ //# sourceMappingURL=engines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engines.js","sourceRoot":"","sources":["../../src/util/engines.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=engines.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engines.test.d.ts","sourceRoot":"","sources":["../../src/util/engines.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { mkdtemp, mkdir, writeFile, rm } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { discoverEngines, discoverEnginesUpward, findPackagesDir, isEnginePackage } from './engines.js';
6
+ async function tmpRoot() {
7
+ return mkdtemp(join(tmpdir(), 'm-engines-'));
8
+ }
9
+ describe('discoverEngines', () => {
10
+ it('returns manifests from packages/*/engine.json', async () => {
11
+ const root = await tmpRoot();
12
+ try {
13
+ await mkdir(join(root, 'packages', 'foo'), { recursive: true });
14
+ await writeFile(join(root, 'packages', 'foo', 'engine.json'), JSON.stringify({ name: 'foo', version: '1.0.0', stage: 'local' }));
15
+ const engines = await discoverEngines(root);
16
+ expect(engines).toHaveLength(1);
17
+ expect(engines[0].name).toBe('foo');
18
+ }
19
+ finally {
20
+ await rm(root, { recursive: true, force: true });
21
+ }
22
+ });
23
+ it('returns [] when there is no packages dir', async () => {
24
+ const root = await tmpRoot();
25
+ try {
26
+ expect(await discoverEngines(root)).toEqual([]);
27
+ }
28
+ finally {
29
+ await rm(root, { recursive: true, force: true });
30
+ }
31
+ });
32
+ });
33
+ describe('findPackagesDir', () => {
34
+ it('finds packages dir upward from a nested cwd', async () => {
35
+ const root = await tmpRoot();
36
+ try {
37
+ await mkdir(join(root, 'packages'), { recursive: true });
38
+ const nested = join(root, 'apps', 'nextjs');
39
+ await mkdir(nested, { recursive: true });
40
+ expect(await findPackagesDir(nested)).toBe(join(root, 'packages'));
41
+ }
42
+ finally {
43
+ await rm(root, { recursive: true, force: true });
44
+ }
45
+ });
46
+ it('returns null when not found', async () => {
47
+ const root = await tmpRoot();
48
+ try {
49
+ expect(await findPackagesDir(root)).toBeNull();
50
+ }
51
+ finally {
52
+ await rm(root, { recursive: true, force: true });
53
+ }
54
+ });
55
+ });
56
+ describe('discoverEnginesUpward', () => {
57
+ it('discovers engines from a nested cwd', async () => {
58
+ const root = await tmpRoot();
59
+ try {
60
+ await mkdir(join(root, 'packages', 'foo'), { recursive: true });
61
+ await writeFile(join(root, 'packages', 'foo', 'engine.json'), JSON.stringify({ name: 'foo', version: '1.0.0', stage: 'local' }));
62
+ const nested = join(root, 'apps', 'nextjs');
63
+ await mkdir(nested, { recursive: true });
64
+ const engines = await discoverEnginesUpward(nested);
65
+ expect(engines.map(e => e.name)).toEqual(['foo']);
66
+ }
67
+ finally {
68
+ await rm(root, { recursive: true, force: true });
69
+ }
70
+ });
71
+ });
72
+ describe('isEnginePackage', () => {
73
+ it('detects @pasosdejesus/m-* packages by convention', () => {
74
+ expect(isEnginePackage('@pasosdejesus/mpdj', '/nonexistent')).toBe(true);
75
+ expect(isEnginePackage('@pasosdejesus/m', '/nonexistent')).toBe(false);
76
+ expect(isEnginePackage('lodash', '/nonexistent')).toBe(false);
77
+ });
78
+ });
79
+ //# sourceMappingURL=engines.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engines.test.js","sourceRoot":"","sources":["../../src/util/engines.test.ts"],"names":[],"mappings":"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"}