@restatedev/restate-sdk 1.0.0 → 1.0.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 (473) hide show
  1. package/dist/cjs/package.json +1 -0
  2. package/dist/{src/public_api.d.ts → cjs/src/common_api.d.ts} +6 -6
  3. package/dist/cjs/src/common_api.d.ts.map +1 -0
  4. package/dist/{src/public_api.js → cjs/src/common_api.js} +13 -15
  5. package/dist/cjs/src/common_api.js.map +1 -0
  6. package/dist/{src → cjs/src}/connection/buffered_connection.d.ts +2 -2
  7. package/dist/cjs/src/connection/buffered_connection.d.ts.map +1 -0
  8. package/dist/{src → cjs/src}/connection/buffered_connection.js +2 -2
  9. package/dist/cjs/src/connection/buffered_connection.js.map +1 -0
  10. package/dist/{src → cjs/src}/connection/connection.d.ts +1 -1
  11. package/dist/cjs/src/connection/connection.d.ts.map +1 -0
  12. package/dist/cjs/src/connection/connection.js.map +1 -0
  13. package/dist/{src → cjs/src}/connection/http_connection.d.ts +4 -4
  14. package/dist/cjs/src/connection/http_connection.d.ts.map +1 -0
  15. package/dist/{src → cjs/src}/connection/http_connection.js +8 -8
  16. package/dist/cjs/src/connection/http_connection.js.map +1 -0
  17. package/dist/{src → cjs/src}/connection/lambda_connection.d.ts +2 -2
  18. package/dist/cjs/src/connection/lambda_connection.d.ts.map +1 -0
  19. package/dist/{src → cjs/src}/connection/lambda_connection.js +8 -8
  20. package/dist/cjs/src/connection/lambda_connection.js.map +1 -0
  21. package/dist/{src → cjs/src}/context.d.ts +1 -1
  22. package/dist/cjs/src/context.d.ts.map +1 -0
  23. package/dist/{src → cjs/src}/context.js +5 -5
  24. package/dist/cjs/src/context.js.map +1 -0
  25. package/dist/{src → cjs/src}/context_impl.d.ts +7 -18
  26. package/dist/cjs/src/context_impl.d.ts.map +1 -0
  27. package/dist/{src → cjs/src}/context_impl.js +82 -110
  28. package/dist/cjs/src/context_impl.js.map +1 -0
  29. package/dist/cjs/src/endpoint/endpoint_builder.d.ts +18 -0
  30. package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -0
  31. package/dist/{src/endpoint/endpoint_impl.js → cjs/src/endpoint/endpoint_builder.js} +18 -78
  32. package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -0
  33. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +37 -0
  34. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -0
  35. package/dist/cjs/src/endpoint/fetch_endpoint.js +46 -0
  36. package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -0
  37. package/dist/cjs/src/endpoint/handlers/fetch.d.ts +6 -0
  38. package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -0
  39. package/dist/cjs/src/endpoint/handlers/fetch.js +34 -0
  40. package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -0
  41. package/dist/cjs/src/endpoint/handlers/generic.d.ts +44 -0
  42. package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -0
  43. package/dist/cjs/src/endpoint/handlers/generic.js +193 -0
  44. package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -0
  45. package/dist/cjs/src/endpoint/handlers/lambda.d.ts +8 -0
  46. package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -0
  47. package/dist/cjs/src/endpoint/handlers/lambda.js +66 -0
  48. package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -0
  49. package/dist/{src/endpoint/http2_handler.d.ts → cjs/src/endpoint/handlers/node.d.ts} +4 -4
  50. package/dist/cjs/src/endpoint/handlers/node.d.ts.map +1 -0
  51. package/dist/{src/endpoint/http2_handler.js → cjs/src/endpoint/handlers/node.js} +37 -35
  52. package/dist/cjs/src/endpoint/handlers/node.js.map +1 -0
  53. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +32 -0
  54. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -0
  55. package/dist/cjs/src/endpoint/lambda_endpoint.js +55 -0
  56. package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -0
  57. package/dist/cjs/src/endpoint/node_endpoint.d.ts +19 -0
  58. package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -0
  59. package/dist/cjs/src/endpoint/node_endpoint.js +116 -0
  60. package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -0
  61. package/dist/cjs/src/endpoint/request_signing/basex.d.ts.map +1 -0
  62. package/dist/cjs/src/endpoint/request_signing/basex.js.map +1 -0
  63. package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.d.ts +1 -1
  64. package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
  65. package/dist/{src → cjs/src}/endpoint/request_signing/ed25519.js +3 -1
  66. package/dist/cjs/src/endpoint/request_signing/ed25519.js.map +1 -0
  67. package/dist/{src → cjs/src}/endpoint/request_signing/v1.d.ts +2 -2
  68. package/dist/cjs/src/endpoint/request_signing/v1.d.ts.map +1 -0
  69. package/dist/{src → cjs/src}/endpoint/request_signing/v1.js +9 -16
  70. package/dist/cjs/src/endpoint/request_signing/v1.js.map +1 -0
  71. package/dist/{src → cjs/src}/endpoint/request_signing/validate.d.ts +1 -1
  72. package/dist/cjs/src/endpoint/request_signing/validate.d.ts.map +1 -0
  73. package/dist/{src → cjs/src}/endpoint/request_signing/validate.js +3 -3
  74. package/dist/cjs/src/endpoint/request_signing/validate.js.map +1 -0
  75. package/dist/{src → cjs/src}/endpoint.d.ts +26 -27
  76. package/dist/cjs/src/endpoint.d.ts.map +1 -0
  77. package/dist/{src → cjs/src}/endpoint.js +0 -9
  78. package/dist/cjs/src/endpoint.js.map +1 -0
  79. package/dist/cjs/src/fetch.d.ts +7 -0
  80. package/dist/cjs/src/fetch.d.ts.map +1 -0
  81. package/dist/cjs/src/fetch.js +37 -0
  82. package/dist/cjs/src/fetch.js.map +1 -0
  83. package/dist/cjs/src/generated/proto/discovery_pb.d.ts.map +1 -0
  84. package/dist/{src → cjs/src}/generated/proto/discovery_pb.js +1 -1
  85. package/dist/cjs/src/generated/proto/discovery_pb.js.map +1 -0
  86. package/dist/cjs/src/generated/proto/javascript_pb.d.ts.map +1 -0
  87. package/dist/cjs/src/generated/proto/javascript_pb.js.map +1 -0
  88. package/dist/cjs/src/generated/proto/protocol_pb.d.ts.map +1 -0
  89. package/dist/{src → cjs/src}/generated/proto/protocol_pb.js +1 -1
  90. package/dist/cjs/src/generated/proto/protocol_pb.js.map +1 -0
  91. package/dist/cjs/src/generated/version.d.ts +2 -0
  92. package/dist/cjs/src/generated/version.d.ts.map +1 -0
  93. package/dist/{src → cjs/src}/generated/version.js +1 -1
  94. package/dist/cjs/src/generated/version.js.map +1 -0
  95. package/dist/{src → cjs/src}/invocation.d.ts +5 -5
  96. package/dist/cjs/src/invocation.d.ts.map +1 -0
  97. package/dist/{src → cjs/src}/invocation.js +14 -14
  98. package/dist/cjs/src/invocation.js.map +1 -0
  99. package/dist/{src → cjs/src}/io/decoder.d.ts +1 -1
  100. package/dist/cjs/src/io/decoder.d.ts.map +1 -0
  101. package/dist/{src → cjs/src}/io/decoder.js +19 -17
  102. package/dist/cjs/src/io/decoder.js.map +1 -0
  103. package/dist/{src → cjs/src}/io/encoder.d.ts +1 -1
  104. package/dist/cjs/src/io/encoder.d.ts.map +1 -0
  105. package/dist/{src → cjs/src}/io/encoder.js +6 -5
  106. package/dist/cjs/src/io/encoder.js.map +1 -0
  107. package/dist/{src → cjs/src}/journal.d.ts +7 -7
  108. package/dist/cjs/src/journal.d.ts.map +1 -0
  109. package/dist/{src → cjs/src}/journal.js +38 -38
  110. package/dist/cjs/src/journal.js.map +1 -0
  111. package/dist/cjs/src/lambda.d.ts +7 -0
  112. package/dist/cjs/src/lambda.d.ts.map +1 -0
  113. package/dist/cjs/src/lambda.js +37 -0
  114. package/dist/cjs/src/lambda.js.map +1 -0
  115. package/dist/{src → cjs/src}/local_state_store.d.ts +2 -1
  116. package/dist/cjs/src/local_state_store.d.ts.map +1 -0
  117. package/dist/{src → cjs/src}/local_state_store.js +10 -10
  118. package/dist/cjs/src/local_state_store.js.map +1 -0
  119. package/dist/cjs/src/logger.d.ts.map +1 -0
  120. package/dist/{src → cjs/src}/logger.js +1 -1
  121. package/dist/cjs/src/logger.js.map +1 -0
  122. package/dist/{src → cjs/src}/promise_combinator_tracker.d.ts +1 -1
  123. package/dist/cjs/src/promise_combinator_tracker.d.ts.map +1 -0
  124. package/dist/{src → cjs/src}/promise_combinator_tracker.js +7 -5
  125. package/dist/cjs/src/promise_combinator_tracker.js.map +1 -0
  126. package/dist/cjs/src/public_api.d.ts +7 -0
  127. package/dist/cjs/src/public_api.d.ts.map +1 -0
  128. package/dist/cjs/src/public_api.js +37 -0
  129. package/dist/cjs/src/public_api.js.map +1 -0
  130. package/dist/{src → cjs/src}/state_machine.d.ts +12 -12
  131. package/dist/cjs/src/state_machine.d.ts.map +1 -0
  132. package/dist/{src → cjs/src}/state_machine.js +53 -53
  133. package/dist/cjs/src/state_machine.js.map +1 -0
  134. package/dist/{src → cjs/src}/types/components.d.ts +4 -3
  135. package/dist/cjs/src/types/components.d.ts.map +1 -0
  136. package/dist/{src → cjs/src}/types/components.js +4 -4
  137. package/dist/cjs/src/types/components.js.map +1 -0
  138. package/dist/cjs/src/types/discovery.d.ts.map +1 -0
  139. package/dist/{src → cjs/src}/types/discovery.js +3 -3
  140. package/dist/cjs/src/types/discovery.js.map +1 -0
  141. package/dist/{src → cjs/src}/types/errors.d.ts +2 -2
  142. package/dist/cjs/src/types/errors.d.ts.map +1 -0
  143. package/dist/{src → cjs/src}/types/errors.js +8 -8
  144. package/dist/cjs/src/types/errors.js.map +1 -0
  145. package/dist/{src → cjs/src}/types/protocol.d.ts +6 -8
  146. package/dist/cjs/src/types/protocol.d.ts.map +1 -0
  147. package/dist/{src → cjs/src}/types/protocol.js +61 -61
  148. package/dist/cjs/src/types/protocol.js.map +1 -0
  149. package/dist/{src → cjs/src}/types/rpc.d.ts +2 -2
  150. package/dist/cjs/src/types/rpc.d.ts.map +1 -0
  151. package/dist/{src → cjs/src}/types/rpc.js +8 -7
  152. package/dist/cjs/src/types/rpc.js.map +1 -0
  153. package/dist/{src → cjs/src}/types/types.d.ts +1 -1
  154. package/dist/cjs/src/types/types.d.ts.map +1 -0
  155. package/dist/{src → cjs/src}/types/types.js +14 -14
  156. package/dist/cjs/src/types/types.js.map +1 -0
  157. package/dist/cjs/src/user_agent.d.ts +2 -0
  158. package/dist/cjs/src/user_agent.d.ts.map +1 -0
  159. package/dist/{src → cjs/src}/user_agent.js +2 -2
  160. package/dist/cjs/src/user_agent.js.map +1 -0
  161. package/dist/cjs/src/utils/buffer.d.ts +5 -0
  162. package/dist/cjs/src/utils/buffer.d.ts.map +1 -0
  163. package/dist/cjs/src/utils/buffer.js +59 -0
  164. package/dist/cjs/src/utils/buffer.js.map +1 -0
  165. package/dist/{src → cjs/src}/utils/message_logger.d.ts +1 -1
  166. package/dist/cjs/src/utils/message_logger.d.ts.map +1 -0
  167. package/dist/{src → cjs/src}/utils/message_logger.js +7 -7
  168. package/dist/cjs/src/utils/message_logger.js.map +1 -0
  169. package/dist/cjs/src/utils/promises.d.ts.map +1 -0
  170. package/dist/{src → cjs/src}/utils/promises.js +2 -1
  171. package/dist/cjs/src/utils/promises.js.map +1 -0
  172. package/dist/{src → cjs/src}/utils/rand.d.ts +3 -3
  173. package/dist/cjs/src/utils/rand.d.ts.map +1 -0
  174. package/dist/{src → cjs/src}/utils/rand.js +10 -15
  175. package/dist/cjs/src/utils/rand.js.map +1 -0
  176. package/dist/cjs/src/utils/serde.d.ts +5 -0
  177. package/dist/cjs/src/utils/serde.d.ts.map +1 -0
  178. package/dist/{src → cjs/src}/utils/serde.js +6 -4
  179. package/dist/cjs/src/utils/serde.js.map +1 -0
  180. package/dist/cjs/src/utils/utils.d.ts.map +1 -0
  181. package/dist/{src → cjs/src}/utils/utils.js +11 -11
  182. package/dist/cjs/src/utils/utils.js.map +1 -0
  183. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  184. package/dist/esm/src/common_api.d.ts +7 -0
  185. package/dist/esm/src/common_api.d.ts.map +1 -0
  186. package/dist/esm/src/common_api.js +14 -0
  187. package/dist/esm/src/common_api.js.map +1 -0
  188. package/dist/esm/src/connection/buffered_connection.d.ts +14 -0
  189. package/dist/esm/src/connection/buffered_connection.d.ts.map +1 -0
  190. package/dist/esm/src/connection/buffered_connection.js +40 -0
  191. package/dist/esm/src/connection/buffered_connection.js.map +1 -0
  192. package/dist/esm/src/connection/connection.d.ts +20 -0
  193. package/dist/esm/src/connection/connection.d.ts.map +1 -0
  194. package/dist/esm/src/connection/connection.js +12 -0
  195. package/dist/esm/src/connection/connection.js.map +1 -0
  196. package/dist/esm/src/connection/http_connection.d.ts +77 -0
  197. package/dist/esm/src/connection/http_connection.d.ts.map +1 -0
  198. package/dist/esm/src/connection/http_connection.js +204 -0
  199. package/dist/esm/src/connection/http_connection.js.map +1 -0
  200. package/dist/esm/src/connection/lambda_connection.d.ts +17 -0
  201. package/dist/esm/src/connection/lambda_connection.d.ts.map +1 -0
  202. package/dist/esm/src/connection/lambda_connection.js +60 -0
  203. package/dist/esm/src/connection/lambda_connection.js.map +1 -0
  204. package/dist/esm/src/context.d.ts +541 -0
  205. package/dist/esm/src/context.d.ts.map +1 -0
  206. package/dist/esm/src/context.js +75 -0
  207. package/dist/esm/src/context.js.map +1 -0
  208. package/dist/esm/src/context_impl.d.ts +54 -0
  209. package/dist/esm/src/context_impl.d.ts.map +1 -0
  210. package/dist/esm/src/context_impl.js +515 -0
  211. package/dist/esm/src/context_impl.js.map +1 -0
  212. package/dist/esm/src/endpoint/endpoint_builder.d.ts +18 -0
  213. package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -0
  214. package/dist/esm/src/endpoint/endpoint_builder.js +126 -0
  215. package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -0
  216. package/dist/esm/src/endpoint/fetch_endpoint.d.ts +37 -0
  217. package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -0
  218. package/dist/esm/src/endpoint/fetch_endpoint.js +42 -0
  219. package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -0
  220. package/dist/esm/src/endpoint/handlers/fetch.d.ts +6 -0
  221. package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -0
  222. package/dist/esm/src/endpoint/handlers/fetch.js +30 -0
  223. package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -0
  224. package/dist/esm/src/endpoint/handlers/generic.d.ts +44 -0
  225. package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -0
  226. package/dist/esm/src/endpoint/handlers/generic.js +189 -0
  227. package/dist/esm/src/endpoint/handlers/generic.js.map +1 -0
  228. package/dist/esm/src/endpoint/handlers/lambda.d.ts +8 -0
  229. package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -0
  230. package/dist/esm/src/endpoint/handlers/lambda.js +62 -0
  231. package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -0
  232. package/dist/esm/src/endpoint/handlers/node.d.ts +11 -0
  233. package/dist/esm/src/endpoint/handlers/node.d.ts.map +1 -0
  234. package/dist/esm/src/endpoint/handlers/node.js +181 -0
  235. package/dist/esm/src/endpoint/handlers/node.js.map +1 -0
  236. package/dist/esm/src/endpoint/lambda_endpoint.d.ts +32 -0
  237. package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -0
  238. package/dist/esm/src/endpoint/lambda_endpoint.js +51 -0
  239. package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -0
  240. package/dist/esm/src/endpoint/node_endpoint.d.ts +19 -0
  241. package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -0
  242. package/dist/esm/src/endpoint/node_endpoint.js +89 -0
  243. package/dist/esm/src/endpoint/node_endpoint.js.map +1 -0
  244. package/dist/esm/src/endpoint/request_signing/basex.d.ts +10 -0
  245. package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +1 -0
  246. package/dist/esm/src/endpoint/request_signing/basex.js +136 -0
  247. package/dist/esm/src/endpoint/request_signing/basex.js.map +1 -0
  248. package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +17 -0
  249. package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
  250. package/dist/esm/src/endpoint/request_signing/ed25519.js +52 -0
  251. package/dist/esm/src/endpoint/request_signing/ed25519.js.map +1 -0
  252. package/dist/esm/src/endpoint/request_signing/v1.d.ts +9 -0
  253. package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +1 -0
  254. package/dist/esm/src/endpoint/request_signing/v1.js +133 -0
  255. package/dist/esm/src/endpoint/request_signing/v1.js.map +1 -0
  256. package/dist/esm/src/endpoint/request_signing/validate.d.ts +18 -0
  257. package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +1 -0
  258. package/dist/esm/src/endpoint/request_signing/validate.js +40 -0
  259. package/dist/esm/src/endpoint/request_signing/validate.js.map +1 -0
  260. package/dist/esm/src/endpoint.d.ts +103 -0
  261. package/dist/esm/src/endpoint.d.ts.map +1 -0
  262. package/dist/esm/src/endpoint.js +12 -0
  263. package/dist/esm/src/endpoint.js.map +1 -0
  264. package/dist/esm/src/fetch.d.ts +7 -0
  265. package/dist/esm/src/fetch.d.ts.map +1 -0
  266. package/dist/esm/src/fetch.js +19 -0
  267. package/dist/esm/src/fetch.js.map +1 -0
  268. package/dist/esm/src/generated/proto/discovery_pb.d.ts +18 -0
  269. package/dist/esm/src/generated/proto/discovery_pb.d.ts.map +1 -0
  270. package/dist/esm/src/generated/proto/discovery_pb.js +37 -0
  271. package/dist/esm/src/generated/proto/discovery_pb.js.map +1 -0
  272. package/dist/esm/src/generated/proto/javascript_pb.d.ts +26 -0
  273. package/dist/esm/src/generated/proto/javascript_pb.d.ts.map +1 -0
  274. package/dist/esm/src/generated/proto/javascript_pb.js +48 -0
  275. package/dist/esm/src/generated/proto/javascript_pb.js.map +1 -0
  276. package/dist/esm/src/generated/proto/protocol_pb.d.ts +1051 -0
  277. package/dist/esm/src/generated/proto/protocol_pb.d.ts.map +1 -0
  278. package/dist/esm/src/generated/proto/protocol_pb.js +1258 -0
  279. package/dist/esm/src/generated/proto/protocol_pb.js.map +1 -0
  280. package/dist/esm/src/generated/version.d.ts +2 -0
  281. package/dist/esm/src/generated/version.d.ts.map +1 -0
  282. package/dist/esm/src/generated/version.js +2 -0
  283. package/dist/esm/src/generated/version.js.map +1 -0
  284. package/dist/esm/src/invocation.d.ts +48 -0
  285. package/dist/esm/src/invocation.d.ts.map +1 -0
  286. package/dist/esm/src/invocation.js +153 -0
  287. package/dist/esm/src/invocation.js.map +1 -0
  288. package/dist/esm/src/io/decoder.d.ts +9 -0
  289. package/dist/esm/src/io/decoder.d.ts.map +1 -0
  290. package/dist/esm/src/io/decoder.js +129 -0
  291. package/dist/esm/src/io/decoder.js.map +1 -0
  292. package/dist/esm/src/io/encoder.d.ts +7 -0
  293. package/dist/esm/src/io/encoder.d.ts.map +1 -0
  294. package/dist/esm/src/io/encoder.js +49 -0
  295. package/dist/esm/src/io/encoder.js.map +1 -0
  296. package/dist/esm/src/journal.d.ts +52 -0
  297. package/dist/esm/src/journal.d.ts.map +1 -0
  298. package/dist/esm/src/journal.js +412 -0
  299. package/dist/esm/src/journal.js.map +1 -0
  300. package/dist/esm/src/lambda.d.ts +7 -0
  301. package/dist/esm/src/lambda.d.ts.map +1 -0
  302. package/dist/esm/src/lambda.js +19 -0
  303. package/dist/esm/src/lambda.js.map +1 -0
  304. package/dist/esm/src/local_state_store.d.ts +16 -0
  305. package/dist/esm/src/local_state_store.d.ts.map +1 -0
  306. package/dist/esm/src/local_state_store.js +80 -0
  307. package/dist/esm/src/local_state_store.js.map +1 -0
  308. package/dist/esm/src/logger.d.ts +27 -0
  309. package/dist/esm/src/logger.d.ts.map +1 -0
  310. package/dist/esm/src/logger.js +146 -0
  311. package/dist/esm/src/logger.js.map +1 -0
  312. package/dist/esm/src/promise_combinator_tracker.d.ts +29 -0
  313. package/dist/esm/src/promise_combinator_tracker.d.ts.map +1 -0
  314. package/dist/esm/src/promise_combinator_tracker.js +125 -0
  315. package/dist/esm/src/promise_combinator_tracker.js.map +1 -0
  316. package/dist/esm/src/public_api.d.ts +7 -0
  317. package/dist/esm/src/public_api.d.ts.map +1 -0
  318. package/dist/esm/src/public_api.js +19 -0
  319. package/dist/esm/src/public_api.js.map +1 -0
  320. package/dist/esm/src/state_machine.d.ts +86 -0
  321. package/dist/esm/src/state_machine.d.ts.map +1 -0
  322. package/dist/esm/src/state_machine.js +407 -0
  323. package/dist/esm/src/state_machine.js.map +1 -0
  324. package/dist/esm/src/types/components.d.ts +78 -0
  325. package/dist/esm/src/types/components.d.ts.map +1 -0
  326. package/dist/esm/src/types/components.js +227 -0
  327. package/dist/esm/src/types/components.js.map +1 -0
  328. package/dist/esm/src/types/discovery.d.ts +43 -0
  329. package/dist/esm/src/types/discovery.d.ts.map +1 -0
  330. package/dist/esm/src/types/discovery.js +28 -0
  331. package/dist/esm/src/types/discovery.js.map +1 -0
  332. package/dist/esm/src/types/errors.d.ts +53 -0
  333. package/dist/esm/src/types/errors.d.ts.map +1 -0
  334. package/dist/esm/src/types/errors.js +117 -0
  335. package/dist/esm/src/types/errors.js.map +1 -0
  336. package/dist/esm/src/types/protocol.d.ts +40 -0
  337. package/dist/esm/src/types/protocol.d.ts.map +1 -0
  338. package/dist/esm/src/types/protocol.js +206 -0
  339. package/dist/esm/src/types/protocol.js.map +1 -0
  340. package/dist/esm/src/types/rpc.d.ts +300 -0
  341. package/dist/esm/src/types/rpc.d.ts.map +1 -0
  342. package/dist/esm/src/types/rpc.js +412 -0
  343. package/dist/esm/src/types/rpc.js.map +1 -0
  344. package/dist/esm/src/types/types.d.ts +20 -0
  345. package/dist/esm/src/types/types.d.ts.map +1 -0
  346. package/dist/esm/src/types/types.js +105 -0
  347. package/dist/esm/src/types/types.js.map +1 -0
  348. package/dist/esm/src/user_agent.d.ts +2 -0
  349. package/dist/esm/src/user_agent.d.ts.map +1 -0
  350. package/dist/esm/src/user_agent.js +13 -0
  351. package/dist/esm/src/user_agent.js.map +1 -0
  352. package/dist/esm/src/utils/buffer.d.ts +5 -0
  353. package/dist/esm/src/utils/buffer.d.ts.map +1 -0
  354. package/dist/esm/src/utils/buffer.js +53 -0
  355. package/dist/esm/src/utils/buffer.js.map +1 -0
  356. package/dist/esm/src/utils/message_logger.d.ts +7 -0
  357. package/dist/esm/src/utils/message_logger.d.ts.map +1 -0
  358. package/dist/esm/src/utils/message_logger.js +75 -0
  359. package/dist/esm/src/utils/message_logger.js.map +1 -0
  360. package/dist/esm/src/utils/promises.d.ts +15 -0
  361. package/dist/esm/src/utils/promises.d.ts.map +1 -0
  362. package/dist/esm/src/utils/promises.js +63 -0
  363. package/dist/esm/src/utils/promises.js.map +1 -0
  364. package/dist/esm/src/utils/rand.d.ts +15 -0
  365. package/dist/esm/src/utils/rand.d.ts.map +1 -0
  366. package/dist/esm/src/utils/rand.js +106 -0
  367. package/dist/esm/src/utils/rand.js.map +1 -0
  368. package/dist/esm/src/utils/serde.d.ts +5 -0
  369. package/dist/esm/src/utils/serde.d.ts.map +1 -0
  370. package/dist/esm/src/utils/serde.js +43 -0
  371. package/dist/esm/src/utils/serde.js.map +1 -0
  372. package/dist/esm/src/utils/utils.d.ts +5 -0
  373. package/dist/esm/src/utils/utils.d.ts.map +1 -0
  374. package/dist/esm/src/utils/utils.js +109 -0
  375. package/dist/esm/src/utils/utils.js.map +1 -0
  376. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  377. package/package.json +57 -19
  378. package/dist/src/connection/buffered_connection.d.ts.map +0 -1
  379. package/dist/src/connection/buffered_connection.js.map +0 -1
  380. package/dist/src/connection/connection.d.ts.map +0 -1
  381. package/dist/src/connection/connection.js.map +0 -1
  382. package/dist/src/connection/http_connection.d.ts.map +0 -1
  383. package/dist/src/connection/http_connection.js.map +0 -1
  384. package/dist/src/connection/lambda_connection.d.ts.map +0 -1
  385. package/dist/src/connection/lambda_connection.js.map +0 -1
  386. package/dist/src/context.d.ts.map +0 -1
  387. package/dist/src/context.js.map +0 -1
  388. package/dist/src/context_impl.d.ts.map +0 -1
  389. package/dist/src/context_impl.js.map +0 -1
  390. package/dist/src/endpoint/endpoint_impl.d.ts +0 -27
  391. package/dist/src/endpoint/endpoint_impl.d.ts.map +0 -1
  392. package/dist/src/endpoint/endpoint_impl.js.map +0 -1
  393. package/dist/src/endpoint/http2_handler.d.ts.map +0 -1
  394. package/dist/src/endpoint/http2_handler.js.map +0 -1
  395. package/dist/src/endpoint/lambda_handler.d.ts +0 -15
  396. package/dist/src/endpoint/lambda_handler.d.ts.map +0 -1
  397. package/dist/src/endpoint/lambda_handler.js +0 -176
  398. package/dist/src/endpoint/lambda_handler.js.map +0 -1
  399. package/dist/src/endpoint/request_signing/basex.d.ts.map +0 -1
  400. package/dist/src/endpoint/request_signing/basex.js.map +0 -1
  401. package/dist/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
  402. package/dist/src/endpoint/request_signing/ed25519.js.map +0 -1
  403. package/dist/src/endpoint/request_signing/v1.d.ts.map +0 -1
  404. package/dist/src/endpoint/request_signing/v1.js.map +0 -1
  405. package/dist/src/endpoint/request_signing/validate.d.ts.map +0 -1
  406. package/dist/src/endpoint/request_signing/validate.js.map +0 -1
  407. package/dist/src/endpoint.d.ts.map +0 -1
  408. package/dist/src/endpoint.js.map +0 -1
  409. package/dist/src/generated/proto/discovery_pb.d.ts.map +0 -1
  410. package/dist/src/generated/proto/discovery_pb.js.map +0 -1
  411. package/dist/src/generated/proto/javascript_pb.d.ts.map +0 -1
  412. package/dist/src/generated/proto/javascript_pb.js.map +0 -1
  413. package/dist/src/generated/proto/protocol_pb.d.ts.map +0 -1
  414. package/dist/src/generated/proto/protocol_pb.js.map +0 -1
  415. package/dist/src/generated/version.d.ts +0 -2
  416. package/dist/src/generated/version.d.ts.map +0 -1
  417. package/dist/src/generated/version.js.map +0 -1
  418. package/dist/src/invocation.d.ts.map +0 -1
  419. package/dist/src/invocation.js.map +0 -1
  420. package/dist/src/io/decoder.d.ts.map +0 -1
  421. package/dist/src/io/decoder.js.map +0 -1
  422. package/dist/src/io/encoder.d.ts.map +0 -1
  423. package/dist/src/io/encoder.js.map +0 -1
  424. package/dist/src/journal.d.ts.map +0 -1
  425. package/dist/src/journal.js.map +0 -1
  426. package/dist/src/local_state_store.d.ts.map +0 -1
  427. package/dist/src/local_state_store.js.map +0 -1
  428. package/dist/src/logger.d.ts.map +0 -1
  429. package/dist/src/logger.js.map +0 -1
  430. package/dist/src/promise_combinator_tracker.d.ts.map +0 -1
  431. package/dist/src/promise_combinator_tracker.js.map +0 -1
  432. package/dist/src/public_api.d.ts.map +0 -1
  433. package/dist/src/public_api.js.map +0 -1
  434. package/dist/src/state_machine.d.ts.map +0 -1
  435. package/dist/src/state_machine.js.map +0 -1
  436. package/dist/src/types/components.d.ts.map +0 -1
  437. package/dist/src/types/components.js.map +0 -1
  438. package/dist/src/types/discovery.d.ts.map +0 -1
  439. package/dist/src/types/discovery.js.map +0 -1
  440. package/dist/src/types/errors.d.ts.map +0 -1
  441. package/dist/src/types/errors.js.map +0 -1
  442. package/dist/src/types/protocol.d.ts.map +0 -1
  443. package/dist/src/types/protocol.js.map +0 -1
  444. package/dist/src/types/rpc.d.ts.map +0 -1
  445. package/dist/src/types/rpc.js.map +0 -1
  446. package/dist/src/types/types.d.ts.map +0 -1
  447. package/dist/src/types/types.js.map +0 -1
  448. package/dist/src/user_agent.d.ts +0 -2
  449. package/dist/src/user_agent.d.ts.map +0 -1
  450. package/dist/src/user_agent.js.map +0 -1
  451. package/dist/src/utils/message_logger.d.ts.map +0 -1
  452. package/dist/src/utils/message_logger.js.map +0 -1
  453. package/dist/src/utils/promises.d.ts.map +0 -1
  454. package/dist/src/utils/promises.js.map +0 -1
  455. package/dist/src/utils/rand.d.ts.map +0 -1
  456. package/dist/src/utils/rand.js.map +0 -1
  457. package/dist/src/utils/serde.d.ts +0 -5
  458. package/dist/src/utils/serde.d.ts.map +0 -1
  459. package/dist/src/utils/serde.js.map +0 -1
  460. package/dist/src/utils/utils.d.ts.map +0 -1
  461. package/dist/src/utils/utils.js.map +0 -1
  462. package/dist/tsconfig.tsbuildinfo +0 -1
  463. /package/dist/{src → cjs/src}/connection/connection.js +0 -0
  464. /package/dist/{src → cjs/src}/endpoint/request_signing/basex.d.ts +0 -0
  465. /package/dist/{src → cjs/src}/endpoint/request_signing/basex.js +0 -0
  466. /package/dist/{src → cjs/src}/generated/proto/discovery_pb.d.ts +0 -0
  467. /package/dist/{src → cjs/src}/generated/proto/javascript_pb.d.ts +0 -0
  468. /package/dist/{src → cjs/src}/generated/proto/javascript_pb.js +0 -0
  469. /package/dist/{src → cjs/src}/generated/proto/protocol_pb.d.ts +0 -0
  470. /package/dist/{src → cjs/src}/logger.d.ts +0 -0
  471. /package/dist/{src → cjs/src}/types/discovery.d.ts +0 -0
  472. /package/dist/{src → cjs/src}/utils/promises.d.ts +0 -0
  473. /package/dist/{src → cjs/src}/utils/utils.d.ts +0 -0
