@devbie/newbie-cli 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +79 -103
  2. package/dist/assemble/modules-copy.js +1 -1
  3. package/dist/assemble/modules-copy.js.map +1 -1
  4. package/dist/assemble/modules.js +1 -1
  5. package/dist/assemble/schema.js +1 -1
  6. package/dist/commands/create.js +1 -1
  7. package/dist/commands/create.js.map +1 -1
  8. package/dist/commands/doctor.d.ts +4 -1
  9. package/dist/commands/doctor.js +36 -16
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/modules/default.d.ts +5 -0
  12. package/dist/commands/{default.js → modules/default.js} +64 -13
  13. package/dist/commands/modules/default.js.map +1 -0
  14. package/dist/commands/modules/install.d.ts +7 -0
  15. package/dist/commands/modules/install.js +121 -0
  16. package/dist/commands/modules/install.js.map +1 -0
  17. package/dist/commands/modules/lint.d.ts +3 -0
  18. package/dist/commands/{dev → modules}/lint.js +12 -11
  19. package/dist/commands/modules/lint.js.map +1 -0
  20. package/dist/commands/modules/remove.d.ts +6 -0
  21. package/dist/commands/modules/remove.js +47 -0
  22. package/dist/commands/modules/remove.js.map +1 -0
  23. package/dist/commands/modules/update.d.ts +8 -0
  24. package/dist/commands/{update.js → modules/update.js} +68 -27
  25. package/dist/commands/modules/update.js.map +1 -0
  26. package/dist/commands/modules/watch.d.ts +6 -0
  27. package/dist/commands/{watch.js → modules/watch.js} +16 -8
  28. package/dist/commands/modules/watch.js.map +1 -0
  29. package/dist/commands/shared.d.ts +1 -0
  30. package/dist/commands/shared.js +1 -1
  31. package/dist/commands/shared.js.map +1 -1
  32. package/dist/commands/template/sync.d.ts +7 -0
  33. package/dist/commands/{sync-template.js → template/sync.js} +10 -19
  34. package/dist/commands/template/sync.js.map +1 -0
  35. package/dist/core/deploy-compose.js +1 -1
  36. package/dist/index.d.ts +2 -1
  37. package/dist/index.js +3 -179
  38. package/dist/index.js.map +1 -1
  39. package/dist/lib/module-selector.d.ts +1 -0
  40. package/dist/lib/module-selector.js +13 -0
  41. package/dist/lib/module-selector.js.map +1 -0
  42. package/dist/lib/sink.d.ts +10 -1
  43. package/dist/lib/sink.js +42 -3
  44. package/dist/lib/sink.js.map +1 -1
  45. package/dist/program.d.ts +3 -0
  46. package/dist/program.js +166 -0
  47. package/dist/program.js.map +1 -0
  48. package/package.json +1 -1
  49. package/dist/commands/agent.d.ts +0 -5
  50. package/dist/commands/agent.js +0 -223
  51. package/dist/commands/agent.js.map +0 -1
  52. package/dist/commands/apply.d.ts +0 -7
  53. package/dist/commands/apply.js +0 -61
  54. package/dist/commands/apply.js.map +0 -1
  55. package/dist/commands/assemble.d.ts +0 -5
  56. package/dist/commands/assemble.js +0 -66
  57. package/dist/commands/assemble.js.map +0 -1
  58. package/dist/commands/config.d.ts +0 -7
  59. package/dist/commands/config.js +0 -120
  60. package/dist/commands/config.js.map +0 -1
  61. package/dist/commands/default.d.ts +0 -2
  62. package/dist/commands/default.js.map +0 -1
  63. package/dist/commands/dev/lint.d.ts +0 -3
  64. package/dist/commands/dev/lint.js.map +0 -1
  65. package/dist/commands/install.d.ts +0 -4
  66. package/dist/commands/install.js +0 -48
  67. package/dist/commands/install.js.map +0 -1
  68. package/dist/commands/sync-template.d.ts +0 -8
  69. package/dist/commands/sync-template.js.map +0 -1
  70. package/dist/commands/update.d.ts +0 -8
  71. package/dist/commands/update.js.map +0 -1
  72. package/dist/commands/watch.d.ts +0 -5
  73. package/dist/commands/watch.js.map +0 -1
