@astrale-os/kernel-client 0.6.0-beta.4 → 0.6.0-beta.41

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 (461) 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 +3 -4
  5. package/dist/auth/credential.d.ts +1 -2
  6. package/dist/auth/credential.js +5 -6
  7. package/dist/auth/identity.d.ts +6 -9
  8. package/dist/auth/identity.js +4 -5
  9. package/dist/auth/index.d.ts +1 -2
  10. package/dist/auth/index.js +0 -1
  11. package/dist/auth/provision.d.ts +0 -1
  12. package/dist/auth/provision.js +2 -3
  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 +1 -2
  22. package/dist/client/request.js +1 -2
  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 +2 -2
  36. package/dist/errors/response-error.js +1 -2
  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 +139 -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 +2 -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 +12 -4
  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 +6 -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 +0 -1
  78. package/dist/graph/query.js +21 -13
  79. package/dist/graph/read.d.ts +3 -4
  80. package/dist/graph/read.js +1 -2
  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 +9 -7
  116. package/dist/schema/admission.js +6 -12
  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 +7 -4
  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 +60 -13
  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 +1 -2
  138. package/dist/session/context/policy.js +2 -3
  139. package/dist/session/discovery/bundle.d.ts +0 -1
  140. package/dist/session/discovery/bundle.js +6 -6
  141. package/dist/session/discovery/discovery.d.ts +1 -2
  142. package/dist/session/discovery/discovery.js +0 -1
  143. package/dist/session/discovery/index.d.ts +1 -2
  144. package/dist/session/discovery/index.js +0 -1
  145. package/dist/session/discovery/publication.d.ts +1 -2
  146. package/dist/session/discovery/publication.js +6 -5
  147. package/dist/session/discovery/snapshot.d.ts +1 -2
  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 +6 -4
  152. package/dist/session/index.js +3 -2
  153. package/dist/session/reference.d.ts +36 -0
  154. package/dist/session/reference.js +74 -0
  155. package/dist/session/routing/auth.d.ts +1 -2
  156. package/dist/session/routing/auth.js +1 -2
  157. package/dist/session/routing/cache.d.ts +28 -8
  158. package/dist/session/routing/cache.js +216 -28
  159. package/dist/session/routing/dispatch.d.ts +3 -7
  160. package/dist/session/routing/dispatch.js +32 -25
  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 +6 -0
  164. package/dist/session/routing/expectation.js +1 -0
  165. package/dist/session/routing/index.d.ts +2 -3
  166. package/dist/session/routing/index.js +1 -2
  167. package/dist/session/routing/request.d.ts +1 -2
  168. package/dist/session/routing/request.js +1 -2
  169. package/dist/session/session.d.ts +17 -10
  170. package/dist/session/session.js +54 -38
  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 +2 -3
  174. package/dist/session/views/catalog.js +15 -7
  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 +4 -3
  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 +2 -2
  218. package/dist/transport/http/response.js +2 -2
  219. package/dist/transport/http/stream.d.ts +2 -2
  220. package/dist/transport/http/stream.js +8 -8
  221. package/dist/transport/http/transport.d.ts +0 -1
  222. package/dist/transport/http/transport.js +40 -18
  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 +2 -2
  228. package/dist/transport/websocket/connection.js +17 -27
  229. package/dist/transport/websocket/exchange.d.ts +1 -2
  230. package/dist/transport/websocket/exchange.js +6 -10
  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 +9 -21
  235. package/package.json +21 -18
  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/domain/binding.d.ts +0 -24
  263. package/dist/domain/binding.d.ts.map +0 -1
  264. package/dist/domain/binding.js +0 -69
  265. package/dist/domain/binding.js.map +0 -1
  266. package/dist/domain/callable.d.ts +0 -25
  267. package/dist/domain/callable.d.ts.map +0 -1
  268. package/dist/domain/callable.js +0 -70
  269. package/dist/domain/callable.js.map +0 -1
  270. package/dist/domain/domain.typecheck.d.ts +0 -2
  271. package/dist/domain/domain.typecheck.d.ts.map +0 -1
  272. package/dist/domain/domain.typecheck.js +0 -69
  273. package/dist/domain/domain.typecheck.js.map +0 -1
  274. package/dist/domain/index.d.ts +0 -4
  275. package/dist/domain/index.d.ts.map +0 -1
  276. package/dist/domain/index.js +0 -2
  277. package/dist/domain/index.js.map +0 -1
  278. package/dist/domain/node.d.ts +0 -10
  279. package/dist/domain/node.d.ts.map +0 -1
  280. package/dist/domain/node.js +0 -6
  281. package/dist/domain/node.js.map +0 -1
  282. package/dist/errors/client-error.d.ts.map +0 -1
  283. package/dist/errors/client-error.js.map +0 -1
  284. package/dist/errors/index.d.ts.map +0 -1
  285. package/dist/errors/index.js.map +0 -1
  286. package/dist/errors/miss-error.d.ts.map +0 -1
  287. package/dist/errors/miss-error.js.map +0 -1
  288. package/dist/errors/protocol-error.d.ts.map +0 -1
  289. package/dist/errors/protocol-error.js.map +0 -1
  290. package/dist/errors/response-error.d.ts.map +0 -1
  291. package/dist/errors/response-error.js.map +0 -1
  292. package/dist/errors/stale-route-error.d.ts.map +0 -1
  293. package/dist/errors/stale-route-error.js.map +0 -1
  294. package/dist/errors/transport-error.d.ts.map +0 -1
  295. package/dist/errors/transport-error.js.map +0 -1
  296. package/dist/graph/errors.d.ts.map +0 -1
  297. package/dist/graph/errors.js.map +0 -1
  298. package/dist/graph/graph.d.ts.map +0 -1
  299. package/dist/graph/graph.js.map +0 -1
  300. package/dist/graph/index.d.ts.map +0 -1
  301. package/dist/graph/index.js.map +0 -1
  302. package/dist/graph/mutation.d.ts.map +0 -1
  303. package/dist/graph/mutation.js.map +0 -1
  304. package/dist/graph/page/index.d.ts.map +0 -1
  305. package/dist/graph/page/index.js.map +0 -1
  306. package/dist/graph/page/neighbors.d.ts.map +0 -1
  307. package/dist/graph/page/neighbors.js.map +0 -1
  308. package/dist/graph/page/page.d.ts.map +0 -1
  309. package/dist/graph/page/page.js.map +0 -1
  310. package/dist/graph/page-contract.d.ts.map +0 -1
  311. package/dist/graph/page-contract.js.map +0 -1
  312. package/dist/graph/query.d.ts.map +0 -1
  313. package/dist/graph/query.js.map +0 -1
  314. package/dist/graph/read.d.ts.map +0 -1
  315. package/dist/graph/read.js.map +0 -1
  316. package/dist/index.d.ts.map +0 -1
  317. package/dist/index.js.map +0 -1
  318. package/dist/pacer/batcher/batcher.d.ts.map +0 -1
  319. package/dist/pacer/batcher/batcher.js.map +0 -1
  320. package/dist/pacer/batcher/defaults.d.ts.map +0 -1
  321. package/dist/pacer/batcher/defaults.js.map +0 -1
  322. package/dist/pacer/batcher/index.d.ts.map +0 -1
  323. package/dist/pacer/batcher/index.js.map +0 -1
  324. package/dist/pacer/index.d.ts.map +0 -1
  325. package/dist/pacer/index.js.map +0 -1
  326. package/dist/pacer/limiter/defaults.d.ts.map +0 -1
  327. package/dist/pacer/limiter/defaults.js.map +0 -1
  328. package/dist/pacer/limiter/index.d.ts.map +0 -1
  329. package/dist/pacer/limiter/index.js.map +0 -1
  330. package/dist/pacer/limiter/limiter.d.ts.map +0 -1
  331. package/dist/pacer/limiter/limiter.js.map +0 -1
  332. package/dist/pacer/queue/defaults.d.ts.map +0 -1
  333. package/dist/pacer/queue/defaults.js.map +0 -1
  334. package/dist/pacer/queue/index.d.ts.map +0 -1
  335. package/dist/pacer/queue/index.js.map +0 -1
  336. package/dist/pacer/queue/queue.d.ts.map +0 -1
  337. package/dist/pacer/queue/queue.js.map +0 -1
  338. package/dist/pacer/retry/defaults.d.ts.map +0 -1
  339. package/dist/pacer/retry/defaults.js.map +0 -1
  340. package/dist/pacer/retry/index.d.ts.map +0 -1
  341. package/dist/pacer/retry/index.js.map +0 -1
  342. package/dist/pacer/retry/retry.d.ts.map +0 -1
  343. package/dist/pacer/retry/retry.js.map +0 -1
  344. package/dist/pool/index.d.ts.map +0 -1
  345. package/dist/pool/index.js.map +0 -1
  346. package/dist/pool/pool.d.ts.map +0 -1
  347. package/dist/pool/pool.js.map +0 -1
  348. package/dist/pool/target.d.ts.map +0 -1
  349. package/dist/pool/target.js.map +0 -1
  350. package/dist/schema/admission.d.ts.map +0 -1
  351. package/dist/schema/admission.js.map +0 -1
  352. package/dist/schema/contracts.d.ts.map +0 -1
  353. package/dist/schema/contracts.js.map +0 -1
  354. package/dist/schema/index.d.ts.map +0 -1
  355. package/dist/schema/index.js.map +0 -1
  356. package/dist/schema/introspection.d.ts.map +0 -1
  357. package/dist/schema/introspection.js.map +0 -1
  358. package/dist/schema/operation.d.ts.map +0 -1
  359. package/dist/schema/operation.js.map +0 -1
  360. package/dist/schema/schema.d.ts.map +0 -1
  361. package/dist/schema/schema.js.map +0 -1
  362. package/dist/session/context/control.d.ts.map +0 -1
  363. package/dist/session/context/control.js.map +0 -1
  364. package/dist/session/context/index.d.ts.map +0 -1
  365. package/dist/session/context/index.js.map +0 -1
  366. package/dist/session/context/limits.d.ts.map +0 -1
  367. package/dist/session/context/limits.js.map +0 -1
  368. package/dist/session/context/operation.d.ts.map +0 -1
  369. package/dist/session/context/operation.js.map +0 -1
  370. package/dist/session/context/policy.d.ts.map +0 -1
  371. package/dist/session/context/policy.js.map +0 -1
  372. package/dist/session/discovery/bundle.d.ts.map +0 -1
  373. package/dist/session/discovery/bundle.js.map +0 -1
  374. package/dist/session/discovery/discovery.d.ts.map +0 -1
  375. package/dist/session/discovery/discovery.js.map +0 -1
  376. package/dist/session/discovery/index.d.ts.map +0 -1
  377. package/dist/session/discovery/index.js.map +0 -1
  378. package/dist/session/discovery/publication.d.ts.map +0 -1
  379. package/dist/session/discovery/publication.js.map +0 -1
  380. package/dist/session/discovery/snapshot.d.ts.map +0 -1
  381. package/dist/session/discovery/snapshot.js.map +0 -1
  382. package/dist/session/index.d.ts.map +0 -1
  383. package/dist/session/index.js.map +0 -1
  384. package/dist/session/routing/auth.d.ts.map +0 -1
  385. package/dist/session/routing/auth.js.map +0 -1
  386. package/dist/session/routing/bound.d.ts +0 -7
  387. package/dist/session/routing/bound.d.ts.map +0 -1
  388. package/dist/session/routing/bound.js +0 -2
  389. package/dist/session/routing/bound.js.map +0 -1
  390. package/dist/session/routing/cache.d.ts.map +0 -1
  391. package/dist/session/routing/cache.js.map +0 -1
  392. package/dist/session/routing/dispatch.d.ts.map +0 -1
  393. package/dist/session/routing/dispatch.js.map +0 -1
  394. package/dist/session/routing/envelope.d.ts.map +0 -1
  395. package/dist/session/routing/envelope.js.map +0 -1
  396. package/dist/session/routing/index.d.ts.map +0 -1
  397. package/dist/session/routing/index.js.map +0 -1
  398. package/dist/session/routing/request.d.ts.map +0 -1
  399. package/dist/session/routing/request.js.map +0 -1
  400. package/dist/session/session.d.ts.map +0 -1
  401. package/dist/session/session.js.map +0 -1
  402. package/dist/session/session.typecheck.d.ts.map +0 -1
  403. package/dist/session/session.typecheck.js.map +0 -1
  404. package/dist/session/views/catalog.d.ts.map +0 -1
  405. package/dist/session/views/catalog.js.map +0 -1
  406. package/dist/session/views/index.d.ts.map +0 -1
  407. package/dist/session/views/index.js.map +0 -1
  408. package/dist/session/views/resolve.d.ts.map +0 -1
  409. package/dist/session/views/resolve.js.map +0 -1
  410. package/dist/store/entity-index.d.ts.map +0 -1
  411. package/dist/store/entity-index.js.map +0 -1
  412. package/dist/store/index.d.ts.map +0 -1
  413. package/dist/store/index.js.map +0 -1
  414. package/dist/store/memory.d.ts.map +0 -1
  415. package/dist/store/memory.js.map +0 -1
  416. package/dist/store/mutation.d.ts.map +0 -1
  417. package/dist/store/mutation.js.map +0 -1
  418. package/dist/store/observe.d.ts.map +0 -1
  419. package/dist/store/observe.js.map +0 -1
  420. package/dist/store/optimistic.d.ts.map +0 -1
  421. package/dist/store/optimistic.js.map +0 -1
  422. package/dist/store/query-key.d.ts.map +0 -1
  423. package/dist/store/query-key.js.map +0 -1
  424. package/dist/store/shape.d.ts.map +0 -1
  425. package/dist/store/shape.js.map +0 -1
  426. package/dist/store/store.d.ts.map +0 -1
  427. package/dist/store/store.js.map +0 -1
  428. package/dist/store/store.typecheck.d.ts.map +0 -1
  429. package/dist/store/store.typecheck.js.map +0 -1
  430. package/dist/transport/auto/decision.d.ts.map +0 -1
  431. package/dist/transport/auto/decision.js.map +0 -1
  432. package/dist/transport/auto/fallback.d.ts.map +0 -1
  433. package/dist/transport/auto/fallback.js.map +0 -1
  434. package/dist/transport/auto/index.d.ts.map +0 -1
  435. package/dist/transport/auto/index.js.map +0 -1
  436. package/dist/transport/auto/transport.d.ts.map +0 -1
  437. package/dist/transport/auto/transport.js.map +0 -1
  438. package/dist/transport/auto/warning.d.ts.map +0 -1
  439. package/dist/transport/auto/warning.js.map +0 -1
  440. package/dist/transport/deadline.d.ts.map +0 -1
  441. package/dist/transport/deadline.js.map +0 -1
  442. package/dist/transport/http/index.d.ts.map +0 -1
  443. package/dist/transport/http/index.js.map +0 -1
  444. package/dist/transport/http/response.d.ts.map +0 -1
  445. package/dist/transport/http/response.js.map +0 -1
  446. package/dist/transport/http/stream.d.ts.map +0 -1
  447. package/dist/transport/http/stream.js.map +0 -1
  448. package/dist/transport/http/transport.d.ts.map +0 -1
  449. package/dist/transport/http/transport.js.map +0 -1
  450. package/dist/transport/index.d.ts.map +0 -1
  451. package/dist/transport/index.js.map +0 -1
  452. package/dist/transport/transport.d.ts.map +0 -1
  453. package/dist/transport/transport.js.map +0 -1
  454. package/dist/transport/websocket/connection.d.ts.map +0 -1
  455. package/dist/transport/websocket/connection.js.map +0 -1
  456. package/dist/transport/websocket/exchange.d.ts.map +0 -1
  457. package/dist/transport/websocket/exchange.js.map +0 -1
  458. package/dist/transport/websocket/index.d.ts.map +0 -1
  459. package/dist/transport/websocket/index.js.map +0 -1
  460. package/dist/transport/websocket/transport.d.ts.map +0 -1
  461. package/dist/transport/websocket/transport.js.map +0 -1
