@metaobjectsdev/metadata 0.24.0-rc.1 → 0.24.1

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 (144) hide show
  1. package/dist/attr-schema-validate.d.ts.map +1 -1
  2. package/dist/attr-schema-validate.js +17 -2
  3. package/dist/attr-schema-validate.js.map +1 -1
  4. package/dist/core/field/field-constants.d.ts +18 -5
  5. package/dist/core/field/field-constants.d.ts.map +1 -1
  6. package/dist/core/field/field-constants.js +21 -5
  7. package/dist/core/field/field-constants.js.map +1 -1
  8. package/dist/core/field/field-definition.embedded.d.ts.map +1 -1
  9. package/dist/core/field/field-definition.embedded.js +8 -3
  10. package/dist/core/field/field-definition.embedded.js.map +1 -1
  11. package/dist/core/field/validate-field-mutability.d.ts +22 -0
  12. package/dist/core/field/validate-field-mutability.d.ts.map +1 -0
  13. package/dist/core/field/validate-field-mutability.js +208 -0
  14. package/dist/core/field/validate-field-mutability.js.map +1 -0
  15. package/dist/core/identity/identity-constants.d.ts +12 -0
  16. package/dist/core/identity/identity-constants.d.ts.map +1 -1
  17. package/dist/core/identity/identity-constants.js +15 -0
  18. package/dist/core/identity/identity-constants.js.map +1 -1
  19. package/dist/core/identity/identity-definition.embedded.js +2 -2
  20. package/dist/core/identity/identity-definition.embedded.js.map +1 -1
  21. package/dist/core/index/index-definition.embedded.js +2 -2
  22. package/dist/core/index/index-definition.embedded.js.map +1 -1
  23. package/dist/core/object/object-definition.embedded.js +2 -2
  24. package/dist/core/object/object-definition.embedded.js.map +1 -1
  25. package/dist/core/requirement/meta-requirement.d.ts +1 -2
  26. package/dist/core/requirement/meta-requirement.d.ts.map +1 -1
  27. package/dist/core/requirement/meta-requirement.js +2 -6
  28. package/dist/core/requirement/meta-requirement.js.map +1 -1
  29. package/dist/core/requirement/requirement-constants.d.ts +3 -8
  30. package/dist/core/requirement/requirement-constants.d.ts.map +1 -1
  31. package/dist/core/requirement/requirement-constants.js +2 -9
  32. package/dist/core/requirement/requirement-constants.js.map +1 -1
  33. package/dist/core/requirement/requirement-definition.embedded.d.ts.map +1 -1
  34. package/dist/core/requirement/requirement-definition.embedded.js +8 -46
  35. package/dist/core/requirement/requirement-definition.embedded.js.map +1 -1
  36. package/dist/core/requirement/resolve-claim.d.ts +37 -0
  37. package/dist/core/requirement/resolve-claim.d.ts.map +1 -0
  38. package/dist/core/requirement/resolve-claim.js +83 -0
  39. package/dist/core/requirement/resolve-claim.js.map +1 -0
  40. package/dist/core/vocabulary-rewrite-yaml.d.ts +21 -0
  41. package/dist/core/vocabulary-rewrite-yaml.d.ts.map +1 -0
  42. package/dist/core/vocabulary-rewrite-yaml.js +245 -0
  43. package/dist/core/vocabulary-rewrite-yaml.js.map +1 -0
  44. package/dist/core-types.d.ts.map +1 -1
  45. package/dist/core-types.js +10 -10
  46. package/dist/core-types.js.map +1 -1
  47. package/dist/errors.d.ts +2 -2
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js +37 -4
  50. package/dist/errors.js.map +1 -1
  51. package/dist/index.d.ts +7 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +13 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/library/library-sources.d.ts +11 -0
  56. package/dist/library/library-sources.d.ts.map +1 -1
  57. package/dist/library/library-sources.js +13 -0
  58. package/dist/library/library-sources.js.map +1 -1
  59. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  60. package/dist/loader/meta-data-loader.js +14 -10
  61. package/dist/loader/meta-data-loader.js.map +1 -1
  62. package/dist/loader/validation-passes.d.ts +1 -0
  63. package/dist/loader/validation-passes.d.ts.map +1 -1
  64. package/dist/loader/validation-passes.js +263 -45
  65. package/dist/loader/validation-passes.js.map +1 -1
  66. package/dist/naming-refs.d.ts.map +1 -1
  67. package/dist/naming-refs.js +2 -3
  68. package/dist/naming-refs.js.map +1 -1
  69. package/dist/parser-core.d.ts.map +1 -1
  70. package/dist/parser-core.js +22 -5
  71. package/dist/parser-core.js.map +1 -1
  72. package/dist/persistence/origin/meta-origin.d.ts +0 -10
  73. package/dist/persistence/origin/meta-origin.d.ts.map +1 -1
  74. package/dist/persistence/origin/meta-origin.js +1 -15
  75. package/dist/persistence/origin/meta-origin.js.map +1 -1
  76. package/dist/persistence/origin/origin-constants.d.ts +2 -4
  77. package/dist/persistence/origin/origin-constants.d.ts.map +1 -1
  78. package/dist/persistence/origin/origin-constants.js +9 -7
  79. package/dist/persistence/origin/origin-constants.js.map +1 -1
  80. package/dist/persistence/origin/origin-definition.embedded.d.ts.map +1 -1
  81. package/dist/persistence/origin/origin-definition.embedded.js +5 -21
  82. package/dist/persistence/origin/origin-definition.embedded.js.map +1 -1
  83. package/dist/registry-manifest.d.ts +9 -4
  84. package/dist/registry-manifest.d.ts.map +1 -1
  85. package/dist/registry-manifest.js +9 -4
  86. package/dist/registry-manifest.js.map +1 -1
  87. package/dist/retired-vocabulary.d.ts +92 -0
  88. package/dist/retired-vocabulary.d.ts.map +1 -0
  89. package/dist/retired-vocabulary.js +204 -0
  90. package/dist/retired-vocabulary.js.map +1 -0
  91. package/dist/super-resolve.d.ts +33 -0
  92. package/dist/super-resolve.d.ts.map +1 -1
  93. package/dist/super-resolve.js +56 -1
  94. package/dist/super-resolve.js.map +1 -1
  95. package/dist/template/prompt-definition.embedded.js +1 -1
  96. package/dist/template/prompt-definition.embedded.js.map +1 -1
  97. package/dist/template/template-constants.d.ts +6 -0
  98. package/dist/template/template-constants.d.ts.map +1 -1
  99. package/dist/template/template-constants.js +24 -1
  100. package/dist/template/template-constants.js.map +1 -1
  101. package/dist/template/template-definition.embedded.d.ts.map +1 -1
  102. package/dist/template/template-definition.embedded.js +34 -21
  103. package/dist/template/template-definition.embedded.js.map +1 -1
  104. package/dist/vocabulary-rewrite.d.ts +33 -0
  105. package/dist/vocabulary-rewrite.d.ts.map +1 -0
  106. package/dist/vocabulary-rewrite.js +314 -0
  107. package/dist/vocabulary-rewrite.js.map +1 -0
  108. package/package.json +11 -1
  109. package/src/attr-schema-validate.ts +17 -2
  110. package/src/core/field/field-constants.ts +24 -5
  111. package/src/core/field/field-definition.embedded.ts +8 -3
  112. package/src/core/field/validate-field-mutability.ts +259 -0
  113. package/src/core/identity/identity-constants.ts +16 -0
  114. package/src/core/identity/identity-definition.embedded.ts +2 -2
  115. package/src/core/index/index-definition.embedded.ts +2 -2
  116. package/src/core/object/object-definition.embedded.ts +2 -2
  117. package/src/core/requirement/meta-requirement.ts +1 -7
  118. package/src/core/requirement/requirement-constants.ts +2 -9
  119. package/src/core/requirement/requirement-definition.embedded.ts +8 -46
  120. package/src/core/requirement/resolve-claim.ts +98 -0
  121. package/src/core/vocabulary-rewrite-yaml.ts +267 -0
  122. package/src/core-types.ts +9 -10
  123. package/src/errors.ts +37 -4
  124. package/src/index.ts +29 -1
  125. package/src/library/library-sources.ts +14 -0
  126. package/src/loader/meta-data-loader.ts +15 -10
  127. package/src/loader/validation-passes.ts +323 -50
  128. package/src/naming-refs.ts +1 -3
  129. package/src/parser-core.ts +27 -5
  130. package/src/persistence/origin/meta-origin.ts +0 -16
  131. package/src/persistence/origin/origin-constants.ts +9 -8
  132. package/src/persistence/origin/origin-definition.embedded.ts +5 -21
  133. package/src/registry-manifest.ts +9 -4
  134. package/src/retired-vocabulary.ts +280 -0
  135. package/src/super-resolve.ts +59 -1
  136. package/src/template/prompt-definition.embedded.ts +1 -1
  137. package/src/template/template-constants.ts +27 -1
  138. package/src/template/template-definition.embedded.ts +34 -21
  139. package/src/vocabulary-rewrite.ts +350 -0
  140. package/dist/core/field/validate-field-readonly.d.ts +0 -9
  141. package/dist/core/field/validate-field-readonly.d.ts.map +0 -1
  142. package/dist/core/field/validate-field-readonly.js +0 -128
  143. package/dist/core/field/validate-field-readonly.js.map +0 -1
  144. package/src/core/field/validate-field-readonly.ts +0 -154
