@astrale-os/kernel-dsl 0.1.5 → 0.2.0-beta.10

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 (701) hide show
  1. package/dist/index.d.ts +1 -57
  2. package/dist/index.js +1 -31
  3. package/dist/upgrade/contract.d.ts +31 -0
  4. package/dist/upgrade/contract.js +1 -0
  5. package/dist/upgrade/index.d.ts +1 -0
  6. package/dist/upgrade/index.js +1 -0
  7. package/dist/v1/addressing/class-key.d.ts +12 -0
  8. package/dist/v1/addressing/class-key.js +39 -0
  9. package/dist/v1/addressing/definition-ref.d.ts +28 -0
  10. package/dist/v1/addressing/definition-ref.js +63 -0
  11. package/dist/v1/addressing/domain-dependency.d.ts +18 -0
  12. package/dist/v1/addressing/domain-dependency.js +6 -0
  13. package/dist/v1/addressing/index.d.ts +12 -0
  14. package/dist/v1/addressing/index.js +7 -0
  15. package/dist/v1/addressing/key.d.ts +19 -0
  16. package/dist/v1/addressing/key.js +39 -0
  17. package/dist/v1/addressing/method-address.d.ts +9 -0
  18. package/dist/v1/addressing/method-address.js +1 -0
  19. package/dist/v1/addressing/method-key.d.ts +15 -0
  20. package/dist/v1/addressing/method-key.js +60 -0
  21. package/dist/v1/addressing/ordering.d.ts +6 -0
  22. package/dist/v1/addressing/ordering.js +20 -0
  23. package/dist/v1/addressing/patterns.d.ts +27 -0
  24. package/dist/v1/addressing/patterns.js +29 -0
  25. package/dist/v1/addressing/property-key.d.ts +13 -0
  26. package/dist/v1/addressing/property-key.js +39 -0
  27. package/dist/v1/addressing/revision.d.ts +8 -0
  28. package/dist/v1/addressing/revision.js +8 -0
  29. package/dist/v1/builder/callable/authoring.d.ts +117 -0
  30. package/dist/v1/builder/callable/authoring.js +67 -0
  31. package/dist/v1/builder/class/authoring.d.ts +367 -0
  32. package/dist/v1/builder/class/authoring.js +134 -0
  33. package/dist/v1/builder/class/property.d.ts +52 -0
  34. package/dist/v1/builder/class/property.js +49 -0
  35. package/dist/v1/builder/core/authoring.d.ts +42 -0
  36. package/dist/v1/builder/core/authoring.js +39 -0
  37. package/dist/v1/builder/index.d.ts +26 -0
  38. package/dist/v1/builder/index.js +11 -0
  39. package/dist/v1/builder/lowering/callable.d.ts +24 -0
  40. package/dist/v1/builder/lowering/callable.js +135 -0
  41. package/dist/v1/builder/lowering/class.d.ts +22 -0
  42. package/dist/v1/builder/lowering/class.js +129 -0
  43. package/dist/v1/builder/lowering/core-properties.d.ts +10 -0
  44. package/dist/v1/builder/lowering/core-properties.js +76 -0
  45. package/dist/v1/builder/lowering/core.d.ts +22 -0
  46. package/dist/v1/builder/lowering/core.js +50 -0
  47. package/dist/v1/builder/lowering/policy.d.ts +16 -0
  48. package/dist/v1/builder/lowering/policy.js +59 -0
  49. package/dist/v1/builder/lowering/schema/capture.d.ts +4 -0
  50. package/dist/v1/builder/lowering/schema/capture.js +70 -0
  51. package/dist/v1/builder/lowering/schema/compile.d.ts +10 -0
  52. package/dist/v1/builder/lowering/schema/compile.js +80 -0
  53. package/dist/v1/builder/lowering/schema/context.d.ts +44 -0
  54. package/dist/v1/builder/lowering/schema/context.js +247 -0
  55. package/dist/v1/builder/lowering/schema/ownership.d.ts +8 -0
  56. package/dist/v1/builder/lowering/schema/ownership.js +29 -0
  57. package/dist/v1/builder/lowering/value/compile.d.ts +15 -0
  58. package/dist/v1/builder/lowering/value/compile.js +136 -0
  59. package/dist/v1/builder/lowering/value/path.d.ts +3 -0
  60. package/dist/v1/builder/lowering/value/path.js +20 -0
  61. package/dist/v1/builder/lowering/value/zod.d.ts +32 -0
  62. package/dist/v1/builder/lowering/value/zod.js +342 -0
  63. package/dist/v1/builder/lowering/view.d.ts +11 -0
  64. package/dist/v1/builder/lowering/view.js +27 -0
  65. package/dist/v1/builder/policy/authoring.d.ts +52 -0
  66. package/dist/v1/builder/policy/authoring.js +90 -0
  67. package/dist/v1/builder/schema/define.d.ts +11 -0
  68. package/dist/v1/builder/schema/define.js +5 -0
  69. package/dist/v1/builder/schema/diagnostic.d.ts +16 -0
  70. package/dist/v1/builder/schema/diagnostic.js +31 -0
  71. package/dist/v1/builder/schema/handle.d.ts +7 -0
  72. package/dist/v1/builder/schema/handle.js +14 -0
  73. package/dist/v1/builder/schema/input.d.ts +15 -0
  74. package/dist/v1/builder/schema/input.js +1 -0
  75. package/dist/v1/builder/schema/lazy.d.ts +2 -0
  76. package/dist/v1/builder/schema/lazy.js +13 -0
  77. package/dist/v1/builder/schema/projection.d.ts +364 -0
  78. package/dist/v1/builder/schema/projection.js +1 -0
  79. package/dist/v1/builder/value/full-match.d.ts +4 -0
  80. package/dist/v1/builder/value/full-match.js +11 -0
  81. package/dist/v1/builder/value/path-metadata.d.ts +4 -0
  82. package/dist/v1/builder/value/path-metadata.js +7 -0
  83. package/dist/v1/builder/value/path.d.ts +8 -0
  84. package/dist/v1/builder/value/path.js +11 -0
  85. package/dist/v1/builder/value/schema.d.ts +16 -0
  86. package/dist/v1/builder/value/schema.js +10 -0
  87. package/dist/v1/builder/view/authoring.d.ts +17 -0
  88. package/dist/v1/builder/view/authoring.js +16 -0
  89. package/dist/v1/bundle/codec.d.ts +5 -0
  90. package/dist/v1/bundle/codec.js +168 -0
  91. package/dist/v1/bundle/create.d.ts +3 -0
  92. package/dist/v1/bundle/create.js +5 -0
  93. package/dist/v1/bundle/diagnostic.d.ts +10 -0
  94. package/dist/v1/bundle/diagnostic.js +17 -0
  95. package/dist/v1/bundle/index.d.ts +18 -0
  96. package/dist/v1/bundle/index.js +20 -0
  97. package/dist/v1/bundle/model.d.ts +16 -0
  98. package/dist/v1/bundle/model.js +11 -0
  99. package/dist/v1/bundle/structure.d.ts +7 -0
  100. package/dist/v1/bundle/structure.js +71 -0
  101. package/dist/v1/bundle/transport.d.ts +8 -0
  102. package/dist/v1/bundle/transport.js +7 -0
  103. package/dist/v1/compiled/admission/accept.d.ts +3 -0
  104. package/dist/v1/compiled/admission/accept.js +881 -0
  105. package/dist/v1/compiled/admission/revision.d.ts +4 -0
  106. package/dist/v1/compiled/admission/revision.js +73 -0
  107. package/dist/v1/compiled/admission/semantics.d.ts +7 -0
  108. package/dist/v1/compiled/admission/semantics.js +1091 -0
  109. package/dist/v1/compiled/codec/json.d.ts +3 -0
  110. package/dist/v1/compiled/codec/json.js +9 -0
  111. package/dist/v1/compiled/compiler/compile.d.ts +4 -0
  112. package/dist/v1/compiled/compiler/compile.js +113 -0
  113. package/dist/v1/compiled/diagnostic.d.ts +11 -0
  114. package/dist/v1/compiled/diagnostic.js +13 -0
  115. package/dist/v1/compiled/index.d.ts +7 -0
  116. package/dist/v1/compiled/index.js +5 -0
  117. package/dist/v1/compiled/loader/index.d.ts +1 -0
  118. package/dist/v1/compiled/loader/index.js +1 -0
  119. package/dist/v1/compiled/loader/load.d.ts +4 -0
  120. package/dist/v1/compiled/loader/load.js +141 -0
  121. package/dist/v1/compiled/model/schema.d.ts +73 -0
  122. package/dist/v1/compiled/model/schema.js +1 -0
  123. package/dist/v1/domain/create.d.ts +8 -0
  124. package/dist/v1/domain/create.js +264 -0
  125. package/dist/v1/domain/index.d.ts +2 -0
  126. package/dist/v1/domain/index.js +1 -0
  127. package/dist/v1/domain/model/domain.d.ts +59 -0
  128. package/dist/v1/domain/model/domain.js +1 -0
  129. package/dist/v1/domain/model/input.d.ts +31 -0
  130. package/dist/v1/domain/model/input.js +1 -0
  131. package/dist/v1/domain/namespace/member-collection.d.ts +5 -0
  132. package/dist/v1/domain/namespace/member-collection.js +81 -0
  133. package/dist/v1/domain/projection/classes.d.ts +4 -0
  134. package/dist/v1/domain/projection/classes.js +200 -0
  135. package/dist/v1/domain/validation/create.d.ts +18 -0
  136. package/dist/v1/domain/validation/create.js +75 -0
  137. package/dist/v1/index.d.ts +16 -0
  138. package/dist/v1/index.js +8 -0
  139. package/dist/v1/language/callable/index.d.ts +2 -0
  140. package/dist/v1/language/callable/index.js +1 -0
  141. package/dist/v1/language/callable/model/callable.d.ts +33 -0
  142. package/dist/v1/language/callable/model/callable.js +1 -0
  143. package/dist/v1/language/callable/resolved.d.ts +68 -0
  144. package/dist/v1/language/callable/resolved.js +1 -0
  145. package/dist/v1/language/class/facets.d.ts +58 -0
  146. package/dist/v1/language/class/facets.js +1 -0
  147. package/dist/v1/language/class/index.d.ts +8 -0
  148. package/dist/v1/language/class/index.js +1 -0
  149. package/dist/v1/language/class/model/class.d.ts +36 -0
  150. package/dist/v1/language/class/model/class.js +1 -0
  151. package/dist/v1/language/class/model/data.d.ts +11 -0
  152. package/dist/v1/language/class/model/data.js +2 -0
  153. package/dist/v1/language/class/model/edge.d.ts +38 -0
  154. package/dist/v1/language/class/model/edge.js +1 -0
  155. package/dist/v1/language/class/model/property.d.ts +18 -0
  156. package/dist/v1/language/class/model/property.js +1 -0
  157. package/dist/v1/language/class/property-values.d.ts +15 -0
  158. package/dist/v1/language/class/property-values.js +30 -0
  159. package/dist/v1/language/class/resolved.d.ts +123 -0
  160. package/dist/v1/language/class/resolved.js +1 -0
  161. package/dist/v1/language/core/index.d.ts +2 -0
  162. package/dist/v1/language/core/index.js +1 -0
  163. package/dist/v1/language/core/model/core.d.ts +20 -0
  164. package/dist/v1/language/core/model/core.js +1 -0
  165. package/dist/v1/language/core/resolved.d.ts +21 -0
  166. package/dist/v1/language/core/resolved.js +1 -0
  167. package/dist/v1/language/definition/metadata.d.ts +12 -0
  168. package/dist/v1/language/definition/metadata.js +12 -0
  169. package/dist/v1/language/definition.d.ts +7 -0
  170. package/dist/v1/language/definition.js +1 -0
  171. package/dist/v1/language/index.d.ts +23 -0
  172. package/dist/v1/language/index.js +1 -0
  173. package/dist/v1/language/policy/analysis/branches.d.ts +19 -0
  174. package/dist/v1/language/policy/analysis/branches.js +132 -0
  175. package/dist/v1/language/policy/analysis/budgets.d.ts +16 -0
  176. package/dist/v1/language/policy/analysis/budgets.js +25 -0
  177. package/dist/v1/language/policy/index.d.ts +3 -0
  178. package/dist/v1/language/policy/index.js +1 -0
  179. package/dist/v1/language/policy/model/policy.d.ts +77 -0
  180. package/dist/v1/language/policy/model/policy.js +1 -0
  181. package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
  182. package/dist/v1/language/policy/normalization/normalize.js +226 -0
  183. package/dist/v1/language/policy/resolved.d.ts +9 -0
  184. package/dist/v1/language/policy/resolved.js +1 -0
  185. package/dist/v1/language/resolved.d.ts +10 -0
  186. package/dist/v1/language/resolved.js +1 -0
  187. package/dist/v1/language/validation/diagnostic.d.ts +8 -0
  188. package/dist/v1/language/validation/diagnostic.js +3 -0
  189. package/dist/v1/language/value/compile/fields.d.ts +3 -0
  190. package/dist/v1/language/value/compile/fields.js +60 -0
  191. package/dist/v1/language/value/compile/load.d.ts +4 -0
  192. package/dist/v1/language/value/compile/load.js +41 -0
  193. package/dist/v1/language/value/compile/model.d.ts +27 -0
  194. package/dist/v1/language/value/compile/model.js +1 -0
  195. package/dist/v1/language/value/evaluate/assertions.d.ts +6 -0
  196. package/dist/v1/language/value/evaluate/assertions.js +58 -0
  197. package/dist/v1/language/value/evaluate/evaluator.d.ts +4 -0
  198. package/dist/v1/language/value/evaluate/evaluator.js +361 -0
  199. package/dist/v1/language/value/evaluate/preparation.d.ts +13 -0
  200. package/dist/v1/language/value/evaluate/preparation.js +135 -0
  201. package/dist/v1/language/value/evaluate/program.d.ts +3 -0
  202. package/dist/v1/language/value/evaluate/program.js +16 -0
  203. package/dist/v1/language/value/evaluate/types.d.ts +36 -0
  204. package/dist/v1/language/value/evaluate/types.js +9 -0
  205. package/dist/v1/language/value/evaluate/validate.d.ts +12 -0
  206. package/dist/v1/language/value/evaluate/validate.js +43 -0
  207. package/dist/v1/language/value/index.d.ts +11 -0
  208. package/dist/v1/language/value/index.js +8 -0
  209. package/dist/v1/language/value/model/instant.d.ts +9 -0
  210. package/dist/v1/language/value/model/instant.js +37 -0
  211. package/dist/v1/language/value/model/object.d.ts +5 -0
  212. package/dist/v1/language/value/model/object.js +3 -0
  213. package/dist/v1/language/value/model/schema.d.ts +25 -0
  214. package/dist/v1/language/value/model/schema.js +11 -0
  215. package/dist/v1/language/value/ordering.d.ts +13 -0
  216. package/dist/v1/language/value/ordering.js +174 -0
  217. package/dist/v1/language/value/profile/canonicalize.d.ts +4 -0
  218. package/dist/v1/language/value/profile/canonicalize.js +130 -0
  219. package/dist/v1/language/value/profile/json.validate.d.ts +2 -0
  220. package/dist/v1/language/value/profile/json.validate.js +14 -0
  221. package/dist/v1/language/value/profile/meta-schema.compiled.d.ts +78 -0
  222. package/dist/v1/language/value/profile/meta-schema.compiled.js +2079 -0
  223. package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
  224. package/dist/v1/language/value/profile/meta-schema.js +19 -0
  225. package/dist/v1/language/value/profile/rules.d.ts +3 -0
  226. package/dist/v1/language/value/profile/rules.js +109 -0
  227. package/dist/v1/language/value/profile/validate.d.ts +4 -0
  228. package/dist/v1/language/value/profile/validate.js +39 -0
  229. package/dist/v1/language/value/profile/vocabulary.d.ts +2 -0
  230. package/dist/v1/language/value/profile/vocabulary.js +68 -0
  231. package/dist/v1/language/value/reference/closure.d.ts +11 -0
  232. package/dist/v1/language/value/reference/closure.js +51 -0
  233. package/dist/v1/language/value/reference/recursion.d.ts +5 -0
  234. package/dist/v1/language/value/reference/recursion.js +95 -0
  235. package/dist/v1/language/value/reference/references.d.ts +17 -0
  236. package/dist/v1/language/value/reference/references.js +45 -0
  237. package/dist/v1/language/value/reference/registry.d.ts +24 -0
  238. package/dist/v1/language/value/reference/registry.index.d.ts +14 -0
  239. package/dist/v1/language/value/reference/registry.index.js +76 -0
  240. package/dist/v1/language/value/reference/registry.js +1 -0
  241. package/dist/v1/language/value/regexp/ast.d.ts +21 -0
  242. package/dist/v1/language/value/regexp/ast.js +326 -0
  243. package/dist/v1/language/value/regexp/compile.d.ts +3 -0
  244. package/dist/v1/language/value/regexp/compile.js +96 -0
  245. package/dist/v1/language/value/regexp/lower.d.ts +3 -0
  246. package/dist/v1/language/value/regexp/lower.js +26 -0
  247. package/dist/v1/language/value/regexp/matcher.d.ts +7 -0
  248. package/dist/v1/language/value/regexp/matcher.js +50 -0
  249. package/dist/v1/language/value/regexp/pattern.d.ts +2 -0
  250. package/dist/v1/language/value/regexp/pattern.js +38 -0
  251. package/dist/v1/language/value/regexp/syntax.d.ts +2 -0
  252. package/dist/v1/language/value/regexp/syntax.js +5 -0
  253. package/dist/v1/language/value/syntax/full-match.d.ts +6 -0
  254. package/dist/v1/language/value/syntax/full-match.js +20 -0
  255. package/dist/v1/language/value/syntax/keywords.d.ts +3 -0
  256. package/dist/v1/language/value/syntax/keywords.js +20 -0
  257. package/dist/v1/language/value/syntax/node-path/schema.d.ts +5 -0
  258. package/dist/v1/language/value/syntax/node-path/schema.js +18 -0
  259. package/dist/v1/language/value/syntax/node-path/validate.d.ts +4 -0
  260. package/dist/v1/language/value/syntax/node-path/validate.js +80 -0
  261. package/dist/v1/language/value/syntax/pointer.d.ts +4 -0
  262. package/dist/v1/language/value/syntax/pointer.js +49 -0
  263. package/dist/v1/language/value/syntax/walk.d.ts +10 -0
  264. package/dist/v1/language/value/syntax/walk.js +53 -0
  265. package/dist/v1/language/view/index.d.ts +2 -0
  266. package/dist/v1/language/view/index.js +1 -0
  267. package/dist/v1/language/view/model/view.d.ts +11 -0
  268. package/dist/v1/language/view/model/view.js +1 -0
  269. package/dist/v1/language/view/resolved.d.ts +9 -0
  270. package/dist/v1/language/view/resolved.js +1 -0
  271. package/dist/v1/schema/admission/accept.d.ts +3 -0
  272. package/dist/v1/schema/admission/accept.js +26 -0
  273. package/dist/v1/schema/analysis/class.d.ts +41 -0
  274. package/dist/v1/schema/analysis/class.js +181 -0
  275. package/dist/v1/schema/canonical/domain.d.ts +3 -0
  276. package/dist/v1/schema/canonical/domain.digest.d.ts +3 -0
  277. package/dist/v1/schema/canonical/domain.digest.js +5 -0
  278. package/dist/v1/schema/canonical/domain.js +5 -0
  279. package/dist/v1/schema/canonical/freeze.d.ts +1 -0
  280. package/dist/v1/schema/canonical/freeze.js +9 -0
  281. package/dist/v1/schema/canonical/revision.d.ts +11 -0
  282. package/dist/v1/schema/canonical/revision.js +17 -0
  283. package/dist/v1/schema/codec/header.d.ts +17 -0
  284. package/dist/v1/schema/codec/header.js +26 -0
  285. package/dist/v1/schema/codec/schema.d.ts +5 -0
  286. package/dist/v1/schema/codec/schema.js +21 -0
  287. package/dist/v1/schema/compatibility/meaning.d.ts +29 -0
  288. package/dist/v1/schema/compatibility/meaning.js +605 -0
  289. package/dist/v1/schema/dependency/lookup.d.ts +18 -0
  290. package/dist/v1/schema/dependency/lookup.js +31 -0
  291. package/dist/v1/schema/diagnostic.d.ts +12 -0
  292. package/dist/v1/schema/diagnostic.js +21 -0
  293. package/dist/v1/schema/index.d.ts +26 -0
  294. package/dist/v1/schema/index.js +13 -0
  295. package/dist/v1/schema/model/format.d.ts +2 -0
  296. package/dist/v1/schema/model/format.js +2 -0
  297. package/dist/v1/schema/model/schema.d.ts +30 -0
  298. package/dist/v1/schema/model/schema.js +4 -0
  299. package/dist/v1/schema/normalization/domain.d.ts +2 -0
  300. package/dist/v1/schema/normalization/domain.js +207 -0
  301. package/dist/v1/schema/resolution/closure.d.ts +9 -0
  302. package/dist/v1/schema/resolution/closure.js +49 -0
  303. package/dist/v1/schema/resolution/context.d.ts +17 -0
  304. package/dist/v1/schema/resolution/context.js +158 -0
  305. package/dist/v1/schema/resolution/definition.index.d.ts +21 -0
  306. package/dist/v1/schema/resolution/definition.index.js +17 -0
  307. package/dist/v1/schema/resolution/domain.d.ts +4 -0
  308. package/dist/v1/schema/resolution/domain.js +112 -0
  309. package/dist/v1/schema/resolution/origins.d.ts +14 -0
  310. package/dist/v1/schema/resolution/origins.js +121 -0
  311. package/dist/v1/schema/resolution/value.registry.d.ts +7 -0
  312. package/dist/v1/schema/resolution/value.registry.js +39 -0
  313. package/dist/v1/schema/revision.d.ts +1 -0
  314. package/dist/v1/schema/revision.js +1 -0
  315. package/dist/v1/schema/validation/class.d.ts +5 -0
  316. package/dist/v1/schema/validation/class.js +208 -0
  317. package/dist/v1/schema/validation/core.d.ts +5 -0
  318. package/dist/v1/schema/validation/core.js +264 -0
  319. package/dist/v1/schema/validation/domain.d.ts +11 -0
  320. package/dist/v1/schema/validation/domain.js +36 -0
  321. package/dist/v1/schema/validation/domain.route.d.ts +4 -0
  322. package/dist/v1/schema/validation/domain.route.js +32 -0
  323. package/dist/v1/schema/validation/domain.structure.d.ts +4 -0
  324. package/dist/v1/schema/validation/domain.structure.js +427 -0
  325. package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
  326. package/dist/v1/schema/validation/policy/budgets.js +102 -0
  327. package/dist/v1/schema/validation/policy/context.d.ts +28 -0
  328. package/dist/v1/schema/validation/policy/context.js +89 -0
  329. package/dist/v1/schema/validation/policy/references.d.ts +2 -0
  330. package/dist/v1/schema/validation/policy/references.js +143 -0
  331. package/dist/v1/schema/validation/policy/typing.d.ts +19 -0
  332. package/dist/v1/schema/validation/policy/typing.js +318 -0
  333. package/dist/v1/schema/validation/policy/uses.d.ts +5 -0
  334. package/dist/v1/schema/validation/policy/uses.js +258 -0
  335. package/dist/v1/schema/validation/policy/validate.d.ts +11 -0
  336. package/dist/v1/schema/validation/policy/validate.js +23 -0
  337. package/dist/v1/schema/validation/value-api.d.ts +13 -0
  338. package/dist/v1/schema/validation/value-api.js +23 -0
  339. package/dist/v1/schema/validation/value.d.ts +4 -0
  340. package/dist/v1/schema/validation/value.js +39 -0
  341. package/dist/v1/schema/validation/view.d.ts +3 -0
  342. package/dist/v1/schema/validation/view.js +29 -0
  343. package/dist/v1/value/full-match.d.ts +2 -0
  344. package/dist/v1/value/full-match.js +2 -0
  345. package/dist/v1.d.ts +2 -0
  346. package/dist/v1.js +2 -0
  347. package/dist/value/accept.d.ts +8 -0
  348. package/dist/value/accept.js +132 -0
  349. package/dist/value/canonical.d.ts +4 -0
  350. package/dist/value/canonical.js +41 -0
  351. package/dist/value/decode.d.ts +4 -0
  352. package/dist/value/decode.js +108 -0
  353. package/dist/value/equal.d.ts +3 -0
  354. package/dist/value/equal.js +5 -0
  355. package/dist/value/error.d.ts +12 -0
  356. package/dist/value/error.js +21 -0
  357. package/dist/value/index.d.ts +9 -0
  358. package/dist/value/index.js +6 -0
  359. package/dist/value/json.d.ts +3 -0
  360. package/dist/value/json.js +3 -0
  361. package/dist/value/limits.d.ts +21 -0
  362. package/dist/value/limits.js +15 -0
  363. package/dist/value/types.d.ts +6 -0
  364. package/dist/value/types.js +1 -0
  365. package/dist/value/unicode.d.ts +4 -0
  366. package/dist/value/unicode.js +64 -0
  367. package/dist/version/dispatch.d.ts +24 -0
  368. package/dist/version/dispatch.js +47 -0
  369. package/dist/version/index.d.ts +2 -0
  370. package/dist/version/index.js +1 -0
  371. package/package.json +75 -15
  372. package/dist/builders/bitmask.d.ts +0 -5
  373. package/dist/builders/bitmask.d.ts.map +0 -1
  374. package/dist/builders/bitmask.js +0 -12
  375. package/dist/builders/bitmask.js.map +0 -1
  376. package/dist/builders/data.d.ts +0 -7
  377. package/dist/builders/data.d.ts.map +0 -1
  378. package/dist/builders/data.js +0 -18
  379. package/dist/builders/data.js.map +0 -1
  380. package/dist/builders/definition/base.d.ts +0 -13
  381. package/dist/builders/definition/base.d.ts.map +0 -1
  382. package/dist/builders/definition/base.js +0 -24
  383. package/dist/builders/definition/base.js.map +0 -1
  384. package/dist/builders/definition/edge-class.d.ts +0 -8
  385. package/dist/builders/definition/edge-class.d.ts.map +0 -1
  386. package/dist/builders/definition/edge-class.js +0 -9
  387. package/dist/builders/definition/edge-class.js.map +0 -1
  388. package/dist/builders/definition/edge-interface.d.ts +0 -8
  389. package/dist/builders/definition/edge-interface.d.ts.map +0 -1
  390. package/dist/builders/definition/edge-interface.js +0 -9
  391. package/dist/builders/definition/edge-interface.js.map +0 -1
  392. package/dist/builders/definition/node-class.d.ts +0 -7
  393. package/dist/builders/definition/node-class.d.ts.map +0 -1
  394. package/dist/builders/definition/node-class.js +0 -9
  395. package/dist/builders/definition/node-class.js.map +0 -1
  396. package/dist/builders/definition/node-interface.d.ts +0 -7
  397. package/dist/builders/definition/node-interface.d.ts.map +0 -1
  398. package/dist/builders/definition/node-interface.js +0 -9
  399. package/dist/builders/definition/node-interface.js.map +0 -1
  400. package/dist/builders/function.d.ts +0 -34
  401. package/dist/builders/function.d.ts.map +0 -1
  402. package/dist/builders/function.js +0 -8
  403. package/dist/builders/function.js.map +0 -1
  404. package/dist/builders/policy.d.ts +0 -10
  405. package/dist/builders/policy.d.ts.map +0 -1
  406. package/dist/builders/policy.js +0 -28
  407. package/dist/builders/policy.js.map +0 -1
  408. package/dist/builders/prop.d.ts +0 -7
  409. package/dist/builders/prop.d.ts.map +0 -1
  410. package/dist/builders/prop.js +0 -9
  411. package/dist/builders/prop.js.map +0 -1
  412. package/dist/builders/ref.d.ts +0 -12
  413. package/dist/builders/ref.d.ts.map +0 -1
  414. package/dist/builders/ref.js +0 -27
  415. package/dist/builders/ref.js.map +0 -1
  416. package/dist/grammar/definition/base.d.ts +0 -13
  417. package/dist/grammar/definition/base.d.ts.map +0 -1
  418. package/dist/grammar/definition/base.js +0 -2
  419. package/dist/grammar/definition/base.js.map +0 -1
  420. package/dist/grammar/definition/discriminants.d.ts +0 -31
  421. package/dist/grammar/definition/discriminants.d.ts.map +0 -1
  422. package/dist/grammar/definition/discriminants.js +0 -33
  423. package/dist/grammar/definition/discriminants.js.map +0 -1
  424. package/dist/grammar/definition/edge-class.d.ts +0 -19
  425. package/dist/grammar/definition/edge-class.d.ts.map +0 -1
  426. package/dist/grammar/definition/edge-class.js +0 -2
  427. package/dist/grammar/definition/edge-class.js.map +0 -1
  428. package/dist/grammar/definition/edge-interface.d.ts +0 -18
  429. package/dist/grammar/definition/edge-interface.d.ts.map +0 -1
  430. package/dist/grammar/definition/edge-interface.js +0 -2
  431. package/dist/grammar/definition/edge-interface.js.map +0 -1
  432. package/dist/grammar/definition/node-class.d.ts +0 -26
  433. package/dist/grammar/definition/node-class.d.ts.map +0 -1
  434. package/dist/grammar/definition/node-class.js +0 -2
  435. package/dist/grammar/definition/node-class.js.map +0 -1
  436. package/dist/grammar/definition/node-interface.d.ts +0 -14
  437. package/dist/grammar/definition/node-interface.d.ts.map +0 -1
  438. package/dist/grammar/definition/node-interface.js +0 -2
  439. package/dist/grammar/definition/node-interface.js.map +0 -1
  440. package/dist/grammar/facets/constraints.d.ts +0 -8
  441. package/dist/grammar/facets/constraints.d.ts.map +0 -1
  442. package/dist/grammar/facets/constraints.js +0 -2
  443. package/dist/grammar/facets/constraints.js.map +0 -1
  444. package/dist/grammar/facets/content.d.ts +0 -4
  445. package/dist/grammar/facets/content.d.ts.map +0 -1
  446. package/dist/grammar/facets/content.js +0 -2
  447. package/dist/grammar/facets/content.js.map +0 -1
  448. package/dist/grammar/facets/endpoints.d.ts +0 -14
  449. package/dist/grammar/facets/endpoints.d.ts.map +0 -1
  450. package/dist/grammar/facets/endpoints.js +0 -3
  451. package/dist/grammar/facets/endpoints.js.map +0 -1
  452. package/dist/grammar/facets/indexes.d.ts +0 -12
  453. package/dist/grammar/facets/indexes.d.ts.map +0 -1
  454. package/dist/grammar/facets/indexes.js +0 -9
  455. package/dist/grammar/facets/indexes.js.map +0 -1
  456. package/dist/grammar/facets/properties.d.ts +0 -26
  457. package/dist/grammar/facets/properties.d.ts.map +0 -1
  458. package/dist/grammar/facets/properties.js +0 -45
  459. package/dist/grammar/facets/properties.js.map +0 -1
  460. package/dist/grammar/function/config.d.ts +0 -16
  461. package/dist/grammar/function/config.d.ts.map +0 -1
  462. package/dist/grammar/function/config.js +0 -2
  463. package/dist/grammar/function/config.js.map +0 -1
  464. package/dist/grammar/function/def.d.ts +0 -58
  465. package/dist/grammar/function/def.d.ts.map +0 -1
  466. package/dist/grammar/function/def.js +0 -2
  467. package/dist/grammar/function/def.js.map +0 -1
  468. package/dist/grammar/function/inheritance.d.ts +0 -3
  469. package/dist/grammar/function/inheritance.d.ts.map +0 -1
  470. package/dist/grammar/function/inheritance.js +0 -2
  471. package/dist/grammar/function/inheritance.js.map +0 -1
  472. package/dist/grammar/function/output.d.ts +0 -3
  473. package/dist/grammar/function/output.d.ts.map +0 -1
  474. package/dist/grammar/function/output.js +0 -2
  475. package/dist/grammar/function/output.js.map +0 -1
  476. package/dist/grammar/policy/callable.d.ts +0 -40
  477. package/dist/grammar/policy/callable.d.ts.map +0 -1
  478. package/dist/grammar/policy/callable.js +0 -2
  479. package/dist/grammar/policy/callable.js.map +0 -1
  480. package/dist/grammar/policy/def.d.ts +0 -27
  481. package/dist/grammar/policy/def.d.ts.map +0 -1
  482. package/dist/grammar/policy/def.js +0 -2
  483. package/dist/grammar/policy/def.js.map +0 -1
  484. package/dist/grammar/policy/pattern.d.ts +0 -34
  485. package/dist/grammar/policy/pattern.d.ts.map +0 -1
  486. package/dist/grammar/policy/pattern.js +0 -2
  487. package/dist/grammar/policy/pattern.js.map +0 -1
  488. package/dist/grammar/values/bitmask.d.ts +0 -7
  489. package/dist/grammar/values/bitmask.d.ts.map +0 -1
  490. package/dist/grammar/values/bitmask.js +0 -2
  491. package/dist/grammar/values/bitmask.js.map +0 -1
  492. package/dist/grammar/values/data.d.ts +0 -30
  493. package/dist/grammar/values/data.d.ts.map +0 -1
  494. package/dist/grammar/values/data.js +0 -2
  495. package/dist/grammar/values/data.js.map +0 -1
  496. package/dist/grammar/values/ref.d.ts +0 -26
  497. package/dist/grammar/values/ref.d.ts.map +0 -1
  498. package/dist/grammar/values/ref.js +0 -2
  499. package/dist/grammar/values/ref.js.map +0 -1
  500. package/dist/grammar/values/self.d.ts +0 -12
  501. package/dist/grammar/values/self.d.ts.map +0 -1
  502. package/dist/grammar/values/self.js +0 -6
  503. package/dist/grammar/values/self.js.map +0 -1
  504. package/dist/index.d.ts.map +0 -1
  505. package/dist/index.js.map +0 -1
  506. package/dist/inference/content.d.ts +0 -27
  507. package/dist/inference/content.d.ts.map +0 -1
  508. package/dist/inference/content.js +0 -2
  509. package/dist/inference/content.js.map +0 -1
  510. package/dist/inference/index.d.ts +0 -7
  511. package/dist/inference/index.d.ts.map +0 -1
  512. package/dist/inference/index.js +0 -2
  513. package/dist/inference/index.js.map +0 -1
  514. package/dist/inference/inheritance.d.ts +0 -48
  515. package/dist/inference/inheritance.d.ts.map +0 -1
  516. package/dist/inference/inheritance.js +0 -2
  517. package/dist/inference/inheritance.js.map +0 -1
  518. package/dist/inference/input.d.ts +0 -30
  519. package/dist/inference/input.d.ts.map +0 -1
  520. package/dist/inference/input.js +0 -2
  521. package/dist/inference/input.js.map +0 -1
  522. package/dist/inference/methods.d.ts +0 -69
  523. package/dist/inference/methods.d.ts.map +0 -1
  524. package/dist/inference/methods.js +0 -2
  525. package/dist/inference/methods.js.map +0 -1
  526. package/dist/inference/properties.d.ts +0 -37
  527. package/dist/inference/properties.d.ts.map +0 -1
  528. package/dist/inference/properties.js +0 -2
  529. package/dist/inference/properties.js.map +0 -1
  530. package/dist/inference/schema.d.ts +0 -37
  531. package/dist/inference/schema.d.ts.map +0 -1
  532. package/dist/inference/schema.js +0 -2
  533. package/dist/inference/schema.js.map +0 -1
  534. package/dist/instance/core/define.d.ts +0 -13
  535. package/dist/instance/core/define.d.ts.map +0 -1
  536. package/dist/instance/core/define.js +0 -63
  537. package/dist/instance/core/define.js.map +0 -1
  538. package/dist/instance/core/edge.d.ts +0 -9
  539. package/dist/instance/core/edge.d.ts.map +0 -1
  540. package/dist/instance/core/edge.js +0 -11
  541. package/dist/instance/core/edge.js.map +0 -1
  542. package/dist/instance/core/endpoint.d.ts +0 -11
  543. package/dist/instance/core/endpoint.d.ts.map +0 -1
  544. package/dist/instance/core/endpoint.js +0 -19
  545. package/dist/instance/core/endpoint.js.map +0 -1
  546. package/dist/instance/core/node.d.ts +0 -7
  547. package/dist/instance/core/node.d.ts.map +0 -1
  548. package/dist/instance/core/node.js +0 -9
  549. package/dist/instance/core/node.js.map +0 -1
  550. package/dist/instance/core/path.d.ts +0 -21
  551. package/dist/instance/core/path.d.ts.map +0 -1
  552. package/dist/instance/core/path.js +0 -21
  553. package/dist/instance/core/path.js.map +0 -1
  554. package/dist/instance/core/self.d.ts +0 -15
  555. package/dist/instance/core/self.d.ts.map +0 -1
  556. package/dist/instance/core/self.js +0 -8
  557. package/dist/instance/core/self.js.map +0 -1
  558. package/dist/instance/core/types.d.ts +0 -45
  559. package/dist/instance/core/types.d.ts.map +0 -1
  560. package/dist/instance/core/types.js +0 -2
  561. package/dist/instance/core/types.js.map +0 -1
  562. package/dist/instance/seed/define.d.ts +0 -12
  563. package/dist/instance/seed/define.d.ts.map +0 -1
  564. package/dist/instance/seed/define.js +0 -34
  565. package/dist/instance/seed/define.js.map +0 -1
  566. package/dist/instance/seed/types.d.ts +0 -12
  567. package/dist/instance/seed/types.d.ts.map +0 -1
  568. package/dist/instance/seed/types.js +0 -2
  569. package/dist/instance/seed/types.js.map +0 -1
  570. package/dist/ir/classes.d.ts +0 -78
  571. package/dist/ir/classes.d.ts.map +0 -1
  572. package/dist/ir/classes.js +0 -2
  573. package/dist/ir/classes.js.map +0 -1
  574. package/dist/ir/domain.d.ts +0 -13
  575. package/dist/ir/domain.d.ts.map +0 -1
  576. package/dist/ir/domain.js +0 -2
  577. package/dist/ir/domain.js.map +0 -1
  578. package/dist/ir/endpoints.d.ts +0 -27
  579. package/dist/ir/endpoints.d.ts.map +0 -1
  580. package/dist/ir/endpoints.js +0 -2
  581. package/dist/ir/endpoints.js.map +0 -1
  582. package/dist/ir/functions.d.ts +0 -34
  583. package/dist/ir/functions.d.ts.map +0 -1
  584. package/dist/ir/functions.js +0 -2
  585. package/dist/ir/functions.js.map +0 -1
  586. package/dist/ir/index.d.ts +0 -9
  587. package/dist/ir/index.d.ts.map +0 -1
  588. package/dist/ir/index.js +0 -2
  589. package/dist/ir/index.js.map +0 -1
  590. package/dist/ir/ir.d.ts +0 -75
  591. package/dist/ir/ir.d.ts.map +0 -1
  592. package/dist/ir/ir.js +0 -5
  593. package/dist/ir/ir.js.map +0 -1
  594. package/dist/ir/json-schema.d.ts +0 -20
  595. package/dist/ir/json-schema.d.ts.map +0 -1
  596. package/dist/ir/json-schema.js +0 -2
  597. package/dist/ir/json-schema.js.map +0 -1
  598. package/dist/ir/policies.d.ts +0 -74
  599. package/dist/ir/policies.d.ts.map +0 -1
  600. package/dist/ir/policies.js +0 -2
  601. package/dist/ir/policies.js.map +0 -1
  602. package/dist/schema/classify.d.ts +0 -8
  603. package/dist/schema/classify.d.ts.map +0 -1
  604. package/dist/schema/classify.js +0 -20
  605. package/dist/schema/classify.js.map +0 -1
  606. package/dist/schema/define.d.ts +0 -23
  607. package/dist/schema/define.d.ts.map +0 -1
  608. package/dist/schema/define.js +0 -58
  609. package/dist/schema/define.js.map +0 -1
  610. package/dist/schema/error.d.ts +0 -8
  611. package/dist/schema/error.d.ts.map +0 -1
  612. package/dist/schema/error.js +0 -14
  613. package/dist/schema/error.js.map +0 -1
  614. package/dist/schema/refs.d.ts +0 -77
  615. package/dist/schema/refs.d.ts.map +0 -1
  616. package/dist/schema/refs.js +0 -100
  617. package/dist/schema/refs.js.map +0 -1
  618. package/dist/schema/resolve/index.d.ts +0 -5
  619. package/dist/schema/resolve/index.d.ts.map +0 -1
  620. package/dist/schema/resolve/index.js +0 -5
  621. package/dist/schema/resolve/index.js.map +0 -1
  622. package/dist/schema/resolve/methods.d.ts +0 -8
  623. package/dist/schema/resolve/methods.d.ts.map +0 -1
  624. package/dist/schema/resolve/methods.js +0 -18
  625. package/dist/schema/resolve/methods.js.map +0 -1
  626. package/dist/schema/resolve/properties.d.ts +0 -13
  627. package/dist/schema/resolve/properties.d.ts.map +0 -1
  628. package/dist/schema/resolve/properties.js +0 -37
  629. package/dist/schema/resolve/properties.js.map +0 -1
  630. package/dist/schema/resolve/self.d.ts +0 -7
  631. package/dist/schema/resolve/self.d.ts.map +0 -1
  632. package/dist/schema/resolve/self.js +0 -33
  633. package/dist/schema/resolve/self.js.map +0 -1
  634. package/dist/schema/resolve/thunks.d.ts +0 -12
  635. package/dist/schema/resolve/thunks.d.ts.map +0 -1
  636. package/dist/schema/resolve/thunks.js +0 -37
  637. package/dist/schema/resolve/thunks.js.map +0 -1
  638. package/dist/schema/schema.d.ts +0 -25
  639. package/dist/schema/schema.d.ts.map +0 -1
  640. package/dist/schema/schema.js +0 -2
  641. package/dist/schema/schema.js.map +0 -1
  642. package/dist/schema/validators/context.d.ts +0 -17
  643. package/dist/schema/validators/context.d.ts.map +0 -1
  644. package/dist/schema/validators/context.js +0 -2
  645. package/dist/schema/validators/context.js.map +0 -1
  646. package/dist/schema/validators/endpoints.d.ts +0 -4
  647. package/dist/schema/validators/endpoints.d.ts.map +0 -1
  648. package/dist/schema/validators/endpoints.js +0 -27
  649. package/dist/schema/validators/endpoints.js.map +0 -1
  650. package/dist/schema/validators/index.d.ts +0 -12
  651. package/dist/schema/validators/index.d.ts.map +0 -1
  652. package/dist/schema/validators/index.js +0 -25
  653. package/dist/schema/validators/index.js.map +0 -1
  654. package/dist/schema/validators/indexes.d.ts +0 -4
  655. package/dist/schema/validators/indexes.d.ts.map +0 -1
  656. package/dist/schema/validators/indexes.js +0 -19
  657. package/dist/schema/validators/indexes.js.map +0 -1
  658. package/dist/schema/validators/inheritance.d.ts +0 -4
  659. package/dist/schema/validators/inheritance.d.ts.map +0 -1
  660. package/dist/schema/validators/inheritance.js +0 -27
  661. package/dist/schema/validators/inheritance.js.map +0 -1
  662. package/dist/schema/validators/methods.d.ts +0 -9
  663. package/dist/schema/validators/methods.d.ts.map +0 -1
  664. package/dist/schema/validators/methods.js +0 -44
  665. package/dist/schema/validators/methods.js.map +0 -1
  666. package/dist/schema/validators/names.d.ts +0 -4
  667. package/dist/schema/validators/names.d.ts.map +0 -1
  668. package/dist/schema/validators/names.js +0 -19
  669. package/dist/schema/validators/names.js.map +0 -1
  670. package/dist/schema/validators/policies.d.ts +0 -4
  671. package/dist/schema/validators/policies.d.ts.map +0 -1
  672. package/dist/schema/validators/policies.js +0 -61
  673. package/dist/schema/validators/policies.js.map +0 -1
  674. package/dist/schema/validators/ref-targets.d.ts +0 -4
  675. package/dist/schema/validators/ref-targets.d.ts.map +0 -1
  676. package/dist/schema/validators/ref-targets.js +0 -54
  677. package/dist/schema/validators/ref-targets.js.map +0 -1
  678. package/dist/serializer/context.d.ts +0 -35
  679. package/dist/serializer/context.d.ts.map +0 -1
  680. package/dist/serializer/context.js +0 -359
  681. package/dist/serializer/context.js.map +0 -1
  682. package/dist/serializer/helpers.d.ts +0 -34
  683. package/dist/serializer/helpers.d.ts.map +0 -1
  684. package/dist/serializer/helpers.js +0 -116
  685. package/dist/serializer/helpers.js.map +0 -1
  686. package/dist/serializer/index.d.ts +0 -2
  687. package/dist/serializer/index.d.ts.map +0 -1
  688. package/dist/serializer/index.js +0 -2
  689. package/dist/serializer/index.js.map +0 -1
  690. package/dist/serializer/policies.d.ts +0 -34
  691. package/dist/serializer/policies.d.ts.map +0 -1
  692. package/dist/serializer/policies.js +0 -837
  693. package/dist/serializer/policies.js.map +0 -1
  694. package/dist/serializer/policy-typing.d.ts +0 -56
  695. package/dist/serializer/policy-typing.d.ts.map +0 -1
  696. package/dist/serializer/policy-typing.js +0 -490
  697. package/dist/serializer/policy-typing.js.map +0 -1
  698. package/dist/serializer/serialize.d.ts +0 -12
  699. package/dist/serializer/serialize.d.ts.map +0 -1
  700. package/dist/serializer/serialize.js +0 -6
  701. package/dist/serializer/serialize.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ import { Key } from '../../../../addressing/index.js';
