@metaobjectsdev/metadata 0.6.0 → 0.7.0-rc.10

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 (141) hide show
  1. package/README.md +54 -3
  2. package/dist/attr-schema-validate.js +7 -7
  3. package/dist/attr-schema-validate.js.map +1 -1
  4. package/dist/core/export-json.d.ts +6 -7
  5. package/dist/core/export-json.d.ts.map +1 -1
  6. package/dist/core/export-json.js +15 -17
  7. package/dist/core/export-json.js.map +1 -1
  8. package/dist/core/index.d.ts +4 -2
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +6 -2
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/core/parser-yaml.d.ts.map +1 -1
  13. package/dist/core/parser-yaml.js +36 -11
  14. package/dist/core/parser-yaml.js.map +1 -1
  15. package/dist/core/yaml-desugar.d.ts.map +1 -1
  16. package/dist/core/yaml-desugar.js +54 -5
  17. package/dist/core/yaml-desugar.js.map +1 -1
  18. package/dist/core/yaml-positions-walker.d.ts +21 -0
  19. package/dist/core/yaml-positions-walker.d.ts.map +1 -0
  20. package/dist/core/yaml-positions-walker.js +75 -0
  21. package/dist/core/yaml-positions-walker.js.map +1 -0
  22. package/dist/core/yaml-positions.d.ts +19 -0
  23. package/dist/core/yaml-positions.d.ts.map +1 -0
  24. package/dist/core/yaml-positions.js +60 -0
  25. package/dist/core/yaml-positions.js.map +1 -0
  26. package/dist/core-types.d.ts.map +1 -1
  27. package/dist/core-types.js +7 -4
  28. package/dist/core-types.js.map +1 -1
  29. package/dist/errors.d.ts +32 -9
  30. package/dist/errors.d.ts.map +1 -1
  31. package/dist/errors.js +44 -5
  32. package/dist/errors.js.map +1 -1
  33. package/dist/index.d.ts +6 -3
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +9 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/json-path.d.ts +8 -0
  38. package/dist/json-path.d.ts.map +1 -0
  39. package/dist/json-path.js +39 -0
  40. package/dist/json-path.js.map +1 -0
  41. package/dist/loader/meta-data-loader.d.ts +47 -6
  42. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  43. package/dist/loader/meta-data-loader.js +126 -8
  44. package/dist/loader/meta-data-loader.js.map +1 -1
  45. package/dist/loader/meta-data-source.d.ts +6 -2
  46. package/dist/loader/meta-data-source.d.ts.map +1 -1
  47. package/dist/loader/meta-data-source.js +10 -6
  48. package/dist/loader/meta-data-source.js.map +1 -1
  49. package/dist/loader/shortcuts.d.ts +9 -0
  50. package/dist/loader/shortcuts.d.ts.map +1 -0
  51. package/dist/loader/shortcuts.js +19 -0
  52. package/dist/loader/shortcuts.js.map +1 -0
  53. package/dist/loader/sources/directory-source.d.ts +15 -0
  54. package/dist/loader/sources/directory-source.d.ts.map +1 -0
  55. package/dist/loader/sources/directory-source.js +80 -0
  56. package/dist/loader/sources/directory-source.js.map +1 -0
  57. package/dist/loader/sources/file-source.d.ts +12 -0
  58. package/dist/loader/sources/file-source.d.ts.map +1 -0
  59. package/dist/loader/sources/file-source.js +46 -0
  60. package/dist/loader/sources/file-source.js.map +1 -0
  61. package/dist/loader/sources/index.d.ts +5 -0
  62. package/dist/loader/sources/index.d.ts.map +1 -0
  63. package/dist/loader/sources/index.js +5 -0
  64. package/dist/loader/sources/index.js.map +1 -0
  65. package/dist/loader/sources/uri-source.d.ts +9 -0
  66. package/dist/loader/sources/uri-source.d.ts.map +1 -0
  67. package/dist/loader/sources/uri-source.js +42 -0
  68. package/dist/loader/sources/uri-source.js.map +1 -0
  69. package/dist/loader/validation-passes.d.ts.map +1 -1
  70. package/dist/loader/validation-passes.js +92 -28
  71. package/dist/loader/validation-passes.js.map +1 -1
  72. package/dist/naming.d.ts +15 -2
  73. package/dist/naming.d.ts.map +1 -1
  74. package/dist/naming.js +20 -6
  75. package/dist/naming.js.map +1 -1
  76. package/dist/parser-core.d.ts +17 -4
  77. package/dist/parser-core.d.ts.map +1 -1
  78. package/dist/parser-core.js +371 -44
  79. package/dist/parser-core.js.map +1 -1
  80. package/dist/parser-json.d.ts.map +1 -1
  81. package/dist/parser-json.js +10 -2
  82. package/dist/parser-json.js.map +1 -1
  83. package/dist/persistence/source/validate-source-roles.js +2 -2
  84. package/dist/persistence/source/validate-source-roles.js.map +1 -1
  85. package/dist/semantic-diff.d.ts +5 -0
  86. package/dist/semantic-diff.d.ts.map +1 -0
  87. package/dist/semantic-diff.js +49 -0
  88. package/dist/semantic-diff.js.map +1 -0
  89. package/dist/shared/meta-data.d.ts +10 -0
  90. package/dist/shared/meta-data.d.ts.map +1 -1
  91. package/dist/shared/meta-data.js +23 -0
  92. package/dist/shared/meta-data.js.map +1 -1
  93. package/dist/source.d.ts +96 -0
  94. package/dist/source.d.ts.map +1 -0
  95. package/dist/source.js +38 -0
  96. package/dist/source.js.map +1 -0
  97. package/dist/subtype-rules.js +1 -1
  98. package/dist/subtype-rules.js.map +1 -1
  99. package/dist/super-resolve.d.ts +2 -0
  100. package/dist/super-resolve.d.ts.map +1 -1
  101. package/dist/super-resolve.js +1 -1
  102. package/dist/super-resolve.js.map +1 -1
  103. package/dist/template/template-constants.d.ts +3 -1
  104. package/dist/template/template-constants.d.ts.map +1 -1
  105. package/dist/template/template-constants.js +22 -6
  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 +41 -1
  109. package/dist/template/template-schema.js.map +1 -1
  110. package/package.json +1 -1
  111. package/src/attr-schema-validate.ts +7 -7
  112. package/src/core/export-json.ts +15 -18
  113. package/src/core/index.ts +8 -2
  114. package/src/core/parser-yaml.ts +38 -11
  115. package/src/core/yaml-desugar.ts +58 -4
  116. package/src/core/yaml-positions-walker.ts +101 -0
  117. package/src/core/yaml-positions.ts +80 -0
  118. package/src/core-types.ts +7 -4
  119. package/src/errors.ts +57 -8
  120. package/src/index.ts +28 -3
  121. package/src/json-path.ts +46 -0
  122. package/src/loader/meta-data-loader.ts +168 -10
  123. package/src/loader/meta-data-source.ts +10 -6
  124. package/src/loader/shortcuts.ts +31 -0
  125. package/src/loader/sources/directory-source.ts +90 -0
  126. package/src/{core → loader/sources}/file-source.ts +3 -3
  127. package/src/loader/sources/index.ts +6 -0
  128. package/src/loader/sources/uri-source.ts +44 -0
  129. package/src/loader/validation-passes.ts +96 -29
  130. package/src/naming.ts +39 -7
  131. package/src/parser-core.ts +412 -46
  132. package/src/parser-json.ts +11 -2
  133. package/src/persistence/source/validate-source-roles.ts +2 -2
  134. package/src/semantic-diff.ts +48 -0
  135. package/src/shared/meta-data.ts +28 -0
  136. package/src/source.ts +99 -0
  137. package/src/subtype-rules.ts +1 -1
  138. package/src/super-resolve.ts +3 -1
  139. package/src/template/template-constants.ts +23 -6
  140. package/src/template/template-schema.ts +43 -0
  141. package/src/core/file-meta-data-loader.ts +0 -89
