@g3nomaly/core 0.3.1 → 0.3.2

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 (222) hide show
  1. package/dist/cli/commands/add.d.ts +24 -4
  2. package/dist/cli/commands/add.d.ts.map +1 -1
  3. package/dist/cli/commands/add.js +37 -14
  4. package/dist/cli/commands/add.js.map +1 -1
  5. package/dist/cli/commands/conflict.d.ts +52 -0
  6. package/dist/cli/commands/conflict.d.ts.map +1 -0
  7. package/dist/cli/commands/conflict.js +88 -0
  8. package/dist/cli/commands/conflict.js.map +1 -0
  9. package/dist/cli/commands/installFromSources.d.ts +42 -13
  10. package/dist/cli/commands/installFromSources.d.ts.map +1 -1
  11. package/dist/cli/commands/installFromSources.js +68 -19
  12. package/dist/cli/commands/installFromSources.js.map +1 -1
  13. package/dist/cli/commands/ls.d.ts +13 -3
  14. package/dist/cli/commands/ls.d.ts.map +1 -1
  15. package/dist/cli/commands/ls.js +26 -6
  16. package/dist/cli/commands/ls.js.map +1 -1
  17. package/dist/cli/commands/remove.d.ts +7 -1
  18. package/dist/cli/commands/remove.d.ts.map +1 -1
  19. package/dist/cli/commands/remove.js +15 -1
  20. package/dist/cli/commands/remove.js.map +1 -1
  21. package/dist/cli/commands/sources.d.ts +34 -10
  22. package/dist/cli/commands/sources.d.ts.map +1 -1
  23. package/dist/cli/commands/sources.js +17 -3
  24. package/dist/cli/commands/sources.js.map +1 -1
  25. package/dist/cli/commands/update.d.ts +11 -4
  26. package/dist/cli/commands/update.d.ts.map +1 -1
  27. package/dist/cli/commands/update.js +32 -14
  28. package/dist/cli/commands/update.js.map +1 -1
  29. package/dist/cli/dialogue.d.ts +65 -13
  30. package/dist/cli/dialogue.d.ts.map +1 -1
  31. package/dist/cli/dialogue.js +46 -7
  32. package/dist/cli/dialogue.js.map +1 -1
  33. package/dist/cli/index.d.ts +1 -1
  34. package/dist/cli/index.d.ts.map +1 -1
  35. package/dist/cli/index.js +1 -1
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/installDialogues.d.ts +11 -3
  38. package/dist/cli/installDialogues.d.ts.map +1 -1
  39. package/dist/cli/installDialogues.js +22 -5
  40. package/dist/cli/installDialogues.js.map +1 -1
  41. package/dist/cli/pick.d.ts +11 -2
  42. package/dist/cli/pick.d.ts.map +1 -1
  43. package/dist/cli/pick.js +11 -2
  44. package/dist/cli/pick.js.map +1 -1
  45. package/dist/cli/report.d.ts +32 -8
  46. package/dist/cli/report.d.ts.map +1 -1
  47. package/dist/cli/report.js +26 -5
  48. package/dist/cli/report.js.map +1 -1
  49. package/dist/cli/theme.d.ts +4 -0
  50. package/dist/cli/theme.d.ts.map +1 -1
  51. package/dist/cli/theme.js +4 -0
  52. package/dist/cli/theme.js.map +1 -1
  53. package/dist/cli/types.d.ts +56 -5
  54. package/dist/cli/types.d.ts.map +1 -1
  55. package/dist/config/config.d.ts +32 -7
  56. package/dist/config/config.d.ts.map +1 -1
  57. package/dist/config/config.js +37 -7
  58. package/dist/config/config.js.map +1 -1
  59. package/dist/config/types.d.ts +58 -0
  60. package/dist/config/types.d.ts.map +1 -1
  61. package/dist/config/types.js +0 -10
  62. package/dist/config/types.js.map +1 -1
  63. package/dist/hash/hash.d.ts +6 -8
  64. package/dist/hash/hash.d.ts.map +1 -1
  65. package/dist/hash/hash.js +7 -8
  66. package/dist/hash/hash.js.map +1 -1
  67. package/dist/hash/index.d.ts.map +1 -1
  68. package/dist/hash/index.js +1 -0
  69. package/dist/hash/index.js.map +1 -1
  70. package/dist/index.js +1 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/installer/classify.d.ts +27 -1
  73. package/dist/installer/classify.d.ts.map +1 -1
  74. package/dist/installer/classify.js +36 -1
  75. package/dist/installer/classify.js.map +1 -1
  76. package/dist/installer/files.d.ts +10 -6
  77. package/dist/installer/files.d.ts.map +1 -1
  78. package/dist/installer/files.js +4 -3
  79. package/dist/installer/files.js.map +1 -1
  80. package/dist/installer/index.d.ts +1 -1
  81. package/dist/installer/index.d.ts.map +1 -1
  82. package/dist/installer/index.js +1 -1
  83. package/dist/installer/index.js.map +1 -1
  84. package/dist/installer/install.d.ts +18 -6
  85. package/dist/installer/install.d.ts.map +1 -1
  86. package/dist/installer/install.js +20 -7
  87. package/dist/installer/install.js.map +1 -1
  88. package/dist/installer/io.d.ts +6 -1
  89. package/dist/installer/io.d.ts.map +1 -1
  90. package/dist/installer/io.js +6 -1
  91. package/dist/installer/io.js.map +1 -1
  92. package/dist/installer/manifest.d.ts +29 -19
  93. package/dist/installer/manifest.d.ts.map +1 -1
  94. package/dist/installer/manifest.js +20 -10
  95. package/dist/installer/manifest.js.map +1 -1
  96. package/dist/installer/manifestSources.d.ts +18 -7
  97. package/dist/installer/manifestSources.d.ts.map +1 -1
  98. package/dist/installer/manifestSources.js +18 -7
  99. package/dist/installer/manifestSources.js.map +1 -1
  100. package/dist/installer/marketplace.d.ts +24 -12
  101. package/dist/installer/marketplace.d.ts.map +1 -1
  102. package/dist/installer/marketplace.js +18 -10
  103. package/dist/installer/marketplace.js.map +1 -1
  104. package/dist/installer/origin.d.ts +23 -7
  105. package/dist/installer/origin.d.ts.map +1 -1
  106. package/dist/installer/origin.js +14 -7
  107. package/dist/installer/origin.js.map +1 -1
  108. package/dist/installer/remove.d.ts +17 -5
  109. package/dist/installer/remove.d.ts.map +1 -1
  110. package/dist/installer/remove.js +17 -5
  111. package/dist/installer/remove.js.map +1 -1
  112. package/dist/installer/resolve.d.ts +80 -31
  113. package/dist/installer/resolve.d.ts.map +1 -1
  114. package/dist/installer/resolve.js +96 -29
  115. package/dist/installer/resolve.js.map +1 -1
  116. package/dist/installer/sourceRegistry.d.ts +59 -22
  117. package/dist/installer/sourceRegistry.d.ts.map +1 -1
  118. package/dist/installer/sourceRegistry.js +25 -10
  119. package/dist/installer/sourceRegistry.js.map +1 -1
  120. package/dist/installer/types.d.ts +72 -19
  121. package/dist/installer/types.d.ts.map +1 -1
  122. package/dist/installer/types.js +18 -8
  123. package/dist/installer/types.js.map +1 -1
  124. package/dist/registry/index.d.ts +0 -4
  125. package/dist/registry/index.d.ts.map +1 -1
  126. package/dist/registry/index.js +1 -4
  127. package/dist/registry/index.js.map +1 -1
  128. package/dist/registry/registry.handlers.d.ts +7 -0
  129. package/dist/registry/registry.handlers.d.ts.map +1 -1
  130. package/dist/registry/registry.handlers.js.map +1 -1
  131. package/dist/registry/registry.io.d.ts +23 -7
  132. package/dist/registry/registry.io.d.ts.map +1 -1
  133. package/dist/registry/registry.io.js +37 -14
  134. package/dist/registry/registry.io.js.map +1 -1
  135. package/dist/registry/registry.mutations.d.ts +10 -3
  136. package/dist/registry/registry.mutations.d.ts.map +1 -1
  137. package/dist/registry/registry.mutations.js +10 -3
  138. package/dist/registry/registry.mutations.js.map +1 -1
  139. package/dist/registry/registry.selectors.d.ts +41 -11
  140. package/dist/registry/registry.selectors.d.ts.map +1 -1
  141. package/dist/registry/registry.selectors.js +41 -11
  142. package/dist/registry/registry.selectors.js.map +1 -1
  143. package/dist/registry/registry.store.d.ts +22 -9
  144. package/dist/registry/registry.store.d.ts.map +1 -1
  145. package/dist/registry/registry.store.js +12 -3
  146. package/dist/registry/registry.store.js.map +1 -1
  147. package/dist/registry/registry.template.d.ts +12 -6
  148. package/dist/registry/registry.template.d.ts.map +1 -1
  149. package/dist/registry/registry.template.js +13 -6
  150. package/dist/registry/registry.template.js.map +1 -1
  151. package/dist/registry/types.d.ts +17 -3
  152. package/dist/registry/types.d.ts.map +1 -1
  153. package/dist/registry/types.js +16 -6
  154. package/dist/registry/types.js.map +1 -1
  155. package/dist/security/index.d.ts.map +1 -1
  156. package/dist/security/index.js +1 -0
  157. package/dist/security/index.js.map +1 -1
  158. package/dist/security/securityParser.d.ts +9 -8
  159. package/dist/security/securityParser.d.ts.map +1 -1
  160. package/dist/security/securityParser.js +12 -22
  161. package/dist/security/securityParser.js.map +1 -1
  162. package/dist/security/securityWorker.d.ts +11 -0
  163. package/dist/security/securityWorker.d.ts.map +1 -1
  164. package/dist/security/securityWorker.js +17 -38
  165. package/dist/security/securityWorker.js.map +1 -1
  166. package/dist/sources/checkout.d.ts +10 -4
  167. package/dist/sources/checkout.d.ts.map +1 -1
  168. package/dist/sources/checkout.js +10 -4
  169. package/dist/sources/checkout.js.map +1 -1
  170. package/dist/sources/git.d.ts +5 -3
  171. package/dist/sources/git.d.ts.map +1 -1
  172. package/dist/sources/git.js +5 -3
  173. package/dist/sources/git.js.map +1 -1
  174. package/dist/sources/local.d.ts +6 -4
  175. package/dist/sources/local.d.ts.map +1 -1
  176. package/dist/sources/local.js +6 -4
  177. package/dist/sources/local.js.map +1 -1
  178. package/dist/sources/npm.d.ts +10 -7
  179. package/dist/sources/npm.d.ts.map +1 -1
  180. package/dist/sources/npm.js +49 -15
  181. package/dist/sources/npm.js.map +1 -1
  182. package/dist/sources/parse.d.ts +24 -16
  183. package/dist/sources/parse.d.ts.map +1 -1
  184. package/dist/sources/parse.js +40 -18
  185. package/dist/sources/parse.js.map +1 -1
  186. package/dist/sources/process.d.ts +10 -7
  187. package/dist/sources/process.d.ts.map +1 -1
  188. package/dist/sources/process.js +10 -7
  189. package/dist/sources/process.js.map +1 -1
  190. package/dist/sources/register.d.ts +20 -5
  191. package/dist/sources/register.d.ts.map +1 -1
  192. package/dist/sources/register.js +20 -5
  193. package/dist/sources/register.js.map +1 -1
  194. package/dist/sources/types.d.ts +43 -8
  195. package/dist/sources/types.d.ts.map +1 -1
  196. package/dist/sources/types.js +21 -4
  197. package/dist/sources/types.js.map +1 -1
  198. package/dist/utils/errors.d.ts +6 -1
  199. package/dist/utils/errors.d.ts.map +1 -1
  200. package/dist/utils/errors.js +6 -1
  201. package/dist/utils/errors.js.map +1 -1
  202. package/dist/utils/merge.d.ts +8 -2
  203. package/dist/utils/merge.d.ts.map +1 -1
  204. package/dist/utils/merge.js +9 -2
  205. package/dist/utils/merge.js.map +1 -1
  206. package/dist/utils/packageMeta.d.ts +16 -2
  207. package/dist/utils/packageMeta.d.ts.map +1 -1
  208. package/dist/utils/packageMeta.js +6 -2
  209. package/dist/utils/packageMeta.js.map +1 -1
  210. package/dist/utils/paths.d.ts +16 -5
  211. package/dist/utils/paths.d.ts.map +1 -1
  212. package/dist/utils/paths.js +16 -5
  213. package/dist/utils/paths.js.map +1 -1
  214. package/dist/utils/prompt.d.ts +6 -1
  215. package/dist/utils/prompt.d.ts.map +1 -1
  216. package/dist/utils/prompt.js +6 -1
  217. package/dist/utils/prompt.js.map +1 -1
  218. package/dist/utils/version.d.ts +7 -2
  219. package/dist/utils/version.d.ts.map +1 -1
  220. package/dist/utils/version.js +40 -3
  221. package/dist/utils/version.js.map +1 -1
  222. package/package.json +1 -1
