@growth-labs/cms 0.5.10 → 0.5.12

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 (74) hide show
  1. package/README.md +28 -0
  2. package/dist/engine/index.d.ts +3 -2
  3. package/dist/engine/index.d.ts.map +1 -1
  4. package/dist/engine/index.js +3 -2
  5. package/dist/engine/index.js.map +1 -1
  6. package/dist/engine/publication.d.ts.map +1 -1
  7. package/dist/engine/publication.js +23 -5
  8. package/dist/engine/publication.js.map +1 -1
  9. package/dist/engine/published-content.d.ts.map +1 -1
  10. package/dist/engine/published-content.js +14 -5
  11. package/dist/engine/published-content.js.map +1 -1
  12. package/dist/engine/publisher.d.ts +3 -1
  13. package/dist/engine/publisher.d.ts.map +1 -1
  14. package/dist/engine/publisher.js +39 -31
  15. package/dist/engine/publisher.js.map +1 -1
  16. package/dist/engine/revisions.d.ts +3 -0
  17. package/dist/engine/revisions.d.ts.map +1 -1
  18. package/dist/engine/revisions.js +7 -1
  19. package/dist/engine/revisions.js.map +1 -1
  20. package/dist/engine/tags.d.ts +9 -2
  21. package/dist/engine/tags.d.ts.map +1 -1
  22. package/dist/engine/tags.js +32 -21
  23. package/dist/engine/tags.js.map +1 -1
  24. package/dist/engine/taxonomy.d.ts +31 -0
  25. package/dist/engine/taxonomy.d.ts.map +1 -0
  26. package/dist/engine/taxonomy.js +125 -0
  27. package/dist/engine/taxonomy.js.map +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/routes/content.d.ts.map +1 -1
  32. package/dist/routes/content.js +80 -24
  33. package/dist/routes/content.js.map +1 -1
  34. package/dist/routes/tags.d.ts.map +1 -1
  35. package/dist/routes/tags.js +36 -3
  36. package/dist/routes/tags.js.map +1 -1
  37. package/dist/schema/migrations.d.ts.map +1 -1
  38. package/dist/schema/migrations.js +15 -1
  39. package/dist/schema/migrations.js.map +1 -1
  40. package/dist/schema/types.d.ts +1 -0
  41. package/dist/schema/types.d.ts.map +1 -1
  42. package/dist/schema/types.js.map +1 -1
  43. package/dist/ui/editor/Rte.d.ts.map +1 -1
  44. package/dist/ui/editor/Rte.js +2 -12
  45. package/dist/ui/editor/Rte.js.map +1 -1
  46. package/dist/ui/editor/extensions.d.ts +3 -0
  47. package/dist/ui/editor/extensions.d.ts.map +1 -0
  48. package/dist/ui/editor/extensions.js +18 -0
  49. package/dist/ui/editor/extensions.js.map +1 -0
  50. package/dist/ui/editor/serialize.d.ts.map +1 -1
  51. package/dist/ui/editor/serialize.js +4 -2
  52. package/dist/ui/editor/serialize.js.map +1 -1
  53. package/dist/ui/editor/trim-boundary-marks.d.ts +11 -0
  54. package/dist/ui/editor/trim-boundary-marks.d.ts.map +1 -0
  55. package/dist/ui/editor/trim-boundary-marks.js +157 -0
  56. package/dist/ui/editor/trim-boundary-marks.js.map +1 -0
  57. package/migrations/0023_content_tag_link_labels.sql +11 -0
  58. package/package.json +1 -1
  59. package/src/engine/index.ts +14 -0
  60. package/src/engine/publication.ts +27 -12
  61. package/src/engine/published-content.ts +14 -8
  62. package/src/engine/publisher.ts +76 -39
  63. package/src/engine/revisions.ts +10 -1
  64. package/src/engine/tags.ts +39 -19
  65. package/src/engine/taxonomy.ts +226 -0
  66. package/src/index.ts +2 -0
  67. package/src/routes/content.ts +72 -26
  68. package/src/routes/tags.ts +36 -3
  69. package/src/schema/migrations.ts +15 -1
  70. package/src/schema/types.ts +1 -0
  71. package/src/ui/editor/Rte.tsx +2 -12
  72. package/src/ui/editor/extensions.ts +18 -0
  73. package/src/ui/editor/serialize.ts +4 -2
  74. package/src/ui/editor/trim-boundary-marks.ts +181 -0