@@ -1 +1 @@
1
- {"version":3,"file":"attr-schema-validate.d.ts","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,eAAe,CAAC;AAmB9D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EAKtB,MAAM,UAAQ,GACb,0BAA0B,CAQ5B"}
1
+ {"version":3,"file":"attr-schema-validate.d.ts","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,eAAe,CAAC;AAsB9D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EAKtB,MAAM,UAAQ,GACb,0BAA0B,CAQ5B"}
@@ -44,6 +44,9 @@ import { ParseError } from "./errors.js";
44
44
  import { childRuleMatches } from "./registry.js";
45
45
  import { TYPE_FIELD, TYPE_METADATA } from "./shared/base-types.js";
46
46
  import { ATTR_SUBTYPE_PROPERTIES } from "./core/attr/attr-constants.js";
47
+ // #337: turns "unknown X" into "retired in V — here is the migration". Changes no load
48
+ // outcome; retired vocabulary still fails with the same code.
49
+ import { retiredAttr, retiredAttrValue, retirementHint } from "./retired-vocabulary.js";
47
50
  import { FIELD_SUBTYPE_ENUM, FIELD_ATTR_VALUES, FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_DEFAULT, FIELD_ATTR_INT_VALUE_MAP, ENUM_MEMBER_PATTERN, } from "./core/field/field-constants.js";
