@metaobjectsdev/metadata 0.5.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/LICENSE +189 -0
  2. package/README.md +29 -0
  3. package/dist/attr-class-map.d.ts +26 -0
  4. package/dist/attr-class-map.d.ts.map +1 -0
  5. package/dist/attr-class-map.js +44 -0
  6. package/dist/attr-class-map.js.map +1 -0
  7. package/dist/attr-schema-validate.d.ts +9 -0
  8. package/dist/attr-schema-validate.d.ts.map +1 -0
  9. package/dist/attr-schema-validate.js +100 -0
  10. package/dist/attr-schema-validate.js.map +1 -0
  11. package/dist/constants.d.ts +208 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/constants.js +419 -0
  14. package/dist/constants.js.map +1 -0
  15. package/dist/core/attr/attr-constants.d.ts +12 -0
  16. package/dist/core/attr/attr-constants.d.ts.map +1 -0
  17. package/dist/core/attr/attr-constants.js +27 -0
  18. package/dist/core/attr/attr-constants.js.map +1 -0
  19. package/dist/core/attr/meta-attr-filter.d.ts +10 -0
  20. package/dist/core/attr/meta-attr-filter.d.ts.map +1 -0
  21. package/dist/core/attr/meta-attr-filter.js +56 -0
  22. package/dist/core/attr/meta-attr-filter.js.map +1 -0
  23. package/dist/core/attr/meta-attr-properties.d.ts +9 -0
  24. package/dist/core/attr/meta-attr-properties.d.ts.map +1 -0
  25. package/dist/core/attr/meta-attr-properties.js +22 -0
  26. package/dist/core/attr/meta-attr-properties.js.map +1 -0
  27. package/dist/core/attr/meta-attr-stringarray.d.ts +9 -0
  28. package/dist/core/attr/meta-attr-stringarray.d.ts.map +1 -0
  29. package/dist/core/attr/meta-attr-stringarray.js +29 -0
  30. package/dist/core/attr/meta-attr-stringarray.js.map +1 -0
  31. package/dist/core/attr/meta-attr.d.ts +37 -0
  32. package/dist/core/attr/meta-attr.d.ts.map +1 -0
  33. package/dist/core/attr/meta-attr.js +97 -0
  34. package/dist/core/attr/meta-attr.js.map +1 -0
  35. package/dist/core/export-json.d.ts +29 -0
  36. package/dist/core/export-json.d.ts.map +1 -0
  37. package/dist/core/export-json.js +45 -0
  38. package/dist/core/export-json.js.map +1 -0
  39. package/dist/core/field/field-constants.d.ts +40 -0
  40. package/dist/core/field/field-constants.d.ts.map +1 -0
  41. package/dist/core/field/field-constants.js +66 -0
  42. package/dist/core/field/field-constants.js.map +1 -0
  43. package/dist/core/field/field-schema.d.ts +6 -0
  44. package/dist/core/field/field-schema.d.ts.map +1 -0
  45. package/dist/core/field/field-schema.js +92 -0
  46. package/dist/core/field/field-schema.js.map +1 -0
  47. package/dist/core/field/meta-field.d.ts +50 -0
  48. package/dist/core/field/meta-field.d.ts.map +1 -0
  49. package/dist/core/field/meta-field.js +121 -0
  50. package/dist/core/field/meta-field.js.map +1 -0
  51. package/dist/core/file-meta-data-loader.d.ts +18 -0
  52. package/dist/core/file-meta-data-loader.d.ts.map +1 -0
  53. package/dist/core/file-meta-data-loader.js +81 -0
  54. package/dist/core/file-meta-data-loader.js.map +1 -0
  55. package/dist/core/file-source.d.ts +12 -0
  56. package/dist/core/file-source.d.ts.map +1 -0
  57. package/dist/core/file-source.js +46 -0
  58. package/dist/core/file-source.js.map +1 -0
  59. package/dist/core/identity/identity-constants.d.ts +19 -0
  60. package/dist/core/identity/identity-constants.d.ts.map +1 -0
  61. package/dist/core/identity/identity-constants.js +35 -0
  62. package/dist/core/identity/identity-constants.js.map +1 -0
  63. package/dist/core/identity/identity-schema.d.ts +6 -0
  64. package/dist/core/identity/identity-schema.d.ts.map +1 -0
  65. package/dist/core/identity/identity-schema.js +55 -0
  66. package/dist/core/identity/identity-schema.js.map +1 -0
  67. package/dist/core/identity/meta-identity.d.ts +71 -0
  68. package/dist/core/identity/meta-identity.d.ts.map +1 -0
  69. package/dist/core/identity/meta-identity.js +129 -0
  70. package/dist/core/identity/meta-identity.js.map +1 -0
  71. package/dist/core/index.d.ts +6 -0
  72. package/dist/core/index.d.ts.map +1 -0
  73. package/dist/core/index.js +11 -0
  74. package/dist/core/index.js.map +1 -0
  75. package/dist/core/object/meta-object.d.ts +39 -0
  76. package/dist/core/object/meta-object.d.ts.map +1 -0
  77. package/dist/core/object/meta-object.js +80 -0
  78. package/dist/core/object/meta-object.js.map +1 -0
  79. package/dist/core/object/object-constants.d.ts +5 -0
  80. package/dist/core/object/object-constants.d.ts.map +1 -0
  81. package/dist/core/object/object-constants.js +18 -0
  82. package/dist/core/object/object-constants.js.map +1 -0
  83. package/dist/core/object/object-schema.d.ts +4 -0
  84. package/dist/core/object/object-schema.d.ts.map +1 -0
  85. package/dist/core/object/object-schema.js +5 -0
  86. package/dist/core/object/object-schema.js.map +1 -0
  87. package/dist/core/parser-yaml.d.ts +3 -0
  88. package/dist/core/parser-yaml.d.ts.map +1 -0
  89. package/dist/core/parser-yaml.js +39 -0
  90. package/dist/core/parser-yaml.js.map +1 -0
  91. package/dist/core/query/query-constants.d.ts +20 -0
  92. package/dist/core/query/query-constants.d.ts.map +1 -0
  93. package/dist/core/query/query-constants.js +56 -0
  94. package/dist/core/query/query-constants.js.map +1 -0
  95. package/dist/core/relationship/find-reference.d.ts +22 -0
  96. package/dist/core/relationship/find-reference.d.ts.map +1 -0
  97. package/dist/core/relationship/find-reference.js +29 -0
  98. package/dist/core/relationship/find-reference.js.map +1 -0
  99. package/dist/core/relationship/meta-relationship.d.ts +11 -0
  100. package/dist/core/relationship/meta-relationship.d.ts.map +1 -0
  101. package/dist/core/relationship/meta-relationship.js +27 -0
  102. package/dist/core/relationship/meta-relationship.js.map +1 -0
  103. package/dist/core/relationship/relationship-constants.d.ts +14 -0
  104. package/dist/core/relationship/relationship-constants.d.ts.map +1 -0
  105. package/dist/core/relationship/relationship-constants.js +28 -0
  106. package/dist/core/relationship/relationship-constants.js.map +1 -0
  107. package/dist/core/relationship/relationship-schema.d.ts +4 -0
  108. package/dist/core/relationship/relationship-schema.d.ts.map +1 -0
  109. package/dist/core/relationship/relationship-schema.js +37 -0
  110. package/dist/core/relationship/relationship-schema.js.map +1 -0
  111. package/dist/core/validator/meta-validator.d.ts +29 -0
  112. package/dist/core/validator/meta-validator.d.ts.map +1 -0
  113. package/dist/core/validator/meta-validator.js +49 -0
  114. package/dist/core/validator/meta-validator.js.map +1 -0
  115. package/dist/core/validator/validator-constants.d.ts +11 -0
  116. package/dist/core/validator/validator-constants.d.ts.map +1 -0
  117. package/dist/core/validator/validator-constants.js +25 -0
  118. package/dist/core/validator/validator-constants.js.map +1 -0
  119. package/dist/core/validator/validator-schema.d.ts +4 -0
  120. package/dist/core/validator/validator-schema.d.ts.map +1 -0
  121. package/dist/core/validator/validator-schema.js +38 -0
  122. package/dist/core/validator/validator-schema.js.map +1 -0
  123. package/dist/core/yaml-desugar.d.ts +10 -0
  124. package/dist/core/yaml-desugar.d.ts.map +1 -0
  125. package/dist/core/yaml-desugar.js +99 -0
  126. package/dist/core/yaml-desugar.js.map +1 -0
  127. package/dist/core-attr-schemas.d.ts +22 -0
  128. package/dist/core-attr-schemas.d.ts.map +1 -0
  129. package/dist/core-attr-schemas.js +324 -0
  130. package/dist/core-attr-schemas.js.map +1 -0
  131. package/dist/core-types.d.ts +20 -0
  132. package/dist/core-types.d.ts.map +1 -0
  133. package/dist/core-types.js +225 -0
  134. package/dist/core-types.js.map +1 -0
  135. package/dist/data-converter.d.ts +17 -0
  136. package/dist/data-converter.d.ts.map +1 -0
  137. package/dist/data-converter.js +117 -0
  138. package/dist/data-converter.js.map +1 -0
  139. package/dist/data-type.d.ts +15 -0
  140. package/dist/data-type.d.ts.map +1 -0
  141. package/dist/data-type.js +25 -0
  142. package/dist/data-type.js.map +1 -0
  143. package/dist/db/db-attr-schemas.d.ts +8 -0
  144. package/dist/db/db-attr-schemas.d.ts.map +1 -0
  145. package/dist/db/db-attr-schemas.js +26 -0
  146. package/dist/db/db-attr-schemas.js.map +1 -0
  147. package/dist/db/db-provider.d.ts +3 -0
  148. package/dist/db/db-provider.d.ts.map +1 -0
  149. package/dist/db/db-provider.js +28 -0
  150. package/dist/db/db-provider.js.map +1 -0
  151. package/dist/errors.d.ts +26 -0
  152. package/dist/errors.d.ts.map +1 -0
  153. package/dist/errors.js +59 -0
  154. package/dist/errors.js.map +1 -0
  155. package/dist/index.d.ts +70 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +76 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/loader/meta-data-loader.d.ts +87 -0
  160. package/dist/loader/meta-data-loader.d.ts.map +1 -0
  161. package/dist/loader/meta-data-loader.js +232 -0
  162. package/dist/loader/meta-data-loader.js.map +1 -0
  163. package/dist/loader/meta-data-source.d.ts +23 -0
  164. package/dist/loader/meta-data-source.d.ts.map +1 -0
  165. package/dist/loader/meta-data-source.js +20 -0
  166. package/dist/loader/meta-data-source.js.map +1 -0
  167. package/dist/loader/validation-passes.d.ts +7 -0
  168. package/dist/loader/validation-passes.d.ts.map +1 -0
  169. package/dist/loader/validation-passes.js +244 -0
  170. package/dist/loader/validation-passes.js.map +1 -0
  171. package/dist/meta/find-reference.d.ts +22 -0
  172. package/dist/meta/find-reference.d.ts.map +1 -0
  173. package/dist/meta/find-reference.js +29 -0
  174. package/dist/meta/find-reference.js.map +1 -0
  175. package/dist/meta/meta-attr.d.ts +8 -0
  176. package/dist/meta/meta-attr.d.ts.map +1 -0
  177. package/dist/meta/meta-attr.js +17 -0
  178. package/dist/meta/meta-attr.js.map +1 -0
  179. package/dist/meta/meta-data.d.ts +107 -0
  180. package/dist/meta/meta-data.d.ts.map +1 -0
  181. package/dist/meta/meta-data.js +302 -0
  182. package/dist/meta/meta-data.js.map +1 -0
  183. package/dist/meta/meta-field.d.ts +48 -0
  184. package/dist/meta/meta-field.d.ts.map +1 -0
  185. package/dist/meta/meta-field.js +94 -0
  186. package/dist/meta/meta-field.js.map +1 -0
  187. package/dist/meta/meta-identity.d.ts +71 -0
  188. package/dist/meta/meta-identity.d.ts.map +1 -0
  189. package/dist/meta/meta-identity.js +129 -0
  190. package/dist/meta/meta-identity.js.map +1 -0
  191. package/dist/meta/meta-layout.d.ts +23 -0
  192. package/dist/meta/meta-layout.d.ts.map +1 -0
  193. package/dist/meta/meta-layout.js +45 -0
  194. package/dist/meta/meta-layout.js.map +1 -0
  195. package/dist/meta/meta-object.d.ts +40 -0
  196. package/dist/meta/meta-object.d.ts.map +1 -0
  197. package/dist/meta/meta-object.js +81 -0
  198. package/dist/meta/meta-object.js.map +1 -0
  199. package/dist/meta/meta-origin.d.ts +32 -0
  200. package/dist/meta/meta-origin.d.ts.map +1 -0
  201. package/dist/meta/meta-origin.js +55 -0
  202. package/dist/meta/meta-origin.js.map +1 -0
  203. package/dist/meta/meta-relationship.d.ts +11 -0
  204. package/dist/meta/meta-relationship.d.ts.map +1 -0
  205. package/dist/meta/meta-relationship.js +27 -0
  206. package/dist/meta/meta-relationship.js.map +1 -0
  207. package/dist/meta/meta-root.d.ts +12 -0
  208. package/dist/meta/meta-root.d.ts.map +1 -0
  209. package/dist/meta/meta-root.js +24 -0
  210. package/dist/meta/meta-root.js.map +1 -0
  211. package/dist/meta/meta-source.d.ts +18 -0
  212. package/dist/meta/meta-source.d.ts.map +1 -0
  213. package/dist/meta/meta-source.js +31 -0
  214. package/dist/meta/meta-source.js.map +1 -0
  215. package/dist/meta/meta-validator.d.ts +29 -0
  216. package/dist/meta/meta-validator.d.ts.map +1 -0
  217. package/dist/meta/meta-validator.js +49 -0
  218. package/dist/meta/meta-validator.js.map +1 -0
  219. package/dist/meta/meta-view.d.ts +4 -0
  220. package/dist/meta/meta-view.d.ts.map +1 -0
  221. package/dist/meta/meta-view.js +8 -0
  222. package/dist/meta/meta-view.js.map +1 -0
  223. package/dist/naming.d.ts +27 -0
  224. package/dist/naming.d.ts.map +1 -0
  225. package/dist/naming.js +72 -0
  226. package/dist/naming.js.map +1 -0
  227. package/dist/object-serializer.d.ts +10 -0
  228. package/dist/object-serializer.d.ts.map +1 -0
  229. package/dist/object-serializer.js +128 -0
  230. package/dist/object-serializer.js.map +1 -0
  231. package/dist/overlay.d.ts +2 -0
  232. package/dist/overlay.d.ts.map +1 -0
  233. package/dist/overlay.js +6 -0
  234. package/dist/overlay.js.map +1 -0
  235. package/dist/parser-core.d.ts +47 -0
  236. package/dist/parser-core.d.ts.map +1 -0
  237. package/dist/parser-core.js +516 -0
  238. package/dist/parser-core.js.map +1 -0
  239. package/dist/parser-json.d.ts +4 -0
  240. package/dist/parser-json.d.ts.map +1 -0
  241. package/dist/parser-json.js +19 -0
  242. package/dist/parser-json.js.map +1 -0
  243. package/dist/persistence/db/db-attr-schemas.d.ts +8 -0
  244. package/dist/persistence/db/db-attr-schemas.d.ts.map +1 -0
  245. package/dist/persistence/db/db-attr-schemas.js +28 -0
  246. package/dist/persistence/db/db-attr-schemas.js.map +1 -0
  247. package/dist/persistence/db/db-constants.d.ts +5 -0
  248. package/dist/persistence/db/db-constants.d.ts.map +1 -0
  249. package/dist/persistence/db/db-constants.js +6 -0
  250. package/dist/persistence/db/db-constants.js.map +1 -0
  251. package/dist/persistence/db/db-provider.d.ts +3 -0
  252. package/dist/persistence/db/db-provider.d.ts.map +1 -0
  253. package/dist/persistence/db/db-provider.js +29 -0
  254. package/dist/persistence/db/db-provider.js.map +1 -0
  255. package/dist/persistence/db/db-schema.d.ts +8 -0
  256. package/dist/persistence/db/db-schema.d.ts.map +1 -0
  257. package/dist/persistence/db/db-schema.js +27 -0
  258. package/dist/persistence/db/db-schema.js.map +1 -0
  259. package/dist/persistence/origin/meta-origin.d.ts +32 -0
  260. package/dist/persistence/origin/meta-origin.d.ts.map +1 -0
  261. package/dist/persistence/origin/meta-origin.js +55 -0
  262. package/dist/persistence/origin/meta-origin.js.map +1 -0
  263. package/dist/persistence/origin/origin-constants.d.ts +12 -0
  264. package/dist/persistence/origin/origin-constants.d.ts.map +1 -0
  265. package/dist/persistence/origin/origin-constants.js +27 -0
  266. package/dist/persistence/origin/origin-constants.js.map +1 -0
  267. package/dist/persistence/origin/origin-schema.d.ts +4 -0
  268. package/dist/persistence/origin/origin-schema.d.ts.map +1 -0
  269. package/dist/persistence/origin/origin-schema.js +49 -0
  270. package/dist/persistence/origin/origin-schema.js.map +1 -0
  271. package/dist/persistence/source/meta-source.d.ts +18 -0
  272. package/dist/persistence/source/meta-source.d.ts.map +1 -0
  273. package/dist/persistence/source/meta-source.js +31 -0
  274. package/dist/persistence/source/meta-source.js.map +1 -0
  275. package/dist/persistence/source/source-constants.d.ts +16 -0
  276. package/dist/persistence/source/source-constants.d.ts.map +1 -0
  277. package/dist/persistence/source/source-constants.js +28 -0
  278. package/dist/persistence/source/source-constants.js.map +1 -0
  279. package/dist/presentation/layout/layout-constants.d.ts +10 -0
  280. package/dist/presentation/layout/layout-constants.d.ts.map +1 -0
  281. package/dist/presentation/layout/layout-constants.js +21 -0
  282. package/dist/presentation/layout/layout-constants.js.map +1 -0
  283. package/dist/presentation/layout/layout-schema.d.ts +4 -0
  284. package/dist/presentation/layout/layout-schema.d.ts.map +1 -0
  285. package/dist/presentation/layout/layout-schema.js +46 -0
  286. package/dist/presentation/layout/layout-schema.js.map +1 -0
  287. package/dist/presentation/layout/meta-layout.d.ts +23 -0
  288. package/dist/presentation/layout/meta-layout.d.ts.map +1 -0
  289. package/dist/presentation/layout/meta-layout.js +47 -0
  290. package/dist/presentation/layout/meta-layout.js.map +1 -0
  291. package/dist/presentation/view/meta-view.d.ts +4 -0
  292. package/dist/presentation/view/meta-view.d.ts.map +1 -0
  293. package/dist/presentation/view/meta-view.js +8 -0
  294. package/dist/presentation/view/meta-view.js.map +1 -0
  295. package/dist/presentation/view/view-constants.d.ts +20 -0
  296. package/dist/presentation/view/view-constants.d.ts.map +1 -0
  297. package/dist/presentation/view/view-constants.js +47 -0
  298. package/dist/presentation/view/view-constants.js.map +1 -0
  299. package/dist/presentation/view/view-schema.d.ts +4 -0
  300. package/dist/presentation/view/view-schema.d.ts.map +1 -0
  301. package/dist/presentation/view/view-schema.js +15 -0
  302. package/dist/presentation/view/view-schema.js.map +1 -0
  303. package/dist/provider.d.ts +20 -0
  304. package/dist/provider.d.ts.map +1 -0
  305. package/dist/provider.js +58 -0
  306. package/dist/provider.js.map +1 -0
  307. package/dist/registry.d.ts +89 -0
  308. package/dist/registry.d.ts.map +1 -0
  309. package/dist/registry.js +107 -0
  310. package/dist/registry.js.map +1 -0
  311. package/dist/serializer-json.d.ts +16 -0
  312. package/dist/serializer-json.d.ts.map +1 -0
  313. package/dist/serializer-json.js +154 -0
  314. package/dist/serializer-json.js.map +1 -0
  315. package/dist/shared/base-types.d.ts +23 -0
  316. package/dist/shared/base-types.d.ts.map +1 -0
  317. package/dist/shared/base-types.js +43 -0
  318. package/dist/shared/base-types.js.map +1 -0
  319. package/dist/shared/meta-data.d.ts +123 -0
  320. package/dist/shared/meta-data.d.ts.map +1 -0
  321. package/dist/shared/meta-data.js +365 -0
  322. package/dist/shared/meta-data.js.map +1 -0
  323. package/dist/shared/meta-root.d.ts +12 -0
  324. package/dist/shared/meta-root.d.ts.map +1 -0
  325. package/dist/shared/meta-root.js +24 -0
  326. package/dist/shared/meta-root.js.map +1 -0
  327. package/dist/shared/structural.d.ts +20 -0
  328. package/dist/shared/structural.d.ts.map +1 -0
  329. package/dist/shared/structural.js +49 -0
  330. package/dist/shared/structural.js.map +1 -0
  331. package/dist/subtype-rules.d.ts +8 -0
  332. package/dist/subtype-rules.d.ts.map +1 -0
  333. package/dist/subtype-rules.js +34 -0
  334. package/dist/subtype-rules.js.map +1 -0
  335. package/dist/super-resolve.d.ts +34 -0
  336. package/dist/super-resolve.d.ts.map +1 -0
  337. package/dist/super-resolve.js +124 -0
  338. package/dist/super-resolve.js.map +1 -0
  339. package/package.json +50 -0
  340. package/src/attr-class-map.ts +64 -0
  341. package/src/attr-schema-validate.ts +134 -0
  342. package/src/core/attr/attr-constants.ts +31 -0
  343. package/src/core/attr/meta-attr-filter.ts +67 -0
  344. package/src/core/attr/meta-attr-properties.ts +26 -0
  345. package/src/core/attr/meta-attr-stringarray.ts +31 -0
  346. package/src/core/attr/meta-attr.ts +125 -0
  347. package/src/core/export-json.ts +66 -0
  348. package/src/core/field/field-constants.ts +79 -0
  349. package/src/core/field/field-schema.ts +121 -0
  350. package/src/core/field/meta-field.ts +179 -0
  351. package/src/core/file-meta-data-loader.ts +89 -0
  352. package/src/core/file-source.ts +52 -0
  353. package/src/core/identity/identity-constants.ts +44 -0
  354. package/src/core/identity/identity-schema.ts +80 -0
  355. package/src/core/identity/meta-identity.ts +148 -0
  356. package/src/core/index.ts +12 -0
  357. package/src/core/object/meta-object.ts +151 -0
  358. package/src/core/object/object-constants.ts +21 -0
  359. package/src/core/object/object-schema.ts +7 -0
  360. package/src/core/parser-yaml.ts +54 -0
  361. package/src/core/query/query-constants.ts +66 -0
  362. package/src/core/relationship/find-reference.ts +44 -0
  363. package/src/core/relationship/meta-relationship.ts +36 -0
  364. package/src/core/relationship/relationship-constants.ts +38 -0
  365. package/src/core/relationship/relationship-schema.ts +49 -0
  366. package/src/core/validator/meta-validator.ts +62 -0
  367. package/src/core/validator/validator-constants.ts +31 -0
  368. package/src/core/validator/validator-schema.ts +50 -0
  369. package/src/core/yaml-desugar.ts +145 -0
  370. package/src/core-types.ts +329 -0
  371. package/src/data-converter.ts +125 -0
  372. package/src/data-type.ts +33 -0
  373. package/src/errors.ts +68 -0
  374. package/src/index.ts +165 -0
  375. package/src/loader/meta-data-loader.ts +307 -0
  376. package/src/loader/meta-data-source.ts +35 -0
  377. package/src/loader/validation-passes.ts +370 -0
  378. package/src/naming.ts +86 -0
  379. package/src/object-serializer.ts +153 -0
  380. package/src/overlay.ts +5 -0
  381. package/src/parser-core.ts +815 -0
  382. package/src/parser-json.ts +28 -0
  383. package/src/persistence/db/db-constants.ts +6 -0
  384. package/src/persistence/db/db-provider.ts +36 -0
  385. package/src/persistence/db/db-schema.ts +40 -0
  386. package/src/persistence/origin/meta-origin.ts +67 -0
  387. package/src/persistence/origin/origin-constants.ts +35 -0
  388. package/src/persistence/origin/origin-schema.ts +66 -0
  389. package/src/persistence/source/meta-source.ts +38 -0
  390. package/src/persistence/source/source-constants.ts +35 -0
  391. package/src/presentation/layout/layout-constants.ts +27 -0
  392. package/src/presentation/layout/layout-schema.ts +62 -0
  393. package/src/presentation/layout/meta-layout.ts +61 -0
  394. package/src/presentation/view/meta-view.ts +8 -0
  395. package/src/presentation/view/view-constants.ts +53 -0
  396. package/src/presentation/view/view-schema.ts +21 -0
  397. package/src/provider.ts +85 -0
  398. package/src/registry.ts +190 -0
  399. package/src/serializer-json.ts +210 -0
  400. package/src/shared/base-types.ts +52 -0
  401. package/src/shared/meta-data.ts +443 -0
  402. package/src/shared/meta-root.ts +33 -0
  403. package/src/shared/structural.ts +62 -0
  404. package/src/subtype-rules.ts +56 -0
  405. package/src/super-resolve.ts +147 -0
