@restatedev/restate-sdk 1.0.1 → 1.1.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 (347) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/src/common_api.d.ts +4 -2
  3. package/dist/cjs/src/common_api.d.ts.map +1 -1
  4. package/dist/cjs/src/common_api.js.map +1 -1
  5. package/dist/cjs/src/connection/connection.d.ts +64 -0
  6. package/dist/cjs/src/connection/connection.d.ts.map +1 -1
  7. package/dist/cjs/src/connection/connection.js +168 -0
  8. package/dist/cjs/src/connection/connection.js.map +1 -1
  9. package/dist/cjs/src/context.d.ts +13 -9
  10. package/dist/cjs/src/context.d.ts.map +1 -1
  11. package/dist/cjs/src/context.js.map +1 -1
  12. package/dist/cjs/src/context_impl.d.ts.map +1 -1
  13. package/dist/cjs/src/context_impl.js +15 -20
  14. package/dist/cjs/src/context_impl.js.map +1 -1
  15. package/dist/cjs/src/endpoint/endpoint_builder.d.ts +10 -0
  16. package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -1
  17. package/dist/cjs/src/endpoint/endpoint_builder.js +13 -0
  18. package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -1
  19. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +18 -1
  20. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -1
  21. package/dist/cjs/src/endpoint/fetch_endpoint.js +16 -1
  22. package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -1
  23. package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -1
  24. package/dist/cjs/src/endpoint/handlers/fetch.js +1 -2
  25. package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -1
  26. package/dist/cjs/src/endpoint/handlers/generic.d.ts +10 -7
  27. package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -1
  28. package/dist/cjs/src/endpoint/handlers/generic.js +76 -54
  29. package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -1
  30. package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -1
  31. package/dist/cjs/src/endpoint/handlers/lambda.js +33 -16
  32. package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -1
  33. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +2 -0
  34. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -1
  35. package/dist/cjs/src/endpoint/lambda_endpoint.js +6 -8
  36. package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -1
  37. package/dist/cjs/src/endpoint/node_endpoint.d.ts +2 -0
  38. package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -1
  39. package/dist/cjs/src/endpoint/node_endpoint.js +31 -20
  40. package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -1
  41. package/dist/cjs/src/endpoint.d.ts +25 -2
  42. package/dist/cjs/src/endpoint.d.ts.map +1 -1
  43. package/dist/cjs/src/fetch.d.ts +2 -1
  44. package/dist/cjs/src/fetch.d.ts.map +1 -1
  45. package/dist/cjs/src/fetch.js +4 -2
  46. package/dist/cjs/src/fetch.js.map +1 -1
  47. package/dist/cjs/src/generated/version.d.ts +1 -1
  48. package/dist/cjs/src/generated/version.js +1 -1
  49. package/dist/cjs/src/invocation.d.ts +1 -1
  50. package/dist/cjs/src/invocation.d.ts.map +1 -1
  51. package/dist/cjs/src/invocation.js.map +1 -1
  52. package/dist/cjs/src/io/decoder.d.ts +2 -2
  53. package/dist/cjs/src/io/decoder.d.ts.map +1 -1
  54. package/dist/cjs/src/io/decoder.js +7 -8
  55. package/dist/cjs/src/io/decoder.js.map +1 -1
  56. package/dist/cjs/src/io/encoder.d.ts +0 -3
  57. package/dist/cjs/src/io/encoder.d.ts.map +1 -1
  58. package/dist/cjs/src/io/encoder.js +1 -18
  59. package/dist/cjs/src/io/encoder.js.map +1 -1
  60. package/dist/cjs/src/logger.d.ts +21 -13
  61. package/dist/cjs/src/logger.d.ts.map +1 -1
  62. package/dist/cjs/src/logger.js +56 -56
  63. package/dist/cjs/src/logger.js.map +1 -1
  64. package/dist/cjs/src/state_machine.d.ts +3 -5
  65. package/dist/cjs/src/state_machine.d.ts.map +1 -1
  66. package/dist/cjs/src/state_machine.js +7 -15
  67. package/dist/cjs/src/state_machine.js.map +1 -1
  68. package/dist/cjs/src/types/rpc.d.ts +11 -11
  69. package/dist/cjs/src/types/rpc.d.ts.map +1 -1
  70. package/dist/cjs/src/types/rpc.js +3 -3
  71. package/dist/cjs/src/types/rpc.js.map +1 -1
  72. package/dist/cjs/src/user_agent.d.ts +1 -1
  73. package/dist/cjs/src/utils/message_logger.d.ts +2 -2
  74. package/dist/cjs/src/utils/message_logger.d.ts.map +1 -1
  75. package/dist/cjs/src/utils/message_logger.js +3 -3
  76. package/dist/cjs/src/utils/message_logger.js.map +1 -1
  77. package/dist/cjs/src/utils/streams.d.ts +4 -0
  78. package/dist/cjs/src/utils/streams.d.ts.map +1 -0
  79. package/dist/cjs/src/utils/streams.js +24 -0
  80. package/dist/cjs/src/utils/streams.js.map +1 -0
  81. package/dist/cjs/test/awakeable.test.d.ts +2 -0
  82. package/dist/cjs/test/awakeable.test.d.ts.map +1 -0
  83. package/dist/cjs/test/awakeable.test.js +141 -0
  84. package/dist/cjs/test/awakeable.test.js.map +1 -0
  85. package/dist/cjs/test/complete_awakeable.test.d.ts +2 -0
  86. package/dist/cjs/test/complete_awakeable.test.d.ts.map +1 -0
  87. package/dist/cjs/test/complete_awakeable.test.js +123 -0
  88. package/dist/cjs/test/complete_awakeable.test.js.map +1 -0
  89. package/dist/cjs/test/eager_state.test.d.ts +2 -0
  90. package/dist/cjs/test/eager_state.test.d.ts.map +1 -0
  91. package/dist/cjs/test/eager_state.test.js +280 -0
  92. package/dist/cjs/test/eager_state.test.js.map +1 -0
  93. package/dist/cjs/test/get_and_set_state.test.d.ts +2 -0
  94. package/dist/cjs/test/get_and_set_state.test.d.ts.map +1 -0
  95. package/dist/cjs/test/get_and_set_state.test.js +233 -0
  96. package/dist/cjs/test/get_and_set_state.test.js.map +1 -0
  97. package/dist/cjs/test/get_state.test.d.ts +2 -0
  98. package/dist/cjs/test/get_state.test.d.ts.map +1 -0
  99. package/dist/cjs/test/get_state.test.js +333 -0
  100. package/dist/cjs/test/get_state.test.js.map +1 -0
  101. package/dist/cjs/test/lambda.test.d.ts +2 -0
  102. package/dist/cjs/test/lambda.test.d.ts.map +1 -0
  103. package/dist/cjs/test/lambda.test.js +246 -0
  104. package/dist/cjs/test/lambda.test.js.map +1 -0
  105. package/dist/cjs/test/message_coders.test.d.ts +2 -0
  106. package/dist/cjs/test/message_coders.test.d.ts.map +1 -0
  107. package/dist/cjs/test/message_coders.test.js +37 -0
  108. package/dist/cjs/test/message_coders.test.js.map +1 -0
  109. package/dist/cjs/test/promise_combinator_tracker.test.d.ts +2 -0
  110. package/dist/cjs/test/promise_combinator_tracker.test.d.ts.map +1 -0
  111. package/dist/cjs/test/promise_combinator_tracker.test.js +156 -0
  112. package/dist/cjs/test/promise_combinator_tracker.test.js.map +1 -0
  113. package/dist/cjs/test/promise_combinators.test.d.ts +2 -0
  114. package/dist/cjs/test/promise_combinators.test.d.ts.map +1 -0
  115. package/dist/cjs/test/promise_combinators.test.js +433 -0
  116. package/dist/cjs/test/promise_combinators.test.js.map +1 -0
  117. package/dist/cjs/test/promises.test.d.ts +2 -0
  118. package/dist/cjs/test/promises.test.d.ts.map +1 -0
  119. package/dist/cjs/test/promises.test.js +32 -0
  120. package/dist/cjs/test/promises.test.js.map +1 -0
  121. package/dist/cjs/test/protocol_stream.test.d.ts +2 -0
  122. package/dist/cjs/test/protocol_stream.test.d.ts.map +1 -0
  123. package/dist/cjs/test/protocol_stream.test.js +243 -0
  124. package/dist/cjs/test/protocol_stream.test.js.map +1 -0
  125. package/dist/cjs/test/protoutils.d.ts +44 -0
  126. package/dist/cjs/test/protoutils.d.ts.map +1 -0
  127. package/dist/cjs/test/protoutils.js +359 -0
  128. package/dist/cjs/test/protoutils.js.map +1 -0
  129. package/dist/cjs/test/service_bind.test.d.ts +2 -0
  130. package/dist/cjs/test/service_bind.test.d.ts.map +1 -0
  131. package/dist/cjs/test/service_bind.test.js +98 -0
  132. package/dist/cjs/test/service_bind.test.js.map +1 -0
  133. package/dist/cjs/test/side_effect.test.d.ts +2 -0
  134. package/dist/cjs/test/side_effect.test.d.ts.map +1 -0
  135. package/dist/cjs/test/side_effect.test.js +133 -0
  136. package/dist/cjs/test/side_effect.test.js.map +1 -0
  137. package/dist/cjs/test/sleep.test.d.ts +2 -0
  138. package/dist/cjs/test/sleep.test.d.ts.map +1 -0
  139. package/dist/cjs/test/sleep.test.js +224 -0
  140. package/dist/cjs/test/sleep.test.js.map +1 -0
  141. package/dist/cjs/test/state_keys.test.d.ts +2 -0
  142. package/dist/cjs/test/state_keys.test.d.ts.map +1 -0
  143. package/dist/cjs/test/state_keys.test.js +92 -0
  144. package/dist/cjs/test/state_keys.test.js.map +1 -0
  145. package/dist/cjs/test/state_machine.test.d.ts +2 -0
  146. package/dist/cjs/test/state_machine.test.d.ts.map +1 -0
  147. package/dist/cjs/test/state_machine.test.js +42 -0
  148. package/dist/cjs/test/state_machine.test.js.map +1 -0
  149. package/dist/cjs/test/testdriver.d.ts +37 -0
  150. package/dist/cjs/test/testdriver.d.ts.map +1 -0
  151. package/dist/cjs/test/testdriver.js +176 -0
  152. package/dist/cjs/test/testdriver.js.map +1 -0
  153. package/dist/cjs/test/utils.test.d.ts +2 -0
  154. package/dist/cjs/test/utils.test.d.ts.map +1 -0
  155. package/dist/cjs/test/utils.test.js +104 -0
  156. package/dist/cjs/test/utils.test.js.map +1 -0
  157. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  158. package/dist/esm/src/common_api.d.ts +4 -2
  159. package/dist/esm/src/common_api.d.ts.map +1 -1
  160. package/dist/esm/src/common_api.js +1 -1
  161. package/dist/esm/src/common_api.js.map +1 -1
  162. package/dist/esm/src/connection/connection.d.ts +64 -0
  163. package/dist/esm/src/connection/connection.d.ts.map +1 -1
  164. package/dist/esm/src/connection/connection.js +166 -1
  165. package/dist/esm/src/connection/connection.js.map +1 -1
  166. package/dist/esm/src/context.d.ts +13 -9
  167. package/dist/esm/src/context.d.ts.map +1 -1
  168. package/dist/esm/src/context.js.map +1 -1
  169. package/dist/esm/src/context_impl.d.ts.map +1 -1
  170. package/dist/esm/src/context_impl.js +15 -20
  171. package/dist/esm/src/context_impl.js.map +1 -1
  172. package/dist/esm/src/endpoint/endpoint_builder.d.ts +10 -0
  173. package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -1
  174. package/dist/esm/src/endpoint/endpoint_builder.js +13 -0
  175. package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -1
  176. package/dist/esm/src/endpoint/fetch_endpoint.d.ts +18 -1
  177. package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -1
  178. package/dist/esm/src/endpoint/fetch_endpoint.js +16 -1
  179. package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -1
  180. package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -1
  181. package/dist/esm/src/endpoint/handlers/fetch.js +1 -2
  182. package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -1
  183. package/dist/esm/src/endpoint/handlers/generic.d.ts +10 -7
  184. package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -1
  185. package/dist/esm/src/endpoint/handlers/generic.js +77 -55
  186. package/dist/esm/src/endpoint/handlers/generic.js.map +1 -1
  187. package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -1
  188. package/dist/esm/src/endpoint/handlers/lambda.js +33 -16
  189. package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -1
  190. package/dist/esm/src/endpoint/lambda_endpoint.d.ts +2 -0
  191. package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -1
  192. package/dist/esm/src/endpoint/lambda_endpoint.js +6 -8
  193. package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -1
  194. package/dist/esm/src/endpoint/node_endpoint.d.ts +2 -0
  195. package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -1
  196. package/dist/esm/src/endpoint/node_endpoint.js +31 -20
  197. package/dist/esm/src/endpoint/node_endpoint.js.map +1 -1
  198. package/dist/esm/src/endpoint.d.ts +25 -2
  199. package/dist/esm/src/endpoint.d.ts.map +1 -1
  200. package/dist/esm/src/fetch.d.ts +2 -1
  201. package/dist/esm/src/fetch.d.ts.map +1 -1
  202. package/dist/esm/src/fetch.js +4 -2
  203. package/dist/esm/src/fetch.js.map +1 -1
  204. package/dist/esm/src/generated/version.d.ts +1 -1
  205. package/dist/esm/src/generated/version.js +1 -1
  206. package/dist/esm/src/invocation.d.ts +1 -1
  207. package/dist/esm/src/invocation.d.ts.map +1 -1
  208. package/dist/esm/src/invocation.js.map +1 -1
  209. package/dist/esm/src/io/decoder.d.ts +2 -2
  210. package/dist/esm/src/io/decoder.d.ts.map +1 -1
  211. package/dist/esm/src/io/decoder.js +7 -8
  212. package/dist/esm/src/io/decoder.js.map +1 -1
  213. package/dist/esm/src/io/encoder.d.ts +0 -3
  214. package/dist/esm/src/io/encoder.d.ts.map +1 -1
  215. package/dist/esm/src/io/encoder.js +0 -13
  216. package/dist/esm/src/io/encoder.js.map +1 -1
  217. package/dist/esm/src/logger.d.ts +21 -13
  218. package/dist/esm/src/logger.d.ts.map +1 -1
  219. package/dist/esm/src/logger.js +53 -55
  220. package/dist/esm/src/logger.js.map +1 -1
  221. package/dist/esm/src/state_machine.d.ts +3 -5
  222. package/dist/esm/src/state_machine.d.ts.map +1 -1
  223. package/dist/esm/src/state_machine.js +8 -16
  224. package/dist/esm/src/state_machine.js.map +1 -1
  225. package/dist/esm/src/types/rpc.d.ts +11 -11
  226. package/dist/esm/src/types/rpc.d.ts.map +1 -1
  227. package/dist/esm/src/types/rpc.js +3 -3
  228. package/dist/esm/src/types/rpc.js.map +1 -1
  229. package/dist/esm/src/user_agent.d.ts +1 -1
  230. package/dist/esm/src/utils/message_logger.d.ts +2 -2
  231. package/dist/esm/src/utils/message_logger.d.ts.map +1 -1
  232. package/dist/esm/src/utils/message_logger.js +4 -4
  233. package/dist/esm/src/utils/message_logger.js.map +1 -1
  234. package/dist/esm/src/utils/streams.d.ts +4 -0
  235. package/dist/esm/src/utils/streams.d.ts.map +1 -0
  236. package/dist/esm/src/utils/streams.js +20 -0
  237. package/dist/esm/src/utils/streams.js.map +1 -0
  238. package/dist/esm/test/awakeable.test.d.ts +2 -0
  239. package/dist/esm/test/awakeable.test.d.ts.map +1 -0
  240. package/dist/esm/test/awakeable.test.js +139 -0
  241. package/dist/esm/test/awakeable.test.js.map +1 -0
  242. package/dist/esm/test/complete_awakeable.test.d.ts +2 -0
  243. package/dist/esm/test/complete_awakeable.test.d.ts.map +1 -0
  244. package/dist/esm/test/complete_awakeable.test.js +121 -0
  245. package/dist/esm/test/complete_awakeable.test.js.map +1 -0
  246. package/dist/esm/test/eager_state.test.d.ts +2 -0
  247. package/dist/esm/test/eager_state.test.d.ts.map +1 -0
  248. package/dist/esm/test/eager_state.test.js +278 -0
  249. package/dist/esm/test/eager_state.test.js.map +1 -0
  250. package/dist/esm/test/get_and_set_state.test.d.ts +2 -0
  251. package/dist/esm/test/get_and_set_state.test.d.ts.map +1 -0
  252. package/dist/esm/test/get_and_set_state.test.js +231 -0
  253. package/dist/esm/test/get_and_set_state.test.js.map +1 -0
  254. package/dist/esm/test/get_state.test.d.ts +2 -0
  255. package/dist/esm/test/get_state.test.d.ts.map +1 -0
  256. package/dist/esm/test/get_state.test.js +331 -0
  257. package/dist/esm/test/get_state.test.js.map +1 -0
  258. package/dist/esm/test/lambda.test.d.ts +2 -0
  259. package/dist/esm/test/lambda.test.d.ts.map +1 -0
  260. package/dist/esm/test/lambda.test.js +221 -0
  261. package/dist/esm/test/lambda.test.js.map +1 -0
  262. package/dist/esm/test/message_coders.test.d.ts +2 -0
  263. package/dist/esm/test/message_coders.test.d.ts.map +1 -0
  264. package/dist/esm/test/message_coders.test.js +35 -0
  265. package/dist/esm/test/message_coders.test.js.map +1 -0
  266. package/dist/esm/test/promise_combinator_tracker.test.d.ts +2 -0
  267. package/dist/esm/test/promise_combinator_tracker.test.d.ts.map +1 -0
  268. package/dist/esm/test/promise_combinator_tracker.test.js +154 -0
  269. package/dist/esm/test/promise_combinator_tracker.test.js.map +1 -0
  270. package/dist/esm/test/promise_combinators.test.d.ts +2 -0
  271. package/dist/esm/test/promise_combinators.test.d.ts.map +1 -0
  272. package/dist/esm/test/promise_combinators.test.js +431 -0
  273. package/dist/esm/test/promise_combinators.test.js.map +1 -0
  274. package/dist/esm/test/promises.test.d.ts +2 -0
  275. package/dist/esm/test/promises.test.d.ts.map +1 -0
  276. package/dist/esm/test/promises.test.js +30 -0
  277. package/dist/esm/test/promises.test.js.map +1 -0
  278. package/dist/esm/test/protocol_stream.test.d.ts +2 -0
  279. package/dist/esm/test/protocol_stream.test.d.ts.map +1 -0
  280. package/dist/esm/test/protocol_stream.test.js +218 -0
  281. package/dist/esm/test/protocol_stream.test.js.map +1 -0
  282. package/dist/esm/test/protoutils.d.ts +44 -0
  283. package/dist/esm/test/protoutils.d.ts.map +1 -0
  284. package/dist/esm/test/protoutils.js +326 -0
  285. package/dist/esm/test/protoutils.js.map +1 -0
  286. package/dist/esm/test/service_bind.test.d.ts +2 -0
  287. package/dist/esm/test/service_bind.test.d.ts.map +1 -0
  288. package/dist/esm/test/service_bind.test.js +73 -0
  289. package/dist/esm/test/service_bind.test.js.map +1 -0
  290. package/dist/esm/test/side_effect.test.d.ts +2 -0
  291. package/dist/esm/test/side_effect.test.d.ts.map +1 -0
  292. package/dist/esm/test/side_effect.test.js +131 -0
  293. package/dist/esm/test/side_effect.test.js.map +1 -0
  294. package/dist/esm/test/sleep.test.d.ts +2 -0
  295. package/dist/esm/test/sleep.test.d.ts.map +1 -0
  296. package/dist/esm/test/sleep.test.js +222 -0
  297. package/dist/esm/test/sleep.test.js.map +1 -0
  298. package/dist/esm/test/state_keys.test.d.ts +2 -0
  299. package/dist/esm/test/state_keys.test.d.ts.map +1 -0
  300. package/dist/esm/test/state_keys.test.js +90 -0
  301. package/dist/esm/test/state_keys.test.js.map +1 -0
  302. package/dist/esm/test/state_machine.test.d.ts +2 -0
  303. package/dist/esm/test/state_machine.test.d.ts.map +1 -0
  304. package/dist/esm/test/state_machine.test.js +40 -0
  305. package/dist/esm/test/state_machine.test.js.map +1 -0
  306. package/dist/esm/test/testdriver.d.ts +37 -0
  307. package/dist/esm/test/testdriver.d.ts.map +1 -0
  308. package/dist/esm/test/testdriver.js +170 -0
  309. package/dist/esm/test/testdriver.js.map +1 -0
  310. package/dist/esm/test/utils.test.d.ts +2 -0
  311. package/dist/esm/test/utils.test.d.ts.map +1 -0
  312. package/dist/esm/test/utils.test.js +102 -0
  313. package/dist/esm/test/utils.test.js.map +1 -0
  314. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  315. package/package.json +2 -2
  316. package/dist/cjs/src/connection/buffered_connection.d.ts +0 -14
  317. package/dist/cjs/src/connection/buffered_connection.d.ts.map +0 -1
  318. package/dist/cjs/src/connection/buffered_connection.js +0 -44
  319. package/dist/cjs/src/connection/buffered_connection.js.map +0 -1
  320. package/dist/cjs/src/connection/http_connection.d.ts +0 -77
  321. package/dist/cjs/src/connection/http_connection.d.ts.map +0 -1
  322. package/dist/cjs/src/connection/http_connection.js +0 -208
  323. package/dist/cjs/src/connection/http_connection.js.map +0 -1
  324. package/dist/cjs/src/connection/lambda_connection.d.ts +0 -17
  325. package/dist/cjs/src/connection/lambda_connection.d.ts.map +0 -1
  326. package/dist/cjs/src/connection/lambda_connection.js +0 -64
  327. package/dist/cjs/src/connection/lambda_connection.js.map +0 -1
  328. package/dist/cjs/src/endpoint/handlers/node.d.ts +0 -11
  329. package/dist/cjs/src/endpoint/handlers/node.d.ts.map +0 -1
  330. package/dist/cjs/src/endpoint/handlers/node.js +0 -188
  331. package/dist/cjs/src/endpoint/handlers/node.js.map +0 -1
  332. package/dist/esm/src/connection/buffered_connection.d.ts +0 -14
  333. package/dist/esm/src/connection/buffered_connection.d.ts.map +0 -1
  334. package/dist/esm/src/connection/buffered_connection.js +0 -40
  335. package/dist/esm/src/connection/buffered_connection.js.map +0 -1
  336. package/dist/esm/src/connection/http_connection.d.ts +0 -77
  337. package/dist/esm/src/connection/http_connection.d.ts.map +0 -1
  338. package/dist/esm/src/connection/http_connection.js +0 -204
  339. package/dist/esm/src/connection/http_connection.js.map +0 -1
  340. package/dist/esm/src/connection/lambda_connection.d.ts +0 -17
  341. package/dist/esm/src/connection/lambda_connection.d.ts.map +0 -1
  342. package/dist/esm/src/connection/lambda_connection.js +0 -60
  343. package/dist/esm/src/connection/lambda_connection.js.map +0 -1
  344. package/dist/esm/src/endpoint/handlers/node.d.ts +0 -11
  345. package/dist/esm/src/endpoint/handlers/node.d.ts.map +0 -1
  346. package/dist/esm/src/endpoint/handlers/node.js +0 -181
  347. package/dist/esm/src/endpoint/handlers/node.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint_builder.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAqBxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,OAAO,CAAC,CAAW;IAE3B,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IA4BvB,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAWvC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ;IAa1E,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,2BAA2B;CAkBpC"}
