@detergent-software/atk 8.9.0-dev.2 → 8.9.0-dev.20

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 (226) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/README.md +11 -1
  3. package/build/cli.js +18 -6
  4. package/build/cli.js.map +1 -1
  5. package/build/command-manifest.json +1507 -0
  6. package/build/commands/_app.d.ts.map +1 -1
  7. package/build/commands/_app.js +8 -4
  8. package/build/commands/_app.js.map +1 -1
  9. package/build/commands/audit.d.ts.map +1 -1
  10. package/build/commands/audit.js +1 -1
  11. package/build/commands/audit.js.map +1 -1
  12. package/build/commands/browse.js +2 -2
  13. package/build/commands/browse.js.map +1 -1
  14. package/build/commands/cache.d.ts +1 -1
  15. package/build/commands/cache.d.ts.map +1 -1
  16. package/build/commands/cache.js +1 -16
  17. package/build/commands/cache.js.map +1 -1
  18. package/build/commands/config.d.ts.map +1 -1
  19. package/build/commands/config.js +1 -1
  20. package/build/commands/config.js.map +1 -1
  21. package/build/commands/diff.d.ts.map +1 -1
  22. package/build/commands/diff.js +4 -0
  23. package/build/commands/diff.js.map +1 -1
  24. package/build/commands/drift.d.ts.map +1 -1
  25. package/build/commands/drift.js +4 -0
  26. package/build/commands/drift.js.map +1 -1
  27. package/build/commands/index.js +1 -1
  28. package/build/commands/index.js.map +1 -1
  29. package/build/commands/info.d.ts.map +1 -1
  30. package/build/commands/info.js +50 -33
  31. package/build/commands/info.js.map +1 -1
  32. package/build/commands/init.d.ts.map +1 -1
  33. package/build/commands/init.js +4 -2
  34. package/build/commands/init.js.map +1 -1
  35. package/build/commands/install.d.ts.map +1 -1
  36. package/build/commands/install.js +28 -7
  37. package/build/commands/install.js.map +1 -1
  38. package/build/commands/list.js +2 -2
  39. package/build/commands/list.js.map +1 -1
  40. package/build/commands/outdated.js +1 -1
  41. package/build/commands/outdated.js.map +1 -1
  42. package/build/commands/publish.d.ts +1 -1
  43. package/build/commands/publish.d.ts.map +1 -1
  44. package/build/commands/publish.js +32 -36
  45. package/build/commands/publish.js.map +1 -1
  46. package/build/commands/release-notes.d.ts.map +1 -1
  47. package/build/commands/release-notes.js +4 -0
  48. package/build/commands/release-notes.js.map +1 -1
  49. package/build/commands/schema.d.ts +3 -3
  50. package/build/commands/search.js +1 -1
  51. package/build/commands/search.js.map +1 -1
  52. package/build/commands/sync.d.ts +1 -1
  53. package/build/commands/sync.d.ts.map +1 -1
  54. package/build/commands/sync.js +27 -12
  55. package/build/commands/sync.js.map +1 -1
  56. package/build/commands/update.d.ts.map +1 -1
  57. package/build/commands/update.js +58 -9
  58. package/build/commands/update.js.map +1 -1
  59. package/build/commands/why.js +3 -4
  60. package/build/commands/why.js.map +1 -1
  61. package/build/components/Header.d.ts +2 -3
  62. package/build/components/Header.d.ts.map +1 -1
  63. package/build/components/Header.js +2 -9
  64. package/build/components/Header.js.map +1 -1
  65. package/build/components/LocalEditsHint.d.ts +16 -0
  66. package/build/components/LocalEditsHint.d.ts.map +1 -0
  67. package/build/components/LocalEditsHint.js +18 -0
  68. package/build/components/LocalEditsHint.js.map +1 -0
  69. package/build/components/SyncAllInSync.d.ts +5 -1
  70. package/build/components/SyncAllInSync.d.ts.map +1 -1
  71. package/build/components/SyncAllInSync.js +2 -2
  72. package/build/components/SyncAllInSync.js.map +1 -1
  73. package/build/components/header-art.d.ts +7 -0
  74. package/build/components/header-art.d.ts.map +1 -0
  75. package/build/components/header-art.js +14 -0
  76. package/build/components/header-art.js.map +1 -0
  77. package/build/components/index.d.ts +1 -0
  78. package/build/components/index.d.ts.map +1 -1
  79. package/build/components/index.js +1 -0
  80. package/build/components/index.js.map +1 -1
  81. package/build/hooks/useListActions.d.ts.map +1 -1
  82. package/build/hooks/useListActions.js +4 -0
  83. package/build/hooks/useListActions.js.map +1 -1
  84. package/build/hooks/usePublishState.d.ts +38 -207
  85. package/build/hooks/usePublishState.d.ts.map +1 -1
  86. package/build/hooks/usePublishState.js +83 -1501
  87. package/build/hooks/usePublishState.js.map +1 -1
  88. package/build/lib/adapter.js +23 -3
  89. package/build/lib/adapter.js.map +1 -1
  90. package/build/lib/api-client.d.ts +2 -1
  91. package/build/lib/api-client.d.ts.map +1 -1
  92. package/build/lib/api-client.js +10 -1
  93. package/build/lib/api-client.js.map +1 -1
  94. package/build/lib/atk-api/generated/types.gen.d.ts +4 -4
  95. package/build/lib/checksum.d.ts +40 -14
  96. package/build/lib/checksum.d.ts.map +1 -1
  97. package/build/lib/checksum.js +110 -57
  98. package/build/lib/checksum.js.map +1 -1
  99. package/build/lib/config.d.ts.map +1 -1
  100. package/build/lib/config.js +28 -5
  101. package/build/lib/config.js.map +1 -1
  102. package/build/lib/diagnostics.d.ts.map +1 -1
  103. package/build/lib/diagnostics.js +5 -2
  104. package/build/lib/diagnostics.js.map +1 -1
  105. package/build/lib/diff-command.js +1 -1
  106. package/build/lib/diff-command.js.map +1 -1
  107. package/build/lib/errors.d.ts +4 -1
  108. package/build/lib/errors.d.ts.map +1 -1
  109. package/build/lib/errors.js.map +1 -1
  110. package/build/lib/format-age.d.ts +3 -0
  111. package/build/lib/format-age.d.ts.map +1 -0
  112. package/build/lib/format-age.js +18 -0
  113. package/build/lib/format-age.js.map +1 -0
  114. package/build/lib/installer.d.ts +2 -7
  115. package/build/lib/installer.d.ts.map +1 -1
  116. package/build/lib/installer.js +30 -5
  117. package/build/lib/installer.js.map +1 -1
  118. package/build/lib/local-edits.d.ts +72 -0
  119. package/build/lib/local-edits.d.ts.map +1 -0
  120. package/build/lib/local-edits.js +145 -0
  121. package/build/lib/local-edits.js.map +1 -0
  122. package/build/lib/lockfile.d.ts +12 -8
  123. package/build/lib/lockfile.d.ts.map +1 -1
  124. package/build/lib/lockfile.js +193 -52
  125. package/build/lib/lockfile.js.map +1 -1
  126. package/build/lib/mover.d.ts.map +1 -1
  127. package/build/lib/mover.js +8 -12
  128. package/build/lib/mover.js.map +1 -1
  129. package/build/lib/offline.d.ts +19 -0
  130. package/build/lib/offline.d.ts.map +1 -0
  131. package/build/lib/offline.js +26 -0
  132. package/build/lib/offline.js.map +1 -0
  133. package/build/lib/owned-paths.d.ts +4 -2
  134. package/build/lib/owned-paths.d.ts.map +1 -1
  135. package/build/lib/owned-paths.js +19 -6
  136. package/build/lib/owned-paths.js.map +1 -1
  137. package/build/lib/pastel/commander-specs.d.ts +7 -0
  138. package/build/lib/pastel/commander-specs.d.ts.map +1 -0
  139. package/build/lib/pastel/commander-specs.js +50 -0
  140. package/build/lib/pastel/commander-specs.js.map +1 -0
  141. package/build/lib/pastel/generate-arguments.d.ts +3 -3
  142. package/build/lib/pastel/generate-arguments.d.ts.map +1 -1
  143. package/build/lib/pastel/generate-arguments.js +25 -22
  144. package/build/lib/pastel/generate-arguments.js.map +1 -1
  145. package/build/lib/pastel/generate-command.d.ts +7 -5
  146. package/build/lib/pastel/generate-command.d.ts.map +1 -1
  147. package/build/lib/pastel/generate-command.js +32 -67
  148. package/build/lib/pastel/generate-command.js.map +1 -1
  149. package/build/lib/pastel/generate-commands.d.ts +3 -5
  150. package/build/lib/pastel/generate-commands.d.ts.map +1 -1
  151. package/build/lib/pastel/generate-commands.js +6 -10
  152. package/build/lib/pastel/generate-commands.js.map +1 -1
  153. package/build/lib/pastel/generate-options.d.ts +3 -3
  154. package/build/lib/pastel/generate-options.d.ts.map +1 -1
  155. package/build/lib/pastel/generate-options.js +16 -13
  156. package/build/lib/pastel/generate-options.js.map +1 -1
  157. package/build/lib/pastel/index.d.ts +26 -4
  158. package/build/lib/pastel/index.d.ts.map +1 -1
  159. package/build/lib/pastel/index.js +104 -18
  160. package/build/lib/pastel/index.js.map +1 -1
  161. package/build/lib/pastel/internal-types.d.ts +39 -8
  162. package/build/lib/pastel/internal-types.d.ts.map +1 -1
  163. package/build/lib/pastel/manifest.d.ts +8 -0
  164. package/build/lib/pastel/manifest.d.ts.map +1 -0
  165. package/build/lib/pastel/manifest.js +7 -0
  166. package/build/lib/pastel/manifest.js.map +1 -0
  167. package/build/lib/pastel/read-commands.d.ts +7 -2
  168. package/build/lib/pastel/read-commands.d.ts.map +1 -1
  169. package/build/lib/pastel/read-commands.js +51 -30
  170. package/build/lib/pastel/read-commands.js.map +1 -1
  171. package/build/lib/pastel/render-command.d.ts +13 -0
  172. package/build/lib/pastel/render-command.d.ts.map +1 -0
  173. package/build/lib/pastel/render-command.js +56 -0
  174. package/build/lib/pastel/render-command.js.map +1 -0
  175. package/build/lib/publish-flow.d.ts +225 -0
  176. package/build/lib/publish-flow.d.ts.map +1 -0
  177. package/build/lib/publish-flow.js +1242 -0
  178. package/build/lib/publish-flow.js.map +1 -0
  179. package/build/lib/publish-run.d.ts +55 -0
  180. package/build/lib/publish-run.d.ts.map +1 -0
  181. package/build/lib/publish-run.js +164 -0
  182. package/build/lib/publish-run.js.map +1 -0
  183. package/build/lib/publisher.d.ts +11 -16
  184. package/build/lib/publisher.d.ts.map +1 -1
  185. package/build/lib/publisher.js +25 -42
  186. package/build/lib/publisher.js.map +1 -1
  187. package/build/lib/registry.d.ts +15 -1
  188. package/build/lib/registry.d.ts.map +1 -1
  189. package/build/lib/registry.js +107 -24
  190. package/build/lib/registry.js.map +1 -1
  191. package/build/lib/root-path.d.ts +11 -0
  192. package/build/lib/root-path.d.ts.map +1 -1
  193. package/build/lib/root-path.js +15 -1
  194. package/build/lib/root-path.js.map +1 -1
  195. package/build/lib/schemas/config.js +1 -1
  196. package/build/lib/schemas/config.js.map +1 -1
  197. package/build/lib/schemas/lockfile.d.ts +156 -23
  198. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  199. package/build/lib/schemas/lockfile.js +100 -79
  200. package/build/lib/schemas/lockfile.js.map +1 -1
  201. package/build/lib/staging.d.ts +15 -0
  202. package/build/lib/staging.d.ts.map +1 -0
  203. package/build/lib/staging.js +33 -0
  204. package/build/lib/staging.js.map +1 -0
  205. package/build/lib/sync.d.ts +22 -6
  206. package/build/lib/sync.d.ts.map +1 -1
  207. package/build/lib/sync.js +59 -7
  208. package/build/lib/sync.js.map +1 -1
  209. package/build/lib/uninstaller.js +2 -2
  210. package/build/lib/uninstaller.js.map +1 -1
  211. package/build/lib/update-check.d.ts.map +1 -1
  212. package/build/lib/update-check.js +5 -1
  213. package/build/lib/update-check.js.map +1 -1
  214. package/build/lib/updater.d.ts +31 -1
  215. package/build/lib/updater.d.ts.map +1 -1
  216. package/build/lib/updater.js +143 -4
  217. package/build/lib/updater.js.map +1 -1
  218. package/build/lib/usage-error.d.ts +20 -0
  219. package/build/lib/usage-error.d.ts.map +1 -0
  220. package/build/lib/usage-error.js +41 -0
  221. package/build/lib/usage-error.js.map +1 -0
  222. package/build/lib/write-file.d.ts +5 -0
  223. package/build/lib/write-file.d.ts.map +1 -1
  224. package/build/lib/write-file.js +10 -7
  225. package/build/lib/write-file.js.map +1 -1
  226. package/package.json +81 -81