@@ -1,223 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runAgent = runAgent;
7
- const promises_1 = __importDefault(require("node:fs/promises"));
8
- const node_os_1 = __importDefault(require("node:os"));
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const colorette_1 = require("colorette");
11
- const modules_state_1 = require("../core/modules-state");
12
- const errors_1 = require("../lib/errors");
13
- const exec_1 = require("../lib/exec");
14
- const modules_state_2 = require("../lib/modules-state");
15
- const registry_1 = require("../lib/registry");
16
- const version_1 = require("../lib/version");
17
- const apply_1 = require("./apply");
18
- const status_1 = require("./status");
19
- const update_1 = require("./update");
20
- const ENDPOINT_ENV = "MODULE_HUB_ENDPOINT";
21
- const TOKEN_ENV = "MODULE_HUB_TOKEN";
22
- const DEFAULT_POLL_INTERVAL_SECONDS = 60;
23
- class HubHttpError extends Error {
24
- status;
25
- constructor(status, message) {
26
- super(message);
27
- this.status = status;
28
- }
29
- }
30
- function sleep(ms) {
31
- return new Promise((resolve) => setTimeout(resolve, ms));
32
- }
33
- async function postPoll(endpoint, token, body) {
34
- const url = `${endpoint}/module-hub/agent/poll`;
35
- let response;
36
- try {
37
- response = await fetch(url, {
38
- method: "POST",
39
- headers: {
40
- "content-type": "application/json",
41
- "x-module-hub-token": token,
42
- },
43
- body: JSON.stringify(body),
44
- });
45
- }
46
- catch (error) {
47
- throw new errors_1.CliError(`Cannot reach module hub at ${url}: ${error.message}`);
48
- }
49
- const text = await response.text();
50
- if (!response.ok) {
51
- throw new HubHttpError(response.status, `Hub poll failed with HTTP ${response.status}: ${text.slice(0, 500)}`);
52
- }
53
- let parsed;
54
- try {
55
- parsed = JSON.parse(text);
56
- }
57
- catch {
58
- throw new errors_1.CliError(`Hub poll returned invalid JSON: ${text.slice(0, 500)}`);
59
- }
60
- const payload = parsed && typeof parsed === "object" && "data" in parsed && "code" in parsed
61
- ? parsed.data
62
- : parsed;
63
- return payload;
64
- }
65
- async function workingTreeSummary(cwd) {
66
- try {
67
- const result = await (0, exec_1.execCapture)("git", ["status", "--porcelain"], { cwd });
68
- return result.stdout.trim() || null;
69
- }
70
- catch {
71
- return null;
72
- }
73
- }
74
- async function collectReceiptSummary(cwd) {
75
- return {
76
- changedFiles: await workingTreeSummary(cwd),
77
- status: await (0, status_1.collectStatus)(cwd),
78
- };
79
- }
80
- async function executeSetChange(change, options) {
81
- const state = await (0, modules_state_2.readModulesState)(options.cwd);
82
- const current = (0, modules_state_1.moduleKeys)(state);
83
- const next = change.type === "ADD"
84
- ? [...new Set([...current, change.moduleKey])]
85
- : current.filter((key) => key !== change.moduleKey);
86
- const specPath = node_path_1.default.join(node_os_1.default.tmpdir(), `newbie-agent-apply-${change.id}.json`);
87
- await promises_1.default.writeFile(specPath, JSON.stringify({ modules: next }, null, 2), "utf8");
88
- try {
89
- await (0, apply_1.runApply)({ ...options, config: specPath, ci: true });
90
- }
91
- finally {
92
- await promises_1.default.rm(specPath, { force: true });
93
- }
94
- }
95
- async function executeUpgrade(change, options) {
96
- const previousRef = process.env[registry_1.REGISTRY_REF_ENV];
97
- if (change.targetSourceCommit) {
98
- process.env[registry_1.REGISTRY_REF_ENV] = change.targetSourceCommit;
99
- }
100
- else {
101
- delete process.env[registry_1.REGISTRY_REF_ENV];
102
- }
103
- try {
104
- await (0, update_1.runUpdate)({
105
- ...options,
106
- yes: true,
107
- force: change.driftPolicy === "force",
108
- keys: [change.moduleKey],
109
- });
110
- }
111
- finally {
112
- if (previousRef === undefined) {
113
- delete process.env[registry_1.REGISTRY_REF_ENV];
114
- }
115
- else {
116
- process.env[registry_1.REGISTRY_REF_ENV] = previousRef;
117
- }
118
- }
119
- }
120
- async function executeChange(change, status, options) {
121
- console.info((0, colorette_1.cyan)(`\n[agent] Executing ${change.type} ${change.moduleKey} (${change.id})`));
122
- if (change.driftPolicy !== "force") {
123
- const entry = status.modules.find((module) => module.key === change.moduleKey);
124
- if (entry?.drift && !entry.drift.clean) {
125
- return {
126
- changeRequestId: change.id,
127
- outcome: "FAILED",
128
- error: `local drift detected on '${change.moduleKey}' (driftPolicy=reject)`,
129
- };
130
- }
131
- }
132
- try {
133
- if (change.type === "UPGRADE") {
134
- await executeUpgrade(change, options);
135
- }
136
- else {
137
- await executeSetChange(change, options);
138
- }
139
- console.info((0, colorette_1.green)(`[agent] ${change.type} ${change.moduleKey} completed.`));
140
- return {
141
- changeRequestId: change.id,
142
- outcome: "DONE",
143
- summary: await collectReceiptSummary(options.cwd),
144
- };
145
- }
146
- catch (error) {
147
- console.error((0, colorette_1.red)(`[agent] ${change.type} ${change.moduleKey} failed: ${error.message}`));
148
- return {
149
- changeRequestId: change.id,
150
- outcome: "FAILED",
151
- error: error.message,
152
- };
153
- }
154
- }
155
- async function runAgent(options) {
156
- const endpoint = process.env[ENDPOINT_ENV]?.replace(/\/+$/, "");
157
- const token = process.env[TOKEN_ENV];
158
- if (!endpoint || !token) {
159
- throw new errors_1.CliError(`Agent requires ${ENDPOINT_ENV} and ${TOKEN_ENV} to be set.`);
160
- }
161
- const cwd = node_path_1.default.resolve(options.cwd);
162
- const agentOptions = { ...options, cwd };
163
- let pollInterval = DEFAULT_POLL_INTERVAL_SECONDS;
164
- let receipts = [];
165
- let stopped = false;
166
- const stop = () => {
167
- stopped = true;
168
- };
169
- process.on("SIGINT", stop);
170
- process.on("SIGTERM", stop);
171
- console.info((0, colorette_1.cyan)(`[agent] Module hub: ${endpoint}`));
172
- console.info((0, colorette_1.cyan)(`[agent] Mode: ${options.once ? "single pass (--once)" : `daemon (${pollInterval}s interval)`}`));
173
- while (!stopped) {
174
- const status = await (0, status_1.collectStatus)(cwd, { drift: true });
175
- let response;
176
- try {
177
- response = await postPoll(endpoint, token, {
178
- cliVersion: version_1.CLI_VERSION,
179
- status,
180
- results: receipts,
181
- });
182
- receipts = [];
183
- }
184
- catch (error) {
185
- if (error instanceof HubHttpError && (error.status === 401 || error.status === 403)) {
186
- throw new errors_1.CliError(`Hub rejected the installation token (HTTP ${error.status}). The token may be revoked.`);
187
- }
188
- if (options.once)
189
- throw error;
190
- console.error((0, colorette_1.red)(`[agent] Poll failed: ${error.message}; retrying in ${pollInterval}s.`));
191
- await sleep(pollInterval * 1000);
192
- continue;
193
- }
194
- pollInterval = response.pollIntervalSeconds ?? DEFAULT_POLL_INTERVAL_SECONDS;
195
- const pending = response.pendingChanges ?? [];
196
- if (pending.length === 0) {
197
- if (options.once) {
198
- console.info((0, colorette_1.green)("\n[agent] No pending changes; single pass complete.\n"));
199
- return;
200
- }
201
- console.info(`[agent] ${new Date().toISOString()} idle (registry HEAD: ${response.latestRegistrySourceCommit ?? "unknown"})`);
202
- await sleep(pollInterval * 1000);
203
- continue;
204
- }
205
- console.info((0, colorette_1.yellow)(`[agent] Received ${pending.length} change request(s).`));
206
- for (const change of pending) {
207
- if (change.delivery && change.delivery !== "worktree") {
208
- receipts.push({
209
- changeRequestId: change.id,
210
- outcome: "FAILED",
211
- error: `delivery '${change.delivery}' is not supported by this CLI version`,
212
- });
213
- continue;
214
- }
215
- receipts.push(await executeChange(change, status, agentOptions));
216
- }
217
- if (options.once && pending.length > 0) {
218
- console.info((0, colorette_1.cyan)("[agent] Delivering receipts with a final poll..."));
219
- }
220
- }
221
- console.info((0, colorette_1.yellow)("\n[agent] Stopped.\n"));
222
- }
223
- //# sourceMappingURL=agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { GlobalOptions } from "./shared";
2
- export interface ApplyOptions extends GlobalOptions {
3
- config: string;
4
- ci?: boolean;
5
- }
6
- export declare function readSpec(file: string): Promise<string[]>;
7
- export declare function runApply(options: ApplyOptions): Promise<void>;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.readSpec = readSpec;
7
- exports.runApply = runApply;
8
- const promises_1 = __importDefault(require("node:fs/promises"));
9
- const node_path_1 = __importDefault(require("node:path"));
10
- const colorette_1 = require("colorette");
11
- const pipeline_1 = require("../assemble/pipeline");
12
- const errors_1 = require("../lib/errors");
13
- const registry_1 = require("../lib/registry");
14
- const shared_1 = require("./shared");
15
- async function readSpec(file) {
16
- const absolute = node_path_1.default.resolve(file);
17
- let raw;
18
- try {
19
- raw = await promises_1.default.readFile(absolute, "utf8");
20
- }
21
- catch (error) {
22
- throw new errors_1.CliError(`Cannot read apply spec ${file}: ${error.message}`);
23
- }
24
- let spec;
25
- try {
26
- spec = JSON.parse(raw);
27
- }
28
- catch (error) {
29
- throw new errors_1.CliError(`Invalid JSON in apply spec ${file}: ${error.message}`);
30
- }
31
- if (!Array.isArray(spec.modules) || !spec.modules.every((key) => typeof key === "string")) {
32
- throw new errors_1.CliError(`Apply spec ${file} must contain a string array "modules".`);
33
- }
34
- return spec.modules;
35
- }
36
- async function runApply(options) {
37
- const wanted = await readSpec(options.config);
38
- const { ctx } = await (0, shared_1.createContext)(options, {
39
- ensureConfig: true,
40
- fetch: true,
41
- });
42
- const registryModules = await (0, registry_1.listRegistryModules)(ctx.registry.root);
43
- const known = new Set(registryModules.map((entry) => entry.key));
44
- const deduped = new Set(wanted);
45
- const unknown = [...deduped].filter((key) => !known.has(key));
46
- if (unknown.length > 0) {
47
- throw new errors_1.CliError(`Unknown module(s) in ${options.config}: ${unknown.join(", ")}. Available modules: ${[...known].join(", ")}`);
48
- }
49
- const deprecated = (0, registry_1.deprecatedNoticesOf)(registryModules);
50
- const deprecatedChosen = [...deduped].filter((key) => deprecated.has(key));
51
- if (deprecatedChosen.length > 0) {
52
- throw new errors_1.CliError(`Cannot apply deprecated module(s): ${deprecatedChosen
53
- .map((key) => `'${key}' (${deprecated.get(key)})`)
54
- .join(", ")}`);
55
- }
56
- const nextKeys = [...deduped];
57
- await (0, pipeline_1.applyModuleKeys)(ctx, nextKeys);
58
- ctx.issues.assertEmpty();
59
- console.info((0, colorette_1.bold)((0, colorette_1.green)("\n🍺 A P P L I E D\n")));
60
- }
61
- //# sourceMappingURL=apply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { GlobalOptions } from "./shared";
2
- export interface AssembleOptions extends GlobalOptions {
3
- check?: boolean;
4
- }
5
- export declare function runAssemble(options: AssembleOptions): Promise<void>;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runAssemble = runAssemble;
4
- const colorette_1 = require("colorette");
5
- const deploy_1 = require("../assemble/deploy");
6
- const module_source_drift_1 = require("../assemble/module-source-drift");
7
- const modules_state_1 = require("../core/modules-state");
8
- const unified_diff_1 = require("../core/unified-diff");
9
- const errors_1 = require("../lib/errors");
10
- const shared_1 = require("./shared");
11
- function printSourceDrift(drift) {
12
- const verdict = drift.report === null ? "absent from" : "differs from";
13
- console.info((0, colorette_1.bold)(`\n# ${drift.installedPath} (${verdict} ${drift.registryPath})`));
14
- if (drift.report === null)
15
- return;
16
- for (const file of drift.report.added)
17
- console.info(` added: ${file}`);
18
- for (const file of drift.report.changed)
19
- console.info(` changed: ${file}`);
20
- for (const file of drift.report.removed)
21
- console.info(` removed: ${file}`);
22
- }
23
- async function runAssemble(options) {
24
- const { ctx, sink } = await (0, shared_1.createContext)(options, { fetch: false });
25
- const enabledKeys = (0, modules_state_1.moduleKeys)(ctx.state);
26
- const plans = await (0, deploy_1.planDeployRenders)({ cwd: ctx.cwd, sink, issues: ctx.issues, enabledKeys });
27
- const sourceDrifts = options.check
28
- ? await (0, module_source_drift_1.diffModuleSources)({ cwd: ctx.cwd, registryRoot: ctx.registry.root, enabledKeys })
29
- : [];
30
- if (plans.length === 0 && sourceDrifts.length === 0) {
31
- console.info((0, colorette_1.green)((0, colorette_1.bold)(options.check
32
- ? "✓ Deploy assets are up to date and module sources match the registry checkout."
33
- : "✓ Deploy assets are up to date with the installed module set.")));
34
- return;
35
- }
36
- if (options.check) {
37
- for (const plan of plans) {
38
- console.info((0, colorette_1.bold)(`\n# ${plan.path} (${plan.current === null ? "missing in project" : "drifts from render"})`));
39
- const aLabel = plan.current === null ? "/dev/null" : `a/${plan.path}`;
40
- process.stdout.write((0, unified_diff_1.unifiedDiff)(plan.current ?? "", plan.next, aLabel, `b/${plan.path}`));
41
- }
42
- for (const drift of sourceDrifts)
43
- printSourceDrift(drift);
44
- const problems = [];
45
- if (plans.length > 0) {
46
- problems.push(`${plans.length} deploy asset(s) drift from the installed module set; run \`newbie assemble\` to regenerate.`);
47
- }
48
- if (sourceDrifts.length > 0) {
49
- const keys = sourceDrifts.map((drift) => drift.key).join(", ");
50
- problems.push(`${sourceDrifts.length} installed module(s) differ from the registry checkout (${keys}); ` +
51
- "back-port the host changes to newbie-modules, or run `newbie update` to adopt the registry version.");
52
- }
53
- throw new errors_1.CliError(problems.join("\n"));
54
- }
55
- for (const plan of plans) {
56
- console.info(` ${plan.path}`);
57
- }
58
- await (0, deploy_1.applyDeployRenders)(sink, plans);
59
- if (options.dryRun) {
60
- console.info("[dry-run] no files were modified");
61
- }
62
- else {
63
- console.info((0, colorette_1.green)((0, colorette_1.bold)("\n✓ Deploy assets updated.")));
64
- }
65
- }
66
- //# sourceMappingURL=assemble.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../src/commands/assemble.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { GlobalOptions } from "./shared";
2
- export interface ConfigOptions extends GlobalOptions {
3
- add?: string[];
4
- remove?: string[];
5
- list?: boolean;
6
- }
7
- export declare function runConfig(options: ConfigOptions): Promise<void>;
@@ -1,120 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runConfig = runConfig;
4
- const prompts_1 = require("@inquirer/prompts");
5
- const colorette_1 = require("colorette");
6
- const module_graph_1 = require("../assemble/module-graph");
7
- const module_closure_1 = require("../core/module-closure");
8
- const modules_state_1 = require("../core/modules-state");
9
- const registry_1 = require("../lib/registry");
10
- const modules_state_2 = require("../lib/modules-state");
11
- const errors_1 = require("../lib/errors");
12
- const shared_1 = require("./shared");
13
- function parseModuleList(values) {
14
- return (values ?? [])
15
- .flatMap((value) => value.split(","))
16
- .map((value) => value.trim())
17
- .filter(Boolean);
18
- }
19
- function assertKnown(names, known) {
20
- const knownSet = new Set(known);
21
- const unknown = names.filter((name) => !knownSet.has(name));
22
- if (unknown.length > 0) {
23
- throw new errors_1.CliError(`Unknown module(s): ${unknown.join(", ")}. Available modules: ${known.join(", ")}`);
24
- }
25
- }
26
- async function runConfig(options) {
27
- const { ctx } = await (0, shared_1.createContext)(options, {
28
- ensureConfig: true,
29
- fetch: false,
30
- });
31
- const { cwd, sink } = ctx;
32
- const registryModules = await (0, registry_1.listRegistryModules)(ctx.registry.root);
33
- const known = registryModules.map((entry) => entry.key);
34
- const deprecatedNotices = (0, registry_1.deprecatedNoticesOf)(registryModules);
35
- if (options.list) {
36
- console.info((0, colorette_1.green)("enabled modules:"));
37
- for (const record of ctx.state.modules) {
38
- const version = record.version ?? (record.sourceCommit ? record.sourceCommit.slice(0, 7) : "(not installed)");
39
- const deprecated = deprecatedNotices.get(record.key);
40
- console.info(` - ${record.key} (${version})${deprecated ? " [deprecated]" : ""}`);
41
- }
42
- return;
43
- }
44
- const addNames = parseModuleList(options.add);
45
- const removeNames = parseModuleList(options.remove);
46
- if (addNames.length > 0 || removeNames.length > 0) {
47
- assertKnown(addNames, known);
48
- assertKnown(removeNames, known);
49
- for (const name of addNames) {
50
- const reason = deprecatedNotices.get(name);
51
- if (reason) {
52
- throw new errors_1.CliError(`Cannot add deprecated module '${name}': ${reason}`);
53
- }
54
- }
55
- const current = (0, modules_state_1.moduleKeys)(ctx.state);
56
- const rootsWithAdds = [...new Set([...current, ...addNames])];
57
- const preClosure = await (0, module_graph_1.expandRegistryClosure)(ctx.registry.root, rootsWithAdds);
58
- const missing = (0, module_graph_1.describeMissingDependencies)(preClosure);
59
- if (missing.length > 0) {
60
- throw new errors_1.CliError(`Cannot resolve module dependencies:\n - ${missing.join("\n - ")}`);
61
- }
62
- const keptRoots = rootsWithAdds.filter((name) => !removeNames.includes(name));
63
- const blocks = (0, module_closure_1.findRemovalBlocks)(removeNames, keptRoots, preClosure.graph);
64
- if (blocks.length > 0) {
65
- const lines = blocks.map((block) => `cannot remove '${block.key}': still required by ${block.requiredBy.join(", ")}`);
66
- throw new errors_1.CliError(`${lines.join("\n")}. Remove the dependent modules first.`);
67
- }
68
- const next = (0, module_closure_1.expandModuleClosure)(keptRoots, preClosure.graph).keys;
69
- const nextSet = new Set(next);
70
- const currentSet = new Set(current);
71
- await (0, modules_state_2.writeModulesState)(cwd, sink, (0, modules_state_1.withModuleKeys)(ctx.state, next));
72
- for (const name of next.filter((key) => !currentSet.has(key))) {
73
- const requiredBy = (0, module_closure_1.directDependents)(name, preClosure.graph, nextSet);
74
- console.info((0, colorette_1.cyan)(`+ ${name}${requiredBy.length ? ` (required by: ${requiredBy.join(", ")})` : ""}`));
75
- }
76
- for (const name of current.filter((key) => !nextSet.has(key)))
77
- console.info((0, colorette_1.cyan)(`- ${name}`));
78
- console.info((0, colorette_1.green)(`[info] enabled modules: ${next.join(", ") || "(none)"}`));
79
- return;
80
- }
81
- const current = (0, modules_state_1.moduleKeys)(ctx.state).filter((key) => known.includes(key));
82
- const choices = registryModules
83
- .filter((entry) => !deprecatedNotices.has(entry.key) || current.includes(entry.key))
84
- .map((entry) => {
85
- const checked = current.includes(entry.key);
86
- return {
87
- value: entry.key,
88
- name: `${entry.key}${checked ? (deprecatedNotices.has(entry.key) ? " (enabled, deprecated)" : " (enabled)") : ""}`,
89
- checked,
90
- };
91
- });
92
- const chosen = await (0, prompts_1.checkbox)({
93
- message: "Config modules:",
94
- choices,
95
- pageSize: 100,
96
- loop: true,
97
- });
98
- const closure = await (0, module_graph_1.expandRegistryClosure)(ctx.registry.root, chosen);
99
- const missing = (0, module_graph_1.describeMissingDependencies)(closure);
100
- if (missing.length > 0) {
101
- throw new errors_1.CliError(`Cannot resolve module dependencies:\n - ${missing.join("\n - ")}`);
102
- }
103
- const next = closure.keys;
104
- const currentSet = new Set(current);
105
- const nextSet = new Set(next);
106
- if (next.length === current.length && next.every((name) => current.includes(name))) {
107
- console.info("\n[info] You did not make any changes to the configuration.\n");
108
- return;
109
- }
110
- for (const name of closure.added.filter((key) => currentSet.has(key))) {
111
- const requiredBy = (0, module_closure_1.directDependents)(name, closure.graph, nextSet);
112
- console.info((0, colorette_1.cyan)(`= ${name} kept enabled (required by: ${requiredBy.join(", ") || "?"})`));
113
- }
114
- await (0, modules_state_2.writeModulesState)(cwd, sink, (0, modules_state_1.withModuleKeys)(ctx.state, next));
115
- for (const name of next.filter((n) => !currentSet.has(n)))
116
- console.info((0, colorette_1.cyan)(`+ ${name}`));
117
- for (const name of current.filter((n) => !nextSet.has(n)))
118
- console.info((0, colorette_1.cyan)(`- ${name}`));
119
- }
120
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { GlobalOptions } from "./shared";
2
- export declare function runInteractive(options: GlobalOptions): Promise<void>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/commands/default.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function runDevLint(options: {
2
- cwd: string;
3
- }): Promise<void>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/commands/dev/lint.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { GlobalOptions } from "./shared";
2
- export declare function runInstall(options: GlobalOptions & {
3
- yes?: boolean;
4
- }): Promise<void>;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runInstall = runInstall;
4
- const prompts_1 = require("@inquirer/prompts");
5
- const colorette_1 = require("colorette");
6
- const pipeline_1 = require("../assemble/pipeline");
7
- const shared_1 = require("./shared");
8
- async function runInstall(options) {
9
- const { ctx } = await (0, shared_1.createContext)(options, { fetch: true });
10
- const plan = await (0, pipeline_1.planReconcile)(ctx);
11
- const { installed, uninstalled, closureAdded } = plan;
12
- for (const addition of closureAdded ?? []) {
13
- console.info((0, colorette_1.cyan)(`[info] ${addition.key} is required by ${addition.requiredBy.join(", ")} and will also be enabled.`));
14
- }
15
- if (installed.length === 0 && uninstalled.length === 0) {
16
- await (0, pipeline_1.applyPlanned)(ctx, plan);
17
- ctx.issues.assertEmpty();
18
- console.info((0, colorette_1.green)("[info] Project is in sync with modules.json; wiring refreshed."));
19
- return;
20
- }
21
- let message;
22
- if (!uninstalled.length && installed.length) {
23
- message = `Do you want to INSTALL ${(0, colorette_1.cyan)(installed.join(", "))}?`;
24
- }
25
- else if (uninstalled.length && !installed.length) {
26
- message = `Do you want to UNINSTALL ${(0, colorette_1.inverse)(uninstalled.join(", "))}?`;
27
- }
28
- else {
29
- message = `Do you want to UNINSTALL ${(0, colorette_1.inverse)(uninstalled.join(", "))} and INSTALL ${(0, colorette_1.cyan)(installed.join(", "))}?`;
30
- }
31
- if (!options.yes && !options.dryRun) {
32
- const confirmed = await (0, prompts_1.select)({
33
- message,
34
- choices: [
35
- { name: "Yes", value: "yes" },
36
- { name: "No", value: "no" },
37
- ],
38
- });
39
- if (confirmed !== "yes") {
40
- console.info("[info] Cancelled.");
41
- return;
42
- }
43
- }
44
- await (0, pipeline_1.applyPlanned)(ctx, plan);
45
- ctx.issues.assertEmpty();
46
- console.info((0, colorette_1.bold)((0, colorette_1.green)("\n🍺 C O M P L E T E\n")));
47
- }
48
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":";;AAOA,gCA+CC;AAtDD,+CAA2C;AAC3C,yCAAuD;AAEvD,mDAAmE;AAEnE,qCAAwD;AAEjD,KAAK,UAAU,UAAU,CAAC,OAA0C;IACzE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,sBAAa,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,IAAI,GAAG,MAAM,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEtD,KAAK,MAAM,QAAQ,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CACV,IAAA,gBAAI,EAAC,UAAU,QAAQ,CAAC,GAAG,mBAAmB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAC1G,CAAC;IACJ,CAAC;IAID,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,gEAAgE,CAAC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,GAAG,0BAA0B,IAAA,gBAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IACpE,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,GAAG,4BAA4B,IAAA,mBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,4BAA4B,IAAA,mBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAA,gBAAI,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;IACrH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC7B,OAAO;YACP,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC5B;SACF,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,IAAA,uBAAY,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,IAAA,iBAAK,EAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -1,8 +0,0 @@
1
- import { GlobalOptions } from "./shared";
2
- import { TemplateReference } from "./create";
3
- export interface SyncTemplateOptions extends GlobalOptions, TemplateReference {
4
- write?: boolean;
5
- check?: boolean;
6
- paths?: string[];
7
- }
8
- export declare function runSyncTemplate(options: SyncTemplateOptions): Promise<void>;