@astrale-os/kernel-client 0.6.0-beta.5 → 0.6.0-beta.51

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 (441) hide show
  1. package/dist/auth/auth.d.ts +3 -4
  2. package/dist/auth/auth.js +0 -1
  3. package/dist/auth/authorization.d.ts +2 -3
  4. package/dist/auth/authorization.js +0 -1
  5. package/dist/auth/credential.d.ts +0 -1
  6. package/dist/auth/credential.js +0 -1
  7. package/dist/auth/identity.d.ts +6 -9
  8. package/dist/auth/identity.js +0 -1
  9. package/dist/auth/index.d.ts +0 -1
  10. package/dist/auth/index.js +0 -1
  11. package/dist/auth/provision.d.ts +0 -1
  12. package/dist/auth/provision.js +0 -1
  13. package/dist/client/admission.d.ts +0 -1
  14. package/dist/client/admission.js +0 -1
  15. package/dist/client/client.d.ts +0 -1
  16. package/dist/client/client.js +0 -1
  17. package/dist/client/credential.d.ts +0 -1
  18. package/dist/client/credential.js +0 -1
  19. package/dist/client/index.d.ts +0 -1
  20. package/dist/client/index.js +0 -1
  21. package/dist/client/request.d.ts +0 -1
  22. package/dist/client/request.js +0 -1
  23. package/dist/client/result.d.ts +3 -4
  24. package/dist/client/result.js +3 -1
  25. package/dist/client/routing-control.d.ts +0 -1
  26. package/dist/client/routing-control.js +0 -1
  27. package/dist/errors/client-error.d.ts +0 -1
  28. package/dist/errors/client-error.js +2 -1
  29. package/dist/errors/index.d.ts +7 -7
  30. package/dist/errors/index.js +7 -7
  31. package/dist/errors/miss-error.d.ts +0 -1
  32. package/dist/errors/miss-error.js +0 -1
  33. package/dist/errors/protocol-error.d.ts +0 -1
  34. package/dist/errors/protocol-error.js +0 -1
  35. package/dist/errors/response-error.d.ts +0 -1
  36. package/dist/errors/response-error.js +0 -1
  37. package/dist/errors/session-error.d.ts +9 -0
  38. package/dist/errors/session-error.js +9 -0
  39. package/dist/errors/stale-route-error.d.ts +0 -1
  40. package/dist/errors/stale-route-error.js +0 -1
  41. package/dist/errors/transport-error.d.ts +18 -6
  42. package/dist/errors/transport-error.js +11 -7
  43. package/dist/graph/domain/binding.d.ts +22 -0
  44. package/dist/graph/domain/binding.js +123 -0
  45. package/dist/graph/domain/domain.typecheck.d.ts +1 -0
  46. package/dist/graph/domain/domain.typecheck.js +146 -0
  47. package/dist/graph/domain/index.d.ts +3 -0
  48. package/dist/graph/domain/index.js +1 -0
  49. package/dist/graph/domain/model.d.ts +18 -0
  50. package/dist/graph/domain/model.js +1 -0
  51. package/dist/graph/domain/page.d.ts +23 -0
  52. package/dist/graph/domain/page.js +42 -0
  53. package/dist/graph/domain/project.d.ts +8 -0
  54. package/dist/graph/domain/project.js +120 -0
  55. package/dist/graph/domain/provenance.d.ts +6 -0
  56. package/dist/graph/domain/provenance.js +11 -0
  57. package/dist/graph/errors.d.ts +2 -3
  58. package/dist/graph/errors.js +1 -2
  59. package/dist/graph/expectation.d.ts +3 -0
  60. package/dist/graph/expectation.js +6 -0
  61. package/dist/graph/graph.d.ts +12 -8
  62. package/dist/graph/graph.js +0 -1
  63. package/dist/graph/index.d.ts +2 -2
  64. package/dist/graph/index.js +1 -1
  65. package/dist/graph/mutation.d.ts +2 -4
  66. package/dist/graph/mutation.js +10 -2
  67. package/dist/graph/page/index.d.ts +0 -1
  68. package/dist/graph/page/index.js +0 -1
  69. package/dist/graph/page/neighbors.d.ts +4 -5
  70. package/dist/graph/page/neighbors.js +7 -7
  71. package/dist/graph/page/page.d.ts +5 -2
  72. package/dist/graph/page/page.js +0 -1
  73. package/dist/graph/page-contract.d.ts +1 -2
  74. package/dist/graph/page-contract.js +0 -1
  75. package/dist/graph/provenance.d.ts +14 -0
  76. package/dist/graph/provenance.js +42 -0
  77. package/dist/graph/query.d.ts +3 -1
  78. package/dist/graph/query.js +33 -13
  79. package/dist/graph/read.d.ts +3 -4
  80. package/dist/graph/read.js +6 -5
  81. package/dist/index.d.ts +1 -2
  82. package/dist/index.js +1 -2
  83. package/dist/pacer/batcher/batcher.d.ts +0 -1
  84. package/dist/pacer/batcher/batcher.js +0 -1
  85. package/dist/pacer/batcher/defaults.d.ts +0 -1
  86. package/dist/pacer/batcher/defaults.js +0 -1
  87. package/dist/pacer/batcher/index.d.ts +0 -1
  88. package/dist/pacer/batcher/index.js +0 -1
  89. package/dist/pacer/index.d.ts +0 -1
  90. package/dist/pacer/index.js +0 -1
  91. package/dist/pacer/limiter/defaults.d.ts +0 -1
  92. package/dist/pacer/limiter/defaults.js +0 -1
  93. package/dist/pacer/limiter/index.d.ts +0 -1
  94. package/dist/pacer/limiter/index.js +0 -1
  95. package/dist/pacer/limiter/limiter.d.ts +0 -1
  96. package/dist/pacer/limiter/limiter.js +0 -1
  97. package/dist/pacer/queue/defaults.d.ts +0 -1
  98. package/dist/pacer/queue/defaults.js +0 -1
  99. package/dist/pacer/queue/index.d.ts +0 -1
  100. package/dist/pacer/queue/index.js +0 -1
  101. package/dist/pacer/queue/queue.d.ts +0 -1
  102. package/dist/pacer/queue/queue.js +0 -1
  103. package/dist/pacer/retry/defaults.d.ts +0 -1
  104. package/dist/pacer/retry/defaults.js +0 -1
  105. package/dist/pacer/retry/index.d.ts +0 -1
  106. package/dist/pacer/retry/index.js +0 -1
  107. package/dist/pacer/retry/retry.d.ts +0 -1
  108. package/dist/pacer/retry/retry.js +0 -1
  109. package/dist/pool/index.d.ts +0 -1
  110. package/dist/pool/index.js +0 -1
  111. package/dist/pool/pool.d.ts +0 -1
  112. package/dist/pool/pool.js +0 -1
  113. package/dist/pool/target.d.ts +0 -1
  114. package/dist/pool/target.js +0 -1
  115. package/dist/schema/admission.d.ts +1 -2
  116. package/dist/schema/admission.js +0 -1
  117. package/dist/schema/contracts.d.ts +6 -16
  118. package/dist/schema/contracts.js +0 -1
  119. package/dist/schema/index.d.ts +2 -3
  120. package/dist/schema/index.js +1 -2
  121. package/dist/schema/introspection.d.ts +1 -2
  122. package/dist/schema/introspection.js +5 -2
  123. package/dist/schema/operation.d.ts +0 -1
  124. package/dist/schema/operation.js +2 -3
  125. package/dist/schema/schema.d.ts +11 -10
  126. package/dist/schema/schema.js +80 -11
  127. package/dist/session/bound.d.ts +45 -0
  128. package/dist/session/bound.js +89 -0
  129. package/dist/session/context/control.d.ts +0 -1
  130. package/dist/session/context/control.js +0 -1
  131. package/dist/session/context/index.d.ts +0 -1
  132. package/dist/session/context/index.js +0 -1
  133. package/dist/session/context/limits.d.ts +0 -1
  134. package/dist/session/context/limits.js +0 -1
  135. package/dist/session/context/operation.d.ts +0 -1
  136. package/dist/session/context/operation.js +19 -17
  137. package/dist/session/context/policy.d.ts +0 -1
  138. package/dist/session/context/policy.js +0 -1
  139. package/dist/session/discovery/bundle.d.ts +0 -1
  140. package/dist/session/discovery/bundle.js +4 -4
  141. package/dist/session/discovery/discovery.d.ts +0 -1
  142. package/dist/session/discovery/discovery.js +0 -1
  143. package/dist/session/discovery/index.d.ts +0 -1
  144. package/dist/session/discovery/index.js +0 -1
  145. package/dist/session/discovery/publication.d.ts +0 -1
  146. package/dist/session/discovery/publication.js +4 -4
  147. package/dist/session/discovery/snapshot.d.ts +0 -1
  148. package/dist/session/discovery/snapshot.js +0 -1
  149. package/dist/session/discovery/transport.d.ts +6 -0
  150. package/dist/session/discovery/transport.js +13 -0
  151. package/dist/session/index.d.ts +4 -3
  152. package/dist/session/index.js +2 -1
  153. package/dist/session/reference.d.ts +14 -5
  154. package/dist/session/reference.js +28 -8
  155. package/dist/session/routing/auth.d.ts +0 -1
  156. package/dist/session/routing/auth.js +0 -1
  157. package/dist/session/routing/cache.d.ts +26 -6
  158. package/dist/session/routing/cache.js +215 -16
  159. package/dist/session/routing/dispatch.d.ts +0 -4
  160. package/dist/session/routing/dispatch.js +28 -18
  161. package/dist/session/routing/envelope.d.ts +2 -1
  162. package/dist/session/routing/envelope.js +14 -10
  163. package/dist/session/routing/expectation.d.ts +2 -3
  164. package/dist/session/routing/expectation.js +0 -1
  165. package/dist/session/routing/index.d.ts +1 -2
  166. package/dist/session/routing/index.js +1 -2
  167. package/dist/session/routing/request.d.ts +0 -1
  168. package/dist/session/routing/request.js +0 -1
  169. package/dist/session/session.d.ts +12 -6
  170. package/dist/session/session.js +32 -25
  171. package/dist/session/session.typecheck.d.ts +0 -1
  172. package/dist/session/session.typecheck.js +23 -3
  173. package/dist/session/views/catalog.d.ts +0 -1
  174. package/dist/session/views/catalog.js +13 -5
  175. package/dist/session/views/index.d.ts +0 -1
  176. package/dist/session/views/index.js +0 -1
  177. package/dist/session/views/resolve.d.ts +0 -1
  178. package/dist/session/views/resolve.js +0 -1
  179. package/dist/store/entity-index.d.ts +0 -1
  180. package/dist/store/entity-index.js +0 -1
  181. package/dist/store/index.d.ts +0 -1
  182. package/dist/store/index.js +0 -1
  183. package/dist/store/memory.d.ts +2 -2
  184. package/dist/store/memory.js +24 -13
  185. package/dist/store/mutation.d.ts +0 -1
  186. package/dist/store/mutation.js +0 -1
  187. package/dist/store/observe.d.ts +0 -1
  188. package/dist/store/observe.js +0 -1
  189. package/dist/store/optimistic.d.ts +0 -1
  190. package/dist/store/optimistic.js +0 -1
  191. package/dist/store/query-key.d.ts +2 -2
  192. package/dist/store/query-key.js +7 -3
  193. package/dist/store/shape.d.ts +3 -2
  194. package/dist/store/shape.js +3 -2
  195. package/dist/store/store.d.ts +2 -4
  196. package/dist/store/store.js +5 -4
  197. package/dist/store/store.typecheck.d.ts +0 -1
  198. package/dist/store/store.typecheck.js +3 -9
  199. package/dist/transport/auto/decision.d.ts +0 -1
  200. package/dist/transport/auto/decision.js +0 -1
  201. package/dist/transport/auto/fallback.d.ts +0 -1
  202. package/dist/transport/auto/fallback.js +8 -10
  203. package/dist/transport/auto/index.d.ts +0 -1
  204. package/dist/transport/auto/index.js +0 -1
  205. package/dist/transport/auto/transport.d.ts +0 -1
  206. package/dist/transport/auto/transport.js +5 -6
  207. package/dist/transport/auto/warning.d.ts +0 -1
  208. package/dist/transport/auto/warning.js +5 -3
  209. package/dist/transport/deadline.d.ts +0 -1
  210. package/dist/transport/deadline.js +0 -1
  211. package/dist/transport/failure.d.ts +7 -0
  212. package/dist/transport/failure.js +9 -0
  213. package/dist/transport/http/byte-stream.d.ts +17 -0
  214. package/dist/transport/http/byte-stream.js +86 -0
  215. package/dist/transport/http/index.d.ts +0 -1
  216. package/dist/transport/http/index.js +0 -1
  217. package/dist/transport/http/response.d.ts +0 -1
  218. package/dist/transport/http/response.js +0 -1
  219. package/dist/transport/http/stream.d.ts +0 -1
  220. package/dist/transport/http/stream.js +7 -7
  221. package/dist/transport/http/transport.d.ts +0 -1
  222. package/dist/transport/http/transport.js +43 -19
  223. package/dist/transport/index.d.ts +0 -1
  224. package/dist/transport/index.js +0 -1
  225. package/dist/transport/transport.d.ts +0 -1
  226. package/dist/transport/transport.js +0 -1
  227. package/dist/transport/websocket/connection.d.ts +0 -1
  228. package/dist/transport/websocket/connection.js +16 -26
  229. package/dist/transport/websocket/exchange.d.ts +0 -1
  230. package/dist/transport/websocket/exchange.js +5 -9
  231. package/dist/transport/websocket/index.d.ts +0 -1
  232. package/dist/transport/websocket/index.js +0 -1
  233. package/dist/transport/websocket/transport.d.ts +0 -1
  234. package/dist/transport/websocket/transport.js +7 -20
  235. package/package.json +12 -14
  236. package/dist/auth/auth.d.ts.map +0 -1
  237. package/dist/auth/auth.js.map +0 -1
  238. package/dist/auth/authorization.d.ts.map +0 -1
  239. package/dist/auth/authorization.js.map +0 -1
  240. package/dist/auth/credential.d.ts.map +0 -1
  241. package/dist/auth/credential.js.map +0 -1
  242. package/dist/auth/identity.d.ts.map +0 -1
  243. package/dist/auth/identity.js.map +0 -1
  244. package/dist/auth/index.d.ts.map +0 -1
  245. package/dist/auth/index.js.map +0 -1
  246. package/dist/auth/provision.d.ts.map +0 -1
  247. package/dist/auth/provision.js.map +0 -1
  248. package/dist/client/admission.d.ts.map +0 -1
  249. package/dist/client/admission.js.map +0 -1
  250. package/dist/client/client.d.ts.map +0 -1
  251. package/dist/client/client.js.map +0 -1
  252. package/dist/client/credential.d.ts.map +0 -1
  253. package/dist/client/credential.js.map +0 -1
  254. package/dist/client/index.d.ts.map +0 -1
  255. package/dist/client/index.js.map +0 -1
  256. package/dist/client/request.d.ts.map +0 -1
  257. package/dist/client/request.js.map +0 -1
  258. package/dist/client/result.d.ts.map +0 -1
  259. package/dist/client/result.js.map +0 -1
  260. package/dist/client/routing-control.d.ts.map +0 -1
  261. package/dist/client/routing-control.js.map +0 -1
  262. package/dist/errors/client-error.d.ts.map +0 -1
  263. package/dist/errors/client-error.js.map +0 -1
  264. package/dist/errors/index.d.ts.map +0 -1
  265. package/dist/errors/index.js.map +0 -1
  266. package/dist/errors/miss-error.d.ts.map +0 -1
  267. package/dist/errors/miss-error.js.map +0 -1
  268. package/dist/errors/protocol-error.d.ts.map +0 -1
  269. package/dist/errors/protocol-error.js.map +0 -1
  270. package/dist/errors/response-error.d.ts.map +0 -1
  271. package/dist/errors/response-error.js.map +0 -1
  272. package/dist/errors/stale-route-error.d.ts.map +0 -1
  273. package/dist/errors/stale-route-error.js.map +0 -1
  274. package/dist/errors/transport-error.d.ts.map +0 -1
  275. package/dist/errors/transport-error.js.map +0 -1
  276. package/dist/graph/errors.d.ts.map +0 -1
  277. package/dist/graph/errors.js.map +0 -1
  278. package/dist/graph/graph.d.ts.map +0 -1
  279. package/dist/graph/graph.js.map +0 -1
  280. package/dist/graph/index.d.ts.map +0 -1
  281. package/dist/graph/index.js.map +0 -1
  282. package/dist/graph/mutation.d.ts.map +0 -1
  283. package/dist/graph/mutation.js.map +0 -1
  284. package/dist/graph/page/index.d.ts.map +0 -1
  285. package/dist/graph/page/index.js.map +0 -1
  286. package/dist/graph/page/neighbors.d.ts.map +0 -1
  287. package/dist/graph/page/neighbors.js.map +0 -1
  288. package/dist/graph/page/page.d.ts.map +0 -1
  289. package/dist/graph/page/page.js.map +0 -1
  290. package/dist/graph/page-contract.d.ts.map +0 -1
  291. package/dist/graph/page-contract.js.map +0 -1
  292. package/dist/graph/query.d.ts.map +0 -1
  293. package/dist/graph/query.js.map +0 -1
  294. package/dist/graph/read.d.ts.map +0 -1
  295. package/dist/graph/read.js.map +0 -1
  296. package/dist/index.d.ts.map +0 -1
  297. package/dist/index.js.map +0 -1
  298. package/dist/pacer/batcher/batcher.d.ts.map +0 -1
  299. package/dist/pacer/batcher/batcher.js.map +0 -1
  300. package/dist/pacer/batcher/defaults.d.ts.map +0 -1
  301. package/dist/pacer/batcher/defaults.js.map +0 -1
  302. package/dist/pacer/batcher/index.d.ts.map +0 -1
  303. package/dist/pacer/batcher/index.js.map +0 -1
  304. package/dist/pacer/index.d.ts.map +0 -1
  305. package/dist/pacer/index.js.map +0 -1
  306. package/dist/pacer/limiter/defaults.d.ts.map +0 -1
  307. package/dist/pacer/limiter/defaults.js.map +0 -1
  308. package/dist/pacer/limiter/index.d.ts.map +0 -1
  309. package/dist/pacer/limiter/index.js.map +0 -1
  310. package/dist/pacer/limiter/limiter.d.ts.map +0 -1
  311. package/dist/pacer/limiter/limiter.js.map +0 -1
  312. package/dist/pacer/queue/defaults.d.ts.map +0 -1
  313. package/dist/pacer/queue/defaults.js.map +0 -1
  314. package/dist/pacer/queue/index.d.ts.map +0 -1
  315. package/dist/pacer/queue/index.js.map +0 -1
  316. package/dist/pacer/queue/queue.d.ts.map +0 -1
  317. package/dist/pacer/queue/queue.js.map +0 -1
  318. package/dist/pacer/retry/defaults.d.ts.map +0 -1
  319. package/dist/pacer/retry/defaults.js.map +0 -1
  320. package/dist/pacer/retry/index.d.ts.map +0 -1
  321. package/dist/pacer/retry/index.js.map +0 -1
  322. package/dist/pacer/retry/retry.d.ts.map +0 -1
  323. package/dist/pacer/retry/retry.js.map +0 -1
  324. package/dist/pool/index.d.ts.map +0 -1
  325. package/dist/pool/index.js.map +0 -1
  326. package/dist/pool/pool.d.ts.map +0 -1
  327. package/dist/pool/pool.js.map +0 -1
  328. package/dist/pool/target.d.ts.map +0 -1
  329. package/dist/pool/target.js.map +0 -1
  330. package/dist/schema/admission.d.ts.map +0 -1
  331. package/dist/schema/admission.js.map +0 -1
  332. package/dist/schema/contracts.d.ts.map +0 -1
  333. package/dist/schema/contracts.js.map +0 -1
  334. package/dist/schema/index.d.ts.map +0 -1
  335. package/dist/schema/index.js.map +0 -1
  336. package/dist/schema/introspection.d.ts.map +0 -1
  337. package/dist/schema/introspection.js.map +0 -1
  338. package/dist/schema/operation.d.ts.map +0 -1
  339. package/dist/schema/operation.js.map +0 -1
  340. package/dist/schema/schema.d.ts.map +0 -1
  341. package/dist/schema/schema.js.map +0 -1
  342. package/dist/session/context/control.d.ts.map +0 -1
  343. package/dist/session/context/control.js.map +0 -1
  344. package/dist/session/context/index.d.ts.map +0 -1
  345. package/dist/session/context/index.js.map +0 -1
  346. package/dist/session/context/limits.d.ts.map +0 -1
  347. package/dist/session/context/limits.js.map +0 -1
  348. package/dist/session/context/operation.d.ts.map +0 -1
  349. package/dist/session/context/operation.js.map +0 -1
  350. package/dist/session/context/policy.d.ts.map +0 -1
  351. package/dist/session/context/policy.js.map +0 -1
  352. package/dist/session/discovery/bundle.d.ts.map +0 -1
  353. package/dist/session/discovery/bundle.js.map +0 -1
  354. package/dist/session/discovery/discovery.d.ts.map +0 -1
  355. package/dist/session/discovery/discovery.js.map +0 -1
  356. package/dist/session/discovery/index.d.ts.map +0 -1
  357. package/dist/session/discovery/index.js.map +0 -1
  358. package/dist/session/discovery/publication.d.ts.map +0 -1
  359. package/dist/session/discovery/publication.js.map +0 -1
  360. package/dist/session/discovery/snapshot.d.ts.map +0 -1
  361. package/dist/session/discovery/snapshot.js.map +0 -1
  362. package/dist/session/index.d.ts.map +0 -1
  363. package/dist/session/index.js.map +0 -1
  364. package/dist/session/reference.d.ts.map +0 -1
  365. package/dist/session/reference.js.map +0 -1
  366. package/dist/session/routing/auth.d.ts.map +0 -1
  367. package/dist/session/routing/auth.js.map +0 -1
  368. package/dist/session/routing/cache.d.ts.map +0 -1
  369. package/dist/session/routing/cache.js.map +0 -1
  370. package/dist/session/routing/dispatch.d.ts.map +0 -1
  371. package/dist/session/routing/dispatch.js.map +0 -1
  372. package/dist/session/routing/envelope.d.ts.map +0 -1
  373. package/dist/session/routing/envelope.js.map +0 -1
  374. package/dist/session/routing/expectation.d.ts.map +0 -1
  375. package/dist/session/routing/expectation.js.map +0 -1
  376. package/dist/session/routing/index.d.ts.map +0 -1
  377. package/dist/session/routing/index.js.map +0 -1
  378. package/dist/session/routing/request.d.ts.map +0 -1
  379. package/dist/session/routing/request.js.map +0 -1
  380. package/dist/session/session.d.ts.map +0 -1
  381. package/dist/session/session.js.map +0 -1
  382. package/dist/session/session.typecheck.d.ts.map +0 -1
  383. package/dist/session/session.typecheck.js.map +0 -1
  384. package/dist/session/views/catalog.d.ts.map +0 -1
  385. package/dist/session/views/catalog.js.map +0 -1
  386. package/dist/session/views/index.d.ts.map +0 -1
  387. package/dist/session/views/index.js.map +0 -1
  388. package/dist/session/views/resolve.d.ts.map +0 -1
  389. package/dist/session/views/resolve.js.map +0 -1
  390. package/dist/store/entity-index.d.ts.map +0 -1
  391. package/dist/store/entity-index.js.map +0 -1
  392. package/dist/store/index.d.ts.map +0 -1
  393. package/dist/store/index.js.map +0 -1
  394. package/dist/store/memory.d.ts.map +0 -1
  395. package/dist/store/memory.js.map +0 -1
  396. package/dist/store/mutation.d.ts.map +0 -1
  397. package/dist/store/mutation.js.map +0 -1
  398. package/dist/store/observe.d.ts.map +0 -1
  399. package/dist/store/observe.js.map +0 -1
  400. package/dist/store/optimistic.d.ts.map +0 -1
  401. package/dist/store/optimistic.js.map +0 -1
  402. package/dist/store/query-key.d.ts.map +0 -1
  403. package/dist/store/query-key.js.map +0 -1
  404. package/dist/store/shape.d.ts.map +0 -1
  405. package/dist/store/shape.js.map +0 -1
  406. package/dist/store/store.d.ts.map +0 -1
  407. package/dist/store/store.js.map +0 -1
  408. package/dist/store/store.typecheck.d.ts.map +0 -1
  409. package/dist/store/store.typecheck.js.map +0 -1
  410. package/dist/transport/auto/decision.d.ts.map +0 -1
  411. package/dist/transport/auto/decision.js.map +0 -1
  412. package/dist/transport/auto/fallback.d.ts.map +0 -1
  413. package/dist/transport/auto/fallback.js.map +0 -1
  414. package/dist/transport/auto/index.d.ts.map +0 -1
  415. package/dist/transport/auto/index.js.map +0 -1
  416. package/dist/transport/auto/transport.d.ts.map +0 -1
  417. package/dist/transport/auto/transport.js.map +0 -1
  418. package/dist/transport/auto/warning.d.ts.map +0 -1
  419. package/dist/transport/auto/warning.js.map +0 -1
  420. package/dist/transport/deadline.d.ts.map +0 -1
  421. package/dist/transport/deadline.js.map +0 -1
  422. package/dist/transport/http/index.d.ts.map +0 -1
  423. package/dist/transport/http/index.js.map +0 -1
  424. package/dist/transport/http/response.d.ts.map +0 -1
  425. package/dist/transport/http/response.js.map +0 -1
  426. package/dist/transport/http/stream.d.ts.map +0 -1
  427. package/dist/transport/http/stream.js.map +0 -1
  428. package/dist/transport/http/transport.d.ts.map +0 -1
  429. package/dist/transport/http/transport.js.map +0 -1
  430. package/dist/transport/index.d.ts.map +0 -1
  431. package/dist/transport/index.js.map +0 -1
  432. package/dist/transport/transport.d.ts.map +0 -1
  433. package/dist/transport/transport.js.map +0 -1
  434. package/dist/transport/websocket/connection.d.ts.map +0 -1
  435. package/dist/transport/websocket/connection.js.map +0 -1
  436. package/dist/transport/websocket/exchange.d.ts.map +0 -1
  437. package/dist/transport/websocket/exchange.js.map +0 -1
  438. package/dist/transport/websocket/index.d.ts.map +0 -1
  439. package/dist/transport/websocket/index.js.map +0 -1
  440. package/dist/transport/websocket/transport.d.ts.map +0 -1
  441. package/dist/transport/websocket/transport.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { Identity, IdentityId, MintedCredential, ProvisionRequest, ProvisionResult } from '@astrale-os/kernel-core/auth';
