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

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 (943) 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 +137 -0
  30. package/dist/v1/builder/callable/authoring.js +80 -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 +149 -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 +370 -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 +1050 -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 +1186 -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 +140 -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 +272 -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 +175 -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 +46 -0
  148. package/dist/v1/language/callable/model/callable.js +3 -0
  149. package/dist/v1/language/callable/resolved.d.ts +79 -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 +63 -0
  288. package/dist/v1/schema/analysis/class.js +141 -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 +27 -0
  304. package/dist/v1/schema/compatibility/comparators/callables.js +84 -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 +186 -0
  324. package/dist/v1/schema/compatibility/fields.js +88 -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 +232 -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/class.d.ts +5 -0
  378. package/dist/v1/schema/validation/class.js +247 -0
  379. package/dist/v1/schema/validation/core.d.ts +5 -0
  380. package/dist/v1/schema/validation/core.js +318 -0
  381. package/dist/v1/schema/validation/domain.d.ts +11 -0
  382. package/dist/v1/schema/validation/domain.js +36 -0
  383. package/dist/v1/schema/validation/domain.route.d.ts +1 -2
  384. package/dist/v1/schema/validation/domain.route.js +3 -4
  385. package/dist/v1/schema/validation/domain.structure.d.ts +3 -4
  386. package/dist/v1/schema/validation/domain.structure.js +230 -218
  387. package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
  388. package/dist/v1/schema/validation/policy/budgets.js +119 -0
  389. package/dist/v1/schema/validation/policy/context.d.ts +28 -0
  390. package/dist/v1/schema/validation/policy/context.js +89 -0
  391. package/dist/v1/schema/validation/policy/objects.d.ts +4 -0
  392. package/dist/v1/schema/validation/policy/objects.js +71 -0
  393. package/dist/v1/schema/validation/policy/references.d.ts +2 -0
  394. package/dist/v1/schema/validation/policy/references.js +155 -0
  395. package/dist/v1/schema/validation/policy/typing.d.ts +19 -0
  396. package/dist/v1/schema/validation/policy/typing.js +347 -0
  397. package/dist/v1/schema/validation/policy/uses.d.ts +5 -0
  398. package/dist/v1/schema/validation/policy/uses.js +196 -0
  399. package/dist/v1/schema/validation/policy/validate.d.ts +11 -0
  400. package/dist/v1/schema/validation/policy/validate.js +23 -0
  401. package/dist/v1/schema/validation/value-api.d.ts +15 -0
  402. package/dist/v1/schema/validation/value-api.js +24 -0
  403. package/dist/v1/schema/validation/value.d.ts +4 -5
  404. package/dist/v1/schema/validation/value.js +11 -10
  405. package/dist/v1/schema/validation/view.d.ts +3 -0
  406. package/dist/v1/schema/validation/view.js +29 -0
  407. package/dist/v1/value/full-match.d.ts +2 -0
  408. package/dist/v1/value/full-match.js +2 -0
  409. package/dist/v1.d.ts +1 -2
  410. package/dist/v1.js +1 -2
  411. package/dist/value/accept.d.ts +9 -1
  412. package/dist/value/accept.js +78 -6
  413. package/dist/value/canonical.d.ts +3 -1
  414. package/dist/value/canonical.js +13 -6
  415. package/dist/value/decode.d.ts +0 -1
  416. package/dist/value/decode.js +0 -1
  417. package/dist/value/equal.d.ts +0 -1
  418. package/dist/value/equal.js +0 -1
  419. package/dist/value/error.d.ts +0 -1
  420. package/dist/value/error.js +0 -1
  421. package/dist/value/immutable.optimization.d.ts +12 -0
  422. package/dist/value/immutable.optimization.js +28 -0
  423. package/dist/value/index.d.ts +1 -2
  424. package/dist/value/index.js +1 -2
  425. package/dist/value/json.d.ts +1 -2
  426. package/dist/value/json.js +1 -2
  427. package/dist/value/limits.d.ts +0 -1
  428. package/dist/value/limits.js +0 -1
  429. package/dist/value/types.d.ts +0 -1
  430. package/dist/value/types.js +0 -1
  431. package/dist/value/unicode.d.ts +1 -2
  432. package/dist/value/unicode.js +1 -1
  433. package/dist/version/dispatch.d.ts +0 -1
  434. package/dist/version/dispatch.js +0 -1
  435. package/dist/version/index.d.ts +0 -1
  436. package/dist/version/index.js +0 -1
  437. package/package.json +52 -21
  438. package/dist/index.d.ts.map +0 -1
  439. package/dist/index.js.map +0 -1
  440. package/dist/upgrade/contract.d.ts.map +0 -1
  441. package/dist/upgrade/contract.js.map +0 -1
  442. package/dist/upgrade/index.d.ts.map +0 -1
  443. package/dist/upgrade/index.js.map +0 -1
  444. package/dist/v1/addressing/index.d.ts.map +0 -1
  445. package/dist/v1/addressing/index.js.map +0 -1
  446. package/dist/v1/addressing/key.d.ts.map +0 -1
  447. package/dist/v1/addressing/key.js.map +0 -1
  448. package/dist/v1/addressing/patterns.d.ts.map +0 -1
  449. package/dist/v1/addressing/patterns.js.map +0 -1
  450. package/dist/v1/addressing/property-key.d.ts.map +0 -1
  451. package/dist/v1/addressing/property-key.js.map +0 -1
  452. package/dist/v1/addressing/ref.d.ts +0 -35
  453. package/dist/v1/addressing/ref.d.ts.map +0 -1
  454. package/dist/v1/addressing/ref.js +0 -94
  455. package/dist/v1/addressing/ref.js.map +0 -1
  456. package/dist/v1/addressing/schema-ref.d.ts +0 -8
  457. package/dist/v1/addressing/schema-ref.d.ts.map +0 -1
  458. package/dist/v1/addressing/schema-ref.js +0 -2
  459. package/dist/v1/addressing/schema-ref.js.map +0 -1
  460. package/dist/v1/builder/callable.d.ts +0 -91
  461. package/dist/v1/builder/callable.d.ts.map +0 -1
  462. package/dist/v1/builder/callable.js +0 -46
  463. package/dist/v1/builder/callable.js.map +0 -1
  464. package/dist/v1/builder/compiler/callable.d.ts +0 -20
  465. package/dist/v1/builder/compiler/callable.d.ts.map +0 -1
  466. package/dist/v1/builder/compiler/callable.js +0 -138
  467. package/dist/v1/builder/compiler/callable.js.map +0 -1
  468. package/dist/v1/builder/compiler/core.d.ts +0 -6
  469. package/dist/v1/builder/compiler/core.d.ts.map +0 -1
  470. package/dist/v1/builder/compiler/core.js +0 -44
  471. package/dist/v1/builder/compiler/core.js.map +0 -1
  472. package/dist/v1/builder/compiler/core.properties.d.ts +0 -6
  473. package/dist/v1/builder/compiler/core.properties.d.ts.map +0 -1
  474. package/dist/v1/builder/compiler/core.properties.js +0 -70
  475. package/dist/v1/builder/compiler/core.properties.js.map +0 -1
  476. package/dist/v1/builder/compiler/definition.d.ts +0 -32
  477. package/dist/v1/builder/compiler/definition.d.ts.map +0 -1
  478. package/dist/v1/builder/compiler/definition.js +0 -197
  479. package/dist/v1/builder/compiler/definition.js.map +0 -1
  480. package/dist/v1/builder/compiler/policy.d.ts +0 -17
  481. package/dist/v1/builder/compiler/policy.d.ts.map +0 -1
  482. package/dist/v1/builder/compiler/policy.js +0 -54
  483. package/dist/v1/builder/compiler/policy.js.map +0 -1
  484. package/dist/v1/builder/compiler/schema.capture.d.ts +0 -5
  485. package/dist/v1/builder/compiler/schema.capture.d.ts.map +0 -1
  486. package/dist/v1/builder/compiler/schema.capture.js +0 -85
  487. package/dist/v1/builder/compiler/schema.capture.js.map +0 -1
  488. package/dist/v1/builder/compiler/schema.context.d.ts +0 -45
  489. package/dist/v1/builder/compiler/schema.context.d.ts.map +0 -1
  490. package/dist/v1/builder/compiler/schema.context.js +0 -255
  491. package/dist/v1/builder/compiler/schema.context.js.map +0 -1
  492. package/dist/v1/builder/compiler/schema.d.ts +0 -10
  493. package/dist/v1/builder/compiler/schema.d.ts.map +0 -1
  494. package/dist/v1/builder/compiler/schema.js +0 -90
  495. package/dist/v1/builder/compiler/schema.js.map +0 -1
  496. package/dist/v1/builder/compiler/schema.ownership.d.ts +0 -9
  497. package/dist/v1/builder/compiler/schema.ownership.d.ts.map +0 -1
  498. package/dist/v1/builder/compiler/schema.ownership.js +0 -30
  499. package/dist/v1/builder/compiler/schema.ownership.js.map +0 -1
  500. package/dist/v1/builder/compiler/value.d.ts +0 -26
  501. package/dist/v1/builder/compiler/value.d.ts.map +0 -1
  502. package/dist/v1/builder/compiler/value.js +0 -160
  503. package/dist/v1/builder/compiler/value.js.map +0 -1
  504. package/dist/v1/builder/compiler/value.path.d.ts +0 -4
  505. package/dist/v1/builder/compiler/value.path.d.ts.map +0 -1
  506. package/dist/v1/builder/compiler/value.path.js +0 -21
  507. package/dist/v1/builder/compiler/value.path.js.map +0 -1
  508. package/dist/v1/builder/compiler/value.zod.d.ts +0 -33
  509. package/dist/v1/builder/compiler/value.zod.d.ts.map +0 -1
  510. package/dist/v1/builder/compiler/value.zod.js +0 -343
  511. package/dist/v1/builder/compiler/value.zod.js.map +0 -1
  512. package/dist/v1/builder/compiler/view.d.ts +0 -12
  513. package/dist/v1/builder/compiler/view.d.ts.map +0 -1
  514. package/dist/v1/builder/compiler/view.js +0 -27
  515. package/dist/v1/builder/compiler/view.js.map +0 -1
  516. package/dist/v1/builder/core.d.ts +0 -27
  517. package/dist/v1/builder/core.d.ts.map +0 -1
  518. package/dist/v1/builder/core.js +0 -21
  519. package/dist/v1/builder/core.js.map +0 -1
  520. package/dist/v1/builder/definition.d.ts +0 -155
  521. package/dist/v1/builder/definition.d.ts.map +0 -1
  522. package/dist/v1/builder/definition.js +0 -141
  523. package/dist/v1/builder/definition.js.map +0 -1
  524. package/dist/v1/builder/full-match.d.ts +0 -5
  525. package/dist/v1/builder/full-match.d.ts.map +0 -1
  526. package/dist/v1/builder/full-match.js +0 -12
  527. package/dist/v1/builder/full-match.js.map +0 -1
  528. package/dist/v1/builder/index.d.ts.map +0 -1
  529. package/dist/v1/builder/index.js.map +0 -1
  530. package/dist/v1/builder/internal/authoring.d.ts +0 -8
  531. package/dist/v1/builder/internal/authoring.d.ts.map +0 -1
  532. package/dist/v1/builder/internal/authoring.js +0 -15
  533. package/dist/v1/builder/internal/authoring.js.map +0 -1
  534. package/dist/v1/builder/internal/authoring.lazy.d.ts +0 -3
  535. package/dist/v1/builder/internal/authoring.lazy.d.ts.map +0 -1
  536. package/dist/v1/builder/internal/authoring.lazy.js +0 -14
  537. package/dist/v1/builder/internal/authoring.lazy.js.map +0 -1
  538. package/dist/v1/builder/internal/diagnostic.d.ts +0 -4
  539. package/dist/v1/builder/internal/diagnostic.d.ts.map +0 -1
  540. package/dist/v1/builder/internal/diagnostic.js +0 -16
  541. package/dist/v1/builder/internal/diagnostic.js.map +0 -1
  542. package/dist/v1/builder/internal/path.metadata.d.ts +0 -5
  543. package/dist/v1/builder/internal/path.metadata.d.ts.map +0 -1
  544. package/dist/v1/builder/internal/path.metadata.js +0 -8
  545. package/dist/v1/builder/internal/path.metadata.js.map +0 -1
  546. package/dist/v1/builder/path.d.ts +0 -9
  547. package/dist/v1/builder/path.d.ts.map +0 -1
  548. package/dist/v1/builder/path.js +0 -12
  549. package/dist/v1/builder/path.js.map +0 -1
  550. package/dist/v1/builder/policy.d.ts +0 -50
  551. package/dist/v1/builder/policy.d.ts.map +0 -1
  552. package/dist/v1/builder/policy.js +0 -79
  553. package/dist/v1/builder/policy.js.map +0 -1
  554. package/dist/v1/builder/property.d.ts +0 -37
  555. package/dist/v1/builder/property.d.ts.map +0 -1
  556. package/dist/v1/builder/property.js +0 -36
  557. package/dist/v1/builder/property.js.map +0 -1
  558. package/dist/v1/builder/schema.d.ts +0 -6
  559. package/dist/v1/builder/schema.d.ts.map +0 -1
  560. package/dist/v1/builder/schema.input.d.ts +0 -19
  561. package/dist/v1/builder/schema.input.d.ts.map +0 -1
  562. package/dist/v1/builder/schema.input.js +0 -2
  563. package/dist/v1/builder/schema.input.js.map +0 -1
  564. package/dist/v1/builder/schema.js +0 -6
  565. package/dist/v1/builder/schema.js.map +0 -1
  566. package/dist/v1/builder/value-schema.d.ts +0 -17
  567. package/dist/v1/builder/value-schema.d.ts.map +0 -1
  568. package/dist/v1/builder/value-schema.js +0 -11
  569. package/dist/v1/builder/value-schema.js.map +0 -1
  570. package/dist/v1/builder/view.d.ts +0 -19
  571. package/dist/v1/builder/view.d.ts.map +0 -1
  572. package/dist/v1/builder/view.js +0 -7
  573. package/dist/v1/builder/view.js.map +0 -1
  574. package/dist/v1/builder.d.ts +0 -3
  575. package/dist/v1/builder.d.ts.map +0 -1
  576. package/dist/v1/builder.js +0 -2
  577. package/dist/v1/builder.js.map +0 -1
  578. package/dist/v1/bundle/codec.d.ts.map +0 -1
  579. package/dist/v1/bundle/codec.js.map +0 -1
  580. package/dist/v1/bundle/index.d.ts.map +0 -1
  581. package/dist/v1/bundle/index.js.map +0 -1
  582. package/dist/v1/bundle/model.d.ts.map +0 -1
  583. package/dist/v1/bundle/model.js.map +0 -1
  584. package/dist/v1/bundle/structure.d.ts.map +0 -1
  585. package/dist/v1/bundle/structure.js.map +0 -1
  586. package/dist/v1/bundle.d.ts +0 -3
  587. package/dist/v1/bundle.d.ts.map +0 -1
  588. package/dist/v1/bundle.js +0 -3
  589. package/dist/v1/bundle.js.map +0 -1
  590. package/dist/v1/index.d.ts.map +0 -1
  591. package/dist/v1/index.js.map +0 -1
  592. package/dist/v1/schema/callable.d.ts +0 -29
  593. package/dist/v1/schema/callable.d.ts.map +0 -1
  594. package/dist/v1/schema/callable.js +0 -2
  595. package/dist/v1/schema/callable.js.map +0 -1
  596. package/dist/v1/schema/canonical/domain.d.ts.map +0 -1
  597. package/dist/v1/schema/canonical/domain.digest.d.ts.map +0 -1
  598. package/dist/v1/schema/canonical/domain.digest.js.map +0 -1
  599. package/dist/v1/schema/canonical/domain.js.map +0 -1
  600. package/dist/v1/schema/canonical/freeze.d.ts.map +0 -1
  601. package/dist/v1/schema/canonical/freeze.js.map +0 -1
  602. package/dist/v1/schema/compiled/admission.d.ts +0 -4
  603. package/dist/v1/schema/compiled/admission.d.ts.map +0 -1
  604. package/dist/v1/schema/compiled/admission.js +0 -217
  605. package/dist/v1/schema/compiled/admission.js.map +0 -1
  606. package/dist/v1/schema/compiled/authored-validator.d.ts +0 -5
  607. package/dist/v1/schema/compiled/authored-validator.d.ts.map +0 -1
  608. package/dist/v1/schema/compiled/authored-validator.js +0 -7
  609. package/dist/v1/schema/compiled/authored-validator.js.map +0 -1
  610. package/dist/v1/schema/compiled/compiler.d.ts +0 -5
  611. package/dist/v1/schema/compiled/compiler.d.ts.map +0 -1
  612. package/dist/v1/schema/compiled/compiler.js +0 -86
  613. package/dist/v1/schema/compiled/compiler.js.map +0 -1
  614. package/dist/v1/schema/compiled/model.d.ts +0 -61
  615. package/dist/v1/schema/compiled/model.d.ts.map +0 -1
  616. package/dist/v1/schema/compiled/model.js +0 -2
  617. package/dist/v1/schema/compiled/model.js.map +0 -1
  618. package/dist/v1/schema/compiled/program.d.ts +0 -5
  619. package/dist/v1/schema/compiled/program.d.ts.map +0 -1
  620. package/dist/v1/schema/compiled/program.js +0 -42
  621. package/dist/v1/schema/compiled/program.js.map +0 -1
  622. package/dist/v1/schema/compiled/validator.d.ts +0 -23
  623. package/dist/v1/schema/compiled/validator.d.ts.map +0 -1
  624. package/dist/v1/schema/compiled/validator.js +0 -62
  625. package/dist/v1/schema/compiled/validator.js.map +0 -1
  626. package/dist/v1/schema/core/declaration.d.ts +0 -17
  627. package/dist/v1/schema/core/declaration.d.ts.map +0 -1
  628. package/dist/v1/schema/core/declaration.js +0 -2
  629. package/dist/v1/schema/core/declaration.js.map +0 -1
  630. package/dist/v1/schema/core/validate.d.ts +0 -6
  631. package/dist/v1/schema/core/validate.d.ts.map +0 -1
  632. package/dist/v1/schema/core/validate.js +0 -257
  633. package/dist/v1/schema/core/validate.js.map +0 -1
  634. package/dist/v1/schema/definition/analysis.d.ts +0 -43
  635. package/dist/v1/schema/definition/analysis.d.ts.map +0 -1
  636. package/dist/v1/schema/definition/analysis.js +0 -190
  637. package/dist/v1/schema/definition/analysis.js.map +0 -1
  638. package/dist/v1/schema/definition/class.d.ts +0 -28
  639. package/dist/v1/schema/definition/class.d.ts.map +0 -1
  640. package/dist/v1/schema/definition/class.js +0 -2
  641. package/dist/v1/schema/definition/class.js.map +0 -1
  642. package/dist/v1/schema/definition/data.d.ts +0 -12
  643. package/dist/v1/schema/definition/data.d.ts.map +0 -1
  644. package/dist/v1/schema/definition/data.js +0 -3
  645. package/dist/v1/schema/definition/data.js.map +0 -1
  646. package/dist/v1/schema/definition/edge.d.ts +0 -35
  647. package/dist/v1/schema/definition/edge.d.ts.map +0 -1
  648. package/dist/v1/schema/definition/edge.js +0 -2
  649. package/dist/v1/schema/definition/edge.js.map +0 -1
  650. package/dist/v1/schema/definition/interface.d.ts +0 -22
  651. package/dist/v1/schema/definition/interface.d.ts.map +0 -1
  652. package/dist/v1/schema/definition/interface.js +0 -2
  653. package/dist/v1/schema/definition/interface.js.map +0 -1
  654. package/dist/v1/schema/definition/property.d.ts +0 -18
  655. package/dist/v1/schema/definition/property.d.ts.map +0 -1
  656. package/dist/v1/schema/definition/property.js +0 -2
  657. package/dist/v1/schema/definition/property.js.map +0 -1
  658. package/dist/v1/schema/definition/validate.d.ts +0 -5
  659. package/dist/v1/schema/definition/validate.d.ts.map +0 -1
  660. package/dist/v1/schema/definition/validate.js +0 -221
  661. package/dist/v1/schema/definition/validate.js.map +0 -1
  662. package/dist/v1/schema/dependency.meaning.d.ts +0 -30
  663. package/dist/v1/schema/dependency.meaning.d.ts.map +0 -1
  664. package/dist/v1/schema/dependency.meaning.js +0 -608
  665. package/dist/v1/schema/dependency.meaning.js.map +0 -1
  666. package/dist/v1/schema/diagnostic.d.ts.map +0 -1
  667. package/dist/v1/schema/diagnostic.js.map +0 -1
  668. package/dist/v1/schema/domain.accept.d.ts +0 -4
  669. package/dist/v1/schema/domain.accept.d.ts.map +0 -1
  670. package/dist/v1/schema/domain.accept.js +0 -27
  671. package/dist/v1/schema/domain.accept.js.map +0 -1
  672. package/dist/v1/schema/domain.codec.d.ts +0 -6
  673. package/dist/v1/schema/domain.codec.d.ts.map +0 -1
  674. package/dist/v1/schema/domain.codec.js +0 -22
  675. package/dist/v1/schema/domain.codec.js.map +0 -1
  676. package/dist/v1/schema/domain.header.d.ts +0 -15
  677. package/dist/v1/schema/domain.header.d.ts.map +0 -1
  678. package/dist/v1/schema/domain.header.js +0 -21
  679. package/dist/v1/schema/domain.header.js.map +0 -1
  680. package/dist/v1/schema/domain.ir.d.ts +0 -40
  681. package/dist/v1/schema/domain.ir.d.ts.map +0 -1
  682. package/dist/v1/schema/domain.ir.js +0 -5
  683. package/dist/v1/schema/domain.ir.js.map +0 -1
  684. package/dist/v1/schema/domain.lookup.d.ts +0 -19
  685. package/dist/v1/schema/domain.lookup.d.ts.map +0 -1
  686. package/dist/v1/schema/domain.lookup.js +0 -32
  687. package/dist/v1/schema/domain.lookup.js.map +0 -1
  688. package/dist/v1/schema/domain.resolve.d.ts +0 -26
  689. package/dist/v1/schema/domain.resolve.d.ts.map +0 -1
  690. package/dist/v1/schema/domain.resolve.js +0 -43
  691. package/dist/v1/schema/domain.resolve.js.map +0 -1
  692. package/dist/v1/schema/domain.revision.d.ts +0 -12
  693. package/dist/v1/schema/domain.revision.d.ts.map +0 -1
  694. package/dist/v1/schema/domain.revision.js +0 -18
  695. package/dist/v1/schema/domain.revision.js.map +0 -1
  696. package/dist/v1/schema/domain.validate.d.ts +0 -12
  697. package/dist/v1/schema/domain.validate.d.ts.map +0 -1
  698. package/dist/v1/schema/domain.validate.js +0 -36
  699. package/dist/v1/schema/domain.validate.js.map +0 -1
  700. package/dist/v1/schema/index.d.ts.map +0 -1
  701. package/dist/v1/schema/index.js.map +0 -1
  702. package/dist/v1/schema/metadata.d.ts +0 -13
  703. package/dist/v1/schema/metadata.d.ts.map +0 -1
  704. package/dist/v1/schema/metadata.js +0 -13
  705. package/dist/v1/schema/metadata.js.map +0 -1
  706. package/dist/v1/schema/policy/ast.d.ts +0 -77
  707. package/dist/v1/schema/policy/ast.d.ts.map +0 -1
  708. package/dist/v1/schema/policy/ast.js +0 -2
  709. package/dist/v1/schema/policy/ast.js.map +0 -1
  710. package/dist/v1/schema/policy/normalize.d.ts +0 -5
  711. package/dist/v1/schema/policy/normalize.d.ts.map +0 -1
  712. package/dist/v1/schema/policy/normalize.js +0 -230
  713. package/dist/v1/schema/policy/normalize.js.map +0 -1
  714. package/dist/v1/schema/policy/validation/branches.d.ts +0 -21
  715. package/dist/v1/schema/policy/validation/branches.d.ts.map +0 -1
  716. package/dist/v1/schema/policy/validation/branches.js +0 -155
  717. package/dist/v1/schema/policy/validation/branches.js.map +0 -1
  718. package/dist/v1/schema/policy/validation/budgets.d.ts +0 -19
  719. package/dist/v1/schema/policy/validation/budgets.d.ts.map +0 -1
  720. package/dist/v1/schema/policy/validation/budgets.js +0 -132
  721. package/dist/v1/schema/policy/validation/budgets.js.map +0 -1
  722. package/dist/v1/schema/policy/validation/context.d.ts +0 -28
  723. package/dist/v1/schema/policy/validation/context.d.ts.map +0 -1
  724. package/dist/v1/schema/policy/validation/context.js +0 -99
  725. package/dist/v1/schema/policy/validation/context.js.map +0 -1
  726. package/dist/v1/schema/policy/validation/references.d.ts +0 -3
  727. package/dist/v1/schema/policy/validation/references.d.ts.map +0 -1
  728. package/dist/v1/schema/policy/validation/references.js +0 -136
  729. package/dist/v1/schema/policy/validation/references.js.map +0 -1
  730. package/dist/v1/schema/policy/validation/typing.d.ts +0 -23
  731. package/dist/v1/schema/policy/validation/typing.d.ts.map +0 -1
  732. package/dist/v1/schema/policy/validation/typing.js +0 -360
  733. package/dist/v1/schema/policy/validation/typing.js.map +0 -1
  734. package/dist/v1/schema/policy/validation/uses.d.ts +0 -6
  735. package/dist/v1/schema/policy/validation/uses.d.ts.map +0 -1
  736. package/dist/v1/schema/policy/validation/uses.js +0 -272
  737. package/dist/v1/schema/policy/validation/uses.js.map +0 -1
  738. package/dist/v1/schema/policy/validation/validate.d.ts +0 -12
  739. package/dist/v1/schema/policy/validation/validate.d.ts.map +0 -1
  740. package/dist/v1/schema/policy/validation/validate.js +0 -24
  741. package/dist/v1/schema/policy/validation/validate.js.map +0 -1
  742. package/dist/v1/schema/reference.d.ts +0 -43
  743. package/dist/v1/schema/reference.d.ts.map +0 -1
  744. package/dist/v1/schema/reference.js +0 -31
  745. package/dist/v1/schema/reference.js.map +0 -1
  746. package/dist/v1/schema/resolution/closure.d.ts.map +0 -1
  747. package/dist/v1/schema/resolution/closure.js.map +0 -1
  748. package/dist/v1/schema/resolution/context.d.ts.map +0 -1
  749. package/dist/v1/schema/resolution/context.js.map +0 -1
  750. package/dist/v1/schema/resolution/definition.index.d.ts.map +0 -1
  751. package/dist/v1/schema/resolution/definition.index.js.map +0 -1
  752. package/dist/v1/schema/resolution/origins.d.ts.map +0 -1
  753. package/dist/v1/schema/resolution/origins.js.map +0 -1
  754. package/dist/v1/schema/resolution/value.registry.d.ts.map +0 -1
  755. package/dist/v1/schema/resolution/value.registry.js.map +0 -1
  756. package/dist/v1/schema/validation/domain.route.d.ts.map +0 -1
  757. package/dist/v1/schema/validation/domain.route.js.map +0 -1
  758. package/dist/v1/schema/validation/domain.structure.d.ts.map +0 -1
  759. package/dist/v1/schema/validation/domain.structure.js.map +0 -1
  760. package/dist/v1/schema/validation/value.d.ts.map +0 -1
  761. package/dist/v1/schema/validation/value.js.map +0 -1
  762. package/dist/v1/schema/value/extensions/node-path/schema.d.ts +0 -6
  763. package/dist/v1/schema/value/extensions/node-path/schema.d.ts.map +0 -1
  764. package/dist/v1/schema/value/extensions/node-path/schema.js +0 -19
  765. package/dist/v1/schema/value/extensions/node-path/schema.js.map +0 -1
  766. package/dist/v1/schema/value/extensions/node-path/validate.d.ts +0 -5
  767. package/dist/v1/schema/value/extensions/node-path/validate.d.ts.map +0 -1
  768. package/dist/v1/schema/value/extensions/node-path/validate.js +0 -80
  769. package/dist/v1/schema/value/extensions/node-path/validate.js.map +0 -1
  770. package/dist/v1/schema/value/full-match.d.ts +0 -7
  771. package/dist/v1/schema/value/full-match.d.ts.map +0 -1
  772. package/dist/v1/schema/value/full-match.js +0 -21
  773. package/dist/v1/schema/value/full-match.js.map +0 -1
  774. package/dist/v1/schema/value/index.d.ts +0 -14
  775. package/dist/v1/schema/value/index.d.ts.map +0 -1
  776. package/dist/v1/schema/value/index.js +0 -24
  777. package/dist/v1/schema/value/index.js.map +0 -1
  778. package/dist/v1/schema/value/instance/assertions.d.ts +0 -7
  779. package/dist/v1/schema/value/instance/assertions.d.ts.map +0 -1
  780. package/dist/v1/schema/value/instance/assertions.js +0 -59
  781. package/dist/v1/schema/value/instance/assertions.js.map +0 -1
  782. package/dist/v1/schema/value/instance/evaluator.d.ts +0 -5
  783. package/dist/v1/schema/value/instance/evaluator.d.ts.map +0 -1
  784. package/dist/v1/schema/value/instance/evaluator.js +0 -362
  785. package/dist/v1/schema/value/instance/evaluator.js.map +0 -1
  786. package/dist/v1/schema/value/instance/preparation.d.ts +0 -14
  787. package/dist/v1/schema/value/instance/preparation.d.ts.map +0 -1
  788. package/dist/v1/schema/value/instance/preparation.js +0 -137
  789. package/dist/v1/schema/value/instance/preparation.js.map +0 -1
  790. package/dist/v1/schema/value/instance/types.d.ts +0 -37
  791. package/dist/v1/schema/value/instance/types.d.ts.map +0 -1
  792. package/dist/v1/schema/value/instance/types.js +0 -10
  793. package/dist/v1/schema/value/instance/types.js.map +0 -1
  794. package/dist/v1/schema/value/instance.validate.d.ts +0 -13
  795. package/dist/v1/schema/value/instance.validate.d.ts.map +0 -1
  796. package/dist/v1/schema/value/instance.validate.js +0 -44
  797. package/dist/v1/schema/value/instance.validate.js.map +0 -1
  798. package/dist/v1/schema/value/instant.d.ts +0 -9
  799. package/dist/v1/schema/value/instant.d.ts.map +0 -1
  800. package/dist/v1/schema/value/instant.js +0 -37
  801. package/dist/v1/schema/value/instant.js.map +0 -1
  802. package/dist/v1/schema/value/location/keywords.d.ts +0 -4
  803. package/dist/v1/schema/value/location/keywords.d.ts.map +0 -1
  804. package/dist/v1/schema/value/location/keywords.js +0 -21
  805. package/dist/v1/schema/value/location/keywords.js.map +0 -1
  806. package/dist/v1/schema/value/location/pointer.d.ts +0 -5
  807. package/dist/v1/schema/value/location/pointer.d.ts.map +0 -1
  808. package/dist/v1/schema/value/location/pointer.js +0 -50
  809. package/dist/v1/schema/value/location/pointer.js.map +0 -1
  810. package/dist/v1/schema/value/location/walk.d.ts +0 -11
  811. package/dist/v1/schema/value/location/walk.d.ts.map +0 -1
  812. package/dist/v1/schema/value/location/walk.js +0 -54
  813. package/dist/v1/schema/value/location/walk.js.map +0 -1
  814. package/dist/v1/schema/value/object.d.ts +0 -5
  815. package/dist/v1/schema/value/object.d.ts.map +0 -1
  816. package/dist/v1/schema/value/object.js +0 -4
  817. package/dist/v1/schema/value/object.js.map +0 -1
  818. package/dist/v1/schema/value/ordering.d.ts +0 -11
  819. package/dist/v1/schema/value/ordering.d.ts.map +0 -1
  820. package/dist/v1/schema/value/ordering.js +0 -172
  821. package/dist/v1/schema/value/ordering.js.map +0 -1
  822. package/dist/v1/schema/value/profile/canonicalize.d.ts +0 -5
  823. package/dist/v1/schema/value/profile/canonicalize.d.ts.map +0 -1
  824. package/dist/v1/schema/value/profile/canonicalize.js +0 -133
  825. package/dist/v1/schema/value/profile/canonicalize.js.map +0 -1
  826. package/dist/v1/schema/value/profile/dialect.d.ts +0 -5
  827. package/dist/v1/schema/value/profile/dialect.d.ts.map +0 -1
  828. package/dist/v1/schema/value/profile/dialect.js +0 -36
  829. package/dist/v1/schema/value/profile/dialect.js.map +0 -1
  830. package/dist/v1/schema/value/profile/json.validate.d.ts +0 -3
  831. package/dist/v1/schema/value/profile/json.validate.d.ts.map +0 -1
  832. package/dist/v1/schema/value/profile/json.validate.js +0 -15
  833. package/dist/v1/schema/value/profile/json.validate.js.map +0 -1
  834. package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts +0 -79
  835. package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts.map +0 -1
  836. package/dist/v1/schema/value/profile/meta-schema.compiled.js +0 -2080
  837. package/dist/v1/schema/value/profile/meta-schema.compiled.js.map +0 -1
  838. package/dist/v1/schema/value/profile/meta-schema.d.ts +0 -5
  839. package/dist/v1/schema/value/profile/meta-schema.d.ts.map +0 -1
  840. package/dist/v1/schema/value/profile/meta-schema.js +0 -20
  841. package/dist/v1/schema/value/profile/meta-schema.js.map +0 -1
  842. package/dist/v1/schema/value/profile/rules.d.ts +0 -5
  843. package/dist/v1/schema/value/profile/rules.d.ts.map +0 -1
  844. package/dist/v1/schema/value/profile/rules.js +0 -152
  845. package/dist/v1/schema/value/profile/rules.js.map +0 -1
  846. package/dist/v1/schema/value/profile/validate.d.ts +0 -5
  847. package/dist/v1/schema/value/profile/validate.d.ts.map +0 -1
  848. package/dist/v1/schema/value/profile/validate.js +0 -47
  849. package/dist/v1/schema/value/profile/validate.js.map +0 -1
  850. package/dist/v1/schema/value/profile/vocabulary.d.ts +0 -3
  851. package/dist/v1/schema/value/profile/vocabulary.d.ts.map +0 -1
  852. package/dist/v1/schema/value/profile/vocabulary.js +0 -69
  853. package/dist/v1/schema/value/profile/vocabulary.js.map +0 -1
  854. package/dist/v1/schema/value/regexp/ast.d.ts +0 -22
  855. package/dist/v1/schema/value/regexp/ast.d.ts.map +0 -1
  856. package/dist/v1/schema/value/regexp/ast.js +0 -327
  857. package/dist/v1/schema/value/regexp/ast.js.map +0 -1
  858. package/dist/v1/schema/value/regexp/compile.d.ts +0 -4
  859. package/dist/v1/schema/value/regexp/compile.d.ts.map +0 -1
  860. package/dist/v1/schema/value/regexp/compile.js +0 -97
  861. package/dist/v1/schema/value/regexp/compile.js.map +0 -1
  862. package/dist/v1/schema/value/regexp/linear.d.ts +0 -20
  863. package/dist/v1/schema/value/regexp/linear.d.ts.map +0 -1
  864. package/dist/v1/schema/value/regexp/linear.js +0 -24
  865. package/dist/v1/schema/value/regexp/linear.js.map +0 -1
  866. package/dist/v1/schema/value/regexp/lower.d.ts +0 -4
  867. package/dist/v1/schema/value/regexp/lower.d.ts.map +0 -1
  868. package/dist/v1/schema/value/regexp/lower.js +0 -27
  869. package/dist/v1/schema/value/regexp/lower.js.map +0 -1
  870. package/dist/v1/schema/value/regexp/matcher.d.ts +0 -8
  871. package/dist/v1/schema/value/regexp/matcher.d.ts.map +0 -1
  872. package/dist/v1/schema/value/regexp/matcher.js +0 -51
  873. package/dist/v1/schema/value/regexp/matcher.js.map +0 -1
  874. package/dist/v1/schema/value/regexp/pattern.d.ts +0 -3
  875. package/dist/v1/schema/value/regexp/pattern.d.ts.map +0 -1
  876. package/dist/v1/schema/value/regexp/pattern.js +0 -39
  877. package/dist/v1/schema/value/regexp/pattern.js.map +0 -1
  878. package/dist/v1/schema/value/regexp/syntax.d.ts +0 -3
  879. package/dist/v1/schema/value/regexp/syntax.d.ts.map +0 -1
  880. package/dist/v1/schema/value/regexp/syntax.js +0 -6
  881. package/dist/v1/schema/value/regexp/syntax.js.map +0 -1
  882. package/dist/v1/schema/value/registry.d.ts +0 -22
  883. package/dist/v1/schema/value/registry.d.ts.map +0 -1
  884. package/dist/v1/schema/value/registry.js +0 -2
  885. package/dist/v1/schema/value/registry.js.map +0 -1
  886. package/dist/v1/schema/value/resources/closure.d.ts +0 -12
  887. package/dist/v1/schema/value/resources/closure.d.ts.map +0 -1
  888. package/dist/v1/schema/value/resources/closure.js +0 -59
  889. package/dist/v1/schema/value/resources/closure.js.map +0 -1
  890. package/dist/v1/schema/value/resources/recursion.d.ts +0 -6
  891. package/dist/v1/schema/value/resources/recursion.d.ts.map +0 -1
  892. package/dist/v1/schema/value/resources/recursion.js +0 -96
  893. package/dist/v1/schema/value/resources/recursion.js.map +0 -1
  894. package/dist/v1/schema/value/resources/references.d.ts +0 -25
  895. package/dist/v1/schema/value/resources/references.d.ts.map +0 -1
  896. package/dist/v1/schema/value/resources/references.js +0 -93
  897. package/dist/v1/schema/value/resources/references.js.map +0 -1
  898. package/dist/v1/schema/value/resources/registry.index.d.ts +0 -22
  899. package/dist/v1/schema/value/resources/registry.index.d.ts.map +0 -1
  900. package/dist/v1/schema/value/resources/registry.index.js +0 -114
  901. package/dist/v1/schema/value/resources/registry.index.js.map +0 -1
  902. package/dist/v1/schema/value/schema.d.ts +0 -26
  903. package/dist/v1/schema/value/schema.d.ts.map +0 -1
  904. package/dist/v1/schema/value/schema.js +0 -13
  905. package/dist/v1/schema/value/schema.js.map +0 -1
  906. package/dist/v1/schema/view/declaration.d.ts +0 -14
  907. package/dist/v1/schema/view/declaration.d.ts.map +0 -1
  908. package/dist/v1/schema/view/declaration.js +0 -2
  909. package/dist/v1/schema/view/declaration.js.map +0 -1
  910. package/dist/v1/schema/view/validate.d.ts +0 -4
  911. package/dist/v1/schema/view/validate.d.ts.map +0 -1
  912. package/dist/v1/schema/view/validate.js +0 -22
  913. package/dist/v1/schema/view/validate.js.map +0 -1
  914. package/dist/v1/schema.d.ts +0 -3
  915. package/dist/v1/schema.d.ts.map +0 -1
  916. package/dist/v1/schema.js +0 -3
  917. package/dist/v1/schema.js.map +0 -1
  918. package/dist/v1.d.ts.map +0 -1
  919. package/dist/v1.js.map +0 -1
  920. package/dist/value/accept.d.ts.map +0 -1
  921. package/dist/value/accept.js.map +0 -1
  922. package/dist/value/canonical.d.ts.map +0 -1
  923. package/dist/value/canonical.js.map +0 -1
  924. package/dist/value/decode.d.ts.map +0 -1
  925. package/dist/value/decode.js.map +0 -1
  926. package/dist/value/equal.d.ts.map +0 -1
  927. package/dist/value/equal.js.map +0 -1
  928. package/dist/value/error.d.ts.map +0 -1
  929. package/dist/value/error.js.map +0 -1
  930. package/dist/value/index.d.ts.map +0 -1
  931. package/dist/value/index.js.map +0 -1
  932. package/dist/value/json.d.ts.map +0 -1
  933. package/dist/value/json.js.map +0 -1
  934. package/dist/value/limits.d.ts.map +0 -1
  935. package/dist/value/limits.js.map +0 -1
  936. package/dist/value/types.d.ts.map +0 -1
  937. package/dist/value/types.js.map +0 -1
  938. package/dist/value/unicode.d.ts.map +0 -1
  939. package/dist/value/unicode.js.map +0 -1
  940. package/dist/version/dispatch.d.ts.map +0 -1
  941. package/dist/version/dispatch.js.map +0 -1
  942. package/dist/version/index.d.ts.map +0 -1
  943. package/dist/version/index.js.map +0 -1
