@ethlete/cli 2.1.0-next.11 → 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 +33 -0
- package/README.md +10 -3
- package/package.json +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/git.d.ts +9 -4
- package/src/lib/api/git.js +27 -8
- package/src/lib/api/git.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 +8 -3
- package/src/lib/api/run.js.map +1 -1
- 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 +16 -5
- 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 +6 -0
- package/src/lib/release.js +24 -4
- package/src/lib/release.js.map +1 -1
- package/src/lib/update/agent-rules-sync.js +2 -2
- package/src/lib/update/agent-rules-sync.js.map +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 +14 -4
- package/src/lib/update/ai.js +55 -16
- 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/migration-manifest.js +6 -2
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/package-manager.d.ts +13 -1
- package/src/lib/update/package-manager.js +21 -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 +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 +17 -0
- package/src/lib/update/registry.js +54 -16
- 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 +19 -14
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/update-command.js +120 -26
- 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"}
|
|
@@ -41,6 +41,9 @@ const parseEntry = (options) => {
|
|
|
41
41
|
const description = readString(value, 'description');
|
|
42
42
|
if (!name)
|
|
43
43
|
return { problem: `${at} has no "name".` };
|
|
44
|
+
if (!/^[\w.-]+$/.test(name) || /^\.+$/.test(name)) {
|
|
45
|
+
return { problem: `${origin} "${name}" has a name outside letters, digits, ".", "_" and "-".` };
|
|
46
|
+
}
|
|
44
47
|
if (!version)
|
|
45
48
|
return { problem: `${origin} "${name}" has no "version".` };
|
|
46
49
|
if (!(0, semver_1.isValidVersion)(version))
|
|
@@ -56,6 +59,9 @@ const parseEntry = (options) => {
|
|
|
56
59
|
const instructions = readString(value, 'instructions');
|
|
57
60
|
if (kind === 'auto' && !generator)
|
|
58
61
|
return { problem: `${origin} "${name}" is auto but names no "generator".` };
|
|
62
|
+
if (instructions && ((0, path_1.isAbsolute)(instructions) || instructions.split(/[\\/]/).includes('..'))) {
|
|
63
|
+
return { problem: `${origin} "${name}" names "instructions" outside its package: ${instructions}.` };
|
|
64
|
+
}
|
|
59
65
|
if (kind === 'assisted' && !instructions) {
|
|
60
66
|
return { problem: `${origin} "${name}" is assisted but names no "instructions" file.` };
|
|
61
67
|
}
|
|
@@ -129,8 +135,6 @@ const instructionsPath = (options) => {
|
|
|
129
135
|
const { manifestPath, migration } = options;
|
|
130
136
|
if (!migration.instructions)
|
|
131
137
|
return undefined;
|
|
132
|
-
if ((0, path_1.isAbsolute)(migration.instructions))
|
|
133
|
-
return migration.instructions;
|
|
134
138
|
return manifestPath ? (0, path_1.resolve)((0, path_1.dirname)(manifestPath), migration.instructions) : undefined;
|
|
135
139
|
};
|
|
136
140
|
exports.instructionsPath = instructionsPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-manifest.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/migration-manifest.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"migration-manifest.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/migration-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SpawnSyncOptions } from 'child_process';
|
|
1
2
|
import { Manifest } from './packages';
|
|
2
3
|
export type PackageManagerName = 'yarn' | 'pnpm' | 'bun' | 'npm';
|
|
3
4
|
export type PackageManager = {
|
|
@@ -9,7 +10,8 @@ export type PackageManager = {
|
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
12
|
* The package manager this repo uses: what `packageManager` declares, else the lockfile that is there,
|
|
12
|
-
* else npm. `et update` runs the install itself, so it has to be
|
|
13
|
+
* else the one running this command, else npm. `et update` runs the install itself, so it has to be
|
|
14
|
+
* the same one the repo already uses.
|
|
13
15
|
*/
|
|
14
16
|
export declare const detectPackageManager: (options: {
|
|
15
17
|
root: string;
|
|
@@ -28,3 +30,13 @@ export declare const nxCommand: (options: {
|
|
|
28
30
|
manager: PackageManager;
|
|
29
31
|
args: readonly string[];
|
|
30
32
|
}) => string[];
|
|
33
|
+
/**
|
|
34
|
+
* Runs a package manager command such as `yarn install`. On Windows the managers are `.cmd` shims,
|
|
35
|
+
* which Node spawns only through a shell (CVE-2024-27980), so the command runs as one quoted line there.
|
|
36
|
+
*/
|
|
37
|
+
export declare const spawnPackageManager: (options: {
|
|
38
|
+
binary: string;
|
|
39
|
+
args: readonly string[];
|
|
40
|
+
spawn: SpawnSyncOptions;
|
|
41
|
+
platform?: NodeJS.Platform;
|
|
42
|
+
}) => import("child_process").SpawnSyncReturns<string | NonSharedBuffer>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nxCommand = exports.installEnv = 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,25 +17,17 @@ const LOCKFILES = [
|
|
|
16
17
|
['bun.lock', 'bun'],
|
|
17
18
|
['package-lock.json', 'npm'],
|
|
18
19
|
];
|
|
19
|
-
const
|
|
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
|
|
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
|
|
34
|
-
|
|
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;
|
|
40
33
|
const INJECTED_REGISTRY = /^npm_config_(@[^:]+:)?registry$/i;
|
|
@@ -57,4 +50,17 @@ const nxCommand = (options) => [
|
|
|
57
50
|
...options.args,
|
|
58
51
|
];
|
|
59
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;
|
|
60
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,
|
|
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
|
|
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
|
|
131
|
-
|
|
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":";;;AAAA,2BAAkF;AAClF,+BAA2C;AAC3C,qCAAwE;AAE3D,QAAA,aAAa,GAAG,WAAW,CAAC;AAE5B,QAAA,aAAa,GAAG,cAAc,CAAC;AAE/B,QAAA,iBAAiB,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAU,CAAC;AA0BlG,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AAEjF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAW,EAAE;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,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;AAEhE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAa,CAAC,CAAC;AAA3D,QAAA,YAAY,gBAA+C;AAEjE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,YAAY,GAAG,qBAAa,EAAwB,EAAE;IAC/F,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAElD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC,CAAC;AAJW,QAAA,YAAY,gBAIvB;AAEF;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,IAAY,EAAY,EAAE;IACtD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAE,EAAE;QACjC,IAAI,OAAiB,CAAC;QAEtB,IAAI,CAAC;YACH,OAAO,GAAG,IAAA,gBAAW,EAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,WAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAEhF,IAAI,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAa;gBAAE,SAAS;YAE3C,KAAK,CAAC,IAAI,CAAC,IAAA,eAAQ,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,CAAC;IAEX,OAAO,
|
|
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;
|
|
@@ -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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"}
|
|
@@ -20,7 +20,19 @@ export declare const registryUrl: (options?: {
|
|
|
20
20
|
root?: string;
|
|
21
21
|
manager?: PackageManagerName;
|
|
22
22
|
env?: NodeJS.ProcessEnv;
|
|
23
|
+
home?: string;
|
|
23
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: {
|
|
31
|
+
registry: string;
|
|
32
|
+
root?: string;
|
|
33
|
+
env?: NodeJS.ProcessEnv;
|
|
34
|
+
home?: string;
|
|
35
|
+
}) => string | undefined;
|
|
24
36
|
export declare const packageUrl: (options: {
|
|
25
37
|
registry: string;
|
|
26
38
|
packageName: string;
|
|
@@ -29,11 +41,16 @@ export declare const packageUrl: (options: {
|
|
|
29
41
|
export declare const fetchRegistryPackage: (options: {
|
|
30
42
|
packageName: string;
|
|
31
43
|
registry?: string;
|
|
44
|
+
authorization?: string;
|
|
32
45
|
}) => Promise<RegistryLookup>;
|
|
33
46
|
/**
|
|
34
47
|
* Which dist tag an update follows when the caller names none: the one the installed prerelease belongs
|
|
35
48
|
* to, so a repo on `-next.46` stays on `next` instead of being pulled back to the stable line.
|
|
36
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
|
+
*/
|
|
37
54
|
export declare const tagForInstalled: (options: {
|
|
38
55
|
version?: string;
|
|
39
56
|
distTags: Record<string, string>;
|
|
@@ -1,8 +1,9 @@
|
|
|
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.registryAuthorization = exports.registryUrl = exports.DEFAULT_REGISTRY = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
|
+
const os_1 = require("os");
|
|
6
7
|
const path_1 = require("path");
|
|
7
8
|
const semver_1 = require("./semver");
|
|
8
9
|
const TIMEOUT_MS = 15000;
|
|
@@ -11,14 +12,16 @@ const SCOPE = '@ethlete';
|
|
|
11
12
|
const unquote = (value) => value.trim().replace(/^(["'])(.*)\1$/, '$2');
|
|
12
13
|
const readText = (path) => ((0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf8') : undefined);
|
|
13
14
|
const configLines = (text) => text.split(/\r?\n/).filter((line) => line.trim() !== '' && !/^\s*[#;]/.test(line));
|
|
14
|
-
const
|
|
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) => {
|
|
15
23
|
const config = {};
|
|
16
|
-
for (const
|
|
17
|
-
const separator = line.indexOf('=');
|
|
18
|
-
if (separator < 0)
|
|
19
|
-
continue;
|
|
20
|
-
const key = line.slice(0, separator).trim();
|
|
21
|
-
const value = unquote(line.slice(separator + 1));
|
|
24
|
+
for (const { key, value } of npmrcEntries(text, env)) {
|
|
22
25
|
if (key === `${SCOPE}:registry`)
|
|
23
26
|
config.scoped = value;
|
|
24
27
|
if (key === 'registry')
|
|
@@ -64,10 +67,13 @@ const readYarnrcYml = (text) => {
|
|
|
64
67
|
}
|
|
65
68
|
return config;
|
|
66
69
|
};
|
|
67
|
-
|
|
68
|
-
|
|
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) => {
|
|
69
73
|
var _a, _b;
|
|
74
|
+
const { root, manager, env, home } = options;
|
|
70
75
|
const npmrc = readText((0, path_1.join)(root, '.npmrc'));
|
|
76
|
+
const userNpmrc = readText(userNpmrcPath(home));
|
|
71
77
|
const sources = [];
|
|
72
78
|
if (manager === 'yarn') {
|
|
73
79
|
const berry = readText((0, path_1.join)(root, '.yarnrc.yml'));
|
|
@@ -76,7 +82,8 @@ const projectRegistryConfig = (root, manager) => {
|
|
|
76
82
|
const classic = readText((0, path_1.join)(root, '.yarnrc'));
|
|
77
83
|
sources.push(classic === undefined ? undefined : readYarnrc(classic));
|
|
78
84
|
}
|
|
79
|
-
sources.push(npmrc === undefined ? undefined : readNpmrc(npmrc));
|
|
85
|
+
sources.push(npmrc === undefined ? undefined : readNpmrc(npmrc, env));
|
|
86
|
+
sources.push(userNpmrc === undefined ? undefined : readNpmrc(userNpmrc, env));
|
|
80
87
|
return {
|
|
81
88
|
scoped: (_a = sources.find((source) => source === null || source === void 0 ? void 0 : source.scoped)) === null || _a === void 0 ? void 0 : _a.scoped,
|
|
82
89
|
registry: (_b = sources.find((source) => source === null || source === void 0 ? void 0 : source.registry)) === null || _b === void 0 ? void 0 : _b.registry,
|
|
@@ -89,21 +96,43 @@ const projectRegistryConfig = (root, manager) => {
|
|
|
89
96
|
*/
|
|
90
97
|
const registryUrl = (options = {}) => {
|
|
91
98
|
var _a, _b, _c, _d;
|
|
92
|
-
const { root = process.cwd(), manager = 'npm', env = process.env } = options;
|
|
93
|
-
const project = projectRegistryConfig(root, manager);
|
|
99
|
+
const { root = process.cwd(), manager = 'npm', env = process.env, home = (0, os_1.homedir)() } = options;
|
|
100
|
+
const project = projectRegistryConfig({ root, manager, env, home });
|
|
94
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(/\/+$/, '');
|
|
95
102
|
};
|
|
96
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) => {
|
|
110
|
+
const { registry, root = process.cwd(), env = process.env, home = (0, os_1.homedir)() } = options;
|
|
111
|
+
const target = `${registry.replace(/^[a-z]+:/i, '').replace(/\/+$/, '')}/`;
|
|
112
|
+
const entries = [readText((0, path_1.join)(root, '.npmrc')), readText(userNpmrcPath(home))].flatMap((text) => text === undefined ? [] : npmrcEntries(text, env));
|
|
113
|
+
let best;
|
|
114
|
+
for (const { key, value } of entries) {
|
|
115
|
+
const match = /^(\/\/.+?)\/?:(_authToken|_auth)$/.exec(key);
|
|
116
|
+
const prefix = (match === null || match === void 0 ? void 0 : match[1]) === undefined ? undefined : `${match[1]}/`;
|
|
117
|
+
if (!match || !prefix || !value || !target.startsWith(prefix))
|
|
118
|
+
continue;
|
|
119
|
+
if (best && best.length >= prefix.length)
|
|
120
|
+
continue;
|
|
121
|
+
best = { length: prefix.length, header: match[2] === '_authToken' ? `Bearer ${value}` : `Basic ${value}` };
|
|
122
|
+
}
|
|
123
|
+
return best === null || best === void 0 ? void 0 : best.header;
|
|
124
|
+
};
|
|
125
|
+
exports.registryAuthorization = registryAuthorization;
|
|
97
126
|
const packageUrl = (options) => `${options.registry}/${options.packageName.replace('/', '%2f')}`;
|
|
98
127
|
exports.packageUrl = packageUrl;
|
|
99
128
|
/** Asks the registry which versions of a package exist and what each dist tag points at. */
|
|
100
129
|
const fetchRegistryPackage = (options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
-
const { packageName, registry = (0, exports.registryUrl)() } = options;
|
|
130
|
+
const { packageName, registry = (0, exports.registryUrl)(), authorization } = options;
|
|
102
131
|
let response;
|
|
103
132
|
try {
|
|
104
133
|
response = yield fetch((0, exports.packageUrl)({ registry, packageName }), {
|
|
105
134
|
// The abbreviated document holds the dist tags and the version list without every manifest.
|
|
106
|
-
headers: { Accept: 'application/vnd.npm.install-v1+json' },
|
|
135
|
+
headers: Object.assign({ Accept: 'application/vnd.npm.install-v1+json' }, (authorization ? { Authorization: authorization } : {})),
|
|
107
136
|
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
108
137
|
});
|
|
109
138
|
}
|
|
@@ -131,10 +160,19 @@ exports.fetchRegistryPackage = fetchRegistryPackage;
|
|
|
131
160
|
* Which dist tag an update follows when the caller names none: the one the installed prerelease belongs
|
|
132
161
|
* to, so a repo on `-next.46` stays on `next` instead of being pulled back to the stable line.
|
|
133
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
|
+
*/
|
|
134
167
|
const tagForInstalled = (options) => {
|
|
135
168
|
const { version, distTags } = options;
|
|
136
169
|
const tag = version ? (0, semver_1.prereleaseTag)(version) : undefined;
|
|
137
|
-
|
|
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);
|
|
138
176
|
};
|
|
139
177
|
exports.tagForInstalled = tagForInstalled;
|
|
140
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,+BAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/registry.ts"],"names":[],"mappings":"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"}
|