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

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 (117) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/README.md +30 -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/definition.js +6 -2
  16. package/src/lib/api/definition.js.map +1 -1
  17. package/src/lib/api/git.d.ts +11 -4
  18. package/src/lib/api/git.js +35 -8
  19. package/src/lib/api/git.js.map +1 -1
  20. package/src/lib/api/help.js +18 -4
  21. package/src/lib/api/help.js.map +1 -1
  22. package/src/lib/api/index.d.ts +1 -0
  23. package/src/lib/api/index.js +1 -0
  24. package/src/lib/api/index.js.map +1 -1
  25. package/src/lib/api/load-definitions.js +10 -1
  26. package/src/lib/api/load-definitions.js.map +1 -1
  27. package/src/lib/api/ports.js +12 -3
  28. package/src/lib/api/ports.js.map +1 -1
  29. package/src/lib/api/run.js +81 -7
  30. package/src/lib/api/run.js.map +1 -1
  31. package/src/lib/api/seeds.d.ts +55 -0
  32. package/src/lib/api/seeds.js +215 -0
  33. package/src/lib/api/seeds.js.map +1 -0
  34. package/src/lib/api/setup.js +1 -1
  35. package/src/lib/api/setup.js.map +1 -1
  36. package/src/lib/api/state.js +7 -5
  37. package/src/lib/api/state.js.map +1 -1
  38. package/src/lib/auth/composer-auth.js +3 -2
  39. package/src/lib/auth/composer-auth.js.map +1 -1
  40. package/src/lib/auth/gitlab-token.js +1 -1
  41. package/src/lib/auth/gitlab-token.js.map +1 -1
  42. package/src/lib/config/diagnose.js +15 -9
  43. package/src/lib/config/diagnose.js.map +1 -1
  44. package/src/lib/config/local-config.d.ts +1 -1
  45. package/src/lib/design/check.js +27 -16
  46. package/src/lib/design/check.js.map +1 -1
  47. package/src/lib/design/serve.js +5 -5
  48. package/src/lib/design/serve.js.map +1 -1
  49. package/src/lib/design/vite-paths.d.ts +7 -0
  50. package/src/lib/design/vite-paths.js +15 -0
  51. package/src/lib/design/vite-paths.js.map +1 -0
  52. package/src/lib/doctor/doctor-command.js +18 -4
  53. package/src/lib/doctor/doctor-command.js.map +1 -1
  54. package/src/lib/release.d.ts +38 -1
  55. package/src/lib/release.js +150 -43
  56. package/src/lib/release.js.map +1 -1
  57. package/src/lib/update/agent-rules-sync.d.ts +37 -0
  58. package/src/lib/update/agent-rules-sync.js +40 -0
  59. package/src/lib/update/agent-rules-sync.js.map +1 -0
  60. package/src/lib/update/agent-setup.d.ts +33 -0
  61. package/src/lib/update/agent-setup.js +124 -0
  62. package/src/lib/update/agent-setup.js.map +1 -0
  63. package/src/lib/update/ai.d.ts +37 -8
  64. package/src/lib/update/ai.js +193 -24
  65. package/src/lib/update/ai.js.map +1 -1
  66. package/src/lib/update/args.d.ts +2 -0
  67. package/src/lib/update/args.js +22 -2
  68. package/src/lib/update/args.js.map +1 -1
  69. package/src/lib/update/available-migrations.d.ts +10 -0
  70. package/src/lib/update/available-migrations.js +23 -0
  71. package/src/lib/update/available-migrations.js.map +1 -0
  72. package/src/lib/update/commits.d.ts +63 -0
  73. package/src/lib/update/commits.js +146 -0
  74. package/src/lib/update/commits.js.map +1 -0
  75. package/src/lib/update/gitignore.d.ts +8 -0
  76. package/src/lib/update/gitignore.js +22 -0
  77. package/src/lib/update/gitignore.js.map +1 -0
  78. package/src/lib/update/index.d.ts +6 -0
  79. package/src/lib/update/index.js +6 -0
  80. package/src/lib/update/index.js.map +1 -1
  81. package/src/lib/update/migration-manifest.d.ts +10 -0
  82. package/src/lib/update/migration-manifest.js +15 -3
  83. package/src/lib/update/migration-manifest.js.map +1 -1
  84. package/src/lib/update/migration-record.d.ts +24 -0
  85. package/src/lib/update/migration-record.js +48 -0
  86. package/src/lib/update/migration-record.js.map +1 -0
  87. package/src/lib/update/migrations-command.d.ts +14 -0
  88. package/src/lib/update/migrations-command.js +212 -0
  89. package/src/lib/update/migrations-command.js.map +1 -0
  90. package/src/lib/update/package-manager.d.ts +20 -1
  91. package/src/lib/update/package-manager.js +34 -15
  92. package/src/lib/update/package-manager.js.map +1 -1
  93. package/src/lib/update/packages.js +31 -9
  94. package/src/lib/update/packages.js.map +1 -1
  95. package/src/lib/update/pending.d.ts +16 -0
  96. package/src/lib/update/pending.js +21 -5
  97. package/src/lib/update/pending.js.map +1 -1
  98. package/src/lib/update/plan.d.ts +28 -2
  99. package/src/lib/update/plan.js +54 -3
  100. package/src/lib/update/plan.js.map +1 -1
  101. package/src/lib/update/registry.d.ts +32 -4
  102. package/src/lib/update/registry.js +145 -8
  103. package/src/lib/update/registry.js.map +1 -1
  104. package/src/lib/update/run-migrations.d.ts +2 -0
  105. package/src/lib/update/run-migrations.js +20 -15
  106. package/src/lib/update/run-migrations.js.map +1 -1
  107. package/src/lib/update/scan.d.ts +14 -0
  108. package/src/lib/update/scan.js +57 -0
  109. package/src/lib/update/scan.js.map +1 -0
  110. package/src/lib/update/semver.js +2 -1
  111. package/src/lib/update/semver.js.map +1 -1
  112. package/src/lib/update/tasks.d.ts +18 -1
  113. package/src/lib/update/tasks.js +114 -43
  114. package/src/lib/update/tasks.js.map +1 -1
  115. package/src/lib/update/update-command.d.ts +7 -0
  116. package/src/lib/update/update-command.js +286 -64
  117. package/src/lib/update/update-command.js.map +1 -1
