@metaobjectsdev/metadata 0.6.0 → 0.7.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) 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 +13 -4
  14. package/dist/core/parser-yaml.js.map +1 -1
  15. package/dist/errors.d.ts +28 -8
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +31 -5
  18. package/dist/errors.js.map +1 -1
  19. package/dist/index.d.ts +6 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +9 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/json-path.d.ts +8 -0
  24. package/dist/json-path.d.ts.map +1 -0
  25. package/dist/json-path.js +39 -0
  26. package/dist/json-path.js.map +1 -0
  27. package/dist/loader/meta-data-loader.d.ts +47 -6
  28. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  29. package/dist/loader/meta-data-loader.js +106 -8
  30. package/dist/loader/meta-data-loader.js.map +1 -1
  31. package/dist/loader/meta-data-source.d.ts +6 -2
  32. package/dist/loader/meta-data-source.d.ts.map +1 -1
  33. package/dist/loader/meta-data-source.js +10 -6
  34. package/dist/loader/meta-data-source.js.map +1 -1
  35. package/dist/loader/shortcuts.d.ts +9 -0
  36. package/dist/loader/shortcuts.d.ts.map +1 -0
  37. package/dist/loader/shortcuts.js +19 -0
  38. package/dist/loader/shortcuts.js.map +1 -0
  39. package/dist/loader/sources/directory-source.d.ts +15 -0
  40. package/dist/loader/sources/directory-source.d.ts.map +1 -0
  41. package/dist/loader/sources/directory-source.js +80 -0
  42. package/dist/loader/sources/directory-source.js.map +1 -0
  43. package/dist/loader/sources/file-source.d.ts +12 -0
  44. package/dist/loader/sources/file-source.d.ts.map +1 -0
  45. package/dist/loader/sources/file-source.js +46 -0
  46. package/dist/loader/sources/file-source.js.map +1 -0
  47. package/dist/loader/sources/index.d.ts +5 -0
  48. package/dist/loader/sources/index.d.ts.map +1 -0
  49. package/dist/loader/sources/index.js +5 -0
  50. package/dist/loader/sources/index.js.map +1 -0
  51. package/dist/loader/sources/uri-source.d.ts +9 -0
  52. package/dist/loader/sources/uri-source.d.ts.map +1 -0
  53. package/dist/loader/sources/uri-source.js +42 -0
  54. package/dist/loader/sources/uri-source.js.map +1 -0
  55. package/dist/loader/validation-passes.d.ts.map +1 -1
  56. package/dist/loader/validation-passes.js +27 -27
  57. package/dist/loader/validation-passes.js.map +1 -1
  58. package/dist/naming.d.ts +15 -2
  59. package/dist/naming.d.ts.map +1 -1
  60. package/dist/naming.js +20 -6
  61. package/dist/naming.js.map +1 -1
  62. package/dist/parser-core.d.ts +2 -4
  63. package/dist/parser-core.d.ts.map +1 -1
  64. package/dist/parser-core.js +111 -42
  65. package/dist/parser-core.js.map +1 -1
  66. package/dist/parser-json.d.ts.map +1 -1
  67. package/dist/parser-json.js +10 -2
  68. package/dist/parser-json.js.map +1 -1
  69. package/dist/persistence/source/validate-source-roles.js +2 -2
  70. package/dist/persistence/source/validate-source-roles.js.map +1 -1
  71. package/dist/semantic-diff.d.ts +5 -0
  72. package/dist/semantic-diff.d.ts.map +1 -0
  73. package/dist/semantic-diff.js +49 -0
  74. package/dist/semantic-diff.js.map +1 -0
  75. package/dist/shared/meta-data.d.ts +10 -0
  76. package/dist/shared/meta-data.d.ts.map +1 -1
  77. package/dist/shared/meta-data.js +23 -0
  78. package/dist/shared/meta-data.js.map +1 -1
  79. package/dist/source.d.ts +68 -0
  80. package/dist/source.d.ts.map +1 -0
  81. package/dist/source.js +13 -0
  82. package/dist/source.js.map +1 -0
  83. package/dist/subtype-rules.js +1 -1
  84. package/dist/subtype-rules.js.map +1 -1
  85. package/dist/super-resolve.d.ts +2 -0
  86. package/dist/super-resolve.d.ts.map +1 -1
  87. package/dist/super-resolve.js +1 -1
  88. package/dist/super-resolve.js.map +1 -1
  89. package/package.json +1 -1
  90. package/src/attr-schema-validate.ts +7 -7
  91. package/src/core/export-json.ts +15 -18
  92. package/src/core/index.ts +8 -2
  93. package/src/core/parser-yaml.ts +15 -4
  94. package/src/errors.ts +42 -8
  95. package/src/index.ts +28 -3
  96. package/src/json-path.ts +46 -0
  97. package/src/loader/meta-data-loader.ts +148 -10
  98. package/src/loader/meta-data-source.ts +10 -6
  99. package/src/loader/shortcuts.ts +31 -0
  100. package/src/loader/sources/directory-source.ts +90 -0
  101. package/src/{core → loader/sources}/file-source.ts +3 -3
  102. package/src/loader/sources/index.ts +6 -0
  103. package/src/loader/sources/uri-source.ts +44 -0
  104. package/src/loader/validation-passes.ts +28 -24
  105. package/src/naming.ts +39 -7
  106. package/src/parser-core.ts +113 -43
  107. package/src/parser-json.ts +11 -2
  108. package/src/persistence/source/validate-source-roles.ts +2 -2
  109. package/src/semantic-diff.ts +48 -0
  110. package/src/shared/meta-data.ts +28 -0
  111. package/src/source.ts +61 -0
  112. package/src/subtype-rules.ts +1 -1
  113. package/src/super-resolve.ts +3 -1
  114. package/src/core/file-meta-data-loader.ts +0 -89
