@g3nomaly/core 0.3.1 → 0.3.3

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 (223) hide show
  1. package/README.md +122 -0
  2. package/dist/cli/commands/add.d.ts +24 -4
  3. package/dist/cli/commands/add.d.ts.map +1 -1
  4. package/dist/cli/commands/add.js +37 -14
  5. package/dist/cli/commands/add.js.map +1 -1
  6. package/dist/cli/commands/conflict.d.ts +52 -0
  7. package/dist/cli/commands/conflict.d.ts.map +1 -0
  8. package/dist/cli/commands/conflict.js +88 -0
  9. package/dist/cli/commands/conflict.js.map +1 -0
  10. package/dist/cli/commands/installFromSources.d.ts +42 -13
  11. package/dist/cli/commands/installFromSources.d.ts.map +1 -1
  12. package/dist/cli/commands/installFromSources.js +68 -19
  13. package/dist/cli/commands/installFromSources.js.map +1 -1
  14. package/dist/cli/commands/ls.d.ts +13 -3
  15. package/dist/cli/commands/ls.d.ts.map +1 -1
  16. package/dist/cli/commands/ls.js +26 -6
  17. package/dist/cli/commands/ls.js.map +1 -1
  18. package/dist/cli/commands/remove.d.ts +7 -1
  19. package/dist/cli/commands/remove.d.ts.map +1 -1
  20. package/dist/cli/commands/remove.js +15 -1
  21. package/dist/cli/commands/remove.js.map +1 -1
  22. package/dist/cli/commands/sources.d.ts +34 -10
  23. package/dist/cli/commands/sources.d.ts.map +1 -1
  24. package/dist/cli/commands/sources.js +17 -3
  25. package/dist/cli/commands/sources.js.map +1 -1
  26. package/dist/cli/commands/update.d.ts +11 -4
  27. package/dist/cli/commands/update.d.ts.map +1 -1
  28. package/dist/cli/commands/update.js +32 -14
  29. package/dist/cli/commands/update.js.map +1 -1
  30. package/dist/cli/dialogue.d.ts +65 -13
  31. package/dist/cli/dialogue.d.ts.map +1 -1
  32. package/dist/cli/dialogue.js +46 -7
  33. package/dist/cli/dialogue.js.map +1 -1
  34. package/dist/cli/index.d.ts +1 -1
  35. package/dist/cli/index.d.ts.map +1 -1
  36. package/dist/cli/index.js +1 -1
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/cli/installDialogues.d.ts +11 -3
  39. package/dist/cli/installDialogues.d.ts.map +1 -1
  40. package/dist/cli/installDialogues.js +22 -5
  41. package/dist/cli/installDialogues.js.map +1 -1
  42. package/dist/cli/pick.d.ts +11 -2
  43. package/dist/cli/pick.d.ts.map +1 -1
  44. package/dist/cli/pick.js +11 -2
  45. package/dist/cli/pick.js.map +1 -1
  46. package/dist/cli/report.d.ts +32 -8
  47. package/dist/cli/report.d.ts.map +1 -1
  48. package/dist/cli/report.js +26 -5
  49. package/dist/cli/report.js.map +1 -1
  50. package/dist/cli/theme.d.ts +4 -0
  51. package/dist/cli/theme.d.ts.map +1 -1
  52. package/dist/cli/theme.js +4 -0
  53. package/dist/cli/theme.js.map +1 -1
  54. package/dist/cli/types.d.ts +56 -5
  55. package/dist/cli/types.d.ts.map +1 -1
  56. package/dist/config/config.d.ts +32 -7
  57. package/dist/config/config.d.ts.map +1 -1
  58. package/dist/config/config.js +37 -7
  59. package/dist/config/config.js.map +1 -1
  60. package/dist/config/types.d.ts +58 -0
  61. package/dist/config/types.d.ts.map +1 -1
  62. package/dist/config/types.js +0 -10
  63. package/dist/config/types.js.map +1 -1
  64. package/dist/hash/hash.d.ts +6 -8
  65. package/dist/hash/hash.d.ts.map +1 -1
  66. package/dist/hash/hash.js +7 -8
  67. package/dist/hash/hash.js.map +1 -1
  68. package/dist/hash/index.d.ts.map +1 -1
  69. package/dist/hash/index.js +1 -0
  70. package/dist/hash/index.js.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/installer/classify.d.ts +27 -1
  74. package/dist/installer/classify.d.ts.map +1 -1
  75. package/dist/installer/classify.js +36 -1
  76. package/dist/installer/classify.js.map +1 -1
  77. package/dist/installer/files.d.ts +10 -6
  78. package/dist/installer/files.d.ts.map +1 -1
  79. package/dist/installer/files.js +4 -3
  80. package/dist/installer/files.js.map +1 -1
  81. package/dist/installer/index.d.ts +1 -1
  82. package/dist/installer/index.d.ts.map +1 -1
  83. package/dist/installer/index.js +1 -1
  84. package/dist/installer/index.js.map +1 -1
  85. package/dist/installer/install.d.ts +18 -6
  86. package/dist/installer/install.d.ts.map +1 -1
  87. package/dist/installer/install.js +20 -7
  88. package/dist/installer/install.js.map +1 -1
  89. package/dist/installer/io.d.ts +6 -1
  90. package/dist/installer/io.d.ts.map +1 -1
  91. package/dist/installer/io.js +6 -1
  92. package/dist/installer/io.js.map +1 -1
  93. package/dist/installer/manifest.d.ts +29 -19
  94. package/dist/installer/manifest.d.ts.map +1 -1
  95. package/dist/installer/manifest.js +20 -10
  96. package/dist/installer/manifest.js.map +1 -1
  97. package/dist/installer/manifestSources.d.ts +18 -7
  98. package/dist/installer/manifestSources.d.ts.map +1 -1
  99. package/dist/installer/manifestSources.js +18 -7
  100. package/dist/installer/manifestSources.js.map +1 -1
  101. package/dist/installer/marketplace.d.ts +24 -12
  102. package/dist/installer/marketplace.d.ts.map +1 -1
  103. package/dist/installer/marketplace.js +18 -10
  104. package/dist/installer/marketplace.js.map +1 -1
  105. package/dist/installer/origin.d.ts +23 -7
  106. package/dist/installer/origin.d.ts.map +1 -1
  107. package/dist/installer/origin.js +14 -7
  108. package/dist/installer/origin.js.map +1 -1
  109. package/dist/installer/remove.d.ts +17 -5
  110. package/dist/installer/remove.d.ts.map +1 -1
  111. package/dist/installer/remove.js +17 -5
  112. package/dist/installer/remove.js.map +1 -1
  113. package/dist/installer/resolve.d.ts +80 -31
  114. package/dist/installer/resolve.d.ts.map +1 -1
  115. package/dist/installer/resolve.js +96 -29
  116. package/dist/installer/resolve.js.map +1 -1
  117. package/dist/installer/sourceRegistry.d.ts +59 -22
  118. package/dist/installer/sourceRegistry.d.ts.map +1 -1
  119. package/dist/installer/sourceRegistry.js +25 -10
  120. package/dist/installer/sourceRegistry.js.map +1 -1
  121. package/dist/installer/types.d.ts +72 -19
  122. package/dist/installer/types.d.ts.map +1 -1
  123. package/dist/installer/types.js +18 -8
  124. package/dist/installer/types.js.map +1 -1
  125. package/dist/registry/index.d.ts +0 -4
  126. package/dist/registry/index.d.ts.map +1 -1
  127. package/dist/registry/index.js +1 -4
  128. package/dist/registry/index.js.map +1 -1
  129. package/dist/registry/registry.handlers.d.ts +7 -0
  130. package/dist/registry/registry.handlers.d.ts.map +1 -1
  131. package/dist/registry/registry.handlers.js.map +1 -1
  132. package/dist/registry/registry.io.d.ts +23 -7
  133. package/dist/registry/registry.io.d.ts.map +1 -1
  134. package/dist/registry/registry.io.js +37 -14
  135. package/dist/registry/registry.io.js.map +1 -1
  136. package/dist/registry/registry.mutations.d.ts +10 -3
  137. package/dist/registry/registry.mutations.d.ts.map +1 -1
  138. package/dist/registry/registry.mutations.js +10 -3
  139. package/dist/registry/registry.mutations.js.map +1 -1
  140. package/dist/registry/registry.selectors.d.ts +41 -11
  141. package/dist/registry/registry.selectors.d.ts.map +1 -1
  142. package/dist/registry/registry.selectors.js +41 -11
  143. package/dist/registry/registry.selectors.js.map +1 -1
  144. package/dist/registry/registry.store.d.ts +22 -9
  145. package/dist/registry/registry.store.d.ts.map +1 -1
  146. package/dist/registry/registry.store.js +12 -3
  147. package/dist/registry/registry.store.js.map +1 -1
  148. package/dist/registry/registry.template.d.ts +12 -6
  149. package/dist/registry/registry.template.d.ts.map +1 -1
  150. package/dist/registry/registry.template.js +13 -6
  151. package/dist/registry/registry.template.js.map +1 -1
  152. package/dist/registry/types.d.ts +17 -3
  153. package/dist/registry/types.d.ts.map +1 -1
  154. package/dist/registry/types.js +16 -6
  155. package/dist/registry/types.js.map +1 -1
  156. package/dist/security/index.d.ts.map +1 -1
  157. package/dist/security/index.js +1 -0
  158. package/dist/security/index.js.map +1 -1
  159. package/dist/security/securityParser.d.ts +9 -8
  160. package/dist/security/securityParser.d.ts.map +1 -1
  161. package/dist/security/securityParser.js +12 -22
  162. package/dist/security/securityParser.js.map +1 -1
  163. package/dist/security/securityWorker.d.ts +11 -0
  164. package/dist/security/securityWorker.d.ts.map +1 -1
  165. package/dist/security/securityWorker.js +17 -38
  166. package/dist/security/securityWorker.js.map +1 -1
  167. package/dist/sources/checkout.d.ts +10 -4
  168. package/dist/sources/checkout.d.ts.map +1 -1
  169. package/dist/sources/checkout.js +10 -4
  170. package/dist/sources/checkout.js.map +1 -1
  171. package/dist/sources/git.d.ts +5 -3
  172. package/dist/sources/git.d.ts.map +1 -1
  173. package/dist/sources/git.js +5 -3
  174. package/dist/sources/git.js.map +1 -1
  175. package/dist/sources/local.d.ts +6 -4
  176. package/dist/sources/local.d.ts.map +1 -1
  177. package/dist/sources/local.js +6 -4
  178. package/dist/sources/local.js.map +1 -1
  179. package/dist/sources/npm.d.ts +10 -7
  180. package/dist/sources/npm.d.ts.map +1 -1
  181. package/dist/sources/npm.js +49 -15
  182. package/dist/sources/npm.js.map +1 -1
  183. package/dist/sources/parse.d.ts +24 -16
  184. package/dist/sources/parse.d.ts.map +1 -1
  185. package/dist/sources/parse.js +40 -18
  186. package/dist/sources/parse.js.map +1 -1
  187. package/dist/sources/process.d.ts +10 -7
  188. package/dist/sources/process.d.ts.map +1 -1
  189. package/dist/sources/process.js +10 -7
  190. package/dist/sources/process.js.map +1 -1
  191. package/dist/sources/register.d.ts +20 -5
  192. package/dist/sources/register.d.ts.map +1 -1
  193. package/dist/sources/register.js +20 -5
  194. package/dist/sources/register.js.map +1 -1
  195. package/dist/sources/types.d.ts +43 -8
  196. package/dist/sources/types.d.ts.map +1 -1
  197. package/dist/sources/types.js +21 -4
  198. package/dist/sources/types.js.map +1 -1
  199. package/dist/utils/errors.d.ts +6 -1
  200. package/dist/utils/errors.d.ts.map +1 -1
  201. package/dist/utils/errors.js +6 -1
  202. package/dist/utils/errors.js.map +1 -1
  203. package/dist/utils/merge.d.ts +8 -2
  204. package/dist/utils/merge.d.ts.map +1 -1
  205. package/dist/utils/merge.js +9 -2
  206. package/dist/utils/merge.js.map +1 -1
  207. package/dist/utils/packageMeta.d.ts +16 -2
  208. package/dist/utils/packageMeta.d.ts.map +1 -1
  209. package/dist/utils/packageMeta.js +6 -2
  210. package/dist/utils/packageMeta.js.map +1 -1
  211. package/dist/utils/paths.d.ts +16 -5
  212. package/dist/utils/paths.d.ts.map +1 -1
  213. package/dist/utils/paths.js +16 -5
  214. package/dist/utils/paths.js.map +1 -1
  215. package/dist/utils/prompt.d.ts +6 -1
  216. package/dist/utils/prompt.d.ts.map +1 -1
  217. package/dist/utils/prompt.js +6 -1
  218. package/dist/utils/prompt.js.map +1 -1
  219. package/dist/utils/version.d.ts +7 -2
  220. package/dist/utils/version.d.ts.map +1 -1
  221. package/dist/utils/version.js +40 -3
  222. package/dist/utils/version.js.map +1 -1
  223. package/package.json +1 -1