@@ -9,8 +9,10 @@
9
9
  // Private: _findObject, _findField, _findRelationship,
10
10
  // _validateFromPath, _validateViaPath (helpers, not exported).
11
11
  import { ParseError } from "../errors.js";
12
+ import { resolvedSource } from "../source.js";
12
13
  import { TYPE_OBJECT, TYPE_FIELD, TYPE_LAYOUT, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, TYPE_TEMPLATE, } from "../shared/base-types.js";
13
14
  import { TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_REQUIRED_SLOTS, } from "../template/template-constants.js";
15
+ import { OBJECT_SUBTYPE_VALUE } from "../core/object/object-constants.js";
14
16
  import { LAYOUT_SUBTYPE_DATA_GRID, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD, LAYOUT_DATA_GRID_ATTR_FILTER, } from "../presentation/layout/layout-constants.js";
15
17
  import { FIELD_ATTR_FILTERABLE, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_STORAGE, STORAGE_FLATTENED, } from "../core/field/field-constants.js";
16
18
  import { FIELD_ATTR_DB_INDEXED } from "../persistence/db/db-constants.js";
@@ -32,7 +34,7 @@ export function validateDataGridSortFields(root) {
32
34
  const sortField = layout.ownAttr(LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD);
33
35
  if (typeof sortField === "string" && !fieldNames.has(sortField)) {
34
36
  errors.push(new ParseError(`dataGrid layout "${layout.name}" on entity "${obj.name}" has @defaultSortField "${sortField}" ` +
35
- `but no such field exists on "${obj.name}". Available fields: ${[...fieldNames].join(", ")}`, { code: "ERR_BAD_DEFAULT_SORT_FIELD" }));
37
+ `but no such field exists on "${obj.name}". Available fields: ${[...fieldNames].join(", ")}`, { code: "ERR_BAD_DEFAULT_SORT_FIELD", source: layout.source }));
36
38
  }
37
39
  }
38
40
  }
