@forumulate/cli 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.md +11 -3
  2. package/dist/api/args.d.ts.map +1 -1
  3. package/dist/api/args.js +1 -0
  4. package/dist/api/args.js.map +1 -1
  5. package/dist/api/command.d.ts +1 -1
  6. package/dist/api/command.d.ts.map +1 -1
  7. package/dist/api/command.js +86 -11
  8. package/dist/api/command.js.map +1 -1
  9. package/dist/api/http.d.ts +8 -0
  10. package/dist/api/http.d.ts.map +1 -1
  11. package/dist/api/http.js +3 -2
  12. package/dist/api/http.js.map +1 -1
  13. package/dist/api/live-spec.d.ts +48 -0
  14. package/dist/api/live-spec.d.ts.map +1 -0
  15. package/dist/api/live-spec.js +72 -0
  16. package/dist/api/live-spec.js.map +1 -0
  17. package/dist/api/operations.json +1 -1
  18. package/dist/api/request.d.ts.map +1 -1
  19. package/dist/api/request.js +25 -1
  20. package/dist/api/request.js.map +1 -1
  21. package/dist/api/send.d.ts +10 -1
  22. package/dist/api/send.d.ts.map +1 -1
  23. package/dist/api/send.js +14 -3
  24. package/dist/api/send.js.map +1 -1
  25. package/dist/api/slim.d.ts +14 -0
  26. package/dist/api/slim.d.ts.map +1 -0
  27. package/dist/api/slim.js +174 -0
  28. package/dist/api/slim.js.map +1 -0
  29. package/dist/cache-command.d.ts +12 -0
  30. package/dist/cache-command.d.ts.map +1 -0
  31. package/dist/cache-command.js +93 -0
  32. package/dist/cache-command.js.map +1 -0
  33. package/dist/check/command.d.ts +48 -0
  34. package/dist/check/command.d.ts.map +1 -0
  35. package/dist/check/command.js +256 -0
  36. package/dist/check/command.js.map +1 -0
  37. package/dist/check/external.d.ts +66 -0
  38. package/dist/check/external.d.ts.map +1 -0
  39. package/dist/check/external.js +177 -0
  40. package/dist/check/external.js.map +1 -0
  41. package/dist/check/markdown-links.d.ts +38 -0
  42. package/dist/check/markdown-links.d.ts.map +1 -0
  43. package/dist/check/markdown-links.js +166 -0
  44. package/dist/check/markdown-links.js.map +1 -0
  45. package/dist/cli.js +42 -7
  46. package/dist/cli.js.map +1 -1
  47. package/dist/commands/completion.d.ts.map +1 -1
  48. package/dist/commands/completion.js +17 -0
  49. package/dist/commands/completion.js.map +1 -1
  50. package/dist/commands/context.d.ts.map +1 -1
  51. package/dist/commands/context.js +6 -2
  52. package/dist/commands/context.js.map +1 -1
  53. package/dist/commands/groups-api.d.ts.map +1 -1
  54. package/dist/commands/groups-api.js +20 -2
  55. package/dist/commands/groups-api.js.map +1 -1
  56. package/dist/commands/groups-docs.d.ts.map +1 -1
  57. package/dist/commands/groups-docs.js +8 -2
  58. package/dist/commands/groups-docs.js.map +1 -1
  59. package/dist/commands/groups-jobs.d.ts +10 -0
  60. package/dist/commands/groups-jobs.d.ts.map +1 -0
  61. package/dist/commands/groups-jobs.js +89 -0
  62. package/dist/commands/groups-jobs.js.map +1 -0
  63. package/dist/commands/groups-org.d.ts.map +1 -1
  64. package/dist/commands/groups-org.js +59 -2
  65. package/dist/commands/groups-org.js.map +1 -1
  66. package/dist/commands/groups-site.d.ts.map +1 -1
  67. package/dist/commands/groups-site.js +47 -10
  68. package/dist/commands/groups-site.js.map +1 -1
  69. package/dist/commands/groups-spaces.d.ts.map +1 -1
  70. package/dist/commands/groups-spaces.js +11 -5
  71. package/dist/commands/groups-spaces.js.map +1 -1
  72. package/dist/commands/groups-types.d.ts.map +1 -1
  73. package/dist/commands/groups-types.js +74 -0
  74. package/dist/commands/groups-types.js.map +1 -1
  75. package/dist/commands/groups.d.ts.map +1 -1
  76. package/dist/commands/groups.js +2 -0
  77. package/dist/commands/groups.js.map +1 -1
  78. package/dist/commands/index.d.ts +9 -0
  79. package/dist/commands/index.d.ts.map +1 -1
  80. package/dist/commands/index.js +18 -3
  81. package/dist/commands/index.js.map +1 -1
  82. package/dist/commands/job-wait.d.ts +64 -0
  83. package/dist/commands/job-wait.d.ts.map +1 -0
  84. package/dist/commands/job-wait.js +91 -0
  85. package/dist/commands/job-wait.js.map +1 -0
  86. package/dist/commands/resource.d.ts +19 -0
  87. package/dist/commands/resource.d.ts.map +1 -1
  88. package/dist/commands/resource.js +65 -3
  89. package/dist/commands/resource.js.map +1 -1
  90. package/dist/content/library.d.ts +8 -0
  91. package/dist/content/library.d.ts.map +1 -1
  92. package/dist/content/library.js +10 -2
  93. package/dist/content/library.js.map +1 -1
  94. package/dist/credentials.d.ts +43 -4
  95. package/dist/credentials.d.ts.map +1 -1
  96. package/dist/credentials.js +67 -4
  97. package/dist/credentials.js.map +1 -1
  98. package/dist/dev/command.d.ts +41 -0
  99. package/dist/dev/command.d.ts.map +1 -0
  100. package/dist/dev/command.js +158 -0
  101. package/dist/dev/command.js.map +1 -0
  102. package/dist/doctor/address-checks.d.ts +56 -0
  103. package/dist/doctor/address-checks.d.ts.map +1 -0
  104. package/dist/doctor/address-checks.js +183 -0
  105. package/dist/doctor/address-checks.js.map +1 -0
  106. package/dist/doctor/boilerplate.d.ts +33 -0
  107. package/dist/doctor/boilerplate.d.ts.map +1 -0
  108. package/dist/doctor/boilerplate.js +78 -0
  109. package/dist/doctor/boilerplate.js.map +1 -0
  110. package/dist/doctor/command.d.ts +18 -0
  111. package/dist/doctor/command.d.ts.map +1 -0
  112. package/dist/doctor/command.js +234 -0
  113. package/dist/doctor/command.js.map +1 -0
  114. package/dist/doctor/crawl.d.ts +49 -0
  115. package/dist/doctor/crawl.d.ts.map +1 -0
  116. package/dist/doctor/crawl.js +210 -0
  117. package/dist/doctor/crawl.js.map +1 -0
  118. package/dist/doctor/extended.d.ts +52 -0
  119. package/dist/doctor/extended.d.ts.map +1 -0
  120. package/dist/doctor/extended.js +150 -0
  121. package/dist/doctor/extended.js.map +1 -0
  122. package/dist/doctor/page-checks.d.ts +42 -0
  123. package/dist/doctor/page-checks.d.ts.map +1 -0
  124. package/dist/doctor/page-checks.js +200 -0
  125. package/dist/doctor/page-checks.js.map +1 -0
  126. package/dist/doctor/probe.d.ts +63 -0
  127. package/dist/doctor/probe.d.ts.map +1 -0
  128. package/dist/doctor/probe.js +170 -0
  129. package/dist/doctor/probe.js.map +1 -0
  130. package/dist/doctor/reader-auth-atlas.d.ts +18 -0
  131. package/dist/doctor/reader-auth-atlas.d.ts.map +1 -0
  132. package/dist/doctor/reader-auth-atlas.js +50 -0
  133. package/dist/doctor/reader-auth-atlas.js.map +1 -0
  134. package/dist/doctor/robots-params.d.ts +36 -0
  135. package/dist/doctor/robots-params.d.ts.map +1 -0
  136. package/dist/doctor/robots-params.js +97 -0
  137. package/dist/doctor/robots-params.js.map +1 -0
  138. package/dist/doctor/site.d.ts +42 -0
  139. package/dist/doctor/site.d.ts.map +1 -0
  140. package/dist/doctor/site.js +82 -0
  141. package/dist/doctor/site.js.map +1 -0
  142. package/dist/doctor.d.ts +21 -0
  143. package/dist/doctor.d.ts.map +1 -1
  144. package/dist/doctor.js +94 -3
  145. package/dist/doctor.js.map +1 -1
  146. package/dist/exit-codes.d.ts +40 -0
  147. package/dist/exit-codes.d.ts.map +1 -0
  148. package/dist/exit-codes.js +66 -0
  149. package/dist/exit-codes.js.map +1 -0
  150. package/dist/help-commands.d.ts +13 -0
  151. package/dist/help-commands.d.ts.map +1 -0
  152. package/dist/help-commands.js +215 -0
  153. package/dist/help-commands.js.map +1 -0
  154. package/dist/help.d.ts +1 -1
  155. package/dist/help.d.ts.map +1 -1
  156. package/dist/help.js +74 -11
  157. package/dist/help.js.map +1 -1
  158. package/dist/io.d.ts +33 -0
  159. package/dist/io.d.ts.map +1 -0
  160. package/dist/io.js +81 -0
  161. package/dist/io.js.map +1 -0
  162. package/dist/preview-comment.d.ts +20 -0
  163. package/dist/preview-comment.d.ts.map +1 -0
  164. package/dist/preview-comment.js +88 -0
  165. package/dist/preview-comment.js.map +1 -0
  166. package/dist/publish/about.d.ts +23 -0
  167. package/dist/publish/about.d.ts.map +1 -0
  168. package/dist/publish/about.js +66 -0
  169. package/dist/publish/about.js.map +1 -0
  170. package/dist/publish/api.d.ts +30 -12
  171. package/dist/publish/api.d.ts.map +1 -1
  172. package/dist/publish/api.js +62 -10
  173. package/dist/publish/api.js.map +1 -1
  174. package/dist/publish/client.d.ts +19 -0
  175. package/dist/publish/client.d.ts.map +1 -0
  176. package/dist/publish/client.js +3 -0
  177. package/dist/publish/client.js.map +1 -0
  178. package/dist/publish/command.d.ts +51 -2
  179. package/dist/publish/command.d.ts.map +1 -1
  180. package/dist/publish/command.js +157 -17
  181. package/dist/publish/command.js.map +1 -1
  182. package/dist/publish/context.d.ts +12 -1
  183. package/dist/publish/context.d.ts.map +1 -1
  184. package/dist/publish/context.js.map +1 -1
  185. package/dist/publish/diff.d.ts +21 -0
  186. package/dist/publish/diff.d.ts.map +1 -0
  187. package/dist/publish/diff.js +96 -0
  188. package/dist/publish/diff.js.map +1 -0
  189. package/dist/publish/docs-apply.d.ts +8 -1
  190. package/dist/publish/docs-apply.d.ts.map +1 -1
  191. package/dist/publish/docs-apply.js +49 -10
  192. package/dist/publish/docs-apply.js.map +1 -1
  193. package/dist/publish/docs-plan.d.ts +16 -3
  194. package/dist/publish/docs-plan.d.ts.map +1 -1
  195. package/dist/publish/docs-plan.js +57 -6
  196. package/dist/publish/docs-plan.js.map +1 -1
  197. package/dist/publish/extras.d.ts +10 -0
  198. package/dist/publish/extras.d.ts.map +1 -1
  199. package/dist/publish/extras.js +54 -2
  200. package/dist/publish/extras.js.map +1 -1
  201. package/dist/publish/frontmatter.d.ts +1 -1
  202. package/dist/publish/frontmatter.d.ts.map +1 -1
  203. package/dist/publish/frontmatter.js +1 -0
  204. package/dist/publish/frontmatter.js.map +1 -1
  205. package/dist/publish/index.d.ts +12 -0
  206. package/dist/publish/index.d.ts.map +1 -0
  207. package/dist/publish/index.js +17 -0
  208. package/dist/publish/index.js.map +1 -0
  209. package/dist/publish/manifest.d.ts.map +1 -1
  210. package/dist/publish/manifest.js +48 -3
  211. package/dist/publish/manifest.js.map +1 -1
  212. package/dist/publish/names.d.ts +28 -0
  213. package/dist/publish/names.d.ts.map +1 -0
  214. package/dist/publish/names.js +80 -0
  215. package/dist/publish/names.js.map +1 -0
  216. package/dist/publish/posts.d.ts.map +1 -1
  217. package/dist/publish/posts.js +46 -13
  218. package/dist/publish/posts.js.map +1 -1
  219. package/dist/publish/preview.d.ts +56 -0
  220. package/dist/publish/preview.d.ts.map +1 -0
  221. package/dist/publish/preview.js +133 -0
  222. package/dist/publish/preview.js.map +1 -0
  223. package/dist/publish/redirects.d.ts +13 -0
  224. package/dist/publish/redirects.d.ts.map +1 -0
  225. package/dist/publish/redirects.js +154 -0
  226. package/dist/publish/redirects.js.map +1 -0
  227. package/dist/publish/reserved.d.ts +49 -0
  228. package/dist/publish/reserved.d.ts.map +1 -0
  229. package/dist/publish/reserved.js +118 -0
  230. package/dist/publish/reserved.js.map +1 -0
  231. package/dist/publish/rewrite.d.ts +12 -0
  232. package/dist/publish/rewrite.d.ts.map +1 -1
  233. package/dist/publish/rewrite.js +22 -0
  234. package/dist/publish/rewrite.js.map +1 -1
  235. package/dist/publish/scan-docs.d.ts +10 -0
  236. package/dist/publish/scan-docs.d.ts.map +1 -0
  237. package/dist/publish/scan-docs.js +160 -0
  238. package/dist/publish/scan-docs.js.map +1 -0
  239. package/dist/publish/scan.d.ts +21 -17
  240. package/dist/publish/scan.d.ts.map +1 -1
  241. package/dist/publish/scan.js +99 -232
  242. package/dist/publish/scan.js.map +1 -1
  243. package/dist/publish/slots.d.ts +39 -0
  244. package/dist/publish/slots.d.ts.map +1 -0
  245. package/dist/publish/slots.js +64 -0
  246. package/dist/publish/slots.js.map +1 -0
  247. package/dist/publish/studio-edits.d.ts +25 -0
  248. package/dist/publish/studio-edits.d.ts.map +1 -0
  249. package/dist/publish/studio-edits.js +53 -0
  250. package/dist/publish/studio-edits.js.map +1 -0
  251. package/dist/publish/tags.d.ts +9 -0
  252. package/dist/publish/tags.d.ts.map +1 -0
  253. package/dist/publish/tags.js +194 -0
  254. package/dist/publish/tags.js.map +1 -0
  255. package/dist/publish/types.d.ts +84 -1
  256. package/dist/publish/types.d.ts.map +1 -1
  257. package/dist/publish/types.js +0 -10
  258. package/dist/publish/types.js.map +1 -1
  259. package/dist/publish-command.d.ts +55 -0
  260. package/dist/publish-command.d.ts.map +1 -0
  261. package/dist/publish-command.js +197 -0
  262. package/dist/publish-command.js.map +1 -0
  263. package/dist/run.d.ts +3 -10
  264. package/dist/run.d.ts.map +1 -1
  265. package/dist/run.js +171 -112
  266. package/dist/run.js.map +1 -1
  267. package/dist/translations/target.d.ts.map +1 -1
  268. package/dist/translations/target.js +2 -2
  269. package/dist/translations/target.js.map +1 -1
  270. package/dist/validate.d.ts +39 -0
  271. package/dist/validate.d.ts.map +1 -0
  272. package/dist/validate.js +166 -0
  273. package/dist/validate.js.map +1 -0
  274. package/dist/version.d.ts +8 -0
  275. package/dist/version.d.ts.map +1 -0
  276. package/dist/version.js +11 -0
  277. package/dist/version.js.map +1 -0
  278. package/dist/whoami.d.ts +41 -0
  279. package/dist/whoami.d.ts.map +1 -0
  280. package/dist/whoami.js +161 -0
  281. package/dist/whoami.js.map +1 -0
  282. package/package.json +2 -2
  283. package/dist/publish-dir.d.ts +0 -54
  284. package/dist/publish-dir.d.ts.map +0 -1
  285. package/dist/publish-dir.js +0 -119
  286. package/dist/publish-dir.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postPreviewComment = postPreviewComment;
