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

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,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
+ }
@@ -1,2 +1 @@
1
1
  export { HttpTransport, type Fetch, type HttpTransportOptions } from './transport.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { HttpTransport } from './transport.js';
2
- //# sourceMappingURL=index.js.map
@@ -6,4 +6,3 @@ export declare function requireId(expected: protocol.RequestId, received: protoc
6
6
  export declare function decodeProtocol<T>(label: string, decode: () => T): T;
7
7
  export declare function normalizeMediaType(input: string | null): string | undefined;
8
8
  export declare function binaryHeaders(input: Headers, names: readonly string[]): Readonly<Record<string, string>>;
9
- //# sourceMappingURL=response.d.ts.map
@@ -77,4 +77,3 @@ export function binaryHeaders(input, names) {
77
77
  }
78
78
  return Object.freeze(output);
79
79
  }
80
- //# sourceMappingURL=response.js.map
@@ -24,4 +24,3 @@ export declare class HttpStream implements Stream {
24
24
  private stop;
25
25
  private abortFailure;
26
26
  }
27
- //# sourceMappingURL=stream.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import * as protocol from '@astrale-os/kernel-protocol/invocation';
2
2
  import { ProtocolError, ResponseError, TransportError } from '../../errors/index.js';
3
+ import { invocationFailure } from '../failure.js';
3
4
  import { asError } from '../index.js';
4
5
  import { decodeProtocol, requireId } from './response.js';
