@restatedev/restate-sdk 0.8.1 → 0.9.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 (374) hide show
  1. package/README.md +12 -118
  2. package/dist/{clients → src/clients}/workflow_client.d.ts +2 -2
  3. package/dist/src/clients/workflow_client.d.ts.map +1 -0
  4. package/dist/{clients → src/clients}/workflow_client.js +2 -2
  5. package/dist/src/clients/workflow_client.js.map +1 -0
  6. package/dist/{connection → src/connection}/buffered_connection.d.ts +1 -0
  7. package/dist/src/connection/buffered_connection.d.ts.map +1 -0
  8. package/dist/src/connection/buffered_connection.js.map +1 -0
  9. package/dist/src/connection/connection.d.ts.map +1 -0
  10. package/dist/src/connection/connection.js.map +1 -0
  11. package/dist/{connection → src/connection}/http_connection.d.ts +1 -1
  12. package/dist/src/connection/http_connection.d.ts.map +1 -0
  13. package/dist/{connection → src/connection}/http_connection.js +1 -1
  14. package/dist/src/connection/http_connection.js.map +1 -0
  15. package/dist/{connection → src/connection}/lambda_connection.d.ts +1 -0
  16. package/dist/src/connection/lambda_connection.d.ts.map +1 -0
  17. package/dist/{connection → src/connection}/lambda_connection.js +5 -4
  18. package/dist/src/connection/lambda_connection.js.map +1 -0
  19. package/dist/{context.d.ts → src/context.d.ts} +146 -224
  20. package/dist/src/context.d.ts.map +1 -0
  21. package/dist/{context.js → src/context.js} +6 -41
  22. package/dist/src/context.js.map +1 -0
  23. package/dist/src/context_impl.d.ts +62 -0
  24. package/dist/src/context_impl.d.ts.map +1 -0
  25. package/dist/{context_impl.js → src/context_impl.js} +201 -182
  26. package/dist/src/context_impl.js.map +1 -0
  27. package/dist/src/endpoint/endpoint_impl.d.ts +28 -0
  28. package/dist/src/endpoint/endpoint_impl.d.ts.map +1 -0
  29. package/dist/src/endpoint/endpoint_impl.js +164 -0
  30. package/dist/src/endpoint/endpoint_impl.js.map +1 -0
  31. package/dist/{endpoint → src/endpoint}/http2_handler.d.ts +1 -1
  32. package/dist/src/endpoint/http2_handler.d.ts.map +1 -0
  33. package/dist/src/endpoint/http2_handler.js +153 -0
  34. package/dist/src/endpoint/http2_handler.js.map +1 -0
  35. package/dist/{endpoint → src/endpoint}/lambda_handler.d.ts +2 -2
  36. package/dist/src/endpoint/lambda_handler.d.ts.map +1 -0
  37. package/dist/{endpoint → src/endpoint}/lambda_handler.js +66 -56
  38. package/dist/src/endpoint/lambda_handler.js.map +1 -0
  39. package/dist/src/endpoint/request_signing/basex.d.ts +10 -0
  40. package/dist/src/endpoint/request_signing/basex.d.ts.map +1 -0
  41. package/dist/src/endpoint/request_signing/basex.js +138 -0
  42. package/dist/src/endpoint/request_signing/basex.js.map +1 -0
  43. package/dist/src/endpoint/request_signing/ed25519.d.ts +17 -0
  44. package/dist/src/endpoint/request_signing/ed25519.d.ts.map +1 -0
  45. package/dist/src/endpoint/request_signing/ed25519.js +78 -0
  46. package/dist/src/endpoint/request_signing/ed25519.js.map +1 -0
  47. package/dist/src/endpoint/request_signing/v1.d.ts +9 -0
  48. package/dist/src/endpoint/request_signing/v1.d.ts.map +1 -0
  49. package/dist/src/endpoint/request_signing/v1.js +148 -0
  50. package/dist/src/endpoint/request_signing/v1.js.map +1 -0
  51. package/dist/src/endpoint/request_signing/validate.d.ts +18 -0
  52. package/dist/src/endpoint/request_signing/validate.d.ts.map +1 -0
  53. package/dist/src/endpoint/request_signing/validate.js +45 -0
  54. package/dist/src/endpoint/request_signing/validate.js.map +1 -0
  55. package/dist/src/endpoint.d.ts +102 -0
  56. package/dist/src/endpoint.d.ts.map +1 -0
  57. package/dist/{endpoint.js → src/endpoint.js} +1 -1
  58. package/dist/src/endpoint.js.map +1 -0
  59. package/dist/src/generated/proto/javascript_pb.d.ts +26 -0
  60. package/dist/src/generated/proto/javascript_pb.d.ts.map +1 -0
  61. package/dist/src/generated/proto/javascript_pb.js +52 -0
  62. package/dist/src/generated/proto/javascript_pb.js.map +1 -0
  63. package/dist/src/generated/proto/protocol_pb.d.ts +865 -0
  64. package/dist/src/generated/proto/protocol_pb.d.ts.map +1 -0
  65. package/dist/src/generated/proto/protocol_pb.js +1112 -0
  66. package/dist/src/generated/proto/protocol_pb.js.map +1 -0
  67. package/dist/src/generated/version.d.ts +2 -0
  68. package/dist/src/generated/version.d.ts.map +1 -0
  69. package/dist/src/generated/version.js +5 -0
  70. package/dist/src/generated/version.js.map +1 -0
  71. package/dist/{invocation.d.ts → src/invocation.d.ts} +14 -18
  72. package/dist/src/invocation.d.ts.map +1 -0
  73. package/dist/{invocation.js → src/invocation.js} +25 -24
  74. package/dist/src/invocation.js.map +1 -0
  75. package/dist/{io → src/io}/decoder.d.ts +3 -2
  76. package/dist/src/io/decoder.d.ts.map +1 -0
  77. package/dist/{io → src/io}/decoder.js +12 -10
  78. package/dist/src/io/decoder.js.map +1 -0
  79. package/dist/{io → src/io}/encoder.d.ts +1 -1
  80. package/dist/src/io/encoder.d.ts.map +1 -0
  81. package/dist/{io → src/io}/encoder.js +11 -21
  82. package/dist/src/io/encoder.js.map +1 -0
  83. package/dist/{journal.d.ts → src/journal.d.ts} +7 -7
  84. package/dist/src/journal.d.ts.map +1 -0
  85. package/dist/{journal.js → src/journal.js} +64 -46
  86. package/dist/src/journal.js.map +1 -0
  87. package/dist/{local_state_store.d.ts → src/local_state_store.d.ts} +2 -2
  88. package/dist/src/local_state_store.d.ts.map +1 -0
  89. package/dist/{local_state_store.js → src/local_state_store.js} +19 -17
  90. package/dist/src/local_state_store.js.map +1 -0
  91. package/dist/{logger.d.ts → src/logger.d.ts} +9 -1
  92. package/dist/src/logger.d.ts.map +1 -0
  93. package/dist/src/logger.js +158 -0
  94. package/dist/src/logger.js.map +1 -0
  95. package/dist/src/promise_combinator_tracker.d.ts.map +1 -0
  96. package/dist/src/promise_combinator_tracker.js.map +1 -0
  97. package/dist/src/public_api.d.ts +7 -0
  98. package/dist/src/public_api.d.ts.map +1 -0
  99. package/dist/{public_api.js → src/public_api.js} +4 -14
  100. package/dist/src/public_api.js.map +1 -0
  101. package/dist/{state_machine.d.ts → src/state_machine.d.ts} +7 -4
  102. package/dist/src/state_machine.d.ts.map +1 -0
  103. package/dist/{state_machine.js → src/state_machine.js} +34 -37
  104. package/dist/src/state_machine.js.map +1 -0
  105. package/dist/src/types/components.d.ts +65 -0
  106. package/dist/src/types/components.d.ts.map +1 -0
  107. package/dist/src/types/components.js +163 -0
  108. package/dist/src/types/components.js.map +1 -0
  109. package/dist/src/types/discovery.d.ts +40 -0
  110. package/dist/src/types/discovery.d.ts.map +1 -0
  111. package/dist/src/types/discovery.js +29 -0
  112. package/dist/src/types/discovery.js.map +1 -0
  113. package/dist/src/types/errors.d.ts +53 -0
  114. package/dist/src/types/errors.d.ts.map +1 -0
  115. package/dist/src/types/errors.js +129 -0
  116. package/dist/src/types/errors.js.map +1 -0
  117. package/dist/src/types/protocol.d.ts +33 -0
  118. package/dist/src/types/protocol.d.ts.map +1 -0
  119. package/dist/{types → src/types}/protocol.js +52 -52
  120. package/dist/src/types/protocol.js.map +1 -0
  121. package/dist/src/types/rpc.d.ts +50 -0
  122. package/dist/src/types/rpc.d.ts.map +1 -0
  123. package/dist/src/types/rpc.js +38 -0
  124. package/dist/src/types/rpc.js.map +1 -0
  125. package/dist/{types → src/types}/types.d.ts +0 -9
  126. package/dist/src/types/types.d.ts.map +1 -0
  127. package/dist/{types → src/types}/types.js +4 -21
  128. package/dist/src/types/types.js.map +1 -0
  129. package/dist/src/user_agent.d.ts +2 -0
  130. package/dist/src/user_agent.d.ts.map +1 -0
  131. package/dist/src/user_agent.js +16 -0
  132. package/dist/src/user_agent.js.map +1 -0
  133. package/dist/src/utils/message_logger.d.ts +7 -0
  134. package/dist/src/utils/message_logger.d.ts.map +1 -0
  135. package/dist/{utils → src/utils}/message_logger.js +17 -26
  136. package/dist/src/utils/message_logger.js.map +1 -0
  137. package/dist/src/utils/promises.d.ts.map +1 -0
  138. package/dist/src/utils/promises.js.map +1 -0
  139. package/dist/{utils → src/utils}/rand.d.ts +1 -0
  140. package/dist/src/utils/rand.d.ts.map +1 -0
  141. package/dist/{utils → src/utils}/rand.js +7 -6
  142. package/dist/src/utils/rand.js.map +1 -0
  143. package/dist/src/utils/serde.d.ts +3 -0
  144. package/dist/src/utils/serde.d.ts.map +1 -0
  145. package/dist/src/utils/serde.js +24 -0
  146. package/dist/src/utils/serde.js.map +1 -0
  147. package/dist/{utils → src/utils}/utils.d.ts +0 -1
  148. package/dist/src/utils/utils.d.ts.map +1 -0
  149. package/dist/{utils → src/utils}/utils.js +36 -43
  150. package/dist/src/utils/utils.js.map +1 -0
  151. package/dist/{workflows → src/workflows}/workflow.d.ts +6 -6
  152. package/dist/src/workflows/workflow.d.ts.map +1 -0
  153. package/dist/{workflows → src/workflows}/workflow.js +11 -7
  154. package/dist/src/workflows/workflow.js.map +1 -0
  155. package/dist/src/workflows/workflow_state_service.d.ts +35 -0
  156. package/dist/src/workflows/workflow_state_service.d.ts.map +1 -0
  157. package/dist/{workflows → src/workflows}/workflow_state_service.js +11 -11
  158. package/dist/src/workflows/workflow_state_service.js.map +1 -0
  159. package/dist/{workflows → src/workflows}/workflow_wrapper_service.d.ts +2 -2
  160. package/dist/src/workflows/workflow_wrapper_service.d.ts.map +1 -0
  161. package/dist/{workflows → src/workflows}/workflow_wrapper_service.js +66 -45
  162. package/dist/src/workflows/workflow_wrapper_service.js.map +1 -0
  163. package/dist/tsconfig.tsbuildinfo +1 -0
  164. package/package.json +13 -28
  165. package/LICENSE +0 -21
  166. package/dist/clients/workflow_client.d.ts.map +0 -1
  167. package/dist/clients/workflow_client.js.map +0 -1
  168. package/dist/connection/buffered_connection.d.ts.map +0 -1
  169. package/dist/connection/buffered_connection.js.map +0 -1
  170. package/dist/connection/connection.d.ts.map +0 -1
  171. package/dist/connection/connection.js.map +0 -1
  172. package/dist/connection/embedded_connection.d.ts +0 -20
  173. package/dist/connection/embedded_connection.d.ts.map +0 -1
  174. package/dist/connection/embedded_connection.js +0 -59
  175. package/dist/connection/embedded_connection.js.map +0 -1
  176. package/dist/connection/http_connection.d.ts.map +0 -1
  177. package/dist/connection/http_connection.js.map +0 -1
  178. package/dist/connection/lambda_connection.d.ts.map +0 -1
  179. package/dist/connection/lambda_connection.js.map +0 -1
  180. package/dist/context.d.ts.map +0 -1
  181. package/dist/context.js.map +0 -1
  182. package/dist/context_impl.d.ts +0 -65
  183. package/dist/context_impl.d.ts.map +0 -1
  184. package/dist/context_impl.js.map +0 -1
  185. package/dist/embedded/api.d.ts +0 -27
  186. package/dist/embedded/api.d.ts.map +0 -1
  187. package/dist/embedded/api.js +0 -35
  188. package/dist/embedded/api.js.map +0 -1
  189. package/dist/embedded/handler.d.ts +0 -4
  190. package/dist/embedded/handler.d.ts.map +0 -1
  191. package/dist/embedded/handler.js +0 -26
  192. package/dist/embedded/handler.js.map +0 -1
  193. package/dist/embedded/http2_remote.d.ts +0 -11
  194. package/dist/embedded/http2_remote.d.ts.map +0 -1
  195. package/dist/embedded/http2_remote.js +0 -91
  196. package/dist/embedded/http2_remote.js.map +0 -1
  197. package/dist/embedded/invocation.d.ts +0 -5
  198. package/dist/embedded/invocation.d.ts.map +0 -1
  199. package/dist/embedded/invocation.js +0 -94
  200. package/dist/embedded/invocation.js.map +0 -1
  201. package/dist/endpoint/endpoint_impl.d.ts +0 -35
  202. package/dist/endpoint/endpoint_impl.d.ts.map +0 -1
  203. package/dist/endpoint/endpoint_impl.js +0 -405
  204. package/dist/endpoint/endpoint_impl.js.map +0 -1
  205. package/dist/endpoint/http2_handler.d.ts.map +0 -1
  206. package/dist/endpoint/http2_handler.js +0 -119
  207. package/dist/endpoint/http2_handler.js.map +0 -1
  208. package/dist/endpoint/lambda_handler.d.ts.map +0 -1
  209. package/dist/endpoint/lambda_handler.js.map +0 -1
  210. package/dist/endpoint.d.ts +0 -161
  211. package/dist/endpoint.d.ts.map +0 -1
  212. package/dist/endpoint.js.map +0 -1
  213. package/dist/generated/dev/restate/events.d.ts +0 -96
  214. package/dist/generated/dev/restate/events.d.ts.map +0 -1
  215. package/dist/generated/dev/restate/events.js +0 -371
  216. package/dist/generated/dev/restate/events.js.map +0 -1
  217. package/dist/generated/dev/restate/ext.d.ts +0 -91
  218. package/dist/generated/dev/restate/ext.d.ts.map +0 -1
  219. package/dist/generated/dev/restate/ext.js +0 -215
  220. package/dist/generated/dev/restate/ext.js.map +0 -1
  221. package/dist/generated/google/protobuf/descriptor.d.ts +0 -1204
  222. package/dist/generated/google/protobuf/descriptor.d.ts.map +0 -1
  223. package/dist/generated/google/protobuf/descriptor.js +0 -6676
  224. package/dist/generated/google/protobuf/descriptor.js.map +0 -1
  225. package/dist/generated/google/protobuf/empty.d.ts +0 -86
  226. package/dist/generated/google/protobuf/empty.d.ts.map +0 -1
  227. package/dist/generated/google/protobuf/empty.js +0 -107
  228. package/dist/generated/google/protobuf/empty.js.map +0 -1
  229. package/dist/generated/google/protobuf/struct.d.ts +0 -175
  230. package/dist/generated/google/protobuf/struct.d.ts.map +0 -1
  231. package/dist/generated/google/protobuf/struct.js +0 -754
  232. package/dist/generated/google/protobuf/struct.js.map +0 -1
  233. package/dist/generated/proto/discovery.d.ts +0 -105
  234. package/dist/generated/proto/discovery.d.ts.map +0 -1
  235. package/dist/generated/proto/discovery.js +0 -364
  236. package/dist/generated/proto/discovery.js.map +0 -1
  237. package/dist/generated/proto/dynrpc.d.ts +0 -150
  238. package/dist/generated/proto/dynrpc.d.ts.map +0 -1
  239. package/dist/generated/proto/dynrpc.js +0 -668
  240. package/dist/generated/proto/dynrpc.js.map +0 -1
  241. package/dist/generated/proto/javascript.d.ts +0 -110
  242. package/dist/generated/proto/javascript.d.ts.map +0 -1
  243. package/dist/generated/proto/javascript.js +0 -416
  244. package/dist/generated/proto/javascript.js.map +0 -1
  245. package/dist/generated/proto/protocol.d.ts +0 -450
  246. package/dist/generated/proto/protocol.d.ts.map +0 -1
  247. package/dist/generated/proto/protocol.js +0 -2641
  248. package/dist/generated/proto/protocol.js.map +0 -1
  249. package/dist/generated/proto/services.d.ts +0 -307
  250. package/dist/generated/proto/services.d.ts.map +0 -1
  251. package/dist/generated/proto/services.js +0 -1535
  252. package/dist/generated/proto/services.js.map +0 -1
  253. package/dist/generated/proto/test.d.ts +0 -116
  254. package/dist/generated/proto/test.d.ts.map +0 -1
  255. package/dist/generated/proto/test.js +0 -321
  256. package/dist/generated/proto/test.js.map +0 -1
  257. package/dist/invocation.d.ts.map +0 -1
  258. package/dist/invocation.js.map +0 -1
  259. package/dist/io/decoder.d.ts.map +0 -1
  260. package/dist/io/decoder.js.map +0 -1
  261. package/dist/io/encoder.d.ts.map +0 -1
  262. package/dist/io/encoder.js.map +0 -1
  263. package/dist/journal.d.ts.map +0 -1
  264. package/dist/journal.js.map +0 -1
  265. package/dist/local_state_store.d.ts.map +0 -1
  266. package/dist/local_state_store.js.map +0 -1
  267. package/dist/logger.d.ts.map +0 -1
  268. package/dist/logger.js +0 -90
  269. package/dist/logger.js.map +0 -1
  270. package/dist/promise_combinator_tracker.d.ts.map +0 -1
  271. package/dist/promise_combinator_tracker.js.map +0 -1
  272. package/dist/public_api.d.ts +0 -10
  273. package/dist/public_api.d.ts.map +0 -1
  274. package/dist/public_api.js.map +0 -1
  275. package/dist/state_machine.d.ts.map +0 -1
  276. package/dist/state_machine.js.map +0 -1
  277. package/dist/types/errors.d.ts +0 -188
  278. package/dist/types/errors.d.ts.map +0 -1
  279. package/dist/types/errors.js +0 -273
  280. package/dist/types/errors.js.map +0 -1
  281. package/dist/types/grpc.d.ts +0 -90
  282. package/dist/types/grpc.d.ts.map +0 -1
  283. package/dist/types/grpc.js +0 -81
  284. package/dist/types/grpc.js.map +0 -1
  285. package/dist/types/protocol.d.ts +0 -30
  286. package/dist/types/protocol.d.ts.map +0 -1
  287. package/dist/types/protocol.js.map +0 -1
  288. package/dist/types/router.d.ts +0 -33
  289. package/dist/types/router.d.ts.map +0 -1
  290. package/dist/types/router.js +0 -36
  291. package/dist/types/router.js.map +0 -1
  292. package/dist/types/types.d.ts.map +0 -1
  293. package/dist/types/types.js.map +0 -1
  294. package/dist/utils/assumptions.d.ts +0 -8
  295. package/dist/utils/assumptions.d.ts.map +0 -1
  296. package/dist/utils/assumptions.js +0 -101
  297. package/dist/utils/assumptions.js.map +0 -1
  298. package/dist/utils/message_logger.d.ts +0 -28
  299. package/dist/utils/message_logger.d.ts.map +0 -1
  300. package/dist/utils/message_logger.js.map +0 -1
  301. package/dist/utils/promises.d.ts.map +0 -1
  302. package/dist/utils/promises.js.map +0 -1
  303. package/dist/utils/public_utils.d.ts +0 -58
  304. package/dist/utils/public_utils.d.ts.map +0 -1
  305. package/dist/utils/public_utils.js +0 -49
  306. package/dist/utils/public_utils.js.map +0 -1
  307. package/dist/utils/rand.d.ts.map +0 -1
  308. package/dist/utils/rand.js.map +0 -1
  309. package/dist/utils/utils.d.ts.map +0 -1
  310. package/dist/utils/utils.js.map +0 -1
  311. package/dist/workflows/workflow.d.ts.map +0 -1
  312. package/dist/workflows/workflow.js.map +0 -1
  313. package/dist/workflows/workflow_state_service.d.ts +0 -35
  314. package/dist/workflows/workflow_state_service.d.ts.map +0 -1
  315. package/dist/workflows/workflow_state_service.js.map +0 -1
  316. package/dist/workflows/workflow_wrapper_service.d.ts.map +0 -1
  317. package/dist/workflows/workflow_wrapper_service.js.map +0 -1
  318. package/src/clients/workflow_client.ts +0 -290
  319. package/src/connection/buffered_connection.ts +0 -47
  320. package/src/connection/connection.ts +0 -34
  321. package/src/connection/embedded_connection.ts +0 -62
  322. package/src/connection/http_connection.ts +0 -228
  323. package/src/connection/lambda_connection.ts +0 -69
  324. package/src/context.ts +0 -633
  325. package/src/context_impl.ts +0 -721
  326. package/src/embedded/api.ts +0 -57
  327. package/src/embedded/handler.ts +0 -36
  328. package/src/embedded/http2_remote.ts +0 -103
  329. package/src/embedded/invocation.ts +0 -126
  330. package/src/endpoint/endpoint_impl.ts +0 -623
  331. package/src/endpoint/http2_handler.ts +0 -151
  332. package/src/endpoint/lambda_handler.ts +0 -181
  333. package/src/endpoint.ts +0 -187
  334. package/src/generated/dev/restate/events.ts +0 -430
  335. package/src/generated/dev/restate/ext.ts +0 -238
  336. package/src/generated/google/protobuf/descriptor.ts +0 -7889
  337. package/src/generated/google/protobuf/empty.ts +0 -150
  338. package/src/generated/google/protobuf/struct.ts +0 -878
  339. package/src/generated/proto/discovery.ts +0 -423
  340. package/src/generated/proto/dynrpc.ts +0 -768
  341. package/src/generated/proto/javascript.ts +0 -488
  342. package/src/generated/proto/protocol.ts +0 -3091
  343. package/src/generated/proto/services.ts +0 -1834
  344. package/src/generated/proto/test.ts +0 -387
  345. package/src/invocation.ts +0 -212
  346. package/src/io/decoder.ts +0 -171
  347. package/src/io/encoder.ts +0 -72
  348. package/src/journal.ts +0 -537
  349. package/src/local_state_store.ts +0 -94
  350. package/src/logger.ts +0 -121
  351. package/src/promise_combinator_tracker.ts +0 -191
  352. package/src/public_api.ts +0 -53
  353. package/src/state_machine.ts +0 -635
  354. package/src/types/errors.ts +0 -297
  355. package/src/types/grpc.ts +0 -97
  356. package/src/types/protocol.ts +0 -201
  357. package/src/types/router.ts +0 -118
  358. package/src/types/types.ts +0 -160
  359. package/src/utils/assumptions.ts +0 -131
  360. package/src/utils/message_logger.ts +0 -112
  361. package/src/utils/promises.ts +0 -118
  362. package/src/utils/public_utils.ts +0 -91
  363. package/src/utils/rand.ts +0 -142
  364. package/src/utils/utils.ts +0 -178
  365. package/src/workflows/workflow.ts +0 -178
  366. package/src/workflows/workflow_state_service.ts +0 -299
  367. package/src/workflows/workflow_wrapper_service.ts +0 -314
  368. /package/dist/{connection → src/connection}/buffered_connection.js +0 -0
  369. /package/dist/{connection → src/connection}/connection.d.ts +0 -0
  370. /package/dist/{connection → src/connection}/connection.js +0 -0
  371. /package/dist/{promise_combinator_tracker.d.ts → src/promise_combinator_tracker.d.ts} +0 -0
  372. /package/dist/{promise_combinator_tracker.js → src/promise_combinator_tracker.js} +0 -0
  373. /package/dist/{utils → src/utils}/promises.d.ts +0 -0
  374. /package/dist/{utils → src/utils}/promises.js +0 -0
