@astrale-os/kernel-server 0.4.17 → 0.5.0-beta.1

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 (305) hide show
  1. package/dist/capture.d.ts +3 -0
  2. package/dist/capture.d.ts.map +1 -0
  3. package/dist/capture.js +10 -0
  4. package/dist/capture.js.map +1 -0
  5. package/dist/cors/cors.d.ts +22 -0
  6. package/dist/cors/cors.d.ts.map +1 -0
  7. package/dist/cors/cors.js +136 -0
  8. package/dist/cors/cors.js.map +1 -0
  9. package/dist/cors/index.d.ts +3 -0
  10. package/dist/cors/index.d.ts.map +1 -0
  11. package/dist/cors/index.js +2 -0
  12. package/dist/cors/index.js.map +1 -0
  13. package/dist/cors/types.d.ts +12 -0
  14. package/dist/cors/types.d.ts.map +1 -0
  15. package/dist/cors/types.js +2 -0
  16. package/dist/cors/types.js.map +1 -0
  17. package/dist/errors/availability.d.ts +11 -0
  18. package/dist/errors/availability.d.ts.map +1 -0
  19. package/dist/errors/availability.js +15 -0
  20. package/dist/errors/availability.js.map +1 -0
  21. package/dist/errors/classify.d.ts +4 -0
  22. package/dist/errors/classify.d.ts.map +1 -0
  23. package/dist/errors/classify.js +254 -0
  24. package/dist/errors/classify.js.map +1 -0
  25. package/dist/errors/index.d.ts +5 -0
  26. package/dist/errors/index.d.ts.map +1 -0
  27. package/dist/errors/index.js +5 -0
  28. package/dist/errors/index.js.map +1 -0
  29. package/dist/errors/request-body.d.ts +8 -0
  30. package/dist/errors/request-body.d.ts.map +1 -0
  31. package/dist/errors/request-body.js +15 -0
  32. package/dist/errors/request-body.js.map +1 -0
  33. package/dist/errors/response-body.d.ts +5 -0
  34. package/dist/errors/response-body.d.ts.map +1 -0
  35. package/dist/errors/response-body.js +9 -0
  36. package/dist/errors/response-body.js.map +1 -0
  37. package/dist/index.d.ts +4 -11
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +3 -18
  40. package/dist/index.js.map +1 -1
  41. package/dist/installation/handler.d.ts +10 -0
  42. package/dist/installation/handler.d.ts.map +1 -0
  43. package/dist/installation/handler.js +126 -0
  44. package/dist/installation/handler.js.map +1 -0
  45. package/dist/installation/index.d.ts +3 -0
  46. package/dist/installation/index.d.ts.map +1 -0
  47. package/dist/installation/index.js +2 -0
  48. package/dist/installation/index.js.map +1 -0
  49. package/dist/installation/types.d.ts +12 -0
  50. package/dist/installation/types.d.ts.map +1 -0
  51. package/dist/installation/types.js +2 -0
  52. package/dist/installation/types.js.map +1 -0
  53. package/dist/invocation/context.d.ts +7 -0
  54. package/dist/invocation/context.d.ts.map +1 -0
  55. package/dist/invocation/context.js +62 -0
  56. package/dist/invocation/context.js.map +1 -0
  57. package/dist/invocation/index.d.ts +2 -2
  58. package/dist/invocation/index.d.ts.map +1 -1
  59. package/dist/invocation/index.js +1 -2
  60. package/dist/invocation/index.js.map +1 -1
  61. package/dist/invocation/types.d.ts +34 -0
  62. package/dist/invocation/types.d.ts.map +1 -0
  63. package/dist/invocation/types.js +2 -0
  64. package/dist/invocation/types.js.map +1 -0
  65. package/dist/issuer/index.d.ts +3 -0
  66. package/dist/issuer/index.d.ts.map +1 -0
  67. package/dist/issuer/index.js +2 -0
  68. package/dist/issuer/index.js.map +1 -0
  69. package/dist/issuer/routes.d.ts +13 -0
  70. package/dist/issuer/routes.d.ts.map +1 -0
  71. package/dist/issuer/routes.js +138 -0
  72. package/dist/issuer/routes.js.map +1 -0
  73. package/dist/issuer/types.d.ts +11 -0
  74. package/dist/issuer/types.d.ts.map +1 -0
  75. package/dist/issuer/types.js +2 -0
  76. package/dist/issuer/types.js.map +1 -0
  77. package/dist/lifecycle/active.d.ts +40 -0
  78. package/dist/lifecycle/active.d.ts.map +1 -0
  79. package/dist/lifecycle/active.js +200 -0
  80. package/dist/lifecycle/active.js.map +1 -0
  81. package/dist/lifecycle/index.d.ts +2 -0
  82. package/dist/lifecycle/index.d.ts.map +1 -0
  83. package/dist/lifecycle/index.js +2 -0
  84. package/dist/lifecycle/index.js.map +1 -0
  85. package/dist/publication/index.d.ts +3 -0
  86. package/dist/publication/index.d.ts.map +1 -0
  87. package/dist/publication/index.js +2 -0
  88. package/dist/publication/index.js.map +1 -0
  89. package/dist/publication/snapshot.d.ts +14 -0
  90. package/dist/publication/snapshot.d.ts.map +1 -0
  91. package/dist/publication/snapshot.js +30 -0
  92. package/dist/publication/snapshot.js.map +1 -0
  93. package/dist/publication/types.d.ts +19 -0
  94. package/dist/publication/types.d.ts.map +1 -0
  95. package/dist/publication/types.js +2 -0
  96. package/dist/publication/types.js.map +1 -0
  97. package/dist/routes/index.d.ts +2 -0
  98. package/dist/routes/index.d.ts.map +1 -0
  99. package/dist/routes/index.js +2 -0
  100. package/dist/routes/index.js.map +1 -0
  101. package/dist/routes/routes.d.ts +24 -0
  102. package/dist/routes/routes.d.ts.map +1 -0
  103. package/dist/routes/routes.js +438 -0
  104. package/dist/routes/routes.js.map +1 -0
  105. package/dist/server.d.ts +5 -0
  106. package/dist/server.d.ts.map +1 -0
  107. package/dist/server.js +226 -0
  108. package/dist/server.js.map +1 -0
  109. package/dist/transport/body.d.ts +5 -0
  110. package/dist/transport/body.d.ts.map +1 -0
  111. package/dist/transport/body.js +51 -0
  112. package/dist/transport/body.js.map +1 -0
  113. package/dist/transport/codecs.d.ts +5 -0
  114. package/dist/transport/codecs.d.ts.map +1 -0
  115. package/dist/transport/codecs.js +6 -0
  116. package/dist/transport/codecs.js.map +1 -0
  117. package/dist/transport/credential.d.ts +11 -0
  118. package/dist/transport/credential.d.ts.map +1 -0
  119. package/dist/transport/credential.js +29 -0
  120. package/dist/transport/credential.js.map +1 -0
  121. package/dist/transport/http/handler.d.ts +16 -0
  122. package/dist/transport/http/handler.d.ts.map +1 -0
  123. package/dist/transport/http/handler.js +170 -0
  124. package/dist/transport/http/handler.js.map +1 -0
  125. package/dist/transport/http/index.d.ts +3 -0
  126. package/dist/transport/http/index.d.ts.map +1 -0
  127. package/dist/transport/http/index.js +3 -0
  128. package/dist/transport/http/index.js.map +1 -0
  129. package/dist/transport/http/render.d.ts +29 -0
  130. package/dist/transport/http/render.d.ts.map +1 -0
  131. package/dist/transport/http/render.js +277 -0
  132. package/dist/transport/http/render.js.map +1 -0
  133. package/dist/transport/index.d.ts +10 -0
  134. package/dist/transport/index.d.ts.map +1 -0
  135. package/dist/transport/index.js +9 -0
  136. package/dist/transport/index.js.map +1 -0
  137. package/dist/transport/router.d.ts +5 -0
  138. package/dist/transport/router.d.ts.map +1 -0
  139. package/dist/transport/router.js +5 -0
  140. package/dist/transport/router.js.map +1 -0
  141. package/dist/transport/stream-error.d.ts +4 -0
  142. package/dist/transport/stream-error.d.ts.map +1 -0
  143. package/dist/transport/stream-error.js +14 -0
  144. package/dist/transport/stream-error.js.map +1 -0
  145. package/dist/transport/types.d.ts +29 -0
  146. package/dist/transport/types.d.ts.map +1 -0
  147. package/dist/transport/types.js +2 -0
  148. package/dist/transport/types.js.map +1 -0
  149. package/dist/transport/websocket/index.d.ts +3 -0
  150. package/dist/transport/websocket/index.d.ts.map +1 -0
  151. package/dist/transport/websocket/index.js +3 -0
  152. package/dist/transport/websocket/index.js.map +1 -0
  153. package/dist/transport/websocket/session.d.ts +19 -0
  154. package/dist/transport/websocket/session.d.ts.map +1 -0
  155. package/dist/transport/websocket/session.js +328 -0
  156. package/dist/transport/websocket/session.js.map +1 -0
  157. package/dist/transport/websocket/upgrade.d.ts +19 -0
  158. package/dist/transport/websocket/upgrade.d.ts.map +1 -0
  159. package/dist/transport/websocket/upgrade.js +46 -0
  160. package/dist/transport/websocket/upgrade.js.map +1 -0
  161. package/dist/types.d.ts +62 -0
  162. package/dist/types.d.ts.map +1 -0
  163. package/dist/types.js +2 -0
  164. package/dist/types.js.map +1 -0
  165. package/package.json +9 -11
  166. package/dist/app/create.d.ts +0 -48
  167. package/dist/app/create.d.ts.map +0 -1
  168. package/dist/app/create.js +0 -108
  169. package/dist/app/create.js.map +0 -1
  170. package/dist/app/index.d.ts +0 -4
  171. package/dist/app/index.d.ts.map +0 -1
  172. package/dist/app/index.js +0 -4
  173. package/dist/app/index.js.map +0 -1
  174. package/dist/app/multiplexed.d.ts +0 -53
  175. package/dist/app/multiplexed.d.ts.map +0 -1
  176. package/dist/app/multiplexed.js +0 -64
  177. package/dist/app/multiplexed.js.map +0 -1
  178. package/dist/app/ws-upgrade.d.ts +0 -34
  179. package/dist/app/ws-upgrade.d.ts.map +0 -1
  180. package/dist/app/ws-upgrade.js +0 -94
  181. package/dist/app/ws-upgrade.js.map +0 -1
  182. package/dist/capabilities/contract.d.ts +0 -8
  183. package/dist/capabilities/contract.d.ts.map +0 -1
  184. package/dist/capabilities/contract.js +0 -2
  185. package/dist/capabilities/contract.js.map +0 -1
  186. package/dist/capabilities/defer.d.ts +0 -4
  187. package/dist/capabilities/defer.d.ts.map +0 -1
  188. package/dist/capabilities/defer.js +0 -2
  189. package/dist/capabilities/defer.js.map +0 -1
  190. package/dist/capabilities/hono.d.ts +0 -8
  191. package/dist/capabilities/hono.d.ts.map +0 -1
  192. package/dist/capabilities/hono.js +0 -13
  193. package/dist/capabilities/hono.js.map +0 -1
  194. package/dist/capabilities/index.d.ts +0 -6
  195. package/dist/capabilities/index.d.ts.map +0 -1
  196. package/dist/capabilities/index.js +0 -3
  197. package/dist/capabilities/index.js.map +0 -1
  198. package/dist/capabilities/lifecycle.d.ts +0 -17
  199. package/dist/capabilities/lifecycle.d.ts.map +0 -1
  200. package/dist/capabilities/lifecycle.js +0 -37
  201. package/dist/capabilities/lifecycle.js.map +0 -1
  202. package/dist/capabilities/sleep.d.ts +0 -4
  203. package/dist/capabilities/sleep.d.ts.map +0 -1
  204. package/dist/capabilities/sleep.js +0 -8
  205. package/dist/capabilities/sleep.js.map +0 -1
  206. package/dist/cors.d.ts +0 -21
  207. package/dist/cors.d.ts.map +0 -1
  208. package/dist/cors.js +0 -17
  209. package/dist/cors.js.map +0 -1
  210. package/dist/envelope/batch.d.ts +0 -13
  211. package/dist/envelope/batch.d.ts.map +0 -1
  212. package/dist/envelope/batch.js +0 -96
  213. package/dist/envelope/batch.js.map +0 -1
  214. package/dist/envelope/codec.d.ts +0 -26
  215. package/dist/envelope/codec.d.ts.map +0 -1
  216. package/dist/envelope/codec.js +0 -52
  217. package/dist/envelope/codec.js.map +0 -1
  218. package/dist/envelope/credential.d.ts +0 -20
  219. package/dist/envelope/credential.d.ts.map +0 -1
  220. package/dist/envelope/credential.js +0 -32
  221. package/dist/envelope/credential.js.map +0 -1
  222. package/dist/envelope/http.d.ts +0 -31
  223. package/dist/envelope/http.d.ts.map +0 -1
  224. package/dist/envelope/http.js +0 -132
  225. package/dist/envelope/http.js.map +0 -1
  226. package/dist/envelope/sse.d.ts +0 -11
  227. package/dist/envelope/sse.d.ts.map +0 -1
  228. package/dist/envelope/sse.js +0 -73
  229. package/dist/envelope/sse.js.map +0 -1
  230. package/dist/envelope/ws.d.ts +0 -35
  231. package/dist/envelope/ws.d.ts.map +0 -1
  232. package/dist/envelope/ws.js +0 -142
  233. package/dist/envelope/ws.js.map +0 -1
  234. package/dist/invocation/dispatch.d.ts +0 -32
  235. package/dist/invocation/dispatch.d.ts.map +0 -1
  236. package/dist/invocation/dispatch.js +0 -68
  237. package/dist/invocation/dispatch.js.map +0 -1
  238. package/dist/invocation/dispatcher.d.ts +0 -19
  239. package/dist/invocation/dispatcher.d.ts.map +0 -1
  240. package/dist/invocation/dispatcher.js +0 -9
  241. package/dist/invocation/dispatcher.js.map +0 -1
  242. package/dist/jwks/discovery.d.ts +0 -40
  243. package/dist/jwks/discovery.d.ts.map +0 -1
  244. package/dist/jwks/discovery.js +0 -113
  245. package/dist/jwks/discovery.js.map +0 -1
  246. package/dist/jwks/index.d.ts +0 -3
  247. package/dist/jwks/index.d.ts.map +0 -1
  248. package/dist/jwks/index.js +0 -3
  249. package/dist/jwks/index.js.map +0 -1
  250. package/dist/jwks/issuers.d.ts +0 -47
  251. package/dist/jwks/issuers.d.ts.map +0 -1
  252. package/dist/jwks/issuers.js +0 -76
  253. package/dist/jwks/issuers.js.map +0 -1
  254. package/dist/jwks/keys.d.ts +0 -44
  255. package/dist/jwks/keys.d.ts.map +0 -1
  256. package/dist/jwks/keys.js +0 -56
  257. package/dist/jwks/keys.js.map +0 -1
  258. package/dist/plan/host-params.d.ts +0 -13
  259. package/dist/plan/host-params.d.ts.map +0 -1
  260. package/dist/plan/host-params.js +0 -23
  261. package/dist/plan/host-params.js.map +0 -1
  262. package/dist/plan/host.d.ts +0 -24
  263. package/dist/plan/host.d.ts.map +0 -1
  264. package/dist/plan/host.js +0 -24
  265. package/dist/plan/host.js.map +0 -1
  266. package/dist/plan/index.d.ts +0 -4
  267. package/dist/plan/index.d.ts.map +0 -1
  268. package/dist/plan/index.js +0 -4
  269. package/dist/plan/index.js.map +0 -1
  270. package/dist/plan/walk.d.ts +0 -51
  271. package/dist/plan/walk.d.ts.map +0 -1
  272. package/dist/plan/walk.js +0 -110
  273. package/dist/plan/walk.js.map +0 -1
  274. package/dist/render/binary.d.ts +0 -19
  275. package/dist/render/binary.d.ts.map +0 -1
  276. package/dist/render/binary.js +0 -33
  277. package/dist/render/binary.js.map +0 -1
  278. package/dist/render/body.d.ts +0 -10
  279. package/dist/render/body.d.ts.map +0 -1
  280. package/dist/render/body.js +0 -17
  281. package/dist/render/body.js.map +0 -1
  282. package/dist/render/index.d.ts +0 -3
  283. package/dist/render/index.d.ts.map +0 -1
  284. package/dist/render/index.js +0 -3
  285. package/dist/render/index.js.map +0 -1
  286. package/dist/routed/credential.d.ts +0 -10
  287. package/dist/routed/credential.d.ts.map +0 -1
  288. package/dist/routed/credential.js +0 -55
  289. package/dist/routed/credential.js.map +0 -1
  290. package/dist/routed/handler.d.ts +0 -38
  291. package/dist/routed/handler.d.ts.map +0 -1
  292. package/dist/routed/handler.js +0 -123
  293. package/dist/routed/handler.js.map +0 -1
  294. package/dist/routed/index.d.ts +0 -5
  295. package/dist/routed/index.d.ts.map +0 -1
  296. package/dist/routed/index.js +0 -5
  297. package/dist/routed/index.js.map +0 -1
  298. package/dist/routed/params.d.ts +0 -40
  299. package/dist/routed/params.d.ts.map +0 -1
  300. package/dist/routed/params.js +0 -146
  301. package/dist/routed/params.js.map +0 -1
  302. package/dist/routed/stream.d.ts +0 -21
  303. package/dist/routed/stream.d.ts.map +0 -1
  304. package/dist/routed/stream.js +0 -69
  305. package/dist/routed/stream.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ import { errors, invocation as protocol, type codecs } from '@astrale-os/kernel-protocol';
