@ethlete/cli 2.1.0-next.10 → 2.1.0-next.12
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 +28 -0
- package/README.md +10 -5
- package/package.json +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- 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/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/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.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/ai.d.ts +21 -7
- package/src/lib/update/ai.js +81 -22
- package/src/lib/update/ai.js.map +1 -1
- package/src/lib/update/gitignore.d.ts +2 -0
- package/src/lib/update/gitignore.js +18 -0
- package/src/lib/update/gitignore.js.map +1 -0
- 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 +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 +13 -0
- package/src/lib/update/pending.js +10 -5
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/registry.d.ts +24 -2
- package/src/lib/update/registry.js +120 -5
- 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 +3 -4
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/tasks.d.ts +18 -1
- package/src/lib/update/tasks.js +106 -39
- package/src/lib/update/tasks.js.map +1 -1
- package/src/lib/update/update-command.js +163 -55
- package/src/lib/update/update-command.js.map +1 -1
package/src/lib/update/ai.js
CHANGED
|
@@ -1,43 +1,102 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runAgentTasks = exports.assistedTasks = exports.agentCommand = exports.PROMPT_PLACEHOLDER = exports.AGENT_COMMAND_KEY = void 0;
|
|
3
|
+
exports.runAgentTasks = exports.assistedTasks = exports.agentEnv = exports.agentCommand = exports.FILE_ENV = exports.PROMPT_ENV = exports.agentPrompt = exports.FILE_PLACEHOLDER = exports.PROMPT_PLACEHOLDER = exports.AGENT_COMMAND_EXAMPLE = exports.AGENT_COMMAND_KEY = void 0;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
|
+
const fs_1 = require("fs");
|
|
5
6
|
const path_1 = require("path");
|
|
6
7
|
/** Where the agent command sits in `ethlete.config.local.json`. */
|
|
7
8
|
exports.AGENT_COMMAND_KEY = 'updateAgentCommand';
|
|
8
|
-
/**
|
|
9
|
+
/** An agent command that can edit files without asking, for the docs and the error that names the key. */
|
|
10
|
+
exports.AGENT_COMMAND_EXAMPLE = 'claude --permission-mode acceptEdits -p';
|
|
11
|
+
/** Where the command template takes the whole prompt. */
|
|
9
12
|
exports.PROMPT_PLACEHOLDER = '<prompt>';
|
|
13
|
+
/** Where the command template takes only the path of the task file. */
|
|
14
|
+
exports.FILE_PLACEHOLDER = '<file>';
|
|
15
|
+
/** The prompt one assisted task is handed to an agent with. */
|
|
16
|
+
const agentPrompt = (taskPath) => `Apply the migration task described in ${taskPath} to this repository. ` +
|
|
17
|
+
'Follow its instructions, then delete that file once the change is complete.';
|
|
18
|
+
exports.agentPrompt = agentPrompt;
|
|
19
|
+
exports.PROMPT_ENV = 'ETHLETE_UPDATE_PROMPT';
|
|
20
|
+
exports.FILE_ENV = 'ETHLETE_UPDATE_TASK_FILE';
|
|
21
|
+
const reference = (options) => {
|
|
22
|
+
const { name, platform, insideQuotes } = options;
|
|
23
|
+
const bare = platform === 'win32' ? `%${name}%` : `$${name}`;
|
|
24
|
+
return insideQuotes ? bare : `"${bare}"`;
|
|
25
|
+
};
|
|
26
|
+
const PLACEHOLDERS = [
|
|
27
|
+
{ text: exports.PROMPT_PLACEHOLDER, name: exports.PROMPT_ENV },
|
|
28
|
+
{ text: exports.FILE_PLACEHOLDER, name: exports.FILE_ENV },
|
|
29
|
+
];
|
|
10
30
|
/**
|
|
11
|
-
* The command that hands one task to an agent. `<prompt>` becomes the
|
|
12
|
-
*
|
|
31
|
+
* The command that hands one task to an agent. `<prompt>` becomes the prompt, `<file>` the path of the
|
|
32
|
+
* task file; a template with neither gets the prompt appended, which is what `claude -p` needs. Both
|
|
33
|
+
* values reach the shell as variable references; run it with `agentEnv`.
|
|
13
34
|
*/
|
|
14
35
|
const agentCommand = (options) => {
|
|
15
|
-
const { template,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
36
|
+
const { template, platform = process.platform } = options;
|
|
37
|
+
if (!PLACEHOLDERS.some(({ text }) => template.includes(text))) {
|
|
38
|
+
return `${template} ${reference({ name: exports.PROMPT_ENV, platform, insideQuotes: false })}`;
|
|
39
|
+
}
|
|
40
|
+
let command = '';
|
|
41
|
+
let insideQuotes = false;
|
|
42
|
+
for (let index = 0; index < template.length;) {
|
|
43
|
+
const placeholder = PLACEHOLDERS.find(({ text }) => template.startsWith(text, index));
|
|
44
|
+
if (placeholder) {
|
|
45
|
+
command += reference({ name: placeholder.name, platform, insideQuotes });
|
|
46
|
+
index += placeholder.text.length;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const char = template.charAt(index);
|
|
50
|
+
if (char === '"')
|
|
51
|
+
insideQuotes = !insideQuotes;
|
|
52
|
+
command += char;
|
|
53
|
+
index += 1;
|
|
54
|
+
}
|
|
55
|
+
return command;
|
|
20
56
|
};
|
|
21
57
|
exports.agentCommand = agentCommand;
|
|
58
|
+
const agentEnv = (taskPath) => ({ [exports.PROMPT_ENV]: (0, exports.agentPrompt)(taskPath), [exports.FILE_ENV]: taskPath });
|
|
59
|
+
exports.agentEnv = agentEnv;
|
|
22
60
|
/** The tasks an agent can work on: the ones whose instructions were written as a prompt. */
|
|
23
61
|
const assistedTasks = (tasks) => tasks.filter((task) => task.kind === 'assisted' && task.instructionsFile !== undefined);
|
|
24
62
|
exports.assistedTasks = assistedTasks;
|
|
63
|
+
const runOne = (options) => {
|
|
64
|
+
var _a;
|
|
65
|
+
const { root, template, task } = options;
|
|
66
|
+
const taskPath = (0, path_1.join)(root, (_a = task.instructionsFile) !== null && _a !== void 0 ? _a : '');
|
|
67
|
+
const command = (0, exports.agentCommand)({ template });
|
|
68
|
+
console.log(` ${command}\n ${exports.FILE_ENV}=${taskPath}\n`);
|
|
69
|
+
const result = (0, child_process_1.spawnSync)(command, {
|
|
70
|
+
cwd: root,
|
|
71
|
+
stdio: 'inherit',
|
|
72
|
+
shell: true,
|
|
73
|
+
env: Object.assign(Object.assign({}, process.env), (0, exports.agentEnv)(taskPath)),
|
|
74
|
+
});
|
|
75
|
+
if (result.error)
|
|
76
|
+
return { task, command, state: 'failed', reason: result.error.message };
|
|
77
|
+
if (result.status !== 0)
|
|
78
|
+
return { task, command, state: 'failed', reason: `exited with ${result.status}` };
|
|
79
|
+
if ((0, fs_1.existsSync)(taskPath)) {
|
|
80
|
+
return { task, command, state: 'open', reason: `the agent left ${task.instructionsFile}, so the task stays open` };
|
|
81
|
+
}
|
|
82
|
+
return { task, command, state: 'done' };
|
|
83
|
+
};
|
|
25
84
|
/**
|
|
26
|
-
* Runs the configured agent once per assisted task, in order, so each run has one change to make
|
|
27
|
-
* command is a user-written string, so it runs through a shell.
|
|
85
|
+
* Runs the configured agent once per assisted task, in order, so each run has one change to make, and
|
|
86
|
+
* reports each one as it ends. The command is a user-written string, so it runs through a shell.
|
|
28
87
|
*/
|
|
29
88
|
const runAgentTasks = (options) => {
|
|
30
|
-
const { root, template
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
console.log(`\n ${
|
|
35
|
-
const
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return
|
|
89
|
+
const { root, template } = options;
|
|
90
|
+
const tasks = (0, exports.assistedTasks)(options.tasks);
|
|
91
|
+
return tasks.map((task, index) => {
|
|
92
|
+
const label = `[${index + 1}/${tasks.length}] ${task.packageName} ${task.name}`;
|
|
93
|
+
console.log(`\n ${label}`);
|
|
94
|
+
const run = runOne({ root, template, task });
|
|
95
|
+
if (run.state === 'done')
|
|
96
|
+
console.log(`\n ${label}: done`);
|
|
97
|
+
else
|
|
98
|
+
console.error(`\n ${label}: ${run.reason}`);
|
|
99
|
+
return run;
|
|
41
100
|
});
|
|
42
101
|
};
|
|
43
102
|
exports.runAgentTasks = runAgentTasks;
|
package/src/lib/update/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/ai.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,+BAA4B;AAG5B,mEAAmE;AACtD,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/ai.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,2BAAgC;AAChC,+BAA4B;AAG5B,mEAAmE;AACtD,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,0GAA0G;AAC7F,QAAA,qBAAqB,GAAG,yCAAyC,CAAC;AAE/E,yDAAyD;AAC5C,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAE7C,uEAAuE;AAC1D,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,+DAA+D;AACxD,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC9C,yCAAyC,QAAQ,uBAAuB;IACxE,6EAA6E,CAAC;AAFnE,QAAA,WAAW,eAEwD;AAEnE,QAAA,UAAU,GAAG,uBAAuB,CAAC;AACrC,QAAA,QAAQ,GAAG,0BAA0B,CAAC;AAEnD,MAAM,SAAS,GAAG,CAAC,OAA2E,EAAE,EAAE;IAChG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7D,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,EAAE,IAAI,EAAE,0BAAkB,EAAE,IAAI,EAAE,kBAAU,EAAE;IAC9C,EAAE,IAAI,EAAE,wBAAgB,EAAE,IAAI,EAAE,gBAAQ,EAAE;CAC3C,CAAC;AAEF;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,OAAyD,EAAE,EAAE;IACxF,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,QAAQ,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAEtF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YACzE,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,IAAI,KAAK,GAAG;YAAE,YAAY,GAAG,CAAC,YAAY,CAAC;QAE/C,OAAO,IAAI,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AA5BW,QAAA,YAAY,gBA4BvB;AAEK,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,kBAAU,CAAC,EAAE,IAAA,mBAAW,EAAC,QAAQ,CAAC,EAAE,CAAC,gBAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAAjG,QAAA,QAAQ,YAAyF;AAW9G,4FAA4F;AACrF,MAAM,aAAa,GAAG,CAAC,KAA4B,EAAE,EAAE,CAC5D,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;AAD7E,QAAA,aAAa,iBACgE;AAE1F,MAAM,MAAM,GAAG,CAAC,OAA6D,EAAY,EAAE;;IACzF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,gBAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE;QAChC,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,kCAAO,OAAO,CAAC,GAAG,GAAK,IAAA,gBAAQ,EAAC,QAAQ,CAAC,CAAE;KAC/C,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAE1F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAE3G,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,IAAI,CAAC,gBAAgB,0BAA0B,EAAE,CAAC;IACrH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,OAI7B,EAAc,EAAE;IACf,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,KAAK,GAAG,IAAA,qBAAa,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAEhF,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAE5B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;;YACvD,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAElD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AApBW,QAAA,aAAa,iBAoBxB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ignoreUpdateDir = exports.UPDATE_IGNORE_ENTRY = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const git_1 = require("../api/git");
|
|
7
|
+
exports.UPDATE_IGNORE_ENTRY = '.ethlete/update/';
|
|
8
|
+
const ignoreUpdateDir = (root) => {
|
|
9
|
+
if ((0, git_1.ignoredByGit)(root, `${exports.UPDATE_IGNORE_ENTRY}pending.json`) !== false)
|
|
10
|
+
return false;
|
|
11
|
+
const path = (0, path_1.join)(root, '.gitignore');
|
|
12
|
+
const current = (0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path, 'utf8') : '';
|
|
13
|
+
const separator = current.length === 0 || current.endsWith('\n') ? '' : '\n';
|
|
14
|
+
(0, fs_1.writeFileSync)(path, `${current}${separator}${exports.UPDATE_IGNORE_ENTRY}\n`, 'utf8');
|
|
15
|
+
return true;
|
|
16
|
+
};
|
|
17
|
+
exports.ignoreUpdateDir = ignoreUpdateDir;
|
|
18
|
+
//# sourceMappingURL=gitignore.js.map
|
|
@@ -0,0 +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;AAE/C,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IAC9C,IAAI,IAAA,kBAAY,EAAC,IAAI,EAAE,GAAG,2BAAmB,cAAc,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAErF,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,2BAAmB,IAAI,EAAE,MAAM,CAAC,CAAC;IAE9E,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B"}
|
package/src/lib/update/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./agent-rules-sync"), exports);
|
|
4
5
|
tslib_1.__exportStar(require("./ai"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./args"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./migration-manifest"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/index.ts"],"names":[],"mappings":";;;AAAA,+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,+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,15 +10,33 @@ export type PackageManager = {
|
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
12
|
* The package manager this repo uses: what `packageManager` declares, else the lockfile that is there,
|
|
12
|
-
* else npm. `et update` runs the install itself, so it has to be
|
|
13
|
+
* else the one running this command, else npm. `et update` runs the install itself, so it has to be
|
|
14
|
+
* the same one the repo already uses.
|
|
13
15
|
*/
|
|
14
16
|
export declare const detectPackageManager: (options: {
|
|
15
17
|
root: string;
|
|
16
18
|
manifest?: Manifest;
|
|
17
19
|
env?: NodeJS.ProcessEnv;
|
|
18
20
|
}) => PackageManager;
|
|
21
|
+
/**
|
|
22
|
+
* The environment for the install `et update` spawns. Inside a package manager script, yarn 1 exports
|
|
23
|
+
* its own default registry as `npm_config_registry`, which the child install would read over the
|
|
24
|
+
* repo's `.npmrc` and `.yarnrc`. Dropping it lets the child read the repo's config, as it does when
|
|
25
|
+
* `et` runs outside a script.
|
|
26
|
+
*/
|
|
27
|
+
export declare const installEnv: (env?: NodeJS.ProcessEnv) => NodeJS.ProcessEnv;
|
|
19
28
|
/** The command that runs an `nx` from this repo, for example `yarn nx generate …`. */
|
|
20
29
|
export declare const nxCommand: (options: {
|
|
21
30
|
manager: PackageManager;
|
|
22
31
|
args: readonly string[];
|
|
23
32
|
}) => string[];
|
|
33
|
+
/**
|
|
34
|
+
* Runs a package manager command such as `yarn install`. On Windows the managers are `.cmd` shims,
|
|
35
|
+
* which Node spawns only through a shell (CVE-2024-27980), so the command runs as one quoted line there.
|
|
36
|
+
*/
|
|
37
|
+
export declare const spawnPackageManager: (options: {
|
|
38
|
+
binary: string;
|
|
39
|
+
args: readonly string[];
|
|
40
|
+
spawn: SpawnSyncOptions;
|
|
41
|
+
platform?: NodeJS.Platform;
|
|
42
|
+
}) => import("child_process").SpawnSyncReturns<string | NonSharedBuffer>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nxCommand = exports.detectPackageManager = void 0;
|
|
3
|
+
exports.spawnPackageManager = exports.nxCommand = exports.installEnv = exports.detectPackageManager = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
4
5
|
const fs_1 = require("fs");
|
|
5
6
|
const path_1 = require("path");
|
|
6
7
|
const MANAGERS = {
|
|
@@ -16,27 +17,32 @@ const LOCKFILES = [
|
|
|
16
17
|
['bun.lock', 'bun'],
|
|
17
18
|
['package-lock.json', 'npm'],
|
|
18
19
|
];
|
|
19
|
-
const
|
|
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;
|
|
33
|
+
const INJECTED_REGISTRY = /^npm_config_(@[^:]+:)?registry$/i;
|
|
34
|
+
/**
|
|
35
|
+
* The environment for the install `et update` spawns. Inside a package manager script, yarn 1 exports
|
|
36
|
+
* its own default registry as `npm_config_registry`, which the child install would read over the
|
|
37
|
+
* repo's `.npmrc` and `.yarnrc`. Dropping it lets the child read the repo's config, as it does when
|
|
38
|
+
* `et` runs outside a script.
|
|
39
|
+
*/
|
|
40
|
+
const installEnv = (env = process.env) => {
|
|
41
|
+
if (env['npm_lifecycle_event'] === undefined)
|
|
42
|
+
return env;
|
|
43
|
+
return Object.fromEntries(Object.entries(env).filter(([key]) => !INJECTED_REGISTRY.test(key)));
|
|
44
|
+
};
|
|
45
|
+
exports.installEnv = installEnv;
|
|
40
46
|
/** The command that runs an `nx` from this repo, for example `yarn nx generate …`. */
|
|
41
47
|
const nxCommand = (options) => [
|
|
42
48
|
...options.manager.run,
|
|
@@ -44,4 +50,17 @@ const nxCommand = (options) => [
|
|
|
44
50
|
...options.args,
|
|
45
51
|
];
|
|
46
52
|
exports.nxCommand = nxCommand;
|
|
53
|
+
const CMD_SAFE_ARGUMENT = /^[\w@:/\\.=,+-]+$/;
|
|
54
|
+
const cmdQuoted = (argument) => CMD_SAFE_ARGUMENT.test(argument) ? argument : `"${argument.replace(/"/g, '""')}"`;
|
|
55
|
+
/**
|
|
56
|
+
* Runs a package manager command such as `yarn install`. On Windows the managers are `.cmd` shims,
|
|
57
|
+
* which Node spawns only through a shell (CVE-2024-27980), so the command runs as one quoted line there.
|
|
58
|
+
*/
|
|
59
|
+
const spawnPackageManager = (options) => {
|
|
60
|
+
const { binary, args, spawn, platform = process.platform } = options;
|
|
61
|
+
if (platform !== 'win32')
|
|
62
|
+
return (0, child_process_1.spawnSync)(binary, args, spawn);
|
|
63
|
+
return (0, child_process_1.spawnSync)([binary, ...args].map(cmdQuoted).join(' '), Object.assign(Object.assign({}, spawn), { shell: true }));
|
|
64
|
+
};
|
|
65
|
+
exports.spawnPackageManager = spawnPackageManager;
|
|
47
66
|
//# sourceMappingURL=package-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/package-manager.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,+BAA4B;AAa5B,MAAM,QAAQ,GAA+C;IAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE;IACnE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAC3E,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE;IAChE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;CAChE,CAAC;AAEF,MAAM,SAAS,GAAmC;IAChD,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,UAAU,EAAE,KAAK,CAAC;IACnB,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,
|
|
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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"}
|
|
@@ -5,9 +5,17 @@ export type PendingPackage = {
|
|
|
5
5
|
from: string | null;
|
|
6
6
|
to: string;
|
|
7
7
|
};
|
|
8
|
+
/** A codemod that already applied, so `--continue` does not run it a second time. */
|
|
9
|
+
export type FinishedMigration = {
|
|
10
|
+
packageName: string;
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
8
13
|
export type PendingUpdate = {
|
|
9
14
|
startedAt: string;
|
|
10
15
|
packages: PendingPackage[];
|
|
16
|
+
finished?: FinishedMigration[];
|
|
17
|
+
/** The `--from` versions of the run, so `--continue` migrates from the same place. */
|
|
18
|
+
from?: Record<string, string>;
|
|
11
19
|
};
|
|
12
20
|
/**
|
|
13
21
|
* Records what an update moved, before the install replaces the versions the migrations run from. An
|
|
@@ -18,4 +26,9 @@ export declare const writePendingUpdate: (options: {
|
|
|
18
26
|
pending: PendingUpdate;
|
|
19
27
|
}) => void;
|
|
20
28
|
export declare const readPendingUpdate: (root: string) => PendingUpdate | undefined;
|
|
29
|
+
export declare const isFinished: (options: {
|
|
30
|
+
finished: readonly FinishedMigration[];
|
|
31
|
+
packageName: string;
|
|
32
|
+
name: string;
|
|
33
|
+
}) => boolean;
|
|
21
34
|
export declare const clearPendingUpdate: (root: string) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clearPendingUpdate = exports.readPendingUpdate = exports.writePendingUpdate = exports.PENDING_FILE = void 0;
|
|
3
|
+
exports.clearPendingUpdate = exports.isFinished = exports.readPendingUpdate = exports.writePendingUpdate = exports.PENDING_FILE = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const tasks_1 = require("./tasks");
|
|
@@ -30,12 +30,17 @@ const readPendingUpdate = (root) => {
|
|
|
30
30
|
if (!isRecord(parsed) || !Array.isArray(parsed['packages']))
|
|
31
31
|
return undefined;
|
|
32
32
|
const packages = parsed['packages'].filter((entry) => isRecord(entry) && typeof entry['name'] === 'string' && typeof entry['to'] === 'string');
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
const finished = Array.isArray(parsed['finished'])
|
|
34
|
+
? parsed['finished'].filter((entry) => isRecord(entry) && typeof entry['packageName'] === 'string' && typeof entry['name'] === 'string')
|
|
35
|
+
: [];
|
|
36
|
+
const from = isRecord(parsed['from'])
|
|
37
|
+
? Object.fromEntries(Object.entries(parsed['from']).filter((entry) => typeof entry[1] === 'string'))
|
|
38
|
+
: undefined;
|
|
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 } : {}));
|
|
37
40
|
};
|
|
38
41
|
exports.readPendingUpdate = readPendingUpdate;
|
|
42
|
+
const isFinished = (options) => options.finished.some((entry) => entry.packageName === options.packageName && entry.name === options.name);
|
|
43
|
+
exports.isFinished = isFinished;
|
|
39
44
|
const clearPendingUpdate = (root) => (0, fs_1.rmSync)((0, path_1.join)(root, exports.PENDING_FILE), { force: true });
|
|
40
45
|
exports.clearPendingUpdate = clearPendingUpdate;
|
|
41
46
|
//# sourceMappingURL=pending.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/pending.ts"],"names":[],"mappings":";;;AAAA,2BAAgF;AAChF,+BAA4B;AAC5B,mCAAqC;AAExB,QAAA,YAAY,GAAG,IAAA,WAAI,EAAC,kBAAU,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PackageManagerName } from './package-manager';
|
|
1
2
|
export declare const DEFAULT_REGISTRY = "https://registry.npmjs.org";
|
|
2
3
|
export type RegistryPackage = {
|
|
3
4
|
distTags: Record<string, string>;
|
|
@@ -10,8 +11,28 @@ export type RegistryLookup = {
|
|
|
10
11
|
ok: false;
|
|
11
12
|
reason: string;
|
|
12
13
|
};
|
|
13
|
-
/**
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The registry the repo's package manager installs `@ethlete/*` from: the repo's `.npmrc`, `.yarnrc` or
|
|
16
|
+
* `.yarnrc.yml` first, since yarn 1 exports its default registry to scripts even when an `.npmrc` sets
|
|
17
|
+
* another one, then the environment, then the public registry.
|
|
18
|
+
*/
|
|
19
|
+
export declare const registryUrl: (options?: {
|
|
20
|
+
root?: string;
|
|
21
|
+
manager?: PackageManagerName;
|
|
22
|
+
env?: NodeJS.ProcessEnv;
|
|
23
|
+
home?: string;
|
|
24
|
+
}) => string;
|
|
25
|
+
/**
|
|
26
|
+
* The `Authorization` header npm would send to `registry`, from the `//host/path/:_authToken` or
|
|
27
|
+
* `:_auth` entries of the repo's and the user's `.npmrc`, with `${VAR}` expanded. The longest matching
|
|
28
|
+
* path wins.
|
|
29
|
+
*/
|
|
30
|
+
export declare const registryAuthorization: (options: {
|
|
31
|
+
registry: string;
|
|
32
|
+
root?: string;
|
|
33
|
+
env?: NodeJS.ProcessEnv;
|
|
34
|
+
home?: string;
|
|
35
|
+
}) => string | undefined;
|
|
15
36
|
export declare const packageUrl: (options: {
|
|
16
37
|
registry: string;
|
|
17
38
|
packageName: string;
|
|
@@ -20,6 +41,7 @@ export declare const packageUrl: (options: {
|
|
|
20
41
|
export declare const fetchRegistryPackage: (options: {
|
|
21
42
|
packageName: string;
|
|
22
43
|
registry?: string;
|
|
44
|
+
authorization?: string;
|
|
23
45
|
}) => Promise<RegistryLookup>;
|
|
24
46
|
/**
|
|
25
47
|
* Which dist tag an update follows when the caller names none: the one the installed prerelease belongs
|