@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,117 @@
1
+ // Data converter — convert a raw parsed value to a *known* DataType.
2
+ //
3
+ // The TypeScript counterpart of Java's DataConverter.toTypeSafe: directional
4
+ // (toward a type already known from the registered schema), never inferential.
5
+ // Replaces the deleted value-coerce.ts. See
6
+ // docs/superpowers/specs/2026-05-17-data-converter-design.md.
7
+ import { DATA_TYPE_BOOLEAN, DATA_TYPE_INT, DATA_TYPE_LONG, DATA_TYPE_DOUBLE, DATA_TYPE_OBJECT, } from "./data-type.js";
8
+ /**
9
+ * Convert a raw parsed value to a valid AttrValue for a *known* DataType.
10
+ * Throws for input that cannot be a valid attr value (null / undefined /
11
+ * nested array). A plain object reaching a scalar branch is stringified by
12
+ * `String()` — callers that must reject objects use `toAttrValue`.
13
+ */
14
+ export function convertToDataType(dataType, raw) {
15
+ rejectNullish(raw, "convertToDataType");
16
+ // An array value → string[] regardless of the scalar DataType — the only
17
+ // array shape AttrValue admits (e.g. a stringArray attr).
18
+ if (Array.isArray(raw))
19
+ return toStringArray(raw);
20
+ switch (dataType) {
21
+ case DATA_TYPE_BOOLEAN:
22
+ return toBoolean(raw);
23
+ case DATA_TYPE_INT:
24
+ case DATA_TYPE_LONG:
25
+ return toInteger(raw);
26
+ case DATA_TYPE_DOUBLE:
27
+ return toDouble(raw);
28
+ case DATA_TYPE_OBJECT:
29
+ // Object-typed attrs (filter / properties) store the object verbatim.
30
+ // A non-object (e.g. a legacy JSON string) is returned as-is so the
31
+ // attr-schema pass can reject it with ERR_BAD_ATTR_VALUE.
32
+ return (typeof raw === "object" && raw !== null)
33
+ ? raw
34
+ : String(raw);
35
+ // string, date (unreachable for attrs) — string form
36
+ default:
37
+ return String(raw);
38
+ }
39
+ }
40
+ /**
41
+ * Make a raw value a valid AttrValue with NO known type — for an undeclared
42
+ * `@`-attr. No type-directed conversion and no inference: scalars are stored
43
+ * as-is (a numeric-looking string stays a string), arrays become string[],
44
+ * objects/null/undefined are rejected.
45
+ */
46
+ export function toAttrValue(raw) {
47
+ rejectNullish(raw, "toAttrValue");
48
+ if (Array.isArray(raw))
49
+ return toStringArray(raw);
50
+ if (typeof raw === "string" || typeof raw === "number" || typeof raw === "boolean") {
51
+ return raw;
52
+ }
53
+ throw new Error(`toAttrValue: ${typeof raw} is not a valid attr value`);
54
+ }
55
+ // --- helpers ---------------------------------------------------------------
56
+ function rejectNullish(raw, fn) {
57
+ if (raw === null)
58
+ throw new Error(`${fn}: null is not a valid attr value`);
59
+ if (raw === undefined)
60
+ throw new Error(`${fn}: undefined is not a valid attr value`);
61
+ }
62
+ function toBoolean(raw) {
63
+ if (typeof raw === "boolean")
64
+ return raw;
65
+ if (raw === "true")
66
+ return true;
67
+ if (raw === "false")
68
+ return false;
69
+ // Not boolean-shaped — best-effort: leave it for attr-schema validation.
70
+ return raw;
71
+ }
72
+ function toInteger(raw) {
73
+ if (typeof raw === "number") {
74
+ if (Number.isInteger(raw) && !Number.isSafeInteger(raw))
75
+ return String(raw);
76
+ return raw;
77
+ }
78
+ if (typeof raw === "string") {
79
+ // Strict integer string (e.g. "42", "-7").
80
+ if (/^-?\d+$/.test(raw)) {
81
+ const parsed = Number(raw);
82
+ // Beyond MAX_SAFE_INTEGER → keep verbatim to preserve precision.
83
+ return Number.isSafeInteger(parsed) ? parsed : raw;
84
+ }
85
+ // Float-format strings that represent a whole number (e.g. "3.0", "12.0").
86
+ // Metadata files sometimes store int attr values in float notation; convert
87
+ // to the integer value to preserve byte-identical behavior with the old
88
+ // coerceAttrValue, which parsed these via the double pattern.
89
+ const parsed = Number(raw);
90
+ if (Number.isFinite(parsed) && Number.isInteger(parsed) && Number.isSafeInteger(parsed)) {
91
+ return parsed;
92
+ }
93
+ }
94
+ return raw;
95
+ }
96
+ function toDouble(raw) {
97
+ if (typeof raw === "number")
98
+ return raw;
99
+ if (typeof raw === "string") {
100
+ const parsed = Number(raw);
101
+ if (raw.trim() !== "" && Number.isFinite(parsed))
102
+ return parsed;
103
+ }
104
+ return raw;
105
+ }
106
+ function toStringArray(arr) {
107
+ return arr.map((el, i) => {
108
+ if (Array.isArray(el)) {
109
+ throw new Error(`array element at index ${i} is a nested array — not supported`);
110
+ }
111
+ if (el === null || el === undefined) {
112
+ throw new Error(`array element at index ${i} is null/undefined`);
113
+ }
114
+ return String(el);
115
+ });
116
+ }
117
+ //# sourceMappingURL=data-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-converter.js","sourceRoot":"","sources":["../src/data-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare const DATA_TYPE_BOOLEAN = "boolean";
2
+ export declare const DATA_TYPE_INT = "int";
3
+ export declare const DATA_TYPE_LONG = "long";
4
+ export declare const DATA_TYPE_DOUBLE = "double";
5
+ export declare const DATA_TYPE_STRING = "string";
6
+ export declare const DATA_TYPE_DATE = "date";
7
+ export declare const DATA_TYPE_OBJECT = "object";
8
+ /** The closed set of coarse value types. */
9
+ export declare const DATA_TYPES: readonly ["boolean", "int", "long", "double", "string", "date", "object"];
10
+ export type DataType = (typeof DATA_TYPES)[number];
11
+ /** Implemented by nodes that carry a typed value — MetaField and MetaAttr. */
12
+ export interface DataTypeAware {
13
+ readonly dataType: DataType;
14
+ }
15
+ //# sourceMappingURL=data-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-type.d.ts","sourceRoot":"","sources":["../src/data-type.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,4CAA4C;AAC5C,eAAO,MAAM,UAAU,2EAQb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B"}
@@ -0,0 +1,25 @@
1
+ // DataType — a coarse, cross-cutting value-type classification.
2
+ //
3
+ // Java-`DataTypes` parity: a small closed set that both fields and attributes
4
+ // classify into (a `MetaField`/`MetaAttr` subtype maps to exactly one DataType).
5
+ // Registry-driven — a (type, subType)'s DataType is declared on its
6
+ // TypeDefinition, never in a central switch here. This module stays small and
7
+ // stable: just the union, its constants, and the DataTypeAware interface.
8
+ export const DATA_TYPE_BOOLEAN = "boolean";
9
+ export const DATA_TYPE_INT = "int";
10
+ export const DATA_TYPE_LONG = "long";
11
+ export const DATA_TYPE_DOUBLE = "double";
12
+ export const DATA_TYPE_STRING = "string";
13
+ export const DATA_TYPE_DATE = "date";
14
+ export const DATA_TYPE_OBJECT = "object";
15
+ /** The closed set of coarse value types. */
16
+ export const DATA_TYPES = [
17
+ DATA_TYPE_BOOLEAN,
18
+ DATA_TYPE_INT,
19
+ DATA_TYPE_LONG,
20
+ DATA_TYPE_DOUBLE,
21
+ DATA_TYPE_STRING,
22
+ DATA_TYPE_DATE,
23
+ DATA_TYPE_OBJECT,
24
+ ];
25
+ //# sourceMappingURL=data-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-type.js","sourceRoot":"","sources":["../src/data-type.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,8EAA8E;AAC9E,iFAAiF;AACjF,oEAAoE;AACpE,8EAA8E;AAC9E,0EAA0E;AAE1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,iBAAiB;IACjB,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,gBAAgB;CACR,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AttrSchema } from "../registry.js";
2
+ /** `@dbColumn` — column-name override; on every field subtype. */
3
+ export declare const dbColumnSchema: AttrSchema;
4
+ /** `@db.indexed` — suppress the @filterable-without-index warning; on every field subtype. */
5
+ export declare const dbIndexedSchema: AttrSchema;
6
+ /** `@name` — the SQL table/view identifier; on source.dbTable and source.dbView. */
7
+ export declare const sourceNameSchema: AttrSchema;
8
+ //# sourceMappingURL=db-attr-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-attr-schemas.d.ts","sourceRoot":"","sources":["../../src/db/db-attr-schemas.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AASjD,kEAAkE;AAClE,eAAO,MAAM,cAAc,EAAE,UAM5B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,UAM7B,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAC"}
@@ -0,0 +1,26 @@
1
+ // DB-domain attribute schemas. Relocated from core-attr-schemas.ts — these
2
+ // attributes are registered by dbProvider (db-provider.ts), not the core
3
+ // metamodel. See docs/superpowers/specs/2026-05-18-phase4b-db-provider-design.md.
4
+ import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, FIELD_ATTR_DB_COLUMN, FIELD_ATTR_DB_INDEXED, SOURCE_ATTR_NAME, } from "../constants.js";
5
+ /** `@dbColumn` — column-name override; on every field subtype. */
6
+ export const dbColumnSchema = {
7
+ name: FIELD_ATTR_DB_COLUMN,
8
+ valueType: ATTR_SUBTYPE_STRING,
9
+ required: false,
10
+ description: "Override the generated SQL column name for this field. Defaults to the field name run through the project's columnNamingStrategy.",
11
+ };
12
+ /** `@db.indexed` — suppress the @filterable-without-index warning; on every field subtype. */
13
+ export const dbIndexedSchema = {
14
+ name: FIELD_ATTR_DB_INDEXED,
15
+ valueType: ATTR_SUBTYPE_BOOLEAN,
16
+ required: false,
17
+ description: "When true, suppress the @filterable-without-index Loader warning (the field is indexed by other means).",
18
+ };
19
+ /** `@name` — the SQL table/view identifier; on source.dbTable and source.dbView. */
20
+ export const sourceNameSchema = {
21
+ name: SOURCE_ATTR_NAME,
22
+ valueType: ATTR_SUBTYPE_STRING,
23
+ required: false,
24
+ description: "The SQL table or view name for this source. Defaults to the object name run through the columnNamingStrategy when omitted.",
25
+ };
26
+ //# sourceMappingURL=db-attr-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-attr-schemas.js","sourceRoot":"","sources":["../../src/db/db-attr-schemas.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,kFAAkF;AAGlF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,mIAAmI;CACtI,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,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,4HAA4H;CAC/H,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MetaDataTypeProvider } from "../provider.js";
2
+ export declare const dbProvider: MetaDataTypeProvider;
3
+ //# sourceMappingURL=db-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-provider.d.ts","sourceRoot":"","sources":["../../src/db/db-provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAW3D,eAAO,MAAM,UAAU,EAAE,oBAoBxB,CAAC"}
@@ -0,0 +1,28 @@
1
+ // dbProvider — the DB-domain MetaDataTypeProvider. Registers the DB-domain
2
+ // attributes (@dbColumn, @db.indexed on fields; @name on source.dbTable /
3
+ // source.dbView) by extending the core-registered types. Mirrors Java's
4
+ // CoreDBMetaDataProvider (com.metaobjects.database).
5
+ // See docs/superpowers/specs/2026-05-18-phase4b-db-provider-design.md.
6
+ import { TYPE_FIELD, TYPE_SOURCE, FIELD_SUBTYPES, SOURCE_SUBTYPE_DB_TABLE, SOURCE_SUBTYPE_DB_VIEW, } from "../constants.js";
7
+ import { dbColumnSchema, dbIndexedSchema, sourceNameSchema } from "./db-attr-schemas.js";
8
+ export const dbProvider = {
9
+ id: "metaobjects-db",
10
+ dependencies: ["metaobjects-core-types"],
11
+ description: "DB-domain attributes — @dbColumn / @db.indexed on fields, @name on source.dbTable / source.dbView.",
12
+ registerTypes(registry) {
13
+ for (const subType of FIELD_SUBTYPES) {
14
+ registry.extend(TYPE_FIELD, subType, {
15
+ attributes: [dbColumnSchema, dbIndexedSchema],
16
+ });
17
+ }
18
+ // Two explicit calls (not a loop) — dbTable and dbView are the only DB
19
+ // source subtypes, and there is no DB_SOURCE_SUBTYPES constant to loop.
20
+ registry.extend(TYPE_SOURCE, SOURCE_SUBTYPE_DB_TABLE, {
21
+ attributes: [sourceNameSchema],
22
+ });
23
+ registry.extend(TYPE_SOURCE, SOURCE_SUBTYPE_DB_VIEW, {
24
+ attributes: [sourceNameSchema],
25
+ });
26
+ },
27
+ };
28
+ //# sourceMappingURL=db-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-provider.js","sourceRoot":"","sources":["../../src/db/db-provider.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,qDAAqD;AACrD,uEAAuE;AAIvE,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,WAAW,EACT,oGAAoG;IACtG,aAAa,CAAC,QAAsB;QAClC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;gBACnC,UAAU,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,EAAE;YACpD,UAAU,EAAE,CAAC,gBAAgB,CAAC;SAC/B,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,EAAE;YACnD,UAAU,EAAE,CAAC,gBAAgB,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** Stable, language-neutral error codes — mirrors fixtures/conformance/ERROR-CODES.json. */
2
+ export declare const ERROR_CODES: readonly ["ERR_TOP_LEVEL_NOT_OBJECT", "ERR_UNKNOWN_TYPE", "ERR_UNKNOWN_SUBTYPE", "ERR_MISSING_SUBTYPE", "ERR_DUPLICATE_NAME", "ERR_UNRESOLVED_SUPER", "ERR_INVALID_SUBTYPE_CHILD", "ERR_UNKNOWN_ATTR", "ERR_BAD_ATTR_VALUE", "ERR_BAD_DEFAULT_SORT_FIELD", "ERR_PROVIDER_DEPENDENCY_CYCLE", "ERR_PROVIDER_DUPLICATE_ID", "ERR_PROVIDER_MISSING_DEPENDENCY", "ERR_PROVIDER_ATTR_CONFLICT", "ERR_MALFORMED_JSON", "ERR_MISSING_REQUIRED_ATTR", "ERR_SUBTYPE_RULE_VIOLATION", "ERR_OVERLAY_NO_TARGET", "ERR_MALFORMED_YAML", "ERR_INVALID_ORIGIN", "ERR_BAD_ATTR_FILTER", "ERR_UNKNOWN"];
3
+ export type ErrorCode = (typeof ERROR_CODES)[number];
4
+ export declare class ParseError extends Error {
5
+ readonly source: string | undefined;
6
+ readonly path: string | undefined;
7
+ readonly code: ErrorCode | undefined;
8
+ constructor(message: string, opts?: {
9
+ source?: string;
10
+ path?: string;
11
+ code?: ErrorCode;
12
+ });
13
+ }
14
+ /**
15
+ * Error class for metamodel-level errors that are not parse errors — e.g.
16
+ * provider composition failures (dependency cycles, missing dependencies,
17
+ * attribute conflicts). Carries the same stable `.code` field as ParseError
18
+ * for cross-language conformance.
19
+ */
20
+ export declare class MetaModelError extends Error {
21
+ readonly code: ErrorCode | undefined;
22
+ constructor(message: string, opts?: {
23
+ code?: ErrorCode;
24
+ });
25
+ }
26
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAO5F,eAAO,MAAM,WAAW,ujBAuBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;gBAGnC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE;CAQ9D;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;gBAEzB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE;CAKzD"}
package/dist/errors.js ADDED
@@ -0,0 +1,59 @@
1
+ // Typed error classes for the metadata parser.
2
+ /** Stable, language-neutral error codes — mirrors fixtures/conformance/ERROR-CODES.json. */
3
+ // NOTE: The following codes are forward-declared (no emitting site in the current
4
+ // TS parser/loader — the condition is not yet detected):
5
+ // - ERR_DUPLICATE_NAME: parser silently reuses existing same-name nodes (find-or-create).
6
+ // - ERR_MISSING_SUBTYPE: missing subType is resolved to the registry default, never an error.
7
+ // - ERR_INVALID_SUBTYPE_CHILD: no child-rule validation pass exists yet.
8
+ // Cross-language conformance consumers should not expect these codes from the TS adapter.
9
+ export const ERROR_CODES = [
10
+ "ERR_TOP_LEVEL_NOT_OBJECT",
11
+ "ERR_UNKNOWN_TYPE",
12
+ "ERR_UNKNOWN_SUBTYPE",
13
+ "ERR_MISSING_SUBTYPE",
14
+ "ERR_DUPLICATE_NAME",
15
+ "ERR_UNRESOLVED_SUPER",
16
+ "ERR_INVALID_SUBTYPE_CHILD",
17
+ "ERR_UNKNOWN_ATTR",
18
+ "ERR_BAD_ATTR_VALUE",
19
+ "ERR_BAD_DEFAULT_SORT_FIELD",
20
+ "ERR_PROVIDER_DEPENDENCY_CYCLE",
21
+ "ERR_PROVIDER_DUPLICATE_ID",
22
+ "ERR_PROVIDER_MISSING_DEPENDENCY",
23
+ "ERR_PROVIDER_ATTR_CONFLICT",
24
+ "ERR_MALFORMED_JSON",
25
+ "ERR_MISSING_REQUIRED_ATTR",
26
+ "ERR_SUBTYPE_RULE_VIOLATION",
27
+ "ERR_OVERLAY_NO_TARGET",
28
+ "ERR_MALFORMED_YAML",
29
+ "ERR_INVALID_ORIGIN",
30
+ "ERR_BAD_ATTR_FILTER",
31
+ "ERR_UNKNOWN",
32
+ ];
33
+ export class ParseError extends Error {
34
+ source;
35
+ path; // logical path within the JSON, e.g. "metadata.children[2].field"
36
+ code;
37
+ constructor(message, opts) {
38
+ super(message);
39
+ this.name = "ParseError";
40
+ this.source = opts?.source;
41
+ this.path = opts?.path;
42
+ this.code = opts?.code;
43
+ }
44
+ }
45
+ /**
46
+ * Error class for metamodel-level errors that are not parse errors — e.g.
47
+ * provider composition failures (dependency cycles, missing dependencies,
48
+ * attribute conflicts). Carries the same stable `.code` field as ParseError
49
+ * for cross-language conformance.
50
+ */
51
+ export class MetaModelError extends Error {
52
+ code;
53
+ constructor(message, opts) {
54
+ super(message);
55
+ this.name = "MetaModelError";
56
+ this.code = opts?.code;
57
+ }
58
+ }
59
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,4FAA4F;AAC5F,kFAAkF;AAClF,yDAAyD;AACzD,4FAA4F;AAC5F,gGAAgG;AAChG,2EAA2E;AAC3E,0FAA0F;AAC1F,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,kBAAkB;IAClB,oBAAoB;IACpB,4BAA4B;IAC5B,+BAA+B;IAC/B,2BAA2B;IAC3B,iCAAiC;IACjC,4BAA4B;IAC5B,oBAAoB;IACpB,2BAA2B;IAC3B,4BAA4B;IAC5B,uBAAuB;IACvB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,aAAa;CACL,CAAC;AAIX,MAAM,OAAO,UAAW,SAAQ,KAAK;IAC1B,MAAM,CAAqB;IAC3B,IAAI,CAAqB,CAAC,kEAAkE;IAC5F,IAAI,CAAwB;IAErC,YACE,OAAe,EACf,IAA2D;QAE3D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;IACzB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAwB;IAErC,YAAY,OAAe,EAAE,IAA2B;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,70 @@
1
+ import type { MetaRoot } from "./shared/meta-root.js";
2
+ import type { MetaObject } from "./core/object/meta-object.js";
3
+ import type { MetaField } from "./core/field/meta-field.js";
4
+ import type { MetaIdentity } from "./core/identity/meta-identity.js";
5
+ import type { MetaRelationship } from "./core/relationship/meta-relationship.js";
6
+ import type { MetaValidator } from "./core/validator/meta-validator.js";
7
+ import type { MetaView } from "./presentation/view/meta-view.js";
8
+ import type { MetaAttr } from "./core/attr/meta-attr.js";
9
+ import type { MetaLayout } from "./presentation/layout/meta-layout.js";
10
+ import type { MetaSource } from "./persistence/source/meta-source.js";
11
+ import type { MetaOrigin } from "./persistence/origin/meta-origin.js";
12
+ export * from "./shared/base-types.js";
13
+ export * from "./shared/structural.js";
14
+ export * from "./core/object/object-constants.js";
15
+ export * from "./core/field/field-constants.js";
16
+ export * from "./core/attr/attr-constants.js";
17
+ export * from "./core/validator/validator-constants.js";
18
+ export * from "./core/identity/identity-constants.js";
19
+ export * from "./core/relationship/relationship-constants.js";
20
+ export * from "./core/query/query-constants.js";
21
+ export * from "./persistence/source/source-constants.js";
22
+ export * from "./persistence/origin/origin-constants.js";
23
+ export * from "./persistence/db/db-constants.js";
24
+ export * from "./presentation/view/view-constants.js";
25
+ export * from "./presentation/layout/layout-constants.js";
26
+ export { MetaData } from "./shared/meta-data.js";
27
+ export type { AttrValue } from "./shared/meta-data.js";
28
+ export { MetaRoot } from "./shared/meta-root.js";
29
+ export { MetaObject } from "./core/object/meta-object.js";
30
+ export { MetaField } from "./core/field/meta-field.js";
31
+ export { MetaAttr } from "./core/attr/meta-attr.js";
32
+ export { MetaIdentity, MetaPrimaryIdentity, MetaSecondaryIdentity, MetaReferenceIdentity, } from "./core/identity/meta-identity.js";
33
+ export type { IdentityGeneration } from "./core/identity/meta-identity.js";
34
+ export { MetaRelationship } from "./core/relationship/meta-relationship.js";
35
+ export { findReferenceBetween } from "./core/relationship/find-reference.js";
36
+ export type { ReferenceLookup } from "./core/relationship/find-reference.js";
37
+ export { MetaValidator, MetaRequiredValidator, MetaLengthValidator, MetaRegexValidator, MetaNumericValidator, MetaArrayValidator, } from "./core/validator/meta-validator.js";
38
+ export { MetaSource } from "./persistence/source/meta-source.js";
39
+ export { MetaOrigin, MetaPassthroughOrigin, MetaAggregateOrigin, } from "./persistence/origin/meta-origin.js";
40
+ export { MetaView } from "./presentation/view/meta-view.js";
41
+ export { MetaLayout } from "./presentation/layout/meta-layout.js";
42
+ export type AnyMeta = MetaRoot | MetaObject | MetaField | MetaIdentity | MetaRelationship | MetaValidator | MetaView | MetaAttr | MetaLayout | MetaSource | MetaOrigin;
43
+ export { TypeId, TypeRegistry, childRuleMatches } from "./registry.js";
44
+ export type { AttrSchema, ChildRule, TypeDefinition } from "./registry.js";
45
+ export { registerCoreTypes, coreTypesProvider, coreProviders } from "./core-types.js";
46
+ export { dbProvider } from "./persistence/db/db-provider.js";
47
+ export { composeRegistry } from "./provider.js";
48
+ export type { MetaDataTypeProvider } from "./provider.js";
49
+ export { DATA_TYPES, DATA_TYPE_BOOLEAN, DATA_TYPE_INT, DATA_TYPE_LONG, DATA_TYPE_DOUBLE, DATA_TYPE_STRING, DATA_TYPE_DATE, DATA_TYPE_OBJECT, } from "./data-type.js";
50
+ export type { DataType, DataTypeAware } from "./data-type.js";
51
+ export { objectToJson, jsonToObject } from "./object-serializer.js";
52
+ export type { ObjectSerializeOptions } from "./object-serializer.js";
53
+ export { convertToDataType, toAttrValue } from "./data-converter.js";
54
+ export { buildTree } from "./parser-core.js";
55
+ export type { ParseOptions, ParseResult } from "./parser-core.js";
56
+ export { parseJson } from "./parser-json.js";
57
+ export { serializeJson, canonicalSerialize, inferAttrSubType } from "./serializer-json.js";
58
+ export type { SerializeOptions } from "./serializer-json.js";
59
+ export { resolveSuperRef } from "./super-resolve.js";
60
+ export { MetaDataLoader } from "./loader/meta-data-loader.js";
61
+ export type { LoadOptions, LoadResult, LoadingState } from "./loader/meta-data-loader.js";
62
+ export { InMemorySource } from "./loader/meta-data-source.js";
63
+ export type { MetaDataSource, MetaDataFormat } from "./loader/meta-data-source.js";
64
+ export { ParseError, MetaModelError, ERROR_CODES } from "./errors.js";
65
+ export type { ErrorCode } from "./errors.js";
66
+ export { validateAttrSchema } from "./attr-schema-validate.js";
67
+ export type { AttrSchemaValidationResult } from "./attr-schema-validate.js";
68
+ export { toSnakeCase, pluralize, resolveTableName, resolveColumnName, resolveTableSchema, buildNameMap, stripPackage, } from "./naming.js";
69
+ export type { EntityNameMap } from "./naming.js";
70
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,76 @@
1
+ // Public API surface for @metaobjectsdev/metadata v0.2.0
2
+ //
3
+ // Architecture: one typed tree of concrete node classes organized under
4
+ // src/{core,persistence,presentation}/<concern>/, plus open type registry
5
+ // + JSON parser/serializer + Loader orchestration. Java-pattern aligned.
6
+ //
7
+ // See docs/strategy/2026-05-09-northstar-v4.md and
8
+ // docs/specs/2026-05-09-v0.2-ts-pillar.md for context.
9
+ // Constants — type names, subtype names, reserved keys, separators
10
+ export * from "./shared/base-types.js";
11
+ export * from "./shared/structural.js";
12
+ export * from "./core/object/object-constants.js";
13
+ export * from "./core/field/field-constants.js";
14
+ export * from "./core/attr/attr-constants.js";
15
+ export * from "./core/validator/validator-constants.js";
16
+ export * from "./core/identity/identity-constants.js";
17
+ export * from "./core/relationship/relationship-constants.js";
18
+ export * from "./core/query/query-constants.js";
19
+ export * from "./persistence/source/source-constants.js";
20
+ export * from "./persistence/origin/origin-constants.js";
21
+ export * from "./persistence/db/db-constants.js";
22
+ export * from "./presentation/view/view-constants.js";
23
+ export * from "./presentation/layout/layout-constants.js";
24
+ // MetaData node base — abstract class; also exports AttrValue
25
+ export { MetaData } from "./shared/meta-data.js";
26
+ // Shared node classes
27
+ export { MetaRoot } from "./shared/meta-root.js";
28
+ // Core node classes
29
+ export { MetaObject } from "./core/object/meta-object.js";
30
+ export { MetaField } from "./core/field/meta-field.js";
31
+ export { MetaAttr } from "./core/attr/meta-attr.js";
32
+ // Identity: base + subtype-specific
33
+ export { MetaIdentity, MetaPrimaryIdentity, MetaSecondaryIdentity, MetaReferenceIdentity, } from "./core/identity/meta-identity.js";
34
+ // Relationship
35
+ export { MetaRelationship } from "./core/relationship/meta-relationship.js";
36
+ // Cross-entity reference lookup
37
+ export { findReferenceBetween } from "./core/relationship/find-reference.js";
38
+ // Validator: base + subtype-specific
39
+ export { MetaValidator, MetaRequiredValidator, MetaLengthValidator, MetaRegexValidator, MetaNumericValidator, MetaArrayValidator, } from "./core/validator/meta-validator.js";
40
+ // Persistence node classes
41
+ export { MetaSource } from "./persistence/source/meta-source.js";
42
+ // Origin: base + subtype-specific
43
+ export { MetaOrigin, MetaPassthroughOrigin, MetaAggregateOrigin, } from "./persistence/origin/meta-origin.js";
44
+ // Presentation node classes
45
+ export { MetaView } from "./presentation/view/meta-view.js";
46
+ export { MetaLayout } from "./presentation/layout/meta-layout.js";
47
+ // Registry
48
+ export { TypeId, TypeRegistry, childRuleMatches } from "./registry.js";
49
+ export { registerCoreTypes, coreTypesProvider, coreProviders } from "./core-types.js";
50
+ export { dbProvider } from "./persistence/db/db-provider.js";
51
+ // Type provider model
52
+ export { composeRegistry } from "./provider.js";
53
+ // DataType classification
54
+ export { DATA_TYPES, DATA_TYPE_BOOLEAN, DATA_TYPE_INT, DATA_TYPE_LONG, DATA_TYPE_DOUBLE, DATA_TYPE_STRING, DATA_TYPE_DATE, DATA_TYPE_OBJECT, } from "./data-type.js";
55
+ // Metadata-driven object serializer
56
+ export { objectToJson, jsonToObject } from "./object-serializer.js";
57
+ // Data converter — convert a value to a known DataType (no inference)
58
+ export { convertToDataType, toAttrValue } from "./data-converter.js";
59
+ // Parser — shared core builder + per-format front-ends
60
+ export { buildTree } from "./parser-core.js";
61
+ export { parseJson } from "./parser-json.js";
62
+ // Serializer
63
+ export { serializeJson, canonicalSerialize, inferAttrSubType } from "./serializer-json.js";
64
+ // Super resolution helper (most resolution moved into parser; this is the lookup utility)
65
+ export { resolveSuperRef } from "./super-resolve.js";
66
+ // Loader hierarchy
67
+ export { MetaDataLoader } from "./loader/meta-data-loader.js";
68
+ export { InMemorySource } from "./loader/meta-data-source.js";
69
+ // Errors
70
+ export { ParseError, MetaModelError, ERROR_CODES } from "./errors.js";
71
+ // Attribute-schema validation pass (Phase A3)
72
+ export { validateAttrSchema } from "./attr-schema-validate.js";
73
+ // Naming — hoisted from runtime-ts in v0.2.3 so multiple consumers (runtime-ts, migrate-ts, codegen-ts)
74
+ // share identical name resolution. See spec §4.1.
75
+ export { toSnakeCase, pluralize, resolveTableName, resolveColumnName, resolveTableSchema, buildNameMap, stripPackage, } from "./naming.js";
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { MetaData } from "../shared/meta-data.js";
2
+ import { MetaRoot } from "../shared/meta-root.js";
3
+ import { TypeRegistry } from "../registry.js";
4
+ import type { MetaDataSource } from "./meta-data-source.js";
5
+ import type { ParseOptions, ParseResult } from "../parser-core.js";
6
+ /** Loader lifecycle state. Mirrors Java's MetaDataLoader phase enum. */
7
+ export type LoadingState = "uninitialized" | "loading" | "loaded" | "error";
8
+ export interface LoadOptions {
9
+ /** TypeRegistry to use; defaults to a fresh registry pre-populated via composeRegistry(coreProviders). */
10
+ registry?: TypeRegistry;
11
+ /** Freeze the loaded tree after parsing. Default true. */
12
+ freeze?: boolean;
13
+ /** Strict parsing mode — passed through to parser. Default false. */
14
+ strict?: boolean;
15
+ }
16
+ export interface LoadResult {
17
+ root: MetaRoot;
18
+ warnings: string[];
19
+ errors: Error[];
20
+ }
21
+ export declare class MetaDataLoader {
22
+ private readonly _registry;
23
+ private readonly _freeze;
24
+ private readonly _strict;
25
+ private _state;
26
+ private _root;
27
+ constructor(opts?: LoadOptions);
28
+ private static _defaultRegistry;
29
+ /** Current loading state. */
30
+ get state(): LoadingState;
31
+ /**
32
+ * The TypeRegistry this MetaDataLoader uses to look up type definitions.
33
+ * Either the one passed in via constructor, or the default registry
34
+ * pre-populated with core types via composeRegistry(coreProviders).
35
+ *
36
+ * Exposed for downstream consumers (codegen, runtime libraries) that
37
+ * need to introspect registered types.
38
+ */
39
+ get registry(): TypeRegistry;
40
+ /**
41
+ * Returns the loaded root MetaRoot.
42
+ * Accessible once load() has completed, in either "loaded" or "error" state.
43
+ * Throws only before or during loading (state "uninitialized" or "loading").
44
+ */
45
+ get root(): MetaRoot;
46
+ /**
47
+ * Guards read accessors — throws only when loading has not yet completed
48
+ * (state "uninitialized" or "loading"). Both "loaded" and "error" states
49
+ * are valid for reads: load() always sets _root before returning.
50
+ */
51
+ private _checkStateForRead;
52
+ /**
53
+ * Returns the first child of the root with the given name, or undefined.
54
+ * Throws if not yet loaded.
55
+ */
56
+ findByName(name: string): MetaData | undefined;
57
+ /**
58
+ * Returns the first child of the root with the given (type, name), or undefined.
59
+ * Throws if not yet loaded.
60
+ */
61
+ findByTypeAndName(type: string, name: string): MetaData | undefined;
62
+ /**
63
+ * Returns all direct children of the root with the given type.
64
+ * Throws if not yet loaded.
65
+ */
66
+ childrenOfType(type: string): MetaData[];
67
+ /**
68
+ * Parse one source's raw content into a ParseResult. The base loader handles
69
+ * JSON only; a non-JSON format throws. Subclasses override this seam to add
70
+ * formats — e.g. FileMetaDataLoader (in @metaobjectsdev/metadata/core) adds YAML.
71
+ * This keeps the browser-safe base loader free of the YAML parser.
72
+ */
73
+ protected parseSource(content: string, source: MetaDataSource, parseOpts: ParseOptions): ParseResult;
74
+ /**
75
+ * Load metadata from one or more MetaDataSource instances. Sources are read
76
+ * in order; each source's content is parsed and merged into the accumulating
77
+ * root using the parser's `intoRoot` mechanism.
78
+ *
79
+ * Source read failures are collected in errors[] — no throw. If all sources
80
+ * fail (read or parse), a synthetic empty root is returned.
81
+ *
82
+ * This is a one-shot pipeline — calling load() again on the same loader
83
+ * after it has completed (state "loaded" or "error") throws.
84
+ */
85
+ load(sources: MetaDataSource[]): Promise<LoadResult>;
86
+ }
87
+ //# sourceMappingURL=meta-data-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-data-loader.d.ts","sourceRoot":"","sources":["../../src/loader/meta-data-loader.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMnE,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAcD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAElC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,KAAK,CAAuB;gBAExB,IAAI,CAAC,EAAE,WAAW;IAM9B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAQ/B,6BAA6B;IAC7B,IAAI,KAAK,IAAI,YAAY,CAExB;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,QAAQ,CAGnB;IAED;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAK9C;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAKnE;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IASxC;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,YAAY,GACtB,WAAW;IAcd;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CAmH3D"}