@@ -55,8 +57,13 @@ export function validateTemplatePayloadRefs(root) {
55
57
  if (typeof payloadRef !== "string")
56
58
  continue; // absence handled by the required-attr schema check
57
59
  const payload = root.ownChildren().find((c) => c.type === TYPE_OBJECT && c.name === payloadRef);
58
- if (!payload) {
59
- errors.push(new ParseError(`template "${tmpl.name}" @payloadRef "${payloadRef}" does not resolve to a known object in this model`, { code: "ERR_INVALID_TEMPLATE" }));
60
+ if (!payload || payload.subType !== OBJECT_SUBTYPE_VALUE) {
61
+ // FR5d @payloadRef is a reference; emit format=resolved with
62
+ // referrer=template FQN, target=the unresolved payloadRef string.
63
+ errors.push(new ParseError(`template "${tmpl.name}" @payloadRef "${payloadRef}" does not resolve to an object.value at root`, {
64
+ code: "ERR_INVALID_TEMPLATE",
65
+ source: resolvedSource(tmpl.source, tmpl.fqn(), payloadRef),
66
+ }));
60
67
  continue;
61
68
  }
62
69
  const fieldNames = new Set(payload.children().filter((c) => c.type === TYPE_FIELD).map((f) => f.name));
@@ -64,8 +71,14 @@ export function validateTemplatePayloadRefs(root) {
64
71
  const slotList = Array.isArray(slots) ? slots : typeof slots === "string" ? [slots] : [];
65
72
  for (const slot of slotList) {
66
73
  if (typeof slot === "string" && !fieldNames.has(slot)) {
74
+ // FR5d — @requiredSlots is a field-on-payload reference; emit
75
+ // format=resolved with referrer=template FQN, target=`payloadRef.slot`
76
+ // (the dotted ref that did not resolve to a payload field).
67
77
  errors.push(new ParseError(`template "${tmpl.name}" @requiredSlots "${slot}" is not a field on payload "${payloadRef}". ` +
68
- `Available fields: ${[...fieldNames].join(", ")}`, { code: "ERR_INVALID_TEMPLATE" }));
78
+ `Available fields: ${[...fieldNames].join(", ")}`, {
79
+ code: "ERR_INVALID_TEMPLATE",
80
+ source: resolvedSource(tmpl.source, tmpl.fqn(), `${payloadRef}.${slot}`),
81
+ }));
69
82
  }
70
83
  }
71
84
  }
@@ -133,52 +146,101 @@ function _findRelationship(obj, name) {
133
146
  // Use children() so inherited relationships (via extends:/super:) are included.
134
147
  return obj.children().find((c) => c.type === TYPE_RELATIONSHIP && c.name === name);
135
148
  }
136
- function _validateFromPath(fromAttr, root, projectionName, fieldName, errors, label = "origin.passthrough.@from") {
149
+ function _validateFromPath(fromAttr, root, projection, fieldName, originSource, errors, label = "origin.passthrough.@from") {
150
+ const projectionName = projection.name;
151
+ // FR5d — referrer is `<projection-FQN>::<fieldName>` (the canonical
152
+ // "where the broken reference lives" identifier).
153
+ const referrer = `${projection.fqn()}::${fieldName}`;
137
154
  const dotIdx = fromAttr.indexOf(".");
138
155
  if (dotIdx < 1 || dotIdx === fromAttr.length - 1) {
139
- errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: must be of form "Entity.field".`, { code: "ERR_INVALID_ORIGIN" }));
156
+ // Malformed shape (not "Entity.field") not a reference resolution
157
+ // failure per se, but emit format=resolved with target=the bad string
158
+ // so consumers see the same envelope shape across all FR5d sites.
159
+ errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: must be of form "Entity.field".`, {
160
+ code: "ERR_INVALID_ORIGIN",
161
+ source: resolvedSource(originSource, referrer, fromAttr),
162
+ }));
140
163
  return;
141
164
  }
142
165
  const entityName = fromAttr.slice(0, dotIdx);
143
166
  const targetFieldName = fromAttr.slice(dotIdx + 1);
144
167
  const sourceObj = _findObject(root, entityName);
145
168
  if (!sourceObj) {
146
- errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, { code: "ERR_INVALID_ORIGIN" }));
169
+ // FR5d entity half of the ref didn't resolve. target = full ref.
170
+ errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, {
171
+ code: "ERR_INVALID_ORIGIN",
172
+ source: resolvedSource(originSource, referrer, fromAttr),
173
+ }));
147
174
  return;
148
175
  }
149
176
  const sourceField = _findField(sourceObj, targetFieldName);
150
177
  if (!sourceField) {
151
- errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such field "${targetFieldName}" on ${entityName}.`, { code: "ERR_INVALID_ORIGIN" }));
178
+ // FR5d entity resolved, field on it did not. target = full ref.
179
+ errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such field "${targetFieldName}" on ${entityName}.`, {
180
+ code: "ERR_INVALID_ORIGIN",
181
+ source: resolvedSource(originSource, referrer, fromAttr),
182
+ }));
152
183
  }
153
184
  }
154
- function _validateViaPath(viaAttr, root, projectionName, fieldName, errors) {
185
+ function _validateViaPath(viaAttr, root, projection, fieldName, originSource, errors) {
186
+ const projectionName = projection.name;
187
+ // FR5d — referrer is `<projection-FQN>::<fieldName>`.
188
+ const referrer = `${projection.fqn()}::${fieldName}`;
155
189
  const segments = viaAttr.split(".");
156
190
  if (segments.length < 2) {
157
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: must be of form "Entity.relationship[.relationship...]".`, { code: "ERR_INVALID_ORIGIN" }));
191
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: must be of form "Entity.relationship[.relationship...]".`, {
192
+ code: "ERR_INVALID_ORIGIN",
193
+ source: resolvedSource(originSource, referrer, viaAttr),
194
+ }));
158
195
  return;
159
196
  }
160
197
  const [entityName, ...relSegments] = segments;
161
198
  let currentObj = _findObject(root, entityName);