1
+ import type { Identity, Authentication, IdentityId, MintedCredential, ProvisionRequest, ProvisionResult } from '@astrale-os/kernel-core/auth';
2
2
  import type { PathLike } from '@astrale-os/kernel-core/path';
3
3
  import type { Input } from '../client/index.js';
4
4
  import type { RequestOptions } from '../transport/index.js';
@@ -8,12 +8,11 @@ import type { WhoisInput } from './identity.js';
8
8
  export type AuthCall = (target: PathLike, input: Input, options?: RequestOptions) => Promise<Input>;
9
9
  export interface AuthApi {
10
10
  provision(input: ProvisionRequest, options?: RequestOptions): Promise<ProvisionResult>;
11
- whoami(options?: RequestOptions): Promise<Identity>;
12
- whois(input: WhoisInput, options?: RequestOptions): Promise<Identity | null>;
11
+ whoami(options?: RequestOptions): Promise<Identity & Authentication>;
12
+ whois(input: WhoisInput, options?: RequestOptions): Promise<(Identity & Authentication) | null>;
13
13
  can(input: PolicyDecisionInput, options?: RequestOptions): Promise<boolean>;
14
14
  mint(input: MintOptions, options?: RequestOptions): Promise<MintedCredential>;
15
15
  delegate(identity: IdentityId, input: DelegateOptions, options?: RequestOptions): Promise<MintedCredential>;
16
16
  }