@@ -0,0 +1,42 @@
1
+ // UriSource — a MetaDataSource that fetches content from a URI.
2
+ // Supports file://, http://, and https:// schemes.
3
+ import { readFile } from "node:fs/promises";
4
+ import { fileURLToPath } from "node:url";
5
+ import { extname } from "node:path";
6
+ function inferFormat(uri) {
7
+ // URL constructor handles file://, http://, https:// uniformly.
8
+ // Strip query/fragment by reading .pathname.
9
+ try {
10
+ const pathname = new URL(uri).pathname;
11
+ const ext = extname(pathname).toLowerCase();
12
+ return ext === ".yaml" || ext === ".yml" ? "yaml" : "json";
13
+ }
14
+ catch {
15
+ // If the URI isn't a valid URL, fall back to JSON.
16
+ return "json";
17
+ }
18
+ }
19
+ export class UriSource {
20
+ uri;
21
+ id;
22
+ format;
23
+ constructor(uri, format) {
24
+ this.uri = uri;
25
+ this.id = uri;
26
+ this.format = format ?? inferFormat(uri);
27
+ }
28
+ async read() {
29
+ if (this.uri.startsWith("file://")) {
30
+ return readFile(fileURLToPath(this.uri), "utf-8");
31
+ }
32
+ if (this.uri.startsWith("http://") || this.uri.startsWith("https://")) {
33
+ const res = await fetch(this.uri);
34
+ if (!res.ok) {
35
+ throw new Error(`UriSource: ${this.uri} -> HTTP ${res.status}`);
36
+ }
37
+ return res.text();
38
+ }
39
+ throw new Error(`UriSource: unsupported scheme on ${this.uri}`);
40
+ }
41
+ }
42
+ //# sourceMappingURL=uri-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uri-source.js","sourceRoot":"","sources":["../../../src/loader/sources/uri-source.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,mDAAmD;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,SAAS,WAAW,CAAC,GAAW;IAC9B,gEAAgE;IAChE,6CAA6C;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,SAAS;IAIQ;IAHnB,EAAE,CAAS;IACX,MAAM,CAAiB;IAEhC,YAA4B,GAAW,EAAE,MAAuB;QAApC,QAAG,GAAH,GAAG,CAAQ;QACrC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-passes.d.ts","sourceRoot":"","sources":["../../src/loader/validation-passes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA8C1C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAuBvE;AAaD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAiCxE;AAMD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CA8BnE;AAsID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAiDhE;AAgBD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA0BvE;AAWD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAoBzE"}
1
+ {"version":3,"file":"validation-passes.d.ts","sourceRoot":"","sources":["../../src/loader/validation-passes.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA+C1C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAuBvE;AAaD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAiCxE;AAMD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CA8BnE;AAwID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAiDhE;AAgBD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA0BvE;AAWD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAoBzE"}
@@ -32,7 +32,7 @@ export function validateDataGridSortFields(root) {
32
32
  const sortField = layout.ownAttr(LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD);
33
33
  if (typeof sortField === "string" && !fieldNames.has(sortField)) {
34
34
  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" }));
35
+ `but no such field exists on "${obj.name}". Available fields: ${[...fieldNames].join(", ")}`, { code: "ERR_BAD_DEFAULT_SORT_FIELD", source: layout.source }));
36
36
  }