162
199
  if (!currentObj) {
163
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, { code: "ERR_INVALID_ORIGIN" }));
200
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, {
201
+ code: "ERR_INVALID_ORIGIN",
202
+ source: resolvedSource(originSource, referrer, viaAttr),
203
+ }));
164
204
  return;
165
205
  }
206
+ // FR5d — track the deepest-valid-prefix as we walk. The prefix grows
207
+ // segment-by-segment; on a hop failure the error message names the prefix
208
+ // that DID resolve, so authors can fix multi-hop typos quickly.
209
+ // After the entity lookup above, the deepest valid prefix is just the
210
+ // entity name; each successful relationship hop appends a segment.
211
+ const validSegments = [entityName];
166
212
  for (const relName of relSegments) {
167
213
  const rel = _findRelationship(currentObj, relName);
168
214
  if (!rel) {
169
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such relationship "${relName}" on ${currentObj.name}.`, { code: "ERR_INVALID_ORIGIN" }));
215
+ const prefix = validSegments.join(".");
216
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such relationship "${relName}" on ${currentObj.name}. ` +
217
+ `Deepest valid prefix was "${prefix}".`, {
218
+ code: "ERR_INVALID_ORIGIN",
219
+ source: resolvedSource(originSource, referrer, viaAttr),
220
+ }));
170
221
  return;
171
222
  }
172
223
  const refTarget = rel.ownAttr(RELATIONSHIP_ATTR_OBJECT_REF);
173
224
  if (typeof refTarget !== "string" || refTarget === "") {
174
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: relationship "${relName}" on ${currentObj.name} is missing @objectRef.`, { code: "ERR_INVALID_ORIGIN" }));
225
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: relationship "${relName}" on ${currentObj.name} is missing @objectRef.`, {
226
+ code: "ERR_INVALID_ORIGIN",
227
+ source: resolvedSource(originSource, referrer, viaAttr),
228
+ }));
175
229
  return;
176
230
  }
177
231
  const nextObj = _findObject(root, refTarget);
178
232
  if (!nextObj) {
179
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: relationship "${relName}" points to non-existent entity "${refTarget}".`, { code: "ERR_INVALID_ORIGIN" }));
233
+ // FR5d relationship's @objectRef points at a missing entity. This
234
+ // is the @objectRef-resolution edge of the via-path walk (the "5th
235
+ // site" in FR5d's scope list for @objectRef references encountered
236
+ // transitively).
237
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: relationship "${relName}" points to non-existent entity "${refTarget}".`, {
238
+ code: "ERR_INVALID_ORIGIN",
239
+ source: resolvedSource(originSource, referrer, refTarget),
240
+ }));
180
241
  return;
181
242
  }
243
+ validSegments.push(relName);
182
244
  currentObj = nextObj;
183
245
  }
184
246
  }
@@ -190,28 +252,30 @@ export function validateOriginPaths(root) {
190
252
  if (origin.subType === ORIGIN_SUBTYPE_PASSTHROUGH) {
191
253
  const from = origin.ownAttr(ORIGIN_PASSTHROUGH_ATTR_FROM);
192
254
  if (typeof from !== "string" || from === "") {
193
- errors.push(new ParseError(`origin.passthrough on ${obj.name}.${field.name}: missing @from.`, { code: "ERR_INVALID_ORIGIN" }));
255
+ // Missing-attr (not a reference resolution failure) keep the
256
+ // node's own source envelope (json/yaml/merged).
257
+ errors.push(new ParseError(`origin.passthrough on ${obj.name}.${field.name}: missing @from.`, { code: "ERR_INVALID_ORIGIN", source: origin.source }));
194
258
  continue;
195
259
  }
196
- _validateFromPath(from, root, obj.name, field.name, errors);
260
+ _validateFromPath(from, root, obj, field.name, origin.source, errors);
197
261
  const via = origin.ownAttr(ORIGIN_PASSTHROUGH_ATTR_VIA);
198
262
  if (typeof via === "string" && via !== "") {
199
- _validateViaPath(via, root, obj.name, field.name, errors);
263
+ _validateViaPath(via, root, obj, field.name, origin.source, errors);
200
264
  }
201
265
  }
202
266
  else if (origin.subType === ORIGIN_SUBTYPE_AGGREGATE) {
203
267
  const of_ = origin.ownAttr(ORIGIN_AGGREGATE_ATTR_OF);
204
268
  if (typeof of_ !== "string" || of_ === "") {
205
- errors.push(new ParseError(`origin.aggregate on ${obj.name}.${field.name}: missing @of.`, { code: "ERR_INVALID_ORIGIN" }));
269
+ errors.push(new ParseError(`origin.aggregate on ${obj.name}.${field.name}: missing @of.`, { code: "ERR_INVALID_ORIGIN", source: origin.source }));
206
270
  continue;
207
271
  }
208
- _validateFromPath(of_, root, obj.name, field.name, errors, "origin.aggregate.@of");
272
+ _validateFromPath(of_, root, obj, field.name, origin.source, errors, "origin.aggregate.@of");
209
273
  const via = origin.ownAttr(ORIGIN_AGGREGATE_ATTR_VIA);
210
274
  if (typeof via !== "string" || via === "") {
211
- errors.push(new ParseError(`origin.aggregate on ${obj.name}.${field.name}: missing @via (aggregates require a relationship path).`, { code: "ERR_INVALID_ORIGIN" }));
275
+ errors.push(new ParseError(`origin.aggregate on ${obj.name}.${field.name}: missing @via (aggregates require a relationship path).`, { code: "ERR_INVALID_ORIGIN", source: origin.source }));
212
276
  continue;
213
277
  }
214
- _validateViaPath(via, root, obj.name, field.name, errors);
278
+ _validateViaPath(via, root, obj, field.name, origin.source, errors);
215
279
  }
216
280
  }
