@cogenta/schema 0.1.2 → 0.2.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 (93) hide show
  1. package/dist/define-collection.d.ts.map +1 -1
  2. package/dist/define-collection.js +32 -0
  3. package/dist/define-collection.js.map +1 -1
  4. package/dist/define-taxonomy.d.ts +9 -0
  5. package/dist/define-taxonomy.d.ts.map +1 -0
  6. package/dist/define-taxonomy.js +144 -0
  7. package/dist/define-taxonomy.js.map +1 -0
  8. package/dist/fields.d.ts +20 -0
  9. package/dist/fields.d.ts.map +1 -1
  10. package/dist/fields.js +14 -0
  11. package/dist/fields.js.map +1 -1
  12. package/dist/generate-schema-json.d.ts +28 -4
  13. package/dist/generate-schema-json.d.ts.map +1 -1
  14. package/dist/generate-schema-json.js +25 -4
  15. package/dist/generate-schema-json.js.map +1 -1
  16. package/dist/generate-types.js +1 -0
  17. package/dist/generate-types.js.map +1 -1
  18. package/dist/index.d.ts +4 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +2 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/links/check.d.ts +76 -0
  23. package/dist/links/check.d.ts.map +1 -0
  24. package/dist/links/check.js +169 -0
  25. package/dist/links/check.js.map +1 -0
  26. package/dist/links/extract.d.ts +36 -0
  27. package/dist/links/extract.d.ts.map +1 -0
  28. package/dist/links/extract.js +69 -0
  29. package/dist/links/extract.js.map +1 -0
  30. package/dist/links/index.d.ts +10 -0
  31. package/dist/links/index.d.ts.map +1 -0
  32. package/dist/links/index.js +8 -0
  33. package/dist/links/index.js.map +1 -0
  34. package/dist/store/columns.d.ts.map +1 -1
  35. package/dist/store/columns.js +5 -2
  36. package/dist/store/columns.js.map +1 -1
  37. package/dist/store/index.d.ts +11 -2
  38. package/dist/store/index.d.ts.map +1 -1
  39. package/dist/store/index.js +6 -1
  40. package/dist/store/index.js.map +1 -1
  41. package/dist/store/lifecycle-events.d.ts +72 -0
  42. package/dist/store/lifecycle-events.d.ts.map +1 -0
  43. package/dist/store/lifecycle-events.js +73 -0
  44. package/dist/store/lifecycle-events.js.map +1 -0
  45. package/dist/store/naming.d.ts +11 -2
  46. package/dist/store/naming.d.ts.map +1 -1
  47. package/dist/store/naming.js +13 -1
  48. package/dist/store/naming.js.map +1 -1
  49. package/dist/store/read-only.d.ts +9 -3
  50. package/dist/store/read-only.d.ts.map +1 -1
  51. package/dist/store/read-only.js +13 -3
  52. package/dist/store/read-only.js.map +1 -1
  53. package/dist/store/schema-2-migration.d.ts +32 -0
  54. package/dist/store/schema-2-migration.d.ts.map +1 -0
  55. package/dist/store/schema-2-migration.js +136 -0
  56. package/dist/store/schema-2-migration.js.map +1 -0
  57. package/dist/store/search-indexing.d.ts +34 -0
  58. package/dist/store/search-indexing.d.ts.map +1 -0
  59. package/dist/store/search-indexing.js +65 -0
  60. package/dist/store/search-indexing.js.map +1 -0
  61. package/dist/store/store.d.ts +36 -7
  62. package/dist/store/store.d.ts.map +1 -1
  63. package/dist/store/store.js +348 -58
  64. package/dist/store/store.js.map +1 -1
  65. package/dist/store/tables.d.ts +15 -3
  66. package/dist/store/tables.d.ts.map +1 -1
  67. package/dist/store/tables.js +98 -6
  68. package/dist/store/tables.js.map +1 -1
  69. package/dist/store/taxonomy-path.d.ts +25 -0
  70. package/dist/store/taxonomy-path.d.ts.map +1 -0
  71. package/dist/store/taxonomy-path.js +64 -0
  72. package/dist/store/taxonomy-path.js.map +1 -0
  73. package/dist/store/taxonomy-store.d.ts +62 -0
  74. package/dist/store/taxonomy-store.d.ts.map +1 -0
  75. package/dist/store/taxonomy-store.js +292 -0
  76. package/dist/store/taxonomy-store.js.map +1 -0
  77. package/dist/store/types.d.ts +42 -2
  78. package/dist/store/types.d.ts.map +1 -1
  79. package/dist/store/values.d.ts.map +1 -1
  80. package/dist/store/values.js +4 -1
  81. package/dist/store/values.js.map +1 -1
  82. package/dist/system-fields.d.ts +2 -1
  83. package/dist/system-fields.d.ts.map +1 -1
  84. package/dist/system-fields.js +4 -0
  85. package/dist/system-fields.js.map +1 -1
  86. package/dist/types.d.ts +86 -4
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js +12 -3
  89. package/dist/types.js.map +1 -1
  90. package/dist/validation.d.ts.map +1 -1
  91. package/dist/validation.js +5 -1
  92. package/dist/validation.js.map +1 -1
  93. package/package.json +2 -2
