@metaobjectsdev/metadata 0.9.0 → 0.11.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/attr-schema-validate.d.ts +1 -1
  2. package/dist/attr-schema-validate.d.ts.map +1 -1
  3. package/dist/attr-schema-validate.js +96 -11
  4. package/dist/attr-schema-validate.js.map +1 -1
  5. package/dist/constraint-merge.d.ts +18 -0
  6. package/dist/constraint-merge.d.ts.map +1 -0
  7. package/dist/constraint-merge.js +0 -0
  8. package/dist/constraint-merge.js.map +1 -0
  9. package/dist/constraint-validate.d.ts +6 -0
  10. package/dist/constraint-validate.d.ts.map +1 -0
  11. package/dist/constraint-validate.js +274 -0
  12. package/dist/constraint-validate.js.map +1 -0
  13. package/dist/core/attr/attr-constants.d.ts +13 -3
  14. package/dist/core/attr/attr-constants.d.ts.map +1 -1
  15. package/dist/core/attr/attr-constants.js +11 -2
  16. package/dist/core/attr/attr-constants.js.map +1 -1
  17. package/dist/core/attr/attr-definition.embedded.d.ts +3 -0
  18. package/dist/core/attr/attr-definition.embedded.d.ts.map +1 -0
  19. package/dist/core/attr/attr-definition.embedded.js +60 -0
  20. package/dist/core/attr/attr-definition.embedded.js.map +1 -0
  21. package/dist/core/documentation/doc-constants.d.ts +3 -2
  22. package/dist/core/documentation/doc-constants.d.ts.map +1 -1
  23. package/dist/core/documentation/doc-constants.js +3 -1
  24. package/dist/core/documentation/doc-constants.js.map +1 -1
  25. package/dist/core/documentation/doc-provider.d.ts.map +1 -1
  26. package/dist/core/documentation/doc-provider.js +6 -2
  27. package/dist/core/documentation/doc-provider.js.map +1 -1
  28. package/dist/core/documentation/documentation-definition.embedded.d.ts +3 -0
  29. package/dist/core/documentation/documentation-definition.embedded.d.ts.map +1 -0
  30. package/dist/core/documentation/documentation-definition.embedded.js +79 -0
  31. package/dist/core/documentation/documentation-definition.embedded.js.map +1 -0
  32. package/dist/core/field/field-constants.d.ts +7 -4
  33. package/dist/core/field/field-constants.d.ts.map +1 -1
  34. package/dist/core/field/field-constants.js +7 -7
  35. package/dist/core/field/field-constants.js.map +1 -1
  36. package/dist/core/field/field-definition.embedded.d.ts +3 -0
  37. package/dist/core/field/field-definition.embedded.d.ts.map +1 -0
  38. package/dist/core/field/field-definition.embedded.js +236 -0
  39. package/dist/core/field/field-definition.embedded.js.map +1 -0
  40. package/dist/core/field/meta-field.d.ts.map +1 -1
  41. package/dist/core/field/meta-field.js +7 -5
  42. package/dist/core/field/meta-field.js.map +1 -1
  43. package/dist/core/identity/identity-constants.d.ts.map +1 -1
  44. package/dist/core/identity/identity-constants.js +3 -0
  45. package/dist/core/identity/identity-constants.js.map +1 -1
  46. package/dist/core/identity/identity-definition.embedded.d.ts +3 -0
  47. package/dist/core/identity/identity-definition.embedded.d.ts.map +1 -0
  48. package/dist/core/identity/identity-definition.embedded.js +93 -0
  49. package/dist/core/identity/identity-definition.embedded.js.map +1 -0
  50. package/dist/core/identity/meta-identity.d.ts.map +1 -1
  51. package/dist/core/identity/meta-identity.js +8 -1
  52. package/dist/core/identity/meta-identity.js.map +1 -1
  53. package/dist/core/identity/validate-identity-passthrough.d.ts +42 -0
  54. package/dist/core/identity/validate-identity-passthrough.d.ts.map +1 -0
  55. package/dist/core/identity/validate-identity-passthrough.js +158 -0
  56. package/dist/core/identity/validate-identity-passthrough.js.map +1 -0
  57. package/dist/core/object/object-constants.d.ts +2 -1
  58. package/dist/core/object/object-constants.d.ts.map +1 -1
  59. package/dist/core/object/object-constants.js +3 -0
  60. package/dist/core/object/object-constants.js.map +1 -1
  61. package/dist/core/object/object-definition.embedded.d.ts +3 -0
  62. package/dist/core/object/object-definition.embedded.d.ts.map +1 -0
  63. package/dist/core/object/object-definition.embedded.js +110 -0
  64. package/dist/core/object/object-definition.embedded.js.map +1 -0
  65. package/dist/core/object/validate-discriminator.d.ts.map +1 -1
  66. package/dist/core/object/validate-discriminator.js +1 -3
  67. package/dist/core/object/validate-discriminator.js.map +1 -1
  68. package/dist/core/query/query-constants.d.ts.map +1 -1
  69. package/dist/core/query/query-constants.js +5 -3
  70. package/dist/core/query/query-constants.js.map +1 -1
  71. package/dist/core/relationship/derive-m2m-fields.d.ts +26 -0
  72. package/dist/core/relationship/derive-m2m-fields.d.ts.map +1 -0
  73. package/dist/core/relationship/derive-m2m-fields.js +102 -0
  74. package/dist/core/relationship/derive-m2m-fields.js.map +1 -0
  75. package/dist/core/relationship/meta-relationship.d.ts +6 -4
  76. package/dist/core/relationship/meta-relationship.d.ts.map +1 -1
  77. package/dist/core/relationship/meta-relationship.js +12 -8
  78. package/dist/core/relationship/meta-relationship.js.map +1 -1
  79. package/dist/core/relationship/relationship-constants.d.ts +6 -2
  80. package/dist/core/relationship/relationship-constants.d.ts.map +1 -1
  81. package/dist/core/relationship/relationship-constants.js +6 -2
  82. package/dist/core/relationship/relationship-constants.js.map +1 -1
  83. package/dist/core/relationship/relationship-definition.embedded.d.ts +3 -0
  84. package/dist/core/relationship/relationship-definition.embedded.d.ts.map +1 -0
  85. package/dist/core/relationship/relationship-definition.embedded.js +310 -0
  86. package/dist/core/relationship/relationship-definition.embedded.js.map +1 -0
  87. package/dist/core/validator/validator-constants.d.ts +14 -1
  88. package/dist/core/validator/validator-constants.d.ts.map +1 -1
  89. package/dist/core/validator/validator-constants.js +20 -1
  90. package/dist/core/validator/validator-constants.js.map +1 -1
  91. package/dist/core/validator/validator-definition.embedded.d.ts +3 -0
  92. package/dist/core/validator/validator-definition.embedded.d.ts.map +1 -0
  93. package/dist/core/validator/validator-definition.embedded.js +255 -0
  94. package/dist/core/validator/validator-definition.embedded.js.map +1 -0
  95. package/dist/core/yaml-desugar.d.ts.map +1 -1
  96. package/dist/core/yaml-desugar.js +88 -10
  97. package/dist/core/yaml-desugar.js.map +1 -1
  98. package/dist/core-types.d.ts +5 -2
  99. package/dist/core-types.d.ts.map +1 -1
  100. package/dist/core-types.js +285 -116
  101. package/dist/core-types.js.map +1 -1
  102. package/dist/errors.d.ts +3 -3
  103. package/dist/errors.d.ts.map +1 -1
  104. package/dist/errors.js +87 -0
  105. package/dist/errors.js.map +1 -1
  106. package/dist/index.d.ts +17 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +26 -1
  109. package/dist/index.js.map +1 -1
  110. package/dist/library/embedded-library.generated.d.ts +2 -0
  111. package/dist/library/embedded-library.generated.d.ts.map +1 -0
  112. package/dist/library/embedded-library.generated.js +11 -0
  113. package/dist/library/embedded-library.generated.js.map +1 -0
  114. package/dist/library/library-sources.d.ts +12 -0
  115. package/dist/library/library-sources.d.ts.map +1 -0
  116. package/dist/library/library-sources.js +88 -0
  117. package/dist/library/library-sources.js.map +1 -0
  118. package/dist/loader/meta-data-loader.d.ts +10 -2
  119. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  120. package/dist/loader/meta-data-loader.js +57 -6
  121. package/dist/loader/meta-data-loader.js.map +1 -1
  122. package/dist/loader/shortcuts.d.ts +2 -5
  123. package/dist/loader/shortcuts.d.ts.map +1 -1
  124. package/dist/loader/shortcuts.js.map +1 -1
  125. package/dist/loader/validation-passes.d.ts +3 -0
  126. package/dist/loader/validation-passes.d.ts.map +1 -1
  127. package/dist/loader/validation-passes.js +519 -34
  128. package/dist/loader/validation-passes.js.map +1 -1
  129. package/dist/loader/validation-registry.d.ts +10 -0
  130. package/dist/loader/validation-registry.d.ts.map +1 -0
  131. package/dist/loader/validation-registry.js +84 -0
  132. package/dist/loader/validation-registry.js.map +1 -0
  133. package/dist/metamodel-docs/index.d.ts +19 -0
  134. package/dist/metamodel-docs/index.d.ts.map +1 -0
  135. package/dist/metamodel-docs/index.js +37 -0
  136. package/dist/metamodel-docs/index.js.map +1 -0
  137. package/dist/metamodel-docs/provenance.d.ts +42 -0
  138. package/dist/metamodel-docs/provenance.d.ts.map +1 -0
  139. package/dist/metamodel-docs/provenance.js +148 -0
  140. package/dist/metamodel-docs/provenance.js.map +1 -0
  141. package/dist/metamodel-docs/provider-definitions.d.ts +8 -0
  142. package/dist/metamodel-docs/provider-definitions.d.ts.map +1 -0
  143. package/dist/metamodel-docs/provider-definitions.js +48 -0
  144. package/dist/metamodel-docs/provider-definitions.js.map +1 -0
  145. package/dist/metamodel-docs/render.d.ts +12 -0
  146. package/dist/metamodel-docs/render.d.ts.map +1 -0
  147. package/dist/metamodel-docs/render.js +252 -0
  148. package/dist/metamodel-docs/render.js.map +1 -0
  149. package/dist/naming-refs.d.ts +41 -0
  150. package/dist/naming-refs.d.ts.map +1 -0
  151. package/dist/naming-refs.js +144 -0
  152. package/dist/naming-refs.js.map +1 -0
  153. package/dist/naming.d.ts.map +1 -1
  154. package/dist/naming.js +10 -2
  155. package/dist/naming.js.map +1 -1
  156. package/dist/parser-core.d.ts.map +1 -1
  157. package/dist/parser-core.js +84 -9
  158. package/dist/parser-core.js.map +1 -1
  159. package/dist/persistence/db/db-constants.d.ts +10 -0
  160. package/dist/persistence/db/db-constants.d.ts.map +1 -1
  161. package/dist/persistence/db/db-constants.js +14 -0
  162. package/dist/persistence/db/db-constants.js.map +1 -1
  163. package/dist/persistence/db/db-definition.embedded.d.ts +3 -0
  164. package/dist/persistence/db/db-definition.embedded.d.ts.map +1 -0
  165. package/dist/persistence/db/db-definition.embedded.js +227 -0
  166. package/dist/persistence/db/db-definition.embedded.js.map +1 -0
  167. package/dist/persistence/db/db-provider.d.ts.map +1 -1
  168. package/dist/persistence/db/db-provider.js +13 -18
  169. package/dist/persistence/db/db-provider.js.map +1 -1
  170. package/dist/persistence/origin/origin-definition.embedded.d.ts +3 -0
  171. package/dist/persistence/origin/origin-definition.embedded.d.ts.map +1 -0
  172. package/dist/persistence/origin/origin-definition.embedded.js +88 -0
  173. package/dist/persistence/origin/origin-definition.embedded.js.map +1 -0
  174. package/dist/persistence/source/source-definition.embedded.d.ts +3 -0
  175. package/dist/persistence/source/source-definition.embedded.d.ts.map +1 -0
  176. package/dist/persistence/source/source-definition.embedded.js +17 -0
  177. package/dist/persistence/source/source-definition.embedded.js.map +1 -0
  178. package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -1
  179. package/dist/persistence/source/validate-source-parameter-ref.js +7 -1
  180. package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -1
  181. package/dist/persistence/source/validate-source-roles.d.ts.map +1 -1
  182. package/dist/persistence/source/validate-source-roles.js +16 -1
  183. package/dist/persistence/source/validate-source-roles.js.map +1 -1
  184. package/dist/presentation/layout/layout-definition.embedded.d.ts +3 -0
  185. package/dist/presentation/layout/layout-definition.embedded.d.ts.map +1 -0
  186. package/dist/presentation/layout/layout-definition.embedded.js +16 -0
  187. package/dist/presentation/layout/layout-definition.embedded.js.map +1 -0
  188. package/dist/presentation/ui/ui-definition.embedded.d.ts +3 -0
  189. package/dist/presentation/ui/ui-definition.embedded.d.ts.map +1 -0
  190. package/dist/presentation/ui/ui-definition.embedded.js +114 -0
  191. package/dist/presentation/ui/ui-definition.embedded.js.map +1 -0
  192. package/dist/presentation/ui/ui-provider.d.ts +3 -0
  193. package/dist/presentation/ui/ui-provider.d.ts.map +1 -0
  194. package/dist/presentation/ui/ui-provider.js +21 -0
  195. package/dist/presentation/ui/ui-provider.js.map +1 -0
  196. package/dist/presentation/view/view-definition.embedded.d.ts +3 -0
  197. package/dist/presentation/view/view-definition.embedded.d.ts.map +1 -0
  198. package/dist/presentation/view/view-definition.embedded.js +76 -0
  199. package/dist/presentation/view/view-definition.embedded.js.map +1 -0
  200. package/dist/provider-data.d.ts +184 -0
  201. package/dist/provider-data.d.ts.map +1 -0
  202. package/dist/provider-data.js +271 -0
  203. package/dist/provider-data.js.map +1 -0
  204. package/dist/provider.d.ts +3 -1
  205. package/dist/provider.d.ts.map +1 -1
  206. package/dist/provider.js +15 -1
  207. package/dist/provider.js.map +1 -1
  208. package/dist/registry-coverage.d.ts +99 -0
  209. package/dist/registry-coverage.d.ts.map +1 -0
  210. package/dist/registry-coverage.js +294 -0
  211. package/dist/registry-coverage.js.map +1 -0
  212. package/dist/registry-manifest-exclusions.d.ts +62 -0
  213. package/dist/registry-manifest-exclusions.d.ts.map +1 -0
  214. package/dist/registry-manifest-exclusions.js +163 -0
  215. package/dist/registry-manifest-exclusions.js.map +1 -0
  216. package/dist/registry-manifest.d.ts +117 -0
  217. package/dist/registry-manifest.d.ts.map +1 -0
  218. package/dist/registry-manifest.js +242 -0
  219. package/dist/registry-manifest.js.map +1 -0
  220. package/dist/registry.d.ts +76 -2
  221. package/dist/registry.d.ts.map +1 -1
  222. package/dist/registry.js +37 -1
  223. package/dist/registry.js.map +1 -1
  224. package/dist/shared/structural.d.ts +7 -0
  225. package/dist/shared/structural.d.ts.map +1 -1
  226. package/dist/shared/structural.js +7 -0
  227. package/dist/shared/structural.js.map +1 -1
  228. package/dist/subtype-rules.d.ts.map +1 -1
  229. package/dist/subtype-rules.js +97 -13
  230. package/dist/subtype-rules.js.map +1 -1
  231. package/dist/super-resolve.d.ts +49 -2
  232. package/dist/super-resolve.d.ts.map +1 -1
  233. package/dist/super-resolve.js +128 -43
  234. package/dist/super-resolve.js.map +1 -1
  235. package/dist/template/meta-template.d.ts +3 -2
  236. package/dist/template/meta-template.d.ts.map +1 -1
  237. package/dist/template/meta-template.js +3 -2
  238. package/dist/template/meta-template.js.map +1 -1
  239. package/dist/template/prompt-definition.embedded.d.ts +3 -0
  240. package/dist/template/prompt-definition.embedded.d.ts.map +1 -0
  241. package/dist/template/prompt-definition.embedded.js +368 -0
  242. package/dist/template/prompt-definition.embedded.js.map +1 -0
  243. package/dist/template/prompt-provider.d.ts +3 -0
  244. package/dist/template/prompt-provider.d.ts.map +1 -0
  245. package/dist/template/prompt-provider.js +25 -0
  246. package/dist/template/prompt-provider.js.map +1 -0
  247. package/dist/template/template-constants.d.ts +2 -0
  248. package/dist/template/template-constants.d.ts.map +1 -1
  249. package/dist/template/template-constants.js +7 -0
  250. package/dist/template/template-constants.js.map +1 -1
  251. package/dist/template/template-definition.embedded.d.ts +3 -0
  252. package/dist/template/template-definition.embedded.d.ts.map +1 -0
  253. package/dist/template/template-definition.embedded.js +30 -0
  254. package/dist/template/template-definition.embedded.js.map +1 -0
  255. package/dist/validate-max-occurs.d.ts +5 -0
  256. package/dist/validate-max-occurs.d.ts.map +1 -0
  257. package/dist/validate-max-occurs.js +28 -0
  258. package/dist/validate-max-occurs.js.map +1 -0
  259. package/dist/validation-types.d.ts +36 -0
  260. package/dist/validation-types.d.ts.map +1 -0
  261. package/dist/validation-types.js +7 -0
  262. package/dist/validation-types.js.map +1 -0
  263. package/package.json +33 -22
  264. package/src/attr-schema-validate.ts +108 -8
  265. package/src/constraint-merge.ts +0 -0
  266. package/src/constraint-validate.ts +363 -0
  267. package/src/core/attr/attr-constants.ts +15 -3
  268. package/src/core/attr/attr-definition.embedded.ts +67 -0
  269. package/src/core/documentation/doc-constants.ts +3 -1
  270. package/src/core/documentation/doc-provider.ts +6 -2
  271. package/src/core/documentation/documentation-definition.embedded.ts +86 -0
  272. package/src/core/field/field-constants.ts +8 -7
  273. package/src/core/field/field-definition.embedded.ts +243 -0
  274. package/src/core/field/meta-field.ts +6 -7
  275. package/src/core/identity/identity-constants.ts +4 -0
  276. package/src/core/identity/identity-definition.embedded.ts +100 -0
  277. package/src/core/identity/meta-identity.ts +8 -1
  278. package/src/core/identity/validate-identity-passthrough.ts +194 -0
  279. package/src/core/object/object-constants.ts +3 -0
  280. package/src/core/object/object-definition.embedded.ts +117 -0
  281. package/src/core/object/validate-discriminator.ts +0 -4
  282. package/src/core/query/query-constants.ts +5 -3
  283. package/src/core/relationship/derive-m2m-fields.ts +145 -0
  284. package/src/core/relationship/meta-relationship.ts +15 -9
  285. package/src/core/relationship/relationship-constants.ts +6 -2
  286. package/src/core/relationship/relationship-definition.embedded.ts +317 -0
  287. package/src/core/validator/validator-constants.ts +22 -1
  288. package/src/core/validator/validator-definition.embedded.ts +262 -0
  289. package/src/core/yaml-desugar.ts +96 -7
  290. package/src/core-types.ts +314 -150
  291. package/src/errors.ts +89 -2
  292. package/src/index.ts +47 -2
  293. package/src/library/embedded-library.generated.ts +10 -0
  294. package/src/library/library-sources.ts +97 -0
  295. package/src/loader/meta-data-loader.ts +78 -7
  296. package/src/loader/shortcuts.ts +2 -2
  297. package/src/loader/validation-passes.ts +690 -34
  298. package/src/loader/validation-registry.ts +93 -0
  299. package/src/metamodel-docs/index.ts +41 -0
  300. package/src/metamodel-docs/provenance.ts +187 -0
  301. package/src/metamodel-docs/provider-definitions.ts +50 -0
  302. package/src/metamodel-docs/render.ts +309 -0
  303. package/src/naming-refs.ts +162 -0
  304. package/src/naming.ts +10 -2
  305. package/src/parser-core.ts +96 -9
  306. package/src/persistence/db/db-constants.ts +16 -0
  307. package/src/persistence/db/db-definition.embedded.ts +234 -0
  308. package/src/persistence/db/db-provider.ts +13 -18
  309. package/src/persistence/origin/origin-definition.embedded.ts +95 -0
  310. package/src/persistence/source/source-definition.embedded.ts +24 -0
  311. package/src/persistence/source/validate-source-parameter-ref.ts +7 -1
  312. package/src/persistence/source/validate-source-roles.ts +22 -1
  313. package/src/presentation/layout/layout-definition.embedded.ts +23 -0
  314. package/src/presentation/ui/ui-definition.embedded.ts +121 -0
  315. package/src/presentation/ui/ui-provider.ts +25 -0
  316. package/src/presentation/view/view-definition.embedded.ts +83 -0
  317. package/src/provider-data.ts +463 -0
  318. package/src/provider.ts +18 -0
  319. package/src/registry-coverage.ts +430 -0
  320. package/src/registry-manifest-exclusions.ts +176 -0
  321. package/src/registry-manifest.ts +334 -0
  322. package/src/registry.ts +106 -3
  323. package/src/shared/structural.ts +8 -0
  324. package/src/subtype-rules.ts +135 -18
  325. package/src/super-resolve.ts +153 -43
  326. package/src/template/meta-template.ts +3 -2
  327. package/src/template/prompt-definition.embedded.ts +375 -0
  328. package/src/template/prompt-provider.ts +29 -0
  329. package/src/template/template-constants.ts +8 -0
  330. package/src/template/template-definition.embedded.ts +37 -0
  331. package/src/validate-max-occurs.ts +39 -0
  332. package/src/validation-types.ts +57 -0
  333. package/dist/core/documentation/doc-schema.d.ts +0 -8
  334. package/dist/core/documentation/doc-schema.d.ts.map +0 -1
  335. package/dist/core/documentation/doc-schema.js +0 -53
  336. package/dist/core/documentation/doc-schema.js.map +0 -1
  337. package/dist/core/field/field-schema.d.ts +0 -22
  338. package/dist/core/field/field-schema.d.ts.map +0 -1
  339. package/dist/core/field/field-schema.js +0 -171
  340. package/dist/core/field/field-schema.js.map +0 -1
  341. package/dist/core/identity/identity-schema.d.ts +0 -6
  342. package/dist/core/identity/identity-schema.d.ts.map +0 -1
  343. package/dist/core/identity/identity-schema.js +0 -55
  344. package/dist/core/identity/identity-schema.js.map +0 -1
  345. package/dist/core/object/object-schema.d.ts +0 -4
  346. package/dist/core/object/object-schema.d.ts.map +0 -1
  347. package/dist/core/object/object-schema.js +0 -28
  348. package/dist/core/object/object-schema.js.map +0 -1
  349. package/dist/core/relationship/relationship-schema.d.ts +0 -4
  350. package/dist/core/relationship/relationship-schema.d.ts.map +0 -1
  351. package/dist/core/relationship/relationship-schema.js +0 -51
  352. package/dist/core/relationship/relationship-schema.js.map +0 -1
  353. package/dist/core/validator/validator-schema.d.ts +0 -4
  354. package/dist/core/validator/validator-schema.d.ts.map +0 -1
  355. package/dist/core/validator/validator-schema.js +0 -38
  356. package/dist/core/validator/validator-schema.js.map +0 -1
  357. package/dist/persistence/db/db-schema.d.ts +0 -14
  358. package/dist/persistence/db/db-schema.d.ts.map +0 -1
  359. package/dist/persistence/db/db-schema.js +0 -35
  360. package/dist/persistence/db/db-schema.js.map +0 -1
  361. package/dist/persistence/origin/origin-schema.d.ts +0 -4
  362. package/dist/persistence/origin/origin-schema.d.ts.map +0 -1
  363. package/dist/persistence/origin/origin-schema.js +0 -59
  364. package/dist/persistence/origin/origin-schema.js.map +0 -1
  365. package/dist/persistence/source/source-schema.d.ts +0 -4
  366. package/dist/persistence/source/source-schema.d.ts.map +0 -1
  367. package/dist/persistence/source/source-schema.js +0 -98
  368. package/dist/persistence/source/source-schema.js.map +0 -1
  369. package/dist/presentation/layout/layout-schema.d.ts +0 -4
  370. package/dist/presentation/layout/layout-schema.d.ts.map +0 -1
  371. package/dist/presentation/layout/layout-schema.js +0 -46
  372. package/dist/presentation/layout/layout-schema.js.map +0 -1
  373. package/dist/presentation/view/view-schema.d.ts +0 -4
  374. package/dist/presentation/view/view-schema.d.ts.map +0 -1
  375. package/dist/presentation/view/view-schema.js +0 -15
  376. package/dist/presentation/view/view-schema.js.map +0 -1
  377. package/dist/template/template-schema.d.ts +0 -3
  378. package/dist/template/template-schema.d.ts.map +0 -1
  379. package/dist/template/template-schema.js +0 -173
  380. package/dist/template/template-schema.js.map +0 -1
  381. package/src/core/documentation/doc-schema.ts +0 -64
  382. package/src/core/field/field-schema.ts +0 -228
  383. package/src/core/identity/identity-schema.ts +0 -80
  384. package/src/core/object/object-schema.ts +0 -35
  385. package/src/core/relationship/relationship-schema.ts +0 -67
  386. package/src/core/validator/validator-schema.ts +0 -50
  387. package/src/persistence/db/db-schema.ts +0 -50
  388. package/src/persistence/origin/origin-schema.ts +0 -80
  389. package/src/persistence/source/source-schema.ts +0 -129
  390. package/src/presentation/layout/layout-schema.ts +0 -62
  391. package/src/presentation/view/view-schema.ts +0 -21
  392. package/src/template/template-schema.ts +0 -211