17
17
  /** Bind the current Core identity syscalls without recreating legacy grant-edge verbs. */
18
18
  export declare function createAuth(call: AuthCall): AuthApi;
19
- //# sourceMappingURL=auth.d.ts.map
package/dist/auth/auth.js CHANGED
@@ -13,4 +13,3 @@ export function createAuth(call) {
13
13
  ...credentialApi(call),
14
14
  });
15
15
  }
16
- //# sourceMappingURL=auth.js.map
@@ -1,14 +1,13 @@
1
1
  import type { NodeId } from '@astrale-os/kernel-core/graph/node';
2
2
  import type { NodePath, PathLike } from '@astrale-os/kernel-core/path';
3
- import type { schema } from '@astrale-os/kernel-dsl/v1';
3
+ import type { PolicyRef } from '@astrale-os/kernel-dsl/v1';
4
4
  import type { RequestOptions } from '../transport/index.js';
5
5
  import type { AuthCall } from './auth.js';
6
6
  export interface PolicyDecisionInput {
7
- readonly policy: PathLike | schema.PolicyRef;
7
+ readonly policy: PathLike | PolicyRef;
8
8
  readonly object: NodeId;
9
9
  }
10
10
  export declare const IDENTITY_CAN_PATH: NodePath;
11
11
  export declare function authorizationApi(call: AuthCall): Readonly<{
12
12
  can(input: PolicyDecisionInput, options?: RequestOptions): Promise<boolean>;
13
13
  }>;
