@cogenta/schema 0.1.2 → 0.3.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 (105) 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 +16 -2
  38. package/dist/store/index.d.ts.map +1 -1
  39. package/dist/store/index.js +9 -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/menu-store.d.ts +99 -0
  46. package/dist/store/menu-store.d.ts.map +1 -0
  47. package/dist/store/menu-store.js +418 -0
  48. package/dist/store/menu-store.js.map +1 -0
  49. package/dist/store/menu-tables.d.ts +26 -0
  50. package/dist/store/menu-tables.d.ts.map +1 -0
  51. package/dist/store/menu-tables.js +79 -0
  52. package/dist/store/menu-tables.js.map +1 -0
  53. package/dist/store/naming.d.ts +11 -2
  54. package/dist/store/naming.d.ts.map +1 -1
  55. package/dist/store/naming.js +13 -1
  56. package/dist/store/naming.js.map +1 -1
  57. package/dist/store/read-only.d.ts +9 -3
  58. package/dist/store/read-only.d.ts.map +1 -1
  59. package/dist/store/read-only.js +13 -3
  60. package/dist/store/read-only.js.map +1 -1
  61. package/dist/store/scheduled-publish-enqueue.d.ts +37 -0
  62. package/dist/store/scheduled-publish-enqueue.d.ts.map +1 -0
  63. package/dist/store/scheduled-publish-enqueue.js +51 -0
  64. package/dist/store/scheduled-publish-enqueue.js.map +1 -0
  65. package/dist/store/schema-2-migration.d.ts +32 -0
  66. package/dist/store/schema-2-migration.d.ts.map +1 -0
  67. package/dist/store/schema-2-migration.js +136 -0
  68. package/dist/store/schema-2-migration.js.map +1 -0
  69. package/dist/store/search-indexing.d.ts +34 -0
  70. package/dist/store/search-indexing.d.ts.map +1 -0
  71. package/dist/store/search-indexing.js +65 -0
  72. package/dist/store/search-indexing.js.map +1 -0
  73. package/dist/store/store.d.ts +45 -8
  74. package/dist/store/store.d.ts.map +1 -1
  75. package/dist/store/store.js +398 -59
  76. package/dist/store/store.js.map +1 -1
  77. package/dist/store/tables.d.ts +15 -3
  78. package/dist/store/tables.d.ts.map +1 -1
  79. package/dist/store/tables.js +98 -6
  80. package/dist/store/tables.js.map +1 -1
  81. package/dist/store/taxonomy-path.d.ts +25 -0
  82. package/dist/store/taxonomy-path.d.ts.map +1 -0
  83. package/dist/store/taxonomy-path.js +64 -0
  84. package/dist/store/taxonomy-path.js.map +1 -0
  85. package/dist/store/taxonomy-store.d.ts +62 -0
  86. package/dist/store/taxonomy-store.d.ts.map +1 -0
  87. package/dist/store/taxonomy-store.js +292 -0
  88. package/dist/store/taxonomy-store.js.map +1 -0
  89. package/dist/store/types.d.ts +42 -2
  90. package/dist/store/types.d.ts.map +1 -1
  91. package/dist/store/values.d.ts.map +1 -1
  92. package/dist/store/values.js +4 -1
  93. package/dist/store/values.js.map +1 -1
  94. package/dist/system-fields.d.ts +2 -1
  95. package/dist/system-fields.d.ts.map +1 -1
  96. package/dist/system-fields.js +4 -0
  97. package/dist/system-fields.js.map +1 -1
  98. package/dist/types.d.ts +86 -4
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/types.js +12 -3
  101. package/dist/types.js.map +1 -1
  102. package/dist/validation.d.ts.map +1 -1
  103. package/dist/validation.js +5 -1
  104. package/dist/validation.js.map +1 -1
  105. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"define-collection.d.ts","sourceRoot":"","sources":["../src/define-collection.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,YAAY,CAAA;AA4BnB,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC7E,UAAU,EAAE,WAAW,GACtB,WAAW,CAMb;AAsSD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAyBxF"}
