@metaobjectsdev/metadata 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 (93) hide show
  1. package/dist/core/parser-yaml.d.ts.map +1 -1
  2. package/dist/core/parser-yaml.js +4 -0
  3. package/dist/core/parser-yaml.js.map +1 -1
  4. package/dist/core/relationship/derive-m2m-fields.d.ts +3 -1
  5. package/dist/core/relationship/derive-m2m-fields.d.ts.map +1 -1
  6. package/dist/core/relationship/derive-m2m-fields.js +110 -15
  7. package/dist/core/relationship/derive-m2m-fields.js.map +1 -1
  8. package/dist/core/relationship/find-reference.d.ts +21 -5
  9. package/dist/core/relationship/find-reference.d.ts.map +1 -1
  10. package/dist/core/relationship/find-reference.js +29 -10
  11. package/dist/core/relationship/find-reference.js.map +1 -1
  12. package/dist/core/relationship/relationship-definition.embedded.js +8 -8
  13. package/dist/core/relationship/relationship-definition.embedded.js.map +1 -1
  14. package/dist/core/relationship/resolve-relationship-reference.d.ts +27 -0
  15. package/dist/core/relationship/resolve-relationship-reference.d.ts.map +1 -0
  16. package/dist/core/relationship/resolve-relationship-reference.js +84 -0
  17. package/dist/core/relationship/resolve-relationship-reference.js.map +1 -0
  18. package/dist/errors.d.ts +1 -1
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +31 -0
  21. package/dist/errors.js.map +1 -1
  22. package/dist/index.d.ts +8 -5
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/json-path.d.ts +14 -0
  27. package/dist/json-path.d.ts.map +1 -1
  28. package/dist/json-path.js +13 -0
  29. package/dist/json-path.js.map +1 -1
  30. package/dist/library/embedded-library.generated.d.ts +2 -0
  31. package/dist/library/embedded-library.generated.d.ts.map +1 -1
  32. package/dist/library/embedded-library.generated.js +11 -1
  33. package/dist/library/embedded-library.generated.js.map +1 -1
  34. package/dist/library/index.d.ts +2 -0
  35. package/dist/library/index.d.ts.map +1 -0
  36. package/dist/library/index.js +24 -0
  37. package/dist/library/index.js.map +1 -0
  38. package/dist/library/library-sources.d.ts +99 -6
  39. package/dist/library/library-sources.d.ts.map +1 -1
  40. package/dist/library/library-sources.js +165 -43
  41. package/dist/library/library-sources.js.map +1 -1
  42. package/dist/loader/meta-data-loader.d.ts +44 -21
  43. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  44. package/dist/loader/meta-data-loader.js +118 -88
  45. package/dist/loader/meta-data-loader.js.map +1 -1
  46. package/dist/loader/sources/file-source.d.ts +7 -1
  47. package/dist/loader/sources/file-source.d.ts.map +1 -1
  48. package/dist/loader/sources/file-source.js +3 -2
  49. package/dist/loader/sources/file-source.js.map +1 -1
  50. package/dist/loader/validation-passes.d.ts +2 -0
  51. package/dist/loader/validation-passes.d.ts.map +1 -1
  52. package/dist/loader/validation-passes.js +162 -22
  53. package/dist/loader/validation-passes.js.map +1 -1
  54. package/dist/naming.d.ts +7 -0
  55. package/dist/naming.d.ts.map +1 -1
  56. package/dist/naming.js +10 -0
  57. package/dist/naming.js.map +1 -1
  58. package/dist/parser-core.d.ts +103 -0
  59. package/dist/parser-core.d.ts.map +1 -1
  60. package/dist/parser-core.js +202 -18
  61. package/dist/parser-core.js.map +1 -1
  62. package/dist/scope.d.ts +16 -0
  63. package/dist/scope.d.ts.map +1 -0
  64. package/dist/scope.js +78 -0
  65. package/dist/scope.js.map +1 -0
  66. package/dist/serializer-json.d.ts +1 -0
  67. package/dist/serializer-json.d.ts.map +1 -1
  68. package/dist/serializer-json.js +43 -1
  69. package/dist/serializer-json.js.map +1 -1
  70. package/dist/vocabulary-rewrite-yaml.d.ts +2 -0
  71. package/dist/vocabulary-rewrite-yaml.d.ts.map +1 -0
  72. package/dist/vocabulary-rewrite-yaml.js +22 -0
  73. package/dist/vocabulary-rewrite-yaml.js.map +1 -0
  74. package/package.json +7 -7
  75. package/src/core/parser-yaml.ts +4 -0
  76. package/src/core/relationship/derive-m2m-fields.ts +115 -15
  77. package/src/core/relationship/find-reference.ts +34 -11
  78. package/src/core/relationship/relationship-definition.embedded.ts +8 -8
  79. package/src/core/relationship/resolve-relationship-reference.ts +99 -0
  80. package/src/errors.ts +31 -0
  81. package/src/index.ts +18 -5
  82. package/src/json-path.ts +16 -1
  83. package/src/library/embedded-library.generated.ts +12 -1
  84. package/src/library/index.ts +23 -0
  85. package/src/library/library-sources.ts +197 -47
  86. package/src/loader/meta-data-loader.ts +154 -102
  87. package/src/loader/sources/file-source.ts +10 -2
  88. package/src/loader/validation-passes.ts +181 -23
  89. package/src/naming.ts +11 -0
  90. package/src/parser-core.ts +319 -22
  91. package/src/scope.ts +97 -0
  92. package/src/serializer-json.ts +46 -1
  93. package/src/vocabulary-rewrite-yaml.ts +21 -0