@@ -0,0 +1,62 @@
1
+ import { type DatabaseHandle } from '@cogenta/core';
2
+ import type { TaxonomyDefinition, TaxonomyTerm } from '../types.js';
3
+ /**
4
+ * The persistence layer of one taxonomy (`schema@2.0`, ADR-0022).
5
+ *
6
+ * Deliberately *not* a `ContentStore`. A term has no status, no version, no
7
+ * draft and no translation family — giving it those would tie a classification
8
+ * to the content lifecycle for no gain, and would make ADR-0014 apply to
9
+ * something it was never written about.
10
+ *
11
+ * The tree is a **materialised path**, maintained here on every write. Reads
12
+ * are then free: "everything under this term" is one `like`, identical on the
13
+ * three dialects ADR-0006 requires. Writes pay instead — creating a term reads
14
+ * its parent, and moving a subtree rewrites the paths beneath it.
15
+ */
16
+ export interface TaxonomyStoreOptions {
17
+ readonly db: DatabaseHandle;
18
+ readonly taxonomy: TaxonomyDefinition;
19
+ /** Injectable so tests can pin time; nothing else should pass it. */
20
+ readonly now?: () => Date;
21
+ readonly newId?: () => string;
22
+ }
23
+ export interface CreateTermInput {
24
+ /** Supply one to import a term that already has an identity elsewhere. */
25
+ readonly id?: string;
26
+ readonly slug: string;
27
+ readonly labels: Readonly<Record<string, string>>;
28
+ readonly parent?: string | null;
29
+ /** Left out, the term goes last among its siblings. */
30
+ readonly position?: number;
31
+ }
32
+ export interface UpdateTermInput {
33
+ readonly slug?: string;
34
+ readonly labels?: Readonly<Record<string, string>>;
35
+ readonly position?: number;
36
+ }
37
+ export interface ListTermsOptions {
38
+ /** Only the direct children of this term; `null` means the roots. */
39
+ readonly parent?: string | null;
40
+ /** Everything at or below this term, in tree order. */
41
+ readonly under?: string;
42
+ }
43
+ export interface TaxonomyStore {
44
+ create(input: CreateTermInput): Promise<TaxonomyTerm>;
45
+ read(id: string): Promise<TaxonomyTerm | null>;
46
+ bySlug(slug: string): Promise<TaxonomyTerm | null>;
47
+ update(id: string, input: UpdateTermInput): Promise<TaxonomyTerm>;
48
+ /** Re-parents a term and rewrites the whole subtree's paths. */
49
+ move(id: string, parent: string | null): Promise<TaxonomyTerm>;
50
+ /** Every term, in tree order, or the slice `options` names. */
51
+ list(options?: ListTermsOptions): Promise<readonly TaxonomyTerm[]>;
52
+ /** The term and everything beneath it, answered by one `like`. */
53
+ subtree(id: string): Promise<readonly TaxonomyTerm[]>;
54
+ /** From the root down to this term, inclusive. For a breadcrumb. */
55
+ ancestors(id: string): Promise<readonly TaxonomyTerm[]>;
56
+ /** Refuses while the term still has children, unless `cascade` is asked for. */
57
+ delete(id: string, options?: {
58
+ readonly cascade?: boolean;
59
+ }): Promise<boolean>;
60
+ }
61
+ export declare function createTaxonomyStore(options: TaxonomyStoreOptions): TaxonomyStore;
62
+ //# sourceMappingURL=taxonomy-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxonomy-store.d.ts","sourceRoot":"","sources":["../../src/store/taxonomy-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAKpB,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKnE;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IACjE,gEAAgE;IAChE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9D,+DAA+D;IAC/D,IAAI,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IAClE,kEAAkE;IAClE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IACrD,oEAAoE;IACpE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IACvD,gFAAgF;IAChF,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/E;AA4BD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAiVhF"}
@@ -0,0 +1,292 @@
1
+ import { CogentaError, identifier, sql, } from '@cogenta/core';
2
+ import { newId as uuidv7 } from '../id.js';
3
+ import { joinFragments, valueList } from './fragments.js';
4
+ import { taxonomyTable } from './naming.js';
5
+ import { assertDepth, childPath, depthOf, isBelow, isWithin, rebasedPath } from './taxonomy-path.js';
6
+ function text(value) {
7
+ return typeof value === 'string' ? value : String(value);
8
+ }
9
+ function nullableText(value) {
10
+ return value === null || value === undefined ? null : text(value);
11
+ }
12
+ /** Never throws while reading: a hand-edited row must stay recoverable. */
13
+ function parseLabels(raw) {
14
+ if (typeof raw !== 'string')
15
+ return {};
16
+ try {
17
+ const parsed = JSON.parse(raw);
18
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
19
+ return {};
20
+ const labels = {};
21
+ for (const [locale, label] of Object.entries(parsed)) {
22
+ if (typeof label === 'string')
23
+ labels[locale] = label;
24
+ }
25
+ return labels;
26
+ }
27
+ catch {
28
+ return {};
29
+ }
30
+ }
31
+ export function createTaxonomyStore(options) {
32
+ const { db, taxonomy } = options;
33
+ const dialect = db.dialect;
34
+ const now = options.now ?? (() => new Date());
35
+ const newId = options.newId ?? uuidv7;
36
+ const table = identifier(taxonomyTable(taxonomy.name), dialect);
37
+ const idColumn = identifier('id', dialect);
38
+ const parentColumn = identifier('parent_id', dialect);
39
+ const slugColumn = identifier('slug', dialect);
40
+ const pathColumn = identifier('path', dialect);
41
+ const positionColumn = identifier('position', dialect);
42
+ const hierarchical = taxonomy.hierarchical !== false;
43
+ const stamp = () => now().toISOString();
44
+ function termNotFound(id) {
45
+ return new CogentaError({
46
+ code: 'TAXONOMY_TERM_NOT_FOUND',
47
+ message: `No term "${id}" in the "${taxonomy.name}" taxonomy.`,
48
+ hint: 'Check the identifier — a term of another taxonomy has its own table and will never be found here.',
49
+ details: { taxonomy: taxonomy.name, id },
50
+ });
51
+ }
52
+ function toTerm(row) {
53
+ const path = text(row['path']);
54
+ return {
55
+ id: text(row['id']),
56
+ taxonomy: taxonomy.name,
57
+ parent: nullableText(row['parent_id']),
58
+ slug: text(row['slug']),
59
+ labels: parseLabels(row['labels']),
60
+ position: Number(row['position']),
61
+ path,
62
+ depth: depthOf(path),
63
+ createdAt: text(row['created_at']),
64
+ updatedAt: text(row['updated_at']),
65
+ };
66
+ }
67
+ async function rowOf(tx, id) {
68
+ const found = await tx.query(sql `select * from ${table} where ${idColumn} = ${id}`);
69
+ return found.rows[0] ?? null;
70
+ }
71
+ /**
72
+ * Tree order: a parent immediately before its children, siblings by
73
+ * `position`.
74
+ *
75
+ * Sorting on the path alone would order siblings by id, which is arbitrary;
76
+ * sorting on `position` alone would interleave branches. Sorting on both,
77
+ * with the path first, is what makes a flat list renderable as a tree
78
+ * without a second pass.
79
+ */
80
+ const treeOrder = sql `${pathColumn} asc, ${positionColumn} asc`;
81
+ async function assertSlugFree(tx, slug, exceptId) {
82
+ const found = await tx.query(sql `select ${idColumn} from ${table} where ${slugColumn} = ${slug}`);
83
+ const clash = found.rows.find((row) => text(row['id']) !== exceptId);
84
+ if (clash === undefined)
85
+ return;
86
+ throw new CogentaError({
87
+ code: 'TAXONOMY_SLUG_TAKEN',
88
+ message: `A "${taxonomy.name}" term already uses the slug "${slug}".`,
89
+ hint: 'A slug is unique across the whole taxonomy, not per parent: it is what a URL carries, and two terms answering to one URL is not a tree, it is an ambiguity.',
90
+ details: { taxonomy: taxonomy.name, slug },
91
+ });
92
+ }
93
+ async function parentPathOf(tx, parent) {
94
+ if (parent === null)
95
+ return '';
96
+ if (!hierarchical) {
97
+ throw new CogentaError({
98
+ code: 'TAXONOMY_NOT_HIERARCHICAL',
99
+ message: `The "${taxonomy.name}" taxonomy is flat, so its terms cannot be nested.`,
100
+ hint: 'Declare it with hierarchical: true if this taxonomy really is a tree — a flat one is refused here rather than storing a parent nothing renders.',
101
+ details: { taxonomy: taxonomy.name },
102
+ });
103
+ }
104
+ const row = await rowOf(tx, parent);
105
+ if (row === null)
106
+ throw termNotFound(parent);
107
+ return text(row['path']);
108
+ }
109
+ /** Last position among a parent's children, so a new term lands at the end. */
110
+ async function nextPosition(tx, parent) {
111
+ const found = await tx.query(parent === null
112
+ ? sql `select ${positionColumn} from ${table} where ${parentColumn} is null`
113
+ : sql `select ${positionColumn} from ${table} where ${parentColumn} = ${parent}`);
114
+ return found.rows.reduce((highest, row) => Math.max(highest, Number(row['position']) + 1), 0);
115
+ }
116
+ return {
117
+ create: async (input) => db.transaction(async (tx) => {
118
+ const id = input.id ?? newId();
119
+ const parent = input.parent ?? null;
120
+ const parentPath = await parentPathOf(tx, parent);
121
+ const path = childPath(parentPath, id);
122
+ assertDepth(taxonomy.name, path);
123
+ await assertSlugFree(tx, input.slug);
124
+ const at = stamp();
125
+ const position = input.position ?? (await nextPosition(tx, parent));
126
+ await tx.query(sql `insert into ${table} (${joinFragments([
127
+ idColumn,
128
+ parentColumn,
129
+ slugColumn,
130
+ identifier('labels', dialect),
131
+ positionColumn,
132
+ pathColumn,
133
+ identifier('created_at', dialect),
134
+ identifier('updated_at', dialect),
135
+ ], ', ')}) values (${id}, ${parent}, ${input.slug}, ${JSON.stringify(input.labels)},
136
+ ${position}, ${path}, ${at}, ${at})`);
137
+ const row = await rowOf(tx, id);
138
+ if (row === null)
139
+ throw termNotFound(id);
140
+ return toTerm(row);
141
+ }, { immediate: true }),
142
+ read: async (id) => {
143
+ const row = await rowOf(db, id);
144
+ return row === null ? null : toTerm(row);
145
+ },
146
+ bySlug: async (slug) => {
147
+ const found = await db.query(sql `select * from ${table} where ${slugColumn} = ${slug}`);
148
+ const row = found.rows[0];
149
+ return row === undefined ? null : toTerm(row);
150
+ },
151
+ update: async (id, input) => db.transaction(async (tx) => {
152
+ const row = await rowOf(tx, id);
153
+ if (row === null)
154
+ throw termNotFound(id);
155
+ const assignments = [
156
+ sql `${identifier('updated_at', dialect)} = ${stamp()}`,
157
+ ];
158
+ if (input.slug !== undefined) {
159
+ await assertSlugFree(tx, input.slug, id);
160
+ // Renaming rewrites **nothing** in the tree: the path is built from
161
+ // ids precisely so that a rename stays a one-row update.
162
+ assignments.push(sql `${slugColumn} = ${input.slug}`);
163
+ }
164
+ if (input.labels !== undefined) {
165
+ assignments.push(sql `${identifier('labels', dialect)} = ${JSON.stringify(input.labels)}`);
166
+ }
167
+ if (input.position !== undefined) {
168
+ assignments.push(sql `${positionColumn} = ${input.position}`);
169
+ }
170
+ await tx.query(sql `update ${table} set ${joinFragments(assignments, ', ')} where ${idColumn} = ${id}`);
171
+ const after = await rowOf(tx, id);
172
+ if (after === null)
173
+ throw termNotFound(id);
174
+ return toTerm(after);
175
+ }, { immediate: true }),
176
+ move: async (id, parent) => db.transaction(async (tx) => {
177
+ const row = await rowOf(tx, id);
178
+ if (row === null)
179
+ throw termNotFound(id);
180
+ const from = text(row['path']);
181
+ const parentPath = await parentPathOf(tx, parent);
182
+ // A term cannot become its own descendant. With a materialised path
183
+ // this is a string test, not a walk: the impossible move is exactly
184
+ // the one whose new parent already lives inside the subtree being
185
+ // moved.
186
+ if (parent !== null && isWithin(parentPath, from)) {
187
+ throw new CogentaError({
188
+ code: 'TAXONOMY_CYCLE',
189
+ message: `Moving "${id}" under "${parent}" would make it its own ancestor.`,
190
+ hint: 'Move the target out of this subtree first. A taxonomy is a tree, and a tree has no cycles — this is refused rather than stored and rendered as an infinite menu.',
191
+ details: { taxonomy: taxonomy.name, id, parent },
192
+ });
193
+ }
194
+ const to = childPath(parentPath, id);
195
+ if (to === from)
196
+ return toTerm(row);
197
+ const subtree = await tx.query(sql `select * from ${table} where ${pathColumn} like ${`${from}%`}`);
198
+ // The deepest descendant decides whether the move fits: checking only
199
+ // the moved term itself would let a three-level branch slide past the
200
+ // bound and be refused later, half-moved.
201
+ for (const member of subtree.rows) {
202
+ assertDepth(taxonomy.name, rebasedPath(text(member['path']), from, to));
203
+ }
204
+ const at = stamp();
205
+ for (const member of subtree.rows) {
206
+ const memberId = text(member['id']);
207
+ const rebased = rebasedPath(text(member['path']), from, to);
208
+ await tx.query(sql `update ${table}
209
+ set ${pathColumn} = ${rebased}, ${identifier('updated_at', dialect)} = ${at}
210
+ where ${idColumn} = ${memberId}`);
211
+ }
212
+ await tx.query(sql `update ${table}
213
+ set ${parentColumn} = ${parent}, ${positionColumn} = ${await nextPosition(tx, parent)}
214
+ where ${idColumn} = ${id}`);
215
+ const after = await rowOf(tx, id);
216
+ if (after === null)
217
+ throw termNotFound(id);
218
+ return toTerm(after);
219
+ }, { immediate: true }),
220
+ list: async (listOptions = {}) => {
221
+ if (listOptions.under !== undefined) {
222
+ const row = await rowOf(db, listOptions.under);
223
+ if (row === null)
224
+ throw termNotFound(listOptions.under);
225
+ const found = await db.query(sql `select * from ${table}
226
+ where ${pathColumn} like ${`${text(row['path'])}%`}
227
+ order by ${treeOrder}`);
228
+ return found.rows.map(toTerm);
229
+ }
230
+ if (listOptions.parent !== undefined) {
231
+ const found = await db.query(listOptions.parent === null
232
+ ? sql `select * from ${table} where ${parentColumn} is null order by ${treeOrder}`
233
+ : sql `select * from ${table} where ${parentColumn} = ${listOptions.parent} order by ${treeOrder}`);
234
+ return found.rows.map(toTerm);
235
+ }
236
+ const found = await db.query(sql `select * from ${table} order by ${treeOrder}`);
237
+ return found.rows.map(toTerm);
238
+ },
239
+ subtree: async (id) => {
240
+ const row = await rowOf(db, id);
241
+ if (row === null)
242
+ throw termNotFound(id);
243
+ const found = await db.query(sql `select * from ${table}
244
+ where ${pathColumn} like ${`${text(row['path'])}%`}
245
+ order by ${treeOrder}`);
246
+ return found.rows.map(toTerm);
247
+ },
248
+ ancestors: async (id) => {
249
+ const row = await rowOf(db, id);
250
+ if (row === null)
251
+ throw termNotFound(id);
252
+ // The path already *is* the ancestry, so this is one query by id list
253
+ // rather than a walk of n queries up the tree.
254
+ const ids = text(row['path'])
255
+ .split('/')
256
+ .filter((segment) => segment !== '');
257
+ if (ids.length === 0)
258
+ return [];
259
+ const found = await db.query(sql `select * from ${table} where ${idColumn} in (${valueList(ids)})`);
260
+ const byId = new Map(found.rows.map((member) => [text(member['id']), member]));
261
+ return ids
262
+ .map((ancestorId) => byId.get(ancestorId))
263
+ .filter((member) => member !== undefined)
264
+ .map(toTerm);
265
+ },
266
+ delete: async (id, deleteOptions) => db.transaction(async (tx) => {
267
+ const row = await rowOf(tx, id);
268
+ if (row === null)
269
+ return false;
270
+ const path = text(row['path']);
271
+ const descendants = await tx.query(sql `select ${idColumn}, ${pathColumn} from ${table} where ${pathColumn} like ${`${path}%`}`);
272
+ const children = descendants.rows.filter((member) => isBelow(text(member['path']), path));
273
+ // Refusing by default rather than cascading: deleting "Cuisine" must
274
+ // not silently take "Desserts" and "Entrées" with it. The caller who
275
+ // really means the whole branch says so.
276
+ if (children.length > 0 && deleteOptions?.cascade !== true) {
277
+ throw new CogentaError({
278
+ code: 'TAXONOMY_TERM_HAS_CHILDREN',
279
+ message: `The "${taxonomy.name}" term "${id}" still has ${children.length} descendant term(s).`,
280
+ hint: 'Move them elsewhere first, or pass { cascade: true } to delete the whole branch. Nothing was changed.',
281
+ details: { taxonomy: taxonomy.name, id, descendants: children.length },
282
+ });
283
+ }
284
+ // The self-referencing foreign key is `on delete cascade`, so
285
+ // removing the root of the branch takes the branch with it — one
286
+ // statement, and the same behaviour on all three dialects.
287
+ const removed = await tx.query(sql `delete from ${table} where ${idColumn} = ${id}`);
288
+ return removed.rowsAffected > 0;
289
+ }, { immediate: true }),
290
+ };
291
+ }
292
+ //# sourceMappingURL=taxonomy-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxonomy-store.js","sourceRoot":"","sources":["../../src/store/taxonomy-store.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,27 @@ export type BlockZones = Readonly<Record<string, readonly ContentBlock[]>>;
22
22
  * the admin and preview tokens see — the same thing when nothing is pending.
