@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 +30 -9
- package/dist/src/cli/commands/update.js +12 -3
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/update-plan.d.ts +11 -1
- package/dist/src/cli/update-plan.js +12 -3
- package/dist/src/cli/update-plan.js.map +1 -1
- package/dist/src/generators/migrate/adapters/external.d.ts +10 -1
- package/dist/src/generators/migrate/adapters/external.js +235 -21
- package/dist/src/generators/migrate/adapters/external.js.map +1 -1
- package/dist/src/generators/migrate/generator.js +102 -13
- package/dist/src/generators/migrate/generator.js.map +1 -1
- package/dist/src/generators/migrate/imports/rewrite.d.ts +17 -1
- package/dist/src/generators/migrate/imports/rewrite.js +198 -20
- package/dist/src/generators/migrate/imports/rewrite.js.map +1 -1
- package/dist/src/generators/migrate/report.js +9 -0
- package/dist/src/generators/migrate/report.js.map +1 -1
- package/package.json +1 -1
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
|
|
1221
|
-
adapter or a list (`default`, `adapters`, `adapter`, or
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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":";;;;AAAA,+CAAyB;AACzB,mDAA6B;AAE7B,kCAAqC;AACrC,wCAAmE;AACnE,kCAAiD;AACjD,sDAAkD;AAClD,0CAAuC;AACvC,oCAAoD;AACpD,gDAA8D;AAC9D,0CAA8F;AAgB9F,kDAAkD;AAClD,SAAgB,WAAW,CAAC,IAAY,EAAE,EAAU,EAAE,OAAO,GAAG,KAAK;IACnE,OAAO,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AAFD,kCAEC;AAED,MAAM,WAAW,GAAe;IAC9B,IAAI,EAAE,kBAAW;IACjB,SAAS,EAAT,gBAAS;IACT,eAAe,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CACnD,IAAA,mBAAQ,EAAC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC;CACzD,CAAC;AAEK,KAAK,UAAU,SAAS,CAC7B,GAAmB,EACnB,OAAmB,WAAW;IAE9B,MAAM,IAAI,GAAG,IAAA,2BAAiB,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,gBAAQ,CAChB,2FAA2F,CAC5F,CAAC;KACH;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,gBAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,gBAAQ,CAAC,0CAA0C,CAAC,CAAC;KAChE;IACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAA,2BAAa,
|
|
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
|
-
|
|
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
|
-
|
|
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}
|
|
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;
|
|
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`
|
|
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
|
-
|
|
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
|
-
|
|
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 (!
|
|
88
|
+
if (!TS_FILE.test(file))
|
|
83
89
|
return (fn) => fn();
|
|
84
90
|
const ts = loadTypeScript(root, entry);
|
|
85
|
-
const
|
|
91
|
+
const options = workspaceCompilerOptions(ts, root);
|
|
92
|
+
const hook = typeScriptHook(ts, options);
|
|
93
|
+
const resolvePaths = pathsResolver(options, root);
|
|
86
94
|
return (fn) => {
|
|
87
|
-
const
|
|
88
|
-
const
|
|
89
|
-
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
|
|
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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"}
|