@metaobjectsdev/metadata 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/attr-schema-validate.d.ts.map +1 -1
  2. package/dist/attr-schema-validate.js +49 -1
  3. package/dist/attr-schema-validate.js.map +1 -1
  4. package/dist/core/field/field-constants.d.ts +27 -2
  5. package/dist/core/field/field-constants.d.ts.map +1 -1
  6. package/dist/core/field/field-constants.js +30 -2
  7. package/dist/core/field/field-constants.js.map +1 -1
  8. package/dist/core/field/field-schema.d.ts +9 -1
  9. package/dist/core/field/field-schema.d.ts.map +1 -1
  10. package/dist/core/field/field-schema.js +34 -3
  11. package/dist/core/field/field-schema.js.map +1 -1
  12. package/dist/core/field/meta-field.d.ts +10 -0
  13. package/dist/core/field/meta-field.d.ts.map +1 -1
  14. package/dist/core/field/meta-field.js +36 -1
  15. package/dist/core/field/meta-field.js.map +1 -1
  16. package/dist/core/field/validate-field-readonly.d.ts +9 -0
  17. package/dist/core/field/validate-field-readonly.d.ts.map +1 -0
  18. package/dist/core/field/validate-field-readonly.js +116 -0
  19. package/dist/core/field/validate-field-readonly.js.map +1 -0
  20. package/dist/core/object/meta-object-aware.d.ts +11 -0
  21. package/dist/core/object/meta-object-aware.d.ts.map +1 -0
  22. package/dist/core/object/meta-object-aware.js +15 -0
  23. package/dist/core/object/meta-object-aware.js.map +1 -0
  24. package/dist/core/object/meta-object.d.ts +21 -0
  25. package/dist/core/object/meta-object.d.ts.map +1 -1
  26. package/dist/core/object/meta-object.js +43 -2
  27. package/dist/core/object/meta-object.js.map +1 -1
  28. package/dist/core/object/object-class-registry.d.ts +22 -0
  29. package/dist/core/object/object-class-registry.d.ts.map +1 -0
  30. package/dist/core/object/object-class-registry.js +38 -0
  31. package/dist/core/object/object-class-registry.js.map +1 -0
  32. package/dist/core/object/object-constants.d.ts +7 -0
  33. package/dist/core/object/object-constants.d.ts.map +1 -1
  34. package/dist/core/object/object-constants.js +14 -0
  35. package/dist/core/object/object-constants.js.map +1 -1
  36. package/dist/core/object/object-schema.d.ts.map +1 -1
  37. package/dist/core/object/object-schema.js +24 -1
  38. package/dist/core/object/object-schema.js.map +1 -1
  39. package/dist/core/object/validate-discriminator.d.ts +4 -0
  40. package/dist/core/object/validate-discriminator.d.ts.map +1 -0
  41. package/dist/core/object/validate-discriminator.js +145 -0
  42. package/dist/core/object/validate-discriminator.js.map +1 -0
  43. package/dist/core/object/value-object.d.ts +23 -0
  44. package/dist/core/object/value-object.d.ts.map +1 -0
  45. package/dist/core/object/value-object.js +51 -0
  46. package/dist/core/object/value-object.js.map +1 -0
  47. package/dist/core/query/query-constants.d.ts.map +1 -1
  48. package/dist/core/query/query-constants.js +4 -0
  49. package/dist/core/query/query-constants.js.map +1 -1
  50. package/dist/core-types.d.ts.map +1 -1
  51. package/dist/core-types.js +16 -4
  52. package/dist/core-types.js.map +1 -1
  53. package/dist/errors.d.ts +2 -2
  54. package/dist/errors.d.ts.map +1 -1
  55. package/dist/errors.js +23 -0
  56. package/dist/errors.js.map +1 -1
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  62. package/dist/loader/meta-data-loader.js +26 -1
  63. package/dist/loader/meta-data-loader.js.map +1 -1
  64. package/dist/loader/validation-passes.d.ts +1 -0
  65. package/dist/loader/validation-passes.d.ts.map +1 -1
  66. package/dist/loader/validation-passes.js +122 -2
  67. package/dist/loader/validation-passes.js.map +1 -1
  68. package/dist/naming.d.ts.map +1 -1
  69. package/dist/naming.js +7 -6
  70. package/dist/naming.js.map +1 -1
  71. package/dist/persistence/db/db-constants.d.ts +23 -0
  72. package/dist/persistence/db/db-constants.d.ts.map +1 -1
  73. package/dist/persistence/db/db-constants.js +31 -0
  74. package/dist/persistence/db/db-constants.js.map +1 -1
  75. package/dist/persistence/db/db-provider.js +3 -3
  76. package/dist/persistence/db/db-provider.js.map +1 -1
  77. package/dist/persistence/db/db-schema.d.ts +8 -0
  78. package/dist/persistence/db/db-schema.d.ts.map +1 -1
  79. package/dist/persistence/db/db-schema.js +17 -1
  80. package/dist/persistence/db/db-schema.js.map +1 -1
  81. package/dist/persistence/source/meta-source.d.ts +15 -1
  82. package/dist/persistence/source/meta-source.d.ts.map +1 -1
  83. package/dist/persistence/source/meta-source.js +55 -3
  84. package/dist/persistence/source/meta-source.js.map +1 -1
  85. package/dist/persistence/source/source-constants.d.ts +20 -1
  86. package/dist/persistence/source/source-constants.d.ts.map +1 -1
  87. package/dist/persistence/source/source-constants.js +36 -1
  88. package/dist/persistence/source/source-constants.js.map +1 -1
  89. package/dist/persistence/source/source-schema.d.ts.map +1 -1
  90. package/dist/persistence/source/source-schema.js +65 -4
  91. package/dist/persistence/source/source-schema.js.map +1 -1
  92. package/dist/persistence/source/validate-source-parameter-ref.d.ts +4 -0
  93. package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -0
  94. package/dist/persistence/source/validate-source-parameter-ref.js +96 -0
  95. package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -0
  96. package/dist/persistence/source/validate-source-physical-names.d.ts +9 -0
  97. package/dist/persistence/source/validate-source-physical-names.d.ts.map +1 -0
  98. package/dist/persistence/source/validate-source-physical-names.js +79 -0
  99. package/dist/persistence/source/validate-source-physical-names.js.map +1 -0
  100. package/dist/serializer-json.d.ts.map +1 -1
  101. package/dist/serializer-json.js +43 -0
  102. package/dist/serializer-json.js.map +1 -1
  103. package/dist/template/template-constants.d.ts +9 -0
  104. package/dist/template/template-constants.d.ts.map +1 -1
  105. package/dist/template/template-constants.js +20 -0
  106. package/dist/template/template-constants.js.map +1 -1
  107. package/dist/template/template-schema.d.ts.map +1 -1
  108. package/dist/template/template-schema.js +42 -3
  109. package/dist/template/template-schema.js.map +1 -1
  110. package/package.json +1 -1
  111. package/src/attr-schema-validate.ts +70 -0
  112. package/src/core/field/field-constants.ts +37 -2
  113. package/src/core/field/field-schema.ts +43 -2
  114. package/src/core/field/meta-field.ts +39 -0
  115. package/src/core/field/validate-field-readonly.ts +142 -0
  116. package/src/core/object/meta-object-aware.ts +27 -0
  117. package/src/core/object/meta-object.ts +47 -2
  118. package/src/core/object/object-class-registry.ts +48 -0
  119. package/src/core/object/object-constants.ts +17 -0
  120. package/src/core/object/object-schema.ts +29 -1
  121. package/src/core/object/validate-discriminator.ts +195 -0
  122. package/src/core/object/value-object.ts +65 -0
  123. package/src/core/query/query-constants.ts +5 -0
  124. package/src/core-types.ts +17 -4
  125. package/src/errors.ts +23 -0
  126. package/src/index.ts +10 -0
  127. package/src/loader/meta-data-loader.ts +31 -1
  128. package/src/loader/validation-passes.ts +161 -0
  129. package/src/naming.ts +6 -5
  130. package/src/persistence/db/db-constants.ts +40 -0
  131. package/src/persistence/db/db-provider.ts +3 -3
  132. package/src/persistence/db/db-schema.ts +20 -0
  133. package/src/persistence/source/meta-source.ts +64 -2
  134. package/src/persistence/source/source-constants.ts +40 -1
  135. package/src/persistence/source/source-schema.ts +78 -3
  136. package/src/persistence/source/validate-source-parameter-ref.ts +143 -0
  137. package/src/persistence/source/validate-source-physical-names.ts +123 -0
  138. package/src/serializer-json.ts +50 -0
  139. package/src/template/template-constants.ts +23 -0
  140. package/src/template/template-schema.ts +49 -2
  141. package/dist/constants.d.ts +0 -208
  142. package/dist/constants.d.ts.map +0 -1
  143. package/dist/constants.js +0 -419
  144. package/dist/constants.js.map +0 -1
  145. package/dist/core/file-meta-data-loader.d.ts +0 -18
  146. package/dist/core/file-meta-data-loader.d.ts.map +0 -1
  147. package/dist/core/file-meta-data-loader.js +0 -81
  148. package/dist/core/file-meta-data-loader.js.map +0 -1
  149. package/dist/core/file-source.d.ts +0 -12
  150. package/dist/core/file-source.d.ts.map +0 -1
  151. package/dist/core/file-source.js +0 -46
  152. package/dist/core/file-source.js.map +0 -1
  153. package/dist/core-attr-schemas.d.ts +0 -22
  154. package/dist/core-attr-schemas.d.ts.map +0 -1
  155. package/dist/core-attr-schemas.js +0 -324
  156. package/dist/core-attr-schemas.js.map +0 -1
  157. package/dist/db/db-attr-schemas.d.ts +0 -8
  158. package/dist/db/db-attr-schemas.d.ts.map +0 -1
  159. package/dist/db/db-attr-schemas.js +0 -26
  160. package/dist/db/db-attr-schemas.js.map +0 -1
  161. package/dist/db/db-provider.d.ts +0 -3
  162. package/dist/db/db-provider.d.ts.map +0 -1
  163. package/dist/db/db-provider.js +0 -28
  164. package/dist/db/db-provider.js.map +0 -1
  165. package/dist/meta/find-reference.d.ts +0 -22
  166. package/dist/meta/find-reference.d.ts.map +0 -1
  167. package/dist/meta/find-reference.js +0 -29
  168. package/dist/meta/find-reference.js.map +0 -1
  169. package/dist/meta/meta-attr.d.ts +0 -8
  170. package/dist/meta/meta-attr.d.ts.map +0 -1
  171. package/dist/meta/meta-attr.js +0 -17
  172. package/dist/meta/meta-attr.js.map +0 -1
  173. package/dist/meta/meta-data.d.ts +0 -107
  174. package/dist/meta/meta-data.d.ts.map +0 -1
  175. package/dist/meta/meta-data.js +0 -302
  176. package/dist/meta/meta-data.js.map +0 -1
  177. package/dist/meta/meta-field.d.ts +0 -48
  178. package/dist/meta/meta-field.d.ts.map +0 -1
  179. package/dist/meta/meta-field.js +0 -94
  180. package/dist/meta/meta-field.js.map +0 -1
  181. package/dist/meta/meta-identity.d.ts +0 -71
  182. package/dist/meta/meta-identity.d.ts.map +0 -1
  183. package/dist/meta/meta-identity.js +0 -129
  184. package/dist/meta/meta-identity.js.map +0 -1
  185. package/dist/meta/meta-layout.d.ts +0 -23
  186. package/dist/meta/meta-layout.d.ts.map +0 -1
  187. package/dist/meta/meta-layout.js +0 -45
  188. package/dist/meta/meta-layout.js.map +0 -1
  189. package/dist/meta/meta-object.d.ts +0 -40
  190. package/dist/meta/meta-object.d.ts.map +0 -1
  191. package/dist/meta/meta-object.js +0 -81
  192. package/dist/meta/meta-object.js.map +0 -1
  193. package/dist/meta/meta-origin.d.ts +0 -32
  194. package/dist/meta/meta-origin.d.ts.map +0 -1
  195. package/dist/meta/meta-origin.js +0 -55
  196. package/dist/meta/meta-origin.js.map +0 -1
  197. package/dist/meta/meta-relationship.d.ts +0 -11
  198. package/dist/meta/meta-relationship.d.ts.map +0 -1
  199. package/dist/meta/meta-relationship.js +0 -27
  200. package/dist/meta/meta-relationship.js.map +0 -1
  201. package/dist/meta/meta-root.d.ts +0 -12
  202. package/dist/meta/meta-root.d.ts.map +0 -1
  203. package/dist/meta/meta-root.js +0 -24
  204. package/dist/meta/meta-root.js.map +0 -1
  205. package/dist/meta/meta-source.d.ts +0 -18
  206. package/dist/meta/meta-source.d.ts.map +0 -1
  207. package/dist/meta/meta-source.js +0 -31
  208. package/dist/meta/meta-source.js.map +0 -1
  209. package/dist/meta/meta-validator.d.ts +0 -29
  210. package/dist/meta/meta-validator.d.ts.map +0 -1
  211. package/dist/meta/meta-validator.js +0 -49
  212. package/dist/meta/meta-validator.js.map +0 -1
  213. package/dist/meta/meta-view.d.ts +0 -4
  214. package/dist/meta/meta-view.d.ts.map +0 -1
  215. package/dist/meta/meta-view.js +0 -8
  216. package/dist/meta/meta-view.js.map +0 -1
  217. package/dist/persistence/db/db-attr-schemas.d.ts +0 -8
  218. package/dist/persistence/db/db-attr-schemas.d.ts.map +0 -1
  219. package/dist/persistence/db/db-attr-schemas.js +0 -28
  220. package/dist/persistence/db/db-attr-schemas.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"attr-schema-validate.d.ts","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AA6BA,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;AAQ9D,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,GACrB,0BAA0B,CAQ5B"}
