@mouryaamit/nx-polystack 1.0.2 → 1.1.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/USER-MANUAL.md CHANGED
@@ -267,7 +267,8 @@ pstack update [--to=<version>] [--dry-run] [--allow-dirty] [--force]
267
267
  ```
268
268
 
269
269
  1. Reads the pinned version of `@mouryaamit/nx-polystack` from `package.json` (`1.2.0`, or the installed
270
- version for a range such as `^1.2.0`).
270
+ version for a range such as `^1.2.0`). Any other spec (a git tag, a tarball, `latest`) uses the installed
271
+ version, and is rewritten to a normal pin.
271
272
  2. Target is `--to`, else the global CLI's version. Downgrades need `--force`. If the global CLI is older than the
272
273
  workspace pin, `update` tells you to upgrade the global CLI first (or pass `--force`).
273
274
  3. Needs a clean git tree unless `--allow-dirty`. The check covers only the workspace folder.
@@ -1188,8 +1189,22 @@ The source is never changed, and `--rollback` removes the rewritten copies with
1188
1189
  workspace does not declare yet.
1189
1190
  - **SCSS:** relative `@use`, `@import` and `@forward` paths that reach into another moved project
1190
1191
  are corrected; paths into the source's root `node_modules` point at the workspace's.
1192
+ - **Angular resources (1.1.0):** relative `templateUrl`, `styleUrl` and `styleUrls` entries that
1193
+ reach into another moved project become the corrected relative path (Angular needs a path, not
1194
+ an alias).
1195
+ - **Sass load paths (1.1.0):** a bare `@use 'theme'` is resolved the way Sass does it: next to the
1196
+ stylesheet, then through the source `stylePreprocessorOptions.includePaths` of the project that
1197
+ owns it (`angular.json` or its `project.json`). If the workspace project's own `includePaths` no
1198
+ longer reach the same copied file first, it becomes a relative path. A load-path file that was
1199
+ not imported, and an `includePaths` entry that does not exist in the workspace, are listed.
1200
+ `sass:` modules, `~` paths, URLs, plain `.css` imports, `with (...)` values and anything found in
1201
+ `node_modules` are left alone.
1191
1202
  - **Library subpaths** (npm, Yarn and pnpm imports): `@acme/utils/x` resolves through an added
1192
1203
  `@acme/utils/*` alias to the package folder.
1204
+ - **Between `--config` entries (1.1.0):** an import into a project an earlier entry brought in is
1205
+ rewritten like any other. Imports into a project a later entry brings in are fixed after the
1206
+ last entry, in its tree: its report lists them under "Resolved in earlier entries", the earlier
1207
+ reports are updated, and `--rollback` of the last entry puts them back.
1193
1208
 
1194
1209
  Code files are `.ts`, `.tsx`, `.mts`, `.cts`, `.js`, `.jsx`, `.mjs` and `.cjs` (not `.d.ts`); the
1195
1210
  rewritten forms are `import`/`export … from`, `import()`, side-effect imports, `require()` and
@@ -1217,14 +1232,20 @@ with a Jest spec and `tools/migrate/jest.config.js`, and lists it in `nx.json`:
1217
1232
  }
1218
1233
  ```
1219
1234
 
1220
- Entries are workspace-relative `.js`/`.ts` files or installed package names. A module exports one
1221
- adapter or a list (`default`, `adapters`, `adapter`, or `module.exports`).
1222
-
1223
- - **TypeScript:** `.ts` files are transpiled with the workspace's `typescript` and its
1224
- `tsconfig.base.json` options (no ts-node needed). `paths` aliases are not resolved, and
1225
- `.mts`/`.cts` files are not supported.
1226
- - **Adapter packages:** must be CommonJS, and should list nx-polystack as a peer dependency so
1227
- they use the workspace's copy.
1235
+ Entries are workspace-relative `.js`/`.mjs`/`.cjs`/`.ts`/`.mts`/`.cts` files or installed package
1236
+ names. A module exports one adapter or a list (`default`, `adapters`, `adapter`, or
1237
+ `module.exports`).
1238
+
1239
+ - **TypeScript:** `.ts`, `.mts` and `.cts` files are transpiled to CommonJS with the workspace's
1240
+ `typescript` and its `tsconfig.base.json` options (no ts-node needed). `paths` aliases resolve
1241
+ while the adapter runs (1.1.0). `import.meta` and top-level `await` are not supported in
1242
+ TypeScript adapters.
1243
+ - **ES modules (1.1.0):** `.mjs` files, `.js` files in a `"type": "module"` package and ESM-only
1244
+ packages (resolved through their `exports`) load through Node's own `require`, which needs Node
1245
+ 20.19+ or 22.12+. An ES module with top-level `await` cannot be loaded (adapters load
1246
+ synchronously).
1247
+ - **Adapter packages:** CommonJS or ESM; list nx-polystack as a peer dependency so they use the
1248
+ workspace's copy.
1228
1249
  - **Trust:** listed adapters run as code on `pstack migrate`, `--detect` included. List only
1229
1250
  adapters you trust, as with Nx plugins.
1230
1251
 
@@ -35,10 +35,14 @@ async function runUpdate(ctx, deps = defaultDeps) {
35
35
  throw new types_1.CliError('--to requires a version, e.g. --to=0.3.0');
36
36
  }
37
37
  const pkgText = fs.readFileSync(pkgPath, 'utf8');
38
- const pin = (0, update_plan_1.findPluginPin)(JSON.parse(pkgText.replace(/^\uFEFF/, '')), ctx.selfVersion);
38
+ const installedVersion = (0, context_1.resolveLocalPlugin)(root)?.version;
39
+ const pin = (0, update_plan_1.findPluginPin)(JSON.parse(pkgText.replace(/^\uFEFF/, '')), ctx.selfVersion, installedVersion);
40
+ if (pin.fromInstalled) {
41
+ console.log(`${pin.field}: "${pin.spec}" is not a version pin; migrating from the installed v${pin.version}.`);
42
+ }
39
43
  if (pin.range) {
40
44
  // ^x.y.z may have installed a newer version: migrate from what is installed.
41
- const installed = (0, context_1.resolveLocalPlugin)(root)?.version;
45
+ const installed = installedVersion;
42
46
  if (installed &&
43
47
  /^\d+\.\d+\.\d+$/.test(installed) &&
44
48
  (0, versions_1.compareVersions)(installed, pin.version) > 0) {
@@ -46,7 +50,8 @@ async function runUpdate(ctx, deps = defaultDeps) {
46
50
  }
47
51
  }
48
52
  const target = (0, update_plan_1.resolveTarget)(pin.version, (0, args_1.flagString)(ctx.flags, 'to'), ctx.selfVersion, !!ctx.flags['force']);
49
- if (target.action === 'noop') {
53
+ // An unreadable pin on the current version is still rewritten to a normal pin.
54
+ if (target.action === 'noop' && !pin.fromInstalled) {
50
55
  console.log(`Already on nx-polystack v${target.to}.`);
51
56
  return 0;
52
57
  }
@@ -90,6 +95,10 @@ async function runUpdate(ctx, deps = defaultDeps) {
90
95
  `${local ? `v${local.version}` : 'nothing'}. package.json and package-lock.json were restored; ` +
91
96
  'node_modules may now hold another version — run npm install to resync.');
92
97
  }
98
+ if (target.action === 'noop') {
99
+ console.log(`\nPinned nx-polystack v${target.to}. Review with "git diff".`);
100
+ return 0;
101
+ }
93
102
  const code = deps.runLocalMigrate(local.cliPath, pin.version, target.to, root, ctx.verbose);
94
103
  if (code !== 0) {
95
104
  console.error(`\nThe plugin is already on v${target.to}, but migrations from v${pin.version} did not all apply.\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,20 @@ export interface PluginPin {
6
6
  spec: string;
7
7
  /** An npm range (^x.y.z, ~x.y.z): the installed version may be newer than `version`. */
