@metaobjectsdev/metadata 0.9.0 → 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
@@ -2,6 +2,7 @@
2
2
  // not the core metamodel.
3
3
  import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, } from "../../core/attr/attr-constants.js";
4
4
  import { FIELD_ATTR_COLUMN, FIELD_ATTR_DB_INDEXED, FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_VALUES, } from "./db-constants.js";
5
+ import { FIELD_ATTR_STORAGE, FIELD_ATTR_AUTO_SET, STORAGE_VALUES, AUTO_SET_VALUES, } from "../../core/field/field-constants.js";
5
6
  /** `@column` — column-name override on every field subtype (source.rdb). */
6
7
  export const columnSchema = {
7
8
  name: FIELD_ATTR_COLUMN,
@@ -32,4 +33,30 @@ export const dbColumnTypeSchema = {
32
33
  "field subtype (uuid/jsonb on field.string, timestamp_with_tz on field.timestamp). " +
33
34
  "The logical field type and its native binding are unchanged.",
34
35
  };
36
+ /**
37
+ * `@storage` — physical-storage strategy for an object-typed field (set with
38
+ * @objectRef). Re-homed out of the core field definition by FR-033 S1-field-A
39
+ * (it is a physical-storage concern). Still on every field subtype at this step;
40
+ * step B narrows it to field.object. Description copied VERBATIM from field.json.
41
+ */
42
+ export const storageSchema = {
43
+ name: FIELD_ATTR_STORAGE,
44
+ valueType: ATTR_SUBTYPE_STRING,
45
+ required: false,
46
+ allowedValues: [...STORAGE_VALUES],
47
+ description: 'Storage strategy for an object-typed field (set with @objectRef). "flattened" expands the nested value into prefixed columns on the parent table. "jsonb" stores the structured value in a single jsonb column (supports isArray=true for arrays of values). "subdocument" is a hint for document-store codegen targets and emits no Postgres column.',
48
+ };
49
+ /**
50
+ * `@autoSet` — auto-set semantics for timestamp-like fields. Re-homed out of the
51
+ * core field definition by FR-033 S1-field-A (it is a DB-write-time concern).
52
+ * Still on every field subtype at this step; step B narrows it to temporal
53
+ * subtypes. Description copied VERBATIM from field.json.
54
+ */
55
+ export const autoSetSchema = {
56
+ name: FIELD_ATTR_AUTO_SET,
57
+ valueType: ATTR_SUBTYPE_STRING,
58
+ required: false,
59
+ allowedValues: [...AUTO_SET_VALUES],
60
+ description: "Auto-set semantics for timestamp-like fields: 'onCreate' stamps on insert, 'onUpdate' stamps on every write.",
61
+ };
35
62
  //# sourceMappingURL=db-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-schema.js","sourceRoot":"","sources":["../../../src/persistence/db/db-schema.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0BAA0B;AAG1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,4GAA4G;CAC/G,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAe;IACzC,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,yGAAyG;CAC5G,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,IAAI,EAAE,yBAAyB;IAC/B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,6EAA6E;QAC7E,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C;QAC9E,oFAAoF;QACpF,8DAA8D;CACjE,CAAC"}
1
+ {"version":3,"file":"db-schema.js","sourceRoot":"","sources":["../../../src/persistence/db/db-schema.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0BAA0B;AAG1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,qCAAqC,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,4GAA4G;CAC/G,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAe;IACzC,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,yGAAyG;CAC5G,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,IAAI,EAAE,yBAAyB;IAC/B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,6EAA6E;QAC7E,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C;QAC9E,oFAAoF;QACpF,8DAA8D;CACjE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,IAAI,EAAE,kBAAkB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,CAAC,GAAG,cAAc,CAAC;IAClC,WAAW,EACT,uVAAuV;CAC1V,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAe;IACvC,IAAI,EAAE,mBAAmB;IACzB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,CAAC,GAAG,eAAe,CAAC;IACnC,WAAW,EACT,8GAA8G;CACjH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderDefinition } from "../../provider-data.js";
2
+ export declare const ORIGIN_DEFINITION: ProviderDefinition;
3
+ //# sourceMappingURL=origin-definition.embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origin-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/persistence/origin/origin-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,iBAAiB,EAAE,kBAsF/B,CAAC"}
@@ -0,0 +1,88 @@
1
+ export const ORIGIN_DEFINITION = {
2
+ "provider": "metaobjects-core-types",
3
+ "types": [
4
+ {
5
+ "type": "origin",
6
+ "subType": "base",
7
+ "description": "Abstract base origin — the shared root subtype for field-level provenance. A field carrying any origin.* is derived ⇒ read-only wherever it lives. The base carries no attrs of its own; concrete subtypes add their provenance attrs."
8
+ },
9
+ {
10
+ "type": "origin",
11
+ "subType": "passthrough",
12
+ "description": "A cross-entity field reference: this projection field passes a source entity's value straight through (@from), optionally reached via a relationship path (@via).",
13
+ "children": [
14
+ {
15
+ "type": "attr",
16
+ "subType": "string",
17
+ "name": "from",
18
+ "min": 1,
19
+ "max": 1,
20
+ "description": "Dotted Entity.field reference identifying the source value this projection field passes through (e.g. 'Program.title')."
21
+ },
22
+ {
23
+ "type": "attr",
24
+ "subType": "string",
25
+ "name": "via",
26
+ "min": 0,
27
+ "max": 1,
28
+ "description": "Optional dotted relationship path used to reach the source entity (e.g. 'Program.weeks')."
29
+ }
30
+ ]
31
+ },
32
+ {
33
+ "type": "origin",
34
+ "subType": "aggregate",
35
+ "description": "A count/sum/avg/min/max (@agg) computed over a column (@of) reached along a relationship path (@via) from the base entity.",
36
+ "rules": "@via may be omitted only when exactly one single-hop relationship leads from the base entity to the @of entity (single-hop-unique inference; FR-024, ADR-0029). Multi-hop paths must always be stated explicitly.",
37
+ "children": [
38
+ {
39
+ "type": "attr",
40
+ "subType": "string",
41
+ "name": "agg",
42
+ "min": 1,
43
+ "max": 1,
44
+ "allowedValues": [
45
+ "count",
46
+ "sum",
47
+ "avg",
48
+ "min",
49
+ "max"
50
+ ],
51
+ "description": "Aggregate function applied over the relationship path: count, sum, avg, min, or max."
52
+ },
53
+ {
54
+ "type": "attr",
55
+ "subType": "string",
56
+ "name": "of",
57
+ "min": 1,
58
+ "max": 1,
59
+ "description": "Dotted Entity.field reference identifying the column being aggregated (e.g. 'Week.durationMinutes')."
60
+ },
61
+ {
62
+ "type": "attr",
63
+ "subType": "string",
64
+ "name": "via",
65
+ "min": 0,
66
+ "max": 1,
67
+ "description": "Dotted relationship path from the base entity to the aggregated rows (e.g. 'Program.weeks' or 'Program.weeks.workouts'). May be omitted only when exactly one single-hop relationship leads from the base entity to the @of entity (FR-024, ADR-0029)."
68
+ }
69
+ ]
70
+ },
71
+ {
72
+ "type": "origin",
73
+ "subType": "collection",
74
+ "description": "A relationship-derived array of nested view-objects: walks @via to produce the collection (e.g. 'Author.posts'), or a wildcard selector for a package-spanning collection.",
75
+ "children": [
76
+ {
77
+ "type": "attr",
78
+ "subType": "string",
79
+ "name": "via",
80
+ "min": 1,
81
+ "max": 1,
82
+ "description": "Dotted relationship path the collection walks to produce an array of nested view-objects (e.g. 'Author.posts'), or a wildcard selector for a package-spanning collection (e.g. '*.User')."
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ };
88
+ //# sourceMappingURL=origin-definition.embedded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"origin-definition.embedded.js","sourceRoot":"","sources":["../../../src/persistence/origin/origin-definition.embedded.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,UAAU,EAAE,wBAAwB;IACpC,OAAO,EAAE;QACP;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,wOAAwO;SACxP;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE,mKAAmK;YAClL,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,yHAAyH;iBACzI;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,2FAA2F;iBAC3G;aACF;SACF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,WAAW;YACtB,aAAa,EAAE,4HAA4H;YAC3I,OAAO,EAAE,mNAAmN;YAC5N,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,eAAe,EAAE;wBACf,OAAO;wBACP,KAAK;wBACL,KAAK;wBACL,KAAK;wBACL,KAAK;qBACN;oBACD,aAAa,EAAE,sFAAsF;iBACtG;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,sGAAsG;iBACtH;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,wPAAwP;iBACxQ;aACF;SACF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,YAAY;YACvB,aAAa,EAAE,4KAA4K;YAC3L,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,2LAA2L;iBAC3M;aACF;SACF;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"origin-schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/origin/origin-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsEpD,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,2BAK3B,CAAC"}
1
+ {"version":3,"file":"origin-schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/origin/origin-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0EpD,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,2BAK3B,CAAC"}
@@ -18,7 +18,11 @@ const passthroughOriginAttrs = [
18
18
  description: "Optional dotted relationship path used to reach the source entity (e.g. 'Program.weeks').",
19
19
  },
20
20
  ];
21
- /** Attrs on origin.aggregate — @agg, @of, @via all required. */
21
+ /** Attrs on origin.aggregate — @agg and @of required; @via omissible since
22
+ * FR-024 (ADR-0029 decision 5: single-hop-unique inference from the base
23
+ * entity). NOTE: the cross-port registry manifest still records @via as
24
+ * required until the FR-024 Phase-E atomic flip — see
25
+ * FR024_PENDING_REQUIRED_OVERRIDES in registry-manifest-exclusions.ts. */
22
26
  const aggregateOriginAttrs = [
23
27
  {
24
28
  name: ORIGIN_AGGREGATE_ATTR_AGG,
@@ -36,8 +40,8 @@ const aggregateOriginAttrs = [
36
40
  {
37
41
  name: ORIGIN_AGGREGATE_ATTR_VIA,
38
42
  valueType: ATTR_SUBTYPE_STRING,
39
- required: true,
40
- description: "Dotted relationship path from the base entity to the aggregated rows (e.g. 'Program.weeks' or 'Program.weeks.workouts').",
43
+ required: false,
44
+ description: "Dotted relationship path from the base entity to the aggregated rows (e.g. 'Program.weeks' or 'Program.weeks.workouts'). May be omitted only when exactly one single-hop relationship leads from the base entity to the @of entity (FR-024, ADR-0029).",
41
45
  },
42
46
  ];
43
47
  /** Attrs on origin.collection — @via (the relationship path) is required. */
@@ -1 +1 @@
1
- {"version":3,"file":"origin-schema.js","sourceRoot":"","sources":["../../../src/persistence/origin/origin-schema.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,mCAAmC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,uDAAuD;AACvD,MAAM,sBAAsB,GAAiB;IAC3C;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,yHAAyH;KAC5H;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,2FAA2F;KAC9F;CACF,CAAC;AAEF,gEAAgE;AAChE,MAAM,oBAAoB,GAAiB;IACzC;QACE,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,CAAC,GAAG,mBAAmB,CAAC;QACvC,WAAW,EAAE,sFAAsF;KACpG;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,sGAAsG;KACzG;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,0HAA0H;KAC7H;CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,qBAAqB,GAAiB;IAC1C;QACE,IAAI,EAAE,0BAA0B;QAChC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,2LAA2L;KAC9L;CACF,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAuB;IAC5D,CAAC,YAAY,EAAE,EAAE,CAAC;IAClB,CAAC,0BAA0B,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC;IACzD,CAAC,wBAAwB,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC;IACrD,CAAC,yBAAyB,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC;CACxD,CAAC,CAAC"}
1
+ {"version":3,"file":"origin-schema.js","sourceRoot":"","sources":["../../../src/persistence/origin/origin-schema.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,mCAAmC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,uDAAuD;AACvD,MAAM,sBAAsB,GAAiB;IAC3C;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,yHAAyH;KAC5H;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,2FAA2F;KAC9F;CACF,CAAC;AAEF;;;;2EAI2E;AAC3E,MAAM,oBAAoB,GAAiB;IACzC;QACE,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,CAAC,GAAG,mBAAmB,CAAC;QACvC,WAAW,EAAE,sFAAsF;KACpG;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,sGAAsG;KACzG;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,wPAAwP;KAC3P;CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,qBAAqB,GAAiB;IAC1C;QACE,IAAI,EAAE,0BAA0B;QAChC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,2LAA2L;KAC9L;CACF,CAAC;AAEF,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAuB;IAC5D,CAAC,YAAY,EAAE,EAAE,CAAC;IAClB,CAAC,0BAA0B,EAAE,CAAC,GAAG,sBAAsB,CAAC,CAAC;IACzD,CAAC,wBAAwB,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC;IACrD,CAAC,yBAAyB,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC;CACxD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderDefinition } from "../../provider-data.js";
2
+ export declare const SOURCE_DEFINITION: ProviderDefinition;
3
+ //# sourceMappingURL=source-definition.embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/source-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,iBAAiB,EAAE,kBAe/B,CAAC"}
@@ -0,0 +1,17 @@
1
+ export const SOURCE_DEFINITION = {
2
+ "provider": "metaobjects-core-types",
3
+ "types": [
4
+ {
5
+ "type": "source",
6
+ "subType": "base",
7
+ "description": "Abstract base source — the shared root subtype for declaring where an object's data lives (Project E). The base carries no attrs of its own; the concrete paradigm subtype (rdb) carries the physical-storage attrs, which are contributed by the db domain provider."
8
+ },
9
+ {
10
+ "type": "source",
11
+ "subType": "rdb",
12
+ "description": "The relational-database paradigm source (ADR-0007): binds an object to a physical relational object. Its physical name is the @table attr (not the structural `name`), and read-only-ness is DERIVED from @kind — table is writable; view, materializedView, storedProc, and tableFunction are read-only. The @table/@kind/@role/@schema/@parameterRef attrs are contributed by the db domain provider, not by core-types.",
13
+ "rules": "ADR-0007: source declares where an object's data lives; rdb is the relational paradigm subtype. An object may declare multiple sources, distinguished by @role, with exactly ONE @role: \"primary\" per object (write-through CQRS: a writable table for writes plus a read-only view for reads). The physical name is the @table attr (or the @kind-matching alias), never the structural `name`. Read-only-ness is derived from @kind (table → writable; view / materializedView / storedProc / tableFunction → read-only). The pre-v2 dbTable / dbView subtypes are retired."
14
+ }
15
+ ]
16
+ };
17
+ //# sourceMappingURL=source-definition.embedded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-definition.embedded.js","sourceRoot":"","sources":["../../../src/persistence/source/source-definition.embedded.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,UAAU,EAAE,wBAAwB;IACpC,OAAO,EAAE;QACP;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,uQAAuQ;SACvR;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,4ZAA4Z;YAC3a,OAAO,EAAE,ijBAAijB;SAC3jB;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-source-parameter-ref.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-parameter-ref.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6B7C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA+FvE"}
1
+ {"version":3,"file":"validate-source-parameter-ref.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-parameter-ref.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6B7C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAqGvE"}
@@ -27,7 +27,12 @@ const CALLABLE_KINDS = new Set([
27
27
  ]);
28
28
  export function validateSourceParameterRef(root) {
29
29
  const errors = [];
30
- // Pre-index every object by name AND fqn so resolution costs O(1) per source.
30
+ // Pre-index every object by name, fqn AND effective FQN resolution key so
31
+ // resolution costs O(1) per source. FR-032 — @parameterRef is FQN-qualified
32
+ // after the desugar/sweep, but objects keep a BARE fqn() per the FR5d
33
+ // contract, so the FQN form `<package | fileDefaultPackage>::<name>` only
34
+ // matches via resolutionKey() (these fixtures declare package at metadata.root
35
+ // only, so obj.package is undefined and the file-default must be folded in).
31
36
  const objectIndex = new Map();
32
37
  for (const obj of root.ownChildren().filter((c) => c.type === TYPE_OBJECT)) {
33
38
  objectIndex.set(obj.name, obj);
@@ -35,6 +40,7 @@ export function validateSourceParameterRef(root) {
35
40
  ? `${obj.package}${PACKAGE_SEPARATOR}${obj.name}`
36
41
  : obj.name;
37
42
  objectIndex.set(fqn, obj);
43
+ objectIndex.set(obj.resolutionKey(), obj);
38
44
  }
39
45
  for (const obj of root.ownChildren().filter((c) => c.type === TYPE_OBJECT)) {
40
46
  for (const source of obj.ownChildren().filter((c) => c.type === TYPE_SOURCE && c.subType === SOURCE_SUBTYPE_RDB && c instanceof MetaSource)) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-source-parameter-ref.js","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-parameter-ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-source-parameter-ref.js","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-parameter-ref.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-source-roles.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-roles.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA+BhE"}
1
+ {"version":3,"file":"validate-source-roles.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-roles.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAmDhE"}
@@ -7,7 +7,8 @@
7
7
  import { ParseError } from "../../errors.js";
8
8
  import { TYPE_OBJECT, TYPE_SOURCE } from "../../shared/base-types.js";
9
9
  import { MetaSource } from "./meta-source.js";
10
- import { SOURCE_ROLE_PRIMARY } from "./source-constants.js";
10
+ import { SOURCE_ROLE_PRIMARY, SOURCE_READ_ONLY_KINDS } from "./source-constants.js";
11
+ import { OBJECT_SUBTYPE_ENTITY } from "../../core/object/object-constants.js";
11
12
  /**
12
13
  * Walks every object in the root and enforces the one-primary rule for
13
14
  * multi-source objects:
@@ -32,6 +33,20 @@ export function validateSourceRoles(root) {
32
33
  else if (primaryCount > 1) {
33
34
  errors.push(new ParseError(`object "${obj.name}" declares ${primaryCount} sources with role "${SOURCE_ROLE_PRIMARY}"; exactly one is required`, { code: "ERR_SOURCE_MULTIPLE_PRIMARY", source: obj.source }));
34
35
  }
36
+ // FR-024 (ADR-0028) — THE HARD CUTOVER: an entity's PRIMARY source must be
37
+ // writable; read-only kinds (view/materializedView/storedProc/tableFunction)
38
+ // are legal only in non-primary (read) roles. The pre-FR-024 spellings
39
+ // (view-primary "projection" entities, proc-result-as-entity) are removed
40
+ // outright — a derived read model is an `object.projection`.
41
+ if (obj.subType === OBJECT_SUBTYPE_ENTITY) {
42
+ for (const s of sources) {
43
+ if (s.role === SOURCE_ROLE_PRIMARY && SOURCE_READ_ONLY_KINDS.has(s.effectiveKind)) {
44
+ errors.push(new ParseError(`entity "${obj.name}" has a primary source of read-only kind "${s.effectiveKind}" — ` +
45
+ `read-only kinds are legal only in non-primary roles; a derived read model ` +
46
+ `is an object.projection (FR-024, ADR-0028)`, { code: "ERR_ENTITY_PRIMARY_SOURCE_READONLY", source: s.source }));
47
+ }
48
+ }
49
+ }
35
50
  }
36
51
  return errors;
37
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate-source-roles.js","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-roles.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,iEAAiE;AACjE,4EAA4E;AAC5E,0EAA0E;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,GAAG;aAChB,WAAW,EAAE;aACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAe,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEnC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,MAAM,CAAC;QAElF,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,WAAW,GAAG,CAAC,IAAI,cAAc,OAAO,CAAC,MAAM,iCAAiC,mBAAmB,GAAG,EACtG,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACtD,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,WAAW,GAAG,CAAC,IAAI,cAAc,YAAY,uBAAuB,mBAAmB,4BAA4B,EACnH,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAC5D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"validate-source-roles.js","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-roles.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,iEAAiE;AACjE,4EAA4E;AAC5E,0EAA0E;AAG1E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,GAAG;aAChB,WAAW,EAAE;aACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAe,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEnC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,MAAM,CAAC;QAElF,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,WAAW,GAAG,CAAC,IAAI,cAAc,OAAO,CAAC,MAAM,iCAAiC,mBAAmB,GAAG,EACtG,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACtD,CACF,CAAC;QACJ,CAAC;aAAM,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,WAAW,GAAG,CAAC,IAAI,cAAc,YAAY,uBAAuB,mBAAmB,4BAA4B,EACnH,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAC5D,CACF,CAAC;QACJ,CAAC;QAED,2EAA2E;QAC3E,6EAA6E;QAC7E,uEAAuE;QACvE,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,GAAG,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;oBAClF,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,WAAW,GAAG,CAAC,IAAI,6CAA6C,CAAC,CAAC,aAAa,MAAM;wBACnF,4EAA4E;wBAC5E,4CAA4C,EAC9C,EAAE,IAAI,EAAE,oCAAoC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CACjE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderDefinition } from "../../provider-data.js";
2
+ export declare const LAYOUT_DEFINITION: ProviderDefinition;
3
+ //# sourceMappingURL=layout-definition.embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/presentation/layout/layout-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,iBAAiB,EAAE,kBAc/B,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const LAYOUT_DEFINITION = {
2
+ "provider": "metaobjects-core-types",
3
+ "types": [
4
+ {
5
+ "type": "layout",
6
+ "subType": "base",
7
+ "description": "Abstract base layout — the shared root subtype for object-level UI surfaces. A layout attaches a presentation concern (grids, forms, tabs, cards) to an object. The base carries no attrs of its own; concrete subtypes add their presentation attrs."
8
+ },
9
+ {
10
+ "type": "layout",
11
+ "subType": "dataGrid",
12
+ "description": "A metadata-driven data grid attached to an object: declares the displayed columns, page size, default sort, and an optional preset filter the generated grid renders."
13
+ }
14
+ ]
15
+ };
16
+ //# sourceMappingURL=layout-definition.embedded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-definition.embedded.js","sourceRoot":"","sources":["../../../src/presentation/layout/layout-definition.embedded.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,UAAU,EAAE,wBAAwB;IACpC,OAAO,EAAE;QACP;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,MAAM;YACjB,aAAa,EAAE,uPAAuP;SACvQ;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,UAAU;YACrB,aAAa,EAAE,uKAAuK;SACvL;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout-schema.d.ts","sourceRoot":"","sources":["../../../src/presentation/layout/layout-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkBpD,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,EAAE,UAAU,EAuC3C,CAAC"}
1
+ {"version":3,"file":"layout-schema.d.ts","sourceRoot":"","sources":["../../../src/presentation/layout/layout-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBpD,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,EAAE,UAAU,EAwC3C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // Layout attribute schemas — attrs for layout subtypes (e.g. dataGrid).
2
2
  // Consumed by registerCoreTypes().
3
- import { ATTR_SUBTYPE_INT, ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, ATTR_SUBTYPE_FILTER, ATTR_SUBTYPE_STRINGARRAY, } from "../../core/attr/attr-constants.js";
3
+ import { ATTR_SUBTYPE_INT, ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, ATTR_SUBTYPE_FILTER, } from "../../core/attr/attr-constants.js";
4
4
  import { SORT_ORDER_VALUES } from "../../core/query/query-constants.js";
5
5
  import { LAYOUT_DATA_GRID_ATTR_PAGE_SIZE, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER, LAYOUT_DATA_GRID_ATTR_FILTERABLE, LAYOUT_DATA_GRID_ATTR_FILTER, LAYOUT_DATA_GRID_ATTR_COLUMNS, } from "./layout-constants.js";
6
6
  /** Attrs on layout.dataGrid. */
@@ -38,7 +38,8 @@ export const dataGridLayoutAttrs = [
38
38
  },
39
39
  {
40
40
  name: LAYOUT_DATA_GRID_ATTR_COLUMNS,
41
- valueType: ATTR_SUBTYPE_STRINGARRAY,
41
+ valueType: ATTR_SUBTYPE_STRING,
42
+ isArray: true,
42
43
  required: false,
43
44
  description: "Flat ordered list of field names to display as grid columns.",
44
45
  },
@@ -1 +1 @@
1
- {"version":3,"file":"layout-schema.js","sourceRoot":"","sources":["../../../src/presentation/layout/layout-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,mCAAmC;AAGnC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EACL,+BAA+B,EAC/B,wCAAwC,EACxC,wCAAwC,EACxC,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,gCAAgC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C;QACE,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,mGAAmG;KACtG;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,GAAG,iBAAiB,CAAC;QACrC,WAAW,EAAE,qEAAqE;KACnF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,4DAA4D;KAC1E;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,gJAAgJ;KAC9J;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,SAAS,EAAE,wBAAwB;QACnC,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,8DAA8D;KAC5E;CACF,CAAC"}
1
+ {"version":3,"file":"layout-schema.js","sourceRoot":"","sources":["../../../src/presentation/layout/layout-schema.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,mCAAmC;AAGnC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EACL,+BAA+B,EAC/B,wCAAwC,EACxC,wCAAwC,EACxC,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,gCAAgC;AAChC,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C;QACE,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,qDAAqD;KACnE;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,mGAAmG;KACtG;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,GAAG,iBAAiB,CAAC;QACrC,WAAW,EAAE,qEAAqE;KACnF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,4DAA4D;KAC1E;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,gJAAgJ;KAC9J;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,SAAS,EAAE,mBAAmB;QAC9B,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,8DAA8D;KAC5E;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProviderDefinition } from "../../provider-data.js";
2
+ export declare const UI_DEFINITION: ProviderDefinition;
3
+ //# sourceMappingURL=ui-definition.embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/presentation/ui/ui-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,aAAa,EAAE,kBAgH3B,CAAC"}
@@ -0,0 +1,114 @@
1
+ export const UI_DEFINITION = {
2
+ "provider": "metaobjects-ui",
3
+ "extends": [
4
+ {
5
+ "type": "field",
6
+ "subType": "*",
7
+ "children": [
8
+ {
9
+ "type": "attr",
10
+ "subType": "boolean",
11
+ "name": "filterable",
12
+ "min": 0,
13
+ "max": 1,
14
+ "description": "When true, the field is exposed in generated CRUD filter allowlists (Project D filter layer)."
15
+ },
16
+ {
17
+ "type": "attr",
18
+ "subType": "boolean",
19
+ "name": "sortable",
20
+ "min": 0,
21
+ "max": 1,
22
+ "description": "When true, the field is exposed in generated CRUD sort allowlists. Inherits from @filterable by default; set false to opt out."
23
+ },
24
+ {
25
+ "type": "attr",
26
+ "subType": "string",
27
+ "name": "sortableDefaultOrder",
28
+ "min": 0,
29
+ "max": 1,
30
+ "allowedValues": [
31
+ "asc",
32
+ "desc"
33
+ ],
34
+ "description": "Default sort direction applied when this field is the default sort field."
35
+ }
36
+ ]
37
+ },
38
+ {
39
+ "type": "view",
40
+ "subType": "currency",
41
+ "children": [
42
+ {
43
+ "type": "attr",
44
+ "subType": "string",
45
+ "name": "locale",
46
+ "min": 0,
47
+ "max": 1,
48
+ "default": "en-US",
49
+ "description": "BCP 47 locale code controlling currency display formatting. Defaults to 'en-US' when omitted."
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "type": "layout",
55
+ "subType": "dataGrid",
56
+ "children": [
57
+ {
58
+ "type": "attr",
59
+ "subType": "int",
60
+ "name": "pageSize",
61
+ "min": 0,
62
+ "max": 1,
63
+ "description": "Number of rows per page in the generated data grid."
64
+ },
65
+ {
66
+ "type": "attr",
67
+ "subType": "string",
68
+ "name": "defaultSortField",
69
+ "min": 0,
70
+ "max": 1,
71
+ "description": "Field name the grid is sorted by on initial render. Must reference an actual field on the entity."
72
+ },
73
+ {
74
+ "type": "attr",
75
+ "subType": "string",
76
+ "name": "defaultSortOrder",
77
+ "min": 0,
78
+ "max": 1,
79
+ "allowedValues": [
80
+ "asc",
81
+ "desc"
82
+ ],
83
+ "description": "Initial sort direction for the default sort field: 'asc' or 'desc'."
84
+ },
85
+ {
86
+ "type": "attr",
87
+ "subType": "boolean",
88
+ "name": "filterable",
89
+ "min": 0,
90
+ "max": 1,
91
+ "description": "When true, the generated grid exposes column filtering UI."
92
+ },
93
+ {
94
+ "type": "attr",
95
+ "subType": "filter",
96
+ "name": "filter",
97
+ "min": 0,
98
+ "max": 1,
99
+ "description": "Structured preset filter object applied to the grid at the metadata level. Desugared to canonical { field: { op: value } } form at parse time."
100
+ },
101
+ {
102
+ "type": "attr",
103
+ "subType": "string",
104
+ "name": "columns",
105
+ "isArray": true,
106
+ "min": 0,
107
+ "max": 1,
108
+ "description": "Flat ordered list of field names to display as grid columns."
109
+ }
110
+ ]
111
+ }
112
+ ]
113
+ };
114
+ //# sourceMappingURL=ui-definition.embedded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-definition.embedded.js","sourceRoot":"","sources":["../../../src/presentation/ui/ui-definition.embedded.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,UAAU,EAAE,gBAAgB;IAC5B,SAAS,EAAE;QACT;YACE,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,GAAG;YACd,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,+FAA+F;iBAC/G;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,gIAAgI;iBAChJ;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,sBAAsB;oBAC9B,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,eAAe,EAAE;wBACf,KAAK;wBACL,MAAM;qBACP;oBACD,aAAa,EAAE,2EAA2E;iBAC3F;aACF;SACF;QACD;YACE,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE,+FAA+F;iBAC/G;aACF;SACF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE;gBACV;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,qDAAqD;iBACrE;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,kBAAkB;oBAC1B,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,mGAAmG;iBACnH;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,kBAAkB;oBAC1B,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,eAAe,EAAE;wBACf,KAAK;wBACL,MAAM;qBACP;oBACD,aAAa,EAAE,qEAAqE;iBACrF;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,4DAA4D;iBAC5E;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,QAAQ;oBAChB,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,gJAAgJ;iBAChK;gBACD;oBACE,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,QAAQ;oBACnB,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE,8DAA8D;iBAC9E;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MetaDataTypeProvider } from "../../provider.js";
2
+ export declare const uiProvider: MetaDataTypeProvider;
3
+ //# sourceMappingURL=ui-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-provider.d.ts","sourceRoot":"","sources":["../../../src/presentation/ui/ui-provider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,eAAO,MAAM,UAAU,EAAE,oBAQxB,CAAC"}
@@ -0,0 +1,21 @@
1
+ // uiProvider — the presentation + query-surface MetaDataTypeProvider. Extends
2
+ // every field subtype with the UI/query-surface markers @filterable / @sortable /
3
+ // @sortableDefaultOrder by extending the core-registered field types. These are
4
+ // presentation/query concerns, NOT core field properties, so they live here —
5
+ // mirroring the dbProvider (db-provider.ts) and promptProvider patterns.
6
+ //
7
+ // FR-033 S1.5-B: the attrs + their descriptions are now DATA — read from
8
+ // spec/metamodel/ui.json (embedded as UI_DEFINITION) via the unified
9
+ // applyProviderDefinition apply path's `extends` handling. The provider declares
10
+ // no new types, so the factory map is empty.
11
+ import { applyProviderDefinition } from "../../provider-data.js";
12
+ import { UI_DEFINITION } from "./ui-definition.embedded.js";
13
+ export const uiProvider = {
14
+ id: "metaobjects-ui",
15
+ dependencies: ["metaobjects-core-types"],
16
+ description: "UI/query-surface domain — @filterable / @sortable / @sortableDefaultOrder field markers driving generated CRUD filter + sort allowlists (Project D).",
17
+ registerTypes(registry) {
18
+ applyProviderDefinition(registry, UI_DEFINITION, {});
19
+ },
20
+ };
21
+ //# sourceMappingURL=ui-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-provider.js","sourceRoot":"","sources":["../../../src/presentation/ui/ui-provider.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kFAAkF;AAClF,gFAAgF;AAChF,8EAA8E;AAC9E,yEAAyE;AACzE,EAAE;AACF,yEAAyE;AACzE,qEAAqE;AACrE,iFAAiF;AACjF,6CAA6C;AAI7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,WAAW,EACT,sJAAsJ;IACxJ,aAAa,CAAC,QAAsB;QAClC,uBAAuB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AttrSchema } from "../../registry.js";
2
+ /** `@filterable` — exposed in generated CRUD filter allowlists; on every field subtype. */
3
+ export declare const filterableSchema: AttrSchema;
4
+ /** `@sortable` — exposed in generated CRUD sort allowlists; on every field subtype. */
5
+ export declare const sortableSchema: AttrSchema;
6
+ /** `@sortableDefaultOrder` — default sort direction; on every field subtype. */
7
+ export declare const sortableDefaultOrderSchema: AttrSchema;
8
+ /** The three UI-domain field markers added to every field subtype. */
9
+ export declare const uiFieldAttrs: readonly AttrSchema[];
10
+ //# sourceMappingURL=ui-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-schema.d.ts","sourceRoot":"","sources":["../../../src/presentation/ui/ui-schema.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAepD,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,cAAc,EAAE,UAM5B,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,EAAE,UAOxC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAI7C,CAAC"}
@@ -0,0 +1,41 @@
1
+ // UI-domain attribute schemas — registered by uiProvider (ui-provider.ts), the
2
+ // presentation + query-surface concern. The @filterable/@sortable/
3
+ // @sortableDefaultOrder field markers drive the generated CRUD filter + sort
4
+ // allowlists (Project D). FR-033 S1-field-A re-homes them out of the core field
5
+ // definition into this concern provider; the descriptions are copied VERBATIM
6
+ // from spec/metamodel/field.json so the composed registry manifest stays
7
+ // byte-identical.
8
+ import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, } from "../../core/attr/attr-constants.js";
9
+ import { FIELD_ATTR_FILTERABLE, FIELD_ATTR_SORTABLE, FIELD_ATTR_SORTABLE_DEFAULT_ORDER, } from "../../core/field/field-constants.js";
10
+ /** Sort directions for @sortableDefaultOrder (verbatim from field.json allowedValues). */
11
+ const SORT_ORDER_ASC = "asc";
12
+ const SORT_ORDER_DESC = "desc";
13
+ /** `@filterable` — exposed in generated CRUD filter allowlists; on every field subtype. */
14
+ export const filterableSchema = {
15
+ name: FIELD_ATTR_FILTERABLE,
16
+ valueType: ATTR_SUBTYPE_BOOLEAN,
17
+ required: false,
18
+ description: "When true, the field is exposed in generated CRUD filter allowlists (Project D filter layer).",
19
+ };
20
+ /** `@sortable` — exposed in generated CRUD sort allowlists; on every field subtype. */
21
+ export const sortableSchema = {
22
+ name: FIELD_ATTR_SORTABLE,
23
+ valueType: ATTR_SUBTYPE_BOOLEAN,
24
+ required: false,
25
+ description: "When true, the field is exposed in generated CRUD sort allowlists. Inherits from @filterable by default; set false to opt out.",
26
+ };
27
+ /** `@sortableDefaultOrder` — default sort direction; on every field subtype. */
28
+ export const sortableDefaultOrderSchema = {
29
+ name: FIELD_ATTR_SORTABLE_DEFAULT_ORDER,
30
+ valueType: ATTR_SUBTYPE_STRING,
31
+ required: false,
32
+ allowedValues: [SORT_ORDER_ASC, SORT_ORDER_DESC],
33
+ description: "Default sort direction applied when this field is the default sort field.",
34
+ };
35
+ /** The three UI-domain field markers added to every field subtype. */
36
+ export const uiFieldAttrs = [
37
+ filterableSchema,
38
+ sortableSchema,
39
+ sortableDefaultOrderSchema,
40
+ ];
41
+ //# sourceMappingURL=ui-schema.js.map