@@ -0,0 +1,412 @@
1
+ /*
2
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
+ *
4
+ * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * which is released under the MIT license.
6
+ *
7
+ * You can find a copy of the license in file LICENSE in the root
8
+ * directory of this repository or package, or at
9
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
+ */
11
+ import * as p from "./types/protocol.js";
12
+ import { GetStateKeysEntryMessage_StateKeys } from "./generated/proto/protocol_pb.js";
13
+ import { AWAKEABLE_ENTRY_MESSAGE_TYPE, BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, CLEAR_STATE_ENTRY_MESSAGE_TYPE, COMBINATOR_ENTRY_MESSAGE, COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, GET_STATE_ENTRY_MESSAGE_TYPE, GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, INVOKE_ENTRY_MESSAGE_TYPE, OUTPUT_ENTRY_MESSAGE_TYPE, INPUT_ENTRY_MESSAGE_TYPE, SET_STATE_ENTRY_MESSAGE_TYPE, SIDE_EFFECT_ENTRY_MESSAGE_TYPE, SLEEP_ENTRY_MESSAGE_TYPE, SUSPENSION_MESSAGE_TYPE, } from "./types/protocol.js";
14
+ import { equalityCheckers, jsonDeserialize } from "./utils/utils.js";
15
+ import { Message } from "./types/types.js";
16
+ import { failureToError, RetryableError } from "./types/errors.js";
17
+ import { CompletablePromise } from "./utils/promises.js";
18
+ import { Buffer } from "node:buffer";
19
+ const RESOLVED = Promise.resolve(undefined);
20
+ export class Journal {
21
+ invocation;
22
+ state = NewExecutionState.REPLAYING;
23
+ userCodeJournalIndex = 0;
24
+ // Journal entries waiting for arrival of runtime completion
25
+ // 0 = root promise of the method invocation
26
+ pendingJournalEntries = new Map();
27
+ constructor(invocation) {
28
+ this.invocation = invocation;
29
+ const inputMessage = invocation.replayEntries.get(0);
30
+ if (!inputMessage ||
31
+ inputMessage.messageType !== INPUT_ENTRY_MESSAGE_TYPE) {
32
+ throw RetryableError.protocolViolation("First message of replay entries needs to be PollInputStreamMessage");
33
+ }
34
+ this.handleInputMessage(inputMessage.message);
35
+ }
36
+ handleInputMessage(m) {
37
+ if (this.invocation.nbEntriesToReplay === 1) {
38
+ this.transitionState(NewExecutionState.PROCESSING);
39
+ }
40
+ const rootEntry = new JournalEntry(p.INPUT_ENTRY_MESSAGE_TYPE, m);
41
+ this.pendingJournalEntries.set(0, rootEntry);
42
+ }
43
+ handleUserSideMessage(messageType, message
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ ) {
46
+ this.incrementUserCodeIndex();
47
+ switch (this.state) {
48
+ case NewExecutionState.REPLAYING: {
49
+ const replayEntry = this.invocation.replayEntries.get(this.userCodeJournalIndex);
50
+ if (replayEntry === undefined) {
51
+ throw RetryableError.internal(`Illegal state: no replay message was received for the entry at journal index ${this.userCodeJournalIndex}`);
52
+ }
53
+ const journalEntry = new JournalEntry(messageType, message);
54
+ this.handleReplay(this.userCodeJournalIndex, replayEntry, journalEntry);
55
+ return journalEntry.completablePromise.promise;
56
+ }
57
+ case NewExecutionState.PROCESSING: {
58
+ switch (messageType) {
59
+ case p.SUSPENSION_MESSAGE_TYPE:
60
+ case p.OUTPUT_ENTRY_MESSAGE_TYPE: {
61
+ this.handleClosingMessage(messageType, message);
62
+ return RESOLVED;
63
+ }
64
+ case p.SET_STATE_ENTRY_MESSAGE_TYPE:
65
+ case p.CLEAR_STATE_ENTRY_MESSAGE_TYPE:
66
+ case p.CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE:
67
+ case p.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE:
68
+ case p.BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE: {
69
+ // Do not need completion
70
+ return RESOLVED;
71
+ }
72
+ case p.GET_STATE_ENTRY_MESSAGE_TYPE: {
73
+ const getStateMsg = message;
74
+ if (getStateMsg.result.case === "value") {
75
+ return Promise.resolve(getStateMsg.result.value);
76
+ }
77
+ if (getStateMsg.result.case === "empty") {
78
+ return Promise.resolve(getStateMsg.result.value);
79
+ }
80
+ // Need to retrieve state by going to the runtime.
81
+ return this.appendJournalEntry(messageType, message);
82
+ }
83
+ case p.GET_STATE_KEYS_ENTRY_MESSAGE_TYPE: {
84
+ const getStateMsg = message;
85
+ if (getStateMsg.result.case == "value") {
86
+ // State was eagerly filled by the local state store
87
+ return Promise.resolve(getStateMsg.result.value);
88
+ }
89
+ else {
90
+ // Need to retrieve state by going to the runtime.
91
+ return this.appendJournalEntry(messageType, message);
92
+ }
93
+ }
94
+ default: {
95
+ return this.appendJournalEntry(messageType, message);
96
+ }
97
+ }
98
+ }
99
+ case NewExecutionState.CLOSED: {
100
+ // We cannot do anything anymore because an output was already sent back
101
+ // This should actually never happen because the state is only transitioned to closed if the root promise is resolved/rejected
102
+ // So no more user messages can come in...
103
+ // - Print warning log and continue...
104
+ //TODO received user-side message but state machine is closed
105
+ return RESOLVED;
106
+ }
107
+ default: {
108
+ throw RetryableError.protocolViolation("Did not receive input message before other messages.");
109
+ }
110
+ }
111
+ }
112
+ isUnResolved(index) {
113
+ const journalEntry = this.pendingJournalEntries.get(index);
114
+ return journalEntry !== undefined;
115
+ }
116
+ handleRuntimeCompletionMessage(m) {
117
+ // Get message at that entryIndex in pendingJournalEntries
118
+ const journalEntry = this.pendingJournalEntries.get(m.entryIndex);
119
+ if (journalEntry === undefined) {
120
+ //TODO received completion message but there is no pending promise for that index
121
+ return;
122
+ }
123
+ if (m.result.case == "value") {
124
+ if (journalEntry.messageType === GET_STATE_KEYS_ENTRY_MESSAGE_TYPE) {
125
+ // In case of get state keys we expect the parsed message
126
+ journalEntry.completablePromise.resolve(GetStateKeysEntryMessage_StateKeys.fromBinary(m.result.value));
127
+ this.pendingJournalEntries.delete(m.entryIndex);
128
+ }
129
+ else {
130
+ journalEntry.completablePromise.resolve(m.result.value);
131
+ this.pendingJournalEntries.delete(m.entryIndex);
132
+ }
133
+ }
134
+ else if (m.result.case == "failure") {
135
+ // we do all completions with Terminal Errors, because failures triggered by those exceptions
136
+ // when the bubble up would otherwise lead to re-tries, deterministic replay, re-throwing, and
137
+ // thus an infinite loop that keeps replay-ing but never makes progress
138
+ // these failures here consequently need to cause terminal failures, unless caught and handled
139
+ // by the handler code
140
+ journalEntry.completablePromise.reject(failureToError(m.result.value, true));
141
+ this.pendingJournalEntries.delete(m.entryIndex);
142
+ }
143
+ else if (m.result.case == "empty") {
144
+ journalEntry.completablePromise.resolve(m.result.value);
145
+ this.pendingJournalEntries.delete(m.entryIndex);
146
+ }
147
+ else {
148
+ //TODO completion message without a value/failure/empty
149
+ }
150
+ }
151
+ handleEntryAckMessage(m) {
152
+ // Get message at that entryIndex in pendingJournalEntries
153
+ const journalEntry = this.pendingJournalEntries.get(m.entryIndex);
154
+ if (journalEntry === undefined) {
155
+ return;
156
+ }
157
+ // Just needs an ack
158
+ journalEntry.completablePromise.resolve(undefined);
159
+ this.pendingJournalEntries.delete(m.entryIndex);
160
+ }
161
+ handleReplay(journalIndex, replayMessage, journalEntry) {
162
+ // Do the journal mismatch check
163
+ const match = this.checkJournalMatch(replayMessage.messageType, replayMessage.message, journalEntry.messageType, journalEntry.message);
164
+ // Journal mismatch check failedf
165
+ if (!match) {
166
+ throw RetryableError.journalMismatch(journalIndex, replayMessage, journalEntry);
167
+ }
168
+ // If journal mismatch check passed
169
+ /*
170
+ - Else if the runtime replay message contains a completion
171
+ - If the completion is a value
172
+ - Return the resolved user code promise with the value
173
+ - Else if the completion is a failure
174
+ - Return the rejected user code promise with the failure as Error
175
+ - Else if the completion is an Empty message
176
+ - Return the resolved user code promise with the Empty message
177
+ - Remove the journal entry
178
+ - Else the replayed message was uncompleted
179
+ - Create the user code promise
180
+ - Add message to the pendingJournalEntries
181
+ - Return the user code promise
182
+ */
183
+ switch (journalEntry.messageType) {
184
+ case SUSPENSION_MESSAGE_TYPE:
185
+ case OUTPUT_ENTRY_MESSAGE_TYPE: {
186
+ this.handleClosingMessage(journalEntry.messageType, journalEntry.message);
187
+ break;
188
+ }
189
+ case GET_STATE_ENTRY_MESSAGE_TYPE: {
190
+ const getStateMsg = replayMessage.message;
191
+ this.resolveResult(journalIndex, journalEntry, getStateMsg.result.case == "empty" ||
192
+ getStateMsg.result.case == "value"
193
+ ? getStateMsg.result.value
194
+ : undefined, getStateMsg.result.case == "failure"
195
+ ? getStateMsg.result.value
196
+ : undefined);
197
+ break;
198
+ }
199
+ case GET_STATE_KEYS_ENTRY_MESSAGE_TYPE: {
200
+ const getStateMsg = replayMessage.message;
201
+ this.resolveResult(journalIndex, journalEntry, getStateMsg.result.case === "value"
202
+ ? getStateMsg.result.value
203
+ : undefined, getStateMsg.result.case === "failure"
204
+ ? getStateMsg.result.value
205
+ : undefined);
206
+ break;
207
+ }
208
+ case p.PEEK_PROMISE_MESSAGE_TYPE: {
209
+ const peek = replayMessage.message;
210
+ this.resolveResult(journalIndex, journalEntry, peek.result.case === "value" || peek.result.case === "empty"
211
+ ? peek.result.value
212
+ : undefined, peek.result.case === "failure" ? peek.result.value : undefined);
213
+ break;
214
+ }
215
+ case p.GET_PROMISE_MESSAGE_TYPE: {
216
+ const get = replayMessage.message;
217
+ this.resolveResult(journalIndex, journalEntry, get.result.case === "value" ? get.result.value : undefined, get.result.case === "failure" ? get.result.value : undefined);
218
+ break;
219
+ }
220
+ case p.COMPLETE_PROMISE_MESSAGE_TYPE: {
221
+ const complete = replayMessage.message;
222
+ this.resolveResult(journalIndex, journalEntry, complete.result.case === "empty" ? complete.result.value : undefined, complete.result.case === "failure" ? complete.result.value : undefined);
223
+ break;
224
+ }
225
+ case INVOKE_ENTRY_MESSAGE_TYPE: {
226
+ const invokeMsg = replayMessage.message;
227
+ this.resolveResult(journalIndex, journalEntry, invokeMsg.result.case === "value"
228
+ ? invokeMsg.result.value
229
+ : undefined, invokeMsg.result.case === "failure"
230
+ ? invokeMsg.result.value
231
+ : undefined);
232
+ break;
233
+ }
234
+ case SLEEP_ENTRY_MESSAGE_TYPE: {
235
+ const sleepMsg = replayMessage.message;
236
+ this.resolveResult(journalIndex, journalEntry, sleepMsg.result.case === "empty" ? sleepMsg.result.value : undefined, sleepMsg.result.case === "failure" ? sleepMsg.result.value : undefined);
237
+ break;
238
+ }
239
+ case AWAKEABLE_ENTRY_MESSAGE_TYPE: {
240
+ const awakeableMsg = replayMessage.message;
241
+ this.resolveResult(journalIndex, journalEntry, awakeableMsg.result.case === "value"
242
+ ? awakeableMsg.result.value
243
+ : undefined, awakeableMsg.result.case === "failure"
244
+ ? awakeableMsg.result.value
245
+ : undefined);
246
+ break;
247
+ }
248
+ case SIDE_EFFECT_ENTRY_MESSAGE_TYPE: {
249
+ const sideEffectMsg = replayMessage.message;
250
+ if (sideEffectMsg.result.case === "value") {
251
+ const text = Buffer.from(sideEffectMsg.result.value).toString();
252
+ this.resolveResult(journalIndex, journalEntry, jsonDeserialize(text));
253
+ }
254
+ else if (sideEffectMsg.result.case === "failure") {
255
+ this.resolveResult(journalIndex, journalEntry, undefined, sideEffectMsg.result.value, true);
256
+ }
257
+ else {
258
+ // A side effect can have a void return type
259
+ // If it was replayed, then it is acked, so we should resolve it.
260
+ journalEntry.completablePromise.resolve(undefined);
261
+ this.pendingJournalEntries.delete(journalIndex);
262
+ }
263
+ break;
264
+ }
265
+ case SET_STATE_ENTRY_MESSAGE_TYPE:
266
+ case CLEAR_STATE_ENTRY_MESSAGE_TYPE:
267
+ case CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE:
268
+ case COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE:
269
+ case BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE:
270
+ case COMBINATOR_ENTRY_MESSAGE: {
271
+ // Do not need a completion. So if the match has passed then the entry can be deleted.
272
+ journalEntry.completablePromise.resolve(undefined);
273
+ this.pendingJournalEntries.delete(journalIndex);
274
+ break;
275
+ }
276
+ default: {
277
+ // TODO received replay message of unknown type
278
+ }
279
+ }
280
+ }
281
+ resolveResult(journalIndex, journalEntry, value, failure, failureWouldBeTerminal) {
282
+ if (value !== undefined) {
283
+ journalEntry.completablePromise.resolve(value);
284
+ this.pendingJournalEntries.delete(journalIndex);
285
+ }
286
+ else if (failure !== undefined) {
287
+ const error = failureToError(failure, failureWouldBeTerminal ?? true);
288
+ journalEntry.completablePromise.reject(error);
289
+ this.pendingJournalEntries.delete(journalIndex);
290
+ }
291
+ else {
292
+ this.pendingJournalEntries.set(journalIndex, journalEntry);
293
+ }
294
+ }
295
+ handleClosingMessage(messageType, message) {
296
+ this.transitionState(NewExecutionState.CLOSED);
297
+ const rootJournalEntry = this.pendingJournalEntries.get(0);
298
+ if (rootJournalEntry === undefined) {
299
+ // We have no other option than to throw an error here
300
+ // Because without the root promise we cannot resolve the method or continue
301
+ throw RetryableError.internal("Illegal state: No root journal entry found to resolve with output stream message");
302
+ }
303
+ this.pendingJournalEntries.delete(0);
304
+ rootJournalEntry.completablePromise.resolve(new Message(messageType, message));
305
+ }
306
+ checkJournalMatch(runtimeMsgType, runtimeMsg, userCodeMsgType, userCodeMsg) {
307
+ if (runtimeMsgType === userCodeMsgType) {
308
+ const equalityFct = equalityCheckers.get(runtimeMsgType);
309
+ if (equalityFct === undefined) {
310
+ // TODO no equality function was defined for the message type
311
+ return true;
312
+ }
313
+ return equalityFct(runtimeMsg, userCodeMsg);
314
+ }
315
+ else {
316
+ return false;
317
+ }
318
+ }
319
+ // To get the indices that need to be completed with suspension
320
+ getCompletableIndices() {
321
+ // return all entries except for the root entry
322
+ return [...this.pendingJournalEntries.entries()]
323
+ .filter((el) => el[0] !== 0)
324
+ .map((el) => el[0]);
325
+ }
326
+ transitionState(newExecState) {
327
+ // If the state is already closed then you cannot transition anymore
328
+ if (this.state === NewExecutionState.CLOSED &&
329
+ newExecState !== NewExecutionState.CLOSED) {
330
+ // do nothing
331
+ return;
332
+ }
333
+ else {
334
+ this.state = newExecState;
335
+ return;
336
+ }
337
+ }
338
+ incrementUserCodeIndex() {
339
+ this.userCodeJournalIndex++;
340
+ if (this.userCodeJournalIndex === this.invocation.nbEntriesToReplay &&
341
+ this.state === NewExecutionState.REPLAYING) {
342
+ this.transitionState(NewExecutionState.PROCESSING);
343
+ }
344
+ }
345
+ /**
346
+ * Read the next replay entry
347
+ */
348
+ readNextReplayEntry() {
349
+ this.incrementUserCodeIndex();
350
+ return this.invocation.replayEntries.get(this.userCodeJournalIndex);
351
+ }
352
+ /**
353
+ * Append journal entry. This won't increment the journal index.
354
+ */
355
+ appendJournalEntry(messageType, message) {
356
+ const journalEntry = new JournalEntry(messageType, message);
357
+ this.pendingJournalEntries.set(this.userCodeJournalIndex, journalEntry);
358
+ return journalEntry.completablePromise.promise;
359
+ }
360
+ isClosed() {
361
+ return this.state === NewExecutionState.CLOSED;
362
+ }
363
+ isProcessing() {
364
+ return this.state === NewExecutionState.PROCESSING;
365
+ }
366
+ isReplaying() {
367
+ return this.state === NewExecutionState.REPLAYING;
368
+ }
369
+ getUserCodeJournalIndex() {
370
+ return this.userCodeJournalIndex;
371
+ }
372
+ close() {
373
+ this.transitionState(NewExecutionState.CLOSED);
374
+ }
375
+ outputMsgWasReplayed() {
376
+ // Check if the last message of the replay entries is an output message
377
+ const lastEntry = this.invocation.replayEntries.get(this.invocation.nbEntriesToReplay - 1);
378
+ return lastEntry && lastEntry.messageType === OUTPUT_ENTRY_MESSAGE_TYPE;
379
+ }
380
+ // We use this for side effects.
381
+ // The restate context needs to know if the user-defined fct needs to be executed or not.
382
+ // It needs to know this before it can craft the message and call this.stateMachine.handleUserSideMessage(...)
383
+ // so before the index got incremented and the state got transitioned.
384
+ // So we cannot use isReplaying().
385
+ // So we need to check in the journal if the next entry (= our side effect) will be replayed or not.
386
+ nextEntryWillBeReplayed() {
387
+ return this.userCodeJournalIndex + 1 < this.invocation.nbEntriesToReplay;
388
+ }
389
+ }
390
+ export class JournalEntry {
391
+ messageType;
392
+ message;
393
+ completablePromise;
394
+ constructor(messageType, message) {
395
+ this.messageType = messageType;
396
+ this.message = message;
397
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
398
+ this.completablePromise = new CompletablePromise();
399
+ }
400
+ }
401
+ // "WAITING_FOR_START" before receiving start message
402
+ // "WAITING_FOR_REPLAY" when waiting for all replay entries to arrive from the runtime
403
+ // "REPLAYING" when receiving input stream message
404
+ // "PROCESSING" when both sides have finished replaying
405
+ // "CLOSED" when input stream connection channel gets closed
406
+ export var NewExecutionState;
407
+ (function (NewExecutionState) {
408
+ NewExecutionState["REPLAYING"] = "REPLAYING";
409
+ NewExecutionState["PROCESSING"] = "PROCESSING";
410
+ NewExecutionState["CLOSED"] = "CLOSED";
411
+ })(NewExecutionState || (NewExecutionState = {}));
412
+ //# sourceMappingURL=journal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/journal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from "./common_api.js";
2
+ import { type LambdaEndpoint } from "./endpoint/lambda_endpoint.js";
3
+ /**
4
+ * Create a new {@link RestateEndpoint}.
5
+ */
6
+ export declare function endpoint(): LambdaEndpoint;
7
+ //# sourceMappingURL=lambda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../src/lambda.ts"],"names":[],"mappings":"AAWA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC;;GAEG;AACH,wBAAgB,QAAQ,IAAI,cAAc,CAEzC"}
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
+ *
4
+ * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * which is released under the MIT license.
6
+ *
7
+ * You can find a copy of the license in file LICENSE in the root
8
+ * directory of this repository or package, or at
9
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
+ */
11
+ export * from "./common_api.js";
12
+ import { LambdaEndpointImpl, } from "./endpoint/lambda_endpoint.js";
13
+ /**
14
+ * Create a new {@link RestateEndpoint}.
15
+ */
16
+ export function endpoint() {
17
+ return new LambdaEndpointImpl();
18
+ }
19
+ //# sourceMappingURL=lambda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/lambda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACL,kBAAkB,GAEnB,MAAM,+BAA+B,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import type { GetStateEntryMessage, GetStateKeysEntryMessage, StartMessage_StateEntry } from "./generated/proto/protocol_pb.js";
3
+ import { ClearAllStateEntryMessage, ClearStateEntryMessage, Empty, SetStateEntryMessage } from "./generated/proto/protocol_pb.js";
4
+ import { Buffer } from "node:buffer";
5
+ export declare class LocalStateStore {
6
+ private isPartial;
7
+ private state;
8
+ constructor(isPartial: boolean, state: StartMessage_StateEntry[]);
9
+ tryCompleteGet(key: string, msg: GetStateEntryMessage): boolean;
10
+ tryCompletedGetStateKeys(msg: GetStateKeysEntryMessage): boolean;
11
+ set<T>(key: string, value: T): SetStateEntryMessage;
12
+ clear(key: string): ClearStateEntryMessage;
13
+ add(key: string, result: Buffer | Empty): void;
14
+ clearAll(): ClearAllStateEntryMessage;
15
+ }
16
+ //# sourceMappingURL=local_state_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local_state_store.d.ts","sourceRoot":"","sources":["../../../src/local_state_store.ts"],"names":[],"mappings":";AAWA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,EAEL,oBAAoB,EACrB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,eAAe;IAGd,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,KAAK,CAA8B;gBAEvB,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE;IAOjE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO;IAsB/D,wBAAwB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO;IAehE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,oBAAoB;IASnD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAQ1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAI9C,QAAQ,IAAI,yBAAyB;CAK7C"}
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
+ *
4
+ * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * which is released under the MIT license.
6
+ *
7
+ * You can find a copy of the license in file LICENSE in the root
8
+ * directory of this repository or package, or at
9
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
+ */
11
+ import { ClearAllStateEntryMessage, ClearStateEntryMessage, Empty, GetStateKeysEntryMessage_StateKeys, SetStateEntryMessage, } from "./generated/proto/protocol_pb.js";
12
+ import { jsonSerialize } from "./utils/utils.js";
13
+ import { Buffer } from "node:buffer";
14
+ export class LocalStateStore {
15
+ isPartial;
16
+ state;
17
+ constructor(isPartial, state) {
18
+ this.isPartial = isPartial;
19
+ this.state = new Map(state.map(({ key, value }) => [key.toString(), Buffer.from(value)]));
20
+ }
21
+ // Returns true if completed
22
+ tryCompleteGet(key, msg) {
23
+ const stateEntry = this.state.get(key);
24
+ if (stateEntry === undefined) {
25
+ if (this.isPartial) {
26
+ // Partial eager state, so retrieve state from the runtime
27
+ return false;
28
+ }
29
+ else {
30
+ // Complete eager state, so state entry is null
31
+ msg.result = { case: "empty", value: new Empty({}) };
32
+ return true;
33
+ }
34
+ }
35
+ if (stateEntry instanceof Buffer) {
36
+ msg.result = { case: "value", value: stateEntry };
37
+ }
38
+ else {
39
+ msg.result = { case: "empty", value: new Empty({}) };
40
+ }
41
+ return true;
42
+ }
43
+ // Returns true if completed
44
+ tryCompletedGetStateKeys(msg) {
45
+ if (this.isPartial) {
46
+ return false;
47
+ }
48
+ msg.result = {
49
+ case: "value",
50
+ value: new GetStateKeysEntryMessage_StateKeys({
51
+ keys: Array.from(this.state.keys()).map((b) => Buffer.from(b)),
52
+ }),
53
+ };
54
+ return true;
55
+ }
56
+ set(key, value) {
57
+ const bytes = Buffer.from(jsonSerialize(value));
58
+ this.state.set(key, bytes);
59
+ return new SetStateEntryMessage({
60
+ key: Buffer.from(key, "utf8"),
61
+ value: bytes,
62
+ });
63
+ }
64
+ clear(key) {
65
+ this.state.set(key, new Empty());
66
+ return new ClearStateEntryMessage({ key: Buffer.from(key) });
67
+ }
68
+ // When a GetState request does not have a local entry and we have partial state,
69
+ // then the request goes to the runtime.
70
+ // When we get the response of the runtime, we add the state to the localStateStore.
71
+ add(key, result) {
72
+ this.state.set(key, result);
73
+ }
74
+ clearAll() {
75
+ this.state.clear();
76
+ this.isPartial = false;
77
+ return new ClearAllStateEntryMessage();
78
+ }
79
+ }
80
+ //# sourceMappingURL=local_state_store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local_state_store.js","sourceRoot":"","sources":["../../../src/local_state_store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ export declare enum RestateLogLevel {
3
+ TRACE = 1,
4
+ DEBUG = 2,
5
+ INFO = 3,
6
+ WARN = 4,
7
+ ERROR = 5
8
+ }
9
+ export declare const RESTATE_LOG_LEVEL: RestateLogLevel;
10
+ export declare class LoggerContext {
11
+ readonly invocationId: string;
12
+ readonly additionalContext?: {
13
+ [name: string]: string;
14
+ } | undefined;
15
+ readonly fqMethodName: string;
16
+ constructor(invocationId: string, packageName: string, serviceName: string, handlerName: string, additionalContext?: {
17
+ [name: string]: string;
18
+ } | undefined);
19
+ }
20
+ export declare function createRestateConsole(context?: LoggerContext, filter?: () => boolean): Console;
21
+ /**
22
+ * This is a simple console without contextual info.
23
+ *
24
+ * This should be used only in cases where no contextual info is available.
25
+ */
26
+ export declare const rlog: Console;
27
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/logger.ts"],"names":[],"mappings":";AAcA,oBAAY,eAAe;IACzB,KAAK,IAAI;IACT,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAgED,eAAO,MAAM,iBAAiB,iBAAwB,CAAC;AAEvD,qBAAa,aAAa;IAItB,QAAQ,CAAC,YAAY,EAAE,MAAM;IAI7B,QAAQ,CAAC,iBAAiB,CAAC;;;IAP7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAGnB,YAAY,EAAE,MAAM,EAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACV,iBAAiB,CAAC;;iBAA4B;CAM1D;AAgDD,wBAAgB,oBAAoB,CAClC,OAAO,CAAC,EAAE,aAAa,EACvB,MAAM,CAAC,EAAE,MAAM,OAAO,GACrB,OAAO,CAWT;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,SAAyB,CAAC"}