5
6
  export class HttpStream {
@@ -124,9 +125,8 @@ export class HttpStream {
124
125
  }
125
126
  abortFailure(reason) {
126
127
  if (this.control.timedOut) {
127
- return new TransportError('stream exceeded its invocation timeout.', {
128
+ return invocationFailure('stream exceeded its invocation timeout.', 'timeout', {
128
129
  cause: asError(reason),
129
- phase: 'timeout',
130
130
  delivery: 'unknown',
131
131
  invocation: this.invocation,
132
132
  });
@@ -138,11 +138,12 @@ function retainInvocationId(input, invocation) {
138
138
  if (input instanceof ProtocolError && input.invocation === undefined) {
139
139
  return new ProtocolError(input.message, { cause: input, invocation });
140
140
  }
141
- if (input instanceof TransportError && input.invocation === undefined) {
142
- return new TransportError(input.message, {
141
+ if (input instanceof TransportError &&
142
+ input.context.kind === 'invocation' &&
143
+ input.context.invocation === undefined) {
144
+ return invocationFailure(input.message, input.phase, {
143
145
  cause: input,
144
- phase: input.phase,
145
- delivery: input.delivery,
146
+ delivery: input.context.delivery,
146
147
  invocation,
147
148
  });
148
149
  }
@@ -211,4 +212,3 @@ class LengthPrefixedFrames {
211
212
  return output;
212
213
  }
213
214
  }
214
- //# sourceMappingURL=stream.js.map
@@ -30,4 +30,3 @@ export declare class HttpTransport implements Transport {
30
30
  private nextRequestId;
31
31
  private requestCodec;
32
32
  }
33
- //# sourceMappingURL=transport.d.ts.map
@@ -1,7 +1,9 @@
1
1
  import * as codecs from '@astrale-os/kernel-protocol/codecs';
2
2
  import * as protocol from '@astrale-os/kernel-protocol/invocation';
3
3
  import { ProtocolError, ResponseError, TransportError } from '../../errors/index.js';
4
+ import { invocationFailure } from '../failure.js';
4
5
  import { asError, controlledSignal, positiveInteger, requireLive, } from '../index.js';
6
+ import { HttpByteStream } from './byte-stream.js';
5
7
  import { binaryHeaders, codecForResponse, decodeProtocol, normalizeMediaType, readBoundedBody, requireId, } from './response.js';
6
8
  import { HttpStream } from './stream.js';
7
9
  const DEFAULT_TIMEOUT_MS = 30_000;
@@ -49,7 +51,7 @@ export class HttpTransport {
49
51
  try {
50
52
  requireLive(control);
51
53
  if (encodedByteLength(encoded) > this.maximumRequestBytes) {
52
- throw new TransportError(`request exceeds maximumRequestBytes (${this.maximumRequestBytes}).`, { phase: 'send', delivery: 'not-sent' });
54
+ throw invocationFailure(`request exceeds maximumRequestBytes (${this.maximumRequestBytes}).`, 'send');
53
55
  }
54
56
  phase = 'send';
55
57
  delivery = 'unknown';
@@ -59,12 +61,17 @@ export class HttpTransport {
59
61
  if (response.status >= 300 && response.status < 400) {
60
62
  throw new ProtocolError('server returned a network redirect.');
61
63
  }
62
- requireNoStore(response);
63
64
  const streamFraming = response.headers.get(protocol.http.STREAM_FRAMING_FIELD);
64
65
  const binaryId = response.headers.get(protocol.http.REQUEST_ID_FIELD);
65
66
  const binaryManifest = response.headers.get(protocol.http.BINARY_HEADERS_FIELD);
67
+ const binaryDelivery = response.headers.get(protocol.http.BINARY_DELIVERY_FIELD);
66
68
  const hasStreamSignal = streamFraming !== null;
67
- const hasBinarySignal = binaryId !== null || binaryManifest !== null;
69
+ const hasBinarySignal = binaryId !== null || binaryManifest !== null || binaryDelivery !== null;
70
+ const responseCodec = await codecForResponse(response.headers.get('content-type'));
71
+ if (!response.ok && responseCodec === undefined && !hasStreamSignal && !hasBinarySignal) {
72
+ throw invocationFailure(`server returned HTTP ${response.status} without an invocation response.`, 'receive', { delivery: 'unknown' });
73
+ }
74
+ requireNoStore(response);
68
75
  if (hasStreamSignal && hasBinarySignal) {
69
76
  throw new ProtocolError('server returned conflicting stream and binary response signals.');
70
77
  }
@@ -72,9 +79,14 @@ export class HttpTransport {
72
79
  if (binaryId === null || binaryManifest === null) {
73
80
  throw new ProtocolError('server returned an incomplete binary response signal.');
74
81
  }
75
- return await this.decodeBinary(response, requestId, binaryId, control);
82
+ if (binaryDelivery !== null && binaryDelivery !== protocol.http.STREAMING_BINARY_DELIVERY) {
83
+ throw new ProtocolError('server returned an unsupported binary delivery signal.');
84
+ }
85
+ const binary = await this.decodeBinary(response, requestId, binaryId, binaryDelivery !== null, control);
86
+ if (!(binary.value.body instanceof Uint8Array))
87
+ handedOff = true;
88
+ return binary;
76
89
  }
77
- const responseCodec = await codecForResponse(response.headers.get('content-type'));
78
90
  if (responseCodec === undefined) {
79
91
  throw new ProtocolError(`server returned unsupported Content-Type ${JSON.stringify(response.headers.get('content-type'))}.`);
80
92
  }
@@ -132,9 +144,9 @@ export class HttpTransport {
132
144
  }
133
145
  }
134
146
  async fetchResponse(codec, encoded, trace, control) {
135
- return this.fetchImpl(this.url, {
147
+ const init = {
136
148
  method: 'POST',
137
- redirect: 'error',
149
+ redirect: 'manual',
138
150
  credentials: 'omit',
139
151
  cache: 'no-store',
140
152
  referrerPolicy: 'no-referrer',
@@ -146,12 +158,10 @@ export class HttpTransport {
146
158
  },
147
159
  body: toBody(encoded),
148
160
  signal: control.signal,
149
- });
161
+ };
162
+ return this.fetchImpl(this.url, init);
150
163
  }
151
- async decodeBinary(response, requestId, binaryId, control) {
152
- if (!response.ok) {
153
- throw new ProtocolError('server returned binary data with an error status.');
154
- }
164
+ async decodeBinary(response, requestId, binaryId, streaming, control) {
155
165
  if (binaryId !== String(requestId)) {
156
166
  throw new ProtocolError(`binary response requestId ${JSON.stringify(binaryId)} does not match request requestId ${requestId}.`);
157
167
  }
@@ -159,17 +169,33 @@ export class HttpTransport {
159
169
  if (mediaType === undefined) {
160
170
  throw new ProtocolError('binary response has no media type.');
161
171
  }
162
- const body = await readBoundedBody(response, this.maximumResponseBytes, control.signal);
163
- requireLive(control);
164
172
  const headerNames = decodeProtocol('binary application-header manifest', () => protocol.http.decodeBinaryHeaderNames(response.headers.get(protocol.http.BINARY_HEADERS_FIELD)));
165
173
  const headers = binaryHeaders(response.headers, headerNames);
166
174
  const invocation = decodeProtocol('binary InvocationId field', () => protocol.http.decodeInvocationId(response.headers.get(protocol.http.INVOCATION_FIELD)));
175
+ if (streaming) {
176
+ if (response.body === null)
177
+ throw new ProtocolError('streaming binary has no body.');
178
+ requireLive(control);
179
+ return {
180
+ kind: 'binary',
181
+ invocation,
182
+ value: {
183
+ body: new HttpByteStream(response.body, this.maximumResponseBytes, control),
184
+ mediaType,
185
+ ...(response.status === 200 ? {} : { status: response.status }),
186
+ ...(Object.keys(headers).length === 0 ? {} : { headers }),
187
+ },
188
+ };
189
+ }
190
+ const body = await readBoundedBody(response, this.maximumResponseBytes, control.signal);
191
+ requireLive(control);
167
192
  const binary = decodeProtocol('binary response', () => protocol.decodeBinaryResponse({
168
193
  kind: 'binary',
169
194
  requestId,
170
195
  invocation,
171
196
  body,
172
197
  mediaType,
198
+ status: response.status,
173
199
  ...(Object.keys(headers).length === 0 ? {} : { headers }),
174
200
  }));
175
201
  requireLive(control);
@@ -179,6 +205,7 @@ export class HttpTransport {
179
205
  value: {
180
206
  body: binary.body,
181
207
  mediaType: binary.mediaType,
208
+ ...(binary.status === 200 ? {} : { status: binary.status }),
182
209
  ...(binary.headers === undefined ? {} : { headers: binary.headers }),
183
210
  },
184
211
  };
@@ -265,9 +292,8 @@ function transportFailure(input, control, parent, timeoutMs, url, phase, deliver
265
292
  if (input instanceof ResponseError || input instanceof ProtocolError)
266
293
  return input;
267
294
  if (control.timedOut) {
268
- return new TransportError(`request timed out after ${timeoutMs}ms.`, {
295
+ return invocationFailure(`request timed out after ${timeoutMs}ms.`, 'timeout', {
269
296
  cause: asError(input),
270
- phase: 'timeout',
271
297
  delivery,
272
298
  });
273
299
  }
@@ -275,9 +301,8 @@ function transportFailure(input, control, parent, timeoutMs, url, phase, deliver
275
301
  return asError(parent.reason ?? input);
276
302
  return input instanceof TransportError
277
303
  ? input
278
- : new TransportError(`Failed to communicate with the server at ${url}.`, {
304
+ : invocationFailure(`Failed to communicate with the server at ${url}.`, phase, {
279
305
  cause: asError(input),
280
- phase,
281
306
  delivery,
282
307
  });
283
308
  }
@@ -342,4 +367,3 @@ function hasControlCharacter(input) {
342
367
  }
343
368
  return false;
344
369
  }
345
- //# sourceMappingURL=transport.js.map
@@ -1,3 +1,2 @@
1
1
  export type { RequestOptions, MissControl, StaleControl, Transport, TransportRequest, TransportResult, } from './transport.js';
2
2
  export { asError, controlledSignal, positiveInteger, requireLive, type ControlledSignal, } from './deadline.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { asError, controlledSignal, positiveInteger, requireLive, } from './deadline.js';
2
- //# sourceMappingURL=index.js.map
@@ -32,4 +32,3 @@ export interface Transport {
32
32
  /** Optional owned-resource shutdown used by Client.close(). */
33
33
  readonly close?: () => void;
34
34
  }
35
- //# sourceMappingURL=transport.d.ts.map
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=transport.js.map
@@ -36,4 +36,3 @@ export declare class WebSocketConnection implements ExchangeOwner {
36
36
  private onMessage;
37
37
  private onFailure;
38
38
  }
39
- //# sourceMappingURL=connection.d.ts.map