37
37
  }
38
38
  }
@@ -56,7 +56,7 @@ export function validateTemplatePayloadRefs(root) {
56
56
  continue; // absence handled by the required-attr schema check
57
57
  const payload = root.ownChildren().find((c) => c.type === TYPE_OBJECT && c.name === payloadRef);
58
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" }));
59
+ errors.push(new ParseError(`template "${tmpl.name}" @payloadRef "${payloadRef}" does not resolve to a known object in this model`, { code: "ERR_INVALID_TEMPLATE", source: tmpl.source }));
60
60
  continue;
61
61
  }
62
62
  const fieldNames = new Set(payload.children().filter((c) => c.type === TYPE_FIELD).map((f) => f.name));
@@ -65,7 +65,7 @@ export function validateTemplatePayloadRefs(root) {
65
65
  for (const slot of slotList) {
66
66
  if (typeof slot === "string" && !fieldNames.has(slot)) {
67
67
  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" }));
68
+ `Available fields: ${[...fieldNames].join(", ")}`, { code: "ERR_INVALID_TEMPLATE", source: tmpl.source }));
69
69
  }
70
70
  }
71
71
  }
@@ -133,50 +133,50 @@ function _findRelationship(obj, name) {
133
133
  // Use children() so inherited relationships (via extends:/super:) are included.
134
134
  return obj.children().find((c) => c.type === TYPE_RELATIONSHIP && c.name === name);
135
135
  }
136
- function _validateFromPath(fromAttr, root, projectionName, fieldName, errors, label = "origin.passthrough.@from") {
136
+ function _validateFromPath(fromAttr, root, projectionName, fieldName, originSource, errors, label = "origin.passthrough.@from") {
137
137
  const dotIdx = fromAttr.indexOf(".");
138
138
  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" }));
139
+ errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: must be of form "Entity.field".`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
140
140
  return;
141
141
  }
142
142
  const entityName = fromAttr.slice(0, dotIdx);
143
143
  const targetFieldName = fromAttr.slice(dotIdx + 1);
144
144
  const sourceObj = _findObject(root, entityName);
145
145
  if (!sourceObj) {
146
- errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, { code: "ERR_INVALID_ORIGIN" }));
146
+ errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
147
147
  return;
148
148
  }
149
149
  const sourceField = _findField(sourceObj, targetFieldName);
150
150
  if (!sourceField) {
151
- errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such field "${targetFieldName}" on ${entityName}.`, { code: "ERR_INVALID_ORIGIN" }));
151
+ errors.push(new ParseError(`${label} "${fromAttr}" on ${projectionName}.${fieldName}: no such field "${targetFieldName}" on ${entityName}.`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
152
152
  }
153
153
  }
