@astrale-os/kernel-core 0.9.0-beta.9 → 1.0.0-beta.2

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 (378) hide show
  1. package/dist/auth/authority/accept.js +4 -0
  2. package/dist/auth/authority/admission/admission.d.ts +4 -1
  3. package/dist/auth/authority/admission/admission.js +46 -147
  4. package/dist/auth/authority/admission/index.d.ts +1 -1
  5. package/dist/auth/authority/admission/index.js +1 -1
  6. package/dist/auth/authority/admission/references.d.ts +13 -0
  7. package/dist/auth/authority/admission/references.js +38 -0
  8. package/dist/auth/authority/admission/term.d.ts +6 -0
  9. package/dist/auth/authority/admission/term.js +60 -0
  10. package/dist/auth/authority/admission/wire.d.ts +8 -0
  11. package/dist/auth/authority/admission/wire.js +33 -0
  12. package/dist/auth/authority/canonical.d.ts +2 -0
  13. package/dist/auth/authority/canonical.js +15 -0
  14. package/dist/auth/authority/index.d.ts +9 -2
  15. package/dist/auth/authority/index.js +6 -1
  16. package/dist/auth/authority/language/index.d.ts +3 -1
  17. package/dist/auth/authority/language/index.js +1 -0
  18. package/dist/auth/authority/language/predicate.d.ts +31 -16
  19. package/dist/auth/authority/language/predicate.js +1 -1
  20. package/dist/auth/authority/language/program.d.ts +21 -0
  21. package/dist/auth/authority/language/program.js +2 -0
  22. package/dist/auth/authority/normalization/index.d.ts +1 -1
  23. package/dist/auth/authority/normalization/index.js +1 -1
  24. package/dist/auth/authority/normalization/normalize.d.ts +2 -0
  25. package/dist/auth/authority/normalization/normalize.js +38 -16
  26. package/dist/auth/authority/ownership.optimization.d.ts +8 -0
  27. package/dist/auth/authority/ownership.optimization.js +83 -0
  28. package/dist/auth/authority/prepare-binder-body.d.ts +4 -0
  29. package/dist/auth/authority/prepare-binder-body.js +31 -0
  30. package/dist/auth/authority/program.d.ts +28 -0
  31. package/dist/auth/authority/program.js +191 -0
  32. package/dist/auth/authority/semantics/class-authority.d.ts +8 -0
  33. package/dist/auth/authority/semantics/class-authority.js +26 -0
  34. package/dist/auth/authority/semantics/composition.d.ts +39 -0
  35. package/dist/auth/authority/semantics/composition.js +112 -0
  36. package/dist/auth/authority/semantics/failure.d.ts +21 -0
  37. package/dist/auth/authority/semantics/failure.js +10 -0
  38. package/dist/auth/authority/semantics/index.d.ts +11 -0
  39. package/dist/auth/authority/semantics/index.js +5 -0
  40. package/dist/auth/authority/semantics/interpret.d.ts +41 -0
  41. package/dist/auth/authority/semantics/interpret.js +388 -0
  42. package/dist/auth/authority/semantics/snapshot.d.ts +40 -0
  43. package/dist/auth/authority/semantics/terms.d.ts +20 -0
  44. package/dist/auth/authority/semantics/terms.js +96 -0
  45. package/dist/auth/authority/semantics/vocabulary.d.ts +19 -0
  46. package/dist/auth/context/context.d.ts +4 -3
  47. package/dist/auth/expression/authoring/builder.d.ts +2 -11
  48. package/dist/auth/expression/authoring/builder.js +1 -45
  49. package/dist/auth/expression/authoring/index.d.ts +1 -1
  50. package/dist/auth/expression/authoring/index.js +1 -1
  51. package/dist/auth/expression/index.d.ts +1 -2
  52. package/dist/auth/expression/index.js +1 -2
  53. package/dist/auth/expression/language/identity-expression.d.ts +2 -22
  54. package/dist/auth/grant/index.d.ts +1 -1
  55. package/dist/auth/grant/index.js +1 -1
  56. package/dist/auth/grant/resolved/admission.d.ts +4 -3
  57. package/dist/auth/grant/resolved/admission.js +23 -13
  58. package/dist/auth/grant/resolved/grant.d.ts +1 -1
  59. package/dist/auth/grant/resolved/index.d.ts +1 -1
  60. package/dist/auth/grant/resolved/index.js +1 -1
  61. package/dist/auth/grant/unresolved/admission.d.ts +4 -1
  62. package/dist/auth/grant/unresolved/admission.js +27 -67
  63. package/dist/auth/grant/unresolved/limits.d.ts +2 -4
  64. package/dist/auth/grant/unresolved/limits.js +1 -5
  65. package/dist/auth/identity/admission.js +11 -3
  66. package/dist/auth/identity/identity.d.ts +15 -3
  67. package/dist/auth/identity/index.d.ts +1 -1
  68. package/dist/auth/index.d.ts +4 -4
  69. package/dist/auth/index.js +1 -1
  70. package/dist/auth/jwk/index.d.ts +1 -1
  71. package/dist/auth/jwk/index.js +1 -1
  72. package/dist/auth/jwk/thumbprint.d.ts +2 -0
  73. package/dist/auth/jwk/thumbprint.js +12 -6
  74. package/dist/auth/register/fingerprint/fingerprint.d.ts +25 -0
  75. package/dist/auth/register/fingerprint/fingerprint.js +31 -0
  76. package/dist/auth/register/fingerprint/index.d.ts +2 -0
  77. package/dist/auth/register/index.d.ts +5 -0
  78. package/dist/auth/register/request/admission.d.ts +3 -0
  79. package/dist/auth/register/request/admission.js +103 -0
  80. package/dist/auth/register/request/index.d.ts +3 -0
  81. package/dist/auth/register/request/limits.d.ts +6 -0
  82. package/dist/auth/register/request/limits.js +6 -0
  83. package/dist/auth/register/request/request.d.ts +19 -0
  84. package/dist/auth/{provision → register}/request/self-issuer.d.ts +1 -1
  85. package/dist/auth/{provision → register}/request/self-issuer.js +1 -1
  86. package/dist/auth/register/result/index.d.ts +1 -0
  87. package/dist/auth/register/result/result.d.ts +10 -0
  88. package/dist/auth/register/result/result.js +1 -0
  89. package/dist/callable/contract/body.d.ts +10 -0
  90. package/dist/callable/contract/body.js +7 -0
  91. package/dist/callable/contract/index.d.ts +2 -1
  92. package/dist/callable/contract/index.js +1 -1
  93. package/dist/callable/contract/output.d.ts +18 -2
  94. package/dist/callable/index.d.ts +3 -2
  95. package/dist/callable/index.js +2 -1
  96. package/dist/callable/invocation/call.d.ts +16 -2
  97. package/dist/callable/invocation/call.js +41 -1
  98. package/dist/callable/invocation/index.d.ts +1 -1
  99. package/dist/callable/invocation/index.js +1 -1
  100. package/dist/callable/invocation/result.d.ts +2 -2
  101. package/dist/dns-label.d.ts +1 -2
  102. package/dist/dns-label.js +2 -3
  103. package/dist/graph/graph/graph.d.ts +1 -5
  104. package/dist/graph/graph/graph.js +3 -27
  105. package/dist/graph/graph/index.d.ts +2 -4
  106. package/dist/graph/graph/index.js +2 -3
  107. package/dist/graph/graph/model/codec.js +4 -4
  108. package/dist/graph/graph/model/index.d.ts +1 -1
  109. package/dist/graph/graph/model/index.js +1 -1
  110. package/dist/graph/graph/model/model.d.ts +7 -7
  111. package/dist/graph/graph/model/model.js +6 -6
  112. package/dist/graph/graph/model/wire.d.ts +58 -78
  113. package/dist/graph/graph/model/wire.js +18 -19
  114. package/dist/graph/mutate/authoring/builder.d.ts +2 -2
  115. package/dist/graph/mutate/authoring/builder.js +2 -2
  116. package/dist/graph/mutate/authoring/create.js +13 -5
  117. package/dist/graph/mutate/index.d.ts +1 -1
  118. package/dist/graph/mutate/language/codec.js +3 -3
  119. package/dist/graph/mutate/language/model.d.ts +4 -4
  120. package/dist/graph/mutate/language/wire.d.ts +226 -215
  121. package/dist/graph/mutate/language/wire.js +42 -47
  122. package/dist/graph/mutate/result/index.d.ts +4 -3
  123. package/dist/graph/mutate/result/index.js +8 -6
  124. package/dist/graph/mutate/result/wire.d.ts +4 -4
  125. package/dist/graph/mutate/result/wire.js +7 -4
  126. package/dist/graph/node/identity/id.d.ts +0 -4
  127. package/dist/graph/node/identity/id.js +0 -5
  128. package/dist/graph/node/identity/order.js +20 -0
  129. package/dist/graph/path/authoring/path.d.ts +8 -5
  130. package/dist/graph/path/authoring/path.js +21 -3
  131. package/dist/graph/path/language/model.d.ts +8 -3
  132. package/dist/graph/path/language/syntax.js +23 -8
  133. package/dist/graph/query/authoring/builder.js +37 -5
  134. package/dist/graph/query/authoring/model.d.ts +20 -1
  135. package/dist/graph/query/index.d.ts +4 -2
  136. package/dist/graph/query/index.js +1 -0
  137. package/dist/graph/query/language/codec.js +18 -3
  138. package/dist/graph/query/language/fingerprint.js +8 -0
  139. package/dist/graph/query/language/model.d.ts +22 -4
  140. package/dist/graph/query/language/wire.d.ts +124 -114
  141. package/dist/graph/query/language/wire.js +54 -47
  142. package/dist/graph/query/order/index.d.ts +53 -0
  143. package/dist/graph/query/order/index.js +79 -0
  144. package/dist/graph/query/reference/evaluate.d.ts +1 -0
  145. package/dist/graph/query/reference/evaluate.js +39 -52
  146. package/dist/graph/query/result/index.js +1 -1
  147. package/dist/graph/query/result/wire.d.ts +93 -94
  148. package/dist/graph/query/result/wire.js +20 -20
  149. package/dist/graph/reconcile/condition/model.d.ts +2 -2
  150. package/dist/graph/reconcile/condition/references.d.ts +0 -1
  151. package/dist/graph/reconcile/condition/references.js +4 -4
  152. package/dist/graph/reconcile/correspondence.d.ts +9 -8
  153. package/dist/graph/reconcile/evidence.d.ts +2 -2
  154. package/dist/graph/reconcile/mutation/assess.d.ts +2 -1
  155. package/dist/graph/reconcile/observation.d.ts +4 -3
  156. package/dist/graph/reconcile/planning/canonical.d.ts +6 -0
  157. package/dist/graph/reconcile/planning/canonical.js +28 -0
  158. package/dist/graph/reconcile/planning/context.d.ts +3 -3
  159. package/dist/graph/reconcile/planning/model.d.ts +8 -4
  160. package/dist/graph/reconcile/planning/plan.js +2 -1
  161. package/dist/schema/authority/authority-relation.js +3 -0
  162. package/dist/schema/authority/claims.d.ts +24 -25
  163. package/dist/schema/authority/claims.js +8 -8
  164. package/dist/schema/authority/governed-by.d.ts +16 -91
  165. package/dist/schema/authority/governed-by.js +1 -1
  166. package/dist/schema/authority/operation-node.d.ts +27 -13
  167. package/dist/schema/authority/operations.d.ts +8 -168
  168. package/dist/schema/authority/policy.d.ts +27 -15
  169. package/dist/schema/authority/vocabulary.d.ts +3 -0
  170. package/dist/schema/authority/vocabulary.js +25 -0
  171. package/dist/schema/callables/entrypoint.d.ts +32 -0
  172. package/dist/schema/callables/entrypoint.js +12 -0
  173. package/dist/schema/callables/execution.d.ts +269 -0
  174. package/dist/schema/callables/execution.js +32 -0
  175. package/dist/schema/callables/function.d.ts +3400 -55
  176. package/dist/schema/callables/function.js +4 -3
  177. package/dist/schema/callables/index.d.ts +2 -1
  178. package/dist/schema/callables/index.js +2 -1
  179. package/dist/schema/callables/method-of.d.ts +18 -143
  180. package/dist/schema/callables/method-of.js +2 -2
  181. package/dist/schema/callables/view.d.ts +83 -51
  182. package/dist/schema/definitions/class.d.ts +45 -33
  183. package/dist/schema/definitions/extends.d.ts +16 -110
  184. package/dist/schema/definitions/instance-of.d.ts +17 -69
  185. package/dist/schema/domain/domain.d.ts +3343 -148
  186. package/dist/schema/domain/domain.js +6 -3
  187. package/dist/schema/domain/of-domain.d.ts +18 -192
  188. package/dist/schema/domain/of-domain.js +1 -1
  189. package/dist/schema/identity/composition.d.ts +5 -0
  190. package/dist/schema/identity/composition.js +5 -0
  191. package/dist/schema/identity/identity.d.ts +225 -122
  192. package/dist/schema/identity/identity.js +3 -4
  193. package/dist/schema/index.d.ts +1 -0
  194. package/dist/schema/index.js +1 -0
  195. package/dist/schema/installation/operation-id.d.ts +1 -2
  196. package/dist/schema/installation/operation-id.js +2 -4
  197. package/dist/schema/introspection/index.d.ts +1 -1
  198. package/dist/schema/introspection/language.d.ts +12 -28
  199. package/dist/schema/kernel/projection/callables.js +2 -3
  200. package/dist/schema/kernel/projection/core.d.ts +7 -0
  201. package/dist/schema/kernel/projection/core.js +51 -0
  202. package/dist/schema/kernel/projection/definitions.d.ts +13 -0
  203. package/dist/schema/kernel/projection/definitions.js +71 -0
  204. package/dist/schema/kernel/projection/index.d.ts +3 -3
  205. package/dist/schema/kernel/projection/index.js +2 -2
  206. package/dist/schema/kernel/projection/methods.d.ts +5 -0
  207. package/dist/schema/kernel/projection/methods.js +41 -0
  208. package/dist/schema/kernel/projection/part.d.ts +34 -0
  209. package/dist/schema/kernel/projection/part.js +42 -0
  210. package/dist/schema/kernel/projection/paths.d.ts +6 -0
  211. package/dist/schema/kernel/projection/{keys.js → paths.js} +12 -14
  212. package/dist/schema/kernel/projection/project.d.ts +4 -2
  213. package/dist/schema/kernel/projection/project.js +33 -258
  214. package/dist/schema/kernel/projection/properties.d.ts +11 -0
  215. package/dist/schema/kernel/projection/properties.js +36 -0
  216. package/dist/schema/kernel/projection/relations.d.ts +7 -0
  217. package/dist/schema/kernel/projection/relations.js +61 -0
  218. package/dist/schema/kernel/projection/types.d.ts +28 -2
  219. package/dist/schema/kernel/schema.d.ts +8737 -5086
  220. package/dist/schema/kernel/schema.js +12 -8
  221. package/dist/schema/kernel/syscalls/contracts/admit.d.ts +15 -12
  222. package/dist/schema/kernel/syscalls/contracts/admit.js +16 -9
  223. package/dist/schema/kernel/syscalls/contracts/blob.d.ts +31 -0
  224. package/dist/schema/kernel/syscalls/contracts/blob.js +24 -0
  225. package/dist/schema/kernel/syscalls/contracts/can.d.ts +19 -8
  226. package/dist/schema/kernel/syscalls/contracts/can.js +12 -4
  227. package/dist/schema/kernel/syscalls/contracts/delegate.d.ts +6 -7
  228. package/dist/schema/kernel/syscalls/contracts/delegate.js +5 -5
  229. package/dist/schema/kernel/syscalls/contracts/execution.d.ts +60 -0
  230. package/dist/schema/kernel/syscalls/contracts/execution.js +46 -0
  231. package/dist/schema/kernel/syscalls/contracts/expected.d.ts +5 -0
  232. package/dist/schema/kernel/syscalls/contracts/expected.js +9 -0
  233. package/dist/schema/kernel/syscalls/contracts/identity.d.ts +18 -19
  234. package/dist/schema/kernel/syscalls/contracts/identity.js +6 -7
  235. package/dist/schema/kernel/syscalls/contracts/impersonate.d.ts +6 -0
  236. package/dist/schema/kernel/syscalls/contracts/impersonate.js +4 -0
  237. package/dist/schema/kernel/syscalls/contracts/index.d.ts +6 -3
  238. package/dist/schema/kernel/syscalls/contracts/index.js +6 -3
  239. package/dist/schema/kernel/syscalls/contracts/install.d.ts +149 -217
  240. package/dist/schema/kernel/syscalls/contracts/install.js +22 -26
  241. package/dist/schema/kernel/syscalls/contracts/installation.d.ts +65 -351
  242. package/dist/schema/kernel/syscalls/contracts/installation.js +29 -67
  243. package/dist/schema/kernel/syscalls/contracts/introspect.d.ts +11 -15
  244. package/dist/schema/kernel/syscalls/contracts/introspect.js +8 -15
  245. package/dist/schema/kernel/syscalls/contracts/journal.d.ts +26 -27
  246. package/dist/schema/kernel/syscalls/contracts/journal.js +15 -15
  247. package/dist/schema/kernel/syscalls/contracts/mint.d.ts +5 -7
  248. package/dist/schema/kernel/syscalls/contracts/mint.js +4 -5
  249. package/dist/schema/kernel/syscalls/contracts/mutate.d.ts +243 -224
  250. package/dist/schema/kernel/syscalls/contracts/mutate.js +7 -1
  251. package/dist/schema/kernel/syscalls/contracts/query.d.ts +232 -222
  252. package/dist/schema/kernel/syscalls/contracts/query.js +10 -15
  253. package/dist/schema/kernel/syscalls/contracts/register.d.ts +20 -0
  254. package/dist/schema/kernel/syscalls/contracts/register.js +24 -0
  255. package/dist/schema/kernel/syscalls/contracts/uninstall.d.ts +54 -148
  256. package/dist/schema/kernel/syscalls/contracts/uninstall.js +6 -5
  257. package/dist/schema/kernel/syscalls/contracts/view-host-requirements.d.ts +17 -0
  258. package/dist/schema/kernel/syscalls/contracts/view-host-requirements.js +40 -0
  259. package/dist/schema/kernel/syscalls/contracts/view-resolve.d.ts +27 -28
  260. package/dist/schema/kernel/syscalls/contracts/view-resolve.js +16 -24
  261. package/dist/schema/kernel/syscalls/contracts/whoami.d.ts +19 -20
  262. package/dist/schema/kernel/syscalls/contracts/whoami.js +2 -2
  263. package/dist/schema/kernel/syscalls/contracts/whois.d.ts +22 -23
  264. package/dist/schema/kernel/syscalls/contracts/whois.js +3 -3
  265. package/dist/schema/kernel/syscalls/declarations/admit.d.ts +18 -18
  266. package/dist/schema/kernel/syscalls/declarations/admit.js +3 -3
  267. package/dist/schema/kernel/syscalls/declarations/can.d.ts +19 -14
  268. package/dist/schema/kernel/syscalls/declarations/can.js +4 -4
  269. package/dist/schema/kernel/syscalls/declarations/delegate.d.ts +9 -12
  270. package/dist/schema/kernel/syscalls/declarations/delegate.js +4 -4
  271. package/dist/schema/kernel/syscalls/declarations/download.d.ts +12 -0
  272. package/dist/schema/kernel/syscalls/declarations/download.js +10 -0
  273. package/dist/schema/kernel/syscalls/declarations/execution.d.ts +105 -0
  274. package/dist/schema/kernel/syscalls/declarations/execution.js +52 -0
  275. package/dist/schema/kernel/syscalls/declarations/impersonate.d.ts +9 -0
  276. package/dist/schema/kernel/syscalls/declarations/impersonate.js +12 -0
  277. package/dist/schema/kernel/syscalls/declarations/index.d.ts +870 -1323
  278. package/dist/schema/kernel/syscalls/declarations/index.js +18 -2
  279. package/dist/schema/kernel/syscalls/declarations/install.d.ts +29 -172
  280. package/dist/schema/kernel/syscalls/declarations/install.js +7 -5
  281. package/dist/schema/kernel/syscalls/declarations/introspect.d.ts +8 -19
  282. package/dist/schema/kernel/syscalls/declarations/introspect.js +3 -4
  283. package/dist/schema/kernel/syscalls/declarations/journal.d.ts +29 -31
  284. package/dist/schema/kernel/syscalls/declarations/journal.js +4 -2
  285. package/dist/schema/kernel/syscalls/declarations/mint.d.ts +8 -13
  286. package/dist/schema/kernel/syscalls/declarations/mint.js +5 -5
  287. package/dist/schema/kernel/syscalls/declarations/mutate.d.ts +239 -256
  288. package/dist/schema/kernel/syscalls/declarations/mutate.js +4 -2
  289. package/dist/schema/kernel/syscalls/declarations/query.d.ts +235 -260
  290. package/dist/schema/kernel/syscalls/declarations/query.js +4 -2
  291. package/dist/schema/kernel/syscalls/declarations/register.d.ts +23 -0
  292. package/dist/schema/kernel/syscalls/declarations/register.js +10 -0
  293. package/dist/schema/kernel/syscalls/declarations/uninstall.d.ts +49 -153
  294. package/dist/schema/kernel/syscalls/declarations/uninstall.js +4 -2
  295. package/dist/schema/kernel/syscalls/declarations/upload.d.ts +15 -0
  296. package/dist/schema/kernel/syscalls/declarations/upload.js +10 -0
  297. package/dist/schema/kernel/syscalls/declarations/use-policy.d.ts +4 -0
  298. package/dist/schema/kernel/syscalls/declarations/use-policy.js +9 -0
  299. package/dist/schema/kernel/syscalls/declarations/view-resolve.d.ts +30 -37
  300. package/dist/schema/kernel/syscalls/declarations/view-resolve.js +5 -3
  301. package/dist/schema/kernel/syscalls/declarations/whoami.d.ts +22 -26
  302. package/dist/schema/kernel/syscalls/declarations/whoami.js +3 -3
  303. package/dist/schema/kernel/syscalls/declarations/whois.d.ts +25 -29
  304. package/dist/schema/kernel/syscalls/declarations/whois.js +5 -3
  305. package/dist/schema/kernel/syscalls/descriptors/execution.d.ts +153 -0
  306. package/dist/schema/kernel/syscalls/descriptors/execution.js +11 -0
  307. package/dist/schema/kernel/syscalls/descriptors/function.d.ts +8 -2
  308. package/dist/schema/kernel/syscalls/descriptors/functions.d.ts +3 -1
  309. package/dist/schema/kernel/syscalls/descriptors/functions.js +3 -1
  310. package/dist/schema/kernel/syscalls/descriptors/identity.d.ts +47 -13
  311. package/dist/schema/kernel/syscalls/descriptors/identity.js +2 -1
  312. package/dist/schema/kernel/syscalls/descriptors/index.d.ts +2 -1
  313. package/dist/schema/kernel/syscalls/descriptors/index.js +2 -1
  314. package/dist/schema/kernel/syscalls/descriptors/results/view-resolution.d.ts +5 -2
  315. package/dist/schema/kernel/syscalls/descriptors/results/view-resolution.js +8 -38
  316. package/dist/schema/kernel/syscalls/descriptors/view.d.ts +11 -9
  317. package/dist/schema/kernel/syscalls/index.d.ts +2 -2
  318. package/dist/schema/kernel/syscalls/index.js +2 -2
  319. package/dist/schema/kernel/syscalls/references/execution.d.ts +55 -0
  320. package/dist/schema/kernel/syscalls/references/execution.js +13 -0
  321. package/dist/schema/kernel/syscalls/references/functions.d.ts +12 -2
  322. package/dist/schema/kernel/syscalls/references/functions.js +3 -1
  323. package/dist/schema/kernel/syscalls/references/identity.d.ts +9 -0
  324. package/dist/schema/kernel/syscalls/references/identity.js +1 -0
  325. package/dist/schema/kernel/syscalls/references/index.d.ts +2 -1
  326. package/dist/schema/kernel/syscalls/references/index.js +2 -1
  327. package/dist/schema/meta/created-by.d.ts +32 -0
  328. package/dist/schema/meta/created-by.js +17 -0
  329. package/dist/schema/meta/descriptable.d.ts +13 -11
  330. package/dist/schema/meta/edge.d.ts +5 -9
  331. package/dist/schema/meta/iconable.d.ts +13 -11
  332. package/dist/schema/meta/index.d.ts +1 -0
  333. package/dist/schema/meta/index.js +1 -0
  334. package/dist/schema/meta/named.d.ts +13 -9
  335. package/dist/schema/meta/node.d.ts +9 -1
  336. package/dist/schema/meta/remotable.d.ts +15 -22
  337. package/dist/schema/meta/statused.d.ts +13 -7
  338. package/dist/schema/meta/timestamped.d.ts +14 -12
  339. package/package.json +9 -7
  340. package/dist/auth/expression/normalization/canonicalize.d.ts +0 -7
  341. package/dist/auth/expression/normalization/canonicalize.js +0 -102
  342. package/dist/auth/expression/normalization/index.d.ts +0 -2
  343. package/dist/auth/expression/normalization/index.js +0 -2
  344. package/dist/auth/expression/normalization/raise-denials.d.ts +0 -3
  345. package/dist/auth/expression/normalization/raise-denials.js +0 -59
  346. package/dist/auth/provision/fingerprint/fingerprint.d.ts +0 -9
  347. package/dist/auth/provision/fingerprint/fingerprint.js +0 -33
  348. package/dist/auth/provision/fingerprint/index.d.ts +0 -2
  349. package/dist/auth/provision/index.d.ts +0 -5
  350. package/dist/auth/provision/request/admission.d.ts +0 -3
  351. package/dist/auth/provision/request/admission.js +0 -125
  352. package/dist/auth/provision/request/index.d.ts +0 -3
  353. package/dist/auth/provision/request/request.d.ts +0 -29
  354. package/dist/auth/provision/result/index.d.ts +0 -1
  355. package/dist/auth/provision/result/result.d.ts +0 -12
  356. package/dist/graph/graph/navigation/error.d.ts +0 -12
  357. package/dist/graph/graph/navigation/error.js +0 -20
  358. package/dist/graph/graph/navigation/index.d.ts +0 -2
  359. package/dist/graph/graph/navigation/index.js +0 -1
  360. package/dist/graph/graph/navigation/model.d.ts +0 -15
  361. package/dist/schema/callables/view-for.d.ts +0 -296
  362. package/dist/schema/callables/view-for.js +0 -12
  363. package/dist/schema/kernel/projection/keys.d.ts +0 -3
  364. package/dist/schema/kernel/projection/path.d.ts +0 -2
  365. package/dist/schema/kernel/projection/path.js +0 -140
  366. package/dist/schema/kernel/syscalls/contracts/provision.d.ts +0 -292
  367. package/dist/schema/kernel/syscalls/contracts/provision.js +0 -19
  368. package/dist/schema/kernel/syscalls/declarations/define.d.ts +0 -5
  369. package/dist/schema/kernel/syscalls/declarations/define.js +0 -7
  370. package/dist/schema/kernel/syscalls/declarations/provision.d.ts +0 -296
  371. package/dist/schema/kernel/syscalls/declarations/provision.js +0 -8
  372. /package/dist/auth/{provision/request/request.js → authority/semantics/snapshot.js} +0 -0
  373. /package/dist/auth/{provision/result/index.js → authority/semantics/vocabulary.js} +0 -0
  374. /package/dist/auth/{provision → register}/fingerprint/index.js +0 -0
  375. /package/dist/auth/{provision → register}/index.js +0 -0
  376. /package/dist/auth/{provision → register}/request/index.js +0 -0
  377. /package/dist/auth/{provision/result/result.js → register/request/request.js} +0 -0
  378. /package/dist/{graph/graph/navigation/model.js → auth/register/result/index.js} +0 -0
