diff --git a/.changeset/21125-oclif-core-5.md b/.changeset/21125-oclif-core-5.md new file mode 100644 index 00000000000..040861cd6bf --- /dev/null +++ b/.changeset/21125-oclif-core-5.md @@ -0,0 +1,9 @@ +--- +'@objectstack/cli': patch +--- + +`@objectstack/cli` moves to the `@oclif/core` 5 line: its `@oclif/core` dependency goes from `^4.13.3` to `^5.1.2`. The Command classes the package exports (`CompileCommand`, `ValidateCommand`, `ServeCommand` and the rest) now build on `@oclif/core` 5, so code that extends one of them or runs it beside its own oclif setup should use `@oclif/core` 5 as well. + +Node.js 22 or later is required. Every `@oclif/core` 5 release declares `engines.node` `>=22.0.0`, the same floor this package already declared. + +The `os` commands, flags and output are unchanged. On 5.1.2 every help page renders byte-for-byte as it did on 4.13.3. The published entry also answers `--version`, `--help`, an unknown command, an unknown flag and a refused `--port` with the same exit codes and the same bytes. diff --git a/packages/cli/bin/run-dev.js b/packages/cli/bin/run-dev.js index d01f74fd314..7388efd02d4 100644 --- a/packages/cli/bin/run-dev.js +++ b/packages/cli/bin/run-dev.js @@ -5,7 +5,7 @@ // having been built. Not published (`files` does not name `bin/`, and only the // `bin` target itself is packed automatically). // -// The body is `execute({ development: true })` from @oclif/core 4.13.3 inlined, +// The body is `execute({ development: true })` from @oclif/core 5.1.2 inlined, // for the reason `bin/run.js` states: `execute` hands the error straight to // `handle()`, which prints a usage dump, and #10111 needs one unmistakable line // to land on stderr before it. `NODE_ENV` and `settings.debug` are what diff --git a/packages/cli/bin/run.js b/packages/cli/bin/run.js index 4e24ceca831..c400f736379 100755 --- a/packages/cli/bin/run.js +++ b/packages/cli/bin/run.js @@ -5,7 +5,7 @@ // `files` never names the directory — see scripts/check-published-files.mjs). // // It used to be `await execute({ type: 'esm', dir: import.meta.url })`. What is -// inlined below IS `execute()` from @oclif/core 4.13.3, verbatim apart from the +// inlined below IS `execute()` from @oclif/core 5.1.2, verbatim apart from the // added lines, because `execute` swallows the error into `handle()` and // there is no hook between the two. `handle()` writes the parse error and then // a full usage dump; #10111 needs one unmistakable line to reach stderr FIRST, @@ -31,7 +31,7 @@ import { flush, handle, run, settings } from '@oclif/core'; * `development`/`test`, with no baseline and only two declared exceptions. * * What was missing is that **this file never asserted it about itself.** - * `@oclif/core@4.13.3`'s `lib/config/ts-path.js` skips its TypeScript path + * `@oclif/core@5.1.2`'s `lib/config/ts-path.js` skips its TypeScript path * lookup only when `isProd()`, which `lib/util/util.js` defines as * `['development', 'test'].includes(process.env.NODE_ENV ?? '')` negated. So an * ambient `NODE_ENV` — exported by a developer, or inherited by any child this diff --git a/packages/cli/package.json b/packages/cli/package.json index c1b0c4b530a..9d84cdcf337 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -108,7 +108,7 @@ "@objectstack/trigger-schedule": "workspace:*", "@objectstack/types": "workspace:*", "@objectstack/verify": "workspace:*", - "@oclif/core": "^4.13.3", + "@oclif/core": "^5.1.2", "bundle-require": "^5.1.0", "chalk": "^6.0.1", "chokidar": "^5.0.0", @@ -137,8 +137,8 @@ "@objectstack/connector-rest": "workspace:*", "@objectstack/driver-turso": "workspace:*", "@objectstack/plugin-dev": "workspace:*", - "@oclif/plugin-help": "^6.2.58", - "@oclif/plugin-plugins": "^5.4.87", + "@oclif/plugin-help": "^7.0.2", + "@oclif/plugin-plugins": "^7.0.3", "@types/better-sqlite3": "^7.6.13", "@types/node": "^26.6.3", "typescript": "^6.0.3", diff --git a/packages/cli/src/utils/port-contract.ts b/packages/cli/src/utils/port-contract.ts index 62a167b1708..6beee874007 100644 --- a/packages/cli/src/utils/port-contract.ts +++ b/packages/cli/src/utils/port-contract.ts @@ -35,7 +35,7 @@ * ## ⚠️ Why the doors call this module EXPLICITLY, before spawning * * Not from an oclif flag `parse`, and not from `Flags.integer({ min, max })`. - * MEASURED against this checkout's `@oclif/core` 4.13.3 — see + * MEASURED against this checkout's `@oclif/core` 5.1.2 — see * {@link describePortSource} for the runtime probe and its numbers — a flag's * `parse` never runs over that flag's `default`, and `Flags.integer`'s * `min`/`max` never runs over one either. `serve` reads `$OS_PORT`/`$PORT` @@ -95,13 +95,13 @@ export type PortInputSource = '--port' | 'OS_PORT' | 'PORT' | 'the built-in defa * signal that separates `--port` from the environment here, because * `PORT`/`OS_PORT` never reach flag parsing at all — they are read by the * `default` expression on the flag. MEASURED against this checkout's - * `@oclif/core` (4.13.3), both in `lib/parser/parse.js` and at runtime: the + * `@oclif/core` (5.1.2), both in `lib/parser/parse.js` and at runtime: the * default branch's value function is `async () => flag.default`, and unlike * the argv and `flag.env` branches it never calls `parseFlagOrThrowError`. A * flag's own `parse` therefore cannot see a default, which is exactly why the * validation this function feeds lives at the consumer instead of on the flag. * - * ⚠️ RE-MEASURED for #12673 against the same `@oclif/core` 4.13.3, by driving + * ⚠️ RE-MEASURED for #12673 against the same `@oclif/core` 5.1.2, by driving * `Parser.parse` directly. Two results, and the second closes off the cheap * repair the issue asked about: * @@ -372,7 +372,7 @@ export function strictPortReading(raw: string): number | null { * that fails silently when a future author forgets to pass it. * * `os start` normalises before forwarding — its `--port` is a `Flags.integer` - * (parser `/^-?\d+$/` in `@oclif/core` 4.13.3), so the child receives + * (parser `/^-?\d+$/` in `@oclif/core` 5.1.2), so the child receives * `PORT=8080` for an `--port 08080`, and a spelling this notice fires on can * only reach it through the environment, under its own name. * diff --git a/packages/cli/test/published-entry-node-env-source-reroute.test.ts b/packages/cli/test/published-entry-node-env-source-reroute.test.ts index f99d5708269..88fdc609d02 100644 --- a/packages/cli/test/published-entry-node-env-source-reroute.test.ts +++ b/packages/cli/test/published-entry-node-env-source-reroute.test.ts @@ -6,7 +6,7 @@ * * ## The defect * - * `@oclif/core@4.13.3`'s `lib/config/ts-path.js` skips its TypeScript path + * `@oclif/core@5.1.2`'s `lib/config/ts-path.js` skips its TypeScript path * lookup only when `isProd()`, which `lib/util/util.js` defines as a negated * `['development', 'test'].includes(process.env.NODE_ENV ?? '')`. So an ambient * `NODE_ENV=development` — exported by a developer, or inherited by any child diff --git a/packages/cli/test/serve-mcp-capability-collision.e2e.test.ts b/packages/cli/test/serve-mcp-capability-collision.e2e.test.ts index fd9a75c0419..3314b060ed6 100644 --- a/packages/cli/test/serve-mcp-capability-collision.e2e.test.ts +++ b/packages/cli/test/serve-mcp-capability-collision.e2e.test.ts @@ -63,7 +63,7 @@ const HERE = resolve(fileURLToPath(import.meta.url), '..'); * genuinely reaches it (#11707). * * Both halves of that are load-bearing and neither works alone. @oclif/core - * 4.13.3 skips its TypeScript path lookup only when `isProd()` — + * 5.1.2 skips its TypeScript path lookup only when `isProd()` — * `!['development', 'test'].includes(process.env.NODE_ENV ?? '')` — so under a * child `NODE_ENV` of `development` or `test` it rewrites the command target * from the declared `./dist/commands` to `./src/commands` and transpiles, and diff --git a/packages/cli/test/serve-mcp-stdio-answers.e2e.test.ts b/packages/cli/test/serve-mcp-stdio-answers.e2e.test.ts index 973e1a7fe4d..cc0d3e60934 100644 --- a/packages/cli/test/serve-mcp-stdio-answers.e2e.test.ts +++ b/packages/cli/test/serve-mcp-stdio-answers.e2e.test.ts @@ -62,7 +62,7 @@ const HERE = resolve(fileURLToPath(import.meta.url), '..'); * genuinely reaches it (#11707). * * Both halves of that are load-bearing and neither works alone. @oclif/core - * 4.13.3 skips its TypeScript path lookup only when `isProd()` — + * 5.1.2 skips its TypeScript path lookup only when `isProd()` — * `!['development', 'test'].includes(process.env.NODE_ENV ?? '')` — so under a * child `NODE_ENV` of `development` or `test` it rewrites the command target * from the declared `./dist/commands` to `./src/commands` and transpiles, and diff --git a/packages/cli/test/serve-stdio-stdout-purity.e2e.test.ts b/packages/cli/test/serve-stdio-stdout-purity.e2e.test.ts index 650462c082e..68af611e933 100644 --- a/packages/cli/test/serve-stdio-stdout-purity.e2e.test.ts +++ b/packages/cli/test/serve-stdio-stdout-purity.e2e.test.ts @@ -59,7 +59,7 @@ const HERE = resolve(fileURLToPath(import.meta.url), '..'); * genuinely reaches it (#11707). * * Both halves of that are load-bearing and neither works alone. @oclif/core - * 4.13.3 skips its TypeScript path lookup only when `isProd()` — + * 5.1.2 skips its TypeScript path lookup only when `isProd()` — * `!['development', 'test'].includes(process.env.NODE_ENV ?? '')` — so under a * child `NODE_ENV` of `development` or `test` it rewrites the command target * from the declared `./dist/commands` to `./src/commands` and transpiles, and diff --git a/packages/cli/test/unbuilt-workspace-lead.test.ts b/packages/cli/test/unbuilt-workspace-lead.test.ts index 2cb8bcc351b..3022b6d711f 100644 --- a/packages/cli/test/unbuilt-workspace-lead.test.ts +++ b/packages/cli/test/unbuilt-workspace-lead.test.ts @@ -25,6 +25,12 @@ * `isInvocationError` requires both) answers `undefined` for this failure and * why it could not be the place this lands. * + * Each fixture's `module:` line names the `@oclif/core` its run loaded + * (4.13.3) and stays as recorded, because a transcript is evidence of one run. + * Nothing here reads that line — the classifier works off `message:` — and + * `@oclif/core` 5.1.2 builds the detail from the same lines in the same order, + * re-measured when the CLI moved to the 5 line. + * * ⚠️ This file pins the decision only. Whether `bin/run-dev.js` actually asks * the question and prints the answer is a different fact with its own test — * `run-dev-unbuilt-workspace.e2e.test.ts` drives the real binary, and deleting diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30ba2147a56..2957d82b79c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -590,8 +590,8 @@ importers: specifier: workspace:* version: link:../verify '@oclif/core': - specifier: ^4.13.3 - version: 4.13.3 + specifier: ^5.1.2 + version: 5.1.2 bundle-require: specifier: ^5.1.0 version: 5.1.0(esbuild@0.28.2) @@ -639,11 +639,11 @@ importers: specifier: workspace:* version: link:../plugins/plugin-dev '@oclif/plugin-help': - specifier: ^6.2.58 - version: 6.2.58 + specifier: ^7.0.2 + version: 7.0.2 '@oclif/plugin-plugins': - specifier: ^5.4.87 - version: 5.4.87 + specifier: ^7.0.3 + version: 7.0.3 '@types/better-sqlite3': specifier: ^7.6.13 version: 7.6.13 @@ -4329,17 +4329,17 @@ packages: '@nodable/entities@3.0.0': resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} - '@oclif/core@4.13.3': - resolution: {integrity: sha512-wBp2igI2KVwq2ZmpnfmGtOROo7aXZIr3OEtAS16g1wHFBqyEuswL+9K50NJWJvlpAmxd+4dVj/ycawXESU3wQQ==} - engines: {node: '>=18.0.0'} + '@oclif/core@5.1.2': + resolution: {integrity: sha512-vgbWWFKjjsf7oAbJONFPnDkVNeqmy70DTBUjsprW/HRiTrXe8sMlFc0ih8GjpU+dn+m6V2ksaZjBV9HgnsmWVg==} + engines: {node: '>=22.0.0'} - '@oclif/plugin-help@6.2.58': - resolution: {integrity: sha512-DAYMXZrTWRMLTbpX+rT+ibAmKrZ6IVNGn+fgAGjMoeNlqlSY94eJHocgmqChMwsdWp3H3x+jFmPJiYQt/ifr3Q==} - engines: {node: '>=18.0.0'} + '@oclif/plugin-help@7.0.2': + resolution: {integrity: sha512-xqYsSECa7HrO+yb20ukcRzlz86Tq6f7Ft48kp4YLka0/4X5WbehOCSLdKlV8ejdcfK5gQzC4erMNeIXxyF5aXQ==} + engines: {node: '>=22.0.0'} - '@oclif/plugin-plugins@5.4.87': - resolution: {integrity: sha512-ym2/26p7J9O5POKjHOysJLSNcpWZK5mxzY3gwFYBaSgQRsjFRBdkZ8d7NcHOuES/E4ZnoP5Q3iNu+v4uhvNTDw==} - engines: {node: '>=18.0.0'} + '@oclif/plugin-plugins@7.0.3': + resolution: {integrity: sha512-ufjwLdKbw5AC8BjguvRGRBFoSc8RGXV1TVjxMDr8smJuN8QM4yhZIvKCoSVQC24BX71pF75LrvQEWpwQJbwpQA==} + engines: {node: '>=22.0.0'} '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -6413,9 +6413,9 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} + ejs@6.0.1: + resolution: {integrity: sha512-UaaM14yby8U3k02ihS1Bmj5Kz2d7CCQM1scxpgs4Mhkq8F1wR2gl3+Ts4h5Ne4Mnt7M9m4Dw7jsuMr3+xO4vZA==} + engines: {node: '>=0.12.18'} hasBin: true emoji-regex@8.0.0: @@ -6684,9 +6684,6 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - filelist@1.0.6: - resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} - finalhandler@2.1.1: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} @@ -7108,11 +7105,6 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7160,10 +7152,6 @@ packages: is-unsafe@2.0.0: resolution: {integrity: sha512-2LdV822R+wmI86unXA93WCFpL6g+av8ynWk0nrHyJqGop5VoocYsSLFgN8jrfalT6iGeLNM4KXuVSsULP53kEA==} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - is-wsl@3.1.1: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} @@ -7194,11 +7182,6 @@ packages: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} - jake@10.9.4: - resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} - engines: {node: '>=10'} - hasBin: true - jiti@2.7.0: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true @@ -8060,8 +8043,8 @@ packages: resolution: {integrity: sha512-K1HmQeZT2HrjpsR6KgqbN2FAXL2NrJJmNUSD9ck7HGTVu1JKXox8n9SB+tjbU8m8JGLF4OscrroPepew/L7/Xw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - npm@11.19.0: - resolution: {integrity: sha512-SDd/hHg3KqHE5Ht2NHWxNYNtqCQ2pXAPLl6OtQhPyED5PHsRfrOtO199MZTIG2cQoQ1ZRI9t28shrD+2cr3AAw==} + npm@11.21.0: + resolution: {integrity: sha512-Zov8KhamNneiLdELtj5YALtNmJW4L4fCLTzjfpzXG2w6MSHcf0UxgdlK5uloCuksWT+7mGUU7wi79cO6RqivPg==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true bundledDependencies: @@ -8384,6 +8367,10 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + powershell-utils@0.1.0: + resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} + engines: {node: '>=20'} + prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -9348,6 +9335,10 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} + wsl-utils@0.4.0: + resolution: {integrity: sha512-9YmF+2sFEd+T7TkwlmE337F0IVzfDvDknhtpBQxxXzEOfgPphGlFYpyx0cTuCIFj8/p+sqwBYAeGxOMNSzPPDA==} + engines: {node: '>=20'} + xml-crypto@6.1.2: resolution: {integrity: sha512-leBOVQdVi8FvPJrMYoum7Ici9qyxfE4kVi+AkpUoYCSXaQF4IlBm1cneTK9oAxR61LpYxTx7lNcsnBIeRpGW2w==} engines: {node: '>=16'} @@ -10761,17 +10752,16 @@ snapshots: '@nodable/entities@3.0.0': {} - '@oclif/core@4.13.3': + '@oclif/core@5.1.2': dependencies: ansi-escapes: 4.3.2 ansis: 3.17.0 clean-stack: 3.0.1 cli-spinners: 2.9.2 debug: 4.4.3(supports-color@8.1.1) - ejs: 3.1.10 + ejs: 6.0.1 get-package-type: 0.1.0 indent-string: 4.0.0 - is-wsl: 2.2.0 lilconfig: 3.1.3 minimatch: 10.2.6 semver: 7.8.5 @@ -10781,17 +10771,18 @@ snapshots: widest-line: 3.1.0 wordwrap: 1.0.0 wrap-ansi: 7.0.0 + wsl-utils: 0.4.0 - '@oclif/plugin-help@6.2.58': + '@oclif/plugin-help@7.0.2': dependencies: - '@oclif/core': 4.13.3 + '@oclif/core': 5.1.2 - '@oclif/plugin-plugins@5.4.87': + '@oclif/plugin-plugins@7.0.3': dependencies: - '@oclif/core': 4.13.3 + '@oclif/core': 5.1.2 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) - npm: 11.19.0 + npm: 11.21.0 npm-package-arg: 11.0.3 npm-run-path: 5.3.0 object-treeify: 4.0.1 @@ -12728,9 +12719,7 @@ snapshots: ee-first@1.1.1: {} - ejs@3.1.10: - dependencies: - jake: 10.9.4 + ejs@6.0.1: {} emoji-regex@8.0.0: {} @@ -13099,10 +13088,6 @@ snapshots: file-uri-to-path@1.0.0: optional: true - filelist@1.0.6: - dependencies: - minimatch: 10.2.6 - finalhandler@2.1.1: dependencies: debug: 4.4.3(supports-color@8.1.1) @@ -13605,8 +13590,6 @@ snapshots: is-decimal@2.0.1: {} - is-docker@2.2.1: {} - is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -13640,10 +13623,6 @@ snapshots: is-unsafe@2.0.0: {} - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -13670,12 +13649,6 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jake@10.9.4: - dependencies: - async: 3.2.6 - filelist: 1.0.6 - picocolors: 1.1.1 - jiti@2.7.0: {} jju@1.4.0: {} @@ -14793,7 +14766,7 @@ snapshots: npm-to-yarn@3.2.0: {} - npm@11.19.0: {} + npm@11.21.0: {} object-assign@4.1.1: {} @@ -15021,6 +14994,8 @@ snapshots: dependencies: xtend: 4.0.2 + powershell-utils@0.1.0: {} + prebuild-install@7.1.3: dependencies: detect-libc: 2.1.2 @@ -16192,6 +16167,11 @@ snapshots: dependencies: is-wsl: 3.1.1 + wsl-utils@0.4.0: + dependencies: + is-wsl: 3.1.1 + powershell-utils: 0.1.0 + xml-crypto@6.1.2: dependencies: '@xmldom/is-dom-node': 1.0.1 diff --git a/scripts/check-cli-command-ids.mjs b/scripts/check-cli-command-ids.mjs index 931f6e10ccc..a7db333dfc6 100644 --- a/scripts/check-cli-command-ids.mjs +++ b/scripts/check-cli-command-ids.mjs @@ -382,7 +382,7 @@ export function binNamesOf(pkg) { * `os` invocation, whatever the user actually ran: * * (node:1922) Warning: Error - * module: @oclif/core@4.13.3 + * module: @oclif/core@5.1.2 * task: findCommand (migrate:file-column-move) * plugin: @objectstack/cli * message: command migrate:file-column-move not found diff --git a/scripts/check-cli-test-child-env.mjs b/scripts/check-cli-test-child-env.mjs index f1466509642..45c40db8077 100644 --- a/scripts/check-cli-test-child-env.mjs +++ b/scripts/check-cli-test-child-env.mjs @@ -184,8 +184,8 @@ * is a no-op with a false comment attached: `dist/` is never executed, the * suite stays green, and the comment claiming the built entry stays plausible. * - * `@oclif/core@4.13.3` skips its TypeScript path lookup only when `isProd()`, - * which its `lib/util/util.js` (line 66 as pinned -- a dependency file, outside + * `@oclif/core@5.1.2` skips its TypeScript path lookup only when `isProd()`, + * which its `lib/util/util.js` (line 65 as pinned -- a dependency file, outside * this tree) defines as a NEGATED membership test -- a leading * logical-NOT over `['development', 'test'].includes(process.env.NODE_ENV ?? '')`. * Measured directly against `Config.load()` on `packages/cli`, with @@ -1090,8 +1090,8 @@ const BUILT_ENTRYPOINT = 'bin/run.js'; /** * The `NODE_ENV` values that send `@oclif/core`'s command lookup to `src/`. * - * `@oclif/core@4.13.3` skips its TypeScript path lookup only when `isProd()`, - * which its `lib/util/util.js` (line 66 as pinned -- a dependency file, outside + * `@oclif/core@5.1.2` skips its TypeScript path lookup only when `isProd()`, + * which its `lib/util/util.js` (line 65 as pinned -- a dependency file, outside * this tree) defines as a NEGATED membership test: * `!['development', 'test'].includes(process.env.NODE_ENV ?? '')`. So these two * values -- and only these two -- turn the reroute ON. `production` and unset @@ -1597,7 +1597,7 @@ function main() { + '\n is `development` or `test` is asking @oclif/core to resolve those commands' + '\n from src/ instead and transpile them on the fly. Asking for both cancels:' + '\n dist/ is never executed, and the comment claiming the built entry stays' - + '\n plausible. Measured against @oclif/core@4.13.3\'s own Config.load(), reading' + + '\n plausible. Measured against @oclif/core@5.1.2\'s own Config.load(), reading' + '\n back the root plugin\'s resolved commandsDir:' + '\n' + '\n NODE_ENV unset -> packages/cli/dist/commands' @@ -1605,7 +1605,7 @@ function main() { + '\n NODE_ENV=development -> packages/cli/src/commands' + '\n NODE_ENV=test -> packages/cli/src/commands' + '\n' - + '\n lib/util/util.js:66 defines isProd() as a NEGATED membership test --' + + '\n lib/util/util.js:65 defines isProd() as a NEGATED membership test --' + '\n !["development","test"].includes(process.env.NODE_ENV ?? "") -- and the' + '\n TypeScript path lookup is skipped only when that is true.' + '\n'