154
- function _validateViaPath(viaAttr, root, projectionName, fieldName, errors) {
154
+ function _validateViaPath(viaAttr, root, projectionName, fieldName, originSource, errors) {
155
155
  const segments = viaAttr.split(".");
156
156
  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" }));
157
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: must be of form "Entity.relationship[.relationship...]".`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
158
158
  return;
159
159
  }
160
160
  const [entityName, ...relSegments] = segments;
161
161
  let currentObj = _findObject(root, entityName);
162
162
  if (!currentObj) {
163
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, { code: "ERR_INVALID_ORIGIN" }));
163
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such entity "${entityName}".`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
164
164
  return;
165
165
  }
166
166
  for (const relName of relSegments) {
167
167
  const rel = _findRelationship(currentObj, relName);
168
168
  if (!rel) {
169
- errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such relationship "${relName}" on ${currentObj.name}.`, { code: "ERR_INVALID_ORIGIN" }));
169
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: no such relationship "${relName}" on ${currentObj.name}.`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
170
170
  return;
171
171
  }
172
172
  const refTarget = rel.ownAttr(RELATIONSHIP_ATTR_OBJECT_REF);
173
173
  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" }));
174
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: relationship "${relName}" on ${currentObj.name} is missing @objectRef.`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
175
175
  return;
176
176
  }
177
177
  const nextObj = _findObject(root, refTarget);
178
178
  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" }));
179
+ errors.push(new ParseError(`origin.@via "${viaAttr}" on ${projectionName}.${fieldName}: relationship "${relName}" points to non-existent entity "${refTarget}".`, { code: "ERR_INVALID_ORIGIN", source: originSource }));
180
180
  return;
181
181
  }
182
182
  currentObj = nextObj;
@@ -190,28 +190,28 @@ export function validateOriginPaths(root) {
190
190
  if (origin.subType === ORIGIN_SUBTYPE_PASSTHROUGH) {
191
191
  const from = origin.ownAttr(ORIGIN_PASSTHROUGH_ATTR_FROM);
192
192
  if (typeof from !== "string" || from === "") {
193
- errors.push(new ParseError(`origin.passthrough on ${obj.name}.${field.name}: missing @from.`, { code: "ERR_INVALID_ORIGIN" }));
193
+ errors.push(new ParseError(`origin.passthrough on ${obj.name}.${field.name}: missing @from.`, { code: "ERR_INVALID_ORIGIN", source: origin.source }));
194
194
  continue;
195
195
  }
196
- _validateFromPath(from, root, obj.name, field.name, errors);
196
+ _validateFromPath(from, root, obj.name, field.name, origin.source, errors);
197
197
  const via = origin.ownAttr(ORIGIN_PASSTHROUGH_ATTR_VIA);
198
198
  if (typeof via === "string" && via !== "") {
199
- _validateViaPath(via, root, obj.name, field.name, errors);
199
+ _validateViaPath(via, root, obj.name, field.name, origin.source, errors);
200
200
  }
201
201
  }
202
202
  else if (origin.subType === ORIGIN_SUBTYPE_AGGREGATE) {
203
203
  const of_ = origin.ownAttr(ORIGIN_AGGREGATE_ATTR_OF);
204
204
  if (typeof of_ !== "string" || of_ === "") {
205
- errors.push(new ParseError(`origin.aggregate on ${obj.name}.${field.name}: missing @of.`, { code: "ERR_INVALID_ORIGIN" }));
205
+ errors.push(new ParseError(`origin.aggregate on ${obj.name}.${field.name}: missing @of.`, { code: "ERR_INVALID_ORIGIN", source: origin.source }));
206
206
  continue;
207
207
  }
208
- _validateFromPath(of_, root, obj.name, field.name, errors, "origin.aggregate.@of");
208
+ _validateFromPath(of_, root, obj.name, field.name, origin.source, errors, "origin.aggregate.@of");
209
209
  const via = origin.ownAttr(ORIGIN_AGGREGATE_ATTR_VIA);
210
210
  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" }));
211
+ 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
212
  continue;
213
213
  }
214
- _validateViaPath(via, root, obj.name, field.name, errors);
214
+ _validateViaPath(via, root, obj.name, field.name, origin.source, errors);
215
215
  }
216
216
  }
217
217
  }
@@ -240,10 +240,10 @@ export function validateFieldObjectStorage(root) {
240
240
  continue;
241
241
  const objectRef = field.ownAttr(FIELD_ATTR_OBJECT_REF);
242
242
  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" }));
243
+ 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
244
  }
245
245
  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" }));
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", source: field.source }));
247
247
  }
248
248
  }
249
249
  }
@@ -272,18 +272,18 @@ export function validateDataGridFilterValues(root) {
272
272
  // Type errors (e.g. legacy string form) are reported by validateAttrSchema.
273
273
  if (typeof filter !== "object" || filter === null || Array.isArray(filter))
274
274
  continue;
275
- checkFilterClauses(filter, allow, obj.name, layout.name, errors);
275
+ checkFilterClauses(filter, allow, obj.name, layout.name, layout.source, errors);
276
276
  }
277
277
  }
278
278
  return errors;
279
279
  }
280
- function checkFilterClauses(filter, allow, entityName, layoutName, errors) {
280
+ function checkFilterClauses(filter, allow, entityName, layoutName, layoutSource, errors) {
281
281
  for (const [key, clause] of Object.entries(filter)) {
282
282
  if (key === FILTER_COMPOSE_OR || key === FILTER_COMPOSE_AND) {
283
283
  if (Array.isArray(clause)) {
284
284
  for (const sub of clause) {
285
285
  if (typeof sub === "object" && sub !== null && !Array.isArray(sub)) {
286
- checkFilterClauses(sub, allow, entityName, layoutName, errors);
286
+ checkFilterClauses(sub, allow, entityName, layoutName, layoutSource, errors);
287
287
  }
288
288
  }
289
289
  }
@@ -292,7 +292,7 @@ function checkFilterClauses(filter, allow, entityName, layoutName, errors) {
292
292
  const allowedOps = allow.get(key);
293
293
  if (allowedOps === undefined) {
294
294
  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" }));
295
+ `non-filterable field "${key}". Filterable fields: ${[...allow.keys()].join(", ") || "(none)"}`, { code: "ERR_BAD_ATTR_FILTER", source: layoutSource }));
296
296
  continue;
297
297
  }
298
298
  // After parse-time desugaring (FilterAttr.desugar), every non-composition field clause
@@ -301,7 +301,7 @@ function checkFilterClauses(filter, allow, entityName, layoutName, errors) {
301
301
  for (const op of Object.keys(clause)) {
302
302
  if (!allowedOps.includes(op)) {
303
303
  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" }));
304
+ `op "${key}.${op}". Allowed ops for "${key}": ${allowedOps.join(", ")}`, { code: "ERR_BAD_ATTR_FILTER", source: layoutSource }));
305
305
  }
306
306
  }
307
307
  }
@@ -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":"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"}
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":"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"}
@@ -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 } from "./source.js";
4
5
  export interface ParseOptions {
5
6
  registry: TypeRegistry;
6
7
  strict?: boolean;
@@ -28,10 +29,7 @@ export interface ParseResult {
28
29
  warnings: string[];
29
30
  errors: ParseError[];
30
31
  }
31
- export declare function errOpts(source: string | undefined, path?: string): {
32
- source?: string;
33
- path?: string;
34
- };
32
+ export declare function errSource(): ErrorSource;
35
33
  /**
36
34
  * buildTree — the shared registry-driven tree-builder.
37
35
  *
@@ -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,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgC/C,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;AAYD,wBAAgB,SAAS,IAAI,WAAW,CASvC;AAgHD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CA6H1E"}