8
8
  range: boolean;
9
+ /**
10
+ * The spec names no version pstack recognises (a git tag of another repo, a tarball, a tag such
11
+ * as "latest"); `version` is the installed plugin's version.
12
+ */
13
+ fromInstalled?: boolean;
9
14
  }
10
15
  export interface UpdateTarget {
11
16
  action: 'noop' | 'upgrade' | 'downgrade';
12
17
  to: string;
13
18
  }
14
- export declare function findPluginPin(pkg: any, example?: string): PluginPin;
19
+ /**
20
+ * The plugin entry of package.json. A spec pstack cannot read a version from falls back to
21
+ * `installed` (the version in node_modules), so `pstack update` can move such a workspace to a
22
+ * normal pin; without an installed copy it is an error.
23
+ */
24
+ export declare function findPluginPin(pkg: any, example?: string, installed?: string): PluginPin;
15
25
  export declare function resolveTarget(from: string, toFlag: string | undefined, selfVersion: string, force: boolean): UpdateTarget;
@@ -7,16 +7,25 @@ const versions_1 = require("./versions");
7
7
  function pinCommand(version) {
8
8
  return ['npm i -D', `${versions_1.PLUGIN_NAME}@${(0, versions_1.formatPluginSpec)(version)}`, ...(0, versions_1.pinInstallFlags)()].join(' ');
9
9
  }