@@ -0,0 +1,252 @@
1
+ // FR-033 S3 — the metamodel doc renderer (pure, deterministic, byte-stable).
2
+ //
3
+ // Documents the METAMODEL ITSELF — the type/subtype/attr vocabulary of the
4
+ // strict registry — for an LLM (and humans). This is distinct from `meta docs
5
+ // --model`, which documents a USER's entities. The output is a tiered markdown
6
+ // tree:
7
+ //
8
+ // INDEX.md every type.subType + one-liner + link (always-on map)
9
+ // types/<type>.md per family: each subtype's full composed attrs (provider-
10
+ // tagged) + allowed children + cardinality + parents
11
+ // providers.md the 5-concern ownership index (the provider lens)
12
+ //
13
+ // Rendering is plain deterministic TS string-building: the metadata package
14
+ // owns no codegen-ts / Mustache dependency, and the output is small + fully
15
+ // structural, so a self-contained string builder is simpler and keeps the
16
+ // byte-stability contract trivially auditable. Everything is sorted by ASCII
17
+ // codepoint for cross-run / cross-port determinism.
18
+ import { isExcludedTypeSubType } from "../registry-manifest-exclusions.js";
19
+ import { ATTR_SUBTYPE_STRINGARRAY, ATTR_SUBTYPE_STRING } from "../core/attr/attr-constants.js";
20
+ import { CHILD_RULE_WILDCARD } from "../shared/structural.js";
21
+ import { SUBTYPE_BASE } from "../shared/base-types.js";
22
+ /** The regeneration command, named in every file's DO-NOT-EDIT header. */
23
+ const REGEN_COMMAND = "meta docs --metamodel";
24
+ /** ASCII codepoint compare — locale-independent, byte-stable. */
25
+ function compare(a, b) {
26
+ return a < b ? -1 : a > b ? 1 : 0;
27
+ }
28
+ /** The DO-NOT-EDIT header prepended to every emitted file. */
29
+ function header(what) {
30
+ return (`<!-- @generated — DO NOT EDIT.\n` +
31
+ ` ${what}\n` +
32
+ ` Regenerate with: ${REGEN_COMMAND} -->\n`);
33
+ }
34
+ /** Escape a markdown table cell: collapse newlines, escape pipes. */
35
+ function cell(s) {
36
+ return s.replace(/\r?\n/g, " ").replace(/\|/g, "\\|").trim();
37
+ }
38
+ /** The anchor GitHub assigns to a `### field.currency` heading: `fieldcurrency`. */
39
+ function anchor(type, subType) {
40
+ return `${type}${subType}`.toLowerCase().replace(/[^a-z0-9]/g, "");
41
+ }
42
+ /** The scalar value-type + array suffix the docs show for an attr. */
43
+ function attrTypeLabel(attr) {
44
+ const isLegacyStringArray = attr.valueType === ATTR_SUBTYPE_STRINGARRAY;
45
+ const isArray = attr.isArray === true || isLegacyStringArray;
46
+ const scalar = isLegacyStringArray
47
+ ? ATTR_SUBTYPE_STRING
48
+ : (attr.valueType ?? "any");
49
+ return isArray ? `${scalar}[]` : scalar;
50
+ }
51
+ /** Render one attr value (default / an allowed value) as an inline-code token. */
52
+ function valueToken(v) {
53
+ if (v === null || v === undefined)
54
+ return "";
55
+ return `\`${String(v)}\``;
56
+ }
57
+ /** The childSubType cell: a single subtype, a `*`, or a comma-joined list. */
58
+ function childSubTypeLabel(childSubType) {
59
+ return Array.isArray(childSubType) ? childSubType.join(", ") : childSubType;
60
+ }
61
+ /** A cardinality range `min..max` (`*` for unbounded / undefined upper). */
62
+ function cardinality(rule) {
63
+ const min = rule.min ?? 0;
64
+ const max = rule.max === null || rule.max === undefined ? "*" : String(rule.max);
65
+ return `${min}..${max}`;
66
+ }
67
+ /** Whether a child rule is a STRUCTURAL child (not an attr — attrs live in the table). */
68
+ function isStructuralChild(rule) {
69
+ return rule.childType !== "attr";
70
+ }
71
+ /**
72
+ * Render the per-subtype Attributes table. Columns:
73
+ * Attribute | Type | Required | Default | Allowed values | Provider | Description
74
+ * Sorted by attr name; common (universal documentation) attrs are excluded
75
+ * (mentioned once on the providers page) to keep per-type pages lean.
76
+ */
77
+ function attrsTable(def, provenance, commonAttrNames) {
78
+ const rows = def.attributes
79
+ .filter((a) => !commonAttrNames.has(a.name))
80
+ .slice()
81
+ .sort((a, b) => compare(a.name, b.name));
82
+ if (rows.length === 0)
83
+ return "_No subtype-specific attributes._\n";
84
+ const lines = [
85
+ "| Attribute | Type | Required | Default | Allowed values | Provider | Description |",
86
+ "| --- | --- | --- | --- | --- | --- | --- |",
87
+ ];
88
+ for (const a of rows) {
89
+ // Resolve the contributing provider. An attr inherited from `<type>.base`
90
+ // (FR-033 `extendsBase`) is recorded against the BASE in the embedded data,
91
+ // not the concrete subtype — so fall back to the base owner when the
92
+ // subtype-specific lookup misses. (`base` itself has no further fallback.)
93
+ const provider = provenance.ownerOfAttr(def.typeId.type, def.typeId.subType, a.name) ??
94
+ provenance.ownerOfAttr(def.typeId.type, SUBTYPE_BASE, a.name) ??
95
+ "—";
96
+ const allowed = (a.allowedValues ?? []).map(valueToken).join(", ");
97
+ lines.push(`| \`@${a.name}\` | ${attrTypeLabel(a)} | ${a.required ? "yes" : "no"} | ` +
98
+ `${valueToken(a.default)} | ${allowed} | ${provider} | ${cell(a.description)} |`);
99
+ }
100
+ return `${lines.join("\n")}\n`;
101
+ }
102
+ /** Render the Allowed children list (structural child rules), sorted. */
103
+ function childrenList(def) {
104
+ const structural = def.childRules
105
+ .filter(isStructuralChild)
106
+ .slice()
107
+ .sort((a, b) => compare(a.childType, b.childType) ||
108
+ compare(childSubTypeLabel(a.childSubType), childSubTypeLabel(b.childSubType)) ||
109
+ compare(a.childName, b.childName));
110
+ if (structural.length === 0)
111
+ return "_No structural children._\n";
112
+ const lines = structural.map((r) => {
113
+ const nameSuffix = r.childName === CHILD_RULE_WILDCARD ? "" : ` (name \`${r.childName}\`)`;
114
+ return `- \`${r.childType}.${childSubTypeLabel(r.childSubType)}\`${nameSuffix} — ${cardinality(r)}`;
115
+ });
116
+ return `${lines.join("\n")}\n`;
117
+ }
118
+ /** Render one subtype section on a type-family page. */
119
+ function subtypeSection(def, provenance, commonAttrNames) {
120
+ const { type, subType } = def.typeId;
121
+ const owner = provenance.ownerOfType(type, subType);
122
+ const parts = [`### ${type}.${subType}\n`];
123
+ parts.push(`${def.description}\n`);
124
+ if (owner !== undefined)
125
+ parts.push(`**Owning provider:** ${owner}\n`);
126
+ if (def.rules !== undefined)
127
+ parts.push(`**Rules:** ${def.rules}\n`);
128
+ if (def.whenToUse !== undefined)
129
+ parts.push(`**When to use:** ${def.whenToUse}\n`);
130
+ if (def.example !== undefined)
131
+ parts.push(`**Example:**\n\n\`\`\`\n${def.example}\n\`\`\`\n`);
132
+ parts.push(`**Attributes**\n`);
133
+ parts.push(attrsTable(def, provenance, commonAttrNames));
134
+ parts.push(`**Allowed children**\n`);
135
+ parts.push(childrenList(def));
136
+ if (def.parents !== undefined && def.parents.length > 0) {
137
+ const ps = [...def.parents].sort(compare).map((p) => `\`${p}\``).join(", ");
138
+ parts.push(`**Parents:** ${ps}\n`);
139
+ }
140
+ return parts.join("\n");
141
+ }
142
+ /**
143
+ * The registered (type, subType) definitions the metamodel docs cover — every
144
+ * registered pair EXCEPT the ones the registry-conformance manifest carves out
145
+ * (TS-web-presentation `view.*` controls + the `metadata.base` inheritance
146
+ * anchor) so the docs describe exactly the agreed cross-port vocabulary.
147
+ */
148
+ function coveredDefs(registry) {
149
+ return registry
150
+ .allTypes()
151
+ .filter((id) => !isExcludedTypeSubType(id.type, id.subType))
152
+ .map((id) => registry.find(id.type, id.subType))
153
+ .sort((a, b) => compare(`${a.typeId.type}.${a.typeId.subType}`, `${b.typeId.type}.${b.typeId.subType}`));
154
+ }
155
+ /** Render INDEX.md — the always-on map: every type.subType + one-liner + link. */
156
+ function renderIndex(defs) {
157
+ const lines = [
158
+ header("Metamodel vocabulary index — every type.subType, its one-line description, and a link to its type page."),
159
+ "# MetaObjects Metamodel — Index\n",
160
+ "This documents the **metamodel itself** — the type / subtype / attribute",
161
+ "vocabulary the loader accepts — generated from the strict registry. It is",
162
+ "NOT documentation of a user's entities (that is `meta docs --model`).\n",
163
+ "Follow a link into `types/<family>.md` for the full attribute table, allowed",
164
+ "children, and cardinality of a subtype. Universal documentation attributes",
165
+ "(`@description`/`@title`/…) apply to every node and are listed once in",
166
+ "[providers.md](providers.md) under `metaobjects-documentation`.\n",
167
+ "| Type.subType | Description | Page |",
168
+ "| --- | --- | --- |",
169
+ ];
170
+ for (const def of defs) {
171
+ const { type, subType } = def.typeId;
172
+ const link = `[types/${type}.md#${anchor(type, subType)}](types/${type}.md#${anchor(type, subType)})`;
173
+ lines.push(`| \`${type}.${subType}\` | ${cell(def.description)} | ${link} |`);
174
+ }
175
+ return `${lines.join("\n")}\n`;
176
+ }
177
+ /** Render one types/<family>.md page from that family's subtype definitions. */
178
+ function renderTypePage(family, defs, provenance, commonAttrNames) {
179
+ const parts = [
180
+ header(`Metamodel reference for the \`${family}\` type family — each subtype's composed attributes, allowed children, and cardinality.`),
181
+ `# Metamodel — \`${family}\` types\n`,
182
+ `Each section below is one \`${family}.<subType>\`. The **Attributes** table lists`,
183
+ `the subtype's own + concern-contributed attributes (provider-tagged); universal`,
184
+ `documentation attributes are omitted here (see [providers.md](../providers.md)).`,
185
+ `**Allowed children** lists the structural child rules with their cardinality`,
186
+ `(\`min..max\`, \`*\` = unbounded).\n`,
187
+ ];
188
+ for (const def of defs) {
189
+ parts.push(subtypeSection(def, provenance, commonAttrNames));
190
+ }
191
+ return `${parts.join("\n")}\n`;
192
+ }
193
+ /** Render providers.md — the 5-concern ownership index (the provider lens). */
194
+ function renderProviders(provenance) {
195
+ const parts = [
196
+ header("Concern-provider ownership index — which provider owns each type and contributes each attribute."),
197
+ "# MetaObjects Metamodel — Providers\n",
198
+ "The metamodel is composed from concern providers. Each **owns** the",
199
+ "type/subtypes it registers and may **contribute** attributes to types another",
200
+ "provider owns. This is the ownership lens over the same vocabulary",
201
+ "[INDEX.md](INDEX.md) lists by type.\n",
202
+ ];
203
+ for (const id of provenance.providerIds()) {
204
+ parts.push(`## ${id}\n`);
205
+ const desc = provenance.providerDescription(id);
206
+ if (desc !== undefined)
207
+ parts.push(`${desc}\n`);
208
+ const owned = provenance.typesOwnedBy(id);
209
+ if (owned.length > 0) {
210
+ parts.push(`**Owns (registers):** ${owned.map((t) => `\`${t}\``).join(", ")}\n`);
211
+ }
212
+ const common = provenance.commonAttrsBy(id);
213
+ if (common.length > 0) {
214
+ parts.push(`**Universal attributes (every node):** ${common.map((a) => `\`@${a}\``).join(", ")}\n`);
215
+ }
216
+ const contributed = provenance.attrsContributedBy(id);
217
+ if (contributed.length > 0) {
218
+ parts.push(`**Contributes attributes:**\n`);
219
+ const lines = contributed.map((c) => `- \`${c.typeSubType}\`: ${c.attrs.map((a) => `\`@${a}\``).join(", ")}`);
220
+ parts.push(`${lines.join("\n")}\n`);
221
+ }
222
+ }
223
+ return `${parts.join("\n")}\n`;
224
+ }
225
+ /**
226
+ * Render the full metamodel doc tree (pure + deterministic). Returns a
227
+ * `Map<relativePath, markdown>` keyed by:
228
+ * `INDEX.md`, `providers.md`, `types/<family>.md`.
229
+ *
230
+ * The registry must already be composed (`composeRegistry(coreProviders)`); the
231
+ * provenance lens is built once (`buildMetamodelProvenance`) and threaded in.
232
+ */
233
+ export function renderMetamodelDocs(registry, provenance) {
234
+ const defs = coveredDefs(registry);
235
+ const commonAttrNames = new Set(registry.getCommonAttrs().map((a) => a.name));
236
+ const out = new Map();
237
+ out.set("INDEX.md", renderIndex(defs));
238
+ out.set("providers.md", renderProviders(provenance));
239
+ // Group by type family, sorted within + across.
240
+ const byFamily = new Map();
241
+ for (const def of defs) {
242
+ const fam = def.typeId.type;
243
+ if (!byFamily.has(fam))
244
+ byFamily.set(fam, []);
245
+ byFamily.get(fam).push(def);
246
+ }
247
+ for (const fam of [...byFamily.keys()].sort(compare)) {
248
+ out.set(`types/${fam}.md`, renderTypePage(fam, byFamily.get(fam), provenance, commonAttrNames));
249
+ }
250
+ return out;
251
+ }
252
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/metamodel-docs/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { MetaData } from "./shared/meta-data.js";
2
+ /**
3
+ * The inline (`@`-prefixed) attribute names whose VALUE is a metadata reference
4
+ * subject to FR-032 expansion/guarding (ADR-0032 §3). The structural `extends`
5
+ * key is handled separately (it is not `@`-prefixed). `@objectRef`/`@references`
6
+ * are pure object refs; `@from`/`@of`/`@via` carry an entity HEAD (possibly with
7
+ * a dotted relationship/field tail — expandRef preserves the tail);
8
+ * `@parameterRef`/`@payloadRef`/`@responseRef` reference value-objects. These are
9
+ * expanded by the YAML desugar and rejected (when still relative) by the
10
+ * canonical-JSON guard. `@sourceRefField` (a FK FIELD name, not an object ref)
11
+ * and `@through` are intentionally NOT in this set (out of scope for FR-032 T-slice).
12
+ */
13
+ export declare const REF_BEARING_ATTR_NAMES: ReadonlySet<string>;
14
+ /**
15
+ * True when `raw` is a relative reference form (`::Rest` or `..::Rest`) that the
16
+ * YAML desugar must expand before canonical JSON. Canonical JSON must be FQN; a
17
+ * relative ref surviving into it is `ERR_RELATIVE_REF_IN_CANONICAL`.
18
+ */
19
+ export declare function isRelativeRef(raw: string): boolean;
20
+ /**
21
+ * Expand an authored reference to its fully-qualified canonical form per
22
+ * ADR-0032 §2.1, preserving any FR-024 dotted child suffix. The package context
23
+ * `P` is the declaring node's effective package (its own `package` or the
24
+ * file-default). Throws on parent-relative over-drop — the caller emits an error.
25
+ */
26
+ export declare function expandRef(raw: string, packageContext: string): string;
27
+ /**
28
+ * FR-032 — does a root-level object `node` satisfy an (already-expanded)
29
+ * object reference `ref`? After the YAML desugar + corpus sweep every ref is
30
+ * fully qualified, so resolution is a pure FQN match. Objects keep a BARE
31
+ * `fqn()` per the FR5d cross-port contract, so the canonical FQN accessor is
32
+ * `resolutionKey()` (`<package | fileDefaultPackage>::<name>`) — this mirrors
33
+ * `super-resolve`'s `findInTree`. The bare `name`/`fqn()` arms cover legacy
34
+ * same-tree refs and root-level (empty-package) objects.
35
+ *
36
+ * This is the single matcher the non-super resolvers (origin `@from`/`@of`/
37
+ * `@via` heads, template `@payloadRef`/`@responseRef`, source `@parameterRef`)
38
+ * share, so FQN matching behaves identically everywhere a ref resolves.
39
+ */
40
+ export declare function refMatchesObject(node: MetaData, ref: string): boolean;
41
+ //# sourceMappingURL=naming-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-refs.d.ts","sourceRoot":"","sources":["../src/naming-refs.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAiBtD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAYrD,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AA0DD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAErE"}
@@ -0,0 +1,144 @@
1
+ // FR-032 (ADR-0032) — canonical reference expansion.
2
+ //
3
+ // `expandRef(raw, packageContext)` is the SINGLE ref-expansion primitive. It
4
+ // lowers an authored metadata reference to its fully-qualified canonical form
5
+ // per ADR-0032 §2.1 — deterministically, with NO root fallback:
6
+ //
7
+ // bare `Name` (no `::`, no leading `.`) → `<P>::Name` (current package only;
8
+ // stays bare when P is empty/root).
9
+ // qualified `pkg::Name` (contains `::`, → unchanged (absolute from root).
10
+ // NOT leading `::`)
11
+ // `::Rest` (leading `::`) → strip the leading `::`; the
12
+ // remainder is absolute from root
13
+ // (so `::a::b::C` ≡ `a::b::C`,
14
+ // `::Apple` = root-level Apple).
15
+ // `..::Rest` (one or more leading `..::`) → drop one package segment from P
16
+ // per `..::`, then resolve Rest
17
+ // (itself bare/qualified) against the
18
+ // reduced package. Over-drop (more
19
+ // `..::` than P has segments) throws.
20
+ //
21
+ // The trailing FR-024 DOTTED CHILD suffix (`.child` / `.child.grandchild`) is
22
+ // PRESERVED verbatim: only the OWNER part (everything before the first `.` in
23
+ // the final `::`-segment) is expanded; the `.child...` tail is reattached.
24
+ //
25
+ // The desugar runs this on every ref-bearing attr so canonical JSON is FQN-only
26
+ // (ADR-0032 §2.2/§2.3); the resolution layer then does pure FQN matching. The
27
+ // `package` attribute is NEVER expanded — it is the node's identity.
28
+ import { PACKAGE_SEPARATOR, PACKAGE_PARENT, CHILD_REF_SEPARATOR } from "./shared/structural.js";
29
+ import { RELATIONSHIP_ATTR_OBJECT_REF } from "./core/relationship/relationship-constants.js";
30
+ import { FIELD_ATTR_OBJECT_REF } from "./core/field/field-constants.js";
31
+ import { IDENTITY_REFERENCE_ATTR_REFERENCES } from "./core/identity/identity-constants.js";
32
+ import { ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, ORIGIN_COLLECTION_ATTR_VIA, } from "./persistence/origin/origin-constants.js";
33
+ import { SOURCE_ATTR_PARAMETER_REF } from "./persistence/source/source-constants.js";
34
+ import { TEMPLATE_ATTR_PAYLOAD_REF, TEMPLATE_ATTR_RESPONSE_REF } from "./template/template-constants.js";
35
+ const PARENT_PREFIX = PACKAGE_PARENT + PACKAGE_SEPARATOR; // "..::"
36
+ /**
37
+ * The inline (`@`-prefixed) attribute names whose VALUE is a metadata reference
38
+ * subject to FR-032 expansion/guarding (ADR-0032 §3). The structural `extends`
39
+ * key is handled separately (it is not `@`-prefixed). `@objectRef`/`@references`
40
+ * are pure object refs; `@from`/`@of`/`@via` carry an entity HEAD (possibly with
41
+ * a dotted relationship/field tail — expandRef preserves the tail);
42
+ * `@parameterRef`/`@payloadRef`/`@responseRef` reference value-objects. These are
43
+ * expanded by the YAML desugar and rejected (when still relative) by the
44
+ * canonical-JSON guard. `@sourceRefField` (a FK FIELD name, not an object ref)
45
+ * and `@through` are intentionally NOT in this set (out of scope for FR-032 T-slice).
46
+ */
47
+ export const REF_BEARING_ATTR_NAMES = new Set([
48
+ RELATIONSHIP_ATTR_OBJECT_REF, // = FIELD_ATTR_OBJECT_REF (same spelling "objectRef")
49
+ FIELD_ATTR_OBJECT_REF,
50
+ IDENTITY_REFERENCE_ATTR_REFERENCES,
51
+ ORIGIN_PASSTHROUGH_ATTR_FROM,
52
+ ORIGIN_PASSTHROUGH_ATTR_VIA, // = ORIGIN_AGGREGATE_ATTR_VIA = ORIGIN_COLLECTION_ATTR_VIA ("via")
53
+ ORIGIN_AGGREGATE_ATTR_OF,
54
+ ORIGIN_AGGREGATE_ATTR_VIA,
55
+ ORIGIN_COLLECTION_ATTR_VIA,
56
+ SOURCE_ATTR_PARAMETER_REF,
57
+ TEMPLATE_ATTR_PAYLOAD_REF,
58
+ TEMPLATE_ATTR_RESPONSE_REF,
59
+ ]);
60
+ /**
61
+ * True when `raw` is a relative reference form (`::Rest` or `..::Rest`) that the
62
+ * YAML desugar must expand before canonical JSON. Canonical JSON must be FQN; a
63
+ * relative ref surviving into it is `ERR_RELATIVE_REF_IN_CANONICAL`.
64
+ */
65
+ export function isRelativeRef(raw) {
66
+ return raw.startsWith(PACKAGE_SEPARATOR) || raw.startsWith(PARENT_PREFIX);
67
+ }
68
+ /**
69
+ * Split a ref into its owner part (the object reference) and any FR-024 dotted
70
+ * child tail. The `.` that marks a child can only appear in the FINAL
71
+ * `::`-segment (package separators never follow a child dot), so the owner ends
72
+ * at the first `.` AFTER the last `::`. Returns `{ owner, tail }` where `tail`
73
+ * includes the leading `.` (or is "" when there is no child suffix).
74
+ */
75
+ function splitChildTail(raw) {
76
+ const lastSep = raw.lastIndexOf(PACKAGE_SEPARATOR);
77
+ const segStart = lastSep === -1 ? 0 : lastSep + PACKAGE_SEPARATOR.length;
78
+ const dotInSeg = raw.indexOf(CHILD_REF_SEPARATOR, segStart);
79
+ if (dotInSeg === -1)
80
+ return { owner: raw, tail: "" };
81
+ return { owner: raw.slice(0, dotInSeg), tail: raw.slice(dotInSeg) };
82
+ }
83
+ /**
84
+ * Expand an authored reference's OWNER part (no child tail) to its FQN per
85
+ * ADR-0032 §2.1. Throws on parent-relative over-drop.
86
+ */
87
+ function expandOwner(owner, packageContext) {
88
+ // root-absolute: leading "::" → strip; the remainder is absolute from root.
89
+ if (owner.startsWith(PACKAGE_SEPARATOR)) {
90
+ return owner.slice(PACKAGE_SEPARATOR.length);
91
+ }
92
+ // parent-relative: one or more leading "..::".
93
+ if (owner.startsWith(PARENT_PREFIX)) {
94
+ let rest = owner;
95
+ let levels = 0;
96
+ while (rest.startsWith(PARENT_PREFIX)) {
97
+ levels++;
98
+ rest = rest.slice(PARENT_PREFIX.length);
99
+ }
100
+ const pkgParts = packageContext !== "" ? packageContext.split(PACKAGE_SEPARATOR) : [];
101
+ if (levels > pkgParts.length) {
102
+ throw new Error(`Relative reference '${owner}' over-drops: ${levels} parent level(s) ` +
103
+ `but the package context '${packageContext}' has only ${pkgParts.length} segment(s)`);
104
+ }
105
+ const reducedPkg = pkgParts.slice(0, pkgParts.length - levels).join(PACKAGE_SEPARATOR);
106
+ // `rest` is itself bare/qualified — resolve it against the reduced package.
107
+ // (A qualified remainder still resolves bare-in-the-reduced-package per the
108
+ // §2.1 example `..::veg::Carrot` → `acme::veg::Carrot`.)
109
+ return reducedPkg !== "" ? `${reducedPkg}${PACKAGE_SEPARATOR}${rest}` : rest;
110
+ }
111
+ // qualified: contains "::" (not leading) → absolute, unchanged.
112
+ if (owner.includes(PACKAGE_SEPARATOR)) {
113
+ return owner;
114
+ }
115
+ // bare name → current package (only). Stays bare when context is empty/root.
116
+ return packageContext !== "" ? `${packageContext}${PACKAGE_SEPARATOR}${owner}` : owner;
117
+ }
118
+ /**
119
+ * Expand an authored reference to its fully-qualified canonical form per
120
+ * ADR-0032 §2.1, preserving any FR-024 dotted child suffix. The package context
121
+ * `P` is the declaring node's effective package (its own `package` or the
122
+ * file-default). Throws on parent-relative over-drop — the caller emits an error.
123
+ */
124
+ export function expandRef(raw, packageContext) {
125
+ const { owner, tail } = splitChildTail(raw);
126
+ return expandOwner(owner, packageContext) + tail;
127
+ }
128
+ /**
129
+ * FR-032 — does a root-level object `node` satisfy an (already-expanded)
130
+ * object reference `ref`? After the YAML desugar + corpus sweep every ref is
131
+ * fully qualified, so resolution is a pure FQN match. Objects keep a BARE
132
+ * `fqn()` per the FR5d cross-port contract, so the canonical FQN accessor is
133
+ * `resolutionKey()` (`<package | fileDefaultPackage>::<name>`) — this mirrors
134
+ * `super-resolve`'s `findInTree`. The bare `name`/`fqn()` arms cover legacy
135
+ * same-tree refs and root-level (empty-package) objects.
136
+ *
137
+ * This is the single matcher the non-super resolvers (origin `@from`/`@of`/
138
+ * `@via` heads, template `@payloadRef`/`@responseRef`, source `@parameterRef`)
139
+ * share, so FQN matching behaves identically everywhere a ref resolves.
140
+ */
141
+ export function refMatchesObject(node, ref) {
142
+ return node.resolutionKey() === ref || node.fqn() === ref || node.name === ref;
143
+ }
144
+ //# sourceMappingURL=naming-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-refs.js","sourceRoot":"","sources":["../src/naming-refs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUtD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI7D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3E,sDAAsD;AACtD,eAAO,MAAM,8BAA8B,EAAE,oBAAmC,CAAC;AAEjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAM9F;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAWzD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,oBAAqD,GAC9D,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CASvE;AAED,2GAA2G;AAC3G,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,EAChB,QAAQ,GAAE,oBAAqD,GAC9D,aAAa,CAUf"}
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAUtD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI7D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3E,sDAAsD;AACtD,eAAO,MAAM,8BAA8B,EAAE,oBAAmC,CAAC;AAEjF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAM9F;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAiBzD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,GAAE,oBAAqD,GAC9D,MAAM,CAIR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CASvE;AAED,2GAA2G;AAC3G,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,QAAQ,EAChB,QAAQ,GAAE,oBAAqD,GAC9D,aAAa,CAYf"}
package/dist/naming.js CHANGED
@@ -47,7 +47,13 @@ export function resolveTableName(entity) {
47
47
  // so this helper now just delegates. Writability (table vs view/storedProc/
48
48
  // tableFunction) only affects write-routing — for SELECT-side name resolution,
49
49
  // a read-only primary source is the right answer.
50
- const source = entity.ownChildren().find((c) => c instanceof MetaSource && c.role === SOURCE_ROLE_PRIMARY);
50
+ //
51
+ // Effective children (own + inherited via the super chain) so a TPH SUBTYPE
52
+ // — which declares no source of its own and inherits the discriminator base's
53
+ // single table (FR-017) — resolves to that base table rather than the
54
+ // entity-name fallback. For an entity declaring its own source, own shadows
55
+ // inherited, so the result is unchanged.
56
+ const source = entity.children().find((c) => c instanceof MetaSource && c.role === SOURCE_ROLE_PRIMARY);
51
57
  if (source !== undefined)
52
58
  return source.physicalName;
53
59
  return pluralize(toSnakeCase(entity.name));
@@ -77,7 +83,9 @@ export function resolveTableSchema(entity) {
77
83
  export function buildNameMap(entity, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
78
84
  const jsToDb = new Map();
79
85
  const dbToJs = new Map();
80
- for (const child of entity.ownChildren()) {
86
+ // Effective children so a TPH subtype's name map covers inherited base
87
+ // fields + its own (FR-017); own shadows inherited on a name conflict.
88
+ for (const child of entity.children()) {
81
89
  if (child.type !== TYPE_FIELD)
82
90
  continue;
83
91
  const dbCol = resolveColumnName(child, strategy);
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser-core.d.ts","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAoB,MAAM,aAAa,CAAC;AAkCrG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,EAAE,aAAa,EAAE,CAAC;CACnC;AAYD,wBAAgB,SAAS,IAAI,WAAW,CAuBvC;AA6ID;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CA8I1E"}
1
+ {"version":3,"file":"parser-core.d.ts","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAoB,MAAM,aAAa,CAAC;AAoCrG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,EAAE,aAAa,EAAE,CAAC;CACnC;AAYD,wBAAgB,SAAS,IAAI,WAAW,CAuBvC;AAmLD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CA8I1E"}