package/src/logger.ts DELETED
@@ -1,121 +0,0 @@
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
-
12
- /* eslint-disable @typescript-eslint/no-explicit-any */
13
- /* eslint-disable no-console */
14
-
15
- export class LoggerContext {
16
- readonly fqMethodName: string;
17
-
18
- constructor(
19
- readonly invocationId: string,
20
- packageName: string,
21
- serviceName: string,
22
- methodName: string,
23
- readonly additionalContext?: { [name: string]: string }
24
- ) {
25
- this.fqMethodName = packageName
26
- ? `${packageName}.${serviceName}/${methodName}`
27
- : `${serviceName}/${methodName}`;
28
- }
29
- }
30
-
31
- function formatLogPrefix(context?: LoggerContext): string {
32
- if (context === undefined) {
33
- return "[restate] ";
34
- }
35
- let prefix = `[restate] [${context.fqMethodName}][${context.invocationId}]`;
36
- if (context.additionalContext !== undefined) {
37
- for (const [k, v] of Object.entries(context.additionalContext)) {
38
- prefix = prefix + `[${k}: ${v}]`;
39
- }
40
- }
41
- return prefix;
42
- }
43
-
44
- export function createRestateConsole(
45
- context?: LoggerContext,
46
- filter?: () => boolean
47
- ): Console {
48
- const prefix = formatLogPrefix(context);
49
- const restate_logger = Object.create(console);
50
-
51
- const shouldLog: () => boolean = filter ?? (() => true);
52
-
53
- restate_logger.log = (message?: any, ...optionalParams: any[]) => {
54
- if (!shouldLog()) {
55
- return;
56
- }
57
- console.log(
58
- prefix + `[${new Date().toISOString()}] LOG: ` + message,
59
- ...optionalParams
60
- );
61
- };
62
-
63
- restate_logger.info = (message?: any, ...optionalParams: any[]) => {
64
- if (!shouldLog()) {
65
- return;
66
- }
67
- console.info(
68
- prefix + `[${new Date().toISOString()}] INFO: ` + message,
69
- ...optionalParams
70
- );
71
- };
72
-
73
- restate_logger.warn = (message?: any, ...optionalParams: any[]) => {
74
- if (!shouldLog()) {
75
- return;
76
- }
77
- console.warn(
78
- prefix + `[${new Date().toISOString()}] WARN: ` + message,
79
- ...optionalParams
80
- );
81
- };
82
-
83
- restate_logger.error = (message?: any, ...optionalParams: any[]) => {
84
- if (!shouldLog()) {
85
- return;
86
- }
87
- console.error(
88
- prefix + `[${new Date().toISOString()}] ERROR: ` + message,
89
- ...optionalParams
90
- );
91
- };
92
-
93
- restate_logger.debug = (message?: any, ...optionalParams: any[]) => {
94
- if (!shouldLog()) {
95
- return;
96
- }
97
- console.debug(
98
- prefix + `[${new Date().toISOString()}] DEBUG: ` + message,
99
- ...optionalParams
100
- );
101
- };
102
-
103
- restate_logger.trace = (message?: any, ...optionalParams: any[]) => {
104
- if (!shouldLog()) {
105
- return;
106
- }
107
- console.trace(
108
- prefix + `[${new Date().toISOString()}] TRACE: ` + message,
109
- ...optionalParams
110
- );
111
- };
112
-
113
- return restate_logger;
114
- }
115
-
116
- /**
117
- * This is a simple console without contextual info.
118
- *
119
- * This should be used only in cases where no contextual info is available.
120
- */
121
- export const rlog = createRestateConsole();
@@ -1,191 +0,0 @@
1
- import {
2
- CompletablePromise,
3
- wrapDeeply,
4
- WrappedPromise,
5
- } from "./utils/promises";
6
-
7
- export enum PromiseType {
8
- JournalEntry,
9
- // Combinator?,
10
- // SideEffect?
11
- }
12
-
13
- export interface PromiseId {
14
- type: PromiseType;
15
- id: number;
16
- }
17
-
18
- export function newJournalEntryPromiseId(entryIndex: number): PromiseId {
19
- return {
20
- type: PromiseType.JournalEntry,
21
- id: entryIndex,
22
- };
23
- }
24
-
25
- /**
26
- * Prepare a Promise combinator
27
- *
28
- * @param combinatorIndex the index of this combinator
29
- * @param combinatorConstructor the function that creates the combinator promise, e.g. Promise.all/any/race/allSettled
30
- * @param promises the promises given by the user, and the respective ids
31
- * @param readReplayOrder the function to read the replay order
32
- * @param onNewCompleted callback when a child entry is resolved
33
- * @param onCombinatorResolved callback when the combinator is resolved
34
- * @param onCombinatorReplayed callback when the combinator is replayed
35
- */
36
- function preparePromiseCombinator(
37
- combinatorIndex: number,
38
- combinatorConstructor: (promises: PromiseLike<unknown>[]) => Promise<unknown>,
39
- promises: Array<{ id: PromiseId; promise: Promise<unknown> }>,
40
- readReplayOrder: (combinatorIndex: number) => PromiseId[] | undefined,
41
- onNewCompleted: (combinatorIndex: number, promiseId: PromiseId) => void,
42
- onCombinatorResolved: (combinatorIndex: number) => Promise<void>,
43
- onCombinatorReplayed: (combinatorIndex: number) => void
44
- ): WrappedPromise<unknown> {
45
- // Create the proxy promises and index them
46
- const promisesWithProxyPromise = promises.map((v) => ({
47
- id: v.id,
48
- originalPromise: v.promise,
49
- proxyPromise: new CompletablePromise<unknown>(),
50
- }));
51
- const promisesMap = new Map(
52
- promisesWithProxyPromise.map((v) => [
53
- // We need to define a key format for this map...
54
- v.id.type.toString() + "-" + v.id.id.toString(),
55
- { originalPromise: v.originalPromise, proxyPromise: v.proxyPromise },
56
- ])
57
- );
58
-
59
- // Create the combinator using the proxy promises
60
- const combinator = combinatorConstructor(
61
- promisesWithProxyPromise.map((v) => v.proxyPromise.promise)
62
- ).finally(
63
- async () =>
64
- // Once the combinator is resolved, notify back.
65
- await onCombinatorResolved(combinatorIndex)
66
- );
67
-
68
- return wrapDeeply(combinator, () => {
69
- const replayOrder = readReplayOrder(combinatorIndex);
70
-
71
- if (replayOrder === undefined) {
72
- // We're in processing mode! We need to wire up original promises with proxy promises
73
- for (const {
74
- originalPromise,
75
- proxyPromise,
76
- id,
77
- } of promisesWithProxyPromise) {
78
- originalPromise
79
- // This code works deterministically because the javascript runtime will enqueue
80
- // the listeners of the proxy promise (which are mounted in Promise.all/any) in a single FIFO queue,
81
- // so a subsequent resolve on another proxy promise can't overtake this one.
82
- //
83
- // Some resources:
84
- // * https://stackoverflow.com/questions/38059284/why-does-javascript-promise-then-handler-run-after-other-code
85
- // * https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues
86
- // * https://tr.javascript.info/microtask-queue
87
- .then(
88
- (v) => {
89
- onNewCompleted(combinatorIndex, id);
90
- proxyPromise.resolve(v);
91
- },
92
- (e) => {
93
- onNewCompleted(combinatorIndex, id);
94
- proxyPromise.reject(e);
95
- }
96
- );
97
- }
98
- return;
99
- }
100
-
101
- // We're in replay mode, Now follow the replayIndexes order.
102
- onCombinatorReplayed(combinatorIndex);
103
- for (const promiseId of replayOrder) {
104
- // These are already completed, so once we set the then callback they will be immediately resolved.
105
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
106
- const { originalPromise, proxyPromise } = promisesMap.get(
107
- promiseId.type.toString() + "-" + promiseId.id.toString()
108
- )!;
109
-
110
- // Because this promise is already completed, promise.then will immediately enqueue in the promise microtask queue
111
- // the handlers to execute.
112
- // See the comment below for more details.
113
- originalPromise.then(
114
- (v) => proxyPromise.resolve(v),
115
- (e) => proxyPromise.reject(e)
116
- );
117
- }
118
- });
119
- }
120
-
121
- /**
122
- * This class takes care of creating and managing deterministic promise combinators.
123
- *
124
- * It should be wired up to the journal/state machine methods to read and write entries.
125
- */
126
- export class PromiseCombinatorTracker {
127
- private nextCombinatorIndex = 0;
128
- private pendingCombinators: Map<number, PromiseId[]> = new Map();
129
-
130
- constructor(
131
- private readonly readReplayOrder: (
132
- combinatorIndex: number
133
- ) => PromiseId[] | undefined,
134
- private readonly onWriteCombinatorOrder: (
135
- combinatorIndex: number,
136
- order: PromiseId[]
137
- ) => Promise<void>
138
- ) {}
139
-
140
- public createCombinator(
141
- combinatorConstructor: (
142
- promises: PromiseLike<unknown>[]
143
- ) => Promise<unknown>,
144
- promises: Array<{ id: PromiseId; promise: Promise<unknown> }>
145
- ): WrappedPromise<unknown> {
146
- const combinatorIndex = this.nextCombinatorIndex;
147
- this.nextCombinatorIndex++;
148
-
149
- // Prepare combinator order
150
- this.pendingCombinators.set(combinatorIndex, []);
151
-
152
- return preparePromiseCombinator(
153
- combinatorIndex,
154
- combinatorConstructor,
155
- promises,
156
- this.readReplayOrder,
157
- this.appendOrder.bind(this),
158
- this.onCombinatorResolved.bind(this),
159
- this.onCombinatorReplayed.bind(this)
160
- );
161
- }
162
-
163
- private appendOrder(idx: number, promiseId: PromiseId) {
164
- const order = this.pendingCombinators.get(idx);
165
- if (order === undefined) {
166
- // The order was already published, nothing to do here.
167
- return;
168
- }
169
-
170
- order.push(promiseId);
171
- }
172
-
173
- private onCombinatorReplayed(idx: number) {
174
- // This avoids republishing the order
175
- this.pendingCombinators.delete(idx);
176
- }
177
-
178
- private async onCombinatorResolved(idx: number) {
179
- const order = this.pendingCombinators.get(idx);
180
- if (order === undefined) {
181
- // It was already published
182
- return;
183
- }
184
-
185
- // We don't need this list anymore.
186
- this.pendingCombinators.delete(idx);
187
-
188
- // Publish the combinator order
189
- await this.onWriteCombinatorOrder(idx, order);
190
- }
191
- }
package/src/public_api.ts DELETED
@@ -1,53 +0,0 @@
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
-
12
- export {
13
- RestateContext,
14
- Context,
15
- KeyedContext,
16
- useContext,
17
- useKeyedContext,
18
- ServiceApi,
19
- CombineablePromise,
20
- Rand,
21
- RestateGrpcChannel,
22
- } from "./context";
23
- export {
24
- router,
25
- keyedRouter,
26
- keyedEventHandler,
27
- UnKeyedRouter,
28
- KeyedRouter,
29
- KeyedEventHandler,
30
- Client,
31
- SendClient,
32
- } from "./types/router";
33
- export {
34
- endpoint,
35
- ServiceBundle,
36
- ServiceOpts,
37
- RestateEndpoint,
38
- } from "./endpoint";
39
- export * as RestateUtils from "./utils/public_utils";
40
- export {
41
- ErrorCodes,
42
- RestateError,
43
- TerminalError,
44
- TimeoutError,
45
- } from "./types/errors";
46
- export { Event } from "./types/types";
47
- export {
48
- RestateConnection,
49
- connection,
50
- RestateConnectionOptions,
51
- } from "./embedded/api";
52
- export * as workflow from "./workflows/workflow";
53
- export * as clients from "./clients/workflow_client";