@@ -0,0 +1,2 @@
1
+ export { fingerprint } from './fingerprint.js';
2
+ export type { RegisterFingerprint, RegisterFingerprintIdentity, RegisterFingerprintInput, } from './fingerprint.js';
@@ -0,0 +1,5 @@
1
+ export { fingerprint } from './fingerprint/index.js';
2
+ export type { RegisterFingerprint, RegisterFingerprintIdentity, RegisterFingerprintInput, } from './fingerprint/index.js';
3
+ export { accept, isSelfIssuer, selfIssuer } from './request/index.js';
4
+ export type { IdentityRegistration, RegisterRequest } from './request/index.js';
5
+ export type { RegisteredIdentity, RegisterResult } from './result/index.js';
@@ -0,0 +1,3 @@
1
+ import type { RegisterRequest } from './request.js';
2
+ /** Admit unknown input into the exact immutable existing-target Register language. */
3
+ export declare function accept(input: unknown): RegisterRequest;
@@ -0,0 +1,103 @@
1
+ import { NodeId } from '../../../graph/node/index.js';
2
+ import { AuthValueError } from '../../error.js';
3
+ import { acceptPublic } from '../../jwk/index.js';
4
+ import { REGISTER_REQUEST_LIMITS } from './limits.js';
5
+ const textEncoder = new TextEncoder();
6
+ /** Admit unknown input into the exact immutable existing-target Register language. */
7
+ export function accept(input) {
8
+ if (!isRecord(input))
9
+ invalid('', 'Expected a Register request object');
10
+ exact(input, ['idempotencyKey', 'identities'], '');
11
+ if (typeof input.idempotencyKey !== 'string' ||
12
+ input.idempotencyKey.length === 0 ||
13
+ input.idempotencyKey.length > REGISTER_REQUEST_LIMITS.idempotencyKeyCharacters ||
14
+ textEncoder.encode(input.idempotencyKey).byteLength >
15
+ REGISTER_REQUEST_LIMITS.idempotencyKeyBytes) {
16
+ invalid('/idempotencyKey', 'Expected a bounded non-empty idempotency key');
17
+ }
18
+ if (!Array.isArray(input.identities) ||
19
+ input.identities.length === 0 ||
20
+ input.identities.length > REGISTER_REQUEST_LIMITS.identities) {
21
+ invalid('/identities', 'Expected a bounded non-empty Identity register array');
22
+ }
23
+ const identities = input.identities
24
+ .map((candidate, index) => identityInput(candidate, `/identities/${index}`))
25
+ .sort((left, right) => compare(left.id, right.id));
26
+ for (let index = 1; index < identities.length; index += 1) {
27
+ if (identities[index - 1].id === identities[index].id) {
28
+ invalid(`/identities/${index}/id`, 'Duplicate Identity target');
29
+ }
30
+ }
31
+ return Object.freeze({
32
+ idempotencyKey: input.idempotencyKey,
33
+ identities: Object.freeze(identities),
34
+ });
35
+ }
36
+ function identityInput(input, path) {
37
+ if (!isRecord(input))
38
+ invalid(path, 'Expected an Identity register object');
39
+ if (input.mode !== 'external' && input.mode !== 'self') {
40
+ invalid(`${path}/mode`, 'Expected external or self');
41
+ }
42
+ exact(input, input.mode === 'self'
43
+ ? ['credential', 'id', 'mode', 'publicKey']
44
+ : ['credential', 'id', 'mode'], path);
45
+ let id;
46
+ try {
47
+ if (typeof input.id !== 'string')
48
+ throw new TypeError('IdentityId must be text.');
49
+ id = NodeId(input.id);
50
+ }
51
+ catch (cause) {
52
+ invalid(`${path}/id`, 'Expected an IdentityId', cause);
53
+ }
54
+ const credential = credentialInput(input.credential, `${path}/credential`);
55
+ if (input.mode === 'external') {
56
+ return Object.freeze({ id, mode: 'external', credential });
57
+ }
58
+ return Object.freeze({
59
+ id,
60
+ mode: 'self',
61
+ publicKey: publicJwk(input.publicKey, `${path}/publicKey`),
62
+ credential,
63
+ });
64
+ }
65
+ function credentialInput(input, path) {
66
+ if (typeof input === 'string') {
67
+ const bytes = textEncoder.encode(input).byteLength;
68
+ if (bytes === 0 || bytes > REGISTER_REQUEST_LIMITS.credentialBytes) {
69
+ invalid(path, `Credential must contain 1-${REGISTER_REQUEST_LIMITS.credentialBytes} bytes`);
70
+ }
71
+ return input;
72
+ }
73
+ if (!(input instanceof Uint8Array) ||
74
+ input.byteLength === 0 ||
75
+ input.byteLength > REGISTER_REQUEST_LIMITS.credentialBytes) {
76
+ invalid(path, `Credential must contain 1-${REGISTER_REQUEST_LIMITS.credentialBytes} bytes`);
77
+ }
78
+ return input.slice();
79
+ }
80
+ function publicJwk(input, path) {
81
+ try {
82
+ return acceptPublic(input);
83
+ }
84
+ catch (cause) {
85
+ invalid(path, 'Expected a thumbprintable public JWK', cause);
86
+ }
87
+ }
88
+ function exact(input, expected, path) {
89
+ const actual = Object.keys(input).sort(compare);
90
+ const wanted = [...expected].sort(compare);
91
+ if (actual.length !== wanted.length || actual.some((key, index) => key !== wanted[index])) {
92
+ invalid(path, `Expected exactly ${expected.join(', ')}`);
93
+ }
94
+ }
95
+ function isRecord(input) {
96
+ return input !== null && typeof input === 'object' && !Array.isArray(input);
97
+ }
98
+ function compare(left, right) {
99
+ return left < right ? -1 : left > right ? 1 : 0;
100
+ }
101
+ function invalid(path, message, cause) {
102
+ throw new AuthValueError('AUTH_REGISTER_REQUEST_INVALID', message, path, cause === undefined ? undefined : { cause });
103
+ }
@@ -0,0 +1,3 @@
1
+ export { accept } from './admission.js';
2
+ export { isSelfIssuer, selfIssuer } from './self-issuer.js';
3
+ export type { IdentityRegistration, RegisterRequest } from './request.js';
@@ -0,0 +1,6 @@
1
+ export declare const REGISTER_REQUEST_LIMITS: Readonly<{
2
+ credentialBytes: number;
3
+ idempotencyKeyBytes: 1024;
4
+ idempotencyKeyCharacters: 256;
5
+ identities: 256;
6
+ }>;
@@ -0,0 +1,6 @@
1
+ export const REGISTER_REQUEST_LIMITS = Object.freeze({
2
+ credentialBytes: 64 * 1024,
3
+ idempotencyKeyBytes: 1_024,
4
+ idempotencyKeyCharacters: 256,
5
+ identities: 256,
6
+ });
@@ -0,0 +1,19 @@
1
+ import type { CredentialInput } from '../../credential/input/index.js';
2
+ import type { IdentityId } from '../../identity/index.js';
3
+ import type { JsonWebKey } from '../../jwk/index.js';
4
+ export type IdentityRegistration = {
5
+ readonly id: IdentityId;
6
+ readonly mode: 'external';
7
+ readonly credential: CredentialInput;
8
+ readonly publicKey?: never;
9
+ } | {
10
+ readonly id: IdentityId;
11
+ readonly mode: 'self';
12
+ readonly publicKey: JsonWebKey;
13
+ readonly credential: CredentialInput;
14
+ };
15
+ /** Claim credential-evidenced Authentication for existing Identity-bearing Nodes. */
16
+ export interface RegisterRequest {
17
+ readonly idempotencyKey: string;
18
+ readonly identities: readonly [IdentityRegistration, ...IdentityRegistration[]];
19
+ }
@@ -1,6 +1,6 @@
1
1
  import type { IssuerId } from '../../issuer/index.js';