23
23
  */
24
24
  export type EntryState = 'published' | 'working';
25
+ /**
26
+ * Whether a read reaches into the trash (`schema@2.0`, ADR-0022).
27
+ *
28
+ * `'exclude'` is the default everywhere, and that direction is the whole
29
+ * point: a caller written before the trash existed — a renderer, a sitemap, a
30
+ * headless client — keeps returning live content without being changed. Only a
31
+ * screen that *is* the trash asks for `'only'`.
32
+ */
33
+ export type TrashFilter = 'exclude' | 'include' | 'only';
34
+ export interface TrashOptions {
35
+ readonly trashed?: TrashFilter;
36
+ }
37
+ export interface ReadOptions extends TrashOptions {
38
+ readonly state?: EntryState;
39
+ }
40
+ /** What `purgeExpired()` actually removed, so a caller can report it. */
41
+ export interface PurgeReport {
42
+ readonly purged: number;
43
+ /** The cut-off used, derived from the collection's `trash.retainDays`. */
44
+ readonly olderThan: string;
45
+ }
25
46
  export interface ContentEntry<TValues extends ContentValues = ContentValues> extends SystemFields {
26
47
  /** When this entry went public, per language. Null while it never has. */
27
48
  readonly publishedAt: string | null;
@@ -44,6 +65,25 @@ export interface CreateInput<TValues extends ContentValues = ContentValues> exte
44
65
  readonly values: Partial<TValues>;
45
66
  readonly blocks?: BlockZones;
46
67
  }