217
281
  }
@@ -240,10 +304,10 @@ export function validateFieldObjectStorage(root) {
240
304
  continue;
241
305
  const objectRef = field.ownAttr(FIELD_ATTR_OBJECT_REF);
242
306
  if (typeof objectRef !== "string" || objectRef.length === 0) {
243
- errors.push(new ParseError(`field "${obj.name}.${field.name}" sets @storage but has no @objectRef`, { code: "ERR_STORAGE_WITHOUT_OBJECT_REF" }));
307
+ errors.push(new ParseError(`field "${obj.name}.${field.name}" sets @storage but has no @objectRef`, { code: "ERR_STORAGE_WITHOUT_OBJECT_REF", source: field.source }));
244
308
  }
245
309
  if (storage === STORAGE_FLATTENED && field.isArray === true) {
246
- errors.push(new ParseError(`field "${obj.name}.${field.name}" sets @storage "flattened" with isArray=true; flattened storage requires a single nested value`, { code: "ERR_STORAGE_FLATTENED_ARRAY" }));
310
+ errors.push(new ParseError(`field "${obj.name}.${field.name}" sets @storage "flattened" with isArray=true; flattened storage requires a single nested value`, { code: "ERR_STORAGE_FLATTENED_ARRAY", source: field.source }));
247
311
  }
248
312
  }
249
313
  }
@@ -272,18 +336,18 @@ export function validateDataGridFilterValues(root) {
272
336
  // Type errors (e.g. legacy string form) are reported by validateAttrSchema.
273
337
  if (typeof filter !== "object" || filter === null || Array.isArray(filter))
274
338
  continue;
275
- checkFilterClauses(filter, allow, obj.name, layout.name, errors);
339
+ checkFilterClauses(filter, allow, obj.name, layout.name, layout.source, errors);
276
340
  }
277
341
  }
278
342
  return errors;
279
343
  }