48
51
  import { FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_VALUES, DB_COLUMN_TYPE_LEGAL_SUBTYPES, } from "./persistence/db/db-constants.js";
49
52
  // ---------------------------------------------------------------------------
@@ -119,8 +122,15 @@ function validateNode(node, registry, errors, reportedConflicts, strict) {
119
122
  if (inst.subType === ATTR_SUBTYPE_PROPERTIES)
120
123
  continue;
121
124
  if (!byName.has(inst.name)) {
125
+ // #337: if we RETIRED this name, say so. "Not declared by any registered
126
+ // provider" is true and reads as "your metadata is malformed", which sent one
127
+ // adopter to file a registration bug against a deliberate, documented breaking
128
+ // change. Unrecognised names still report generically — a typo is a typo.
129
+ const retired = retiredAttr(typeKey, inst.name);
122
130
  errors.push(new ParseError(`Unknown attribute '@${inst.name}' on ${nodeLabel(node)} — ` +
123
- `not declared by any registered provider for ${typeKey}`, { code: "ERR_UNKNOWN_ATTR", source: node.source }));
131
+ (retired !== undefined
132
+ ? retirementHint(retired)
133
+ : `not declared by any registered provider for ${typeKey}`), { code: "ERR_UNKNOWN_ATTR", source: node.source }));
124
134
  }
125
135
  }
126
136
  }
@@ -223,9 +233,14 @@ function validateNode(node, registry, errors, reportedConflicts, strict) {
223
233
  ? []
224
234
  : [value];
225
235
  for (const bad of offenders) {
236
+ // #337: a member we REMOVED reads very differently from a member that never
237
+ // existed. `@status: abandoned` was valid one release ago, so "not one of the
238
+ // allowed values" invites the reader to conclude the enum is broken.
239
+ const retiredValue = retiredAttrValue(typeKey, inst.name, bad);
226
240
  errors.push(new ParseError(`${nodeLabel(node)} attribute '@${inst.name}' has value ` +
227
241
  `'${String(bad)}' which is not one of the allowed values: ` +
228
- `${allowed.map((v) => String(v)).join(", ")}`, { code: "ERR_BAD_ATTR_VALUE", source: node.source }));
242
+ `${allowed.map((v) => String(v)).join(", ")}` +
243
+ (retiredValue !== undefined ? ` — ${retirementHint(retiredValue)}` : ""), { code: "ERR_BAD_ATTR_VALUE", source: node.source }));
229
244
  }
230
245
  }
