@metaobjectsdev/codegen-ts 1.0.2 → 1.0.4-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 (94) hide show
  1. package/dist/catalog-gates.d.ts +52 -0
  2. package/dist/catalog-gates.d.ts.map +1 -0
  3. package/dist/catalog-gates.js +183 -0
  4. package/dist/catalog-gates.js.map +1 -0
  5. package/dist/constants.d.ts +24 -0
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/constants.js +26 -0
  8. package/dist/constants.js.map +1 -1
  9. package/dist/enum-shared.d.ts +9 -2
  10. package/dist/enum-shared.d.ts.map +1 -1
  11. package/dist/enum-shared.js +12 -3
  12. package/dist/enum-shared.js.map +1 -1
  13. package/dist/generator-registry.d.ts +73 -0
  14. package/dist/generator-registry.d.ts.map +1 -1
  15. package/dist/generator-registry.js +182 -38
  16. package/dist/generator-registry.js.map +1 -1
  17. package/dist/generator.d.ts +48 -1
  18. package/dist/generator.d.ts.map +1 -1
  19. package/dist/generator.js.map +1 -1
  20. package/dist/generators/entity-file.d.ts.map +1 -1
  21. package/dist/generators/entity-file.js +4 -1
  22. package/dist/generators/entity-file.js.map +1 -1
  23. package/dist/generators/index.d.ts +1 -0
  24. package/dist/generators/index.d.ts.map +1 -1
  25. package/dist/generators/index.js +5 -0
  26. package/dist/generators/index.js.map +1 -1
  27. package/dist/generators/shared-model-file.d.ts +23 -0
  28. package/dist/generators/shared-model-file.d.ts.map +1 -0
  29. package/dist/generators/shared-model-file.js +235 -0
  30. package/dist/generators/shared-model-file.js.map +1 -0
  31. package/dist/generators/trace-helper-file.d.ts.map +1 -1
  32. package/dist/generators/trace-helper-file.js +54 -11
  33. package/dist/generators/trace-helper-file.js.map +1 -1
  34. package/dist/index.d.ts +5 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +6 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/metaobjects-config.d.ts +0 -15
  39. package/dist/metaobjects-config.d.ts.map +1 -1
  40. package/dist/metaobjects-config.js.map +1 -1
  41. package/dist/projection/extract-view-spec.d.ts.map +1 -1
  42. package/dist/projection/extract-view-spec.js +111 -4
  43. package/dist/projection/extract-view-spec.js.map +1 -1
  44. package/dist/relation-resolver.d.ts.map +1 -1
  45. package/dist/relation-resolver.js +11 -9
  46. package/dist/relation-resolver.js.map +1 -1
  47. package/dist/routes-expose.d.ts +30 -0
  48. package/dist/routes-expose.d.ts.map +1 -1
  49. package/dist/routes-expose.js +46 -0
  50. package/dist/routes-expose.js.map +1 -1
  51. package/dist/runner.d.ts +29 -0
  52. package/dist/runner.d.ts.map +1 -1
  53. package/dist/runner.js +38 -1
  54. package/dist/runner.js.map +1 -1
  55. package/dist/templates/entity-file.js +2 -2
  56. package/dist/templates/entity-file.js.map +1 -1
  57. package/dist/templates/enums-file.d.ts +11 -1
  58. package/dist/templates/enums-file.d.ts.map +1 -1
  59. package/dist/templates/enums-file.js +10 -2
  60. package/dist/templates/enums-file.js.map +1 -1
  61. package/dist/templates/queries-file.js +5 -5
  62. package/dist/templates/queries-file.js.map +1 -1
  63. package/dist/templates/routes-file-hono.d.ts.map +1 -1
  64. package/dist/templates/routes-file-hono.js +10 -3
  65. package/dist/templates/routes-file-hono.js.map +1 -1
  66. package/dist/templates/routes-file.d.ts.map +1 -1
  67. package/dist/templates/routes-file.js +21 -4
  68. package/dist/templates/routes-file.js.map +1 -1
  69. package/dist/templates/value-object-file.js +2 -2
  70. package/dist/templates/value-object-file.js.map +1 -1
  71. package/package.json +6 -6
  72. package/src/catalog-gates.ts +222 -0
  73. package/src/constants.ts +27 -0
  74. package/src/enum-shared.ts +17 -3
  75. package/src/generator-registry.ts +253 -41
  76. package/src/generator.ts +48 -1
  77. package/src/generators/entity-file.ts +7 -1
  78. package/src/generators/index.ts +11 -0
  79. package/src/generators/shared-model-file.ts +292 -0
  80. package/src/generators/trace-helper-file.ts +55 -12
  81. package/src/index.ts +17 -3
  82. package/src/metaobjects-config.ts +0 -15
  83. package/src/projection/extract-view-spec.ts +126 -5
  84. package/src/reference/entity.ts +12 -3
  85. package/src/reference/queries.ts +2 -2
  86. package/src/relation-resolver.ts +14 -8
  87. package/src/routes-expose.ts +57 -0
  88. package/src/runner.ts +77 -1
  89. package/src/templates/entity-file.ts +2 -2
  90. package/src/templates/enums-file.ts +13 -2
  91. package/src/templates/queries-file.ts +5 -5
  92. package/src/templates/routes-file-hono.ts +10 -3
  93. package/src/templates/routes-file.ts +21 -4
  94. package/src/templates/value-object-file.ts +2 -2