14
- //# sourceMappingURL=authorization.d.ts.map
@@ -15,4 +15,3 @@ function policyPath(input) {
15
15
  ? Path.from(input).raw
16
16
  : Path.project(input).raw;
17
17
  }
18
- //# sourceMappingURL=authorization.js.map
@@ -17,4 +17,3 @@ export declare function credentialApi(call: AuthCall): Readonly<{
17
17
  mint(input: MintOptions, options?: RequestOptions): Promise<MintedCredential>;
18
18
  delegate(principal: IdentityId, input: DelegateOptions, options?: RequestOptions): Promise<MintedCredential>;
19
19
  }>;
20
- //# sourceMappingURL=credential.d.ts.map
@@ -19,4 +19,3 @@ function credential(input) {
19
19
  }
20
20
  return input;
21
21
  }
22
- //# sourceMappingURL=credential.js.map
@@ -1,15 +1,12 @@
1
- import type { Identity, IssuerId, Subject } from '@astrale-os/kernel-core/auth';
1
+ import type { Authentication, Identity } from '@astrale-os/kernel-core/auth';
2
2
  import type { NodePath } from '@astrale-os/kernel-core/path';
3
3
  import type { RequestOptions } from '../transport/index.js';
4
4
  import type { AuthCall } from './auth.js';
