@forumulate/cli 0.8.0 → 0.9.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 (94) hide show
  1. package/README.md +8 -0
  2. package/dist/api/operations.json +1 -1
  3. package/dist/commands/completion.d.ts.map +1 -1
  4. package/dist/commands/completion.js +16 -0
  5. package/dist/commands/completion.js.map +1 -1
  6. package/dist/commands/groups-site.d.ts.map +1 -1
  7. package/dist/commands/groups-site.js +15 -8
  8. package/dist/commands/groups-site.js.map +1 -1
  9. package/dist/dev/command.d.ts +41 -0
  10. package/dist/dev/command.d.ts.map +1 -0
  11. package/dist/dev/command.js +158 -0
  12. package/dist/dev/command.js.map +1 -0
  13. package/dist/help.d.ts +1 -1
  14. package/dist/help.d.ts.map +1 -1
  15. package/dist/help.js +17 -0
  16. package/dist/help.js.map +1 -1
  17. package/dist/publish/api.d.ts +30 -12
  18. package/dist/publish/api.d.ts.map +1 -1
  19. package/dist/publish/api.js +62 -10
  20. package/dist/publish/api.js.map +1 -1
  21. package/dist/publish/client.d.ts +19 -0
  22. package/dist/publish/client.d.ts.map +1 -0
  23. package/dist/publish/client.js +3 -0
  24. package/dist/publish/client.js.map +1 -0
  25. package/dist/publish/command.d.ts +31 -2
  26. package/dist/publish/command.d.ts.map +1 -1
  27. package/dist/publish/command.js +62 -15
  28. package/dist/publish/command.js.map +1 -1
  29. package/dist/publish/context.d.ts +4 -1
  30. package/dist/publish/context.d.ts.map +1 -1
  31. package/dist/publish/context.js.map +1 -1
  32. package/dist/publish/diff.d.ts +21 -0
  33. package/dist/publish/diff.d.ts.map +1 -0
  34. package/dist/publish/diff.js +96 -0
  35. package/dist/publish/diff.js.map +1 -0
  36. package/dist/publish/docs-apply.d.ts +8 -1
  37. package/dist/publish/docs-apply.d.ts.map +1 -1
  38. package/dist/publish/docs-apply.js +37 -10
  39. package/dist/publish/docs-apply.js.map +1 -1
  40. package/dist/publish/docs-plan.d.ts +16 -3
  41. package/dist/publish/docs-plan.d.ts.map +1 -1
  42. package/dist/publish/docs-plan.js +57 -6
  43. package/dist/publish/docs-plan.js.map +1 -1
  44. package/dist/publish/frontmatter.d.ts +1 -1
  45. package/dist/publish/frontmatter.d.ts.map +1 -1
  46. package/dist/publish/frontmatter.js +1 -0
  47. package/dist/publish/frontmatter.js.map +1 -1
  48. package/dist/publish/index.d.ts +12 -0
  49. package/dist/publish/index.d.ts.map +1 -0
  50. package/dist/publish/index.js +17 -0
  51. package/dist/publish/index.js.map +1 -0
  52. package/dist/publish/manifest.d.ts.map +1 -1
  53. package/dist/publish/manifest.js +23 -3
  54. package/dist/publish/manifest.js.map +1 -1
  55. package/dist/publish/names.d.ts +28 -0
  56. package/dist/publish/names.d.ts.map +1 -0
  57. package/dist/publish/names.js +80 -0
  58. package/dist/publish/names.js.map +1 -0
  59. package/dist/publish/posts.d.ts.map +1 -1
  60. package/dist/publish/posts.js +46 -13
  61. package/dist/publish/posts.js.map +1 -1
  62. package/dist/publish/reserved.d.ts +49 -0
  63. package/dist/publish/reserved.d.ts.map +1 -0
  64. package/dist/publish/reserved.js +118 -0
  65. package/dist/publish/reserved.js.map +1 -0
  66. package/dist/publish/rewrite.d.ts +12 -0
  67. package/dist/publish/rewrite.d.ts.map +1 -1
  68. package/dist/publish/rewrite.js +22 -0
  69. package/dist/publish/rewrite.js.map +1 -1
  70. package/dist/publish/scan-docs.d.ts +10 -0
  71. package/dist/publish/scan-docs.d.ts.map +1 -0
  72. package/dist/publish/scan-docs.js +160 -0
  73. package/dist/publish/scan-docs.js.map +1 -0
  74. package/dist/publish/scan.d.ts +21 -17
  75. package/dist/publish/scan.d.ts.map +1 -1
  76. package/dist/publish/scan.js +99 -232
  77. package/dist/publish/scan.js.map +1 -1
  78. package/dist/publish/slots.d.ts +39 -0
  79. package/dist/publish/slots.d.ts.map +1 -0
  80. package/dist/publish/slots.js +64 -0
  81. package/dist/publish/slots.js.map +1 -0
  82. package/dist/publish/tags.d.ts +9 -0
  83. package/dist/publish/tags.d.ts.map +1 -0
  84. package/dist/publish/tags.js +194 -0
  85. package/dist/publish/tags.js.map +1 -0
  86. package/dist/publish/types.d.ts +62 -0
  87. package/dist/publish/types.d.ts.map +1 -1
  88. package/dist/publish/types.js +0 -10
  89. package/dist/publish/types.js.map +1 -1
  90. package/dist/run.d.ts +1 -1
  91. package/dist/run.d.ts.map +1 -1
  92. package/dist/run.js +79 -32
  93. package/dist/run.js.map +1 -1
  94. package/package.json +2 -2