2
+ import { DOMAIN_ORIGIN_PATTERN, MEMBER_NAME_PATTERN } from '../../../../addressing/patterns.js';
3
+ import { diagnostic } from '../../../validation/diagnostic.js';
4
+ import { isValueObject as isJsonObject } from '../../model/object.js';
5
+ import { parseJsonPointerFragment } from '../pointer.js';
6
+ import { walkSchema } from '../walk.js';
7
+ import { GRAPH_NODE_PATH_SCHEMA_ID } from './schema.js';
8
+ export function validateNodePathExtension(schema, context, pointer, definitionExists) {
9
+ const diagnostics = [];
10
+ walkSchema(schema, (location) => {
11
+ if (!isJsonObject(location.schema) || !Object.hasOwn(location.schema, 'x-astrale-path')) {
12
+ return;
13
+ }
14
+ const extensionPointer = `${pointer}${location.pointer}/x-astrale-path`;
15
+ const tokens = parseJsonPointerFragment(`#${location.pointer}`);
16
+ const fieldName = tokens?.length === 2 && tokens[0] === 'properties' ? tokens[1] : undefined;
17
+ const root = isJsonObject(schema) ? schema : undefined;
18
+ const directRequiredField = context === 'callable-input' &&
19
+ root?.type === 'object' &&
20
+ location.depth === 1 &&
21
+ location.parentKeyword === 'properties' &&
22
+ fieldName !== undefined &&
23
+ Array.isArray(root?.required) &&
24
+ root.required.includes(fieldName);
25
+ if (!directRequiredField) {
26
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', extensionPointer, 'x-astrale-path is allowed only on a direct required property schema at a callable-input object root.'));
27
+ }
28
+ const schemaKeys = Object.keys(location.schema);
29
+ if (schemaKeys.length !== 2 ||
30
+ !Object.hasOwn(location.schema, '$ref') ||
31
+ location.schema.$ref !== GRAPH_NODE_PATH_SCHEMA_ID) {
32
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', `${pointer}${location.pointer}`, `A Path field schema contains exactly $ref ${GRAPH_NODE_PATH_SCHEMA_ID} and x-astrale-path.`, GRAPH_NODE_PATH_SCHEMA_ID));
33
+ }
34
+ const annotation = location.schema['x-astrale-path'];
35
+ if (!isJsonObject(annotation)) {
36
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', extensionPointer, 'x-astrale-path must be a closed annotation object.'));
37
+ return;
38
+ }
39
+ if (!hasExactKeys(annotation, ['target', 'cardinality', 'accepts'])) {
40
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', extensionPointer, 'x-astrale-path contains exactly target, cardinality, and accepts.'));
41
+ }
42
+ if (annotation.target !== 'node' || annotation.cardinality !== 'one') {
43
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', extensionPointer, 'A V1 Path field resolves exactly one Node.'));
44
+ }
45
+ if (!Array.isArray(annotation.accepts) || annotation.accepts.length === 0) {
46
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', `${extensionPointer}/accepts`, 'x-astrale-path.accepts must be a non-empty Node Class ref set.'));
47
+ return;
48
+ }
49
+ const seen = new Set();
50
+ annotation.accepts.forEach((candidate, candidateIndex) => {
51
+ const candidatePointer = `${extensionPointer}/accepts/${candidateIndex}`;
52
+ if (!isNodeDefinitionRef(candidate)) {
53
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', candidatePointer, 'Path acceptance entries are exact Node Class refs.'));
54
+ return;
55
+ }
56
+ const key = Key.of(candidate);
57
+ if (seen.has(key)) {
58
+ diagnostics.push(diagnostic('VS_PATH_EXTENSION', candidatePointer, 'x-astrale-path.accepts rejects duplicate Class refs.'));
59
+ }
60
+ seen.add(key);
61
+ if (!definitionExists(candidate)) {
62
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', candidatePointer, 'Path acceptance Class is absent from the current/direct exact registry.'));
63
+ }
64
+ });
65
+ });
66
+ return diagnostics;
67
+ }
68
+ function isNodeDefinitionRef(value) {
69
+ return (isJsonObject(value) &&
70
+ hasExactKeys(value, ['origin', 'kind', 'name']) &&
71
+ typeof value.origin === 'string' &&
72
+ DOMAIN_ORIGIN_PATTERN.test(value.origin) &&
73
+ value.kind === 'class' &&
74
+ typeof value.name === 'string' &&
75
+ MEMBER_NAME_PATTERN.test(value.name));
76
+ }
77
+ function hasExactKeys(value, expected) {
78
+ const actual = Object.keys(value);
79
+ return actual.length === expected.length && expected.every((key) => Object.hasOwn(value, key));
80
+ }
@@ -0,0 +1,4 @@
1
+ export declare function appendPointer(pointer: string, token: string | number): string;
2
+ export declare function parseJsonPointerFragment(fragment: string): readonly string[] | undefined;
3
+ export declare function tokensToPointer(tokens: readonly string[]): string;
4
+ export declare function resolvePointer(root: unknown, tokens: readonly string[]): unknown;
@@ -0,0 +1,49 @@
1
+ export function appendPointer(pointer, token) {
2
+ const encoded = String(token).replaceAll('~', '~0').replaceAll('/', '~1');
3
+ return `${pointer}/${encoded}`;
4
+ }
5
+ export function parseJsonPointerFragment(fragment) {
6
+ if (!fragment.startsWith('#'))
7
+ return undefined;
8
+ let decoded;
9
+ try {
10
+ decoded = decodeURIComponent(fragment.slice(1));
11
+ }
12
+ catch {
13
+ return undefined;
14
+ }
15
+ if (decoded === '')
16
+ return [];
17
+ if (!decoded.startsWith('/'))
18
+ return undefined;
19
+ const tokens = [];
20
+ for (const encoded of decoded.slice(1).split('/')) {
21
+ if (/~(?:[^01]|$)/u.test(encoded))
22
+ return undefined;
23
+ tokens.push(encoded.replaceAll('~1', '/').replaceAll('~0', '~'));
24
+ }
25
+ return tokens;
26
+ }
27
+ export function tokensToPointer(tokens) {
28
+ return tokens.reduce((pointer, token) => appendPointer(pointer, token), '');
29
+ }
30
+ export function resolvePointer(root, tokens) {
31
+ let value = root;
32
+ for (const token of tokens) {
33
+ if (Array.isArray(value)) {
34
+ if (!/^(?:0|[1-9][0-9]*)$/u.test(token))
35
+ return undefined;
36
+ const index = Number(token);
37
+ if (!Number.isSafeInteger(index) || index >= value.length || !(index in value)) {
38
+ return undefined;
39
+ }
40
+ value = value[index];
41
+ continue;
42
+ }
43
+ if (!isJsonObject(value) || !Object.hasOwn(value, token))
44
+ return undefined;
45
+ value = value[token];
46
+ }
47
+ return value;
48
+ }
49
+ import { isValueObject as isJsonObject } from '../model/object.js';
@@ -0,0 +1,10 @@
1
+ import type { JsonSchema } from '../model/schema.js';
2
+ export interface SchemaLocation {
3
+ readonly schema: JsonSchema;
4
+ readonly pointer: string;
5
+ readonly depth: number;
6
+ readonly parentKeyword?: string;
7
+ }
8
+ export declare function walkSchema(schema: JsonSchema, visit: (location: SchemaLocation) => void, pointer?: string): void;
9
+ export declare function collectSchemaPointers(schema: JsonSchema): ReadonlySet<string>;
10
+ export declare function isJsonSchema(value: unknown): value is JsonSchema;
@@ -0,0 +1,53 @@
1
+ import { isValueObject as isJsonObject } from '../model/object.js';
2
+ import { SCHEMA_ARRAY_KEYWORDS, SCHEMA_MAP_KEYWORDS, SCHEMA_SINGLE_KEYWORDS } from './keywords.js';
3
+ import { appendPointer } from './pointer.js';
4
+ export function walkSchema(schema, visit, pointer = '') {
5
+ const active = new Set();
6
+ function walk(current, currentPointer, depth, parentKeyword) {
7
+ if (typeof current === 'object' && current !== null) {
8
+ if (active.has(current))
9
+ return;
10
+ active.add(current);
11
+ }
12
+ try {
13
+ visit({ schema: current, pointer: currentPointer, depth, parentKeyword });
14
+ if (!isJsonObject(current))
15
+ return;
16
+ for (const [keyword, value] of Object.entries(current)) {
17
+ const keywordPointer = appendPointer(currentPointer, keyword);
18
+ if (SCHEMA_SINGLE_KEYWORDS.has(keyword) && isJsonSchema(value)) {
19
+ walk(value, keywordPointer, depth + 1, keyword);
20
+ continue;
21
+ }
22
+ if (SCHEMA_ARRAY_KEYWORDS.has(keyword) && Array.isArray(value)) {
23
+ value.forEach((entry, index) => {
24
+ if (isJsonSchema(entry)) {
25
+ walk(entry, appendPointer(keywordPointer, index), depth + 1, keyword);
26
+ }
27
+ });
28
+ continue;
29
+ }
30
+ if (SCHEMA_MAP_KEYWORDS.has(keyword) && isJsonObject(value)) {
31
+ for (const [name, entry] of Object.entries(value)) {
32
+ if (isJsonSchema(entry)) {
33
+ walk(entry, appendPointer(keywordPointer, name), depth + 1, keyword);
34
+ }
35
+ }
36
+ }
37
+ }
38
+ }
39
+ finally {
40
+ if (typeof current === 'object' && current !== null)
41
+ active.delete(current);
42
+ }
43
+ }
44
+ walk(schema, pointer, 0);
45
+ }
46
+ export function collectSchemaPointers(schema) {
47
+ const pointers = new Set();
48
+ walkSchema(schema, ({ pointer }) => pointers.add(pointer));
49
+ return pointers;
50
+ }
51
+ export function isJsonSchema(value) {
52
+ return typeof value === 'boolean' || isJsonObject(value);
53
+ }
@@ -0,0 +1,2 @@
1
+ export type * from './model/view.js';
2
+ export type * from './resolved.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { ClassRef, DefinitionBase, ViewRef } from '../../../addressing/index.js';
2
+ export type ViewTarget = {
3
+ readonly kind: 'domain';
4
+ } | {
5
+ readonly kind: 'definition';
6
+ readonly definitions: readonly [ClassRef, ...ClassRef[]];
7
+ };
8
+ export interface ViewDefinition extends DefinitionBase<ViewRef> {
9
+ readonly description?: string;
10
+ readonly target: ViewTarget;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { DefinitionKey, ViewRef } from '../../addressing/index.js';
2
+ import type { ViewDefinition, ViewTarget } from './model/view.js';
3
+ export interface ResolvedView {
4
+ readonly ref: ViewRef;
5
+ readonly key: DefinitionKey<string, 'view'>;
6
+ readonly target: ViewTarget;
7
+ readonly description?: ViewDefinition['description'];
8
+ readonly definition: ViewDefinition;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { DomainSchemaLookup } from '../dependency/lookup.js';
2
+ import type { DomainSchema } from '../model/schema.js';
3
+ export declare function acceptDomainSchema(input: unknown, lookup?: DomainSchemaLookup): DomainSchema;
@@ -0,0 +1,26 @@
1
+ import { accept as acceptJsonValue, BoundaryError as JsonBoundaryError, } from '@astrale-os/kernel-dsl/value';
2
+ import { canonicalDomainSchemaAfterValidation } from '../canonical/revision.js';
3
+ import { emptyDomainSchemaLookup } from '../dependency/lookup.js';
4
+ import { SchemaError, diagnostic } from '../diagnostic.js';
5
+ import { rememberDomainClosure } from '../resolution/closure.js';
6
+ import { validateDomainSchemaSemantics } from '../validation/domain.js';
7
+ import { routeDomainSchema } from '../validation/domain.route.js';
8
+ export function acceptDomainSchema(input, lookup = emptyDomainSchemaLookup()) {
9
+ let admitted;
10
+ try {
11
+ admitted = acceptJsonValue(input);
12
+ }
13
+ catch (error) {
14
+ if (error instanceof JsonBoundaryError) {
15
+ throw new SchemaError([diagnostic('DV_JSON_VALUE', error.pointer, error.message)]);
16
+ }
17
+ throw error;
18
+ }
19
+ const structured = routeDomainSchema(admitted);
20
+ const validation = validateDomainSchemaSemantics(structured, lookup);
21
+ if (validation.diagnostics.length > 0)
22
+ throw new SchemaError(validation.diagnostics);
23
+ const accepted = canonicalDomainSchemaAfterValidation(structured).schema;
24
+ rememberDomainClosure(accepted, validation.context.dependencies.values());
25
+ return accepted;
26
+ }
@@ -0,0 +1,41 @@
1
+ import type { ClassRef } from '../../addressing/index.js';
2
+ import type { MethodDefinition } from '../../language/callable/model/callable.js';
3
+ import type { ClassDefinition } from '../../language/class/model/class.js';
4
+ import type { DataDefinition } from '../../language/class/model/data.js';
5
+ import type { PropertyAuto } from '../../language/class/model/property.js';
6
+ import type { JsonSchema } from '../../language/value/model/schema.js';
7
+ import type { SchemaDiagnostic } from '../diagnostic.js';
8
+ import type { DomainResolutionContext } from '../resolution/context.js';
9
+ import { PropertyKey } from '../../addressing/index.js';
10
+ export interface EffectiveField {
11
+ readonly identity: PropertyKey;
12
+ readonly owner: ClassRef;
13
+ readonly name: string;
14
+ readonly schema: JsonSchema;
15
+ readonly required: boolean;
16
+ readonly visibility: 'public' | 'private';
17
+ readonly auto?: PropertyAuto;
18
+ }
19
+ export interface EffectiveMethod {
20
+ readonly identity: string;
21
+ readonly owner: ClassRef;
22
+ readonly name: string;
23
+ readonly declaration: MethodDefinition;
24
+ }
25
+ export interface EffectiveData {
26
+ readonly identity: string;
27
+ readonly owner: ClassRef;
28
+ readonly declaration: DataDefinition;
29
+ }
30
+ export interface DefinitionAnalysis {
31
+ readonly ref: ClassRef;
32
+ readonly declaration: ClassDefinition;
33
+ readonly properties: ReadonlyMap<PropertyKey, EffectiveField>;
34
+ readonly data?: EffectiveData;
35
+ readonly methods: ReadonlyMap<string, EffectiveMethod>;
36
+ }
37
+ export interface DefinitionAnalysisResult {
38
+ readonly definitions: ReadonlyMap<string, DefinitionAnalysis>;
39
+ readonly diagnostics: readonly SchemaDiagnostic[];
40
+ }
41
+ export declare function analyzeDefinitions(environment: DomainResolutionContext): DefinitionAnalysisResult;
@@ -0,0 +1,181 @@
1
+ import { json } from '@astrale-os/kernel-dsl/value';
2
+ import { Key, PropertyKey } from '../../addressing/index.js';
3
+ import { definitionRefIndex } from '../../addressing/ordering.js';
4
+ import { normalizePolicyChecks } from '../../language/policy/normalization/normalize.js';
5
+ import { canonicalizeValueSchema } from '../../language/value/profile/canonicalize.js';
6
+ import { diagnostic } from '../diagnostic.js';
7
+ const formatDefinitionRef = Key.of;
8
+ export function analyzeDefinitions(environment) {
9
+ const diagnostics = [];
10
+ const result = new Map();
11
+ const visiting = new Set();
12
+ const analyze = (ref) => {
13
+ const key = definitionRefIndex(ref);
14
+ const cached = result.get(key);
15
+ if (cached !== undefined)
16
+ return cached;
17
+ if (visiting.has(key)) {
18
+ diagnostics.push(diagnostic('DV_CLASS_ACYCLIC', '', `Inheritance cycle reaches ${formatDefinitionRef(ref)}.`, formatDefinitionRef(ref)));
19
+ return undefined;
20
+ }
21
+ const resolved = environment.resolveAny(ref);
22
+ if (resolved === undefined)
23
+ return undefined;
24
+ visiting.add(key);
25
+ const declaration = resolved.declaration;
26
+ const parents = declaration.extends;
27
+ const parentAnalyses = parents.flatMap((parent) => {
28
+ const target = environment.resolveAny(parent);
29
+ if (target === undefined) {
30
+ diagnostics.push(diagnostic('DV_REF_RESOLVES', '', `Inheritance ref ${formatDefinitionRef(parent)} does not resolve.`, formatDefinitionRef(parent)));
31
+ return [];
32
+ }
33
+ const analysis = target.ref.kind === 'class' ? analyze(target.ref) : undefined;
34
+ return analysis === undefined ? [] : [analysis];
35
+ });
36
+ const properties = mergeFields(parentAnalyses.map((parent) => parent.properties), ownFields(ref, declaration));
37
+ const data = mergeData(ref, declaration, parentAnalyses, diagnostics);
38
+ const methods = mergeMethods(ref, declaration, parentAnalyses, diagnostics);
39
+ const analysis = {
40
+ ref,
41
+ declaration,
42
+ properties,
43
+ ...(data === undefined ? {} : { data }),
44
+ methods,
45
+ };
46
+ result.set(key, analysis);
47
+ visiting.delete(key);
48
+ return analysis;
49
+ };
50
+ for (const resolved of environment.definitions.values()) {
51
+ analyze(resolved.ref);
52
+ }
53
+ return Object.freeze({ definitions: result, diagnostics: Object.freeze(diagnostics) });
54
+ }
55
+ function ownFields(owner, declaration) {
56
+ const result = new Map();
57
+ for (const [name, property] of Object.entries(declaration.properties)) {
58
+ const key = PropertyKey.of(owner, name);
59
+ result.set(key, {
60
+ identity: key,
61
+ owner,
62
+ name,
63
+ schema: property.schema,
64
+ required: property.required,
65
+ visibility: property.visibility,
66
+ ...(property.auto === undefined ? {} : { auto: property.auto }),
67
+ });
68
+ }
69
+ return result;
70
+ }
71
+ function mergeFields(inherited, own) {
72
+ const result = new Map();
73
+ for (const fields of inherited) {
74
+ for (const [key, field] of fields) {
75
+ if (!result.has(key))
76
+ result.set(key, field);
77
+ }
78
+ }
79
+ for (const [key, field] of own) {
80
+ result.set(key, field);
81
+ }
82
+ return result;
83
+ }
84
+ function mergeData(owner, declaration, parents, diagnostics) {
85
+ let effective;
86
+ for (const parent of parents) {
87
+ if (parent.data === undefined)
88
+ continue;
89
+ if (effective === undefined) {
90
+ effective = parent.data;
91
+ continue;
92
+ }
93
+ if (effective.identity !== parent.data.identity) {
94
+ diagnostics.push(diagnostic('DV_DATA_COMPOSITION', '', `Data has distinct declaring owners ${formatDefinitionRef(effective.owner)} and ${formatDefinitionRef(parent.data.owner)}.`));
95
+ }
96
+ }
97
+ const own = 'data' in declaration ? declaration.data : undefined;
98
+ if (own === undefined)
99
+ return effective;
100
+ if (effective !== undefined) {
101
+ diagnostics.push(diagnostic('DV_DATA_COMPOSITION', '', `Data redeclares the inherited contract from ${formatDefinitionRef(effective.owner)}.`));
102
+ }
103
+ return {
104
+ identity: `${definitionRefIndex(owner)}\u0000data`,
105
+ owner,
106
+ declaration: own,
107
+ };
108
+ }
109
+ function mergeMethods(owner, declaration, parents, diagnostics) {
110
+ if (!('methods' in declaration))
111
+ return new Map();
112
+ const inherited = new Map();
113
+ for (const parent of parents) {
114
+ for (const [name, method] of parent.methods) {
115
+ const entries = inherited.get(name) ?? [];
116
+ if (!entries.some((entry) => entry.identity === method.identity))
117
+ entries.push(method);
118
+ inherited.set(name, entries);
119
+ }
120
+ }
121
+ const result = new Map();
122
+ for (const [name, entries] of inherited) {
123
+ if (entries.length === 1)
124
+ result.set(name, entries[0]);
125
+ }
126
+ for (const [name, ownMethod] of Object.entries(declaration.methods)) {
127
+ const parentsForName = inherited.get(name) ?? [];
128
+ for (const parent of parentsForName) {
129
+ if (parent.declaration.inheritance === 'sealed') {
130
+ diagnostics.push(diagnostic('DV_METHOD_COMPOSITION', '', `Method ${name} cannot override sealed ${formatDefinitionRef(parent.owner)}.${name}.`));
131
+ }
132
+ if (!sameMethodSignature(ownMethod, parent.declaration)) {
133
+ diagnostics.push(diagnostic('DV_METHOD_COMPOSITION', '', `Method ${name} does not exactly preserve its inherited signature.`));
134
+ }
135
+ if (parent.declaration.inheritance !== 'abstract' &&
136
+ canonicalPolicy(parent.declaration.policy) !== canonicalPolicy(ownMethod.policy)) {
137
+ diagnostics.push(diagnostic('DV_METHOD_COMPOSITION', '', `Method ${name} changes an executable inherited Policy.`));
138
+ }
139
+ }
140
+ result.set(name, {
141
+ identity: `${definitionRefIndex(owner)}\u0000method\u0000${name}`,
142
+ owner,
143
+ name,
144
+ declaration: ownMethod,
145
+ });
146
+ inherited.delete(name);
147
+ }
148
+ for (const [name, entries] of inherited) {
149
+ if (entries.length > 1) {
150
+ diagnostics.push(diagnostic('DV_METHOD_COMPOSITION', '', `Inherited method ${name} is ambiguous and has no local override.`));
151
+ }
152
+ }
153
+ if (declaration.kind === 'node' && !declaration.abstract) {
154
+ for (const [name, method] of result) {
155
+ if (method.declaration.inheritance === 'abstract') {
156
+ diagnostics.push(diagnostic('DV_METHOD_COMPOSITION', '', `Concrete Class ${owner.name} leaves method ${name} abstract.`));
157
+ }
158
+ }
159
+ }
160
+ return result;
161
+ }
162
+ function sameMethodSignature(left, right) {
163
+ return (json.serialize(canonicalizeValueSchema(left.input, 'callable-input')) ===
164
+ json.serialize(canonicalizeValueSchema(right.input, 'callable-input')) &&
165
+ canonicalMethodOutput(left) === canonicalMethodOutput(right) &&
166
+ left.auth === right.auth &&
167
+ left.static === right.static);
168
+ }
169
+ function canonicalMethodOutput(value) {
170
+ switch (value.output.mode) {
171
+ case 'value':
172
+ return `value:${json.serialize(canonicalizeValueSchema(value.output.schema, 'callable-output'))}`;
173
+ case 'stream':
174
+ return `stream:${json.serialize(canonicalizeValueSchema(value.output.item, 'callable-output'))}`;
175
+ case 'binary':
176
+ return 'binary';
177
+ }
178
+ }
179
+ function canonicalPolicy(value) {
180
+ return json.serialize(value === undefined ? null : normalizePolicyChecks(value));
181
+ }
@@ -0,0 +1,3 @@
1
+ import type { DomainSchemaIR } from '../model/schema.js';
2
+ /** Produce the deterministic semantic document consumed by canonical JSON serialization. */
3
+ export declare function canonicalizeDomainSchema(schema: DomainSchemaIR): DomainSchemaIR;
@@ -0,0 +1,3 @@
1
+ import type { Revision } from '../../addressing/index.js';
2
+ /** Content-address canonical DomainSchema bytes with the V1 revision algorithm. */
3
+ export declare function digestDomainSchemaBytes(bytes: Uint8Array): Revision;
@@ -0,0 +1,5 @@
1
+ import { digestRevisionBytes } from '../../addressing/revision.js';
2
+ /** Content-address canonical DomainSchema bytes with the V1 revision algorithm. */
3
+ export function digestDomainSchemaBytes(bytes) {
4
+ return digestRevisionBytes(bytes);
5
+ }
@@ -0,0 +1,5 @@
1
+ import { normalizeDomainSchema } from '../normalization/domain.js';
2
+ /** Produce the deterministic semantic document consumed by canonical JSON serialization. */
3
+ export function canonicalizeDomainSchema(schema) {
4
+ return normalizeDomainSchema(schema);
5
+ }
@@ -0,0 +1 @@
1
+ export declare function deepFreeze<T>(value: T): Readonly<T>;
@@ -0,0 +1,9 @@
1
+ export function deepFreeze(value) {
2
+ if (value === null || typeof value !== 'object' || Object.isFrozen(value)) {
3
+ return value;
4
+ }
5
+ for (const nested of Object.values(value)) {
6
+ deepFreeze(nested);
7
+ }
8
+ return Object.freeze(value);
9
+ }
@@ -0,0 +1,11 @@
1
+ import type { Revision } from '../../addressing/index.js';
2
+ import { type DomainSchema, type DomainSchemaIR } from '../model/schema.js';
3
+ export interface CanonicalDomainSchema {
4
+ readonly schema: DomainSchema;
5
+ readonly bytes: Uint8Array;
6
+ readonly revision: Revision;
7
+ }
8
+ export declare function canonicalDomainSchema(value: DomainSchema): CanonicalDomainSchema;
9
+ /** Internal acceptance seam. The caller must establish whole-Domain validity first. */
10
+ export declare function canonicalDomainSchemaAfterValidation(value: DomainSchemaIR): CanonicalDomainSchema;
11
+ export declare function revisionOfDomainSchema(schema: DomainSchema): Revision;
@@ -0,0 +1,17 @@
1
+ import { json } from '@astrale-os/kernel-dsl/value';
2
+ import { asDomainSchema } from '../model/schema.js';
3
+ import { digestDomainSchemaBytes } from './domain.digest.js';
4
+ import { canonicalizeDomainSchema } from './domain.js';
5
+ export function canonicalDomainSchema(value) {
6
+ return canonicalDomainSchemaAfterValidation(value);
7
+ }
8
+ /** Internal acceptance seam. The caller must establish whole-Domain validity first. */
9
+ export function canonicalDomainSchemaAfterValidation(value) {
10
+ const schema = asDomainSchema(canonicalizeDomainSchema(value));
11
+ const bytes = json.encode(schema);
12
+ const revision = digestDomainSchemaBytes(bytes);
13
+ return Object.freeze({ schema, bytes, revision });
14
+ }
15
+ export function revisionOfDomainSchema(schema) {
16
+ return canonicalDomainSchema(schema).revision;
17
+ }
@@ -0,0 +1,17 @@
1
+ import type { Key } from '../../addressing/index.js';
2
+ import type { DomainDependencyMap } from '../../addressing/index.js';
3
+ /**
4
+ * Structurally trusted routing information used to discover an exact
5
+ * dependency closure before whole-Domain semantic acceptance is possible.
6
+ *
7
+ * This is deliberately not a DomainSchema: callers must still load the
8
+ * declared revisions and pass the original document to acceptDomainSchema.
9
+ */
10
+ export interface DomainSchemaHeader {
11
+ readonly format: 'astrale.dsl';
12
+ readonly version: 'v1';
13
+ readonly origin: Key.Origin;
14
+ readonly dependencies: DomainDependencyMap;
15
+ }
16
+ /** Decode detached Schema bytes or text and retain only validated closure-routing identity. */
17
+ export declare function header(input: string | Uint8Array): DomainSchemaHeader;
@@ -0,0 +1,26 @@
1
+ import { json } from '@astrale-os/kernel-dsl/value';
2
+ import { SchemaError, diagnostic } from '../diagnostic.js';
3
+ import { routeDomainSchema } from '../validation/domain.route.js';
4
+ /** Decode detached Schema bytes or text and retain only validated closure-routing identity. */
5
+ export function header(input) {
6
+ let decoded;
7
+ try {
8
+ decoded = json.decode(input);
9
+ }
10
+ catch (error) {
11
+ if (error instanceof json.DecodeError) {
12
+ throw new SchemaError([diagnostic('DV_JSON_VALUE', '', error.message)]);
13
+ }
14
+ throw error;
15
+ }
16
+ const structured = routeDomainSchema(decoded);
17
+ return Object.freeze({
18
+ format: structured.format,
19
+ version: structured.version,
20
+ dependencies: Object.freeze(Object.fromEntries(Object.entries(structured.dependencies).map(([alias, dependency]) => [
21
+ alias,
22
+ Object.freeze({ ...dependency }),
23
+ ]))),
24
+ origin: structured.origin,
25
+ });
26
+ }
@@ -0,0 +1,5 @@
1
+ import type { DomainSchemaLookup } from '../dependency/lookup.js';
2
+ import type { DomainSchema } from '../model/schema.js';
3
+ export declare function decodeDomainSchema(input: string | Uint8Array, lookup?: DomainSchemaLookup): DomainSchema;
4
+ export declare function serializeDomainSchema(schema: DomainSchema): string;
5
+ export declare function encodeDomainSchema(schema: DomainSchema): Uint8Array;
@@ -0,0 +1,21 @@
1
+ import { json } from '@astrale-os/kernel-dsl/value';
2
+ import { acceptDomainSchema } from '../admission/accept.js';
3
+ import { emptyDomainSchemaLookup } from '../dependency/lookup.js';
4
+ import { SchemaError, diagnostic } from '../diagnostic.js';
5
+ export function decodeDomainSchema(input, lookup = emptyDomainSchemaLookup()) {
6
+ try {
7
+ return acceptDomainSchema(json.decode(input), lookup);
8
+ }
9
+ catch (error) {
10
+ if (error instanceof json.DecodeError) {
11
+ throw new SchemaError([diagnostic('DV_JSON_VALUE', '', error.message)]);
12
+ }
13
+ throw error;
14
+ }
15
+ }
16
+ export function serializeDomainSchema(schema) {
17
+ return json.serialize(schema);
18
+ }
19
+ export function encodeDomainSchema(schema) {
20
+ return json.encode(schema);
21
+ }