@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
@@ -1,29 +0,0 @@
1
- import type { LocalBinding, MutationAST } from '../../../graph/mutate/index.js';
2
- import type { ClaimConstraint } from '../../claims/index.js';
3
- import type { CredentialInput } from '../../credential/input/index.js';
4
- import type { Subject } from '../../identity/index.js';
5
- import type { IssuerId } from '../../issuer/index.js';
6
- import type { JsonWebKey } from '../../jwk/index.js';
7
- export type RequiredClaims = readonly ClaimConstraint[];
8
- export interface AssertedIdentityProvision {
9
- readonly issuer: IssuerId;
10
- readonly subject: Subject;
11
- readonly requiredClaims?: RequiredClaims;
12
- readonly credentials?: never;
13
- }
14
- export interface SelfIdentityProvision {
15
- readonly credentials: {
16
- readonly publicKey: JsonWebKey;
17
- readonly proof: CredentialInput;
18
- };
19
- readonly requiredClaims?: RequiredClaims;
20
- readonly issuer?: never;
21
- readonly subject?: never;
22
- }
23
- export type IdentityProvisionInput = AssertedIdentityProvision | SelfIdentityProvision;
24
- /** One conditional graph transition whose Identity births are explicitly designated by binding. */
25
- export interface ProvisionRequest {
26
- readonly idempotencyKey: string;
27
- readonly mutation: MutationAST;
28
- readonly identities: Readonly<Record<LocalBinding, IdentityProvisionInput>>;
29
- }
@@ -1 +0,0 @@
1
- export type { ProvisionedIdentity, ProvisionResult } from './result.js';
@@ -1,12 +0,0 @@
1
- import type { LocalBinding } from '../../../graph/mutate/index.js';
2
- import type { NodeId } from '../../../graph/node/index.js';
3
- import type { Subject } from '../../identity/index.js';
4
- import type { IssuerId } from '../../issuer/index.js';
5
- export interface ProvisionedIdentity {
6
- readonly issuer: IssuerId;
7
- readonly subject: Subject;
8
- }
9
- export interface ProvisionResult {
10
- readonly createdNodes: Readonly<Record<LocalBinding, NodeId>>;
11
- readonly identities: Readonly<Record<LocalBinding, ProvisionedIdentity>>;
12
- }
@@ -1,12 +0,0 @@
1
- import type { NodePath } from '../../path/index.js';
2
- export declare class GraphPathAmbiguousError extends Error {
3
- readonly path: NodePath;
4
- readonly matches: number;
5
- readonly code: 'GRAPH_PATH_AMBIGUOUS';
6
- constructor(path: NodePath, matches: number);
7
- }
8
- export declare class GraphPathWalkerRequiredError extends Error {
9
- readonly path: NodePath;
10
- readonly code: 'GRAPH_PATH_WALKER_REQUIRED';
11
- constructor(path: NodePath);
12
- }
@@ -1,20 +0,0 @@
1
- export class GraphPathAmbiguousError extends Error {
2
- path;
3
- matches;
4
- code = 'GRAPH_PATH_AMBIGUOUS';
5
- constructor(path, matches) {
6
- super(`Graph Path ${JSON.stringify(path)} matched ${matches} distinct Nodes.`);
7
- this.path = path;
8
- this.matches = matches;
9
- this.name = 'GraphPathAmbiguousError';
10
- }
11
- }
12
- export class GraphPathWalkerRequiredError extends Error {
13
- path;
14
- code = 'GRAPH_PATH_WALKER_REQUIRED';
15
- constructor(path) {
16
- super(`Graph Path ${JSON.stringify(path)} requires a walker.`);
17
- this.path = path;
18
- this.name = 'GraphPathWalkerRequiredError';
19
- }
20
- }
@@ -1,2 +0,0 @@
1
- export type { GraphPathContext, GraphPathWalker } from './model.js';
2
- export { GraphPathAmbiguousError, GraphPathWalkerRequiredError } from './error.js';
@@ -1 +0,0 @@
1
- export { GraphPathAmbiguousError, GraphPathWalkerRequiredError } from './error.js';
@@ -1,15 +0,0 @@
1
- import type { ClassKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
- import type { EdgeOrientation } from '@astrale-os/kernel-dsl/v1/language';
3
- import type { Node } from '../../node/index.js';
4
- import type { Path } from '../../path/index.js';
5
- import type { GraphEdges, GraphNodes } from '../indexes/index.js';
6
- /** Semantic read-only graph capabilities available to a Path walker. */
7
- export interface GraphPathContext {
8
- readonly nodes: GraphNodes;
9
- readonly edges: GraphEdges;
10
- orientation(classKey: ClassKey): EdgeOrientation | undefined;
11
- }
12
- /** Pure injected semantics for walking one Path against an admitted Graph. */
13
- export interface GraphPathWalker {
14
- walk(path: Path, context: GraphPathContext): Node | undefined;
15
- }
@@ -1,296 +0,0 @@
1
- import { type builder } from '@astrale-os/kernel-dsl/v1';
2
- export declare const ViewFor: builder.DirectedEdgeClass<{
3
- readonly abstract: false;
4
- readonly source: {
5
- readonly as: "view";
6
- readonly accepts: readonly [builder.NodeClass<{
7
- readonly abstract: false;
8
- readonly description: "The installed projection of a declarative browser surface; it is not a principal.";
9
- readonly extends: readonly [builder.NodeClass<{
10
- readonly abstract: true;
11
- readonly extends: readonly [builder.NodeClass<{
12
- readonly abstract: true;
13
- readonly description: "The abstract universal kernel Node Class extended by every Kernel Node Class.";
14
- }>];
15
- readonly description: "Optional human-facing description metadata with no identity or authority semantics.";
16
- readonly properties: {
17
- description: builder.Property<Readonly<{
18
- readonly type: 'string';
19
- readonly minLength: 1;
20
- readonly maxLength: 1000;
21
- }>, {
22
- readonly required: false;
23
- }>;
24
- };
25
- }>];
26
- readonly methods: Readonly<{
27
- resolve: builder.Method<{
28
- readonly description: "Resolve the installed View declarations applicable to one authorized graph target.";
29
- readonly auth: "authorized";
30
- readonly input: import("zod").ZodObject<{
31
- target: import("zod").ZodString;
32
- }, import("zod/v4/core").$strict>;
33
- readonly output: import("zod").ZodObject<{
34
- snapshot: import("zod").ZodString;
35
- views: import("zod").ZodArray<import("zod").ZodObject<{
36
- key: import("zod").ZodString;
37
- declaration: import("zod").ZodObject<{
38
- description: import("zod").ZodOptional<import("zod").ZodString>;
39
- target: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
40
- kind: import("zod").ZodLiteral<"domain">;
41
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
42
- kind: import("zod").ZodLiteral<"definition">;
43
- definitions: import("zod").ZodArray<import("zod").ZodObject<{
44
- origin: import("zod").ZodString;
45
- kind: import("zod").ZodLiteral<"class">;
46
- name: import("zod").ZodString;
47
- }, import("zod/v4/core").$strict>>;
48
- }, import("zod/v4/core").$strict>], "kind">;
49
- }, import("zod/v4/core").$strict>;
50
- href: import("zod").ZodString;
51
- handshake: import("zod").ZodEnum<{
52
- none: "none";
53
- shell: "shell";
54
- }>;
55
- issuer: import("zod").ZodString;
56
- etag: import("zod").ZodString;
57
- revision: import("zod").ZodString;
58
- }, import("zod/v4/core").$strict>>;
59
- }, import("zod/v4/core").$strict>;
60
- readonly static: true;
61
- readonly inheritance: "sealed";
62
- }>;
63
- }>;
64
- }>];
65
- readonly outgoing: "1..*";
66
- };
67
- readonly target: {
68
- readonly as: "target";
69
- readonly accepts: readonly [builder.NodeClass<{
70
- readonly abstract: false;
71
- readonly description: "The installed graph projection of a Node Class or Edge Class declaration.";
72
- readonly extends: readonly [builder.NodeClass<{
73
- readonly abstract: true;
74
- readonly extends: readonly [builder.NodeClass<{
75
- readonly abstract: true;
76
- readonly description: "The abstract universal kernel Node Class extended by every Kernel Node Class.";
77
- }>];
78
- readonly description: "Optional human-facing description metadata with no identity or authority semantics.";
79
- readonly properties: {
80
- description: builder.Property<Readonly<{
81
- readonly type: 'string';
82
- readonly minLength: 1;
83
- readonly maxLength: 1000;
84
- }>, {
85
- readonly required: false;
86
- }>;
87
- };
88
- }>, builder.NodeClass<{
89
- readonly abstract: true;
90
- readonly extends: readonly [builder.NodeClass<{
91
- readonly abstract: true;
92
- readonly description: "The abstract universal kernel Node Class extended by every Kernel Node Class.";
93
- }>];
94
- readonly description: "Optional bounded presentation icon metadata.";
95
- readonly properties: {
96
- icon: builder.Property<Readonly<{
97
- readonly type: 'string';
98
- readonly minLength: 1;
99
- readonly maxLength: 8000;
100
- }>, {
101
- readonly required: false;
102
- }>;
103
- };
104
- }>];
105
- readonly properties: {
106
- readonly kind: {
107
- readonly enum: readonly ["node", "edge"];
108
- };
109
- readonly abstract: {
110
- readonly type: "boolean";
111
- };
112
- };
113
- }>, builder.NodeClass<{
114
- readonly abstract: false;
115
- readonly description: "A stable Domain principal and the active projection of one canonical DomainSchema revision.";
116
- readonly extends: readonly [builder.NodeClass<{
117
- readonly abstract: true;
118
- readonly description: "A principal that can be authenticated and can originate persistent authority facts.";
119
- readonly extends: readonly [builder.NodeClass<{
120
- readonly abstract: true;
121
- readonly description: "The abstract universal kernel Node Class extended by every Kernel Node Class.";
122
- }>];
123
- readonly properties: {
124
- readonly frozen: builder.Property<{
125
- readonly type: "boolean";
126
- }, {
127
- readonly required: false;
128
- readonly visibility: "private";
129
- }>;
130
- readonly iss: {
131
- readonly type: "string";
132
- readonly minLength: 1;
133
- };
134
- readonly requiredClaims: builder.Property<import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
135
- claim: import("zod").ZodString;
136
- op: import("zod").ZodLiteral<"contains">;
137
- value: import("zod").ZodNonOptional<import("zod").ZodUnknown>;
138
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
139
- claim: import("zod").ZodString;
140
- op: import("zod").ZodLiteral<"eq">;
141
- value: import("zod").ZodNonOptional<import("zod").ZodUnknown>;
142
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
143
- claim: import("zod").ZodString;
144
- op: import("zod").ZodLiteral<"exists">;
145
- }, import("zod/v4/core").$strict>], "op">>, {
146
- readonly required: false;
147
- readonly visibility: "private";
148
- }>;
149
- readonly sub: {
150
- readonly type: "string";
151
- readonly minLength: 1;
152
- };
153
- };
154
- readonly methods: Readonly<{
155
- delegate: builder.Method<{
156
- readonly description: "Issue one strictly attenuated credential from this authenticated Identity.";
157
- readonly auth: "authenticated";
158
- readonly input: import("zod").ZodObject<{
159
- audience: import("zod").ZodString;
160
- ttlSeconds: import("zod").ZodNumber;
161
- attenuation: import("zod").ZodUnknown;
162
- }, import("zod/v4/core").$strict>;
163
- readonly output: import("zod").ZodString;
164
- readonly inheritance: "default";
165
- }>;
166
- can: builder.Method<{
167
- readonly description: "Determine whether the current authenticated Identity satisfies one installed Policy for one object.";
168
- readonly auth: "authenticated";
169
- readonly input: import("zod").ZodObject<{
170
- policy: import("zod").ZodString;
171
- object: import("zod").ZodString;
172
- }, import("zod/v4/core").$strict>;
173
- readonly output: import("zod").ZodObject<{
174
- allowed: import("zod").ZodBoolean;
175
- }, import("zod/v4/core").$strict>;
176
- readonly static: true;
177
- readonly inheritance: "default";
178
- }>;
179
- whoami: builder.Method<{
180
- readonly description: "Return the Identity authenticated for this invocation.";
181
- readonly auth: "authenticated";
182
- readonly input: import("zod").ZodObject<{}, import("zod/v4/core").$strict>;
183
- readonly output: import("zod").ZodObject<{
184
- id: import("zod").ZodString;
185
- issuer: import("zod").ZodString;
186
- subject: import("zod").ZodString;
187
- frozen: import("zod").ZodBoolean;
188
- requiredClaims: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
189
- claim: import("zod").ZodString;
190
- op: import("zod").ZodLiteral<"contains">;
191
- value: import("zod").ZodNonOptional<import("zod").ZodUnknown>;
192
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
193
- claim: import("zod").ZodString;
194
- op: import("zod").ZodLiteral<"eq">;
195
- value: import("zod").ZodNonOptional<import("zod").ZodUnknown>;
196
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
197
- claim: import("zod").ZodString;
198
- op: import("zod").ZodLiteral<"exists">;
199
- }, import("zod/v4/core").$strict>], "op">>;
200
- }, import("zod/v4/core").$strict>;
201
- readonly static: true;
202
- readonly inheritance: "default";
203
- }>;
204
- whois: builder.Method<{
205
- readonly description: "Resolve one issuer-and-subject Identity.";
206
- readonly auth: "authorized";
207
- readonly input: import("zod").ZodObject<{
208
- issuer: import("zod").ZodString;
209
- subject: import("zod").ZodString;
210
- }, import("zod/v4/core").$strict>;
211
- readonly output: import("zod").ZodNullable<import("zod").ZodObject<{
212
- id: import("zod").ZodString;
213
- issuer: import("zod").ZodString;
214
- subject: import("zod").ZodString;
215
- frozen: import("zod").ZodBoolean;
216
- requiredClaims: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
217
- claim: import("zod").ZodString;
218
- op: import("zod").ZodLiteral<"contains">;
219
- value: import("zod").ZodNonOptional<import("zod").ZodUnknown>;
220
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
221
- claim: import("zod").ZodString;
222
- op: import("zod").ZodLiteral<"eq">;
223
- value: import("zod").ZodNonOptional<import("zod").ZodUnknown>;
224
- }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
225
- claim: import("zod").ZodString;
226
- op: import("zod").ZodLiteral<"exists">;
227
- }, import("zod/v4/core").$strict>], "op">>;
228
- }, import("zod/v4/core").$strict>>;
229
- readonly static: true;
230
- readonly inheritance: "default";
231
- }>;
232
- mint: builder.Method<{
233
- readonly description: "Resolve and sign one authorized Grant credential.";
234
- readonly auth: "authorized";
235
- readonly input: import("zod").ZodObject<{
236
- audience: import("zod").ZodOptional<import("zod").ZodString>;
237
- ttlSeconds: import("zod").ZodNumber;
238
- grant: import("zod").ZodOptional<import("zod").ZodUnknown>;
239
- }, import("zod/v4/core").$strict>;
240
- readonly output: import("zod").ZodString;
241
- readonly static: true;
242
- readonly inheritance: "default";
243
- }>;
244
- }>;
245
- }>];
246
- readonly properties: {
247
- readonly origin: {
248
- readonly type: "string";
249
- readonly pattern: "[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)+";
250
- };
251
- readonly dependencyContext: builder.Property<{
252
- readonly type: "array";
253
- readonly items: {
254
- readonly type: "object";
255
- };
256
- }, {
257
- readonly visibility: "private";
258
- readonly required: false;
259
- }>;
260
- readonly schema: builder.Property<{
261
- readonly type: "object";
262
- }, {
263
- readonly visibility: "private";
264
- }>;
265
- readonly schemaRevision: builder.Property<{
266
- readonly type: "string";
267
- readonly pattern: "sha256:[0-9a-f]{64}";
268
- }, {
269
- readonly visibility: "private";
270
- }>;
271
- };
272
- }>];
273
- readonly incoming: "0..*";
274
- };
275
- readonly description: "A View declaration targets one Domain or a non-empty set of Classes.";
276
- readonly extends: readonly [builder.DirectedEdgeClass<{
277
- readonly abstract: true;
278
- readonly source: {
279
- readonly as: "source";
280
- readonly accepts: readonly [builder.NodeClass<{
281
- readonly abstract: true;
282
- readonly description: "The abstract universal kernel Node Class extended by every Kernel Node Class.";
283
- }>];
284
- readonly outgoing: "0..*";
285
- };
286
- readonly target: {
287
- readonly as: "target";
288
- readonly accepts: readonly [builder.NodeClass<{
289
- readonly abstract: true;
290
- readonly description: "The abstract universal kernel Node Class extended by every Kernel Node Class.";
291
- }>];
292
- readonly incoming: "0..*";
293
- };
294
- readonly description: "Explicit kernel marker for Edge definitions; it carries no structural fields.";
295
- }>];
296
- }>;
@@ -1,12 +0,0 @@
1
- import { edgeClass } from '@astrale-os/kernel-dsl/v1';
2
- import { Class } from '../definitions/index.js';
3
- import { Domain } from '../domain/index.js';
4
- import { Edge } from '../meta/index.js';
5
- import { View } from './view.js';
6
- export const ViewFor = edgeClass.directed({
7
- abstract: false,
8
- source: { as: 'view', accepts: [View], outgoing: '1..*' },
9
- target: { as: 'target', accepts: [Class, Domain], incoming: '0..*' },
10
- description: 'A View declaration targets one Domain or a non-empty set of Classes.',
11
- extends: [Edge],
12
- });
@@ -1,3 +0,0 @@
1
- import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
- export declare function managedKeys(domain: Domain): readonly string[];
3
- export declare function coreKeys(domain: Domain): readonly string[];
@@ -1,2 +0,0 @@
1
- import type { GraphPathWalker } from '#graph/graph';
2
- export declare const projectionPathWalker: GraphPathWalker;
@@ -1,140 +0,0 @@
1
- import { ClassKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
- import { GraphPathAmbiguousError } from '#graph/graph';
3
- import { K } from '../index.js';
4
- export const projectionPathWalker = Object.freeze({
5
- walk: walkProjectionPath,
6
- });
7
- function walkProjectionPath(path, context) {
8
- let candidates = anchorCandidates(path.ast, context);
9
- for (const step of path.ast.steps)
10
- candidates = applyStep(candidates, step, context);
11
- if (candidates.length === 0)
12
- return undefined;
13
- if (candidates.length === 1)
14
- return candidates[0];
15
- throw new GraphPathAmbiguousError(path.raw, candidates.length);
16
- }
17
- function anchorCandidates(ast, context) {
18
- if (ast.anchor.kind === 'id') {
19
- const node = context.nodes.byId(ast.anchor.id);
20
- return node === undefined ? [] : [node];
21
- }
22
- const domainClass = ClassKey.of(K.classes.Domain.ref);
23
- const origin = ast.anchor.origin;
24
- return context.nodes
25
- .byClass(domainClass)
26
- .filter((node) => node.props[K.classes.Domain.properties.origin.key] === origin);
27
- }
28
- function applyStep(current, step, context) {
29
- switch (step.kind) {
30
- case 'projection':
31
- return domainMembers(current, `${step.projection.kind}.${step.projection.name}`, context);
32
- case 'method':
33
- return step.dispatch === 'static'
34
- ? directMethods(current, step.name, true, context)
35
- : instanceMethods(current, step.name, context);
36
- case 'traverse':
37
- return traverse(current, step, context);
38
- }
39
- }
40
- function domainMembers(domains, member, context) {
41
- const domainIds = new Set(domains.map((node) => node.id));
42
- return distinctNodes(edgesOf(K.classes.of_domain, context).flatMap((edge) => {
43
- if (!domainIds.has(edge.target) ||
44
- edge.props[K.classes.of_domain.properties.member.key] !== member) {
45
- return [];
46
- }
47
- const node = context.nodes.byId(edge.source);
48
- return node === undefined ? [] : [node];
49
- }));
50
- }
51
- function directMethods(owners, name, isStatic, context) {
52
- const ownerIds = new Set(owners.map((node) => node.id));
53
- return distinctNodes(edgesOf(K.classes.method_of, context).flatMap((edge) => {
54
- if (!ownerIds.has(edge.target) ||
55
- edge.props[K.classes.method_of.properties.name.key] !== name ||
56
- edge.props[K.classes.method_of.properties.static.key] !== isStatic) {
57
- return [];
58
- }
59
- const method = context.nodes.byId(edge.source);
60
- return method === undefined ? [] : [method];
61
- }));
62
- }
63
- function instanceMethods(instances, name, context) {
64
- return distinctNodes(instances.flatMap((instance) => {
65
- const owner = resolveClassProjection(instance.class, context);
66
- return owner.length === 0 ? [] : effectiveMethods(owner, name, context);
67
- }));
68
- }
69
- function resolveClassProjection(key, context) {
70
- const domainClass = ClassKey.of(K.classes.Domain.ref);
71
- const domains = context.nodes
72
- .byClass(domainClass)
73
- .filter((node) => node.props[K.classes.Domain.properties.origin.key] === ClassKey.ref(key).origin);
74
- return domainMembers(domains, `class.${ClassKey.ref(key).name}`, context);
75
- }
76
- /** Select the nearest declared Method in the valid Definition inheritance graph. */
77
- function effectiveMethods(roots, name, context) {
78
- let level = distinctNodes(roots);
79
- const visited = new Set();
80
- while (level.length > 0) {
81
- const fresh = level.filter((node) => !visited.has(node.id));
82
- for (const node of fresh)
83
- visited.add(node.id);
84
- if (fresh.length === 0)
85
- return [];
86
- const methods = directMethods(fresh, name, false, context);
87
- if (methods.length > 0)
88
- return methods;
89
- level = parentDefinitions(fresh, context);
90
- }
91
- return [];
92
- }
93
- function parentDefinitions(definitions, context) {
94
- const ids = new Set(definitions.map((node) => node.id));
95
- const relations = [K.classes.extends];
96
- return distinctNodes(relations.flatMap((relation) => edgesOf(relation, context).flatMap((edge) => {
97
- if (!ids.has(edge.source))
98
- return [];
99
- const parent = context.nodes.byId(edge.target);
100
- return parent === undefined ? [] : [parent];
101
- })));
102
- }
103
- function traverse(current, step, context) {
104
- const currentIds = new Set(current.map((node) => node.id));
105
- const edgeClass = step.class;
106
- const orientation = context.orientation(edgeClass);
107
- const candidates = context.edges.byClass(edgeClass);
108
- return distinctNodes(candidates.flatMap((edge) => {
109
- if (step.slug !== undefined && edge.slug !== step.slug)
110
- return [];
111
- const endpoint = traversedEndpoint(edge, currentIds, step.direction, orientation);
112
- if (endpoint === undefined)
113
- return [];
114
- const node = context.nodes.byId(endpoint);
115
- return node === undefined ? [] : [node];
116
- }));
117
- }
118
- function traversedEndpoint(edge, current, direction, orientation) {
119
- if (orientation === 'undirected') {
120
- if (current.has(edge.source))
121
- return edge.target;
122
- if (current.has(edge.target))
123
- return edge.source;
124
- return undefined;
125
- }
126
- if (direction === 'out' && current.has(edge.source))
127
- return edge.target;
128
- if (direction === 'in' && current.has(edge.target))
129
- return edge.source;
130
- return undefined;
131
- }
132
- function edgesOf(relation, context) {
133
- return context.edges.byClass(ClassKey.of(relation.ref));
134
- }
135
- function distinctNodes(nodes) {
136
- const byId = new Map();
137
- for (const node of nodes)
138
- byId.set(node.id, node);
139
- return [...byId.values()];
140
- }