5
- export interface WhoisInput {
6
- readonly issuer: IssuerId;
7
- readonly subject: Subject;
5
+ export type WhoisInput = Authentication;
6
+ export interface IdentityApi {
7
+ whoami(options?: RequestOptions): Promise<Identity & Authentication>;
8
+ whois(input: WhoisInput, options?: RequestOptions): Promise<(Identity & Authentication) | null>;
8
9
  }
9
10
  export declare const IDENTITY_WHOAMI_PATH: NodePath;
10
11
  export declare const IDENTITY_WHOIS_PATH: NodePath;
11
- export declare function identityApi(call: AuthCall): Readonly<{
12
- whoami(options?: RequestOptions): Promise<Identity>;
13
- whois(input: WhoisInput, options?: RequestOptions): Promise<Identity | null>;
14
- }>;
15
- //# sourceMappingURL=identity.d.ts.map
12
+ export declare function identityApi(call: AuthCall): IdentityApi;
@@ -13,4 +13,3 @@ export function identityApi(call) {
13
13
  },
14
14
  });
15
15
  }
16
- //# sourceMappingURL=identity.js.map
@@ -4,4 +4,3 @@ export { IDENTITY_MINT_PATH, type DelegateOptions, type MintOptions } from './cr
4
4
  export { IDENTITY_WHOAMI_PATH, IDENTITY_WHOIS_PATH, type WhoisInput } from './identity.js';
5
5
  export { IDENTITY_PROVISION_PATH } from './provision.js';
6
6
  export type { Identity, IdentityId, Subject, IssuerId, MintedCredential, ProvisionRequest, ProvisionResult, UnresolvedGrant, UnresolvedIdentityExpr, } from '@astrale-os/kernel-core/auth';
7
- //# sourceMappingURL=index.d.ts.map
@@ -3,4 +3,3 @@ export { IDENTITY_CAN_PATH } from './authorization.js';
3
3
  export { IDENTITY_MINT_PATH } from './credential.js';
4
4
  export { IDENTITY_WHOAMI_PATH, IDENTITY_WHOIS_PATH } from './identity.js';
5
5
  export { IDENTITY_PROVISION_PATH } from './provision.js';
6
- //# sourceMappingURL=index.js.map
@@ -6,4 +6,3 @@ export declare const IDENTITY_PROVISION_PATH: NodePath;
6
6
  export declare function provisionApi(call: AuthCall): Readonly<{
7
7
  provision(input: ProvisionRequest, options?: RequestOptions): Promise<ProvisionResult>;
8
8
  }>;
9
- //# sourceMappingURL=provision.d.ts.map
@@ -8,4 +8,3 @@ export function provisionApi(call) {
8
8
  },
9
9
  });
10
10
  }
11
- //# sourceMappingURL=provision.js.map
@@ -2,4 +2,3 @@ import type { invocation as protocol } from '@astrale-os/kernel-protocol';
2
2
  import type { Call } from './request.js';
3
3
  /** Parent-private Call acceptance shared by Client and Client Session. */
4
4
  export declare function acceptCall(input: Call): protocol.Call;
5
- //# sourceMappingURL=admission.d.ts.map
@@ -32,4 +32,3 @@ function freezeValue(input) {
32
32
  }
33
33
  return input;
34
34
  }
35
- //# sourceMappingURL=admission.js.map
@@ -23,4 +23,3 @@ export declare class Client implements AuthenticatedClient {
23
23
  close(): void;
24
24
  private dispatchWith;
25
25
  }
26
- //# sourceMappingURL=client.d.ts.map
@@ -90,4 +90,3 @@ function admitTransport(input) {
90
90
  ...(close === undefined ? {} : { close: close.bind(input) }),
91
91
  });