1
+ {"version":3,"file":"attr-schema-validate.d.ts","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AA6BA,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;AAgB9D,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,GACrB,0BAA0B,CAQ5B"}
@@ -28,7 +28,8 @@
28
28
  // { errors, warnings } result. All A3 findings are ERRORS; warnings stays [].
29
29
  import { ParseError } from "./errors.js";
30
30
  import { TYPE_FIELD } from "./shared/base-types.js";
31
- import { FIELD_SUBTYPE_ENUM, FIELD_ATTR_VALUES, ENUM_MEMBER_PATTERN, } from "./core/field/field-constants.js";
31
+ import { FIELD_SUBTYPE_ENUM, FIELD_ATTR_VALUES, FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_DEFAULT, ENUM_MEMBER_PATTERN, } from "./core/field/field-constants.js";
32
+ import { FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_VALUES, DB_COLUMN_TYPE_LEGAL_SUBTYPES, } from "./persistence/db/db-constants.js";
32
33
  // ---------------------------------------------------------------------------
33
34
  // Public entry point
34
35
  // ---------------------------------------------------------------------------
@@ -150,6 +151,53 @@ function validateNode(node, registry, errors, reportedConflicts) {
150
151
  }
151
152
  }
152
153
  }
154
+ // --- Check 5 (FR-011): enum fallback attrs must be a member of @values ---
155
+ //
156
+ // Both @coerceDefault (extract-time coercion fallback) and @default (absent-fill
157
+ // member) name an enum member, so each must be one of the field's @values.
158
+ // Only validate when THIS node owns the attr (own-attrs-only policy, matching
159
+ // Checks 2+3). The membership set is the EFFECTIVE @values — own or inherited
160
+ // via extends: — so a concrete enum that owns the fallback attr and inherits
161
+ // @values from an abstract super still validates correctly.
162
+ //
163
+ // @coerceDefault is enum-only by registration, but @default is polymorphic
164
+ // (a column default on string/int/bool/etc. fields), so the @default membership
165
+ // check is gated to field.enum — @default on non-enum fields is NOT touched.
166
+ if (node.type === TYPE_FIELD && node.subType === FIELD_SUBTYPE_ENUM) {
167
+ const effectiveValues = node.attrs().get(FIELD_ATTR_VALUES);
168
+ const members = Array.isArray(effectiveValues) ? effectiveValues : [];
169
+ for (const attrName of [FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_DEFAULT]) {
170
+ const ownValue = node.ownAttrs().get(attrName);
171
+ if (typeof ownValue === "string" && !members.includes(ownValue)) {
172
+ errors.push(new ParseError(`${nodeLabel(node)} attribute '@${attrName}' value ` +
173
+ `'${ownValue}' is not one of '@${FIELD_ATTR_VALUES}': ` +
174
+ `${members.join(", ")}.`, { code: "ERR_BAD_ATTR_VALUE", source: node.source }));
175
+ }
176
+ }
177
+ }
178
+ }
179
+ // --- Check 6 (R6 Plan 2b): @dbColumnType (logical subtype × value) pairing ---
180
+ //
181
+ // @dbColumnType is a physical column-type override registered on every field
182
+ // subtype by the dbProvider. Its legal value depends on the field's logical
183
+ // subtype (uuid/jsonb on field.string, timestamp_with_tz on field.timestamp),
184
+ // a pairing that a flat allowedValues set cannot express — so validate it here.
185
+ // Own-only (matches Checks 2+3): an inherited @dbColumnType was validated on
186
+ // the declaring node. Both an unrecognized value and an illegal pairing emit
187
+ // ERR_BAD_ATTR_VALUE naming the field, the value, and the legal set.
188
+ if (node.type === TYPE_FIELD) {
189
+ const ownValue = node.ownAttrs().get(FIELD_ATTR_DB_COLUMN_TYPE);
190
+ if (typeof ownValue === "string") {
191
+ const legalSubtypes = DB_COLUMN_TYPE_VALUES.includes(ownValue)
192
+ ? DB_COLUMN_TYPE_LEGAL_SUBTYPES[ownValue]
193
+ : undefined;
194
+ if (legalSubtypes === undefined || !legalSubtypes.includes(node.subType)) {
195
+ errors.push(new ParseError(`${nodeLabel(node)} attribute '@${FIELD_ATTR_DB_COLUMN_TYPE}' value ` +
196
+ `'${ownValue}' is not legal on field.${node.subType}. ` +
197
+ `Legal @${FIELD_ATTR_DB_COLUMN_TYPE} pairings: ` +
198
+ `${DB_COLUMN_TYPE_VALUES.map((v) => `${v} (field.${DB_COLUMN_TYPE_LEGAL_SUBTYPES[v].join("/field.")})`).join(", ")}.`, { code: "ERR_BAD_ATTR_VALUE", source: node.source }));
199
+ }
200
+ }
153
201
  }