@@ -1,4 +1,4 @@
1
- import { TYPE_FIELD, FIELD_ATTR_OBJECT_REF, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, isMetaObject, isReadOnlySource, SOURCE_ROLE_PRIMARY, SOURCE_ATTR_SCHEMA, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_COMPUTED, ORIGIN_SUBTYPE_FIRST, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_FILTER, ORIGIN_ATTR_DISTINCT, ORIGIN_ATTR_ORDER_BY, ORIGIN_COMPUTED_ATTR_EXPR, ORIGIN_FIRST_ATTR_OF, ORIGIN_FIRST_ATTR_VIA, ORIGIN_FIRST_ATTR_FILTER, AGG_ANY, AGG_ALL, AGG_COLLECT, AGGREGATE_FUNCTIONS, FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IS_NULL, FILTER_OP_LIKE, FIELD_SUBTYPE_ENUM, FILTER_COMPOSE_AND, FILTER_COMPOSE_OR, SORT_ORDER_DESC, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, CARDINALITY_ONE, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_COLUMN, OBJECT_PROJECTION_ATTR_FILTER, findReferenceBetween, resolveObjectRef, } from "@metaobjectsdev/metadata";
1
+ import { TYPE_FIELD, FIELD_ATTR_OBJECT_REF, TYPE_IDENTITY, TYPE_ORIGIN, TYPE_RELATIONSHIP, isMetaObject, isReadOnlySource, SOURCE_ROLE_PRIMARY, SOURCE_ATTR_SCHEMA, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_COMPUTED, ORIGIN_SUBTYPE_FIRST, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_FILTER, ORIGIN_ATTR_DISTINCT, ORIGIN_ATTR_ORDER_BY, ORIGIN_COMPUTED_ATTR_EXPR, ORIGIN_FIRST_ATTR_OF, ORIGIN_FIRST_ATTR_VIA, ORIGIN_FIRST_ATTR_FILTER, AGG_ANY, AGG_ALL, AGG_COLLECT, AGGREGATE_FUNCTIONS, FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IS_NULL, FILTER_OP_LIKE, FIELD_SUBTYPE_ENUM, FILTER_COMPOSE_AND, FILTER_COMPOSE_OR, SORT_ORDER_DESC, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_SOURCE_REF_FIELD, CARDINALITY_ONE, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_REFERENCE_ATTR_REFERENCES, FIELD_ATTR_COLUMN, OBJECT_PROJECTION_ATTR_FILTER, findReferencesBetween, resolveRelationshipReference, resolveObjectRef, } from "@metaobjectsdev/metadata";
2
2
  import { MetaObject } from "@metaobjectsdev/metadata";
3
3
  import { intValueMapOf } from "../enum-meta.js";
4
4
  import { columnNameFromField, viewNameFromProjection, } from "../naming.js";
@@ -230,6 +230,37 @@ function resolveHop(obj, name) {
230
230
  }
231
231
  return undefined;
232
232
  }