@@ -1,6 +1,11 @@
1
1
  /**
2
- * Reads `emphasise` or `emphasise@g3n-skills`; names are matched in
3
- * lowercase. A leading `@` belongs to the name, as in `@shadcn/button@shadcn`.
2
+ * @brief Parses a typed request such as `emphasise` or `emphasise@g3n-skills`.
3
+ *
4
+ * Names are matched in lowercase. A leading `@` belongs to the name, as in
5
+ * `@shadcn/button@shadcn`, so the source starts at the first `@` after the first character.
6
+ *
7
+ * @param token - Word as typed on the command line, e.g. `emphasise@g3n-skills`.
8
+ * @returns Request with the lowercased name, and the source when one is given.
4
9
  */
5
10
  export function parseRequest(token) {
6
11
  const at = token.indexOf("@", 1);
@@ -8,22 +13,41 @@ export function parseRequest(token) {
8
13
  ? { name: token.slice(0, at).toLowerCase(), source: token.slice(at + 1) }
9
14
  : { name: token.toLowerCase() };
10
15
  }
11
- /** A request as it is typed, e.g. `emphasise@g3n-skills`. */
16
+ /**
17
+ * @brief Formats a request as it is typed, e.g. `emphasise@g3n-skills`.
18
+ *
19
+ * @param request - Parsed request, e.g. `{ name: "emphasise", source: "g3n-skills" }`.
20
+ */
12
21
  export function formatRequest(request) {
13
22
  return request.source === undefined ? request.name : `${request.name}@${request.source}`;
14
23
  }
15
- /** Name of the source an offer comes from. */
24
+ /**
25
+ * @brief Gets the name of the source an offer comes from.
26
+ *
27
+ * @param offer - Offer whose entry's origin names the source, e.g. `{ key: "emphasise", entry }`.
28
+ */
16
29
  function sourceOf(offer) {
17
30
  return offer.entry.origin.source;
18
31
  }
19
- /** Names of the sources the offers come from, each once, sorted. */
32
+ /**
33
+ * @brief Gets the names of the sources the offers come from, each once, sorted.
34
+ *
35
+ * @param offers - Offers to read the sources of, e.g. the matches of one request.
36
+ */
20
37
  function uniqueSources(offers) {
21
38
  return [...new Set(offers.map(sourceOf))].sort();
22
39
  }
23
40
  /**
24
- * Entries one request names. A group name expands to every entry in it and
25
- * wins over an entry with the same key. A name offered by several sources is
26
- * settled by the preferred source for it, and is ambiguous otherwise.
41
+ * @brief Finds the entries one request names.
42
+ *
43
+ * A group name expands to every entry in it and wins over an entry with the
44
+ * same key. A name offered by several sources is settled by the preferred
45
+ * source for it, and is ambiguous otherwise.
46
+ *
47
+ * @param request - Request being matched, e.g. `{ name: "emphasise" }`.
48
+ * @param offers - Every offer to search, across all sources.
49
+ * @param preferred - Source to pick for a key several sources offer, by key, e.g. `{ emphasise: "g3n-skills" }`.
50
+ * @returns The matching offers, an `{ ambiguous }` message when several sources offer the name, or `null` when none does.
27
51
  */
28
52
  function matchRequest(request, offers, preferred) {
29
53
  const pool = request.source === undefined ? offers : offers.filter((o) => sourceOf(o) === request.source);
@@ -40,9 +64,16 @@ function matchRequest(request, offers, preferred) {
40
64
  return { ambiguous: `${request.name} is offered by ${sources.length} sources, name one: ${sources.map((s) => `${request.name}@${s}`).join(", ")}` };
41
65
  }
42
66
  /**
43
- * The entry a dependency of `dependent` points at: the named source when the
44
- * dependency is qualified, else the dependent's own source, else the source
45
- * preferred for the key, else the only source offering it.
67
+ * @brief Finds the entry one dependency token points at.
68
+ *
69
+ * The named source when the dependency is qualified, else the dependent's own
70
+ * source, else the source preferred for the key, else the only source offering it.
71
+ *
72
+ * @param token - Dependency as written in `registryDependencies`, e.g. `ghost@mine`.
73
+ * @param dependent - Offer that declares the dependency.
74
+ * @param offers - Every offer to search, across all sources.
75
+ * @param preferred - Source to pick for a key several sources offer, by key.
76
+ * @returns The matched offer, an `{ ambiguous }` message, or `null` when no source offers it.
46
77
  */
47
78
  function matchDependency(token, dependent, offers, preferred) {
48
79
  const request = parseRequest(token);
@@ -58,11 +89,15 @@ function matchDependency(token, dependent, offers, preferred) {
58
89
  return { ambiguous: `${dependent.key} depends on ${request.name}, offered by ${uniqueSources(named).join(", ")}; qualify it as ${request.name}@<source>` };
59
90
  }
60
91
  /**
61
- * Resolves the `registryDependencies` of one entry against every offer. A
62
- * dependency that cannot be resolved keeps its bare name in the rewritten
92
+ * @brief Resolves the `registryDependencies` of one entry against every offer.
93
+ *
94
+ * A dependency that cannot be resolved keeps its bare name in the rewritten
63
95
  * list and is reported in `unknown` or `ambiguous`.
64
96
  *
65
- * @param preferred - Source to take a key from when several offer it: where it is installed, or where the request named it
97
+ * @param offer - Offer whose dependencies are resolved.
98
+ * @param offers - Every offer to resolve against, across all sources.
99
+ * @param preferred - Source to take a key from when several offer it: where it is installed, or where the request named it.
100
+ * @returns The offer with rewritten dependencies, the dependency offers found, and the ones that did not resolve.
66
101
  */
67
102
  export function resolveDependencies(offer, offers, preferred = {}) {
68
103
  const result = { offer, dependencies: [], unknown: [], ambiguous: [] };
@@ -83,13 +118,16 @@ export function resolveDependencies(offer, offers, preferred = {}) {
83
118
  return result;
84
119
  }
85
120
  /**
86
- * Resolves entry and group names against every offer, with the dependency
87
- * closure of each across sources. An entry named in the request settles which
88
- * source its key comes from for every dependency. Two different entries
89
- * wanted under one key are reported as ambiguous, since a target holds one
90
- * folder per key.
121
+ * @brief Resolves entry and group names against every offer, with the dependency closure of each across sources.
122
+ *
123
+ * An entry named in the request settles which source its key comes from for
124
+ * every dependency. Two different entries wanted under one key are reported as
125
+ * ambiguous, since a target holds one folder per key.
91
126
  *
92
- * @param installed - Source each installed key came from
127
+ * @param tokens - Names as typed on the command line, e.g. `["emphasise", "ui@g3n-skills"]`.
128
+ * @param offers - Every offer to resolve against, across all sources.
129
+ * @param installed - Source each installed key came from.
130
+ * @returns The entries to install, and what could not be resolved or was ambiguous.
93
131
  */
94
132
  export function resolveRequests(tokens, offers, installed = {}) {
95
133
  const preferred = { ...installed };
@@ -134,11 +172,14 @@ export function resolveRequests(tokens, offers, installed = {}) {
134
172
  return result;
135
173
  }
136
174
  /**
137
- * Resolves entry and group names against what a target has installed, with
138
- * `<name>@<source>` keeping only entries installed from that source. Works
139
- * from the install manifest alone, so no source needs to be reachable.
175
+ * @brief Resolves entry and group names against what a target has installed.
140
176
  *
141
- * @returns installed keys in the order named, and the names that match nothing installed
177
+ * `<name>@<source>` keeps only entries installed from that source. Works from
178
+ * the install manifest alone, so no source needs to be reachable.
179
+ *
180
+ * @param tokens - Names as typed, e.g. `["emphasise@g3n-skills"]`.
181
+ * @param installed - Installed entries by key, from one target's manifest.
182
+ * @returns Installed keys in the order named, and the names that match nothing installed.
142
183
  */
143
184
  export function resolveInstalled(tokens, installed) {
144
185
  const keys = [];
@@ -154,7 +195,14 @@ export function resolveInstalled(tokens, installed) {
154
195
  }
155
196
  return { keys: [...new Set(keys)], unknown };
156
197
  }
157
- /** Source each installed key came from, across manifests; the first manifest wins on a clash. */
198
+ /**
199
+ * @brief Maps each installed key to the source it came from, across manifests.
200
+ *
201
+ * The first manifest wins on a clash.
202
+ *
203
+ * @param installed - Installed entries by key, one record per target manifest.
204
+ * @returns Source name by installed key, e.g. `{ emphasise: "g3n-skills" }`.
205
+ */
158
206
  export function installedOrigins(installed) {
159
207
  const origins = {};
160
208
  for (const record of installed)
@@ -163,11 +211,30 @@ export function installedOrigins(installed) {
163
211
  return origins;
164
212
  }
165
213
  /**
166
- * The fresh offer for each installed key, from the source it was installed
167
- * from and never another, with its dependencies resolved.
214
+ * @brief Maps each forked key to the installed fork that stands in for it, across manifests.
215
+ *
216
+ * The first manifest wins on a clash.
217
+ *
218
+ * @param installed - Installed entries by key, one record per target manifest.
219
+ * @returns Installed fork key by forked key, e.g. `{ emphasise: "my-emphasise" }`.
220
+ */
221
+ export function installedForks(installed) {
222
+ const forks = {};
223
+ for (const record of installed) {
224
+ for (const [key, entry] of Object.entries(record))
225
+ if (entry.forkedFrom !== undefined)
226
+ forks[entry.forkedFrom] ??= key;
227
+ }
228
+ return forks;
229
+ }
230
+ /**
231
+ * @brief Finds the fresh offer for each installed key, from the source it was installed from and never another, with its dependencies resolved.
168
232
  *
169
- * @param preferred - Source each installed key came from, across targets
170
- * @returns the offers found, and the keys whose source is gone or no longer offers them
233
+ * @param keys - Installed keys to update.
234
+ * @param installed - Installed entries by key, from one target's manifest.
235
+ * @param offers - Every offer to search, across all sources.
236
+ * @param preferred - Source each installed key came from, across targets.
237
+ * @returns The offers found, and the keys whose source is gone or no longer offers them.
171
238
  */
172
239
  export function resolveUpdates(keys, installed, offers, preferred = {}) {
173
240
  const found = [];
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/installer/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/installer/resolve.ts"],"names":[],"mappings":"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"}
@@ -2,58 +2,95 @@ import { type RegistryStore } from "../registry/registry.store";
2
2
  import type { RegisteredSource, SourceCheckout } from "../sources/types";
3
3
  import type { EntrySource } from "../cli/types";
4
4
  import { type OriginEntry } from "./origin";
5
- /** What a package's reader found in one checked-out source. */
5
+ /**
6
+ * @brief What a package's reader found in one checked-out source.
7
+ *
8
+ * @property entries - Entries by key, each with its `origin` filled in.
9
+ * @property warnings - Problems the reader met that did not stop it.
10
+ */
6
11
  export interface SourceEntries<T extends OriginEntry> {
7
- /** Entries by key, each with its `origin` filled in */
8
12
  entries: [string, T][];
9
13
  warnings: string[];
10
14
  }
11
- /** Reads the entries one checked-out source offers; each installer supplies its own. */
15
+ /**
16
+ * @brief Reads the entries one checked-out source offers. Each installer supplies its own.
17
+ *
18
+ * @param checkout - Checkout of the source to read.
19
+ * @returns Entries and warnings found in the checkout.
20
+ */
12
21
  export type ReadSource<T extends OriginEntry> = (checkout: SourceCheckout) => Promise<SourceEntries<T>>;
13
- /** A source that could not be checked out or read, with the reason. */
22
+ /**
23
+ * @brief A source that could not be checked out or read.
24
+ *
25
+ * @property name - Name of the registered source.
26
+ * @property error - Reason it failed, as a message.
27
+ */
14
28
  export interface FailedSource {
15
29
  name: string;
16
30
  error: string;
17
31
  }
18
32
  /**
19
- * The entries a set of sources offers, one registry store per source, read
20
- * from checkouts that stay on disk until `dispose` so the install can copy
21
- * files out of them.
33
+ * @brief The entries a set of sources offers, one registry store per source.
22
34
  *
23
- * Built by `loadSourceRegistry` in each installer's `add`, `update`, `ls` and
24
- * `source add` commands. `offers` lists every entry for name resolution, and
25
- * `entrySource` copies an entry's files from its checkout.
35
+ * Checkouts stay on disk until `dispose` so the install can copy files out of them. Built by
36
+ * `loadSourceRegistry` in each installer's `add`, `update`, `ls` and `source add` commands. `offers`
37
+ * lists every entry for name resolution, and `entrySource` copies an entry's files from its checkout.
38
+ *
39
+ * @property sources - Entries by source name, in the order the sources were given.
40
+ * @property checkouts - Checkout of each source by name.
41
+ * @property warnings - Warnings from loading, prefixed with the source name.
42
+ * @property failed - Sources that could not be checked out or read.
43
+ * @property dispose - Releases every checkout.
26
44
  */
27
45
  export interface SourceRegistry<T extends OriginEntry> {
28
- /** Entries by source name, in the order the sources were given */
29
46
  sources: Map<string, RegistryStore<T>>;
30
47
  checkouts: Map<string, SourceCheckout>;
31
48
  warnings: string[];
32
49
  failed: FailedSource[];
33
50
  dispose: () => void;
34
51
  }
35
- /** One entry one source offers. */
52
+ /**
53
+ * @brief One entry that one source offers.
54
+ *
55
+ * @property key - Key of the entry within its source.
56
+ * @property entry - The entry itself.
57
+ */
36
58
  export interface SourceOffer<T extends OriginEntry> {
37
59
  key: string;
38
60
  entry: T;
39
61
  }
40
62
  /**
41
- * Checks out each source and reads its entries with `readSource`, all
42
- * sources at once. A source that cannot be checked out or read lands in
43
- * `failed` instead of throwing, so one unreachable source does not stop the
44
- * rest. A key offered twice by one source keeps the first, with a warning.
63
+ * @brief Checks out each source and reads its entries with `readSource`, all sources at once.
64
+ *
65
+ * A source that cannot be checked out or read lands in `failed` instead of throwing, so one unreachable
66
+ * source does not stop the rest. A key offered twice by one source keeps the first, with a warning.
45
67
  *
46
- * @param projectRoot - Absolute root that local source paths and the `node_modules` lookup start from
68
+ * @param sources - Registered sources to load.
69
+ * @param projectRoot - Absolute root that local source paths and the `node_modules` lookup start from.
70
+ * @param readSource - Reads the entries of one checkout.
71
+ * @returns Registry holding every source that loaded, with the rest in `failed`.
47
72
  */
48
73
  export declare function loadSourceRegistry<T extends OriginEntry>(sources: readonly RegisteredSource[], projectRoot: string, readSource: ReadSource<T>): Promise<SourceRegistry<T>>;
49
- /** Every entry of every source, sources in their given order and keys sorted within each. */
74
+ /**
75
+ * @brief Lists every entry of every source, sources in their given order and keys sorted within each.
76
+ *
77
+ * @param registry - Registry returned by `loadSourceRegistry`.
78
+ * @returns One offer per entry.
79
+ */
50
80
  export declare function offers<T extends OriginEntry>(registry: SourceRegistry<T>): SourceOffer<T>[];
51
81
  /**
52
- * File source for the core install commands: a file at `files[].path` is
53
- * copied from `<checkout>/<origin.dir>/<path>` in the checkout of the
54
- * entry's source.
82
+ * @brief File source for the core install commands. Copies each file from `<checkout>/<origin.dir>/<path>` in its entry's source.
83
+ *
84
+ * @param registry - Registry whose checkouts the files are copied from.
85
+ * @returns Source that copies an entry's files from the checkout of `origin.source`.
86
+ * @throws {Error} When the entry's source is not checked out.
55
87
  */
56
88
  export declare function entrySource<T extends OriginEntry>(registry: SourceRegistry<T>): EntrySource;
57
- /** Registry the core install commands take, keyed by entry key. */
89
+ /**
90
+ * @brief Converts offers into the registry the core install commands take, keyed by entry key.
91
+ *
92
+ * @param selected - Offers to include. A later offer with the same key replaces an earlier one.
93
+ * @returns Entries by key.
94
+ */
58
95
  export declare function offerRegistry<T extends OriginEntry>(selected: Iterable<SourceOffer<T>>): Record<string, T>;
59
96
  //# sourceMappingURL=sourceRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceRegistry.d.ts","sourceRoot":"","sources":["../../src/installer/sourceRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAIpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAE9D,+DAA+D;AAC/D,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW;IAClD,uDAAuD;IACvD,OAAO,EAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,wFAAwF;AACxF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvG,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAG,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,WAAW;IACnD,kEAAkE;IAClE,OAAO,EAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtC,QAAQ,EAAG,MAAM,EAAE,CAAA;IACnB,MAAM,EAAK,YAAY,EAAE,CAAA;IACzB,OAAO,EAAI,MAAM,IAAI,CAAA;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,WAAW;IAChD,GAAG,EAAI,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,CAAA;CACT;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAC5D,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CA6B5B;AAED,6FAA6F;AAC7F,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAG3F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAO3F;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAI1G"}
1
+ {"version":3,"file":"sourceRegistry.d.ts","sourceRoot":"","sources":["../../src/installer/sourceRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAIpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW;IAClD,OAAO,EAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAA;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvG;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAG,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,WAAW;IACnD,OAAO,EAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACtC,QAAQ,EAAG,MAAM,EAAE,CAAA;IACnB,MAAM,EAAK,YAAY,EAAE,CAAA;IACzB,OAAO,EAAI,MAAM,IAAI,CAAA;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,WAAW;IAChD,GAAG,EAAI,MAAM,CAAA;IACb,KAAK,EAAE,CAAC,CAAA;CACT;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAC5D,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CA6B5B;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAG3F;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAO3F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAI1G"}
@@ -8,12 +8,15 @@ import { errorMessage } from "../utils/errors";
8
8
  import { copySource } from "./install";
9
9
  import { OriginEntrySchema } from "./origin";
10
10
  /**
11
- * Checks out each source and reads its entries with `readSource`, all
12
- * sources at once. A source that cannot be checked out or read lands in
13
- * `failed` instead of throwing, so one unreachable source does not stop the
14
- * rest. A key offered twice by one source keeps the first, with a warning.
11
+ * @brief Checks out each source and reads its entries with `readSource`, all sources at once.
15
12
  *
16
- * @param projectRoot - Absolute root that local source paths and the `node_modules` lookup start from
13
+ * A source that cannot be checked out or read lands in `failed` instead of throwing, so one unreachable
14
+ * source does not stop the rest. A key offered twice by one source keeps the first, with a warning.
15
+ *
16
+ * @param sources - Registered sources to load.
17
+ * @param projectRoot - Absolute root that local source paths and the `node_modules` lookup start from.
18
+ * @param readSource - Reads the entries of one checkout.
19
+ * @returns Registry holding every source that loaded, with the rest in `failed`.
17
20
  */
18
21
  export async function loadSourceRegistry(sources, projectRoot, readSource) {
19
22
  const registry = { sources: new Map(), checkouts: new Map(), warnings: [], failed: [], dispose: () => { } };
@@ -43,14 +46,21 @@ export async function loadSourceRegistry(sources, projectRoot, readSource) {
43
46
  });
44
47
  return registry;
45
48
  }
46
- /** Every entry of every source, sources in their given order and keys sorted within each. */
49
+ /**
50
+ * @brief Lists every entry of every source, sources in their given order and keys sorted within each.
51
+ *
52
+ * @param registry - Registry returned by `loadSourceRegistry`.
53
+ * @returns One offer per entry.
54
+ */
47
55
  export function offers(registry) {
48
56
  return [...registry.sources.values()].flatMap((store) => Object.entries(entries(store)).sort(([a], [b]) => a.localeCompare(b)).map(([key, entry]) => ({ key, entry })));
49
57
  }
50
58
  /**
51
- * File source for the core install commands: a file at `files[].path` is
52
- * copied from `<checkout>/<origin.dir>/<path>` in the checkout of the
53
- * entry's source.
59
+ * @brief File source for the core install commands. Copies each file from `<checkout>/<origin.dir>/<path>` in its entry's source.
60
+ *
61
+ * @param registry - Registry whose checkouts the files are copied from.
62
+ * @returns Source that copies an entry's files from the checkout of `origin.source`.
63
+ * @throws {Error} When the entry's source is not checked out.
54
64
  */
55
65
  export function entrySource(registry) {
56
66
  return (entry) => {
@@ -61,7 +71,12 @@ export function entrySource(registry) {
61
71
  return copySource((filePath) => path.join(checkout.dir, origin.dir, filePath));
62
72
  };
63
73
  }
64
- /** Registry the core install commands take, keyed by entry key. */
74
+ /**
75
+ * @brief Converts offers into the registry the core install commands take, keyed by entry key.
76
+ *
77
+ * @param selected - Offers to include. A later offer with the same key replaces an earlier one.
78
+ * @returns Entries by key.
79
+ */
65
80
  export function offerRegistry(selected) {
66
81
  const registry = {};
67
82
  for (const offer of selected)
@@ -1 +1 @@
1
- {"version":3,"file":"sourceRegistry.js","sourceRoot":"","sources":["../../src/installer/sourceRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceRegistry.js","sourceRoot":"","sources":["../../src/installer/sourceRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,61 @@
1
1
  import type { BaseFileEntry } from "../registry/types";
2
2
  /**
3
- * How one installed file relates to its package version. Ordered by
4
- * severity: everything >= UserOnly carries local changes.
5
- * (Const-object enum — the `enum` keyword is barred by `erasableSyntaxOnly`.)
3
+ * @brief Relation of one installed file to its package version, ordered by severity.
4
+ *
5
+ * Const object standing in for an enum. Every state from `UserOnly` up carries local changes.
6
+ *
7
+ * @property UpToDate - On disk and identical to the package file.
8
+ * @property SafeUpdate - Missing, or unmodified while the package file changed. Writable without data loss.
9
+ * @property UserOnly - Modified locally while the package file is unchanged.
10
+ * @property Conflict - Modified locally and the package file changed too.
6
11
  */
7
12
  export declare const FileState: {
8
- /** On disk and identical to the package file */
9
13
  readonly UpToDate: 0;
10
- /** Missing, or unmodified while the package file changed; writable without data loss */
11
14
  readonly SafeUpdate: 1;
12
- /** Modified locally while the package file is unchanged */
13
15
  readonly UserOnly: 2;
14
- /** Modified locally and the package file changed too */
15
16
  readonly Conflict: 3;
16
17
  };
18
+ /** One of the `FileState` values. */
17
19
  export type FileState = (typeof FileState)[keyof typeof FileState];
18
- /** What to do with `UserOnly` and `Conflict` files when applying. */
20
+ /**
21
+ * @brief Choice for an entry whose files have local changes (`UserOnly` and `Conflict`).
22
+ *
23
+ * Const object standing in for an enum. `remove` offers only `Keep` and `Overwrite`.
24
+ *
25
+ * @property Keep - Skip: leave the changed files alone and keep their install-time hash, so the next run asks again.
26
+ * @property Overwrite - Restore: write the source version over the changes.
27
+ * @property Fork - Keep the files as they are under a new key that no update touches.
28
+ */
19
29
  export declare const ConflictDecision: {
20
30
  readonly Keep: 0;
21
31
  readonly Overwrite: 1;
32
+ readonly Fork: 2;
22
33
  };
34
+ /** One of the `ConflictDecision` values. */
23
35
  export type ConflictDecision = (typeof ConflictDecision)[keyof typeof ConflictDecision];
24
- /** Classification of one file, produced by `classifyFiles` and consumed by `applyClassifications`. */
36
+ /**
37
+ * @brief Classification of one file, produced by `classifyFiles` and consumed by `applyClassifications`.
38
+ *
39
+ * @property file - Registry entry of the file, with the hash the package ships.
40
+ * @property destPath - Absolute path the file is installed at: `installDir` joined with `file.path`.
41
+ * @property state - What the install or update does with the file.
42
+ * @property exists - Whether a file is on disk at `destPath`.
43
+ * @property currentHash - Hash of the file on disk, e.g. `"a1b2"`. `null` when it does not exist.
44
+ * @property recordedHash - Hash recorded in the user manifest at install time. `undefined` when never installed.
45
+ * @property latestHash - Hash of the package's current version of the file.
46
+ */
25
47
  export interface FileClassification<F extends BaseFileEntry = BaseFileEntry> {
26
48
  file: F;
27
49
  destPath: string;
28
50
  state: FileState;
29
51
  exists: boolean;
30
- /** Hash of the file currently on disk, null when it does not exist */
31
52
  currentHash: string | null;
32
- /** Hash recorded in the user manifest at install time, undefined when never installed */
33
53
  recordedHash: string | undefined;
34
- /** Hash of the package's current version of the file */
35
54
  latestHash: string;
36
55
  }
37
- /** Where a file's content comes from when it is written. `null` skips the file. */
56
+ /**
57
+ * Where a file's content comes from when it is written. `null` skips the file.
58
+ */
38
59
  export type FileContent = {
39
60
  kind: "copy";
40
61
  sourcePath: string;
@@ -42,10 +63,24 @@ export type FileContent = {
42
63
  kind: "write";
43
64
  content: string;
44
65
  } | null;
66
+ /**
67
+ * @brief Produces the content of one file for `applyClassifications`.
68
+ *
69
+ * @param file - Registry entry of the file to produce content for.
70
+ * @returns Where the content comes from, or `null` to skip the file.
71
+ */
45
72
  export type FileSource<F extends BaseFileEntry = BaseFileEntry> = (file: F) => FileContent | Promise<FileContent>;
46
73
  /**
47
- * Filesystem boundary for the installer. `createInstallerIO` supplies the
48
- * real implementation; tests inject stubs per field.
74
+ * @brief Filesystem boundary for the installer. `createInstallerIO` supplies the real implementation; tests inject stubs per field.
75
+ *
76
+ * @property exists - Whether a path exists on disk.
77
+ * @property ensureDir - Creates a directory and its parents when missing.
78
+ * @property copyFile - Copies the file at `src` to `dest`.
79
+ * @property writeFile - Writes `content` to `dest` as UTF-8.
80
+ * @property removeFile - Deletes the file at `path`.
81
+ * @property listDir - Names of the entries directly inside `dir`.
82
+ * @property removeDir - Deletes `dir` and everything below it.
83
+ * @property hashFile - Content hash of the file at `path`.
49
84
  */
50
85
  export interface InstallerIO {
51
86
  exists: (path: string) => boolean;
@@ -57,21 +92,39 @@ export interface InstallerIO {
57
92
  removeDir: (dir: string) => void;
58
93
  hashFile: (path: string) => Promise<string>;
59
94
  }
95
+ /**
96
+ * @brief Options that decide which changed files `applyClassifications` writes.
97
+ *
98
+ * @property decision - What to do with entries that have local changes.
99
+ * @property force - Writes changed files even when `decision` is not `Overwrite`.
100
+ * @property dryRun - Reports the result without touching the disk.
101
+ */
60
102
  export interface ApplyOptions {
61
103
  decision: ConflictDecision;
62
104
  force?: boolean;
63
105
  dryRun?: boolean;
64
106
  }
107
+ /**
108
+ * @brief Outcome of `applyClassifications`, per file.
109
+ *
110
+ * @property written - Relative paths written, or that would be written under `dryRun`.
111
+ * @property kept - Relative paths with local changes that were left alone.
112
+ * @property missingSource - Relative paths whose source produced no content.
113
+ * @property files - Manifest entries reflecting the on-disk state after the apply.
114
+ */
65
115
  export interface ApplyResult<F extends BaseFileEntry = BaseFileEntry> {
66
- /** Relative paths written (or that would be written under dryRun) */
67
116
  written: string[];
68
- /** Relative paths with local changes that were left alone */
69
117
  kept: string[];
70
- /** Relative paths whose source produced no content */
71
118
  missingSource: string[];
72
- /** Manifest entries reflecting the on-disk state after the apply */
73
119
  files: F[];
74
120
  }
121
+ /**
122
+ * @brief Outcome of removing installed files.
123
+ *
124
+ * @property removed - Relative paths deleted.
125
+ * @property kept - Relative paths with local changes that were left alone.
126
+ * @property missing - Relative paths that were not on disk.
127
+ */
75
128
  export interface RemoveResult {
76
129
  removed: string[];
77
130
  kept: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/installer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/installer/types.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,31 @@
1
1
  /**
2
- * How one installed file relates to its package version. Ordered by
3
- * severity: everything >= UserOnly carries local changes.
4
- * (Const-object enum — the `enum` keyword is barred by `erasableSyntaxOnly`.)
2
+ * @brief Relation of one installed file to its package version, ordered by severity.
3
+ *
4
+ * Const object standing in for an enum. Every state from `UserOnly` up carries local changes.
5
+ *
6
+ * @property UpToDate - On disk and identical to the package file.
7
+ * @property SafeUpdate - Missing, or unmodified while the package file changed. Writable without data loss.
8
+ * @property UserOnly - Modified locally while the package file is unchanged.
9
+ * @property Conflict - Modified locally and the package file changed too.
5
10
  */
6
11
  export const FileState = {
7
- /** On disk and identical to the package file */
8
12
  UpToDate: 0,
9
- /** Missing, or unmodified while the package file changed; writable without data loss */
10
13
  SafeUpdate: 1,
11
- /** Modified locally while the package file is unchanged */
12
14
  UserOnly: 2,
13
- /** Modified locally and the package file changed too */
14
15
  Conflict: 3,
15
16
  };
16
- /** What to do with `UserOnly` and `Conflict` files when applying. */
17
+ /**
18
+ * @brief Choice for an entry whose files have local changes (`UserOnly` and `Conflict`).
19
+ *
20
+ * Const object standing in for an enum. `remove` offers only `Keep` and `Overwrite`.
21
+ *
22
+ * @property Keep - Skip: leave the changed files alone and keep their install-time hash, so the next run asks again.
23
+ * @property Overwrite - Restore: write the source version over the changes.
24
+ * @property Fork - Keep the files as they are under a new key that no update touches.
25
+ */
17
26
  export const ConflictDecision = {
18
27
  Keep: 0,
19
28
  Overwrite: 1,
29
+ Fork: 2,
20
30
  };
21
31
  //# sourceMappingURL=types.js.map