68
+ /**
69
+ * What a copy is allowed to differ by.
70
+ *
71
+ * Everything not named here is copied from the source: its values, its block
72
+ * zones, its relations, its locale and its provenance. What is *never* copied
73
+ * is stated on `ContentStore.duplicate` itself, because it is a decision
74
+ * rather than an omission.
75
+ */
76
+ export interface DuplicateInput<TValues extends ContentValues = ContentValues> extends ProvenanceInput {
77
+ /** Supply one when the copy has to carry an identity chosen elsewhere. */
78
+ readonly id?: string;
79
+ readonly createdBy?: string | null;
80
+ /**
81
+ * Applied on top of the copied values. This is how a caller renames the copy
82
+ * — and the only way to give a `unique` field a value that is not a string,
83
+ * since one of those cannot be derived automatically.
84
+ */
85
+ readonly values?: Partial<TValues>;
86
+ }
47
87
  export interface UpdateInput<TValues extends ContentValues = ContentValues> extends ProvenanceInput {
48
88
  readonly values?: Partial<TValues>;
49
89
  /** Replaces the whole zone. A zone left out is untouched. */
@@ -61,7 +101,7 @@ export interface SortOrder {
61
101
  readonly field: SortField;
62
102
  readonly direction: 'asc' | 'desc';
63
103
  }
64
- export interface ListOptions {
104
+ export interface ListOptions extends TrashOptions {
65
105
  readonly state?: EntryState;
66
106
  readonly locale?: string;
67
107
  readonly status?: ContentStatus;
@@ -98,7 +138,7 @@ export type LocaleResolution<TValues extends ContentValues = ContentValues> = {
98
138
  } | {
99
139
  readonly outcome: 'notFound';
100
140
  };
101
- export interface ResolveLocaleOptions {
141
+ export interface ResolveLocaleOptions extends TrashOptions {
102
142
  readonly fallback: LocaleFallback;
103
143
  readonly state?: EntryState;
104
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1E,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACjD;AAED,wEAAwE;AACxE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;AAExD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAC5B;AAED,yEAAyE;AACzE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,YAAY;IAC/F,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,CACxE,SAAQ,eAAe;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,CAC3E,SAAQ,eAAe;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,CACxE,SAAQ,eAAe;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAClC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAA;CACnB;AAED,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,WAAW,CAAA;AAExD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,mFAAmF;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAED,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAA;AAE7D,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,IACtE;IACE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IACrC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B,GACD;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAA;AAEpC,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/store/values.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAiBzE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,OAAO,GACb,OAAO,CAsCT;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAmBnF;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IACrD,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAiFlB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,UAAU,EACjB,MAAM,GAAE,MAAM,MAAe,GAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAsCzC"}
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/store/values.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAiBzE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,OAAO,GACb,OAAO,CAsCT;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAmBnF;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IACrD,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAoFlB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,oBAAoB,EAChC,KAAK,EAAE,UAAU,EACjB,MAAM,GAAE,MAAM,MAAe,GAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAsCzC"}
@@ -84,7 +84,10 @@ export function normaliseValues(collection, input, options) {
84
84
  if (!provided && options.partial)
85
85
  continue;
86
86
  const raw = provided ? input[name] : definition.default;
87
- const many = definition.kind === 'relation' && definition.options['many'] === true;
87
+ // A `taxonomy` field is joined exactly like a `relation` (ADR-0022): a
88
+ // to-many one lives in a join table and holds an ordered list of ids.
89
+ const joined = definition.kind === 'relation' || definition.kind === 'taxonomy';
90
+ const many = joined && definition.options['many'] === true;
88
91
  if (raw === undefined || raw === null) {
89
92
  if (definition.required === true && options.enforceRequired) {
90
93
  throw invalid(`"${name}" is required on "${collection.name}".`, 'Give the field a value, or make it optional in the schema.', { collection: collection.name, field: name });
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/store/values.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/store/values.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { z } from 'zod';
11
11
  * validated against user options — describing them as ordinary fields would let
12
12
  * a collection redeclare one, which is exactly what `defineCollection` refuses.
13
13
  */
14
- export declare const SYSTEM_FIELD_NAMES: readonly ['id', 'createdAt', 'updatedAt', 'createdBy', 'updatedBy', 'status', 'locale', 'translationOf', 'version', 'provenance', 'provenanceDetail'];
14
+ export declare const SYSTEM_FIELD_NAMES: readonly ['id', 'createdAt', 'updatedAt', 'createdBy', 'updatedBy', 'status', 'deletedAt', 'locale', 'translationOf', 'version', 'provenance', 'provenanceDetail'];
15
15
  export type SystemFieldName = (typeof SYSTEM_FIELD_NAMES)[number];
16
16
  export declare function isSystemFieldName(name: string): name is SystemFieldName;
17
17
  export declare const provenanceDetailSchema: z.ZodObject<{
@@ -32,6 +32,7 @@ export declare const systemFieldsSchema: z.ZodObject<{
32
32
  published: "published";
33
33
  scheduled: "scheduled";
34
34
  }>;
35
+ deletedAt: z.ZodNullable<z.ZodISODateTime>;
35
36
  locale: z.ZodString;
36
37
  translationOf: z.ZodNullable<z.ZodString>;
37
38
  version: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"system-fields.d.ts","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,kBAAkB,YAC7B,IAAI,EACJ,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,kBAAkB,CACV,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAIjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,eAAe,CAEvE;AAED,eAAO,MAAM,sBAAsB;;;;;kBAMjC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc7B,CAAA;AAEF,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACxE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAkBpE,CAAA"}
1
+ {"version":3,"file":"system-fields.d.ts","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,kBAAkB,YAC7B,IAAI,EACJ,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,kBAAkB,CACV,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAIjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,eAAe,CAEvE;AAED,eAAO,MAAM,sBAAsB;;;;;kBAMjC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgB7B,CAAA;AAEF,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACxE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAmBpE,CAAA"}
@@ -19,6 +19,7 @@ export const SYSTEM_FIELD_NAMES = [
19
19
  'createdBy',
20
20
  'updatedBy',
21
21
  'status',
22
+ 'deletedAt',
22
23
  'locale',
23
24
  'translationOf',
24
25
  'version',
@@ -43,6 +44,8 @@ export const systemFieldsSchema = z.object({
43
44
  createdBy: z.string().min(1).nullable(),
44
45
  updatedBy: z.string().min(1).nullable(),
45
46
  status: z.enum(CONTENT_STATUSES),
47
+ /** Contract A § "Champs système" (`schema@2.0`): orthogonal to `status`. */
48
+ deletedAt: z.iso.datetime({ offset: true }).nullable(),
46
49
  /** Contract A § i18n: one entry per locale (ADR-0014). */
47
50
  locale: z.string().min(1),
48
51
  /** The source entry of a translation family, or `null` on the source itself. */
@@ -58,6 +61,7 @@ export const SYSTEM_FIELD_DESCRIPTORS = [
58
61
  { name: 'createdBy', type: 'id', nullable: true, readOnly: true },
59
62
  { name: 'updatedBy', type: 'id', nullable: true, readOnly: true },
60
63
  { name: 'status', type: 'enum', nullable: false, readOnly: true, values: CONTENT_STATUSES },
64
+ { name: 'deletedAt', type: 'datetime', nullable: true, readOnly: true },
61
65
  { name: 'locale', type: 'string', nullable: false, readOnly: true },
62
66
  { name: 'translationOf', type: 'id', nullable: true, readOnly: true },
63
67
  { name: 'version', type: 'number', nullable: false, readOnly: true },
@@ -1 +1 @@
1
- {"version":3,"file":"system-fields.js","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-fields.js","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"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"}