1
+ {"version":3,"file":"define-collection.d.ts","sourceRoot":"","sources":["../src/define-collection.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,YAAY,CAAA;AA4BnB,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,WAAW,SAAS,oBAAoB,EAC7E,UAAU,EAAE,WAAW,GACtB,WAAW,CAMb;AAyUD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAyBxF"}
@@ -53,6 +53,7 @@ function collectIssues(definition) {
53
53
  checkIndexes(definition, fieldNames, issues);
54
54
  checkPermissions(definition, issues);
55
55
  checkVersioning(definition, issues);
56
+ checkTrash(definition, issues);
56
57
  return issues;
57
58
  }
58
59
  function checkField(name, field, fieldNames, issues) {
@@ -87,6 +88,9 @@ function checkField(name, field, fieldNames, issues) {
87
88
  case 'blocks':
88
89
  checkBlocks(path, field, issues);
89
90
  break;
91
+ case 'taxonomy':
92
+ checkTaxonomyField(path, field, issues);
93
+ break;
90
94
  default:
91
95
  break;
92
96
  }
@@ -121,6 +125,17 @@ function checkRelation(path, field, issues) {
121
125
  }
122
126
  }
123
127
  }
128
+ function checkTaxonomyField(path, field, issues) {
129
+ const of = field.options.of;
130
+ if (typeof of !== 'string' || of === '') {
131
+ issues.push({
132
+ path: `${path}.of`,
133
+ message: 'a taxonomy field must name the taxonomy it points to',
134
+ });
135
+ }
136
+ // Whether that taxonomy exists is a cross-object question, answered by
137
+ // `validateTaxonomySet` — a single `defineCollection` call cannot know.
138
+ }
124
139
  function checkSelect(path, field, issues) {
125
140
  const options = field.options.options;
126
141
  if (!Array.isArray(options) || options.length === 0) {
@@ -277,6 +292,23 @@ function checkVersioning(definition, issues) {
277
292
  issues.push({ path: 'versioning.keep', message: 'must be a positive whole number of versions' });
278
293
  }
279
294
  }
295
+ /**
296
+ * `trash: false` is the only way back to a hard `delete()` (ADR-0022), so it is
297
+ * accepted; anything else must be a real, positive window.
298
+ */
299
+ function checkTrash(definition, issues) {
300
+ const trash = definition.trash;
301
+ if (trash === undefined || trash === false)
302
+ return;
303
+ if (typeof trash !== 'object') {
304
+ issues.push({ path: 'trash', message: 'must be false or { retainDays: n }' });
305
+ return;
306
+ }
307
+ const { retainDays } = trash;
308
+ if (!Number.isInteger(retainDays) || retainDays < 1) {
309
+ issues.push({ path: 'trash.retainDays', message: 'must be a positive whole number of days' });
310
+ }
311
+ }
280
312
  /**
281
313
  * Cross-collection checks, which no single `defineCollection` call can make:
282
314
  * a relation only knows the *name* of its target.
@@ -1 +1 @@
1
- {"version":3,"file":"define-collection.js","sourceRoot":"","sources":["../src/define-collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-collection.js","sourceRoot":"","sources":["../src/define-collection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type CollectionDefinition, type TaxonomyDefinition } from './types.js';
2
+ export declare function defineTaxonomy<const TDefinition extends TaxonomyDefinition>(definition: TDefinition): TDefinition;
3
+ /**
4
+ * Cross-object checks no single call can make: a `taxonomy` field only knows
5
+ * the *name* of the taxonomy it points at, exactly as a `relation` only knows
6
+ * the name of its collection.
7
+ */
8
+ export declare function validateTaxonomySet(taxonomies: readonly TaxonomyDefinition[], collections?: readonly CollectionDefinition[]): void;
9
+ //# sourceMappingURL=define-taxonomy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-taxonomy.d.ts","sourceRoot":"","sources":["../src/define-taxonomy.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAuBhG,wBAAgB,cAAc,CAAC,KAAK,CAAC,WAAW,SAAS,kBAAkB,EACzE,UAAU,EAAE,WAAW,GACtB,WAAW,CAMb;AAqGD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,WAAW,GAAE,SAAS,oBAAoB,EAAO,GAChD,IAAI,CAyBN"}
@@ -0,0 +1,144 @@
1
+ import { schemaError } from './errors.js';
2
+ import { CONTENT_ACTIONS } from './types.js';
3
+ /**
4
+ * `defineTaxonomy` is the second door into the content model (ADR-0022).
5
+ *
6
+ * It checks eagerly, at import time, for the same reason `defineCollection`
7
+ * does: tables, admin screens and the term store are all derived from what is
8
+ * declared here, and a mistake caught now costs a restart rather than a
9
+ * database.
10
+ *
11
+ * A taxonomy is deliberately *thin*. It declares no fields: a term is `id`,
12
+ * `parent`, `slug`, `position` and locale-indexed `labels`, and nothing else.
13
+ * Anything richer than that is content, and content is a collection.
14
+ */
15
+ /** Table-safe: the taxonomy name becomes an identifier on three dialects. */
16
+ const TAXONOMY_NAME_PATTERN = /^[a-z][a-z0-9_]*$/;
17
+ /** BCP 47 enough for a key: `fr`, `en-GB`, `zh-Hant`. */
18
+ const LOCALE_PATTERN = /^[a-zA-Z]{2,8}(?:-[a-zA-Z0-9]{2,8})*$/;
19
+ const ACTION_SET = new Set(CONTENT_ACTIONS);
20
+ export function defineTaxonomy(definition) {
21
+ const issues = collectIssues(definition);
22
+ if (issues.length > 0) {
23
+ throw schemaError(definition.name ?? '(unnamed)', issues);
24
+ }
25
+ return definition;
26
+ }
27
+ function collectIssues(definition) {
28
+ const issues = [];
29
+ if (typeof definition.name !== 'string' || !TAXONOMY_NAME_PATTERN.test(definition.name)) {
30
+ issues.push({
31
+ path: 'name',
32
+ message: 'must be a lowercase identifier such as "category" or "product_type"',
33
+ });
34
+ }
35
+ checkLabels('labels.singular', definition.labels?.singular, true, issues);
36
+ checkLabels('labels.plural', definition.labels?.plural, false, issues);
37
+ checkPermissions(definition, issues);
38
+ return issues;
39
+ }
40
+ /**
41
+ * Labels are indexed by locale, and that indexing is checked.
42
+ *
43
+ * A `{ singular: 'Catégorie' }` written by hand instead of
44
+ * `{ singular: { fr: 'Catégorie' } }` would type-check nowhere and fail here
45
+ * with the reason spelled out, rather than showing "[object Object]" in the
46
+ * admin much later.
47
+ */
48
+ function checkLabels(path, labels, required, issues) {
49
+ if (labels === undefined) {
50
+ if (required)
51
+ issues.push({ path, message: 'is required, indexed by locale' });
52
+ return;
53
+ }
54
+ if (typeof labels !== 'object' || Array.isArray(labels)) {
55
+ issues.push({ path, message: "must be indexed by locale, e.g. { fr: 'Catégorie' }" });
56
+ return;
57
+ }
58
+ const entries = Object.entries(labels);
59
+ if (required && entries.length === 0) {
60
+ issues.push({ path, message: 'needs a label in at least one locale' });
61
+ }
62
+ for (const [locale, label] of entries) {
63
+ if (!LOCALE_PATTERN.test(locale)) {
64
+ issues.push({
65
+ path: `${path}.${locale}`,
66
+ message: 'is not a locale tag such as "fr" or "en"',
67
+ });
68
+ }
69
+ if (typeof label !== 'string' || label === '') {
70
+ issues.push({ path: `${path}.${locale}`, message: 'must be a non-empty label' });
71
+ }
72
+ }
73
+ }
74
+ function checkPermissions(definition, issues) {
75
+ const permissions = definition.permissions;
76
+ if (permissions === undefined || typeof permissions !== 'object') {
77
+ issues.push({ path: 'permissions', message: 'is required' });
78
+ return;
79
+ }
80
+ for (const [action, roles] of Object.entries(permissions)) {
81
+ if (!ACTION_SET.has(action)) {
82
+ issues.push({
83
+ path: `permissions.${action}`,
84
+ message: `unknown action; the fixed set is ${CONTENT_ACTIONS.join(', ')}`,
85
+ });
86
+ continue;
87
+ }
88
+ // The action vocabulary stays frozen (ADR-0022) rather than growing a
89
+ // taxonomy-shaped sixth verb — but a term is never published, so granting
90
+ // `publish` on one would describe an operation that does not exist.
91
+ if (action === 'publish') {
92
+ issues.push({
93
+ path: 'permissions.publish',
94
+ message: 'a term is never published; use read, create, update and delete',
95
+ });
96
+ continue;
97
+ }
98
+ if (!Array.isArray(roles)) {
99
+ issues.push({ path: `permissions.${action}`, message: 'must be a list of role names' });
100
+ continue;
101
+ }
102
+ for (const role of roles) {
103
+ if (typeof role !== 'string' || role === '') {
104
+ issues.push({
105
+ path: `permissions.${action}`,
106
+ message: 'role names must be non-empty strings',
107
+ });
108
+ }
109
+ }
110
+ }
111
+ }
112
+ /**
113
+ * Cross-object checks no single call can make: a `taxonomy` field only knows
114
+ * the *name* of the taxonomy it points at, exactly as a `relation` only knows
115
+ * the name of its collection.
116
+ */
117
+ export function validateTaxonomySet(taxonomies, collections = []) {
118
+ const names = new Set();
119
+ for (const taxonomy of taxonomies) {
120
+ if (names.has(taxonomy.name)) {
121
+ throw schemaError(taxonomy.name, [
122
+ { path: 'name', message: 'two taxonomies share this name' },
123
+ ]);
124
+ }
125
+ names.add(taxonomy.name);
126
+ }
127
+ for (const collection of collections) {
128
+ const issues = [];
129
+ for (const [field, definition] of Object.entries(collection.fields)) {
130
+ if (definition.kind !== 'taxonomy')
131
+ continue;
132
+ const target = String(definition.options['of']);
133
+ if (!names.has(target)) {
134
+ issues.push({
135
+ path: `fields.${field}.of`,
136
+ message: `points at "${target}", which no taxonomy defines`,
137
+ });
138
+ }
139
+ }
140
+ if (issues.length > 0)
141
+ throw schemaError(collection.name, issues);
142
+ }
143
+ }
144
+ //# sourceMappingURL=define-taxonomy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-taxonomy.js","sourceRoot":"","sources":["../src/define-taxonomy.ts"],"names":[],"mappings":"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"}
package/dist/fields.d.ts CHANGED
@@ -36,6 +36,11 @@ export interface SelectFieldOptions extends BaseFieldOptions {
36
36
  readonly options: readonly (string | SelectChoice)[];
37
37
  readonly many?: boolean;
38
38
  }
39
+ export interface TaxonomyFieldOptions extends BaseFieldOptions {
40
+ /** Name of the taxonomy declared with `defineTaxonomy()`. */
41
+ readonly of: string;
42
+ readonly many?: boolean;
43
+ }
39
44
  export interface BlocksFieldOptions extends BaseFieldOptions {
40
45
  /** `'*'` allows the whole vocabulary; a list restricts it. */
41
46
  readonly allow?: '*' | readonly string[];
@@ -107,6 +112,21 @@ export declare const f: {
107
112
  readonly kind: "color";
108
113
  readonly options: {};
109
114
  };
115
+ /**
116
+ * Terms of a declared taxonomy (`schema@2.0`, ADR-0022).
117
+ *
118
+ * `many: true` by default, unlike `relation`: the reason taxonomies exist at
119
+ * all is that the same term is reused across collections and an entry
120
+ * usually carries several. A single-valued taxonomy is the exception, and
121
+ * says so.
122
+ */
123
+ readonly taxonomy: (options: TaxonomyFieldOptions) => FieldDefinition & {
124
+ readonly kind: "taxonomy";
125
+ readonly options: {
126
+ of: string;
127
+ many: boolean;
128
+ };
129
+ };
110
130
  readonly blocks: (options?: BlocksFieldOptions) => FieldDefinition & {
111
131
  readonly kind: "blocks";
112
132
  readonly options: {
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAA;AAyCxF,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,YAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAU,CAAA;AAE9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,qCAAqC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAC7B;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAA;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,SAAS,MAAM,EAAE,CAAA;CACzC;AAkBD,eAAO,MAAM,CAAC;aACZ,IAAI,aAAU,gBAAgB;;;;aAI9B,QAAQ,aAAU,gBAAgB;;;;aAIlC,IAAI,aAAU,gBAAgB;;;;aAI9B,MAAM,aAAU,kBAAkB;;;;aAIlC,OAAO,aAAU,gBAAgB;;;;IAIjC,gDAAgD;aAChD,IAAI,aAAU,gBAAgB;;;;IAI9B,kDAAkD;aAClD,QAAQ,aAAU,gBAAgB;;;;aAIlC,KAAK,aAAU,iBAAiB;;;;;;;aAOhC,QAAQ,YAAU,oBAAoB;;;;;;;;aAUtC,MAAM,YAAU,kBAAkB;;;;;;;aAOlC,IAAI,aAAU,gBAAgB;;;;IAI9B,6DAA6D;aAC7D,GAAG,aAAU,gBAAgB;;;;IAI7B,sDAAsD;aACtD,KAAK,aAAU,gBAAgB;;;;aAI/B,MAAM,aAAU,kBAAkB;;;;;;CAG1B,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAA;AAyCxF,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,YAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAU,CAAA;AAE9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,qCAAqC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAC7B;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAA;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,SAAS,MAAM,EAAE,CAAA;CACzC;AAkBD,eAAO,MAAM,CAAC;aACZ,IAAI,aAAU,gBAAgB;;;;aAI9B,QAAQ,aAAU,gBAAgB;;;;aAIlC,IAAI,aAAU,gBAAgB;;;;aAI9B,MAAM,aAAU,kBAAkB;;;;aAIlC,OAAO,aAAU,gBAAgB;;;;IAIjC,gDAAgD;aAChD,IAAI,aAAU,gBAAgB;;;;IAI9B,kDAAkD;aAClD,QAAQ,aAAU,gBAAgB;;;;aAIlC,KAAK,aAAU,iBAAiB;;;;;;;aAOhC,QAAQ,YAAU,oBAAoB;;;;;;;;aAUtC,MAAM,YAAU,kBAAkB;;;;;;;aAOlC,IAAI,aAAU,gBAAgB;;;;IAI9B,6DAA6D;aAC7D,GAAG,aAAU,gBAAgB;;;;IAI7B,sDAAsD;aACtD,KAAK,aAAU,gBAAgB;;;;IAI/B;;;;;;;OAOG;aACH,QAAQ,YAAU,oBAAoB;;;;;;;aAOtC,MAAM,aAAU,kBAAkB;;;;;;CAG1B,CAAA"}
package/dist/fields.js CHANGED
@@ -100,6 +100,20 @@ export const f = {
100
100
  color(options = {}) {
101
101
  return field('color', options, {});
102
102
  },
103
+ /**
104
+ * Terms of a declared taxonomy (`schema@2.0`, ADR-0022).
105
+ *
106
+ * `many: true` by default, unlike `relation`: the reason taxonomies exist at
107
+ * all is that the same term is reused across collections and an entry
108
+ * usually carries several. A single-valued taxonomy is the exception, and
109
+ * says so.
110
+ */
111
+ taxonomy(options) {
112
+ return field('taxonomy', options, {
113
+ of: options.of,
114
+ many: options.many ?? true,
115
+ });
116
+ },
103
117
  blocks(options = {}) {
104
118
  return field('blocks', options, { allow: options.allow ?? '*' });
105
119
  },
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type SystemFieldDescriptor } from './system-fields.js';
2
- import type { CollectionDefinition, CollectionPermissions, CollectionRouting, CollectionVersioning, FieldKind } from './types.js';
2
+ import { type CollectionDefinition, type CollectionPermissions, type CollectionRouting, type CollectionVersioning, type FieldKind, type TaxonomyDefinition } from './types.js';
3
3
  import type { JsonValue } from './validation.js';
4
4
  /**
5
5
  * Renders `.cogenta/schema.json`, the description the admin reads to build its
@@ -10,7 +10,7 @@ import type { JsonValue } from './validation.js';
10
10
  * Which is also why a `validate` function cannot cross it — only the fact that
11
11
  * one exists does.
12
12
  */
13
- export declare const SCHEMA_DOCUMENT_CONTRACT = "schema@1.0";
13
+ export declare const SCHEMA_DOCUMENT_CONTRACT = "schema@2.0";
14
14
  export interface SchemaDocumentField {
15
15
  readonly name: string;
16
16
  readonly kind: FieldKind;
@@ -43,6 +43,28 @@ export interface SchemaDocumentCollection {
43
43
  readonly indexes: readonly (readonly string[])[];
44
44
  readonly permissions: CollectionPermissions;
45
45
  readonly fields: readonly SchemaDocumentField[];
46
+ /**
47
+ * Whether this collection has a trash, and for how long (`schema@2.0`).
48
+ * `false` means `delete()` is an immediate hard delete.
49
+ */
50
+ readonly trash: {
51
+ readonly retainDays: number;
52
+ } | false;
53
+ }
54
+ /**
55
+ * A taxonomy, as the admin needs to see it (`schema@2.0`, ADR-0022).
56
+ *
57
+ * No fields: a term is id, parent, slug, position and locale-indexed labels,
58
+ * and nothing else. Anything richer is content, and content is a collection.
59
+ */
60
+ export interface SchemaDocumentTaxonomy {
61
+ readonly name: string;
62
+ readonly labels: {
63
+ readonly singular: Readonly<Record<string, string>>;
64
+ readonly plural?: Readonly<Record<string, string>>;
65
+ };
66
+ readonly hierarchical: boolean;
67
+ readonly permissions: CollectionPermissions;
46
68
  }
47
69
  export interface SchemaDocumentSite {
48
70
  readonly locales: readonly string[];
@@ -52,10 +74,12 @@ export interface SchemaDocument {
52
74
  readonly contract: typeof SCHEMA_DOCUMENT_CONTRACT;
53
75
  readonly systemFields: readonly SystemFieldDescriptor[];
54
76
  readonly collections: readonly SchemaDocumentCollection[];
77
+ /** The declared taxonomies (`schema@2.0`). Empty when a site declares none. */
78
+ readonly taxonomies: readonly SchemaDocumentTaxonomy[];
55
79
  /** Absent for the build-time `.cogenta/schema.json` (no config in scope there) — present when a live server serves `/api/schema`. */
56
80
  readonly site?: SchemaDocumentSite;
57
81
  }
58
- export declare function buildSchemaDocument(collections: readonly CollectionDefinition[], site?: SchemaDocumentSite): SchemaDocument;
82
+ export declare function buildSchemaDocument(collections: readonly CollectionDefinition[], site?: SchemaDocumentSite, taxonomies?: readonly TaxonomyDefinition[]): SchemaDocument;
59
83
  /** Trailing newline: the file is written to disk and read by humans in diffs. */
60
- export declare function renderSchemaJson(collections: readonly CollectionDefinition[]): string;
84
+ export declare function renderSchemaJson(collections: readonly CollectionDefinition[], taxonomies?: readonly TaxonomyDefinition[]): string;
61
85
  //# sourceMappingURL=generate-schema-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema-json.d.ts","sourceRoot":"","sources":["../src/generate-schema-json.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AACzF,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EAEpB,SAAS,EACV,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD;;;;;;;;GAQG;AAEH,eAAO,MAAM,wBAAwB,eAAe,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAA;CAC3E;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAA;IAChD,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,wBAAwB,CAAA;IAClD,QAAQ,CAAC,YAAY,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,wBAAwB,EAAE,CAAA;IACzD,qIAAqI;IACrI,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAA;CACnC;AAID,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,oBAAoB,EAAE,EAC5C,IAAI,CAAC,EAAE,kBAAkB,GACxB,cAAc,CAWhB;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAAG,MAAM,CAErF"}
1
+ {"version":3,"file":"generate-schema-json.d.ts","sourceRoot":"","sources":["../src/generate-schema-json.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { validateCollectionSet } from './define-collection.js';
2
+ import { validateTaxonomySet } from './define-taxonomy.js';
2
3
  import { SYSTEM_FIELD_DESCRIPTORS } from './system-fields.js';
4
+ import { DEFAULT_TRASH_RETAIN_DAYS, } from './types.js';
3
5
  /**
4
6
  * Renders `.cogenta/schema.json`, the description the admin reads to build its
5
7
  * interface (L1 § "Génération").
@@ -9,20 +11,36 @@ import { SYSTEM_FIELD_DESCRIPTORS } from './system-fields.js';
9
11
  * Which is also why a `validate` function cannot cross it — only the fact that
10
12
  * one exists does.
11
13
  */
12
- export const SCHEMA_DOCUMENT_CONTRACT = 'schema@1.0';
13
- export function buildSchemaDocument(collections, site) {
14
+ export const SCHEMA_DOCUMENT_CONTRACT = 'schema@2.0';
15
+ export function buildSchemaDocument(collections, site, taxonomies = []) {
14
16
  validateCollectionSet(collections);
17
+ // Cross-checked here rather than trusted: a `f.taxonomy({ of: 'topic' })`
18
+ // pointing at a taxonomy nobody declares would render an admin screen with
19
+ // no way to fill it in.
20
+ validateTaxonomySet(taxonomies, collections);
15
21
  const sorted = [...collections].sort((left, right) => (left.name < right.name ? -1 : 1));
22
+ const sortedTaxonomies = [...taxonomies].sort((left, right) => (left.name < right.name ? -1 : 1));
16
23
  return {
17
24
  contract: SCHEMA_DOCUMENT_CONTRACT,
18
25
  systemFields: SYSTEM_FIELD_DESCRIPTORS,
19
26
  collections: sorted.map(describeCollection),
27
+ taxonomies: sortedTaxonomies.map(describeTaxonomy),
20
28
  ...(site === undefined ? {} : { site }),
21
29
  };
22
30
  }
23
31
  /** Trailing newline: the file is written to disk and read by humans in diffs. */
24
- export function renderSchemaJson(collections) {
25
- return `${JSON.stringify(buildSchemaDocument(collections), null, 2)}\n`;
32
+ export function renderSchemaJson(collections, taxonomies = []) {
33
+ return `${JSON.stringify(buildSchemaDocument(collections, undefined, taxonomies), null, 2)}\n`;
34
+ }
35
+ function describeTaxonomy(taxonomy) {
36
+ return {
37
+ name: taxonomy.name,
38
+ labels: taxonomy.labels,
39
+ // Spelled out rather than left absent, like every other flag here: the
40
+ // admin renders it, and a missing key would make it re-derive the default.
41
+ hierarchical: taxonomy.hierarchical !== false,
42
+ permissions: taxonomy.permissions,
43
+ };
26
44
  }
27
45
  function describeCollection(collection) {
28
46
  const described = {
@@ -31,6 +49,9 @@ function describeCollection(collection) {
31
49
  indexes: collection.indexes ?? [],
32
50
  permissions: collection.permissions,
33
51
  fields: Object.entries(collection.fields).map(([name, field]) => describeField(name, field)),
52
+ trash: collection.trash === false
53
+ ? false
54
+ : { retainDays: collection.trash?.retainDays ?? DEFAULT_TRASH_RETAIN_DAYS },
34
55
  };
35
56
  if (collection.routing !== undefined)
36
57
  described.routing = collection.routing;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema-json.js","sourceRoot":"","sources":["../src/generate-schema-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-schema-json.js","sourceRoot":"","sources":["../src/generate-schema-json.ts"],"names":[],"mappings":"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"}
@@ -187,6 +187,7 @@ function baseTypeOf(field) {
187
187
  return 'boolean';
188
188
  case 'media':
189
189
  case 'relation':
190
+ case 'taxonomy':
190
191
  return field.options.many === true ? 'readonly CogentaId[]' : 'CogentaId';
191
192
  case 'select': {
192
193
  const union = selectUnion(field);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,GAAG;;;;;CAKd,CAAA;AAED,wEAAwE;AACxE,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFf,CAAA;AAED,MAAM,UAAU,sBAAsB,CAAC,WAA4C;IACjF,qBAAqB,CAAC,WAAW,CAAC,CAAA;IAElC,0EAA0E;IAC1E,0CAA0C;IAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAExF,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEzC,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IAExC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACvB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAgC;IACxD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAEvF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAA;QACpD,KAAK,CAAC,IAAI,CAAC,cAAc,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,cAAc,CAAC,WAA4C;IAClE,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAChD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,cAAc,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACnB,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;IAChE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAAC,cAAsB;IAClD,OAAO,cAAc;SAClB,KAAK,CAAC,MAAM,CAAC;SACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,MAAM,cAAc,GAAG,4BAA4B,CAAA;AAEnD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAC1D,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAC5D,CAAA;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC7D,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,MAAM,CAAC,KAAsB;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,8EAA8E;IAC9E,+CAA+C;IAC/C,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACrE,4EAA4E;IAC5E,wEAAwE;IACxE,+CAA+C;IAC/C,OAAO,GAAG,IAAI,SAAS,CAAA;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,KAAsB;IACxC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,QAAQ,CAAA;QACjB,KAAK,UAAU;YACb,OAAO,kBAAkB,CAAA;QAC3B,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAA;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAA;QAC3E,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;YAChC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACtE,CAAC;QACD,KAAK,MAAM;YACT,OAAO,WAAW,CAAA;QACpB,KAAK,KAAK;YACR,OAAO,UAAU,CAAA;QACnB,KAAK,QAAQ;YACX,OAAO,yBAAyB,CAAA;QAClC;YACE,uEAAuE;YACvE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAsB;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAA;IACpE,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,IAAI,MAAM;QAChE,CAAC,CAAC,MAAM,CAAE,MAA6B,CAAC,KAAK,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CACnB;SACA,GAAG,CAAC,KAAK,CAAC;SACV,IAAI,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAA;AACrE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,14 +6,16 @@
6
6
  * derived from what is declared here, and nothing is written twice.
7
7
  */
8
8
  export { defineCollection, validateCollectionSet } from './define-collection.js';
9
+ export { defineTaxonomy, validateTaxonomySet } from './define-taxonomy.js';
9
10
  export type { SchemaIssue } from './errors.js';
10
11
  export { schemaError } from './errors.js';
11
- export type { BlocksFieldOptions, MediaAcceptKind, MediaFieldOptions, NumberFieldOptions, RelationFieldOptions, SelectChoice, SelectFieldOptions, SlugFieldOptions, TextFieldOptions, } from './fields.js';
12
+ export type { BlocksFieldOptions, MediaAcceptKind, MediaFieldOptions, NumberFieldOptions, RelationFieldOptions, SelectChoice, SelectFieldOptions, SlugFieldOptions, TaxonomyFieldOptions, TextFieldOptions, } from './fields.js';
12
13
  export { f, MEDIA_ACCEPT_KINDS } from './fields.js';
13
- export type { SchemaDocument, SchemaDocumentAdmin, SchemaDocumentCollection, SchemaDocumentField, } from './generate-schema-json.js';
14
+ export type { SchemaDocument, SchemaDocumentAdmin, SchemaDocumentCollection, SchemaDocumentField, SchemaDocumentTaxonomy, } from './generate-schema-json.js';
14
15
  export { buildSchemaDocument, renderSchemaJson, SCHEMA_DOCUMENT_CONTRACT, } from './generate-schema-json.js';
15
16
  export { interfaceName, renderTypeDeclarations } from './generate-types.js';
16
17
  export { isUuidV7, newId, timestampOf } from './id.js';
18
+ export * from './links/index.js';
17
19
  export type { RichTextBlock, RichTextDecorator, RichTextDocument, RichTextListItem, RichTextMarkDefinition, RichTextMediaNode, RichTextNode, RichTextSpan, RichTextStyle, } from './rich-text.js';
18
20
  export { RICH_TEXT_DECORATORS, RICH_TEXT_LIST_ITEMS, RICH_TEXT_STYLES, richTextDocumentSchema, richTextNodeSchema, } from './rich-text.js';
19
21
  export * from './routing/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtD,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACnD,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtD,cAAc,kBAAkB,CAAA;AAChC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -6,11 +6,13 @@
6
6
  * derived from what is declared here, and nothing is written twice.
7
7
  */
8
8
  export { defineCollection, validateCollectionSet } from './define-collection.js';
9
+ export { defineTaxonomy, validateTaxonomySet } from './define-taxonomy.js';
9
10
  export { schemaError } from './errors.js';
10
11
  export { f, MEDIA_ACCEPT_KINDS } from './fields.js';
11
12
  export { buildSchemaDocument, renderSchemaJson, SCHEMA_DOCUMENT_CONTRACT, } from './generate-schema-json.js';
12
13
  export { interfaceName, renderTypeDeclarations } from './generate-types.js';
13
14
  export { isUuidV7, newId, timestampOf } from './id.js';
15
+ export * from './links/index.js';
14
16
  export { RICH_TEXT_DECORATORS, RICH_TEXT_LIST_ITEMS, RICH_TEXT_STYLES, richTextDocumentSchema, richTextNodeSchema, } from './rich-text.js';
15
17
  export * from './routing/index.js';
16
18
  export * from './scheduling/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAYzC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAOnD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAYtD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAazC,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAQnD,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtD,cAAc,kBAAkB,CAAA;AAYhC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,YAAY,CAAA;AAE1B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,iBAAiB,CAAA"}