10
+ /**
11
+ * The plugin entry of package.json. A spec pstack cannot read a version from falls back to
12
+ * `installed` (the version in node_modules), so `pstack update` can move such a workspace to a
13
+ * normal pin; without an installed copy it is an error.
14
+ */
15
+ function findPluginPin(
10
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- function findPluginPin(pkg, example = '0.3.0') {
17
+ pkg, example = '0.3.0', installed) {
12
18
  for (const field of ['devDependencies', 'dependencies']) {
13
19
  const spec = pkg?.[field]?.[versions_1.PLUGIN_NAME];
14
20
  if (spec === undefined)
15
21
  continue;
16
22
  const version = (0, versions_1.parsePluginSpec)(spec);
23
+ if (!version && installed && /^\d+\.\d+\.\d+$/.test(installed)) {
24
+ return { field, version: installed, spec, range: false, fromInstalled: true };
25
+ }
17
26
  if (!version) {
18
- throw new types_1.CliError(`${versions_1.PLUGIN_NAME} is "${spec}" in ${field}. pstack update needs a pinned version — ` +
19
- `pin one first: ${pinCommand(example)}`);
27
+ throw new types_1.CliError(`${versions_1.PLUGIN_NAME} is "${spec}" in ${field} and no installed copy was found. ` +
28
+ `pstack update needs a pinned version — pin one first: ${pinCommand(example)}`);
20
29
  }
21
30
  return { field, version, spec, range: /^\s*[\^~]/.test(spec) };
22
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update-plan.js","sourceRoot":"","sources":["../../../src/cli/update-plan.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,yCAQoB;AAEpB,yFAAyF;AACzF,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,UAAU,EAAE,GAAG,sBAAW,IAAI,IAAA,2BAAgB,EAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAA,0BAAe,GAAE,CAAC,CAAC,IAAI,CAC3F,GAAG,CACJ,CAAC;AACJ,CAAC;AAkBD,8DAA8D;AAC9D,SAAgB,aAAa,CAAC,GAAQ,EAAE,OAAO,GAAG,OAAO;IACvD,KAAK,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAe,EAAE;QACrE,MAAM,IAAI,GAAuB,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAW,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,OAAO,GAAG,IAAA,0BAAe,EAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,gBAAQ,CAChB,GAAG,sBAAW,QAAQ,IAAI,QAAQ,KAAK,2CAA2C;gBAChF,kBAAkB,UAAU,CAAC,OAAO,CAAC,EAAE,CAC1C,CAAC;SACH;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAChE;IACD,MAAM,IAAI,gBAAQ,CAChB,GAAG,sBAAW,iDAAiD,UAAU,CAAC,OAAO,CAAC,EAAE,CACrF,CAAC;AACJ,CAAC;AAhBD,sCAgBC;AAED,SAAgB,aAAa,CAC3B,IAAY,EACZ,MAA0B,EAC1B,WAAmB,EACnB,KAAc;IAEd,MAAM,EAAE,GAAG,IAAA,2BAAgB,EAAC,MAAM,IAAI,WAAW,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAA,0BAAe,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,MAAM,IAAI,gBAAQ,CAChB,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,mBAAmB,EAAE,mCAAmC,IAAI,mBAAmB;gBAC/E,IAAI,IAAA,+BAAoB,EAAC,IAAI,CAAC,2DAA2D;YAC3F,CAAC,CAAC,IAAI,EAAE,iCAAiC,IAAI,8BAA8B,CAC9E,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC;AAlBD,sCAkBC"}
1
+ {"version":3,"file":"update-plan.js","sourceRoot":"","sources":["../../../src/cli/update-plan.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,yCAQoB;AAEpB,yFAAyF;AACzF,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,CAAC,UAAU,EAAE,GAAG,sBAAW,IAAI,IAAA,2BAAgB,EAAC,OAAO,CAAC,EAAE,EAAE,GAAG,IAAA,0BAAe,GAAE,CAAC,CAAC,IAAI,CAC3F,GAAG,CACJ,CAAC;AACJ,CAAC;AAuBD;;;;GAIG;AACH,SAAgB,aAAa;AAC3B,8DAA8D;AAC9D,GAAQ,EACR,OAAO,GAAG,OAAO,EACjB,SAAkB;IAElB,KAAK,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAe,EAAE;QACrE,MAAM,IAAI,GAAuB,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAW,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,OAAO,GAAG,IAAA,0BAAe,EAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC9D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC/E;QACD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,gBAAQ,CAChB,GAAG,sBAAW,QAAQ,IAAI,QAAQ,KAAK,oCAAoC;gBACzE,yDAAyD,UAAU,CAAC,OAAO,CAAC,EAAE,CACjF,CAAC;SACH;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAChE;IACD,MAAM,IAAI,gBAAQ,CAChB,GAAG,sBAAW,iDAAiD,UAAU,CAAC,OAAO,CAAC,EAAE,CACrF,CAAC;AACJ,CAAC;AAxBD,sCAwBC;AAED,SAAgB,aAAa,CAC3B,IAAY,EACZ,MAA0B,EAC1B,WAAmB,EACnB,KAAc;IAEd,MAAM,EAAE,GAAG,IAAA,2BAAgB,EAAC,MAAM,IAAI,WAAW,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAA,0BAAe,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;QACrB,MAAM,IAAI,gBAAQ,CAChB,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,mBAAmB,EAAE,mCAAmC,IAAI,mBAAmB;gBAC/E,IAAI,IAAA,+BAAoB,EAAC,IAAI,CAAC,2DAA2D;YAC3F,CAAC,CAAC,IAAI,EAAE,iCAAiC,IAAI,8BAA8B,CAC9E,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;AAC3D,CAAC;AAlBD,sCAkBC"}
@@ -15,8 +15,17 @@ export declare function adapterEntries(nxJson: NxJsonWithPstack | undefined): st
15
15
  type TsModule = typeof import('typescript');
16
16
  /** A require hook that transpiles a .ts module to CommonJS with `ts` (exported for tests). */
17
17
  export declare function typeScriptHook(ts: TsModule, base?: import('typescript').CompilerOptions): (mod: {
18
- _compile(code: string, file: string): void;
18
+ _compile(code: string, file: string, format?: string): void;
19
19
  }, file: string) => void;
20
+ /**
21
+ * tsconfig `paths` of the workspace: request → absolute candidates, in order (`*` wildcard; the
22
+ * longest matching prefix wins, as in TypeScript). Undefined when no key matches.
23
+ */
24
+ export declare function pathsResolver(options: {
25
+ paths?: Record<string, string[]>;
26
+ baseUrl?: string;
27
+ pathsBasePath?: unknown;
28
+ }, root: string): (request: string) => string[] | undefined;
20
29
  /** Reads nx.json for the adapter list: undefined when missing; throws when it is not JSON. */
21
30
  export declare function parseNxJson(text: string | null | undefined): NxJsonWithPstack | undefined;
22
31
  /** Loads and checks the workspace's external adapters. Throws, naming the entry, on any problem. */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadExternalAdapters = exports.parseNxJson = exports.typeScriptHook = exports.adapterEntries = exports.MIGRATE_API_VERSION = void 0;
3
+ exports.loadExternalAdapters = exports.parseNxJson = exports.pathsResolver = exports.typeScriptHook = exports.adapterEntries = exports.MIGRATE_API_VERSION = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const fs = tslib_1.__importStar(require("fs"));
6
6
  const Module = tslib_1.__importStar(require("module"));
@@ -25,6 +25,10 @@ function adapterEntries(nxJson) {
25
25
  return list.map((e) => e.trim());
26
26
  }
27
27
  exports.adapterEntries = adapterEntries;
28
+ const nodeModule = (process.getBuiltinModule?.('module') ?? Module);
29
+ /** Node's require, which loads ES modules synchronously on Node 20.19+ and 22.12+. */
30
+ const nativeRequire = nodeModule.createRequire(__filename);
31
+ const TS_FILE = /\.(ts|mts|cts)$/;
28
32
  function loadTypeScript(root, entry) {
29
33
  try {
30
34
  // eslint-disable-next-line @typescript-eslint/no-var-requires
@@ -36,7 +40,7 @@ function loadTypeScript(root, entry) {
36
40
  }
37
41
  /**
38
42
  * The workspace tsconfig.base.json compilerOptions (decorators, jsx, …) for transpiling adapters;
39
- * module and target are always CommonJS / ES2020. `paths` aliases are not resolved.
43
+ * module and target are always CommonJS / ES2020. `paths` are resolved by tsScope (NX-63).
40
44
  */
41
45
  function workspaceCompilerOptions(ts, root) {
42
46
  const file = ['tsconfig.base.json', 'tsconfig.json']
@@ -54,7 +58,8 @@ function typeScriptHook(ts, base = {}) {
54
58
  return (mod, file) => {
55
59
  const source = fs.readFileSync(file, 'utf8');
56
60
  const out = ts.transpileModule(source, {
57
- fileName: file,
61
+ // TypeScript always emits ESM for an .mts name; as .ts it follows `module: CommonJS`.
62
+ fileName: file.replace(/\.[mc]ts$/, '.ts'),
58
63
  compilerOptions: {
59
64
  ...base,
60
65
  module: ts.ModuleKind.CommonJS,
@@ -69,7 +74,8 @@ function typeScriptHook(ts, base = {}) {
69
74
  verbatimModuleSyntax: false,
70
75
  },
71
76
  });
72
- mod._compile(out.outputText, file);
77
+ // The output is CommonJS; the format keeps Node from treating an .mts name as ESM.
78
+ mod._compile(out.outputText, file, 'commonjs');
73
79
  };
74
80
  }
75
81
  exports.typeScriptHook = typeScriptHook;
@@ -79,29 +85,143 @@ exports.typeScriptHook = typeScriptHook;
79
85
  * they load later (a lazy require or `import()`) transpile the same way.
80
86
  */
81
87
  function tsScope(root, entry, file) {
82
- if (!file.endsWith('.ts'))
88
+ if (!TS_FILE.test(file))
83
89
  return (fn) => fn();
84
90
  const ts = loadTypeScript(root, entry);
85
- const hook = typeScriptHook(ts, workspaceCompilerOptions(ts, root));
91
+ const options = workspaceCompilerOptions(ts, root);
92
+ const hook = typeScriptHook(ts, options);
93
+ const resolvePaths = pathsResolver(options, root);
86
94
  return (fn) => {
87
- const extensions = Module._extensions;
88
- const previous = extensions['.ts'];
89
- extensions['.ts'] = hook;
95
+ const previous = new Map();
96
+ for (const ext of ['.ts', '.mts', '.cts']) {
97
+ previous.set(ext, nodeModule._extensions[ext]);
98
+ nodeModule._extensions[ext] = hook;
99
+ }
100
+ const resolveFilename = nodeModule._resolveFilename;
101
+ nodeModule._resolveFilename = function (request, parent, ...rest) {
102
+ const from = parent?.filename;
103
+ const mapped = from && !from.split(path.sep).includes('node_modules') ? resolvePaths(request) : undefined;
104
+ if (mapped) {
105
+ for (const candidate of mapped) {
106
+ try {
107
+ return resolveFilename.call(this, candidate, parent, ...rest);
108
+ }
109
+ catch {
110
+ // try the next target
111
+ }
112
+ }
113
+ }
114
+ return resolveFilename.call(this, request, parent, ...rest);
115
+ };
90
116
  try {
91
117
  return fn();
92
118
  }
93
119
  finally {
94
- if (previous === undefined)
95
- delete extensions['.ts'];
96
- else
97
- extensions['.ts'] = previous;
120
+ nodeModule._resolveFilename = resolveFilename;
121
+ for (const [ext, h] of previous) {
122
+ if (h === undefined)
123
+ delete nodeModule._extensions[ext];
124
+ else
125
+ nodeModule._extensions[ext] = h;
126
+ }
98
127
  }
99
128
  };
100
129
  }
130
+ /**
131
+ * tsconfig `paths` of the workspace: request → absolute candidates, in order (`*` wildcard; the
132
+ * longest matching prefix wins, as in TypeScript). Undefined when no key matches.
133
+ */
134
+ function pathsResolver(options, root) {
135
+ const paths = options.paths ?? {};
136
+ const base = options.baseUrl ?? (typeof options.pathsBasePath === 'string' ? options.pathsBasePath : root);
137
+ const keys = Object.keys(paths).sort((a, b) => b.replace(/\*.*$/, '').length - a.replace(/\*.*$/, '').length);
138
+ return (request) => {
139
+ if (request.startsWith('.') || path.isAbsolute(request))
140
+ return undefined;
141
+ for (const key of keys) {
142
+ const star = key.indexOf('*');
143
+ let rest;
144
+ if (star < 0)
145
+ rest = request === key ? '' : undefined;
146
+ else {
147
+ const pre = key.slice(0, star);
148
+ const post = key.slice(star + 1);
149
+ if (request.startsWith(pre) && request.endsWith(post) && request.length >= key.length - 1) {
150
+ rest = request.slice(pre.length, request.length - post.length);
151
+ }
152
+ }
153
+ if (rest === undefined)
154
+ continue;
155
+ return (paths[key] ?? []).map((t) => path.resolve(base, t.replace('*', () => rest)));
156
+ }
157
+ return undefined;
158
+ };
159
+ }
160
+ exports.pathsResolver = pathsResolver;
161
+ /**
162
+ * An .mts / .cts file compiled with the TypeScript hook installed by tsScope (to CommonJS). Not
163
+ * through require: recent Node sends .mts to its own ES module loader, which skips the hook.
164
+ */
165
+ function compileTs(file) {
166
+ const Ctor = nodeModule;
167
+ const mod = new Ctor(file);
168
+ mod.filename = file;
169
+ mod.paths = Ctor._nodeModulePaths(path.dirname(file));
170
+ nodeModule._extensions['.ts'](mod, file);
171
+ mod.loaded = true;
172
+ return mod.exports;
173
+ }
174
+ /** ES module by extension or by the nearest package.json `"type": "module"`. */
175
+ function isEsmFile(file) {
176
+ if (file.endsWith('.mjs'))
177
+ return true;
178
+ if (!file.endsWith('.js'))
179
+ return false;
180
+ for (let dir = path.dirname(file);; dir = path.dirname(dir)) {
181
+ const pkg = path.join(dir, 'package.json');
182
+ if (fs.existsSync(pkg)) {
183
+ try {
184
+ return JSON.parse(fs.readFileSync(pkg, 'utf8')).type === 'module';
185
+ }
186
+ catch {
187
+ return false;
188
+ }
189
+ }
190
+ if (path.dirname(dir) === dir)
191
+ return false;
192
+ }
193
+ }
194
+ /**
195
+ * Loads an adapter module: ES modules, `.mts` and `.cts` through Node's own require (which
196
+ * loads ES modules synchronously on Node 20.19+ / 22.12+), others through the plugin's require.
197
+ */
198
+ function loadModule(entry, file, scope) {
199
+ try {
200
+ if (/\.(mts|cts)$/.test(file))
201
+ return scope(() => compileTs(file));
202
+ return scope(() => (isEsmFile(file) ? nativeRequire(file) : require(file)));
203
+ }
204
+ catch (err) {
205
+ const code = err?.code;
206
+ if (code === 'ERR_REQUIRE_ASYNC_MODULE') {
207
+ return fail(entry, 'is an ES module with top-level await; adapters are loaded synchronously, so move the ' +
208
+ 'await into the adapter functions.');
209
+ }
210
+ if (code === 'ERR_REQUIRE_ESM') {
211
+ return fail(entry, `is an ES module; loading it needs Node 20.19+ or 22.12+ (this is Node ${process.versions.node}).`);
212
+ }
213
+ throw err;
214
+ }
215
+ }
101
216
  function resolveEntry(root, entry) {
102
217
  if (entry.startsWith('.') || path.isAbsolute(entry)) {
103
218
  const file = path.resolve(root, entry);
104
- for (const candidate of [file, `${file}.ts`, `${file}.js`, path.join(file, 'index.js')]) {
219
+ const candidates = [
220
+ file,
221
+ ...['.ts', '.js', '.mts', '.cts', '.mjs', '.cjs'].map((ext) => `${file}${ext}`),
222
+ ...['index.js', 'index.mjs', 'index.ts'].map((f) => path.join(file, f)),
223
+ ];
224
+ for (const candidate of candidates) {
105
225
  if (fs.existsSync(candidate) && fs.statSync(candidate).isFile())
106
226
  return candidate;
107
227
  }
@@ -111,7 +231,92 @@ function resolveEntry(root, entry) {
111
231
  return require.resolve(entry, { paths: [root] });
112
232
  }
113
233
  catch {
114
- return fail(entry, 'the package is not installed in the workspace.');
234
+ // An ESM-only package has no `require` export: resolve it through its exports (NX-63).
235
+ return (resolveEsmPackage(root, entry) ??
236
+ fail(entry, 'the package is not installed in the workspace.'));
237
+ }
238
+ }
239
+ const CONDITIONS = new Set(['node', 'require', 'import', 'module', 'default']);
240
+ /** One target of a package `exports` value for the conditions above (object order wins). */
241
+ function exportTarget(value) {
242
+ if (typeof value === 'string')
243
+ return value;
244
+ if (Array.isArray(value)) {
245
+ for (const v of value) {
246
+ const t = exportTarget(v);
247
+ if (t)
248
+ return t;
249
+ }
250
+ return undefined;
251
+ }
252
+ if (!value || typeof value !== 'object')
253
+ return undefined;
254
+ for (const [key, v] of Object.entries(value)) {
255
+ if (CONDITIONS.has(key)) {
256
+ const t = exportTarget(v);
257
+ if (t)
258
+ return t;
259
+ }
260
+ }
261
+ return undefined;
262
+ }
263
+ /** `<name>[/<subpath>]` of an installed package, read from its package.json `exports`/`module`/`main`. */
264
+ function resolveEsmPackage(root, entry) {
265
+ const parts = entry.split('/');
266
+ const nameLength = entry.startsWith('@') ? 2 : 1;
267
+ const name = parts.slice(0, nameLength).join('/');
268
+ const sub = parts.slice(nameLength).join('/');
269
+ for (let dir = root;; dir = path.dirname(dir)) {
270
+ const pkgDir = path.join(dir, 'node_modules', name);
271
+ const pkgFile = path.join(pkgDir, 'package.json');
272
+ if (fs.existsSync(pkgFile)) {
273
+ let pkg;
274
+ try {
275
+ pkg = JSON.parse(fs.readFileSync(pkgFile, 'utf8'));
276
+ }
277
+ catch {
278
+ return undefined;
279
+ }
280
+ const key = sub ? `./${sub}` : '.';
281
+ let target;
282
+ const ex = pkg.exports;
283
+ if (ex !== undefined) {
284
+ const map = ex &&
285
+ typeof ex === 'object' &&
286
+ !Array.isArray(ex) &&
287
+ Object.keys(ex).some((k) => k.startsWith('.'))
288
+ ? ex
289
+ : { '.': ex };
290
+ if (map[key] !== undefined)
291
+ target = exportTarget(map[key]);
292
+ else {
293
+ // Subpath patterns: "./*" → "./dist/*.js".
294
+ for (const [k, v] of Object.entries(map)) {
295
+ const star = k.indexOf('*');
296
+ if (star < 0)
297
+ continue;
298
+ const pre = k.slice(0, star);
299
+ const post = k.slice(star + 1);
300
+ if (key.startsWith(pre) && key.endsWith(post) && key.length >= k.length - 1) {
301
+ const hit = exportTarget(v);
302
+ const part = key.slice(pre.length, key.length - post.length);
303
+ target = hit?.replace(/\*/g, () => part);
304
+ break;
305
+ }
306
+ }
307
+ }
308
+ }
309
+ else if (!sub)
310
+ target = pkg.module ?? pkg.main ?? 'index.js';
311
+ else
312
+ target = sub;
313
+ if (!target)
314
+ return undefined;
315
+ const file = path.resolve(pkgDir, target);
316
+ return fs.existsSync(file) ? file : undefined;
317
+ }
318
+ if (path.dirname(dir) === dir)
319
+ return undefined;
115
320
  }
116
321
  }
117
322
  function adaptersOf(mod) {
@@ -178,10 +383,20 @@ function guarded(entry, a, scope) {
178
383
  for (const k of ['detect', 'defaultName', 'preflight', 'migrate']) {
179
384
  const fn = a[k];
180
385
  if (typeof fn === 'function') {
181
- Object.defineProperty(copy, k, {
182
- value: wrap(fn),
183
- enumerable: true,
184
- });
386
+ let value = wrap(fn);
387
+ if (k === 'migrate') {
388
+ // The install task runs later: keep the TypeScript hook and paths around it too.
389
+ const migrate = value;
390
+ value = (...args) => {
391
+ const data = migrate(...args);
392
+ const task = data?.installTask;
393
+ if (data && typeof task === 'function') {
394
+ data.installTask = () => scope(() => task.call(data));
395
+ }
396
+ return data;
397
+ };
398
+ }
399
+ Object.defineProperty(copy, k, { value, enumerable: true });
185
400
  }
186
401
  }
187
402
  return copy;
@@ -210,8 +425,7 @@ function loadExternalAdapters(root, nxJson) {
210
425
  const scope = tsScope(root, entry, file);
211
426
  let mod;
212
427
  try {
213
- // eslint-disable-next-line @typescript-eslint/no-var-requires
214
- mod = scope(() => require(file));
428
+ mod = loadModule(entry, file, scope);
215
429
  }
216
430
  catch (err) {
217
431
  if (err instanceof Error && err.message.startsWith('migrate: nx.json'))
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../../../src/generators/migrate/adapters/external.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../../../src/generators/migrate/adapters/external.ts"],"names":[],"mappings":"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"}