@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.
- package/CHANGELOG.md +84 -0
- package/README.md +30 -7
- package/design/define-call.ts +8 -8
- package/design/web/frame.ts +11 -5
- package/design/web/host.css +4 -4
- package/design/web/host.ts +68 -68
- package/package.json +3 -3
- package/src/index.d.ts +1 -0
- package/src/index.js +18 -4
- package/src/index.js.map +1 -1
- package/src/lib/api/clear.js +13 -3
- package/src/lib/api/clear.js.map +1 -1
- package/src/lib/api/compose.js +5 -1
- package/src/lib/api/compose.js.map +1 -1
- package/src/lib/api/definition.js +6 -2
- package/src/lib/api/definition.js.map +1 -1
- package/src/lib/api/git.d.ts +11 -4
- package/src/lib/api/git.js +35 -8
- package/src/lib/api/git.js.map +1 -1
- package/src/lib/api/help.js +18 -4
- package/src/lib/api/help.js.map +1 -1
- package/src/lib/api/index.d.ts +1 -0
- package/src/lib/api/index.js +1 -0
- package/src/lib/api/index.js.map +1 -1
- package/src/lib/api/load-definitions.js +10 -1
- package/src/lib/api/load-definitions.js.map +1 -1
- package/src/lib/api/ports.js +12 -3
- package/src/lib/api/ports.js.map +1 -1
- package/src/lib/api/run.js +81 -7
- package/src/lib/api/run.js.map +1 -1
- package/src/lib/api/seeds.d.ts +55 -0
- package/src/lib/api/seeds.js +215 -0
- package/src/lib/api/seeds.js.map +1 -0
- package/src/lib/api/setup.js +1 -1
- package/src/lib/api/setup.js.map +1 -1
- package/src/lib/api/state.js +7 -5
- package/src/lib/api/state.js.map +1 -1
- package/src/lib/auth/composer-auth.js +3 -2
- package/src/lib/auth/composer-auth.js.map +1 -1
- package/src/lib/auth/gitlab-token.js +1 -1
- package/src/lib/auth/gitlab-token.js.map +1 -1
- package/src/lib/config/diagnose.js +15 -9
- package/src/lib/config/diagnose.js.map +1 -1
- package/src/lib/config/local-config.d.ts +1 -1
- package/src/lib/design/check.js +27 -16
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/serve.js +5 -5
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/vite-paths.d.ts +7 -0
- package/src/lib/design/vite-paths.js +15 -0
- package/src/lib/design/vite-paths.js.map +1 -0
- package/src/lib/doctor/doctor-command.js +18 -4
- package/src/lib/doctor/doctor-command.js.map +1 -1
- package/src/lib/release.d.ts +38 -1
- package/src/lib/release.js +150 -43
- package/src/lib/release.js.map +1 -1
- package/src/lib/update/agent-rules-sync.d.ts +37 -0
- package/src/lib/update/agent-rules-sync.js +40 -0
- package/src/lib/update/agent-rules-sync.js.map +1 -0
- 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 +37 -8
- package/src/lib/update/ai.js +193 -24
- package/src/lib/update/ai.js.map +1 -1
- package/src/lib/update/args.d.ts +2 -0
- package/src/lib/update/args.js +22 -2
- package/src/lib/update/args.js.map +1 -1
- package/src/lib/update/available-migrations.d.ts +10 -0
- package/src/lib/update/available-migrations.js +23 -0
- package/src/lib/update/available-migrations.js.map +1 -0
- 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 +8 -0
- package/src/lib/update/gitignore.js +22 -0
- package/src/lib/update/gitignore.js.map +1 -0
- package/src/lib/update/index.d.ts +6 -0
- package/src/lib/update/index.js +6 -0
- package/src/lib/update/index.js.map +1 -1
- package/src/lib/update/migration-manifest.d.ts +10 -0
- package/src/lib/update/migration-manifest.js +15 -3
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migration-record.d.ts +24 -0
- package/src/lib/update/migration-record.js +48 -0
- package/src/lib/update/migration-record.js.map +1 -0
- package/src/lib/update/migrations-command.d.ts +14 -0
- package/src/lib/update/migrations-command.js +212 -0
- package/src/lib/update/migrations-command.js.map +1 -0
- package/src/lib/update/package-manager.d.ts +20 -1
- package/src/lib/update/package-manager.js +34 -15
- package/src/lib/update/package-manager.js.map +1 -1
- package/src/lib/update/packages.js +31 -9
- package/src/lib/update/packages.js.map +1 -1
- package/src/lib/update/pending.d.ts +16 -0
- package/src/lib/update/pending.js +21 -5
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/plan.d.ts +28 -2
- package/src/lib/update/plan.js +54 -3
- package/src/lib/update/plan.js.map +1 -1
- package/src/lib/update/registry.d.ts +32 -4
- package/src/lib/update/registry.js +145 -8
- package/src/lib/update/registry.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +2 -0
- package/src/lib/update/run-migrations.js +20 -15
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/scan.d.ts +14 -0
- package/src/lib/update/scan.js +57 -0
- package/src/lib/update/scan.js.map +1 -0
- package/src/lib/update/semver.js +2 -1
- package/src/lib/update/semver.js.map +1 -1
- package/src/lib/update/tasks.d.ts +18 -1
- package/src/lib/update/tasks.js +114 -43
- package/src/lib/update/tasks.js.map +1 -1
- package/src/lib/update/update-command.d.ts +7 -0
- package/src/lib/update/update-command.js +286 -64
- package/src/lib/update/update-command.js.map +1 -1
|
@@ -1,23 +1,149 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tagForInstalled = exports.fetchRegistryPackage = exports.packageUrl = exports.registryUrl = exports.DEFAULT_REGISTRY = void 0;
|
|
3
|
+
exports.tagForInstalled = exports.fetchRegistryPackage = exports.packageUrl = exports.registryAuthorizationSource = exports.registryAuthorization = exports.registryUrl = exports.DEFAULT_REGISTRY = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const os_1 = require("os");
|
|
7
|
+
const path_1 = require("path");
|
|
5
8
|
const semver_1 = require("./semver");
|
|
6
9
|
const TIMEOUT_MS = 15000;
|
|
7
10
|
exports.DEFAULT_REGISTRY = 'https://registry.npmjs.org';
|
|
8
|
-
|
|
9
|
-
const
|
|
11
|
+
const SCOPE = '@ethlete';
|
|
12
|
+
const unquote = (value) => value.trim().replace(/^(["'])(.*)\1$/, '$2');
|
|
13
|
+
const readText = (path) => ((0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf8') : undefined);
|
|
14
|
+
const configLines = (text) => text.split(/\r?\n/).filter((line) => line.trim() !== '' && !/^\s*[#;]/.test(line));
|
|
15
|
+
const expandEnv = (value, env) => value.replace(/\$\{([^}]+)\}/g, (_, name) => { var _a; return (_a = env[name]) !== null && _a !== void 0 ? _a : ''; });
|
|
16
|
+
const npmrcEntries = (text, env) => configLines(text).flatMap((line) => {
|
|
17
|
+
const separator = line.indexOf('=');
|
|
18
|
+
if (separator < 0)
|
|
19
|
+
return [];
|
|
20
|
+
return [{ key: line.slice(0, separator).trim(), value: expandEnv(unquote(line.slice(separator + 1)), env) }];
|
|
21
|
+
});
|
|
22
|
+
const readNpmrc = (text, env) => {
|
|
23
|
+
const config = {};
|
|
24
|
+
for (const { key, value } of npmrcEntries(text, env)) {
|
|
25
|
+
if (key === `${SCOPE}:registry`)
|
|
26
|
+
config.scoped = value;
|
|
27
|
+
if (key === 'registry')
|
|
28
|
+
config.registry = value;
|
|
29
|
+
}
|
|
30
|
+
return config;
|
|
31
|
+
};
|
|
32
|
+
const readYarnrc = (text) => {
|
|
33
|
+
const config = {};
|
|
34
|
+
for (const line of configLines(text)) {
|
|
35
|
+
const match = /^\s*("[^"]+"|\S+)\s+(.+)$/.exec(line);
|
|
36
|
+
if (!match)
|
|
37
|
+
continue;
|
|
38
|
+
const key = unquote(match[1]);
|
|
39
|
+
const value = unquote(match[2]);
|
|
40
|
+
if (key === `${SCOPE}:registry`)
|
|
41
|
+
config.scoped = value;
|
|
42
|
+
if (key === 'registry')
|
|
43
|
+
config.registry = value;
|
|
44
|
+
}
|
|
45
|
+
return config;
|
|
46
|
+
};
|
|
47
|
+
const readYarnrcYml = (text) => {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
const config = {};
|
|
50
|
+
const path = [];
|
|
51
|
+
for (const line of configLines(text)) {
|
|
52
|
+
const match = /^(\s*)([^:\s]+)\s*:\s*(.*)$/.exec(line);
|
|
53
|
+
if (!match)
|
|
54
|
+
continue;
|
|
55
|
+
const indent = match[1].length;
|
|
56
|
+
const key = unquote(match[2]);
|
|
57
|
+
const value = unquote(match[3]);
|
|
58
|
+
while (((_b = (_a = path[path.length - 1]) === null || _a === void 0 ? void 0 : _a.indent) !== null && _b !== void 0 ? _b : -1) >= indent)
|
|
59
|
+
path.pop();
|
|
60
|
+
const keys = [...path.map((entry) => entry.key), key].join('.');
|
|
61
|
+
if (value === '')
|
|
62
|
+
path.push({ indent, key });
|
|
63
|
+
else if (keys === 'npmRegistryServer')
|
|
64
|
+
config.registry = value;
|
|
65
|
+
else if (keys === `npmScopes.${SCOPE.slice(1)}.npmRegistryServer`)
|
|
66
|
+
config.scoped = value;
|
|
67
|
+
}
|
|
68
|
+
return config;
|
|
69
|
+
};
|
|
70
|
+
const userNpmrcPath = (home) => (0, path_1.join)(home, '.npmrc');
|
|
71
|
+
/** The registry settings of a repo's config files, then the user's `.npmrc`, in the order its package manager reads them. */
|
|
72
|
+
const projectRegistryConfig = (options) => {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const { root, manager, env, home } = options;
|
|
75
|
+
const npmrc = readText((0, path_1.join)(root, '.npmrc'));
|
|
76
|
+
const userNpmrc = readText(userNpmrcPath(home));
|
|
77
|
+
const sources = [];
|
|
78
|
+
if (manager === 'yarn') {
|
|
79
|
+
const berry = readText((0, path_1.join)(root, '.yarnrc.yml'));
|
|
80
|
+
if (berry !== undefined)
|
|
81
|
+
return readYarnrcYml(berry);
|
|
82
|
+
const classic = readText((0, path_1.join)(root, '.yarnrc'));
|
|
83
|
+
sources.push(classic === undefined ? undefined : readYarnrc(classic));
|
|
84
|
+
}
|
|
85
|
+
sources.push(npmrc === undefined ? undefined : readNpmrc(npmrc, env));
|
|
86
|
+
sources.push(userNpmrc === undefined ? undefined : readNpmrc(userNpmrc, env));
|
|
87
|
+
return {
|
|
88
|
+
scoped: (_a = sources.find((source) => source === null || source === void 0 ? void 0 : source.scoped)) === null || _a === void 0 ? void 0 : _a.scoped,
|
|
89
|
+
registry: (_b = sources.find((source) => source === null || source === void 0 ? void 0 : source.registry)) === null || _b === void 0 ? void 0 : _b.registry,
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* The registry the repo's package manager installs `@ethlete/*` from: the repo's `.npmrc`, `.yarnrc` or
|
|
94
|
+
* `.yarnrc.yml` first, since yarn 1 exports its default registry to scripts even when an `.npmrc` sets
|
|
95
|
+
* another one, then the environment, then the public registry.
|
|
96
|
+
*/
|
|
97
|
+
const registryUrl = (options = {}) => {
|
|
98
|
+
var _a, _b, _c, _d;
|
|
99
|
+
const { root = process.cwd(), manager = 'npm', env = process.env, home = (0, os_1.homedir)() } = options;
|
|
100
|
+
const project = projectRegistryConfig({ root, manager, env, home });
|
|
101
|
+
return ((_d = (_c = (_b = (_a = project.scoped) !== null && _a !== void 0 ? _a : env[`npm_config_${SCOPE}:registry`]) !== null && _b !== void 0 ? _b : project.registry) !== null && _c !== void 0 ? _c : env['npm_config_registry']) !== null && _d !== void 0 ? _d : exports.DEFAULT_REGISTRY).replace(/\/+$/, '');
|
|
102
|
+
};
|
|
10
103
|
exports.registryUrl = registryUrl;
|
|
104
|
+
/**
|
|
105
|
+
* The `Authorization` header npm would send to `registry`, from the `//host/path/:_authToken` or
|
|
106
|
+
* `:_auth` entries of the repo's and the user's `.npmrc`, with `${VAR}` expanded. The longest matching
|
|
107
|
+
* path wins.
|
|
108
|
+
*/
|
|
109
|
+
const registryAuthorization = (options) => { var _a; return (_a = findAuthorization(options)) === null || _a === void 0 ? void 0 : _a.header; };
|
|
110
|
+
exports.registryAuthorization = registryAuthorization;
|
|
111
|
+
/** The `.npmrc` the token for a registry was read from, or `undefined` when neither holds one. */
|
|
112
|
+
const registryAuthorizationSource = (options) => { var _a; return (_a = findAuthorization(options)) === null || _a === void 0 ? void 0 : _a.source; };
|
|
113
|
+
exports.registryAuthorizationSource = registryAuthorizationSource;
|
|
114
|
+
const findAuthorization = (options) => {
|
|
115
|
+
const { registry, root = process.cwd(), env = process.env, home = (0, os_1.homedir)() } = options;
|
|
116
|
+
const target = `${registry.replace(/^[a-z]+:/i, '').replace(/\/+$/, '')}/`;
|
|
117
|
+
const entries = [(0, path_1.join)(root, '.npmrc'), userNpmrcPath(home)].flatMap((source) => {
|
|
118
|
+
const text = readText(source);
|
|
119
|
+
return text === undefined ? [] : npmrcEntries(text, env).map((entry) => (Object.assign(Object.assign({}, entry), { source })));
|
|
120
|
+
});
|
|
121
|
+
let best;
|
|
122
|
+
for (const { key, value, source } of entries) {
|
|
123
|
+
const match = /^(\/\/.+?)\/?:(_authToken|_auth)$/.exec(key);
|
|
124
|
+
const prefix = (match === null || match === void 0 ? void 0 : match[1]) === undefined ? undefined : `${match[1]}/`;
|
|
125
|
+
if (!match || !prefix || !value || !target.startsWith(prefix))
|
|
126
|
+
continue;
|
|
127
|
+
if (best && best.length >= prefix.length)
|
|
128
|
+
continue;
|
|
129
|
+
best = {
|
|
130
|
+
length: prefix.length,
|
|
131
|
+
header: match[2] === '_authToken' ? `Bearer ${value}` : `Basic ${value}`,
|
|
132
|
+
source,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return best;
|
|
136
|
+
};
|
|
11
137
|
const packageUrl = (options) => `${options.registry}/${options.packageName.replace('/', '%2f')}`;
|
|
12
138
|
exports.packageUrl = packageUrl;
|
|
13
139
|
/** Asks the registry which versions of a package exist and what each dist tag points at. */
|
|
14
140
|
const fetchRegistryPackage = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
-
const { packageName, registry = (0, exports.registryUrl)() } = options;
|
|
141
|
+
const { packageName, registry = (0, exports.registryUrl)(), authorization, authorizationSource } = options;
|
|
16
142
|
let response;
|
|
17
143
|
try {
|
|
18
144
|
response = yield fetch((0, exports.packageUrl)({ registry, packageName }), {
|
|
19
145
|
// The abbreviated document holds the dist tags and the version list without every manifest.
|
|
20
|
-
headers: { Accept: 'application/vnd.npm.install-v1+json' },
|
|
146
|
+
headers: Object.assign({ Accept: 'application/vnd.npm.install-v1+json' }, (authorization ? { Authorization: authorization } : {})),
|
|
21
147
|
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
22
148
|
});
|
|
23
149
|
}
|
|
@@ -26,6 +152,12 @@ const fetchRegistryPackage = (options) => tslib_1.__awaiter(void 0, void 0, void
|
|
|
26
152
|
}
|
|
27
153
|
if (response.status === 404)
|
|
28
154
|
return { ok: false, reason: `${registry} has no ${packageName}.` };
|
|
155
|
+
if (response.status === 401 || response.status === 403) {
|
|
156
|
+
const hint = authorizationSource
|
|
157
|
+
? `The token in ${authorizationSource} was refused; it may be expired or lack read access.`
|
|
158
|
+
: `No token for ${registry} was found in the repo's or your own .npmrc; add an _authToken entry for it.`;
|
|
159
|
+
return { ok: false, reason: `${registry} answered ${response.status} for ${packageName}. ${hint}` };
|
|
160
|
+
}
|
|
29
161
|
if (!response.ok)
|
|
30
162
|
return { ok: false, reason: `${registry} answered ${response.status} for ${packageName}.` };
|
|
31
163
|
const body = yield response.json().catch(() => undefined);
|
|
@@ -42,13 +174,18 @@ const fetchRegistryPackage = (options) => tslib_1.__awaiter(void 0, void 0, void
|
|
|
42
174
|
});
|
|
43
175
|
exports.fetchRegistryPackage = fetchRegistryPackage;
|
|
44
176
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
177
|
+
* The dist tag an update follows: for a prerelease, the tag holding the newest version of the same prerelease
|
|
178
|
+
* line, which is not always the tag named after it.
|
|
47
179
|
*/
|
|
48
180
|
const tagForInstalled = (options) => {
|
|
49
181
|
const { version, distTags } = options;
|
|
50
182
|
const tag = version ? (0, semver_1.prereleaseTag)(version) : undefined;
|
|
51
|
-
|
|
183
|
+
if (tag === undefined || distTags[tag] === undefined)
|
|
184
|
+
return 'latest';
|
|
185
|
+
// changesets publishes a package with only prereleases to `latest`, and leaves the `next` tag behind.
|
|
186
|
+
return Object.entries(distTags)
|
|
187
|
+
.filter(([, tagged]) => (0, semver_1.prereleaseTag)(tagged) === tag)
|
|
188
|
+
.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);
|
|
52
189
|
};
|
|
53
190
|
exports.tagForInstalled = tagForInstalled;
|
|
54
191
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/registry.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export declare const runAutoMigration: (options: {
|
|
|
24
24
|
export declare const runInstall: (options: {
|
|
25
25
|
root: string;
|
|
26
26
|
manager: PackageManager;
|
|
27
|
+
env?: NodeJS.ProcessEnv;
|
|
27
28
|
}) => {
|
|
28
29
|
ok: boolean;
|
|
29
30
|
reason: string;
|
|
@@ -41,4 +42,5 @@ export declare const runPendingMigrations: (options: {
|
|
|
41
42
|
manager: PackageManager;
|
|
42
43
|
pending: readonly PendingMigration[];
|
|
43
44
|
dryRun: boolean;
|
|
45
|
+
afterEach?: (outcome: MigrationOutcome) => void;
|
|
44
46
|
}) => MigrationOutcome[];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runPendingMigrations = exports.manualGeneratorCommand = exports.runInstall = exports.runAutoMigration = exports.generatorArgs = exports.hasNx = void 0;
|
|
4
|
-
const child_process_1 = require("child_process");
|
|
5
4
|
const fs_1 = require("fs");
|
|
6
5
|
const path_1 = require("path");
|
|
7
6
|
const package_manager_1 = require("./package-manager");
|
|
@@ -29,7 +28,7 @@ const runAutoMigration = (options) => {
|
|
|
29
28
|
});
|
|
30
29
|
if (binary === undefined)
|
|
31
30
|
return { pending, state: 'failed', reason: 'no command to run the generator with' };
|
|
32
|
-
const result = (0,
|
|
31
|
+
const result = (0, package_manager_1.spawnPackageManager)({ binary, args, spawn: { cwd: root, stdio: 'inherit' } });
|
|
33
32
|
if (result.error)
|
|
34
33
|
return { pending, state: 'failed', reason: result.error.message };
|
|
35
34
|
if (result.status !== 0)
|
|
@@ -38,11 +37,11 @@ const runAutoMigration = (options) => {
|
|
|
38
37
|
};
|
|
39
38
|
exports.runAutoMigration = runAutoMigration;
|
|
40
39
|
const runInstall = (options) => {
|
|
41
|
-
const { root, manager } = options;
|
|
40
|
+
const { root, manager, env } = options;
|
|
42
41
|
const [binary, ...args] = manager.install;
|
|
43
42
|
if (binary === undefined)
|
|
44
43
|
return { ok: false, reason: 'no install command' };
|
|
45
|
-
const result = (0,
|
|
44
|
+
const result = (0, package_manager_1.spawnPackageManager)({ binary, args, spawn: { cwd: root, stdio: 'inherit', env: (0, package_manager_1.installEnv)(env) } });
|
|
46
45
|
if (result.error)
|
|
47
46
|
return { ok: false, reason: result.error.message };
|
|
48
47
|
if (result.status !== 0)
|
|
@@ -53,20 +52,26 @@ exports.runInstall = runInstall;
|
|
|
53
52
|
/** The command a developer runs by hand when this repo has no Nx to run the generator with. */
|
|
54
53
|
const manualGeneratorCommand = (options) => (0, package_manager_1.nxCommand)({ manager: options.manager, args: (0, exports.generatorArgs)({ migration: options.migration, dryRun: false }) }).join(' ');
|
|
55
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
|
+
};
|
|
56
68
|
const runPendingMigrations = (options) => {
|
|
57
|
-
const { root, manager, pending, dryRun } = options;
|
|
69
|
+
const { root, manager, pending, dryRun, afterEach } = options;
|
|
58
70
|
const nxAvailable = (0, exports.hasNx)(root);
|
|
59
71
|
return pending.map((entry) => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
pending: entry,
|
|
65
|
-
state: 'unsupported',
|
|
66
|
-
reason: 'this repo has no Nx, so the generator has to be run by hand',
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
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;
|
|
70
75
|
});
|
|
71
76
|
};
|
|
72
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":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"run-migrations.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/run-migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Migration } from './migration-manifest';
|
|
2
|
+
import { PackageManager } from './package-manager';
|
|
3
|
+
export declare const SCAN_FILE_ENV = "ETHLETE_SCAN_FILE";
|
|
4
|
+
export type ScanResult = {
|
|
5
|
+
files: string[];
|
|
6
|
+
} | {
|
|
7
|
+
problem: string;
|
|
8
|
+
};
|
|
9
|
+
/** Runs the scan generator of a migration and returns the files it would touch, or why it could not tell. */
|
|
10
|
+
export declare const runScan: (options: {
|
|
11
|
+
root: string;
|
|
12
|
+
manager: PackageManager;
|
|
13
|
+
migration: Migration;
|
|
14
|
+
}) => ScanResult;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runScan = exports.SCAN_FILE_ENV = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const os_1 = require("os");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const package_manager_1 = require("./package-manager");
|
|
8
|
+
const run_migrations_1 = require("./run-migrations");
|
|
9
|
+
exports.SCAN_FILE_ENV = 'ETHLETE_SCAN_FILE';
|
|
10
|
+
const readScanFile = (path) => {
|
|
11
|
+
if (!(0, fs_1.existsSync)(path))
|
|
12
|
+
return { problem: 'the scan wrote no result' };
|
|
13
|
+
let parsed;
|
|
14
|
+
try {
|
|
15
|
+
parsed = JSON.parse((0, fs_1.readFileSync)(path, 'utf8'));
|
|
16
|
+
}
|
|
17
|
+
catch (_a) {
|
|
18
|
+
return { problem: 'the scan result is not valid JSON' };
|
|
19
|
+
}
|
|
20
|
+
if (!Array.isArray(parsed) || parsed.some((file) => typeof file !== 'string')) {
|
|
21
|
+
return { problem: 'the scan result is not a list of paths' };
|
|
22
|
+
}
|
|
23
|
+
return { files: [...new Set(parsed)] };
|
|
24
|
+
};
|
|
25
|
+
/** Runs the scan generator of a migration and returns the files it would touch, or why it could not tell. */
|
|
26
|
+
const runScan = (options) => {
|
|
27
|
+
const { root, manager, migration } = options;
|
|
28
|
+
if (!migration.scan)
|
|
29
|
+
return { problem: 'the migration has no scan' };
|
|
30
|
+
if (!(0, run_migrations_1.hasNx)(root))
|
|
31
|
+
return { problem: 'this repo has no Nx to run the scan with' };
|
|
32
|
+
const [binary, ...args] = (0, package_manager_1.nxCommand)({
|
|
33
|
+
manager,
|
|
34
|
+
args: (0, run_migrations_1.generatorArgs)({ migration: Object.assign(Object.assign({}, migration), { generator: migration.scan }), dryRun: true }),
|
|
35
|
+
});
|
|
36
|
+
if (binary === undefined)
|
|
37
|
+
return { problem: 'no command to run the scan with' };
|
|
38
|
+
const directory = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), 'ethlete-scan-'));
|
|
39
|
+
const resultPath = (0, path_1.join)(directory, 'files.json');
|
|
40
|
+
try {
|
|
41
|
+
const result = (0, package_manager_1.spawnPackageManager)({
|
|
42
|
+
binary,
|
|
43
|
+
args,
|
|
44
|
+
spawn: { cwd: root, stdio: 'ignore', env: Object.assign(Object.assign({}, process.env), { [exports.SCAN_FILE_ENV]: resultPath }) },
|
|
45
|
+
});
|
|
46
|
+
if (result.error)
|
|
47
|
+
return { problem: result.error.message };
|
|
48
|
+
if (result.status !== 0)
|
|
49
|
+
return { problem: `${binary} exited with ${result.status}` };
|
|
50
|
+
return readScanFile(resultPath);
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
(0, fs_1.rmSync)(directory, { recursive: true, force: true });
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.runScan = runScan;
|
|
57
|
+
//# sourceMappingURL=scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/scan.ts"],"names":[],"mappings":";;;AAAA,2BAAmE;AACnE,2BAA4B;AAC5B,+BAA4B;AAE5B,uDAAmF;AACnF,qDAAwD;AAE3C,QAAA,aAAa,GAAG,mBAAmB,CAAC;AAIjD,MAAM,YAAY,GAAG,CAAC,IAAY,EAAc,EAAE;IAChD,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAEtE,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,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAkB,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC,CAAC;AAEF,6GAA6G;AACtG,MAAM,OAAO,GAAG,CAAC,OAAwE,EAAc,EAAE;IAC9G,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE7C,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAErE,IAAI,CAAC,IAAA,sBAAK,EAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;IAEjF,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAA,2BAAS,EAAC;QAClC,OAAO;QACP,IAAI,EAAE,IAAA,8BAAa,EAAC,EAAE,SAAS,kCAAO,SAAS,KAAE,SAAS,EAAE,SAAS,CAAC,IAAI,GAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC9F,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IAEhF,MAAM,SAAS,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,qCAAmB,EAAC;YACjC,MAAM;YACN,IAAI;YACJ,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,kCAAO,OAAO,CAAC,GAAG,KAAE,CAAC,qBAAa,CAAC,EAAE,UAAU,GAAE,EAAE;SAC5F,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAEtF,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;YAAS,CAAC;QACT,IAAA,WAAM,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB"}
|
package/src/lib/update/semver.js
CHANGED
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.versionOfRange = exports.rangePrefix = exports.prereleaseTag = exports.isValidVersion = exports.isInUpdateRange = exports.isNewer = exports.compareVersions = void 0;
|
|
4
4
|
const NUMERIC = /^\d+$/;
|
|
5
5
|
const parseVersion = (version) => {
|
|
6
|
-
|
|
6
|
+
var _a;
|
|
7
|
+
const [core = '', ...prereleaseParts] = ((_a = version.split('+')[0]) !== null && _a !== void 0 ? _a : '').split('-');
|
|
7
8
|
const prerelease = prereleaseParts.join('-');
|
|
8
9
|
return {
|
|
9
10
|
numbers: core.split('.').map((part) => Number.parseInt(part, 10) || 0),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/semver.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG,OAAO,CAAC;AAOxB,MAAM,YAAY,GAAG,CAAC,OAAe,EAAiB,EAAE
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/semver.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,14 @@ export declare const UPDATE_DIR: string;
|
|
|
5
5
|
export declare const TASKS_FILE = "tasks.md";
|
|
6
6
|
export declare const TASKS_DATA_FILE = "tasks.json";
|
|
7
7
|
export declare const DOCS_BASE_URL = "https://ethlete-sdk-docs.web.app";
|
|
8
|
+
export declare const NEXT_DOCS_BASE_URL = "https://ethlete-sdk-docs-next.web.app";
|
|
9
|
+
/** The docs site of a version's release line: `main` deploys the stable site, `next` the prerelease one. */
|
|
10
|
+
export declare const docsBaseUrl: (version: string) => "https://ethlete-sdk-docs.web.app" | "https://ethlete-sdk-docs-next.web.app";
|
|
11
|
+
/** The agent rules sync of an update that failed, with the command to run again by hand. */
|
|
12
|
+
export type SyncFailure = {
|
|
13
|
+
command: string;
|
|
14
|
+
reason: string;
|
|
15
|
+
};
|
|
8
16
|
export type UpdateTask = {
|
|
9
17
|
packageName: string;
|
|
10
18
|
name: string;
|
|
@@ -25,11 +33,13 @@ export declare const taskFileName: (options: {
|
|
|
25
33
|
export declare const collectTasks: (options: {
|
|
26
34
|
outcomes: readonly MigrationOutcome[];
|
|
27
35
|
manager: PackageManager;
|
|
36
|
+
updates?: readonly UpdatedPackage[];
|
|
28
37
|
}) => UpdateTask[];
|
|
29
38
|
export declare const renderTasks: (options: {
|
|
30
39
|
updates: readonly UpdatedPackage[];
|
|
31
40
|
outcomes: readonly MigrationOutcome[];
|
|
32
41
|
tasks: readonly UpdateTask[];
|
|
42
|
+
syncFailure?: SyncFailure;
|
|
33
43
|
}) => string;
|
|
34
44
|
/**
|
|
35
45
|
* One task as its own file: what moved and where to read more, then the instructions the package ships.
|
|
@@ -47,7 +57,8 @@ export type WrittenTasks = {
|
|
|
47
57
|
};
|
|
48
58
|
/**
|
|
49
59
|
* Writes the report, the machine-readable task list an agent reads, and a copy of every instructions
|
|
50
|
-
* file, so the whole task list stands on its own once `node_modules` changes again.
|
|
60
|
+
* file, so the whole task list stands on its own once `node_modules` changes again. A task an earlier
|
|
61
|
+
* run left is kept while its file is still there.
|
|
51
62
|
*/
|
|
52
63
|
export declare const writeUpdateTasks: (options: {
|
|
53
64
|
root: string;
|
|
@@ -55,4 +66,10 @@ export declare const writeUpdateTasks: (options: {
|
|
|
55
66
|
outcomes: readonly MigrationOutcome[];
|
|
56
67
|
manager: PackageManager;
|
|
57
68
|
generatedAt: string;
|
|
69
|
+
syncFailure?: SyncFailure;
|
|
58
70
|
}) => WrittenTasks;
|
|
71
|
+
/**
|
|
72
|
+
* Rewrites the task list of an earlier run without the tasks whose file was deleted, and returns the
|
|
73
|
+
* tasks still open. `undefined` when no run has written a task list.
|
|
74
|
+
*/
|
|
75
|
+
export declare const refreshUpdateTasks: (root: string) => UpdateTask[] | undefined;
|