@@ -0,0 +1,272 @@
1
+ import { Key, MethodKey } from '../addressing/index.js';
2
+ import { frozenRecord } from './namespace/member-collection.js';
3
+ import { createClasses } from './projection/classes.js';
4
+ const admittedDomains = new WeakSet();
5
+ /** True only for an immutable Domain created by DSL resolution or compiled loading. */
6
+ export function isDomain(input) {
7
+ return input !== null && typeof input === 'object' && admittedDomains.has(input);
8
+ }
9
+ /** Retain source provenance without losing the admitted root Domain identity. */
10
+ export function createSourceDomain(domain, source) {
11
+ if (!isDomain(domain))
12
+ throw new TypeError('Source provenance requires an admitted Domain.');
13
+ const resolved = Object.freeze({ ...domain, source });
14
+ admittedDomains.add(resolved);
15
+ return resolved;
16
+ }
17
+ /** Construct one resolved Definition universe and one memoized facade per closure Domain. */
18
+ export function createDomain(input) {
19
+ const entries = new Map();
20
+ for (const entry of input.entries) {
21
+ if (entries.has(entry.origin))
22
+ throw new TypeError(`Domain entry ${entry.origin} is duplicated.`);
23
+ entries.set(entry.origin, entry);
24
+ }
25
+ const root = entries.get(input.root.origin);
26
+ if (root === undefined || root.revision !== input.root.revision) {
27
+ throw new TypeError('Domain root is absent or has the wrong revision.');
28
+ }
29
+ const declarations = Object.freeze(input.entries.flatMap(({ definitions }) => definitions));
30
+ const classesByKey = createClasses(declarations, input.validation);
31
+ const definitionsByKey = createDefinitions(declarations, classesByKey, input);
32
+ const callables = createCallables(definitionsByKey, classesByKey);
33
+ const facades = new Map();
34
+ const projecting = new Set();
35
+ const project = (entry) => {
36
+ const cached = facades.get(entry.origin);
37
+ if (cached !== undefined)
38
+ return cached;
39
+ if (projecting.has(entry.origin))
40
+ throw new TypeError(`Dependency cycle reaches ${entry.origin}.`);
41
+ projecting.add(entry.origin);
42
+ const visibleEntries = reachableEntries(entry, entries);
43
+ const visibleOrigins = new Set(visibleEntries.map(({ origin }) => origin));
44
+ const local = [...definitionsByKey.values()]
45
+ .filter(({ ref }) => ref.origin === entry.origin)
46
+ .sort((left, right) => compare(left.key, right.key));
47
+ const classes = namespace(local, 'class');
48
+ const functions = namespace(local, 'function');
49
+ const policies = namespace(local, 'policy');
50
+ const views = namespace(local, 'view');
51
+ const coreNodes = namespace(local, 'core');
52
+ const domainEndpoint = Object.freeze({
53
+ kind: 'domain',
54
+ origin: entry.origin,
55
+ });
56
+ const coreEdges = Object.freeze(entry.coreEdges.map((edge) => {
57
+ const classValue = classesByKey.get(Key.of(edge.class));
58
+ if (classValue?.kind !== 'edge') {
59
+ throw new TypeError(`Core Edge has no Edge Class ${Key.of(edge.class)}.`);
60
+ }
61
+ const endpoint = (ref) => ref.kind === 'domain'
62
+ ? domainEndpoint
63
+ : requiredCoreEndpoint(definitionsByKey, callables, ref);
64
+ return Object.freeze({
65
+ class: classValue,
66
+ source: endpoint(edge.source),
67
+ target: endpoint(edge.target),
68
+ properties: edge.properties,
69
+ });
70
+ }));
71
+ const dependencies = frozenRecord(Object.entries(entry.dependencies).map(([alias, pin]) => {
72
+ const dependency = entries.get(pin.origin);
73
+ if (dependency === undefined || dependency.revision !== pin.revision) {
74
+ throw new TypeError(`Dependency alias ${alias} has no exact ${pin.origin}@${pin.revision} entry.`);
75
+ }
76
+ return [alias, project(dependency)];
77
+ }));
78
+ const definitionLookup = ((value) => {
79
+ const resolved = definitionsByKey.get(typeof value === 'string' ? value : Key.of(value));
80
+ return resolved !== undefined && visibleOrigins.has(resolved.ref.origin)
81
+ ? resolved
82
+ : undefined;
83
+ });
84
+ const domain = {
85
+ origin: entry.origin,
86
+ revision: entry.revision,
87
+ closure: Object.freeze(visibleEntries
88
+ .map(({ origin, revision }) => Object.freeze({ origin, revision }))
89
+ .sort((left, right) => compare(left.origin, right.origin))),
90
+ dependencies,
91
+ classes,
92
+ functions,
93
+ policies,
94
+ views,
95
+ core: Object.freeze({ nodes: coreNodes, edges: coreEdges }),
96
+ definition: definitionLookup,
97
+ callable(key) {
98
+ const callable = callables.get(key);
99
+ if (callable === undefined)
100
+ return undefined;
101
+ const origin = 'ref' in callable ? callable.ref.origin : callable.owner.ref.origin;
102
+ return visibleOrigins.has(origin) ? callable : undefined;
103
+ },
104
+ definitions(kind) {
105
+ return kind === undefined ? local : local.filter(({ ref }) => ref.kind === kind);
106
+ },
107
+ viewsFor(target) {
108
+ return Object.freeze(Object.values(views).filter((view) => {
109
+ if (view.target.kind === 'domain')
110
+ return target === 'domain';
111
+ if (target === 'domain')
112
+ return false;
113
+ return view.target.definitions.some((ref) => {
114
+ const selected = classesByKey.get(Key.of(ref));
115
+ if (target.kind === 'node' && selected?.kind === 'node') {
116
+ return target.satisfies(selected);
117
+ }
118
+ if (target.kind === 'edge' && selected?.kind === 'edge') {
119
+ return target.satisfies(selected);
120
+ }
121
+ return false;
122
+ });
123
+ }));
124
+ },
125
+ };
126
+ const admitted = Object.freeze(domain);
127
+ facades.set(entry.origin, admitted);
128
+ admittedDomains.add(admitted);
129
+ projecting.delete(entry.origin);
130
+ return admitted;
131
+ };
132
+ return project(root);
133
+ }
134
+ function createDefinitions(declarations, classesByKey, input) {
135
+ const definitionsByKey = new Map();
136
+ for (const value of classesByKey.values())
137
+ definitionsByKey.set(value.key, value);
138
+ for (const definition of declarations) {
139
+ if (definition.ref.kind === 'class')
140
+ continue;
141
+ if (isFunctionDefinition(definition)) {
142
+ const key = Key.of(definition.ref);
143
+ const inputFields = input.validation.callableFields(key);
144
+ const resolved = Object.freeze({
145
+ ref: definition.ref,
146
+ key,
147
+ description: definition.description,
148
+ input: definition.input,
149
+ output: definition.output,
150
+ auth: definition.auth,
151
+ policy: definition.policy,
152
+ ...(inputFields === undefined ? {} : { inputFields }),
153
+ definition,
154
+ validateInput: (value) => input.validation.callableInput(key, value),
155
+ validateInputField: (field, value) => input.validation.callableInputField(key, field, value),
156
+ validateOutput: (value) => input.validation.callableOutput(key, value),
157
+ });
158
+ definitionsByKey.set(key, resolved);
159
+ continue;
160
+ }
161
+ if (isPolicyDefinition(definition)) {
162
+ const key = Key.of(definition.ref);
163
+ definitionsByKey.set(key, Object.freeze({
164
+ ref: definition.ref,
165
+ key,
166
+ expression: definition.expression,
167
+ description: definition.description,
168
+ definition,
169
+ }));
170
+ continue;
171
+ }
172
+ if (isViewDefinition(definition)) {
173
+ const key = Key.of(definition.ref);
174
+ definitionsByKey.set(key, Object.freeze({
175
+ ref: definition.ref,
176
+ key,
177
+ target: definition.target,
178
+ description: definition.description,
179
+ definition,
180
+ }));
181
+ }
182
+ }
183
+ for (const definition of declarations) {
184
+ if (!isCoreDefinition(definition))
185
+ continue;
186
+ const classValue = classesByKey.get(Key.of(definition.class));
187
+ if (classValue?.kind !== 'node') {
188
+ throw new TypeError(`Core ${Key.of(definition.ref)} has no Node Class.`);
189
+ }
190
+ if (classValue.abstract) {
191
+ throw new TypeError(`Core ${Key.of(definition.ref)} cannot use abstract Class ${classValue.key}.`);
192
+ }
193
+ const resolved = Object.freeze({
194
+ ref: definition.ref,
195
+ key: Key.of(definition.ref),
196
+ class: classValue,
197
+ properties: definition.properties,
198
+ definition,
199
+ });
200
+ definitionsByKey.set(resolved.key, resolved);
201
+ }
202
+ return definitionsByKey;
203
+ }
204
+ function createCallables(definitions, classes) {
205
+ const callables = new Map();
206
+ for (const definition of definitions.values()) {
207
+ if (definition.ref.kind === 'function') {
208
+ callables.set(definition.key, definition);
209
+ }
210
+ }
211
+ for (const definition of classes.values()) {
212
+ if (definition.kind !== 'node')
213
+ continue;
214
+ for (const method of [...definition.methods, ...definition.static.methods]) {
215
+ callables.set(method.key, method);
216
+ }
217
+ }
218
+ return callables;
219
+ }
220
+ function reachableEntries(root, entries) {
221
+ const reachable = new Map();
222
+ const pending = [root];
223
+ while (pending.length > 0) {
224
+ const current = pending.pop();
225
+ if (reachable.has(current.origin))
226
+ continue;
227
+ reachable.set(current.origin, current);
228
+ for (const dependency of Object.values(current.dependencies)) {
229
+ const nested = entries.get(dependency.origin);
230
+ if (nested === undefined || nested.revision !== dependency.revision) {
231
+ throw new TypeError(`Domain universe has no exact ${dependency.origin}@${dependency.revision}.`);
232
+ }
233
+ pending.push(nested);
234
+ }
235
+ }
236
+ return [...reachable.values()];
237
+ }
238
+ function namespace(definitions, kind) {
239
+ return frozenRecord(definitions
240
+ .filter((value) => value.ref.kind === kind)
241
+ .map((value) => [value.ref.name, value]));
242
+ }
243
+ /** Every non-Domain Core endpoint addresses one already-resolved local Definition or Method. */
244
+ function requiredCoreEndpoint(definitions, callables, ref) {
245
+ if (ref.kind === 'method') {
246
+ const key = MethodKey.of(ref.owner, ref.name);
247
+ const method = callables.get(key);
248
+ if (method === undefined || !('owner' in method)) {
249
+ throw new TypeError(`Core endpoint ${key} is absent.`);
250
+ }
251
+ return method;
252
+ }
253
+ const value = definitions.get(Key.of(ref));
254
+ if (value === undefined)
255
+ throw new TypeError(`Core endpoint ${Key.of(ref)} is absent.`);
256
+ return value;
257
+ }
258
+ function isFunctionDefinition(value) {
259
+ return value.ref.kind === 'function';
260
+ }
261
+ function isPolicyDefinition(value) {
262
+ return value.ref.kind === 'policy';
263
+ }
264
+ function isViewDefinition(value) {
265
+ return value.ref.kind === 'view';
266
+ }
267
+ function isCoreDefinition(value) {
268
+ return value.ref.kind === 'core';
269
+ }
270
+ function compare(left, right) {
271
+ return left < right ? -1 : left > right ? 1 : 0;
272
+ }
@@ -0,0 +1,2 @@
1
+ export { isDomain } from './create.js';
2
+ export type * from './model/domain.js';
@@ -0,0 +1 @@
1
+ export { isDomain } from './create.js';
@@ -0,0 +1,59 @@
1
+ import type { DefinitionKey, DefinitionRef, Key, Revision } from '../../addressing/index.js';
2
+ import type { DomainDependency } from '../../addressing/index.js';
3
+ import type { MethodOwnerKeyOf, ResolvedCallable, ResolvedFunction } from '../../language/callable/resolved.js';
4
+ import type { AnyResolvedClass } from '../../language/class/resolved.js';
5
+ import type { ResolvedCoreDefinition, ResolvedCoreEdge } from '../../language/core/resolved.js';
6
+ import type { ResolvedPolicy } from '../../language/policy/resolved.js';
7
+ import type { ResolvedDefinition, ResolvedDefinitionOf } from '../../language/resolved.js';
8
+ import type { ResolvedView } from '../../language/view/resolved.js';
9
+ export type ClassNamespace<Classes extends Readonly<Record<string, unknown>> = Readonly<Record<string, AnyResolvedClass>>> = Readonly<Classes>;
10
+ export type FunctionNamespace<Functions extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedFunction>>> = Readonly<Functions>;
11
+ export type PolicyNamespace<Policies extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedPolicy>>> = Readonly<Policies>;
12
+ export type ViewNamespace<Views extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedView>>> = Readonly<Views>;
13
+ export interface CoreNamespace<Nodes extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedCoreDefinition>>> {
14
+ readonly nodes: Readonly<Nodes>;
15
+ readonly edges: readonly ResolvedCoreEdge[];
16
+ }
17
+ /** Erased recursive dependency projection used when no authored Schema witness is available. */
18
+ export interface DependencyDomains {
19
+ readonly [alias: string]: Domain<Readonly<Record<string, AnyResolvedClass>>, Readonly<Record<string, ResolvedFunction>>, Readonly<Record<string, ResolvedPolicy>>, Readonly<Record<string, ResolvedView>>, Readonly<Record<string, ResolvedCoreDefinition>>, Revision>;
20
+ }
21
+ export type DependencyDomainNamespace<Dependencies extends Readonly<Record<string, unknown>> = DependencyDomains> = Readonly<Dependencies>;
22
+ export interface Domain<Classes extends Readonly<Record<string, unknown>> = Readonly<Record<string, AnyResolvedClass>>, Functions extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedFunction>>, Policies extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedPolicy>>, Views extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedView>>, CoreNodes extends Readonly<Record<string, unknown>> = Readonly<Record<string, ResolvedCoreDefinition>>, RevisionValue extends Revision = Revision> {
23
+ readonly origin: Key.Origin;
24
+ readonly revision: RevisionValue;
25
+ /** Exact admitted root and transitive dependency revisions, ordered by origin. */
26
+ readonly closure: readonly DomainDependency[];
27
+ /** Exact immutable direct dependency Domains keyed by authored Schema aliases. */
28
+ readonly dependencies: DependencyDomainNamespace;
29
+ readonly classes: ClassNamespace<Classes>;
30
+ readonly functions: FunctionNamespace<Functions>;
31
+ readonly policies: PolicyNamespace<Policies>;
32
+ readonly views: ViewNamespace<Views>;
33
+ readonly core: CoreNamespace<CoreNodes>;
34
+ definition<const Ref extends DefinitionRef>(ref: Ref): ResolvedDefinitionOf<Ref['kind']> | undefined;
35
+ definition<const Origin extends Key.Origin, const Kind extends DefinitionRef['kind'], const Name extends string>(key: DefinitionKey<Origin, Kind, Name>): ResolvedDefinitionOf<Kind> | undefined;
36
+ callable(key: Key.Callable): ResolvedCallable | undefined;
37
+ definitions(): readonly ResolvedDefinition[];
38
+ definitions<const Kind extends DefinitionRef['kind']>(kind: Kind): readonly ResolvedDefinitionOf<Kind>[];
39
+ viewsFor(target: 'domain' | AnyResolvedClass): readonly Views[keyof Views][];
40
+ }
41
+ declare const DOMAIN_SOURCE_RESOLVED: unique symbol;
42
+ /** Type-only witness carried by a source that retains its exact resolved Domain. */
43
+ export interface DomainSource<Resolved extends Domain = Domain> {
44
+ readonly [DOMAIN_SOURCE_RESOLVED]: Resolved;
45
+ }
46
+ export type DomainOfSource<Source> = Source extends DomainSource<infer Resolved> ? Resolved : Domain;
47
+ export type SourceDomain<Source, Resolved extends Domain = DomainOfSource<Source>> = Resolved & {
48
+ readonly source: Source;
49
+ };
50
+ export type ClassesOf<Value> = Value extends Domain<infer Classes> ? Classes : never;
51
+ export type MethodOwnerOf<Work extends Domain, Method> = Extract<ClassesOf<Work>[keyof ClassesOf<Work>], {
52
+ readonly key: MethodOwnerKeyOf<Method>;
53
+ }>;
54
+ export type FunctionsOf<Value> = Value extends Domain<Readonly<Record<string, unknown>>, infer Functions> ? Functions : never;
55
+ export type PoliciesOf<Value> = Value extends Domain<Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>, infer Policies> ? Policies : never;
56
+ export type ViewsOf<Value> = Value extends Domain<Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>, infer Views> ? Views : never;
57
+ export type PropertyInputFor<Class extends AnyResolvedClass> = import('../../language/class/resolved.js').PropertyInputOf<Class>;
58
+ export type PropertyValuesFor<Class extends AnyResolvedClass> = ReturnType<Class['properties']['from']>;
59
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,31 @@
1
+ import type { Key as AddressKey, PropertyKey, Revision } from '../../addressing/index.js';
2
+ import type { DomainDependency, DomainDependencyMap } from '../../addressing/index.js';
3
+ import type { CoreEdge } from '../../language/core/model/core.js';
4
+ import type { Definition } from '../../language/definition.js';
5
+ import type { Diagnostic } from '../../language/validation/diagnostic.js';
6
+ import type { OrderingKind } from '../../language/value/ordering.js';
7
+ /** One admitted Schema entry in a dependency-closed Domain universe. */
8
+ export interface DomainEntryInput {
9
+ readonly origin: AddressKey.Origin;
10
+ readonly revision: Revision;
11
+ readonly dependencies: DomainDependencyMap;
12
+ readonly definitions: readonly Definition[];
13
+ readonly coreEdges: readonly CoreEdge[];
14
+ }
15
+ /** Dependency-closed, representation-neutral input to the one Domain universe constructor. */
16
+ export interface DomainInput {
17
+ readonly root: DomainDependency;
18
+ readonly entries: readonly DomainEntryInput[];
19
+ readonly validation: DomainValidation;
20
+ }
21
+ /** Already-bound validation semantics supplied by source compilation or compiled loading. */
22
+ export interface DomainValidation {
23
+ propertyExists(key: PropertyKey): boolean;
24
+ property(key: PropertyKey, input: unknown): readonly Diagnostic[];
25
+ propertyOrdering(key: PropertyKey): OrderingKind | undefined;
26
+ callableExists(key: AddressKey.Callable): boolean;
27
+ callableInput(key: AddressKey.Callable, input: unknown): readonly Diagnostic[];
28
+ callableFields(key: AddressKey.Callable): readonly string[] | undefined;
29
+ callableInputField(key: AddressKey.Callable, field: string, input: unknown): readonly Diagnostic[];
30
+ callableOutput(key: AddressKey.Callable, output: unknown): readonly Diagnostic[];
31
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { ResolvedMethod, ResolvedMethodCollection } from '../../language/callable/resolved.js';
2
+ import type { ResolvedProperty, ResolvedPropertyCollection } from '../../language/class/resolved.js';
3
+ export declare function createPropertyCollection(values: Iterable<ResolvedProperty>): ResolvedPropertyCollection;
4
+ export declare function createMethodCollection(values: Iterable<ResolvedMethod>): ResolvedMethodCollection;
5
+ export declare function frozenRecord<Value>(entries: Iterable<readonly [string, Value]>): Readonly<Record<string, Value>>;
@@ -0,0 +1,81 @@
1
+ import { PropertyKey as PropertyKeyValue } from '../../addressing/index.js';
2
+ import { createPropertyValues } from '../../language/class/property-values.js';
3
+ const PROPERTY_OPERATIONS = new Set(['byKey', 'get', 'from']);
4
+ const METHOD_OPERATIONS = new Set(['byKey', 'get']);
5
+ export function createPropertyCollection(values) {
6
+ const ordered = [...values].sort((left, right) => compare(left.key, right.key));
7
+ const byKey = frozenRecord(ordered.map((value) => [value.key, value]));
8
+ const named = uniqueNames(ordered);
9
+ const collection = {
10
+ byKey,
11
+ get(key) {
12
+ return byKey[key];
13
+ },
14
+ from(input) {
15
+ const entries = new Map();
16
+ const source = new Map();
17
+ for (const [candidate, value] of Object.entries(input)) {
18
+ const property = PropertyKeyValue.is(candidate) ? byKey[candidate] : named[candidate];
19
+ if (property === undefined) {
20
+ throw new TypeError(`Unknown or ambiguous Property ${JSON.stringify(candidate)}.`);
21
+ }
22
+ if (entries.has(property.key)) {
23
+ throw new TypeError(`Property ${property.key} is supplied through both ${JSON.stringify(source.get(property.key))} and ${JSON.stringify(candidate)}.`);
24
+ }
25
+ const diagnostics = property.validate(value);
26
+ if (diagnostics.length > 0) {
27
+ throw new TypeError(`Invalid value for Property ${property.key}: ${diagnostics.map(({ message }) => message).join('; ')}`);
28
+ }
29
+ source.set(property.key, candidate);
30
+ entries.set(property.key, value);
31
+ }
32
+ return createPropertyValues(entries);
33
+ },
34
+ *[Symbol.iterator]() {
35
+ yield* ordered;
36
+ },
37
+ };
38
+ installShortcuts(collection, named, PROPERTY_OPERATIONS);
39
+ return Object.freeze(collection);
40
+ }
41
+ export function createMethodCollection(values) {
42
+ const ordered = [...values].sort((left, right) => compare(left.key, right.key));
43
+ const byKey = frozenRecord(ordered.map((value) => [value.key, value]));
44
+ const named = uniqueNames(ordered);
45
+ const collection = {
46
+ byKey,
47
+ get(key) {
48
+ return byKey[key];
49
+ },
50
+ *[Symbol.iterator]() {
51
+ yield* ordered;
52
+ },
53
+ };
54
+ installShortcuts(collection, named, METHOD_OPERATIONS);
55
+ return Object.freeze(collection);
56
+ }
57
+ function uniqueNames(values) {
58
+ const candidates = new Map();
59
+ for (const value of values) {
60
+ const list = candidates.get(value.name) ?? [];
61
+ list.push(value);
62
+ candidates.set(value.name, list);
63
+ }
64
+ return frozenRecord([...candidates].flatMap(([name, list]) => list.length === 1 ? [[name, list[0]]] : []));
65
+ }
66
+ function installShortcuts(target, named, reserved) {
67
+ for (const [name, value] of Object.entries(named)) {
68
+ if (!reserved.has(name))
69
+ Object.defineProperty(target, name, { enumerable: true, value });
70
+ }
71
+ }
72
+ export function frozenRecord(entries) {
73
+ const output = Object.create(null);
74
+ for (const [key, value] of [...entries].sort(([left], [right]) => compare(left, right))) {
75
+ Object.defineProperty(output, key, { enumerable: true, value });
76
+ }
77
+ return Object.freeze(output);
78
+ }
79
+ function compare(left, right) {
80
+ return left < right ? -1 : left > right ? 1 : 0;
81
+ }
@@ -0,0 +1,4 @@
1
+ import type { AnyResolvedClass } from '../../language/class/resolved.js';
2
+ import type { Definition } from '../../language/definition.js';
3
+ import type { DomainValidation } from '../model/input.js';
4
+ export declare function createClasses(definitions: readonly Definition[], validation: DomainValidation): ReadonlyMap<string, AnyResolvedClass>;
@@ -0,0 +1,175 @@
1
+ import { Key, MethodKey as MethodKeyValue, PropertyKey as PropertyKeyValue, } from '../../addressing/index.js';
2
+ import { isMethodExecutable } from '../../language/callable/executable.js';
3
+ import { acceptPropertyValues } from '../../language/class/property-values.js';
4
+ import { appendPointer } from '../../language/value/syntax/pointer.js';
5
+ import { createMethodCollection, createPropertyCollection } from '../namespace/member-collection.js';
6
+ export function createClasses(definitions, validation) {
7
+ const declarations = new Map(definitions
8
+ .filter((value) => value.ref.kind === 'class')
9
+ .map((value) => [Key.of(value.ref), value]));
10
+ const resolved = new Map();
11
+ const visiting = new Set();
12
+ const resolve = (ref) => {
13
+ const key = Key.of(ref);
14
+ const cached = resolved.get(key);
15
+ if (cached !== undefined)
16
+ return cached;
17
+ if (visiting.has(key))
18
+ throw new TypeError(`Class inheritance cycle reaches ${key}.`);
19
+ const definition = declarations.get(key);
20
+ if (definition === undefined)
21
+ throw new TypeError(`Class ${key} is absent from Domain input.`);
22
+ visiting.add(key);
23
+ const parents = definition.extends.map(resolve);
24
+ if (parents.some((parent) => parent.kind !== definition.kind)) {
25
+ throw new TypeError(`Class ${key} extends a Class of another graph kind.`);
26
+ }
27
+ const shell = {};
28
+ const effectiveProperties = new Map();
29
+ let inheritedData;
30
+ for (const parent of parents) {
31
+ for (const property of parent.properties) {
32
+ effectiveProperties.set(property.key, property);
33
+ }
34
+ if (parent.kind === 'node' && inheritedData === undefined)
35
+ inheritedData = parent.data;
36
+ }
37
+ const ownProperties = [];
38
+ for (const [name, propertyDefinition] of Object.entries(definition.properties)) {
39
+ const propertyKey = PropertyKeyValue.of(ref, name);
40
+ const ordering = validation.propertyOrdering(propertyKey);
41
+ const property = Object.freeze({
42
+ owner: shell,
43
+ name,
44
+ key: propertyKey,
45
+ definition: propertyDefinition,
46
+ ...(ordering === undefined ? {} : { ordering }),
47
+ validate: (input) => validation.property(propertyKey, input),
48
+ });
49
+ ownProperties.push(property);
50
+ effectiveProperties.set(property.key, property);
51
+ }
52
+ const ownInstanceMethods = [];
53
+ const ownStaticMethods = [];
54
+ const ownData = definition.kind === 'node' && definition.data !== undefined
55
+ ? Object.freeze({ owner: shell, definition: definition.data })
56
+ : undefined;
57
+ if (definition.kind === 'node') {
58
+ for (const [name, methodDefinition] of Object.entries(definition.methods)) {
59
+ const methodKey = MethodKeyValue.of(ref, name);
60
+ const inputFields = validation.callableFields(methodKey);
61
+ const method = Object.freeze({
62
+ owner: shell,
63
+ name,
64
+ key: methodKey,
65
+ description: methodDefinition.description,
66
+ input: methodDefinition.input,
67
+ output: methodDefinition.output,
68
+ auth: methodDefinition.auth,
69
+ policy: methodDefinition.policy,
70
+ static: methodDefinition.static,
71
+ abstract: methodDefinition.abstract,
72
+ executable: isMethodExecutable(definition, methodDefinition),
73
+ ...(inputFields === undefined ? {} : { inputFields }),
74
+ definition: methodDefinition,
75
+ validateInput: (input) => validation.callableInput(methodKey, input),
76
+ validateInputField: (field, input) => validation.callableInputField(methodKey, field, input),
77
+ validateOutput: (output) => validation.callableOutput(methodKey, output),
78
+ });
79
+ (methodDefinition.static ? ownStaticMethods : ownInstanceMethods).push(method);
80
+ }
81
+ }
82
+ Object.assign(shell, {
83
+ ref: definition.ref,
84
+ key,
85
+ kind: definition.kind,
86
+ abstract: definition.abstract,
87
+ definition,
88
+ extends: Object.freeze(parents),
89
+ policies: definition.policies,
90
+ data: definition.kind === 'node' ? (ownData ?? inheritedData) : undefined,
91
+ properties: createPropertyCollection(effectiveProperties.values()),
92
+ methods: createMethodCollection(ownInstanceMethods),
93
+ static: Object.freeze({ methods: createMethodCollection(ownStaticMethods) }),
94
+ self: Object.freeze({
95
+ data: definition.kind === 'node' ? ownData : undefined,
96
+ properties: createPropertyCollection(ownProperties),
97
+ methods: createMethodCollection(ownInstanceMethods),
98
+ static: Object.freeze({ methods: createMethodCollection(ownStaticMethods) }),
99
+ }),
100
+ satisfies(selected) {
101
+ if (key === selected.key)
102
+ return true;
103
+ return parents.some((parent) => {
104
+ if (parent.kind === 'node' && selected.kind === 'node')
105
+ return parent.satisfies(selected);
106
+ if (parent.kind === 'edge' && selected.kind === 'edge')
107
+ return parent.satisfies(selected);
108
+ return false;
109
+ });
110
+ },
111
+ validateProperties(input) {
112
+ return validateProperties(definition.abstract, effectiveProperties, input);
113
+ },
114
+ });
115
+ const value = Object.freeze(shell);
116
+ resolved.set(key, value);
117
+ visiting.delete(key);
118
+ return value;
119
+ };
120
+ for (const definition of declarations.values())
121
+ resolve(definition.ref);
122
+ return resolved;
123
+ }
124
+ function validateProperties(abstract, properties, input) {
125
+ if (abstract) {
126
+ return [
127
+ {
128
+ code: 'DOMAIN_CLASS_ABSTRACT',
129
+ pointer: '/class',
130
+ message: 'An abstract Class cannot admit exact object Properties.',
131
+ },
132
+ ];
133
+ }
134
+ let values;
135
+ try {
136
+ values = acceptPropertyValues(input, '/properties');
137
+ }
138
+ catch (cause) {
139
+ return [
140
+ {
141
+ code: 'DOMAIN_PROPERTY_INPUT_INVALID',
142
+ pointer: '/properties',
143
+ message: cause instanceof Error ? cause.message : 'Properties are not canonical.',
144
+ },
145
+ ];
146
+ }
147
+ const diagnostics = [];
148
+ for (const key of Object.keys(values)) {
149
+ if (!properties.has(key)) {
150
+ diagnostics.push({
151
+ code: 'DOMAIN_PROPERTY_UNKNOWN',
152
+ pointer: appendPointer('/properties', key),
153
+ message: `Property ${key} is not effective on this Class.`,
154
+ });
155
+ }
156
+ }
157
+ for (const property of properties.values()) {
158
+ if (!Object.hasOwn(values, property.key)) {
159
+ if (property.definition.required) {
160
+ diagnostics.push({
161
+ code: 'DOMAIN_PROPERTY_REQUIRED',
162
+ pointer: appendPointer('/properties', property.key),
163
+ message: `Required Property ${property.key} is absent.`,
164
+ });
165
+ }
166
+ continue;
167
+ }
168
+ const pointer = appendPointer('/properties', property.key);
169
+ diagnostics.push(...property.validate(values[property.key]).map((item) => ({
170
+ ...item,
171
+ pointer: `${pointer}${item.pointer}`,
172
+ })));
173
+ }
174
+ return Object.freeze(diagnostics);
175
+ }
@@ -0,0 +1,18 @@
1
+ import type { Key, PropertyKey } from '../../addressing/index.js';
2
+ import type { Diagnostic } from '../../language/validation/diagnostic.js';
3
+ import type { OrderingKind } from '../../language/value/ordering.js';
4
+ import type { DomainValidation } from '../model/input.js';
5
+ export interface PropertyValidation {
6
+ readonly ordering?: OrderingKind;
7
+ validate(input: unknown): readonly Diagnostic[];
8
+ }
9
+ export interface CallableValidation {
10
+ readonly fields?: readonly string[];
11
+ validateInput(input: unknown): readonly Diagnostic[];
12
+ validateInputField(field: string, input: unknown): readonly Diagnostic[];
13
+ validateOutput(output: unknown): readonly Diagnostic[];
14
+ }
15
+ /** Build the one Domain-level router shared by source resolution and compiled loading. */
16
+ export declare function createDomainValidation(properties: ReadonlyMap<PropertyKey, PropertyValidation>, callables: ReadonlyMap<Key.Callable, CallableValidation>): DomainValidation;
17
+ export declare function combineDomainValidation(values: readonly DomainValidation[]): DomainValidation;
18
+ export declare function unknownInputField(field: string): readonly Diagnostic[];