@@ -5,7 +5,7 @@ exports.loadManifest = loadManifest;
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_path_1 = require("node:path");
7
7
  const yaml_1 = require("yaml");
8
- const scan_1 = require("./scan");
8
+ const reserved_1 = require("./reserved");
9
9
  /**
10
10
  * `forumulate.yaml` (or `.yml`, or `forumulate.json`) at the top of the folder.
11
11
  *
@@ -26,7 +26,11 @@ const scan_1 = require("./scan");
26
26
  * site: { slug: main, config: { tagline: "…" } }
27
27
  * spaces:
28
28
  * - { path: docs, space: docs }
29
- * - { path: blog, space: blog }
29
+ * - { path: blog, space: blog, tags: { releases: { label: Releases, color: '#0a7' } } }
30
+ *
31
+ * Per space, besides where it publishes: `readme: index|skip` (what a README
32
+ * is — see `reserved.ts`), `ignore:` (more names to leave out) and `tags:`
33
+ * (how a blog's categories look — see `tags.ts`).
30
34
  */
31
35
  const SPACE_KEYS = [
32
36
  'space',
@@ -41,6 +45,9 @@ const SPACE_KEYS = [
41
45
  'openapi',
42
46
  'monitors',
43
47
  'keep',
48
+ 'readme',
49
+ 'ignore',
50
+ 'tags',
44
51
  ];
45
52
  const TOP_KEYS = new Set(['org', 'site', 'spaces', '$schema', ...SPACE_KEYS]);
46
53
  function findManifest(root, explicit) {
@@ -50,7 +57,7 @@ function findManifest(root, explicit) {
50
57
  throw new Error(`No manifest at ${p}`);
51
58
  return p;
52
59
  }
53
- for (const n of scan_1.MANIFEST_NAMES) {
60
+ for (const n of reserved_1.MANIFEST_NAMES) {
54
61
  const p = (0, node_path_1.join)(root, n);
55
62
  if ((0, node_fs_1.existsSync)(p))
56
63
  return p;
@@ -89,6 +96,14 @@ function spaceSpec(raw, where) {
89
96
  if (typeof asObject(m, `${where}.monitors[${i}]`)?.name !== 'string')
90
97
  throw new Error(`${where}.monitors[${i}] needs a \`name\` — monitors are matched by it`);
91
98
  }
99
+ if (raw.readme !== undefined && raw.readme !== 'index' && raw.readme !== 'skip')
100
+ throw new Error(`${where}.readme must be \`index\` or \`skip\``);
101
+ if (raw.ignore !== undefined && !Array.isArray(raw.ignore) && typeof raw.ignore !== 'string')
102
+ throw new Error(`${where}.ignore must be a list of patterns`);
103
+ const tags = asObject(raw.tags, `${where}.tags`);
104
+ for (const [slug, t] of Object.entries(tags ?? {}))
105
+ if (t !== null && (typeof t !== 'object' || Array.isArray(t)))
106
+ throw new Error(`${where}.tags.${slug} must be a map (label, color, cover, icon, …)`);
92
107
  return {
93
108
  path: typeof raw.path === 'string' ? raw.path : '',
94
109
  space: raw.space === undefined ? undefined : String(raw.space),
@@ -102,6 +117,11 @@ function spaceSpec(raw, where) {
102
117
  openapi: openapi,
103
118
  monitors: monitors,
104
119
  keep: Array.isArray(raw.keep) ? raw.keep.map(String) : undefined,
120
+ readme: raw.readme,
121
+ ignore: raw.ignore === undefined
122
+ ? undefined
123
+ : (Array.isArray(raw.ignore) ? raw.ignore : [raw.ignore]).map(String),
124
+ tags: tags,
105
125
  };
106
126
  }
107
127
  /** Read and check the manifest; `null` file → the one-space default. */
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/publish/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/publish/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The naming rules a folder is read by: which files are Markdown, what a
3
+ * number prefix means, and the product's slug and tag rules.
4
+ */
5
+ export declare const MD: RegExp;
6
+ /** What a reference may point at to be uploaded rather than linked. */
7
+ export declare const ASSET: RegExp;
8
+ export declare const NUMERIC: RegExp;
9
+ export declare const DATED: RegExp;
10
+ export declare const BIG: number;
11
+ /** Numbers and separators only: a version (`2-4-0`, `1.10`), never a sort prefix. */
12
+ export declare const VERSION: RegExp;
13
+ /** The product's slug rule (packages/shared `slugify`), mirrored: this package ships alone. */
14
+ export declare function slugify(input: string, fallback?: string, max?: number): string;
15
+ /**
16
+ * The product's TAG rule (apps/api `normalizeTag`), mirrored for the same reason
17
+ * as `slugify`. Used to compare a front-matter tag list with the stored one: an
18
+ * ASCII-only fold here turned every Japanese or Cyrillic tag into `-`, so two
19
+ * different non-Latin tag lists compared equal and the update was skipped.
20
+ */
21
+ export declare function tagKey(raw: string): string;
22
+ /** `02-getting-started` → `Getting Started`. */
23
+ export declare function titleize(name: string): string;
24
+ /** `[n, name]` from a numeric prefix, or "no position" sorted by name. */
25
+ export declare function prefixOrder(name: string): [number, string];
26
+ /** The title a page will get: front matter, else the leading `# heading` (the importer's rule). */
27
+ export declare function titleOf(front: Record<string, unknown>, body: string, fallback: string): string;
28
+ //# sourceMappingURL=names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/publish/names.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,EAAE,QAA0B,CAAC;AAC1C,uEAAuE;AACvE,eAAO,MAAM,KAAK,QAA+D,CAAC;AAClF,eAAO,MAAM,OAAO,QAAkB,CAAC;AACvC,eAAO,MAAM,KAAK,QAA6B,CAAC;AAChD,eAAO,MAAM,GAAG,QAA0B,CAAC;AAC3C,qFAAqF;AACrF,eAAO,MAAM,OAAO,QAA0B,CAAC;AAE/C,+FAA+F;AAC/F,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAS,EAAE,GAAG,SAAK,GAAG,MAAM,CAa1E;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc1C;AAED,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAG1D;AAED,mGAAmG;AACnG,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW9F"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = exports.BIG = exports.DATED = exports.NUMERIC = exports.ASSET = exports.MD = void 0;
4
+ exports.slugify = slugify;
5
+ exports.tagKey = tagKey;
6
+ exports.titleize = titleize;
7
+ exports.prefixOrder = prefixOrder;
8
+ exports.titleOf = titleOf;
9
+ /**
10
+ * The naming rules a folder is read by: which files are Markdown, what a
11
+ * number prefix means, and the product's slug and tag rules.
12
+ */
13
+ exports.MD = /\.(md|mdx|markdown)$/i;
14
+ /** What a reference may point at to be uploaded rather than linked. */
15
+ exports.ASSET = /\.(png|jpe?g|gif|webp|svg|avif|ico|pdf|mp4|webm|mp3|zip)$/i;
16
+ exports.NUMERIC = /^(\d+)[-_. ]+/;
17
+ exports.DATED = /^(\d{4}-\d{2}-\d{2})[-_]/;
18
+ exports.BIG = Number.MAX_SAFE_INTEGER;
19
+ /** Numbers and separators only: a version (`2-4-0`, `1.10`), never a sort prefix. */
20
+ exports.VERSION = /^v?\d+(?:[-_.]\d+)+$/i;
21
+ /** The product's slug rule (packages/shared `slugify`), mirrored: this package ships alone. */
22
+ function slugify(input, fallback = 'page', max = 70) {
23
+ return (input
24
+ .normalize('NFC')
25
+ .toLowerCase()
26
+ .normalize('NFD')
27
+ .replace(/[̀-ͯ]/g, '')
28
+ .normalize('NFC')
29
+ .replace(/[^\p{Letter}\p{Number}]+/gu, '-')
30
+ .replace(/^-+|-+$/g, '')
31
+ .slice(0, max)
32
+ .replace(/-+$/, '') || fallback);
33
+ }
34
+ /**
35
+ * The product's TAG rule (apps/api `normalizeTag`), mirrored for the same reason
36
+ * as `slugify`. Used to compare a front-matter tag list with the stored one: an
37
+ * ASCII-only fold here turned every Japanese or Cyrillic tag into `-`, so two
38
+ * different non-Latin tag lists compared equal and the update was skipped.
39
+ */
40
+ function tagKey(raw) {
41
+ const t = String(raw ?? '')
42
+ .normalize('NFC')
43
+ .toLowerCase()
44
+ .normalize('NFD')
45
+ .replace(/[\u0300-\u036f]/g, '')
46
+ .normalize('NFC')
47
+ .replace(/[^\p{Letter}\p{Number}+#.-]+/gu, '-')
48
+ .replace(/^[-#]+/, '')
49
+ .replace(/^\.+(?![\p{Letter}\p{Number}])/u, '')
50
+ .replace(/^[-#]+/, '')
51
+ .replace(/[-.]+$/, '');
52
+ if (!/[\p{Letter}\p{Number}]/u.test(t))
53
+ return '';
54
+ return t.slice(0, 60).replace(/[-.]+$/, '');
55
+ }
56
+ /** `02-getting-started` → `Getting Started`. */
57
+ function titleize(name) {
58
+ const bare = name.replace(exports.NUMERIC, '').replace(/[-_]+/g, ' ').trim();
59
+ return bare.replace(/\b\p{Letter}/gu, (c) => c.toUpperCase()) || name;
60
+ }
61
+ /** `[n, name]` from a numeric prefix, or "no position" sorted by name. */
62
+ function prefixOrder(name) {
63
+ const m = exports.NUMERIC.exec(name);
64
+ return [m ? Number(m[1]) : exports.BIG, name.replace(exports.NUMERIC, '').toLowerCase()];
65
+ }
66
+ /** The title a page will get: front matter, else the leading `# heading` (the importer's rule). */
67
+ function titleOf(front, body, fallback) {
68
+ if (typeof front.title === 'string' && front.title.trim())
69
+ return front.title.trim();
70
+ const first = body.split(/\r?\n/).find((l) => l.trim());
71
+ const h1 = first && /^#\s+(.+?)\s*#*\s*$/.exec(first);
72
+ // A title is stored as plain text: the importer keeps the heading's words and
73
+ // drops its marks, so `` `required` `` comes back as `required`.
74
+ const plain = h1?.[1]
75
+ ?.replace(/!?\[([^\]]*)\]\([^)]*\)/g, '$1')
76
+ .replace(/[`*_~]/g, '')
77
+ .trim();
78
+ return plain || fallback;
79
+ }
80
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/publish/names.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../src/publish/posts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrD,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AAEH,KAAK,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAyD3C,UAAU,KAAK;IACb,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxF,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3B;AAwBD,8FAA8F;AAC9F,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAwFA;AAED,uDAAuD;AACvD,wBAAsB,YAAY,CAChC,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CAoGf"}
1
+ {"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../src/publish/posts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAMrD,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AAEH,KAAK,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AA2D3C,UAAU,KAAK;IACb,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxF,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3B;AAwBD,8FAA8F;AAC9F,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAwFA;AAED,uDAAuD;AACvD,wBAAsB,YAAY,CAChC,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA2Hf"}
@@ -8,6 +8,7 @@ const context_1 = require("./context");
8
8
  const api_1 = require("./api");
9
9
  const docs_apply_1 = require("./docs-apply");
10
10
  const rewrite_1 = require("./rewrite");
11
+ const diff_1 = require("./diff");
11
12
  const scan_1 = require("./scan");
12
13
  const kindOf = (type) => type === 'BLOG' ? 'blog' : type === 'CHANGELOG' ? 'changelog' : 'items';
13
14
  /** Front matter keys each door takes besides the body, under the door's own names. */
@@ -29,6 +30,8 @@ const BLOG_EXTRAS = [
29
30
  'customization',
30
31
  'featured',
31
32
  'pinned',
33
+ // The post's kind (`drop`, `roundup`, R-N1/R-N9): its declared fields follow.
34
+ 'kind',
32
35
  ];
33
36
  const CHANGELOG_EXTRAS = [
34
37
  'version',
@@ -94,7 +97,8 @@ function postPayload(post, kind, shape, ctx, urls) {
94
97
  if (shape.sections.length) {
95
98
  const sections = {};
96
99
  for (const s of shape.sections) {
97
- const hit = lower.get(s.key.toLowerCase());
100
+ // Folded like the front matter keys above, so `short_answer:` fills `short-answer`.
101
+ const hit = lower.get(s.key.toLowerCase().replace(/[-_]/g, ''));
98
102
  if (hit && typeof hit[1] === 'string') {
99
103
  sections[s.key] = hit[1];
100
104
  used.add(hit[0]);
@@ -162,12 +166,11 @@ function postPayload(post, kind, shape, ctx, urls) {
162
166
  if (Object.keys(fields).length) {
163
167
  if (kind === 'items')
164
168
  body.params = fields;
165
- else if (kind === 'changelog')
166
- extras.fields = { ...(extras.fields ?? {}), ...fields };
167
- // A blog's declared parameters that are not columns of the blog door
168
- // (`canonicalUrl`, `coverPlacement`) have no field to land in there.
169
+ // The changelog and blog doors both take a piece's declared parameters as
170
+ // `fields` (the blog's since the release newsroom, R-N1: `releaseDate`,
171
+ // `sku`, `retailers` are front matter like any other key).
169
172
  else
170
- unknown.push(...Object.keys(fields).map((k) => `${k} (set it in the studio)`));
173
+ extras.fields = { ...(extras.fields ?? {}), ...fields };
171
174
  }
172
175
  // A blog without declared sections still has an excerpt; `description` is
173
176
  // what most tools call it.
@@ -201,13 +204,22 @@ async function publishPosts(ctx, apply, existingAssets) {
201
204
  : new Map(scoped.map((p) => [p.file, (0, docs_apply_1.knownUrls)(ctx, existingAssets)(p.file)]));
202
205
  const matched = new Set();
203
206
  const base = kind === 'items' ? '/items' : `/${kind}`;
207
+ const kindShapes = new Map();
208
+ const shapeOf = (k) => {
209
+ if (!kindShapes.has(k))
210
+ kindShapes.set(k, ctx.api.shape(ctx.org, ctx.spaceId, k).catch(() => shape));
211
+ return kindShapes.get(k);
212
+ };
204
213
  for (const post of scoped) {
205
214
  const found = bySlug.get(post.slug) ??
206
215
  (kind === 'changelog' ? byTitle.get(post.title.toLowerCase()) : undefined);
207
216
  if (found)
208
217
  matched.add(found.id);
209
218
  const fileUrls = urls.get(post.file) ?? new Map();
210
- const pay = postPayload(post, kind, shape, ctx, fileUrls);
219
+ // A post that names its kind is judged by that kind's shape, so its
220
+ // declared keys (a drop's `releaseDate`, `retailers`) are sent, not dropped.
221
+ const own = kindOfPost(post.front, kind);
222
+ const pay = postPayload(post, kind, own ? await shapeOf(own) : shape, ctx, fileUrls);
211
223
  if (pay.unknown.length)
212
224
  ctx.line({
213
225
  verb: 'warn',
@@ -229,17 +241,29 @@ async function publishPosts(ctx, apply, existingAssets) {
229
241
  continue;
230
242
  }
231
243
  const reasons = [];
244
+ let diff = [];
232
245
  if (ctx.force)
233
246
  reasons.push('--force');
234
247
  if (found.title !== post.title)
235
248
  reasons.push('title');
236
249
  if (!reasons.length && live) {
237
250
  const sections = pay.body.sections;
238
- const same = sections && found.sections && Object.keys(found.sections).length
239
- ? Object.entries(sections).every(([k, v]) => (0, compare_1.sameText)(v, found.sections?.[k] ?? ''))
240
- : (0, compare_1.sameText)(String(pay.body.markdown ?? pay.body.body ?? Object.values(sections ?? {}).join('\n\n')), found.markdown ?? '');
241
- if (!same)
242
- reasons.push('content');
251
+ if (sections && found.sections && Object.keys(found.sections).length) {
252
+ const changed = Object.entries(sections).filter(([k, v]) => !(0, compare_1.sameText)(v, found.sections?.[k] ?? ''));
253
+ if (changed.length)
254
+ reasons.push('content');
255
+ diff = changed.flatMap(([k, v]) => [`@ ${k}`, ...(0, diff_1.textDiff)(found.sections?.[k] ?? '', v)]);
256
+ }
257
+ else {
258
+ const text = String(pay.body.markdown ?? pay.body.body ?? Object.values(sections ?? {}).join('\n\n'));
259
+ if (!(0, compare_1.sameText)(text, found.markdown ?? '')) {
260
+ reasons.push('content');
261
+ diff = (0, diff_1.textDiff)(found.markdown ?? '', text);
262
+ }
263
+ }
264
+ const liveText = found.markdown ?? Object.values(found.sections ?? {}).join('\n');
265
+ if (!reasons.length && (0, rewrite_1.mediaChanged)(post.body, ctx.scan.refs.get(post.file), fileUrls, liveText))
266
+ reasons.push('media');
243
267
  }
244
268
  const extrasDiff = Object.keys(pay.extras).length && ctx.api.opts.authed
245
269
  ? await extrasChanged(ctx, kind, base, found, pay.extras)
@@ -254,6 +278,7 @@ async function publishPosts(ctx, apply, existingAssets) {
254
278
  verb: 'update',
255
279
  what: `post ${post.slug}`,
256
280
  detail: `${reasons.join(', ')} ← ${post.file}`,
281
+ ...(diff.length ? { diff } : {}),
257
282
  });
258
283
  if (!apply)
259
284
  continue;
@@ -271,7 +296,8 @@ async function publishPosts(ctx, apply, existingAssets) {
271
296
  });
272
297
  return;
273
298
  }
274
- const keep = new Set(ctx.spec.keep ?? []);
299
+ // A file marked `draft: true` still owns its post: it is never pruned.
300
+ const keep = new Set([...(ctx.spec.keep ?? []), ...ctx.scan.drafts]);
275
301
  for (const p of live) {
276
302
  if (matched.has(p.id) || keep.has(p.slug))
277
303
  continue;
@@ -347,4 +373,11 @@ async function extrasChanged(ctx, kind, base, found, extras) {
347
373
  }
348
374
  return (0, compare_1.differingKeys)(current, want);
349
375
  }
376
+ /** The kind a blog post's front matter names (`kind: drop`), which the blog door takes. */
377
+ function kindOfPost(front, door) {
378
+ if (door !== 'blog')
379
+ return undefined;
380
+ const v = front.kind;
381
+ return typeof v === 'string' && v.trim() ? v.trim() : undefined;
382
+ }
350
383
  //# sourceMappingURL=posts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/publish/posts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../src/publish/posts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Names in a content folder that are never content (R-N11).
3
+ *
4
+ * A repository that holds a blog also holds a README that explains the
5
+ * repository, a LICENSE, editor folders and a `_drafts` folder of posts nobody
6
+ * has finished. Every customer publisher we were shown carried its own list of
7
+ * these, and the first version of each list was the one that published the
8
+ * README as a post — readers met "How to run this repo locally" at the top of
9
+ * a newsroom. The list lives here, once, and the guide prints it
10
+ * (docs/guides/content-as-code.md, "Reserved names").
11
+ *
12
+ * Three groups, each for its own reason:
13
+ *
14
+ * - Hidden and private: anything starting with `.` (`.git`, `.github`,
15
+ * `.DS_Store`) or `_` (`_drafts`, `_templates`, and the metadata files this
16
+ * tool reads itself: `_collection.yml`, `_tags.yml`). `node_modules`.
17
+ * - The manifest: `forumulate.yaml`, `.yml`, `.json`.
18
+ * - Repository paperwork, in any case and with any Markdown extension:
19
+ * README, LICENSE/LICENCE, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY,
20
+ * CODEOWNERS, and GitBook's SUMMARY (a table of contents, not a page).
21
+ *
22
+ * README is the one with a second meaning. In a DOCS tree it is GitBook's way
23
+ * of naming a folder's own page, and existing docs repositories rely on that,
24
+ * so a page-backed space keeps it as the folder's index unless its manifest
25
+ * says `readme: skip`. A posts space has no folder pages, so there a README is
26
+ * always paperwork.
27
+ */
28
+ export declare const MANIFEST_NAMES: string[];
29
+ /** Repository paperwork, by file stem (lower-cased, extension dropped). */
30
+ export declare const PAPERWORK: readonly ["readme", "license", "licence", "contributing", "code_of_conduct", "code-of-conduct", "security", "codeowners", "summary"];
31
+ /** Folders that are never content, beyond the `.` and `_` prefixes. */
32
+ export declare const RESERVED_FOLDERS: readonly ["node_modules"];
33
+ /** Is this README-shaped (`README.md`, `readme.mdx`, `Readme.markdown`)? */
34
+ export declare const isReadme: (name: string) => boolean;
35
+ /**
36
+ * Why `name` is skipped, or null when it is content.
37
+ *
38
+ * `readmeIsIndex`: a docs space keeps README as a folder's page (see above).
39
+ */
40
+ export declare function reservedReason(name: string, isDir: boolean, readmeIsIndex: boolean): string | null;
41
+ /**
42
+ * The manifest's `ignore:` patterns, as a matcher over paths relative to the
43
+ * space folder. A small glob: `*` is any run within one segment, `**` any run
44
+ * of segments, `?` one character; a pattern without a `/` matches a name at
45
+ * any depth (`*.draft.md`), one with a `/` matches from the space folder
46
+ * (`archive/**`). A folder that matches is skipped with everything under it.
47
+ */
48
+ export declare function ignoreMatcher(patterns: readonly string[] | undefined): (rel: string) => boolean;
49
+ //# sourceMappingURL=reserved.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved.d.ts","sourceRoot":"","sources":["../../src/publish/reserved.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,UAA2D,CAAC;AAEvF,2EAA2E;AAC3E,eAAO,MAAM,SAAS,sIAUZ,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,2BAA4B,CAAC;AAI1D,4EAA4E;AAC5E,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,YAA8C,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,OAAO,GACrB,MAAM,GAAG,IAAI,CASf;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CA6B/F"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isReadme = exports.RESERVED_FOLDERS = exports.PAPERWORK = exports.MANIFEST_NAMES = void 0;
4
+ exports.reservedReason = reservedReason;
5
+ exports.ignoreMatcher = ignoreMatcher;
6
+ const node_path_1 = require("node:path");
7
+ /**
8
+ * Names in a content folder that are never content (R-N11).
9
+ *
10
+ * A repository that holds a blog also holds a README that explains the
11
+ * repository, a LICENSE, editor folders and a `_drafts` folder of posts nobody
12
+ * has finished. Every customer publisher we were shown carried its own list of
13
+ * these, and the first version of each list was the one that published the
14
+ * README as a post — readers met "How to run this repo locally" at the top of
15
+ * a newsroom. The list lives here, once, and the guide prints it
16
+ * (docs/guides/content-as-code.md, "Reserved names").
17
+ *
18
+ * Three groups, each for its own reason:
19
+ *
20
+ * - Hidden and private: anything starting with `.` (`.git`, `.github`,
21
+ * `.DS_Store`) or `_` (`_drafts`, `_templates`, and the metadata files this
22
+ * tool reads itself: `_collection.yml`, `_tags.yml`). `node_modules`.
23
+ * - The manifest: `forumulate.yaml`, `.yml`, `.json`.
24
+ * - Repository paperwork, in any case and with any Markdown extension:
25
+ * README, LICENSE/LICENCE, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY,
26
+ * CODEOWNERS, and GitBook's SUMMARY (a table of contents, not a page).
27
+ *
28
+ * README is the one with a second meaning. In a DOCS tree it is GitBook's way
29
+ * of naming a folder's own page, and existing docs repositories rely on that,
30
+ * so a page-backed space keeps it as the folder's index unless its manifest
31
+ * says `readme: skip`. A posts space has no folder pages, so there a README is
32
+ * always paperwork.
33
+ */
34
+ exports.MANIFEST_NAMES = ['forumulate.yaml', 'forumulate.yml', 'forumulate.json'];
35
+ /** Repository paperwork, by file stem (lower-cased, extension dropped). */
36
+ exports.PAPERWORK = [
37
+ 'readme',
38
+ 'license',
39
+ 'licence',
40
+ 'contributing',
41
+ 'code_of_conduct',
42
+ 'code-of-conduct',
43
+ 'security',
44
+ 'codeowners',
45
+ 'summary',
46
+ ];
47
+ /** Folders that are never content, beyond the `.` and `_` prefixes. */
48
+ exports.RESERVED_FOLDERS = ['node_modules'];
49
+ const stemOf = (name) => name.replace(/\.[^.]*$/, '').toLowerCase();
50
+ /** Is this README-shaped (`README.md`, `readme.mdx`, `Readme.markdown`)? */
51
+ const isReadme = (name) => /^readme\.(md|mdx|markdown)$/i.test(name);
52
+ exports.isReadme = isReadme;
53
+ /**
54
+ * Why `name` is skipped, or null when it is content.
55
+ *
56
+ * `readmeIsIndex`: a docs space keeps README as a folder's page (see above).
57
+ */
58
+ function reservedReason(name, isDir, readmeIsIndex) {
59
+ if (name.startsWith('.'))
60
+ return 'hidden';
61
+ if (name.startsWith('_'))
62
+ return isDir ? 'private folder' : 'private file';
63
+ if (exports.RESERVED_FOLDERS.includes(name))
64
+ return 'dependency folder';
65
+ if (exports.MANIFEST_NAMES.includes(name))
66
+ return 'the manifest';
67
+ if (isDir)
68
+ return null;
69
+ if ((0, exports.isReadme)(name) && readmeIsIndex)
70
+ return null;
71
+ if (exports.PAPERWORK.includes(stemOf(name)))
72
+ return 'repository paperwork';
73
+ return null;
74
+ }
75
+ /**
76
+ * The manifest's `ignore:` patterns, as a matcher over paths relative to the
77
+ * space folder. A small glob: `*` is any run within one segment, `**` any run
78
+ * of segments, `?` one character; a pattern without a `/` matches a name at
79
+ * any depth (`*.draft.md`), one with a `/` matches from the space folder
80
+ * (`archive/**`). A folder that matches is skipped with everything under it.
81
+ */
82
+ function ignoreMatcher(patterns) {
83
+ const res = (patterns ?? [])
84
+ .map((p) => p.trim().replace(/^\.\//, '').replace(/\/+$/, ''))
85
+ .filter(Boolean)
86
+ .map((p) => {
87
+ const anchored = p.includes('/');
88
+ let src = '';
89
+ for (let i = 0; i < p.length; i++) {
90
+ const c = p[i];
91
+ if (c === '*' && p[i + 1] === '*') {
92
+ // `**/` is "any folders, or none"; a bare `**` is "anything".
93
+ if (p[i + 2] === '/') {
94
+ src += '(?:.*/)?';
95
+ i += 2;
96
+ }
97
+ else {
98
+ src += '.*';
99
+ i += 1;
100
+ }
101
+ }
102
+ else if (c === '*')
103
+ src += '[^/]*';
104
+ else if (c === '?')
105
+ src += '[^/]';
106
+ else
107
+ src += c.replace(/[.+^${}()|[\]\\]/g, '\\$&');
108
+ }
109
+ return new RegExp(anchored ? `^${src}$` : `(?:^|/)${src}$`, 'i');
110
+ });
111
+ if (!res.length)
112
+ return () => false;
113
+ return (rel) => {
114
+ const path = node_path_1.posix.normalize(rel.split('\\').join('/'));
115
+ return res.some((re) => re.test(path));
116
+ };
117
+ }
118
+ //# sourceMappingURL=reserved.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved.js","sourceRoot":"","sources":["../../src/publish/reserved.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,16 @@ export declare function rewriteLinks(source: string, file: string, slugByFile: M
17
17
  export declare function rewriteAssets(source: string, urlByRef: Map<string, string>): string;
18
18
  /** The same substitution over a metadata patch (values that were local paths). */
19
19
  export declare function rewriteValue<T>(value: T, urlByRef: Map<string, string>): T;
20
+ /**
21
+ * Does the live text still point at every picture the file's body uses?
22
+ *
23
+ * The word comparison (`compare.ts`) ignores link and image targets on
24
+ * purpose — the importer rewrites them, so they are never the same string
25
+ * twice. That left one change invisible: an image replaced by a new one under
26
+ * the same name uploads under a new content hash, and the post kept pointing
27
+ * at the old picture because its words had not changed. So the targets are
28
+ * checked here instead, by the URL each reference resolves to: one that is
29
+ * not uploaded yet, or not in the live text, means the body must be sent.
30
+ */
31
+ export declare function mediaChanged(body: string, refs: Map<string, string> | undefined, urls: Map<string, string>, liveText: string): boolean;
20
32
  //# sourceMappingURL=rewrite.d.ts.map