@astrale-os/kernel-dsl 0.2.0-beta.4 → 0.2.0-beta.41

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 (945) hide show
  1. package/dist/index.d.ts +0 -1
  2. package/dist/index.js +0 -1
  3. package/dist/upgrade/contract.d.ts +0 -1
  4. package/dist/upgrade/contract.js +0 -1
  5. package/dist/upgrade/index.d.ts +0 -1
  6. package/dist/upgrade/index.js +0 -1
  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 +10 -4
  14. package/dist/v1/addressing/index.js +5 -3
  15. package/dist/v1/addressing/key.d.ts +14 -16
  16. package/dist/v1/addressing/key.js +24 -34
  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 +12 -3
  24. package/dist/v1/addressing/patterns.js +11 -2
  25. package/dist/v1/addressing/property-key.d.ts +10 -15
  26. package/dist/v1/addressing/property-key.js +24 -15
  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 +143 -0
  30. package/dist/v1/builder/callable/authoring.js +82 -0
  31. package/dist/v1/builder/class/authoring.d.ts +400 -0
  32. package/dist/v1/builder/class/authoring.js +134 -0
  33. package/dist/v1/builder/class/property.d.ts +58 -0
  34. package/dist/v1/builder/class/property.js +57 -0
  35. package/dist/v1/builder/core/authoring.d.ts +47 -0
  36. package/dist/v1/builder/core/authoring.js +39 -0
  37. package/dist/v1/builder/index.d.ts +26 -22
  38. package/dist/v1/builder/index.js +11 -11
  39. package/dist/v1/builder/lowering/callable.d.ts +24 -0
  40. package/dist/v1/builder/lowering/callable.js +150 -0
  41. package/dist/v1/builder/lowering/class.d.ts +22 -0
  42. package/dist/v1/builder/lowering/class.js +134 -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 +60 -0
  49. package/dist/v1/builder/lowering/schema/capture.d.ts +4 -0
  50. package/dist/v1/builder/lowering/schema/capture.js +75 -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 +49 -0
  54. package/dist/v1/builder/lowering/schema/context.js +277 -0
  55. package/dist/v1/builder/lowering/schema/ownership.d.ts +8 -0
  56. package/dist/v1/builder/lowering/schema/ownership.js +30 -0
  57. package/dist/v1/builder/lowering/value/compile.d.ts +15 -0
  58. package/dist/v1/builder/lowering/value/compile.js +143 -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 +61 -0
  66. package/dist/v1/builder/policy/authoring.js +117 -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 +375 -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 +0 -1
  90. package/dist/v1/bundle/codec.js +36 -19
  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 +3 -2
  96. package/dist/v1/bundle/index.js +2 -2
  97. package/dist/v1/bundle/model.d.ts +1 -4
  98. package/dist/v1/bundle/model.js +0 -6
  99. package/dist/v1/bundle/structure.d.ts +1 -2
  100. package/dist/v1/bundle/structure.js +6 -6
  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 +1068 -0
  105. package/dist/v1/compiled/admission/revision.d.ts +4 -0
  106. package/dist/v1/compiled/admission/revision.js +79 -0
  107. package/dist/v1/compiled/admission/semantics.d.ts +7 -0
  108. package/dist/v1/compiled/admission/semantics.js +1187 -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 +142 -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/generated.d.ts +10 -0
  116. package/dist/v1/compiled/generated.js +15 -0
  117. package/dist/v1/compiled/index.d.ts +7 -0
  118. package/dist/v1/compiled/index.js +5 -0
  119. package/dist/v1/compiled/loader/index.d.ts +1 -0
  120. package/dist/v1/compiled/loader/index.js +1 -0
  121. package/dist/v1/compiled/loader/load.d.ts +18 -0
  122. package/dist/v1/compiled/loader/load.js +156 -0
  123. package/dist/v1/compiled/model/schema.d.ts +78 -0
  124. package/dist/v1/compiled/model/schema.js +1 -0
  125. package/dist/v1/domain/create.d.ts +8 -0
  126. package/dist/v1/domain/create.js +273 -0
  127. package/dist/v1/domain/index.d.ts +2 -0
  128. package/dist/v1/domain/index.js +1 -0
  129. package/dist/v1/domain/model/domain.d.ts +59 -0
  130. package/dist/v1/domain/model/domain.js +1 -0
  131. package/dist/v1/domain/model/input.d.ts +31 -0
  132. package/dist/v1/domain/model/input.js +1 -0
  133. package/dist/v1/domain/namespace/member-collection.d.ts +5 -0
  134. package/dist/v1/domain/namespace/member-collection.js +81 -0
  135. package/dist/v1/domain/projection/classes.d.ts +4 -0
  136. package/dist/v1/domain/projection/classes.js +178 -0
  137. package/dist/v1/domain/validation/create.d.ts +18 -0
  138. package/dist/v1/domain/validation/create.js +75 -0
  139. package/dist/v1/index.d.ts +15 -5
  140. package/dist/v1/index.js +7 -3
  141. package/dist/v1/language/callable/composition.d.ts +27 -0
  142. package/dist/v1/language/callable/composition.js +52 -0
  143. package/dist/v1/language/callable/executable.d.ts +6 -0
  144. package/dist/v1/language/callable/executable.js +4 -0
  145. package/dist/v1/language/callable/index.d.ts +2 -0
  146. package/dist/v1/language/callable/index.js +1 -0
  147. package/dist/v1/language/callable/model/callable.d.ts +56 -0
  148. package/dist/v1/language/callable/model/callable.js +3 -0
  149. package/dist/v1/language/callable/resolved.d.ts +83 -0
  150. package/dist/v1/language/callable/resolved.js +1 -0
  151. package/dist/v1/language/class/facets.d.ts +61 -0
  152. package/dist/v1/language/class/facets.js +1 -0
  153. package/dist/v1/language/class/index.d.ts +8 -0
  154. package/dist/v1/language/class/index.js +1 -0
  155. package/dist/v1/language/class/model/class.d.ts +37 -0
  156. package/dist/v1/language/class/model/class.js +1 -0
  157. package/dist/v1/language/class/model/data.d.ts +11 -0
  158. package/dist/v1/language/class/model/data.js +2 -0
  159. package/dist/v1/language/class/model/edge.d.ts +38 -0
  160. package/dist/v1/language/class/model/edge.js +1 -0
  161. package/dist/v1/language/class/model/property.d.ts +17 -0
  162. package/dist/v1/language/class/model/property.js +1 -0
  163. package/dist/v1/language/class/property-values.d.ts +15 -0
  164. package/dist/v1/language/class/property-values.js +33 -0
  165. package/dist/v1/language/class/resolved.d.ts +126 -0
  166. package/dist/v1/language/class/resolved.js +1 -0
  167. package/dist/v1/language/core/index.d.ts +2 -0
  168. package/dist/v1/language/core/index.js +1 -0
  169. package/dist/v1/language/core/model/core.d.ts +26 -0
  170. package/dist/v1/language/core/model/core.js +1 -0
  171. package/dist/v1/language/core/resolved.d.ts +25 -0
  172. package/dist/v1/language/core/resolved.js +1 -0
  173. package/dist/v1/language/definition/metadata.d.ts +12 -0
  174. package/dist/v1/language/definition/metadata.js +12 -0
  175. package/dist/v1/language/definition.d.ts +7 -0
  176. package/dist/v1/language/definition.js +1 -0
  177. package/dist/v1/language/index.d.ts +28 -0
  178. package/dist/v1/language/index.js +5 -0
  179. package/dist/v1/language/policy/analysis/branches.d.ts +20 -0
  180. package/dist/v1/language/policy/analysis/branches.js +174 -0
  181. package/dist/v1/language/policy/analysis/budgets.d.ts +16 -0
  182. package/dist/v1/language/policy/analysis/budgets.js +25 -0
  183. package/dist/v1/language/policy/index.d.ts +4 -0
  184. package/dist/v1/language/policy/index.js +2 -0
  185. package/dist/v1/language/policy/model/policy.d.ts +116 -0
  186. package/dist/v1/language/policy/model/policy.js +35 -0
  187. package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
  188. package/dist/v1/language/policy/normalization/normalize.js +275 -0
  189. package/dist/v1/language/policy/resolved.d.ts +9 -0
  190. package/dist/v1/language/policy/resolved.js +1 -0
  191. package/dist/v1/language/resolved.d.ts +10 -0
  192. package/dist/v1/language/resolved.js +1 -0
  193. package/dist/v1/language/state/index.d.ts +3 -0
  194. package/dist/v1/language/state/index.js +1 -0
  195. package/dist/v1/language/state/machine.d.ts +28 -0
  196. package/dist/v1/language/state/machine.js +40 -0
  197. package/dist/v1/language/state/topology.d.ts +14 -0
  198. package/dist/v1/language/state/topology.js +69 -0
  199. package/dist/v1/language/validation/diagnostic.d.ts +8 -0
  200. package/dist/v1/language/validation/diagnostic.js +3 -0
  201. package/dist/v1/language/value/compile/fields.d.ts +3 -0
  202. package/dist/v1/language/value/compile/fields.js +60 -0
  203. package/dist/v1/language/value/compile/load.d.ts +6 -0
  204. package/dist/v1/language/value/compile/load.js +62 -0
  205. package/dist/v1/language/value/compile/model.d.ts +42 -0
  206. package/dist/v1/language/value/compile/model.js +1 -0
  207. package/dist/v1/language/value/evaluate/assertions.d.ts +8 -0
  208. package/dist/v1/language/value/evaluate/assertions.js +71 -0
  209. package/dist/v1/language/value/evaluate/evaluator.d.ts +4 -0
  210. package/dist/v1/language/value/evaluate/evaluator.js +426 -0
  211. package/dist/v1/language/value/evaluate/preparation.d.ts +22 -0
  212. package/dist/v1/language/value/evaluate/preparation.js +126 -0
  213. package/dist/v1/language/value/evaluate/program.d.ts +3 -0
  214. package/dist/v1/language/value/evaluate/program.js +16 -0
  215. package/dist/v1/language/value/evaluate/types.d.ts +36 -0
  216. package/dist/v1/language/value/evaluate/types.js +9 -0
  217. package/dist/v1/language/value/evaluate/validate.d.ts +16 -0
  218. package/dist/v1/language/value/evaluate/validate.js +50 -0
  219. package/dist/v1/language/value/index.d.ts +11 -0
  220. package/dist/v1/language/value/index.js +8 -0
  221. package/dist/v1/language/value/model/blob.d.ts +33 -0
  222. package/dist/v1/language/value/model/blob.js +90 -0
  223. package/dist/v1/language/value/model/instant.d.ts +9 -0
  224. package/dist/v1/language/value/model/instant.js +37 -0
  225. package/dist/v1/language/value/model/object.d.ts +5 -0
  226. package/dist/v1/language/value/model/object.js +3 -0
  227. package/dist/v1/language/value/model/schema.d.ts +25 -0
  228. package/dist/v1/language/value/model/schema.js +11 -0
  229. package/dist/v1/language/value/ordering.d.ts +15 -0
  230. package/dist/v1/language/value/ordering.js +170 -0
  231. package/dist/v1/language/value/profile/canonicalize.d.ts +4 -0
  232. package/dist/v1/language/value/profile/canonicalize.js +130 -0
  233. package/dist/v1/language/value/profile/json.validate.d.ts +2 -0
  234. package/dist/v1/language/value/profile/json.validate.js +14 -0
  235. package/dist/v1/language/value/profile/meta-schema.compiled.d.ts +78 -0
  236. package/dist/v1/language/value/profile/meta-schema.compiled.js +2079 -0
  237. package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
  238. package/dist/v1/language/value/profile/meta-schema.js +19 -0
  239. package/dist/v1/language/value/profile/rules.d.ts +3 -0
  240. package/dist/v1/language/value/profile/rules.js +141 -0
  241. package/dist/v1/language/value/profile/validate.d.ts +4 -0
  242. package/dist/v1/language/value/profile/validate.js +39 -0
  243. package/dist/v1/language/value/profile/vocabulary.d.ts +2 -0
  244. package/dist/v1/language/value/profile/vocabulary.js +68 -0
  245. package/dist/v1/language/value/reference/closure.d.ts +11 -0
  246. package/dist/v1/language/value/reference/closure.js +51 -0
  247. package/dist/v1/language/value/reference/recursion.d.ts +5 -0
  248. package/dist/v1/language/value/reference/recursion.js +95 -0
  249. package/dist/v1/language/value/reference/references.d.ts +17 -0
  250. package/dist/v1/language/value/reference/references.js +45 -0
  251. package/dist/v1/language/value/reference/registry.d.ts +24 -0
  252. package/dist/v1/language/value/reference/registry.index.d.ts +14 -0
  253. package/dist/v1/language/value/reference/registry.index.js +76 -0
  254. package/dist/v1/language/value/reference/registry.js +1 -0
  255. package/dist/v1/language/value/regexp/ast.d.ts +21 -0
  256. package/dist/v1/language/value/regexp/ast.js +326 -0
  257. package/dist/v1/language/value/regexp/compile.d.ts +3 -0
  258. package/dist/v1/language/value/regexp/compile.js +138 -0
  259. package/dist/v1/language/value/regexp/lower.d.ts +3 -0
  260. package/dist/v1/language/value/regexp/lower.js +26 -0
  261. package/dist/v1/language/value/regexp/matcher.d.ts +10 -0
  262. package/dist/v1/language/value/regexp/matcher.js +207 -0
  263. package/dist/v1/language/value/regexp/pattern.d.ts +2 -0
  264. package/dist/v1/language/value/regexp/pattern.js +38 -0
  265. package/dist/v1/language/value/regexp/syntax.d.ts +2 -0
  266. package/dist/v1/language/value/regexp/syntax.js +5 -0
  267. package/dist/v1/language/value/syntax/full-match.d.ts +6 -0
  268. package/dist/v1/language/value/syntax/full-match.js +20 -0
  269. package/dist/v1/language/value/syntax/keywords.d.ts +3 -0
  270. package/dist/v1/language/value/syntax/keywords.js +20 -0
  271. package/dist/v1/language/value/syntax/node-path/schema.d.ts +5 -0
  272. package/dist/v1/language/value/syntax/node-path/schema.js +18 -0
  273. package/dist/v1/language/value/syntax/node-path/validate.d.ts +4 -0
  274. package/dist/v1/language/value/syntax/node-path/validate.js +78 -0
  275. package/dist/v1/language/value/syntax/pointer.d.ts +4 -0
  276. package/dist/v1/language/value/syntax/pointer.js +49 -0
  277. package/dist/v1/language/value/syntax/walk.d.ts +10 -0
  278. package/dist/v1/language/value/syntax/walk.js +53 -0
  279. package/dist/v1/language/view/index.d.ts +2 -0
  280. package/dist/v1/language/view/index.js +1 -0
  281. package/dist/v1/language/view/model/view.d.ts +11 -0
  282. package/dist/v1/language/view/model/view.js +1 -0
  283. package/dist/v1/language/view/resolved.d.ts +9 -0
  284. package/dist/v1/language/view/resolved.js +1 -0
  285. package/dist/v1/schema/admission/accept.d.ts +3 -0
  286. package/dist/v1/schema/admission/accept.js +26 -0
  287. package/dist/v1/schema/analysis/class.d.ts +69 -0
  288. package/dist/v1/schema/analysis/class.js +145 -0
  289. package/dist/v1/schema/canonical/domain.d.ts +2 -2
  290. package/dist/v1/schema/canonical/domain.digest.d.ts +1 -2
  291. package/dist/v1/schema/canonical/domain.digest.js +2 -6
  292. package/dist/v1/schema/canonical/domain.js +3 -224
  293. package/dist/v1/schema/canonical/freeze.d.ts +0 -1
  294. package/dist/v1/schema/canonical/freeze.js +0 -1
  295. package/dist/v1/schema/canonical/revision.d.ts +11 -0
  296. package/dist/v1/schema/canonical/revision.js +20 -0
  297. package/dist/v1/schema/codec/header.d.ts +17 -0
  298. package/dist/v1/schema/codec/header.js +26 -0
  299. package/dist/v1/schema/codec/schema.d.ts +5 -0
  300. package/dist/v1/schema/codec/schema.js +21 -0
  301. package/dist/v1/schema/compatibility/api.d.ts +2 -0
  302. package/dist/v1/schema/compatibility/api.js +1 -0
  303. package/dist/v1/schema/compatibility/comparators/callables.d.ts +32 -0
  304. package/dist/v1/schema/compatibility/comparators/callables.js +88 -0
  305. package/dist/v1/schema/compatibility/comparators/classes.d.ts +28 -0
  306. package/dist/v1/schema/compatibility/comparators/classes.js +96 -0
  307. package/dist/v1/schema/compatibility/comparators/index.d.ts +12 -0
  308. package/dist/v1/schema/compatibility/comparators/index.js +41 -0
  309. package/dist/v1/schema/compatibility/comparators/members.d.ts +4 -0
  310. package/dist/v1/schema/compatibility/comparators/members.js +49 -0
  311. package/dist/v1/schema/compatibility/comparators/values.d.ts +5 -0
  312. package/dist/v1/schema/compatibility/comparators/values.js +37 -0
  313. package/dist/v1/schema/compatibility/compare.d.ts +5 -0
  314. package/dist/v1/schema/compatibility/compare.js +23 -0
  315. package/dist/v1/schema/compatibility/context.d.ts +15 -0
  316. package/dist/v1/schema/compatibility/context.js +43 -0
  317. package/dist/v1/schema/compatibility/coordinate.d.ts +39 -0
  318. package/dist/v1/schema/compatibility/coordinate.js +38 -0
  319. package/dist/v1/schema/compatibility/diff.d.ts +12 -0
  320. package/dist/v1/schema/compatibility/diff.js +39 -0
  321. package/dist/v1/schema/compatibility/evidence.d.ts +5 -0
  322. package/dist/v1/schema/compatibility/evidence.js +51 -0
  323. package/dist/v1/schema/compatibility/fields.d.ts +192 -0
  324. package/dist/v1/schema/compatibility/fields.js +93 -0
  325. package/dist/v1/schema/compatibility/index.d.ts +8 -0
  326. package/dist/v1/schema/compatibility/index.js +4 -0
  327. package/dist/v1/schema/compatibility/legacy/index.d.ts +58 -0
  328. package/dist/v1/schema/compatibility/legacy/index.js +145 -0
  329. package/dist/v1/schema/compatibility/meaning/footprint.d.ts +7 -0
  330. package/dist/v1/schema/compatibility/meaning/footprint.js +57 -0
  331. package/dist/v1/schema/compatibility/meaning/index.d.ts +3 -0
  332. package/dist/v1/schema/compatibility/meaning/index.js +14 -0
  333. package/dist/v1/schema/compatibility/model.d.ts +96 -0
  334. package/dist/v1/schema/compatibility/model.js +1 -0
  335. package/dist/v1/schema/compatibility/references.d.ts +30 -0
  336. package/dist/v1/schema/compatibility/references.js +122 -0
  337. package/dist/v1/schema/compatibility/report.d.ts +26 -0
  338. package/dist/v1/schema/compatibility/report.js +100 -0
  339. package/dist/v1/schema/compatibility/scope.d.ts +27 -0
  340. package/dist/v1/schema/compatibility/scope.js +78 -0
  341. package/dist/v1/schema/compatibility/structure/index.d.ts +3 -0
  342. package/dist/v1/schema/compatibility/structure/index.js +16 -0
  343. package/dist/v1/schema/compatibility/structure/inheritance.d.ts +7 -0
  344. package/dist/v1/schema/compatibility/structure/inheritance.js +68 -0
  345. package/dist/v1/schema/compatibility/structure/requirements.d.ts +7 -0
  346. package/dist/v1/schema/compatibility/structure/requirements.js +70 -0
  347. package/dist/v1/schema/compatibility/subjects.d.ts +34 -0
  348. package/dist/v1/schema/compatibility/subjects.js +86 -0
  349. package/dist/v1/schema/dependency/lookup.d.ts +18 -0
  350. package/dist/v1/schema/dependency/lookup.js +31 -0
  351. package/dist/v1/schema/diagnostic.d.ts +7 -7
  352. package/dist/v1/schema/diagnostic.js +9 -9
  353. package/dist/v1/schema/fingerprint.d.ts +2 -0
  354. package/dist/v1/schema/fingerprint.js +1 -0
  355. package/dist/v1/schema/index.d.ts +27 -40
  356. package/dist/v1/schema/index.js +13 -18
  357. package/dist/v1/schema/model/format.d.ts +2 -0
  358. package/dist/v1/schema/model/format.js +2 -0
  359. package/dist/v1/schema/model/schema.d.ts +30 -0
  360. package/dist/v1/schema/model/schema.js +4 -0
  361. package/dist/v1/schema/normalization/domain.d.ts +2 -0
  362. package/dist/v1/schema/normalization/domain.js +234 -0
  363. package/dist/v1/schema/resolution/closure.d.ts +3 -4
  364. package/dist/v1/schema/resolution/closure.js +6 -7
  365. package/dist/v1/schema/resolution/context.d.ts +11 -12
  366. package/dist/v1/schema/resolution/context.js +82 -50
  367. package/dist/v1/schema/resolution/definition.index.d.ts +13 -35
  368. package/dist/v1/schema/resolution/definition.index.js +8 -18
  369. package/dist/v1/schema/resolution/domain.d.ts +4 -0
  370. package/dist/v1/schema/resolution/domain.js +120 -0
  371. package/dist/v1/schema/resolution/origins.d.ts +27 -14
  372. package/dist/v1/schema/resolution/origins.js +87 -58
  373. package/dist/v1/schema/resolution/value.registry.d.ts +3 -4
  374. package/dist/v1/schema/resolution/value.registry.js +7 -14
  375. package/dist/v1/schema/revision.d.ts +1 -0
  376. package/dist/v1/schema/revision.js +1 -0
  377. package/dist/v1/schema/validation/callable.d.ts +4 -0
  378. package/dist/v1/schema/validation/callable.js +39 -0
  379. package/dist/v1/schema/validation/class.d.ts +5 -0
  380. package/dist/v1/schema/validation/class.js +247 -0
  381. package/dist/v1/schema/validation/core.d.ts +5 -0
  382. package/dist/v1/schema/validation/core.js +318 -0
  383. package/dist/v1/schema/validation/domain.d.ts +11 -0
  384. package/dist/v1/schema/validation/domain.js +38 -0
  385. package/dist/v1/schema/validation/domain.route.d.ts +1 -2
  386. package/dist/v1/schema/validation/domain.route.js +3 -4
  387. package/dist/v1/schema/validation/domain.structure.d.ts +3 -4
  388. package/dist/v1/schema/validation/domain.structure.js +234 -218
  389. package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
  390. package/dist/v1/schema/validation/policy/budgets.js +119 -0
  391. package/dist/v1/schema/validation/policy/context.d.ts +28 -0
  392. package/dist/v1/schema/validation/policy/context.js +89 -0
  393. package/dist/v1/schema/validation/policy/objects.d.ts +4 -0
  394. package/dist/v1/schema/validation/policy/objects.js +71 -0
  395. package/dist/v1/schema/validation/policy/references.d.ts +2 -0
  396. package/dist/v1/schema/validation/policy/references.js +155 -0
  397. package/dist/v1/schema/validation/policy/typing.d.ts +19 -0
  398. package/dist/v1/schema/validation/policy/typing.js +347 -0
  399. package/dist/v1/schema/validation/policy/uses.d.ts +5 -0
  400. package/dist/v1/schema/validation/policy/uses.js +196 -0
  401. package/dist/v1/schema/validation/policy/validate.d.ts +11 -0
  402. package/dist/v1/schema/validation/policy/validate.js +23 -0
  403. package/dist/v1/schema/validation/value-api.d.ts +15 -0
  404. package/dist/v1/schema/validation/value-api.js +24 -0
  405. package/dist/v1/schema/validation/value.d.ts +4 -5
  406. package/dist/v1/schema/validation/value.js +11 -10
  407. package/dist/v1/schema/validation/view.d.ts +3 -0
  408. package/dist/v1/schema/validation/view.js +29 -0
  409. package/dist/v1/value/full-match.d.ts +2 -0
  410. package/dist/v1/value/full-match.js +2 -0
  411. package/dist/v1.d.ts +1 -2
  412. package/dist/v1.js +1 -2
  413. package/dist/value/accept.d.ts +9 -1
  414. package/dist/value/accept.js +78 -6
  415. package/dist/value/canonical.d.ts +3 -1
  416. package/dist/value/canonical.js +13 -6
  417. package/dist/value/decode.d.ts +0 -1
  418. package/dist/value/decode.js +0 -1
  419. package/dist/value/equal.d.ts +0 -1
  420. package/dist/value/equal.js +0 -1
  421. package/dist/value/error.d.ts +0 -1
  422. package/dist/value/error.js +0 -1
  423. package/dist/value/immutable.optimization.d.ts +12 -0
  424. package/dist/value/immutable.optimization.js +28 -0
  425. package/dist/value/index.d.ts +1 -2
  426. package/dist/value/index.js +1 -2
  427. package/dist/value/json.d.ts +1 -2
  428. package/dist/value/json.js +1 -2
  429. package/dist/value/limits.d.ts +0 -1
  430. package/dist/value/limits.js +0 -1
  431. package/dist/value/types.d.ts +0 -1
  432. package/dist/value/types.js +0 -1
  433. package/dist/value/unicode.d.ts +1 -2
  434. package/dist/value/unicode.js +1 -1
  435. package/dist/version/dispatch.d.ts +0 -1
  436. package/dist/version/dispatch.js +0 -1
  437. package/dist/version/index.d.ts +0 -1
  438. package/dist/version/index.js +0 -1
  439. package/package.json +52 -21
  440. package/dist/index.d.ts.map +0 -1
  441. package/dist/index.js.map +0 -1
  442. package/dist/upgrade/contract.d.ts.map +0 -1
  443. package/dist/upgrade/contract.js.map +0 -1
  444. package/dist/upgrade/index.d.ts.map +0 -1
  445. package/dist/upgrade/index.js.map +0 -1
  446. package/dist/v1/addressing/index.d.ts.map +0 -1
  447. package/dist/v1/addressing/index.js.map +0 -1
  448. package/dist/v1/addressing/key.d.ts.map +0 -1
  449. package/dist/v1/addressing/key.js.map +0 -1
  450. package/dist/v1/addressing/patterns.d.ts.map +0 -1
  451. package/dist/v1/addressing/patterns.js.map +0 -1
  452. package/dist/v1/addressing/property-key.d.ts.map +0 -1
  453. package/dist/v1/addressing/property-key.js.map +0 -1
  454. package/dist/v1/addressing/ref.d.ts +0 -35
  455. package/dist/v1/addressing/ref.d.ts.map +0 -1
  456. package/dist/v1/addressing/ref.js +0 -94
  457. package/dist/v1/addressing/ref.js.map +0 -1
  458. package/dist/v1/addressing/schema-ref.d.ts +0 -8
  459. package/dist/v1/addressing/schema-ref.d.ts.map +0 -1
  460. package/dist/v1/addressing/schema-ref.js +0 -2
  461. package/dist/v1/addressing/schema-ref.js.map +0 -1
  462. package/dist/v1/builder/callable.d.ts +0 -91
  463. package/dist/v1/builder/callable.d.ts.map +0 -1
  464. package/dist/v1/builder/callable.js +0 -46
  465. package/dist/v1/builder/callable.js.map +0 -1
  466. package/dist/v1/builder/compiler/callable.d.ts +0 -20
  467. package/dist/v1/builder/compiler/callable.d.ts.map +0 -1
  468. package/dist/v1/builder/compiler/callable.js +0 -138
  469. package/dist/v1/builder/compiler/callable.js.map +0 -1
  470. package/dist/v1/builder/compiler/core.d.ts +0 -6
  471. package/dist/v1/builder/compiler/core.d.ts.map +0 -1
  472. package/dist/v1/builder/compiler/core.js +0 -44
  473. package/dist/v1/builder/compiler/core.js.map +0 -1
  474. package/dist/v1/builder/compiler/core.properties.d.ts +0 -6
  475. package/dist/v1/builder/compiler/core.properties.d.ts.map +0 -1
  476. package/dist/v1/builder/compiler/core.properties.js +0 -70
  477. package/dist/v1/builder/compiler/core.properties.js.map +0 -1
  478. package/dist/v1/builder/compiler/definition.d.ts +0 -32
  479. package/dist/v1/builder/compiler/definition.d.ts.map +0 -1
  480. package/dist/v1/builder/compiler/definition.js +0 -197
  481. package/dist/v1/builder/compiler/definition.js.map +0 -1
  482. package/dist/v1/builder/compiler/policy.d.ts +0 -17
  483. package/dist/v1/builder/compiler/policy.d.ts.map +0 -1
  484. package/dist/v1/builder/compiler/policy.js +0 -54
  485. package/dist/v1/builder/compiler/policy.js.map +0 -1
  486. package/dist/v1/builder/compiler/schema.capture.d.ts +0 -5
  487. package/dist/v1/builder/compiler/schema.capture.d.ts.map +0 -1
  488. package/dist/v1/builder/compiler/schema.capture.js +0 -85
  489. package/dist/v1/builder/compiler/schema.capture.js.map +0 -1
  490. package/dist/v1/builder/compiler/schema.context.d.ts +0 -45
  491. package/dist/v1/builder/compiler/schema.context.d.ts.map +0 -1
  492. package/dist/v1/builder/compiler/schema.context.js +0 -255
  493. package/dist/v1/builder/compiler/schema.context.js.map +0 -1
  494. package/dist/v1/builder/compiler/schema.d.ts +0 -10
  495. package/dist/v1/builder/compiler/schema.d.ts.map +0 -1
  496. package/dist/v1/builder/compiler/schema.js +0 -90
  497. package/dist/v1/builder/compiler/schema.js.map +0 -1
  498. package/dist/v1/builder/compiler/schema.ownership.d.ts +0 -9
  499. package/dist/v1/builder/compiler/schema.ownership.d.ts.map +0 -1
  500. package/dist/v1/builder/compiler/schema.ownership.js +0 -30
  501. package/dist/v1/builder/compiler/schema.ownership.js.map +0 -1
  502. package/dist/v1/builder/compiler/value.d.ts +0 -26
  503. package/dist/v1/builder/compiler/value.d.ts.map +0 -1
  504. package/dist/v1/builder/compiler/value.js +0 -160
  505. package/dist/v1/builder/compiler/value.js.map +0 -1
  506. package/dist/v1/builder/compiler/value.path.d.ts +0 -4
  507. package/dist/v1/builder/compiler/value.path.d.ts.map +0 -1
  508. package/dist/v1/builder/compiler/value.path.js +0 -21
  509. package/dist/v1/builder/compiler/value.path.js.map +0 -1
  510. package/dist/v1/builder/compiler/value.zod.d.ts +0 -33
  511. package/dist/v1/builder/compiler/value.zod.d.ts.map +0 -1
  512. package/dist/v1/builder/compiler/value.zod.js +0 -343
  513. package/dist/v1/builder/compiler/value.zod.js.map +0 -1
  514. package/dist/v1/builder/compiler/view.d.ts +0 -12
  515. package/dist/v1/builder/compiler/view.d.ts.map +0 -1
  516. package/dist/v1/builder/compiler/view.js +0 -27
  517. package/dist/v1/builder/compiler/view.js.map +0 -1
  518. package/dist/v1/builder/core.d.ts +0 -27
  519. package/dist/v1/builder/core.d.ts.map +0 -1
  520. package/dist/v1/builder/core.js +0 -21
  521. package/dist/v1/builder/core.js.map +0 -1
  522. package/dist/v1/builder/definition.d.ts +0 -155
  523. package/dist/v1/builder/definition.d.ts.map +0 -1
  524. package/dist/v1/builder/definition.js +0 -141
  525. package/dist/v1/builder/definition.js.map +0 -1
  526. package/dist/v1/builder/full-match.d.ts +0 -5
  527. package/dist/v1/builder/full-match.d.ts.map +0 -1
  528. package/dist/v1/builder/full-match.js +0 -12
  529. package/dist/v1/builder/full-match.js.map +0 -1
  530. package/dist/v1/builder/index.d.ts.map +0 -1
  531. package/dist/v1/builder/index.js.map +0 -1
  532. package/dist/v1/builder/internal/authoring.d.ts +0 -8
  533. package/dist/v1/builder/internal/authoring.d.ts.map +0 -1
  534. package/dist/v1/builder/internal/authoring.js +0 -15
  535. package/dist/v1/builder/internal/authoring.js.map +0 -1
  536. package/dist/v1/builder/internal/authoring.lazy.d.ts +0 -3
  537. package/dist/v1/builder/internal/authoring.lazy.d.ts.map +0 -1
  538. package/dist/v1/builder/internal/authoring.lazy.js +0 -14
  539. package/dist/v1/builder/internal/authoring.lazy.js.map +0 -1
  540. package/dist/v1/builder/internal/diagnostic.d.ts +0 -4
  541. package/dist/v1/builder/internal/diagnostic.d.ts.map +0 -1
  542. package/dist/v1/builder/internal/diagnostic.js +0 -16
  543. package/dist/v1/builder/internal/diagnostic.js.map +0 -1
  544. package/dist/v1/builder/internal/path.metadata.d.ts +0 -5
  545. package/dist/v1/builder/internal/path.metadata.d.ts.map +0 -1
  546. package/dist/v1/builder/internal/path.metadata.js +0 -8
  547. package/dist/v1/builder/internal/path.metadata.js.map +0 -1
  548. package/dist/v1/builder/path.d.ts +0 -9
  549. package/dist/v1/builder/path.d.ts.map +0 -1
  550. package/dist/v1/builder/path.js +0 -12
  551. package/dist/v1/builder/path.js.map +0 -1
  552. package/dist/v1/builder/policy.d.ts +0 -50
  553. package/dist/v1/builder/policy.d.ts.map +0 -1
  554. package/dist/v1/builder/policy.js +0 -79
  555. package/dist/v1/builder/policy.js.map +0 -1
  556. package/dist/v1/builder/property.d.ts +0 -37
  557. package/dist/v1/builder/property.d.ts.map +0 -1
  558. package/dist/v1/builder/property.js +0 -36
  559. package/dist/v1/builder/property.js.map +0 -1
  560. package/dist/v1/builder/schema.d.ts +0 -6
  561. package/dist/v1/builder/schema.d.ts.map +0 -1
  562. package/dist/v1/builder/schema.input.d.ts +0 -19
  563. package/dist/v1/builder/schema.input.d.ts.map +0 -1
  564. package/dist/v1/builder/schema.input.js +0 -2
  565. package/dist/v1/builder/schema.input.js.map +0 -1
  566. package/dist/v1/builder/schema.js +0 -6
  567. package/dist/v1/builder/schema.js.map +0 -1
  568. package/dist/v1/builder/value-schema.d.ts +0 -17
  569. package/dist/v1/builder/value-schema.d.ts.map +0 -1
  570. package/dist/v1/builder/value-schema.js +0 -11
  571. package/dist/v1/builder/value-schema.js.map +0 -1
  572. package/dist/v1/builder/view.d.ts +0 -19
  573. package/dist/v1/builder/view.d.ts.map +0 -1
  574. package/dist/v1/builder/view.js +0 -7
  575. package/dist/v1/builder/view.js.map +0 -1
  576. package/dist/v1/builder.d.ts +0 -3
  577. package/dist/v1/builder.d.ts.map +0 -1
  578. package/dist/v1/builder.js +0 -2
  579. package/dist/v1/builder.js.map +0 -1
  580. package/dist/v1/bundle/codec.d.ts.map +0 -1
  581. package/dist/v1/bundle/codec.js.map +0 -1
  582. package/dist/v1/bundle/index.d.ts.map +0 -1
  583. package/dist/v1/bundle/index.js.map +0 -1
  584. package/dist/v1/bundle/model.d.ts.map +0 -1
  585. package/dist/v1/bundle/model.js.map +0 -1
  586. package/dist/v1/bundle/structure.d.ts.map +0 -1
  587. package/dist/v1/bundle/structure.js.map +0 -1
  588. package/dist/v1/bundle.d.ts +0 -3
  589. package/dist/v1/bundle.d.ts.map +0 -1
  590. package/dist/v1/bundle.js +0 -3
  591. package/dist/v1/bundle.js.map +0 -1
  592. package/dist/v1/index.d.ts.map +0 -1
  593. package/dist/v1/index.js.map +0 -1
  594. package/dist/v1/schema/callable.d.ts +0 -29
  595. package/dist/v1/schema/callable.d.ts.map +0 -1
  596. package/dist/v1/schema/callable.js +0 -2
  597. package/dist/v1/schema/callable.js.map +0 -1
  598. package/dist/v1/schema/canonical/domain.d.ts.map +0 -1
  599. package/dist/v1/schema/canonical/domain.digest.d.ts.map +0 -1
  600. package/dist/v1/schema/canonical/domain.digest.js.map +0 -1
  601. package/dist/v1/schema/canonical/domain.js.map +0 -1
  602. package/dist/v1/schema/canonical/freeze.d.ts.map +0 -1
  603. package/dist/v1/schema/canonical/freeze.js.map +0 -1
  604. package/dist/v1/schema/compiled/admission.d.ts +0 -4
  605. package/dist/v1/schema/compiled/admission.d.ts.map +0 -1
  606. package/dist/v1/schema/compiled/admission.js +0 -217
  607. package/dist/v1/schema/compiled/admission.js.map +0 -1
  608. package/dist/v1/schema/compiled/authored-validator.d.ts +0 -5
  609. package/dist/v1/schema/compiled/authored-validator.d.ts.map +0 -1
  610. package/dist/v1/schema/compiled/authored-validator.js +0 -7
  611. package/dist/v1/schema/compiled/authored-validator.js.map +0 -1
  612. package/dist/v1/schema/compiled/compiler.d.ts +0 -5
  613. package/dist/v1/schema/compiled/compiler.d.ts.map +0 -1
  614. package/dist/v1/schema/compiled/compiler.js +0 -86
  615. package/dist/v1/schema/compiled/compiler.js.map +0 -1
  616. package/dist/v1/schema/compiled/model.d.ts +0 -61
  617. package/dist/v1/schema/compiled/model.d.ts.map +0 -1
  618. package/dist/v1/schema/compiled/model.js +0 -2
  619. package/dist/v1/schema/compiled/model.js.map +0 -1
  620. package/dist/v1/schema/compiled/program.d.ts +0 -5
  621. package/dist/v1/schema/compiled/program.d.ts.map +0 -1
  622. package/dist/v1/schema/compiled/program.js +0 -42
  623. package/dist/v1/schema/compiled/program.js.map +0 -1
  624. package/dist/v1/schema/compiled/validator.d.ts +0 -23
  625. package/dist/v1/schema/compiled/validator.d.ts.map +0 -1
  626. package/dist/v1/schema/compiled/validator.js +0 -62
  627. package/dist/v1/schema/compiled/validator.js.map +0 -1
  628. package/dist/v1/schema/core/declaration.d.ts +0 -17
  629. package/dist/v1/schema/core/declaration.d.ts.map +0 -1
  630. package/dist/v1/schema/core/declaration.js +0 -2
  631. package/dist/v1/schema/core/declaration.js.map +0 -1
  632. package/dist/v1/schema/core/validate.d.ts +0 -6
  633. package/dist/v1/schema/core/validate.d.ts.map +0 -1
  634. package/dist/v1/schema/core/validate.js +0 -257
  635. package/dist/v1/schema/core/validate.js.map +0 -1
  636. package/dist/v1/schema/definition/analysis.d.ts +0 -43
  637. package/dist/v1/schema/definition/analysis.d.ts.map +0 -1
  638. package/dist/v1/schema/definition/analysis.js +0 -190
  639. package/dist/v1/schema/definition/analysis.js.map +0 -1
  640. package/dist/v1/schema/definition/class.d.ts +0 -28
  641. package/dist/v1/schema/definition/class.d.ts.map +0 -1
  642. package/dist/v1/schema/definition/class.js +0 -2
  643. package/dist/v1/schema/definition/class.js.map +0 -1
  644. package/dist/v1/schema/definition/data.d.ts +0 -12
  645. package/dist/v1/schema/definition/data.d.ts.map +0 -1
  646. package/dist/v1/schema/definition/data.js +0 -3
  647. package/dist/v1/schema/definition/data.js.map +0 -1
  648. package/dist/v1/schema/definition/edge.d.ts +0 -35
  649. package/dist/v1/schema/definition/edge.d.ts.map +0 -1
  650. package/dist/v1/schema/definition/edge.js +0 -2
  651. package/dist/v1/schema/definition/edge.js.map +0 -1
  652. package/dist/v1/schema/definition/interface.d.ts +0 -22
  653. package/dist/v1/schema/definition/interface.d.ts.map +0 -1
  654. package/dist/v1/schema/definition/interface.js +0 -2
  655. package/dist/v1/schema/definition/interface.js.map +0 -1
  656. package/dist/v1/schema/definition/property.d.ts +0 -18
  657. package/dist/v1/schema/definition/property.d.ts.map +0 -1
  658. package/dist/v1/schema/definition/property.js +0 -2
  659. package/dist/v1/schema/definition/property.js.map +0 -1
  660. package/dist/v1/schema/definition/validate.d.ts +0 -5
  661. package/dist/v1/schema/definition/validate.d.ts.map +0 -1
  662. package/dist/v1/schema/definition/validate.js +0 -221
  663. package/dist/v1/schema/definition/validate.js.map +0 -1
  664. package/dist/v1/schema/dependency.meaning.d.ts +0 -30
  665. package/dist/v1/schema/dependency.meaning.d.ts.map +0 -1
  666. package/dist/v1/schema/dependency.meaning.js +0 -608
  667. package/dist/v1/schema/dependency.meaning.js.map +0 -1
  668. package/dist/v1/schema/diagnostic.d.ts.map +0 -1
  669. package/dist/v1/schema/diagnostic.js.map +0 -1
  670. package/dist/v1/schema/domain.accept.d.ts +0 -4
  671. package/dist/v1/schema/domain.accept.d.ts.map +0 -1
  672. package/dist/v1/schema/domain.accept.js +0 -27
  673. package/dist/v1/schema/domain.accept.js.map +0 -1
  674. package/dist/v1/schema/domain.codec.d.ts +0 -6
  675. package/dist/v1/schema/domain.codec.d.ts.map +0 -1
  676. package/dist/v1/schema/domain.codec.js +0 -22
  677. package/dist/v1/schema/domain.codec.js.map +0 -1
  678. package/dist/v1/schema/domain.header.d.ts +0 -15
  679. package/dist/v1/schema/domain.header.d.ts.map +0 -1
  680. package/dist/v1/schema/domain.header.js +0 -21
  681. package/dist/v1/schema/domain.header.js.map +0 -1
  682. package/dist/v1/schema/domain.ir.d.ts +0 -40
  683. package/dist/v1/schema/domain.ir.d.ts.map +0 -1
  684. package/dist/v1/schema/domain.ir.js +0 -5
  685. package/dist/v1/schema/domain.ir.js.map +0 -1
  686. package/dist/v1/schema/domain.lookup.d.ts +0 -19
  687. package/dist/v1/schema/domain.lookup.d.ts.map +0 -1
  688. package/dist/v1/schema/domain.lookup.js +0 -32
  689. package/dist/v1/schema/domain.lookup.js.map +0 -1
  690. package/dist/v1/schema/domain.resolve.d.ts +0 -26
  691. package/dist/v1/schema/domain.resolve.d.ts.map +0 -1
  692. package/dist/v1/schema/domain.resolve.js +0 -43
  693. package/dist/v1/schema/domain.resolve.js.map +0 -1
  694. package/dist/v1/schema/domain.revision.d.ts +0 -12
  695. package/dist/v1/schema/domain.revision.d.ts.map +0 -1
  696. package/dist/v1/schema/domain.revision.js +0 -18
  697. package/dist/v1/schema/domain.revision.js.map +0 -1
  698. package/dist/v1/schema/domain.validate.d.ts +0 -12
  699. package/dist/v1/schema/domain.validate.d.ts.map +0 -1
  700. package/dist/v1/schema/domain.validate.js +0 -36
  701. package/dist/v1/schema/domain.validate.js.map +0 -1
  702. package/dist/v1/schema/index.d.ts.map +0 -1
  703. package/dist/v1/schema/index.js.map +0 -1
  704. package/dist/v1/schema/metadata.d.ts +0 -13
  705. package/dist/v1/schema/metadata.d.ts.map +0 -1
  706. package/dist/v1/schema/metadata.js +0 -13
  707. package/dist/v1/schema/metadata.js.map +0 -1
  708. package/dist/v1/schema/policy/ast.d.ts +0 -77
  709. package/dist/v1/schema/policy/ast.d.ts.map +0 -1
  710. package/dist/v1/schema/policy/ast.js +0 -2
  711. package/dist/v1/schema/policy/ast.js.map +0 -1
  712. package/dist/v1/schema/policy/normalize.d.ts +0 -5
  713. package/dist/v1/schema/policy/normalize.d.ts.map +0 -1
  714. package/dist/v1/schema/policy/normalize.js +0 -230
  715. package/dist/v1/schema/policy/normalize.js.map +0 -1
  716. package/dist/v1/schema/policy/validation/branches.d.ts +0 -21
  717. package/dist/v1/schema/policy/validation/branches.d.ts.map +0 -1
  718. package/dist/v1/schema/policy/validation/branches.js +0 -155
  719. package/dist/v1/schema/policy/validation/branches.js.map +0 -1
  720. package/dist/v1/schema/policy/validation/budgets.d.ts +0 -19
  721. package/dist/v1/schema/policy/validation/budgets.d.ts.map +0 -1
  722. package/dist/v1/schema/policy/validation/budgets.js +0 -132
  723. package/dist/v1/schema/policy/validation/budgets.js.map +0 -1
  724. package/dist/v1/schema/policy/validation/context.d.ts +0 -28
  725. package/dist/v1/schema/policy/validation/context.d.ts.map +0 -1
  726. package/dist/v1/schema/policy/validation/context.js +0 -99
  727. package/dist/v1/schema/policy/validation/context.js.map +0 -1
  728. package/dist/v1/schema/policy/validation/references.d.ts +0 -3
  729. package/dist/v1/schema/policy/validation/references.d.ts.map +0 -1
  730. package/dist/v1/schema/policy/validation/references.js +0 -136
  731. package/dist/v1/schema/policy/validation/references.js.map +0 -1
  732. package/dist/v1/schema/policy/validation/typing.d.ts +0 -23
  733. package/dist/v1/schema/policy/validation/typing.d.ts.map +0 -1
  734. package/dist/v1/schema/policy/validation/typing.js +0 -360
  735. package/dist/v1/schema/policy/validation/typing.js.map +0 -1
  736. package/dist/v1/schema/policy/validation/uses.d.ts +0 -6
  737. package/dist/v1/schema/policy/validation/uses.d.ts.map +0 -1
  738. package/dist/v1/schema/policy/validation/uses.js +0 -272
  739. package/dist/v1/schema/policy/validation/uses.js.map +0 -1
  740. package/dist/v1/schema/policy/validation/validate.d.ts +0 -12
  741. package/dist/v1/schema/policy/validation/validate.d.ts.map +0 -1
  742. package/dist/v1/schema/policy/validation/validate.js +0 -24
  743. package/dist/v1/schema/policy/validation/validate.js.map +0 -1
  744. package/dist/v1/schema/reference.d.ts +0 -43
  745. package/dist/v1/schema/reference.d.ts.map +0 -1
  746. package/dist/v1/schema/reference.js +0 -31
  747. package/dist/v1/schema/reference.js.map +0 -1
  748. package/dist/v1/schema/resolution/closure.d.ts.map +0 -1
  749. package/dist/v1/schema/resolution/closure.js.map +0 -1
  750. package/dist/v1/schema/resolution/context.d.ts.map +0 -1
  751. package/dist/v1/schema/resolution/context.js.map +0 -1
  752. package/dist/v1/schema/resolution/definition.index.d.ts.map +0 -1
  753. package/dist/v1/schema/resolution/definition.index.js.map +0 -1
  754. package/dist/v1/schema/resolution/origins.d.ts.map +0 -1
  755. package/dist/v1/schema/resolution/origins.js.map +0 -1
  756. package/dist/v1/schema/resolution/value.registry.d.ts.map +0 -1
  757. package/dist/v1/schema/resolution/value.registry.js.map +0 -1
  758. package/dist/v1/schema/validation/domain.route.d.ts.map +0 -1
  759. package/dist/v1/schema/validation/domain.route.js.map +0 -1
  760. package/dist/v1/schema/validation/domain.structure.d.ts.map +0 -1
  761. package/dist/v1/schema/validation/domain.structure.js.map +0 -1
  762. package/dist/v1/schema/validation/value.d.ts.map +0 -1
  763. package/dist/v1/schema/validation/value.js.map +0 -1
  764. package/dist/v1/schema/value/extensions/node-path/schema.d.ts +0 -6
  765. package/dist/v1/schema/value/extensions/node-path/schema.d.ts.map +0 -1
  766. package/dist/v1/schema/value/extensions/node-path/schema.js +0 -19
  767. package/dist/v1/schema/value/extensions/node-path/schema.js.map +0 -1
  768. package/dist/v1/schema/value/extensions/node-path/validate.d.ts +0 -5
  769. package/dist/v1/schema/value/extensions/node-path/validate.d.ts.map +0 -1
  770. package/dist/v1/schema/value/extensions/node-path/validate.js +0 -80
  771. package/dist/v1/schema/value/extensions/node-path/validate.js.map +0 -1
  772. package/dist/v1/schema/value/full-match.d.ts +0 -7
  773. package/dist/v1/schema/value/full-match.d.ts.map +0 -1
  774. package/dist/v1/schema/value/full-match.js +0 -21
  775. package/dist/v1/schema/value/full-match.js.map +0 -1
  776. package/dist/v1/schema/value/index.d.ts +0 -14
  777. package/dist/v1/schema/value/index.d.ts.map +0 -1
  778. package/dist/v1/schema/value/index.js +0 -24
  779. package/dist/v1/schema/value/index.js.map +0 -1
  780. package/dist/v1/schema/value/instance/assertions.d.ts +0 -7
  781. package/dist/v1/schema/value/instance/assertions.d.ts.map +0 -1
  782. package/dist/v1/schema/value/instance/assertions.js +0 -59
  783. package/dist/v1/schema/value/instance/assertions.js.map +0 -1
  784. package/dist/v1/schema/value/instance/evaluator.d.ts +0 -5
  785. package/dist/v1/schema/value/instance/evaluator.d.ts.map +0 -1
  786. package/dist/v1/schema/value/instance/evaluator.js +0 -362
  787. package/dist/v1/schema/value/instance/evaluator.js.map +0 -1
  788. package/dist/v1/schema/value/instance/preparation.d.ts +0 -14
  789. package/dist/v1/schema/value/instance/preparation.d.ts.map +0 -1
  790. package/dist/v1/schema/value/instance/preparation.js +0 -137
  791. package/dist/v1/schema/value/instance/preparation.js.map +0 -1
  792. package/dist/v1/schema/value/instance/types.d.ts +0 -37
  793. package/dist/v1/schema/value/instance/types.d.ts.map +0 -1
  794. package/dist/v1/schema/value/instance/types.js +0 -10
  795. package/dist/v1/schema/value/instance/types.js.map +0 -1
  796. package/dist/v1/schema/value/instance.validate.d.ts +0 -13
  797. package/dist/v1/schema/value/instance.validate.d.ts.map +0 -1
  798. package/dist/v1/schema/value/instance.validate.js +0 -44
  799. package/dist/v1/schema/value/instance.validate.js.map +0 -1
  800. package/dist/v1/schema/value/instant.d.ts +0 -9
  801. package/dist/v1/schema/value/instant.d.ts.map +0 -1
  802. package/dist/v1/schema/value/instant.js +0 -37
  803. package/dist/v1/schema/value/instant.js.map +0 -1
  804. package/dist/v1/schema/value/location/keywords.d.ts +0 -4
  805. package/dist/v1/schema/value/location/keywords.d.ts.map +0 -1
  806. package/dist/v1/schema/value/location/keywords.js +0 -21
  807. package/dist/v1/schema/value/location/keywords.js.map +0 -1
  808. package/dist/v1/schema/value/location/pointer.d.ts +0 -5
  809. package/dist/v1/schema/value/location/pointer.d.ts.map +0 -1
  810. package/dist/v1/schema/value/location/pointer.js +0 -50
  811. package/dist/v1/schema/value/location/pointer.js.map +0 -1
  812. package/dist/v1/schema/value/location/walk.d.ts +0 -11
  813. package/dist/v1/schema/value/location/walk.d.ts.map +0 -1
  814. package/dist/v1/schema/value/location/walk.js +0 -54
  815. package/dist/v1/schema/value/location/walk.js.map +0 -1
  816. package/dist/v1/schema/value/object.d.ts +0 -5
  817. package/dist/v1/schema/value/object.d.ts.map +0 -1
  818. package/dist/v1/schema/value/object.js +0 -4
  819. package/dist/v1/schema/value/object.js.map +0 -1
  820. package/dist/v1/schema/value/ordering.d.ts +0 -11
  821. package/dist/v1/schema/value/ordering.d.ts.map +0 -1
  822. package/dist/v1/schema/value/ordering.js +0 -172
  823. package/dist/v1/schema/value/ordering.js.map +0 -1
  824. package/dist/v1/schema/value/profile/canonicalize.d.ts +0 -5
  825. package/dist/v1/schema/value/profile/canonicalize.d.ts.map +0 -1
  826. package/dist/v1/schema/value/profile/canonicalize.js +0 -133
  827. package/dist/v1/schema/value/profile/canonicalize.js.map +0 -1
  828. package/dist/v1/schema/value/profile/dialect.d.ts +0 -5
  829. package/dist/v1/schema/value/profile/dialect.d.ts.map +0 -1
  830. package/dist/v1/schema/value/profile/dialect.js +0 -36
  831. package/dist/v1/schema/value/profile/dialect.js.map +0 -1
  832. package/dist/v1/schema/value/profile/json.validate.d.ts +0 -3
  833. package/dist/v1/schema/value/profile/json.validate.d.ts.map +0 -1
  834. package/dist/v1/schema/value/profile/json.validate.js +0 -15
  835. package/dist/v1/schema/value/profile/json.validate.js.map +0 -1
  836. package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts +0 -79
  837. package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts.map +0 -1
  838. package/dist/v1/schema/value/profile/meta-schema.compiled.js +0 -2080
  839. package/dist/v1/schema/value/profile/meta-schema.compiled.js.map +0 -1
  840. package/dist/v1/schema/value/profile/meta-schema.d.ts +0 -5
  841. package/dist/v1/schema/value/profile/meta-schema.d.ts.map +0 -1
  842. package/dist/v1/schema/value/profile/meta-schema.js +0 -20
  843. package/dist/v1/schema/value/profile/meta-schema.js.map +0 -1
  844. package/dist/v1/schema/value/profile/rules.d.ts +0 -5
  845. package/dist/v1/schema/value/profile/rules.d.ts.map +0 -1
  846. package/dist/v1/schema/value/profile/rules.js +0 -152
  847. package/dist/v1/schema/value/profile/rules.js.map +0 -1
  848. package/dist/v1/schema/value/profile/validate.d.ts +0 -5
  849. package/dist/v1/schema/value/profile/validate.d.ts.map +0 -1
  850. package/dist/v1/schema/value/profile/validate.js +0 -47
  851. package/dist/v1/schema/value/profile/validate.js.map +0 -1
  852. package/dist/v1/schema/value/profile/vocabulary.d.ts +0 -3
  853. package/dist/v1/schema/value/profile/vocabulary.d.ts.map +0 -1
  854. package/dist/v1/schema/value/profile/vocabulary.js +0 -69
  855. package/dist/v1/schema/value/profile/vocabulary.js.map +0 -1
  856. package/dist/v1/schema/value/regexp/ast.d.ts +0 -22
  857. package/dist/v1/schema/value/regexp/ast.d.ts.map +0 -1
  858. package/dist/v1/schema/value/regexp/ast.js +0 -327
  859. package/dist/v1/schema/value/regexp/ast.js.map +0 -1
  860. package/dist/v1/schema/value/regexp/compile.d.ts +0 -4
  861. package/dist/v1/schema/value/regexp/compile.d.ts.map +0 -1
  862. package/dist/v1/schema/value/regexp/compile.js +0 -97
  863. package/dist/v1/schema/value/regexp/compile.js.map +0 -1
  864. package/dist/v1/schema/value/regexp/linear.d.ts +0 -20
  865. package/dist/v1/schema/value/regexp/linear.d.ts.map +0 -1
  866. package/dist/v1/schema/value/regexp/linear.js +0 -24
  867. package/dist/v1/schema/value/regexp/linear.js.map +0 -1
  868. package/dist/v1/schema/value/regexp/lower.d.ts +0 -4
  869. package/dist/v1/schema/value/regexp/lower.d.ts.map +0 -1
  870. package/dist/v1/schema/value/regexp/lower.js +0 -27
  871. package/dist/v1/schema/value/regexp/lower.js.map +0 -1
  872. package/dist/v1/schema/value/regexp/matcher.d.ts +0 -8
  873. package/dist/v1/schema/value/regexp/matcher.d.ts.map +0 -1
  874. package/dist/v1/schema/value/regexp/matcher.js +0 -51
  875. package/dist/v1/schema/value/regexp/matcher.js.map +0 -1
  876. package/dist/v1/schema/value/regexp/pattern.d.ts +0 -3
  877. package/dist/v1/schema/value/regexp/pattern.d.ts.map +0 -1
  878. package/dist/v1/schema/value/regexp/pattern.js +0 -39
  879. package/dist/v1/schema/value/regexp/pattern.js.map +0 -1
  880. package/dist/v1/schema/value/regexp/syntax.d.ts +0 -3
  881. package/dist/v1/schema/value/regexp/syntax.d.ts.map +0 -1
  882. package/dist/v1/schema/value/regexp/syntax.js +0 -6
  883. package/dist/v1/schema/value/regexp/syntax.js.map +0 -1
  884. package/dist/v1/schema/value/registry.d.ts +0 -22
  885. package/dist/v1/schema/value/registry.d.ts.map +0 -1
  886. package/dist/v1/schema/value/registry.js +0 -2
  887. package/dist/v1/schema/value/registry.js.map +0 -1
  888. package/dist/v1/schema/value/resources/closure.d.ts +0 -12
  889. package/dist/v1/schema/value/resources/closure.d.ts.map +0 -1
  890. package/dist/v1/schema/value/resources/closure.js +0 -59
  891. package/dist/v1/schema/value/resources/closure.js.map +0 -1
  892. package/dist/v1/schema/value/resources/recursion.d.ts +0 -6
  893. package/dist/v1/schema/value/resources/recursion.d.ts.map +0 -1
  894. package/dist/v1/schema/value/resources/recursion.js +0 -96
  895. package/dist/v1/schema/value/resources/recursion.js.map +0 -1
  896. package/dist/v1/schema/value/resources/references.d.ts +0 -25
  897. package/dist/v1/schema/value/resources/references.d.ts.map +0 -1
  898. package/dist/v1/schema/value/resources/references.js +0 -93
  899. package/dist/v1/schema/value/resources/references.js.map +0 -1
  900. package/dist/v1/schema/value/resources/registry.index.d.ts +0 -22
  901. package/dist/v1/schema/value/resources/registry.index.d.ts.map +0 -1
  902. package/dist/v1/schema/value/resources/registry.index.js +0 -114
  903. package/dist/v1/schema/value/resources/registry.index.js.map +0 -1
  904. package/dist/v1/schema/value/schema.d.ts +0 -26
  905. package/dist/v1/schema/value/schema.d.ts.map +0 -1
  906. package/dist/v1/schema/value/schema.js +0 -13
  907. package/dist/v1/schema/value/schema.js.map +0 -1
  908. package/dist/v1/schema/view/declaration.d.ts +0 -14
  909. package/dist/v1/schema/view/declaration.d.ts.map +0 -1
  910. package/dist/v1/schema/view/declaration.js +0 -2
  911. package/dist/v1/schema/view/declaration.js.map +0 -1
  912. package/dist/v1/schema/view/validate.d.ts +0 -4
  913. package/dist/v1/schema/view/validate.d.ts.map +0 -1
  914. package/dist/v1/schema/view/validate.js +0 -22
  915. package/dist/v1/schema/view/validate.js.map +0 -1
  916. package/dist/v1/schema.d.ts +0 -3
  917. package/dist/v1/schema.d.ts.map +0 -1
  918. package/dist/v1/schema.js +0 -3
  919. package/dist/v1/schema.js.map +0 -1
  920. package/dist/v1.d.ts.map +0 -1
  921. package/dist/v1.js.map +0 -1
  922. package/dist/value/accept.d.ts.map +0 -1
  923. package/dist/value/accept.js.map +0 -1
  924. package/dist/value/canonical.d.ts.map +0 -1
  925. package/dist/value/canonical.js.map +0 -1
  926. package/dist/value/decode.d.ts.map +0 -1
  927. package/dist/value/decode.js.map +0 -1
  928. package/dist/value/equal.d.ts.map +0 -1
  929. package/dist/value/equal.js.map +0 -1
  930. package/dist/value/error.d.ts.map +0 -1
  931. package/dist/value/error.js.map +0 -1
  932. package/dist/value/index.d.ts.map +0 -1
  933. package/dist/value/index.js.map +0 -1
  934. package/dist/value/json.d.ts.map +0 -1
  935. package/dist/value/json.js.map +0 -1
  936. package/dist/value/limits.d.ts.map +0 -1
  937. package/dist/value/limits.js.map +0 -1
  938. package/dist/value/types.d.ts.map +0 -1
  939. package/dist/value/types.js.map +0 -1
  940. package/dist/value/unicode.d.ts.map +0 -1
  941. package/dist/value/unicode.js.map +0 -1
  942. package/dist/version/dispatch.d.ts.map +0 -1
  943. package/dist/version/dispatch.js.map +0 -1
  944. package/dist/version/index.d.ts.map +0 -1
  945. package/dist/version/index.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ import type { Diagnostic } from '../../validation/diagnostic.js';
