craftar 0.17.4 → 0.18.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/core/impact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/core/impact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,502 @@
1
+ import { existsSync } from "node:fs";
2
+ import { TARGETS } from "../schema/index.js";
3
+ import { countStates } from "./impact.js";
4
+ import { resolveHome } from "./home-lock.js";
5
+ import { checkInitFlags, checkLocalKeys, forgeSource, initLine } from "./init.js";
6
+ import { planRecipeEdit, slotHeld } from "./recipe-edit.js";
7
+ import { readRegistry } from "./registry.js";
8
+ import { classifyForge, credentialFault } from "./remote.js";
9
+ import { profileNotFoundMessage, resolve } from "./resolve.js";
10
+ import { loadForgeSource, mergeWorkspaceConfig } from "./sync.js";
11
+ /**
12
+ * The Forge last used on this machine: the entry with the most recent `lastSync`
13
+ * whose Forge can be offered — a path entry by its `key` (skipped when `null` or gone),
14
+ * a remote one by its `source` (skipped when `credentialFault`).
15
+ */
16
+ export function lastForge(registry, exists) {
17
+ const sorted = [...registry.workspaces].sort((a, b) => b.lastSync.localeCompare(a.lastSync));
18
+ for (const entry of sorted) {
19
+ const offer = offerableForge(entry, exists);
20
+ if (offer !== null)
21
+ return offer;
22
+ }
23
+ return null;
24
+ }
25
+ function offerableForge(entry, exists) {
26
+ if (entry.forge.kind === "path") {
27
+ if (entry.forge.key === null)
28
+ return null;
29
+ if (!exists(entry.forge.key))
30
+ return null;
31
+ return { forge: entry.forge.key, ref: null };
32
+ }
33
+ if (credentialFault(entry.forge.source))
34
+ return null;
35
+ return { forge: entry.forge.source, ref: entry.forge.ref };
36
+ }
37
+ /** y, yes → true; n, no → false; anything else → null. */
38
+ export function yesNo(answer) {
39
+ const a = answer.trim().toLowerCase();
40
+ if (a === "y" || a === "yes")
41
+ return true;
42
+ if (a === "n" || a === "no")
43
+ return false;
44
+ return null;
45
+ }
46
+ /**
47
+ * Says the summary and the `first sync:` line, asks through `io.confirm`,
48
+ * re-asks anything but yes/no, returns confirmed or cancelled.
49
+ */
50
+ export async function confirmInit(init, root, io, opts) {
51
+ io.say(`craftar init — about to write craftar.yaml in ${root}`);
52
+ io.say(` ${initLine(init)}`);
53
+ const counts = countStates(init.statuses);
54
+ if (counts.length === 0) {
55
+ io.say(" first sync: nothing to write");
56
+ }
57
+ else {
58
+ const parts = counts.map(([k, n]) => `${n} ${k}`);
59
+ io.say(` first sync: ${parts.join(", ")}`);
60
+ }
61
+ const question = opts.sync
62
+ ? "Write craftar.yaml and sync [yes]: "
63
+ : "Write craftar.yaml [yes]: ";
64
+ for (;;) {
65
+ const answer = await io.confirm(question);
66
+ if (answer === null)
67
+ return "cancelled";
68
+ if (answer === "")
69
+ return "confirmed";
70
+ const yn = yesNo(answer);
71
+ if (yn === true)
72
+ return "confirmed";
73
+ if (yn === false)
74
+ return "cancelled";
75
+ io.say("answer yes or no");
76
+ }
77
+ }
78
+ const SAFE_CHARS = /^[A-Za-z0-9_./:@=+,-]+$/;
79
+ function maybeQuote(value) {
80
+ if (value === "")
81
+ return '""';
82
+ if (SAFE_CHARS.test(value))
83
+ return value;
84
+ return `"${value}"`;
85
+ }
86
+ /**
87
+ * Returns ` again craftar init` followed by the flags that reproduce the run.
88
+ * Throws if `answers.forge` holds credentials (defense: never print them).
89
+ */
90
+ export function againLine(answers, given) {
91
+ if (credentialFault(answers.forge)) {
92
+ throw new Error("againLine: the Forge holds credentials");
93
+ }
94
+ const parts = [" again craftar init"];
95
+ parts.push(`--forge ${maybeQuote(answers.forge)}`);
96
+ if (answers.ref !== undefined)
97
+ parts.push(`--ref ${maybeQuote(answers.ref)}`);
98
+ parts.push(`--profile ${maybeQuote(answers.profile)}`);
99
+ if (answers.targets !== undefined)
100
+ parts.push(`--targets ${answers.targets.join(",")}`);
101
+ for (const name of answers.removeRecipes)
102
+ parts.push(`--remove-recipe ${maybeQuote(name)}`);
103
+ for (const name of answers.addRecipes)
104
+ parts.push(`--add-recipe ${maybeQuote(name)}`);
105
+ if (answers.replace && answers.addRecipes.length > 0)
106
+ parts.push("--replace");
107
+ if (given.workspace !== undefined)
108
+ parts.push(`--workspace ${maybeQuote(given.workspace)}`);
109
+ if (!given.sync)
110
+ parts.push("--no-sync");
111
+ if (given.offline)
112
+ parts.push("--offline");
113
+ return parts.join(" ");
114
+ }
115
+ /**
116
+ * An item of a numbered list by its answer: the name wins over the number (a profile or a recipe
117
+ * literally named `2` stays reachable), and a number is digits only — `2x` is no item.
118
+ */
119
+ function pickItem(names, answer) {
120
+ if (names.includes(answer))
121
+ return answer;
122
+ if (!/^\d+$/.test(answer))
123
+ return null;
124
+ return names[Number(answer) - 1] ?? null;
125
+ }
126
+ /**
127
+ * Steps 2–7 of the interactive flow: asks for the Forge, ref, profile, recipes and targets
128
+ * a command line does not give. Returns the `InitInput` for `planInit` and the `InitAnswers`
129
+ * for `againLine`, or a `cancelled` result when the user interrupted.
130
+ */
131
+ export async function askInit(root, given, local, io, opts) {
132
+ const exists = opts.exists ?? existsSync;
133
+ const home = resolveHome(opts.home);
134
+ // The flags given, checked here too: nothing below may say a Forge that holds credentials.
135
+ checkInitFlags(given);
136
+ checkLocalKeys(local.keys, {
137
+ ref: given.ref !== undefined,
138
+ recipes: given.addRecipes.length + given.removeRecipes.length > 0,
139
+ targets: given.targets !== undefined,
140
+ });
141
+ let answeredForge;
142
+ let answeredRef;
143
+ let answeredProfile;
144
+ let answeredTargets;
145
+ let answeredAddRecipes = [];
146
+ let answeredRemoveRecipes = [];
147
+ let answeredReplace = false;
148
+ let forgeDefault = null;
149
+ let refDefault = null;
150
+ let forgeWasAsked = false;
151
+ if (given.forge === undefined && !opts.registryOff) {
152
+ try {
153
+ const registry = await readRegistry(home);
154
+ const offered = lastForge(registry, exists);
155
+ if (offered !== null) {
156
+ forgeDefault = offered.forge;
157
+ refDefault = offered.ref;
158
+ }
159
+ }
160
+ catch (e) {
161
+ io.say(` warn cannot read the registry (${e.message}) — no Forge is offered`);
162
+ }
163
+ }
164
+ let loaded;
165
+ let localConfig = null;
166
+ forgeLoop: for (;;) {
167
+ answeredRef = undefined;
168
+ let forgeValue;
169
+ if (given.forge !== undefined && !forgeWasAsked) {
170
+ forgeValue = given.forge;
171
+ }
172
+ else {
173
+ forgeWasAsked = true;
174
+ const q = forgeDefault !== null
175
+ ? `Forge — a directory or a git URL [${forgeDefault}]: `
176
+ : "Forge — a directory or a git URL: ";
177
+ const answer = await io.ask(q);
178
+ if (answer === null)
179
+ return { kind: "cancelled" };
180
+ const trimmed = answer.trim();
181
+ if (trimmed === "") {
182
+ if (forgeDefault === null) {
183
+ io.say("a Forge is needed — a directory or a git URL");
184
+ continue forgeLoop;
185
+ }
186
+ forgeValue = forgeDefault;
187
+ }
188
+ else {
189
+ if (credentialFault(trimmed)) {
190
+ io.say("the answer holds credentials in the URL — remove them and let git authenticate");
191
+ continue forgeLoop;
192
+ }
193
+ forgeValue = trimmed;
194
+ if (forgeValue !== forgeDefault)
195
+ refDefault = null;
196
+ }
197
+ if (given.ref !== undefined && classifyForge(forgeValue) !== "url") {
198
+ try {
199
+ checkInitFlags({ forge: forgeValue, ref: given.ref });
200
+ }
201
+ catch (e) {
202
+ io.say(e.message);
203
+ continue forgeLoop;
204
+ }
205
+ }
206
+ forgeDefault = forgeValue;
207
+ }
208
+ answeredForge = forgeValue;
209
+ // The placeholder profile "-" is never used: only ref, recipes and targets are read,
210
+ // and none depends on the profile value. A schema error surfaces here.
211
+ localConfig = local.doc !== null
212
+ ? mergeWorkspaceConfig({ forge: forgeSource(root, forgeValue), profile: given.profile ?? "-" }, local.doc).config
213
+ : null;
214
+ let refValue = null;
215
+ if (classifyForge(forgeValue) === "url") {
216
+ if (given.ref !== undefined) {
217
+ refValue = given.ref;
218
+ answeredRef = given.ref;
219
+ }
220
+ else if (local.keys.includes("ref")) {
221
+ const localRef = localConfig?.ref ?? null;
222
+ if (localRef !== null)
223
+ io.say(`Ref: ${localRef} (from craftar.local.yaml)`);
224
+ refValue = localRef;
225
+ }
226
+ else {
227
+ const refQ = refDefault !== null && refDefault !== "the default branch"
228
+ ? `Ref — a branch, a tag or a full SHA [${refDefault}]: `
229
+ : "Ref — a branch, a tag or a full SHA [the default branch]: ";
230
+ const answer = await io.ask(refQ);
231
+ if (answer === null)
232
+ return { kind: "cancelled" };
233
+ const trimmed = answer.trim();
234
+ if (trimmed === "") {
235
+ if (refDefault !== null && refDefault !== "the default branch") {
236
+ refValue = refDefault;
237
+ answeredRef = refValue;
238
+ }
239
+ else {
240
+ refValue = null;
241
+ answeredRef = undefined;
242
+ }
243
+ }
244
+ else {
245
+ refValue = trimmed;
246
+ answeredRef = refValue;
247
+ }
248
+ refDefault = trimmed || refDefault;
249
+ }
250
+ }
251
+ try {
252
+ const loadRef = given.ref !== undefined ? given.ref
253
+ : local.keys.includes("ref") ? (localConfig?.ref ?? null)
254
+ : (answeredRef ?? null);
255
+ const source = forgeSource(root, forgeValue);
256
+ loaded = await loadForgeSource(root, source, loadRef, { ...opts, mode: "sync" });
257
+ }
258
+ catch (e) {
259
+ if (forgeWasAsked) {
260
+ io.say(e.message);
261
+ forgeDefault = forgeValue;
262
+ refDefault = answeredRef ?? refDefault;
263
+ continue forgeLoop;
264
+ }
265
+ else {
266
+ throw e;
267
+ }
268
+ }
269
+ break forgeLoop;
270
+ }
271
+ const forge = loaded.forge;
272
+ if (forge.profiles.size === 0 && given.profile === undefined) {
273
+ throw new Error("the Forge has no profile — add one under profiles/, then re-run init");
274
+ }
275
+ if (given.profile !== undefined) {
276
+ if (!forge.profiles.has(given.profile)) {
277
+ throw new Error(profileNotFoundMessage(given.profile, [...forge.profiles.keys()]));
278
+ }
279
+ answeredProfile = given.profile;
280
+ }
281
+ else {
282
+ const profiles = [...forge.profiles.values()].sort((a, b) => a.name.localeCompare(b.name));
283
+ io.say(`Profiles in ${answeredForge}:`);
284
+ const maxLen = Math.max(...profiles.map((p) => p.name.length));
285
+ for (let i = 0; i < profiles.length; i++) {
286
+ const p = profiles[i];
287
+ const desc = p.description;
288
+ if (desc) {
289
+ io.say(` ${i + 1}) ${p.name.padEnd(maxLen)} ${desc}`);
290
+ }
291
+ else {
292
+ io.say(` ${i + 1}) ${p.name}`);
293
+ }
294
+ }
295
+ const defProfile = profiles.length === 1 ? profiles[0].name : null;
296
+ const profileQ = defProfile !== null ? `Profile [${defProfile}]: ` : "Profile: ";
297
+ profileLoop: for (;;) {
298
+ const answer = await io.ask(profileQ);
299
+ if (answer === null)
300
+ return { kind: "cancelled" };
301
+ const trimmed = answer.trim();
302
+ if (trimmed === "") {
303
+ if (defProfile === null) {
304
+ io.say("a profile is needed — a name or a number from the list");
305
+ continue profileLoop;
306
+ }
307
+ answeredProfile = defProfile;
308
+ break profileLoop;
309
+ }
310
+ const picked = pickItem(profiles.map((p) => p.name), trimmed);
311
+ if (picked !== null) {
312
+ answeredProfile = picked;
313
+ break profileLoop;
314
+ }
315
+ io.say(profileNotFoundMessage(trimmed, [...forge.profiles.keys()]));
316
+ }
317
+ }
318
+ const profile = forge.profiles.get(answeredProfile);
319
+ const recipesFlagged = given.addRecipes.length > 0 || given.removeRecipes.length > 0;
320
+ if (recipesFlagged) {
321
+ answeredAddRecipes = given.addRecipes;
322
+ answeredRemoveRecipes = given.removeRecipes;
323
+ answeredReplace = given.replace;
324
+ }
325
+ else if (local.keys.includes("recipes")) {
326
+ const recipeConfig = { ...localConfig, profile: answeredProfile };
327
+ const resolution = resolve(forge, recipeConfig);
328
+ io.say(`Recipes: ${resolution.recipes.join(" → ")} (from craftar.local.yaml)`);
329
+ }
330
+ else {
331
+ const baseConfig = mergeWorkspaceConfig({ forge: forgeSource(root, answeredForge), profile: answeredProfile }, null).config;
332
+ let resolution = resolve(forge, baseConfig);
333
+ io.say(`Recipes of ${answeredProfile}: ${resolution.recipes.join(" → ")}`);
334
+ recipeLoop: for (;;) {
335
+ const adjustQ = "Adjust the recipes [no]: ";
336
+ const adjustAns = await io.ask(adjustQ);
337
+ if (adjustAns === null)
338
+ return { kind: "cancelled" };
339
+ const yn = yesNo(adjustAns);
340
+ if (adjustAns.trim() !== "" && yn === null) {
341
+ io.say("answer yes or no");
342
+ continue recipeLoop;
343
+ }
344
+ if (yn !== true)
345
+ break recipeLoop;
346
+ io.say(`Recipes in ${answeredForge}:`);
347
+ const allRecipes = [...forge.recipes.values()].sort((a, b) => a.name.localeCompare(b.name));
348
+ const inUse = resolution.recipes;
349
+ const orderedInUse = inUse.map((name) => allRecipes.find((r) => r.name === name));
350
+ const notInUseRecipes = allRecipes.filter((r) => !inUse.includes(r.name));
351
+ const ordered = [...orderedInUse, ...notInUseRecipes];
352
+ for (let i = 0; i < ordered.length; i++) {
353
+ const r = ordered[i];
354
+ const parts = [` ${i + 1}) ${r.name}`];
355
+ if (inUse.includes(r.name))
356
+ parts.push("· in use");
357
+ if (r.slot)
358
+ parts.push(`· slot ${r.slot}`);
359
+ if (r.description)
360
+ parts.push(`· ${r.description}`);
361
+ io.say(parts.join(" "));
362
+ }
363
+ // An answer that is no item is kept as typed, so spec 22's R2 names it.
364
+ const names = ordered.map((r) => r.name);
365
+ const parseRecipeAnswer = (answer) => answer.split(",").map((s) => s.trim()).filter((s) => s !== "").map((s) => pickItem(names, s) ?? s);
366
+ const removeAns = await io.ask("Remove [none]: ");
367
+ if (removeAns === null)
368
+ return { kind: "cancelled" };
369
+ const addAns = await io.ask("Add [none]: ");
370
+ if (addAns === null)
371
+ return { kind: "cancelled" };
372
+ const removeNames = parseRecipeAnswer(removeAns);
373
+ const addNames = parseRecipeAnswer(addAns);
374
+ if (removeNames.length === 0 && addNames.length === 0)
375
+ break recipeLoop;
376
+ const both = addNames.find((n) => removeNames.includes(n));
377
+ if (both !== undefined) {
378
+ try {
379
+ checkInitFlags({ addRecipes: addNames, removeRecipes: removeNames });
380
+ }
381
+ catch (e) {
382
+ io.say(e.message);
383
+ continue recipeLoop;
384
+ }
385
+ }
386
+ // Every round starts from the profile's recipes
387
+ let editConfig = mergeWorkspaceConfig({ forge: forgeSource(root, answeredForge), profile: answeredProfile }, null).config;
388
+ let replaceUsed = false;
389
+ try {
390
+ if (removeNames.length > 0) {
391
+ const removeEdit = planRecipeEdit(forge, editConfig, "remove", removeNames);
392
+ editConfig = { ...editConfig, recipes: removeEdit.recipes };
393
+ if (removeEdit.reasons.length)
394
+ io.say(` note ${removeEdit.reasons.join(", ")}`);
395
+ }
396
+ let doReplace = false;
397
+ if (addNames.length > 0) {
398
+ addLoop: for (;;) {
399
+ try {
400
+ const addEdit = planRecipeEdit(forge, editConfig, "add", addNames, { replace: doReplace });
401
+ editConfig = { ...editConfig, recipes: addEdit.recipes };
402
+ if (addEdit.reasons.length)
403
+ io.say(` note ${addEdit.reasons.join(", ")}`);
404
+ break addLoop;
405
+ }
406
+ catch (e) {
407
+ const held = slotHeld(e);
408
+ if (held !== null && !doReplace) {
409
+ const replaceQ = `${held.recipe} takes the slot "${held.slot}" that ${held.holder} holds — replace ${held.holder} [no]: `;
410
+ let replaceYn;
411
+ for (;;) {
412
+ const replaceAns = await io.ask(replaceQ);
413
+ if (replaceAns === null)
414
+ return { kind: "cancelled" };
415
+ replaceYn = replaceAns.trim() === "" ? false : yesNo(replaceAns);
416
+ if (replaceYn !== null)
417
+ break;
418
+ io.say("answer yes or no");
419
+ }
420
+ if (replaceYn) {
421
+ doReplace = true;
422
+ replaceUsed = true;
423
+ continue addLoop;
424
+ }
425
+ continue recipeLoop;
426
+ }
427
+ throw e;
428
+ }
429
+ }
430
+ }
431
+ answeredReplace = replaceUsed;
432
+ resolution = resolve(forge, editConfig);
433
+ io.say(`Recipes: ${resolution.recipes.join(" → ")}`);
434
+ // Return the typed names, not the resulting lists
435
+ answeredAddRecipes = addNames;
436
+ answeredRemoveRecipes = removeNames;
437
+ break recipeLoop;
438
+ }
439
+ catch (e) {
440
+ io.say(e.message);
441
+ continue recipeLoop;
442
+ }
443
+ }
444
+ }
445
+ if (given.targets !== undefined) {
446
+ answeredTargets = given.targets;
447
+ }
448
+ else if (local.keys.includes("targets")) {
449
+ const localTargets = localConfig?.targets ?? [];
450
+ io.say(`Targets: ${localTargets.join(", ")} (from craftar.local.yaml)`);
451
+ }
452
+ else {
453
+ const profileTargets = profile.targets;
454
+ const targetsQ = `Targets — ${TARGETS.join(", ")}, separated by commas [${profileTargets.join(", ")}, from the profile]: `;
455
+ targetsLoop: for (;;) {
456
+ const answer = await io.ask(targetsQ);
457
+ if (answer === null)
458
+ return { kind: "cancelled" };
459
+ const trimmed = answer.trim();
460
+ if (trimmed === "")
461
+ break targetsLoop;
462
+ const parsed = trimmed.split(",").map((s) => s.trim());
463
+ try {
464
+ checkInitFlags({ targets: parsed });
465
+ }
466
+ catch (e) {
467
+ io.say(e.message);
468
+ continue targetsLoop;
469
+ }
470
+ answeredTargets = parsed;
471
+ break targetsLoop;
472
+ }
473
+ }
474
+ const input = {
475
+ forge: answeredForge,
476
+ profile: answeredProfile,
477
+ loaded: loaded,
478
+ };
479
+ if (answeredRef !== undefined)
480
+ input.ref = answeredRef;
481
+ if (answeredTargets !== undefined)
482
+ input.targets = answeredTargets;
483
+ if (answeredAddRecipes.length > 0)
484
+ input.addRecipes = answeredAddRecipes;
485
+ if (answeredRemoveRecipes.length > 0)
486
+ input.removeRecipes = answeredRemoveRecipes;
487
+ if (answeredReplace)
488
+ input.replace = true;
489
+ const answers = {
490
+ forge: answeredForge,
491
+ profile: answeredProfile,
492
+ addRecipes: answeredAddRecipes,
493
+ removeRecipes: answeredRemoveRecipes,
494
+ replace: answeredReplace,
495
+ };
496
+ if (answeredRef !== undefined)
497
+ answers.ref = answeredRef;
498
+ if (answeredTargets !== undefined)
499
+ answers.targets = answeredTargets;
500
+ return { kind: "answered", input, answers };
501
+ }
502
+ //# sourceMappingURL=init-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-flow.js","sourceRoot":"","sources":["../../src/core/init-flow.ts"],"names":[],"mappings":"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"}