154
202
  }
155
203
  //# sourceMappingURL=attr-schema-validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attr-schema-validate.js","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,EAAE;AACF,+EAA+E;AAC/E,+DAA+D;AAC/D,sEAAsE;AACtE,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,yEAAyE;AACzE,iFAAiF;AACjF,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,mFAAmF;AACnF,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,uBAAuB;AACvB,EAAE;AACF,iEAAiE;AACjE,8EAA8E;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAOzC,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAChC,IAAc,EACd,QAAsB;IAEtB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,+EAA+E;IAC/E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,IAAI,CACX,IAAc,EACd,QAAsB,EACtB,MAAoB,EACpB,iBAA8B;IAE9B,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CACnB,IAAc,EACd,QAAsB,EACtB,MAAoB,EACpB,iBAA8B;IAE9B,0EAA0E;IAC1E,kFAAkF;IAClF,+EAA+E;IAC/E,8EAA8E;IAC9E,uEAAuE;IACvE,6EAA6E;IAC7E,uFAAuF;IACvF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE1F,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/C,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,gBAAgB,EAAE,CAAC,IAAI,qCAAqC,OAAO,EAAE,EACrE,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAC5D,CACF,CAAC;gBACF,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,SAAS,CAAC,gBAAgB;QAC5B,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAE9B,0CAA0C;IAC1C,EAAE;IACF,oEAAoE;IACpE,+EAA+E;IAC/E,+EAA+E;IAC/E,gFAAgF;IAChF,8EAA8E;IAC9E,8EAA8E;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,SAAS,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,IAAI,GAAG,EAClE,EAAE,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAC3D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,yCAAyC;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACvH,CAAC;gBACD,SAAS,CAAC,kCAAkC;YAC9C,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,cAAc;oBACvD,IAAI,MAAM,CAAC,KAAK,CAAC,4CAA4C;oBAC7D,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC1D,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACpD,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,EAAE;IACF,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,SAAS,CAAC,IAAI,CAAC,yCAAyC,iBAAiB,IAAI,EAChF,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACpD,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,wEAAwE;gBACxE,qEAAqE;gBACrE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC/B,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;oBAC/B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACtC,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,iBAAiB,aAAa,MAAM,IAAI;4BACxE,yCAAyC,mBAAmB,CAAC,MAAM,KAAK;4BACxE,+EAA+E,EACjF,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACpD,CACF,CAAC;oBACJ,CAAC;yBAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,iBAAiB,2BAA2B,MAAM,IAAI,EACxF,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACpD,CACF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"attr-schema-validate.js","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,19 @@ export declare const FIELD_SUBTYPE_OBJECT = "object";