4
+ const preview_1 = require("./publish/preview");
5
+ /**
6
+ * `publish --preview <name> --comment` (FMU-F01): post the preview's link and
7
+ * diff on the pull request it was built for — and on the next push EDIT that
8
+ * comment rather than add another, found by the hidden
9
+ * `<!-- forumulate-preview:<name> -->` marker the API puts in it.
10
+ *
11
+ * Host-neutral: GitHub, Gitea/Forgejo (the same REST shape), GitLab and
12
+ * Bitbucket, each with the token its CI documents for writing comments
13
+ * (`GITHUB_TOKEN`, `GITEA_TOKEN`, `GITLAB_TOKEN`, `BITBUCKET_TOKEN`). Any other
14
+ * host: print the comment with `--json` (`previews[].comment`) and post it with
15
+ * that host's own tool — the recipes in docs/guides/docs-workflow.md do both.
16
+ *
17
+ * Answers the pull request's address, or null when there is nothing to
18
+ * comment on (not a PR build). Throws with a sentence when the host refuses.
19
+ */
20
+ async function postPreviewComment(preview, env, doFetch = fetch) {
21
+ const src = (0, preview_1.ciSource)(env);
22
+ if (!src.provider || !src.repository || !src.number)
23
+ return null;
24
+ const marker = `<!-- forumulate-preview:${preview.name} -->`;
25
+ const body = preview.comment.includes(marker) ? preview.comment : `${marker}\n${preview.comment}`;
26
+ const call = async (url, init) => {
27
+ const res = await doFetch(url, init);
28
+ if (!res.ok)
29
+ throw new Error(`${src.provider} answered ${res.status} for ${init.method ?? 'GET'} ${url}`);
30
+ return res.status === 204 ? null : res.json();
31
+ };
32
+ switch (src.provider) {
33
+ case 'github':
34
+ case 'gitea': {
35
+ const token = env.GITEA_TOKEN || env.GITHUB_TOKEN || env.GH_TOKEN;
36
+ if (!token)
37
+ throw new Error('no GITHUB_TOKEN (or GITEA_TOKEN) to comment with');
38
+ const api = (env.GITHUB_API_URL || 'https://api.github.com').replace(/\/$/, '');
39
+ const headers = {
40
+ authorization: src.provider === 'gitea' ? `token ${token}` : `Bearer ${token}`,
41
+ accept: 'application/vnd.github+json',
42
+ 'content-type': 'application/json',
43
+ 'user-agent': 'forumulate-cli',
44
+ };
45
+ const base = `${api}/repos/${src.repository}/issues`;
46
+ const list = (await call(`${base}/${src.number}/comments?per_page=100`, { headers }));
47
+ const mine = list?.find((c) => c.body?.includes(marker));
48
+ if (mine)
49
+ await call(`${base}/comments/${mine.id}`, { method: 'PATCH', headers, body: JSON.stringify({ body }) });
50
+ else
51
+ await call(`${base}/${src.number}/comments`, { method: 'POST', headers, body: JSON.stringify({ body }) });
52
+ return src.url ?? `${src.repository}#${src.number}`;
53
+ }
54
+ case 'gitlab': {
55
+ const token = env.GITLAB_TOKEN;
56
+ if (!token)
57
+ throw new Error('no GITLAB_TOKEN to comment with (CI_JOB_TOKEN cannot write notes)');
58
+ const api = (env.CI_API_V4_URL || 'https://gitlab.com/api/v4').replace(/\/$/, '');
59
+ const headers = { 'private-token': token, 'content-type': 'application/json' };
60
+ const base = `${api}/projects/${encodeURIComponent(src.repository)}/merge_requests/${src.number}/notes`;
61
+ const list = (await call(`${base}?per_page=100`, { headers }));
62
+ const mine = list?.find((n) => n.body?.includes(marker));
63
+ if (mine)
64
+ await call(`${base}/${mine.id}`, { method: 'PUT', headers, body: JSON.stringify({ body }) });
65
+ else
66
+ await call(base, { method: 'POST', headers, body: JSON.stringify({ body }) });
67
+ return src.url ?? `${src.repository}!${src.number}`;
68
+ }
69
+ case 'bitbucket': {
70
+ const token = env.BITBUCKET_TOKEN;
71
+ if (!token)
72
+ throw new Error('no BITBUCKET_TOKEN (a repository access token) to comment with');
73
+ const headers = { authorization: `Bearer ${token}`, 'content-type': 'application/json' };
74
+ const base = `https://api.bitbucket.org/2.0/repositories/${src.repository}/pullrequests/${src.number}/comments`;
75
+ const list = (await call(`${base}?pagelen=100`, { headers }));
76
+ const mine = list?.values?.find((c) => c.content?.raw?.includes(marker));
77
+ const payload = JSON.stringify({ content: { raw: body } });
78
+ if (mine)
79
+ await call(`${base}/${mine.id}`, { method: 'PUT', headers, body: payload });
80
+ else
81
+ await call(base, { method: 'POST', headers, body: payload });
82
+ return src.url ?? `${src.repository}#${src.number}`;
83
+ }
84
+ default:
85
+ throw new Error(`no built-in commenter for ${src.provider}; post previews[].comment from \`--json\` with your host's tool`);
86
+ }
87
+ }
88
+ //# sourceMappingURL=preview-comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-comment.js","sourceRoot":"","sources":["../src/preview-comment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type SpaceCtx } from './context';
2
+ /**
3
+ * `about:` in forumulate.yaml — an About page's parts, as content-as-code.
4
+ *
5
+ * spaces:
6
+ * - path: about
7
+ * space: about
8
+ * create: { type: ABOUT, name: About }
9
+ * about:
10
+ * mission: Make work lighter.
11
+ * values: [{ title: Ship small }, { title: Write it down }]
12
+ * team: { source: authors, keys: [ada, grace], founders: [ada] }
13
+ * company: { legalName: Acme Software GmbH, vatId: DE123456789 }
14
+ *
15
+ * or `about: about.yaml` (a file beside the manifest holding the same map).
16
+ * The folder's own Markdown is the story page, published like any page. Only
17
+ * the top-level keys that differ from what the space holds are sent, through
18
+ * `PUT …/about` (PATCH semantics), so a re-run that changes nothing writes
19
+ * nothing; `null` in the manifest clears a part. Every reference is checked by
20
+ * the API, and a 422 names the key.
21
+ */
22
+ export declare function syncAbout(ctx: SpaceCtx, apply: boolean, manifestFile: string | null): Promise<void>;
23
+ //# sourceMappingURL=about.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../src/publish/about.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,IAAI,CAAC,CAmCf"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncAbout = syncAbout;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_path_1 = require("node:path");
6
+ const yaml_1 = require("yaml");
7
+ const compare_1 = require("./compare");
8
+ const context_1 = require("./context");
9
+ /**
10
+ * `about:` in forumulate.yaml — an About page's parts, as content-as-code.
11
+ *
12
+ * spaces:
13
+ * - path: about
14
+ * space: about
15
+ * create: { type: ABOUT, name: About }
16
+ * about:
17
+ * mission: Make work lighter.
18
+ * values: [{ title: Ship small }, { title: Write it down }]
19
+ * team: { source: authors, keys: [ada, grace], founders: [ada] }
20
+ * company: { legalName: Acme Software GmbH, vatId: DE123456789 }
21
+ *
22
+ * or `about: about.yaml` (a file beside the manifest holding the same map).
23
+ * The folder's own Markdown is the story page, published like any page. Only
24
+ * the top-level keys that differ from what the space holds are sent, through
25
+ * `PUT …/about` (PATCH semantics), so a re-run that changes nothing writes
26
+ * nothing; `null` in the manifest clears a part. Every reference is checked by
27
+ * the API, and a 422 names the key.
28
+ */
29
+ async function syncAbout(ctx, apply, manifestFile) {
30
+ const raw = ctx.spec.about;
31
+ if (raw === undefined || !ctx.only.part('about', ctx.spec))
32
+ return;
33
+ if (ctx.type !== 'ABOUT') {
34
+ ctx.errors.push(`about: belongs on an ABOUT space; ${ctx.spec.space} is ${ctx.type}`);
35
+ return;
36
+ }
37
+ let want;
38
+ if (typeof raw === 'string') {
39
+ const abs = (0, node_path_1.resolve)(manifestFile ? (0, node_path_1.dirname)(manifestFile) : ctx.root, raw);
40
+ const text = (0, node_fs_1.readFileSync)(abs, 'utf8');
41
+ const parsed = /\.json$/i.test(abs) ? JSON.parse(text) : (0, yaml_1.parse)(text);
42
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
43
+ ctx.errors.push(`about: ${raw} must hold a map of About parts`);
44
+ return;
45
+ }
46
+ want = parsed;
47
+ }
48
+ else
49
+ want = raw;
50
+ if (!ctx.api.opts.authed) {
51
+ ctx.line({
52
+ verb: 'patch',
53
+ what: 'about',
54
+ detail: `${Object.keys(want).join(', ')} — cannot compare without a token`,
55
+ });
56
+ return;
57
+ }
58
+ const current = await ctx.api.get((0, context_1.spacePath)(ctx, '/about'));
59
+ const keys = (0, compare_1.differingKeys)(current, want);
60
+ if (!keys.length)
61
+ return;
62
+ ctx.line({ verb: 'patch', what: 'about', detail: keys.join(', ') });
63
+ if (apply)
64
+ await ctx.api.put((0, context_1.spacePath)(ctx, '/about'), Object.fromEntries(keys.map((k) => [k, want[k]])));
65
+ }
66
+ //# sourceMappingURL=about.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/publish/about.ts"],"names":[],"mappings":";;AA0BA,8BAuCC;AAjED,qCAAuC;AACvC,yCAA6C;AAC7C,+BAA0C;AAC1C,uCAA0C;AAC1C,uCAAqD;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,SAAS,CAC7B,GAAa,EACb,KAAc,EACd,YAA2B;IAE3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IACnE,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IACD,IAAI,IAA6B,CAAC;IAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,YAAY,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAY,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,YAAS,EAAC,IAAI,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,iCAAiC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,IAAI,GAAG,MAAiC,CAAC;IAC3C,CAAC;;QAAM,IAAI,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC;SAC3E,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAA0B,IAAA,mBAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,IAAA,uBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK;QACP,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CACf,IAAA,mBAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,EACxB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClD,CAAC;AACN,CAAC"}
@@ -1,5 +1,6 @@
1
- import type { ForumulateClient } from '@forumulate/sdk';
2
- import type { LiveCollection, LivePage, LivePost } from './types';
1
+ import type { ApiClient } from './client';
2
+ import type { Slot } from './slots';
3
+ import type { LiveCollection, LivePage, LivePost, LiveTag } from './types';
3
4
  /**
4
5
  * Every call the publisher makes, through `@forumulate/sdk`.
5
6
  *
@@ -18,7 +19,7 @@ import type { LiveCollection, LivePage, LivePost } from './types';
18
19
  * publishing.
19
20
  */