231
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attr-schema-validate.js","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attr-schema-validate.js","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"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"}
@@ -30,11 +30,24 @@ export declare const FIELD_SUBTYPES: readonly ["base", "string", "int", "long",
30
30
  export type FieldSubType = (typeof FIELD_SUBTYPES)[number];
31
31
  export declare const FIELD_ATTR_REQUIRED = "required";
32
32
  export declare const FIELD_ATTR_UNIQUE = "unique";
33
- /** FR-013: when true, the field is read-only from the application's perspective.
34
- * Codegen emits no setter; persistence skips the column on INSERT/UPDATE; Zod
35
- * create/update variants omit the field. Default false (writable). See ADR-0013
36
- * layer split — this is logical (no DB-introspection round-trip). */
37
- export declare const FIELD_ATTR_READ_ONLY = "readOnly";
33
+ /** FR-037 R1: who may write this field, and when. One axis, three mutually
34
+ * exclusive modes, so the illegal pair (`readOnly` + `writeOnce`) is
35
+ * unrepresentable and inheritance has a total order. Absent ⇒ `readWrite`.
36
+ * See ADR-0013 layer split — this is logical (no DB-introspection round-trip). */
37
+ export declare const FIELD_ATTR_MUTABILITY = "mutability";
38
+ /** `readWrite` — the caller may set it on create and change it on update. */
39
+ export declare const MUTABILITY_READ_WRITE = "readWrite";
40
+ /** `writeOnce` — set on create, then excluded from the update shape. A value
41
+ * presented on PATCH is IGNORED, not rejected (the uniform behaviour of every
42
+ * excluded-settable-set key, and the generated edit form submits every field). */
43
+ export declare const MUTABILITY_WRITE_ONCE = "writeOnce";
44
+ /** `readOnly` — nobody writes it: no setter, skipped on INSERT/UPDATE, omitted
45
+ * from every input variant. Populated by the DB, replication, or another owner. */
46
+ export declare const MUTABILITY_READ_ONLY = "readOnly";
47
+ /** Declaration order IS the tightening order — index in this array is the mode's
48
+ * rank, so "may only tighten" is an index comparison rather than a lookup table. */
49
+ export declare const MUTABILITY_MODES: readonly ["readWrite", "writeOnce", "readOnly"];
50
+ export type MutabilityMode = (typeof MUTABILITY_MODES)[number];
38
51
  export declare const FIELD_ATTR_DEFAULT = "default";
39
52
  export declare const FIELD_ATTR_MAX_LENGTH = "maxLength";
40
53
  /** ADR-0036/0037 Wave 3: a closed validation format for a plain `field.string`
@@ -1 +1 @@
1
- {"version":3,"file":"field-constants.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-constants.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-constants.ts"],"names":[],"mappings":"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"}
@@ -56,11 +56,27 @@ export const FIELD_SUBTYPES = [
56
56
  // ---------------------------------------------------------------------------
57
57
  export const FIELD_ATTR_REQUIRED = "required";
58
58
  export const FIELD_ATTR_UNIQUE = "unique";
59
- /** FR-013: when true, the field is read-only from the application's perspective.
60
- * Codegen emits no setter; persistence skips the column on INSERT/UPDATE; Zod
61
- * create/update variants omit the field. Default false (writable). See ADR-0013
62
- * layer split — this is logical (no DB-introspection round-trip). */
63
- export const FIELD_ATTR_READ_ONLY = "readOnly";
59
+ /** FR-037 R1: who may write this field, and when. One axis, three mutually
60
+ * exclusive modes, so the illegal pair (`readOnly` + `writeOnce`) is
61
+ * unrepresentable and inheritance has a total order. Absent ⇒ `readWrite`.
62
+ * See ADR-0013 layer split — this is logical (no DB-introspection round-trip). */
63
+ export const FIELD_ATTR_MUTABILITY = "mutability";
64
+ /** `readWrite` — the caller may set it on create and change it on update. */
65
+ export const MUTABILITY_READ_WRITE = "readWrite";
66
+ /** `writeOnce` — set on create, then excluded from the update shape. A value
67
+ * presented on PATCH is IGNORED, not rejected (the uniform behaviour of every
68
+ * excluded-settable-set key, and the generated edit form submits every field). */
69
+ export const MUTABILITY_WRITE_ONCE = "writeOnce";
70
+ /** `readOnly` — nobody writes it: no setter, skipped on INSERT/UPDATE, omitted
71
+ * from every input variant. Populated by the DB, replication, or another owner. */
72
+ export const MUTABILITY_READ_ONLY = "readOnly";
73
+ /** Declaration order IS the tightening order — index in this array is the mode's
74
+ * rank, so "may only tighten" is an index comparison rather than a lookup table. */
75
+ export const MUTABILITY_MODES = [
76
+ MUTABILITY_READ_WRITE,
77
+ MUTABILITY_WRITE_ONCE,
78
+ MUTABILITY_READ_ONLY,
79
+ ];
64
80
  export const FIELD_ATTR_DEFAULT = "default";
65
81
  export const FIELD_ATTR_MAX_LENGTH = "maxLength";
66
82
  /** ADR-0036/0037 Wave 3: a closed validation format for a plain `field.string`
@@ -1 +1 @@
1
- {"version":3,"file":"field-constants.js","sourceRoot":"","sources":["../../../src/core/field/field-constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-constants.js","sourceRoot":"","sources":["../../../src/core/field/field-constants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,gBAAgB,EAAE,kBAyU9B,CAAC"}
1
+ {"version":3,"file":"field-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,gBAAgB,EAAE,kBA8U9B,CAAC"}
@@ -38,11 +38,16 @@ export const FIELD_DEFINITION = {
38
38
  },
39
39
  {
40
40
  "type": "attr",
41
- "subType": "boolean",
42
- "name": "readOnly",
41
+ "subType": "string",
42
+ "name": "mutability",
43
43
  "min": 0,
44
44
  "max": 1,
45
- "description": "FR-013: when true, the field is read-only — codegen emits no setter / writable property, the persistence layer skips the column on INSERT/UPDATE, and Zod/Pydantic/class-validator schemas mark it read-only on input variants. The value is populated by the database (computed column, default expression, trigger), by replication, or by another external owner."
45
+ "allowedValues": [
46
+ "readWrite",
47
+ "writeOnce",
48
+ "readOnly"
49
+ ],
50
+ "description": "FR-037 R1: who may write this field, and when. 'readWrite' (the default when absent) — the caller may set it on create and change it on update. 'writeOnce' — the caller sets it on create; it is excluded from the update shape thereafter, so a value presented on PATCH is ignored rather than rejected. 'readOnly' — nobody writes it: codegen emits no setter / writable property, the persistence layer skips the column on INSERT/UPDATE, and Zod/Pydantic/class-validator schemas omit it from input variants; the value is populated by the database (computed column, default expression, trigger), by replication, or by another external owner. The three are mutually exclusive modes of ONE axis — who may write, and when — so the illegal pair is unrepresentable and inheritance has a total order: a subtype may TIGHTEN an inherited mode (readWrite < writeOnce < readOnly) and never loosen it (ERR_MUTABILITY_DOWNGRADE). Pairing a non-readWrite mode with @autoSet is ERR_MUTABILITY_AUTOSET_CONFLICT: @autoSet already says the SERVER supplies the value, which is a different axis from who may write it."
46
51
  },
47
52
  {
48
53
  "type": "attr",
@@ -1 +1 @@
1
- {"version":3,"file":"field-definition.embedded.js","sourceRoot":"","sources":["../../../src/core/field/field-definition.embedded.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-definition.embedded.js","sourceRoot":"","sources":["../../../src/core/field/field-definition.embedded.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { MetaData } from "../../shared/meta-data.js";
2
+ import { ParseError } from "../../errors.js";
3
+ import type { LoaderWarning } from "../../source.js";
4
+ import { type MutabilityMode } from "./field-constants.js";
5
+ export interface FieldMutabilityValidationResult {
6
+ errors: ParseError[];
7
+ warnings: LoaderWarning[];
8
+ }
9
+ /**
10
+ * A field's EFFECTIVE mutability mode — resolving (ADR-0039), so a concrete
11
+ * field inheriting from an abstract parent sees the parent's declaration.
12
+ * Absent ⇒ `readWrite`. THE accessor every consumer should use.
13
+ */
14
+ export declare function fieldMutability(field: MetaData): MutabilityMode;
15
+ /** True when nothing may write this field — the `@readOnly: true` of the old
16
+ * vocabulary. Does NOT cover derived (origin-bearing) fields; callers that
17
+ * need both compose this with `isDerived()`, exactly as before. */
18
+ export declare function isReadOnlyMutability(field: MetaData): boolean;
19
+ /** True when the field is settable on create but excluded from the update shape. */
20
+ export declare function isWriteOnceMutability(field: MetaData): boolean;
21
+ export declare function validateFieldMutability(root: MetaData): FieldMutabilityValidationResult;
22
+ //# sourceMappingURL=validate-field-mutability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-field-mutability.d.ts","sourceRoot":"","sources":["../../../src/core/field/validate-field-mutability.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAcrD,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,cAAc,CAG/D;AAED;;oEAEoE;AACpE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAE7D;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAE9D;AAYD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,+BAA+B,CA+GvF"}
@@ -0,0 +1,208 @@
1
+ // Validation pass: field-level @mutability cross-attribute rules (FR-037 R1).
2
+ //
3
+ // @mutability is ONE axis — who may write this field, and when — with three
4
+ // mutually exclusive modes, `readWrite` (default) < `writeOnce` < `readOnly`.
5
+ // Modelling it as one enum rather than two booleans is what makes the illegal
6
+ // pair unrepresentable and gives inheritance a total order.
7
+ //
8
+ // Codes:
9
+ // ERR_MUTABILITY_AUTOSET_CONFLICT — @autoSet on a field whose @mutability is
10
+ // `writeOnce` or `readOnly`. @autoSet already says the SERVER supplies the
11
+ // value; that is a different axis from who may write it, and the pair says
12
+ // two contradictory things about the same column. The boolean era left
13
+ // readOnly × @autoSet representable but UNVALIDATED — the enum cut closes
14
+ // both arms with one rule.
15
+ // ERR_MUTABILITY_DOWNGRADE — a subtype LOOSENS an inherited mode. Replaces
16
+ // ERR_READONLY_DOWNGRADE: the rule now spans three modes, so a code named
17
+ // READONLY would misdescribe a `writeOnce` → `readWrite` loosening.
18
+ // ERR_READONLY_ASSIGNED_PRIMARY — KEEPS ITS NAME: the condition is genuinely
19
+ // readOnly-specific. Note the asymmetry that justifies the enum — `writeOnce`
20
+ // on an assigned primary key is LEGAL, and indeed the natural declaration:
21
+ // the caller supplies the key on create and can never change it after.
22
+ // WARN_MUTABILITY_VALUE_OBJECT — a non-default @mutability on a field child of
23
+ // object.value. A value has no persistence semantics, so the contract is
24
+ // advisory (codegen may still use it for record/struct treatment).
25
+ // WARN_MUTABILITY_READONLY_HOST — `writeOnce` on a host nothing writes anyway
26
+ // (a projection, or a read-only source @kind). Benign, not an error: the
27
+ // declaration is merely inert, and a projection legitimately `extends` an
28
+ // entity whose field carries it.
29
+ import { ParseError } from "../../errors.js";
30
+ import { TYPE_OBJECT, TYPE_FIELD, TYPE_IDENTITY, TYPE_SOURCE, } from "../../shared/base-types.js";
31
+ import { OBJECT_SUBTYPE_VALUE, OBJECT_SUBTYPE_PROJECTION } from "../object/object-constants.js";
32
+ import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_FIELDS, GENERATION_ASSIGNED, } from "../identity/identity-constants.js";
33
+ import { FIELD_ATTR_MUTABILITY, FIELD_ATTR_AUTO_SET, MUTABILITY_READ_WRITE, MUTABILITY_WRITE_ONCE, MUTABILITY_READ_ONLY, MUTABILITY_MODES, } from "./field-constants.js";
34
+ import { isReadOnlySource } from "../../shared/node-guards.js";
35
+ /**
36
+ * A field's EFFECTIVE mutability mode — resolving (ADR-0039), so a concrete
37
+ * field inheriting from an abstract parent sees the parent's declaration.
38
+ * Absent ⇒ `readWrite`. THE accessor every consumer should use.
39
+ */
40
+ export function fieldMutability(field) {
41
+ const v = field.attr(FIELD_ATTR_MUTABILITY);
42
+ return isMutabilityMode(v) ? v : MUTABILITY_READ_WRITE;
43
+ }
44
+ /** True when nothing may write this field — the `@readOnly: true` of the old
45
+ * vocabulary. Does NOT cover derived (origin-bearing) fields; callers that
46
+ * need both compose this with `isDerived()`, exactly as before. */
47
+ export function isReadOnlyMutability(field) {
48
+ return fieldMutability(field) === MUTABILITY_READ_ONLY;
49
+ }
50
+ /** True when the field is settable on create but excluded from the update shape. */
51
+ export function isWriteOnceMutability(field) {
52
+ return fieldMutability(field) === MUTABILITY_WRITE_ONCE;
53
+ }
54
+ function isMutabilityMode(v) {
55
+ return typeof v === "string" && MUTABILITY_MODES.includes(v);
56
+ }
57
+ /** The mode's rank on the tightening order. Declaration order IS the order, so
58
+ * "may only tighten" is an index comparison, not a lookup table. */
59
+ function rank(mode) {
60
+ return MUTABILITY_MODES.indexOf(mode);
61
+ }
62
+ export function validateFieldMutability(root) {
63
+ const errors = [];
64
+ const warnings = [];
65
+ // ADR-0039: root has no super; children()==ownChildren() but resolving is the default.
66
+ for (const obj of root.children().filter((c) => c.type === TYPE_OBJECT)) {
67
+ const isValueObject = obj.subType === OBJECT_SUBTYPE_VALUE;
68
+ const hostNeverWritten = isWriteHostReadOnly(obj);
69
+ for (const ownField of obj.ownChildren().filter((c) => c.type === TYPE_FIELD)) {
70
+ // ADR-0039: own — these are own-vs-super comparisons by design. `ownMode`
71
+ // must see what THIS node declared: resolving would mask a downgrade, and
72
+ // would also warn on a value that merely inherited the mode.
73
+ const ownDeclared = ownField.ownAttr(FIELD_ATTR_MUTABILITY);
74
+ const ownMode = isMutabilityMode(ownDeclared) ? ownDeclared : undefined;
75
+ // 1) WARN_MUTABILITY_VALUE_OBJECT — a non-default mode declared on a value's
76
+ // own field. Advisory: a value has no persistence semantics.
77
+ if (isValueObject && ownMode !== undefined && ownMode !== MUTABILITY_READ_WRITE) {
78
+ warnings.push({
79
+ code: "WARN_MUTABILITY_VALUE_OBJECT",
80
+ message: `field "${ownField.name}" on object.value "${obj.name}" declares ` +
81
+ `@mutability: "${ownMode}"; value objects have no persistence semantics, so the ` +
82
+ `write contract is advisory (codegen may use it for record/struct treatment).`,
83
+ source: ownField.source,
84
+ });
85
+ }
86
+ // 2) ERR_MUTABILITY_DOWNGRADE — a subtype may TIGHTEN an inherited mode,
87
+ // never loosen it. Rank comparison over the declaration order.
88
+ if (ownMode !== undefined) {
89
+ const inherited = inheritedField(obj, ownField.name);
90
+ if (inherited !== undefined) {
91
+ const inheritedMode = declaredMode(inherited);
92
+ if (inheritedMode !== undefined && rank(ownMode) < rank(inheritedMode)) {
93
+ errors.push(new ParseError(`field "${ownField.name}" on "${obj.name}" sets @mutability: "${ownMode}", but ` +
94
+ `its extends-chain parent declares "${inheritedMode}". A subtype may only ` +
95
+ `TIGHTEN an inherited mode (${MUTABILITY_MODES.join(" < ")}), never loosen it ` +
96
+ `(FR-037 R1).`, { code: "ERR_MUTABILITY_DOWNGRADE", source: ownField.source }));
97
+ }
98
+ }
99
+ }
100
+ }
101
+ // The remaining rules read the EFFECTIVE tree — an inherited mode is just as
102
+ // binding as a declared one for "is this combination coherent?".
103
+ for (const field of obj.children().filter((c) => c.type === TYPE_FIELD)) {
104
+ const mode = fieldMutability(field);
105
+ // 3) ERR_MUTABILITY_AUTOSET_CONFLICT — @autoSet with a non-readWrite mode.
106
+ // Both arms: readOnly (representable-but-unvalidated in the boolean era)
107
+ // and writeOnce (new). @autoSet means the SERVER supplies the value, so
108
+ // constraining who ELSE may write it is contradictory, not additive.
109
+ if (mode !== MUTABILITY_READ_WRITE && field.attr(FIELD_ATTR_AUTO_SET) !== undefined) {
110
+ errors.push(new ParseError(`field "${field.name}" on "${obj.name}" declares @autoSet together with ` +
111
+ `@mutability: "${mode}". @autoSet already means the SERVER supplies the value; ` +
112
+ `@mutability says who may write it. Drop @mutability (an @autoSet field is ` +
113
+ `already excluded from every input shape) or drop @autoSet (FR-037 R1).`, { code: "ERR_MUTABILITY_AUTOSET_CONFLICT", source: field.source }));
114
+ }
115
+ // 5) WARN_MUTABILITY_READONLY_HOST — writeOnce on a host nothing writes.
116
+ // Benign: the declaration is inert, not wrong, and a projection may
117
+ // legitimately inherit it from the entity it extends.
118
+ if (mode === MUTABILITY_WRITE_ONCE && hostNeverWritten) {
119
+ warnings.push({
120
+ code: "WARN_MUTABILITY_READONLY_HOST",
121
+ message: `field "${field.name}" on "${obj.name}" declares @mutability: "writeOnce", but its ` +
122
+ `host is never written (a projection, or a read-only source @kind). The declaration ` +
123
+ `is inert — nothing creates a row here for it to be settable on.`,
124
+ source: field.source,
125
+ });
126
+ }
127
+ }
128
+ // 4) ERR_READONLY_ASSIGNED_PRIMARY — readOnly on an ASSIGNED primary key.
129
+ // Note what is NOT here: `writeOnce` on an assigned key is legal, and is
130
+ // the natural declaration for one. That asymmetry is why this code keeps
131
+ // its readOnly-specific name.
132
+ if (!isValueObject) {
133
+ const primaryAssignedFields = primaryAssignedFieldNames(obj);
134
+ if (primaryAssignedFields.size > 0) {
135
+ for (const field of obj.children().filter((c) => c.type === TYPE_FIELD)) {
136
+ if (!primaryAssignedFields.has(field.name))
137
+ continue;
138
+ if (fieldMutability(field) !== MUTABILITY_READ_ONLY)
139
+ continue;
140
+ errors.push(new ParseError(`field "${field.name}" on "${obj.name}" is @mutability: "readOnly" AND the target ` +
141
+ `of identity.primary with @generation: "assigned"; the application has no path ` +
142
+ `to populate the identity value. Use @mutability: "writeOnce" if the intent is ` +
143
+ `"set once on create, never changed" (FR-037 R1).`, { code: "ERR_READONLY_ASSIGNED_PRIMARY", source: field.source }));
144
+ }
145
+ }
146
+ }
147
+ }
148
+ return { errors, warnings };
149
+ }
150
+ /** The mode a node DECLARED (own), or undefined when it declared none. */
151
+ function declaredMode(field) {
152
+ // ADR-0039: own — the downgrade rule needs the EXPLICIT mode on the DECLARING
153
+ // node; resolving would report the child's own value back at itself.
154
+ const v = field.ownAttr(FIELD_ATTR_MUTABILITY);
155
+ return isMutabilityMode(v) ? v : undefined;
156
+ }
157
+ /** True when no write path reaches this object: an object.projection, or an
158
+ * object whose every source is a read-only `@kind`. */
159
+ function isWriteHostReadOnly(obj) {
160
+ if (obj.subType === OBJECT_SUBTYPE_PROJECTION)
161
+ return true;
162
+ // ADR-0039: resolving — a source may be inherited via extends.
163
+ const sources = obj.children().filter((c) => c.type === TYPE_SOURCE);
164
+ if (sources.length === 0)
165
+ return false;
166
+ return sources.every((s) => isReadOnlySource(s));
167
+ }
168
+ /** Walk the extends chain looking for a field with the same name; return its
169
+ * declaring node (own attrs preserved) if found. */
170
+ function inheritedField(obj, name) {
171
+ let cursor = obj.superResolved;
172
+ while (cursor !== undefined) {
173
+ // ADR-0039: own — super-chain walk reading each level's OWN fields to find the
174
+ // declaring node (the comparison needs the declaring node's own mode).
175
+ const f = cursor.ownChildren().find((c) => c.type === TYPE_FIELD && c.name === name);
176
+ if (f !== undefined)
177
+ return f;
178
+ cursor = cursor.superResolved;
179
+ }
180
+ return undefined;
181
+ }
182
+ /** Names of fields participating in any identity.primary with @generation:
183
+ * "assigned" on `obj` or its extends chain. */
184
+ function primaryAssignedFieldNames(obj) {
185
+ const out = new Set();
186
+ for (const id of obj.children()) {
187
+ if (id.type !== TYPE_IDENTITY)
188
+ continue;
189
+ if (id.subType !== IDENTITY_SUBTYPE_PRIMARY)
190
+ continue;
191
+ // ADR-0039: resolving — an identity may inherit @generation / @fields via extends.
192
+ const gen = id.attr(IDENTITY_ATTR_GENERATION);
193
+ if (gen !== GENERATION_ASSIGNED)
194
+ continue;
195
+ const fields = id.attr(IDENTITY_ATTR_FIELDS);
196
+ if (Array.isArray(fields)) {
197
+ for (const fName of fields) {
198
+ if (typeof fName === "string")
199
+ out.add(fName);
200
+ }
201
+ }
202
+ else if (typeof fields === "string") {
203
+ out.add(fields);
204
+ }
205
+ }
206
+ return out;
207
+ }
208
+ //# sourceMappingURL=validate-field-mutability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-field-mutability.js","sourceRoot":"","sources":["../../../src/core/field/validate-field-mutability.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,18 @@ export declare const IDENTITY_SUBTYPE_SECONDARY = "secondary";
3
3
  export declare const IDENTITY_SUBTYPE_REFERENCE = "reference";
