@astrale-os/kernel-dsl 0.2.0-beta.3 → 0.2.0-beta.31

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 (769) 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 +118 -0
  30. package/dist/v1/builder/{callable.js → callable/authoring.js} +28 -7
  31. package/dist/v1/builder/class/authoring.d.ts +380 -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 +42 -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/{compiler → lowering}/callable.js +39 -38
  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/{compiler/core.properties.js → lowering/core-properties.js} +14 -8
  45. package/dist/v1/builder/lowering/core.d.ts +22 -0
  46. package/dist/v1/builder/{compiler → lowering}/core.js +17 -11
  47. package/dist/v1/builder/lowering/policy.d.ts +16 -0
  48. package/dist/v1/builder/{compiler → lowering}/policy.js +20 -14
  49. package/dist/v1/builder/{compiler/schema.capture.d.ts → lowering/schema/capture.d.ts} +2 -3
  50. package/dist/v1/builder/lowering/schema/capture.js +75 -0
  51. package/dist/v1/builder/{compiler/schema.d.ts → lowering/schema/compile.d.ts} +4 -4
  52. package/dist/v1/builder/{compiler/schema.js → lowering/schema/compile.js} +34 -44
  53. package/dist/v1/builder/lowering/schema/context.d.ts +44 -0
  54. package/dist/v1/builder/{compiler/schema.context.js → lowering/schema/context.js} +102 -81
  55. package/dist/v1/builder/lowering/schema/ownership.d.ts +8 -0
  56. package/dist/v1/builder/{compiler/schema.ownership.js → lowering/schema/ownership.js} +3 -3
  57. package/dist/v1/builder/lowering/value/compile.d.ts +15 -0
  58. package/dist/v1/builder/{compiler/value.js → lowering/value/compile.js} +44 -61
  59. package/dist/v1/builder/lowering/value/path.d.ts +3 -0
  60. package/dist/v1/builder/{compiler/value.path.js → lowering/value/path.js} +1 -2
  61. package/dist/v1/builder/{compiler/value.zod.d.ts → lowering/value/zod.d.ts} +8 -9
  62. package/dist/v1/builder/{compiler/value.zod.js → lowering/value/zod.js} +10 -11
  63. package/dist/v1/builder/lowering/view.d.ts +11 -0
  64. package/dist/v1/builder/{compiler → lowering}/view.js +7 -7
  65. package/dist/v1/builder/{policy.d.ts → policy/authoring.d.ts} +28 -17
  66. package/dist/v1/builder/policy/authoring.js +115 -0
  67. package/dist/v1/builder/schema/define.d.ts +11 -0
  68. package/dist/v1/builder/{schema.js → schema/define.js} +1 -2
  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/{internal/authoring.d.ts → schema/handle.d.ts} +1 -2
  72. package/dist/v1/builder/{internal/authoring.js → schema/handle.js} +0 -1
  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/{internal/authoring.lazy.d.ts → schema/lazy.d.ts} +0 -1
  76. package/dist/v1/builder/{internal/authoring.lazy.js → schema/lazy.js} +0 -1
  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/{internal/path.metadata.js → value/path-metadata.js} +0 -1
  83. package/dist/v1/builder/value/path.d.ts +8 -0
  84. package/dist/v1/builder/{path.js → value/path.js} +4 -5
  85. package/dist/v1/builder/{value-schema.d.ts → value/schema.d.ts} +2 -3
  86. package/dist/v1/builder/{value-schema.js → value/schema.js} +0 -1
  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 +961 -0
  105. package/dist/v1/compiled/admission/revision.d.ts +4 -0
  106. package/dist/v1/compiled/admission/revision.js +73 -0
  107. package/dist/v1/compiled/admission/semantics.d.ts +7 -0
  108. package/dist/v1/compiled/admission/semantics.js +1167 -0
  109. package/dist/v1/compiled/codec/json.d.ts +3 -0
  110. package/dist/v1/compiled/codec/json.js +9 -0
  111. package/dist/v1/compiled/compiler/compile.d.ts +4 -0
  112. package/dist/v1/compiled/compiler/compile.js +113 -0
  113. package/dist/v1/compiled/diagnostic.d.ts +11 -0
  114. package/dist/v1/compiled/diagnostic.js +13 -0
  115. package/dist/v1/compiled/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 +9 -0
  122. package/dist/v1/compiled/loader/load.js +147 -0
  123. package/dist/v1/compiled/model/schema.d.ts +73 -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 +264 -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 +181 -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 +14 -5
  140. package/dist/v1/index.js +6 -3
  141. package/dist/v1/language/callable/index.d.ts +2 -0
  142. package/dist/v1/language/callable/index.js +1 -0
  143. package/dist/v1/language/callable/model/callable.d.ts +33 -0
  144. package/dist/v1/language/callable/model/callable.js +1 -0
  145. package/dist/v1/language/callable/resolved.d.ts +68 -0
  146. package/dist/v1/language/callable/resolved.js +1 -0
  147. package/dist/v1/language/class/facets.d.ts +58 -0
  148. package/dist/v1/language/class/facets.js +1 -0
  149. package/dist/v1/language/class/index.d.ts +8 -0
  150. package/dist/v1/language/class/index.js +1 -0
  151. package/dist/v1/language/class/model/class.d.ts +37 -0
  152. package/dist/v1/language/class/model/class.js +1 -0
  153. package/dist/v1/{schema/definition → language/class/model}/data.d.ts +2 -3
  154. package/dist/v1/{schema/definition → language/class/model}/data.js +0 -1
  155. package/dist/v1/{schema/definition → language/class/model}/edge.d.ts +9 -6
  156. package/dist/v1/language/class/model/edge.js +1 -0
  157. package/dist/v1/language/class/model/property.d.ts +17 -0
  158. package/dist/v1/language/class/model/property.js +1 -0
  159. package/dist/v1/language/class/property-values.d.ts +15 -0
  160. package/dist/v1/language/class/property-values.js +30 -0
  161. package/dist/v1/language/class/resolved.d.ts +119 -0
  162. package/dist/v1/language/class/resolved.js +1 -0
  163. package/dist/v1/language/core/index.d.ts +2 -0
  164. package/dist/v1/language/core/index.js +1 -0
  165. package/dist/v1/language/core/model/core.d.ts +20 -0
  166. package/dist/v1/language/core/model/core.js +1 -0
  167. package/dist/v1/language/core/resolved.d.ts +21 -0
  168. package/dist/v1/language/core/resolved.js +1 -0
  169. package/dist/v1/{schema → language/definition}/metadata.d.ts +0 -1
  170. package/dist/v1/{schema → language/definition}/metadata.js +0 -1
  171. package/dist/v1/language/definition.d.ts +7 -0
  172. package/dist/v1/language/definition.js +1 -0
  173. package/dist/v1/language/index.d.ts +26 -0
  174. package/dist/v1/language/index.js +3 -0
  175. package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.d.ts +4 -5
  176. package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.js +43 -24
  177. package/dist/v1/{schema/policy/validation → language/policy/analysis}/budgets.d.ts +1 -4
  178. package/dist/v1/language/policy/analysis/budgets.js +25 -0
  179. package/dist/v1/language/policy/index.d.ts +4 -0
  180. package/dist/v1/language/policy/index.js +2 -0
  181. package/dist/v1/language/policy/model/policy.d.ts +115 -0
  182. package/dist/v1/language/policy/model/policy.js +18 -0
  183. package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
  184. package/dist/v1/{schema/policy → language/policy/normalization}/normalize.js +65 -20
  185. package/dist/v1/language/policy/resolved.d.ts +9 -0
  186. package/dist/v1/language/policy/resolved.js +1 -0
  187. package/dist/v1/language/resolved.d.ts +10 -0
  188. package/dist/v1/language/resolved.js +1 -0
  189. package/dist/v1/language/state/index.d.ts +3 -0
  190. package/dist/v1/language/state/index.js +1 -0
  191. package/dist/v1/language/state/machine.d.ts +28 -0
  192. package/dist/v1/language/state/machine.js +40 -0
  193. package/dist/v1/language/state/topology.d.ts +14 -0
  194. package/dist/v1/language/state/topology.js +69 -0
  195. package/dist/v1/language/validation/diagnostic.d.ts +8 -0
  196. package/dist/v1/language/validation/diagnostic.js +3 -0
  197. package/dist/v1/language/value/compile/fields.d.ts +3 -0
  198. package/dist/v1/language/value/compile/fields.js +60 -0
  199. package/dist/v1/{schema/compiled/program.d.ts → language/value/compile/load.d.ts} +1 -2
  200. package/dist/v1/{schema/compiled/program.js → language/value/compile/load.js} +2 -3
  201. package/dist/v1/language/value/compile/model.d.ts +27 -0
  202. package/dist/v1/language/value/compile/model.js +1 -0
  203. package/dist/v1/{schema/value/instance → language/value/evaluate}/assertions.d.ts +0 -1
  204. package/dist/v1/{schema/value/instance → language/value/evaluate}/assertions.js +1 -2
  205. package/dist/v1/{schema/value/instance → language/value/evaluate}/evaluator.d.ts +0 -1
  206. package/dist/v1/{schema/value/instance → language/value/evaluate}/evaluator.js +3 -4
  207. package/dist/v1/{schema/value/instance → language/value/evaluate}/preparation.d.ts +2 -3
  208. package/dist/v1/{schema/value/instance → language/value/evaluate}/preparation.js +6 -8
  209. package/dist/v1/language/value/evaluate/program.d.ts +3 -0
  210. package/dist/v1/language/value/evaluate/program.js +16 -0
  211. package/dist/v1/{schema/value/instance → language/value/evaluate}/types.d.ts +4 -5
  212. package/dist/v1/{schema/value/instance → language/value/evaluate}/types.js +0 -1
  213. package/dist/v1/{schema/value/instance.validate.d.ts → language/value/evaluate/validate.d.ts} +4 -5
  214. package/dist/v1/{schema/value/instance.validate.js → language/value/evaluate/validate.js} +4 -5
  215. package/dist/v1/language/value/index.d.ts +11 -0
  216. package/dist/v1/language/value/index.js +8 -0
  217. package/dist/v1/{schema/value → language/value/model}/instant.d.ts +1 -1
  218. package/dist/v1/{schema/value → language/value/model}/instant.js +1 -1
  219. package/dist/v1/{schema/value → language/value/model}/object.d.ts +1 -1
  220. package/dist/v1/{schema/value → language/value/model}/object.js +0 -1
  221. package/dist/v1/{schema/value → language/value/model}/schema.d.ts +3 -4
  222. package/dist/v1/{schema/value → language/value/model}/schema.js +0 -2
  223. package/dist/v1/{schema → language}/value/ordering.d.ts +5 -3
  224. package/dist/v1/{schema → language}/value/ordering.js +15 -13
  225. package/dist/v1/{schema → language}/value/profile/canonicalize.d.ts +2 -3
  226. package/dist/v1/{schema → language}/value/profile/canonicalize.js +4 -7
  227. package/dist/v1/language/value/profile/json.validate.d.ts +2 -0
  228. package/dist/v1/{schema → language}/value/profile/json.validate.js +1 -2
  229. package/dist/v1/{schema → language}/value/profile/meta-schema.compiled.d.ts +0 -1
  230. package/dist/v1/{schema → language}/value/profile/meta-schema.compiled.js +0 -1
  231. package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
  232. package/dist/v1/{schema → language}/value/profile/meta-schema.js +1 -2
  233. package/dist/v1/language/value/profile/rules.d.ts +3 -0
  234. package/dist/v1/{schema → language}/value/profile/rules.js +7 -50
  235. package/dist/v1/language/value/profile/validate.d.ts +4 -0
  236. package/dist/v1/{schema → language}/value/profile/validate.js +13 -21
  237. package/dist/v1/{schema → language}/value/profile/vocabulary.d.ts +0 -1
  238. package/dist/v1/{schema → language}/value/profile/vocabulary.js +0 -1
  239. package/dist/v1/language/value/reference/closure.d.ts +11 -0
  240. package/dist/v1/{schema/value/resources → language/value/reference}/closure.js +13 -21
  241. package/dist/v1/{schema/value/resources → language/value/reference}/recursion.d.ts +3 -4
  242. package/dist/v1/{schema/value/resources → language/value/reference}/recursion.js +5 -6
  243. package/dist/v1/language/value/reference/references.d.ts +17 -0
  244. package/dist/v1/language/value/reference/references.js +45 -0
  245. package/dist/v1/{schema/value → language/value/reference}/registry.d.ts +9 -7
  246. package/dist/v1/language/value/reference/registry.index.d.ts +14 -0
  247. package/dist/v1/{schema/value/resources → language/value/reference}/registry.index.js +7 -45
  248. package/dist/v1/language/value/reference/registry.js +1 -0
  249. package/dist/v1/{schema → language}/value/regexp/ast.d.ts +0 -1
  250. package/dist/v1/{schema → language}/value/regexp/ast.js +0 -1
  251. package/dist/v1/{schema → language}/value/regexp/compile.d.ts +1 -2
  252. package/dist/v1/{schema → language}/value/regexp/compile.js +8 -12
  253. package/dist/v1/{schema → language}/value/regexp/lower.d.ts +1 -2
  254. package/dist/v1/{schema → language}/value/regexp/lower.js +2 -3
  255. package/dist/v1/{schema → language}/value/regexp/matcher.d.ts +1 -2
  256. package/dist/v1/{schema → language}/value/regexp/matcher.js +0 -1
  257. package/dist/v1/{schema → language}/value/regexp/pattern.d.ts +0 -1
  258. package/dist/v1/{schema → language}/value/regexp/pattern.js +0 -1
  259. package/dist/v1/{schema → language}/value/regexp/syntax.d.ts +0 -1
  260. package/dist/v1/{schema → language}/value/regexp/syntax.js +0 -1
  261. package/dist/v1/{schema/value → language/value/syntax}/full-match.d.ts +0 -1
  262. package/dist/v1/{schema/value → language/value/syntax}/full-match.js +5 -6
  263. package/dist/v1/{schema/value/location → language/value/syntax}/keywords.d.ts +0 -1
  264. package/dist/v1/{schema/value/location → language/value/syntax}/keywords.js +0 -1
  265. package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/schema.d.ts +1 -2
  266. package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/schema.js +2 -3
  267. package/dist/v1/language/value/syntax/node-path/validate.d.ts +4 -0
  268. package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/validate.js +16 -18
  269. package/dist/v1/{schema/value/location → language/value/syntax}/pointer.d.ts +0 -1
  270. package/dist/v1/{schema/value/location → language/value/syntax}/pointer.js +1 -2
  271. package/dist/v1/{schema/value/location → language/value/syntax}/walk.d.ts +1 -2
  272. package/dist/v1/{schema/value/location → language/value/syntax}/walk.js +1 -2
  273. package/dist/v1/language/view/index.d.ts +2 -0
  274. package/dist/v1/language/view/index.js +1 -0
  275. package/dist/v1/language/view/model/view.d.ts +11 -0
  276. package/dist/v1/language/view/model/view.js +1 -0
  277. package/dist/v1/language/view/resolved.d.ts +9 -0
  278. package/dist/v1/language/view/resolved.js +1 -0
  279. package/dist/v1/schema/admission/accept.d.ts +3 -0
  280. package/dist/v1/schema/{domain.accept.js → admission/accept.js} +8 -9
  281. package/dist/v1/schema/{definition/analysis.d.ts → analysis/class.d.ts} +17 -18
  282. package/dist/v1/schema/{definition/analysis.js → analysis/class.js} +21 -30
  283. package/dist/v1/schema/canonical/domain.d.ts +2 -2
  284. package/dist/v1/schema/canonical/domain.digest.d.ts +1 -2
  285. package/dist/v1/schema/canonical/domain.digest.js +2 -6
  286. package/dist/v1/schema/canonical/domain.js +3 -224
  287. package/dist/v1/schema/canonical/freeze.d.ts +0 -1
  288. package/dist/v1/schema/canonical/freeze.js +0 -1
  289. package/dist/v1/schema/{domain.revision.d.ts → canonical/revision.d.ts} +2 -3
  290. package/dist/v1/schema/{domain.revision.js → canonical/revision.js} +7 -5
  291. package/dist/v1/schema/codec/header.d.ts +17 -0
  292. package/dist/v1/schema/codec/header.js +26 -0
  293. package/dist/v1/schema/{domain.codec.d.ts → codec/schema.d.ts} +2 -3
  294. package/dist/v1/schema/{domain.codec.js → codec/schema.js} +4 -5
  295. package/dist/v1/schema/{dependency.meaning.d.ts → compatibility/meaning.d.ts} +4 -5
  296. package/dist/v1/schema/{dependency.meaning.js → compatibility/meaning.js} +121 -124
  297. package/dist/v1/schema/{domain.lookup.d.ts → dependency/lookup.d.ts} +3 -4
  298. package/dist/v1/schema/{domain.lookup.js → dependency/lookup.js} +1 -2
  299. package/dist/v1/schema/diagnostic.d.ts +7 -7
  300. package/dist/v1/schema/diagnostic.js +9 -9
  301. package/dist/v1/schema/index.d.ts +24 -40
  302. package/dist/v1/schema/index.js +11 -18
  303. package/dist/v1/schema/model/format.d.ts +2 -0
  304. package/dist/v1/schema/model/format.js +2 -0
  305. package/dist/v1/schema/model/schema.d.ts +30 -0
  306. package/dist/v1/schema/model/schema.js +4 -0
  307. package/dist/v1/schema/normalization/domain.d.ts +2 -0
  308. package/dist/v1/schema/normalization/domain.js +210 -0
  309. package/dist/v1/schema/resolution/closure.d.ts +3 -4
  310. package/dist/v1/schema/resolution/closure.js +6 -7
  311. package/dist/v1/schema/resolution/context.d.ts +11 -12
  312. package/dist/v1/schema/resolution/context.js +82 -50
  313. package/dist/v1/schema/resolution/definition.index.d.ts +13 -35
  314. package/dist/v1/schema/resolution/definition.index.js +8 -18
  315. package/dist/v1/schema/resolution/domain.d.ts +4 -0
  316. package/dist/v1/schema/resolution/domain.js +112 -0
  317. package/dist/v1/schema/resolution/origins.d.ts +11 -14
  318. package/dist/v1/schema/resolution/origins.js +55 -46
  319. package/dist/v1/schema/resolution/value.registry.d.ts +3 -4
  320. package/dist/v1/schema/resolution/value.registry.js +7 -14
  321. package/dist/v1/schema/revision.d.ts +1 -0
  322. package/dist/v1/schema/revision.js +1 -0
  323. package/dist/v1/schema/validation/class.d.ts +5 -0
  324. package/dist/v1/schema/validation/class.js +241 -0
  325. package/dist/v1/schema/validation/core.d.ts +5 -0
  326. package/dist/v1/schema/{core/validate.js → validation/core.js} +39 -30
  327. package/dist/v1/schema/validation/domain.d.ts +11 -0
  328. package/dist/v1/schema/{domain.validate.js → validation/domain.js} +12 -12
  329. package/dist/v1/schema/validation/domain.route.d.ts +1 -2
  330. package/dist/v1/schema/validation/domain.route.js +3 -4
  331. package/dist/v1/schema/validation/domain.structure.d.ts +3 -4
  332. package/dist/v1/schema/validation/domain.structure.js +218 -210
  333. package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
  334. package/dist/v1/schema/{policy/validation → validation/policy}/budgets.js +22 -35
  335. package/dist/v1/schema/validation/policy/context.d.ts +28 -0
  336. package/dist/v1/schema/{policy/validation → validation/policy}/context.js +23 -33
  337. package/dist/v1/schema/validation/policy/objects.d.ts +4 -0
  338. package/dist/v1/schema/validation/policy/objects.js +70 -0
  339. package/dist/v1/schema/{policy/validation → validation/policy}/references.d.ts +0 -1
  340. package/dist/v1/schema/{policy/validation → validation/policy}/references.js +32 -13
  341. package/dist/v1/schema/{policy/validation → validation/policy}/typing.d.ts +4 -8
  342. package/dist/v1/schema/{policy/validation → validation/policy}/typing.js +56 -69
  343. package/dist/v1/schema/{policy/validation → validation/policy}/uses.d.ts +0 -1
  344. package/dist/v1/schema/{policy/validation → validation/policy}/uses.js +36 -113
  345. package/dist/v1/schema/{policy/validation → validation/policy}/validate.d.ts +3 -4
  346. package/dist/v1/schema/{policy/validation → validation/policy}/validate.js +0 -1
  347. package/dist/v1/schema/{value/index.d.ts → validation/value-api.d.ts} +9 -10
  348. package/dist/v1/schema/{value/index.js → validation/value-api.js} +4 -5
  349. package/dist/v1/schema/validation/value.d.ts +4 -5
  350. package/dist/v1/schema/validation/value.js +4 -9
  351. package/dist/v1/schema/validation/view.d.ts +3 -0
  352. package/dist/v1/schema/{view/validate.js → validation/view.js} +11 -4
  353. package/dist/v1/value/full-match.d.ts +2 -0
  354. package/dist/v1/value/full-match.js +2 -0
  355. package/dist/v1.d.ts +1 -2
  356. package/dist/v1.js +1 -2
  357. package/dist/value/accept.d.ts +0 -1
  358. package/dist/value/accept.js +0 -1
  359. package/dist/value/canonical.d.ts +3 -1
  360. package/dist/value/canonical.js +11 -5
  361. package/dist/value/decode.d.ts +0 -1
  362. package/dist/value/decode.js +0 -1
  363. package/dist/value/equal.d.ts +0 -1
  364. package/dist/value/equal.js +0 -1
  365. package/dist/value/error.d.ts +0 -1
  366. package/dist/value/error.js +0 -1
  367. package/dist/value/index.d.ts +0 -1
  368. package/dist/value/index.js +0 -1
  369. package/dist/value/json.d.ts +1 -2
  370. package/dist/value/json.js +1 -2
  371. package/dist/value/limits.d.ts +0 -1
  372. package/dist/value/limits.js +0 -1
  373. package/dist/value/types.d.ts +0 -1
  374. package/dist/value/types.js +0 -1
  375. package/dist/value/unicode.d.ts +0 -1
  376. package/dist/value/unicode.js +0 -1
  377. package/dist/version/dispatch.d.ts +0 -1
  378. package/dist/version/dispatch.js +0 -1
  379. package/dist/version/index.d.ts +0 -1
  380. package/dist/version/index.js +0 -1
  381. package/package.json +53 -21
  382. package/dist/index.d.ts.map +0 -1
  383. package/dist/index.js.map +0 -1
  384. package/dist/upgrade/contract.d.ts.map +0 -1
  385. package/dist/upgrade/contract.js.map +0 -1
  386. package/dist/upgrade/index.d.ts.map +0 -1
  387. package/dist/upgrade/index.js.map +0 -1
  388. package/dist/v1/addressing/index.d.ts.map +0 -1
  389. package/dist/v1/addressing/index.js.map +0 -1
  390. package/dist/v1/addressing/key.d.ts.map +0 -1
  391. package/dist/v1/addressing/key.js.map +0 -1
  392. package/dist/v1/addressing/patterns.d.ts.map +0 -1
  393. package/dist/v1/addressing/patterns.js.map +0 -1
  394. package/dist/v1/addressing/property-key.d.ts.map +0 -1
  395. package/dist/v1/addressing/property-key.js.map +0 -1
  396. package/dist/v1/addressing/ref.d.ts +0 -35
  397. package/dist/v1/addressing/ref.d.ts.map +0 -1
  398. package/dist/v1/addressing/ref.js +0 -94
  399. package/dist/v1/addressing/ref.js.map +0 -1
  400. package/dist/v1/addressing/schema-ref.d.ts +0 -8
  401. package/dist/v1/addressing/schema-ref.d.ts.map +0 -1
  402. package/dist/v1/addressing/schema-ref.js +0 -2
  403. package/dist/v1/addressing/schema-ref.js.map +0 -1
  404. package/dist/v1/builder/callable.d.ts +0 -91
  405. package/dist/v1/builder/callable.d.ts.map +0 -1
  406. package/dist/v1/builder/callable.js.map +0 -1
  407. package/dist/v1/builder/compiler/callable.d.ts +0 -20
  408. package/dist/v1/builder/compiler/callable.d.ts.map +0 -1
  409. package/dist/v1/builder/compiler/callable.js.map +0 -1
  410. package/dist/v1/builder/compiler/core.d.ts +0 -6
  411. package/dist/v1/builder/compiler/core.d.ts.map +0 -1
  412. package/dist/v1/builder/compiler/core.js.map +0 -1
  413. package/dist/v1/builder/compiler/core.properties.d.ts +0 -6
  414. package/dist/v1/builder/compiler/core.properties.d.ts.map +0 -1
  415. package/dist/v1/builder/compiler/core.properties.js.map +0 -1
  416. package/dist/v1/builder/compiler/definition.d.ts +0 -32
  417. package/dist/v1/builder/compiler/definition.d.ts.map +0 -1
  418. package/dist/v1/builder/compiler/definition.js +0 -197
  419. package/dist/v1/builder/compiler/definition.js.map +0 -1
  420. package/dist/v1/builder/compiler/policy.d.ts +0 -17
  421. package/dist/v1/builder/compiler/policy.d.ts.map +0 -1
  422. package/dist/v1/builder/compiler/policy.js.map +0 -1
  423. package/dist/v1/builder/compiler/schema.capture.d.ts.map +0 -1
  424. package/dist/v1/builder/compiler/schema.capture.js +0 -85
  425. package/dist/v1/builder/compiler/schema.capture.js.map +0 -1
  426. package/dist/v1/builder/compiler/schema.context.d.ts +0 -45
  427. package/dist/v1/builder/compiler/schema.context.d.ts.map +0 -1
  428. package/dist/v1/builder/compiler/schema.context.js.map +0 -1
  429. package/dist/v1/builder/compiler/schema.d.ts.map +0 -1
  430. package/dist/v1/builder/compiler/schema.js.map +0 -1
  431. package/dist/v1/builder/compiler/schema.ownership.d.ts +0 -9
  432. package/dist/v1/builder/compiler/schema.ownership.d.ts.map +0 -1
  433. package/dist/v1/builder/compiler/schema.ownership.js.map +0 -1
  434. package/dist/v1/builder/compiler/value.d.ts +0 -26
  435. package/dist/v1/builder/compiler/value.d.ts.map +0 -1
  436. package/dist/v1/builder/compiler/value.js.map +0 -1
  437. package/dist/v1/builder/compiler/value.path.d.ts +0 -4
  438. package/dist/v1/builder/compiler/value.path.d.ts.map +0 -1
  439. package/dist/v1/builder/compiler/value.path.js.map +0 -1
  440. package/dist/v1/builder/compiler/value.zod.d.ts.map +0 -1
  441. package/dist/v1/builder/compiler/value.zod.js.map +0 -1
  442. package/dist/v1/builder/compiler/view.d.ts +0 -12
  443. package/dist/v1/builder/compiler/view.d.ts.map +0 -1
  444. package/dist/v1/builder/compiler/view.js.map +0 -1
  445. package/dist/v1/builder/core.d.ts +0 -27
  446. package/dist/v1/builder/core.d.ts.map +0 -1
  447. package/dist/v1/builder/core.js +0 -21
  448. package/dist/v1/builder/core.js.map +0 -1
  449. package/dist/v1/builder/definition.d.ts +0 -155
  450. package/dist/v1/builder/definition.d.ts.map +0 -1
  451. package/dist/v1/builder/definition.js +0 -141
  452. package/dist/v1/builder/definition.js.map +0 -1
  453. package/dist/v1/builder/full-match.d.ts +0 -5
  454. package/dist/v1/builder/full-match.d.ts.map +0 -1
  455. package/dist/v1/builder/full-match.js +0 -12
  456. package/dist/v1/builder/full-match.js.map +0 -1
  457. package/dist/v1/builder/index.d.ts.map +0 -1
  458. package/dist/v1/builder/index.js.map +0 -1
  459. package/dist/v1/builder/internal/authoring.d.ts.map +0 -1
  460. package/dist/v1/builder/internal/authoring.js.map +0 -1
  461. package/dist/v1/builder/internal/authoring.lazy.d.ts.map +0 -1
  462. package/dist/v1/builder/internal/authoring.lazy.js.map +0 -1
  463. package/dist/v1/builder/internal/diagnostic.d.ts +0 -4
  464. package/dist/v1/builder/internal/diagnostic.d.ts.map +0 -1
  465. package/dist/v1/builder/internal/diagnostic.js +0 -16
  466. package/dist/v1/builder/internal/diagnostic.js.map +0 -1
  467. package/dist/v1/builder/internal/path.metadata.d.ts +0 -5
  468. package/dist/v1/builder/internal/path.metadata.d.ts.map +0 -1
  469. package/dist/v1/builder/internal/path.metadata.js.map +0 -1
  470. package/dist/v1/builder/path.d.ts +0 -9
  471. package/dist/v1/builder/path.d.ts.map +0 -1
  472. package/dist/v1/builder/path.js.map +0 -1
  473. package/dist/v1/builder/policy.d.ts.map +0 -1
  474. package/dist/v1/builder/policy.js +0 -79
  475. package/dist/v1/builder/policy.js.map +0 -1
  476. package/dist/v1/builder/property.d.ts +0 -37
  477. package/dist/v1/builder/property.d.ts.map +0 -1
  478. package/dist/v1/builder/property.js +0 -36
  479. package/dist/v1/builder/property.js.map +0 -1
  480. package/dist/v1/builder/schema.d.ts +0 -6
  481. package/dist/v1/builder/schema.d.ts.map +0 -1
  482. package/dist/v1/builder/schema.input.d.ts +0 -19
  483. package/dist/v1/builder/schema.input.d.ts.map +0 -1
  484. package/dist/v1/builder/schema.input.js +0 -2
  485. package/dist/v1/builder/schema.input.js.map +0 -1
  486. package/dist/v1/builder/schema.js.map +0 -1
  487. package/dist/v1/builder/value-schema.d.ts.map +0 -1
  488. package/dist/v1/builder/value-schema.js.map +0 -1
  489. package/dist/v1/builder/view.d.ts +0 -19
  490. package/dist/v1/builder/view.d.ts.map +0 -1
  491. package/dist/v1/builder/view.js +0 -7
  492. package/dist/v1/builder/view.js.map +0 -1
  493. package/dist/v1/builder.d.ts +0 -3
  494. package/dist/v1/builder.d.ts.map +0 -1
  495. package/dist/v1/builder.js +0 -2
  496. package/dist/v1/builder.js.map +0 -1
  497. package/dist/v1/bundle/codec.d.ts.map +0 -1
  498. package/dist/v1/bundle/codec.js.map +0 -1
  499. package/dist/v1/bundle/index.d.ts.map +0 -1
  500. package/dist/v1/bundle/index.js.map +0 -1
  501. package/dist/v1/bundle/model.d.ts.map +0 -1
  502. package/dist/v1/bundle/model.js.map +0 -1
  503. package/dist/v1/bundle/structure.d.ts.map +0 -1
  504. package/dist/v1/bundle/structure.js.map +0 -1
  505. package/dist/v1/bundle.d.ts +0 -3
  506. package/dist/v1/bundle.d.ts.map +0 -1
  507. package/dist/v1/bundle.js +0 -3
  508. package/dist/v1/bundle.js.map +0 -1
  509. package/dist/v1/index.d.ts.map +0 -1
  510. package/dist/v1/index.js.map +0 -1
  511. package/dist/v1/schema/callable.d.ts +0 -29
  512. package/dist/v1/schema/callable.d.ts.map +0 -1
  513. package/dist/v1/schema/callable.js +0 -2
  514. package/dist/v1/schema/callable.js.map +0 -1
  515. package/dist/v1/schema/canonical/domain.d.ts.map +0 -1
  516. package/dist/v1/schema/canonical/domain.digest.d.ts.map +0 -1
  517. package/dist/v1/schema/canonical/domain.digest.js.map +0 -1
  518. package/dist/v1/schema/canonical/domain.js.map +0 -1
  519. package/dist/v1/schema/canonical/freeze.d.ts.map +0 -1
  520. package/dist/v1/schema/canonical/freeze.js.map +0 -1
  521. package/dist/v1/schema/compiled/admission.d.ts +0 -4
  522. package/dist/v1/schema/compiled/admission.d.ts.map +0 -1
  523. package/dist/v1/schema/compiled/admission.js +0 -217
  524. package/dist/v1/schema/compiled/admission.js.map +0 -1
  525. package/dist/v1/schema/compiled/authored-validator.d.ts +0 -5
  526. package/dist/v1/schema/compiled/authored-validator.d.ts.map +0 -1
  527. package/dist/v1/schema/compiled/authored-validator.js +0 -7
  528. package/dist/v1/schema/compiled/authored-validator.js.map +0 -1
  529. package/dist/v1/schema/compiled/compiler.d.ts +0 -5
  530. package/dist/v1/schema/compiled/compiler.d.ts.map +0 -1
  531. package/dist/v1/schema/compiled/compiler.js +0 -86
  532. package/dist/v1/schema/compiled/compiler.js.map +0 -1
  533. package/dist/v1/schema/compiled/model.d.ts +0 -61
  534. package/dist/v1/schema/compiled/model.d.ts.map +0 -1
  535. package/dist/v1/schema/compiled/model.js +0 -2
  536. package/dist/v1/schema/compiled/model.js.map +0 -1
  537. package/dist/v1/schema/compiled/program.d.ts.map +0 -1
  538. package/dist/v1/schema/compiled/program.js.map +0 -1
  539. package/dist/v1/schema/compiled/validator.d.ts +0 -23
  540. package/dist/v1/schema/compiled/validator.d.ts.map +0 -1
  541. package/dist/v1/schema/compiled/validator.js +0 -62
  542. package/dist/v1/schema/compiled/validator.js.map +0 -1
  543. package/dist/v1/schema/core/declaration.d.ts +0 -17
  544. package/dist/v1/schema/core/declaration.d.ts.map +0 -1
  545. package/dist/v1/schema/core/declaration.js +0 -2
  546. package/dist/v1/schema/core/declaration.js.map +0 -1
  547. package/dist/v1/schema/core/validate.d.ts +0 -6
  548. package/dist/v1/schema/core/validate.d.ts.map +0 -1
  549. package/dist/v1/schema/core/validate.js.map +0 -1
  550. package/dist/v1/schema/definition/analysis.d.ts.map +0 -1
  551. package/dist/v1/schema/definition/analysis.js.map +0 -1
  552. package/dist/v1/schema/definition/class.d.ts +0 -28
  553. package/dist/v1/schema/definition/class.d.ts.map +0 -1
  554. package/dist/v1/schema/definition/class.js +0 -2
  555. package/dist/v1/schema/definition/class.js.map +0 -1
  556. package/dist/v1/schema/definition/data.d.ts.map +0 -1
  557. package/dist/v1/schema/definition/data.js.map +0 -1
  558. package/dist/v1/schema/definition/edge.d.ts.map +0 -1
  559. package/dist/v1/schema/definition/edge.js +0 -2
  560. package/dist/v1/schema/definition/edge.js.map +0 -1
  561. package/dist/v1/schema/definition/interface.d.ts +0 -22
  562. package/dist/v1/schema/definition/interface.d.ts.map +0 -1
  563. package/dist/v1/schema/definition/interface.js +0 -2
  564. package/dist/v1/schema/definition/interface.js.map +0 -1
  565. package/dist/v1/schema/definition/property.d.ts +0 -18
  566. package/dist/v1/schema/definition/property.d.ts.map +0 -1
  567. package/dist/v1/schema/definition/property.js +0 -2
  568. package/dist/v1/schema/definition/property.js.map +0 -1
  569. package/dist/v1/schema/definition/validate.d.ts +0 -5
  570. package/dist/v1/schema/definition/validate.d.ts.map +0 -1
  571. package/dist/v1/schema/definition/validate.js +0 -221
  572. package/dist/v1/schema/definition/validate.js.map +0 -1
  573. package/dist/v1/schema/dependency.meaning.d.ts.map +0 -1
  574. package/dist/v1/schema/dependency.meaning.js.map +0 -1
  575. package/dist/v1/schema/diagnostic.d.ts.map +0 -1
  576. package/dist/v1/schema/diagnostic.js.map +0 -1
  577. package/dist/v1/schema/domain.accept.d.ts +0 -4
  578. package/dist/v1/schema/domain.accept.d.ts.map +0 -1
  579. package/dist/v1/schema/domain.accept.js.map +0 -1
  580. package/dist/v1/schema/domain.codec.d.ts.map +0 -1
  581. package/dist/v1/schema/domain.codec.js.map +0 -1
  582. package/dist/v1/schema/domain.header.d.ts +0 -15
  583. package/dist/v1/schema/domain.header.d.ts.map +0 -1
  584. package/dist/v1/schema/domain.header.js +0 -21
  585. package/dist/v1/schema/domain.header.js.map +0 -1
  586. package/dist/v1/schema/domain.ir.d.ts +0 -40
  587. package/dist/v1/schema/domain.ir.d.ts.map +0 -1
  588. package/dist/v1/schema/domain.ir.js +0 -5
  589. package/dist/v1/schema/domain.ir.js.map +0 -1
  590. package/dist/v1/schema/domain.lookup.d.ts.map +0 -1
  591. package/dist/v1/schema/domain.lookup.js.map +0 -1
  592. package/dist/v1/schema/domain.resolve.d.ts +0 -26
  593. package/dist/v1/schema/domain.resolve.d.ts.map +0 -1
  594. package/dist/v1/schema/domain.resolve.js +0 -43
  595. package/dist/v1/schema/domain.resolve.js.map +0 -1
  596. package/dist/v1/schema/domain.revision.d.ts.map +0 -1
  597. package/dist/v1/schema/domain.revision.js.map +0 -1
  598. package/dist/v1/schema/domain.validate.d.ts +0 -12
  599. package/dist/v1/schema/domain.validate.d.ts.map +0 -1
  600. package/dist/v1/schema/domain.validate.js.map +0 -1
  601. package/dist/v1/schema/index.d.ts.map +0 -1
  602. package/dist/v1/schema/index.js.map +0 -1
  603. package/dist/v1/schema/metadata.d.ts.map +0 -1
  604. package/dist/v1/schema/metadata.js.map +0 -1
  605. package/dist/v1/schema/policy/ast.d.ts +0 -77
  606. package/dist/v1/schema/policy/ast.d.ts.map +0 -1
  607. package/dist/v1/schema/policy/ast.js +0 -2
  608. package/dist/v1/schema/policy/ast.js.map +0 -1
  609. package/dist/v1/schema/policy/normalize.d.ts +0 -5
  610. package/dist/v1/schema/policy/normalize.d.ts.map +0 -1
  611. package/dist/v1/schema/policy/normalize.js.map +0 -1
  612. package/dist/v1/schema/policy/validation/branches.d.ts.map +0 -1
  613. package/dist/v1/schema/policy/validation/branches.js.map +0 -1
  614. package/dist/v1/schema/policy/validation/budgets.d.ts.map +0 -1
  615. package/dist/v1/schema/policy/validation/budgets.js.map +0 -1
  616. package/dist/v1/schema/policy/validation/context.d.ts +0 -28
  617. package/dist/v1/schema/policy/validation/context.d.ts.map +0 -1
  618. package/dist/v1/schema/policy/validation/context.js.map +0 -1
  619. package/dist/v1/schema/policy/validation/references.d.ts.map +0 -1
  620. package/dist/v1/schema/policy/validation/references.js.map +0 -1
  621. package/dist/v1/schema/policy/validation/typing.d.ts.map +0 -1
  622. package/dist/v1/schema/policy/validation/typing.js.map +0 -1
  623. package/dist/v1/schema/policy/validation/uses.d.ts.map +0 -1
  624. package/dist/v1/schema/policy/validation/uses.js.map +0 -1
  625. package/dist/v1/schema/policy/validation/validate.d.ts.map +0 -1
  626. package/dist/v1/schema/policy/validation/validate.js.map +0 -1
  627. package/dist/v1/schema/reference.d.ts +0 -43
  628. package/dist/v1/schema/reference.d.ts.map +0 -1
  629. package/dist/v1/schema/reference.js +0 -31
  630. package/dist/v1/schema/reference.js.map +0 -1
  631. package/dist/v1/schema/resolution/closure.d.ts.map +0 -1
  632. package/dist/v1/schema/resolution/closure.js.map +0 -1
  633. package/dist/v1/schema/resolution/context.d.ts.map +0 -1
  634. package/dist/v1/schema/resolution/context.js.map +0 -1
  635. package/dist/v1/schema/resolution/definition.index.d.ts.map +0 -1
  636. package/dist/v1/schema/resolution/definition.index.js.map +0 -1
  637. package/dist/v1/schema/resolution/origins.d.ts.map +0 -1
  638. package/dist/v1/schema/resolution/origins.js.map +0 -1
  639. package/dist/v1/schema/resolution/value.registry.d.ts.map +0 -1
  640. package/dist/v1/schema/resolution/value.registry.js.map +0 -1
  641. package/dist/v1/schema/validation/domain.route.d.ts.map +0 -1
  642. package/dist/v1/schema/validation/domain.route.js.map +0 -1
  643. package/dist/v1/schema/validation/domain.structure.d.ts.map +0 -1
  644. package/dist/v1/schema/validation/domain.structure.js.map +0 -1
  645. package/dist/v1/schema/validation/value.d.ts.map +0 -1
  646. package/dist/v1/schema/validation/value.js.map +0 -1
  647. package/dist/v1/schema/value/extensions/node-path/schema.d.ts.map +0 -1
  648. package/dist/v1/schema/value/extensions/node-path/schema.js.map +0 -1
  649. package/dist/v1/schema/value/extensions/node-path/validate.d.ts +0 -5
  650. package/dist/v1/schema/value/extensions/node-path/validate.d.ts.map +0 -1
  651. package/dist/v1/schema/value/extensions/node-path/validate.js.map +0 -1
  652. package/dist/v1/schema/value/full-match.d.ts.map +0 -1
  653. package/dist/v1/schema/value/full-match.js.map +0 -1
  654. package/dist/v1/schema/value/index.d.ts.map +0 -1
  655. package/dist/v1/schema/value/index.js.map +0 -1
  656. package/dist/v1/schema/value/instance/assertions.d.ts.map +0 -1
  657. package/dist/v1/schema/value/instance/assertions.js.map +0 -1
  658. package/dist/v1/schema/value/instance/evaluator.d.ts.map +0 -1
  659. package/dist/v1/schema/value/instance/evaluator.js.map +0 -1
  660. package/dist/v1/schema/value/instance/preparation.d.ts.map +0 -1
  661. package/dist/v1/schema/value/instance/preparation.js.map +0 -1
  662. package/dist/v1/schema/value/instance/types.d.ts.map +0 -1
  663. package/dist/v1/schema/value/instance/types.js.map +0 -1
  664. package/dist/v1/schema/value/instance.validate.d.ts.map +0 -1
  665. package/dist/v1/schema/value/instance.validate.js.map +0 -1
  666. package/dist/v1/schema/value/instant.d.ts.map +0 -1
  667. package/dist/v1/schema/value/instant.js.map +0 -1
  668. package/dist/v1/schema/value/location/keywords.d.ts.map +0 -1
  669. package/dist/v1/schema/value/location/keywords.js.map +0 -1
  670. package/dist/v1/schema/value/location/pointer.d.ts.map +0 -1
  671. package/dist/v1/schema/value/location/pointer.js.map +0 -1
  672. package/dist/v1/schema/value/location/walk.d.ts.map +0 -1
  673. package/dist/v1/schema/value/location/walk.js.map +0 -1
  674. package/dist/v1/schema/value/object.d.ts.map +0 -1
  675. package/dist/v1/schema/value/object.js.map +0 -1
  676. package/dist/v1/schema/value/ordering.d.ts.map +0 -1
  677. package/dist/v1/schema/value/ordering.js.map +0 -1
  678. package/dist/v1/schema/value/profile/canonicalize.d.ts.map +0 -1
  679. package/dist/v1/schema/value/profile/canonicalize.js.map +0 -1
  680. package/dist/v1/schema/value/profile/dialect.d.ts +0 -5
  681. package/dist/v1/schema/value/profile/dialect.d.ts.map +0 -1
  682. package/dist/v1/schema/value/profile/dialect.js +0 -36
  683. package/dist/v1/schema/value/profile/dialect.js.map +0 -1
  684. package/dist/v1/schema/value/profile/json.validate.d.ts +0 -3
  685. package/dist/v1/schema/value/profile/json.validate.d.ts.map +0 -1
  686. package/dist/v1/schema/value/profile/json.validate.js.map +0 -1
  687. package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts.map +0 -1
  688. package/dist/v1/schema/value/profile/meta-schema.compiled.js.map +0 -1
  689. package/dist/v1/schema/value/profile/meta-schema.d.ts +0 -5
  690. package/dist/v1/schema/value/profile/meta-schema.d.ts.map +0 -1
  691. package/dist/v1/schema/value/profile/meta-schema.js.map +0 -1
  692. package/dist/v1/schema/value/profile/rules.d.ts +0 -5
  693. package/dist/v1/schema/value/profile/rules.d.ts.map +0 -1
  694. package/dist/v1/schema/value/profile/rules.js.map +0 -1
  695. package/dist/v1/schema/value/profile/validate.d.ts +0 -5
  696. package/dist/v1/schema/value/profile/validate.d.ts.map +0 -1
  697. package/dist/v1/schema/value/profile/validate.js.map +0 -1
  698. package/dist/v1/schema/value/profile/vocabulary.d.ts.map +0 -1
  699. package/dist/v1/schema/value/profile/vocabulary.js.map +0 -1
  700. package/dist/v1/schema/value/regexp/ast.d.ts.map +0 -1
  701. package/dist/v1/schema/value/regexp/ast.js.map +0 -1
  702. package/dist/v1/schema/value/regexp/compile.d.ts.map +0 -1
  703. package/dist/v1/schema/value/regexp/compile.js.map +0 -1
  704. package/dist/v1/schema/value/regexp/linear.d.ts +0 -20
  705. package/dist/v1/schema/value/regexp/linear.d.ts.map +0 -1
  706. package/dist/v1/schema/value/regexp/linear.js +0 -24
  707. package/dist/v1/schema/value/regexp/linear.js.map +0 -1
  708. package/dist/v1/schema/value/regexp/lower.d.ts.map +0 -1
  709. package/dist/v1/schema/value/regexp/lower.js.map +0 -1
  710. package/dist/v1/schema/value/regexp/matcher.d.ts.map +0 -1
  711. package/dist/v1/schema/value/regexp/matcher.js.map +0 -1
  712. package/dist/v1/schema/value/regexp/pattern.d.ts.map +0 -1
  713. package/dist/v1/schema/value/regexp/pattern.js.map +0 -1
  714. package/dist/v1/schema/value/regexp/syntax.d.ts.map +0 -1
  715. package/dist/v1/schema/value/regexp/syntax.js.map +0 -1
  716. package/dist/v1/schema/value/registry.d.ts.map +0 -1
  717. package/dist/v1/schema/value/registry.js +0 -2
  718. package/dist/v1/schema/value/registry.js.map +0 -1
  719. package/dist/v1/schema/value/resources/closure.d.ts +0 -12
  720. package/dist/v1/schema/value/resources/closure.d.ts.map +0 -1
  721. package/dist/v1/schema/value/resources/closure.js.map +0 -1
  722. package/dist/v1/schema/value/resources/recursion.d.ts.map +0 -1
  723. package/dist/v1/schema/value/resources/recursion.js.map +0 -1
  724. package/dist/v1/schema/value/resources/references.d.ts +0 -25
  725. package/dist/v1/schema/value/resources/references.d.ts.map +0 -1
  726. package/dist/v1/schema/value/resources/references.js +0 -93
  727. package/dist/v1/schema/value/resources/references.js.map +0 -1
  728. package/dist/v1/schema/value/resources/registry.index.d.ts +0 -22
  729. package/dist/v1/schema/value/resources/registry.index.d.ts.map +0 -1
  730. package/dist/v1/schema/value/resources/registry.index.js.map +0 -1
  731. package/dist/v1/schema/value/schema.d.ts.map +0 -1
  732. package/dist/v1/schema/value/schema.js.map +0 -1
  733. package/dist/v1/schema/view/declaration.d.ts +0 -14
  734. package/dist/v1/schema/view/declaration.d.ts.map +0 -1
  735. package/dist/v1/schema/view/declaration.js +0 -2
  736. package/dist/v1/schema/view/declaration.js.map +0 -1
  737. package/dist/v1/schema/view/validate.d.ts +0 -4
  738. package/dist/v1/schema/view/validate.d.ts.map +0 -1
  739. package/dist/v1/schema/view/validate.js.map +0 -1
  740. package/dist/v1/schema.d.ts +0 -3
  741. package/dist/v1/schema.d.ts.map +0 -1
  742. package/dist/v1/schema.js +0 -3
  743. package/dist/v1/schema.js.map +0 -1
  744. package/dist/v1.d.ts.map +0 -1
  745. package/dist/v1.js.map +0 -1
  746. package/dist/value/accept.d.ts.map +0 -1
  747. package/dist/value/accept.js.map +0 -1
  748. package/dist/value/canonical.d.ts.map +0 -1
  749. package/dist/value/canonical.js.map +0 -1
  750. package/dist/value/decode.d.ts.map +0 -1
  751. package/dist/value/decode.js.map +0 -1
  752. package/dist/value/equal.d.ts.map +0 -1
  753. package/dist/value/equal.js.map +0 -1
  754. package/dist/value/error.d.ts.map +0 -1
  755. package/dist/value/error.js.map +0 -1
  756. package/dist/value/index.d.ts.map +0 -1
  757. package/dist/value/index.js.map +0 -1
  758. package/dist/value/json.d.ts.map +0 -1
  759. package/dist/value/json.js.map +0 -1
  760. package/dist/value/limits.d.ts.map +0 -1
  761. package/dist/value/limits.js.map +0 -1
  762. package/dist/value/types.d.ts.map +0 -1
  763. package/dist/value/types.js.map +0 -1
  764. package/dist/value/unicode.d.ts.map +0 -1
  765. package/dist/value/unicode.js.map +0 -1
  766. package/dist/version/dispatch.d.ts.map +0 -1
  767. package/dist/version/dispatch.js.map +0 -1
  768. package/dist/version/index.d.ts.map +0 -1
  769. package/dist/version/index.js.map +0 -1