@@ -0,0 +1,129 @@
1
+ // MetaIdentity — concrete node class for type=identity nodes.
2
+ // MetaPrimaryIdentity and MetaSecondaryIdentity are co-located subtype classes.
3
+ //
4
+ // Extends MetaData directly: no model wrapper, no metaOf() indirection.
5
+ import { MetaData } from "../../shared/meta-data.js";
6
+ import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_ATTR_FIELDS, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_UNIQUE, IDENTITY_REFERENCE_ATTR_REFERENCES, IDENTITY_REFERENCE_ATTR_ENFORCE, } from "./identity-constants.js";
7
+ export class MetaIdentity extends MetaData {
8
+ get fields() {
9
+ const f = this.ownAttr(IDENTITY_ATTR_FIELDS);
10
+ return Array.isArray(f) ? f : [];
11
+ }
12
+ /**
13
+ * Whether the identity enforces uniqueness.
14
+ * Defaults to true; explicit `@unique: false` makes it a non-unique index.
15
+ */
16
+ get unique() {
17
+ return this.ownAttr(IDENTITY_ATTR_UNIQUE) !== false;
18
+ }
19
+ isPrimary() {
20
+ return this.subType === IDENTITY_SUBTYPE_PRIMARY;
21
+ }
22
+ isSecondary() {
23
+ return this.subType === IDENTITY_SUBTYPE_SECONDARY;
24
+ }
25
+ isReference() {
26
+ return this.subType === IDENTITY_SUBTYPE_REFERENCE;
27
+ }
28
+ isComposite() {
29
+ return this.fields.length > 1;
30
+ }
31
+ }
32
+ /**
33
+ * Primary identity (the entity's PK). Always unique by definition.
34
+ * Carries `@generation` (increment / uuid / assigned).
35
+ */
36
+ export class MetaPrimaryIdentity extends MetaIdentity {
37
+ get generation() {
38
+ const v = this.ownAttr(IDENTITY_ATTR_GENERATION);
39
+ return typeof v === "string" ? v : undefined;
40
+ }
41
+ }
42
+ /**
43
+ * Secondary identity — a unique or non-unique index on one or more fields.
44
+ * `@generation` does not apply here.
45
+ */
46
+ export class MetaSecondaryIdentity extends MetaIdentity {
47
+ }
48
+ /**
49
+ * Reference identity — a field (or compound field set) on this entity whose
50
+ * value(s) identify an instance of another entity.
51
+ *
52
+ * Maps to: SQL foreign key, document linked reference, graph edge target,
53
+ * OO pointer/reference. Backend-agnostic at the metamodel level.
54
+ *
55
+ * Carries `@references` — either a bare entity name (defaults to that
56
+ * entity's primary identity) or a dotted `Entity.field` or
57
+ * `Entity.fieldA,fieldB` form for explicit field/compound targets.
58
+ */
59
+ export class MetaReferenceIdentity extends MetaIdentity {
60
+ /** Raw `@references` attr value, unparsed. */
61
+ get referencesRaw() {
62
+ const v = this.ownAttr(IDENTITY_REFERENCE_ATTR_REFERENCES);
63
+ return typeof v === "string" ? v : undefined;
64
+ }
65
+ /** Target entity name (the bit before the dot, or the whole bare value). */
66
+ get targetEntity() {
67
+ const raw = this.referencesRaw;
68
+ if (raw === undefined)
69
+ return undefined;
70
+ const dotIdx = raw.indexOf(".");
71
+ return dotIdx === -1 ? raw : raw.slice(0, dotIdx);
72
+ }
73
+ /**
74
+ * Whether the reference is physically enforced by the backend.
75
+ * Default true (hard FK constraint emitted). Explicit `@enforce: false`
76
+ * marks the reference as logical-only — drizzle-schema skips `.references()`
77
+ * and migrate-ts's expected schema omits the FK descriptor. relations()
78
+ * block and projection JOIN inference are unaffected.
79
+ */
80
+ get enforce() {
81
+ return this.ownAttr(IDENTITY_REFERENCE_ATTR_ENFORCE) !== false;
82
+ }
83
+ /**
84
+ * Target field names. Empty array means "use the target's primary identity"
85
+ * (the bare-entity form). For dotted forms, returns the field(s) after the
86
+ * dot (comma-split, trimmed).
87
+ */
88
+ get targetFields() {
89
+ const raw = this.referencesRaw;
90
+ if (raw === undefined)
91
+ return [];
92
+ const dotIdx = raw.indexOf(".");
93
+ if (dotIdx === -1)
94
+ return [];
95
+ return raw
96
+ .slice(dotIdx + 1)
97
+ .split(",")
98
+ .map((s) => s.trim())
99
+ .filter((s) => s.length > 0);
100
+ }
101
+ /**
102
+ * Resolve the target field on the referenced entity that this reference
103
+ * points at. Priority: explicit dotted-form `@references: "Entity.field"`
104
+ * override → target entity's primary identity field → "id" fallback.
105
+ *
106
+ * Returns undefined only if the target entity cannot be found in `root`.
107
+ * Centralizes the FK-target resolution rule used by projection view DDL,
108
+ * Drizzle schema emit, and migration schema comparison.
109
+ */
110
+ resolvedTargetPkField(root) {
111
+ const explicit = this.targetFields[0];
112
+ if (explicit !== undefined)
113
+ return explicit;
114
+ const targetName = this.targetEntity;
115
+ if (targetName === undefined)
116
+ return undefined;
117
+ const targetObj = root.findObject(targetName);
118
+ if (!targetObj)
119
+ return undefined;
120
+ const primary = targetObj.primaryIdentity();
121
+ const fields = primary?.ownAttr(IDENTITY_ATTR_FIELDS);
122
+ if (typeof fields === "string")
123
+ return fields.split(",")[0].trim();
124
+ if (Array.isArray(fields) && fields.length > 0)
125
+ return String(fields[0]).trim();
126
+ return "id";
127
+ }
128
+ }
129
+ //# sourceMappingURL=meta-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-identity.js","sourceRoot":"","sources":["../../../src/core/identity/meta-identity.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAMjC,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,KAAK,CAAC;IACtD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC;IACnD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC;IACrD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC;IACrD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD,IAAI,UAAU;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;CAAG;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,8CAA8C;IAC9C,IAAI,aAAa;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,IAAI,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,KAAK,KAAK,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7B,OAAO,GAAG;aACP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB,CAAC,IAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAkC,CAAC;QACvF,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ export { FileSource } from "./file-source.js";
2
+ export { FileMetaDataLoader } from "./file-meta-data-loader.js";
3
+ export { parseYaml } from "./parser-yaml.js";
4
+ export { loadAndExportJson } from "./export-json.js";
5
+ export type { ExportResult } from "./export-json.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ // @metaobjectsdev/metadata/core — server-side capabilities.
2
+ //
3
+ // This entry point holds everything that touches node:fs or the `yaml`
4
+ // dependency: the file loaders, the YAML authoring parser, and the
5
+ // load-and-export convenience. The root `@metaobjectsdev/metadata` entry is
6
+ // browser-safe and imports none of this. See the package README.
7
+ export { FileSource } from "./file-source.js";
8
+ export { FileMetaDataLoader } from "./file-meta-data-loader.js";
9
+ export { parseYaml } from "./parser-yaml.js";
10
+ export { loadAndExportJson } from "./export-json.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,uEAAuE;AACvE,mEAAmE;AACnE,4EAA4E;AAC5E,iEAAiE;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { MetaData } from "../../shared/meta-data.js";
2
+ import type { MetaField } from "../field/meta-field.js";
3
+ import type { MetaIdentity, MetaReferenceIdentity } from "../identity/meta-identity.js";
4
+ import type { MetaLayout } from "../../presentation/layout/meta-layout.js";
5
+ import type { MetaRelationship } from "../relationship/meta-relationship.js";
6
+ import type { MetaValidator } from "../validator/meta-validator.js";
7
+ export declare class MetaObject extends MetaData {
8
+ get dbTable(): string | undefined;
9
+ isEntity(): boolean;
10
+ isValue(): boolean;
11
+ /** All effective fields (own + inherited via extends). */
12
+ fields(): MetaField[];
13
+ /** Own fields only — excludes fields inherited via extends. Java parity: getMetaFields(false). */
14
+ ownFields(): MetaField[];
15
+ /** All effective identities (own + inherited via extends). */
16
+ identities(): MetaIdentity[];
17
+ /** Own identities only — excludes inherited. */
18
+ ownIdentities(): MetaIdentity[];
19
+ /** Returns the single primary identity, if any. */
20
+ primaryIdentity(): MetaIdentity | undefined;
21
+ /** Secondary identities. */
22
+ secondaryIdentities(): MetaIdentity[];
23
+ /** Reference identities — fields on this entity that identify another entity. */
24
+ referenceIdentities(): MetaReferenceIdentity[];
25
+ /** All effective relationships (own + inherited via extends). */
26
+ relationships(): MetaRelationship[];
27
+ /** Own relationships only — excludes inherited. */
28
+ ownRelationships(): MetaRelationship[];
29
+ /** All effective validators (own + inherited via extends). */
30
+ validators(): MetaValidator[];
31
+ /** Own validators only — excludes validators inherited via extends. Java parity: getChildren(Class, false). */
32
+ ownValidators(): MetaValidator[];
33
+ /** All effective layouts (own + inherited via extends). */
34
+ layouts(): MetaLayout[];
35
+ /** Own layouts only — excludes inherited. */
36
+ ownLayouts(): MetaLayout[];
37
+ findField(name: string): MetaField | undefined;
38
+ }
39
+ //# sourceMappingURL=meta-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-object.d.ts","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAsBrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,qBAAa,UAAW,SAAQ,QAAQ;IACtC,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAQhC;IAED,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;IAIlB,0DAA0D;IAC1D,MAAM,IAAI,SAAS,EAAE;IAMrB,kGAAkG;IAClG,SAAS,IAAI,SAAS,EAAE;IAMxB,8DAA8D;IAC9D,UAAU,IAAI,YAAY,EAAE;IAM5B,gDAAgD;IAChD,aAAa,IAAI,YAAY,EAAE;IAM/B,mDAAmD;IACnD,eAAe,IAAI,YAAY,GAAG,SAAS;IAM3C,4BAA4B;IAC5B,mBAAmB,IAAI,YAAY,EAAE;IAMrC,iFAAiF;IACjF,mBAAmB,IAAI,qBAAqB,EAAE;IAQ9C,iEAAiE;IACjE,aAAa,IAAI,gBAAgB,EAAE;IAMnC,mDAAmD;IACnD,gBAAgB,IAAI,gBAAgB,EAAE;IAMtC,8DAA8D;IAC9D,UAAU,IAAI,aAAa,EAAE;IAM7B,+GAA+G;IAC/G,aAAa,IAAI,aAAa,EAAE;IAMhC,2DAA2D;IAC3D,OAAO,IAAI,UAAU,EAAE;IAMvB,6CAA6C;IAC7C,UAAU,IAAI,UAAU,EAAE;IAM1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAK/C"}
@@ -0,0 +1,80 @@
1
+ // MetaObject — concrete node class for type=object nodes.
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 "../../shared/meta-data.js";
6
+ import { TYPE_FIELD, TYPE_IDENTITY, TYPE_RELATIONSHIP, TYPE_VALIDATOR, TYPE_SOURCE, TYPE_LAYOUT, } from "../../shared/base-types.js";
7
+ import { SOURCE_SUBTYPE_DB_TABLE, SOURCE_DB_TABLE_ATTR_NAME, } from "../../persistence/source/source-constants.js";
8
+ import { OBJECT_SUBTYPE_ENTITY, OBJECT_SUBTYPE_VALUE, } from "./object-constants.js";
9
+ import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, } from "../identity/identity-constants.js";
10
+ export class MetaObject extends MetaData {
11
+ get dbTable() {
12
+ return this.cached("dbTable", () => {
13
+ const source = this.children().find((c) => c.type === TYPE_SOURCE && c.subType === SOURCE_SUBTYPE_DB_TABLE);
14
+ const name = source?.ownAttr(SOURCE_DB_TABLE_ATTR_NAME);
15
+ return typeof name === "string" && name !== "" ? name : undefined;
16
+ });
17
+ }
18
+ isEntity() {
19
+ return this.subType === OBJECT_SUBTYPE_ENTITY;
20
+ }
21
+ isValue() {
22
+ return this.subType === OBJECT_SUBTYPE_VALUE;
23
+ }
24
+ /** All effective fields (own + inherited via extends). */
25
+ fields() {
26
+ return this.cached("fields", () => this.children().filter((c) => c.type === TYPE_FIELD));
27
+ }
28
+ /** Own fields only — excludes fields inherited via extends. Java parity: getMetaFields(false). */
29
+ ownFields() {
30
+ return this.cached("ownFields", () => this.ownChildren().filter((c) => c.type === TYPE_FIELD));
31
+ }
32
+ /** All effective identities (own + inherited via extends). */
33
+ identities() {
34
+ return this.cached("identities", () => this.children().filter((c) => c.type === TYPE_IDENTITY));
35
+ }
36
+ /** Own identities only — excludes inherited. */
37
+ ownIdentities() {
38
+ return this.cached("ownIdentities", () => this.ownChildren().filter((c) => c.type === TYPE_IDENTITY));
39
+ }
40
+ /** Returns the single primary identity, if any. */
41
+ primaryIdentity() {
42
+ return this.cached("primaryIdentity", () => this.identities().find((i) => i.subType === IDENTITY_SUBTYPE_PRIMARY));
43
+ }
44
+ /** Secondary identities. */
45
+ secondaryIdentities() {
46
+ return this.cached("secondaryIdentities", () => this.identities().filter((i) => i.subType === IDENTITY_SUBTYPE_SECONDARY));
47
+ }
48
+ /** Reference identities — fields on this entity that identify another entity. */
49
+ referenceIdentities() {
50
+ return this.cached("referenceIdentities", () => this.identities().filter((i) => i.subType === IDENTITY_SUBTYPE_REFERENCE));
51
+ }
52
+ /** All effective relationships (own + inherited via extends). */
53
+ relationships() {
54
+ return this.cached("relationships", () => this.children().filter((c) => c.type === TYPE_RELATIONSHIP));
55
+ }
56
+ /** Own relationships only — excludes inherited. */
57
+ ownRelationships() {
58
+ return this.cached("ownRelationships", () => this.ownChildren().filter((c) => c.type === TYPE_RELATIONSHIP));
59
+ }
60
+ /** All effective validators (own + inherited via extends). */
61
+ validators() {
62
+ return this.cached("validators", () => this.children().filter((c) => c.type === TYPE_VALIDATOR));
63
+ }
64
+ /** Own validators only — excludes validators inherited via extends. Java parity: getChildren(Class, false). */
65
+ ownValidators() {
66
+ return this.cached("ownValidators", () => this.ownChildren().filter((c) => c.type === TYPE_VALIDATOR));
67
+ }
68
+ /** All effective layouts (own + inherited via extends). */
69
+ layouts() {
70
+ return this.cached("layouts", () => this.children().filter((c) => c.type === TYPE_LAYOUT));
71
+ }
72
+ /** Own layouts only — excludes inherited. */
73
+ ownLayouts() {
74
+ return this.cached("ownLayouts", () => this.ownChildren().filter((c) => c.type === TYPE_LAYOUT));
75
+ }
76
+ findField(name) {
77
+ return this.cached(`findField:${name}`, () => this.fields().find((f) => f.name === name));
78
+ }
79
+ }
80
+ //# sourceMappingURL=meta-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-object.js","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const OBJECT_SUBTYPE_ENTITY = "entity";
2
+ export declare const OBJECT_SUBTYPE_VALUE = "value";
3
+ export declare const OBJECT_SUBTYPES: readonly ["base", "entity", "value"];
4
+ export type ObjectSubType = (typeof OBJECT_SUBTYPES)[number];
5
+ //# sourceMappingURL=object-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-constants.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,eAAO,MAAM,eAAe,sCAIlB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ // Object concern constants — subtypes for the object.* type family.
2
+ import { SUBTYPE_BASE } from "../../shared/base-types.js";
3
+ // ---------------------------------------------------------------------------
4
+ // Object subtypes (cross-language, conceptual)
5
+ // ---------------------------------------------------------------------------
6
+ //
7
+ // - base : abstract template (no runtime semantics)
8
+ // - entity : persistent record (typically has @primary identity)
9
+ // - value : value-object (no identity; equality by content)
10
+ //
11
+ export const OBJECT_SUBTYPE_ENTITY = "entity";
12
+ export const OBJECT_SUBTYPE_VALUE = "value";
13
+ export const OBJECT_SUBTYPES = [
14
+ SUBTYPE_BASE,
15
+ OBJECT_SUBTYPE_ENTITY,
16
+ OBJECT_SUBTYPE_VALUE,
17
+ ];
18
+ //# sourceMappingURL=object-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-constants.js","sourceRoot":"","sources":["../../../src/core/object/object-constants.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAC9E,EAAE;AACF,wDAAwD;AACxD,mEAAmE;AACnE,+DAA+D;AAC/D,EAAE;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,qBAAqB;IACrB,oBAAoB;CACZ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AttrSchema } from "../../registry.js";
2
+ /** Attrs common to every object subtype. */
3
+ export declare const objectAttrs: AttrSchema[];
4
+ //# sourceMappingURL=object-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-schema.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,4CAA4C;AAC5C,eAAO,MAAM,WAAW,EAAE,UAAU,EAAO,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Object attribute schemas — attrs common to every object subtype.
2
+ // Consumed by registerCoreTypes().
3
+ /** Attrs common to every object subtype. */
4
+ export const objectAttrs = [];
5
+ //# sourceMappingURL=object-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-schema.js","sourceRoot":"","sources":["../../../src/core/object/object-schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,mCAAmC;AAInC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAiB,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ParseOptions, ParseResult } from "../parser-core.js";
2
+ export declare function parseYaml(content: string, opts: ParseOptions): ParseResult;
3
+ //# sourceMappingURL=parser-yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-yaml.d.ts","sourceRoot":"","sources":["../../src/core/parser-yaml.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGnE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CAwC1E"}
@@ -0,0 +1,39 @@
1
+ // Authoring YAML parser.
2
+ //
3
+ // parseYaml is a front-end: yaml.parse → desugar → the shared buildTree
4
+ // (parser-core.ts). The desugar applies the four authoring-sugar rules so the
5
+ // resulting typed tree is identical to the one the equivalent canonical JSON
6
+ // produces.
7
+ import { parse as parseYamlText } from "yaml";
8
+ import { ParseError } from "../errors.js";
9
+ import { buildTree, errOpts } from "../parser-core.js";
10
+ import { desugar } from "./yaml-desugar.js";
11
+ export function parseYaml(content, opts) {
12
+ // Strip UTF-8 BOM if present (consistent with parseJson).
13
+ const normalizedContent = content.charCodeAt(0) === 0xfeff ? content.slice(1) : content;
14
+ // YAML syntax errors throw — consistent with parseJson on invalid JSON.
15
+ // The loader's per-source try/catch collects the throw into LoadResult.errors.
16
+ let parsed;
17
+ try {
18
+ parsed = parseYamlText(normalizedContent);
19
+ }
20
+ catch (err) {
21
+ throw new ParseError(`Invalid YAML: ${err.message}`, { ...errOpts(opts.sourceName), code: "ERR_MALFORMED_YAML" });
22
+ }
23
+ // Desugar the sugared authoring object into the canonical structure.
24
+ const { canonical, errors: desugarErrors } = desugar(parsed, opts.registry);
25
+ // If the desugar could not produce a usable document at all, surface the
26
+ // first desugar error as a throw — parallels parseJson's top-level throws.
27
+ if (Object.keys(canonical).length === 0) {
28
+ throw new ParseError(desugarErrors[0], { ...errOpts(opts.sourceName), code: "ERR_MALFORMED_YAML" });
29
+ }
30
+ const result = buildTree(canonical, opts);
31
+ // Merge collected desugar errors ahead of buildTree's own collected errors.
32
+ const desugarParseErrors = desugarErrors.map((msg) => new ParseError(msg, { ...errOpts(opts.sourceName), code: "ERR_MALFORMED_YAML" }));
33
+ return {
34
+ root: result.root,
35
+ warnings: result.warnings,
36
+ errors: [...desugarParseErrors, ...result.errors],
37
+ };
38
+ }
39
+ //# sourceMappingURL=parser-yaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-yaml.js","sourceRoot":"","sources":["../../src/core/parser-yaml.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,EAAE;AACF,wEAAwE;AACxE,8EAA8E;AAC9E,6EAA6E;AAC7E,YAAY;AAEZ,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,IAAkB;IAC3D,0DAA0D;IAC1D,MAAM,iBAAiB,GACrB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEhE,wEAAwE;IACxE,+EAA+E;IAC/E,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,UAAU,CAClB,iBAAkB,GAAa,CAAC,OAAO,EAAE,EACzC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE5E,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAClB,aAAa,CAAC,CAAC,CAAE,EACjB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE1C,4EAA4E;IAC5E,MAAM,kBAAkB,GAAG,aAAa,CAAC,GAAG,CAC1C,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAC1F,CAAC;IACF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,CAAC,GAAG,kBAAkB,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const FILTER_OP_EQ = "eq";
2
+ export declare const FILTER_OP_NE = "ne";
3
+ export declare const FILTER_OP_GT = "gt";
4
+ export declare const FILTER_OP_GTE = "gte";
5
+ export declare const FILTER_OP_LT = "lt";
6
+ export declare const FILTER_OP_LTE = "lte";
7
+ export declare const FILTER_OP_IN = "in";
8
+ export declare const FILTER_OP_LIKE = "like";
9
+ export declare const FILTER_OP_IS_NULL = "isNull";
10
+ export declare const FILTER_COMPOSE_OR = "or";
11
+ export declare const FILTER_COMPOSE_AND = "and";
12
+ export declare const FILTER_OPS: readonly ["eq", "ne", "gt", "gte", "lt", "lte", "in", "like", "isNull"];
13
+ export type FilterOp = (typeof FILTER_OPS)[number];
14
+ export declare const OPS_BY_SUBTYPE: Readonly<Record<string, readonly FilterOp[]>>;
15
+ export declare function opsForSubType(subType: string): readonly FilterOp[];
16
+ export declare const SORT_ORDER_ASC = "asc";
17
+ export declare const SORT_ORDER_DESC = "desc";
18
+ export declare const SORT_ORDER_VALUES: readonly ["asc", "desc"];
19
+ export type SortOrderValue = (typeof SORT_ORDER_VALUES)[number];
20
+ //# sourceMappingURL=query-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-constants.d.ts","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,aAAa,QAAY,CAAC;AACvC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,aAAa,QAAY,CAAC;AACvC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,cAAc,SAAY,CAAC;AACxC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,eAAO,MAAM,UAAU,yEAGb,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC,CAa/D,CAAC;AAEX,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAElE;AAOD,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,eAAe,SAAS,CAAC;AAEtC,eAAO,MAAM,iBAAiB,0BAA6C,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,56 @@
1
+ // Query concern constants — filter operators, sort order values.
2
+ //
3
+ // NOTE: `query` is NOT a metamodel node type — it has no subtype, schema, or
4
+ // accessor. It's a cross-cutting vocabulary grouping for query/filter helpers
5
+ // consumed by both core/field (@filterable/@sortable) and presentation/layout
6
+ // (dataGrid @defaultSortOrder). Co-located here as the most foundational shared
7
+ // home; intentional, not an incomplete migration.
8
+ // ---------------------------------------------------------------------------
9
+ // Filter operators (Project D) — shared source of truth across server +
10
+ // codegen. Each subtype declares which operators are legal for fields of that
11
+ // type. Server allowlist generation + TS type generation + codegen-time grid
12
+ // validation all import from here.
13
+ // ---------------------------------------------------------------------------
14
+ // Individual operator constants — used by the parse-time desugar in
15
+ // parser-core.ts. Must stay in sync with FILTER_OPS below.
16
+ export const FILTER_OP_EQ = "eq";
17
+ export const FILTER_OP_NE = "ne";
18
+ export const FILTER_OP_GT = "gt";
19
+ export const FILTER_OP_GTE = "gte";
20
+ export const FILTER_OP_LT = "lt";
21
+ export const FILTER_OP_LTE = "lte";
22
+ export const FILTER_OP_IN = "in";
23
+ export const FILTER_OP_LIKE = "like";
24
+ export const FILTER_OP_IS_NULL = "isNull";
25
+ // Composition-key constants — used by desugarFilterObject in meta-attr-filter.ts.
26
+ export const FILTER_COMPOSE_OR = "or";
27
+ export const FILTER_COMPOSE_AND = "and";
28
+ export const FILTER_OPS = [
29
+ FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE,
30
+ FILTER_OP_IN, FILTER_OP_LIKE, FILTER_OP_IS_NULL,
31
+ ];
32
+ export const OPS_BY_SUBTYPE = {
33
+ string: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_IN, FILTER_OP_LIKE, FILTER_OP_IS_NULL],
34
+ int: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
35
+ short: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
36
+ byte: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
37
+ long: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
38
+ double: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
39
+ float: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
40
+ decimal: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
41
+ boolean: [FILTER_OP_EQ, FILTER_OP_IS_NULL],
42
+ date: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
43
+ time: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
44
+ timestamp: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
45
+ };
46
+ export function opsForSubType(subType) {
47
+ return OPS_BY_SUBTYPE[subType] ?? [];
48
+ }
49
+ // ---------------------------------------------------------------------------
50
+ // Sort order values (used by @sortableDefaultOrder on fields and
51
+ // @defaultSortOrder on dataGrid layouts)
52
+ // ---------------------------------------------------------------------------
53
+ export const SORT_ORDER_ASC = "asc";
54
+ export const SORT_ORDER_DESC = "desc";
55
+ export const SORT_ORDER_VALUES = [SORT_ORDER_ASC, SORT_ORDER_DESC];
56
+ //# sourceMappingURL=query-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-constants.js","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { MetaObject } from "../object/meta-object.js";
2
+ import type { MetaReferenceIdentity } from "../identity/meta-identity.js";
3
+ export interface ReferenceLookup {
4
+ /** The entity whose identity.reference points at `other`. */
5
+ readonly holder: MetaObject;
6
+ /** The other side of the reference. */
7
+ readonly other: MetaObject;
8
+ /** The matching identity.reference declaration on `holder`. */
9
+ readonly referenceIdentity: MetaReferenceIdentity;
10
+ }
11
+ /**
12
+ * Find an identity.reference on either `a` or `b` whose @references targets the
13
+ * other side. Returns undefined if neither side declares one.
14
+ *
15
+ * Comparison is package-insensitive: `@references` may be a bare entity name
16
+ * ("User") or a fully-qualified one ("pkg::User"); both match `other.name`.
17
+ *
18
+ * If both sides declare references targeting each other (rare, but legal for
19
+ * mutual 1:1), returns the first found, walking `a` first.
20
+ */
21
+ export declare function findReferenceBetween(a: MetaObject, b: MetaObject): ReferenceLookup | undefined;
22
+ //# sourceMappingURL=find-reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-reference.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/find-reference.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAG1E,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;CACnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,UAAU,GACZ,eAAe,GAAG,SAAS,CAS7B"}
@@ -0,0 +1,29 @@
1
+ // Cross-entity reference lookup — anchored to identity.reference declarations.
2
+ //
3
+ // Given a relationship-style query "is there a reference between A and B?",
4
+ // walk A's and B's identity.reference children to find the side that physically
5
+ // holds the reference. This is the single source of truth for FK direction
6
+ // across projection codegen, Drizzle schema emit, relations() blocks, and
7
+ // migration schema comparison.
8
+ import { stripPackage } from "../../naming.js";
9
+ /**
10
+ * Find an identity.reference on either `a` or `b` whose @references targets the
11
+ * other side. Returns undefined if neither side declares one.
12
+ *
13
+ * Comparison is package-insensitive: `@references` may be a bare entity name
14
+ * ("User") or a fully-qualified one ("pkg::User"); both match `other.name`.
15
+ *
16
+ * If both sides declare references targeting each other (rare, but legal for
17
+ * mutual 1:1), returns the first found, walking `a` first.
18
+ */
19
+ export function findReferenceBetween(a, b) {
20
+ for (const [holder, other] of [[a, b], [b, a]]) {
21
+ for (const ref of holder.referenceIdentities()) {
22
+ if (stripPackage(ref.targetEntity) === other.name) {
23
+ return { holder, other, referenceIdentity: ref };
24
+ }
25
+ }
26
+ }
27
+ return undefined;
28
+ }
29
+ //# sourceMappingURL=find-reference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-reference.js","sourceRoot":"","sources":["../../../src/core/relationship/find-reference.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,2EAA2E;AAC3E,0EAA0E;AAC1E,+BAA+B;AAI/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,CAAa,EACb,CAAa;IAEb,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAU,EAAE,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC/C,IAAI,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { MetaData } from "../../shared/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/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQrD,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 "../../shared/meta-data.js";
5
+ import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_JOIN_ENTITY, RELATIONSHIP_ATTR_JOIN_FIELDS, } from "./relationship-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/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,6BAA6B,CAAC;AAErC,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"}