@ethlete/cli 2.1.0-next.9 → 3.0.0-next.16

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.
Files changed (107) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +22 -7
  3. package/design/define-call.ts +8 -8
  4. package/design/web/frame.ts +11 -5
  5. package/design/web/host.css +4 -4
  6. package/design/web/host.ts +68 -68
  7. package/package.json +3 -3
  8. package/src/index.d.ts +1 -0
  9. package/src/index.js +18 -4
  10. package/src/index.js.map +1 -1
  11. package/src/lib/api/clear.js +13 -3
  12. package/src/lib/api/clear.js.map +1 -1
  13. package/src/lib/api/compose.js +5 -1
  14. package/src/lib/api/compose.js.map +1 -1
  15. package/src/lib/api/git.d.ts +11 -4
  16. package/src/lib/api/git.js +35 -8
  17. package/src/lib/api/git.js.map +1 -1
  18. package/src/lib/api/load-definitions.js +10 -1
  19. package/src/lib/api/load-definitions.js.map +1 -1
  20. package/src/lib/api/ports.js +12 -3
  21. package/src/lib/api/ports.js.map +1 -1
  22. package/src/lib/api/run.js +8 -3
  23. package/src/lib/api/run.js.map +1 -1
  24. package/src/lib/api/setup.js +1 -1
  25. package/src/lib/api/setup.js.map +1 -1
  26. package/src/lib/api/state.js +7 -5
  27. package/src/lib/api/state.js.map +1 -1
  28. package/src/lib/auth/composer-auth.js +3 -2
  29. package/src/lib/auth/composer-auth.js.map +1 -1
  30. package/src/lib/auth/gitlab-token.js +1 -1
  31. package/src/lib/auth/gitlab-token.js.map +1 -1
  32. package/src/lib/config/diagnose.js +15 -9
  33. package/src/lib/config/diagnose.js.map +1 -1
  34. package/src/lib/config/local-config.d.ts +1 -1
  35. package/src/lib/design/check.js +27 -16
  36. package/src/lib/design/check.js.map +1 -1
  37. package/src/lib/design/serve.js +5 -5
  38. package/src/lib/design/serve.js.map +1 -1
  39. package/src/lib/design/vite-paths.d.ts +7 -0
  40. package/src/lib/design/vite-paths.js +15 -0
  41. package/src/lib/design/vite-paths.js.map +1 -0
  42. package/src/lib/doctor/doctor-command.js +18 -4
  43. package/src/lib/doctor/doctor-command.js.map +1 -1
  44. package/src/lib/release.d.ts +38 -1
  45. package/src/lib/release.js +150 -43
  46. package/src/lib/release.js.map +1 -1
  47. package/src/lib/update/agent-rules-sync.d.ts +37 -0
  48. package/src/lib/update/agent-rules-sync.js +40 -0
  49. package/src/lib/update/agent-rules-sync.js.map +1 -0
  50. package/src/lib/update/agent-setup.d.ts +33 -0
  51. package/src/lib/update/agent-setup.js +124 -0
  52. package/src/lib/update/agent-setup.js.map +1 -0
  53. package/src/lib/update/ai.d.ts +37 -8
  54. package/src/lib/update/ai.js +193 -24
  55. package/src/lib/update/ai.js.map +1 -1
  56. package/src/lib/update/args.d.ts +2 -0
  57. package/src/lib/update/args.js +22 -2
  58. package/src/lib/update/args.js.map +1 -1
  59. package/src/lib/update/available-migrations.d.ts +10 -0
  60. package/src/lib/update/available-migrations.js +23 -0
  61. package/src/lib/update/available-migrations.js.map +1 -0
  62. package/src/lib/update/commits.d.ts +63 -0
  63. package/src/lib/update/commits.js +146 -0
  64. package/src/lib/update/commits.js.map +1 -0
  65. package/src/lib/update/gitignore.d.ts +8 -0
  66. package/src/lib/update/gitignore.js +22 -0
  67. package/src/lib/update/gitignore.js.map +1 -0
  68. package/src/lib/update/index.d.ts +6 -0
  69. package/src/lib/update/index.js +6 -0
  70. package/src/lib/update/index.js.map +1 -1
  71. package/src/lib/update/migration-manifest.d.ts +10 -0
  72. package/src/lib/update/migration-manifest.js +15 -3
  73. package/src/lib/update/migration-manifest.js.map +1 -1
  74. package/src/lib/update/migration-record.d.ts +24 -0
  75. package/src/lib/update/migration-record.js +48 -0
  76. package/src/lib/update/migration-record.js.map +1 -0
  77. package/src/lib/update/migrations-command.d.ts +14 -0
  78. package/src/lib/update/migrations-command.js +212 -0
  79. package/src/lib/update/migrations-command.js.map +1 -0
  80. package/src/lib/update/package-manager.d.ts +20 -1
  81. package/src/lib/update/package-manager.js +34 -15
  82. package/src/lib/update/package-manager.js.map +1 -1
  83. package/src/lib/update/packages.js +31 -9
  84. package/src/lib/update/packages.js.map +1 -1
  85. package/src/lib/update/pending.d.ts +16 -0
  86. package/src/lib/update/pending.js +21 -5
  87. package/src/lib/update/pending.js.map +1 -1
  88. package/src/lib/update/plan.d.ts +28 -2
  89. package/src/lib/update/plan.js +54 -3
  90. package/src/lib/update/plan.js.map +1 -1
  91. package/src/lib/update/registry.d.ts +32 -4
  92. package/src/lib/update/registry.js +145 -8
  93. package/src/lib/update/registry.js.map +1 -1
  94. package/src/lib/update/run-migrations.d.ts +2 -0
  95. package/src/lib/update/run-migrations.js +20 -15
  96. package/src/lib/update/run-migrations.js.map +1 -1
  97. package/src/lib/update/scan.d.ts +14 -0
  98. package/src/lib/update/scan.js +57 -0
  99. package/src/lib/update/scan.js.map +1 -0
  100. package/src/lib/update/semver.js +2 -1
  101. package/src/lib/update/semver.js.map +1 -1
  102. package/src/lib/update/tasks.d.ts +18 -1
  103. package/src/lib/update/tasks.js +114 -43
  104. package/src/lib/update/tasks.js.map +1 -1
  105. package/src/lib/update/update-command.d.ts +7 -0
  106. package/src/lib/update/update-command.js +286 -64
  107. package/src/lib/update/update-command.js.map +1 -1
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeMigrationRun = exports.readMigrationRecord = exports.migrationKey = exports.MIGRATION_RECORD_FILE = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ exports.MIGRATION_RECORD_FILE = (0, path_1.join)('.ethlete', 'migrations.json');
7
+ const migrationKey = (options) => `${options.packageName}:${options.name}`;
8
+ exports.migrationKey = migrationKey;
9
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
10
+ const isRun = (value) => isRecord(value) && typeof value['version'] === 'string' && typeof value['ranAt'] === 'string';
11
+ const readMigrationRecord = (root) => {
12
+ const path = (0, path_1.join)(root, exports.MIGRATION_RECORD_FILE);
13
+ if (!(0, fs_1.existsSync)(path))
14
+ return { record: {}, problems: [] };
15
+ let parsed;
16
+ try {
17
+ parsed = JSON.parse((0, fs_1.readFileSync)(path, 'utf8'));
18
+ }
19
+ catch (_a) {
20
+ return { record: {}, problems: [`${exports.MIGRATION_RECORD_FILE} is not valid JSON.`] };
21
+ }
22
+ if (!isRecord(parsed) || !isRecord(parsed['runs'])) {
23
+ return { record: {}, problems: [`${exports.MIGRATION_RECORD_FILE} has no "runs" object.`] };
24
+ }
25
+ const record = {};
26
+ const problems = [];
27
+ for (const [key, run] of Object.entries(parsed['runs'])) {
28
+ if (!/^@[^/:]+\/[^/:]+:.+$/.test(key))
29
+ problems.push(`${exports.MIGRATION_RECORD_FILE} has a run "${key}" with no package.`);
30
+ else if (!isRun(run))
31
+ problems.push(`${exports.MIGRATION_RECORD_FILE} run "${key}" needs a "version" and a "ranAt".`);
32
+ else
33
+ record[key] = { version: run.version, ranAt: run.ranAt };
34
+ }
35
+ return { record, problems };
36
+ };
37
+ exports.readMigrationRecord = readMigrationRecord;
38
+ /** Adds one run to the record, keeping the runs that are there. */
39
+ const writeMigrationRun = (options) => {
40
+ const { root, packageName, name, run } = options;
41
+ const path = (0, path_1.join)(root, exports.MIGRATION_RECORD_FILE);
42
+ const runs = Object.assign(Object.assign({}, (0, exports.readMigrationRecord)(root).record), { [(0, exports.migrationKey)({ packageName, name })]: run });
43
+ const sorted = Object.fromEntries(Object.entries(runs).sort(([left], [right]) => left.localeCompare(right)));
44
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(path), { recursive: true });
45
+ (0, fs_1.writeFileSync)(path, `${JSON.stringify({ runs: sorted }, null, 2)}\n`, 'utf8');
46
+ };
47
+ exports.writeMigrationRun = writeMigrationRun;
48
+ //# sourceMappingURL=migration-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-record.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/migration-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type MigrationsCommandOptions = {
2
+ /** Arguments after `migrations`, for example `['run', 'query:to-query-v3']`. */
3
+ argv: string[];
4
+ root?: string;
5
+ /** How the caller is invoked, used in the usage line. */
6
+ invocation?: string;
7
+ /** How `et update` is invoked in this repo, for the hint on a required migration. */
8
+ updateInvocation?: string;
9
+ };
10
+ /**
11
+ * Lists the recommended and optional migrations this repo has not run, or runs one of them with the commit
12
+ * and task-report flow of `et update`, and records the run in `.ethlete/migrations.json`.
13
+ */
14
+ export declare const migrationsCommand: ({ argv, root, invocation, updateInvocation, }: MigrationsCommandOptions) => 0 | 1;
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrationsCommand = void 0;
4
+ const git_1 = require("../api/git");
5
+ const args_1 = require("./args");
6
+ const available_migrations_1 = require("./available-migrations");
7
+ const commits_1 = require("./commits");
8
+ const migration_manifest_1 = require("./migration-manifest");
9
+ const migration_record_1 = require("./migration-record");
10
+ const package_manager_1 = require("./package-manager");
11
+ const packages_1 = require("./packages");
12
+ const pending_1 = require("./pending");
13
+ const run_migrations_1 = require("./run-migrations");
14
+ const scan_1 = require("./scan");
15
+ const semver_1 = require("./semver");
16
+ const tasks_1 = require("./tasks");
17
+ const update_command_1 = require("./update-command");
18
+ const usage = (invocation) => [
19
+ `Usage: ${invocation}`,
20
+ ` ${invocation} run <package>:<name> [flags]`,
21
+ '',
22
+ 'Lists the recommended and optional migrations the installed @ethlete/* versions ship and this repo',
23
+ `has not run yet, or runs one of them. Each run is recorded in ${migration_record_1.MIGRATION_RECORD_FILE}; commit it.`,
24
+ '',
25
+ 'Flags',
26
+ ' --no-commit Leave the change uncommitted. By default the run is committed by itself',
27
+ ' --force Run even when the working tree has uncommitted changes',
28
+ ].join('\n');
29
+ const parseArgs = (argv) => {
30
+ const args = { commit: true, force: false, help: false, problems: [] };
31
+ const [first, ...rest] = argv;
32
+ const positional = [];
33
+ for (const argument of first === 'run' ? rest : argv) {
34
+ if (argument === '--no-commit')
35
+ args.commit = false;
36
+ else if (argument === '--force')
37
+ args.force = true;
38
+ else if (argument === '--help' || argument === '-h')
39
+ args.help = true;
40
+ else if (argument.startsWith('-'))
41
+ args.problems.push(`Unknown flag "${argument}".`);
42
+ else
43
+ positional.push(argument);
44
+ }
45
+ if (first !== 'run') {
46
+ if (positional.length > 0)
47
+ args.problems.push(`Unknown command "${positional.join(' ')}".`);
48
+ return args;
49
+ }
50
+ if (positional.length !== 1)
51
+ args.problems.push('run needs one migration, as <package>:<name>.');
52
+ else
53
+ args.run = positional[0];
54
+ return args;
55
+ };
56
+ const scanLabel = (scan) => {
57
+ if (scan === undefined)
58
+ return '';
59
+ if ('problem' in scan)
60
+ return ` - affected files unknown (${scan.problem})`;
61
+ return ` - ${scan.files.length} affected file${scan.files.length === 1 ? '' : 's'}`;
62
+ };
63
+ const printAvailable = (options) => {
64
+ const { available, invocation, scan } = options;
65
+ console.log(`${available.length} migration${available.length === 1 ? ' is' : 's are'} available:\n`);
66
+ for (const entry of available) {
67
+ const { migration, packageName, installed } = entry;
68
+ console.log(` ${migration.level} ${(0, migration_record_1.migrationKey)({ packageName, name: migration.name })} (${migration.kind})${scanLabel(scan(entry))}`);
69
+ console.log(` ${migration.description}`);
70
+ if (migration.docs)
71
+ console.log(` Docs: ${(0, tasks_1.docsBaseUrl)(installed)}${migration.docs}`);
72
+ console.log(` Run: ${invocation} run ${(0, migration_record_1.migrationKey)({ packageName, name: migration.name })}\n`);
73
+ }
74
+ };
75
+ const list = (options) => {
76
+ const { root, invocation } = options;
77
+ const { available, problems } = (0, available_migrations_1.collectAvailableMigrations)(root);
78
+ for (const problem of problems)
79
+ console.error(` ${problem}`);
80
+ if (available.length === 0) {
81
+ console.log('No recommended or optional migration is available.');
82
+ return problems.length > 0 ? 1 : 0;
83
+ }
84
+ const manifest = (0, packages_1.readManifest)(root);
85
+ const manager = manifest && (0, package_manager_1.detectPackageManager)({ root, manifest });
86
+ const scan = ({ migration }) => {
87
+ if (!migration.scan)
88
+ return undefined;
89
+ if (!manager)
90
+ return { problem: `${(0, packages_1.manifestPath)(root)} cannot be read` };
91
+ return (0, scan_1.runScan)({ root, manager, migration });
92
+ };
93
+ printAvailable({ available, invocation, scan });
94
+ return problems.length > 0 ? 1 : 0;
95
+ };
96
+ const findAvailable = (options) => {
97
+ const { root, key, invocation, updateInvocation } = options;
98
+ const separator = key.indexOf(':');
99
+ if (separator <= 0 || separator === key.length - 1) {
100
+ return { problem: `"${key}" names no migration. Name one as <package>:<name>.` };
101
+ }
102
+ const packageName = (0, args_1.fullPackageName)(key.slice(0, separator));
103
+ const name = key.slice(separator + 1);
104
+ const fullKey = (0, migration_record_1.migrationKey)({ packageName, name });
105
+ const installed = (0, packages_1.installedVersion)(root, packageName);
106
+ if (installed === undefined)
107
+ return { problem: `${packageName} is not installed.` };
108
+ const packageMigrations = (0, migration_manifest_1.readPackageMigrations)({ root, packageName });
109
+ const migration = packageMigrations.migrations.find((candidate) => candidate.name === name);
110
+ if (!migration) {
111
+ return {
112
+ problem: `${packageName} ${installed} ships no migration "${name}". Run \`${invocation}\` to list the available ones.`,
113
+ };
114
+ }
115
+ if (migration.level === 'required') {
116
+ return { problem: `${fullKey} is required, so \`${updateInvocation}\` runs it. It cannot run on its own.` };
117
+ }
118
+ const run = (0, migration_record_1.readMigrationRecord)(root).record[fullKey];
119
+ if (run)
120
+ return { problem: `${fullKey} already ran on ${run.ranAt}, with ${packageName} ${run.version}.` };
121
+ if ((0, semver_1.compareVersions)(migration.version, installed) > 0) {
122
+ return {
123
+ problem: `${fullKey} lands in ${migration.version}, and ${packageName} is on ${installed}. Run \`${updateInvocation}\` first.`,
124
+ };
125
+ }
126
+ return { entry: { packageName, migration, manifestPath: packageMigrations.manifestPath, installed } };
127
+ };
128
+ const runOne = (options) => {
129
+ const { root, args, invocation, updateInvocation } = options;
130
+ const manifest = (0, packages_1.readManifest)(root);
131
+ if (!manifest) {
132
+ console.error(`${(0, packages_1.manifestPath)(root)} cannot be read.`);
133
+ return 1;
134
+ }
135
+ const lookup = findAvailable({ root, key: args.run, invocation, updateInvocation });
136
+ if ('problem' in lookup) {
137
+ console.error(lookup.problem);
138
+ return 1;
139
+ }
140
+ const unfinished = (0, pending_1.readPendingUpdate)(root);
141
+ if (unfinished) {
142
+ console.error(`The update started at ${unfinished.startedAt} is not finished (${pending_1.PENDING_FILE}).\n` +
143
+ `Run \`${updateInvocation} --continue\` to finish it first.`);
144
+ return 1;
145
+ }
146
+ if (!args.force && (0, git_1.hasUncommittedChanges)(root)) {
147
+ console.error('The working tree has uncommitted changes, and the migration rewrites files.\n' +
148
+ 'Commit or stash them first, or re-run with --force.');
149
+ return 1;
150
+ }
151
+ const { entry } = lookup;
152
+ const manager = (0, package_manager_1.detectPackageManager)({ root, manifest });
153
+ const commits = args.commit ? (0, commits_1.startCommits)(root) : undefined;
154
+ if (args.commit && !commits)
155
+ console.log(update_command_1.NOT_A_CHECKOUT);
156
+ const committer = commits && (0, commits_1.createStepCommitter)({ root, state: commits, save: () => undefined });
157
+ (0, update_command_1.ignoreTaskList)(root);
158
+ console.log(`\nRunning ${(0, migration_record_1.migrationKey)({ packageName: entry.packageName, name: entry.migration.name })}:\n`);
159
+ const outcomes = (0, run_migrations_1.runPendingMigrations)({
160
+ root,
161
+ manager,
162
+ pending: [entry],
163
+ dryRun: false,
164
+ afterEach: (outcome) => {
165
+ if (outcome.state !== 'failed') {
166
+ (0, migration_record_1.writeMigrationRun)({
167
+ root,
168
+ packageName: entry.packageName,
169
+ name: entry.migration.name,
170
+ run: { version: entry.installed, ranAt: new Date().toISOString() },
171
+ });
172
+ }
173
+ if (outcome.state === 'task' || outcome.state === 'unsupported') {
174
+ committer === null || committer === void 0 ? void 0 : committer.commit({
175
+ message: `chore(deps): Record the ${entry.packageName} ${entry.migration.name} migration`,
176
+ });
177
+ }
178
+ else
179
+ (0, update_command_1.commitMigration)(committer, outcome);
180
+ },
181
+ });
182
+ (0, update_command_1.printOutcomes)(outcomes, undefined);
183
+ const written = (0, tasks_1.writeUpdateTasks)({ root, updates: [], outcomes, manager, generatedAt: new Date().toISOString() });
184
+ if (written.tasks.length > 0) {
185
+ console.log(`\n ${written.tasks.length} task(s) written to ${written.reportPath}`);
186
+ console.log(` The same list for an agent: ${written.dataPath}`);
187
+ }
188
+ if (entry.migration.kind === 'assisted') {
189
+ console.log(`\n Run \`${updateInvocation} --continue --ai\` to hand the task to an agent.`);
190
+ }
191
+ return outcomes.some((outcome) => outcome.state === 'failed') ? 1 : 0;
192
+ };
193
+ /**
194
+ * Lists the recommended and optional migrations this repo has not run, or runs one of them with the commit
195
+ * and task-report flow of `et update`, and records the run in `.ethlete/migrations.json`.
196
+ */
197
+ const migrationsCommand = ({ argv, root = process.cwd(), invocation = 'et migrations', updateInvocation = 'et update', }) => {
198
+ const args = parseArgs(argv);
199
+ if (args.help) {
200
+ console.log(usage(invocation));
201
+ return 0;
202
+ }
203
+ if (args.problems.length > 0) {
204
+ console.error(`${args.problems.join('\n')}\n\n${usage(invocation)}`);
205
+ return 1;
206
+ }
207
+ if (args.run === undefined)
208
+ return list({ root, invocation });
209
+ return runOne({ root, args: Object.assign(Object.assign({}, args), { run: args.run }), invocation, updateInvocation });
210
+ };
211
+ exports.migrationsCommand = migrationsCommand;
212
+ //# sourceMappingURL=migrations-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/migrations-command.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { SpawnSyncOptions } from 'child_process';
1
2
  import { Manifest } from './packages';