233
+ /**
234
+ * #368: which identity.reference does a resolved `@via` hop actually mean?
235
+ *
236
+ * `resolveHop` already found the EXACT node the hop segment named — a
237
+ * reference hop names the reference itself (nothing to disambiguate: two
238
+ * references onto the same target can coexist, but the hop picked one of them
239
+ * by name), and a relationship hop names a relationship whose backing
240
+ * reference `resolveRelationshipReference` resolves via the same SSOT ladder
241
+ * (unique candidate -> @sourceRefField -> unique name-pairing) that
242
+ * relation-resolver.ts already uses for the identical question elsewhere.
243
+ * Discarding `hop` and re-deriving purely from `holder`/`target` — as this
244
+ * file did before — throws away that specificity and reintroduces the exact
245
+ * ambiguity a named hop exists to resolve.
246
+ *
247
+ * Returns a single `ReferenceLookup` once resolved unambiguously, or the full
248
+ * candidate list when even the ladder cannot choose (a relationship hop whose
249
+ * name pairs with none of its candidates and no `@sourceRefField`) — the
250
+ * caller reports that list as a genuine ambiguity.
251
+ */
252
+ function resolveHopReference(holder, hop, hopName, target) {
253
+ if (hop.type === TYPE_IDENTITY && hop.subType === IDENTITY_SUBTYPE_REFERENCE) {
254
+ return { holder, other: target, referenceIdentity: hop };
255
+ }
256
+ // ADR-0039: resolving — @sourceRefField may be inherited via extends.
257
+ const sourceRefField = hop.attr(RELATIONSHIP_ATTR_SOURCE_REF_FIELD);
258
+ const matching = resolveRelationshipReference(holder, hopName, target.name, sourceRefField);
259
+ if (matching) {
260
+ return { holder, other: target, referenceIdentity: matching };
261
+ }
262
+ return findReferencesBetween(holder, target);
263
+ }
233
264
  function viewName(projection, ctx) {
234
265
  // The read-only source carries the physical view name. FR-016: physicalName
235
266
  // implements the four-step rule (kind-matching alias → legacy @table →
@@ -611,14 +642,61 @@ function buildJoinTree(projection, base, root, usedAliases, baseAlias, ctx) {
611
642
  const resolved = resolveHop(currentObj, relName);
612
643
  if (!resolved)
613
644
  break;
614
- const { targetName, cardinality } = resolved;
645
+ const { hop, targetName, cardinality } = resolved;
615
646
  // @objectRef/@references may be package-qualified ("pkg::Entity"); resolve it
616
647
  // package-aware relative to the hop's source entity (the loader qualifies a
617
648
  // same-package ref even when authored bare), so the join binds the exact target.
618
649
  const target = resolveEntityRef(root, targetName, packageOf(currentObj));
619
650
  if (!target)
620
651
  break;
621
- const ref = findReferenceBetween(currentObj, target);
652
+ // #368: two identity.reference declarations onto the same target are legal
653
+ // (e.g. Match.homeTeamRef/awayTeamRef -> Team) — resolveHopReference prefers
654
+ // the SPECIFIC reference/relationship the hop already named over re-deriving
655
+ // one from the target alone, so an explicit `@via: "Match.homeTeamRef"` (or a
656
+ // relationship disambiguated by @sourceRefField/name-pairing) resolves cleanly.
657
+ // Only a relationship hop that even the ladder cannot choose reaches the throw.
658
+ const resolvedRef = resolveHopReference(currentObj, hop, relName, target);
659
+ let ref;
660
+ if (Array.isArray(resolvedRef)) {
661
+ if (resolvedRef.length > 1) {
662
+ // #368 round 2: @sourceRefField cannot fix this, but WHY differs by shape, and
663
+ // asserting the wrong reason for a given shape is itself a bug (fix round 1 of
664
+ // this cleanup caught exactly that). resolveRelationshipReference's ladder reads
665
+ // ONLY the hop's own entity's candidates (referenceCandidatesFor(currentObj, ...));
666
+ // it never even looks at `target`'s references. So:
667
+ // - If `currentObj` itself holds one of the ambiguous candidates, resolution
668
+ // already tried @sourceRefField/name-pairing against it and failed — and that
669
+ // is only reachable at all when @cardinality isn't "one": a @cardinality "one"
670
+ // relationship with 2+ own-side candidates is rejected at LOAD by rule (e)
671
+ // (validateOneSideReferenceResolution) using this exact same ladder, so if we
672
+ // got this far with an own-side candidate, @cardinality is provably not "one",
673
+ // and @sourceRefField is provably illegal here (rule (d)).
674
+ // - If NONE of the candidates are `currentObj`'s own, @sourceRefField could not
675
+ // have mattered regardless of @cardinality — it only ever consults the hop's
676
+ // OWN identity.reference children, and it has none targeting `target`. This is
677
+ // rule (e)'s zero-candidate gap (validation-passes.ts:2226, `<= 1` skips 0 too):
678
+ // a @cardinality "one" relationship can reach here with the FK entirely on the
679
+ // far side, so @cardinality itself must NOT be asserted in this branch.
680
+ const holderName = currentObj.name;
681
+ const holderOwnsACandidate = resolvedRef.some((r) => r.holder.name === holderName);
682
+ const whySourceRefFieldCannotHelp = holderOwnsACandidate
683
+ ? `it only disambiguates a @cardinality "${CARDINALITY_ONE}" relationship, and this ` +
684
+ `relationship's @cardinality is not "${CARDINALITY_ONE}" (declaring @sourceRefField on it ` +
685
+ `is itself a load error)`
686
+ : `it only consults "${holderName}"'s own identity.reference children, and "${holderName}" ` +
687
+ `declares none targeting "${target.name}" -- every candidate above belongs to the other side ` +
688
+ `of this join`;
689
+ throw new Error(`projection join hop "${relName}" from "${holderName}" to "${target.name}" is ambiguous: ` +
690
+ `${resolvedRef.map((r) => r.referenceIdentity.name).join(", ")}. ` +
691
+ `@sourceRefField cannot resolve this: ${whySourceRefFieldCannotHelp}. There is no attribute ` +
692
+ `that disambiguates a hop like this -- remove the extra identity.reference between these two ` +
693
+ `entities, or restructure the model so only one remains.`);
694
+ }
695
+ ref = resolvedRef[0];
696
+ }
697
+ else {
698
+ ref = resolvedRef;
699
+ }
622
700
  if (!ref)
623
701
  break;
624
702
  const fkField = ref.referenceIdentity.fields[0];
@@ -952,7 +1030,36 @@ function buildSelectSpec(projection, base, joinTree, root, ctx, usedAliases) {
952
1030
  // The base↔child correlation FK — resolved exactly as buildJoinTree resolves a
953
1031
  // single hop (the identity.reference is the FK-direction SSOT). Single-hop @via;
954
1032
  // a multi-hop @via on origin.first is not lowered here (rare, and validated away).
955
- const ref = findReferenceBetween(base, childEntity);
1033
+ // #368: two identity.reference declarations onto the same target are legal, so
1034
+ // this correlation cannot silently take the first — refuse rather than guess.
1035
+ // Unlike buildJoinTree's @via hop (a named relationship/reference this file can
1036
+ // resolve via resolveHopReference), origin.first's OWN @via (ORIGIN_FIRST_ATTR_VIA)
1037
+ // is never read anywhere in this file — buildJoinTree explicitly skips it
1038
+ // (ORIGIN_SUBTYPE_FIRST falls through to `continue` there) and this branch derives
1039
+ // childEntity from @of alone, so there is no hop name here to prefer. Fixing that is
1040
+ // a separate, larger change (wiring @via/single-hop-unique inference into this
1041
+ // branch to match _validateViaPath/_inferViaSingleHop) — out of scope for #368's
1042
+ // silent-first-match fix; the message below reflects the real, narrower remedy.
1043
+ const refs = findReferencesBetween(base, childEntity);
1044
+ // findReferencesBetween walks BOTH directions ([base,child] then [child,base]),
1045
+ // so ">1 entry" is not by itself #368 ambiguity: a mutual 1:1 —
1046
+ // Customer.primaryAddressRef -> Address PLUS Address.customerRef -> Customer —
1047
+ // returns two entries pointing in OPPOSITE directions. That shape is legal
1048
+ // (findReferenceBetween's own contract calls it "rare, but legal", and the
1049
+ // referenceHolder: "source" | "target" branch below exists to serve it), and
1050
+ // refusing it broke codegen for a model #368 says nothing about. The real
1051
+ // ambiguity is two references declared by the SAME holder onto the other side —
1052
+ // that is what the first-match below cannot choose between.
1053
+ const ambiguousHolder = [base, childEntity].find((holder) => refs.filter((r) => r.holder === holder).length > 1);
1054
+ if (ambiguousHolder !== undefined) {
1055
+ const ambiguous = refs.filter((r) => r.holder === ambiguousHolder);
1056
+ throw new Error(`origin.first correlation from "${base.name}" to "${childEntity.name}" is ambiguous: ` +
1057
+ `"${ambiguousHolder.name}" declares ${ambiguous.length} identity.reference nodes ` +
1058
+ `onto the other side (${ambiguous.map((r) => r.referenceIdentity.name).join(", ")}). ` +
1059
+ `origin.first's own @via is not consulted for this correlation — reduce to a ` +
1060
+ `single identity.reference between these two entities.`);
1061
+ }
1062
+ const ref = refs[0];
956
1063
  if (!ref)
957
1064
  continue;
958
1065
  const fkField = ref.referenceIdentity.fields[0];
@@ -1 +1 @@
1
- {"version":3,"file":"extract-view-spec.js","sourceRoot":"","sources":["../../src/projection/extract-view-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-view-spec.js","sourceRoot":"","sources":["../../src/projection/extract-view-spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"relation-resolver.d.ts","sourceRoot":"","sources":["../src/relation-resolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAgC,MAAM,0BAA0B,CAAC;AAavF,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mGAAmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CA8F5D"}
1
+ {"version":3,"file":"relation-resolver.d.ts","sourceRoot":"","sources":["../src/relation-resolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAgC,MAAM,0BAA0B,CAAC;AAevF,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mGAAmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kGAAkG;IAClG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAkG5D"}
@@ -4,7 +4,7 @@
4
4
  // - Which incoming relationships point to it (many-side, reference on the other entity)
5
5
  //
6
6
  // Reads identity.reference declarations to determine the physical reference side.
7
- import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_THROUGH, CARDINALITY_ONE, CARDINALITY_MANY, deriveM2MFields, stripPackage, } from "@metaobjectsdev/metadata";
7
+ import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_THROUGH, RELATIONSHIP_ATTR_SOURCE_REF_FIELD, CARDINALITY_ONE, CARDINALITY_MANY, deriveM2MFields, resolveRelationshipReference, stripPackage, } from "@metaobjectsdev/metadata";
8
8
  import { variableNameFromEntity } from "./naming.js";
9
9
  import { isProjection } from "./projection/projection-detector.js";
10
10
  /**
@@ -44,17 +44,19 @@ export function buildRelationMap(root) {
44
44
  if (!targetEntityRaw)
45
45
  continue;
46
46
  const targetEntity = stripPackage(targetEntityRaw);
47
- // Find an identity.reference on `obj` whose @references targets this relationship's target.
48
- // Compare against package-stripped names since both relationship @objectRef and
49
- // identity.reference @references may carry package-qualified entity names.
50
- const refs = obj.referenceIdentities();
51
- const matching = refs.find((r) => stripPackage(r.targetEntity ?? "") === targetEntity);
47
+ // #368: an entity may hold more than one identity.reference onto the same
48
+ // target, so the target alone does not identify the FK. Resolve through the
49
+ // shared ladder (unique candidate -> @sourceRefField -> name pairing); the
50
+ // loader has already refused anything it cannot resolve, so a miss here
51
+ // means an unloadable model reached codegen skip rather than guess.
52
+ // ADR-0039: resolving — @sourceRefField may be inherited via extends.
53
+ const declaredRefField = child.attr(RELATIONSHIP_ATTR_SOURCE_REF_FIELD);
54
+ const matching = resolveRelationshipReference(obj, child.name, targetEntity, declaredRefField);
52
55
  if (!matching)
53
56
  continue;
54
- const fkFields = matching.fields;
55
- if (fkFields.length === 0)
57
+ const fkField = matching.fields[0];
58
+ if (!fkField)
56
59
  continue;
57
- const fkField = fkFields[0];
58
60
  ensure(obj.name).push({
59
61
  name: child.name,
60
62
  cardinality: "one",
@@ -1 +1 @@
1
- {"version":3,"file":"relation-resolver.js","sourceRoot":"","sources":["../src/relation-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-resolver.js","sourceRoot":"","sources":["../src/relation-resolver.ts"],"names":[],"mappings":"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"}
@@ -60,4 +60,34 @@ export declare function intersectExpose(fixed: readonly CrudVerb[], requested: r
60
60
  * project that does not use the option.
61
61
  */
62
62
  export declare function exposeLine(verbs: readonly CrudVerb[] | undefined, indent: string): string;
63
+ /**
64
+ * The auth-seam paragraph in a generated routes handler's JSDoc.
65
+ *
66
+ * Stock CRUD is unauthenticated, and until #367 the only thing a generated routes file
67
+ * said about that was a header line pointing at `<Entity>.extra.ts` "(e.g., auth)" — a
68
+ * sibling module nothing imports. An agent building a real API read it, went looking for
69
+ * the seam, found none, and deleted `routesFile()` from its config rather than mount five
70
+ * open endpoints over a password-hash table. The seam it needed already existed in both
71
+ * frameworks; nothing told it where.
72
+ *
73
+ * Both recipes are gated by `runtime-ts/test/route-auth-seam.test.ts` against the real
74
+ * mount helpers, because a recipe in generated output that does not work is the defect
75
+ * this replaces, not a smaller version of it. Hono's trailing wildcard is load-bearing
76
+ * and counter-intuitive: `"/users/*"` matches the collection path `/users` itself, so one
77
+ * `app.use` covers list, get and every write.
78
+ *
79
+ * The closing sentence is the part an adopter most needs and no knob can supply: a
80
+ * row-ownership rule ("only the owner may read this row") is not expressible in a mount,
81
+ * so the honest move is to hand-write those verbs and narrow the generated file with
82
+ * `expose` — not to mount them and hope.
83
+ */
84
+ export declare function authSeamJsDoc(opts: {
85
+ framework: "fastify" | "hono";
86
+ /** The emitted handler's name, so the worked example is callable as written. */
87
+ handlerName: string;
88
+ /** Hono only: the source expression for this file's mount path, e.g. "`/api${User.$path}`". */
89
+ mountPathExpr?: string;
90
+ /** False for a read-only mount, which `expose` cannot narrow further. */
91
+ narrowable: boolean;
92
+ }): string;
63
93
  //# sourceMappingURL=routes-expose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes-expose.d.ts","sourceRoot":"","sources":["../src/routes-expose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,wDAAyD,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,0BAA2B,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,QAAQ,EAAE,GACnB,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;AAE9D,6EAA6E;AAC7E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,SAAS,QAAQ,EAAE,GAAG,SAAS,CAGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,GACzC,SAAS,QAAQ,EAAE,CAIrB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGzF"}
1
+ {"version":3,"file":"routes-expose.d.ts","sourceRoot":"","sources":["../src/routes-expose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,wDAAyD,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,0BAA2B,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,QAAQ,EAAE,GACnB,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC;AAE9D,6EAA6E;AAC7E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,SAAS,QAAQ,EAAE,GAAG,SAAS,CAGjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,GACzC,SAAS,QAAQ,EAAE,CAIrB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAC9B,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;CACrB,GAAG,MAAM,CA0BT"}
@@ -54,4 +54,50 @@ export function exposeLine(verbs, indent) {
54
54
  return "";
55
55
  return `\n${indent}expose: [${verbs.map((v) => JSON.stringify(v)).join(", ")}],`;
56
56
  }
57
+ /**
58
+ * The auth-seam paragraph in a generated routes handler's JSDoc.
59
+ *
60
+ * Stock CRUD is unauthenticated, and until #367 the only thing a generated routes file
61
+ * said about that was a header line pointing at `<Entity>.extra.ts` "(e.g., auth)" — a
62
+ * sibling module nothing imports. An agent building a real API read it, went looking for
63
+ * the seam, found none, and deleted `routesFile()` from its config rather than mount five
64
+ * open endpoints over a password-hash table. The seam it needed already existed in both
65
+ * frameworks; nothing told it where.
66
+ *
67
+ * Both recipes are gated by `runtime-ts/test/route-auth-seam.test.ts` against the real
68
+ * mount helpers, because a recipe in generated output that does not work is the defect
69
+ * this replaces, not a smaller version of it. Hono's trailing wildcard is load-bearing
70
+ * and counter-intuitive: `"/users/*"` matches the collection path `/users` itself, so one
71
+ * `app.use` covers list, get and every write.
72
+ *
73
+ * The closing sentence is the part an adopter most needs and no knob can supply: a
74
+ * row-ownership rule ("only the owner may read this row") is not expressible in a mount,
75
+ * so the honest move is to hand-write those verbs and narrow the generated file with
76
+ * `expose` — not to mount them and hope.
77
+ */
78
+ export function authSeamJsDoc(opts) {
79
+ const recipe = opts.framework === "fastify"
80
+ ? ` * app.register(async (s) => {\n` +
81
+ ` * s.addHook("preHandler", requireAuth);\n` +
82
+ ` * await ${opts.handlerName}(s);\n` +
83
+ ` * });`
84
+ : ` * app.use(${opts.mountPathExpr}, requireAuth); // matches the collection path too\n` +
85
+ ` * ${opts.handlerName}(app, { db });`;
86
+ const guarded = opts.framework === "fastify"
87
+ ? `Register this inside a scope that\n` +
88
+ ` * carries your hook and every verb below is guarded — routes outside that scope\n` +
89
+ ` * are not:`
90
+ : `Guard the mount path with\n` + ` * middleware before calling this:`;
91
+ // Name the generator that actually emitted this file — `routesFile` does not exist in
92
+ // a Hono project's config, and a recipe naming the wrong symbol is the same defect
93
+ // one size smaller.
94
+ const generatorName = opts.framework === "fastify" ? "routesFile" : "routesFileHono";
95
+ const narrowNote = opts.narrowable
96
+ ? `\n *\n * A row-ownership rule ("only the owner may read this row") is not expressible in a\n` +
97
+ ` * mount. Hand-write those verbs and narrow this file with\n` +
98
+ ` * ${generatorName}({ expose: ["list", "get"] }) rather than mounting them open.`
99
+ : `\n *\n * A row-ownership rule ("only the owner may read this row") is not expressible in a\n` +
100
+ ` * mount. Hand-write those reads rather than exposing this one open.`;
101
+ return ` *\n * Auth: these endpoints are unauthenticated. ${guarded}\n *\n${recipe}${narrowNote}`;
102
+ }
57
103
  //# sourceMappingURL=routes-expose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes-expose.js","sourceRoot":"","sources":["../src/routes-expose.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAuB9D,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,MAAgC;IAEhC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA0B,EAC1B,SAA0C;IAE1C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,SAAS,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsC,EAAE,MAAc;IAC/E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,KAAK,MAAM,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"routes-expose.js","sourceRoot":"","sources":["../src/routes-expose.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAU,CAAC;AAuB9D,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAC3B,MAAkB,EAClB,MAAgC;IAEhC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA0B,EAC1B,SAA0C;IAE1C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,SAAS,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsC,EAAE,MAAc;IAC/E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,KAAK,MAAM,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CAAC,IAQ7B;IACC,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,KAAK,SAAS;QAC1B,CAAC,CAAC,sCAAsC;YACtC,kDAAkD;YAClD,kBAAkB,IAAI,CAAC,WAAW,QAAQ;YAC1C,YAAY;QACd,CAAC,CAAC,kBAAkB,IAAI,CAAC,aAAa,wDAAwD;YAC5F,UAAU,IAAI,CAAC,WAAW,gBAAgB,CAAC;IACjD,MAAM,OAAO,GACX,IAAI,CAAC,SAAS,KAAK,SAAS;QAC1B,CAAC,CAAC,qCAAqC;YACrC,oFAAoF;YACpF,aAAa;QACf,CAAC,CAAC,6BAA6B,GAAG,oCAAoC,CAAC;IAC3E,sFAAsF;IACtF,mFAAmF;IACnF,oBAAoB;IACpB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACrF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;QAChC,CAAC,CAAC,8FAA8F;YAC9F,8DAA8D;YAC9D,MAAM,aAAa,+DAA+D;QACpF,CAAC,CAAC,8FAA8F;YAC9F,sEAAsE,CAAC;IAC3E,OAAO,qDAAqD,OAAO,SAAS,MAAM,GAAG,UAAU,EAAE,CAAC;AACpG,CAAC"}
package/dist/runner.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { MetaData } from "@metaobjectsdev/metadata";
2
2
  import type { MetaobjectsGenConfig } from "./metaobjects-config.js";
3
3
  import { type WriteResult, type MergeStrategy, type BaselineMode } from "./overwrite-policy.js";
4
+ import { type GeneratorRegistryEntry } from "./generator-registry.js";
4
5
  export interface RunGenOpts {
5
6
  config: MetaobjectsGenConfig;
6
7
  metadata: MetaData;
@@ -30,6 +31,15 @@ export interface RunGenOpts {
30
31
  * `--dry-run`, and watching it reappear.
31
32
  */
32
33
  dryRun?: boolean;
34
+ /**
35
+ * The catalog the `requires` / api-framework gates check against.
36
+ *
37
+ * Injected because the COMPOSITION lives in the CLI: `codegen-ts` cannot import its
38
+ * own dependents, so it cannot see the react and tanstack registry slices. Defaults
39
+ * to this package's own slice, which keeps a programmatic embedder that never
40
+ * composes correct — it simply has nothing to say about client-tier generators.
41
+ */
42
+ catalog?: Record<string, GeneratorRegistryEntry>;
33
43
  /**
34
44
  * Output scope — an object is generated only when this predicate returns true
35
45
  * for its fully-qualified name (`obj.resolutionKey()`, `<package>::<name>`).
@@ -65,6 +75,25 @@ export interface RunGenOpts {
65
75
  * they pass straight through.
66
76
  */
67
77
  scope?: (fqn: string) => boolean;
78
+ /**
79
+ * FR-023 §4.3 — the collection's own source files (`Collection.ownFiles`; never
80
+ * a dependency's snapshot artifact), threaded onto `GenContext.sourceFiles` for
81
+ * `sharedModelFile()`'s default `files` selection. The CLI's `gen` command
82
+ * always passes `genCollection.ownFiles`; a programmatic caller that never
83
+ * wires `sharedModelFile()` (or always passes that generator's own `files`
84
+ * option explicitly) can omit this with no behavior change elsewhere.
85
+ */
86
+ sourceFiles?: readonly string[];
87
+ /**
88
+ * FR-043 §6 — the project's shipped-library selection TOKENS (`Collection.libraries`,
89
+ * e.g. `["ai", "ai/db"]`), resolved to manifests and threaded onto
90
+ * `GenContext.libraries`, and read by the post-selection audit.
91
+ *
92
+ * Omitted means the caller never said; `[]` means it looked and this project opted
93
+ * into none. The two differ for a generator keying on a library anchor — see
94
+ * `GenContext.libraries`.
95
+ */
96
+ libraries?: readonly string[];
68
97
  }
69
98
  export interface RunGenResult {
70
99
  files: WriteResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,0BAA0B,CAAC;AAOrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AASpE,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;4BAEwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;oDACgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;qBAEiB;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;gDAC4C;IAC5C,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AA0CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,WAAW,GAAE,MAA8B,GAC1C,OAAO,CAMT;AAKD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,OAAO,EACnB,iBAAiB,EAAE,OAAO,EAC1B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,GAAE,MAA+B,GAC5C,OAAO,CAST;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAqtBpE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,0BAA0B,CAAC;AAUrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AASpE,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAqB,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAUzF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;4BAEwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;oDACgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;qBAEiB;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;gDAC4C;IAC5C,SAAS,EAAE,WAAW,EAAE,CAAC;CAC1B;AA0CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,WAAW,GAAE,MAA8B,GAC1C,OAAO,CAMT;AAKD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,OAAO,EACnB,iBAAiB,EAAE,OAAO,EAC1B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,GAAE,MAA+B,GAC5C,OAAO,CAST;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CA6vBpE"}