@@ -1,12 +1,8 @@
1
- import { schemaRefIndex, } from '../../reference.js';
2
- import { branchesOf, branchProduct, capBranches, targetMode, termKey, } from './branches.js';
1
+ import { definitionRefIndex } from '../../../addressing/ordering.js';
2
+ import { branchesOf, branchProduct, capBranches, targetMode, termKey, } from '../../../language/policy/analysis/branches.js';
3
3
  import { MAX_REPEAT } from './budgets.js';
4
4
  import { escapePointer } from './context.js';
5
- const IDENTITY_REF = {
6
- origin: 'kernel.astrale.ai',
7
- kind: 'interface',
8
- name: 'Identity',
9
- };
5
+ import { referenceContracts } from './objects.js';
10
6
  export class PolicyTyping {
11
7
  context;
12
8
  constructor(context) {
@@ -20,8 +16,8 @@ export class PolicyTyping {
20
16
  for (const [index, branch] of branches.entries()) {
21
17
  const mode = targetMode(branch);
22
18
  if (mode === undefined) {
23
- if (!('match' in this.context.environment.candidate.policies[name])) {
24
- this.context.add('PL_TARGET', `/policies/${escapePointer(name)}`, `Expanded normalized branch ${index} must use object or both source and target, without mixing target modes.`);
19
+ if (!('match' in this.context.environment.candidate.policies[name].expression)) {
20
+ this.context.add('PL_TARGET', `/policies/${escapePointer(name)}`, `Expanded normalized branch ${index} must use object or at least one of source and target, without mixing target modes.`);
25
21
  }
26
22
  continue;
27
23
  }
@@ -49,7 +45,7 @@ export class PolicyTyping {
49
45
  return branches !== undefined && branches.every((branch) => this.#branchIsTyped(branch, use));
50
46
  }
51
47
  concreteEndpointClasses(accepts) {
52
- return this.context.allNodeClasses.filter((candidate) => this.#classSatisfiesEndpoint(candidate, accepts));
48
+ return this.context.concreteNodeClasses.filter((candidate) => this.#classSatisfiesEndpoint(candidate, accepts));
53
49
  }
54
50
  endpointsOverlap(left, right) {
55
51
  const seed = [{ kind: 'open', requirements: [] }];
@@ -88,11 +84,15 @@ export class PolicyTyping {
88
84
  const terms = new Set(use.kind === 'object' ? ['subject', 'object'] : ['subject', 'source', 'target']);
89
85
  for (const key of branch.variables.keys())
90
86
  terms.add(key);
87
+ for (const key of branch.terms.keys())
88
+ terms.add(key);
91
89
  for (const edge of branch.edges) {
92
90
  terms.add(termKey(edge.pattern.source, edge.namespace));
93
91
  terms.add(termKey(edge.pattern.target, edge.namespace));
94
92
  }
95
93
  const union = new UnionFind(terms);
94
+ for (const [left, right] of branch.equalities)
95
+ union.join(left, right);
96
96
  for (const variant of variants) {
97
97
  for (const [left, right] of variant.equalities)
98
98
  union.join(left, right);
@@ -115,15 +115,6 @@ export class PolicyTyping {
115
115
  }
116
116
  for (const [root, members] of groups) {
117
117
  const endpointConstraints = constraints.get(root) ?? [];
118
- const universal = members
119
- .map((member) => ({ member, contract: targetContract(member, use) }))
120
- .find((entry) => entry.contract?.kind === 'universal-interface');
121
- if (universal !== undefined) {
122
- if (!this.#universalGroupIsSatisfiable(members, endpointConstraints, universal.member, universal.contract.ref, branch)) {
123
- return false;
124
- }
125
- continue;
126
- }
127
118
  let candidates = [{ kind: 'open', requirements: [] }];
128
119
  for (const member of members) {
129
120
  candidates = this.#applyInitial(candidates, member, branch, use);
@@ -138,24 +129,9 @@ export class PolicyTyping {
138
129
  }
139
130
  return true;
140
131
  }
141
- #universalGroupIsSatisfiable(members, endpoints, target, contract, branch) {
142
- for (const member of members) {
143
- if (member === target)
144
- continue;
145
- if (member === 'subject') {
146
- if (!this.context.interfaceExtends(contract, IDENTITY_REF))
147
- return false;
148
- continue;
149
- }
150
- const exact = this.#exactInitial(member, branch);
151
- if (exact !== undefined)
152
- return false;
153
- }
154
- return endpoints.every((accepts) => accepts.some((accept) => accept.kind === 'interface' && this.context.interfaceExtends(contract, accept)));
155
- }
156
132
  #applyInitial(candidates, term, branch, use) {
157
133
  if (term === 'subject')
158
- return this.#applyInterface(candidates, IDENTITY_REF);
134
+ return this.#applyAnyNodeClass(candidates);
159
135
  const contract = targetContract(term, use);
160
136
  if (contract !== undefined) {
161
137
  if (contract.kind === 'exact')
@@ -165,37 +141,55 @@ export class PolicyTyping {
165
141
  }
166
142
  return candidates;
167
143
  }
168
- const exact = this.#exactInitial(term, branch);
169
- return exact === undefined ? [] : this.#applyExact(candidates, exact);
170
- }
171
- #exactInitial(term, branch) {
172
- return branch.variables.get(term);
144
+ const referenced = branch.terms.get(term);
145
+ if (referenced?.kind === 'ref') {
146
+ const contract = referenceContracts(this.context, referenced.ref, '/policies')?.[0];
147
+ return contract?.kind === 'exact' ? this.#applyExact(candidates, contract.ref) : [];
148
+ }
149
+ const selector = branch.variables.get(term);
150
+ if (selector === undefined)
151
+ return [];
152
+ if (selector.kind === 'exact')
153
+ return this.#applyExact(candidates, selector.class);
154
+ if (selector.kind === 'any')
155
+ return candidates;
156
+ return this.#applyRequirement(candidates, selector.class);
173
157
  }
174
158
  #applyExact(candidates, exact) {
175
159
  const result = [];
176
160
  for (const candidate of candidates) {
177
161
  if (candidate.kind === 'exact') {
178
- if (schemaRefIndex(candidate.ref) === schemaRefIndex(exact))
162
+ if (definitionRefIndex(candidate.ref) === definitionRefIndex(exact))
179
163
  result.push(candidate);
180
164
  }
181
- else if (candidate.requirements.every((required) => this.context.classImplements(exact, required))) {
165
+ else if (candidate.requirements.every((required) => this.context.classExtends(exact, required))) {
182
166
  result.push({ kind: 'exact', ref: exact });
183
167
  }
184
168
  }
185
169
  return uniqueCandidates(result);
186
170
  }
187
- #applyInterface(candidates, required) {
188
- return uniqueCandidates(candidates.flatMap((candidate) => {
171
+ #applyAnyNodeClass(candidates) {
172
+ return uniqueCandidates(candidates.flatMap((candidate) => candidate.kind === 'exact'
173
+ ? [candidate]
174
+ : this.context.allNodeClasses
175
+ .filter((ref) => candidate.requirements.every((required) => this.context.classExtends(ref, required)))
176
+ .map((ref) => ({ kind: 'exact', ref }))));
177
+ }
178
+ #applyRequirement(candidates, required) {
179
+ const result = [];
180
+ for (const candidate of candidates) {
189
181
  if (candidate.kind === 'exact') {
190
- return this.context.classImplements(candidate.ref, required) ? [candidate] : [];
182
+ if (this.context.classExtends(candidate.ref, required))
183
+ result.push(candidate);
191
184
  }
192
- return [
193
- {
185
+ else {
186
+ result.push({
194
187
  kind: 'open',
195
- requirements: uniqueInterfaces([...candidate.requirements, required]),
196
- },
197
- ];
198
- }));
188
+ requirements: uniqueClasses([...candidate.requirements, required]),
189
+ });
190
+ }
191
+ }
192
+ return uniqueCandidates(result);
199
193
  }
200
194
  #applyEndpoint(candidates, accepts) {
201
195
  const result = [];
@@ -206,22 +200,16 @@ export class PolicyTyping {
206
200
  continue;
207
201
  }
208
202
  for (const accept of accepts) {
209
- if (accept.kind === 'interface') {
210
- result.push({
211
- kind: 'open',
212
- requirements: uniqueInterfaces([...candidate.requirements, accept]),
213
- });
214
- }
215
- else if (candidate.requirements.every((required) => this.context.classImplements(accept, required))) {
216
- result.push({ kind: 'exact', ref: accept });
217
- }
203
+ result.push({
204
+ kind: 'open',
205
+ requirements: uniqueClasses([...candidate.requirements, accept]),
206
+ });
218
207
  }
219
208
  }
220
209
  return uniqueCandidates(result);
221
210
  }
222
211
  #classSatisfiesEndpoint(candidate, accepts) {
223
- return accepts.some((accept) => (accept.kind === 'class' && schemaRefIndex(accept) === schemaRefIndex(candidate)) ||
224
- (accept.kind === 'interface' && this.context.classImplements(candidate, accept)));
212
+ return accepts.some((accept) => this.context.classExtends(candidate, accept));
225
213
  }
226
214
  }
227
215
  function targetContract(term, use) {
@@ -234,7 +222,7 @@ function targetContract(term, use) {
234
222
  return undefined;
235
223
  }
236
224
  export function contractOfNodeDefinition(ref) {
237
- return ref.kind === 'class' ? { kind: 'exact', ref } : { kind: 'universal-interface', ref };
225
+ return { kind: 'exact', ref };
238
226
  }
239
227
  function edgeAlternatives(edges, typing) {
240
228
  let result = [[]];
@@ -312,7 +300,7 @@ function uniqueEdgeVariants(values) {
312
300
  const result = new Map();
313
301
  for (const value of values) {
314
302
  const key = `${value.constraints
315
- .map(([term, accepts]) => `${term}:${accepts.map(schemaRefIndex).sort().join(',')}`)
303
+ .map(([term, accepts]) => `${term}:${accepts.map(definitionRefIndex).sort().join(',')}`)
316
304
  .join('|')}=${value.equalities.map(([left, right]) => `${left}:${right}`).join('|')}`;
317
305
  result.set(key, value);
318
306
  }
@@ -322,14 +310,14 @@ function uniqueCandidates(values) {
322
310
  const result = new Map();
323
311
  for (const value of values) {
324
312
  const key = value.kind === 'exact'
325
- ? `exact:${schemaRefIndex(value.ref)}`
326
- : `open:${value.requirements.map(schemaRefIndex).sort().join('|')}`;
313
+ ? `exact:${definitionRefIndex(value.ref)}`
314
+ : `open:${value.requirements.map(definitionRefIndex).sort().join('|')}`;
327
315
  result.set(key, value);
328
316
  }
329
317
  return [...result.values()];
330
318
  }
331
- function uniqueInterfaces(values) {
332
- return [...new Map(values.map((value) => [schemaRefIndex(value), value])).values()];
319
+ function uniqueClasses(values) {
320
+ return [...new Map(values.map((value) => [definitionRefIndex(value), value])).values()];
333
321
  }
334
322
  class UnionFind {
335
323
  #parents = new Map();
@@ -357,4 +345,3 @@ class UnionFind {
357
345
  this.#parents.set(b, a);
358
346
  }
359
347
  }
360
- //# sourceMappingURL=typing.js.map
@@ -3,4 +3,3 @@ import { type PolicyTyping } from './typing.js';
3
3
  export declare function validateReadUses(context: PolicyValidationContext, typing: PolicyTyping): void;
4
4
  export declare function validateTraverseUses(context: PolicyValidationContext, typing: PolicyTyping): void;
5
5
  export declare function validateCallableUses(context: PolicyValidationContext, typing: PolicyTyping): void;
6
- //# sourceMappingURL=uses.d.ts.map
@@ -1,49 +1,34 @@
1
- import { schemaRefIndex, formatSchemaRef, } from '../../reference.js';
2
- import { GRAPH_NODE_PATH_SCHEMA_ID } from '../../value/extensions/node-path/schema.js';
3
- import { normalizePolicyChecks } from '../normalize.js';
1
+ import { Key } from '../../../addressing/index.js';
2
+ import { definitionRefIndex } from '../../../addressing/ordering.js';
3
+ import { normalizePolicyChecks } from '../../../language/policy/normalization/normalize.js';
4
+ import { GRAPH_NODE_PATH_SCHEMA_ID } from '../../../language/value/syntax/node-path/schema.js';
4
5
  import { MAX_BRANCHES, MAX_CHECK_DEPTH, MAX_CHECK_LEAVES, measureChecks } from './budgets.js';
5
6
  import { escapePointer } from './context.js';
7
+ import { referenceContracts } from './objects.js';
6
8
  import { contractOfNodeDefinition } from './typing.js';
7
- const KERNEL_ORIGIN = 'kernel.astrale.ai';
8
- const PROJECTION_CLASS = nodeClassRef('Class');
9
- const PROJECTION_FUNCTION = nodeClassRef('Function');
10
- const PROJECTION_INTERFACE = nodeClassRef('Interface');
11
- const PROJECTION_POLICY = nodeClassRef('Policy');
12
- const PROJECTION_VIEW = nodeClassRef('View');
9
+ const formatDefinitionRef = Key.of;
13
10
  export function validateReadUses(context, typing) {
14
- for (const [name, declaration] of Object.entries(context.environment.candidate.classes)) {
15
- if (declaration.family !== 'node' || declaration.policies.read === undefined) {
16
- continue;
17
- }
18
- const pointer = `/classes/${escapePointer(name)}/policies/read`;
19
- const ref = declaration.policies.read;
20
- if (!context.resolvePolicy(ref, pointer))
21
- continue;
22
- const object = {
23
- kind: 'exact',
24
- ref: { origin: context.environment.candidate.origin, kind: 'class', name },
25
- };
26
- if (!typing.policyAccepts(ref.name, object)) {
27
- context.add('PL_USE', pointer, `${formatSchemaRef(ref)} is not valid for every normalized branch of protected Class ${name}.`, formatSchemaRef(ref));
28
- }
29
- }
11
+ validateClassPolicyUses(context, typing, 'read');
30
12
  }
31
13
  export function validateTraverseUses(context, typing) {
14
+ validateClassPolicyUses(context, typing, 'traverse');
15
+ }
16
+ function validateClassPolicyUses(context, typing, operation) {
32
17
  for (const [name, declaration] of Object.entries(context.environment.candidate.classes)) {
33
- const ref = declaration.policies.traverse;
18
+ const ref = declaration.policies[operation];
34
19
  if (ref === undefined)
35
20
  continue;
36
- const pointer = `/classes/${escapePointer(name)}/policies/traverse`;
21
+ const pointer = `/classes/${escapePointer(name)}/policies/${operation}`;
37
22
  if (!context.resolvePolicy(ref, pointer))
38
23
  continue;
39
- if (declaration.family === 'node') {
24
+ if (declaration.kind === 'node') {
40
25
  const object = {
41
26
  kind: 'exact',
42
27
  ref: { origin: context.environment.candidate.origin, kind: 'class', name },
43
28
  };
44
- if (!typing.policyAccepts(ref.name, object)) {
45
- context.add('PL_USE', pointer, `${formatSchemaRef(ref)} is not valid for every normalized branch of traversed Node Class ${name}.`, formatSchemaRef(ref));
46
- }
29
+ if (typing.policyAccepts(ref.name, object))
30
+ continue;
31
+ context.add('PL_USE', pointer, `${formatDefinitionRef(ref)} is not valid for every normalized branch of ${operation} Node Class ${name}.`, formatDefinitionRef(ref));
47
32
  continue;
48
33
  }
49
34
  const endpoints = declaration.orientation === 'directed'
@@ -51,19 +36,9 @@ export function validateTraverseUses(context, typing) {
51
36
  : declaration.endpoints;
52
37
  const sources = typing.concreteEndpointClasses(endpoints[0].accepts);
53
38
  const targets = typing.concreteEndpointClasses(endpoints[1].accepts);
54
- let accepted = true;
55
- for (const source of sources) {
56
- for (const target of targets) {
57
- if (!typing.policyAcceptsEdge(ref.name, { kind: 'exact', ref: source }, { kind: 'exact', ref: target })) {
58
- accepted = false;
59
- break;
60
- }
61
- }
62
- if (!accepted)
63
- break;
64
- }
39
+ const accepted = sources.every((source) => targets.every((target) => typing.policyAcceptsEdge(ref.name, { kind: 'exact', ref: source }, { kind: 'exact', ref: target })));
65
40
  if (!accepted) {
66
- context.add('PL_USE', pointer, `${formatSchemaRef(ref)} is not valid for every concrete source/target pair of traversed Edge Class ${name}.`, formatSchemaRef(ref));
41
+ context.add('PL_USE', pointer, `${formatDefinitionRef(ref)} is not valid for every concrete source/target pair of ${operation} Edge Class ${name}.`, formatDefinitionRef(ref));
67
42
  }
68
43
  }
69
44
  }
@@ -77,17 +52,8 @@ export function validateCallableUses(context, typing) {
77
52
  instanceMethod: false,
78
53
  });
79
54
  }
80
- for (const [name, declaration] of Object.entries(context.environment.candidate.interfaces)) {
81
- if (declaration.family !== 'node')
82
- continue;
83
- validateDeclaredMethods(context, typing, 'interfaces', name, declaration.methods, {
84
- origin: context.environment.candidate.origin,
85
- kind: 'interface',
86
- name,
87
- });
88
- }
89
55
  for (const [name, declaration] of Object.entries(context.environment.candidate.classes)) {
90
- if (declaration.family !== 'node')
56
+ if (declaration.kind !== 'node')
91
57
  continue;
92
58
  validateDeclaredMethods(context, typing, 'classes', name, declaration.methods, {
93
59
  origin: context.environment.candidate.origin,
@@ -97,7 +63,7 @@ export function validateCallableUses(context, typing) {
97
63
  }
98
64
  }
99
65
  function validateDeclaredMethods(context, typing, namespace, name, methods, receiver) {
100
- const ownerAnalysis = context.analysis.definitions.get(schemaRefIndex(receiver));
66
+ const ownerAnalysis = context.analysis.definitions.get(definitionRefIndex(receiver));
101
67
  for (const [methodName, method] of Object.entries(methods)) {
102
68
  if (method.policy === undefined)
103
69
  continue;
@@ -125,6 +91,18 @@ function validateChecks(validation, typing, expression, context) {
125
91
  visitChecks(validation, typing, normalized, context, context.pointer);
126
92
  }
127
93
  function visitChecks(validation, typing, expression, context, pointer) {
94
+ if ('sameNode' in expression) {
95
+ for (const [side, object] of Object.entries(expression.sameNode)) {
96
+ const objectPointer = `${pointer}/sameNode/${side}`;
97
+ if (object.kind === 'self')
98
+ selfContracts(validation, context, objectPointer);
99
+ else if (object.kind === 'input')
100
+ inputContracts(validation, context, object.field, objectPointer);
101
+ else
102
+ referenceContracts(validation, object.ref, objectPointer);
103
+ }
104
+ return;
105
+ }
128
106
  if ('check' in expression) {
129
107
  if (!validation.resolvePolicy(expression.check, `${pointer}/check`))
130
108
  return;
@@ -138,7 +116,7 @@ function visitChecks(validation, typing, expression, context, pointer) {
138
116
  return;
139
117
  for (const contract of contracts) {
140
118
  if (!typing.policyAccepts(expression.check.name, contract)) {
141
- validation.add('PL_USE', pointer, `${formatSchemaRef(expression.check)} is incompatible with the callable object contract.`, formatSchemaRef(expression.check));
119
+ validation.add('PL_USE', pointer, `${formatDefinitionRef(expression.check)} is incompatible with the callable object contract.`, formatDefinitionRef(expression.check));
142
120
  break;
143
121
  }
144
122
  }
@@ -150,57 +128,6 @@ function visitChecks(validation, typing, expression, context, pointer) {
150
128
  }
151
129
  values.forEach((child, index) => visitChecks(validation, typing, child, context, `${pointer}/${key}/${index}`));
152
130
  }
153
- function referenceContracts(validation, ref, pointer) {
154
- const candidate = validation.environment.candidate;
155
- if (ref.origin !== candidate.origin)
156
- return invalidPolicyObjectRef(validation, ref, pointer);
157
- switch (ref.kind) {
158
- case 'interface': {
159
- const resolved = validation.environment.resolve(ref);
160
- return resolved?.ref.kind === ref.kind
161
- ? [{ kind: 'exact', ref: PROJECTION_INTERFACE }]
162
- : invalidPolicyObjectRef(validation, ref, pointer);
163
- }
164
- case 'class': {
165
- const resolved = validation.environment.resolve(ref);
166
- return resolved?.ref.kind === ref.kind
167
- ? [{ kind: 'exact', ref: PROJECTION_CLASS }]
168
- : invalidPolicyObjectRef(validation, ref, pointer);
169
- }
170
- case 'function':
171
- return candidate.functions[ref.name] === undefined
172
- ? invalidPolicyObjectRef(validation, ref, pointer)
173
- : [{ kind: 'exact', ref: PROJECTION_FUNCTION }];
174
- case 'policy':
175
- return candidate.policies[ref.name] === undefined
176
- ? invalidPolicyObjectRef(validation, ref, pointer)
177
- : [{ kind: 'exact', ref: PROJECTION_POLICY }];
178
- case 'view':
179
- return candidate.views[ref.name] === undefined
180
- ? invalidPolicyObjectRef(validation, ref, pointer)
181
- : [{ kind: 'exact', ref: PROJECTION_VIEW }];
182
- case 'core': {
183
- const node = candidate.core.nodes[ref.name];
184
- if (node === undefined)
185
- return invalidPolicyObjectRef(validation, ref, pointer);
186
- const resolved = validation.environment.resolve(node.class);
187
- const analyzed = validation.analysis.definitions.get(schemaRefIndex(node.class));
188
- // Core validation owns invalid Core Class diagnostics. Avoid adding Policy noise for
189
- // a Node that cannot materialize in the first place.
190
- if (node.class.origin !== candidate.origin ||
191
- resolved?.ref.kind !== 'class' ||
192
- resolved.family !== 'node' ||
193
- analyzed === undefined) {
194
- return undefined;
195
- }
196
- return [contractOfNodeDefinition(node.class)];
197
- }
198
- }
199
- }
200
- function invalidPolicyObjectRef(validation, ref, pointer) {
201
- validation.add('PL_REF', `${pointer}/ref`, `${formatSchemaRef(ref)} is not an exact local projected Policy object.`, formatSchemaRef(ref));
202
- return undefined;
203
- }
204
131
  function selfContracts(validation, context, pointer) {
205
132
  if (!context.instanceMethod || context.receiver === undefined) {
206
133
  validation.add('PL_USE', pointer, 'self is valid only for a Node instance Method.');
@@ -238,8 +165,8 @@ function inputContracts(validation, context, field, pointer) {
238
165
  return undefined;
239
166
  }
240
167
  const resolved = validation.environment.resolve(ref);
241
- if (resolved === undefined || resolved.family !== 'node') {
242
- validation.add('PL_USE', pointer, `input.${field} ref ${formatSchemaRef(ref)} does not resolve as an allowed Node Definition.`, formatSchemaRef(ref));
168
+ if (resolved === undefined || resolved.ref.kind !== 'class' || resolved.kind !== 'node') {
169
+ validation.add('PL_USE', pointer, `input.${field} ref ${formatDefinitionRef(ref)} does not resolve as an allowed Node Definition.`, formatDefinitionRef(ref));
243
170
  return undefined;
244
171
  }
245
172
  contracts.push(contractOfNodeDefinition(ref));
@@ -258,7 +185,7 @@ function isDefinitionRef(value) {
258
185
  const record = asRecord(value);
259
186
  return (record !== undefined &&
260
187
  typeof record.origin === 'string' &&
261
- (record.kind === 'class' || record.kind === 'interface') &&
188
+ record.kind === 'class' &&
262
189
  typeof record.name === 'string');
263
190
  }
264
191
  function checkOperands(value) {
@@ -266,7 +193,3 @@ function checkOperands(value) {
266
193
  ? { key: 'allOf', values: value.allOf }
267
194
  : { key: 'anyOf', values: value.anyOf };
268
195
  }
269
- function nodeClassRef(name) {
270
- return { origin: KERNEL_ORIGIN, kind: 'class', name };
271
- }
272
- //# sourceMappingURL=uses.js.map
@@ -1,5 +1,5 @@
1
- import type { DefinitionAnalysisResult } from '../../definition/analysis.js';
2
- import type { DomainDiagnostic } from '../../diagnostic.js';
1
+ import type { DefinitionAnalysisResult } from '../../analysis/class.js';
2
+ import type { SchemaDiagnostic } from '../../diagnostic.js';
3
3
  import type { DomainResolutionContext } from '../../resolution/context.js';
4
4
  /**
5
5
  * Validates the closed V1 Policy language after structural parsing.
@@ -8,5 +8,4 @@ import type { DomainResolutionContext } from '../../resolution/context.js';
8
8
  * failure. Environment and definition diagnostics are owned by their respective
9
9
  * validators and are therefore not repeated here.
10
10
  */
11
- export declare function validatePolicies(environment: DomainResolutionContext, analysis: DefinitionAnalysisResult): readonly DomainDiagnostic[];
12
- //# sourceMappingURL=validate.d.ts.map
11
+ export declare function validatePolicies(environment: DomainResolutionContext, analysis: DefinitionAnalysisResult): readonly SchemaDiagnostic[];
@@ -21,4 +21,3 @@ export function validatePolicies(environment, analysis) {
21
21
  validateCallableUses(context, typing);
22
22
  return Object.freeze(context.diagnostics);
23
23
  }
24
- //# sourceMappingURL=validate.js.map
@@ -1,14 +1,13 @@
1
1
  /** The exact V1 value-schema grammar embedded in DomainSchema declarations. */
2
- import type { DomainDiagnostic } from '../diagnostic.js';
3
- import type { DomainSchema } from '../domain.ir.js';
4
- import type { OrderingKind } from './ordering.js';
5
- import type { JsonSchema } from './schema.js';
6
- export { VALUE_SCHEMA_DIALECT as DIALECT, VALUE_SCHEMA_VOCABULARY as VOCABULARY } from './schema.js';
7
- export type { JsonSchema as Schema, JsonSchemaObject as SchemaObject, PathAnnotation, PropertyObjectSchema as PropertySchema, ValueSchemaContext as Context, } from './schema.js';
8
- export { instant } from './instant.js';
9
- export type { OrderingKind } from './ordering.js';
2
+ import type { Diagnostic } from '../../language/validation/diagnostic.js';
3
+ import type { JsonSchema } from '../../language/value/model/schema.js';
4
+ import type { OrderingKind } from '../../language/value/ordering.js';
5
+ import type { DomainSchema } from '../model/schema.js';
6
+ export { VALUE_SCHEMA_DIALECT as DIALECT, VALUE_SCHEMA_VOCABULARY as VOCABULARY, } from '../../language/value/model/schema.js';
7
+ export type { JsonSchema as Schema, JsonSchemaObject as SchemaObject, PathAnnotation, PropertyObjectSchema as PropertySchema, ValueSchemaContext as Context, } from '../../language/value/model/schema.js';
8
+ export { instant } from '../../language/value/model/instant.js';
9
+ export type { OrderingKind } from '../../language/value/ordering.js';
10
10
  /** Validate one complete JSON value under the exact accepted schema that owns the contract. */
11
- export declare function validate(owner: DomainSchema, contract: JsonSchema, input: unknown, pointer?: string): readonly DomainDiagnostic[];
11
+ export declare function validate(owner: DomainSchema, contract: JsonSchema, input: unknown, pointer?: string): readonly Diagnostic[];
12
12
  /** Return the one portable scalar ordering domain admitted by a property schema, if any. */
13
13
  export declare function classifyOrdering(owner: DomainSchema, contract: JsonSchema): OrderingKind | undefined;
14
- //# sourceMappingURL=index.d.ts.map
@@ -1,10 +1,10 @@
1
1
  /** The exact V1 value-schema grammar embedded in DomainSchema declarations. */
2
+ import { validateJsonInstance } from '../../language/value/evaluate/validate.js';
3
+ import { classifyOrdering as classifyOrderingWithRegistry } from '../../language/value/ordering.js';
2
4
  import { createDomainValueSchemaRegistry } from '../resolution/value.registry.js';
3
- import { validateJsonInstance } from './instance.validate.js';
4
- import { classifyOrdering as classifyOrderingWithRegistry } from './ordering.js';
5
5
  const registries = new WeakMap();
6
- export { VALUE_SCHEMA_DIALECT as DIALECT, VALUE_SCHEMA_VOCABULARY as VOCABULARY } from './schema.js';
7
- export { instant } from './instant.js';
6
+ export { VALUE_SCHEMA_DIALECT as DIALECT, VALUE_SCHEMA_VOCABULARY as VOCABULARY, } from '../../language/value/model/schema.js';
7
+ export { instant } from '../../language/value/model/instant.js';
8
8
  /** Validate one complete JSON value under the exact accepted schema that owns the contract. */
9
9
  export function validate(owner, contract, input, pointer = '') {
10
10
  return validateJsonInstance(contract, input, registryFor(owner), pointer);
@@ -21,4 +21,3 @@ function registryFor(owner) {
21
21
  }
22
22
  return registry;
23
23
  }
24
- //# sourceMappingURL=index.js.map
@@ -1,5 +1,4 @@
1
- import type { DomainDiagnostic } from '../diagnostic.js';
2
- import type { DomainSchemaIR } from '../domain.ir.js';
3
- import type { ValueSchemaRegistry } from '../value/registry.js';
4
- export declare function validateEmbeddedValueSchemas(schema: DomainSchemaIR, registry: ValueSchemaRegistry): readonly DomainDiagnostic[];
5
- //# sourceMappingURL=value.d.ts.map
1
+ import type { ValueSchemaRegistry } from '../../language/value/reference/registry.js';
2
+ import type { SchemaDiagnostic } from '../diagnostic.js';
3
+ import type { DomainSchemaIR } from '../model/schema.js';
4
+ export declare function validateEmbeddedValueSchemas(schema: DomainSchemaIR, registry: ValueSchemaRegistry): readonly SchemaDiagnostic[];
@@ -1,13 +1,7 @@
1
+ import { validateValueSchema } from '../../language/value/profile/validate.js';
1
2
  import { diagnostic } from '../diagnostic.js';
2
- import { validateValueSchema } from '../value/profile/validate.js';
3
3
  export function validateEmbeddedValueSchemas(schema, registry) {
4
4
  const diagnostics = [];
5
- for (const [name, value] of Object.entries(schema.types)) {
6
- validate(value, 'named-type', `/types/${escapePointer(name)}`, registry, diagnostics);
7
- }
8
- for (const [name, declaration] of Object.entries(schema.interfaces)) {
9
- validateDefinition(declaration, `/interfaces/${escapePointer(name)}`, registry, diagnostics);
10
- }
11
5
  for (const [name, declaration] of Object.entries(schema.classes)) {
12
6
  validateDefinition(declaration, `/classes/${escapePointer(name)}`, registry, diagnostics);
13
7
  }
@@ -17,7 +11,9 @@ export function validateEmbeddedValueSchemas(schema, registry) {
17
11
  return Object.freeze(diagnostics);
18
12
  }
19
13
  function validateDefinition(declaration, pointer, registry, diagnostics) {
20
- validate(declaration.properties, 'property-facet', `${pointer}/properties`, registry, diagnostics);
14
+ for (const [name, property] of Object.entries(declaration.properties)) {
15
+ validate(property.schema, 'property-facet', `${pointer}/properties/${escapePointer(name)}/schema`, registry, diagnostics);
16
+ }
21
17
  if ('methods' in declaration) {
22
18
  for (const [name, method] of Object.entries(declaration.methods)) {
23
19
  validateCallable(method, `${pointer}/methods/${escapePointer(name)}`, registry, diagnostics);
@@ -41,4 +37,3 @@ function validate(schema, context, pointer, registry, diagnostics) {
41
37
  function escapePointer(value) {
42
38
  return value.replaceAll('~', '~0').replaceAll('/', '~1');
43
39
  }
44
- //# sourceMappingURL=value.js.map
@@ -0,0 +1,3 @@
1
+ import type { SchemaDiagnostic } from '../diagnostic.js';
2
+ import type { DomainResolutionContext } from '../resolution/context.js';
3
+ export declare function validateViews(environment: DomainResolutionContext): readonly SchemaDiagnostic[];
@@ -1,22 +1,29 @@
1
+ import { Key } from '../../addressing/key.js';
1
2
  import { diagnostic } from '../diagnostic.js';
2
- import { formatSchemaRef } from '../reference.js';
3
+ const formatDefinitionRef = Key.of;
3
4
  export function validateViews(environment) {
4
5
  const diagnostics = [];
5
6
  for (const [name, view] of Object.entries(environment.candidate.views)) {
6
7
  const pointer = `/views/${escapePointer(name)}`;
8
+ const ref = { origin: environment.candidate.origin, kind: 'view', name };
9
+ if (!sameRef(view.ref, ref)) {
10
+ diagnostics.push(diagnostic('DV_REF_RESOLVES', `${pointer}/ref`, `View ref must be exactly ${formatDefinitionRef(ref)}.`, formatDefinitionRef(view.ref)));
11
+ }
7
12
  if (view.target.kind === 'definition') {
8
13
  view.target.definitions.forEach((ref, index) => validateDefinitionTarget(environment, ref, `${pointer}/target/definitions/${index}`, diagnostics));
9
14
  }
10
15
  }
11
16
  return Object.freeze(diagnostics);
12
17
  }
18
+ function sameRef(left, right) {
19
+ return left.origin === right.origin && left.kind === right.kind && left.name === right.name;
20
+ }
13
21
  function validateDefinitionTarget(environment, ref, pointer, diagnostics) {
14
22
  const target = environment.resolve(ref);
15
- if (target === undefined || target.family !== 'node') {
16
- diagnostics.push(diagnostic('DV_VIEW_TARGET', pointer, `Definition target ${formatSchemaRef(ref)} does not resolve to a Node Definition.`, formatSchemaRef(ref)));
23
+ if (target === undefined || target.ref.kind !== 'class' || target.kind !== 'node') {
24
+ diagnostics.push(diagnostic('DV_VIEW_TARGET', pointer, `Definition target ${formatDefinitionRef(ref)} does not resolve to a Node Class.`, formatDefinitionRef(ref)));
17
25
  }
18
26
  }
19
27
  function escapePointer(value) {
20
28
  return value.replaceAll('~', '~0').replaceAll('/', '~1');
21
29
  }
22
- //# sourceMappingURL=validate.js.map
@@ -0,0 +1,2 @@
1
+ /** Narrow public runtime owner for the portable full-string matcher. */
2
+ export { fullMatch, type FullMatch } from '../language/value/syntax/full-match.js';
@@ -0,0 +1,2 @@
1
+ /** Narrow public runtime owner for the portable full-string matcher. */
2
+ export { fullMatch } from '../language/value/syntax/full-match.js';
package/dist/v1.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- /** Compatibility source facade; the explicit V1 module is owned by `./v1/index.ts`. */
1
+ /** Source facade for the governing V1 module. */
2
2
  export * from './v1/index.js';
3
- //# sourceMappingURL=v1.d.ts.map
package/dist/v1.js CHANGED
@@ -1,3 +1,2 @@
1
- /** Compatibility source facade; the explicit V1 module is owned by `./v1/index.ts`. */
1
+ /** Source facade for the governing V1 module. */
2
2
  export * from './v1/index.js';
3
- //# sourceMappingURL=v1.js.map
@@ -6,4 +6,3 @@ import { type Options } from './limits.js';
6
6
  * Every source property is obtained from one descriptor snapshot. Accessors are never invoked.
7
7
  */
8
8
  export declare function accept(input: unknown, options?: Options): Value;
9
- //# sourceMappingURL=accept.d.ts.map