92
92
  }
93
- //# sourceMappingURL=client.js.map
@@ -10,4 +10,3 @@ export interface AuthenticatedClient {
10
10
  export type CredentialDispatch = (credential: RemoteCredential, call: Call, options?: ClientDispatchOptions) => Promise<Result>;
11
11
  export declare function authenticated(dispatchWith: CredentialDispatch, credential: RemoteCredential): AuthenticatedClient;
12
12
  export declare function resolveCredential(input: RemoteCredential, signal?: AbortSignal): Promise<string>;
13
- //# sourceMappingURL=credential.d.ts.map
@@ -49,4 +49,3 @@ function cancellation(reason) {
49
49
  ? reason
50
50
  : new ClientError('Client request was cancelled.', { cause: reason });
51
51
  }
52
- //# sourceMappingURL=credential.js.map
@@ -4,4 +4,3 @@ export type { AuthenticatedClient, RemoteCredential } from './credential.js';
4
4
  export { call, type Call, type ClientDispatchOptions } from './request.js';
5
5
  export type { Binary, BinaryResponse, Input, RedirectResult, Result, Stream, StreamResult, ValueResult, } from './result.js';
6
6
  export { isAdmittedMissError, isAdmittedStaleRouteError } from './routing-control.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,3 @@ export { Client, dispatchTrace } from './client.js';
2
2
  export { acceptCall } from './admission.js';
3
3
  export { call } from './request.js';
4
4
  export { isAdmittedMissError, isAdmittedStaleRouteError } from './routing-control.js';
5
- //# sourceMappingURL=index.js.map
@@ -24,4 +24,3 @@ export interface AdmittedRequest {
24
24
  export declare function call(target: PathLike, input: Input): Call;
25
25
  export declare function admitRequest(input: Call, options: ClientDispatchOptions | undefined, lifecycle: AbortSignal): AdmittedRequest;
26
26
  export declare function invocation(request: AdmittedRequest, credential?: string, trace?: protocol.Trace): TransportRequest;
27
- //# sourceMappingURL=request.d.ts.map
@@ -98,4 +98,3 @@ function lifecycleOptions(input, lifecycle) {
98
98
  ...(input?.idempotencyKey === undefined ? {} : { idempotencyKey: input.idempotencyKey }),
99
99
  });
100
100
  }
101
- //# sourceMappingURL=request.js.map
@@ -1,10 +1,10 @@
1
- import type { BinaryResult, CallableResult } from '@astrale-os/kernel-core/domain';
1
+ import type { BinaryOutput, CallableResult } from '@astrale-os/kernel-core/callable';
2
2
  import type { Value } from '@astrale-os/kernel-dsl/value';
3
3
  import type { invocation as protocol } from '@astrale-os/kernel-protocol';
4
4
  /** Caller-visible value accepted from one admitted remote invocation. */
5
5
  export type Input = Value;
6
- /** Caller-visible finite binary response. */
7
- export type Binary = BinaryResult;
6
+ /** Caller-visible buffered or streaming binary response. */
7
+ export type Binary = BinaryOutput;
8
8
  /** Caller-owned remote stream. */