14
14
  export declare const FIELD_SUBTYPE_CLASS = "class";
15
15
  export declare const FIELD_SUBTYPE_CURRENCY = "currency";
16
16
  export declare const FIELD_SUBTYPE_ENUM = "enum";
17
- export declare const FIELD_SUBTYPES: readonly ["base", "string", "int", "short", "byte", "long", "double", "float", "decimal", "boolean", "date", "time", "timestamp", "object", "class", "currency", "enum"];
17
+ /** R6 Plan 2a: logical UUID identity scalar. Bare scalar (no required attrs, no
18
+ * loader value-validation) — like field.long; native binding is forced to TS
19
+ * `string` (TS has no native UUID type). DB column is Postgres-native `uuid`. */
20
+ export declare const FIELD_SUBTYPE_UUID = "uuid";
21
+ export declare const FIELD_SUBTYPES: readonly ["base", "string", "int", "short", "byte", "long", "double", "float", "decimal", "boolean", "date", "time", "timestamp", "object", "class", "currency", "enum", "uuid"];
18
22
  export type FieldSubType = (typeof FIELD_SUBTYPES)[number];
19
23
  export declare const FIELD_ATTR_REQUIRED = "required";
20
24
  export declare const FIELD_ATTR_UNIQUE = "unique";
25
+ /** FR-013: when true, the field is read-only from the application's perspective.
26
+ * Codegen emits no setter; persistence skips the column on INSERT/UPDATE; Zod
27
+ * create/update variants omit the field. Default false (writable). See ADR-0013
28
+ * layer split — this is logical (no DB-introspection round-trip). */
29
+ export declare const FIELD_ATTR_READ_ONLY = "readOnly";
21
30
  export declare const FIELD_ATTR_DEFAULT = "default";
22
31
  export declare const FIELD_ATTR_MAX_LENGTH = "maxLength";
23
32
  export declare const FIELD_ATTR_PRECISION = "precision";
@@ -62,7 +71,7 @@ export declare const FIELD_ATTR_VALUES = "values";
62
71
  */
63
72
  export declare const ENUM_MEMBER_PATTERN: RegExp;
64
73
  /** FR-010: map of off-vocabulary token → canonical enum member, feeding the
65
- * tolerant recover alias-fold. `properties`-shaped; only on field.enum. */
74
+ * tolerant extract alias-fold. `properties`-shaped; only on field.enum. */
66
75
  export declare const FIELD_ATTR_ENUM_ALIAS = "enumAlias";
67
76
  /** FR-010: map of enum member → human-readable description, shown per-member in
68
77
  * the 'guide'-style output-format prompt fragment. `properties`-shaped; only on field.enum. */
@@ -71,4 +80,20 @@ export declare const FIELD_ATTR_ENUM_DOC = "enumDoc";
71
80
  export declare const FIELD_ATTR_EXAMPLE = "example";
72
81
  /** FR-010: a short instruction for this field, shown in the generated prompt fragment. */
73
82
  export declare const FIELD_ATTR_INSTRUCTION = "instruction";
83
+ /** FR-011: fallback enum member used when an LLM sends a present-but-uncoercible
84
+ * value. Must be one of the field's @values (loader-validated). On field.enum only. */
85
+ export declare const FIELD_ATTR_COERCE_DEFAULT = "coerceDefault";
86
+ /** FR-011: ASCII normalization mode for tolerant enum extract. Closed enum
87
+ * (none|collapse|strip). On field.enum (per-field) and object.value (default
88
+ * for its enum fields). Resolved field → object → global NORMALIZE_DEFAULT. */
89
+ export declare const FIELD_ATTR_NORMALIZE = "normalize";
90
+ /** FR-011: the three ASCII normalization modes (closed set).
91
+ * - none : exact match only.
92
+ * - collapse : ASCII case-fold + trim + collapse runs of [\s_-]+ to one _.
93
+ * - strip : ASCII case-fold + strip everything except [A-Z0-9] (most forgiving). */
94
+ export declare const NORMALIZE_MODES: readonly ["none", "collapse", "strip"];
95
+ export type NormalizeMode = (typeof NORMALIZE_MODES)[number];
96
+ /** FR-011: global normalization default when neither the field nor its owning
97
+ * object.value declares @normalize. */
98
+ export declare const NORMALIZE_DEFAULT: NormalizeMode;
74
99
  //# sourceMappingURL=field-constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-constants.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,uBAAuB,cAAc,CAAC;AACnD,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAC3C,eAAO,MAAM,sBAAsB,aAAa,CAAC;AACjD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,eAAO,MAAM,cAAc,0KAkBjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AAExE,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C;iFACiF;AACjF,eAAO,MAAM,qBAAqB,cAAc,CAAC;AAEjD;gFACgF;AAChF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;sFAEsF;AACtF,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C;uFACuF;AACvF,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC;+EAC+E;AAC/E,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,eAAO,MAAM,cAAc,gDAIjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAE7C,eAAO,MAAM,eAAe,mCAAoD,CAAC;AACjF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAM5D,0FAA0F;AAC1F,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,oFAAoF;AACpF,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAMjD,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAA6B,CAAC;AAE9D;4EAC4E;AAC5E,eAAO,MAAM,qBAAqB,cAAc,CAAC;AAEjD;gGACgG;AAChG,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAM7C,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"field-constants.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-constants.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  // Field concern constants — subtypes, field-level attr keys, and currency attrs.
2
2
  import { SUBTYPE_BASE } from "../../shared/base-types.js";
3
3
  // ---------------------------------------------------------------------------
4
- // Field subtypes (16)
4
+ // Field subtypes (17)
5
5
  // ---------------------------------------------------------------------------
6
6
  export const FIELD_SUBTYPE_STRING = "string";
7
7
  export const FIELD_SUBTYPE_INT = "int";
@@ -19,6 +19,10 @@ export const FIELD_SUBTYPE_OBJECT = "object";
19
19
  export const FIELD_SUBTYPE_CLASS = "class";