20
21
  export interface ApiOptions {
21
- client: ForumulateClient;
22
+ client: ApiClient;
22
23
  /** Whether a token is present — decides authenticated vs public reads. */
23
24
  authed: boolean;
24
25
  readOnly: boolean;
@@ -60,25 +61,31 @@ export declare class PublishApi {
60
61
  collections: LiveCollection[];
61
62
  pages: LivePage[];
62
63
  fieldKeys: string[];
64
+ slots: Slot[];
63
65
  publicRows: Map<string, Record<string, unknown>>;
64
66
  }>;
65
- /** Every page's markdown, in one paged walk when authenticated. */
66
- markdownById(org: string, space: string): Promise<Map<string, string>>;
67
+ /**
68
+ * Every page's markdown, and its slots, in one paged walk when authenticated.
69
+ * The slots are what a page whose front matter fills them is compared by.
70
+ */
71
+ bodiesById(org: string, space: string): Promise<Map<string, {
72
+ markdown: string;
73
+ sections: Record<string, string>;
74
+ }>>;
67
75
  /** One published page's markdown, the way a reader (or an agent) gets it. */
68
76
  publicMarkdown(org: string, space: string, pageId: string): Promise<string | null>;
69
77
  pageMeta(org: string, space: string, pageId: string): Promise<Record<string, unknown>>;
70
78
  posts(org: string, space: string, type: string): Promise<LivePost[] | null>;
71
- shape(org: string, space: string): Promise<{
72
- sections: {
73
- key: string;
74
- required?: boolean;
75
- role?: string;
76
- schemaProperty?: string;
77
- }[];
79
+ shape(org: string, space: string,
80
+ /** A post's own kind (`drop`, `roundup`): its preset's fields over the space's. */
81
+ kind?: string): Promise<{
82
+ sections: Slot[];
78
83
  params: {
79
84
  key: string;
80
85
  }[];
81
86
  }>;
87
+ /** How each tag looks now (`GET …/blog/tag-info`); null without a token. */
88
+ tagInfo(org: string, space: string): Promise<LiveTag[] | null>;
82
89
  assets(org: string, space: string): Promise<Map<string, string>>;
83
90
  /**
84
91
  * Upload once, by content. The stored name carries a hash of the bytes, so a
@@ -87,8 +94,19 @@ export declare class PublishApi {
87
94
  */
88
95
  upload(org: string, space: string, abs: string, existing: Map<string, string>): Promise<string>;
89
96
  }
97
+ /** The first 12 hex of the file's sha256: what an upload is deduplicated by. */
98
+ export declare function contentHash(abs: string): string;
90
99
  /** `<12 hex of sha256>-<file name>` — the stored name an asset is found by. */
91
100
  export declare function assetName(abs: string): string;
101
+ /**
102
+ * The URL of an asset with the same BYTES, whatever it was called.
103
+ *
104
+ * The stored name leads with the content hash, so the same picture saved as
105
+ * `cover.png` in one post folder and `hero.png` in another — or renamed, or
106
+ * moved — is found and reused rather than uploaded again. A changed picture
107
+ * has a new hash, so it is never mistaken for the old one.
108
+ */
109
+ export declare function lookupAsset(existing: Map<string, string>, abs: string): string | undefined;
92
110
  /** A short, stable key for `Idempotency-Key`: the same write retried is one write. */
93
111
  export declare function idemKey(...parts: string[]): string;
94
112
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/publish/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/publish/api.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PublishApi = exports.isUuid = void 0;
4
+ exports.contentHash = contentHash;
4
5
  exports.assetName = assetName;
6
+ exports.lookupAsset = lookupAsset;
5
7
  exports.idemKey = idemKey;
6
8
  const node_fs_1 = require("node:fs");
7
9
  const node_path_1 = require("node:path");
@@ -145,6 +147,7 @@ class PublishApi {
145
147
  collections,
146
148
  pages,
147
149
  fieldKeys: (r.shape?.params ?? []).map((p) => p.key),
150
+ slots: r.shape?.sections ?? [],
148
151
  publicRows,
149
152
  };
150
153
  }