2
2
  import type { JsonWebKey } from '../../jwk/index.js';
3
- /** Build the hosted issuer controlled by one self-provisioned public key. */
3
+ /** Build the hosted issuer controlled by one self-registered public key. */
4
4
  export declare function selfIssuer(kernel: IssuerId, publicKey: JsonWebKey): Promise<IssuerId>;
5
5
  /** Whether an issuer is one exact key-bound issuer hosted by this Kernel. */
6
6
  export declare function isSelfIssuer(kernel: IssuerId, candidate: IssuerId): boolean;
@@ -1,6 +1,6 @@
1
1
  import { accept as acceptIssuer } from '../../issuer/index.js';
2
2
  import { thumbprint } from '../../jwk/index.js';
3
- /** Build the hosted issuer controlled by one self-provisioned public key. */
3
+ /** Build the hosted issuer controlled by one self-registered public key. */
4
4
  export async function selfIssuer(kernel, publicKey) {
5
5
  const base = String(kernel).replace(/\/+$/u, '');
6
6
  return acceptIssuer(`${base}/iss/${await thumbprint(publicKey)}`);
@@ -0,0 +1 @@
1
+ export type { RegisteredIdentity, RegisterResult } from './result.js';
@@ -0,0 +1,10 @@
1
+ import type { IdentityId, Subject } from '../../identity/index.js';
2
+ import type { IssuerId } from '../../issuer/index.js';
3
+ export interface RegisteredIdentity {
4
+ readonly id: IdentityId;
5
+ readonly iss: IssuerId;
6
+ readonly sub: Subject;
7
+ }
8
+ export interface RegisterResult {
9
+ readonly identities: readonly [RegisteredIdentity, ...RegisteredIdentity[]];
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ /** One root invocation's already bounded, single-consumer binary request body. */
2
+ export interface BinaryRequestBody {
3
+ readonly body: ReadableStream<Uint8Array>;
4
+ readonly length: number;
5
+ }
6
+ /** The streamed request ended early or exceeded its declared Content-Length. */
7
+ export declare class BinaryBodyLengthError extends Error {
8
+ readonly name = "BinaryBodyLengthError";
9
+ constructor();
10
+ }
@@ -0,0 +1,7 @@
1
+ /** The streamed request ended early or exceeded its declared Content-Length. */
2
+ export class BinaryBodyLengthError extends Error {
3
+ name = 'BinaryBodyLengthError';
4
+ constructor() {
5
+ super('Binary request length mismatch.');
6
+ }
7
+ }
@@ -1,5 +1,6 @@
1
1
  export type { CallOf } from './call.js';
2
+ export { BinaryBodyLengthError, type BinaryRequestBody } from './body.js';
2
3
  export type { InputOf } from './input.js';
3
- export type { BinaryResult, OutputContractOf, OutputOf, TypedCallableOutput } from './output.js';
4
+ export type { BinaryOutput, BinaryDeliveryBudget, BufferedBinaryResult, OutputContractOf, OutputOf, StreamingBinaryResult, TypedCallableOutput, } from './output.js';
4
5
  export type { CallableSignature } from './signature.js';
5
6
  export type { Callable, SignatureOf } from './witness.js';
@@ -1 +1 @@
1
- export {};
1
+ export { BinaryBodyLengthError } from './body.js';
@@ -1,9 +1,25 @@
1
1
  import type { SignatureOf } from './witness.js';
2
- export interface BinaryResult {
2
+ /** Optional owner-selected lifetime for a large HTTP binary result. */
3
+ export interface BinaryDeliveryBudget {
4
+ readonly maximumDurationMs: number;
5
+ readonly idleTimeoutMs: number;
6
+ }
7
+ export interface BufferedBinaryResult {
3
8
  readonly body: Uint8Array;
4
9
  readonly mediaType: string;
10
+ readonly status?: number;
11
+ readonly headers?: Readonly<Record<string, string>>;
12
+ }
13
+ export interface StreamingBinaryResult {
14
+ readonly body: AsyncIterable<Uint8Array>;
15
+ /** Exact byte length; HTTP aborts delivery if the stream differs. */
16
+ readonly length?: number;
17
+ readonly delivery?: BinaryDeliveryBudget;
18
+ readonly mediaType: string;
19
+ readonly status?: number;
5
20
  readonly headers?: Readonly<Record<string, string>>;
6
21
  }
22
+ export type BinaryOutput = BufferedBinaryResult | StreamingBinaryResult;
7
23
  /** Output modes retained by a rich callable declaration. */
8
24
  export type TypedCallableOutput = {
9
25
  readonly mode: 'value';
@@ -24,4 +40,4 @@ export type OutputOf<Value> = OutputContractOf<Value> extends infer Output exten
24
40
  readonly item: infer Item;
25
41
  } ? AsyncIterable<Item> : Output extends {
26
42
  readonly mode: 'binary';
27
- } ? BinaryResult : never : never;
43
+ } ? BinaryOutput : never : never;
@@ -1,2 +1,3 @@
1
- export type { BinaryResult, Callable, CallableSignature, CallOf, InputOf, OutputContractOf, OutputOf, SignatureOf, TypedCallableOutput, } from './contract/index.js';
2
- export type { Call, CallableResult } from './invocation/index.js';
1
+ export { BinaryBodyLengthError } from './contract/index.js';
2
+ export type { BinaryOutput, BinaryDeliveryBudget, BinaryRequestBody, BufferedBinaryResult, Callable, CallableSignature, CallOf, InputOf, OutputContractOf, OutputOf, SignatureOf, StreamingBinaryResult, TypedCallableOutput, } from './contract/index.js';
3
+ export { Target, targetPath, type Call, type CallableResult } from './invocation/index.js';
@@ -1 +1,2 @@
1
- export {};
1
+ export { BinaryBodyLengthError } from './contract/index.js';
2
+ export { Target, targetPath } from './invocation/index.js';
@@ -1,7 +1,21 @@
1
- import type { NodePath } from '@astrale-os/kernel-core/path';
1
+ import type { Key } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import type { Value } from '@astrale-os/kernel-dsl/value';
3
+ import { type NodePath } from '@astrale-os/kernel-core/path';
4
+ /**
5
+ * One declaration, optionally bound to an instance and to the caller's expectation of it: the
6
+ * fingerprint of the callable meaning it compiled against.
7
+ */
8
+ export type Target = {
9
+ readonly callable: Key.Callable;
10
+ readonly instance?: NodePath;
11
+ readonly fingerprint?: `sha256:${string}`;
12
+ };
13
+ /** Capture a structured invocation target at a representation boundary. */
14
+ export declare function Target(input: Target): Target;
15
+ /** Project an admitted target to its canonical graph path without discarding the original Call. */
16
+ export declare function targetPath(target: NodePath | Target): NodePath;
3
17
  /** One canonical callable invocation meaning, independent of its carrier. */
4
18
  export interface Call {
5
- readonly target: NodePath;
19
+ readonly target: NodePath | Target;
6
20
  readonly input: Value;
7
21
  }
@@ -1 +1,41 @@
1
- export {};
1
+ import { Path } from '@astrale-os/kernel-core/path';
2
+ import { callableAddress } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ const FINGERPRINT_PATTERN = /^sha256:[0-9a-f]{64}$/u;
4
+ /** Capture a structured invocation target at a representation boundary. */
5
+ export function Target(input) {
6
+ if (input === null ||
7
+ typeof input !== 'object' ||
8
+ Array.isArray(input) ||
9
+ Reflect.ownKeys(input).some((field) => !['callable', 'instance', 'fingerprint'].includes(String(field)))) {
10
+ throw new TypeError('Invocation Target must contain only callable, instance and fingerprint.');
11
+ }
12
+ const callable = input.callable;
13
+ const coordinate = callableAddress(callable);
14
+ const fingerprint = input.fingerprint;
15
+ if (fingerprint !== undefined &&
16
+ (typeof fingerprint !== 'string' || !FINGERPRINT_PATTERN.test(fingerprint))) {
17
+ throw new TypeError('Invocation Target fingerprint is invalid.');
18
+ }
19
+ const suppliedInstance = input.instance;
20
+ const instance = suppliedInstance === undefined ? undefined : Path.parse(suppliedInstance);
21
+ if (instance !== undefined &&
22
+ (coordinate.kind !== 'method' || instance.ast.steps.at(-1)?.kind === 'method')) {
23
+ throw new TypeError('Only an instance Method target can carry a node instance path.');
24
+ }
25
+ return Object.freeze({
26
+ callable,
27
+ ...(instance === undefined ? {} : { instance: instance.raw }),
28
+ ...(fingerprint === undefined ? {} : { fingerprint }),
29
+ });
30
+ }
31
+ /** Project an admitted target to its canonical graph path without discarding the original Call. */
32
+ export function targetPath(target) {
33
+ if (typeof target === 'string')
34
+ return target;
35
+ const coordinate = callableAddress(target.callable);
36
+ if (coordinate.kind === 'function')
37
+ return Path.project(coordinate).raw;
38
+ return target.instance === undefined
39
+ ? Path.staticMethod(Path.project(coordinate.owner), coordinate.name).raw
40
+ : Path.instanceMethod(Path.parse(target.instance), target.callable).raw;
41
+ }
@@ -1,2 +1,2 @@
1
- export type { Call } from './call.js';
1
+ export { Target, targetPath, type Call } from './call.js';
2
2
  export type { CallableResult } from './result.js';
@@ -1 +1 @@
1
- export {};
1
+ export { Target, targetPath } from './call.js';
@@ -1,4 +1,4 @@
1
- import type { BinaryResult } from '../contract/index.js';
1
+ import type { BinaryOutput } from '../contract/index.js';
2
2
  /** Successful callable output modes parameterized by the owner's stream capability. */
3
3
  export type CallableResult<Output, Stream extends AsyncIterable<Output>> = {
4
4
  readonly kind: 'value';
@@ -8,5 +8,5 @@ export type CallableResult<Output, Stream extends AsyncIterable<Output>> = {
8
8
  readonly stream: Stream;
9
9
  } | {
10
10
  readonly kind: 'binary';
11
- readonly value: BinaryResult;
11
+ readonly value: BinaryOutput;
12
12
  };
@@ -1,4 +1,3 @@
1
- import { z } from 'zod';
2
1
  /**
3
2
  * Canonical RFC 1035 §2.3.4 DNS label: lowercase alphanumeric + hyphen, no
4
3
  * leading/trailing hyphen, 1–63 characters.
@@ -22,4 +21,4 @@ export declare function assertDnsLabel(value: string, name: string): void;
22
21
  * instance id / public slug so non-DNS-safe values are rejected at parse time
23
22
  * (the `.max(63)`/`.min(1)` give clear length errors before the regex check).
24
23
  */
25
- export declare const dnsLabelSchema: z.ZodString;
24
+ export declare const dnsLabelSchema: import("zod").ZodString;
package/dist/dns-label.js CHANGED
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { string } from 'zod';
2
2
  /**
3
3
  * Canonical RFC 1035 §2.3.4 DNS label: lowercase alphanumeric + hyphen, no
4
4
  * leading/trailing hyphen, 1–63 characters.
@@ -28,8 +28,7 @@ export function assertDnsLabel(value, name) {
28
28
  * instance id / public slug so non-DNS-safe values are rejected at parse time
29
29
  * (the `.max(63)`/`.min(1)` give clear length errors before the regex check).
30
30
  */
31
- export const dnsLabelSchema = z
32
- .string()
31
+ export const dnsLabelSchema = string()
33
32
  .min(1)
34
33
  .max(63)
35
34
  .regex(DNS_LABEL_RE, 'must be a lowercase DNS label [a-z0-9-], ≤63 chars, no leading/trailing hyphen');
@@ -1,18 +1,15 @@
1
- import type { Node } from '../node/index.js';
2
- import type { PathLike } from '../path/index.js';
3
1
  import type { GraphAdmissionContext } from './admission/index.js';
4
2
  import type { Delta, DeltaResult } from './delta/index.js';
5
3
  import type { GraphEdges, GraphNodes } from './indexes/index.js';
6
4
  import type { MergeResult } from './merge/index.js';
7
5
  import type { GraphData } from './model/index.js';
8
- import type { GraphPathWalker } from './navigation/index.js';
9
6
  /** Immutable indexed behavioral view over exactly one admitted GraphData value. */
10
7
  export declare class Graph {
11
8
  #private;
12
9
  readonly nodes: GraphNodes;
13
10
  readonly edges: GraphEdges;
14
11
  private constructor();
15
- static admit(data: GraphData, context: GraphAdmissionContext, walker?: GraphPathWalker): Graph;
12
+ static admit(data: GraphData, context: GraphAdmissionContext): Graph;
16
13
  static empty(): Graph;
17
14
  /** Compare reference-open observations without deriving deletion from absence. */
18
15
  static delta(left: Graph, right: Graph): DeltaResult;
@@ -22,7 +19,6 @@ export declare class Graph {
22
19
  static merge(base: Graph, current: Graph, target: Graph): MergeResult;
23
20
  /** Apply the same exact merge rule to canonical finite values without schema re-admission. */
24
21
  static mergeData(base: GraphData, current: GraphData, target: GraphData): MergeResult;
25
- walk(path: PathLike): Node | undefined;
26
22
  toData(): GraphData;
27
23
  equals(other: Graph): boolean;
28
24
  }
@@ -1,11 +1,9 @@
1
1
  import { edgeKeyOf } from '../edge/index.js';
2
- import { Path } from '../path/index.js';
3
2
  import { equal as equalProperties } from '../properties/index.js';
4
3
  import { admitGraphData } from './admission/index.js';
5
4
  import { apply as applyDelta, delta as graphDelta } from './delta/index.js';
6
5
  import { buildIndexes, createCollections } from './indexes/index.js';
7
6
  import { mergeData as mergeGraphData } from './merge/index.js';
8
- import { GraphPathWalkerRequiredError } from './navigation/index.js';
9
7
  const EMPTY_DATA = Object.freeze({
10
8
  nodes: Object.freeze([]),
11
9
  edges: Object.freeze([]),
@@ -17,30 +15,17 @@ export class Graph {
17
15
  nodes;
18
16
  edges;
19
17
  #data;
20
- #indexes;
21
- #walker;
22
- #pathContext;
23
- constructor(data, indexes, walker) {
18
+ constructor(data, indexes) {
24
19
  this.#data = data;
25
- this.#indexes = indexes;
26
- this.#walker = walker;
27
20
  const collections = createCollections(data.nodes, data.edges, indexes);
28
21
  this.nodes = collections.nodes;
29
22
  this.edges = collections.edges;
30
- this.#pathContext = Object.freeze({
31
- nodes: this.nodes,
32
- edges: this.edges,
33
- orientation: (classKey) => {
34
- const info = this.#indexes.classes.byKey.get(classKey);
35
- return info?.kind === 'edge' ? info.orientation : undefined;
36
- },
37
- });
38
23
  Object.freeze(this);
39
24
  }
40
- static admit(data, context, walker) {
25
+ static admit(data, context) {
41
26
  const admitted = admitGraphData(data, context);
42
27
  const indexes = buildIndexes(admitted.data.nodes, admitted.data.edges, admitted.classes);
43
- return new Graph(admitted.data, indexes, walker);
28
+ return new Graph(admitted.data, indexes);
44
29
  }
45
30
  static empty() {
46
31
  return Graph.#EMPTY;
@@ -61,15 +46,6 @@ export class Graph {
61
46
  static mergeData(base, current, target) {
62
47
  return mergeGraphData(base, current, target);
63
48
  }
64
- walk(path) {
65
- const value = Path.from(path);
66
- if (this.#walker !== undefined)
67
- return this.#walker.walk(value, this.#pathContext);
68
- if (value.ast.anchor.kind === 'id' && value.ast.steps.length === 0) {
69
- return this.#indexes.nodes.byId.get(value.ast.anchor.id);
70
- }
71
- throw new GraphPathWalkerRequiredError(value.raw);
72
- }
73
49
  toData() {
74
50
  return this.#data;
75
51
  }
@@ -1,12 +1,10 @@
1
- /** Stable aggregate facade over Graph model, admission, indexes, navigation, delta, and merge. */
1
+ /** Stable aggregate facade over Graph model, admission, indexes, delta, and merge. */
2
2
  export { Graph } from './graph.js';
3
3
  export type { Delta, DeltaConflict, DeltaResult } from './delta/index.js';
4
4
  export type { MergeConflict, MergeResult } from './merge/index.js';
5
5
  export { GraphData, GraphDataDecodeError, GraphSpec, GraphSpecDecodeError } from './model/index.js';
6
6
  export type { AnonymousNodeSpec, GraphDataJson, GraphSpecEdge, GraphSpecEndpoint, GraphSpecJson, GraphSpecNode, } from './model/index.js';
7
- export { LocalBinding, isLocalBinding } from './model/index.js';
7
+ export { LocalAlias, isLocalAlias } from './model/index.js';
8
8
  export type { GraphAdmissionContext, GraphClassInfo, GraphDiagnostic } from './admission/index.js';
9
9
  export { GraphAdmissionError } from './admission/index.js';
10
10
  export type { GraphEdges, GraphNodes } from './indexes/index.js';
11
- export type { GraphPathContext, GraphPathWalker } from './navigation/index.js';
12
- export { GraphPathAmbiguousError, GraphPathWalkerRequiredError } from './navigation/index.js';
@@ -1,6 +1,5 @@
1
- /** Stable aggregate facade over Graph model, admission, indexes, navigation, delta, and merge. */
1
+ /** Stable aggregate facade over Graph model, admission, indexes, delta, and merge. */
2
2
  export { Graph } from './graph.js';
3
3
  export { GraphData, GraphDataDecodeError, GraphSpec, GraphSpecDecodeError } from './model/index.js';
4
- export { LocalBinding, isLocalBinding } from './model/index.js';
4
+ export { LocalAlias, isLocalAlias } from './model/index.js';
5
5
  export { GraphAdmissionError } from './admission/index.js';
6
- export { GraphPathAmbiguousError, GraphPathWalkerRequiredError } from './navigation/index.js';
@@ -5,7 +5,7 @@ import { node as constructNode, NodeId } from '../../node/index.js';
5
5
  import { NodePath } from '../../path/index.js';
6
6
  import { normalizeProperties } from '../../properties/index.js';
7
7
  import { decodeWire } from '../../wire.js';
8
- import { isLocalBinding, LocalBinding } from './model.js';
8
+ import { isLocalAlias, LocalAlias } from './model.js';
9
9
  import { graphSpecSchema } from './wire.js';
10
10
  export class GraphDataDecodeError extends TypeError {
11
11
  path;
@@ -28,7 +28,7 @@ export class GraphSpecDecodeError extends TypeError {
28
28
  /** Strengthen unknown JSON into detached immutable structural graph values. */
29
29
  export function decodeGraphSpec(input) {
30
30
  try {
31
- const value = decodeWire(graphSpecSchema, portable.accept(input), specInvalid);
31
+ const value = decodeWire(graphSpecSchema, portable.acceptForRead(input), specInvalid);
32
32
  const nodes = value.nodes.map((node, index) => decodeSpecNode(node, `/nodes/${index}`));
33
33
  const edges = value.edges.map((edge, index) => decodeSpecEdge(edge, `/edges/${index}`));
34
34
  validateGraphSpec(nodes, edges);
@@ -124,10 +124,10 @@ function decodeEndpoint(input, path) {
124
124
  return Object.freeze({ created: binding(input.created, `${path}/created`) });
125
125
  }
126
126
  function binding(input, path) {
127
- if (!isLocalBinding(input)) {
127
+ if (!isLocalAlias(input)) {
128
128
  specInvalid(path, 'Expected a local binding name of at most 64 characters');
129
129
  }
130
- return LocalBinding(input);
130
+ return LocalAlias(input);
131
131
  }
132
132
  function validateGraphSpec(nodes, edges) {
133
133
  const ids = new Set();
@@ -13,5 +13,5 @@ export declare const GraphSpec: {
13
13
  encode(spec: GraphSpecValue): GraphSpecJson;
14
14
  };
15
15
  export type { AnonymousNodeSpec, GraphSpecEdge, GraphSpecEndpoint, GraphSpecJson, GraphSpecNode, } from './model.js';
16
- export { LocalBinding, isLocalBinding } from './model.js';
16
+ export { LocalAlias, isLocalAlias } from './model.js';
17
17
  export { GraphSpecDecodeError } from './codec.js';
@@ -2,5 +2,5 @@ import { decodeGraphData, decodeGraphSpec, encodeGraphData, encodeGraphSpec } fr
2
2
  export const GraphData = Object.freeze({ decode: decodeGraphData, encode: encodeGraphData });
3
3
  export { GraphDataDecodeError } from './codec.js';
4
4
  export const GraphSpec = Object.freeze({ decode: decodeGraphSpec, encode: encodeGraphSpec });
5
- export { LocalBinding, isLocalBinding } from './model.js';
5
+ export { LocalAlias, isLocalAlias } from './model.js';
6
6
  export { GraphSpecDecodeError } from './codec.js';
@@ -2,21 +2,21 @@ import type { EdgeSpec } from '../../edge/index.js';
2
2
  import type { Node, NodeId, NodeSpec } from '../../node/index.js';
3
3
  import type { NodePath } from '../../path/index.js';
4
4
  import type { Properties } from '../../properties/index.js';
5
- declare const LOCAL_BINDING_BRAND: unique symbol;
5
+ declare const LOCAL_ALIAS_BRAND: unique symbol;
6
6
  /** A graph-local lexical name. It is never Node identity. */
7
- export type LocalBinding = string & {
8
- readonly [LOCAL_BINDING_BRAND]: true;
7
+ export type LocalAlias = string & {
8
+ readonly [LOCAL_ALIAS_BRAND]: true;
9
9
  };
10
- export declare function LocalBinding(input: string): LocalBinding;
11
- export declare function isLocalBinding(input: unknown): input is LocalBinding;
10
+ export declare function LocalAlias(input: string): LocalAlias;
11
+ export declare function isLocalAlias(input: unknown): input is LocalAlias;
12
12
  export interface AnonymousNodeSpec extends NodeSpec {
13
- readonly as: LocalBinding;
13
+ readonly as: LocalAlias;
14
14
  }
15
15
  export type GraphSpecNode = Node | AnonymousNodeSpec;
16
16
  export type GraphSpecEndpoint = NodeId | {
17
17
  readonly path: NodePath;
18
18
  } | {
19
- readonly created: LocalBinding;
19
+ readonly created: LocalAlias;
20
20
  };
21
21
  export type GraphSpecEdge = EdgeSpec<GraphSpecEndpoint>;
22
22
  /** Detached structural graph values, including graph-local anonymous Nodes. */
@@ -1,10 +1,10 @@
1
- const LOCAL_BINDING_PATTERN = /^[A-Za-z][A-Za-z0-9_]{0,63}$/u;
2
- export function LocalBinding(input) {
3
- if (!isLocalBinding(input)) {
4
- throw new TypeError(`Invalid local binding ${JSON.stringify(input)}.`);
1
+ const LOCAL_ALIAS_PATTERN = /^[A-Za-z][A-Za-z0-9_]{0,63}$/u;
2
+ export function LocalAlias(input) {
3
+ if (!isLocalAlias(input)) {
4
+ throw new TypeError(`Invalid local alias ${JSON.stringify(input)}.`);
5
5
  }
6
6
  return input;
7
7
  }
8
- export function isLocalBinding(input) {
9
- return typeof input === 'string' && LOCAL_BINDING_PATTERN.test(input);
8
+ export function isLocalAlias(input) {
9
+ return typeof input === 'string' && LOCAL_ALIAS_PATTERN.test(input);
10
10
  }