@metaobjectsdev/runtime-ts 0.20.9-rc.1 → 0.20.10-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.
@@ -1 +1 @@
1
- {"version":3,"file":"extract-object.d.ts","sourceRoot":"","sources":["../src/extract-object.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,UAAU,EA8BX,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,MAAM,EAWN,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAMhC;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,GAAE,MAAoB,EAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,GACpC,gBAAgB,CAAC,MAAM,CAAC,CAK1B;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,GAAE,MAAoB,GAAG,aAAa,CAE5F;AA0ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEjG"}
1
+ {"version":3,"file":"extract-object.d.ts","sourceRoot":"","sources":["../src/extract-object.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,UAAU,EA+BX,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,MAAM,EAWN,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAMhC;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,GAAE,MAAoB,EAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,GACpC,gBAAgB,CAAC,MAAM,CAAC,CAK1B;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,GAAE,MAAoB,GAAG,aAAa,CAE5F;AA0ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAEjG"}
@@ -23,7 +23,7 @@
23
23
  // Never throws. Lost/malformed fields are classified in the report, never raised. Opt into
24
24
  // strictness with orThrow() (re-exported from @metaobjectsdev/render), which throws a ExtractError
25
25
  // iff a required field was lost.
26
- import { MetaObject, MetaField, MetaRoot, PACKAGE_SEPARATOR, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_UUID, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_ATTR_REQUIRED, FIELD_ATTR_VALUES, FIELD_ATTR_ENUM_ALIAS, FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_DEFAULT, FIELD_ATTR_NORMALIZE, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_XML_TEXT, VALIDATOR_SUBTYPE_NUMERIC, NORMALIZE_DEFAULT, } from "@metaobjectsdev/metadata";
26
+ import { MetaObject, MetaField, MetaRoot, TYPE_OBJECT, resolveObjectRef, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_OBJECT, FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_UUID, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_BOOLEAN, FIELD_ATTR_REQUIRED, FIELD_ATTR_VALUES, FIELD_ATTR_ENUM_ALIAS, FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_DEFAULT, FIELD_ATTR_NORMALIZE, FIELD_ATTR_OBJECT_REF, FIELD_ATTR_XML_TEXT, VALIDATOR_SUBTYPE_NUMERIC, NORMALIZE_DEFAULT, } from "@metaobjectsdev/metadata";
27
27
  import { Format, FieldKind, scalar, range, textContentField, enumField, enumArray, object, extractSchema, extract, } from "@metaobjectsdev/render";
28
28
  /**
29
29
  * Maximum nested-object recursion depth. Mirrors the render OutputFormatRenderer.MAX_NEST_DEPTH
@@ -86,7 +86,7 @@ function fieldSpecFor(field, owner, format, visited, depth) {
86
86
  }
87
87
  // --- Nested object (single or array) --------------------------------------
88
88
  if (field.subType === FIELD_SUBTYPE_OBJECT || field.objectRef !== undefined) {
89
- const ref = resolveObjectRef(field);
89
+ const ref = resolveFieldObjectRef(field);
90
90
  const cyclicOrDeep = ref === undefined || visited.has(ref) || depth + 1 >= MAX_NEST_DEPTH;
91
91
  if (cyclicOrDeep) {
92
92
  // Opaque leaf — never recurse into a cycle / past the depth bound.
@@ -155,7 +155,7 @@ function assembleInner(mo, data, visited, depth) {
155
155
  continue;
156
156
  }
157
157
  // Nested object — guard cycles/depth (mirror the schema guard).
158
- const ref = resolveObjectRef(field);
158
+ const ref = resolveFieldObjectRef(field);
159
159
  const cyclicOrDeep = ref === undefined || visited.has(ref) || depth + 1 >= MAX_NEST_DEPTH;
160
160
  if (field.resolvedIsArray()) {
161
161
  // Array-of-objects: map each element record -> assembled child.
@@ -272,26 +272,34 @@ function attrString(node, attr) {
272
272
  return v == null ? null : String(v);
273
273
  }
274
274
  /**
275
- * Resolve a field's `@objectRef` FQN to its MetaObject by walking to the tree root and looking it
276
- * up. The objectRef may be a bare name or a `pkg::Name` FQN; we try the value as-is, then the short
277
- * name after the last package separator. Returns undefined when unresolvable (→ opaque-leaf guard).
275
+ * Resolve a field's `@objectRef` to its MetaObject via the canonical ADR-0042 package-local
276
+ * resolver (`resolveObjectRef` from `@metaobjectsdev/metadata`): an FQN ref (contains `::`)
277
+ * matches EXACTLY on `resolutionKey()`; a bare ref resolves in the field's OWN declaring
278
+ * package (`field.parent?.package ?? field.parent?.fileDefaultPackage`), else root-level.
279
+ *
280
+ * #228: this previously called `MetaRoot.findObject(name)` directly — a bare-`name`-only
281
+ * lookup — and, for an FQN ref (which never matches any object's bare `.name`), fell back to
282
+ * `MetaRoot.findObject(<bare tail>)`. That bare-tail fallback is the exact cross-package
283
+ * short-name collision hazard ADR-0042 closed everywhere else: TWO value-objects sharing a
284
+ * short name in different packages (e.g. `acme::alpha::Note` / `acme::beta::Note`) made this
285
+ * resolve to WHICHEVER one happened to load first, silently assembling the WRONG shape's data
286
+ * into the runtime-delegating JSON/XML extract path (`extractObject`) — reachable end-to-end
287
+ * through a generated `extractLenient<Template>WithLoader`. Fixed to the shared FQN-exact/
288
+ * package-local resolver so it can never mis-bind (proven against
289
+ * fixtures/template-output-render-conformance/xpkg-collision-json/).
290
+ *
291
+ * Returns undefined when unresolvable (→ opaque-leaf guard).
278
292
  */
279
- function resolveObjectRef(field) {
293
+ function resolveFieldObjectRef(field) {
280
294
  const ref = attrString(field, FIELD_ATTR_OBJECT_REF) ?? field.objectRef;
281
295
  if (ref === undefined || ref === null)
282
296
  return undefined;
283
297
  const root = field.root();
284
298
  if (!(root instanceof MetaRoot))
285
299
  return undefined;
286
- const direct = root.findObject(ref);
287
- if (direct !== undefined)
288
- return direct;
289
- const sep = ref.lastIndexOf(PACKAGE_SEPARATOR);
290
- if (sep >= 0) {
291
- const short = ref.slice(sep + PACKAGE_SEPARATOR.length);
292
- return root.findObject(short);
293
- }
294
- return undefined;
300
+ const referrerPkg = field.parent?.package ?? field.parent?.fileDefaultPackage ?? "";
301
+ const { node } = resolveObjectRef(root, ref, referrerPkg);
302
+ return node !== undefined && node.type === TYPE_OBJECT ? node : undefined;
295
303
  }
296
304
  function isPlainObject(o) {
297
305
  return typeof o === "object" && o !== null && !Array.isArray(o);
@@ -1 +1 @@
1
- {"version":3,"file":"extract-object.js","sourceRoot":"","sources":["../src/extract-object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-object.js","sourceRoot":"","sources":["../src/extract-object.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/runtime-ts",
3
- "version": "0.20.9-rc.1",
3
+ "version": "0.20.10-rc.1",
4
4
  "description": "Node-side runtime helpers for MetaObjects: Fastify route builders, Drizzle filter/sort integration, Kysely drivers.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -64,8 +64,8 @@
64
64
  "access": "public"
65
65
  },
66
66
  "dependencies": {
67
- "@metaobjectsdev/metadata": "0.20.9-rc.1",
68
- "@metaobjectsdev/render": "0.20.9-rc.1",
67
+ "@metaobjectsdev/metadata": "0.20.10-rc.1",
68
+ "@metaobjectsdev/render": "0.20.10-rc.1",
69
69
  "qs": "^6.13.0"
70
70
  },
71
71
  "peerDependencies": {
@@ -29,7 +29,8 @@ import {
29
29
  MetaField,
30
30
  MetaRoot,
31
31
  type MetaData,
32
- PACKAGE_SEPARATOR,
32
+ TYPE_OBJECT,
33
+ resolveObjectRef,
33
34
  FIELD_SUBTYPE_ENUM,
34
35
  FIELD_SUBTYPE_OBJECT,
35
36
  FIELD_SUBTYPE_STRING,
@@ -159,7 +160,7 @@ function fieldSpecFor(
159
160
 
160
161
  // --- Nested object (single or array) --------------------------------------
161
162
  if (field.subType === FIELD_SUBTYPE_OBJECT || field.objectRef !== undefined) {
162
- const ref = resolveObjectRef(field);
163
+ const ref = resolveFieldObjectRef(field);
163
164
  const cyclicOrDeep = ref === undefined || visited.has(ref) || depth + 1 >= MAX_NEST_DEPTH;
164
165
  if (cyclicOrDeep) {
165
166
  // Opaque leaf — never recurse into a cycle / past the depth bound.
@@ -239,7 +240,7 @@ function assembleInner(
239
240
  }
240
241
 
241
242
  // Nested object — guard cycles/depth (mirror the schema guard).
242
- const ref = resolveObjectRef(field);
243
+ const ref = resolveFieldObjectRef(field);
243
244
  const cyclicOrDeep = ref === undefined || visited.has(ref) || depth + 1 >= MAX_NEST_DEPTH;
244
245
 
245
246
  if (field.resolvedIsArray()) {
@@ -359,23 +360,32 @@ function attrString(node: MetaData, attr: string): string | null {
359
360
  }
360
361
 
361
362
  /**
362
- * Resolve a field's `@objectRef` FQN to its MetaObject by walking to the tree root and looking it
363
- * up. The objectRef may be a bare name or a `pkg::Name` FQN; we try the value as-is, then the short
364
- * name after the last package separator. Returns undefined when unresolvable (→ opaque-leaf guard).
363
+ * Resolve a field's `@objectRef` to its MetaObject via the canonical ADR-0042 package-local
364
+ * resolver (`resolveObjectRef` from `@metaobjectsdev/metadata`): an FQN ref (contains `::`)
365
+ * matches EXACTLY on `resolutionKey()`; a bare ref resolves in the field's OWN declaring
366
+ * package (`field.parent?.package ?? field.parent?.fileDefaultPackage`), else root-level.
367
+ *
368
+ * #228: this previously called `MetaRoot.findObject(name)` directly — a bare-`name`-only
369
+ * lookup — and, for an FQN ref (which never matches any object's bare `.name`), fell back to
370
+ * `MetaRoot.findObject(<bare tail>)`. That bare-tail fallback is the exact cross-package
371
+ * short-name collision hazard ADR-0042 closed everywhere else: TWO value-objects sharing a
372
+ * short name in different packages (e.g. `acme::alpha::Note` / `acme::beta::Note`) made this
373
+ * resolve to WHICHEVER one happened to load first, silently assembling the WRONG shape's data
374
+ * into the runtime-delegating JSON/XML extract path (`extractObject`) — reachable end-to-end
375
+ * through a generated `extractLenient<Template>WithLoader`. Fixed to the shared FQN-exact/
376
+ * package-local resolver so it can never mis-bind (proven against
377
+ * fixtures/template-output-render-conformance/xpkg-collision-json/).
378
+ *
379
+ * Returns undefined when unresolvable (→ opaque-leaf guard).
365
380
  */
366
- function resolveObjectRef(field: MetaField): MetaObject | undefined {
381
+ function resolveFieldObjectRef(field: MetaField): MetaObject | undefined {
367
382
  const ref = attrString(field, FIELD_ATTR_OBJECT_REF) ?? field.objectRef;
368
383
  if (ref === undefined || ref === null) return undefined;
369
384
  const root = field.root();
370
385
  if (!(root instanceof MetaRoot)) return undefined;
371
- const direct = root.findObject(ref);
372
- if (direct !== undefined) return direct;
373
- const sep = ref.lastIndexOf(PACKAGE_SEPARATOR);
374
- if (sep >= 0) {
375
- const short = ref.slice(sep + PACKAGE_SEPARATOR.length);
376
- return root.findObject(short);
377
- }
378
- return undefined;
386
+ const referrerPkg = field.parent?.package ?? field.parent?.fileDefaultPackage ?? "";
387
+ const { node } = resolveObjectRef(root, ref, referrerPkg);
388
+ return node !== undefined && node.type === TYPE_OBJECT ? (node as MetaObject) : undefined;
379
389
  }
380
390
 
381
391
  function isPlainObject(o: unknown): boolean {