2
+ import type { JsonSchema } from '../model/schema.js';
3
+ /** Validate untrusted value-schema structure with the pinned generated meta-schema validator. */
4
+ export declare function validateValueSchemaMetaSchema(schema: JsonSchema, pointer: string): readonly Diagnostic[];
@@ -0,0 +1,19 @@
1
+ import { diagnostic } from '../../validation/diagnostic.js';
2
+ import validateMetaSchema from './meta-schema.compiled.js';
3
+ const validate = validateMetaSchema;
4
+ /** Validate untrusted value-schema structure with the pinned generated meta-schema validator. */
5
+ export function validateValueSchemaMetaSchema(schema, pointer) {
6
+ try {
7
+ if (validate(schema))
8
+ return [];
9
+ return (validate.errors ?? []).map((error) => diagnostic('VS_META_SCHEMA', `${pointer}${error.instancePath}`, `Astrale V1 value-schema meta-schema rejected the schema: ${error.message ?? error.keyword}.`));
10
+ }
11
+ catch (error) {
12
+ return [
13
+ diagnostic('VS_META_SCHEMA', pointer, `Astrale V1 value-schema meta-schema validation failed closed: ${errorMessage(error)}.`),
14
+ ];
15
+ }
16
+ }
17
+ function errorMessage(error) {
18
+ return error instanceof Error ? error.message : String(error);
19
+ }
@@ -0,0 +1,3 @@
1
+ import type { Diagnostic } from '../../validation/diagnostic.js';
2
+ import type { JsonSchema, ValueSchemaContext } from '../model/schema.js';
3
+ export declare function validateSchemaProfile(schema: JsonSchema, context: ValueSchemaContext, pointer: string): readonly Diagnostic[];
@@ -0,0 +1,141 @@
1
+ import { json } from '@astrale-os/kernel-dsl/value';
2
+ import { diagnostic } from '../../validation/diagnostic.js';
3
+ import { blob, BLOB_VALUE_KIND } from '../model/blob.js';
4
+ import { isValueObject as isJsonObject } from '../model/object.js';
5
+ import { VALUE_SCHEMA_DIALECT } from '../model/schema.js';
6
+ import { isIRegexp } from '../regexp/syntax.js';
7
+ import { walkSchema } from '../syntax/walk.js';
8
+ import { FORBIDDEN_DYNAMIC_KEYWORDS, STANDARD_SCHEMA_KEYWORDS } from './vocabulary.js';
9
+ export function validateSchemaProfile(schema, context, pointer) {
10
+ const diagnostics = [];
11
+ walkSchema(schema, (location) => {
12
+ if (!isJsonObject(location.schema))
13
+ return;
14
+ const currentPointer = `${pointer}${location.pointer}`;
15
+ for (const keyword of Object.keys(location.schema)) {
16
+ if (!STANDARD_SCHEMA_KEYWORDS.has(keyword)) {
17
+ diagnostics.push(diagnostic('VS_KEYWORD_CLOSED', `${currentPointer}/${escapeToken(keyword)}`, `Keyword ${keyword} is outside the closed V1 Draft 2020-12 vocabulary.`));
18
+ }
19
+ if (FORBIDDEN_DYNAMIC_KEYWORDS.has(keyword)) {
20
+ diagnostics.push(diagnostic('VS_DYNAMIC_FORBIDDEN', `${currentPointer}/${escapeToken(keyword)}`, `Keyword ${keyword} is forbidden by V1.`));
21
+ }
22
+ }
23
+ if (Object.hasOwn(location.schema, '$schema')) {
24
+ if (location.depth !== 0 || location.schema.$schema !== VALUE_SCHEMA_DIALECT) {
25
+ diagnostics.push(diagnostic('VS_DIALECT', `${currentPointer}/$schema`, `Embedded-root $schema is optional, but when present must equal ${VALUE_SCHEMA_DIALECT}.`));
26
+ }
27
+ }
28
+ if (Object.hasOwn(location.schema, '$id')) {
29
+ diagnostics.push(diagnostic('VS_RESOURCE_ID', `${currentPointer}/$id`, '$id is forbidden in an embedded V1 value schema.'));
30
+ }
31
+ validateSemanticSets(location.schema, currentPointer, diagnostics);
32
+ validateValueKind(location.schema, context, location.depth, currentPointer, diagnostics);
33
+ validateRegexes(location.schema, currentPointer, diagnostics);
34
+ });
35
+ return diagnostics;
36
+ }
37
+ function validateValueKind(schema, context, depth, pointer, diagnostics) {
38
+ if (!Object.hasOwn(schema, 'x-astrale-value-kind'))
39
+ return;
40
+ if (schema['x-astrale-value-kind'] === BLOB_VALUE_KIND) {
41
+ if (context !== 'property-facet' || depth !== 0 || !isCanonicalBlobSchema(schema)) {
42
+ diagnostics.push(diagnostic('VS_VALUE_KIND', `${pointer}/x-astrale-value-kind`, 'blob must be the exact schema.values.blob output at the root of a Node property.'));
43
+ }
44
+ }
45
+ else if (schema['x-astrale-value-kind'] !== 'instant' || schema.type !== 'string') {
46
+ diagnostics.push(diagnostic('VS_VALUE_KIND', `${pointer}/x-astrale-value-kind`, 'x-astrale-value-kind is exactly instant and requires type string at the same schema location.'));
47
+ }
48
+ }
49
+ function isCanonicalBlobSchema(input) {
50
+ const properties = input.properties;
51
+ if (!isJsonObject(properties))
52
+ return false;
53
+ const size = properties.size;
54
+ const mediaType = properties.mediaType;
55
+ if (!isJsonObject(size) || !isJsonObject(mediaType))
56
+ return false;
57
+ const maxBytes = size.maximum;
58
+ if (typeof maxBytes !== 'number' || !Number.isSafeInteger(maxBytes) || maxBytes < 1) {
59
+ return false;
60
+ }
61
+ const mediaTypes = mediaType.enum;
62
+ if (mediaTypes !== undefined && (!Array.isArray(mediaTypes) || !mediaTypes.every(isString))) {
63
+ return false;
64
+ }
65
+ try {
66
+ return (json.serialize(input) ===
67
+ json.serialize(blob({ maxBytes, ...(mediaTypes === undefined ? {} : { mediaTypes }) })));
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ function isString(input) {
74
+ return typeof input === 'string';
75
+ }
76
+ function validateSemanticSets(schema, pointer, diagnostics) {
77
+ if (Array.isArray(schema.type)) {
78
+ rejectPrimitiveDuplicates(schema.type, `${pointer}/type`, 'type', diagnostics);
79
+ }
80
+ if (Array.isArray(schema.required)) {
81
+ rejectPrimitiveDuplicates(schema.required, `${pointer}/required`, 'required', diagnostics);
82
+ }
83
+ if (Array.isArray(schema.enum)) {
84
+ rejectCanonicalDuplicates(schema.enum, `${pointer}/enum`, 'enum', diagnostics);
85
+ }
86
+ if (isJsonObject(schema.dependentRequired)) {
87
+ for (const [name, dependencies] of Object.entries(schema.dependentRequired)) {
88
+ if (Array.isArray(dependencies)) {
89
+ rejectPrimitiveDuplicates(dependencies, `${pointer}/dependentRequired/${escapeToken(name)}`, 'dependentRequired', diagnostics);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ function validateRegexes(schema, pointer, diagnostics) {
95
+ if (Object.hasOwn(schema, 'fullMatch') && typeof schema.fullMatch !== 'string') {
96
+ diagnostics.push(diagnostic('VS_META_SCHEMA', `${pointer}/fullMatch`, 'fullMatch must be an I-Regexp source string.'));
97
+ }
98
+ if (typeof schema.fullMatch === 'string' && !isIRegexp(schema.fullMatch)) {
99
+ diagnostics.push(diagnostic('VS_REGEX_PORTABLE', `${pointer}/fullMatch`, 'fullMatch must satisfy the complete RFC 9485 I-Regexp syntax.'));
100
+ }
101
+ if (typeof schema.pattern === 'string' && !isIRegexp(schema.pattern)) {
102
+ diagnostics.push(diagnostic('VS_REGEX_PORTABLE', `${pointer}/pattern`, 'pattern must satisfy the complete RFC 9485 I-Regexp syntax.'));
103
+ }
104
+ if (isJsonObject(schema.patternProperties)) {
105
+ for (const pattern of Object.keys(schema.patternProperties)) {
106
+ if (!isIRegexp(pattern)) {
107
+ diagnostics.push(diagnostic('VS_REGEX_PORTABLE', `${pointer}/patternProperties/${escapeToken(pattern)}`, 'patternProperties keys must satisfy RFC 9485 I-Regexp syntax.'));
108
+ }
109
+ }
110
+ }
111
+ }
112
+ function rejectPrimitiveDuplicates(values, pointer, name, diagnostics) {
113
+ const seen = new Set();
114
+ for (const value of values) {
115
+ if (seen.has(value)) {
116
+ diagnostics.push(diagnostic('VS_META_SCHEMA', pointer, `${name} is a duplicate-free semantic set.`));
117
+ return;
118
+ }
119
+ seen.add(value);
120
+ }
121
+ }
122
+ function rejectCanonicalDuplicates(values, pointer, name, diagnostics) {
123
+ const seen = new Set();
124
+ for (const value of values) {
125
+ let key;
126
+ try {
127
+ key = json.serialize(value);
128
+ }
129
+ catch {
130
+ continue;
131
+ }
132
+ if (seen.has(key)) {
133
+ diagnostics.push(diagnostic('VS_META_SCHEMA', pointer, `${name} rejects canonically equal duplicates.`));
134
+ return;
135
+ }
136
+ seen.add(key);
137
+ }
138
+ }
139
+ function escapeToken(value) {
140
+ return value.replaceAll('~', '~0').replaceAll('/', '~1');
141
+ }
@@ -0,0 +1,4 @@
1
+ import type { Diagnostic } from '../../validation/diagnostic.js';
2
+ import type { JsonSchema, ValueSchemaContext } from '../model/schema.js';
3
+ import type { ValueSchemaRegistry } from '../reference/registry.js';
4
+ export declare function validateValueSchema(schema: JsonSchema, context: ValueSchemaContext, registry: ValueSchemaRegistry, pointer?: string): Diagnostic[];
@@ -0,0 +1,39 @@
1
+ import { compareUnicode } from '../../../addressing/ordering.js';
2
+ import { collectResourceClosure } from '../reference/closure.js';
3
+ import { validateProductiveRecursion } from '../reference/recursion.js';
4
+ import { hasNodeDefinition, indexRegistry } from '../reference/registry.index.js';
5
+ import { GRAPH_NODE_PATH_SCHEMA_ID } from '../syntax/node-path/schema.js';
6
+ import { validateNodePathExtension } from '../syntax/node-path/validate.js';
7
+ import { validateCanonicalJsonDomain } from './json.validate.js';
8
+ import { validateValueSchemaMetaSchema } from './meta-schema.js';
9
+ import { validateSchemaProfile } from './rules.js';
10
+ export function validateValueSchema(schema, context, registry, pointer = '') {
11
+ const diagnostics = [];
12
+ diagnostics.push(...validateCanonicalJsonDomain(schema, pointer));
13
+ const indexed = indexRegistry(registry, pointer);
14
+ diagnostics.push(...indexed.diagnostics);
15
+ const closure = collectResourceClosure(schema, context, indexed.index, pointer);
16
+ diagnostics.push(...closure.diagnostics);
17
+ for (const resource of closure.resources.values()) {
18
+ // The Core-owned graph locator artifact is admitted exactly by indexRegistry. It participates
19
+ // in instance evaluation, but it is not an embedded V1 value-schema resource.
20
+ if (resource.key === GRAPH_NODE_PATH_SCHEMA_ID)
21
+ continue;
22
+ const resourcePointer = resource.diagnosticPointer ?? pointer;
23
+ diagnostics.push(...validateValueSchemaMetaSchema(resource.schema, resourcePointer));
24
+ diagnostics.push(...validateCanonicalJsonDomain(resource.schema, resourcePointer));
25
+ diagnostics.push(...validateSchemaProfile(resource.schema, context, resourcePointer));
26
+ diagnostics.push(...validateNodePathExtension(resource.schema, context, resourcePointer, (ref) => hasNodeDefinition(indexed.index, ref, resource.ownerOrigin)));
27
+ }
28
+ diagnostics.push(...validateProductiveRecursion(closure.resources, closure.resolutions));
29
+ return orderAndDeduplicate(diagnostics);
30
+ }
31
+ function orderAndDeduplicate(diagnostics) {
32
+ const unique = new Map();
33
+ for (const value of diagnostics) {
34
+ unique.set(`${value.pointer}\u0000${value.code}\u0000${value.ref ?? ''}\u0000${value.message}`, value);
35
+ }
36
+ return [...unique.values()].sort((left, right) => compareUnicode(left.pointer, right.pointer) ||
37
+ compareUnicode(left.code, right.code) ||
38
+ compareUnicode(left.message, right.message));
39
+ }
@@ -0,0 +1,2 @@
1
+ export declare const STANDARD_SCHEMA_KEYWORDS: Set<string>;
2
+ export declare const FORBIDDEN_DYNAMIC_KEYWORDS: Set<string>;
@@ -0,0 +1,68 @@
1
+ export const STANDARD_SCHEMA_KEYWORDS = new Set([
2
+ '$anchor',
3
+ '$comment',
4
+ '$defs',
5
+ '$dynamicAnchor',
6
+ '$dynamicRef',
7
+ '$id',
8
+ '$ref',
9
+ '$schema',
10
+ '$vocabulary',
11
+ 'additionalProperties',
12
+ 'allOf',
13
+ 'anyOf',
14
+ 'const',
15
+ 'contains',
16
+ 'contentEncoding',
17
+ 'contentMediaType',
18
+ 'contentSchema',
19
+ 'default',
20
+ 'dependentRequired',
21
+ 'dependentSchemas',
22
+ 'deprecated',
23
+ 'description',
24
+ 'else',
25
+ 'enum',
26
+ 'examples',
27
+ 'exclusiveMaximum',
28
+ 'exclusiveMinimum',
29
+ 'format',
30
+ 'fullMatch',
31
+ 'if',
32
+ 'items',
33
+ 'maxContains',
34
+ 'maximum',
35
+ 'maxItems',
36
+ 'maxLength',
37
+ 'maxProperties',
38
+ 'minContains',
39
+ 'minimum',
40
+ 'minItems',
41
+ 'minLength',
42
+ 'minProperties',
43
+ 'multipleOf',
44
+ 'not',
45
+ 'oneOf',
46
+ 'pattern',
47
+ 'patternProperties',
48
+ 'prefixItems',
49
+ 'properties',
50
+ 'propertyNames',
51
+ 'readOnly',
52
+ 'required',
53
+ 'then',
54
+ 'title',
55
+ 'type',
56
+ 'unevaluatedItems',
57
+ 'unevaluatedProperties',
58
+ 'uniqueItems',
59
+ 'writeOnly',
60
+ 'x-astrale-path',
61
+ 'x-astrale-value-kind',
62
+ ]);
63
+ export const FORBIDDEN_DYNAMIC_KEYWORDS = new Set([
64
+ '$anchor',
65
+ '$dynamicAnchor',
66
+ '$dynamicRef',
67
+ '$vocabulary',
68
+ ]);
@@ -0,0 +1,11 @@
1
+ import type { Diagnostic } from '../../validation/diagnostic.js';
2
+ import type { JsonSchema, ValueSchemaContext } from '../model/schema.js';
3
+ import type { RegistryIndex } from './registry.index.js';
4
+ import { type ResolvedAddressReference, type SchemaResource } from './references.js';
5
+ export interface ValueSchemaResourceClosure {
6
+ readonly resources: ReadonlyMap<string, SchemaResource>;
7
+ readonly resolutions: ReadonlyMap<string, ResolvedAddressReference>;
8
+ readonly diagnostics: readonly Diagnostic[];
9
+ }
10
+ export declare function collectResourceClosure(schema: JsonSchema, context: ValueSchemaContext, index: RegistryIndex, pointer: string): ValueSchemaResourceClosure;
11
+ export declare function locationKey(resourceKey: string, pointer: string): string;
@@ -0,0 +1,51 @@
1
+ import { diagnostic } from '../../validation/diagnostic.js';
2
+ import { isValueObject as isJsonObject } from '../model/object.js';
3
+ import { hasNodePathAnnotation } from '../syntax/node-path/schema.js';
4
+ import { walkSchema } from '../syntax/walk.js';
5
+ import { resolveAddressReference, } from './references.js';
6
+ export function collectResourceClosure(schema, context, index, pointer) {
7
+ const diagnostics = [];
8
+ const resources = new Map();
9
+ const resolutions = new Map();
10
+ const initial = {
11
+ key: `urn:astrale:dsl:v1:embedded:${context}`,
12
+ schema,
13
+ ownerOrigin: index.registry.current.origin,
14
+ diagnosticPointer: pointer,
15
+ };
16
+ resources.set(initial.key, initial);
17
+ const queue = [initial];
18
+ while (queue.length > 0) {
19
+ const resource = queue.shift();
20
+ if (resource === undefined)
21
+ break;
22
+ walkSchema(resource.schema, (location) => {
23
+ if (!isJsonObject(location.schema) || !Object.hasOwn(location.schema, '$ref'))
24
+ return;
25
+ const refPointer = `${resource.diagnosticPointer ?? pointer}${location.pointer}/$ref`;
26
+ if (typeof location.schema.$ref !== 'string') {
27
+ diagnostics.push(diagnostic('VS_REFERENCE_FORM', refPointer, '$ref must be a string URI-reference.'));
28
+ return;
29
+ }
30
+ const result = resolveAddressReference(location.schema.$ref, resource, index, refPointer, hasNodePathAnnotation(location.schema));
31
+ if (result.diagnostic !== undefined)
32
+ diagnostics.push(result.diagnostic);
33
+ if (result.resolved === undefined)
34
+ return;
35
+ resolutions.set(locationKey(resource.key, location.pointer), result.resolved);
36
+ const target = result.resolved.resource;
37
+ if (resources.has(target.key))
38
+ return;
39
+ const registered = {
40
+ ...target,
41
+ diagnosticPointer: `${pointer}/registry/graphNodePath`,
42
+ };
43
+ resources.set(target.key, registered);
44
+ queue.push(registered);
45
+ });
46
+ }
47
+ return { resources, resolutions, diagnostics };
48
+ }
49
+ export function locationKey(resourceKey, pointer) {
50
+ return `${resourceKey}\u0000${pointer}`;
51
+ }
@@ -0,0 +1,5 @@
1
+ import type { Diagnostic } from '../../validation/diagnostic.js';
2
+ import type { ResolvedAddressReference, SchemaResource } from './references.js';
3
+ export declare const CONSUMING_SCHEMA_KEYWORDS: Set<string>;
4
+ export declare const NON_CONSUMING_SCHEMA_KEYWORDS: Set<string>;
5
+ export declare function validateProductiveRecursion(resources: ReadonlyMap<string, SchemaResource>, resolutions: ReadonlyMap<string, ResolvedAddressReference>): readonly Diagnostic[];
@@ -0,0 +1,95 @@
1
+ import { diagnostic } from '../../validation/diagnostic.js';
2
+ import { isValueObject as isJsonObject } from '../model/object.js';
3
+ import { SCHEMA_ARRAY_KEYWORDS, SCHEMA_MAP_KEYWORDS, SCHEMA_SINGLE_KEYWORDS, } from '../syntax/keywords.js';
4
+ import { appendPointer } from '../syntax/pointer.js';
5
+ import { isJsonSchema, walkSchema } from '../syntax/walk.js';
6
+ import { locationKey } from './closure.js';
7
+ export const CONSUMING_SCHEMA_KEYWORDS = new Set([
8
+ 'additionalProperties',
9
+ 'contains',
10
+ 'items',
11
+ 'patternProperties',
12
+ 'prefixItems',
13
+ 'properties',
14
+ 'propertyNames',
15
+ 'unevaluatedItems',
16
+ 'unevaluatedProperties',
17
+ ]);
18
+ export const NON_CONSUMING_SCHEMA_KEYWORDS = new Set([
19
+ '$defs',
20
+ 'allOf',
21
+ 'anyOf',
22
+ 'dependentSchemas',
23
+ 'else',
24
+ 'if',
25
+ 'not',
26
+ 'oneOf',
27
+ 'then',
28
+ ]);
29
+ export function validateProductiveRecursion(resources, resolutions) {
30
+ const adjacency = new Map();
31
+ const diagnosticPointers = new Map();
32
+ for (const resource of resources.values()) {
33
+ walkSchema(resource.schema, (location) => {
34
+ const source = locationKey(resource.key, location.pointer);
35
+ diagnosticPointers.set(source, `${resource.diagnosticPointer ?? ''}${location.pointer}`);
36
+ const outgoing = adjacency.get(source) ?? new Set();
37
+ adjacency.set(source, outgoing);
38
+ if (!isJsonObject(location.schema))
39
+ return;
40
+ const ref = resolutions.get(source);
41
+ if (ref !== undefined)
42
+ outgoing.add(locationKey(ref.resource.key, ref.pointer));
43
+ for (const [keyword, value] of Object.entries(location.schema)) {
44
+ if (!NON_CONSUMING_SCHEMA_KEYWORDS.has(keyword))
45
+ continue;
46
+ const keywordPointer = appendPointer(location.pointer, keyword);
47
+ if (SCHEMA_SINGLE_KEYWORDS.has(keyword) && isJsonSchema(value)) {
48
+ outgoing.add(locationKey(resource.key, keywordPointer));
49
+ continue;
50
+ }
51
+ if (SCHEMA_ARRAY_KEYWORDS.has(keyword) && Array.isArray(value)) {
52
+ value.forEach((entry, index) => {
53
+ if (isJsonSchema(entry)) {
54
+ outgoing.add(locationKey(resource.key, appendPointer(keywordPointer, index)));
55
+ }
56
+ });
57
+ continue;
58
+ }
59
+ if (SCHEMA_MAP_KEYWORDS.has(keyword) && isJsonObject(value)) {
60
+ for (const [name, entry] of Object.entries(value)) {
61
+ if (isJsonSchema(entry)) {
62
+ outgoing.add(locationKey(resource.key, appendPointer(keywordPointer, name)));
63
+ }
64
+ }
65
+ }
66
+ }
67
+ });
68
+ }
69
+ const visiting = new Set();
70
+ const visited = new Set();
71
+ for (const node of adjacency.keys()) {
72
+ const cycleAt = findCycle(node, adjacency, visiting, visited);
73
+ if (cycleAt !== undefined) {
74
+ return [
75
+ diagnostic('VS_RECURSION_PRODUCTIVE', diagnosticPointers.get(cycleAt) ?? '', 'Every recursive cycle must cross an instance-consuming schema edge.'),
76
+ ];
77
+ }
78
+ }
79
+ return [];
80
+ }
81
+ function findCycle(node, adjacency, visiting, visited) {
82
+ if (visiting.has(node))
83
+ return node;
84
+ if (visited.has(node))
85
+ return undefined;
86
+ visiting.add(node);
87
+ for (const target of adjacency.get(node) ?? []) {
88
+ const cycleAt = findCycle(target, adjacency, visiting, visited);
89
+ if (cycleAt !== undefined)
90
+ return cycleAt;
91
+ }
92
+ visiting.delete(node);
93
+ visited.add(node);
94
+ return undefined;
95
+ }
@@ -0,0 +1,17 @@
1
+ import type { Diagnostic } from '../../validation/diagnostic.js';
2
+ import type { JsonSchema } from '../model/schema.js';
3
+ import type { RegistryIndex } from './registry.index.js';
4
+ export interface SchemaResource {
5
+ readonly key: string;
6
+ readonly schema: JsonSchema;
7
+ readonly ownerOrigin: string;
8
+ readonly diagnosticPointer?: string;
9
+ }
10
+ export interface ResolvedAddressReference {
11
+ readonly resource: SchemaResource;
12
+ readonly pointer: string;
13
+ }
14
+ export declare function resolveAddressReference(ref: string, from: SchemaResource, index: RegistryIndex, pointer: string, nodePathPlacement: boolean): {
15
+ readonly resolved?: ResolvedAddressReference;
16
+ readonly diagnostic?: Diagnostic;
17
+ };
@@ -0,0 +1,45 @@
1
+ import { diagnostic } from '../../validation/diagnostic.js';
2
+ import { GRAPH_NODE_PATH_SCHEMA_ID } from '../syntax/node-path/schema.js';
3
+ import { parseJsonPointerFragment, resolvePointer, tokensToPointer } from '../syntax/pointer.js';
4
+ import { collectSchemaPointers } from '../syntax/walk.js';
5
+ export function resolveAddressReference(ref, from, index, pointer, nodePathPlacement) {
6
+ if (ref === GRAPH_NODE_PATH_SCHEMA_ID) {
7
+ if (!nodePathPlacement) {
8
+ return {
9
+ diagnostic: diagnostic('VS_REFERENCE_FORM', pointer, 'The graph NodePath schema may be referenced only beside a valid x-astrale-path annotation.', ref),
10
+ };
11
+ }
12
+ return {
13
+ resolved: {
14
+ resource: {
15
+ key: GRAPH_NODE_PATH_SCHEMA_ID,
16
+ schema: index.registry.graphNodePath,
17
+ ownerOrigin: from.ownerOrigin,
18
+ },
19
+ pointer: '',
20
+ },
21
+ };
22
+ }
23
+ if (ref.startsWith('#')) {
24
+ const tokens = parseJsonPointerFragment(ref);
25
+ if (tokens === undefined) {
26
+ return {
27
+ diagnostic: diagnostic('VS_REFERENCE_FORM', pointer, 'A local $ref must be a JSON Pointer fragment; anchors are forbidden.', ref),
28
+ };
29
+ }
30
+ return resolveTarget(from, tokens, pointer, ref);
31
+ }
32
+ return {
33
+ diagnostic: diagnostic('VS_REFERENCE_FORM', pointer, 'A $ref must be a local JSON Pointer or the graph NodePath id at its extension site.', ref),
34
+ };
35
+ }
36
+ function resolveTarget(resource, tokens, diagnosticPointer, ref) {
37
+ const target = resolvePointer(resource.schema, tokens);
38
+ const pointer = tokensToPointer(tokens);
39
+ if (target === undefined || !collectSchemaPointers(resource.schema).has(pointer)) {
40
+ return {
41
+ diagnostic: diagnostic('VS_REFERENCE_RESOLUTION', diagnosticPointer, 'The $ref does not resolve to an exact schema location in the registry.', ref),
42
+ };
43
+ }
44
+ return { resolved: { resource, pointer } };
45
+ }
@@ -0,0 +1,24 @@
1
+ import type { ClassRef } from '../../../addressing/index.js';
2
+ import type { JsonSchema } from '../model/schema.js';
3
+ export interface ValueSchemaDependency {
4
+ readonly origin: string;
5
+ readonly revision: `sha256:${string}`;
6
+ }
7
+ export interface ValueSchemaDomainRegistry {
8
+ readonly origin: string;
9
+ readonly revision?: `sha256:${string}`;
10
+ readonly dependencies: readonly ValueSchemaDependency[];
11
+ readonly nodeDefinitions: readonly ClassRef[];
12
+ }
13
+ /**
14
+ * The exact closure visible while validating one DomainSchema.
15
+ *
16
+ * The exact closure is present, but each resource may see only its owning
17
+ * Domain and that owner's exact direct dependency pins.
18
+ */
19
+ export interface ValueSchemaRegistry {
20
+ readonly current: ValueSchemaDomainRegistry;
21
+ readonly directDependencies: readonly ValueSchemaDomainRegistry[];
22
+ readonly transitiveDependencies: readonly ValueSchemaDomainRegistry[];
23
+ readonly graphNodePath: JsonSchema;
24
+ }
@@ -0,0 +1,14 @@
1
+ import type { ClassRef } from '../../../addressing/index.js';
2
+ import type { Diagnostic } from '../../validation/diagnostic.js';
3
+ import type { ValueSchemaDomainRegistry, ValueSchemaRegistry } from './registry.js';
4
+ export interface RegistryIndex {
5
+ readonly registry: ValueSchemaRegistry;
6
+ readonly domains: ReadonlyMap<string, ValueSchemaDomainRegistry>;
7
+ readonly dependenciesByOwner: ReadonlyMap<string, ReadonlyMap<string, string>>;
8
+ }
9
+ export declare function indexRegistry(registry: ValueSchemaRegistry, pointer: string): {
10
+ readonly index: RegistryIndex;
11
+ readonly diagnostics: readonly Diagnostic[];
12
+ };
13
+ export declare function isOriginVisibleFrom(index: RegistryIndex, ownerOrigin: string, targetOrigin: string): boolean;
14
+ export declare function hasNodeDefinition(index: RegistryIndex, ref: ClassRef, ownerOrigin: string): boolean;
@@ -0,0 +1,76 @@
1
+ import { definitionRefIndex } from '../../../addressing/ordering.js';
2
+ import { DOMAIN_ORIGIN_PATTERN, DOMAIN_REVISION_PATTERN } from '../../../addressing/patterns.js';
3
+ import { diagnostic } from '../../validation/diagnostic.js';
4
+ import { isValueObject as isJsonObject } from '../model/object.js';
5
+ import { JSON_SCHEMA_DIALECT } from '../model/schema.js';
6
+ import { GRAPH_NODE_PATH_SCHEMA_ID } from '../syntax/node-path/schema.js';
7
+ export function indexRegistry(registry, pointer) {
8
+ const diagnostics = [];
9
+ const domains = new Map();
10
+ domains.set(registry.current.origin, registry.current);
11
+ validateDomainRegistry(registry.current, `${pointer}/registry/current`, false, diagnostics);
12
+ const dependencies = [
13
+ ...registry.directDependencies.map((domain) => ({ domain, lane: 'directDependencies' })),
14
+ ...registry.transitiveDependencies.map((domain) => ({
15
+ domain,
16
+ lane: 'transitiveDependencies',
17
+ })),
18
+ ];
19
+ dependencies.forEach(({ domain, lane }, index) => {
20
+ const domainPointer = `${pointer}/registry/${lane}/${index}`;
21
+ validateDomainRegistry(domain, domainPointer, true, diagnostics);
22
+ if (domain.origin === registry.current.origin || domains.has(domain.origin)) {
23
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', domainPointer, `Registry origin ${domain.origin} is duplicated in the exact closure.`));
24
+ return;
25
+ }
26
+ domains.set(domain.origin, domain);
27
+ });
28
+ const dependenciesByOwner = new Map();
29
+ for (const domain of domains.values()) {
30
+ const pins = new Map(domain.dependencies.map((dependency) => [dependency.origin, dependency.revision]));
31
+ dependenciesByOwner.set(domain.origin, pins);
32
+ for (const dependency of domain.dependencies) {
33
+ const target = domains.get(dependency.origin);
34
+ if (target === undefined || target.revision !== dependency.revision) {
35
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', `${pointer}/registry/${domain.origin}/dependencies`, `Registry closure is missing exact ${dependency.origin}@${dependency.revision} required by ${domain.origin}.`));
36
+ }
37
+ }
38
+ }
39
+ validateGraphNodePathResource(registry.graphNodePath, `${pointer}/registry/graphNodePath`, diagnostics);
40
+ return { index: { registry, domains, dependenciesByOwner }, diagnostics };
41
+ }
42
+ export function isOriginVisibleFrom(index, ownerOrigin, targetOrigin) {
43
+ return (ownerOrigin === targetOrigin ||
44
+ index.dependenciesByOwner.get(ownerOrigin)?.has(targetOrigin) === true);
45
+ }
46
+ export function hasNodeDefinition(index, ref, ownerOrigin) {
47
+ if (!isOriginVisibleFrom(index, ownerOrigin, ref.origin))
48
+ return false;
49
+ return (index.domains
50
+ .get(ref.origin)
51
+ ?.nodeDefinitions.some((candidate) => definitionRefIndex(candidate) === definitionRefIndex(ref)) === true);
52
+ }
53
+ function validateDomainRegistry(domain, pointer, revisionRequired, diagnostics) {
54
+ if (!DOMAIN_ORIGIN_PATTERN.test(domain.origin)) {
55
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', `${pointer}/origin`, 'Registry origin is invalid.'));
56
+ }
57
+ if ((revisionRequired && domain.revision === undefined) ||
58
+ (domain.revision !== undefined && !DOMAIN_REVISION_PATTERN.test(domain.revision))) {
59
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', `${pointer}/revision`, 'A dependency-closure registry entry requires its exact sha256 revision.'));
60
+ }
61
+ for (const ref of domain.nodeDefinitions) {
62
+ if (ref.origin !== domain.origin) {
63
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', `${pointer}/nodeDefinitions`, 'A registry domain can list only its own Node Definitions.'));
64
+ }
65
+ }
66
+ }
67
+ function validateGraphNodePathResource(schema, pointer, diagnostics) {
68
+ if (!isJsonObject(schema) ||
69
+ schema.$schema !== JSON_SCHEMA_DIALECT ||
70
+ schema.$id !== GRAPH_NODE_PATH_SCHEMA_ID ||
71
+ schema.type !== 'string' ||
72
+ schema.minLength !== 1 ||
73
+ schema.format !== 'astrale-node-path-v1') {
74
+ diagnostics.push(diagnostic('VS_REFERENCE_RESOLUTION', pointer, `The graph NodePath artifact must be preloaded under exact id ${GRAPH_NODE_PATH_SCHEMA_ID}.`, GRAPH_NODE_PATH_SCHEMA_ID));
75
+ }
76
+ }
@@ -0,0 +1 @@
1
+ export {};