20
20
  export const FIELD_SUBTYPE_CURRENCY = "currency";
21
21
  export const FIELD_SUBTYPE_ENUM = "enum";
22
+ /** R6 Plan 2a: logical UUID identity scalar. Bare scalar (no required attrs, no
23
+ * loader value-validation) — like field.long; native binding is forced to TS
24
+ * `string` (TS has no native UUID type). DB column is Postgres-native `uuid`. */
25
+ export const FIELD_SUBTYPE_UUID = "uuid";
22
26
  export const FIELD_SUBTYPES = [
23
27
  SUBTYPE_BASE,
24
28
  FIELD_SUBTYPE_STRING,
@@ -37,12 +41,18 @@ export const FIELD_SUBTYPES = [
37
41
  FIELD_SUBTYPE_CLASS,
38
42
  FIELD_SUBTYPE_CURRENCY,
39
43
  FIELD_SUBTYPE_ENUM,
44
+ FIELD_SUBTYPE_UUID,
40
45
  ];
41
46
  // ---------------------------------------------------------------------------
42
47
  // Field-level attrs (used by codegen-ts column mapper)
43
48
  // ---------------------------------------------------------------------------
44
49
  export const FIELD_ATTR_REQUIRED = "required";
45
50
  export const FIELD_ATTR_UNIQUE = "unique";
51
+ /** FR-013: when true, the field is read-only from the application's perspective.
52
+ * Codegen emits no setter; persistence skips the column on INSERT/UPDATE; Zod
53
+ * create/update variants omit the field. Default false (writable). See ADR-0013
54
+ * layer split — this is logical (no DB-introspection round-trip). */
55
+ export const FIELD_ATTR_READ_ONLY = "readOnly";
46
56
  export const FIELD_ATTR_DEFAULT = "default";
47
57
  export const FIELD_ATTR_MAX_LENGTH = "maxLength";
48
58
  export const FIELD_ATTR_PRECISION = "precision";
@@ -95,7 +105,7 @@ export const FIELD_ATTR_VALUES = "values";
95
105
  */
96
106
  export const ENUM_MEMBER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
97
107
  /** FR-010: map of off-vocabulary token → canonical enum member, feeding the
98
- * tolerant recover alias-fold. `properties`-shaped; only on field.enum. */
108
+ * tolerant extract alias-fold. `properties`-shaped; only on field.enum. */
99
109
  export const FIELD_ATTR_ENUM_ALIAS = "enumAlias";
100
110
  /** FR-010: map of enum member → human-readable description, shown per-member in
101
111
  * the 'guide'-style output-format prompt fragment. `properties`-shaped; only on field.enum. */
@@ -107,4 +117,22 @@ export const FIELD_ATTR_ENUM_DOC = "enumDoc";
107
117
  export const FIELD_ATTR_EXAMPLE = "example";
108
118
  /** FR-010: a short instruction for this field, shown in the generated prompt fragment. */
109
119
  export const FIELD_ATTR_INSTRUCTION = "instruction";
120
+ // ---------------------------------------------------------------------------
121
+ // FR-011 extract-hardening attrs (enum tolerant extract)
122
+ // ---------------------------------------------------------------------------
123
+ /** FR-011: fallback enum member used when an LLM sends a present-but-uncoercible
124
+ * value. Must be one of the field's @values (loader-validated). On field.enum only. */
125
+ export const FIELD_ATTR_COERCE_DEFAULT = "coerceDefault";
126
+ /** FR-011: ASCII normalization mode for tolerant enum extract. Closed enum
127
+ * (none|collapse|strip). On field.enum (per-field) and object.value (default
128
+ * for its enum fields). Resolved field → object → global NORMALIZE_DEFAULT. */
129
+ export const FIELD_ATTR_NORMALIZE = "normalize";
130
+ /** FR-011: the three ASCII normalization modes (closed set).
131
+ * - none : exact match only.
132
+ * - collapse : ASCII case-fold + trim + collapse runs of [\s_-]+ to one _.
133
+ * - strip : ASCII case-fold + strip everything except [A-Z0-9] (most forgiving). */
134
+ export const NORMALIZE_MODES = ["none", "collapse", "strip"];
135
+ /** FR-011: global normalization default when neither the field nor its owning
136
+ * object.value declares @normalize. */
137
+ export const NORMALIZE_DEFAULT = "strip";
110
138
  //# sourceMappingURL=field-constants.js.map
@@ -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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"}
@@ -6,9 +6,17 @@ export declare const currencyFieldAttr: AttrSchema;
6
6
  /** The @values attr — only on field.enum. Required string array. */
7
7
  export declare const enumFieldAttr: AttrSchema;
8
8
  /** The @enumAlias attr — only on field.enum. Map of off-vocabulary token → canonical
9
- * member, feeding the FR-010 tolerant recover alias-fold (runtime aliases win on conflict). */
9
+ * member, feeding the FR-010 tolerant extract alias-fold (runtime aliases win on conflict). */
10
10
  export declare const enumAliasAttr: AttrSchema;
11
11
  /** The @enumDoc attr — only on field.enum. Map of member → human-readable description,
12
12
  * shown per-member in the FR-010 'guide'-style output-format prompt fragment. */
13
13
  export declare const enumDocAttr: AttrSchema;
14
+ /** FR-011: the @coerceDefault attr — only on field.enum. String member symbol used as
15
+ * the extract fallback when an LLM sends a present-but-uncoercible value. Loader-validated
16
+ * to be one of the field's @values (ERR_BAD_ATTR_VALUE otherwise). */
17
+ export declare const coerceDefaultAttr: AttrSchema;
18
+ /** FR-011: the @normalize attr — on field.enum (per-field) and object.value (object default).
19
+ * Closed enum (none|collapse|strip); controls the ASCII normalization applied during tolerant
20
+ * enum extract. Resolved field → owning object.value → global default (strip). */
21
+ export declare const normalizeAttr: AttrSchema;
14
22
  //# sourceMappingURL=field-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-schema.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiCpD,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,EAAE,UAAU,EA8GxC,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,UAO/B,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,aAAa,EAAE,UAM3B,CAAC;AAEF;gGACgG;AAChG,eAAO,MAAM,aAAa,EAAE,UAM3B,CAAC;AAEF;kFACkF;AAClF,eAAO,MAAM,WAAW,EAAE,UAMzB,CAAC"}
1
+ {"version":3,"file":"field-schema.d.ts","sourceRoot":"","sources":["../../../src/core/field/field-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsCpD,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,EAAE,UAAU,EAyHxC,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,EAAE,UAO/B,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,aAAa,EAAE,UAM3B,CAAC;AAEF;gGACgG;AAChG,eAAO,MAAM,aAAa,EAAE,UAM3B,CAAC;AAEF;kFACkF;AAClF,eAAO,MAAM,WAAW,EAAE,UAMzB,CAAC;AAEF;;uEAEuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,UAM/B,CAAC;AAEF;;mFAEmF;AACnF,eAAO,MAAM,aAAa,EAAE,UAS3B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  // @currency attr specific to field.currency. Consumed by registerCoreTypes().
3
3
  import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_INT, ATTR_SUBTYPE_BOOLEAN, ATTR_SUBTYPE_STRINGARRAY, ATTR_SUBTYPE_PROPERTIES, } from "../attr/attr-constants.js";
4
4
  import { SORT_ORDER_VALUES } from "../query/query-constants.js";
5
- import { FIELD_ATTR_OBJECT_REF, FIELD_ATTR_STORAGE, STORAGE_VALUES, FIELD_ATTR_REQUIRED, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_FILTERABLE, FIELD_ATTR_SORTABLE, FIELD_ATTR_SORTABLE_DEFAULT_ORDER, FIELD_ATTR_CURRENCY, FIELD_ATTR_CURRENCY_DEFAULT, FIELD_ATTR_AUTO_SET, AUTO_SET_VALUES, FIELD_ATTR_VALUES, FIELD_ATTR_ENUM_ALIAS, FIELD_ATTR_ENUM_DOC, FIELD_ATTR_EXAMPLE, FIELD_ATTR_INSTRUCTION, } from "./field-constants.js";
5
+ import { FIELD_ATTR_OBJECT_REF, FIELD_ATTR_STORAGE, STORAGE_VALUES, FIELD_ATTR_REQUIRED, FIELD_ATTR_READ_ONLY, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_FILTERABLE, FIELD_ATTR_SORTABLE, FIELD_ATTR_SORTABLE_DEFAULT_ORDER, FIELD_ATTR_CURRENCY, FIELD_ATTR_CURRENCY_DEFAULT, FIELD_ATTR_AUTO_SET, AUTO_SET_VALUES, FIELD_ATTR_VALUES, FIELD_ATTR_ENUM_ALIAS, FIELD_ATTR_ENUM_DOC, FIELD_ATTR_EXAMPLE, FIELD_ATTR_INSTRUCTION, FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_NORMALIZE, NORMALIZE_MODES, NORMALIZE_DEFAULT, } from "./field-constants.js";
6
6
  /** Attrs common to every field subtype (codegen-ts column mapper + Project D filter/sort). */
7
7
  export const commonFieldAttrs = [
8
8
  {
@@ -28,6 +28,16 @@ export const commonFieldAttrs = [
28
28
  required: false,
29
29
  description: "When true, the field is NOT NULL. Equivalent to attaching a validator.required child.",
30
30
  },
31
+ {
32
+ name: FIELD_ATTR_READ_ONLY,
33
+ valueType: ATTR_SUBTYPE_BOOLEAN,
34
+ required: false,
35
+ description: "FR-013: when true, the field is read-only — codegen emits no setter / " +
36
+ "writable property, the persistence layer skips the column on INSERT/UPDATE, " +
37
+ "and Zod/Pydantic/class-validator schemas mark it read-only on input variants. " +
38
+ "The value is populated by the database (computed column, default expression, " +
39
+ "trigger), by replication, or by another external owner.",
40
+ },
31
41
  {
32
42
  name: FIELD_ATTR_UNIQUE,
33
43
  valueType: ATTR_SUBTYPE_BOOLEAN,
@@ -122,12 +132,12 @@ export const enumFieldAttr = {
122
132
  description: "Member symbols of an enum-subtype field. Declaration order is significant; each is a legal identifier and its own stored string.",
123
133
  };
124
134
  /** The @enumAlias attr — only on field.enum. Map of off-vocabulary token → canonical
125
- * member, feeding the FR-010 tolerant recover alias-fold (runtime aliases win on conflict). */
135
+ * member, feeding the FR-010 tolerant extract alias-fold (runtime aliases win on conflict). */
126
136
  export const enumAliasAttr = {
127
137
  name: FIELD_ATTR_ENUM_ALIAS,
128
138
  valueType: ATTR_SUBTYPE_PROPERTIES,
129
139
  required: false,
130
- description: "Map of alternate/off-vocabulary tokens to canonical enum members; feeds the FR-010 tolerant recover alias-fold.",
140
+ description: "Map of alternate/off-vocabulary tokens to canonical enum members; feeds the FR-010 tolerant extract alias-fold.",
131
141
  };
132
142
  /** The @enumDoc attr — only on field.enum. Map of member → human-readable description,
133
143
  * shown per-member in the FR-010 'guide'-style output-format prompt fragment. */
@@ -137,4 +147,25 @@ export const enumDocAttr = {
137
147
  required: false,
138
148
  description: "Map of enum member to a human-readable description; shown per-member in the FR-010 'guide'-style prompt fragment.",
139
149
  };
150
+ /** FR-011: the @coerceDefault attr — only on field.enum. String member symbol used as
151
+ * the extract fallback when an LLM sends a present-but-uncoercible value. Loader-validated
152
+ * to be one of the field's @values (ERR_BAD_ATTR_VALUE otherwise). */
153
+ export const coerceDefaultAttr = {
154
+ name: FIELD_ATTR_COERCE_DEFAULT,
155
+ valueType: ATTR_SUBTYPE_STRING,
156
+ required: false,
157
+ description: "Fallback enum member used by tolerant extract when a present value cannot be coerced; must be one of the field's @values.",
158
+ };
159
+ /** FR-011: the @normalize attr — on field.enum (per-field) and object.value (object default).
160
+ * Closed enum (none|collapse|strip); controls the ASCII normalization applied during tolerant
161
+ * enum extract. Resolved field → owning object.value → global default (strip). */
162
+ export const normalizeAttr = {
163
+ name: FIELD_ATTR_NORMALIZE,
164
+ valueType: ATTR_SUBTYPE_STRING,
165
+ required: false,
166
+ default: NORMALIZE_DEFAULT,
167
+ allowedValues: [...NORMALIZE_MODES],
168
+ description: "ASCII normalization mode for tolerant enum extract (none|collapse|strip, default strip). " +
169
+ "On field.enum it is per-field; on object.value it is the default for the object's enum fields.",
170
+ };
140
171
  //# sourceMappingURL=field-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-schema.js","sourceRoot":"","sources":["../../../src/core/field/field-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-schema.js","sourceRoot":"","sources":["../../../src/core/field/field-schema.ts"],"names":[],"mappings":"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"}
@@ -47,5 +47,15 @@ export declare class MetaField extends MetaData implements DataTypeAware {
47
47
  ownViews(): MetaView[];
48
48
  /** The typed supertype field if `extends:` resolved, else undefined. */
49
49
  resolveSuper(): MetaField | undefined;
50
+ /**
51
+ * Read this field's value from a backing object. `name` defaults to the
52
+ * field's own `name`; pass an override only to read a differently-keyed slot.
53
+ */
54
+ getValue(obj: object, name?: string): unknown;
55
+ /**
56
+ * Write `value` into a backing object under `name` (defaults to this field's
57
+ * own `name`). ValueObject → map set; any other object → typed property set.
58
+ */
59
+ setValue(obj: object, value: unknown, name?: string): void;
50
60
  }
51
61
  //# sourceMappingURL=meta-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-field.d.ts","sourceRoot":"","sources":["../../../src/core/field/meta-field.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAQnB,MAAM,oBAAoB,CAAC;AA8B5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAwBrE,qBAAa,SAAU,SAAQ,QAAS,YAAW,aAAa;IAC9D,qEAAqE;IACrE,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,mFAAmF;IACnF,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS;IAI/B,gFAAgF;IAChF,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,sDAAsD;IACtD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAG/B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAQrC,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAG9B;IAED,gFAAgF;IAChF,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IAED,+IAA+I;IAC/I,UAAU,IAAI,aAAa,EAAE;IAM7B,+GAA+G;IAC/G,aAAa,IAAI,aAAa,EAAE;IAMhC,gIAAgI;IAChI,KAAK,IAAI,QAAQ,EAAE;IAMnB,6DAA6D;IAC7D,QAAQ,IAAI,QAAQ,EAAE;IAMtB,wEAAwE;IACxE,YAAY,IAAI,SAAS,GAAG,SAAS;CAGtC"}
1
+ {"version":3,"file":"meta-field.d.ts","sourceRoot":"","sources":["../../../src/core/field/meta-field.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAQnB,MAAM,oBAAoB,CAAC;AA+B5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AA2BrE,qBAAa,SAAU,SAAQ,QAAS,YAAW,aAAa;IAC9D,qEAAqE;IACrE,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,mFAAmF;IACnF,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS;IAI/B,gFAAgF;IAChF,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,sDAAsD;IACtD,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAG/B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAQrC,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAG9B;IAED,gFAAgF;IAChF,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;IAED,+IAA+I;IAC/I,UAAU,IAAI,aAAa,EAAE;IAM7B,+GAA+G;IAC/G,aAAa,IAAI,aAAa,EAAE;IAMhC,gIAAgI;IAChI,KAAK,IAAI,QAAQ,EAAE;IAMnB,6DAA6D;IAC7D,QAAQ,IAAI,QAAQ,EAAE;IAMtB,wEAAwE;IACxE,YAAY,IAAI,SAAS,GAAG,SAAS;IAerC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO;IAQxD;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAkB,GAAG,IAAI;CAOtE"}
@@ -6,15 +6,18 @@ import { MetaData } from "../../shared/meta-data.js";
6
6
  import { DATA_TYPE_STRING, DATA_TYPE_INT, DATA_TYPE_LONG, DATA_TYPE_DOUBLE, DATA_TYPE_BOOLEAN, DATA_TYPE_DATE, DATA_TYPE_OBJECT, } from "../../data-type.js";
7
7
  import { convertToDataType } from "../../data-converter.js";
8
8
  import { TYPE_VALIDATOR, TYPE_VIEW, SUBTYPE_BASE } from "../../shared/base-types.js";
9
- import { FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_CLASS, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_SHORT, FIELD_SUBTYPE_BYTE, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_ENUM, FIELD_ATTR_REQUIRED, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_OBJECT_REF, } from "./field-constants.js";
9
+ import { FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_CLASS, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_SHORT, FIELD_SUBTYPE_BYTE, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_UUID, FIELD_ATTR_REQUIRED, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_OBJECT_REF, } from "./field-constants.js";
10
10
  import { FIELD_ATTR_COLUMN } from "../../persistence/db/db-constants.js";
11
11
  import { VALIDATOR_SUBTYPE_REQUIRED } from "../validator/validator-constants.js";
12
+ import { ValueObject } from "../object/value-object.js";
12
13
  /** Field subtype → DataType. Co-located with the class — a provider adding a
13
14
  * field subtype supplies its own dataType the same way. */
14
15
  const FIELD_DATA_TYPE = {
15
16
  [SUBTYPE_BASE]: DATA_TYPE_STRING,
16
17
  [FIELD_SUBTYPE_STRING]: DATA_TYPE_STRING,
17
18
  [FIELD_SUBTYPE_CLASS]: DATA_TYPE_STRING,
19
+ // field.uuid binds to TS `string` (no native UUID type) — DATA_TYPE_STRING.
20
+ [FIELD_SUBTYPE_UUID]: DATA_TYPE_STRING,
18
21
  [FIELD_SUBTYPE_INT]: DATA_TYPE_INT,
19
22
  [FIELD_SUBTYPE_SHORT]: DATA_TYPE_INT,
20
23
  [FIELD_SUBTYPE_BYTE]: DATA_TYPE_INT,
@@ -119,5 +122,37 @@ export class MetaField extends MetaData {
119
122
  resolveSuper() {
120
123
  return this.superData;
121
124
  }
125
+ // ---------------------------------------------------------------------------
126
+ // Runtime value access (Java parity: MetaField.getObject / setObject by name).
127
+ //
128
+ // Minimal backing-object SPI: dispatch on the backing object's shape — a
129
+ // ValueObject uses its map, any other object uses typed property access.
130
+ // Nested OBJECT fields and arrays are driven by the CONSUMER (resolve the
131
+ // child MetaObject via objectRef, newInstance, recurse); these methods read
132
+ // and write whatever value (scalar, nested object, or array) the caller
133
+ // supplies. No coercion here — coerce() is available separately.
134
+ // ---------------------------------------------------------------------------
135
+ /**
136
+ * Read this field's value from a backing object. `name` defaults to the
137
+ * field's own `name`; pass an override only to read a differently-keyed slot.
138
+ */
139
+ getValue(obj, name = this.name) {
140
+ if (obj instanceof ValueObject) {
141
+ return obj.get(name);
142
+ }
143
+ // Typed property access — the unavoidable dynamic-property bridge.
144
+ return obj[name];
145
+ }
146
+ /**
147
+ * Write `value` into a backing object under `name` (defaults to this field's
148
+ * own `name`). ValueObject → map set; any other object → typed property set.
149
+ */
150
+ setValue(obj, value, name = this.name) {
151
+ if (obj instanceof ValueObject) {
152
+ obj.set(name, value);
153
+ return;
154
+ }
155
+ obj[name] = value;
156
+ }
122
157
  }
123
158
  //# sourceMappingURL=meta-field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-field.js","sourceRoot":"","sources":["../../../src/core/field/meta-field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-field.js","sourceRoot":"","sources":["../../../src/core/field/meta-field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { MetaData } from "../../shared/meta-data.js";
2
+ import { ParseError } from "../../errors.js";
3
+ import type { LoaderWarning } from "../../source.js";
4
+ export interface FieldReadOnlyValidationResult {
5
+ errors: ParseError[];
6
+ warnings: LoaderWarning[];
7
+ }
8
+ export declare function validateFieldReadOnly(root: MetaData): FieldReadOnlyValidationResult;
9
+ //# sourceMappingURL=validate-field-readonly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-field-readonly.d.ts","sourceRoot":"","sources":["../../../src/core/field/validate-field-readonly.ts"],"names":[],"mappings":"AAcA,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;AAerD,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,6BAA6B,CAgEnF"}
@@ -0,0 +1,116 @@
1
+ // Validation pass: field-level @readOnly cross-attribute rules (FR-013).
2
+ //
3
+ // Codes:
4
+ // ERR_READONLY_ASSIGNED_PRIMARY — @readOnly: true on a field that is the
5
+ // target of an identity.primary with @generation: "assigned". The application
6
+ // has no path to populate the identity value (no setter; not generated; not
7
+ // defaulted).
8
+ // ERR_READONLY_DOWNGRADE — a concrete subtype declares @readOnly: false on a
9
+ // field whose extends-chain parent declares @readOnly: true. Read-only-ness
10
+ // can only be upgraded, never downgraded.
11
+ // WARN_READONLY_VALUE_OBJECT — @readOnly: true on a field child of object.value.
12
+ // The persistence implication does not apply; the attr is retained for
13
+ // language-specific record/struct treatment.
14
+ import { ParseError } from "../../errors.js";
15
+ import { TYPE_OBJECT, TYPE_FIELD, TYPE_IDENTITY, } from "../../shared/base-types.js";
16
+ import { OBJECT_SUBTYPE_VALUE } from "../object/object-constants.js";
17
+ import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_FIELDS, GENERATION_ASSIGNED, } from "../identity/identity-constants.js";
18
+ import { FIELD_ATTR_READ_ONLY } from "./field-constants.js";
19
+ export function validateFieldReadOnly(root) {
20
+ const errors = [];
21
+ const warnings = [];
22
+ for (const obj of root.ownChildren().filter((c) => c.type === TYPE_OBJECT)) {
23
+ const isValueObject = obj.subType === OBJECT_SUBTYPE_VALUE;
24
+ // 1) WARN_READONLY_VALUE_OBJECT — any @readOnly field child of an object.value.
25
+ if (isValueObject) {
26
+ for (const child of obj.ownChildren()) {
27
+ if (child.type === TYPE_FIELD && readOnlyFlag(child) === true) {
28
+ warnings.push({
29
+ code: "WARN_READONLY_VALUE_OBJECT",
30
+ message: `field "${child.name}" on object.value "${obj.name}" declares ` +
31
+ `@readOnly: true; value-objects have no persistence semantics so ` +
32
+ `the read-only contract is advisory (codegen may use it for record/` +
33
+ `struct treatment).`,
34
+ source: child.source,
35
+ });
36
+ }
37
+ }
38
+ }
39
+ // 2) ERR_READONLY_DOWNGRADE — read-only-ness can only be upgraded across
40
+ // extends. Compare own field vs. inherited field's effective @readOnly.
41
+ for (const ownField of obj.ownChildren().filter((c) => c.type === TYPE_FIELD)) {
42
+ const ownVal = readOnlyFlag(ownField);
43
+ if (ownVal !== false)
44
+ continue; // only the explicit downgrade case matters
45
+ const inherited = inheritedField(obj, ownField.name);
46
+ if (inherited !== undefined && readOnlyFlag(inherited) === true) {
47
+ errors.push(new ParseError(`field "${ownField.name}" on "${obj.name}" sets @readOnly: false, but the ` +
48
+ `extends-chain parent declares @readOnly: true. Read-only-ness can only be ` +
49
+ `upgraded, not downgraded (FR-013).`, { code: "ERR_READONLY_DOWNGRADE", source: ownField.source }));
50
+ }
51
+ }
52
+ // 3) ERR_READONLY_ASSIGNED_PRIMARY — @readOnly: true on a field used in an
53
+ // identity.primary whose @generation is "assigned" (effective tree).
54
+ if (!isValueObject) {
55
+ const primaryAssignedFields = primaryAssignedFieldNames(obj);
56
+ if (primaryAssignedFields.size > 0) {
57
+ for (const field of obj.children().filter((c) => c.type === TYPE_FIELD)) {
58
+ if (!primaryAssignedFields.has(field.name))
59
+ continue;
60
+ if (readOnlyFlag(field) !== true)
61
+ continue;
62
+ errors.push(new ParseError(`field "${field.name}" on "${obj.name}" is @readOnly: true AND the target ` +
63
+ `of identity.primary with @generation: "assigned"; the application has no ` +
64
+ `path to populate the identity value (FR-013).`, { code: "ERR_READONLY_ASSIGNED_PRIMARY", source: field.source }));
65
+ }
66
+ }
67
+ }
68
+ }
69
+ return { errors, warnings };
70
+ }
71
+ /** Read the explicit @readOnly value from a field's own attrs. Returns
72
+ * true / false when explicitly set, undefined when absent. */
73
+ function readOnlyFlag(field) {
74
+ const v = field.ownAttr(FIELD_ATTR_READ_ONLY);
75
+ if (typeof v === "boolean")
76
+ return v;
77
+ return undefined;
78
+ }
79
+ /** Walk the extends chain looking for a field with the same name; return its
80
+ * declaring node (own attrs preserved) if found. */
81
+ function inheritedField(obj, name) {
82
+ let cursor = obj.superResolved;
83
+ while (cursor !== undefined) {
84
+ const f = cursor.ownChildren().find((c) => c.type === TYPE_FIELD && c.name === name);
85
+ if (f !== undefined)
86
+ return f;
87
+ cursor = cursor.superResolved;
88
+ }
89
+ return undefined;
90
+ }
91
+ /** Names of fields participating in any identity.primary with @generation:
92
+ * "assigned" on `obj` or its extends chain. */
93
+ function primaryAssignedFieldNames(obj) {
94
+ const out = new Set();
95
+ for (const id of obj.children()) {
96
+ if (id.type !== TYPE_IDENTITY)
97
+ continue;
98
+ if (id.subType !== IDENTITY_SUBTYPE_PRIMARY)
99
+ continue;
100
+ const gen = id.ownAttr(IDENTITY_ATTR_GENERATION);
101
+ if (gen !== GENERATION_ASSIGNED)
102
+ continue;
103
+ const fields = id.ownAttr(IDENTITY_ATTR_FIELDS);
104
+ if (Array.isArray(fields)) {
105
+ for (const fName of fields) {
106
+ if (typeof fName === "string")
107
+ out.add(fName);
108
+ }
109
+ }
110
+ else if (typeof fields === "string") {
111
+ out.add(fields);
112
+ }
113
+ }
114
+ return out;
115
+ }
116
+ //# sourceMappingURL=validate-field-readonly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-field-readonly.js","sourceRoot":"","sources":["../../../src/core/field/validate-field-readonly.ts"],"names":[],"mappings":"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"}