@@ -92,4 +92,3 @@ export function edgeIdentity(key) {
92
92
  function signature(value) {
93
93
  return JSON.stringify(value);
94
94
  }
95
- //# sourceMappingURL=entity-index.js.map
@@ -1,2 +1 @@
1
1
  export { GraphStore, type StoreMutationOptions, type StoreOptions, type StoreQuery, type StoreQueryResponse, type StoreReadOptions, type StoreSnapshot, } from './store.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { GraphStore, } from './store.js';
2
- //# sourceMappingURL=index.js.map
@@ -1,4 +1,5 @@
1
1
  import type { QueryAST } from '@astrale-os/kernel-core/graph/query';
2
+ import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
2
3
  import type { QueryPageRequest } from '../graph/index.js';
3
4
  import type { GraphApi } from '../graph/index.js';
4
5
  import type { StoreQueryResponse, StoreReadOptions, StoreSnapshot } from './store.js';
@@ -24,7 +25,7 @@ export declare class GraphMemory {
24
25
  private readonly pending;
25
26
  private active;
26
27
  constructor(options: GraphMemoryOptions);
27
- ensure(key: string, ast: QueryAST, page: QueryPageRequest): QueryShape;
28
+ ensure(key: string, ast: QueryAST, page: QueryPageRequest, expected: readonly DomainDependency[] | undefined): QueryShape;
28
29
  get(key: string): QueryShape | undefined;
29
30
  read(shape: QueryShape, options: StoreReadOptions): Promise<StoreQueryResponse>;
30
31
  snapshot(shape: QueryShape | undefined): StoreSnapshot;
@@ -46,4 +47,3 @@ export declare class GraphMemory {
46
47
  private drain;
47
48
  private report;
48
49
  }
49
- //# sourceMappingURL=memory.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import { encodeEdgeKey } from '@astrale-os/kernel-core/graph/edge';
2
2
  import { ClientError } from '../errors/index.js';
3
+ import { retainDerivedQueryProvenance } from '../graph/provenance.js';
3
4
  import { edgeIdentity, EntityIndex } from './entity-index.js';
4
5
  import { OptimisticOverlay } from './optimistic.js';
5
6
  import { COLD_SNAPSHOT, QueryShape } from './shape.js';
@@ -13,7 +14,7 @@ export class GraphMemory {
13
14
  constructor(options) {
14
15
  this.options = options;
15
16
  }
16
- ensure(key, ast, page) {
17
+ ensure(key, ast, page, expected) {
17
18
  const existing = this.shapes.get(key);
18
19
  const now = this.options.now();
19
20
  if (existing !== undefined) {
@@ -26,7 +27,7 @@ export class GraphMemory {
26
27
  if (this.shapes.size >= this.options.maximumShapes) {
27
28
  throw new ClientError('GraphStore shape capacity is exhausted by observed or in-flight queries.');
28
29
  }
29
- const shape = new QueryShape(key, ast, page, now);
30
+ const shape = new QueryShape(key, ast, page, expected, now);
30
31
  shape.releasedAt = now;
31
32
  this.shapes.set(key, shape);
32
33
  return shape;
@@ -52,7 +53,7 @@ export class GraphMemory {
52
53
  const prior = shape.response;
53
54
  this.publish(shape, prior === undefined ? 'loading' : this.overlay.hasAny() ? 'optimistic' : 'refreshing');
54
55
  const inflight = this.schedule(async () => {
55
- const result = await this.options.graph.query(shape.ast, queryOptions(shape.page, this.options.lifecycle));
56
+ const result = await this.options.graph.query(shape.ast, queryOptions(shape.page, this.options.lifecycle, shape.expected));
56
57
  this.options.requireOpen();
57
58
  const integration = this.entities.integrate(result.result);
58
59
  shape.references = integration.references;
@@ -182,10 +183,11 @@ export class GraphMemory {
182
183
  this.pending.shift()?.reject(error);
183
184
  }
184
185
  materialize(template, references) {
185
- return Object.freeze({
186
+ const response = Object.freeze({
186
187
  result: this.materializeResult(template.result, references),
187
188
  page: template.page,
188
189
  });
190
+ return retainDerivedQueryProvenance(template, response);
189
191
  }
190
192
  materializeResult(template, references) {
191
193
  if (template.kind === 'nodes') {
@@ -196,8 +198,9 @@ export class GraphMemory {
196
198
  continue;
197
199
  }
198
200
  const node = this.overlay.node(projection.value.id, this.entities);
199
- if (node !== undefined)
200
- nodes.push(Object.freeze({ kind: 'value', value: node }));
201
+ if (node !== undefined) {
202
+ nodes.push(Object.freeze({ kind: 'value', value: materializeNode(node) }));
203
+ }
201
204
  }
202
205
  return Object.freeze({
203
206
  kind: 'nodes',
@@ -213,7 +216,7 @@ export class GraphMemory {
213
216
  const value = this.entities.edge(edgeIdentity(item.edge.value));
214
217
  return value === undefined
215
218
  ? undefined
216
- : Object.freeze({ kind: 'value', value });
219
+ : Object.freeze({ kind: 'value', value: materializeEdge(value) });
217
220
  })();
218
221
  const source = item.source.kind === 'reference'
219
222
  ? item.source
@@ -221,7 +224,7 @@ export class GraphMemory {
221
224
  const value = this.overlay.node(item.source.value.id, this.entities);
222
225
  return value === undefined
223
226
  ? undefined
224
- : Object.freeze({ kind: 'value', value });
227
+ : Object.freeze({ kind: 'value', value: materializeNode(value) });
225
228
  })();
226
229
  const target = item.target.kind === 'reference'
227
230
  ? item.target
@@ -229,7 +232,7 @@ export class GraphMemory {
229
232
  const value = this.overlay.node(item.target.value.id, this.entities);
230
233
  return value === undefined
231
234
  ? undefined
232
- : Object.freeze({ kind: 'value', value });
235
+ : Object.freeze({ kind: 'value', value: materializeNode(value) });
233
236
  })();
234
237
  if (edge !== undefined && source !== undefined && target !== undefined) {
235
238
  edges.push(Object.freeze({ edge, source, target }));
@@ -242,11 +245,13 @@ export class GraphMemory {
242
245
  }
243
246
  const nodes = references.nodes
244
247
  .map((id) => this.overlay.node(id, this.entities))
245
- .filter((node) => node !== undefined);
248
+ .filter((node) => node !== undefined)
249
+ .map(materializeNode);
246
250
  const visibleNodeIds = new Set(nodes.map(({ id }) => id));
247
251
  const edges = references.edges
248
252
  .map((key) => this.entities.edge(key))
249
- .filter((edge) => edge !== undefined && visibleNodeIds.has(edge.source) && visibleNodeIds.has(edge.target));
253
+ .filter((edge) => edge !== undefined && visibleNodeIds.has(edge.source) && visibleNodeIds.has(edge.target))
254
+ .map(materializeEdge);
250
255
  const graph = Object.freeze({ nodes: Object.freeze(nodes), edges: Object.freeze(edges) });
251
256
  const selection = materializeSelection(template.selection, visibleNodeIds, edges);
252
257
  return selection.kind === 'node'
@@ -297,6 +302,12 @@ export class GraphMemory {
297
302
  }
298
303
  }
299
304
  }
305
+ function materializeNode(value) {
306
+ return Object.freeze({ ...value });
307
+ }
308
+ function materializeEdge(value) {
309
+ return Object.freeze({ ...value });
310
+ }
300
311
  function materializeSelection(selection, visibleNodes, visibleEdges) {
301
312
  if (selection.kind === 'node') {
302
313
  return Object.freeze({
@@ -310,10 +321,11 @@ function materializeSelection(selection, visibleNodes, visibleEdges) {
310
321
  keys: Object.freeze(selection.keys.filter((key) => edges.has(encodeEdgeKey(key)))),
311
322
  });
312
323
  }
313
- function queryOptions(page, lifecycle) {
324
+ function queryOptions(page, lifecycle, expected) {
314
325
  return Object.freeze({
315
326
  signal: lifecycle,
316
327
  page,
328
+ ...(expected === undefined ? {} : { expected }),
317
329
  });
318
330
  }
319
331
  function observeRead(pending, options, lifecycle) {
@@ -394,4 +406,3 @@ function sameSnapshot(left, right) {
394
406
  }
395
407
  return left.state !== 'failed' || right.state !== 'failed' || left.error === right.error;
396
408
  }
397
- //# sourceMappingURL=memory.js.map
@@ -3,4 +3,3 @@ import type { GraphApi, MutationAuthor } from '../graph/index.js';
3
3
  import type { GraphMemory } from './memory.js';
4
4
  import type { StoreMutationOptions } from './store.js';
5
5
  export declare function mutateStore(graph: GraphApi, memory: GraphMemory, input: MutationAuthor | MutationASTValue | MutationInput, options?: StoreMutationOptions): Promise<MutationResult>;
6
- //# sourceMappingURL=mutation.d.ts.map
@@ -32,4 +32,3 @@ export async function mutateStore(graph, memory, input, options = {}) {
32
32
  throw error;
33
33
  }
34
34
  }
35
- //# sourceMappingURL=mutation.js.map
@@ -1,4 +1,3 @@
1
1
  import type { StoreQuery, StoreReadOptions, StoreSnapshot } from './store.js';
2
2
  import type { GraphStore } from './store.js';
3
3
  export declare function observeStore<Query extends StoreQuery>(store: GraphStore, query: Query, listener: (snapshot: StoreSnapshot<Query>) => void, options: StoreReadOptions): () => void;
4
- //# sourceMappingURL=observe.d.ts.map
@@ -15,4 +15,3 @@ export function observeStore(store, query, listener, options) {
15
15
  void store.read(admitted, options).catch(() => undefined);
16
16
  return unsubscribe;
17
17
  }
18
- //# sourceMappingURL=observe.js.map
@@ -10,4 +10,3 @@ export declare class OptimisticOverlay {
10
10
  node(id: NodeId, entities: EntityIndex): Node | undefined;
11
11
  clear(): void;
12
12
  }
13
- //# sourceMappingURL=optimistic.d.ts.map
@@ -41,4 +41,3 @@ function nodeId(input) {
41
41
  ? path.ast.anchor.id
42
42
  : undefined;
43
43
  }
44
- //# sourceMappingURL=optimistic.js.map
@@ -1,6 +1,6 @@
1
1
  import type { QueryAST as QueryASTValue } from '@astrale-os/kernel-core/graph/query';
2
+ import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
2
3
  import type { QueryPageRequest } from '../graph/index.js';
3
4
  export declare function admitQuery(input: QueryASTValue): QueryASTValue;
4
5
  export declare function admitPage(input: QueryPageRequest): QueryPageRequest;
5
- export declare function queryKey(ast: QueryASTValue, page: QueryPageRequest): string;
6
- //# sourceMappingURL=query-key.d.ts.map
6
+ export declare function queryKey(ast: QueryASTValue, page: QueryPageRequest, expected: readonly DomainDependency[] | undefined): string;
@@ -17,7 +17,11 @@ export function admitPage(input) {
17
17
  ...(input.after === undefined ? {} : { after: input.after }),
18
18
  });
19
19
  }
20
- export function queryKey(ast, page) {
21
- return JSON.stringify([QueryAST.fingerprint(ast), page.size, page.after ?? null]);
20
+ export function queryKey(ast, page, expected) {
21
+ return JSON.stringify([
22
+ QueryAST.fingerprint(ast),
23
+ page.size,
24
+ page.after ?? null,
25
+ expected ?? null,
26
+ ]);
22
27
  }
23
- //# sourceMappingURL=query-key.js.map
@@ -1,5 +1,6 @@
1
1
  import type { NodeId } from '@astrale-os/kernel-core/graph/node';
2
2
  import type { QueryAST } from '@astrale-os/kernel-core/graph/query';
3
+ import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
3
4
  import type { QueryPageRequest } from '../graph/index.js';
4
5
  import type { FactReferences } from './entity-index.js';
5
6
  import type { StoreQueryResponse, StoreSnapshot } from './store.js';
@@ -8,6 +9,7 @@ export declare class QueryShape {
8
9
  readonly key: string;
9
10
  readonly ast: QueryAST;
10
11
  readonly page: QueryPageRequest;
12
+ readonly expected: readonly DomainDependency[] | undefined;
11
13
  readonly listeners: Set<() => void>;
12
14
  state: ShapeState;
13
15
  confirmed?: StoreQueryResponse;
@@ -18,9 +20,8 @@ export declare class QueryShape {
18
20
  accessedAt: number;
19
21
  refreshedAt?: number;
20
22
  snapshot: StoreSnapshot;
21
- constructor(key: string, ast: QueryAST, page: QueryPageRequest, now: number);
23
+ constructor(key: string, ast: QueryAST, page: QueryPageRequest, expected: readonly DomainDependency[] | undefined, now: number);
22
24
  get observed(): boolean;
23
25
  referencesAny(nodes: ReadonlySet<NodeId>, edges: ReadonlySet<string>): boolean;
24
26
  }
25
27
  export declare const COLD_SNAPSHOT: StoreSnapshot;
26
- //# sourceMappingURL=shape.d.ts.map
@@ -2,6 +2,7 @@ export class QueryShape {
2
2
  key;
3
3
  ast;
4
4
  page;
5
+ expected;
5
6
  listeners = new Set();
6
7
  state = 'cold';
7
8
  confirmed;
@@ -12,10 +13,11 @@ export class QueryShape {
12
13
  accessedAt;
13
14
  refreshedAt;
14
15
  snapshot = COLD_SNAPSHOT;
15
- constructor(key, ast, page, now) {
16
+ constructor(key, ast, page, expected, now) {
16
17
  this.key = key;
17
18
  this.ast = ast;
18
19
  this.page = page;
20
+ this.expected = expected;
19
21
  this.accessedAt = now;
20
22
  }
21
23
  get observed() {
@@ -27,4 +29,3 @@ export class QueryShape {
27
29
  }
28
30
  }
29
31
  export const COLD_SNAPSHOT = Object.freeze({ state: 'cold' });
30
- //# sourceMappingURL=shape.js.map
@@ -1,14 +1,13 @@
1
1
  import type { MutationAST, MutationInput, MutationResult } from '@astrale-os/kernel-core/graph/mutate';
2
2
  import type { QueryAST, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
3
3
  import type { QueryResponse } from '../graph/index.js';
4
- import type { GraphApi, GraphQueryOptions, MutationAuthor } from '../graph/index.js';
5
- import type { RequestOptions } from '../transport/index.js';
4
+ import type { GraphApi, GraphMutationOptions, GraphQueryOptions, MutationAuthor } from '../graph/index.js';
6
5
  export type StoreQuery = QueryAST;
7
6
  export type StoreQueryResponse<Query extends StoreQuery = StoreQuery> = QueryResponse<QueryResultFor<Query>>;
8
7
  export interface StoreReadOptions extends GraphQueryOptions {
9
8
  readonly freshness?: 'cached' | 'refresh';
10
9
  }
11
- export interface StoreMutationOptions extends RequestOptions {
10
+ export interface StoreMutationOptions extends GraphMutationOptions {
12
11
  readonly optimistic?: boolean;
13
12
  }
14
13
  export type StoreSnapshot<Query extends StoreQuery = StoreQuery> = {
@@ -66,4 +65,3 @@ export declare class GraphStore {
66
65
  private identity;
67
66
  private requireOpen;
68
67
  }
69
- //# sourceMappingURL=store.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { ClientError } from '../errors/index.js';
2
+ import { captureExpected } from '../graph/expectation.js';
2
3
  import { GraphMemory } from './memory.js';
3
4
  import { mutateStore } from './mutation.js';
4
5
  import { observeStore } from './observe.js';
@@ -105,7 +106,7 @@ export class GraphStore {
105
106
  const identity = this.identity(query, options);
106
107
  return {
107
108
  ...identity,
108
- shape: this.memory.ensure(identity.key, identity.ast, identity.page),
109
+ shape: this.memory.ensure(identity.key, identity.ast, identity.page, identity.expected),
109
110
  options: options,
110
111
  };
111
112
  }
@@ -121,6 +122,7 @@ export class GraphStore {
121
122
  throw new TypeError('Store freshness option is invalid.');
122
123
  }
123
124
  const page = admitPage(options.page);
125
+ const expected = captureExpected(options.expected);
124
126
  if (options.timeoutMs !== undefined &&
125
127
  (!Number.isSafeInteger(options.timeoutMs) ||
126
128
  options.timeoutMs < 1 ||
@@ -128,8 +130,8 @@ export class GraphStore {
128
130
  throw new TypeError('Store read timeoutMs must be a positive platform integer.');
129
131
  }
130
132
  const ast = admitQuery(query);
131
- const key = queryKey(ast, page);
132
- return { key, ast, page };
133
+ const key = queryKey(ast, page, expected);
134
+ return { key, ast, page, expected };
133
135
  }
134
136
  requireOpen() {
135
137
  if (this.closed)
@@ -142,4 +144,3 @@ function positive(input, label) {
142
144
  }
143
145
  return input;
144
146
  }
145
- //# sourceMappingURL=store.js.map
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=store.typecheck.d.ts.map
@@ -1,11 +1,11 @@
1
1
  import { Query } from '../graph/index.js';
2
2
  const options = { page: { size: 32 } };
3
- const nodeGraph = Query.from({ kind: 'node', paths: [path] }).select({ kind: 'graph' });
4
- const nodeProjection = Query.from({ kind: 'node', paths: [path] }).select({
3
+ const nodeGraph = Query.from({ nodes: [path] }).select({ kind: 'graph' });
4
+ const nodeProjection = Query.from({ nodes: [path] }).select({
5
5
  kind: 'nodes',
6
6
  projection: { kind: 'reference' },
7
7
  });
8
- const edgeSource = Query.from({ kind: 'edge', definitions: [edge] });
8
+ const edgeSource = Query.from({ edges: [edge] });
9
9
  const edgeProjection = edgeSource.select({
10
10
  kind: 'edges',
11
11
  projection: { edge: 'reference', source: 'value', target: 'reference' },
@@ -13,9 +13,6 @@ const edgeProjection = edgeSource.select({
13
13
  const read = store.read(nodeGraph, options);
14
14
  const peek = store.peek(nodeProjection, options);
15
15
  const snapshot = store.getSnapshot(edgeProjection, options);
16
- // @ts-expect-error ready is the successful local snapshot state; fresh is retired.
17
- const retiredFreshSnapshot = { state: 'fresh' };
18
- void retiredFreshSnapshot;
19
16
  store.subscribe(nodeGraph, () => undefined, options);
20
17
  store.observe(nodeProjection, (value) => {
21
18
  if ('response' in value && value.response !== undefined) {
@@ -35,7 +32,4 @@ store.subscribe(nodeGraph, () => undefined);
35
32
  store.getSnapshot(nodeGraph);
36
33
  // @ts-expect-error Query-page identity is required for observations.
37
34
  store.observe(nodeGraph, () => undefined);
38
- // @ts-expect-error watch is reserved for a future remote-liveness protocol.
39
- store.watch(nodeGraph, () => undefined, options);
40
35
  void {};
41
- //# sourceMappingURL=store.typecheck.js.map
@@ -20,4 +20,3 @@ export declare class AutoDecision {
20
20
  release(): void;
21
21
  close(): void;
22
22
  }
23
- //# sourceMappingURL=decision.d.ts.map
@@ -46,4 +46,3 @@ export class AutoDecision {
46
46
  this.pending = undefined;
47
47
  }
48
48
  }
49
- //# sourceMappingURL=decision.js.map
@@ -14,4 +14,3 @@ export declare class InvocationBudget {
14
14
  }
15
15
  export declare function mayFallback(error: unknown): error is TransportError;
16
16
  export declare function warningTarget(input: TransportRequest): TransportRequest['call']['target'];
17
- //# sourceMappingURL=fallback.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { TransportError } from '../../errors/index.js';
2
+ import { invocationFailure } from '../failure.js';
2
3
  import { positiveInteger } from '../index.js';
3
4
  const MAXIMUM_TIMEOUT_MS = 2_147_483_647;
4
5
  /** One invocation-owned total timeout budget shared by selection and fallback. */
@@ -33,10 +34,7 @@ export class InvocationBudget {
33
34
  let timer;
34
35
  let abort;
35
36
  const interrupted = new Promise((_resolve, reject) => {
36
- timer = setTimeout(() => reject(new TransportError('Automatic transport decision exceeded its timeout.', {
37
- phase: 'timeout',
38
- delivery: 'not-sent',
39
- })), remaining);
37
+ timer = setTimeout(() => reject(invocationFailure('Automatic transport decision exceeded its timeout.', 'timeout')), remaining);
40
38
  if (this.input?.signal) {
41
39
  abort = () => reject(abortReason(this.input.signal));
42
40
  this.input.signal.addEventListener('abort', abort, { once: true });
@@ -55,16 +53,17 @@ export class InvocationBudget {
55
53
  remaining() {
56
54
  const remaining = Math.min(MAXIMUM_TIMEOUT_MS, this.timeoutMs - (Date.now() - this.started));
57
55
  if (remaining < 1) {
58
- throw new TransportError('Automatic transport invocation exceeded its timeout.', {
59
- phase: 'timeout',
60
- delivery: 'not-sent',
61
- });
56
+ throw invocationFailure('Automatic transport invocation exceeded its timeout.', 'timeout');
62
57
  }
63
58
  return remaining;
64
59
  }
65
60
  }
66
61
  export function mayFallback(error) {
67
- return error instanceof TransportError && error.phase !== 'closed' && error.phase !== 'timeout';
62
+ return (error instanceof TransportError &&
63
+ error.context.kind === 'invocation' &&
64
+ error.context.delivery === 'not-sent' &&
65
+ error.phase !== 'closed' &&
66
+ error.phase !== 'timeout');
68
67
  }
69
68
  export function warningTarget(input) {
70
69
  return input.call.target;
@@ -74,4 +73,3 @@ function abortReason(signal) {
74
73
  ? signal.reason
75
74
  : new Error(signal.reason === undefined ? 'request was cancelled' : String(signal.reason));
76
75
  }
77
- //# sourceMappingURL=fallback.js.map
@@ -1,3 +1,2 @@
1
1
  export { AutoTransport, type AutoTransportOptions } from './transport.js';
2
2
  export { formatClientWarning, type ClientWarning } from './warning.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export { AutoTransport } from './transport.js';
2
2
  export { formatClientWarning } from './warning.js';
3
- //# sourceMappingURL=index.js.map
@@ -35,4 +35,3 @@ export declare class AutoTransport implements Transport {
35
35
  private tryWebsocket;
36
36
  private requireOpen;
37
37
  }
38
- //# sourceMappingURL=transport.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { TransportError } from '../../errors/index.js';
2
+ import { invocationFailure } from '../failure.js';
2
3
  import { HttpTransport } from '../http/index.js';
3
4
  import { positiveInteger } from '../index.js';
4
5
  import { WebSocketTransport } from '../websocket/index.js';
@@ -104,7 +105,9 @@ export class AutoTransport {
104
105
  this.decision.release();
105
106
  throw error;
106
107
  }
107
- if (error instanceof TransportError && error.delivery === 'unknown') {
108
+ if (error instanceof TransportError &&
109
+ error.context.kind === 'invocation' &&
110
+ error.context.delivery === 'unknown') {
108
111
  this.decision.demote();
109
112
  throw error;
110
113
  }
@@ -132,10 +135,6 @@ export class AutoTransport {
132
135
  requireOpen() {
133
136
  if (!this.closed)
134
137
  return;
135
- throw new TransportError('AutoTransport is closed.', {
136
- phase: 'closed',
137
- delivery: 'not-sent',
138
- });
138
+ throw invocationFailure('AutoTransport is closed.', 'closed');
139
139
  }
140
140
  }
141
- //# sourceMappingURL=transport.js.map
@@ -11,4 +11,3 @@ export interface ClientWarning {
11
11
  }
12
12
  export declare function formatClientWarning(warning: ClientWarning): string;
13
13
  export declare function emitWarning(warning: ClientWarning, observer: ((warning: ClientWarning) => void) | undefined): void;
14
- //# sourceMappingURL=warning.d.ts.map
@@ -9,11 +9,13 @@ export function emitWarning(warning, observer) {
9
9
  try {
10
10
  if (observer)
11
11
  observer(warning);
12
- else
13
- globalThis.console?.warn(formatClientWarning(warning));
12
+ else {
13
+ const runtimeConsole = globalThis
14
+ .console;
15
+ runtimeConsole?.warn(formatClientWarning(warning));
16
+ }
14
17
  }
15
18
  catch {
16
19
  // Warning observation cannot change invocation settlement.
17
20
  }
18
21
  }
19
- //# sourceMappingURL=warning.js.map
@@ -9,4 +9,3 @@ export declare function controlledSignal(parent: AbortSignal | undefined, timeou
9
9
  export declare function positiveInteger(input: number, label: string): number;
10
10
  export declare function requireLive(control: ControlledSignal): void;
11
11
  export declare function asError(value: unknown): Error;
12
- //# sourceMappingURL=deadline.d.ts.map
@@ -37,4 +37,3 @@ export function requireLive(control) {
37
37
  export function asError(value) {
38
38
  return value instanceof Error ? value : new Error(String(value));
39
39
  }
40
- //# sourceMappingURL=deadline.js.map
@@ -0,0 +1,7 @@
1
+ import { TransportError, type InvocationTransportErrorOptions } from '../errors/index.js';
2
+ type InvocationFailureEvidence = Omit<InvocationTransportErrorOptions, 'delivery' | 'phase'> & {
3
+ readonly delivery?: InvocationTransportErrorOptions['delivery'];
4
+ };
5
+ /** Create invocation transport evidence with the common not-sent default. */
6
+ export declare function invocationFailure(message: string, phase: InvocationTransportErrorOptions['phase'], evidence?: InvocationFailureEvidence): TransportError;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ import { TransportError } from '../errors/index.js';
2
+ /** Create invocation transport evidence with the common not-sent default. */
3
+ export function invocationFailure(message, phase, evidence = {}) {
4
+ return TransportError.invocation(message, {
5
+ ...evidence,
6
+ phase,
7
+ delivery: evidence.delivery ?? 'not-sent',
8
+ });
9
+ }
@@ -0,0 +1,17 @@
1
+ import type { ControlledSignal } from '../index.js';
2
+ /** Single-consumer HTTP byte stream preserving invocation lifetime and backpressure. */
3
+ export declare class HttpByteStream implements AsyncIterable<Uint8Array> {
4
+ private readonly maximumBytes;
5
+ private readonly control;
6
+ private readonly reader;
7
+ private claimed;
8
+ private terminal;
9
+ private bytes;
10
+ private interruption;
11
+ constructor(body: ReadableStream<Uint8Array>, maximumBytes: number, control: ControlledSignal);
12
+ [Symbol.asyncIterator](): AsyncIterator<Uint8Array>;
13
+ cancel(reason?: unknown): Promise<void>;
14
+ private next;
15
+ private interrupt;
16
+ private cancelReader;
17
+ }
@@ -0,0 +1,86 @@
1
+ import { ProtocolError } from '../../errors/index.js';
2
+ import { asError } from '../index.js';
3
+ /** Single-consumer HTTP byte stream preserving invocation lifetime and backpressure. */
4
+ export class HttpByteStream {
5
+ maximumBytes;
6
+ control;
7
+ reader;
8
+ claimed = false;
9
+ terminal = false;
10
+ bytes = 0;
11
+ interruption;
12
+ constructor(body, maximumBytes, control) {
13
+ this.maximumBytes = maximumBytes;
14
+ this.control = control;
15
+ this.reader = body.getReader();
16
+ const abort = () => void this.interrupt(control.signal.reason);
17
+ if (control.signal.aborted)
18
+ abort();
19
+ else
20
+ control.signal.addEventListener('abort', abort, { once: true });
21
+ }
22
+ [Symbol.asyncIterator]() {
23
+ if (this.claimed)
24
+ throw new TypeError('streaming binary admits exactly one consumer.');
25
+ this.claimed = true;
26
+ return {
27
+ next: () => this.next(),
28
+ return: async () => {
29
+ await this.cancel('streaming binary consumer stopped');
30
+ return { done: true, value: undefined };
31
+ },
32
+ throw: async (error) => {
33
+ await this.cancel('streaming binary consumer failed');
34
+ throw error;
35
+ },
36
+ };
37
+ }
38
+ async cancel(reason = 'streaming binary cancelled') {
39
+ if (this.terminal)
40
+ return;
41
+ this.terminal = true;
42
+ this.control.cancel(reason);
43
+ await this.cancelReader(reason);
44
+ this.control.close();
45
+ }
46
+ async next() {
47
+ if (this.interruption !== undefined)
48
+ throw this.interruption;
49
+ if (this.terminal)
50
+ return { done: true, value: undefined };
51
+ try {
52
+ const next = await this.reader.read();
53
+ if (this.interruption !== undefined)
54
+ throw this.interruption;
55
+ if (next.done) {
56
+ this.terminal = true;
57
+ this.control.close();
58
+ return { done: true, value: undefined };
59
+ }
60
+ this.bytes += next.value.byteLength;
61
+ if (this.bytes > this.maximumBytes) {
62
+ throw new ProtocolError(`streaming binary exceeds maximumResponseBytes (${this.maximumBytes}).`);
63
+ }
64
+ return { done: false, value: new Uint8Array(next.value) };
65
+ }
66
+ catch (error) {
67
+ await this.cancel(error);
68
+ throw error;
69
+ }
70
+ }
71
+ async interrupt(reason) {
72
+ if (this.terminal || this.interruption !== undefined)
73
+ return;
74
+ this.interruption = asError(reason ?? new Error('streaming binary was cancelled.'));
75
+ await this.cancelReader(this.interruption);
76
+ this.control.close();
77
+ }
78
+ async cancelReader(reason) {
79
+ try {
80
+ await this.reader.cancel(reason);
81
+ }
82
+ catch {
83
+ // Cancellation follows an already chosen terminal outcome.
84
+ }
85
+ }
86
+ }