1
+ {"version":3,"file":"endpoint_builder.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":";AAcA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOxD,OAAO,KAAK,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAEL,KAAK,MAAM,EAGZ,MAAM,cAAc,CAAC;AAoBtB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IACvD,MAAM,EAAE,MAAM,CAAiB;IAEtC;;;;OAIG;IACI,IAAI,UAAuD;IAElE,OAAO,CAAC,OAAO,CAAC,CAAW;IAE3B,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;IA4BvB,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAWhC,SAAS,CAAC,SAAS,EAAE,MAAM;IAMlC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ;IAa1E,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,2BAA2B;CAkBpC"}
@@ -14,6 +14,7 @@ exports.EndpointBuilder = void 0;
14
14
  const rpc_js_1 = require("../types/rpc.js");
15
15
  const components_js_1 = require("../types/components.js");
16
16
  const v1_js_1 = require("./request_signing/v1.js");
17
+ const logger_js_1 = require("../logger.js");
17
18
  function isServiceDefinition(m) {
18
19
  return m && m.service !== undefined;
19
20
  }
@@ -25,6 +26,13 @@ function isWorkflowDefinition(m) {
25
26
  }
26
27
  class EndpointBuilder {
27
28
  services = new Map();
29
+ logger = logger_js_1.defaultLogger;
30
+ /**
31
+ * This is a simple console without contextual info.
32
+ *
33
+ * This should be used only in cases where no contextual info is available.
34
+ */
35
+ rlog = (0, logger_js_1.createRestateConsole)(this.logger, logger_js_1.LogSource.SYSTEM);
28
36
  _keySet;
29
37
  get keySet() {
30
38
  return this._keySet;
@@ -70,6 +78,11 @@ class EndpointBuilder {
70
78
  (0, v1_js_1.parseKeySetV1)(keys).forEach((buffer, key) => this._keySet?.set(key, buffer));
71
79
  return this;
72
80
  }
81
+ setLogger(newLogger) {
82
+ this.logger = newLogger;
83
+ this.rlog = (0, logger_js_1.createRestateConsole)(this.logger, logger_js_1.LogSource.SYSTEM);
84
+ return this;
85
+ }
73
86
  computeDiscovery(protocolMode) {
74
87
  const services = [...this.services.values()].map((c) => c.discovery());
75
88
  const endpoint = {
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint_builder.js","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint_builder.js","sourceRoot":"","sources":["../../../../src/endpoint/endpoint_builder.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@ import type { ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } f
3
3
  import type { Component } from "../types/components.js";
4
4
  import type { KeySetV1 } from "./request_signing/v1.js";
5
5
  import type { RestateEndpointBase, ServiceBundle } from "../endpoint.js";
6
+ import { ProtocolMode } from "../types/discovery.js";
7
+ import type { Logger } from "../logger.js";
6
8
  /**
7
9
  * Generic Fetch encapsulates all the Restate services served by this endpoint.
8
10
  *
9
11
  *
10
12
  * @example
11
- * A typical endpoint served would look like this:
13
+ * A typical request-response handler would look like this:
12
14
  * ```
13
15
  * import * as restate from "@restatedev/restate-sdk/fetch";
14
16
  *
@@ -16,13 +18,26 @@ import type { RestateEndpointBase, ServiceBundle } from "../endpoint.js";
16
18
  * .endpoint()
17
19
  * .bind(myService)
18
20
  * .handler();
21
+ * @example
22
+ * A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:
23
+ * ```
24
+ * import * as restate from "@restatedev/restate-sdk/fetch";
25
+ *
26
+ * export default restate
27
+ * .endpoint()
28
+ * .bidirectional()
29
+ * .bind(myService)
30
+ * .handler();
19
31
  */
20
32
  export interface FetchEndpoint extends RestateEndpointBase<FetchEndpoint> {
21
33
  handler(): {
22
34
  fetch: (request: Request) => Promise<Response>;
23
35
  };
36
+ bidirectional(set?: boolean): FetchEndpoint;
24
37
  }
25
38
  export declare class FetchEndpointImpl implements FetchEndpoint {
39
+ private protocolMode;
40
+ constructor(protocolMode: ProtocolMode);
26
41
  private builder;
27
42
  get keySet(): KeySetV1 | undefined;
28
43
  componentByName(componentName: string): Component | undefined;
@@ -30,6 +45,8 @@ export declare class FetchEndpointImpl implements FetchEndpoint {
30
45
  bindBundle(services: ServiceBundle): FetchEndpoint;
31
46
  bind<P extends string, M>(definition: ServiceDefinition<P, M> | VirtualObjectDefinition<P, M> | WorkflowDefinition<P, M>): FetchEndpoint;
32
47
  withIdentityV1(...keys: string[]): FetchEndpoint;
48
+ setLogger(newLogger: Logger): FetchEndpoint;
49
+ bidirectional(set?: boolean): FetchEndpoint;
33
50
  handler(): {
34
51
  fetch: (request: Request) => Promise<Response>;
35
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAEV,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAIxB;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAc,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IACvE,OAAO,IAAI;QAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC;CAC/D;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAA0C;IAEzD,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIxC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;IAK3C,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,aAAa;IAKT,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa;IAKvD,OAAO,IAAI;QACT,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;KAChD;CAIF"}
1
+ {"version":3,"file":"fetch_endpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAEV,mBAAmB,EACnB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,aAAc,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IACvE,OAAO,IAAI;QAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC;IAC9D,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CAC7C;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACzC,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAC9C,OAAO,CAAC,OAAO,CAA0C;IAEzD,IAAW,MAAM,IAAI,QAAQ,GAAG,SAAS,CAExC;IAEM,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D,YAAY,CAAC,SAAS,EAAE,SAAS;IAIxC,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;IAK3C,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,aAAa;IAKT,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa;IAKhD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAK3C,aAAa,CAAC,GAAG,GAAE,OAAc,GAAG,aAAa;IAOxD,OAAO,IAAI;QACT,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;KAChD;CAIF"}
@@ -14,7 +14,12 @@ exports.FetchEndpointImpl = void 0;
14
14
  const endpoint_builder_js_1 = require("./endpoint_builder.js");
15
15
  const generic_js_1 = require("./handlers/generic.js");
16
16
  const fetch_js_1 = require("./handlers/fetch.js");
17
+ const discovery_js_1 = require("../types/discovery.js");
17
18
  class FetchEndpointImpl {
19
+ protocolMode;
20
+ constructor(protocolMode) {
21
+ this.protocolMode = protocolMode;
22
+ }
18
23
  builder = new endpoint_builder_js_1.EndpointBuilder();
19
24
  get keySet() {
20
25
  return this.builder.keySet;
@@ -37,8 +42,18 @@ class FetchEndpointImpl {
37
42
  this.builder.withIdentityV1(...keys);
38
43
  return this;
39
44
  }
45
+ setLogger(newLogger) {
46
+ this.builder.setLogger(newLogger);
47
+ return this;
48
+ }
49
+ bidirectional(set = true) {
50
+ this.protocolMode = set
51
+ ? discovery_js_1.ProtocolMode.BIDI_STREAM
52
+ : discovery_js_1.ProtocolMode.REQUEST_RESPONSE;
53
+ return this;
54
+ }
40
55
  handler() {
41
- const genericHandler = new generic_js_1.GenericHandler(this.builder);
56
+ const genericHandler = new generic_js_1.GenericHandler(this.builder, this.protocolMode);
42
57
  return (0, fetch_js_1.fetcher)(genericHandler);
43
58
  }
44
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAWH,+DAAwD;AAMxD,sDAAuD;AACvD,kDAA8C;AAoB9C,MAAa,iBAAiB;IACpB,OAAO,GAAoB,IAAI,qCAAe,EAAE,CAAC;IAEzD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,aAAqB;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAEM,YAAY,CAAC,SAAoB;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAuB;QAChC,QAAQ,CAAC,gBAAgB,CAAC,IAAkC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,IAAI,CACT,UAG4B;QAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,GAAG,IAAc;QACrC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QAGL,MAAM,cAAc,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,IAAA,kBAAO,EAAC,cAAc,CAAC,CAAC;IACjC,CAAC;CACF;AAzCD,8CAyCC"}
1
+ {"version":3,"file":"fetch_endpoint.js","sourceRoot":"","sources":["../../../../src/endpoint/fetch_endpoint.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AASH,+DAAwD;AAMxD,sDAAuD;AACvD,kDAA8C;AAC9C,wDAAqD;AAgCrD,MAAa,iBAAiB;IACR;IAApB,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAC1C,OAAO,GAAoB,IAAI,qCAAe,EAAE,CAAC;IAEzD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,aAAqB;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAEM,YAAY,CAAC,SAAoB;QACtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAuB;QAChC,QAAQ,CAAC,gBAAgB,CAAC,IAAkC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,IAAI,CACT,UAG4B;QAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,GAAG,IAAc;QACrC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS,CAAC,SAAiB;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,aAAa,CAAC,MAAe,IAAI;QACtC,IAAI,CAAC,YAAY,GAAG,GAAG;YACrB,CAAC,CAAC,2BAAY,CAAC,WAAW;YAC1B,CAAC,CAAC,2BAAY,CAAC,gBAAgB,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QAGL,MAAM,cAAc,GAAG,IAAI,2BAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3E,OAAO,IAAA,kBAAO,EAAC,cAAc,CAAC,CAAC;IACjC,CAAC;CACF;AAtDD,8CAsDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/fetch.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAEnE,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc;mBAEtB,OAAO,KAAG,QAAQ,QAAQ,CAAC;EAmBnD"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/fetch.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAEnE,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc;mBAEtB,OAAO,KAAG,QAAQ,QAAQ,CAAC;EAkBnD"}
@@ -15,12 +15,11 @@ function fetcher(handler) {
15
15
  return {
16
16
  fetch: async (event) => {
17
17
  const url = event.url;
18
- const body = new Uint8Array(await event.arrayBuffer());
19
18
  const headers = Object.fromEntries(event.headers.entries());
20
19
  const request = {
21
20
  url,
22
21
  headers,
23
- body,
22
+ body: event.body,
24
23
  };
25
24
  const resp = await handler.handle(request);
26
25
  return new Response(resp.body, {
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/fetch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH,SAAgB,OAAO,CAAC,OAAuB;IAC7C,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAc,EAAqB,EAAE;YACjD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACtB,MAAM,IAAI,GAAe,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAmB;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE3C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC7B,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AArBD,0BAqBC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/fetch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH,SAAgB,OAAO,CAAC,OAAuB;IAC7C,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,KAAc,EAAqB,EAAE;YACjD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAmB;gBAC9B,GAAG;gBACH,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE3C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC7B,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AApBD,0BAoBC"}
@@ -1,4 +1,7 @@
1
+ /// <reference types="node" />
2
+ import type { ProtocolMode } from "../../types/discovery.js";
1
3
  import type { EndpointBuilder } from "../endpoint_builder.js";
4
+ import { type ReadableStream } from "node:stream/web";
2
5
  export interface Headers {
3
6
  [name: string]: string | string[] | undefined;
4
7
  }
@@ -11,21 +14,19 @@ export interface AdditionalContext {
11
14
  export interface RestateRequest {
12
15
  readonly url: string;
13
16
  readonly headers: Headers;
14
- readonly body: Uint8Array;
17
+ readonly body: ReadableStream<Uint8Array> | null;
15
18
  }
16
19
  export interface RestateResponse {
17
20
  readonly headers: ResponseHeaders;
18
21
  readonly statusCode: number;
19
- readonly body: Uint8Array;
22
+ readonly body: ReadableStream<Uint8Array>;
20
23
  }
21
24
  export interface RestateHandler {
22
25
  handle(request: RestateRequest, context?: AdditionalContext): Promise<RestateResponse>;
23
26
  }
24
27
  /**
25
28
  * This is an internal API to support 'fetch' like handlers.
26
- * This is for now supports only request-reply style of invocations
27
- * which are suitable for platforms like AWS Lambda, Cloudflare works,
28
- * and runtimes that only support HTTP/1.1 like Bun.
29
+ * It supports both request-reply mode and bidirectional streaming mode.
29
30
  *
30
31
  * An individual handler will have to convert the shape of the incoming request
31
32
  * to a RestateRequest, and then pass it to this handler, and eventually convert back
@@ -33,9 +34,11 @@ export interface RestateHandler {
33
34
  * Different runtimes have slightly different shapes of the incoming request, and responses.
34
35
  */
35
36
  export declare class GenericHandler implements RestateHandler {
36
- private readonly endpoint;
37
- constructor(endpoint: EndpointBuilder);
37
+ readonly endpoint: EndpointBuilder;
38
+ private readonly protocolMode;
39
+ constructor(endpoint: EndpointBuilder, protocolMode: ProtocolMode);
38
40
  handle(request: RestateRequest, context?: AdditionalContext): Promise<RestateResponse>;
41
+ private _handle;
39
42
  private validateConnectionSignature;
40
43
  private handleInvoke;
41
44
  private handleDiscovery;
@@ -1 +1 @@
1
- {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CACJ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,YAAW,cAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAczC,MAAM,CACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC;YAyDb,2BAA2B;YAqC3B,YAAY;IAmD1B,OAAO,CAAC,eAAe;IAmDvB,OAAO,CAAC,eAAe;CAUxB"}
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":";AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CACJ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,YAAW,cAAc;IAEjD,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADpB,QAAQ,EAAE,eAAe,EACjB,YAAY,EAAE,YAAY;IAgBhC,MAAM,CACjB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC;YAYb,OAAO;YA4DP,2BAA2B;YAqC3B,YAAY;IA+D1B,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,eAAe;CAUxB"}
@@ -11,24 +11,20 @@
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.GenericHandler = void 0;
14
- const logger_js_1 = require("../../logger.js");
15
- const lambda_connection_js_1 = require("../../connection/lambda_connection.js");
16
14
  const invocation_js_1 = require("../../invocation.js");
17
- const decoder_js_1 = require("../../io/decoder.js");
18
15
  const state_machine_js_1 = require("../../state_machine.js");
19
16
  const errors_js_1 = require("../../types/errors.js");
20
17
  const protocol_js_1 = require("../../types/protocol.js");
21
- const discovery_js_1 = require("../../types/discovery.js");
22
18
  const components_js_1 = require("../../types/components.js");
23
19
  const validate_js_1 = require("../request_signing/validate.js");
24
20
  const user_agent_js_1 = require("../../user_agent.js");
25
- const node_buffer_1 = require("node:buffer");
26
21
  const discovery_pb_js_1 = require("../../generated/proto/discovery_pb.js");
22
+ const web_1 = require("node:stream/web");
23
+ const connection_js_1 = require("../../connection/connection.js");
24
+ const streams_js_1 = require("../../utils/streams.js");
27
25
  /**
28
26
  * This is an internal API to support 'fetch' like handlers.
29
- * This is for now supports only request-reply style of invocations
30
- * which are suitable for platforms like AWS Lambda, Cloudflare works,
31
- * and runtimes that only support HTTP/1.1 like Bun.
27
+ * It supports both request-reply mode and bidirectional streaming mode.
32
28
  *
33
29
  * An individual handler will have to convert the shape of the incoming request
34
30
  * to a RestateRequest, and then pass it to this handler, and eventually convert back
@@ -37,16 +33,29 @@ const discovery_pb_js_1 = require("../../generated/proto/discovery_pb.js");
37
33
  */
38
34
  class GenericHandler {
39
35
  endpoint;
40
- constructor(endpoint) {
36
+ protocolMode;
37
+ constructor(endpoint, protocolMode) {
41
38
  this.endpoint = endpoint;
39
+ this.protocolMode = protocolMode;
42
40
  if (!this.endpoint.keySet) {
43
- logger_js_1.rlog.warn(`Accepting requests without validating request signatures; worker access must be restricted`);
41
+ this.endpoint.rlog.warn(`Accepting requests without validating request signatures; handler access must be restricted`);
44
42
  }
45
43
  else {
46
- logger_js_1.rlog.info(`Validating requests using signing keys [${Array.from(this.endpoint.keySet.keys())}]`);
44
+ this.endpoint.rlog.info(`Validating requests using signing keys [${Array.from(this.endpoint.keySet.keys())}]`);
47
45
  }
48
46
  }
47
+ // handle does not throw.
49
48
  async handle(request, context) {
49
+ try {
50
+ return await this._handle(request, context);
51
+ }
52
+ catch (e) {
53
+ const error = (0, errors_js_1.ensureError)(e);
54
+ this.endpoint.rlog.error("Error while handling invocation: " + (error.stack ?? error.message));
55
+ return this.toErrorResponse(500, error.message);
56
+ }
57
+ }
58
+ async _handle(request, context) {
50
59
  const path = request.url;
51
60
  const error = await this.validateConnectionSignature(path, request.headers);
52
61
  if (error !== null) {
@@ -55,7 +64,7 @@ class GenericHandler {
55
64
  const parsed = (0, components_js_1.parseUrlComponents)(path);
56
65
  if (!parsed) {
57
66
  const msg = `Invalid path: path doesn't end in /invoke/SvcName/handlerName and also not in /discover: ${path}`;
58
- logger_js_1.rlog.trace(msg);
67
+ this.endpoint.rlog.trace(msg);
59
68
  return this.toErrorResponse(404, msg);
60
69
  }
61
70
  if (parsed === "discovery") {
@@ -64,30 +73,30 @@ class GenericHandler {
64
73
  const serviceProtocolVersionString = request.headers["content-type"];
65
74
  if (typeof serviceProtocolVersionString !== "string") {
66
75
  const errorMessage = "Missing content-type header";
67
- logger_js_1.rlog.warn(errorMessage);
76
+ this.endpoint.rlog.warn(errorMessage);
68
77
  return this.toErrorResponse(415, errorMessage);
69
78
  }
70
79
  const serviceProtocolVersion = (0, protocol_js_1.parseServiceProtocolVersion)(serviceProtocolVersionString);
71
80
  if (!(0, protocol_js_1.isServiceProtocolVersionSupported)(serviceProtocolVersion)) {
72
81
  const errorMessage = `Unsupported service protocol version '${serviceProtocolVersionString}'`;
73
- logger_js_1.rlog.warn(errorMessage);
82
+ this.endpoint.rlog.warn(errorMessage);
74
83
  return this.toErrorResponse(415, errorMessage);
75
84
  }
76
85
  const method = this.endpoint.componentByName(parsed.componentName);
77
86
  if (!method) {
78
87
  const msg = `No service found for URL: ${JSON.stringify(parsed)}`;
79
- logger_js_1.rlog.error(msg);
88
+ this.endpoint.rlog.error(msg);
80
89
  return this.toErrorResponse(404, msg);
81
90
  }
82
91
  const handler = method?.handlerMatching(parsed);
83
92
  if (!handler) {
84
93
  const msg = `No service found for URL: ${JSON.stringify(parsed)}`;
85
- logger_js_1.rlog.error(msg);
94
+ this.endpoint.rlog.error(msg);
86
95
  return this.toErrorResponse(404, msg);
87
96
  }
88
97
  if (!request.body) {
89
98
  const msg = "The incoming message body was null";
90
- logger_js_1.rlog.error(msg);
99
+ this.endpoint.rlog.error(msg);
91
100
  return this.toErrorResponse(400, msg);
92
101
  }
93
102
  return this.handleInvoke(handler, request.body, request.headers, serviceProtocolVersion, context ?? {});
@@ -100,7 +109,7 @@ class GenericHandler {
100
109
  try {
101
110
  const validateResponse = await (0, validate_js_1.validateRequestSignature)(this.endpoint.keySet, path, headers);
102
111
  if (!validateResponse.valid) {
103
- logger_js_1.rlog.error(`Rejecting request as its JWT did not validate: ${
112
+ this.endpoint.rlog.error(`Rejecting request as its JWT did not validate: ${
104
113
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
105
114
  validateResponse.error}`);
106
115
  return this.toErrorResponse(401, "Unauthorized");
@@ -111,59 +120,72 @@ class GenericHandler {
111
120
  }
112
121
  catch (e) {
113
122
  const error = (0, errors_js_1.ensureError)(e);
114
- logger_js_1.rlog.error("Error while attempting to validate request signature: " +
123
+ this.endpoint.rlog.error("Error while attempting to validate request signature: " +
115
124
  (error.stack ?? error.message));
116
125
  return this.toErrorResponse(401, "Unauthorized");
117
126
  }
118
127
  }
119
128
  async handleInvoke(handler, body, headers, serviceProtocolVersion, context) {
129
+ let responseController;
130
+ const responseBody = new web_1.TransformStream({
131
+ start: (ctrl) => {
132
+ responseController =
133
+ ctrl;
134
+ },
135
+ });
136
+ const connection = connection_js_1.RestateConnection.from(this.endpoint.rlog, headers, {
137
+ readable: body,
138
+ writable: responseBody.writable,
139
+ });
140
+ // step 1: collect all journal events
141
+ const journalBuilder = new invocation_js_1.InvocationBuilder(handler);
142
+ connection.pipeToConsumer(journalBuilder);
120
143
  try {
121
- // build the previous journal from the events
122
- let decodedEntries = (0, decoder_js_1.decodeMessagesBuffer)(node_buffer_1.Buffer.from(body));
123
- const journalBuilder = new invocation_js_1.InvocationBuilder(handler);
124
- decodedEntries.forEach((e) => journalBuilder.handleMessage(e));
125
- const alreadyCompleted = decodedEntries.find((e) => e.messageType === protocol_js_1.OUTPUT_ENTRY_MESSAGE_TYPE) !== undefined;
126
- decodedEntries = null;
127
- // set up and invoke the state machine
128
- const connection = new lambda_connection_js_1.LambdaConnection(headers, alreadyCompleted);
129
- const invocation = journalBuilder.build();
130
- const stateMachine = new state_machine_js_1.StateMachine(connection, invocation, discovery_js_1.ProtocolMode.REQUEST_RESPONSE, handler.kind(), invocation.inferLoggerContext(context));
131
- await stateMachine.invoke();
132
- const result = await connection.getResult();
133
- return {
134
- headers: {
135
- "content-type": (0, protocol_js_1.serviceProtocolVersionToHeaderValue)(serviceProtocolVersion),
136
- "x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
137
- },
138
- statusCode: 200,
139
- body: result,
140
- };
141
- }
142
- catch (e) {
143
- const error = (0, errors_js_1.ensureError)(e);
144
- logger_js_1.rlog.error(error.message);
145
- logger_js_1.rlog.error(error.stack);
146
- return this.toErrorResponse(500, error.message);
147
- }
144
+ await journalBuilder.completion();
145
+ }
146
+ finally {
147
+ // ensure GC friendliness, also in case of errors
148
+ connection.removeCurrentConsumer();
149
+ }
150
+ // step 2: create the state machine
151
+ const invocation = journalBuilder.build();
152
+ const stateMachine = new state_machine_js_1.StateMachine(connection, invocation, handler.kind(), this.endpoint.logger, invocation.inferLoggerContext(context));
153
+ connection.pipeToConsumer(stateMachine);
154
+ // step 3: invoke the function
155
+ // This call would propagate errors in the state machine logic, but not errors
156
+ // in the application function code. Ending a function with an error as well
157
+ // as failign an invocation and being retried are perfectly valid actions from the
158
+ // SDK's perspective.
159
+ stateMachine
160
+ .invoke()
161
+ .catch((e) => responseController.error(e)) // in bidi case the best we can do is abort the connection
162
+ .finally(() => connection.removeCurrentConsumer());
163
+ return {
164
+ headers: {
165
+ "content-type": (0, protocol_js_1.serviceProtocolVersionToHeaderValue)(serviceProtocolVersion),
166
+ "x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
167
+ },
168
+ statusCode: 200,
169
+ body: responseBody.readable,
170
+ };
148
171
  }
149
172
  handleDiscovery(acceptVersionsString) {
150
173
  if (typeof acceptVersionsString !== "string") {
151
174
  const errorMessage = "Missing accept header";
152
- logger_js_1.rlog.warn(errorMessage);
175
+ this.endpoint.rlog.warn(errorMessage);
153
176
  return this.toErrorResponse(415, errorMessage);
154
177
  }
155
178
  const serviceDiscoveryProtocolVersion = (0, protocol_js_1.selectSupportedServiceDiscoveryProtocolVersion)(acceptVersionsString);
156
179
  if (serviceDiscoveryProtocolVersion ===
157
180
  discovery_pb_js_1.ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED) {
158
181
  const errorMessage = `Unsupported service discovery protocol version '${acceptVersionsString}'`;
159
- logger_js_1.rlog.warn(errorMessage);
182
+ this.endpoint.rlog.warn(errorMessage);
160
183
  return this.toErrorResponse(415, errorMessage);
161
184
  }
162
- const discovery = this.endpoint.computeDiscovery(discovery_js_1.ProtocolMode.REQUEST_RESPONSE);
185
+ const discovery = this.endpoint.computeDiscovery(this.protocolMode);
163
186
  let body;
164
187
  if (serviceDiscoveryProtocolVersion === discovery_pb_js_1.ServiceDiscoveryProtocolVersion.V1) {
165
- const discoveryJson = JSON.stringify(discovery);
166
- body = node_buffer_1.Buffer.from(discoveryJson);
188
+ body = JSON.stringify(discovery);
167
189
  }
168
190
  else {
169
191
  // should not be reached since we check for compatibility before
@@ -175,17 +197,17 @@ class GenericHandler {
175
197
  "x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
176
198
  },
177
199
  statusCode: 200,
178
- body,
200
+ body: (0, streams_js_1.OnceStream)(new TextEncoder().encode(body)),
179
201
  };
180
202
  }
181
203
  toErrorResponse(code, message) {
182
204
  return {
183
205
  headers: {
184
- "content-type": "text/plain",
206
+ "content-type": "application/json",
185
207
  "x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
186
208
  },
187
209
  statusCode: code,
188
- body: node_buffer_1.Buffer.from(JSON.stringify({ message })),
210
+ body: (0, streams_js_1.OnceStream)(new TextEncoder().encode(JSON.stringify({ message }))),
189
211
  };
190
212
  }
191
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic.js","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/generic.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/lambda.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAEnE,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE9C,aAAa,CACjB,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,EACpD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,GAAG,iCAAiC,CAAC;CA6CtE"}
1
+ {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../../src/endpoint/handlers/lambda.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,cAAc,CAAC;AAMnE,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE9C,aAAa,CACjB,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,EACpD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,qBAAqB,GAAG,iCAAiC,CAAC;CAgEtE"}
@@ -12,6 +12,10 @@
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.LambdaHandler = void 0;
14
14
  const node_buffer_1 = require("node:buffer");
15
+ const web_1 = require("node:stream/web");
16
+ const streams_js_1 = require("../../utils/streams.js");
17
+ const user_agent_js_1 = require("../../user_agent.js");
18
+ const errors_js_1 = require("../../types/errors.js");
15
19
  class LambdaHandler {
16
20
  handler;
17
21
  constructor(handler) {
@@ -23,42 +27,55 @@ class LambdaHandler {
23
27
  //
24
28
  const path = "path" in event ? event.path : event.rawPath;
25
29
  //
26
- // Convert the request body to a Uint8Array
30
+ // Convert the request body to a Uint8Array stream
27
31
  // Lambda functions receive the body as base64 encoded string
28
32
  //
29
- let requestBody;
33
+ let body;
30
34
  if (!event.body) {
31
- requestBody = new Uint8Array(0);
35
+ body = null;
32
36
  }
33
37
  else if (event.isBase64Encoded) {
34
- requestBody = node_buffer_1.Buffer.from(event.body, "base64");
38
+ body = (0, streams_js_1.OnceStream)(node_buffer_1.Buffer.from(event.body, "base64"));
35
39
  }
36
40
  else {
37
- requestBody = node_buffer_1.Buffer.from(event.body);
41
+ body = (0, streams_js_1.OnceStream)(new TextEncoder().encode(event.body));
38
42
  }
39
43
  const request = {
40
- body: requestBody,
44
+ body,
41
45
  headers: event.headers,
42
46
  url: path,
43
47
  };
44
48
  const resp = await this.handler.handle(request, {
45
49
  AWSRequestId: context.awsRequestId,
46
50
  });
47
- let responseBody;
48
- if (!resp.body) {
49
- responseBody = "";
51
+ const chunks = [];
52
+ try {
53
+ await resp.body.pipeTo(new web_1.WritableStream({
54
+ write: (chunk) => {
55
+ chunks.push(chunk);
56
+ },
57
+ }));
50
58
  }
51
- else if (event.isBase64Encoded) {
52
- responseBody = node_buffer_1.Buffer.from(resp.body).toString("base64");
53
- }
54
- else {
55
- responseBody = node_buffer_1.Buffer.from(resp.body).toString("utf8");
59
+ catch (e) {
60
+ // unlike in the streaming case, we can actually catch errors in the response body and form a nicer error
61
+ const error = (0, errors_js_1.ensureError)(e);
62
+ this.handler.endpoint.rlog.error("Error while collecting invocation response: " +
63
+ (error.stack ?? error.message));
64
+ return {
65
+ headers: {
66
+ "content-type": "application/json",
67
+ "x-restate-server": user_agent_js_1.X_RESTATE_SERVER,
68
+ },
69
+ statusCode: 500,
70
+ isBase64Encoded: false,
71
+ body: JSON.stringify({ message: error.message }),
72
+ };
56
73
  }
57
74
  return {
58
75
  headers: resp.headers,
59
76
  statusCode: resp.statusCode,
60
- isBase64Encoded: event.isBase64Encoded,
61
- body: responseBody,
77
+ isBase64Encoded: true,
78
+ body: node_buffer_1.Buffer.concat(chunks).toString("base64"),
62
79
  };
63
80
  }
64
81
  }