@metaobjectsdev/metadata 0.9.0-rc.1 → 0.10.0

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 (426) 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 +84 -7
  4. package/dist/attr-schema-validate.js.map +1 -1
  5. package/dist/constants.d.ts +208 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +419 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/constraint-merge.d.ts +18 -0
  10. package/dist/constraint-merge.d.ts.map +1 -0
  11. package/dist/constraint-merge.js +0 -0
  12. package/dist/constraint-merge.js.map +1 -0
  13. package/dist/constraint-validate.d.ts +6 -0
  14. package/dist/constraint-validate.d.ts.map +1 -0
  15. package/dist/constraint-validate.js +274 -0
  16. package/dist/constraint-validate.js.map +1 -0
  17. package/dist/core/attr/attr-constants.d.ts +13 -3
  18. package/dist/core/attr/attr-constants.d.ts.map +1 -1
  19. package/dist/core/attr/attr-constants.js +11 -2
  20. package/dist/core/attr/attr-constants.js.map +1 -1
  21. package/dist/core/attr/attr-definition.embedded.d.ts +3 -0
  22. package/dist/core/attr/attr-definition.embedded.d.ts.map +1 -0
  23. package/dist/core/attr/attr-definition.embedded.js +60 -0
  24. package/dist/core/attr/attr-definition.embedded.js.map +1 -0
  25. package/dist/core/documentation/doc-constants.d.ts +3 -2
  26. package/dist/core/documentation/doc-constants.d.ts.map +1 -1
  27. package/dist/core/documentation/doc-constants.js +3 -1
  28. package/dist/core/documentation/doc-constants.js.map +1 -1
  29. package/dist/core/documentation/doc-provider.d.ts.map +1 -1
  30. package/dist/core/documentation/doc-provider.js +6 -2
  31. package/dist/core/documentation/doc-provider.js.map +1 -1
  32. package/dist/core/documentation/doc-schema.d.ts +1 -1
  33. package/dist/core/documentation/doc-schema.d.ts.map +1 -1
  34. package/dist/core/documentation/doc-schema.js +13 -5
  35. package/dist/core/documentation/doc-schema.js.map +1 -1
  36. package/dist/core/documentation/documentation-definition.embedded.d.ts +3 -0
  37. package/dist/core/documentation/documentation-definition.embedded.d.ts.map +1 -0
  38. package/dist/core/documentation/documentation-definition.embedded.js +79 -0
  39. package/dist/core/documentation/documentation-definition.embedded.js.map +1 -0
  40. package/dist/core/field/field-constants.d.ts +7 -4
  41. package/dist/core/field/field-constants.d.ts.map +1 -1
  42. package/dist/core/field/field-constants.js +7 -7
  43. package/dist/core/field/field-constants.js.map +1 -1
  44. package/dist/core/field/field-definition.embedded.d.ts +3 -0
  45. package/dist/core/field/field-definition.embedded.d.ts.map +1 -0
  46. package/dist/core/field/field-definition.embedded.js +236 -0
  47. package/dist/core/field/field-definition.embedded.js.map +1 -0
  48. package/dist/core/field/field-schema.d.ts +0 -16
  49. package/dist/core/field/field-schema.d.ts.map +1 -1
  50. package/dist/core/field/field-schema.js +10 -158
  51. package/dist/core/field/field-schema.js.map +1 -1
  52. package/dist/core/field/meta-field.d.ts.map +1 -1
  53. package/dist/core/field/meta-field.js +7 -5
  54. package/dist/core/field/meta-field.js.map +1 -1
  55. package/dist/core/file-meta-data-loader.d.ts +18 -0
  56. package/dist/core/file-meta-data-loader.d.ts.map +1 -0
  57. package/dist/core/file-meta-data-loader.js +81 -0
  58. package/dist/core/file-meta-data-loader.js.map +1 -0
  59. package/dist/core/file-source.d.ts +12 -0
  60. package/dist/core/file-source.d.ts.map +1 -0
  61. package/dist/core/file-source.js +46 -0
  62. package/dist/core/file-source.js.map +1 -0
  63. package/dist/core/identity/identity-definition.embedded.d.ts +3 -0
  64. package/dist/core/identity/identity-definition.embedded.d.ts.map +1 -0
  65. package/dist/core/identity/identity-definition.embedded.js +91 -0
  66. package/dist/core/identity/identity-definition.embedded.js.map +1 -0
  67. package/dist/core/identity/identity-schema.d.ts.map +1 -1
  68. package/dist/core/identity/identity-schema.js +3 -2
  69. package/dist/core/identity/identity-schema.js.map +1 -1
  70. package/dist/core/identity/validate-identity-passthrough.d.ts +42 -0
  71. package/dist/core/identity/validate-identity-passthrough.d.ts.map +1 -0
  72. package/dist/core/identity/validate-identity-passthrough.js +158 -0
  73. package/dist/core/identity/validate-identity-passthrough.js.map +1 -0
  74. package/dist/core/object/object-constants.d.ts +2 -1
  75. package/dist/core/object/object-constants.d.ts.map +1 -1
  76. package/dist/core/object/object-constants.js +3 -0
  77. package/dist/core/object/object-constants.js.map +1 -1
  78. package/dist/core/object/object-definition.embedded.d.ts +3 -0
  79. package/dist/core/object/object-definition.embedded.d.ts.map +1 -0
  80. package/dist/core/object/object-definition.embedded.js +110 -0
  81. package/dist/core/object/object-definition.embedded.js.map +1 -0
  82. package/dist/core/object/validate-discriminator.d.ts.map +1 -1
  83. package/dist/core/object/validate-discriminator.js +1 -3
  84. package/dist/core/object/validate-discriminator.js.map +1 -1
  85. package/dist/core/query/query-constants.d.ts.map +1 -1
  86. package/dist/core/query/query-constants.js +5 -3
  87. package/dist/core/query/query-constants.js.map +1 -1
  88. package/dist/core/relationship/derive-m2m-fields.d.ts +26 -0
  89. package/dist/core/relationship/derive-m2m-fields.d.ts.map +1 -0
  90. package/dist/core/relationship/derive-m2m-fields.js +102 -0
  91. package/dist/core/relationship/derive-m2m-fields.js.map +1 -0
  92. package/dist/core/relationship/meta-relationship.d.ts +6 -4
  93. package/dist/core/relationship/meta-relationship.d.ts.map +1 -1
  94. package/dist/core/relationship/meta-relationship.js +12 -8
  95. package/dist/core/relationship/meta-relationship.js.map +1 -1
  96. package/dist/core/relationship/relationship-constants.d.ts +6 -2
  97. package/dist/core/relationship/relationship-constants.d.ts.map +1 -1
  98. package/dist/core/relationship/relationship-constants.js +6 -2
  99. package/dist/core/relationship/relationship-constants.js.map +1 -1
  100. package/dist/core/relationship/relationship-definition.embedded.d.ts +3 -0
  101. package/dist/core/relationship/relationship-definition.embedded.d.ts.map +1 -0
  102. package/dist/core/relationship/relationship-definition.embedded.js +310 -0
  103. package/dist/core/relationship/relationship-definition.embedded.js.map +1 -0
  104. package/dist/core/relationship/relationship-schema.d.ts.map +1 -1
  105. package/dist/core/relationship/relationship-schema.js +13 -7
  106. package/dist/core/relationship/relationship-schema.js.map +1 -1
  107. package/dist/core/validator/validator-definition.embedded.d.ts +3 -0
  108. package/dist/core/validator/validator-definition.embedded.d.ts.map +1 -0
  109. package/dist/core/validator/validator-definition.embedded.js +134 -0
  110. package/dist/core/validator/validator-definition.embedded.js.map +1 -0
  111. package/dist/core/yaml-desugar.d.ts.map +1 -1
  112. package/dist/core/yaml-desugar.js +88 -10
  113. package/dist/core/yaml-desugar.js.map +1 -1
  114. package/dist/core-attr-schemas.d.ts +22 -0
  115. package/dist/core-attr-schemas.d.ts.map +1 -0
  116. package/dist/core-attr-schemas.js +324 -0
  117. package/dist/core-attr-schemas.js.map +1 -0
  118. package/dist/core-types.d.ts +5 -2
  119. package/dist/core-types.d.ts.map +1 -1
  120. package/dist/core-types.js +261 -115
  121. package/dist/core-types.js.map +1 -1
  122. package/dist/db/db-attr-schemas.d.ts +8 -0
  123. package/dist/db/db-attr-schemas.d.ts.map +1 -0
  124. package/dist/db/db-attr-schemas.js +26 -0
  125. package/dist/db/db-attr-schemas.js.map +1 -0
  126. package/dist/db/db-provider.d.ts +3 -0
  127. package/dist/db/db-provider.d.ts.map +1 -0
  128. package/dist/db/db-provider.js +28 -0
  129. package/dist/db/db-provider.js.map +1 -0
  130. package/dist/errors.d.ts +1 -1
  131. package/dist/errors.d.ts.map +1 -1
  132. package/dist/errors.js +78 -0
  133. package/dist/errors.js.map +1 -1
  134. package/dist/index.d.ts +17 -2
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +26 -1
  137. package/dist/index.js.map +1 -1
  138. package/dist/library/embedded-library.generated.d.ts +2 -0
  139. package/dist/library/embedded-library.generated.d.ts.map +1 -0
  140. package/dist/library/embedded-library.generated.js +11 -0
  141. package/dist/library/embedded-library.generated.js.map +1 -0
  142. package/dist/library/library-sources.d.ts +12 -0
  143. package/dist/library/library-sources.d.ts.map +1 -0
  144. package/dist/library/library-sources.js +88 -0
  145. package/dist/library/library-sources.js.map +1 -0
  146. package/dist/loader/meta-data-loader.d.ts +10 -2
  147. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  148. package/dist/loader/meta-data-loader.js +47 -6
  149. package/dist/loader/meta-data-loader.js.map +1 -1
  150. package/dist/loader/shortcuts.d.ts +2 -5
  151. package/dist/loader/shortcuts.d.ts.map +1 -1
  152. package/dist/loader/shortcuts.js.map +1 -1
  153. package/dist/loader/validation-passes.d.ts +3 -0
  154. package/dist/loader/validation-passes.d.ts.map +1 -1
  155. package/dist/loader/validation-passes.js +513 -33
  156. package/dist/loader/validation-passes.js.map +1 -1
  157. package/dist/meta/find-reference.d.ts +22 -0
  158. package/dist/meta/find-reference.d.ts.map +1 -0
  159. package/dist/meta/find-reference.js +29 -0
  160. package/dist/meta/find-reference.js.map +1 -0
  161. package/dist/meta/meta-attr.d.ts +8 -0
  162. package/dist/meta/meta-attr.d.ts.map +1 -0
  163. package/dist/meta/meta-attr.js +17 -0
  164. package/dist/meta/meta-attr.js.map +1 -0
  165. package/dist/meta/meta-data.d.ts +107 -0
  166. package/dist/meta/meta-data.d.ts.map +1 -0
  167. package/dist/meta/meta-data.js +302 -0
  168. package/dist/meta/meta-data.js.map +1 -0
  169. package/dist/meta/meta-field.d.ts +48 -0
  170. package/dist/meta/meta-field.d.ts.map +1 -0
  171. package/dist/meta/meta-field.js +94 -0
  172. package/dist/meta/meta-field.js.map +1 -0
  173. package/dist/meta/meta-identity.d.ts +71 -0
  174. package/dist/meta/meta-identity.d.ts.map +1 -0
  175. package/dist/meta/meta-identity.js +129 -0
  176. package/dist/meta/meta-identity.js.map +1 -0
  177. package/dist/meta/meta-layout.d.ts +23 -0
  178. package/dist/meta/meta-layout.d.ts.map +1 -0
  179. package/dist/meta/meta-layout.js +45 -0
  180. package/dist/meta/meta-layout.js.map +1 -0
  181. package/dist/meta/meta-object.d.ts +40 -0
  182. package/dist/meta/meta-object.d.ts.map +1 -0
  183. package/dist/meta/meta-object.js +81 -0
  184. package/dist/meta/meta-object.js.map +1 -0
  185. package/dist/meta/meta-origin.d.ts +32 -0
  186. package/dist/meta/meta-origin.d.ts.map +1 -0
  187. package/dist/meta/meta-origin.js +55 -0
  188. package/dist/meta/meta-origin.js.map +1 -0
  189. package/dist/meta/meta-relationship.d.ts +11 -0
  190. package/dist/meta/meta-relationship.d.ts.map +1 -0
  191. package/dist/meta/meta-relationship.js +27 -0
  192. package/dist/meta/meta-relationship.js.map +1 -0
  193. package/dist/meta/meta-root.d.ts +12 -0
  194. package/dist/meta/meta-root.d.ts.map +1 -0
  195. package/dist/meta/meta-root.js +24 -0
  196. package/dist/meta/meta-root.js.map +1 -0
  197. package/dist/meta/meta-source.d.ts +18 -0
  198. package/dist/meta/meta-source.d.ts.map +1 -0
  199. package/dist/meta/meta-source.js +31 -0
  200. package/dist/meta/meta-source.js.map +1 -0
  201. package/dist/meta/meta-validator.d.ts +29 -0
  202. package/dist/meta/meta-validator.d.ts.map +1 -0
  203. package/dist/meta/meta-validator.js +49 -0
  204. package/dist/meta/meta-validator.js.map +1 -0
  205. package/dist/meta/meta-view.d.ts +4 -0
  206. package/dist/meta/meta-view.d.ts.map +1 -0
  207. package/dist/meta/meta-view.js +8 -0
  208. package/dist/meta/meta-view.js.map +1 -0
  209. package/dist/metamodel-docs/index.d.ts +19 -0
  210. package/dist/metamodel-docs/index.d.ts.map +1 -0
  211. package/dist/metamodel-docs/index.js +37 -0
  212. package/dist/metamodel-docs/index.js.map +1 -0
  213. package/dist/metamodel-docs/provenance.d.ts +42 -0
  214. package/dist/metamodel-docs/provenance.d.ts.map +1 -0
  215. package/dist/metamodel-docs/provenance.js +148 -0
  216. package/dist/metamodel-docs/provenance.js.map +1 -0
  217. package/dist/metamodel-docs/provider-definitions.d.ts +8 -0
  218. package/dist/metamodel-docs/provider-definitions.d.ts.map +1 -0
  219. package/dist/metamodel-docs/provider-definitions.js +48 -0
  220. package/dist/metamodel-docs/provider-definitions.js.map +1 -0
  221. package/dist/metamodel-docs/render.d.ts +12 -0
  222. package/dist/metamodel-docs/render.d.ts.map +1 -0
  223. package/dist/metamodel-docs/render.js +252 -0
  224. package/dist/metamodel-docs/render.js.map +1 -0
  225. package/dist/naming-refs.d.ts +41 -0
  226. package/dist/naming-refs.d.ts.map +1 -0
  227. package/dist/naming-refs.js +144 -0
  228. package/dist/naming-refs.js.map +1 -0
  229. package/dist/naming.d.ts.map +1 -1
  230. package/dist/naming.js +10 -2
  231. package/dist/naming.js.map +1 -1
  232. package/dist/parser-core.d.ts.map +1 -1
  233. package/dist/parser-core.js +74 -8
  234. package/dist/parser-core.js.map +1 -1
  235. package/dist/persistence/db/db-attr-schemas.d.ts +8 -0
  236. package/dist/persistence/db/db-attr-schemas.d.ts.map +1 -0
  237. package/dist/persistence/db/db-attr-schemas.js +28 -0
  238. package/dist/persistence/db/db-attr-schemas.js.map +1 -0
  239. package/dist/persistence/db/db-definition.embedded.d.ts +3 -0
  240. package/dist/persistence/db/db-definition.embedded.d.ts.map +1 -0
  241. package/dist/persistence/db/db-definition.embedded.js +170 -0
  242. package/dist/persistence/db/db-definition.embedded.js.map +1 -0
  243. package/dist/persistence/db/db-provider.d.ts.map +1 -1
  244. package/dist/persistence/db/db-provider.js +13 -18
  245. package/dist/persistence/db/db-provider.js.map +1 -1
  246. package/dist/persistence/db/db-schema.d.ts +14 -0
  247. package/dist/persistence/db/db-schema.d.ts.map +1 -1
  248. package/dist/persistence/db/db-schema.js +27 -0
  249. package/dist/persistence/db/db-schema.js.map +1 -1
  250. package/dist/persistence/origin/origin-definition.embedded.d.ts +3 -0
  251. package/dist/persistence/origin/origin-definition.embedded.d.ts.map +1 -0
  252. package/dist/persistence/origin/origin-definition.embedded.js +88 -0
  253. package/dist/persistence/origin/origin-definition.embedded.js.map +1 -0
  254. package/dist/persistence/origin/origin-schema.d.ts.map +1 -1
  255. package/dist/persistence/origin/origin-schema.js +7 -3
  256. package/dist/persistence/origin/origin-schema.js.map +1 -1
  257. package/dist/persistence/source/source-definition.embedded.d.ts +3 -0
  258. package/dist/persistence/source/source-definition.embedded.d.ts.map +1 -0
  259. package/dist/persistence/source/source-definition.embedded.js +17 -0
  260. package/dist/persistence/source/source-definition.embedded.js.map +1 -0
  261. package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -1
  262. package/dist/persistence/source/validate-source-parameter-ref.js +7 -1
  263. package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -1
  264. package/dist/persistence/source/validate-source-roles.d.ts.map +1 -1
  265. package/dist/persistence/source/validate-source-roles.js +16 -1
  266. package/dist/persistence/source/validate-source-roles.js.map +1 -1
  267. package/dist/presentation/layout/layout-definition.embedded.d.ts +3 -0
  268. package/dist/presentation/layout/layout-definition.embedded.d.ts.map +1 -0
  269. package/dist/presentation/layout/layout-definition.embedded.js +16 -0
  270. package/dist/presentation/layout/layout-definition.embedded.js.map +1 -0
  271. package/dist/presentation/layout/layout-schema.d.ts.map +1 -1
  272. package/dist/presentation/layout/layout-schema.js +3 -2
  273. package/dist/presentation/layout/layout-schema.js.map +1 -1
  274. package/dist/presentation/ui/ui-definition.embedded.d.ts +3 -0
  275. package/dist/presentation/ui/ui-definition.embedded.d.ts.map +1 -0
  276. package/dist/presentation/ui/ui-definition.embedded.js +114 -0
  277. package/dist/presentation/ui/ui-definition.embedded.js.map +1 -0
  278. package/dist/presentation/ui/ui-provider.d.ts +3 -0
  279. package/dist/presentation/ui/ui-provider.d.ts.map +1 -0
  280. package/dist/presentation/ui/ui-provider.js +21 -0
  281. package/dist/presentation/ui/ui-provider.js.map +1 -0
  282. package/dist/presentation/ui/ui-schema.d.ts +10 -0
  283. package/dist/presentation/ui/ui-schema.d.ts.map +1 -0
  284. package/dist/presentation/ui/ui-schema.js +41 -0
  285. package/dist/presentation/ui/ui-schema.js.map +1 -0
  286. package/dist/presentation/view/view-definition.embedded.d.ts +3 -0
  287. package/dist/presentation/view/view-definition.embedded.d.ts.map +1 -0
  288. package/dist/presentation/view/view-definition.embedded.js +76 -0
  289. package/dist/presentation/view/view-definition.embedded.js.map +1 -0
  290. package/dist/provider-data.d.ts +169 -0
  291. package/dist/provider-data.d.ts.map +1 -0
  292. package/dist/provider-data.js +269 -0
  293. package/dist/provider-data.js.map +1 -0
  294. package/dist/provider.d.ts +3 -1
  295. package/dist/provider.d.ts.map +1 -1
  296. package/dist/provider.js +15 -1
  297. package/dist/provider.js.map +1 -1
  298. package/dist/registry-coverage.d.ts +99 -0
  299. package/dist/registry-coverage.d.ts.map +1 -0
  300. package/dist/registry-coverage.js +294 -0
  301. package/dist/registry-coverage.js.map +1 -0
  302. package/dist/registry-manifest-exclusions.d.ts +62 -0
  303. package/dist/registry-manifest-exclusions.d.ts.map +1 -0
  304. package/dist/registry-manifest-exclusions.js +163 -0
  305. package/dist/registry-manifest-exclusions.js.map +1 -0
  306. package/dist/registry-manifest.d.ts +117 -0
  307. package/dist/registry-manifest.d.ts.map +1 -0
  308. package/dist/registry-manifest.js +242 -0
  309. package/dist/registry-manifest.js.map +1 -0
  310. package/dist/registry.d.ts +60 -2
  311. package/dist/registry.d.ts.map +1 -1
  312. package/dist/registry.js +37 -1
  313. package/dist/registry.js.map +1 -1
  314. package/dist/shared/structural.d.ts +7 -0
  315. package/dist/shared/structural.d.ts.map +1 -1
  316. package/dist/shared/structural.js +7 -0
  317. package/dist/shared/structural.js.map +1 -1
  318. package/dist/subtype-rules.d.ts.map +1 -1
  319. package/dist/subtype-rules.js +97 -13
  320. package/dist/subtype-rules.js.map +1 -1
  321. package/dist/super-resolve.d.ts +49 -2
  322. package/dist/super-resolve.d.ts.map +1 -1
  323. package/dist/super-resolve.js +128 -43
  324. package/dist/super-resolve.js.map +1 -1
  325. package/dist/template/meta-template.d.ts +3 -2
  326. package/dist/template/meta-template.d.ts.map +1 -1
  327. package/dist/template/meta-template.js +3 -2
  328. package/dist/template/meta-template.js.map +1 -1
  329. package/dist/template/prompt-definition.embedded.d.ts +3 -0
  330. package/dist/template/prompt-definition.embedded.d.ts.map +1 -0
  331. package/dist/template/prompt-definition.embedded.js +368 -0
  332. package/dist/template/prompt-definition.embedded.js.map +1 -0
  333. package/dist/template/prompt-provider.d.ts +3 -0
  334. package/dist/template/prompt-provider.d.ts.map +1 -0
  335. package/dist/template/prompt-provider.js +25 -0
  336. package/dist/template/prompt-provider.js.map +1 -0
  337. package/dist/template/prompt-schema.d.ts +20 -0
  338. package/dist/template/prompt-schema.d.ts.map +1 -0
  339. package/dist/template/prompt-schema.js +70 -0
  340. package/dist/template/prompt-schema.js.map +1 -0
  341. package/dist/template/template-constants.d.ts +2 -0
  342. package/dist/template/template-constants.d.ts.map +1 -1
  343. package/dist/template/template-constants.js +7 -0
  344. package/dist/template/template-constants.js.map +1 -1
  345. package/dist/template/template-definition.embedded.d.ts +3 -0
  346. package/dist/template/template-definition.embedded.d.ts.map +1 -0
  347. package/dist/template/template-definition.embedded.js +30 -0
  348. package/dist/template/template-definition.embedded.js.map +1 -0
  349. package/dist/template/template-schema.d.ts.map +1 -1
  350. package/dist/template/template-schema.js +12 -4
  351. package/dist/template/template-schema.js.map +1 -1
  352. package/package.json +33 -22
  353. package/src/attr-schema-validate.ts +96 -4
  354. package/src/constraint-merge.ts +0 -0
  355. package/src/constraint-validate.ts +363 -0
  356. package/src/core/attr/attr-constants.ts +15 -3
  357. package/src/core/attr/attr-definition.embedded.ts +67 -0
  358. package/src/core/documentation/doc-constants.ts +3 -1
  359. package/src/core/documentation/doc-provider.ts +6 -2
  360. package/src/core/documentation/documentation-definition.embedded.ts +86 -0
  361. package/src/core/field/field-constants.ts +8 -7
  362. package/src/core/field/field-definition.embedded.ts +243 -0
  363. package/src/core/field/meta-field.ts +6 -7
  364. package/src/core/identity/identity-definition.embedded.ts +98 -0
  365. package/src/core/identity/validate-identity-passthrough.ts +194 -0
  366. package/src/core/object/object-constants.ts +3 -0
  367. package/src/core/object/object-definition.embedded.ts +117 -0
  368. package/src/core/object/validate-discriminator.ts +0 -4
  369. package/src/core/query/query-constants.ts +5 -3
  370. package/src/core/relationship/derive-m2m-fields.ts +145 -0
  371. package/src/core/relationship/meta-relationship.ts +15 -9
  372. package/src/core/relationship/relationship-constants.ts +6 -2
  373. package/src/core/relationship/relationship-definition.embedded.ts +317 -0
  374. package/src/core/validator/validator-definition.embedded.ts +141 -0
  375. package/src/core/yaml-desugar.ts +96 -7
  376. package/src/core-types.ts +289 -150
  377. package/src/errors.ts +78 -0
  378. package/src/index.ts +47 -2
  379. package/src/library/embedded-library.generated.ts +10 -0
  380. package/src/library/library-sources.ts +97 -0
  381. package/src/loader/meta-data-loader.ts +66 -7
  382. package/src/loader/shortcuts.ts +2 -2
  383. package/src/loader/validation-passes.ts +679 -33
  384. package/src/metamodel-docs/index.ts +41 -0
  385. package/src/metamodel-docs/provenance.ts +187 -0
  386. package/src/metamodel-docs/provider-definitions.ts +50 -0
  387. package/src/metamodel-docs/render.ts +309 -0
  388. package/src/naming-refs.ts +162 -0
  389. package/src/naming.ts +10 -2
  390. package/src/parser-core.ts +86 -8
  391. package/src/persistence/db/db-definition.embedded.ts +177 -0
  392. package/src/persistence/db/db-provider.ts +13 -18
  393. package/src/persistence/origin/origin-definition.embedded.ts +95 -0
  394. package/src/persistence/source/source-definition.embedded.ts +24 -0
  395. package/src/persistence/source/validate-source-parameter-ref.ts +7 -1
  396. package/src/persistence/source/validate-source-roles.ts +22 -1
  397. package/src/presentation/layout/layout-definition.embedded.ts +23 -0
  398. package/src/presentation/ui/ui-definition.embedded.ts +121 -0
  399. package/src/presentation/ui/ui-provider.ts +25 -0
  400. package/src/presentation/view/view-definition.embedded.ts +83 -0
  401. package/src/provider-data.ts +446 -0
  402. package/src/provider.ts +18 -0
  403. package/src/registry-coverage.ts +430 -0
  404. package/src/registry-manifest-exclusions.ts +176 -0
  405. package/src/registry-manifest.ts +334 -0
  406. package/src/registry.ts +90 -3
  407. package/src/shared/structural.ts +8 -0
  408. package/src/subtype-rules.ts +135 -18
  409. package/src/super-resolve.ts +153 -43
  410. package/src/template/meta-template.ts +3 -2
  411. package/src/template/prompt-definition.embedded.ts +375 -0
  412. package/src/template/prompt-provider.ts +29 -0
  413. package/src/template/template-constants.ts +8 -0
  414. package/src/template/template-definition.embedded.ts +37 -0
  415. package/src/core/documentation/doc-schema.ts +0 -64
  416. package/src/core/field/field-schema.ts +0 -228
  417. package/src/core/identity/identity-schema.ts +0 -80
  418. package/src/core/object/object-schema.ts +0 -35
  419. package/src/core/relationship/relationship-schema.ts +0 -67
  420. package/src/core/validator/validator-schema.ts +0 -50
  421. package/src/persistence/db/db-schema.ts +0 -50
  422. package/src/persistence/origin/origin-schema.ts +0 -80
  423. package/src/persistence/source/source-schema.ts +0 -129
  424. package/src/presentation/layout/layout-schema.ts +0 -62
  425. package/src/presentation/view/view-schema.ts +0 -21
  426. package/src/template/template-schema.ts +0 -211