@@ -6,15 +6,20 @@ import { register } from "../../registry/registry.mutations";
6
6
  import { applyClassifications, classifyFiles, recordedHashes, removeInstalledFiles } from "../../installer";
7
7
  import { createInstallerIO } from "../../installer/io";
8
8
  import { ConflictDecision, FileState } from "../../installer/types";
9
- import { runDialogueValue } from "../dialogue";
10
9
  import { c, lineSuccess, lineWarn, lineInfo } from "../theme";
11
10
  import { latestHashFrom } from "./add";
11
+ import { chooseConflict, forkedFrom, forkEntry } from "./conflict";
12
12
  const DRY_RUN_LABELS = {
13
13
  [FileState.UpToDate]: chalk.dim("up to date"),
14
14
  [FileState.SafeUpdate]: chalk.cyan("would update") + chalk.dim(" (package changed, file unmodified)"),
15
15
  [FileState.UserOnly]: chalk.yellow("would keep") + chalk.dim(" — local changes"),
16
- [FileState.Conflict]: chalk.red("conflict") + chalk.dim(" — keep or overwrite"),
16
+ [FileState.Conflict]: chalk.red("conflict") + chalk.dim(" — restore, fork or skip"),
17
17
  };
18
+ /**
19
+ * @brief Prints one dry-run line per file with its state.
20
+ *
21
+ * @param classifications - Files to print, each with its state.
22
+ */
18
23
  function printDryRun(classifications) {
19
24
  for (const cl of classifications) {
20
25
  const rel = c.file(path.relative(process.cwd(), cl.destPath));
@@ -22,10 +27,17 @@ function printDryRun(classifications) {
22
27
  }
23
28
  }
24
29
  /**
25
- * Re-installs entries already present in a target's manifest; with no keys
26
- * everything installed is updated. Local changes prompt keep/overwrite
27
- * through `onCollision` unless `--force`. The caller resolves keys before
28
- * and saves each target's store after.
30
+ * @brief Re-installs entries already present in a target's manifest; with no keys
31
+ * everything installed is updated, forks excepted. Local changes prompt
32
+ * restore/fork/skip through `onCollision` unless `--force`. The caller
33
+ * resolves keys before and saves each target's store after.
34
+ *
35
+ * @param registry - Entries available to install, by key.
36
+ * @param targets - Destinations to update.
37
+ * @param source - Source of each entry's files.
38
+ * @param keys - Keys to update; empty to update everything installed.
39
+ * @param options - Force, dry run and preset answers.
40
+ * @param dialogues - Dialogue for local changes.
29
41
  */
30
42
  export async function updateEntries(registry, targets, source, keys, options = {}, dialogues = {}) {
31
43
  const io = createInstallerIO();
@@ -39,12 +51,17 @@ export async function updateEntries(registry, targets, source, keys, options = {
39
51
  continue;
40
52
  }
41
53
  for (const key of wanted) {
54
+ const installed = get(target.store, key);
55
+ const original = installed === undefined ? undefined : forkedFrom(installed);
56
+ if (original !== undefined) {
57
+ console.log(lineInfo(`${c.key(key)} is a fork of ${c.key(original)} — not updated`));
58
+ continue;
59
+ }
42
60
  const meta = registry[key];
43
61
  if (!meta) {
44
62
  console.log(lineWarn(`${c.key(key)} is installed but no longer in the package — leaving as is`));
45
63
  continue;
46
64
  }
47
- const installed = get(target.store, key);
48
65
  const fileSource = await source(meta);
49
66
  const classifications = await classifyFiles(meta.files, target.installDir, recordedHashes(installed), io, latestHashFrom(fileSource, io));
50
67
  const stale = (installed?.files ?? []).filter((f) => !meta.files.some((m) => m.path === f.path));
@@ -56,14 +73,15 @@ export async function updateEntries(registry, targets, source, keys, options = {
56
73
  }
57
74
  continue;
58
75
  }
59
- let decision = ConflictDecision.Keep;
60
76
  const hasLocalChanges = classifications.some((cl) => cl.state >= FileState.UserOnly);
61
- if (hasLocalChanges && !options.force && dialogues.onCollision !== undefined) {
62
- const answer = await runDialogueValue(dialogues.onCollision, { key: c.key(key), target: c.target(target.label) }, options.answers);
63
- if (answer === ConflictDecision.Overwrite)
64
- decision = ConflictDecision.Overwrite;
77
+ const choice = hasLocalChanges
78
+ ? await chooseConflict(dialogues.onCollision, key, installed ?? meta, target, options)
79
+ : { decision: ConflictDecision.Keep };
80
+ if (choice.decision === ConflictDecision.Fork) {
81
+ await forkEntry(target, key, installed ?? meta, choice.forkKey, io);
82
+ continue;
65
83
  }
66
- const result = await applyClassifications(classifications, fileSource, { decision, force: options.force ?? false }, io);
84
+ const result = await applyClassifications(classifications, fileSource, { decision: choice.decision, force: options.force ?? false }, io);
67
85
  if (stale.length > 0) {
68
86
  const removal = await removeInstalledFiles(stale, target.installDir, { force: options.force }, io);
69
87
  for (const file of removal.kept) {
@@ -77,7 +95,7 @@ export async function updateEntries(registry, targets, source, keys, options = {
77
95
  console.log(lineWarn(`No content for ${c.file(file)} in the package source — skipped`));
78
96
  }
79
97
  if (result.kept.length > 0) {
80
- console.log(lineWarn(`${c.key(key)} — kept ${result.kept.map((f) => c.file(f)).join(", ")}`));
98
+ console.log(lineWarn(`${c.key(key)} — skipped ${result.kept.map((f) => c.file(f)).join(", ")} ${chalk.dim("(local changes, asked again next update)")}`));
81
99
  }
82
100
  if (result.written.length > 0) {
83
101
  console.log(lineSuccess(`Updated ${c.key(key)} ${chalk.dim(`(${result.written.length} file${result.written.length === 1 ? "" : "s"})`)}`));
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,16 @@ export declare const StepKind: {
4
4
  readonly Confirm: 2;
5
5
  readonly Text: 3;
6
6
  };
7
+ /** Kind of a dialogue step: select, multi-select, confirm or text. */
7
8
  export type StepKind = (typeof StepKind)[keyof typeof StepKind];
9
+ /** Answers a dialogue collects, keyed by step id. */
8
10
  export type DialogueAnswers = Record<string, unknown>;
11
+ /**
12
+ * @brief One choice of a select or multi-select step.
13
+ *
14
+ * @property value - Value the step answers with.
15
+ * @property label - Text shown for the choice, with `{name}` placeholders filled from the input.
16
+ */
9
17
  export interface StepChoice<V = unknown> {
10
18
  value: V;
11
19
  label: string;
@@ -13,61 +21,105 @@ export interface StepChoice<V = unknown> {
13
21
  /** A literal value, or a function deriving it from the walk's input. */
14
22
  export type Resolvable<Input, V> = V | ((input: Input) => V);
15
23
  /**
16
- * One question of a dialogue. `when` decides whether the step runs at all; a
17
- * skipped step records no answer and falls through to `next`. `next` links to
18
- * the following step: a step id for linear flow, a function of the answer for
19
- * branching, absent to end. `{name}` placeholders in messages and labels are
20
- * filled from the walk's input.
24
+ * @brief One question of a dialogue, shared by every kind of step.
25
+ *
26
+ * `{name}` placeholders in messages and labels are filled from the walk's input.
27
+ *
28
+ * @property message - Question shown to the user.
29
+ * @property when - Decides whether the step runs at all; a skipped step records no answer and falls through to `next`.
30
+ * @property next - Following step: a step id for linear flow, a function of the answer for branching, absent to end.
21
31
  */
22
32
  interface StepBase<Input> {
23
33
  message: string;
24
34
  when?: (input: Input, answers: DialogueAnswers) => boolean;
25
35
  next?: string | ((answer: unknown, answers: DialogueAnswers, input: Input) => string | null);
26
36
  }
37
+ /**
38
+ * @brief A step that asks the user to pick one of its choices.
39
+ *
40
+ * @property kind - Always `StepKind.Select`.
41
+ * @property choices - Choices offered, literal or derived from the input.
42
+ * @property initial - Choice preselected, literal or derived from the input.
43
+ */
27
44
  export interface SelectStep<Input = DialogueAnswers> extends StepBase<Input> {
28
45
  kind: typeof StepKind.Select;
29
46
  choices: Resolvable<Input, StepChoice[]>;
30
47
  initial?: Resolvable<Input, string | number | boolean>;
31
48
  }
49
+ /**
50
+ * @brief A step that asks the user to pick any number of its choices.
51
+ *
52
+ * @property kind - Always `StepKind.MultiSelect`.
53
+ * @property choices - Choices offered, literal or derived from the input.
54
+ * @property initial - Choices preselected, literal or derived from the input.
55
+ * @property required - Whether at least one choice must be picked.
56
+ */
32
57
  export interface MultiSelectStep<Input = DialogueAnswers> extends StepBase<Input> {
33
58
  kind: typeof StepKind.MultiSelect;
34
59
  choices: Resolvable<Input, StepChoice[]>;
35
60
  initial?: Resolvable<Input, unknown[]>;
36
61
  required?: boolean;
37
62
  }
63
+ /**
64
+ * @brief A step that asks a yes or no question.
65
+ *
66
+ * @property kind - Always `StepKind.Confirm`.
67
+ * @property initial - Starting answer, literal or derived from the input.
68
+ */
38
69
  export interface ConfirmStep<Input = DialogueAnswers> extends StepBase<Input> {
39
70
  kind: typeof StepKind.Confirm;
40
71
  initial?: Resolvable<Input, boolean>;
41
72
  }
73
+ /**
74
+ * @brief A step that asks for free text.
75
+ *
76
+ * @property kind - Always `StepKind.Text`.
77
+ * @property initial - Starting text, literal or derived from the input.
78
+ * @property validate - Returns an error message for an invalid value, or `undefined` when it is valid.
79
+ */
42
80
  export interface TextStep<Input = DialogueAnswers> extends StepBase<Input> {
43
81
  kind: typeof StepKind.Text;
44
82
  initial?: Resolvable<Input, string>;
45
83
  validate?: (value: string | undefined) => string | undefined;
46
84
  }
85
+ /** One step of a dialogue, of any kind. */
47
86
  export type DialogueStep<Input = DialogueAnswers> = SelectStep<Input> | MultiSelectStep<Input> | ConfirmStep<Input> | TextStep<Input>;
48
87
  /**
49
- * A command's interaction with the user: a graph of steps keyed by id,
88
+ * @brief A command's interaction with the user: a graph of steps keyed by id,
50
89
  * entered at the first key and linked through each step's `next`. Commands
51
90
  * take dialogues through named slots (e.g. `onNoValue`, `onCollision`) and
52
91
  * run them with `runDialogueValue`; init flows are linked lists run with
53
92
  * `runDialogue`. Preset answers (`options.answers`, keyed by step id) skip
54
93
  * the terminal prompt — that is how tests and non-interactive runs answer.
94
+ *
95
+ * @property steps - Steps keyed by id; the walk enters at the first key.
55
96
  */
56
97
  export interface Dialogue<Input = DialogueAnswers> {
57
98
  steps: Record<string, DialogueStep<Input>>;
58
99
  }
59
100
  /**
60
- * Walks a dialogue from its first step, skipping steps whose `when` is
61
- * false, and collects answers by step id. A preset answer in `answers` is
101
+ * @brief Walks a dialogue from its first step and collects answers by step id.
102
+ *
103
+ * Skips steps whose `when` is false. A preset answer in `answers` is
62
104
  * recorded without prompting; anything else renders in the terminal.
63
- * Returns the cancel symbol as soon as any step is cancelled. Unknown step
64
- * ids throw.
105
+ * Returns the cancel symbol as soon as any step is cancelled.
106
+ *
107
+ * @param dialogue - Dialogue to walk.
108
+ * @param input - Input the steps read.
109
+ * @param answers - Preset answers by step id.
110
+ * @returns Answers by step id, or the cancel symbol.
111
+ * @throws {Error} When the walk reaches a step id that is not in the dialogue.
65
112
  */
66
113
  export declare function runDialogue<Input>(dialogue: Dialogue<Input>, input: Input, answers?: DialogueAnswers): Promise<DialogueAnswers | symbol>;
67
114
  /**
68
- * Runs a dialogue and returns the answer of its last executed step — the
69
- * contract for the commands' named dialogue slots. Returns undefined when no
70
- * step ran, or the cancel symbol.
115
+ * @brief Runs a dialogue and returns the answer of its last executed step.
116
+ *
117
+ * This is the contract for the commands' named dialogue slots.
118
+ *
119
+ * @param dialogue - Dialogue to run.
120
+ * @param input - Input the steps read.
121
+ * @param answers - Preset answers by step id.
122
+ * @returns The answer of the last step that ran, `undefined` when no step ran, or the cancel symbol.
71
123
  */
72
124
  export declare function runDialogueValue<Input>(dialogue: Dialogue<Input>, input: Input, answers?: DialogueAnswers): Promise<unknown>;
73
125
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"dialogue.d.ts","sourceRoot":"","sources":["../../src/cli/dialogue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialogue.d.ts","sourceRoot":"","sources":["../../src/cli/dialogue.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,13 @@ export const StepKind = {
9
9
  // ---------------------------------------------------------------------------
10
10
  // Resolving
11
11
  // ---------------------------------------------------------------------------
12
+ /**
13
+ * @brief Fills the `{name}` placeholders of a template from the fields of the input.
14
+ *
15
+ * @param template - Text with `{name}` placeholders.
16
+ * @param input - Object whose fields fill the placeholders; a placeholder without a field stays as written.
17
+ * @returns The text with its placeholders filled.
18
+ */
12
19
  function interpolate(template, input) {
13
20
  const record = (typeof input === "object" && input !== null ? input : {});
14
21
  return template.replace(/\{(\w+)\}/g, (match, name) => {
@@ -16,9 +23,24 @@ function interpolate(template, input) {
16
23
  return value === undefined ? match : String(value);
17
24
  });
18
25
  }
26
+ /**
27
+ * @brief Resolves a value that is literal or a function of the input.
28
+ *
29
+ * @param value - Literal value, or a function of `input`; `undefined` passes through.
30
+ * @param input - Input the function is called with.
31
+ * @returns The literal, or the function's result.
32
+ */
19
33
  function resolveValue(value, input) {
20
34
  return typeof value === "function" ? value(input) : value;
21
35
  }
36
+ /**
37
+ * @brief Resolves every field of a step against the input, ready to render.
38
+ *
39
+ * @param id - Id of the step.
40
+ * @param step - Step to resolve.
41
+ * @param input - Input the placeholders and functions read.
42
+ * @returns The resolved step.
43
+ */
22
44
  function resolveStep(id, step, input) {
23
45
  const resolved = { id, kind: step.kind, message: interpolate(step.message, input) };
24
46
  switch (step.kind) {
@@ -43,6 +65,12 @@ function resolveStep(id, step, input) {
43
65
  // ---------------------------------------------------------------------------
44
66
  // Rendering
45
67
  // ---------------------------------------------------------------------------
68
+ /**
69
+ * @brief Renders one resolved step in the terminal and returns the answer.
70
+ *
71
+ * @param step - Step to render.
72
+ * @returns The user's answer, or the cancel symbol.
73
+ */
46
74
  async function render(step) {
47
75
  switch (step.kind) {
48
76
  case StepKind.Select:
@@ -77,11 +105,17 @@ async function render(step) {
77
105
  // Walking
78
106
  // ---------------------------------------------------------------------------
79
107
  /**
80
- * Walks a dialogue from its first step, skipping steps whose `when` is
81
- * false, and collects answers by step id. A preset answer in `answers` is
108
+ * @brief Walks a dialogue from its first step and collects answers by step id.
109
+ *
110
+ * Skips steps whose `when` is false. A preset answer in `answers` is
82
111
  * recorded without prompting; anything else renders in the terminal.
83
- * Returns the cancel symbol as soon as any step is cancelled. Unknown step
84
- * ids throw.
112
+ * Returns the cancel symbol as soon as any step is cancelled.
113
+ *
114
+ * @param dialogue - Dialogue to walk.
115
+ * @param input - Input the steps read.
116
+ * @param answers - Preset answers by step id.
117
+ * @returns Answers by step id, or the cancel symbol.
118
+ * @throws {Error} When the walk reaches a step id that is not in the dialogue.
85
119
  */
86
120
  export async function runDialogue(dialogue, input, answers = {}) {
87
121
  const collected = {};
@@ -103,9 +137,14 @@ export async function runDialogue(dialogue, input, answers = {}) {
103
137
  return collected;
104
138
  }
105
139
  /**
106
- * Runs a dialogue and returns the answer of its last executed step — the
107
- * contract for the commands' named dialogue slots. Returns undefined when no
108
- * step ran, or the cancel symbol.
140
+ * @brief Runs a dialogue and returns the answer of its last executed step.
141
+ *
142
+ * This is the contract for the commands' named dialogue slots.
143
+ *
144
+ * @param dialogue - Dialogue to run.
145
+ * @param input - Input the steps read.
146
+ * @param answers - Preset answers by step id.
147
+ * @returns The answer of the last step that ran, `undefined` when no step ran, or the cancel symbol.
109
148
  */
110
149
  export async function runDialogueValue(dialogue, input, answers = {}) {
111
150
  const record = await runDialogue(dialogue, input, answers);
@@ -1 +1 @@
1
- {"version":3,"file":"dialogue.js","sourceRoot":"","sources":["../../src/cli/dialogue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialogue.js","sourceRoot":"","sources":["../../src/cli/dialogue.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export { lsSourceRegistry } from "./commands/ls";
13
13
  export { addSourceEntries, lsSources, removeSourceEntries } from "./commands/sources";
14
14
  export type { SourceCommandContext, SourceAddOptions } from "./commands/sources";
15
15
  export { pickOffers, selectEntriesDialogue } from "./pick";
16
- export { overwriteDialogue, removeChangedDialogue, cascadeDialogue, incompleteDialogue, selectRemovalDialogue, notInstalledDialogue } from "./installDialogues";
16
+ export { conflictDialogue, removeChangedDialogue, cascadeDialogue, incompleteDialogue, selectRemovalDialogue, notInstalledDialogue } from "./installDialogues";
17
17
  export { addFromSources, updateFromSources, removeFromTargets } from "./commands/installFromSources";
18
18
  export type { ManifestTarget, InstallCommandContext, AfterTarget } from "./commands/installFromSources";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACpE,YAAY,EACV,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAC/D,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACnD,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/G,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACrF,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC/J,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACpG,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACpE,YAAY,EACV,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAC/D,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACnD,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/G,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACrF,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9J,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACpG,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA"}
package/dist/cli/index.js CHANGED
@@ -11,6 +11,6 @@ export { reportSourceRegistry, orExit, reportResolution, entryNotFoundDialogue,
11
11
  export { lsSourceRegistry } from "./commands/ls";
12
12
  export { addSourceEntries, lsSources, removeSourceEntries } from "./commands/sources";
13
13
  export { pickOffers, selectEntriesDialogue } from "./pick";
14
- export { overwriteDialogue, removeChangedDialogue, cascadeDialogue, incompleteDialogue, selectRemovalDialogue, notInstalledDialogue } from "./installDialogues";
14
+ export { conflictDialogue, removeChangedDialogue, cascadeDialogue, incompleteDialogue, selectRemovalDialogue, notInstalledDialogue } from "./installDialogues";
15
15
  export { addFromSources, updateFromSources, removeFromTargets } from "./commands/installFromSources";
16
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC/J,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAKpE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9J,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA"}
@@ -1,14 +1,22 @@
1
1
  import type { Dialogue } from "./dialogue";
2
2
  import type { InstallInput } from "./types";
3
- /** Keep or overwrite an entry with local changes, for `add` and `update`; step id `conflict`. */
4
- export declare const overwriteDialogue: Dialogue<InstallInput>;
3
+ /**
4
+ * @brief Restore, fork or skip an entry with local changes, for `add` and `update`; step id `conflict`, then
5
+ * `forkName` for the key of the fork.
6
+ */
7
+ export declare const conflictDialogue: Dialogue<InstallInput>;
5
8
  /** Keep or remove an entry with local changes, for `remove`; step id `conflict`. */
6
9
  export declare const removeChangedDialogue: Dialogue<InstallInput>;
7
10
  /** Whether to remove the installed entries that depend on one being removed; step id `cascade`. */
8
11
  export declare const cascadeDialogue: Dialogue<InstallInput>;
9
12
  /** Whether to remove an entry with files already missing on disk; step id `incomplete`. */
10
13
  export declare const incompleteDialogue: Dialogue<InstallInput>;
11
- /** Which installed entries to remove when none were named; step id `selectEntries`. */
14
+ /**
15
+ * @brief Builds the picker that asks which installed entries to remove.
16
+ *
17
+ * @param noun - What one entry is called, e.g. `skill`.
18
+ * @returns Dialogue with the step `selectEntries`.
19
+ */
12
20
  export declare function selectRemovalDialogue(noun: string): Dialogue<InstallInput>;
13
21
  /** Whether to go on when some names given to `update` are not installed; step id `entryNotFound`. */
14
22
  export declare const notInstalledDialogue: Dialogue<InstallInput>;
@@ -1 +1 @@
1
- {"version":3,"file":"installDialogues.d.ts","sourceRoot":"","sources":["../../src/cli/installDialogues.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAWpD,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAWxD,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,YAAY,CAQlD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAQrD,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAU1E;AAED,qGAAqG;AACrG,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,YAAY,CAQvD,CAAC"}
1
+ {"version":3,"file":"installDialogues.d.ts","sourceRoot":"","sources":["../../src/cli/installDialogues.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,YAAY,CAoBnD,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CAWxD,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,YAAY,CAQlD,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAQrD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAU1E;AAED,qGAAqG;AACrG,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,YAAY,CAQvD,CAAC"}
@@ -1,16 +1,28 @@
1
1
  // packages/core/src/cli/installDialogues.ts
2
2
  import { ConflictDecision } from "../installer/types";
3
3
  import { StepKind } from "./dialogue";
4
- /** Keep or overwrite an entry with local changes, for `add` and `update`; step id `conflict`. */
5
- export const overwriteDialogue = {
4
+ /**
5
+ * @brief Restore, fork or skip an entry with local changes, for `add` and `update`; step id `conflict`, then
6
+ * `forkName` for the key of the fork.
7
+ */
8
+ export const conflictDialogue = {
6
9
  steps: {
7
10
  conflict: {
8
11
  kind: StepKind.Select,
9
12
  message: "{key} ({target}) has local changes. What would you like to do?",
10
13
  choices: [
11
- { value: ConflictDecision.Keep, label: "Keep my changes: skip modified files" },
12
- { value: ConflictDecision.Overwrite, label: "Overwrite with the source version" },
14
+ { value: ConflictDecision.Overwrite, label: "Restore: overwrite my changes with the source version" },
15
+ { value: ConflictDecision.Fork, label: "Fork: keep my changes as a local entry under a new name" },
16
+ { value: ConflictDecision.Keep, label: "Skip: leave my changes and ask again next time" },
13
17
  ],
18
+ initial: ConflictDecision.Keep,
19
+ next: (answer) => (answer === ConflictDecision.Fork ? "forkName" : null),
20
+ },
21
+ forkName: {
22
+ kind: StepKind.Text,
23
+ message: "Name of the local entry:",
24
+ initial: (input) => input.forkName ?? "",
25
+ validate: (value) => (value === undefined || !/^\S+$/.test(value) ? "Enter a name without spaces" : undefined),
14
26
  },
15
27
  },
16
28
  };
@@ -47,7 +59,12 @@ export const incompleteDialogue = {
47
59
  },
48
60
  },
49
61
  };
50
- /** Which installed entries to remove when none were named; step id `selectEntries`. */
62
+ /**
63
+ * @brief Builds the picker that asks which installed entries to remove.
64
+ *
65
+ * @param noun - What one entry is called, e.g. `skill`.
66
+ * @returns Dialogue with the step `selectEntries`.
67
+ */
51
68
  export function selectRemovalDialogue(noun) {
52
69
  return {
53
70
  steps: {
@@ -1 +1 @@
1
- {"version":3,"file":"installDialogues.js","sourceRoot":"","sources":["../../src/cli/installDialogues.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,iGAAiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAK,QAAQ,CAAC,MAAM;YACxB,OAAO,EAAE,gEAAgE;YACzE,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAO,KAAK,EAAE,sCAAsC,EAAE;gBACpF,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,mCAAmC,EAAE;aAClF;SACF;KACF;CACF,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAK,QAAQ,CAAC,MAAM;YACxB,OAAO,EAAE,gEAAgE;YACzE,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAO,KAAK,EAAE,yBAAyB,EAAE;gBACvE,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,wCAAwC,EAAE;aACvF;SACF;KACF;CACF,CAAC;AAEF,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,IAAI,EAAK,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,KAAK,EAAE;QACL,UAAU,EAAE;YACV,IAAI,EAAK,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,gFAAgF;YACzF,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO;QACL,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,IAAI,EAAK,QAAQ,CAAC,WAAW;gBAC7B,OAAO,EAAE,UAAU,IAAI,cAAc;gBACrC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE;aAC3C;SACF;KACF,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,KAAK,EAAE;QACL,aAAa,EAAE;YACb,IAAI,EAAK,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,kEAAkE;YAC3E,OAAO,EAAE,KAAK;SACf;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"installDialogues.js","sourceRoot":"","sources":["../../src/cli/installDialogues.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAK,QAAQ,CAAC,MAAM;YACxB,OAAO,EAAE,gEAAgE;YACzE,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,uDAAuD,EAAE;gBACrG,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAO,KAAK,EAAE,yDAAyD,EAAE;gBACvG,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAO,KAAK,EAAE,gDAAgD,EAAE;aAC/F;YACD,OAAO,EAAE,gBAAgB,CAAC,IAAI;YAC9B,IAAI,EAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;SAC5E;QACD,QAAQ,EAAE;YACR,IAAI,EAAM,QAAQ,CAAC,IAAI;YACvB,OAAO,EAAG,0BAA0B;YACpC,OAAO,EAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE;YACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/G;KACF;CACF,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAK,QAAQ,CAAC,MAAM;YACxB,OAAO,EAAE,gEAAgE;YACzE,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAO,KAAK,EAAE,yBAAyB,EAAE;gBACvE,EAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,wCAAwC,EAAE;aACvF;SACF;KACF;CACF,CAAC;AAEF,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,IAAI,EAAK,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,KAAK,EAAE;QACL,UAAU,EAAE;YACV,IAAI,EAAK,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,gFAAgF;YACzF,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO;QACL,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,IAAI,EAAK,QAAQ,CAAC,WAAW;gBAC7B,OAAO,EAAE,UAAU,IAAI,cAAc;gBACrC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE;aAC3C;SACF;KACF,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,KAAK,EAAE;QACL,aAAa,EAAE;YACb,IAAI,EAAK,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,kEAAkE;YAC3E,OAAO,EAAE,KAAK;SACf;KACF;CACF,CAAC"}
@@ -2,12 +2,21 @@ import type { OriginEntry } from "../installer/origin";
2
2
  import type { SourceOffer } from "../installer/sourceRegistry";
3
3
  import type { Dialogue, DialogueAnswers } from "./dialogue";
4
4
  import type { InstallInput } from "./types";
5
- /** The multi-select `pickOffers` asks through, by step id `selectEntries`, for preset answers. */
5
+ /**
6
+ * @brief Builds the multi-select `pickOffers` asks through, by step id `selectEntries`.
7
+ *
8
+ * @param noun - What one entry is called, e.g. `skill`.
9
+ * @returns Dialogue with the step `selectEntries`.
10
+ */
6
11
  export declare function selectEntriesDialogue(noun: string): Dialogue<InstallInput>;
7
12
  /**
8
- * Asks which offers to install, each as `<key>@<source>`, so two sources
13
+ * @brief Asks which offers to install, each as `<key>@<source>`, so two sources
9
14
  * offering one key stay apart. Exits when the prompt is cancelled.
10
15
  *
16
+ * @param available - Offers to pick from.
17
+ * @param noun - What one entry is called, e.g. `skill`.
18
+ * @param answers - Preset answers by step id.
19
+ *
11
20
  * @returns the picked requests, e.g. `["emphasise@g3n-skills"]`
12
21
  */
13
22
  export declare function pickOffers<T extends OriginEntry>(available: readonly SourceOffer<T>[], noun: string, answers?: DialogueAnswers): Promise<string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../src/cli/pick.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAU1E;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,SAAS,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQxJ"}
1
+ {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../src/cli/pick.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAU1E;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,CAAC,SAAS,WAAW,EAAE,SAAS,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQxJ"}
package/dist/cli/pick.js CHANGED
@@ -5,7 +5,12 @@ import { guardCancel } from "../utils/prompt";
5
5
  import { StepKind, runDialogueValue } from "./dialogue";
6
6
  import { c } from "./theme";
7
7
  const PicksSchema = z.array(z.string());
8
- /** The multi-select `pickOffers` asks through, by step id `selectEntries`, for preset answers. */
8
+ /**
9
+ * @brief Builds the multi-select `pickOffers` asks through, by step id `selectEntries`.
10
+ *
11
+ * @param noun - What one entry is called, e.g. `skill`.
12
+ * @returns Dialogue with the step `selectEntries`.
13
+ */
9
14
  export function selectEntriesDialogue(noun) {
10
15
  return {
11
16
  steps: {
@@ -18,9 +23,13 @@ export function selectEntriesDialogue(noun) {
18
23
  };
19
24
  }
20
25
  /**
21
- * Asks which offers to install, each as `<key>@<source>`, so two sources
26
+ * @brief Asks which offers to install, each as `<key>@<source>`, so two sources
22
27
  * offering one key stay apart. Exits when the prompt is cancelled.
23
28
  *
29
+ * @param available - Offers to pick from.
30
+ * @param noun - What one entry is called, e.g. `skill`.
31
+ * @param answers - Preset answers by step id.
32
+ *
24
33
  * @returns the picked requests, e.g. `["emphasise@g3n-skills"]`
25
34
  */
26
35
  export async function pickOffers(available, noun, answers) {
@@ -1 +1 @@
1
- {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../src/cli/pick.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAE5B,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAExC,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO;QACL,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,IAAI,EAAK,QAAQ,CAAC,WAAW;gBAC7B,OAAO,EAAE,UAAU,IAAI,eAAe;gBACtC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE;aAC3C;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAwB,SAAoC,EAAE,IAAY,EAAE,OAAyB;IACnI,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC;SAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACxG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;QACtC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;KACjI,CAAC,CAAC,CAAC;IACN,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5H,CAAC"}
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../src/cli/pick.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,SAAS,CAAC;AAE5B,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO;QACL,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,IAAI,EAAK,QAAQ,CAAC,WAAW;gBAC7B,OAAO,EAAE,UAAU,IAAI,eAAe;gBACtC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE;aAC3C;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAwB,SAAoC,EAAE,IAAY,EAAE,OAAyB;IACnI,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC;SAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACxG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;QACtC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;KACjI,CAAC,CAAC,CAAC;IACN,OAAO,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5H,CAAC"}