280
- function checkFilterClauses(filter, allow, entityName, layoutName, errors) {
344
+ function checkFilterClauses(filter, allow, entityName, layoutName, layoutSource, errors) {
281
345
  for (const [key, clause] of Object.entries(filter)) {
282
346
  if (key === FILTER_COMPOSE_OR || key === FILTER_COMPOSE_AND) {
283
347
  if (Array.isArray(clause)) {
284
348
  for (const sub of clause) {
285
349
  if (typeof sub === "object" && sub !== null && !Array.isArray(sub)) {
286
- checkFilterClauses(sub, allow, entityName, layoutName, errors);
350
+ checkFilterClauses(sub, allow, entityName, layoutName, layoutSource, errors);
287
351
  }
288
352
  }
289
353
  }
@@ -292,7 +356,7 @@ function checkFilterClauses(filter, allow, entityName, layoutName, errors) {
292
356
  const allowedOps = allow.get(key);
293
357
  if (allowedOps === undefined) {
294
358
  errors.push(new ParseError(`dataGrid layout "${layoutName}" on entity "${entityName}" has @filter over ` +
295
- `non-filterable field "${key}". Filterable fields: ${[...allow.keys()].join(", ") || "(none)"}`, { code: "ERR_BAD_ATTR_FILTER" }));
359
+ `non-filterable field "${key}". Filterable fields: ${[...allow.keys()].join(", ") || "(none)"}`, { code: "ERR_BAD_ATTR_FILTER", source: layoutSource }));
296
360
  continue;
297
361
  }
298
362
  // After parse-time desugaring (FilterAttr.desugar), every non-composition field clause
@@ -301,7 +365,7 @@ function checkFilterClauses(filter, allow, entityName, layoutName, errors) {
301
365
  for (const op of Object.keys(clause)) {
302
366
  if (!allowedOps.includes(op)) {
303
367
  errors.push(new ParseError(`dataGrid layout "${layoutName}" on entity "${entityName}" @filter uses disallowed ` +
304
- `op "${key}.${op}". Allowed ops for "${key}": ${allowedOps.join(", ")}`, { code: "ERR_BAD_ATTR_FILTER" }));
368
+ `op "${key}.${op}". Allowed ops for "${key}": ${allowedOps.join(", ")}`, { code: "ERR_BAD_ATTR_FILTER", source: layoutSource }));
305
369
  }
306
370
  }
307
371
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation-passes.js","sourceRoot":"","sources":["../../src/loader/validation-passes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation-passes.js","sourceRoot":"","sources":["../../src/loader/validation-passes.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,EAAE;AACF,oEAAoE;AACpE,+DAA+D;AAC/D,oFAAoF;AACpF,wDAAwD;AACxD,0EAA0E;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,wCAAwC,EACxC,4BAA4B,GAC7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACd,MAAM,kCAAkC,CAAC;AAE1C,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,+DAA+D;QAC/D,wDAAwD;QACxD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAClE,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,EAAE,CAAC;YAC/G,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;YAC3E,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,oBAAoB,MAAM,CAAC,IAAI,gBAAgB,GAAG,CAAC,IAAI,4BAA4B,SAAS,IAAI;oBAChG,gCAAgC,GAAG,CAAC,IAAI,wBAAwB,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC5F,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC9D,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,uEAAuE;AACvE,iEAAiE;AACjE,+EAA+E;AAC/E,uEAAuE;AACvE,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,UAAU,2BAA2B,CAAC,IAAc;IACxD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC3D,IAAI,OAAO,UAAU,KAAK,QAAQ;YAAE,SAAS,CAAC,oDAAoD;QAClG,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAChG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,oBAAoB,EAAE,CAAC;YACzD,+DAA+D;YAC/D,kEAAkE;YAClE,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,aAAa,IAAI,CAAC,IAAI,kBAAkB,UAAU,+CAA+C,EACjG;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC;aAC5D,CACF,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC3E,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,8DAA8D;gBAC9D,uEAAuE;gBACvE,4DAA4D;gBAC5D,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,aAAa,IAAI,CAAC,IAAI,qBAAqB,IAAI,gCAAgC,UAAU,KAAK;oBAC9F,qBAAqB,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACjD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;iBACzE,CACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,0EAA0E;QAC1E,uDAAuD;QACvD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,6EAA6E;QAC7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,MAAM;oBAAE,IAAI,OAAO,IAAI,KAAK,QAAQ;wBAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,UAAU,KAAK,IAAI;gBAAE,SAAS;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI;gBAAE,SAAS;YAC5D,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChD,QAAQ,CAAC,IAAI,CACX,qCAAqC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,qCAAqC;gBAChG,4FAA4F;gBAC5F,6DAA6D,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,EAAE;AACF,0EAA0E;AAC1E,iBAAiB;AACjB,+DAA+D;AAC/D,2DAA2D;AAC3D,+EAA+E;AAC/E,2CAA2C;AAC3C,EAAE;AACF,yEAAyE;AACzE,qEAAqE;AACrE,8EAA8E;AAE9E,SAAS,WAAW,CAAC,IAAc,EAAE,IAAY;IAC/C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,UAAU,CAAC,GAAa,EAAE,IAAY;IAC7C,yEAAyE;IACzE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa,EAAE,IAAY;IACpD,gFAAgF;IAChF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAgB,EAChB,IAAc,EACd,UAAoB,EACpB,SAAiB,EACjB,YAAyB,EACzB,MAAoB,EACpB,QAAgB,0BAA0B;IAE1C,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IACvC,oEAAoE;IACpE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,SAAS,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,oEAAoE;QACpE,sEAAsE;QACtE,kEAAkE;QAClE,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,KAAK,KAAK,QAAQ,QAAQ,cAAc,IAAI,SAAS,mCAAmC,EAC3F;YACE,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACzD,CACF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,mEAAmE;QACnE,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,KAAK,KAAK,QAAQ,QAAQ,cAAc,IAAI,SAAS,qBAAqB,UAAU,IAAI,EAC3F;YACE,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACzD,CACF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,kEAAkE;QAClE,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,GAAG,KAAK,KAAK,QAAQ,QAAQ,cAAc,IAAI,SAAS,oBAAoB,eAAe,QAAQ,UAAU,GAAG,EAChH;YACE,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACzD,CACF,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAe,EACf,IAAc,EACd,UAAoB,EACpB,SAAiB,EACjB,YAAyB,EACzB,MAAoB;IAEpB,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;IACvC,sDAAsD;IACtD,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,SAAS,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,gBAAgB,OAAO,QAAQ,cAAc,IAAI,SAAS,4DAA4D,EACtH;YACE,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC;SACxD,CACF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,GAAG,QAAiC,CAAC;IACvE,IAAI,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,gBAAgB,OAAO,QAAQ,cAAc,IAAI,SAAS,qBAAqB,UAAU,IAAI,EAC7F;YACE,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC;SACxD,CACF,CACF,CAAC;QACF,OAAO;IACT,CAAC;IACD,qEAAqE;IACrE,0EAA0E;IAC1E,gEAAgE;IAChE,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,aAAa,GAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,gBAAgB,OAAO,QAAQ,cAAc,IAAI,SAAS,2BAA2B,OAAO,QAAQ,UAAU,CAAC,IAAI,IAAI;gBACvH,6BAA6B,MAAM,IAAI,EACvC;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC;aACxD,CACF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC5D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,gBAAgB,OAAO,QAAQ,cAAc,IAAI,SAAS,mBAAmB,OAAO,QAAQ,UAAU,CAAC,IAAI,yBAAyB,EACpI;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC;aACxD,CACF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,oEAAoE;YACpE,mEAAmE;YACnE,mEAAmE;YACnE,iBAAiB;YACjB,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,gBAAgB,OAAO,QAAQ,cAAc,IAAI,SAAS,mBAAmB,OAAO,oCAAoC,SAAS,IAAI,EACrI;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC;aAC1D,CACF,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,UAAU,GAAG,OAAO,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YAC3E,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;gBAC/E,IAAI,MAAM,CAAC,OAAO,KAAK,0BAA0B,EAAE,CAAC;oBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;oBAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;wBAC5C,+DAA+D;wBAC/D,iDAAiD;wBACjD,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,yBAAyB,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,kBAAkB,EACjE,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CACtD,CACF,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;oBACxD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;wBAC1C,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;oBACvD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;oBACrD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;wBAC1C,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,uBAAuB,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,gBAAgB,EAC7D,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CACtD,CACF,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;oBAC7F,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;oBACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;wBAC1C,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,uBAAuB,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,0DAA0D,EACvG,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CACtD,CACF,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,sCAAsC;AACtC,EAAE;AACF,SAAS;AACT,0EAA0E;AAC1E,0CAA0C;AAC1C,2EAA2E;AAC3E,iEAAiE;AACjE,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,2DAA2D;AAC3D,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B,CAAC,IAAc;IACvD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS;YACxD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACvD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,UAAU,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,uCAAuC,EACvE,EAAE,IAAI,EAAE,gCAAgC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACjE,CACF,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,KAAK,iBAAiB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,UAAU,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,iGAAiG,EACjI,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAC9D,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,8EAA8E;AAC9E,8EAA8E;AAE9E,MAAM,UAAU,4BAA4B,CAAC,IAAc;IACzD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB,CACxE,EAAE,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAC5D,4EAA4E;YAC5E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,SAAS;YACrF,kBAAkB,CAAC,MAAiC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,MAA+B,EAC/B,KAAqC,EACrC,UAAkB,EAClB,UAAkB,EAClB,YAAyB,EACzB,MAAoB;IAEpB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnE,kBAAkB,CAAC,GAA8B,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;oBAC1G,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,oBAAoB,UAAU,gBAAgB,UAAU,qBAAqB;gBAC3E,yBAAyB,GAAG,yBAAyB,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,EACjG,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,CACtD,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,uFAAuF;QACvF,mGAAmG;QACnG,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,oBAAoB,UAAU,gBAAgB,UAAU,4BAA4B;wBAClF,OAAO,GAAG,IAAI,EAAE,uBAAuB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACzE,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,CACtD,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/naming.d.ts CHANGED
@@ -8,9 +8,22 @@ import type { MetaData } from "./shared/meta-data.js";
8
8
  */
9
9
  export declare function stripPackage(name: string | undefined): string;
10
10
  export declare function toSnakeCase(s: string): string;
11
+ export declare function toKebabCase(s: string): string;
12
+ /**
13
+ * Column-naming strategy applied by the persistence layer to fields with no
14
+ * explicit `@column` override. Persistence-layer config (set on
15
+ * ObjectManager / buildExpectedSchema / codegen config), not a metadata attr —
16
+ * the same metadata can drive snake_case (PG convention) or literal (EF
17
+ * convention) consumers. TS port defaults to snake_case; C# port defaults to
18
+ * literal.
19
+ */
20
+ export type ColumnNamingStrategy = "snake_case" | "literal" | "kebab-case";
21
+ /** Single source of truth for the TS-port default. */
22
+ export declare const DEFAULT_COLUMN_NAMING_STRATEGY: ColumnNamingStrategy;
23
+ export declare function applyColumnNamingStrategy(name: string, strategy: ColumnNamingStrategy): string;
11
24
  export declare function pluralize(s: string): string;
12
25
  export declare function resolveTableName(entity: MetaData): string;
13
- export declare function resolveColumnName(field: MetaData): string;
26
+ export declare function resolveColumnName(field: MetaData, strategy?: ColumnNamingStrategy): string;
14
27
  /**
15
28
  * Returns the DB schema declared on an entity's primary source child, or undefined
16
29
  * when no @schema attr is set or no source child exists. @schema is paradigm-agnostic
@@ -24,5 +37,5 @@ export interface EntityNameMap {
24
37
  jsToDb: Map<string, string>;
25
38
  dbToJs: Map<string, string>;
26
39
  }
27
- export declare function buildNameMap(entity: MetaData): EntityNameMap;
40
+ export declare function buildNameMap(entity: MetaData, strategy?: ColumnNamingStrategy): EntityNameMap;
28
41
  //# sourceMappingURL=naming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUtD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI7D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CASzD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAIzD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CASvE;AAED,2GAA2G;AAC3G,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAU5D"}
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUtD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI7D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3E,sDAAsD;AACtD,eAAO,MAAM,8BAA8B,EAAE,oBAAmC,CAAC;AAEjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAM9F;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAUzD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,oBAAqD,GAC9D,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CASvE;AAED,2GAA2G;AAC3G,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,EAChB,QAAQ,GAAE,oBAAqD,GAC9D,aAAa,CAUf"}
package/dist/naming.js CHANGED
@@ -22,6 +22,18 @@ export function toSnakeCase(s) {
22
22
  .replace(/([a-z0-9])([A-Z])/g, "$1_$2")
23
23
  .toLowerCase();
24
24
  }
25
+ export function toKebabCase(s) {
26
+ return toSnakeCase(s).replace(/_/g, "-");
27
+ }
28
+ /** Single source of truth for the TS-port default. */
29
+ export const DEFAULT_COLUMN_NAMING_STRATEGY = "snake_case";
30
+ export function applyColumnNamingStrategy(name, strategy) {
31
+ switch (strategy) {
32
+ case "literal": return name;
33
+ case "kebab-case": return toKebabCase(name);
34
+ case "snake_case": return toSnakeCase(name);
35
+ }
36
+ }
25
37
  export function pluralize(s) {
26
38
  if (/(s|x|z|ch|sh)$/i.test(s))
27
39
  return s + "es";
@@ -30,18 +42,20 @@ export function pluralize(s) {
30
42
  return s + "s";
31
43
  }
32
44
  export function resolveTableName(entity) {
33
- // Primary writable source carries the physical table name (@table).
34
- const source = entity.ownChildren().find((c) => c instanceof MetaSource && c.isWritable() && c.role === SOURCE_ROLE_PRIMARY);
45
+ // Primary source carries the physical table/view name (@table). Writability
46
+ // (table vs view/storedProc/tableFunction) only affects write-routing for
47
+ // SELECT-side name resolution, a read-only primary source is the right answer.
48
+ const source = entity.ownChildren().find((c) => c instanceof MetaSource && c.role === SOURCE_ROLE_PRIMARY);
35
49
  const name = source?.tableName;
36
50
  if (typeof name === "string" && name !== "")
37
51
  return name;
38
52
  return pluralize(toSnakeCase(entity.name));
39
53
  }
40
- export function resolveColumnName(field) {
54
+ export function resolveColumnName(field, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
41
55
  const col = field.ownAttr(FIELD_ATTR_COLUMN);
42
56
  if (typeof col === "string" && col)
43
57
  return col;
44
- return toSnakeCase(field.name);
58
+ return applyColumnNamingStrategy(field.name, strategy);
45
59
  }
46
60
  /**
47
61
  * Returns the DB schema declared on an entity's primary source child, or undefined
@@ -59,13 +73,13 @@ export function resolveTableSchema(entity) {
59
73
  return schema;
60
74
  return undefined;
61
75
  }
62
- export function buildNameMap(entity) {
76
+ export function buildNameMap(entity, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
63
77
  const jsToDb = new Map();
64
78
  const dbToJs = new Map();
65
79
  for (const child of entity.ownChildren()) {
66
80
  if (child.type !== TYPE_FIELD)
67
81
  continue;
68
- const dbCol = resolveColumnName(child);
82
+ const dbCol = resolveColumnName(child, strategy);
69
83
  jsToDb.set(child.name, dbCol);
70
84
  dbToJs.set(dbCol, child.name);
71
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAwB;IACnD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAChD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,CAAC;SACL,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAYD,sDAAsD;AACtD,MAAM,CAAC,MAAM,8BAA8B,GAAyB,YAAY,CAAC;AAEjF,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,QAA8B;IACpF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC,CAAK,OAAO,IAAI,CAAC;QAChC,KAAK,YAAY,CAAC,CAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,YAAY,CAAC,CAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzD,OAAO,CAAC,GAAG,GAAG,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAgB;IAC/C,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CACtC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAClF,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,EAAE,SAAS,CAAC;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAe,EACf,WAAiC,8BAA8B;IAE/D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAC/C,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAgB;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CACtC,CAAC,CAAC,EAAmB,EAAE,CACrB,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAC5D,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,MAAM,UAAU,YAAY,CAC1B,MAAgB,EAChB,WAAiC,8BAA8B;IAE/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { TypeRegistry } from "./registry.js";
2
2
  import { MetaRoot } from "./shared/meta-root.js";
3
3
  import { ParseError } from "./errors.js";
4
+ import { type ErrorSource, type LoaderWarning } from "./source.js";
4
5
  export interface ParseOptions {
5
6
  registry: TypeRegistry;
6
7
  strict?: boolean;
@@ -22,16 +23,28 @@ export interface ParseOptions {
22
23
  * another file parsed later.
23
24
  */
24
25
  deferSuperResolution?: boolean;
26
+ /**
27
+ * FR5b — discriminant for the source-on-node envelope's `format` field.
28
+ * Defaults to `"json"` (parseJson supplies nothing). parseYaml passes
29
+ * `"yaml"` so populateNodeSource emits `format: "yaml"` and, when the
30
+ * desugar attached one, the optional `yamlPosition`.
31
+ */
32
+ sourceFormat?: "json" | "yaml";
25
33
  }
26
34
  export interface ParseResult {
27
35
  root: MetaRoot;
28
36
  warnings: string[];
29
37
  errors: ParseError[];
38
+ /**
39
+ * FR5c — envelope-shaped warnings (e.g. WARN_DUPLICATE_DECLARATION) produced
40
+ * during the parse/merge pipeline. Distinct from the legacy `warnings:
41
+ * string[]` channel: those messages get wrapped in a `WARN_LEGACY` envelope
42
+ * at the loader boundary, while envelope warnings already carry their own
43
+ * `code` + `source` and are surfaced unchanged. Defaults to `[]`.
44
+ */
45
+ envelopeWarnings: LoaderWarning[];
30
46
  }
31
- export declare function errOpts(source: string | undefined, path?: string): {
32
- source?: string;
33
- path?: string;
34
- };
47
+ export declare function errSource(): ErrorSource;
35
48
  /**
36
49
  * buildTree — the shared registry-driven tree-builder.
37
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"parser-core.d.ts","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AA+BzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAOD,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAKpC;AA+FD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CAoG1E"}
1
+ {"version":3,"file":"parser-core.d.ts","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAoB,MAAM,aAAa,CAAC;AAkCrG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,EAAE,aAAa,EAAE,CAAC;CACnC;AAYD,wBAAgB,SAAS,IAAI,WAAW,CAuBvC;AA6ID;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CA8I1E"}