2
3
  export type PackageManagerName = 'yarn' | 'pnpm' | 'bun' | 'npm';
3
4
  export type PackageManager = {
@@ -9,15 +10,33 @@ export type PackageManager = {
9
10
  };
10
11
  /**
11
12
  * The package manager this repo uses: what `packageManager` declares, else the lockfile that is there,
12
- * else npm. `et update` runs the install itself, so it has to be the same one the repo already uses.
13
+ * else the one running this command, else npm. `et update` runs the install itself, so it has to be
14
+ * the same one the repo already uses.
13
15
  */
14
16
  export declare const detectPackageManager: (options: {
15
17
  root: string;
16
18
  manifest?: Manifest;
17
19
  env?: NodeJS.ProcessEnv;
18
20
  }) => PackageManager;
21
+ /**
22
+ * The environment for the install `et update` spawns. Inside a package manager script, yarn 1 exports
23
+ * its own default registry as `npm_config_registry`, which the child install would read over the
24
+ * repo's `.npmrc` and `.yarnrc`. Dropping it lets the child read the repo's config, as it does when
25
+ * `et` runs outside a script.
26
+ */
27
+ export declare const installEnv: (env?: NodeJS.ProcessEnv) => NodeJS.ProcessEnv;
19
28
  /** The command that runs an `nx` from this repo, for example `yarn nx generate …`. */
20
29
  export declare const nxCommand: (options: {
21
30
  manager: PackageManager;
22
31
  args: readonly string[];
23
32
  }) => string[];
33
+ /**
34
+ * Runs a package manager command such as `yarn install`. On Windows the managers are `.cmd` shims,
35
+ * which Node spawns only through a shell (CVE-2024-27980), so the command runs as one quoted line there.
36
+ */
37
+ export declare const spawnPackageManager: (options: {
38
+ binary: string;
39
+ args: readonly string[];
40
+ spawn: SpawnSyncOptions;
41
+ platform?: NodeJS.Platform;
42
+ }) => import("child_process").SpawnSyncReturns<string | NonSharedBuffer>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nxCommand = exports.detectPackageManager = void 0;
3
+ exports.spawnPackageManager = exports.nxCommand = exports.installEnv = exports.detectPackageManager = void 0;
4
+ const child_process_1 = require("child_process");
4
5
  const fs_1 = require("fs");
5
6
  const path_1 = require("path");
6
7
  const MANAGERS = {
@@ -16,27 +17,32 @@ const LOCKFILES = [
16
17
  ['bun.lock', 'bun'],
17
18
  ['package-lock.json', 'npm'],
18
19
  ];
19
- const declaredName = (manifest, userAgent) => {
20
- var _a;
21
- const declared = (_a = manifest === null || manifest === void 0 ? void 0 : manifest.packageManager) !== null && _a !== void 0 ? _a : userAgent;
22
- return declared
23
- ? Object.keys(MANAGERS).find((name) => declared.startsWith(name))
24
- : undefined;
25
- };
20
+ const managerNamed = (declared) => declared ? Object.keys(MANAGERS).find((name) => declared.startsWith(name)) : undefined;
26
21
  /**
27
22
  * The package manager this repo uses: what `packageManager` declares, else the lockfile that is there,
28
- * else npm. `et update` runs the install itself, so it has to be the same one the repo already uses.
23
+ * else the one running this command, else npm. `et update` runs the install itself, so it has to be
24
+ * the same one the repo already uses.
29
25
  */
30
26
  const detectPackageManager = (options) => {
31
- var _a;
27
+ var _a, _b, _c, _d;
32
28
  const { root, manifest, env = process.env } = options;
33
- const declared = declaredName(manifest, env['npm_config_user_agent']);
34
- if (declared)
35
- return MANAGERS[declared];
36
- const found = LOCKFILES.find(([fileName]) => (0, fs_1.existsSync)((0, path_1.join)(root, fileName)));
37
- return MANAGERS[(_a = found === null || found === void 0 ? void 0 : found[1]) !== null && _a !== void 0 ? _a : 'npm'];
29
+ const found = (_a = LOCKFILES.find(([fileName]) => (0, fs_1.existsSync)((0, path_1.join)(root, fileName)))) === null || _a === void 0 ? void 0 : _a[1];
30
+ return MANAGERS[(_d = (_c = (_b = managerNamed(manifest === null || manifest === void 0 ? void 0 : manifest.packageManager)) !== null && _b !== void 0 ? _b : found) !== null && _c !== void 0 ? _c : managerNamed(env['npm_config_user_agent'])) !== null && _d !== void 0 ? _d : 'npm'];
38
31
  };
39
32
  exports.detectPackageManager = detectPackageManager;
33
+ const INJECTED_REGISTRY = /^npm_config_(@[^:]+:)?registry$/i;
34
+ /**
35
+ * The environment for the install `et update` spawns. Inside a package manager script, yarn 1 exports
36
+ * its own default registry as `npm_config_registry`, which the child install would read over the
37
+ * repo's `.npmrc` and `.yarnrc`. Dropping it lets the child read the repo's config, as it does when
38
+ * `et` runs outside a script.
39
+ */
40
+ const installEnv = (env = process.env) => {
41
+ if (env['npm_lifecycle_event'] === undefined)
42
+ return env;
43
+ return Object.fromEntries(Object.entries(env).filter(([key]) => !INJECTED_REGISTRY.test(key)));
44
+ };
45
+ exports.installEnv = installEnv;
40
46
  /** The command that runs an `nx` from this repo, for example `yarn nx generate …`. */
41
47
  const nxCommand = (options) => [
42
48
  ...options.manager.run,
@@ -44,4 +50,17 @@ const nxCommand = (options) => [
44
50
  ...options.args,
45
51
  ];
46
52
  exports.nxCommand = nxCommand;
53
+ const CMD_SAFE_ARGUMENT = /^[\w@:/\\.=,+-]+$/;
54
+ const cmdQuoted = (argument) => CMD_SAFE_ARGUMENT.test(argument) ? argument : `"${argument.replace(/"/g, '""')}"`;
55
+ /**
56
+ * Runs a package manager command such as `yarn install`. On Windows the managers are `.cmd` shims,
57
+ * which Node spawns only through a shell (CVE-2024-27980), so the command runs as one quoted line there.
58
+ */
59
+ const spawnPackageManager = (options) => {
60
+ const { binary, args, spawn, platform = process.platform } = options;
61
+ if (platform !== 'win32')
62
+ return (0, child_process_1.spawnSync)(binary, args, spawn);
63
+ return (0, child_process_1.spawnSync)([binary, ...args].map(cmdQuoted).join(' '), Object.assign(Object.assign({}, spawn), { shell: true }));
64
+ };
65
+ exports.spawnPackageManager = spawnPackageManager;
47
66
  //# sourceMappingURL=package-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/package-manager.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAa5B,MAAM,QAAQ,GAA+C;IAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE;IACnE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAC3E,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE;IAChE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;CAChE,CAAC;AAEF,MAAM,SAAS,GAAmC;IAChD,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,UAAU,EAAE,KAAK,CAAC;IACnB,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,QAA8B,EAAE,SAA6B,EAAE,EAAE;;IACrF,MAAM,QAAQ,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,mCAAI,SAAS,CAAC;IAEvD,OAAO,QAAQ;QACb,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAA0B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAAC,OAIpC,EAAkB,EAAE;;IACnB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEtE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,QAAQ,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,mCAAI,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B;AAEF,sFAAsF;AAC/E,MAAM,SAAS,GAAG,CAAC,OAA6D,EAAE,EAAE,CAAC;IAC1F,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IACtB,IAAI;IACJ,GAAG,OAAO,CAAC,IAAI;CAChB,CAAC;AAJW,QAAA,SAAS,aAIpB"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/package-manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rangeFor = exports.writeRanges = exports.declaredEthletePackages = exports.newestDeclaredVersion = exports.installedVersion = exports.findManifests = exports.readManifest = exports.manifestPath = exports.DEPENDENCY_FIELDS = exports.ROOT_MANIFEST = exports.ETHLETE_SCOPE = void 0;
4
+ const child_process_1 = require("child_process");
4
5
  const fs_1 = require("fs");
5
6
  const path_1 = require("path");
6
7
  const semver_1 = require("./semver");
@@ -24,11 +25,36 @@ const readManifest = (root, relativePath = exports.ROOT_MANIFEST) => {
24
25
  return isRecord(parsed) ? parsed : undefined;
25
26
  };
26
27
  exports.readManifest = readManifest;
28
+ const sortRootFirst = (paths) => paths.sort((left, right) => {
29
+ if (left === exports.ROOT_MANIFEST)
30
+ return -1;
31
+ if (right === exports.ROOT_MANIFEST)
32
+ return 1;
33
+ return left.localeCompare(right);
34
+ });
35
+ /** The manifests git tracks or would track, or `undefined` when the root is not a git checkout. */
36
+ const trackedManifests = (root) => {
37
+ var _a;
38
+ const result = (0, child_process_1.spawnSync)('git', ['ls-files', '--cached', '--others', '--exclude-standard', '--', `*${exports.ROOT_MANIFEST}`], { cwd: root, encoding: 'utf8' });
39
+ if (result.error || result.status !== 0)
40
+ return undefined;
41
+ const paths = [...new Set(((_a = result.stdout) !== null && _a !== void 0 ? _a : '').split('\n').filter((line) => line.length > 0))];
42
+ return paths.filter((path) => {
43
+ const parts = path.split('/');
44
+ const directories = parts.slice(0, -1);
45
+ return (parts[parts.length - 1] === exports.ROOT_MANIFEST &&
46
+ !directories.some((part) => part.startsWith('.') || SKIPPED_DIRECTORIES.has(part)) &&
47
+ (0, fs_1.existsSync)((0, path_1.join)(root, path)));
48
+ });
49
+ };
27
50
  /**
28
51
  * Every `package.json` in the repo, root first. An Nx repo keeps a manifest per buildable library, and
29
52
  * those pin `@ethlete/*` too, so an update that only rewrites the root leaves the rest behind.
30
53
  */
31
54
  const findManifests = (root) => {
55
+ const tracked = trackedManifests(root);
56
+ if (tracked && tracked.length > 0)
57
+ return sortRootFirst(tracked);
32
58
  const found = [];
33
59
  const walk = (directory) => {
34
60
  let entries;
@@ -51,13 +77,7 @@ const findManifests = (root) => {
51
77
  }
52
78
  };
53
79
  walk(root);
54
- return found.sort((left, right) => {
55
- if (left === exports.ROOT_MANIFEST)
56
- return -1;
57
- if (right === exports.ROOT_MANIFEST)
58
- return 1;
59
- return left.localeCompare(right);
60
- });
80
+ return sortRootFirst(found);
61
81
  };
62
82
  exports.findManifests = findManifests;
63
83
  /** The version of `packageName` in `node_modules`, which is the one the running code came from. */
@@ -127,8 +147,10 @@ const writeRanges = (options) => {
127
147
  field[write.name] = write.range;
128
148
  }
129
149
  const indent = detectIndent(source);
130
- const trailingNewline = source.endsWith('\n') ? '\n' : '';
131
- (0, fs_1.writeFileSync)(path, `${JSON.stringify(parsed, null, indent)}${trailingNewline}`, 'utf8');
150
+ const newline = source.includes('\r\n') ? '\r\n' : '\n';
151
+ const trailingNewline = source.endsWith('\n') ? newline : '';
152
+ const serialized = JSON.stringify(parsed, null, indent).replace(/\n/g, newline);
153
+ (0, fs_1.writeFileSync)(path, `${serialized}${trailingNewline}`, 'utf8');
132
154
  written.push(relativePath);
133
155
  }
134
156
  return written;
@@ -1 +1 @@
1
- {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/packages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packages.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/packages.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { CommitState } from './commits';
1
2
  export declare const PENDING_FILE: string;
2
3
  export type PendingPackage = {
3
4
  name: string;
@@ -5,9 +6,19 @@ export type PendingPackage = {
5
6
  from: string | null;
6
7
  to: string;
7
8
  };
9
+ /** A codemod that already applied, so `--continue` does not run it a second time. */
10
+ export type FinishedMigration = {
11
+ packageName: string;
12
+ name: string;
13
+ };
8
14
  export type PendingUpdate = {
9
15
  startedAt: string;
10
16
  packages: PendingPackage[];
17
+ finished?: FinishedMigration[];
18
+ /** The `--from` versions of the run, so `--continue` migrates from the same place. */
19
+ from?: Record<string, string>;
20
+ /** Absent when the run commits nothing: `--no-commit`, or no git checkout. */
21
+ commits?: CommitState;
11
22
  };
12
23
  /**
13
24
  * Records what an update moved, before the install replaces the versions the migrations run from. An
@@ -18,4 +29,9 @@ export declare const writePendingUpdate: (options: {
18
29
  pending: PendingUpdate;
19
30
  }) => void;
20
31
  export declare const readPendingUpdate: (root: string) => PendingUpdate | undefined;
32
+ export declare const isFinished: (options: {
33
+ finished: readonly FinishedMigration[];
34
+ packageName: string;
35
+ name: string;
36
+ }) => boolean;
21
37
  export declare const clearPendingUpdate: (root: string) => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearPendingUpdate = exports.readPendingUpdate = exports.writePendingUpdate = exports.PENDING_FILE = void 0;
3
+ exports.clearPendingUpdate = exports.isFinished = exports.readPendingUpdate = exports.writePendingUpdate = exports.PENDING_FILE = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
6
  const tasks_1 = require("./tasks");
@@ -16,6 +16,18 @@ const writePendingUpdate = (options) => {
16
16
  (0, fs_1.writeFileSync)((0, path_1.join)(root, exports.PENDING_FILE), `${JSON.stringify(pending, null, 2)}\n`, 'utf8');
17
17
  };
18
18
  exports.writePendingUpdate = writePendingUpdate;
19
+ const readStringRecord = (value) => isRecord(value)
20
+ ? Object.fromEntries(Object.entries(value).filter((entry) => typeof entry[1] === 'string'))
21
+ : undefined;
22
+ const readCommits = (value) => {
23
+ if (!isRecord(value))
24
+ return undefined;
25
+ const baseline = readStringRecord(value['baseline']);
26
+ const snapshot = readStringRecord(value['snapshot']);
27
+ if (!baseline || !snapshot)
28
+ return undefined;
29
+ return { baseline, snapshot, bumped: value['bumped'] === true };
30
+ };
19
31
  const readPendingUpdate = (root) => {
20
32
  const path = (0, path_1.join)(root, exports.PENDING_FILE);
21
33
  if (!(0, fs_1.existsSync)(path))
@@ -30,12 +42,16 @@ const readPendingUpdate = (root) => {
30
42
  if (!isRecord(parsed) || !Array.isArray(parsed['packages']))
31
43
  return undefined;
32
44
  const packages = parsed['packages'].filter((entry) => isRecord(entry) && typeof entry['name'] === 'string' && typeof entry['to'] === 'string');
33
- return {
34
- startedAt: typeof parsed['startedAt'] === 'string' ? parsed['startedAt'] : 'an earlier run',
35
- packages: packages.map((entry) => { var _a; return ({ name: entry.name, from: (_a = entry.from) !== null && _a !== void 0 ? _a : null, to: entry.to }); }),
36
- };
45
+ const finished = Array.isArray(parsed['finished'])
46
+ ? parsed['finished'].filter((entry) => isRecord(entry) && typeof entry['packageName'] === 'string' && typeof entry['name'] === 'string')
47
+ : [];
48
+ const from = readStringRecord(parsed['from']);
49
+ const commits = readCommits(parsed['commits']);
50
+ return Object.assign(Object.assign({ startedAt: typeof parsed['startedAt'] === 'string' ? parsed['startedAt'] : 'an earlier run', packages: packages.map((entry) => { var _a; return ({ name: entry.name, from: (_a = entry.from) !== null && _a !== void 0 ? _a : null, to: entry.to }); }), finished: finished.map((entry) => ({ packageName: entry.packageName, name: entry.name })) }, (from ? { from } : {})), (commits ? { commits } : {}));
37
51
  };
38
52
  exports.readPendingUpdate = readPendingUpdate;
53
+ const isFinished = (options) => options.finished.some((entry) => entry.packageName === options.packageName && entry.name === options.name);
54
+ exports.isFinished = isFinished;
39
55
  const clearPendingUpdate = (root) => (0, fs_1.rmSync)((0, path_1.join)(root, exports.PENDING_FILE), { force: true });
40
56
  exports.clearPendingUpdate = clearPendingUpdate;
41
57
  //# sourceMappingURL=pending.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/pending.ts"],"names":[],"mappings":";;;AAAA,2BAAgF;AAChF,+BAA4B;AAC5B,mCAAqC;AAExB,QAAA,YAAY,GAAG,IAAA,WAAI,EAAC,kBAAU,EAAE,cAAc,CAAC,CAAC;AAc7D,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,OAAiD,EAAE,EAAE;IACtF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAElC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,kBAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,oBAAY,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3F,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAA6B,EAAE;IAC3E,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,oBAAY,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAExC,IAAI,MAAe,CAAC;IAEpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9E,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CACxC,CAAC,KAAK,EAA2B,EAAE,CACjC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAC1F,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB;QAC3F,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAA,KAAK,CAAC,IAAI,mCAAI,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA,EAAA,CAAC;KAClG,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,iBAAiB,qBAwB5B;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,oBAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAAzF,QAAA,kBAAkB,sBAAuE"}
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/pending.ts"],"names":[],"mappings":"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"}