9
9
  export interface Stream extends AsyncIterable<Value> {
10
10
  cancel(reason?: string): Promise<void>;
@@ -33,4 +33,3 @@ export declare function requireValue(result: Promise<Result>): Promise<ValueResu
33
33
  export declare function requireStream(result: Promise<Result>): Promise<StreamResult>;
34
34
  export declare function requireBinary(result: Promise<Result>): Promise<BinaryResponse>;
35
35
  export {};
36
- //# sourceMappingURL=result.d.ts.map
@@ -24,6 +24,8 @@ async function rejectMismatch(expected, result) {
24
24
  if (result.kind === 'stream') {
25
25
  await result.stream.cancel(`Expected ${expected} Function result.`).catch(() => undefined);
26
26
  }
27
+ if (result.kind === 'binary' && !(result.value.body instanceof Uint8Array)) {
28
+ await result.value.body[Symbol.asyncIterator]().return?.();
29
+ }
27
30
  mismatch(expected, result.kind);
28
31
  }
29
- //# sourceMappingURL=result.js.map
@@ -8,4 +8,3 @@ export declare function admittedStaleRouteError(currentEtag: publication.Etag, i
8
8
  export declare function isAdmittedMissError(input: unknown): input is MissError;
9
9
  /** Distinguish decoded routing control from public or caller-supplied lookalike errors. */
10
10
  export declare function isAdmittedStaleRouteError(input: unknown): input is StaleRouteError;
11
- //# sourceMappingURL=routing-control.d.ts.map
@@ -21,4 +21,3 @@ export function isAdmittedMissError(input) {
21
21
  export function isAdmittedStaleRouteError(input) {
22
22
  return input instanceof StaleRouteError && admittedStaleRoutes.has(input);
23
23
  }
24
- //# sourceMappingURL=routing-control.js.map
@@ -1,4 +1,3 @@
1
1
  export declare class ClientError extends Error {
2
2
  constructor(message: string, options?: ErrorOptions);
3
3
  }
4
- //# sourceMappingURL=client-error.d.ts.map
@@ -1,7 +1,8 @@
1
1
  export class ClientError extends Error {
2
2
  constructor(message, options) {
3
+ if (message.trim() === '')
4
+ throw new TypeError('Client error message must be non-blank.');
3
5
  super(message, options);
4
6
  this.name = 'ClientError';
5
7
  }
6
8
  }
7
- //# sourceMappingURL=client-error.js.map
@@ -1,7 +1,7 @@
1
- export { ClientError } from './client-error.js';
2
- export { MissError } from './miss-error.js';
3
- export { ProtocolError, type ProtocolErrorOptions } from './protocol-error.js';
4
- export { ResponseError } from './response-error.js';
5
- export { StaleRouteError } from './stale-route-error.js';
6
- export { TransportError, type TransportDelivery, type TransportErrorOptions, type TransportPhase, } from './transport-error.js';
7
- //# sourceMappingURL=index.d.ts.map
1
+ export * from './client-error.js';
2
+ export * from './miss-error.js';
3
+ export * from './protocol-error.js';
4
+ export * from './response-error.js';
5
+ export * from './session-error.js';
6
+ export * from './stale-route-error.js';
7
+ export * from './transport-error.js';
@@ -1,7 +1,7 @@
1
- export { ClientError } from './client-error.js';
2
- export { MissError } from './miss-error.js';
3
- export { ProtocolError } from './protocol-error.js';
4
- export { ResponseError } from './response-error.js';
5
- export { StaleRouteError } from './stale-route-error.js';
6
- export { TransportError, } from './transport-error.js';
7
- //# sourceMappingURL=index.js.map
1
+ export * from './client-error.js';
2
+ export * from './miss-error.js';
3
+ export * from './protocol-error.js';
4
+ export * from './response-error.js';
5
+ export * from './session-error.js';
6
+ export * from './stale-route-error.js';
7
+ export * from './transport-error.js';
@@ -6,4 +6,3 @@ export declare class MissError extends ClientError {
6
6
  readonly name = "MissError";
7
7
  constructor(invocation: protocol.InvocationId);
8
8
  }
9
- //# sourceMappingURL=miss-error.d.ts.map
@@ -8,4 +8,3 @@ export class MissError extends ClientError {
8
8
  this.invocation = invocation;
9
9
  }
10
10
  }
11
- //# sourceMappingURL=miss-error.js.map
@@ -7,4 +7,3 @@ export declare class ProtocolError extends ClientError {
7
7
  readonly invocation?: protocol.InvocationId;
8
8
  constructor(message: string, options?: ProtocolErrorOptions);
9
9
  }
10
- //# sourceMappingURL=protocol-error.d.ts.map
@@ -7,4 +7,3 @@ export class ProtocolError extends ClientError {
7
7
  this.invocation = options?.invocation;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=protocol-error.js.map
@@ -9,4 +9,3 @@ export declare class ResponseError extends ClientError {
9
9
  readonly reason?: errors.ErrorReason;
10
10
  constructor(code: errors.ErrorCode, message: string, invocation: protocol.InvocationId, data?: Value | undefined);
11
11
  }
12
- //# sourceMappingURL=response-error.d.ts.map
@@ -14,4 +14,3 @@ export class ResponseError extends ClientError {
14
14
  this.reason = errors.reasonOf(data);
15
15
  }
16
16
  }
17
- //# sourceMappingURL=response-error.js.map
@@ -0,0 +1,9 @@
1
+ import { ClientError } from './client-error.js';
2
+ export type SessionFailure = 'cancelled' | 'closed' | 'timeout';
3
+ export interface SessionErrorOptions extends ErrorOptions {
4
+ readonly failure: SessionFailure;
5
+ }
6
+ export declare class SessionError extends ClientError {
7
+ readonly failure: SessionFailure;
8
+ constructor(message: string, options: SessionErrorOptions);
9
+ }
@@ -0,0 +1,9 @@
1
+ import { ClientError } from './client-error.js';
2
+ export class SessionError extends ClientError {
3
+ failure;
4
+ constructor(message, options) {
5
+ super(message, options);
6
+ this.name = 'SessionError';
7
+ this.failure = options.failure;
8
+ }
9
+ }
@@ -7,4 +7,3 @@ export declare class StaleRouteError extends ClientError {
7
7
  readonly name = "StaleRouteError";
8
8
  constructor(currentEtag: publication.Etag, invocation: protocol.InvocationId);
9
9
  }
10
- //# sourceMappingURL=stale-route-error.d.ts.map
@@ -10,4 +10,3 @@ export class StaleRouteError extends ClientError {
10
10
  this.invocation = invocation;
11
11
  }
12
12
  }
13
- //# sourceMappingURL=stale-route-error.js.map
@@ -3,16 +3,28 @@ import { ClientError } from './client-error.js';
3
3
  /** Whether an invocation is proven not to have crossed the transport boundary. */
4
4
  export type TransportDelivery = 'not-sent' | 'unknown';
5
5
  /** Observable transport phase in which communication stopped. */
6
- export type TransportPhase = 'connect' | 'send' | 'receive' | 'timeout' | 'closed';
7
- export interface TransportErrorOptions extends ErrorOptions {
8
- readonly phase: TransportPhase;
6
+ export type TransportPhase = 'connect' | 'send' | 'receive' | 'timeout' | 'closed' | 'unknown';
7
+ export type TransportContext = {
8
+ readonly kind: 'acquisition';
9
+ readonly resource: 'publication' | 'bundle';
10
+ } | {
11
+ readonly kind: 'invocation';
9
12
  readonly delivery: TransportDelivery;
10
13
  readonly invocation?: protocol.InvocationId;
14
+ };
15
+ export interface AcquisitionTransportErrorOptions extends ErrorOptions {
16
+ readonly phase: TransportPhase;
17
+ readonly resource: 'publication' | 'bundle';
11
18
  }
12
- export declare class TransportError extends ClientError {
19
+ export interface InvocationTransportErrorOptions extends ErrorOptions {
13
20
  readonly phase: TransportPhase;
14
21
  readonly delivery: TransportDelivery;
15
22
  readonly invocation?: protocol.InvocationId;
16
- constructor(message: string, options: TransportErrorOptions);
17
23
  }
18
- //# sourceMappingURL=transport-error.d.ts.map
24
+ export declare class TransportError extends ClientError {
25
+ readonly phase: TransportPhase;
26
+ readonly context: TransportContext;
27
+ private constructor();
28
+ static acquisition(message: string, options: AcquisitionTransportErrorOptions): TransportError;
29
+ static invocation(message: string, options: InvocationTransportErrorOptions): TransportError;
30
+ }
@@ -1,14 +1,18 @@
1
1
  import { ClientError } from './client-error.js';
2
2
  export class TransportError extends ClientError {
3
3
  phase;
4
- delivery;
5
- invocation;
6
- constructor(message, options) {
4
+ context;
5
+ constructor(message, phase, context, options) {
7
6
  super(message, options);
7
+ this.phase = phase;
8
+ this.context = context;
8
9
  this.name = 'TransportError';
9
- this.phase = options.phase;
10
- this.delivery = options.delivery;
11
- this.invocation = options.invocation;
10
+ Object.freeze(context);
11
+ }
12
+ static acquisition(message, options) {
13
+ return new TransportError(message, options.phase, { kind: 'acquisition', resource: options.resource }, options);
14
+ }
15
+ static invocation(message, options) {
16
+ return new TransportError(message, options.phase, { kind: 'invocation', delivery: options.delivery, invocation: options.invocation }, options);
12
17
  }
13
18
  }
14
- //# sourceMappingURL=transport-error.js.map
@@ -0,0 +1,22 @@
1
+ import type { Edge } from '@astrale-os/kernel-core/graph/edge';
2
+ import type { Node } from '@astrale-os/kernel-core/graph/node';
3
+ import type { QueryAST, QuerySingleSourceClassOf } from '@astrale-os/kernel-core/graph/query';
4
+ import type { Domain } from '@astrale-os/kernel-dsl/v1/domain';
5
+ import type { AnyResolvedClass, ResolvedClass } from '@astrale-os/kernel-dsl/v1/language';
6
+ import type { GraphApi, GraphQueryOptions } from '../graph.js';
7
+ import type { BoundEdge, BoundNode } from './model.js';
8
+ import type { BoundQueryPage } from './page.js';
9
+ import type { MethodCall } from './project.js';
10
+ export type DomainQueryOptions = Omit<GraphQueryOptions, 'expected'>;
11
+ type AdmittedSourceClasses<Query extends QueryAST> = [QuerySingleSourceClassOf<Query>] extends [
12
+ never
13
+ ] ? never : QuerySingleSourceClassOf<Query> extends AnyResolvedClass ? unknown : never;
14
+ export interface DomainBinding<DomainValue extends Domain = Domain> {
15
+ readonly domain: DomainValue;
16
+ readonly graph: GraphApi;
17
+ query<Query extends QueryAST>(query: Query & AdmittedSourceClasses<Query>, options: DomainQueryOptions): Promise<BoundQueryPage<Query>>;
18
+ wrapNode<Class extends ResolvedClass<'node'>>(selected: Class, node: Node): BoundNode<Class>;
19
+ wrapEdge<Class extends ResolvedClass<'edge'>>(selected: Class, edge: Edge): BoundEdge<Class>;
20
+ }
21
+ export declare function createDomainBinding<DomainValue extends Domain>(domain: DomainValue, graph: GraphApi, call: MethodCall): DomainBinding<DomainValue>;
22
+ export {};
@@ -0,0 +1,123 @@
1
+ import { ClassKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
+ import { isDomain } from '@astrale-os/kernel-dsl/v1/domain';
3
+ import { provenanceOfGraphValue, provenanceOfResponse } from '../provenance.js';
4
+ import { selectedEdges, selectedNodes } from './page.js';
5
+ import { projectEdge, projectNode } from './project.js';
6
+ import { provenanceOfProjectedValue, sameClosure } from './provenance.js';
7
+ export function createDomainBinding(domain, graph, call) {
8
+ if (!isDomain(domain))
9
+ throw new TypeError('Domain binding requires an admitted DSL Domain.');
10
+ const wrapNode = (selected, node) => {
11
+ requireOwnedClass(domain, selected);
12
+ const provenance = requireProvenance(domain, node);
13
+ const exact = requireExactClass(domain, node.class, 'node');
14
+ if (!exact.satisfies(selected))
15
+ throw new TypeError(`${exact.key} does not satisfy ${selected.key}.`);
16
+ const diagnostics = exact.validateProperties(node.props);
17
+ if (diagnostics.length > 0)
18
+ throw new TypeError(`Node ${node.id} has invalid exact Properties.`);
19
+ return projectNode(selected, node, provenance, call);
20
+ };
21
+ const wrapEdge = (selected, edge) => {
22
+ requireOwnedClass(domain, selected);
23
+ const provenance = requireProvenance(domain, edge);
24
+ const exact = requireExactClass(domain, edge.class, 'edge');
25
+ if (!exact.satisfies(selected))
26
+ throw new TypeError(`${exact.key} does not satisfy ${selected.key}.`);
27
+ const diagnostics = exact.validateProperties(edge.props);
28
+ if (diagnostics.length > 0)
29
+ throw new TypeError('Edge has invalid exact Properties.');
30
+ return projectEdge(selected, edge, provenance);
31
+ };
32
+ return Object.freeze({
33
+ domain,
34
+ graph,
35
+ async query(query, options) {
36
+ const selected = selectedSourceClass(domain, query);
37
+ const response = await graph.query(query, { ...options, expected: domain.closure });
38
+ const provenance = provenanceOfResponse(response);
39
+ if (provenance === undefined || !sameClosure(provenance.closure, domain.closure)) {
40
+ throw new TypeError('Authenticated query provenance was not retained.');
41
+ }
42
+ const next = response.page.next === undefined
43
+ ? undefined
44
+ : () => this.query(query, {
45
+ ...options,
46
+ page: { ...options.page, after: response.page.next },
47
+ });
48
+ if (selected.kind === 'node') {
49
+ const nodes = selectedNodes(response).map((node) => wrapNode(selected, node));
50
+ return Object.freeze({
51
+ nodes: Object.freeze(nodes),
52
+ raw: response,
53
+ ...(next === undefined ? {} : { next }),
54
+ refine: (value, target) => refineNode(domain, call, value, target, provenance),
55
+ });
56
+ }
57
+ const edges = selectedEdges(response).map((edge) => wrapEdge(selected, edge));
58
+ return Object.freeze({
59
+ edges: Object.freeze(edges),
60
+ raw: response,
61
+ ...(next === undefined ? {} : { next }),
62
+ refine: (value, target) => refineEdge(domain, value, target, provenance),
63
+ });
64
+ },
65
+ wrapNode,
66
+ wrapEdge,
67
+ });
68
+ }
69
+ function selectedSourceClass(domain, query) {
70
+ if (query.steps.some((step) => step.op === 'expand')) {
71
+ throw new TypeError('Rich Domain queries do not yet project expanded bindings.');
72
+ }
73
+ if (query.source.terms.length !== 1 || query.source.terms[0]?.kind !== 'class') {
74
+ throw new TypeError('Rich Domain queries require one exact Class source term.');
75
+ }
76
+ const sourceBinding = query.source.kind === 'node' ? query.source.binding : query.source.bindings.edge;
77
+ if (query.select.binding !== sourceBinding) {
78
+ throw new TypeError('Rich Domain queries must select their original source binding.');
79
+ }
80
+ const selected = domain.definition(query.source.terms[0].class);
81
+ if (selected?.ref.kind !== 'class' || selected.kind !== query.source.kind) {
82
+ throw new TypeError('Query source Class is absent or has the wrong graph kind.');
83
+ }
84
+ return selected;
85
+ }
86
+ function refineNode(domain, call, value, target, page) {
87
+ requireOwnedClass(domain, target);
88
+ const provenance = requirePageProvenance(value, page);
89
+ const exact = requireExactClass(domain, value.class, 'node');
90
+ return exact.satisfies(target) ? projectNode(target, value, provenance, call) : undefined;
91
+ }
92
+ function refineEdge(domain, value, target, page) {
93
+ requireOwnedClass(domain, target);
94
+ const provenance = requirePageProvenance(value, page);
95
+ const exact = requireExactClass(domain, value.class, 'edge');
96
+ return exact.satisfies(target) ? projectEdge(target, value, provenance) : undefined;
97
+ }
98
+ function requirePageProvenance(value, page) {
99
+ const provenance = provenanceOfProjectedValue(value);
100
+ if (provenance?.page !== page.page) {
101
+ throw new TypeError('Refinement requires a value from this exact result page.');
102
+ }
103
+ return provenance;
104
+ }
105
+ function requireOwnedClass(domain, selected) {
106
+ if (domain.definition(selected.key) !== selected) {
107
+ throw new TypeError('Selected Class does not belong to the bound Domain closure.');
108
+ }
109
+ }
110
+ function requireProvenance(domain, value) {
111
+ const provenance = provenanceOfGraphValue(value);
112
+ if (provenance === undefined || !sameClosure(provenance.closure, domain.closure)) {
113
+ throw new TypeError('Graph value lacks matching authenticated query provenance.');
114
+ }
115
+ return provenance;
116
+ }
117
+ function requireExactClass(domain, key, kind) {
118
+ const exact = domain.definition(ClassKey.ref(ClassKey(key)));
119
+ if (exact?.ref.kind !== 'class' || exact.kind !== kind || exact.abstract) {
120
+ throw new TypeError(`Exact ${kind} Class ${key} is not active and concrete.`);
121
+ }
122
+ return exact;
123
+ }
@@ -0,0 +1 @@
1
+ export {};