@@ -0,0 +1,55 @@
1
+ // MetaOrigin — concrete node class for type=origin nodes.
2
+ // Field-level provenance (Project E).
3
+ // passthrough / aggregate origin subtypes declare how field values are derived.
4
+ //
5
+ // MetaPassthroughOrigin and MetaAggregateOrigin are co-located subtype classes
6
+ // (mirrors the meta-identity.ts pattern).
7
+ //
8
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
9
+ import { MetaData } from "./meta-data.js";
10
+ import { ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, } from "../constants.js";
11
+ export class MetaOrigin extends MetaData {
12
+ }
13
+ /**
14
+ * Passthrough origin — the field's value is sourced directly from a
15
+ * cross-entity field reference (e.g. a projection that forwards Program.title).
16
+ *
17
+ * Carries `@from` (required): the dotted Entity.field reference identifying
18
+ * the source value.
19
+ */
20
+ export class MetaPassthroughOrigin extends MetaOrigin {
21
+ /** The dotted-path cross-entity field reference this origin passes through (e.g. "Program.title"). */
22
+ get from() {
23
+ const v = this.ownAttr(ORIGIN_PASSTHROUGH_ATTR_FROM);
24
+ return typeof v === "string" ? v : undefined;
25
+ }
26
+ /** Optional dotted relationship path used to reach the source entity (e.g. "Program.weeks"). */
27
+ get via() {
28
+ const v = this.ownAttr(ORIGIN_PASSTHROUGH_ATTR_VIA);
29
+ return typeof v === "string" ? v : undefined;
30
+ }
31
+ }
32
+ /**
33
+ * Aggregate origin — the field's value is computed by aggregating values
34
+ * over a relationship path (count / sum / avg / min / max).
35
+ *
36
+ * Carries `@agg`, `@of`, and `@via` (all required).
37
+ */
38
+ export class MetaAggregateOrigin extends MetaOrigin {
39
+ /** The aggregate function (count | sum | avg | min | max). */
40
+ get agg() {
41
+ const v = this.ownAttr(ORIGIN_AGGREGATE_ATTR_AGG);
42
+ return typeof v === "string" ? v : undefined;
43
+ }
44
+ /** The dotted-path target of the aggregate (e.g. "Week.id"). */
45
+ get of() {
46
+ const v = this.ownAttr(ORIGIN_AGGREGATE_ATTR_OF);
47
+ return typeof v === "string" ? v : undefined;
48
+ }
49
+ /** The dotted relationship path the aggregate walks (e.g. "Program.weeks"). */
50
+ get via() {
51
+ const v = this.ownAttr(ORIGIN_AGGREGATE_ATTR_VIA);
52
+ return typeof v === "string" ? v : undefined;
53
+ }
54
+ }
55
+ //# sourceMappingURL=meta-origin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-origin.js","sourceRoot":"","sources":["../../src/meta/meta-origin.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,sCAAsC;AACtC,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,0CAA0C;AAC1C,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,GAE1B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,UAAW,SAAQ,QAAQ;CAAG;AAE3C;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,UAAU;IACnD,sGAAsG;IACtG,IAAI,IAAI;QACN,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,gGAAgG;IAChG,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACjD,8DAA8D;IAC9D,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAED,gEAAgE;IAChE,IAAI,EAAE;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,+EAA+E;IAC/E,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { MetaData } from "./meta-data.js";
2
+ export declare class MetaRelationship extends MetaData {
3
+ get cardinality(): string | undefined;
4
+ /** FQN of the target object (e.g., "acme::vehicle::Car"). */
5
+ get objectRef(): string | undefined;
6
+ /** Join-table entity name for N:M relationships. */
7
+ get joinEntity(): string | undefined;
8
+ /** Join-table column names for N:M relationships. */
9
+ get joinFields(): string[];
10
+ }
11
+ //# sourceMappingURL=meta-relationship.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-relationship.d.ts","sourceRoot":"","sources":["../../src/meta/meta-relationship.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ1C,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IAED,6DAA6D;IAC7D,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,oDAAoD;IACpD,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAGnC;IAED,qDAAqD;IACrD,IAAI,UAAU,IAAI,MAAM,EAAE,CAGzB;CACF"}
@@ -0,0 +1,27 @@
1
+ // MetaRelationship — concrete node class for type=relationship nodes.
2
+ //
3
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
4
+ import { MetaData } from "./meta-data.js";
5
+ import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_JOIN_ENTITY, RELATIONSHIP_ATTR_JOIN_FIELDS, } from "../constants.js";
6
+ export class MetaRelationship extends MetaData {
7
+ get cardinality() {
8
+ const v = this.ownAttr(RELATIONSHIP_ATTR_CARDINALITY);
9
+ return typeof v === "string" ? v : undefined;
10
+ }
11
+ /** FQN of the target object (e.g., "acme::vehicle::Car"). */
12
+ get objectRef() {
13
+ const v = this.ownAttr(RELATIONSHIP_ATTR_OBJECT_REF);
14
+ return typeof v === "string" ? v : undefined;
15
+ }
16
+ /** Join-table entity name for N:M relationships. */
17
+ get joinEntity() {
18
+ const v = this.ownAttr(RELATIONSHIP_ATTR_JOIN_ENTITY);
19
+ return typeof v === "string" ? v : undefined;
20
+ }
21
+ /** Join-table column names for N:M relationships. */
22
+ get joinFields() {
23
+ const f = this.ownAttr(RELATIONSHIP_ATTR_JOIN_FIELDS);
24
+ return Array.isArray(f) ? f : [];
25
+ }
26
+ }
27
+ //# sourceMappingURL=meta-relationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-relationship.js","sourceRoot":"","sources":["../../src/meta/meta-relationship.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAC7D,IAAI,SAAS;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,oDAAoD;IACpD,IAAI,UAAU;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,qDAAqD;IACrD,IAAI,UAAU;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { MetaData } from "./meta-data.js";
2
+ import type { MetaObject } from "./meta-object.js";
3
+ import type { MetaField } from "./meta-field.js";
4
+ export declare class MetaRoot extends MetaData {
5
+ /** Object entities defined at this root level. */
6
+ objects(): MetaObject[];
7
+ /** Abstract / package-level fields defined at root (rare; e.g. shared id fields). */
8
+ fields(): MetaField[];
9
+ /** Find an object by name. */
10
+ findObject(name: string): MetaObject | undefined;
11
+ }
12
+ //# sourceMappingURL=meta-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-root.d.ts","sourceRoot":"","sources":["../../src/meta/meta-root.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,QAAS,SAAQ,QAAQ;IACpC,kDAAkD;IAClD,OAAO,IAAI,UAAU,EAAE;IAMvB,qFAAqF;IACrF,MAAM,IAAI,SAAS,EAAE;IAMrB,8BAA8B;IAC9B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;CAMjD"}
@@ -0,0 +1,24 @@
1
+ // MetaRoot — concrete node class for the type=metadata root node.
2
+ //
3
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
4
+ // Children are already concrete typed nodes; accessors filter by type constant.
5
+ import { MetaData } from "./meta-data.js";
6
+ import { TYPE_OBJECT, TYPE_FIELD } from "../constants.js";
7
+ export class MetaRoot extends MetaData {
8
+ /** Object entities defined at this root level. */
9
+ objects() {
10
+ return this.cached("objects", () => this.ownChildren().filter((c) => c.type === TYPE_OBJECT));
11
+ }
12
+ /** Abstract / package-level fields defined at root (rare; e.g. shared id fields). */
13
+ fields() {
14
+ return this.cached("fields", () => this.ownChildren().filter((c) => c.type === TYPE_FIELD));
15
+ }
16
+ /** Find an object by name. */
17
+ findObject(name) {
18
+ return this.cached(`findObject:${name}`, () => {
19
+ const child = this.ownChildByTypeAndName(TYPE_OBJECT, name);
20
+ return child !== undefined ? child : undefined;
21
+ });
22
+ }
23
+ }
24
+ //# sourceMappingURL=meta-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-root.js","sourceRoot":"","sources":["../../src/meta/meta-root.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,wEAAwE;AACxE,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI1D,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACpC,kDAAkD;IAClD,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CACjC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,qFAAqF;IACrF,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAChC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CACxE,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,EAAE,GAAG,EAAE;YAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC5D,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,KAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { MetaData } from "./meta-data.js";
2
+ export declare class MetaSource extends MetaData {
3
+ /** The SQL table or view name (value of @name attr on the source child). */
4
+ get sourceName(): string | undefined;
5
+ /**
6
+ * True when this source is a `dbTable` (writable).
7
+ * Explicitly defined rather than derived from `isReadOnly()` so it remains
8
+ * correct if a third source subtype is added in the future.
9
+ */
10
+ isWritable(): boolean;
11
+ /**
12
+ * True when this source is a `dbView` (read-only projection).
13
+ * Explicitly defined rather than derived from `isWritable()` so it remains
14
+ * correct if a third source subtype is added in the future.
15
+ */
16
+ isReadOnly(): boolean;
17
+ }
18
+ //# sourceMappingURL=meta-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-source.d.ts","sourceRoot":"","sources":["../../src/meta/meta-source.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,qBAAa,UAAW,SAAQ,QAAQ;IACtC,4EAA4E;IAC5E,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAGnC;IAED;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAGtB"}
@@ -0,0 +1,31 @@
1
+ // MetaSource — concrete node class for type=source nodes.
2
+ // Declares where an object's data lives (Project E).
3
+ // dbTable / dbView source subtypes declare the SQL table or view name.
4
+ //
5
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
6
+ import { MetaData } from "./meta-data.js";
7
+ import { SOURCE_ATTR_NAME, SOURCE_SUBTYPE_DB_TABLE, SOURCE_SUBTYPE_DB_VIEW, } from "../constants.js";
8
+ export class MetaSource extends MetaData {
9
+ /** The SQL table or view name (value of @name attr on the source child). */
10
+ get sourceName() {
11
+ const v = this.ownAttr(SOURCE_ATTR_NAME);
12
+ return typeof v === "string" ? v : undefined;
13
+ }
14
+ /**
15
+ * True when this source is a `dbTable` (writable).
16
+ * Explicitly defined rather than derived from `isReadOnly()` so it remains
17
+ * correct if a third source subtype is added in the future.
18
+ */
19
+ isWritable() {
20
+ return this.subType === SOURCE_SUBTYPE_DB_TABLE;
21
+ }
22
+ /**
23
+ * True when this source is a `dbView` (read-only projection).
24
+ * Explicitly defined rather than derived from `isWritable()` so it remains
25
+ * correct if a third source subtype is added in the future.
26
+ */
27
+ isReadOnly() {
28
+ return this.subType === SOURCE_SUBTYPE_DB_VIEW;
29
+ }
30
+ }
31
+ //# sourceMappingURL=meta-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-source.js","sourceRoot":"","sources":["../../src/meta/meta-source.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,qDAAqD;AACrD,uEAAuE;AACvE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,4EAA4E;IAC5E,IAAI,UAAU;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,KAAK,uBAAuB,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import { MetaData } from "./meta-data.js";
2
+ export declare class MetaValidator extends MetaData {
3
+ /**
4
+ * Numeric range — shared by length, numeric, and array validators.
5
+ * (Pattern moves to MetaRegexValidator; required validators have no extra attrs.)
6
+ */
7
+ get min(): number | undefined;
8
+ get max(): number | undefined;
9
+ isRequired(): boolean;
10
+ isLength(): boolean;
11
+ isRegex(): boolean;
12
+ }
13
+ /** Required validator (no extra attrs; subtype class exists for instanceof narrowing). */
14
+ export declare class MetaRequiredValidator extends MetaValidator {
15
+ }
16
+ /** Length validator: min/max are string/array length bounds. */
17
+ export declare class MetaLengthValidator extends MetaValidator {
18
+ }
19
+ /** Regex validator: carries the pattern. */
20
+ export declare class MetaRegexValidator extends MetaValidator {
21
+ get pattern(): string | undefined;
22
+ }
23
+ /** Numeric validator: min/max are value bounds. */
24
+ export declare class MetaNumericValidator extends MetaValidator {
25
+ }
26
+ /** Array validator: min/max are element-count bounds. */
27
+ export declare class MetaArrayValidator extends MetaValidator {
28
+ }
29
+ //# sourceMappingURL=meta-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-validator.d.ts","sourceRoot":"","sources":["../../src/meta/meta-validator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAU1C,qBAAa,aAAc,SAAQ,QAAQ;IACzC;;;OAGG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAG5B;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAG5B;IAED,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;CAGnB;AAED,0FAA0F;AAC1F,qBAAa,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,gEAAgE;AAChE,qBAAa,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,4CAA4C;AAC5C,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAGhC;CACF;AAED,mDAAmD;AACnD,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,yDAAyD;AACzD,qBAAa,kBAAmB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,49 @@
1
+ // MetaValidator — concrete node class for type=validator nodes.
2
+ // Subtype classes (Required, Length, Regex, Numeric, Array) are co-located.
3
+ //
4
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
5
+ import { MetaData } from "./meta-data.js";
6
+ import { VALIDATOR_SUBTYPE_REQUIRED, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_ATTR_PATTERN, VALIDATOR_ATTR_MIN, VALIDATOR_ATTR_MAX, } from "../constants.js";
7
+ export class MetaValidator extends MetaData {
8
+ /**
9
+ * Numeric range — shared by length, numeric, and array validators.
10
+ * (Pattern moves to MetaRegexValidator; required validators have no extra attrs.)
11
+ */
12
+ get min() {
13
+ const v = this.ownAttr(VALIDATOR_ATTR_MIN);
14
+ return typeof v === "number" ? v : undefined;
15
+ }
16
+ get max() {
17
+ const v = this.ownAttr(VALIDATOR_ATTR_MAX);
18
+ return typeof v === "number" ? v : undefined;
19
+ }
20
+ isRequired() {
21
+ return this.subType === VALIDATOR_SUBTYPE_REQUIRED;
22
+ }
23
+ isLength() {
24
+ return this.subType === VALIDATOR_SUBTYPE_LENGTH;
25
+ }
26
+ isRegex() {
27
+ return this.subType === VALIDATOR_SUBTYPE_REGEX;
28
+ }
29
+ }
30
+ /** Required validator (no extra attrs; subtype class exists for instanceof narrowing). */
31
+ export class MetaRequiredValidator extends MetaValidator {
32
+ }
33
+ /** Length validator: min/max are string/array length bounds. */
34
+ export class MetaLengthValidator extends MetaValidator {
35
+ }
36
+ /** Regex validator: carries the pattern. */
37
+ export class MetaRegexValidator extends MetaValidator {
38
+ get pattern() {
39
+ const v = this.ownAttr(VALIDATOR_ATTR_PATTERN);
40
+ return typeof v === "string" ? v : undefined;
41
+ }
42
+ }
43
+ /** Numeric validator: min/max are value bounds. */
44
+ export class MetaNumericValidator extends MetaValidator {
45
+ }
46
+ /** Array validator: min/max are element-count bounds. */
47
+ export class MetaArrayValidator extends MetaValidator {
48
+ }
49
+ //# sourceMappingURL=meta-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-validator.js","sourceRoot":"","sources":["../../src/meta/meta-validator.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,4EAA4E;AAC5E,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC;;;OAGG;IACH,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC;IACnD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,KAAK,uBAAuB,CAAC;IAClD,CAAC;CACF;AAED,0FAA0F;AAC1F,MAAM,OAAO,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,gEAAgE;AAChE,MAAM,OAAO,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,4CAA4C;AAC5C,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACnD,IAAI,OAAO;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,OAAO,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,yDAAyD;AACzD,MAAM,OAAO,kBAAmB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,4 @@
1
+ import { MetaData } from "./meta-data.js";
2
+ export declare class MetaView extends MetaData {
3
+ }
4
+ //# sourceMappingURL=meta-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-view.d.ts","sourceRoot":"","sources":["../../src/meta/meta-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qBAAa,QAAS,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,8 @@
1
+ // MetaView — concrete node class for type=view nodes.
2
+ //
3
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
4
+ // Currently minimal — placeholder for v0.3+ view-level accessors.
5
+ import { MetaData } from "./meta-data.js";
6
+ export class MetaView extends MetaData {
7
+ }
8
+ //# sourceMappingURL=meta-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-view.js","sourceRoot":"","sources":["../../src/meta/meta-view.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,wEAAwE;AACxE,kEAAkE;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,QAAS,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,19 @@
1
+ import type { TypeRegistry } from "../registry.js";
2
+ import { buildMetamodelProvenance } from "./provenance.js";
3
+ import { renderMetamodelDocs } from "./render.js";
4
+ export { buildMetamodelProvenance, renderMetamodelDocs };
5
+ export type { MetamodelProvenance } from "./provenance.js";
6
+ /**
7
+ * Build the provider-id → description map from the core provider bundle. The
8
+ * descriptions live on the provider objects (not the embedded definitions), so
9
+ * the provenance builder takes them as input; this assembles the default map
10
+ * for the standard `coreProviders` composition.
11
+ */
12
+ export declare function coreProviderDescriptions(): Map<string, string>;
13
+ /**
14
+ * One-shot convenience: build the provenance lens (with the core provider
15
+ * descriptions) and render the full metamodel doc tree from a composed registry.
16
+ * The CLI uses this; tests can call the lower-level pieces directly.
17
+ */
18
+ export declare function renderCoreMetamodelDocs(registry: TypeRegistry): Map<string, string>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metamodel-docs/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,wBAAwB,EAA4B,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKnF"}
@@ -0,0 +1,37 @@
1
+ // FR-033 S3 — metamodel doc-gen public surface.
2
+ //
3
+ // Documents the METAMODEL ITSELF (the type/subtype/attr vocabulary of the strict
4
+ // registry) as tiered, LLM-readable markdown — distinct from `meta docs --model`
5
+ // (which documents a user's entities). The renderer is a pure, deterministic
6
+ // function over the composed registry + a provenance lens; file I/O lives in the
7
+ // CLI.
8
+ import { coreProviders } from "../core-types.js";
9
+ import { buildMetamodelProvenance } from "./provenance.js";
10
+ import { renderMetamodelDocs } from "./render.js";
11
+ export { buildMetamodelProvenance, renderMetamodelDocs };
12
+ /**
13
+ * Build the provider-id → description map from the core provider bundle. The
14
+ * descriptions live on the provider objects (not the embedded definitions), so
15
+ * the provenance builder takes them as input; this assembles the default map
16
+ * for the standard `coreProviders` composition.
17
+ */
18
+ export function coreProviderDescriptions() {
19
+ const map = new Map();
20
+ for (const p of coreProviders) {
21
+ if (p.description !== undefined)
22
+ map.set(p.id, p.description);
23
+ }
24
+ return map;
25
+ }
26
+ /**
27
+ * One-shot convenience: build the provenance lens (with the core provider
28
+ * descriptions) and render the full metamodel doc tree from a composed registry.
29
+ * The CLI uses this; tests can call the lower-level pieces directly.
30
+ */
31
+ export function renderCoreMetamodelDocs(registry) {
32
+ const provenance = buildMetamodelProvenance(registry, {
33
+ providerDescriptions: coreProviderDescriptions(),
34
+ });
35
+ return renderMetamodelDocs(registry, provenance);
36
+ }
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metamodel-docs/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,6EAA6E;AAC7E,iFAAiF;AACjF,OAAO;AAGP,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAA4B,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;AAGzD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAsB;IAC5D,MAAM,UAAU,GAAwB,wBAAwB,CAAC,QAAQ,EAAE;QACzE,oBAAoB,EAAE,wBAAwB,EAAE;KACjD,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { TypeRegistry } from "../registry.js";
2
+ /**
3
+ * The provenance lens: maps each registered type/attr back to its owning /
4
+ * contributing provider id, and the inverse (a provider → what it owns +
5
+ * contributes). Built once from the embedded definitions + the live registry.
6
+ */
7
+ export interface MetamodelProvenance {
8
+ /** Provider id that REGISTERS (owns) this `type.subType`, or undefined. */
9
+ ownerOfType(type: string, subType: string): string | undefined;
10
+ /** Provider id that declared/contributed this attr on this `type.subType`. */
11
+ ownerOfAttr(type: string, subType: string, attrName: string): string | undefined;
12
+ /** Provider id that contributed this common (universal) attr. */
13
+ ownerOfCommonAttr(attrName: string): string | undefined;
14
+ /** The provider id → its description (from the embedded definition). */
15
+ providerDescription(providerId: string): string | undefined;
16
+ /** All provider ids that declared anything, sorted. */
17
+ providerIds(): string[];
18
+ /** The `type.subType`s a provider OWNS (registers), sorted. */
19
+ typesOwnedBy(providerId: string): string[];
20
+ /** The `(type.subType → [attrName])` a provider CONTRIBUTES via extends/inline, sorted. */
21
+ attrsContributedBy(providerId: string): {
22
+ typeSubType: string;
23
+ attrs: string[];
24
+ }[];
25
+ /** Common attr names a provider contributes (universal), sorted. */
26
+ commonAttrsBy(providerId: string): string[];
27
+ }
28
+ /**
29
+ * Build the provenance lens from the embedded provider definitions + a composed
30
+ * registry (the registry resolves `"*"` extend selectors to concrete subtypes).
31
+ *
32
+ * The provider descriptions are read from the embedded definitions indirectly:
33
+ * a `ProviderDefinition` carries only `provider` (the id), so descriptions come
34
+ * from a small registry-keyed lookup the caller can override; here we accept the
35
+ * descriptions the provider objects expose by mapping id → the first non-empty
36
+ * description we can derive. To keep this module pure + dependency-light, the
37
+ * provider descriptions are supplied via `providerDescriptions`.
38
+ */
39
+ export declare function buildMetamodelProvenance(registry: TypeRegistry, opts?: {
40
+ providerDescriptions?: ReadonlyMap<string, string>;
41
+ }): MetamodelProvenance;
42
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/metamodel-docs/provenance.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA0BnD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,8EAA8E;IAC9E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjF,iEAAiE;IACjE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxD,wEAAwE;IACxE,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5D,uDAAuD;IACvD,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,+DAA+D;IAC/D,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3C,2FAA2F;IAC3F,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnF,oEAAoE;IACpE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,IAAI,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC5D,mBAAmB,CA2FrB"}
@@ -0,0 +1,148 @@
1
+ // FR-033 S3 — metamodel provenance: who owns each type and who contributes each attr.
2
+ //
3
+ // The composed registry knows WHAT vocabulary exists but not WHICH of the five
4
+ // concern providers declared each piece — that fact is flattened away at
5
+ // registration. We recover it from the embedded `ProviderDefinition`s:
6
+ //
7
+ // • a definition's `types[]` (non-universal entries) declare the `type.subType`s
8
+ // that provider OWNS (registers), plus the attrs that ride INLINE on them;
9
+ // • a definition's `extends[]` declare attrs a CONCERN provider contributes to a
10
+ // type another provider owns (subType selector `"*"` / list / single);
11
+ // • the universal `*.*` entry's attr children are COMMON attrs (documentation).
12
+ //
13
+ // The `"*"` extend selector is resolved against the LIVE registry's registered
14
+ // subtypes, so a concern attr added to "every field" is attributed on every
15
+ // concrete field subtype the doc renderer walks.
16
+ import { CHILD_RULE_WILDCARD } from "../shared/structural.js";
17
+ import { isExcludedTypeSubType } from "../registry-manifest-exclusions.js";
18
+ import { ALL_PROVIDER_DEFINITIONS } from "./provider-definitions.js";
19
+ const ATTR_CHILD_TYPE = "attr";
20
+ /** A `(type, subType)` key, identical to the registry's internal key form. */
21
+ function typeKey(type, subType) {
22
+ return `${type}.${subType}`;
23
+ }
24
+ /** A `(type, subType, attrName)` key for the attr-provenance map. */
25
+ function attrKey(type, subType, attrName) {
26
+ return `${type}.${subType}.${attrName}`;
27
+ }
28
+ function isUniversal(t) {
29
+ return t.type === CHILD_RULE_WILDCARD && t.subType === CHILD_RULE_WILDCARD;
30
+ }
31
+ function isAttrChild(c) {
32
+ return c.type === ATTR_CHILD_TYPE;
33
+ }
34
+ /**
35
+ * Build the provenance lens from the embedded provider definitions + a composed
36
+ * registry (the registry resolves `"*"` extend selectors to concrete subtypes).
37
+ *
38
+ * The provider descriptions are read from the embedded definitions indirectly:
39
+ * a `ProviderDefinition` carries only `provider` (the id), so descriptions come
40
+ * from a small registry-keyed lookup the caller can override; here we accept the
41
+ * descriptions the provider objects expose by mapping id → the first non-empty
42
+ * description we can derive. To keep this module pure + dependency-light, the
43
+ * provider descriptions are supplied via `providerDescriptions`.
44
+ */
45
+ export function buildMetamodelProvenance(registry, opts) {
46
+ const ownerType = new Map();
47
+ const ownerAttr = new Map();
48
+ const ownerCommon = new Map();
49
+ // Inverse indexes for the provider lens.
50
+ const ownedByProvider = new Map();
51
+ const contributedByProvider = new Map();
52
+ const commonByProvider = new Map();
53
+ const providerSet = new Set();
54
+ const note = (id) => {
55
+ providerSet.add(id);
56
+ if (!ownedByProvider.has(id))
57
+ ownedByProvider.set(id, new Set());
58
+ if (!contributedByProvider.has(id))
59
+ contributedByProvider.set(id, new Map());
60
+ if (!commonByProvider.has(id))
61
+ commonByProvider.set(id, new Set());
62
+ };
63
+ const recordContribution = (id, type, subType, attr) => {
64
+ const k = attrKey(type, subType, attr);
65
+ // First declarer wins (an attr is contributed by exactly one provider).
66
+ if (!ownerAttr.has(k))
67
+ ownerAttr.set(k, id);
68
+ const byType = contributedByProvider.get(id);
69
+ const tk = typeKey(type, subType);
70
+ if (!byType.has(tk))
71
+ byType.set(tk, new Set());
72
+ byType.get(tk).add(attr);
73
+ };
74
+ for (const def of ALL_PROVIDER_DEFINITIONS) {
75
+ const id = def.provider;
76
+ note(id);
77
+ for (const t of def.types ?? []) {
78
+ if (isUniversal(t)) {
79
+ // Universal `*.*` entry → common attrs, owned by this provider.
80
+ for (const c of t.children ?? []) {
81
+ if (isAttrChild(c)) {
82
+ if (!ownerCommon.has(c.name))
83
+ ownerCommon.set(c.name, id);
84
+ commonByProvider.get(id).add(c.name);
85
+ }
86
+ }
87
+ continue;
88
+ }
89
+ // A real type this provider OWNS (registers).
90
+ const tk = typeKey(t.type, t.subType);
91
+ if (!ownerType.has(tk))
92
+ ownerType.set(tk, id);
93
+ // The provider lens ("Owns (registers)" on providers.md) advertises the
94
+ // SAME agreed vocabulary INDEX/type pages cover — skip the manifest-
95
+ // excluded rows (the TS-web-presentation `view.*` controls) so all three
96
+ // doc surfaces share one consistent set. (`ownerType` still records the
97
+ // raw owner for any internal lookup; only the published list is filtered.)
98
+ if (!isExcludedTypeSubType(t.type, t.subType))
99
+ ownedByProvider.get(id).add(tk);
100
+ // Inline attrs on an owned type are contributed by the same provider.
101
+ for (const c of t.children ?? []) {
102
+ if (isAttrChild(c))
103
+ recordContribution(id, t.type, t.subType, c.name);
104
+ }
105
+ }
106
+ // `extends[]` — a concern provider's attrs added to types another provider owns.
107
+ for (const ext of def.extends ?? []) {
108
+ const subTypes = resolveExtendSubTypes(registry, ext.type, ext.subType);
109
+ for (const subType of subTypes) {
110
+ for (const c of ext.children) {
111
+ if (isAttrChild(c))
112
+ recordContribution(id, ext.type, subType, c.name);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ const descriptions = opts?.providerDescriptions ?? new Map();
118
+ const sorted = (s) => [...s].sort(compare);
119
+ return {
120
+ ownerOfType: (type, subType) => ownerType.get(typeKey(type, subType)),
121
+ ownerOfAttr: (type, subType, attrName) => ownerAttr.get(attrKey(type, subType, attrName)),
122
+ ownerOfCommonAttr: (attrName) => ownerCommon.get(attrName),
123
+ providerDescription: (providerId) => descriptions.get(providerId),
124
+ providerIds: () => [...providerSet].sort(compare),
125
+ typesOwnedBy: (providerId) => sorted(ownedByProvider.get(providerId) ?? new Set()),
126
+ attrsContributedBy: (providerId) => {
127
+ const byType = contributedByProvider.get(providerId) ?? new Map();
128
+ return [...byType.entries()]
129
+ .map(([typeSubType, attrs]) => ({
130
+ typeSubType,
131
+ attrs: sorted(attrs),
132
+ }))
133
+ .sort((a, b) => compare(a.typeSubType, b.typeSubType));
134
+ },
135
+ commonAttrsBy: (providerId) => sorted(commonByProvider.get(providerId) ?? new Set()),
136
+ };
137
+ }
138
+ /** Resolve an extend `subType` selector to concrete registered subtypes. */
139
+ function resolveExtendSubTypes(registry, type, selector) {
140
+ if (selector === CHILD_RULE_WILDCARD)
141
+ return registry.allSubTypesOf(type);
142
+ return Array.isArray(selector) ? selector : [selector];
143
+ }
144
+ /** ASCII codepoint compare — locale-independent, byte-stable. */
145
+ function compare(a, b) {
146
+ return a < b ? -1 : a > b ? 1 : 0;
147
+ }
148
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/metamodel-docs/provenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ProviderDefinition } from "../provider-data.js";
2
+ /**
3
+ * Every embedded provider definition the core metamodel composes from. The
4
+ * order is irrelevant — the provenance builder keys by `(type.subType, attr)`,
5
+ * and the registry is the authority on what is actually registered.
6
+ */
7
+ export declare const ALL_PROVIDER_DEFINITIONS: readonly ProviderDefinition[];
8
+ //# sourceMappingURL=provider-definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-definitions.d.ts","sourceRoot":"","sources":["../../src/metamodel-docs/provider-definitions.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAiB9D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,kBAAkB,EAgBjE,CAAC"}