@@ -1 +1 @@
1
- {"version":3,"file":"meta-data-loader.js","sourceRoot":"","sources":["../../src/loader/meta-data-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-data-loader.js","sourceRoot":"","sources":["../../src/loader/meta-data-loader.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,8DAA8D;AAC9D,EAAE;AACF,kFAAkF;AAClF,mEAAmE;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,iCAAiC,EAAE,mCAAmC,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,kCAAkC,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACjf,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yDAAyD,CAAC;AACtG,OAAO,EAAE,0BAA0B,EAAE,MAAM,wDAAwD,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAuD/E,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,SAAS,iBAAiB;IACxB,OAAO,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AA6BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,MAAsB;IAEtB,8DAA8D;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACjF,IAAI,MAAe,CAAC;IACpB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;QACpF,MAAM,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,kCAAkC,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;0EAC0E;AAC1E,SAAS,kCAAkC,CAAC,MAAe;IACzD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAiC,CAAC;IACvD,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,sEAAsE;IACtE,+DAA+D;IAC/D,MAAM,eAAe,GAAG,GAAG,aAAa,GAAG,sBAAsB,GAAG,YAAY,EAAE,CAAC,CAAC,kBAAkB;IACtG,MAAM,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;IAC9E,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjE,MAAM,UAAU,GAAI,QAAoC,CAAC,oBAAoB,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAI,QAAoC,CAAC,qBAAqB,CAAC,CAAC;IAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC1D,oEAAoE;QACpE,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YAClF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS;YACxD,MAAM,UAAU,GAAG,IAA+B,CAAC;YACnD,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;gBAAE,SAAS;YACtD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACnD,MAAM,GAAG,GACP,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;gBAC/C,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC1C,CAAC,CAAC,OAAO,CAAC;YACd,MAAM,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,iBAAiB,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,OAAO,cAAc;IACR,SAAS,CAAe;IACxB,OAAO,CAAU;IACjB,OAAO,CAAU;IAE1B,MAAM,GAAiB,eAAe,CAAC;IACvC,KAAK,CAAuB;IAEpC,YAAY,IAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACrE,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,eAAe;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAE,gBAAgB;IACzD,CAAC;IAEO,MAAM,CAAC,gBAAgB;QAC7B,8EAA8E;QAC9E,qFAAqF;QACrF,OAAO,eAAe,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,8EAA8E;IAC9E,8DAA8D;IAC9D,8EAA8E;IAE9E;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,GAAW,EACX,IAA4C;QAE5C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QAClE,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,OAAO,GAA4B;YACvC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;SAC1C,CAAC;QACF,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACpE,yEAAyE;YACzE,0EAA0E;YAC1E,gEAAgE;YAChE,IAAI,UAAU,GAAqB,EAAE,CAAC;YACtC,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;gBACtB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;gBACzE,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,4EAA4E;YAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,oEAAoE;YACpE,wDAAwD;YACxD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,GACb,GAAG,YAAY,KAAK;gBAClB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,IAAkB;QACtD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,OAAe,EACf,MAAsB,EACtB,IAAkB;QAElB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAE9E,6BAA6B;IAC7B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,KAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACK,kBAAkB;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,sEAAsE,IAAI,CAAC,MAAM,MAAM;gBACvF,oBAAoB,CACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAE9E;;;OAGG;IACH,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,sEAAsE;QACtE,kDAAkD;QAClD,OAAO,IAAI,CAAC,KAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,IAAY,EAAE,IAAY;QAC1C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,IAAI,CAAC,KAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,IAAY;QACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,IAAI,CAAC,KAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAC9E,iDAAiD;IACjD,8EAA8E;IAE9E;;;;;;;;;;;OAWG;IACO,WAAW,CACnB,OAAe,EACf,MAAsB,EACtB,SAAuB;QAEvB,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC;YACtC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,2EAA2E;oBACzE,WAAW,MAAM,CAAC,EAAE,2BAA2B,CAClD,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,CAAC,MAAM,IAAI;YAC7D,cAAc,MAAM,CAAC,EAAE,GAAG,CAC7B,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,0EAA0E;IAC1E,mDAAmD;IAC3C,MAAM,CAAC,WAAW,CAEZ;IAEN,MAAM,CAAC,KAAK,CAAC,iBAAiB;QACpC,IAAI,cAAc,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO;QACrD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACnD,cAAc,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAC9E,8CAA8C;IAC9C,8EAA8E;IAE9E;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,sEAAsE;QACtE,wEAAwE;QACxE,wEAAwE;QACxE,qDAAqD;QACrD,MAAM,gBAAgB,GAAoB,EAAE,CAAC;QAE7C,qEAAqE;QACrE,yEAAyE;QACzE,yEAAyE;QACzE,kEAAkE;QAClE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAC3C,CAAC;QAED,6EAA6E;QAC7E,8EAA8E;QAC9E,2EAA2E;QAC3E,+EAA+E;QAC/E,4EAA4E;QAC5E,wEAAwE;QACxE,2CAA2C;QAC3C,IAAI,IAA0B,CAAC;QAC/B,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,eAAe,GAAqB,EAAE,CAAC;QAE7C,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,4CAA4C;QAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CACT,GAAG,YAAY,KAAK;oBAClB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CACtE,CAAC;gBACF,SAAS;YACX,CAAC;YAED,2EAA2E;YAC3E,2CAA2C;YAC3C,MAAM,SAAS,GAAoC;gBACjD,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,oBAAoB,EAAE,IAAI;gBAC1B,wEAAwE;gBACxE,uEAAuE;gBACvE,mEAAmE;gBACnE,aAAa,EAAE,IAAI;gBACnB,UAAU,EAAE,MAAM,CAAC,EAAE;aACtB,CAAC;YACF,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;YAElD,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnC,gEAAgE;gBAChE,8DAA8D;gBAC9D,0DAA0D;gBAC1D,gBAAgB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBACvD,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;gBACrD,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CACT,GAAG,YAAY,KAAK;oBAClB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,IAAI,KAAK,SAAS,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,EAAE;gBACpD,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,MAAM,EAAE,IAAI,CAAC,OAAO;aACrB,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC;QAED,uEAAuE;QACvE,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,qEAAqE;gBACrE,mEAAmE;gBACnE,mEAAmE;gBACnE,yCAAyC;gBACzC,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACvC,mEAAmE;oBACnE,qEAAqE;oBACrE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;oBAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;oBACzB,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,uBAAuB,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,OAAO,4BAA4B,OAAO,CAAC,OAAO,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,OAAO,MAAM,4BAA4B,EAAE,EAC3K;wBACE,IAAI,EAAE,6BAA6B;wBACnC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;qBACrE,CACF,CACF,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,mBAAmB,OAAO,CAAC,GAAG,mCAAmC,OAAO,CAAC,OAAO,GAAG,EACnF;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;iBACrE,CACF,CACF,CAAC;YACJ,CAAC;YAED,4EAA4E;YAC5E,4BAA4B;YAC5B,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAEtC,sEAAsE;YACtE,uEAAuE;YACvE,MAAM,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAExD,oEAAoE;YACpE,sEAAsE;YACtE,MAAM,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;YAElD,uEAAuE;YACvE,MAAM,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjD,uDAAuD;YACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEnD,sEAAsE;YACtE,iEAAiE;YACjE,MAAM,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,IAAI,CAAC,CAAC,CAAC;YAExD,0EAA0E;YAC1E,0EAA0E;YAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,mCAAmC,CAAC,IAAI,CAAC,CAAC,CAAC;YAE1D,oEAAoE;YACpE,gDAAgD;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YAE1C,uEAAuE;YACvE,yEAAyE;YACzE,sEAAsE;YACtE,iDAAiD;YACjD,MAAM,CAAC,IAAI,CAAC,GAAG,iCAAiC,CAAC,IAAI,CAAC,CAAC,CAAC;YAExD,wFAAwF;YACxF,MAAM,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEnD,gFAAgF;YAChF,oFAAoF;YACpF,6EAA6E;YAC7E,MAAM,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;YAE/C,+EAA+E;YAC/E,mFAAmF;YACnF,oFAAoF;YACpF,qCAAqC;YACrC,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5C,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,uCAAuC;YACvC,MAAM,CAAC,IAAI,CAAC,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC;YAEzD,0EAA0E;YAC1E,4EAA4E;YAC5E,+EAA+E;YAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;YAEhD,yEAAyE;YACzE,2EAA2E;YAC3E,2BAA2B;YAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtD,kFAAkF;YAClF,sFAAsF;YACtF,uFAAuF;YACvF,yDAAyD;YACzD,MAAM,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAE9D,kEAAkE;YAClE,6DAA6D;YAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;YAElD,oEAAoE;YACpE,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAE5C,sEAAsE;YACtE,6DAA6D;YAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjD,yEAAyE;YACzE,0DAA0D;YAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YAEvC,0EAA0E;YAC1E,iEAAiE;YACjE,gCAAgC;YAChC,MAAM,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YAE1C,mEAAmE;YACnE,mFAAmF;YACnF,iFAAiF;YACjF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEtD,iEAAiE;YACjE,yEAAyE;YACzE,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEtD,4DAA4D;YAC5D,gEAAgE;YAChE,iEAAiE;YACjE,kCAAkC;YAClC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxC,gBAAgB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEpD,wEAAwE;YACxE,sEAAsE;YACtE,4EAA4E;YAC5E,yCAAyC;YACzC,gBAAgB,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;YAExE,4DAA4D;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjD,oEAAoE;YACpE,8BAA8B;YAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5C,2EAA2E;YAC3E,8EAA8E;YAC9E,8EAA8E;YAC9E,0EAA0E;YAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,sEAAsE;QACtE,2EAA2E;QAC3E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,wEAAwE;QACxE,kDAAkD;QAClD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,gEAAgE;QAChE,MAAM,aAAa,GAAoB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC;SACrC,CAAC,CAAC,CAAC;QACJ,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,CAAC,GAAG,gBAAgB,EAAE,GAAG,aAAa,CAAC;YACjD,MAAM;SACP,CAAC;IACJ,CAAC;CACF"}
@@ -1,10 +1,16 @@
1
1
  import type { MetaDataFormat, MetaDataSource } from "../meta-data-source.js";
2
+ /** Options for {@link FileSource}. */
3
+ export interface FileSourceOptions {
4
+ /** Explicit source id (e.g. `dep:<name>/<artifact>` for a dependency snapshot).
5
+ * Defaults to `basename(path)` when omitted. */
6
+ id?: string;
7
+ }
2
8
  /** A metadata source backed by a file on disk. */
3
9
  export declare class FileSource implements MetaDataSource {
4
10
  readonly id: string;
5
11
  readonly format: MetaDataFormat;
6
12
  private readonly _path;
7
- constructor(path: string);
13
+ constructor(path: string, opts?: FileSourceOptions);
8
14
  /** The absolute/relative path this source reads from. */
9
15
  get path(): string;
10
16
  read(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"file-source.d.ts","sourceRoot":"","sources":["../../../src/loader/sources/file-source.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAwB7E,kDAAkD;AAClD,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,IAAI,EAAE,MAAM;IAOxB,yDAAyD;IACzD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAI9B"}
1
+ {"version":3,"file":"file-source.d.ts","sourceRoot":"","sources":["../../../src/loader/sources/file-source.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAwB7E,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC;qDACiD;IACjD,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,kDAAkD;AAClD,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB;IAQlD,yDAAyD;IACzD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAI9B"}
@@ -28,10 +28,11 @@ export class FileSource {
28
28
  id;
29
29
  format;
30
30
  _path;
31
- constructor(path) {
31
+ constructor(path, opts) {
32
32
  this._path = path;
33
33
  // basename() for readable error messages; cross-platform (handles both / and \). Full path retained for read().
34
- this.id = basename(path);
34
+ // An explicit id (FR-023: dependency snapshots load with `dep:<name>/<artifact>`) overrides the default.
35
+ this.id = opts?.id ?? basename(path);
35
36
  this.format = inferFormat(path);
36
37
  }
37
38
  /** The absolute/relative path this source reads from. */
@@ -1 +1 @@
1
- {"version":3,"file":"file-source.js","sourceRoot":"","sources":["../../../src/loader/sources/file-source.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,kCAAkC;AAElC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG9C;2EAC2E;AAC3E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,mEAAmE;AACnE,uFAAuF;AACvF,IAAI,SAA0D,CAAC;AAE/D,KAAK,UAAU,WAAW;IACxB,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;QAC/B,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kDAAkD;AAClD,MAAM,OAAO,UAAU;IACZ,EAAE,CAAS;IACX,MAAM,CAAiB;IACf,KAAK,CAAS;IAE/B,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,gHAAgH;QAChH,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,yDAAyD;IACzD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"file-source.js","sourceRoot":"","sources":["../../../src/loader/sources/file-source.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,kCAAkC;AAElC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG9C;2EAC2E;AAC3E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC;AAED,mEAAmE;AACnE,uFAAuF;AACvF,IAAI,SAA0D,CAAC;AAE/D,KAAK,UAAU,WAAW;IACxB,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;QAC/B,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AASD,kDAAkD;AAClD,MAAM,OAAO,UAAU;IACZ,EAAE,CAAS;IACX,MAAM,CAAiB;IACf,KAAK,CAAS;IAE/B,YAAY,IAAY,EAAE,IAAwB;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,gHAAgH;QAChH,yGAAyG;QACzG,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,yDAAyD;IACzD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import type { MetaData } from "../shared/meta-data.js";
2
2
  import { ParseError } from "../errors.js";
3
+ import type { MetaRoot } from "../shared/meta-root.js";
3
4
  export declare function validateDataGridSortFields(root: MetaData): ParseError[];
4
5
  export declare function validateTemplatePayloadRefs(root: MetaData): ParseError[];
5
6
  export declare function validateFilterableHasIndex(root: MetaData): string[];
@@ -12,6 +13,7 @@ export declare function validateFieldMap(root: MetaData): ParseError[];
12
13
  export declare function validateFieldDefaults(root: MetaData): ParseError[];
13
14
  export declare function validateDataGridFilterValues(root: MetaData): ParseError[];
14
15
  export declare function validateRelationships(root: MetaData): ParseError[];
16
+ export declare function validateOneSideReferenceResolution(root: MetaRoot): ParseError[];
15
17
  export declare function validateIndexLookupFields(root: MetaData): ParseError[];
16
18
  export declare function validateProjectionFilter(root: MetaData): ParseError[];
17
19
  export declare function validateRetiredRequirementLinks(root: MetaData): ParseError[];
@@ -1 +1 @@
1
- {"version":3,"file":"validation-passes.d.ts","sourceRoot":"","sources":["../../src/loader/validation-passes.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAsI1D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAyBvE;AAmFD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAkIxE;AAaD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAkCnE;AAWD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAwC9E;AAUD,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAwBhF;AAitBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAkXhE;AA6BD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA0B9E;AAuBD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAsCvE;AA2BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAsC7D;AAkED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAIlE;AAuCD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAyBzE;AA4CD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAwIlE;AAkCD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAgGtE;AA6ED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA6BrE;AAuGD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA2C5E"}
1
+ {"version":3,"file":"validation-passes.d.ts","sourceRoot":"","sources":["../../src/loader/validation-passes.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAC;AAuH1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAoBvD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAyBvE;AAmFD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAkIxE;AAaD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAkCnE;AAWD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAwC9E;AAUD,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAwBhF;AAitBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAkXhE;AA6BD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA0B9E;AAuBD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAsCvE;AA2BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAsC7D;AAkED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAIlE;AAuCD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAyBzE;AA8DD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAsKlE;AAkCD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAyD/E;AAgDD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAgGtE;AA6ED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA6BrE;AAuGD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA2C5E"}
@@ -29,6 +29,7 @@ import { ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, ORIGIN_SUBTYPE_CO
29
29
  import { inferExprType, validateExprNode, } from "../core/attr/meta-attr-expression.js";
30
30
  import { SORT_ORDER_VALUES } from "../core/query/query-constants.js";
31
31
  import { RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_THROUGH, RELATIONSHIP_ATTR_SOURCE_REF_FIELD, RELATIONSHIP_ATTR_SYMMETRIC, CARDINALITY_ONE, CARDINALITY_MANY, } from "../core/relationship/relationship-constants.js";
32
+ import { referenceCandidatesFor, resolveRelationshipReference, } from "../core/relationship/resolve-relationship-reference.js";
32
33
  import { stripPackage } from "../naming.js";
33
34
  import { FILTER_COMPOSE_OR, FILTER_COMPOSE_AND, opsForSubType, opsForField, } from "../core/query/query-constants.js";
34
35
  import { REQUIREMENT, REQUIREMENT_ATTR_STATUS, REQUIREMENT_ATTR_IMPLEMENTED_BY, REQUIREMENT_ATTR_SUPERSEDED_BY, REQUIREMENT_STATUS_RETIRED, } from "../core/requirement/requirement-constants.js";
@@ -1456,11 +1457,29 @@ export function validateDataGridFilterValues(root) {
1456
1457
  // (c) When @through is present: the named entity must exist and declare exactly
1457
1458
  // two identity.reference children; @sourceRefField (if present) must match
1458
1459
  // one of those references' FK fields → ERR_INVALID_RELATIONSHIP.
1459
- // (d) @through / @sourceRefField / @symmetric are invalid on a non-M:N
1460
- // relationship (@cardinality != "many", or no @through) → ERR_INVALID_RELATIONSHIP.
1460
+ // (d) @through / @symmetric are invalid on a non-M:N relationship
1461
+ // (@cardinality != "many", or no @through) → ERR_INVALID_RELATIONSHIP.
1462
+ // @sourceRefField is also invalid there, EXCEPT on @cardinality: "one"
1463
+ // (#368: it then names which of several identity.reference nodes onto
1464
+ // the same target the relationship navigates).
1461
1465
  //
1462
- // Own-relationships only: a relationship is validated on the entity that declares
1463
- // it (matching the own-attrs policy of the other passes).
1466
+ // ADR-0039: resolving, not own-only (#368 fix round 3) every rule above
1467
+ // validates a property of the relationship's OWN declaration (its attrs,
1468
+ // plus for rule (c) the @through target resolved against the root), so a
1469
+ // relationship inherited via extends must be validated wherever it's
1470
+ // visible, or a child entity that only SEES the relationship through
1471
+ // inheritance could carry a violation no pass ever examines. That makes an
1472
+ // inherited, UNMODIFIED relationship visited once per inheriting entity —
1473
+ // checked once below (keyed on the relationship node's own identity), not
1474
+ // once per entity, using the DECLARING entity (rel.parent) rather than
1475
+ // whichever entity's effective view got there first for every piece of
1476
+ // context a rule reads (message text, @through's package per ADR-0042, rule
1477
+ // (a)'s self-join comparison). That keeps each check's result independent of
1478
+ // which entity triggered it, which is what makes "checked once" both
1479
+ // sufficient and correct. An override replaces the node in place
1480
+ // (MetaData._effectiveChildren), so it is never the same object as what it
1481
+ // overrides and is never skipped against it — a genuinely different
1482
+ // declaration is always independently checked.
1464
1483
  // ---------------------------------------------------------------------------
1465
1484
  // The junction's reference view: the validator and the runtime/codegen FK
1466
1485
  // derivation (deriveM2MFields) MUST agree on which references count. Both use
@@ -1485,14 +1504,35 @@ function _countJunctionReferences(junction) {
1485
1504
  }
1486
1505
  export function validateRelationships(root) {
1487
1506
  const errors = [];
1507
+ // #368 fix round 3 — the outer loop below is now resolving (obj.relationships()),
1508
+ // so a relationship inherited unmodified by N entities is reached N times. Its
1509
+ // own attrs never change based on who inherits it, so re-validating it more
1510
+ // than once would report the identical finding N times — pure noise. Checked
1511
+ // is keyed on the relationship NODE's own object identity: MetaData._effectiveChildren
1512
+ // reuses the super's child object in place for an unmodified inherited child,
1513
+ // so the same physical declaration IS the same object everywhere it's visible,
1514
+ // while an override replaces it with a genuinely different object (correctly
1515
+ // NOT skipped — a distinct declaration is a distinct finding).
1516
+ const checked = new Set();
1488
1517
  // ADR-0039: root has no super; children()==ownChildren() but resolving is the default.
1489
1518
  for (const obj of root.children().filter((c) => c.type === TYPE_OBJECT)) {
1490
- // ADR-0042a bare @through resolves in the declaring entity's package.
1491
- const referrerPkg = obj.package ?? obj.fileDefaultPackage ?? "";
1492
- // ADR-0039: own a relationship is validated on the entity that DECLARES it
1493
- // (the M:N slim-vocabulary rules apply to own-declared relationships; its
1494
- // inheritable attrs are read resolving below).
1495
- for (const rel of obj.ownChildren().filter((c) => c.type === TYPE_RELATIONSHIP)) {
1519
+ // ADR-0039: resolving see the header comment above: rule (d) (like rule
1520
+ // (e)) must see a relationship inherited via extends, not just this
1521
+ // entity's own declarations. `checked` absorbs the resulting revisits.
1522
+ for (const rel of obj.relationships()) {
1523
+ if (checked.has(rel))
1524
+ continue;
1525
+ checked.add(rel);
1526
+ // Every rule below validates a property of the relationship's OWN
1527
+ // declaration (its attrs, plus for rule (c) the @through target), so
1528
+ // context — the entity name in messages, the package a bare @through
1529
+ // resolves in (ADR-0042), and rule (a)'s self-join comparison — is
1530
+ // always the entity that DECLARES `rel` (rel.parent), never `obj` (the
1531
+ // entity whose effective view happened to reach it first). This keeps
1532
+ // the check's result independent of iteration order/inheritance depth,
1533
+ // which is what makes checking each node exactly once correct.
1534
+ const declaringEntity = rel.parent ?? obj;
1535
+ const referrerPkg = declaringEntity.package ?? declaringEntity.fileDefaultPackage ?? "";
1496
1536
  // ADR-0039: resolving — a relationship may inherit its M:N attrs via extends.
1497
1537
  const through = rel.attr(RELATIONSHIP_ATTR_THROUGH);
1498
1538
  const sourceRefField = rel.attr(RELATIONSHIP_ATTR_SOURCE_REF_FIELD);
@@ -1509,35 +1549,43 @@ export function validateRelationships(root) {
1509
1549
  // Rule (d): M:N-only attrs on a non-M:N relationship.
1510
1550
  if (!isM2M) {
1511
1551
  if (hasThrough) {
1512
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_THROUGH} but is not a M:N ` +
1552
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_THROUGH} but is not a M:N ` +
1513
1553
  `relationship (requires @${RELATIONSHIP_ATTR_CARDINALITY}: "${CARDINALITY_MANY}").`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1514
1554
  }
1515
- if (hasSourceRefField) {
1516
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SOURCE_REF_FIELD} but is not a M:N relationship.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1555
+ // #368: @sourceRefField also disambiguates a `@cardinality: one`
1556
+ // relationship when the entity holds more than one identity.reference
1557
+ // onto the same target. Only the M:N *junction* reading is rejected
1558
+ // here; rule (e) — validateOneSideReferenceResolution, below in this
1559
+ // file — checks that it names a real local reference.
1560
+ if (hasSourceRefField && cardinality !== CARDINALITY_ONE) {
1561
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SOURCE_REF_FIELD} but is neither a M:N ` +
1562
+ `relationship (requires @${RELATIONSHIP_ATTR_THROUGH} with @${RELATIONSHIP_ATTR_CARDINALITY}: "${CARDINALITY_MANY}") ` +
1563
+ `nor a @${RELATIONSHIP_ATTR_CARDINALITY}: "${CARDINALITY_ONE}" relationship.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1517
1564
  }
1518
1565
  if (symmetric) {
1519
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SYMMETRIC} but is not a M:N relationship.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1566
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SYMMETRIC} but is not a M:N relationship.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1520
1567
  }
1521
1568
  continue;
1522
1569
  }
1523
1570
  // Rule (b): @symmetric and @sourceRefField are mutually exclusive.
1524
1571
  if (symmetric && hasSourceRefField) {
1525
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" sets both @${RELATIONSHIP_ATTR_SYMMETRIC} and ` +
1572
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" sets both @${RELATIONSHIP_ATTR_SYMMETRIC} and ` +
1526
1573
  `@${RELATIONSHIP_ATTR_SOURCE_REF_FIELD}; they are mutually exclusive.`, { code: "ERR_BAD_ATTR_VALUE", source: rel.source }));
1527
1574
  }
1528
1575
  // Rule (a): @symmetric is valid only on a self-join (@objectRef == declaring entity).
1529
1576
  // ADR-0042: resolve @objectRef and compare NODE IDENTITY — a bare "Widget"
1530
1577
  // in this package is self, but an FQN "other::Widget" (a different same-short-
1531
1578
  // name entity) is NOT (comparing stripped short names would misclassify it).
1532
- const isSelfJoin = typeof objectRef === "string" && resolveObjectRef(root, objectRef, referrerPkg).node === obj;
1579
+ const isSelfJoin = typeof objectRef === "string" &&
1580
+ resolveObjectRef(root, objectRef, referrerPkg).node === declaringEntity;
1533
1581
  if (symmetric && !isSelfJoin) {
1534
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SYMMETRIC} but @${RELATIONSHIP_ATTR_OBJECT_REF} ` +
1535
- `"${String(objectRef)}" is not the declaring entity "${obj.name}"; @${RELATIONSHIP_ATTR_SYMMETRIC} is self-join-only.`, { code: "ERR_BAD_ATTR_VALUE", source: rel.source }));
1582
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SYMMETRIC} but @${RELATIONSHIP_ATTR_OBJECT_REF} ` +
1583
+ `"${String(objectRef)}" is not the declaring entity "${declaringEntity.name}"; @${RELATIONSHIP_ATTR_SYMMETRIC} is self-join-only.`, { code: "ERR_BAD_ATTR_VALUE", source: rel.source }));
1536
1584
  }
1537
1585
  // Rule (c): @through must name an entity declaring exactly two identity.reference children.
1538
1586
  const junction = _findObject(root, through, referrerPkg);
1539
1587
  if (!junction) {
1540
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" @${RELATIONSHIP_ATTR_THROUGH} "${through}" does not resolve to an entity.${didYouMeanHint(root, String(through))}`, { code: "ERR_INVALID_RELATIONSHIP", source: resolvedSource(rel.source, `${obj.fqn()}::${rel.name}`, String(through)) }));
1588
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" @${RELATIONSHIP_ATTR_THROUGH} "${through}" does not resolve to an entity.${didYouMeanHint(root, String(through))}`, { code: "ERR_INVALID_RELATIONSHIP", source: resolvedSource(rel.source, `${declaringEntity.fqn()}::${rel.name}`, String(through)) }));
1541
1589
  continue;
1542
1590
  }
1543
1591
  // A junction is a physical join table — it MUST be an object.entity. ADR-0046
@@ -1545,14 +1593,14 @@ export function validateRelationships(root) {
1545
1593
  // implicitly guarantees a two-reference junction is an entity; assert it here.
1546
1594
  // (A value/projection has no table to join through.)
1547
1595
  if (junction.subType !== OBJECT_SUBTYPE_ENTITY) {
1548
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" @${RELATIONSHIP_ATTR_THROUGH} "${through}" resolves to ` +
1596
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" @${RELATIONSHIP_ATTR_THROUGH} "${through}" resolves to ` +
1549
1597
  `${junction.type}.${junction.subType}, not an entity — a junction is a persisted join table ` +
1550
1598
  `and must be object.entity.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1551
1599
  continue;
1552
1600
  }
1553
1601
  const refCount = _countJunctionReferences(junction);
1554
1602
  if (refCount !== 2) {
1555
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" @${RELATIONSHIP_ATTR_THROUGH} "${through}" must declare exactly two ` +
1603
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" @${RELATIONSHIP_ATTR_THROUGH} "${through}" must declare exactly two ` +
1556
1604
  `identity.reference children (one per FK side); found ${refCount}.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1557
1605
  continue;
1558
1606
  }
@@ -1560,7 +1608,7 @@ export function validateRelationships(root) {
1560
1608
  if (hasSourceRefField) {
1561
1609
  const fkFields = _junctionReferenceFkFields(junction);
1562
1610
  if (!fkFields.includes(sourceRefField)) {
1563
- errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" @${RELATIONSHIP_ATTR_SOURCE_REF_FIELD} "${sourceRefField}" does not match ` +
1611
+ errors.push(new ParseError(`relationship "${declaringEntity.name}.${rel.name}" @${RELATIONSHIP_ATTR_SOURCE_REF_FIELD} "${sourceRefField}" does not match ` +
1564
1612
  `any identity.reference FK field on junction "${through}". Available: ${fkFields.join(", ") || "(none)"}.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1565
1613
  }
1566
1614
  }
@@ -1568,6 +1616,98 @@ export function validateRelationships(root) {
1568
1616
  }
1569
1617
  return errors;
1570
1618
  }
1619
+ // ---------------------------------------------------------------------------
1620
+ // Rule (e) — #368: a `@cardinality: one` relationship must resolve to exactly
1621
+ // one identity.reference. Two references onto the same target are
1622
+ // indistinguishable from the relationship's @objectRef alone, so the resolver
1623
+ // would silently emit the first one's FK column. ADR-0029 §5: a second path
1624
+ // is a load error naming the candidates.
1625
+ //
1626
+ // Registered alongside validateRelationships (the M:N slim-vocabulary pass,
1627
+ // above) — same deferred-resolution timing (after all files load + extends
1628
+ // resolution).
1629
+ //
1630
+ // Scope differs deliberately from rule (d) — in SUBJECT, not in which
1631
+ // relationships each pass walks (both walk the EFFECTIVE set; rule (d) is
1632
+ // no longer own-scoped, or an M:N declaration reached only via extends
1633
+ // would go unchecked). Rule (d) validates attrs that travel with the
1634
+ // relationship's OWN declaration (@through/@symmetric/@sourceRefField), so
1635
+ // it checks each declaration EXACTLY ONCE — deduped by node identity, and
1636
+ // reported against the entity that declares it — because those attrs don't
1637
+ // change meaning depending on who inherits the relationship. Rule (e)
1638
+ // instead validates whether THIS entity's reference set resolves the
1639
+ // relationship uniquely, which is a property of the EFFECTIVE entity, not of
1640
+ // wherever the relationship happens to be declared. A child entity that
1641
+ // extends a clean parent and adds a second identity.reference onto the same
1642
+ // target makes an INHERITED relationship ambiguous on the child even though
1643
+ // the parent (and the relationship's own declaration) are untouched — own-
1644
+ // scoping this pass would leave that case unchecked, and codegen/runtime
1645
+ // (which resolve against the effective entity) would silently drop the
1646
+ // relation (#368 fix round 2). If a parent and a child are both genuinely
1647
+ // ambiguous, both are reported — two entities are broken, not one error
1648
+ // duplicated.
1649
+ // ---------------------------------------------------------------------------
1650
+ export function validateOneSideReferenceResolution(root) {
1651
+ const errors = [];
1652
+ for (const obj of root.objects()) {
1653
+ // ADR-0039: resolving — see the scope note above: rule (e) checks THIS
1654
+ // entity's effective reference set against every relationship it can see,
1655
+ // including one only inherited via extends.
1656
+ for (const rel of obj.relationships()) {
1657
+ // ADR-0039: resolving — @cardinality/@objectRef may be inherited via extends.
1658
+ if (rel.attr(RELATIONSHIP_ATTR_CARDINALITY) !== CARDINALITY_ONE)
1659
+ continue;
1660
+ const objectRef = rel.attr(RELATIONSHIP_ATTR_OBJECT_REF);
1661
+ if (typeof objectRef !== "string" || objectRef === "")
1662
+ continue;
1663
+ const candidates = referenceCandidatesFor(obj, objectRef);
1664
+ const sourceRefField = rel.attr(RELATIONSHIP_ATTR_SOURCE_REF_FIELD);
1665
+ const declared = typeof sourceRefField === "string" && sourceRefField !== ""
1666
+ ? sourceRefField
1667
+ : undefined;
1668
+ if (declared !== undefined) {
1669
+ // A declared @sourceRefField short-circuits the ladder at ANY
1670
+ // candidate count — checked independently of resolveRelationshipReference,
1671
+ // whose step 1 ("exactly one candidate -> that one") would otherwise
1672
+ // silently return the lone candidate even when it disagrees with the
1673
+ // declared field. The author named a specific FK; it must exist,
1674
+ // whether there are zero, one, or many candidates.
1675
+ const matchesDeclared = candidates.some((c) => c.fields[0] === declared);
1676
+ if (matchesDeclared)
1677
+ continue;
1678
+ errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" sets @${RELATIONSHIP_ATTR_SOURCE_REF_FIELD} ` +
1679
+ `"${declared}", which names no identity.reference targeting "${objectRef}". ` +
1680
+ `Candidates: ${formatReferenceCandidates(candidates)}.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1681
+ continue;
1682
+ }
1683
+ // No @sourceRefField declared: ambiguity only exists with 2+ candidates —
1684
+ // resolveRelationshipReference's name-pairing step (ladder step 3) decides.
1685
+ if (candidates.length <= 1)
1686
+ continue;
1687
+ const resolved = resolveRelationshipReference(obj, rel.name, objectRef);
1688
+ if (resolved)
1689
+ continue;
1690
+ errors.push(new ParseError(`relationship "${obj.name}.${rel.name}" is ambiguous: "${obj.name}" declares ` +
1691
+ `${candidates.length} identity.reference nodes targeting "${objectRef}" and the ` +
1692
+ `relationship name does not pair with exactly one. Candidates: ${formatReferenceCandidates(candidates)}. ` +
1693
+ `Set @${RELATIONSHIP_ATTR_SOURCE_REF_FIELD} to the FK field this relationship navigates.`, { code: "ERR_INVALID_RELATIONSHIP", source: rel.source }));
1694
+ }
1695
+ }
1696
+ return errors;
1697
+ }
1698
+ /**
1699
+ * Render a candidate reference as `name(fkField)`, or `name(fieldA, fieldB)`
1700
+ * for a composite reference — so two composite references sharing a first
1701
+ * column (e.g. both starting `tenantId`) still print distinguishably.
1702
+ *
1703
+ * NOTE: this is display only. Matching (both here and in
1704
+ * resolveRelationshipReference) still keys on `fields[0]` alone — a
1705
+ * composite reference cannot actually be disambiguated by @sourceRefField.
1706
+ * That's a documented limitation, not fixed by this rendering change.
1707
+ */
1708
+ function formatReferenceCandidates(candidates) {
1709
+ return candidates.map((c) => `${c.name}(${c.fields.join(", ")})`).join(", ");
1710
+ }
1571
1711
  // NOTE: identity.reference @references resolution moved to the validation registry
1572
1712
  // (defaultValidationRegistry → a declarative reference descriptor with dottedFieldPath).
1573
1713
  // ---------------------------------------------------------------------------