@@ -10,9 +10,17 @@ import decamelize from 'decamelize';
10
10
  import fs from 'node:fs/promises';
11
11
  import path from 'node:path';
12
12
  import { pathToFileURL } from 'node:url';
13
- const readCommands = async (directory) => {
14
- const commands = new Map();
15
- const files = await fs.readdir(directory);
13
+ import { isDeepStrictEqual } from 'node:util';
14
+ import describeArguments from './generate-arguments.js';
15
+ import describeOptions from './generate-options.js';
16
+ /**
17
+ * Import every command in `directory` and describe it as plain data. Files are read in name order, so the manifest
18
+ * and the help list commands the same way on every file system. `prefix` is the folder's path from the commands
19
+ * folder, for `file`.
20
+ */
21
+ const readCommands = async (directory, prefix = '') => {
22
+ const commands = [];
23
+ const files = (await fs.readdir(directory)).sort();
16
24
  for (const file of files) {
17
25
  if (file.startsWith('_app')) {
18
26
  continue;
@@ -20,40 +28,53 @@ const readCommands = async (directory) => {
20
28
  const filePath = path.join(directory, file);
21
29
  const stat = await fs.stat(filePath);
22
30
  if (stat.isDirectory()) {
23
- const subCommands = await readCommands(filePath);
24
- const indexCommand = subCommands.get('index');
25
- if (indexCommand) {
26
- indexCommand.name = file;
27
- indexCommand.commands = subCommands;
28
- subCommands.delete('index');
29
- commands.set(file, indexCommand);
30
- continue;
31
- }
32
- const command = indexCommand ?? {
33
- commands: subCommands,
34
- isDefault: false,
35
- name: file,
36
- };
37
- commands.set(file, command);
31
+ const subCommands = await readCommands(filePath, `${prefix}${file}/`);
32
+ const indexCommand = subCommands.find((command) => command.name === 'index');
33
+ const others = subCommands.filter((command) => command !== indexCommand);
34
+ commands.push(indexCommand
35
+ ? { ...indexCommand, commands: others, name: file }
36
+ : { commands: others, isDefault: false, name: file });
38
37
  continue;
39
38
  }
40
39
  if (!/\.(js|ts)x?$/.test(file) || file.endsWith('.d.ts')) {
41
40
  continue;
42
41
  }
43
- const fileUrl = pathToFileURL(filePath);
44
- const m = (await import(__rewriteRelativeImportExtension(fileUrl.href)));
45
- const name = decamelize(file.replace(/\.(js|ts)x?$/, ''), { separator: '-' });
46
- commands.set(name, {
47
- alias: m.alias,
48
- args: m.args,
49
- component: m.default,
50
- description: m.description,
51
- isDefault: m.isDefault ?? false,
52
- name,
53
- options: m.options,
54
- });
42
+ const m = (await import(__rewriteRelativeImportExtension(pathToFileURL(filePath).href)));
43
+ const stem = file.replace(/\.(js|ts)x?$/, '');
44
+ const command = { isDefault: m.isDefault ?? false, name: decamelize(stem, { separator: '-' }) };
45
+ if (m.alias) {
46
+ command.alias = m.alias;
47
+ }
48
+ if (m.args) {
49
+ command.args = describeArguments(m.args);
50
+ }
51
+ if (m.description) {
52
+ command.description = m.description;
53
+ }
54
+ // The built module's name: under tsx, `.js` resolves to the `.ts(x)` source.
55
+ if (m.default) {
56
+ command.file = `${prefix}${stem}.js`;
57
+ }
58
+ if (m.options) {
59
+ command.options = describeOptions(m.options);
60
+ }
61
+ for (const spec of [...(command.args ?? []), ...(command.options ?? [])]) {
62
+ assertJsonDefault(spec, `${prefix}${file}`);
63
+ }
64
+ commands.push(command);
55
65
  }
56
66
  return commands;
57
67
  };
68
+ /**
69
+ * The manifest is JSON, written on a developer's machine, so a default must be a constant JSON keeps as it is: not
70
+ * `Infinity`, a `Date` or a function's result. A default that differs between machines (`process.cwd()`, a home
71
+ * path) passes here but fails the manifest test anywhere else.
72
+ */
73
+ function assertJsonDefault(spec, file) {
74
+ const { defaultValue } = spec;
75
+ if (defaultValue !== undefined && !isDeepStrictEqual(JSON.parse(JSON.stringify(defaultValue)), defaultValue)) {
76
+ throw new Error(`${file}: the default of ${spec.flags ?? spec.name} (${String(defaultValue)}) doesn't survive JSON, so the command manifest can't carry it.`);
77
+ }
78
+ }
58
79
  export default readCommands;
59
80
  //# sourceMappingURL=read-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-commands.js","sourceRoot":"","sources":["../../../src/lib/pastel/read-commands.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,MAAM,YAAY,GAAG,KAAK,EAAE,SAAiB,EAAiC,EAAE;IAC9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE9C,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;gBACzB,YAAY,CAAC,QAAQ,GAAG,WAAW,CAAC;gBACpC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAY,YAAY,IAAI;gBACvC,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC;YAEF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,kCAAC,OAAO,CAAC,IAAI,EAAC,CAAmB,CAAC;QACzD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9E,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,OAAO;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK;YAC/B,IAAI;YACJ,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"read-commands.js","sourceRoot":"","sources":["../../../src/lib/pastel/read-commands.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,YAAY,GAAG,KAAK,EAAE,SAAiB,EAAE,MAAM,GAAG,EAAE,EAA4B,EAAE;IACtF,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;YAEzE,QAAQ,CAAC,IAAI,CACX,YAAY;gBACV,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;gBACnD,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CACvD,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,kCAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAC,CAAmB,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAE7G,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACtC,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,GAAG,GAAG,MAAM,GAAG,IAAI,KAAK,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACzE,iBAAiB,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAA+D,EAAE,IAAY;IACtG,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9B,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;QAC7G,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,oBAAoB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,iEAAiE,CAC7I,CAAC;IACJ,CAAC;AACH,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type Command as CommanderCommand } from 'commander';
2
+ import type { CommandExports } from './internal-types.js';
3
+ /**
4
+ * Run a command once commander has parsed it: check its options and arguments against the module's Zod schemas, then
5
+ * render its component in the app. `generate-command.tsx` imports this only when a command runs, so help and version
6
+ * output never load Ink, React or Zod (ATK-605).
7
+ */
8
+ export default function renderCommand(commanderCommand: CommanderCommand, module: CommandExports, { commandsDirectory, input, variadic }: {
9
+ commandsDirectory: string;
10
+ input: unknown[];
11
+ variadic: boolean;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=render-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-command.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/render-command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAK7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D;;;;GAIG;AACH,wBAA8B,aAAa,CACzC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,cAAc,EACtB,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,iBA6C3G"}
@@ -0,0 +1,56 @@
1
+ import {} from 'commander';
2
+ import { render } from 'ink';
3
+ import React from 'react';
4
+ import { fromZodError } from 'zod-validation-error';
5
+ import App from './_app.js';
6
+ import readCustomApp from './read-custom-app.js';
7
+ /**
8
+ * Run a command once commander has parsed it: check its options and arguments against the module's Zod schemas, then
9
+ * render its component in the app. `generate-command.tsx` imports this only when a command runs, so help and version
10
+ * output never load Ink, React or Zod (ATK-605).
11
+ */
12
+ export default async function renderCommand(commanderCommand, module, { commandsDirectory, input, variadic }) {
13
+ const Component = module.default;
14
+ // The manifest names a module only when it had a component.
15
+ if (!Component) {
16
+ throw new Error(`${commanderCommand.name()} has no default export: run \`pnpm manifest\` after changing it.`);
17
+ }
18
+ const options = input.pop();
19
+ let parsedOptions = {};
20
+ if (module.options) {
21
+ const result = module.options.safeParse(options);
22
+ if (result.success) {
23
+ parsedOptions = result.data ?? {};
24
+ }
25
+ else {
26
+ rejectInput(commanderCommand, result.error);
27
+ }
28
+ }
29
+ let arguments_ = [];
30
+ if (module.args) {
31
+ const result = module.args.safeParse(variadic ? input.flat() : input);
32
+ if (result.success) {
33
+ arguments_ = result.data ?? [];
34
+ }
35
+ else {
36
+ rejectInput(commanderCommand, result.error);
37
+ }
38
+ }
39
+ const appComponent = (await readCustomApp(commandsDirectory)) ?? App;
40
+ render(React.createElement(appComponent, {
41
+ commandProps: {
42
+ args: arguments_,
43
+ options: parsedOptions,
44
+ },
45
+ Component,
46
+ }));
47
+ }
48
+ /**
49
+ * Options or arguments the command's schema rejects are a usage error, reported through commander like its own
50
+ * (exit 2), so `Pastel`'s `onUsageError` sees them too.
51
+ */
52
+ function rejectInput(commanderCommand, error) {
53
+ const { message } = fromZodError(error, { maxIssuesInMessage: 1, prefix: '', prefixSeparator: '' });
54
+ commanderCommand.error(`error: ${message}`, { code: 'pastel.invalidInput', exitCode: 2 });
55
+ }
56
+ //# sourceMappingURL=render-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-command.js","sourceRoot":"","sources":["../../../src/lib/pastel/render-command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,aAAa,MAAM,sBAAsB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,gBAAkC,EAClC,MAAsB,EACtB,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAsE;IAE1G,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;IAEjC,4DAA4D;IAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,kEAAkE,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAA6B,CAAC;IACvD,IAAI,aAAa,GAA4B,EAAE,CAAC;IAEhD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,aAAa,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,UAAU,GAAc,EAAE,CAAC;IAE/B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEtE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,GAAG,CAAC;IAErE,MAAM,CACJ,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE;QAChC,YAAY,EAAE;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa;SACvB;QACD,SAAS;KACV,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,gBAAkC,EAAE,KAAyC;IAChG,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IACpG,gBAAgB,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,225 @@
1
+ import type { Adapter } from './schemas/adapter.js';
2
+ import { type ManifestFieldChange } from './manifest-diff.js';
3
+ import { type DeclaredDependency, type PublishEntry, type PublishPlan, type PublishResult, type PublishTarget, type RawAssetDetection, type ValidationResult, type VersionCheckResult } from './publisher.js';
4
+ export type MetadataSubPhase = 'building-staging' | 'description' | 'tags';
5
+ export type PublishAction = {
6
+ adapters: Adapter[];
7
+ type: 'TOOLS_LOADED';
8
+ } | {
9
+ authorValue: string;
10
+ orgValue: string;
11
+ rawDetection: RawAssetDetection;
12
+ toolsDetected: string[];
13
+ type: 'RAW_DETECT_DONE';
14
+ } | {
15
+ code?: string;
16
+ command?: string;
17
+ hint?: string;
18
+ message: string;
19
+ type: 'ERROR';
20
+ } | {
21
+ entries: PublishEntryState[];
22
+ type: 'ENTRIES_CHECKED';
23
+ } | {
24
+ entries: PublishEntryState[];
25
+ type: 'ENTRIES_LOADED';
26
+ } | {
27
+ error: PublishErrorAction;
28
+ missing: DeclaredDependency[];
29
+ suggested: PublishEntry[];
30
+ type: 'SUGGEST_ENTRIES';
31
+ } | {
32
+ isUpdate: boolean;
33
+ resolvedVersion: string;
34
+ token: string;
35
+ type: 'REGISTRY_CHECK_DONE';
36
+ versionCheck: VersionCheckResult;
37
+ } | {
38
+ lockfileOrgReviewers?: string[];
39
+ type: 'VALIDATE_DONE';
40
+ validation: ValidationResult;
41
+ } | {
42
+ manifestDiff?: ManifestFieldChange[];
43
+ plan: PublishPlan;
44
+ type: 'PLAN_DONE';
45
+ } | {
46
+ message: string;
47
+ type: 'BUMP_DONE';
48
+ updatedTarget: PublishTarget;
49
+ version: string;
50
+ } | {
51
+ message: string;
52
+ type: 'PUBLISH_PROGRESS';
53
+ } | {
54
+ rawDetection: RawAssetDetection;
55
+ target: PublishTarget;
56
+ type: 'RAW_DETECT_DONE_NON_INTERACTIVE';
57
+ } | {
58
+ resolvedPath: string;
59
+ type: 'RESOLVED_INSTALLED';
60
+ } | {
61
+ resolvedPath: string;
62
+ type: 'RESOLVED_UPDATE';
63
+ } | {
64
+ result: PublishResult;
65
+ type: 'PUBLISH_DONE';
66
+ } | {
67
+ target: PublishTarget;
68
+ type: 'DETECT_DONE';
69
+ } | {
70
+ target: PublishTarget;
71
+ type: 'STAGING_DONE';
72
+ } | {
73
+ tools: string[];
74
+ type: 'CONFIRM_PROMPT_TOOLS';
75
+ } | {
76
+ tools: string[];
77
+ type: 'RESOLVE_TOOLS_NONINTERACTIVE';
78
+ } | {
79
+ type: 'SET_BUMP_SELECTION';
80
+ value: string;
81
+ } | {
82
+ type: 'SET_CONFIRM_VALUE';
83
+ value: string;
84
+ } | {
85
+ type: 'SET_DESCRIPTION';
86
+ value: string;
87
+ } | {
88
+ type: 'SET_PROMPT_TAGS';
89
+ value: string;
90
+ } | {
91
+ type: 'SET_PUBLISH_CONFIRM_VALUE';
92
+ value: string;
93
+ } | {
94
+ type: 'SET_REVIEWER';
95
+ value: string;
96
+ } | {
97
+ type: 'SET_TAGS';
98
+ value: string;
99
+ } | {
100
+ type: 'SET_WITH_CONFIRM_VALUE';
101
+ value: string;
102
+ } | {
103
+ type: 'SUBMIT_BUMP';
104
+ } | {
105
+ type: 'SUBMIT_CONFIRM';
106
+ } | {
107
+ type: 'SUBMIT_DESCRIPTION';
108
+ } | {
109
+ type: 'SUBMIT_PROMPT_TAGS';
110
+ } | {
111
+ type: 'SUBMIT_PUBLISH_CONFIRM';
112
+ } | {
113
+ type: 'SUBMIT_REVIEWER';
114
+ } | {
115
+ type: 'SUBMIT_TAGS';
116
+ } | {
117
+ type: 'SUBMIT_WITH_CONFIRM';
118
+ };
119
+ /** An entry of the publish (see {@link PublishEntry}) and how far the run has checked it. */
120
+ export interface PublishEntryState extends PublishEntry {
121
+ /** The version to publish: the manifest's, or its bump. Unset while a needed bump is pending. */
122
+ resolvedVersion?: string;
123
+ validation?: ValidationResult;
124
+ /** Set once `checking-entries` ran for the entry. */
125
+ versionCheck?: VersionCheckResult;
126
+ }
127
+ export type PublishErrorAction = PublishAction & {
128
+ type: 'ERROR';
129
+ };
130
+ export interface PublishFlags {
131
+ bump?: 'major' | 'minor' | 'patch';
132
+ descriptionFlag?: string;
133
+ dryRun: boolean;
134
+ force?: boolean;
135
+ fromInstalled: boolean;
136
+ isTTY?: boolean;
137
+ json?: boolean;
138
+ message?: string;
139
+ /** Every path given; more than one publishes them as one batch, `rawPath` (the first) as its root. */
140
+ paths?: string[];
141
+ projectRoot?: string;
142
+ rawPath: string;
143
+ refresh?: boolean;
144
+ reviewerFlag?: string;
145
+ tagsFlag?: string;
146
+ tool?: string;
147
+ toolsFlag?: string;
148
+ update: boolean;
149
+ /** `--with` folders: new dependencies published in the same pull request. */
150
+ withPaths?: string[];
151
+ yes?: boolean;
152
+ }
153
+ export type PublishPhase = 'building-plan' | 'bump-prompt' | 'checking-entries' | 'checking-registry' | 'confirm-publish' | 'confirm-update' | 'confirm-with' | 'detecting' | 'done' | 'dry-run-result' | 'error' | 'gathering-metadata' | 'loading-tools' | 'prompting-reviewer' | 'prompting-tags' | 'prompting-tools' | 'publishing' | 'resolving-installed' | 'resolving-update' | 'validating';
154
+ export interface PublishState {
155
+ authorValue: string;
156
+ /** The entry the bump prompt is for; unset when it is for the root asset. */
157
+ bumpEntry?: number;
158
+ bumpSelection: string;
159
+ confirmValue: string;
160
+ descriptionValue: string;
161
+ /** New dependencies published with the root asset, in request order. */
162
+ entries: PublishEntryState[];
163
+ errorCode?: string;
164
+ errorCommand?: string;
165
+ errorHint?: string;
166
+ errorMessage: string;
167
+ flags: PublishFlags;
168
+ isRawPublish: boolean;
169
+ isUpdate: boolean;
170
+ manifestDiff: ManifestFieldChange[] | undefined;
171
+ metadataSubPhase: MetadataSubPhase;
172
+ /** The missing dependencies the `confirm-with` prompt offers folders for. */
173
+ missingDependencies: DeclaredDependency[];
174
+ nonInteractive: boolean;
175
+ orgValue: string;
176
+ /** The plan's error, shown if the `confirm-with` offer is declined. */
177
+ pendingError?: PublishErrorAction;
178
+ phase: PublishPhase;
179
+ plan: PublishPlan | undefined;
180
+ progressMessage: string;
181
+ promptTagsValue: string;
182
+ publishConfirmValue: string;
183
+ publishResult: PublishResult | undefined;
184
+ rawDetection: null | RawAssetDetection;
185
+ resolvedPath: string;
186
+ resolvedVersion: string;
187
+ reviewerValue: string;
188
+ /** The tools chosen at the tools prompt; empty unless it was asked. */
189
+ selectedPromptTools: string[];
190
+ /** Folders next to the root that the `confirm-with` prompt offers to publish too. */
191
+ suggestedEntries: PublishEntry[];
192
+ tagsValue: string;
193
+ target: PublishTarget | undefined;
194
+ token: string | undefined;
195
+ toolAdapters: Adapter[];
196
+ toolsDetected: string[];
197
+ validation: undefined | ValidationResult;
198
+ versionCheck: undefined | VersionCheckResult;
199
+ withConfirmValue: string;
200
+ }
201
+ /**
202
+ * What a publish step needs from whoever runs it. A step reads the state it started
203
+ * in and reports what it found as reducer actions, as the phase effects did.
204
+ */
205
+ export interface PublishStepContext {
206
+ /** True once the run has moved on or stopped; `runPublishStep` then drops what the step dispatches. */
207
+ cancelled: () => boolean;
208
+ dispatch: (action: PublishAction) => void;
209
+ /** A staging directory the run removes when it ends, staged as soon as it exists so a cancelled run removes it too. */
210
+ stage: (dir: string) => void;
211
+ }
212
+ export declare function createInitialState(flags: PublishFlags): PublishState;
213
+ /** Several folders published together (`atk publish a b c`) in one pull request; one folder named twice is one. */
214
+ export declare function isBatch(flags: PublishFlags): boolean;
215
+ /**
216
+ * Run the step for the state's phase, if it has one: the work the phase waits on,
217
+ * reported through `ctx.dispatch`, which reaches the runner only until the run is
218
+ * cancelled. An error the step throws is dispatched too, so this never rejects.
219
+ * Prompt and terminal phases have no step.
220
+ */
221
+ export declare function runPublishStep(state: PublishState, ctx: PublishStepContext): Promise<void>;
222
+ /** The comma-separated values in a flag or prompt answer, trimmed, without empty ones. */
223
+ export declare function splitList(value: string | undefined): string[];
224
+ export declare function publishReducer(state: PublishState, action: PublishAction): PublishState;
225
+ //# sourceMappingURL=publish-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-flow.d.ts","sourceRoot":"","sources":["../../src/lib/publish-flow.ts"],"names":[],"mappings":"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"}