@@ -167,18 +170,22 @@ class PublishApi {
167
170
  collections,
168
171
  pages,
169
172
  fieldKeys: (shape.shape?.params ?? []).map((p) => p.key),
173
+ slots: shape.shape?.sections ?? [],
170
174
  publicRows,
171
175
  };
172
176
  }
173
- /** Every page's markdown, in one paged walk when authenticated. */
174
- async markdownById(org, space) {
177
+ /**
178
+ * Every page's markdown, and its slots, in one paged walk when authenticated.
179
+ * The slots are what a page whose front matter fills them is compared by.
180
+ */
181
+ async bodiesById(org, space) {
175
182
  const out = new Map();
176
183
  if (!this.opts.authed)
177
184
  return out;
178
- const items = await this.all(`/orgs/${org}/spaces/${space}/items`, 'items', { limit: 50, include: 'body' });
185
+ const items = await this.all(`/orgs/${org}/spaces/${space}/items`, 'items', { limit: 50, include: 'sections,body' });
179
186
  for (const i of items)
180
187
  if (typeof i.markdown === 'string')
181
- out.set(i.id, i.markdown);
188
+ out.set(i.id, { markdown: i.markdown, sections: i.sections ?? {} });
182
189
  return out;
183
190
  }
184
191
  /** One published page's markdown, the way a reader (or an agent) gets it. */
@@ -213,14 +220,24 @@ class PublishApi {
213
220
  const rows = await this.all(`/public/orgs/${org}/spaces/${space}/blog`, 'articles', { limit: 100 });
214
221
  return rows.map((r) => ({ ...r, published: true }));
215
222
  }
216
- async shape(org, space) {
223
+ async shape(org, space,
224
+ /** A post's own kind (`drop`, `roundup`): its preset's fields over the space's. */
225
+ kind) {
217
226
  if (!this.opts.authed) {
218
227
  const r = await this.get(`/public/orgs/${org}/spaces/${space}`).catch(() => ({ shape: undefined }));
219
228
  return { sections: r.shape?.sections ?? [], params: r.shape?.params ?? [] };
220
229
  }
221
- const r = await this.get(`/orgs/${org}/spaces/${space}/shape`);
230
+ const r = await this.get(`/orgs/${org}/spaces/${space}/shape${kind ? `?preset=${encodeURIComponent(kind)}` : ''}`);
222
231
  return { sections: r.shape?.sections ?? [], params: r.shape?.params ?? [] };
223
232
  }
233
+ // ── Blog categories ───────────────────────────────────────────────────────
234
+ /** How each tag looks now (`GET …/blog/tag-info`); null without a token. */
235
+ async tagInfo(org, space) {
236
+ if (!this.opts.authed)
237
+ return null;
238
+ const r = await this.get(`/orgs/${org}/spaces/${space}/blog/tag-info`);
239
+ return r.tags ?? [];
240
+ }
224
241
  // ── Assets ─────────────────────────────────────────────────────────────────
225
242
  async assets(org, space) {
226
243
  if (!this.opts.authed)
@@ -234,10 +251,10 @@ class PublishApi {
234
251
  * run — and a changed image gets a new name, so no cache serves the old one.
235
252
  */
236
253
  async upload(org, space, abs, existing) {
237
- const name = assetName(abs);
238
- const known = existing.get(name);
254
+ const known = lookupAsset(existing, abs);
239
255
  if (known)
240
256
  return known;
257
+ const name = assetName(abs);
241
258
  if (this.opts.readOnly)
242
259
  throw new Error(`dry run tried to upload ${abs}`);
243
260
  if (!this.opts.upload)
@@ -253,10 +270,45 @@ class PublishApi {
253
270
  }
254
271
  }
255
272
  exports.PublishApi = PublishApi;
273
+ /**
274
+ * Hashes already computed this process, by path, size and modification time —
275
+ * a picture ten posts point at is read once, and one edited between two runs
276
+ * in the same process (the git sync job) is read again.
277
+ */
278
+ const hashes = new Map();
279
+ /** The first 12 hex of the file's sha256: what an upload is deduplicated by. */
280
+ function contentHash(abs) {
281
+ const st = (0, node_fs_1.statSync)(abs);
282
+ const key = `${abs}\u0000${st.size}\u0000${st.mtimeMs}`;
283
+ let h = hashes.get(key);
284
+ if (!h) {
285
+ h = (0, node_crypto_1.createHash)('sha256').update((0, node_fs_1.readFileSync)(abs)).digest('hex').slice(0, 12);
286
+ hashes.set(key, h);
287
+ }
288
+ return h;
289
+ }
256
290
  /** `<12 hex of sha256>-<file name>` — the stored name an asset is found by. */
257
291
  function assetName(abs) {
258
- const hash = (0, node_crypto_1.createHash)('sha256').update((0, node_fs_1.readFileSync)(abs)).digest('hex').slice(0, 12);
259
- return `${hash}-${(0, node_path_1.basename)(abs).replace(/[^\w.-]+/g, '-')}`;
292
+ return `${contentHash(abs)}-${(0, node_path_1.basename)(abs).replace(/[^\w.-]+/g, '-')}`;
293
+ }
294
+ /**
295
+ * The URL of an asset with the same BYTES, whatever it was called.
296
+ *
297
+ * The stored name leads with the content hash, so the same picture saved as
298
+ * `cover.png` in one post folder and `hero.png` in another — or renamed, or
299
+ * moved — is found and reused rather than uploaded again. A changed picture
300
+ * has a new hash, so it is never mistaken for the old one.
301
+ */
302
+ function lookupAsset(existing, abs) {
303
+ const name = assetName(abs);
304
+ const exact = existing.get(name);
305
+ if (exact)
306
+ return exact;
307
+ const prefix = `${contentHash(abs)}-`;
308
+ for (const [stored, url] of existing)
309
+ if (stored.startsWith(prefix))
310
+ return url;
311
+ return undefined;
260
312
  }
261
313
  /** A short, stable key for `Idempotency-Key`: the same write retried is one write. */
262
314
  function idemKey(...parts) {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/publish/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/publish/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The one call the publisher makes of an API client.
3
+ *
4
+ * Structurally `ForumulateClient.request` from `@forumulate/sdk`, which the CLI
5
+ * passes in — but declared here rather than imported, so this folder depends
6
+ * on nothing but Node and `yaml`. That is what lets the API run the very same
7
+ * planner as a background job (`packages/content-sync` compiles this folder
8
+ * for it) without pulling the generated SDK into the server's build: one
9
+ * folder sync, two front doors, no second copy of its rules.
10
+ */
11
+ export interface ApiClient {
12
+ request<T>(method: string, path: string, opts?: {
13
+ body?: unknown;
14
+ query?: Record<string, string | number | boolean | undefined>;
15
+ raw?: boolean;
16
+ headers?: Record<string, string>;
17
+ }): Promise<T>;
18
+ }
19
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/publish/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,CAAC,EACP,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QAC9D,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GACA,OAAO,CAAC,CAAC,CAAC,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/publish/client.ts"],"names":[],"mappings":""}
@@ -1,4 +1,7 @@
1
- import type { ForumulateClient } from '@forumulate/sdk';
1
+ import type { ApiClient } from './client';
2
+ import type { PlanLine } from './types';
3
+ import { type StudioConflict } from './studio-edits';
4
+ import { type PreviewResult } from './preview';
2
5
  /**
3
6
  * `forumulate publish <folder>` — a folder of Markdown, and optionally a
4
7
  * manifest, made into a live presence; and the same command run again changes
@@ -30,15 +33,61 @@ export interface PublishOptions {
30
33
  only?: string[];
31
34
  paceMs: number;
32
35
  json: boolean;
36
+ /** Print what changed inside each updated piece (`--diff`). */
37
+ diff?: boolean;
38
+ /**
39
+ * The space a manifest-less folder (or a one-space manifest that names
40
+ * none) publishes into — what git sync passes: the space the repository is
41
+ * connected to. Unlike `space`, it never overrides one the manifest names.
42
+ */
43
+ defaultSpace?: string;
44
+ /** Which command is speaking, for the words of the summary. */
45
+ command?: 'publish' | 'sync';
46
+ /** `--purge` (FMU-D04). Undefined: the server's background purge, unreported. */
47
+ purge?: 'page' | 'space' | 'none';
48
+ /**
49
+ * `--preview <name>` (FMU-F01): plan as a publish would, then send the pages
50
+ * to a preview of that name instead of publishing them. Implies a plan: no
51
+ * page, setting or theme is written.
52
+ */
53
+ preview?: string;
54
+ /** `--preview-ttl <days>`: ask for a shorter-lived preview link. */
55
+ previewTtlDays?: number;
56
+ }
57
+ /** Everything a run decided, for a caller that keeps it (the git sync job stores it). */
58
+ export interface PublishReport {
59
+ dryRun: boolean;
60
+ lines: {
61
+ space: string;
62
+ line: PlanLine;
63
+ }[];
64
+ errors: string[];
65
+ unverified: {
66
+ space: string;
67
+ line: PlanLine;
68
+ }[];
69
+ writes: number;
70
+ /** Count per verb that changes something (`create`, `update`, …). */
71
+ counts: Record<string, number>;
72
+ /** Pieces that already matched the folder. */
73
+ unchanged: number;
74
+ /** Every purge the server reported for this run, per space (FMU-D04). */
75
+ purged: Record<string, unknown>[];
76
+ /** Pages the run refused to overwrite: edited in the studio since (FMU-D18). */
77
+ conflicts: StudioConflict[];
78
+ /** `--preview`: each space's preview link and summary (FMU-F01). */
79
+ previews: PreviewResult[];
33
80
  }
34
81
  export interface PublishDeps {
35
- client: ForumulateClient;
82
+ client: ApiClient;
36
83
  authed: boolean;
37
84
  out: (line: string) => void;
38
85
  err: (line: string) => void;
39
86
  upload?: (path: string, form: FormData) => Promise<unknown>;
40
87
  env?: NodeJS.ProcessEnv;
41
88
  sleep?: (ms: number) => Promise<void>;
89
+ /** Handed the whole result at the end, whatever the output format. */
90
+ report?: (r: PublishReport) => void;
42
91
  }
43
92
  export declare function runPublish(opts: PublishOptions, deps: PublishDeps): Promise<number>;
44
93
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/publish/command.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAYxD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAKD,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+IzF"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/publish/command.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAW1C,OAAO,KAAK,EAAsB,QAAQ,EAAa,MAAM,SAAS,CAAC;AACvE,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAEpF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,yFAAyF;AACzF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,gFAAgF;IAChF,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;CACrC;AAKD,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAwMzF"}