@ethlete/cli 2.1.0-next.12 → 2.1.0-next.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +9 -2
- package/package.json +1 -1
- package/src/lib/config/local-config.d.ts +1 -1
- package/src/lib/update/agent-setup.d.ts +33 -0
- package/src/lib/update/agent-setup.js +124 -0
- package/src/lib/update/agent-setup.js.map +1 -0
- package/src/lib/update/ai.d.ts +5 -2
- package/src/lib/update/ai.js +12 -5
- package/src/lib/update/ai.js.map +1 -1
- package/src/lib/update/args.d.ts +2 -0
- package/src/lib/update/args.js +14 -1
- package/src/lib/update/args.js.map +1 -1
- package/src/lib/update/commits.d.ts +63 -0
- package/src/lib/update/commits.js +146 -0
- package/src/lib/update/commits.js.map +1 -0
- package/src/lib/update/gitignore.d.ts +6 -0
- package/src/lib/update/gitignore.js +8 -4
- package/src/lib/update/gitignore.js.map +1 -1
- package/src/lib/update/index.d.ts +1 -0
- package/src/lib/update/index.js +1 -0
- package/src/lib/update/index.js.map +1 -1
- package/src/lib/update/pending.d.ts +3 -0
- package/src/lib/update/pending.js +15 -4
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/registry.d.ts +4 -0
- package/src/lib/update/registry.js +10 -1
- package/src/lib/update/registry.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +1 -0
- package/src/lib/update/run-migrations.js +17 -11
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/update-command.js +117 -24
- package/src/lib/update/update-command.js.map +1 -1
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ignoreUpdateDir = exports.UPDATE_IGNORE_ENTRY = void 0;
|
|
3
|
+
exports.ignoreUpdateDir = exports.ignoreEntry = exports.UPDATE_IGNORE_ENTRY = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const git_1 = require("../api/git");
|
|
7
7
|
exports.UPDATE_IGNORE_ENTRY = '.ethlete/update/';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/** Appends `entry` to `.gitignore` unless git ignores `probe` already. True when it wrote the line. */
|
|
9
|
+
const ignoreEntry = (options) => {
|
|
10
|
+
const { root, entry, probe = entry } = options;
|
|
11
|
+
if ((0, git_1.ignoredByGit)(root, probe) !== false)
|
|
10
12
|
return false;
|
|
11
13
|
const path = (0, path_1.join)(root, '.gitignore');
|
|
12
14
|
const current = (0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf8') : '';
|
|
13
15
|
const separator = current.length === 0 || current.endsWith('\n') ? '' : '\n';
|
|
14
|
-
(0, fs_1.writeFileSync)(path, `${current}${separator}${
|
|
16
|
+
(0, fs_1.writeFileSync)(path, `${current}${separator}${entry}\n`, 'utf8');
|
|
15
17
|
return true;
|
|
16
18
|
};
|
|
19
|
+
exports.ignoreEntry = ignoreEntry;
|
|
20
|
+
const ignoreUpdateDir = (root) => (0, exports.ignoreEntry)({ root, entry: exports.UPDATE_IGNORE_ENTRY, probe: `${exports.UPDATE_IGNORE_ENTRY}pending.json` });
|
|
17
21
|
exports.ignoreUpdateDir = ignoreUpdateDir;
|
|
18
22
|
//# sourceMappingURL=gitignore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/gitignore.ts"],"names":[],"mappings":";;;AAAA,2BAA6D;AAC7D,+BAA4B;AAC5B,oCAA0C;AAE7B,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/gitignore.ts"],"names":[],"mappings":";;;AAAA,2BAA6D;AAC7D,+BAA4B;AAC5B,oCAA0C;AAE7B,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD,uGAAuG;AAChG,MAAM,WAAW,GAAG,CAAC,OAAwD,EAAE,EAAE;IACtF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAE/C,IAAI,IAAA,kBAAY,EAAC,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAEtD,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,IAAA,kBAAa,EAAC,IAAI,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,IAAI,EAAE,MAAM,CAAC,CAAC;IAEhE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAZW,QAAA,WAAW,eAYtB;AAEK,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9C,IAAA,mBAAW,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,2BAAmB,EAAE,KAAK,EAAE,GAAG,2BAAmB,cAAc,EAAE,CAAC,CAAC;AADpF,QAAA,eAAe,mBACqE"}
|
package/src/lib/update/index.js
CHANGED
|
@@ -4,6 +4,7 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./agent-rules-sync"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./ai"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./args"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./commits"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./migration-manifest"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./package-manager"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./packages"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,+CAAqB;AACrB,iDAAuB;AACvB,+DAAqC;AACrC,4DAAkC;AAClC,qDAA2B;AAC3B,oDAA0B;AAC1B,iDAAuB;AACvB,qDAA2B;AAC3B,2DAAiC;AACjC,mDAAyB;AACzB,kDAAwB;AACxB,2DAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,+CAAqB;AACrB,iDAAuB;AACvB,oDAA0B;AAC1B,+DAAqC;AACrC,4DAAkC;AAClC,qDAA2B;AAC3B,oDAA0B;AAC1B,iDAAuB;AACvB,qDAA2B;AAC3B,2DAAiC;AACjC,mDAAyB;AACzB,kDAAwB;AACxB,2DAAiC"}
|
|
@@ -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;
|
|
@@ -16,6 +17,8 @@ export type PendingUpdate = {
|
|
|
16
17
|
finished?: FinishedMigration[];
|
|
17
18
|
/** The `--from` versions of the run, so `--continue` migrates from the same place. */
|
|
18
19
|
from?: Record<string, string>;
|
|
20
|
+
/** Absent when the run commits nothing: `--no-commit`, or no git checkout. */
|
|
21
|
+
commits?: CommitState;
|
|
19
22
|
};
|
|
20
23
|
/**
|
|
21
24
|
* Records what an update moved, before the install replaces the versions the migrations run from. An
|
|
@@ -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))
|
|
@@ -33,10 +45,9 @@ const readPendingUpdate = (root) => {
|
|
|
33
45
|
const finished = Array.isArray(parsed['finished'])
|
|
34
46
|
? parsed['finished'].filter((entry) => isRecord(entry) && typeof entry['packageName'] === 'string' && typeof entry['name'] === 'string')
|
|
35
47
|
: [];
|
|
36
|
-
const from =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return 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 } : {}));
|
|
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 } : {}));
|
|
40
51
|
};
|
|
41
52
|
exports.readPendingUpdate = readPendingUpdate;
|
|
42
53
|
const isFinished = (options) => options.finished.some((entry) => entry.packageName === options.packageName && entry.name === options.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/pending.ts"],"names":[],"mappings":";;;AAAA,2BAAgF;AAChF,+BAA4B;
|
|
1
|
+
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,10 @@ export declare const fetchRegistryPackage: (options: {
|
|
|
47
47
|
* Which dist tag an update follows when the caller names none: the one the installed prerelease belongs
|
|
48
48
|
* to, so a repo on `-next.46` stays on `next` instead of being pulled back to the stable line.
|
|
49
49
|
*/
|
|
50
|
+
/**
|
|
51
|
+
* The dist tag an update follows: for a prerelease, the tag holding the newest version of the same prerelease
|
|
52
|
+
* line, which is not always the tag named after it.
|
|
53
|
+
*/
|
|
50
54
|
export declare const tagForInstalled: (options: {
|
|
51
55
|
version?: string;
|
|
52
56
|
distTags: Record<string, string>;
|
|
@@ -160,10 +160,19 @@ exports.fetchRegistryPackage = fetchRegistryPackage;
|
|
|
160
160
|
* Which dist tag an update follows when the caller names none: the one the installed prerelease belongs
|
|
161
161
|
* to, so a repo on `-next.46` stays on `next` instead of being pulled back to the stable line.
|
|
162
162
|
*/
|
|
163
|
+
/**
|
|
164
|
+
* The dist tag an update follows: for a prerelease, the tag holding the newest version of the same prerelease
|
|
165
|
+
* line, which is not always the tag named after it.
|
|
166
|
+
*/
|
|
163
167
|
const tagForInstalled = (options) => {
|
|
164
168
|
const { version, distTags } = options;
|
|
165
169
|
const tag = version ? (0, semver_1.prereleaseTag)(version) : undefined;
|
|
166
|
-
|
|
170
|
+
if (tag === undefined || distTags[tag] === undefined)
|
|
171
|
+
return 'latest';
|
|
172
|
+
// changesets publishes a package with only prereleases to `latest`, and leaves the `next` tag behind.
|
|
173
|
+
return Object.entries(distTags)
|
|
174
|
+
.filter(([, tagged]) => (0, semver_1.prereleaseTag)(tagged) === tag)
|
|
175
|
+
.reduce((newest, [name, tagged]) => { var _a; return ((0, semver_1.compareVersions)(tagged, (_a = distTags[newest]) !== null && _a !== void 0 ? _a : tagged) > 0 ? name : newest); }, tag);
|
|
167
176
|
};
|
|
168
177
|
exports.tagForInstalled = tagForInstalled;
|
|
169
178
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/registry.ts"],"names":[],"mappings":";;;;AAAA,2BAA8C;AAC9C,2BAA6B;AAC7B,+BAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,20 +52,26 @@ exports.runInstall = runInstall;
|
|
|
52
52
|
/** The command a developer runs by hand when this repo has no Nx to run the generator with. */
|
|
53
53
|
const manualGeneratorCommand = (options) => (0, package_manager_1.nxCommand)({ manager: options.manager, args: (0, exports.generatorArgs)({ migration: options.migration, dryRun: false }) }).join(' ');
|
|
54
54
|
exports.manualGeneratorCommand = manualGeneratorCommand;
|
|
55
|
+
const runOne = (options) => {
|
|
56
|
+
const { root, manager, entry, dryRun, nxAvailable } = options;
|
|
57
|
+
if (entry.migration.kind !== 'auto')
|
|
58
|
+
return { pending: entry, state: 'task' };
|
|
59
|
+
if (!nxAvailable) {
|
|
60
|
+
return {
|
|
61
|
+
pending: entry,
|
|
62
|
+
state: 'unsupported',
|
|
63
|
+
reason: 'this repo has no Nx, so the generator has to be run by hand',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return (0, exports.runAutoMigration)({ root, manager, pending: entry, dryRun });
|
|
67
|
+
};
|
|
55
68
|
const runPendingMigrations = (options) => {
|
|
56
|
-
const { root, manager, pending, dryRun } = options;
|
|
69
|
+
const { root, manager, pending, dryRun, afterEach } = options;
|
|
57
70
|
const nxAvailable = (0, exports.hasNx)(root);
|
|
58
71
|
return pending.map((entry) => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return {
|
|
63
|
-
pending: entry,
|
|
64
|
-
state: 'unsupported',
|
|
65
|
-
reason: 'this repo has no Nx, so the generator has to be run by hand',
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
return (0, exports.runAutoMigration)({ root, manager, pending: entry, dryRun });
|
|
72
|
+
const outcome = runOne({ root, manager, entry, dryRun, nxAvailable });
|
|
73
|
+
afterEach === null || afterEach === void 0 ? void 0 : afterEach(outcome);
|
|
74
|
+
return outcome;
|
|
69
75
|
});
|
|
70
76
|
};
|
|
71
77
|
exports.runPendingMigrations = runPendingMigrations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-migrations.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/run-migrations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run-migrations.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/run-migrations.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAE5B,uDAA+F;AAY/F,0FAA0F;AACnF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AADvF,QAAA,KAAK,SACkF;AAEpG,2GAA2G;AACpG,MAAM,aAAa,GAAG,CAAC,OAAkD,EAAE,EAAE;;IAClF,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEtC,OAAO;QACL,UAAU;QACV,MAAA,SAAS,CAAC,SAAS,mCAAI,EAAE;QACzB,qBAAqB;QACrB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAA,SAAS,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAKhC,EAAoB,EAAE;IACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAA,2BAAS,EAAC;QAClC,OAAO;QACP,IAAI,EAAE,IAAA,qBAAa,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;KAC9D,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IAE9G,MAAM,MAAM,GAAG,IAAA,qCAAmB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAE7F,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAEpF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAE/G,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC5D,CAAC,CAAC;AArBW,QAAA,gBAAgB,oBAqB3B;AAEK,MAAM,UAAU,GAAG,CAAC,OAA2E,EAAE,EAAE;IACxG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAE7E,MAAM,MAAM,GAAG,IAAA,qCAAmB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAA,4BAAU,EAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnH,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAErE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAEnH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC,CAAC;AAbW,QAAA,UAAU,cAarB;AAEF,+FAA+F;AACxF,MAAM,sBAAsB,GAAG,CAAC,OAA0D,EAAE,EAAE,CACnG,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAA,qBAAa,EAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAChH,GAAG,CACJ,CAAC;AAHS,QAAA,sBAAsB,0BAG/B;AAEJ,MAAM,MAAM,GAAG,CAAC,OAMf,EAAoB,EAAE;IACrB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE9D,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAE9E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,6DAA6D;SACtE,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,wBAAgB,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAMpC,EAAsB,EAAE;IACvB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAEtE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,OAAO,CAAC,CAAC;QAErB,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B"}
|
|
@@ -5,8 +5,10 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const git_1 = require("../api/git");
|
|
6
6
|
const local_config_1 = require("../config/local-config");
|
|
7
7
|
const ai_1 = require("./ai");
|
|
8
|
+
const agent_setup_1 = require("./agent-setup");
|
|
8
9
|
const agent_rules_sync_1 = require("./agent-rules-sync");
|
|
9
10
|
const args_1 = require("./args");
|
|
11
|
+
const commits_1 = require("./commits");
|
|
10
12
|
const gitignore_1 = require("./gitignore");
|
|
11
13
|
const migration_manifest_1 = require("./migration-manifest");
|
|
12
14
|
const package_manager_1 = require("./package-manager");
|
|
@@ -37,6 +39,7 @@ const usage = (invocation) => [
|
|
|
37
39
|
' --no-install Write package.json, then stop. Install yourself and re-run with --continue',
|
|
38
40
|
' --continue Run the migrations of an update that was written but never finished',
|
|
39
41
|
' --ai Hand every open agent-assisted task to the command in updateAgentCommand',
|
|
42
|
+
' --no-commit Leave every change uncommitted. By default each step is committed by itself',
|
|
40
43
|
' --force Update even when the working tree has uncommitted changes',
|
|
41
44
|
].join('\n');
|
|
42
45
|
const padded = (value, width) => value.padEnd(width);
|
|
@@ -115,43 +118,105 @@ const printOutcomes = (outcomes, syncFailure) => {
|
|
|
115
118
|
if (syncFailure)
|
|
116
119
|
console.error(` - ${syncFailure.command}: ${syncFailure.reason}`);
|
|
117
120
|
};
|
|
121
|
+
const SYNC_MESSAGE = 'chore(deps): Sync the ethlete agent rules';
|
|
122
|
+
const migrationMessage = (options) => `chore(deps): Apply the ${options.packageName} ${options.name} migration`;
|
|
123
|
+
const NOT_A_CHECKOUT = '\n This is not a git checkout, so nothing is committed.';
|
|
124
|
+
const committerFor = (root, state) => state &&
|
|
125
|
+
(0, commits_1.createStepCommitter)({
|
|
126
|
+
root,
|
|
127
|
+
state,
|
|
128
|
+
save: (commits) => {
|
|
129
|
+
const saved = (0, pending_1.readPendingUpdate)(root);
|
|
130
|
+
if (saved)
|
|
131
|
+
(0, pending_1.writePendingUpdate)({ root, pending: Object.assign(Object.assign({}, saved), { commits }) });
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
const commitBump = (options) => {
|
|
135
|
+
const { committer, updates } = options;
|
|
136
|
+
if (!committer || committer.state.bumped)
|
|
137
|
+
return;
|
|
138
|
+
committer.commit({
|
|
139
|
+
message: 'chore(deps): Update the ethlete SDK',
|
|
140
|
+
body: updates.map((update) => { var _a; return `${update.name} ${(_a = update.from) !== null && _a !== void 0 ? _a : 'not installed'} → ${update.to}`; }).join('\n'),
|
|
141
|
+
});
|
|
142
|
+
committer.markBumped();
|
|
143
|
+
};
|
|
144
|
+
const commitMigration = (committer, outcome) => {
|
|
145
|
+
if (outcome.state === 'applied')
|
|
146
|
+
committer === null || committer === void 0 ? void 0 : committer.commit({
|
|
147
|
+
message: migrationMessage({ packageName: outcome.pending.packageName, name: outcome.pending.migration.name }),
|
|
148
|
+
});
|
|
149
|
+
else if (outcome.state === 'failed')
|
|
150
|
+
committer === null || committer === void 0 ? void 0 : committer.skip();
|
|
151
|
+
};
|
|
118
152
|
const syncAgentRules = (options) => {
|
|
119
153
|
const { root, manager, updates, dryRun } = options;
|
|
120
154
|
const plan = (0, agent_rules_sync_1.planAgentRulesSync)({ root, manager, updates });
|
|
121
155
|
if (plan.state === 'not-updated')
|
|
122
|
-
return
|
|
156
|
+
return { synced: false };
|
|
123
157
|
const command = plan.command.join(' ');
|
|
124
158
|
if (plan.state === 'no-config') {
|
|
125
159
|
console.log(`\n ${agent_rules_sync_1.AGENT_RULES_PACKAGE} moved, but this repo has no config for it. Run \`${command}\` where it has one.`);
|
|
126
|
-
return
|
|
160
|
+
return { synced: false };
|
|
127
161
|
}
|
|
128
162
|
if (dryRun) {
|
|
129
163
|
console.log(`\n ${agent_rules_sync_1.AGENT_RULES_PACKAGE} moved: a real run regenerates the agent rules with \`${command}\`.`);
|
|
130
|
-
return
|
|
164
|
+
return { synced: false };
|
|
131
165
|
}
|
|
132
166
|
console.log(`\n ${agent_rules_sync_1.AGENT_RULES_PACKAGE} moved, so the agent rules and skills are regenerated.\n\n ${command}\n`);
|
|
133
167
|
const outcome = (0, agent_rules_sync_1.runAgentRulesSync)(plan, root);
|
|
134
168
|
if (outcome.state !== 'failed')
|
|
135
|
-
return
|
|
169
|
+
return { synced: true };
|
|
136
170
|
console.error(` The agent rules sync failed: ${outcome.reason}`);
|
|
137
|
-
return { command, reason: outcome.reason };
|
|
171
|
+
return { synced: false, failure: { command, reason: outcome.reason } };
|
|
138
172
|
};
|
|
139
173
|
/** Hands the open assisted tasks to the agent and reports the runs. False when one of them failed. */
|
|
140
174
|
const handToAgent = (options) => {
|
|
141
|
-
const { root, template, tasks } = options;
|
|
175
|
+
const { root, template, tasks, committer } = options;
|
|
142
176
|
if ((0, ai_1.assistedTasks)(tasks).length === 0) {
|
|
143
177
|
console.log('\n --ai had nothing to do: no open task is agent-assisted.');
|
|
144
178
|
return true;
|
|
145
179
|
}
|
|
146
|
-
const runs = (0, ai_1.runAgentTasks)({ root,
|
|
180
|
+
const runs = (0, ai_1.runAgentTasks)(Object.assign({ root,
|
|
181
|
+
template,
|
|
182
|
+
tasks }, (committer && {
|
|
183
|
+
afterRun: (run) => {
|
|
184
|
+
if (run.state === 'done')
|
|
185
|
+
committer.commit({ message: migrationMessage(run.task) });
|
|
186
|
+
else
|
|
187
|
+
committer.skip();
|
|
188
|
+
},
|
|
189
|
+
})));
|
|
147
190
|
const count = (state) => runs.filter((run) => run.state === state).length;
|
|
148
191
|
console.log(`\n ${count('done')} agent task(s) done, ${count('open')} still open, ${count('failed')} failed`);
|
|
149
192
|
return count('failed') === 0;
|
|
150
193
|
};
|
|
151
194
|
const agentFailedHint = (invocation) => `\nAn agent run failed. Run \`${invocation} --ai\` again to hand it the tasks that are still open.`;
|
|
195
|
+
const CLI_PACKAGE = '@ethlete/cli';
|
|
196
|
+
/**
|
|
197
|
+
* Runs the migration phase in the `et` the install just put in place. The running process is the old one, and
|
|
198
|
+
* it lacks every step a newer CLI added to the phase.
|
|
199
|
+
*/
|
|
200
|
+
const continueWithInstalledCli = (options) => {
|
|
201
|
+
var _a;
|
|
202
|
+
const { root, manager, ai, commit } = options;
|
|
203
|
+
const [binary, ...args] = [
|
|
204
|
+
...manager.run,
|
|
205
|
+
'et',
|
|
206
|
+
'update',
|
|
207
|
+
'--continue',
|
|
208
|
+
...(ai ? ['--ai'] : []),
|
|
209
|
+
...(commit ? [] : ['--no-commit']),
|
|
210
|
+
];
|
|
211
|
+
if (binary === undefined)
|
|
212
|
+
return 1;
|
|
213
|
+
console.log(`\n ${CLI_PACKAGE} moved, so the new version runs the migrations.\n\n ${[binary, ...args].join(' ')}\n`);
|
|
214
|
+
const result = (0, package_manager_1.spawnPackageManager)({ binary, args, spawn: { cwd: root, stdio: 'inherit' } });
|
|
215
|
+
return result.error ? 1 : ((_a = result.status) !== null && _a !== void 0 ? _a : 1);
|
|
216
|
+
};
|
|
152
217
|
const runMigrationPhase = (options) => {
|
|
153
218
|
var _a;
|
|
154
|
-
const { root, manager, pendingUpdate, updates, from, dryRun, agent } = options;
|
|
219
|
+
const { root, manager, pendingUpdate, updates, from, dryRun, agent, committer } = options;
|
|
155
220
|
const finished = (_a = pendingUpdate.finished) !== null && _a !== void 0 ? _a : [];
|
|
156
221
|
const collected = collectMigrations({ root, updates, from });
|
|
157
222
|
const skipped = collected.pending.filter((entry) => (0, pending_1.isFinished)({ finished, packageName: entry.packageName, name: entry.migration.name }));
|
|
@@ -163,7 +228,12 @@ const runMigrationPhase = (options) => {
|
|
|
163
228
|
for (const problem of collected.problems)
|
|
164
229
|
console.error(` ${problem}`);
|
|
165
230
|
// Before the tasks and any --ai run: the tasks assume the skills of the version that was installed.
|
|
166
|
-
const
|
|
231
|
+
const sync = syncAgentRules({ root, manager, updates, dryRun });
|
|
232
|
+
const syncFailure = sync.failure;
|
|
233
|
+
if (sync.synced)
|
|
234
|
+
committer === null || committer === void 0 ? void 0 : committer.commit({ message: SYNC_MESSAGE });
|
|
235
|
+
else if (syncFailure)
|
|
236
|
+
committer === null || committer === void 0 ? void 0 : committer.skip();
|
|
167
237
|
const nothingPending = collected.pending.length === 0;
|
|
168
238
|
if (nothingPending)
|
|
169
239
|
console.log('\nNo migration is pending for those versions.');
|
|
@@ -174,14 +244,23 @@ const runMigrationPhase = (options) => {
|
|
|
174
244
|
console.log('\n This repo has no Nx, so every codemod is reported as a command to run by hand.');
|
|
175
245
|
}
|
|
176
246
|
}
|
|
177
|
-
const outcomes = (0, run_migrations_1.runPendingMigrations)({
|
|
247
|
+
const outcomes = (0, run_migrations_1.runPendingMigrations)({
|
|
248
|
+
root,
|
|
249
|
+
manager,
|
|
250
|
+
pending: collected.pending,
|
|
251
|
+
dryRun,
|
|
252
|
+
afterEach: (outcome) => commitMigration(committer, outcome),
|
|
253
|
+
});
|
|
178
254
|
if (!nothingPending)
|
|
179
255
|
printOutcomes(outcomes, syncFailure);
|
|
180
256
|
if (!dryRun) {
|
|
181
257
|
const applied = outcomes
|
|
182
258
|
.filter((outcome) => outcome.state === 'applied')
|
|
183
259
|
.map((outcome) => ({ packageName: outcome.pending.packageName, name: outcome.pending.migration.name }));
|
|
184
|
-
(0, pending_1.writePendingUpdate)({
|
|
260
|
+
(0, pending_1.writePendingUpdate)({
|
|
261
|
+
root,
|
|
262
|
+
pending: Object.assign(Object.assign(Object.assign({}, pendingUpdate), (committer && { commits: committer.state })), { finished: [...finished, ...applied] }),
|
|
263
|
+
});
|
|
185
264
|
}
|
|
186
265
|
if (dryRun) {
|
|
187
266
|
if (!nothingPending)
|
|
@@ -203,7 +282,7 @@ const runMigrationPhase = (options) => {
|
|
|
203
282
|
console.log(`\n ${written.tasks.length} task(s) written to ${written.reportPath}`);
|
|
204
283
|
console.log(` The same list for an agent: ${written.dataPath}`);
|
|
205
284
|
}
|
|
206
|
-
const agentOk = agent === undefined || handToAgent({ root, template: agent, tasks: written.tasks });
|
|
285
|
+
const agentOk = agent === undefined || handToAgent({ root, template: agent, tasks: written.tasks, committer });
|
|
207
286
|
return {
|
|
208
287
|
agentFailed: !agentOk,
|
|
209
288
|
failed: outcomes.some((outcome) => outcome.state === 'failed') ||
|
|
@@ -219,13 +298,16 @@ const ignoreTaskList = (root) => {
|
|
|
219
298
|
const continueHint = (invocation) => `\nRun \`${invocation} --continue\` again once the failures above are fixed.`;
|
|
220
299
|
/** Hands the tasks an earlier run left to the agent, for an `--ai` run that has no update to make. */
|
|
221
300
|
const workOpenTasks = (options) => {
|
|
222
|
-
const { root, agent, invocation } = options;
|
|
301
|
+
const { root, agent, invocation, commit } = options;
|
|
223
302
|
const tasks = (0, tasks_1.refreshUpdateTasks)(root);
|
|
224
303
|
if (tasks === undefined) {
|
|
225
304
|
console.log(`\n --ai had nothing to do: ${tasks_1.UPDATE_DIR} holds no task list.`);
|
|
226
305
|
return 0;
|
|
227
306
|
}
|
|
228
|
-
|
|
307
|
+
const commits = commit ? (0, commits_1.startCommits)(root) : undefined;
|
|
308
|
+
if (commit && !commits)
|
|
309
|
+
console.log(NOT_A_CHECKOUT);
|
|
310
|
+
if (handToAgent({ root, template: agent, tasks, committer: committerFor(root, commits) }))
|
|
229
311
|
return 0;
|
|
230
312
|
console.error(agentFailedHint(invocation));
|
|
231
313
|
return 1;
|
|
@@ -241,7 +323,7 @@ const resume = (options) => {
|
|
|
241
323
|
const pending = (0, pending_1.readPendingUpdate)(root);
|
|
242
324
|
if (!pending && agent !== undefined && !argv.dryRun) {
|
|
243
325
|
console.log(`No update to continue: handing the open tasks in ${tasks_1.UPDATE_DIR} to the agent.`);
|
|
244
|
-
return workOpenTasks({ root, agent, invocation });
|
|
326
|
+
return workOpenTasks({ root, agent, invocation, commit: argv.commit });
|
|
245
327
|
}
|
|
246
328
|
if (!pending) {
|
|
247
329
|
console.error(`Nothing to continue: ${pending_1.PENDING_FILE} is not there.`);
|
|
@@ -259,6 +341,8 @@ const resume = (options) => {
|
|
|
259
341
|
});
|
|
260
342
|
});
|
|
261
343
|
printUpdates(updates);
|
|
344
|
+
const committer = argv.commit && !argv.dryRun ? committerFor(root, pending.commits) : undefined;
|
|
345
|
+
commitBump({ committer, updates });
|
|
262
346
|
const result = runMigrationPhase({
|
|
263
347
|
root,
|
|
264
348
|
manager,
|
|
@@ -267,6 +351,7 @@ const resume = (options) => {
|
|
|
267
351
|
from: Object.assign(Object.assign({}, pending.from), argv.from),
|
|
268
352
|
dryRun: argv.dryRun,
|
|
269
353
|
agent,
|
|
354
|
+
committer,
|
|
270
355
|
});
|
|
271
356
|
if (argv.dryRun)
|
|
272
357
|
return result.failed ? 1 : 0;
|
|
@@ -282,7 +367,7 @@ const resume = (options) => {
|
|
|
282
367
|
* ship. Everything the codemods cannot decide is written to a task list under `.ethlete/update`.
|
|
283
368
|
*/
|
|
284
369
|
const updateCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ argv, root = process.cwd(), invocation = 'et update', }) {
|
|
285
|
-
var _b;
|
|
370
|
+
var _b, _c;
|
|
286
371
|
const args = (0, args_1.parseUpdateArgs)(argv);
|
|
287
372
|
if (args.help) {
|
|
288
373
|
console.log(usage(invocation));
|
|
@@ -292,12 +377,11 @@ const updateCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
|
|
|
292
377
|
console.error(`${args.problems.join('\n')}\n\n${usage(invocation)}`);
|
|
293
378
|
return 1;
|
|
294
379
|
}
|
|
295
|
-
const agent = args.ai
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
380
|
+
const agent = args.ai
|
|
381
|
+
? ((_b = (0, local_config_1.readLocalConfig)(root).config.updateAgentCommand) !== null && _b !== void 0 ? _b : (yield (0, agent_setup_1.setUpAgentCommand)({ root })))
|
|
382
|
+
: undefined;
|
|
383
|
+
if (args.ai && !agent)
|
|
299
384
|
return 1;
|
|
300
|
-
}
|
|
301
385
|
const manifest = (0, packages_1.readManifest)(root);
|
|
302
386
|
if (!manifest) {
|
|
303
387
|
console.error(`${(0, packages_1.manifestPath)(root)} cannot be read, so there is nothing to update.`);
|
|
@@ -336,7 +420,7 @@ const updateCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
|
|
|
336
420
|
if (args.check || args.dryRun)
|
|
337
421
|
return 0;
|
|
338
422
|
if (agent !== undefined)
|
|
339
|
-
return workOpenTasks({ root, agent, invocation });
|
|
423
|
+
return workOpenTasks({ root, agent, invocation, commit: args.commit });
|
|
340
424
|
(0, tasks_1.refreshUpdateTasks)(root);
|
|
341
425
|
return 0;
|
|
342
426
|
}
|
|
@@ -370,12 +454,15 @@ const updateCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
|
|
|
370
454
|
'Commit or stash them first, or re-run with --force.');
|
|
371
455
|
return 1;
|
|
372
456
|
}
|
|
457
|
+
const commits = args.commit ? (0, commits_1.startCommits)(root) : undefined;
|
|
458
|
+
if (args.commit && !commits)
|
|
459
|
+
console.log(NOT_A_CHECKOUT);
|
|
373
460
|
ignoreTaskList(root);
|
|
374
461
|
const changedManifests = (0, packages_1.writeRanges)({ root, writes: writable.flatMap((update) => update.writes) });
|
|
375
|
-
const pendingUpdate = Object.assign({ startedAt: new Date().toISOString(), packages: writable.map((update) => { var _a; return ({ name: update.name, from: (_a = update.from) !== null && _a !== void 0 ? _a : null, to: update.to }); }) }, (Object.keys(args.from).length > 0 ? { from: args.from } : {}));
|
|
462
|
+
const pendingUpdate = Object.assign(Object.assign({ startedAt: new Date().toISOString(), packages: writable.map((update) => { var _a; return ({ name: update.name, from: (_a = update.from) !== null && _a !== void 0 ? _a : null, to: update.to }); }) }, (Object.keys(args.from).length > 0 ? { from: args.from } : {})), (commits && { commits }));
|
|
376
463
|
(0, pending_1.writePendingUpdate)({ root, pending: pendingUpdate });
|
|
377
464
|
const manifestNote = changedManifests.length === 1
|
|
378
|
-
? ((
|
|
465
|
+
? ((_c = changedManifests[0]) !== null && _c !== void 0 ? _c : packages_1.ROOT_MANIFEST)
|
|
379
466
|
: `${changedManifests.length} package.json files`;
|
|
380
467
|
console.log(`\n ${manifestNote} updated. The migration plan is in ${pending_1.PENDING_FILE}.`);
|
|
381
468
|
if (!args.install) {
|
|
@@ -389,6 +476,11 @@ const updateCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
|
|
|
389
476
|
`Fix it, then run \`${invocation} --continue\` to run the migrations.`);
|
|
390
477
|
return 1;
|
|
391
478
|
}
|
|
479
|
+
const committer = committerFor(root, commits);
|
|
480
|
+
commitBump({ committer, updates: writable });
|
|
481
|
+
if (writable.some((update) => update.name === CLI_PACKAGE && update.from !== update.to)) {
|
|
482
|
+
return continueWithInstalledCli({ root, manager, ai: args.ai, commit: args.commit });
|
|
483
|
+
}
|
|
392
484
|
const result = runMigrationPhase({
|
|
393
485
|
root,
|
|
394
486
|
manager,
|
|
@@ -397,6 +489,7 @@ const updateCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
|
|
|
397
489
|
from: args.from,
|
|
398
490
|
dryRun: false,
|
|
399
491
|
agent,
|
|
492
|
+
committer,
|
|
400
493
|
});
|
|
401
494
|
if (result.failed) {
|
|
402
495
|
console.error(continueHint(invocation));
|