@@ -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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"}
@@ -1,5 +1,6 @@
1
1
  import { DeclaredPackage, DeclaredSite, RangeWrite } from './packages';
2
2
  import { Migration, PackageMigrations } from './migration-manifest';
3
+ import { MigrationRecord } from './migration-record';
3
4
  import { RegistryPackage } from './registry';
4
5
  export type UpdatedPackage = {
5
6
  name: string;
@@ -34,6 +35,18 @@ export declare const chooseTarget: (options: {
34
35
  registry: RegistryPackage;
35
36
  request?: TargetRequest;
36
37
  }) => TargetChoice;
38
+ export type NewerMajor = {
39
+ name: string;
40
+ tag: string;
41
+ version: string;
42
+ };
43
+ export declare const newerMajorOnTag: (options: {
44
+ name: string;
45
+ version: string;
46
+ distTags: Record<string, string>;
47
+ }) => NewerMajor | undefined;
48
+ export declare const MIGRATING_FROM_V4_URL = "https://ethlete-sdk-docs-next.web.app/migrating-from-v4";
49
+ export declare const newerMajorLine: (newer: NewerMajor) => string;
37
50
  export declare const isDowngrade: (update: PackageUpdate) => boolean;
38
51
  export type PendingMigration = {
39
52
  packageName: string;
@@ -41,11 +54,24 @@ export type PendingMigration = {
41
54
  /** Where the instructions of this migration live, when it names any. */
42
55
  manifestPath?: string;
43
56
  };
44
- /** The migrations of one package that an update from `from` to `to` crosses. */
57
+ /** The required migrations of one package that an update from `from` to `to` crosses. */
45
58
  export declare const pendingMigrations: (options: {
46
59
  packageMigrations: PackageMigrations;
47
60
  from: string;
48
61
  to: string;
49
62
  }) => PendingMigration[];
63
+ /**
64
+ * The recommended and optional migrations of one package that the installed version has reached and the
65
+ * record holds no run of.
66
+ */
67
+ export declare const availableMigrations: (options: {
68
+ packageMigrations: PackageMigrations;
69
+ installed: string;
70
+ record: MigrationRecord;
71
+ }) => PendingMigration[];
72
+ /** The sentence that points at the migrations `et update` did not run, or `undefined` when there are none. */
73
+ export declare const availableMigrationsLine: (available: readonly PendingMigration[]) => string | undefined;
50
74
  /** Oldest version first, and inside one version the package that others build on first. */
51
- export declare const orderMigrations: (pending: readonly PendingMigration[]) => PendingMigration[];
75
+ export declare const orderMigrations: <T extends PendingMigration>(pending: readonly T[]) => T[];
76
+ /** Recommended before optional, and inside one level in the order `et update` runs migrations. */
77
+ export declare const orderAvailableMigrations: <T extends PendingMigration>(available: readonly T[]) => T[];
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.orderMigrations = exports.pendingMigrations = exports.isDowngrade = exports.chooseTarget = void 0;
3
+ exports.orderAvailableMigrations = exports.orderMigrations = exports.availableMigrationsLine = exports.availableMigrations = exports.pendingMigrations = exports.isDowngrade = exports.newerMajorLine = exports.MIGRATING_FROM_V4_URL = exports.newerMajorOnTag = exports.chooseTarget = void 0;
4
4
  const packages_1 = require("./packages");
5
+ const migration_record_1 = require("./migration-record");
5
6
  const registry_1 = require("./registry");
6
7
  const semver_1 = require("./semver");
8
+ const tasks_1 = require("./tasks");
7
9
  /**
8
10
  * The order two migrations of the same version run in, following the dependency layering: a rewrite in
9
11
  * `core` lands before the `components` one that builds on it.
@@ -72,10 +74,22 @@ const chooseTarget = (options) => {
72
74
  };
73
75
  };
74
76
  exports.chooseTarget = chooseTarget;
77
+ const majorOf = (version) => { var _a; return Number.parseInt((_a = version.split('.')[0]) !== null && _a !== void 0 ? _a : '', 10) || 0; };
78
+ const newerMajorOnTag = (options) => {
79
+ const { name, version, distTags } = options;
80
+ const major = majorOf(version);
81
+ return Object.entries(distTags)
82
+ .filter(([, tagged]) => (0, semver_1.isValidVersion)(tagged) && majorOf(tagged) > major)
83
+ .reduce((newest, [tag, tagged]) => newest === undefined || (0, semver_1.compareVersions)(tagged, newest.version) > 0 ? { name, tag, version: tagged } : newest, undefined);
84
+ };
85
+ exports.newerMajorOnTag = newerMajorOnTag;
86
+ exports.MIGRATING_FROM_V4_URL = `${tasks_1.NEXT_DOCS_BASE_URL}/migrating-from-v4`;
87
+ const newerMajorLine = (newer) => `${newer.name}: a newer major is on "${newer.tag}": ${newer.version} - run et update --tag ${newer.tag}. ` +
88
+ `The order of the move is in ${exports.MIGRATING_FROM_V4_URL}`;
89
+ exports.newerMajorLine = newerMajorLine;
75
90
  const isDowngrade = (update) => update.from !== undefined && !(0, semver_1.isNewer)(update.to, update.from);
76
91
  exports.isDowngrade = isDowngrade;
77
- /** The migrations of one package that an update from `from` to `to` crosses. */
78
- const pendingMigrations = (options) => {
92
+ const migrationsInRange = (options) => {
79
93
  const { packageMigrations, from, to } = options;
80
94
  return packageMigrations.migrations
81
95
  .filter((migration) => (0, semver_1.isInUpdateRange)({ version: migration.version, after: from, upTo: to }))
@@ -85,7 +99,38 @@ const pendingMigrations = (options) => {
85
99
  manifestPath: packageMigrations.manifestPath,
86
100
  }));
87
101
  };
102
+ /** The required migrations of one package that an update from `from` to `to` crosses. */
103
+ const pendingMigrations = (options) => migrationsInRange(options).filter((entry) => entry.migration.level === 'required');
88
104
  exports.pendingMigrations = pendingMigrations;
105
+ /**
106
+ * The recommended and optional migrations of one package that the installed version has reached and the
107
+ * record holds no run of.
108
+ */
109
+ const availableMigrations = (options) => {
110
+ const { packageMigrations, installed, record } = options;
111
+ const { packageName, manifestPath } = packageMigrations;
112
+ return packageMigrations.migrations
113
+ .filter((migration) => migration.level !== 'required' &&
114
+ (0, semver_1.compareVersions)(migration.version, installed) <= 0 &&
115
+ record[(0, migration_record_1.migrationKey)({ packageName, name: migration.name })] === undefined)
116
+ .map((migration) => ({ packageName, migration, manifestPath }));
117
+ };
118
+ exports.availableMigrations = availableMigrations;
119
+ /** The sentence that points at the migrations `et update` did not run, or `undefined` when there are none. */
120
+ const availableMigrationsLine = (available) => {
121
+ const count = (level) => available.filter((entry) => entry.migration.level === level).length;
122
+ const parts = [
123
+ { count: count('recommended'), label: 'recommended' },
124
+ { count: count('optional'), label: 'optional' },
125
+ ]
126
+ .filter((part) => part.count > 0)
127
+ .map((part) => `${part.count} ${part.label}`);
128
+ if (parts.length === 0)
129
+ return undefined;
130
+ const total = available.length;
131
+ return `${parts.join(' and ')} migration${total === 1 ? ' is' : 's are'} available - run et migrations`;
132
+ };
133
+ exports.availableMigrationsLine = availableMigrationsLine;
89
134
  const packageRank = (name) => {
90
135
  const index = PACKAGE_ORDER.indexOf(name);
91
136
  return index === -1 ? PACKAGE_ORDER.length : index;
@@ -98,4 +143,10 @@ const orderMigrations = (pending) => [...pending].sort((left, right) => {
98
143
  return packageRank(left.packageName) - packageRank(right.packageName);
99
144
  });
100
145
  exports.orderMigrations = orderMigrations;
146
+ /** Recommended before optional, and inside one level in the order `et update` runs migrations. */
147
+ const orderAvailableMigrations = (available) => [
148
+ ...(0, exports.orderMigrations)(available.filter((entry) => entry.migration.level === 'recommended')),
149
+ ...(0, exports.orderMigrations)(available.filter((entry) => entry.migration.level !== 'recommended')),
150
+ ];
151
+ exports.orderAvailableMigrations = orderAvailableMigrations;
101
152
  //# sourceMappingURL=plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/plan.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { PackageManagerName } from './package-manager';
1
2
  export declare const DEFAULT_REGISTRY = "https://registry.npmjs.org";
2
3
  export type RegistryPackage = {
3
4
  distTags: Record<string, string>;
@@ -10,8 +11,31 @@ export type RegistryLookup = {
10
11
  ok: false;
11
12
  reason: string;
12
13
  };
13
- /** The registry npm would use, so a run inside a repo with its own registry reads the same one. */
14
- export declare const registryUrl: (env?: NodeJS.ProcessEnv) => string;
14
+ /**
15
+ * The registry the repo's package manager installs `@ethlete/*` from: the repo's `.npmrc`, `.yarnrc` or
16
+ * `.yarnrc.yml` first, since yarn 1 exports its default registry to scripts even when an `.npmrc` sets
17
+ * another one, then the environment, then the public registry.
18
+ */
19
+ export declare const registryUrl: (options?: {
20
+ root?: string;
21
+ manager?: PackageManagerName;
22
+ env?: NodeJS.ProcessEnv;
23
+ home?: string;
24
+ }) => string;
25
+ /**
26
+ * The `Authorization` header npm would send to `registry`, from the `//host/path/:_authToken` or
27
+ * `:_auth` entries of the repo's and the user's `.npmrc`, with `${VAR}` expanded. The longest matching
28
+ * path wins.
29
+ */
30
+ export declare const registryAuthorization: (options: RegistryAuthorizationOptions) => string | undefined;
31
+ /** The `.npmrc` the token for a registry was read from, or `undefined` when neither holds one. */
32
+ export declare const registryAuthorizationSource: (options: RegistryAuthorizationOptions) => string | undefined;
33
+ type RegistryAuthorizationOptions = {
34
+ registry: string;
35
+ root?: string;
36
+ env?: NodeJS.ProcessEnv;
37
+ home?: string;
38
+ };
15
39
  export declare const packageUrl: (options: {
16
40
  registry: string;
17
41
  packageName: string;
@@ -20,12 +44,16 @@ export declare const packageUrl: (options: {
20
44
  export declare const fetchRegistryPackage: (options: {
21
45
  packageName: string;
22
46
  registry?: string;
47
+ authorization?: string;
48
+ /** Where `authorization` was read from, named in the reason of a 401 or 403. */
49
+ authorizationSource?: string;
23
50
  }) => Promise<RegistryLookup>;
24
51
  /**
25
- * Which dist tag an update follows when the caller names none: the one the installed prerelease belongs
26
- * to, so a repo on `-next.46` stays on `next` instead of being pulled back to the stable line.
52
+ * The dist tag an update follows: for a prerelease, the tag holding the newest version of the same prerelease
53
+ * line, which is not always the tag named after it.
27
54
  */
28
55
  export declare const tagForInstalled: (options: {
29
56
  version?: string;
30
57
  distTags: Record<string, string>;
31
58
  }) => string;
59
+ export {};