4
4
  export declare const IDENTITY_SUBTYPES: readonly ["primary", "secondary", "reference"];
5
5
  export type IdentitySubType = (typeof IDENTITY_SUBTYPES)[number];
6
+ /**
7
+ * The identity subtypes that denote a UNIQUE key.
8
+ *
9
+ * ADR-0040 put uniqueness in the TYPE: `identity.primary` and `identity.secondary` are both
10
+ * unique keys (secondary IS the unique alternate key — `@unique` was removed from it
11
+ * precisely because the subtype already says so), while `identity.reference` is a foreign
12
+ * key and carries no uniqueness at all.
13
+ *
14
+ * Named here because more than one rule needs "is this a candidate key?" and answering it
15
+ * by listing subtypes at each site is how the two drift apart.
16
+ */
17
+ export declare const IDENTITY_UNIQUE_KEY_SUBTYPES: readonly string[];
6
18
  export declare const IDENTITY_ATTR_FIELDS = "fields";
7
19
  export declare const IDENTITY_ATTR_GENERATION = "generation";
8
20
  /** Identity-reference attr: target entity (bare or dotted `Entity.field` / `Entity.fA,fB`). */
@@ -1 +1 @@
1
- {"version":3,"file":"identity-constants.d.ts","sourceRoot":"","sources":["../../../src/core/identity/identity-constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,0BAA0B,cAAc,CAAC;AACtD,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD,eAAO,MAAM,iBAAiB,gDAIpB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMjE,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,+FAA+F;AAC/F,eAAO,MAAM,kCAAkC,eAAe,CAAC;AAC/D,6HAA6H;AAC7H,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,0GAA0G;AAC1G,eAAO,MAAM,iCAAiC,aAAa,CAAC;AAC5D,uGAAuG;AACvG,eAAO,MAAM,iCAAiC,aAAa,CAAC;AAU5D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,eAAO,MAAM,iBAAiB,4CAIpB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"identity-constants.d.ts","sourceRoot":"","sources":["../../../src/core/identity/identity-constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,0BAA0B,cAAc,CAAC;AACtD,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD,eAAO,MAAM,iBAAiB,gDAIpB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAGzD,CAAC;AAMF,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,+FAA+F;AAC/F,eAAO,MAAM,kCAAkC,eAAe,CAAC;AAC/D,6HAA6H;AAC7H,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,0GAA0G;AAC1G,eAAO,MAAM,iCAAiC,aAAa,CAAC;AAC5D,uGAAuG;AACvG,eAAO,MAAM,iCAAiC,aAAa,CAAC;AAU5D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,eAAO,MAAM,iBAAiB,4CAIpB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -10,6 +10,21 @@ export const IDENTITY_SUBTYPES = [
10
10
  IDENTITY_SUBTYPE_SECONDARY,
11
11
  IDENTITY_SUBTYPE_REFERENCE,
12
12
  ];
13
+ /**
14
+ * The identity subtypes that denote a UNIQUE key.
15
+ *
16
+ * ADR-0040 put uniqueness in the TYPE: `identity.primary` and `identity.secondary` are both
17
+ * unique keys (secondary IS the unique alternate key — `@unique` was removed from it
18
+ * precisely because the subtype already says so), while `identity.reference` is a foreign
19
+ * key and carries no uniqueness at all.
20
+ *
21
+ * Named here because more than one rule needs "is this a candidate key?" and answering it
22
+ * by listing subtypes at each site is how the two drift apart.
23
+ */
24
+ export const IDENTITY_UNIQUE_KEY_SUBTYPES = [
25
+ IDENTITY_SUBTYPE_PRIMARY,
26
+ IDENTITY_SUBTYPE_SECONDARY,
27
+ ];
13
28
  // ---------------------------------------------------------------------------
14
29
  // Identity attrs
15
30
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"identity-constants.js","sourceRoot":"","sources":["../../../src/core/identity/identity-constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,8EAA8E;AAC9E,4FAA4F;AAC5F,8EAA8E;AAE9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;AACtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;CAClB,CAAC;AAGX,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;AACrD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kCAAkC,GAAG,YAAY,CAAC;AAC/D,6HAA6H;AAC7H,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AACzD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAC5D,uGAAuG;AACvG,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAE5D,iFAAiF;AACjF,iFAAiF;AACjF,kEAAkE;AAElE,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,oBAAoB;IACpB,eAAe;IACf,mBAAmB;CACX,CAAC"}
1
+ {"version":3,"file":"identity-constants.js","sourceRoot":"","sources":["../../../src/core/identity/identity-constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,8EAA8E;AAC9E,4FAA4F;AAC5F,8EAA8E;AAE9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAClD,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;AACtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;CAClB,CAAC;AAGX;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB;IAC7D,wBAAwB;IACxB,0BAA0B;CAC3B,CAAC;AAEF,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;AACrD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kCAAkC,GAAG,YAAY,CAAC;AAC/D,6HAA6H;AAC7H,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AACzD,0GAA0G;AAC1G,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAC5D,uGAAuG;AACvG,MAAM,CAAC,MAAM,iCAAiC,GAAG,UAAU,CAAC;AAE5D,iFAAiF;AACjF,iFAAiF;AACjF,kEAAkE;AAElE,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,oBAAoB;IACpB,eAAe;IACf,mBAAmB;CACX,CAAC"}
@@ -44,9 +44,9 @@ export const IDENTITY_DEFINITION = {
44
44
  "subType": "string",
45
45
  "name": "fields",
46
46
  "isArray": true,
47
- "min": 1,
47
+ "min": 0,
48
48
  "max": 1,
49
- "description": "The field name(s) composing this identity. Single-element for a simple unique index, multiple for a composite unique constraint."
49
+ "description": "The field name(s) composing this identity. Single-element for a simple unique index, multiple for a composite unique constraint. Required UNLESS @expr is present — a unique index keys off plain columns (@fields) or a key expression (@expr), never both; declaring both is ERR_INVALID_INDEX."
50
50
  }
51
51
  ]
52
52
  },