2
+ import type { Handler } from '../../invocation/index.js';
3
+ import type { ActiveOperation } from '../../lifecycle/index.js';
4
+ export interface RenderContext {
5
+ readonly id: protocol.RequestId;
6
+ readonly codec: codecs.Codec;
7
+ readonly cors: CorsHeaders;
8
+ readonly operation: ActiveOperation;
9
+ readonly maximumResponseBytes: number;
10
+ }
11
+ export type CorsHeaders = (exposedHeaders?: readonly string[]) => Readonly<Record<string, string>>;
12
+ export interface ErrorRenderOptions {
13
+ readonly status?: number;
14
+ readonly negotiated?: boolean;
15
+ readonly maximumResponseBytes?: number;
16
+ }
17
+ type HandlerResult = Awaited<ReturnType<Handler['dispatch']>>;
18
+ export declare function renderHttpResult(result: HandlerResult, context: RenderContext): Response;
19
+ export declare function renderBinary(id: protocol.RequestId, binary: Extract<HandlerResult, {
20
+ readonly kind: 'binary';
21
+ }>['value']): protocol.BinaryResponse;
22
+ export declare function renderRedirect(id: protocol.RequestId, redirect: Extract<HandlerResult, {
23
+ readonly kind: 'redirect';
24
+ }>['redirect']): protocol.Redirect;
25
+ export declare function renderHttpError(id: protocol.RequestId, error: errors.ErrorPayload, codec: codecs.Codec, cors: CorsHeaders, options?: ErrorRenderOptions): Response;
26
+ export declare function renderHttpStale(id: protocol.RequestId, current: protocol.Stale['current'], codec: codecs.Codec, cors: CorsHeaders, maximumResponseBytes?: number): Response;
27
+ export declare function encodeEnvelope(codec: codecs.Codec, input: unknown): string | Uint8Array;
28
+ export {};
29
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../transport/http/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,IAAI,QAAQ,EAAU,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAEjG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAM/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;CACtC;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAElG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CACvC;AAED,KAAK,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAE7D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,QAAQ,CAkDxF;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,GACnE,QAAQ,CAAC,cAAc,CAgBzB;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC,UAAU,CAAC,GAC1E,QAAQ,CAAC,QAAQ,CAOnB;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,KAAK,EAAE,MAAM,CAAC,YAAY,EAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,kBAAuB,GAC/B,QAAQ,CAYV;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,SAAS,EACtB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAClC,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,IAAI,EAAE,WAAW,EACjB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,QAAQ,CASV;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAEvF"}
@@ -0,0 +1,277 @@
1
+ import { errors, invocation as protocol, routes } from '@astrale-os/kernel-protocol';
2
+ import { classifyError } from '../../errors/index.js';
3
+ import { ResponseBodyTooLargeError } from '../../errors/index.js';
4
+ import { interruptedStreamError } from '../stream-error.js';
5
+ export function renderHttpResult(result, context) {
6
+ switch (result.kind) {
7
+ case 'value':
8
+ return settled(context.operation, envelopeResponse(context.codec, { result: result.value, id: context.id }, context.cors(), 200, true, context.maximumResponseBytes));
9
+ case 'redirect': {
10
+ const response = renderRedirect(context.id, result.redirect);
11
+ return settled(context.operation, envelopeResponse(context.codec, response, context.cors(), 200, true, context.maximumResponseBytes));
12
+ }
13
+ case 'miss':
14
+ return settled(context.operation, envelopeResponse(context.codec, protocol.miss(context.id), context.cors(), 200, true, context.maximumResponseBytes));
15
+ case 'binary': {
16
+ const binary = renderBinary(context.id, result.value);
17
+ return settled(context.operation, binaryHttpResponse(binary, context.cors, context.maximumResponseBytes));
18
+ }
19
+ case 'stream':
20
+ return streamHttpResponse(result.stream, context);
21
+ }
22
+ }
23
+ export function renderBinary(id, binary) {
24
+ if (Object.keys(binary.headers ?? {}).some((name) => {
25
+ const lower = name.toLowerCase();
26
+ return lower === routes.HTTP_ROUTE_STALE || lower === routes.HTTP_ROUTE_MISS;
27
+ })) {
28
+ throw new TypeError(`${routes.HTTP_ROUTE_STALE} is reserved for stale-route control.`);
29
+ }
30
+ return protocol.decodeBinaryResponse({
31
+ kind: 'binary',
32
+ id,
33
+ body: binary.body,
34
+ mediaType: binary.mediaType,
35
+ ...(binary.headers === undefined ? {} : { headers: binary.headers }),
36
+ });
37
+ }
38
+ export function renderRedirect(id, redirect) {
39
+ return protocol.decodeRedirect({
40
+ kind: 'redirect',
41
+ id,
42
+ route: redirect.route,
43
+ ...(redirect.credential === undefined ? {} : { credential: redirect.credential }),
44
+ });
45
+ }
46
+ export function renderHttpError(id, error, codec, cors, options = {}) {
47
+ const status = options.status ?? errors.httpStatusOf(error);
48
+ const extra = status === 401 ? { 'www-authenticate': 'Bearer realm="astrale-invocation"' } : {};
49
+ return errorEnvelopeResponse(codec, { error, id }, { ...cors(), ...extra }, status, options.negotiated ?? true, options.maximumResponseBytes);
50
+ }
51
+ export function renderHttpStale(id, current, codec, cors, maximumResponseBytes) {
52
+ return envelopeResponse(codec, protocol.stale(id, current), cors(), 200, true, maximumResponseBytes);
53
+ }
54
+ export function encodeEnvelope(codec, input) {
55
+ return codec.encode(input);
56
+ }
57
+ function envelopeResponse(codec, input, cors, status = 200, negotiated = true, maximumResponseBytes) {
58
+ const encoded = codec.encode(input);
59
+ requireResponseBound(encoded, maximumResponseBytes);
60
+ const headers = bindingHeaders(cors, negotiated);
61
+ headers.set('content-type', codec.contentType);
62
+ return new Response(toBody(encoded), {
63
+ status,
64
+ headers,
65
+ });
66
+ }
67
+ function binaryHttpResponse(binary, cors, maximumResponseBytes) {
68
+ requireResponseBound(binary.body, maximumResponseBytes);
69
+ const applicationHeaders = Object.keys(binary.headers ?? {}).filter((name) => protocol.http.isApplicationBinaryHeader(name));
70
+ const headers = new Headers(cors([
71
+ protocol.http.REQUEST_ID_FIELD,
72
+ protocol.http.BINARY_HEADERS_FIELD,
73
+ ...applicationHeaders,
74
+ ]));
75
+ for (const [name, value] of Object.entries(binary.headers ?? {})) {
76
+ if (protocol.http.isApplicationBinaryHeader(name))
77
+ headers.set(name, value);
78
+ }
79
+ headers.set('content-type', binary.mediaType);
80
+ headers.set(protocol.http.BINARY_HEADERS_FIELD, protocol.http.encodeBinaryHeaderNames(binary.headers));
81
+ headers.set(protocol.http.REQUEST_ID_FIELD, String(binary.id));
82
+ headers.set('cache-control', 'no-store');
83
+ appendVary(headers, 'accept');
84
+ return new Response(toBody(binary.body), { status: 200, headers });
85
+ }
86
+ function streamHttpResponse(stream, context) {
87
+ const iterator = stream[Symbol.asyncIterator]();
88
+ const startFrame = encodeBoundedStreamFrame(context.codec, { kind: 'stream.start', id: context.id }, context.maximumResponseBytes);
89
+ let count = 0;
90
+ let terminal = false;
91
+ let controller;
92
+ let stopping;
93
+ const stop = (reason) => {
94
+ stopping ??= stopStream(reason);
95
+ return stopping;
96
+ };
97
+ async function stopStream(reason) {
98
+ if (terminal)
99
+ return;
100
+ terminal = true;
101
+ // End the wire response immediately. Producer cleanup remains part of the active operation,
102
+ // but an uncooperative producer must not leave the client waiting for a terminal frame.
103
+ if (controller !== undefined) {
104
+ try {
105
+ controller.enqueue(encodeBoundedStreamFrame(context.codec, cancellationFrame(context), context.maximumResponseBytes));
106
+ }
107
+ catch {
108
+ // The transport consumer may already have disconnected.
109
+ }
110
+ try {
111
+ controller.close();
112
+ }
113
+ catch {
114
+ // The stream may already be closed or cancelled by the consumer.
115
+ }
116
+ }
117
+ try {
118
+ await Promise.allSettled([
119
+ Promise.resolve().then(() => stream.cancel(reason)),
120
+ Promise.resolve().then(() => iterator.return?.()),
121
+ ]);
122
+ }
123
+ finally {
124
+ context.operation.settle();
125
+ }
126
+ }
127
+ const body = new ReadableStream({
128
+ start(output) {
129
+ controller = output;
130
+ output.enqueue(startFrame);
131
+ },
132
+ async pull(output) {
133
+ if (terminal)
134
+ return;
135
+ try {
136
+ const next = await iterator.next();
137
+ if (terminal)
138
+ return;
139
+ if (next.done) {
140
+ terminal = true;
141
+ output.enqueue(encodeBoundedStreamFrame(context.codec, {
142
+ kind: 'stream.end',
143
+ id: context.id,
144
+ count,
145
+ }, context.maximumResponseBytes));
146
+ output.close();
147
+ context.operation.settle();
148
+ return;
149
+ }
150
+ const frame = protocol.decodeStreamFrame({
151
+ kind: 'stream.item',
152
+ id: context.id,
153
+ index: count,
154
+ value: next.value,
155
+ });
156
+ output.enqueue(encodeBoundedStreamFrame(context.codec, frame, context.maximumResponseBytes));
157
+ count += 1;
158
+ }
159
+ catch (input) {
160
+ if (terminal)
161
+ return;
162
+ terminal = true;
163
+ if (!context.operation.signal.aborted) {
164
+ try {
165
+ output.enqueue(encodeBoundedStreamFrame(context.codec, {
166
+ kind: 'stream.error',
167
+ id: context.id,
168
+ error: classifyError(input),
169
+ }, context.maximumResponseBytes));
170
+ }
171
+ catch {
172
+ // No valid terminal frame can be formed; closing is the only remaining signal.
173
+ }
174
+ }
175
+ output.close();
176
+ await Promise.allSettled([
177
+ Promise.resolve().then(() => stream.cancel('stream failed')),
178
+ Promise.resolve().then(() => iterator.return?.()),
179
+ ]);
180
+ context.operation.settle();
181
+ }
182
+ },
183
+ async cancel(reason) {
184
+ const message = typeof reason === 'string' ? reason : 'response consumer cancelled';
185
+ context.operation.cancel(message);
186
+ await stop(message);
187
+ },
188
+ });
189
+ context.operation.onCancel(stop);
190
+ return new Response(body, {
191
+ status: 200,
192
+ headers: {
193
+ ...context.cors([protocol.http.STREAM_FRAMING_FIELD]),
194
+ 'cache-control': 'no-store',
195
+ 'content-type': context.codec.contentType,
196
+ vary: mergeVary(context.cors(), 'accept'),
197
+ [protocol.http.STREAM_FRAMING_FIELD]: protocol.http.LENGTH_PREFIX_V1,
198
+ },
199
+ });
200
+ }
201
+ function bindingHeaders(input, negotiated) {
202
+ const headers = new Headers(input);
203
+ headers.set('cache-control', 'no-store');
204
+ if (negotiated)
205
+ appendVary(headers, 'accept');
206
+ return headers;
207
+ }
208
+ function errorEnvelopeResponse(codec, response, cors, status, negotiated, maximumResponseBytes) {
209
+ try {
210
+ return envelopeResponse(codec, response, cors, status, negotiated, maximumResponseBytes);
211
+ }
212
+ catch (error) {
213
+ if (!(error instanceof ResponseBodyTooLargeError))
214
+ throw error;
215
+ const fallback = {
216
+ id: response.id,
217
+ error: {
218
+ code: errors.CODES.LIMIT_EXCEEDED,
219
+ message: 'Response body exceeds the configured limit.',
220
+ },
221
+ };
222
+ try {
223
+ return envelopeResponse(codec, fallback, cors, errors.httpStatusOf(fallback.error), negotiated, maximumResponseBytes);
224
+ }
225
+ catch (fallbackError) {
226
+ if (!(fallbackError instanceof ResponseBodyTooLargeError))
227
+ throw fallbackError;
228
+ return new Response(null, {
229
+ status: 500,
230
+ headers: bindingHeaders(cors, negotiated),
231
+ });
232
+ }
233
+ }
234
+ }
235
+ function encodeBoundedStreamFrame(codec, frame, maximumResponseBytes) {
236
+ const encoded = protocol.http.encodeStreamFrame(codec, frame);
237
+ if (encoded.byteLength - 4 > maximumResponseBytes) {
238
+ throw new ResponseBodyTooLargeError(maximumResponseBytes);
239
+ }
240
+ return encoded;
241
+ }
242
+ function requireResponseBound(input, maximumResponseBytes) {
243
+ if (maximumResponseBytes === undefined)
244
+ return;
245
+ const bytes = typeof input === 'string' ? new TextEncoder().encode(input).byteLength : input.byteLength;
246
+ if (bytes > maximumResponseBytes)
247
+ throw new ResponseBodyTooLargeError(maximumResponseBytes);
248
+ }
249
+ function settled(operation, response) {
250
+ operation.settle();
251
+ return response;
252
+ }
253
+ function appendVary(headers, value) {
254
+ headers.set('vary', mergeVary(Object.fromEntries(headers), value));
255
+ }
256
+ function mergeVary(headers, value) {
257
+ const names = new Set((headers.vary ?? '')
258
+ .split(',')
259
+ .map((name) => name.trim().toLowerCase())
260
+ .filter(Boolean));
261
+ names.add(value.toLowerCase());
262
+ return [...names].join(', ');
263
+ }
264
+ function cancellationFrame(context) {
265
+ return {
266
+ kind: 'stream.error',
267
+ id: context.id,
268
+ error: interruptedStreamError(context.operation.timedOut),
269
+ };
270
+ }
271
+ function toBody(input) {
272
+ if (typeof input === 'string')
273
+ return input;
274
+ const copy = new Uint8Array(input);
275
+ return copy.buffer;
276
+ }
277
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../transport/http/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export { byteLength, readBoundedBody } from './body.js';
2
+ export { loadCodecs, type LoadedCodec } from './codecs.js';
3
+ export { resolveCredential, type CredentialResult } from './credential.js';
4
+ export { createHttpHandler, type HttpHandlerConfig } from './http/index.js';
5
+ export { encodeEnvelope, renderBinary, renderHttpError, renderHttpResult, renderHttpStale, renderRedirect, type CorsHeaders, type ErrorRenderOptions, type RenderContext, } from './http/index.js';
6
+ export { interruptedStreamError } from './stream-error.js';
7
+ export { createServerRouter, type ServerRouter } from './router.js';
8
+ export { createWebSocketSession, handleWebSocketUpgrade, type WebSocketHandlerConfig, type WebSocketSessionConfig, } from './websocket/index.js';
9
+ export type { Application, WebSocketAdapter, WebSocketHandlers, WebSocketLike, WebSocketUpgradeOptions, } from './types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,GACxB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ export { byteLength, readBoundedBody } from './body.js';
2
+ export { loadCodecs } from './codecs.js';
3
+ export { resolveCredential } from './credential.js';
4
+ export { createHttpHandler } from './http/index.js';
5
+ export { encodeEnvelope, renderBinary, renderHttpError, renderHttpResult, renderHttpStale, renderRedirect, } from './http/index.js';
6
+ export { interruptedStreamError } from './stream-error.js';
7
+ export { createServerRouter } from './router.js';
8
+ export { createWebSocketSession, handleWebSocketUpgrade, } from './websocket/index.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,GAIf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAqB,MAAM,aAAa,CAAA;AACnE,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GAGvB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { type Hono as HonoType } from 'hono';
2
+ /** Private Web-standard router capability shared by Server route-owning children. */
3
+ export type ServerRouter = HonoType;
4
+ export declare function createServerRouter(): ServerRouter;
5
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../transport/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AAElD,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAA;AAEnC,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from 'hono';
2
+ export function createServerRouter() {
3
+ return new Hono();
4
+ }
5
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../transport/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAyB,MAAM,MAAM,CAAA;AAKlD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,IAAI,EAAE,CAAA;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type errors } from '@astrale-os/kernel-protocol';
2
+ /** A transport cancellation after stream.start necessarily follows the Function effect boundary. */
3
+ export declare function interruptedStreamError(timedOut: boolean): errors.ErrorPayload;
4
+ //# sourceMappingURL=stream-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-error.d.ts","sourceRoot":"","sources":["../../transport/stream-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAEnF,oGAAoG;AACpG,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,YAAY,CAU7E"}
@@ -0,0 +1,14 @@
1
+ import { errors as protocolErrors } from '@astrale-os/kernel-protocol';
2
+ /** A transport cancellation after stream.start necessarily follows the Function effect boundary. */
3
+ export function interruptedStreamError(timedOut) {
4
+ return timedOut
5
+ ? {
6
+ code: protocolErrors.CODES.OUTCOME_UNKNOWN,
7
+ message: 'Invocation deadline elapsed after the Function stream began; outcome is unknown.',
8
+ }
9
+ : {
10
+ code: protocolErrors.CODES.OUTCOME_UNKNOWN,
11
+ message: 'Function stream was cancelled after execution began; outcome is unknown.',
12
+ };
13
+ }
14
+ //# sourceMappingURL=stream-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-error.js","sourceRoot":"","sources":["../../transport/stream-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAe,MAAM,6BAA6B,CAAA;AAEnF,oGAAoG;AACpG,MAAM,UAAU,sBAAsB,CAAC,QAAiB;IACtD,OAAO,QAAQ;QACb,CAAC,CAAC;YACE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,eAAe;YAC1C,OAAO,EAAE,kFAAkF;SAC5F;QACH,CAAC,CAAC;YACE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,eAAe;YAC1C,OAAO,EAAE,0EAA0E;SACpF,CAAA;AACP,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { invocation as protocol } from '@astrale-os/kernel-protocol';
2
+ import type { ApplicationHost } from '../invocation/index.js';
3
+ /** Portable Fetch application; framework and listener APIs are adapter-owned. */
4
+ export interface Application {
5
+ fetch(request: Request, host?: ApplicationHost): Response | Promise<Response>;
6
+ }
7
+ /** Minimal platform socket required by the Server-owned WebSocket protocol. */
8
+ export interface WebSocketLike {
9
+ /** Resolve only after the frame is accepted within the adapter's bounded output queue. */
10
+ send(data: string | Uint8Array): Promise<void>;
11
+ close(code?: number, reason?: string): void;
12
+ readonly readyState: 0 | 1 | 2 | 3;
13
+ }
14
+ export interface WebSocketHandlers {
15
+ open(socket: WebSocketLike): void | Promise<void>;
16
+ message(socket: WebSocketLike, data: string | Uint8Array): void | Promise<void>;
17
+ close(socket: WebSocketLike): void;
18
+ error(socket: WebSocketLike, error: Error): void;
19
+ }
20
+ export interface WebSocketUpgradeOptions {
21
+ readonly subprotocol: protocol.websocket.Subprotocol;
22
+ readonly handlers: WebSocketHandlers;
23
+ readonly signal: AbortSignal;
24
+ }
25
+ /** Platform-specific HTTP upgrade seam; framing and multiplexing remain Server-owned. */
26
+ export interface WebSocketAdapter {
27
+ upgrade(request: Request, options: WebSocketUpgradeOptions): Response | Promise<Response>;
28
+ }
29
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../transport/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC9E;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,0FAA0F;IAC1F,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACjD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAA;IACpD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC1F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../transport/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { createWebSocketSession, type WebSocketSessionConfig } from './session.js';
2
+ export { handleWebSocketUpgrade, type WebSocketHandlerConfig } from './upgrade.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transport/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { createWebSocketSession } from './session.js';
2
+ export { handleWebSocketUpgrade } from './upgrade.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transport/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA+B,MAAM,cAAc,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAA+B,MAAM,cAAc,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { type codecs } from '@astrale-os/kernel-protocol';
2
+ import type { ActiveOperations } from '../../lifecycle/index.js';
3
+ import type { PublicationSnapshot } from '../../publication/index.js';
4
+ import type { WebSocketHandlers } from '../types.js';
5
+ import { type ApplicationHost, type Handler } from '../../invocation/index.js';
6
+ export interface WebSocketSessionConfig {
7
+ readonly codec: codecs.Codec;
8
+ readonly authorization: string | null;
9
+ readonly handler: Handler;
10
+ readonly active: ActiveOperations;
11
+ readonly maximumRequestBytes: number;
12
+ readonly maximumResponseBytes: number;
13
+ readonly invocationTimeoutMs: number;
14
+ readonly currentPublication?: () => PublicationSnapshot | undefined;
15
+ readonly host?: ApplicationHost;
16
+ }
17
+ /** Build one socket-pinned transport session. */
18
+ export declare function createWebSocketSession(config: WebSocketSessionConfig): WebSocketHandlers;
19
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../transport/websocket/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AAEpC,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,aAAa,CAAA;AAInE,OAAO,EAAqB,KAAK,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjG,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAA;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAA;CAChC;AAED,iDAAiD;AACjD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,iBAAiB,CA0OxF"}