@@ -2,6 +2,8 @@ import type { ContentType } from '../schema/types.js';
2
2
  import { type ContentMetadata } from './content-metadata.js';
3
3
  import type { D1Database } from './d1.js';
4
4
  import { type PublishGuardOutcome } from './publish-guard.js';
5
+ import { type TaxonomyTag } from './taxonomy.js';
6
+ export { MAX_ITEM_TAG_COUNT, MAX_ITEM_TAGS_TOTAL_BYTES, MAX_TAG_LABEL_BYTES, TagInputError, validateDeclaredTagList, validateRevisionTaxonomy, validateSingleDeclaredTag, } from './taxonomy.js';
5
7
  type ContentVisibility = 'free' | 'premium';
6
8
  export declare class PublishContentValidationError extends Error {
7
9
  readonly errors: PublishGuardOutcome['errors'];
@@ -155,6 +157,7 @@ export interface ContentItemRecord {
155
157
  }
156
158
  export declare function ensureUniqueSlug(db: D1Database, slug: string, excludeId?: string): Promise<string>;
157
159
  export declare function setContentTags(db: D1Database, contentId: string, tags: string[]): Promise<void>;
160
+ export declare function getContentTagPairs(db: D1Database, contentId: string): Promise<TaxonomyTag[]>;
158
161
  export declare function setContentRelations(db: D1Database, contentId: string, relations: Array<{
159
162
  relatedId: string;
160
163
  rank: number;
@@ -197,5 +200,4 @@ export declare function duplicateContentItem(db: D1Database, sourceId: string):
197
200
  } | null>;
198
201
  export declare function createRevision(db: D1Database, contentId: string, createdBy?: string | null): Promise<void>;
199
202
  export declare function getContentSnapshot(db: D1Database, contentId: string): Promise<Record<string, unknown> | null>;
200
- export {};
201
203
  //# sourceMappingURL=publisher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/engine/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/engine/publisher.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { serializeContentMetadata } from './content-metadata.js';
2
2
  import { evaluateArticleBody } from './publish-guard.js';
3
3
  import { slugify } from './slug.js';
4
+ import { MAX_ITEM_TAG_COUNT, validateDeclaredTagList, validateStoredTaxonomyRows, } from './taxonomy.js';
5
+ export { MAX_ITEM_TAG_COUNT, MAX_ITEM_TAGS_TOTAL_BYTES, MAX_TAG_LABEL_BYTES, TagInputError, validateDeclaredTagList, validateRevisionTaxonomy, validateSingleDeclaredTag, } from './taxonomy.js';
4
6
  function isBodyBackedContentType(type) {
5
7
  return type === 'article' || type === 'newsletter' || type === 'page';
6
8
  }
@@ -195,14 +197,6 @@ export async function ensureUniqueSlug(db, slug, excludeId) {
195
197
  suffix += 1;
196
198
  }
197
199
  }
198
- function normalizeTags(tags) {
199
- if (!tags)
200
- return [];
201
- return tags
202
- .map((tag) => slugify(tag))
203
- .filter(Boolean)
204
- .slice(0, 10);
205
- }
206
200
  function serializeTakeaways(value) {
207
201
  if (!value)
208
202
  return null;
@@ -212,10 +206,9 @@ function serializeTakeaways(value) {
212
206
  .slice(0, 4);
213
207
  return normalized.length > 0 ? JSON.stringify(normalized) : null;
214
208
  }
215
- async function ensureTags(db, tags) {
216
- const normalized = normalizeTags(tags);
209
+ async function ensureTags(db, pairs) {
217
210
  const results = [];
218
- for (const tag of normalized) {
211
+ for (const { slug, label } of pairs) {
219
212
  // Concurrency-safe upsert. A plain SELECT-then-INSERT races under parallel
220
213
  // import shards: two shards can both miss the same shared tag slug and both
221
214
  // INSERT it, and the second hits `UNIQUE constraint failed: content_tags.slug`
@@ -225,30 +218,45 @@ async function ensureTags(db, tags) {
225
218
  // keyed by tag_id, so shards converging on one shared tag id is correct.
226
219
  await db
227
220
  .prepare('INSERT INTO content_tags (id, slug, label) VALUES (?, ?, ?) ON CONFLICT(slug) DO NOTHING')
228
- .bind(crypto.randomUUID(), tag, tag)
221
+ .bind(crypto.randomUUID(), slug, label)
229
222
  .run();
230
223
  const row = await db
231
224
  .prepare('SELECT id, slug FROM content_tags WHERE slug = ? LIMIT 1')
232
- .bind(tag)
225
+ .bind(slug)
233
226
  .first();
234
227
  if (!row) {
235
- throw new Error(`content tag "${tag}" could not be resolved after upsert`);
228
+ throw new Error(`content tag "${slug}" could not be resolved after upsert`);
236
229
  }
237
- results.push(row);
230
+ results.push({ ...row, label });
238
231
  }
239
232
  return results;
240
233
  }
241
234
  export async function setContentTags(db, contentId, tags) {
242
- const normalized = normalizeTags(tags);
235
+ const pairs = validateDeclaredTagList(tags);
236
+ await setContentTagPairs(db, contentId, pairs);
237
+ }
238
+ async function setContentTagPairs(db, contentId, pairs) {
243
239
  await db.prepare('DELETE FROM content_tag_links WHERE content_id = ?').bind(contentId).run();
244
- if (normalized.length === 0)
240
+ if (pairs.length === 0)
245
241
  return;
246
- const tagRows = await ensureTags(db, normalized);
247
- const insert = db.prepare('INSERT INTO content_tag_links (content_id, tag_id) VALUES (?, ?)');
242
+ const tagRows = await ensureTags(db, pairs);
243
+ const insert = db.prepare('INSERT INTO content_tag_links (content_id, tag_id, label) VALUES (?, ?, ?)');
248
244
  for (const tag of tagRows) {
249
- await insert.bind(contentId, tag.id).run();
245
+ await insert.bind(contentId, tag.id, tag.label).run();
250
246
  }
251
247
  }
248
+ export async function getContentTagPairs(db, contentId) {
249
+ const tags = await db
250
+ .prepare(`SELECT t.slug, COALESCE(l.label, t.label) AS label
251
+ FROM content_tag_links l
252
+ JOIN content_tags t ON t.id = l.tag_id
253
+ WHERE l.content_id = ?
254
+ ORDER BY t.slug ASC
255
+ LIMIT ?`)
256
+ .bind(contentId, MAX_ITEM_TAG_COUNT + 1)
257
+ .all();
258
+ return validateStoredTaxonomyRows(tags.results || []);
259
+ }
252
260
  export async function setContentRelations(db, contentId, relations) {
253
261
  await db.prepare('DELETE FROM content_relations WHERE content_id = ?').bind(contentId).run();
254
262
  if (relations.length === 0)
@@ -271,6 +279,7 @@ export async function createContent(db, input) {
271
279
  : input.type === 'podcast'
272
280
  ? await resolveMediaDuration(db, 'podcast', input.content.audioR2Key, input.content.durationSeconds)
273
281
  : null;
282
+ const tagPairs = input.tags === undefined ? null : validateDeclaredTagList(input.tags);
274
283
  const id = crypto.randomUUID();
275
284
  const slug = await ensureUniqueSlug(db, input.slug);
276
285
  const visibility = input.visibility || 'free';
@@ -321,8 +330,8 @@ export async function createContent(db, input) {
321
330
  .bind(id, input.content.transcript, input.content.audioR2Key, resolvedMediaDuration)
322
331
  .run();
323
332
  }
324
- if (input.tags) {
325
- await setContentTags(db, id, input.tags);
333
+ if (tagPairs) {
334
+ await setContentTagPairs(db, id, tagPairs);
326
335
  }
327
336
  return { id, slug };
328
337
  }
@@ -333,6 +342,7 @@ export async function getContentItem(db, id) {
333
342
  .first();
334
343
  }
335
344
  export async function updateContentItem(db, id, input) {
345
+ const tagPairs = input.tags === undefined ? null : validateDeclaredTagList(input.tags);
336
346
  const existing = await getContentItem(db, id);
337
347
  if (!existing)
338
348
  return null;
@@ -489,7 +499,7 @@ export async function updateContentItem(db, id, input) {
489
499
  .bind(slug, title, seoTitle, description, excerpt, byline, primaryCategory, primaryTopic, featured, visibility, authorId, heroImageId, heroImageAlt, heroImageCaption, socialImageId, canonicalUrl, aiLockedFields, seoFocusKeyword, metadataJson, id)
490
500
  .run();
491
501
  if (input.tags !== undefined) {
492
- await setContentTags(db, id, input.tags);
502
+ await setContentTagPairs(db, id, tagPairs ?? []);
493
503
  }
494
504
  if (input.relations !== undefined) {
495
505
  await setContentRelations(db, id, input.relations);
@@ -740,10 +750,10 @@ export async function duplicateContentItem(db, sourceId) {
740
750
  .bind(newId, sourceId)
741
751
  .run();
742
752
  }
743
- // INSERT…SELECT copy #4 — content_tag_links (carry the same tags).
753
+ // INSERT…SELECT copy #4 — content_tag_links (carry the same canonical tags and labels).
744
754
  await db
745
- .prepare(`INSERT INTO content_tag_links (content_id, tag_id)
746
- SELECT ?, tag_id FROM content_tag_links WHERE content_id = ?`)
755
+ .prepare(`INSERT INTO content_tag_links (content_id, tag_id, label)
756
+ SELECT ?, tag_id, label FROM content_tag_links WHERE content_id = ?`)
747
757
  .bind(newId, sourceId)
748
758
  .run();
749
759
  return { id: newId, slug: newSlug };
@@ -789,10 +799,7 @@ export async function getContentSnapshot(db, contentId) {
789
799
  .bind(contentId)
790
800
  .first();
791
801
  }
792
- const tags = await db
793
- .prepare('SELECT t.slug FROM content_tag_links l JOIN content_tags t ON t.id = l.tag_id WHERE l.content_id = ? ORDER BY t.slug ASC')
794
- .bind(contentId)
795
- .all();
802
+ const tags = await getContentTagPairs(db, contentId);
796
803
  const related = await db
797
804
  .prepare('SELECT related_id, rank, reason FROM content_relations WHERE content_id = ? ORDER BY rank ASC, related_id ASC')
798
805
  .bind(contentId)
@@ -800,7 +807,8 @@ export async function getContentSnapshot(db, contentId) {
800
807
  return {
801
808
  item: base,
802
809
  content,
803
- tags: (tags.results || []).map((row) => row.slug),
810
+ tags: tags.map((row) => row.slug),
811
+ tagLabels: tags.map((row) => row.label),
804
812
  related: related.results || [],
805
813
  };
806
814
  }
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/engine/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/engine/publisher.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import type { D1Database } from './d1.js';
3
3
  export interface ContentRevisionPayload {
4
4
  item: Record<string, unknown>;
5
5
  content: Record<string, unknown> | null;
6
+ /** Canonical tag slugs, ordered ascending. */
6
7
  tags: string[];
8
+ /** NFC-normalized display labels parallel to tags[]; preserves original casing through revisions. */
9
+ tagLabels?: string[];
7
10
  related: Array<{
8
11
  related_id: string;
9
12
  rank: number;
@@ -1 +1 @@
1
- {"version":3,"file":"revisions.d.ts","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAC3E;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB;AA4BD,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyCjC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAwBjG;AAED,wBAAsB,WAAW,CAChC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,GAAG,IAAI,CAAC,CAmC/E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACtC,OAAO,CAAC,OAAO,CAAC,CAoHlB"}
1
+ {"version":3,"file":"revisions.d.ts","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACvC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAC3E;AAED,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB;AA4BD,6EAA6E;AAC7E,wBAAsB,uBAAuB,CAC5C,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyCjC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAwBjG;AAED,wBAAsB,WAAW,CAChC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,GAAG,IAAI,CAAC,CAmC/E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACpC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACtC,OAAO,CAAC,OAAO,CAAC,CAyHlB"}
@@ -6,6 +6,7 @@
6
6
  // ContentRevisionPayload, aligned to getContentSnapshot's output.
7
7
  import { parseContentMetadata } from './content-metadata.js';
8
8
  import { countWords, getContentItem, getContentSnapshot, updateContentItem } from './publisher.js';
9
+ import { validateRevisionTaxonomy } from './taxonomy.js';
9
10
  function bodyWordCount(payload) {
10
11
  const md = payload?.content && typeof payload.content.body_markdown === 'string'
11
12
  ? payload.content.body_markdown
@@ -132,6 +133,11 @@ export async function restoreRevision(db, contentId, revisionId, opts = {}) {
132
133
  }
133
134
  }
134
135
  const restoredTakeaways = parseTakeaways(body?.editor_takeaways);
136
+ const restoredTags = validateRevisionTaxonomy({
137
+ tags: target.payload.tags,
138
+ tagLabels: target.payload.tagLabels,
139
+ allowLegacyLabels: true,
140
+ }).map((tag) => tag.label);
135
141
  // Restore intentionally rolls back CONTENT fields (title/body/tags/relations/
136
142
  // featured/seo/hero/etc.) to the snapshot, but NOT publication state
137
143
  // (status / publish_at / published_at / published_revision_id) — that is by
@@ -155,7 +161,7 @@ export async function restoreRevision(db, contentId, revisionId, opts = {}) {
155
161
  // SEO focus keyword is part of the snapshot — restore it too.
156
162
  seoFocusKeyword: item.seo_focus_keyword ?? null,
157
163
  metadata: parseContentMetadata(typeof item.metadata_json === 'string' ? item.metadata_json : '{}'),
158
- tags: target.payload.tags,
164
+ tags: restoredTags,
159
165
  relations: target.payload.related.map((r) => ({
160
166
  relatedId: r.related_id,
161
167
  rank: r.rank,
@@ -1 +1 @@
1
- {"version":3,"file":"revisions.js","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revisions.js","sourceRoot":"","sources":["../../src/engine/revisions.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,17 @@ export interface TagSummary {
5
5
  label: string;
6
6
  count: number;
7
7
  }
8
+ export declare const DEFAULT_TAG_LIST_LIMIT = 100;
9
+ export declare const MAX_TAG_LIST_LIMIT = 500;
10
+ export declare const DEFAULT_TAG_SEARCH_LIMIT = 50;
8
11
  export declare function getTag(db: D1Database, tagId: string): Promise<TagSummary | null>;
9
12
  export declare function createTag(db: D1Database, label: string): Promise<TagSummary | null>;
10
- export declare function listTags(db: D1Database): Promise<TagSummary[]>;
11
- export declare function searchTags(db: D1Database, q: string): Promise<TagSummary[]>;
13
+ export declare function listTags(db: D1Database, options?: {
14
+ limit?: number;
15
+ }): Promise<TagSummary[]>;
16
+ export declare function searchTags(db: D1Database, q: string, options?: {
17
+ limit?: number;
18
+ }): Promise<TagSummary[]>;
12
19
  export declare function renameTag(db: D1Database, tagId: string, label: string): Promise<boolean>;
13
20
  export declare function deleteTag(db: D1Database, tagId: string): Promise<boolean>;
14
21
  //# sourceMappingURL=tags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/engine/tags.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAYtF;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAezF;AAED,wBAAsB,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAUpE;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAYjF;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB9F;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/E"}
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/engine/tags.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzC,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,sBAAsB,MAAM,CAAA;AACzC,eAAO,MAAM,kBAAkB,MAAM,CAAA;AACrC,eAAO,MAAM,wBAAwB,KAAK,CAAA;AAQ1C,wBAAsB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAYtF;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAazF;AAED,wBAAsB,QAAQ,CAC7B,EAAE,EAAE,UAAU,EACd,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,UAAU,EAAE,CAAC,CAYvB;AAED,wBAAsB,UAAU,CAC/B,EAAE,EAAE,UAAU,EACd,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,UAAU,EAAE,CAAC,CAcvB;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB9F;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/E"}
@@ -2,6 +2,16 @@
2
2
  // setContentTags / ensureTags (auto-create on assign) stay in publisher.ts;
3
3
  // this module adds management over content_tags + content_tag_links.
4
4
  import { slugify } from './slug.js';
5
+ import { validateSingleDeclaredTag } from './taxonomy.js';
6
+ export const DEFAULT_TAG_LIST_LIMIT = 100;
7
+ export const MAX_TAG_LIST_LIMIT = 500;
8
+ export const DEFAULT_TAG_SEARCH_LIMIT = 50;
9
+ function normalizeLimit(value, fallback, max) {
10
+ const limit = value ?? fallback;
11
+ if (!Number.isSafeInteger(limit) || limit < 1 || limit > max)
12
+ return fallback;
13
+ return limit;
14
+ }
5
15
  export async function getTag(db, tagId) {
6
16
  const row = await db
7
17
  .prepare(`SELECT t.id, t.slug, t.label, COUNT(l.content_id) AS count
@@ -14,61 +24,62 @@ export async function getTag(db, tagId) {
14
24
  return row ?? null;
15
25
  }
16
26
  export async function createTag(db, label) {
17
- const slug = slugify(label);
18
- const trimmed = label.trim();
19
- if (!slug || !trimmed)
20
- return null;
27
+ const tag = validateSingleDeclaredTag(label);
21
28
  const existing = await db
22
29
  .prepare('SELECT id FROM content_tags WHERE slug = ? LIMIT 1')
23
- .bind(slug)
30
+ .bind(tag.slug)
24
31
  .first();
25
32
  if (existing)
26
33
  return null;
27
34
  const id = crypto.randomUUID();
28
35
  await db
29
36
  .prepare('INSERT INTO content_tags (id, slug, label) VALUES (?, ?, ?)')
30
- .bind(id, slug, trimmed)
37
+ .bind(id, tag.slug, tag.label)
31
38
  .run();
32
- return { id, slug, label: trimmed, count: 0 };
39
+ return { id, slug: tag.slug, label: tag.label, count: 0 };
33
40
  }
34
- export async function listTags(db) {
41
+ export async function listTags(db, options = {}) {
42
+ const limit = normalizeLimit(options.limit, DEFAULT_TAG_LIST_LIMIT, MAX_TAG_LIST_LIMIT);
35
43
  const result = await db
36
44
  .prepare(`SELECT t.id, t.slug, t.label, COUNT(l.content_id) AS count
37
45
  FROM content_tags t
38
46
  LEFT JOIN content_tag_links l ON l.tag_id = t.id
39
- GROUP BY t.id ORDER BY count DESC, t.label ASC`)
47
+ GROUP BY t.id ORDER BY count DESC, t.label ASC LIMIT ?`)
48
+ .bind(limit)
40
49
  .all();
41
50
  return result.results || [];
42
51
  }
43
- export async function searchTags(db, q) {
52
+ export async function searchTags(db, q, options = {}) {
44
53
  const needle = `${slugify(q)}%`;
54
+ if (needle === '%')
55
+ return [];
56
+ const limit = normalizeLimit(options.limit, DEFAULT_TAG_SEARCH_LIMIT, MAX_TAG_LIST_LIMIT);
45
57
  const result = await db
46
58
  .prepare(`SELECT t.id, t.slug, t.label, COUNT(l.content_id) AS count
47
59
  FROM content_tags t
48
60
  LEFT JOIN content_tag_links l ON l.tag_id = t.id
49
- WHERE t.slug LIKE ? GROUP BY t.id ORDER BY t.label ASC LIMIT 50`)
50
- .bind(needle)
61
+ WHERE t.slug LIKE ? GROUP BY t.id ORDER BY t.label ASC LIMIT ?`)
62
+ .bind(needle, limit)
51
63
  .all();
52
64
  return result.results || [];
53
65
  }
54
66
  export async function renameTag(db, tagId, label) {
55
- const slug = slugify(label);
56
- const trimmed = label.trim();
57
- if (!slug || !trimmed)
58
- return false;
67
+ const tag = validateSingleDeclaredTag(label);
59
68
  // content_tags.slug is UNIQUE — a rename whose target slug is already taken by
60
69
  // a DIFFERENT tag would throw a constraint error. Fail gracefully (the
61
70
  // Promise<boolean> contract) instead, matching the empty-slug early return.
62
71
  const clash = await db
63
72
  .prepare('SELECT id FROM content_tags WHERE slug = ? AND id != ? LIMIT 1')
64
- .bind(slug, tagId)
73
+ .bind(tag.slug, tagId)
65
74
  .first();
66
75
  if (clash)
67
76
  return false;
68
- const res = await db
69
- .prepare('UPDATE content_tags SET label = ?, slug = ? WHERE id = ?')
70
- .bind(trimmed, slug, tagId)
71
- .run();
77
+ const [res] = await db.batch([
78
+ db
79
+ .prepare('UPDATE content_tags SET label = ?, slug = ? WHERE id = ?')
80
+ .bind(tag.label, tag.slug, tagId),
81
+ db.prepare('UPDATE content_tag_links SET label = ? WHERE tag_id = ?').bind(tag.label, tagId),
82
+ ]);
72
83
  return Boolean(res.meta && res.meta.changes);
73
84
  }
74
85
  export async function deleteTag(db, tagId) {
@@ -1 +1 @@
1
- {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/engine/tags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/engine/tags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** Maximum number of tags per content item. Covers the measured fleet max (16) with headroom. */
2
+ export declare const MAX_ITEM_TAG_COUNT = 32;
3
+ /** Maximum UTF-8 byte length for a single declared tag display label. */
4
+ export declare const MAX_TAG_LABEL_BYTES = 128;
5
+ /** Maximum total UTF-8 bytes across all declared tag labels for one content item. */
6
+ export declare const MAX_ITEM_TAGS_TOTAL_BYTES = 2048;
7
+ export type TagInputErrorCode = 'tags_not_array' | 'tag_not_string' | 'tag_blank' | 'tag_untrimmed' | 'tag_not_nfc' | 'tag_label_too_long' | 'tag_non_slugifiable' | 'tag_duplicate' | 'tag_count_exceeded' | 'tags_total_bytes_exceeded' | 'tag_canonical_invalid' | 'tag_labels_mismatch' | 'tag_label_mismatch';
8
+ export interface TaxonomyTag {
9
+ slug: string;
10
+ label: string;
11
+ }
12
+ export declare class TagInputError extends Error {
13
+ readonly code: TagInputErrorCode;
14
+ readonly limit: number;
15
+ readonly actual: number;
16
+ readonly index: number | null;
17
+ constructor(code: TagInputErrorCode, message: string, limit: number, actual: number, index?: number | null);
18
+ }
19
+ export declare function utf8ByteLength(value: string): number;
20
+ export declare function validateDeclaredTagList(tags: unknown): TaxonomyTag[];
21
+ export declare function validateSingleDeclaredTag(label: unknown): TaxonomyTag;
22
+ export declare function validateRevisionTaxonomy(input: {
23
+ tags: unknown;
24
+ tagLabels?: unknown;
25
+ allowLegacyLabels?: boolean;
26
+ }): TaxonomyTag[];
27
+ export declare function validateStoredTaxonomyRows(rows: readonly {
28
+ slug: unknown;
29
+ label: unknown;
30
+ }[]): TaxonomyTag[];
31
+ //# sourceMappingURL=taxonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../../src/engine/taxonomy.ts"],"names":[],"mappings":"AAEA,iGAAiG;AACjG,eAAO,MAAM,kBAAkB,KAAK,CAAA;AACpC,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,MAAM,CAAA;AACtC,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,OAAQ,CAAA;AAE9C,MAAM,MAAM,iBAAiB,GAC1B,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,qBAAqB,GACrB,eAAe,GACf,oBAAoB,GACpB,2BAA2B,GAC3B,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,CAAA;AAEvB,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACb;AAED,qBAAa,aAAc,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,iBAAiB;IAEhC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;gBAJpB,IAAI,EAAE,iBAAiB,EAChC,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,GAAG,IAAW;CAKrC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AA6HD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,EAAE,CAMpE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAErE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,WAAW,EAAE,CA8BhB;AAED,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,SAAS;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAAE,GAChD,WAAW,EAAE,CAMf"}