@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
@@ -1,15 +1,17 @@
1
1
  /// <reference types="node" />
2
2
  import * as p from "./types/protocol";
3
3
  import { Connection, RestateStreamConsumer } from "./connection/connection";
4
- import { ProtocolMode } from "./generated/proto/discovery";
5
4
  import { Message } from "./types/types";
6
5
  import { StateMachineConsole } from "./utils/message_logger";
7
6
  import { Invocation } from "./invocation";
7
+ import { JournalErrorContext } from "./types/errors";
8
8
  import { LocalStateStore } from "./local_state_store";
9
9
  import { LoggerContext } from "./logger";
10
10
  import { WrappedPromise } from "./utils/promises";
11
11
  import { PromiseId } from "./promise_combinator_tracker";
12
- export declare class StateMachine<I, O> implements RestateStreamConsumer {
12
+ import { ProtocolMode } from "./types/discovery";
13
+ import { Buffer } from "node:buffer";
14
+ export declare class StateMachine implements RestateStreamConsumer {
13
15
  private readonly connection;
14
16
  private readonly invocation;
15
17
  private readonly protocolMode;
@@ -23,7 +25,7 @@ export declare class StateMachine<I, O> implements RestateStreamConsumer {
23
25
  private suspensionTimeout?;
24
26
  private promiseCombinatorTracker;
25
27
  console: StateMachineConsole;
26
- constructor(connection: Connection, invocation: Invocation<I, O>, protocolMode: ProtocolMode, keyedContext: boolean, loggerContext: LoggerContext, suspensionMillis?: number);
28
+ constructor(connection: Connection, invocation: Invocation, protocolMode: ProtocolMode, keyedContext: boolean, loggerContext: LoggerContext, suspensionMillis?: number);
27
29
  handleMessage(m: Message): boolean;
28
30
  handleUserCodeMessage<T>(messageType: bigint, message: p.ProtocolMessage, completedFlag?: boolean, protocolVersion?: number, requiresAckFlag?: boolean): WrappedPromise<T | void>;
29
31
  createCombinator(combinatorConstructor: (promises: PromiseLike<unknown>[]) => Promise<unknown>, promises: Array<{
@@ -47,7 +49,7 @@ export declare class StateMachine<I, O> implements RestateStreamConsumer {
47
49
  * expected to ensure that resources are properly cleaned up.
48
50
  */
49
51
  invoke(): Promise<Buffer | void>;
50
- private sendErrorAndFinish;
52
+ sendErrorAndFinish(e: Error, ctx?: JournalErrorContext): Promise<void>;
51
53
  private sendRetryableError;
52
54
  private sendTerminalError;
53
55
  private send;
@@ -76,6 +78,7 @@ export declare class StateMachine<I, O> implements RestateStreamConsumer {
76
78
  getUserCodeJournalIndex(): number;
77
79
  handleInputClosed(): void;
78
80
  handleStreamError(e: Error): void;
81
+ handleDanglingPromiseError(e: Error): void;
79
82
  nextEntryWillBeReplayed(): boolean;
80
83
  private clearSuspensionTimeout;
81
84
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state_machine.d.ts","sourceRoot":"","sources":["../../src/state_machine.ts"],"names":[],"mappings":"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"}
@@ -36,16 +36,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.StateMachine = void 0;
37
37
  const p = __importStar(require("./types/protocol"));
38
38
  const context_impl_1 = require("./context_impl");
39
- const discovery_1 = require("./generated/proto/discovery");
40
39
  const types_1 = require("./types/types");
41
40
  const message_logger_1 = require("./utils/message_logger");
42
- const timers_1 = require("timers");
43
41
  const protocol_1 = require("./types/protocol");
44
42
  const journal_1 = require("./journal");
45
43
  const errors_1 = require("./types/errors");
46
44
  const logger_1 = require("./logger");
47
45
  const promises_1 = require("./utils/promises");
48
46
  const promise_combinator_tracker_1 = require("./promise_combinator_tracker");
47
+ const javascript_pb_1 = require("./generated/proto/javascript_pb");
48
+ const discovery_1 = require("./types/discovery");
49
+ const node_buffer_1 = require("node:buffer");
49
50
  class StateMachine {
50
51
  connection;
51
52
  invocation;
@@ -76,9 +77,9 @@ class StateMachine {
76
77
  this.suspensionMillis = suspensionMillis;
77
78
  this.localStateStore = invocation.localStateStore;
78
79
  this.console = (0, message_logger_1.createStateMachineConsole)(loggerContext);
79
- this.restateContext = new context_impl_1.ContextImpl(this.invocation.id, this.invocation.method.service,
80
+ this.restateContext = new context_impl_1.ContextImpl(this.invocation.id,
80
81
  // The console exposed by RestateContext filters logs in replay, while the internal one is based on the ENV variables.
81
- (0, logger_1.createRestateConsole)(loggerContext, () => !this.journal.isReplaying()), keyedContext, this);
82
+ (0, logger_1.createRestateConsole)(loggerContext, () => !this.journal.isReplaying()), keyedContext, invocation.userKey, invocation.invocationValue, invocation.invocationHeaders, this);
82
83
  this.journal = new journal_1.Journal(this.invocation);
83
84
  this.promiseCombinatorTracker = new promise_combinator_tracker_1.PromiseCombinatorTracker(this.readCombinatorOrderEntry.bind(this), this.writeCombinatorOrderEntry.bind(this));
84
85
  }
@@ -101,7 +102,7 @@ class StateMachine {
101
102
  // Remove lingering suspension timeouts, if we are not waiting for completions anymore
102
103
  if (this.suspensionTimeout !== undefined &&
103
104
  this.journal.getCompletableIndices().length === 0) {
104
- (0, timers_1.clearTimeout)(this.suspensionTimeout);
105
+ clearTimeout(this.suspensionTimeout);
105
106
  this.suspensionTimeout = undefined;
106
107
  }
107
108
  return false; // we are never complete
@@ -172,10 +173,10 @@ class StateMachine {
172
173
  }
173
174
  async writeCombinatorOrderEntry(combinatorId, order) {
174
175
  if (this.journal.isProcessing()) {
175
- const combinatorMessage = {
176
+ const combinatorMessage = new javascript_pb_1.CombinatorEntryMessage({
176
177
  combinatorId,
177
178
  journalEntriesOrder: order.map((pid) => pid.id),
178
- };
179
+ });
179
180
  this.console.debugJournalMessage("Adding message to journal and sending to Restate", protocol_1.COMBINATOR_ENTRY_MESSAGE, combinatorMessage);
180
181
  const ackPromise = this.journal.appendJournalEntry(protocol_1.COMBINATOR_ENTRY_MESSAGE, combinatorMessage);
181
182
  this.send(new types_1.Message(protocol_1.COMBINATOR_ENTRY_MESSAGE, combinatorMessage, undefined, undefined, true));
@@ -214,21 +215,13 @@ class StateMachine {
214
215
  return Promise.reject(new Error("state machine is already closed"));
215
216
  }
216
217
  if (this.journal.nextEntryWillBeReplayed()) {
217
- this.console.debugInvokeMessage("Resuming (replaying) function.");
218
+ this.console.debug("Resuming (replaying) function.");
218
219
  }
219
220
  else {
220
- this.console.debugInvokeMessage("Invoking function.");
221
- }
222
- let resultBytes;
223
- switch (this.invocation.invocationValue.kind) {
224
- case "value":
225
- resultBytes = this.invocation.method.invoke(this.restateContext, this.invocation.invocationValue.value);
226
- break;
227
- case "failure":
228
- resultBytes = Promise.reject((0, errors_1.failureToTerminalError)(this.invocation.invocationValue.failure));
229
- break;
221
+ this.console.debug("Invoking function.");
230
222
  }
231
- resultBytes
223
+ this.invocation.handler
224
+ .invoke(this.restateContext, this.invocation.invocationValue)
232
225
  .then((bytes) => {
233
226
  // invocation successfully returned with a result value
234
227
  try {
@@ -244,10 +237,10 @@ class StateMachine {
244
237
  "This try-catch block should be placed inside the side effect.");
245
238
  return;
246
239
  }
247
- const value = Buffer.from(bytes);
240
+ const value = node_buffer_1.Buffer.from(bytes);
248
241
  // handle the result value
249
- const msg = new types_1.Message(protocol_1.OUTPUT_STREAM_ENTRY_MESSAGE_TYPE, protocol_1.OutputStreamEntryMessage.create({
250
- value,
242
+ const msg = new types_1.Message(protocol_1.OUTPUT_ENTRY_MESSAGE_TYPE, new protocol_1.OutputEntryMessage({
243
+ result: { case: "value", value },
251
244
  }));
252
245
  this.journal.handleUserSideMessage(msg.messageType, msg.message);
253
246
  if (!this.journal.outputMsgWasReplayed()) {
@@ -257,9 +250,9 @@ class StateMachine {
257
250
  else {
258
251
  this.console.debugJournalMessage("Replayed and matched output message from journal", msg.messageType, msg.message);
259
252
  }
260
- this.console.debugInvokeMessage("Function completed successfully.");
253
+ this.console.debug("Function completed successfully.");
261
254
  // Mark the end of the invocation
262
- this.send(new types_1.Message(protocol_1.END_MESSAGE_TYPE, protocol_1.EndMessage.create()));
255
+ this.send(new types_1.Message(protocol_1.END_MESSAGE_TYPE, new protocol_1.EndMessage()));
263
256
  this.finish(value);
264
257
  }
265
258
  catch (e) {
@@ -275,9 +268,7 @@ class StateMachine {
275
268
  if (this.stateMachineClosed) {
276
269
  return;
277
270
  }
278
- const error = (0, errors_1.ensureError)(e);
279
- this.console.trace("Function completed with an error: " + error.message, e);
280
- this.sendErrorAndFinish(error);
271
+ this.sendErrorAndFinish((0, errors_1.ensureError)(e));
281
272
  }
282
273
  catch (ee) {
283
274
  this.unhandledError((0, errors_1.ensureError)(ee));
@@ -287,23 +278,24 @@ class StateMachine {
287
278
  // rpc function does not end (error, suspension, ...)
288
279
  return this.invocationComplete.promise;
289
280
  }
290
- async sendErrorAndFinish(e) {
281
+ async sendErrorAndFinish(e, ctx) {
282
+ this.console.warn("Function completed with an error.\n", e);
291
283
  if (e instanceof errors_1.TerminalError) {
292
284
  this.sendTerminalError(e);
293
285
  }
294
286
  else {
295
- this.sendRetryableError(e);
287
+ this.sendRetryableError(e, ctx);
296
288
  }
297
289
  await this.finish();
298
290
  }
299
- sendRetryableError(e) {
300
- const msg = new types_1.Message(protocol_1.ERROR_MESSAGE_TYPE, (0, errors_1.errorToErrorMessage)(e));
291
+ sendRetryableError(e, ctx) {
292
+ const msg = new types_1.Message(protocol_1.ERROR_MESSAGE_TYPE, (0, errors_1.errorToErrorMessage)(e, ctx));
301
293
  this.console.debugJournalMessage("Invocation ended with retryable error.", msg.messageType, msg.message);
302
294
  this.send(msg);
303
295
  }
304
296
  sendTerminalError(e) {
305
- const msg = new types_1.Message(protocol_1.OUTPUT_STREAM_ENTRY_MESSAGE_TYPE, protocol_1.OutputStreamEntryMessage.create({
306
- failure: e.toFailure(),
297
+ const msg = new types_1.Message(protocol_1.OUTPUT_ENTRY_MESSAGE_TYPE, new protocol_1.OutputEntryMessage({
298
+ result: { case: "failure", value: e.toFailure() },
307
299
  }));
308
300
  this.console.debugJournalMessage("Invocation ended with failure message.", msg.messageType, msg.message);
309
301
  this.journal.handleUserSideMessage(msg.messageType, msg.message);
@@ -311,7 +303,7 @@ class StateMachine {
311
303
  this.send(msg);
312
304
  }
313
305
  // Mark the end of the invocation
314
- this.send(new types_1.Message(protocol_1.END_MESSAGE_TYPE, protocol_1.EndMessage.create()));
306
+ this.send(new types_1.Message(protocol_1.END_MESSAGE_TYPE, new protocol_1.EndMessage()));
315
307
  }
316
308
  send(message) {
317
309
  this.connection.send(message).catch((err) => {
@@ -386,7 +378,7 @@ class StateMachine {
386
378
  // A suspension message is the end of the invocation.
387
379
  // Resolve the root call with the suspension message
388
380
  // This will lead to a onCallSuccess call where this msg will be sent.
389
- const msg = new types_1.Message(protocol_1.SUSPENSION_MESSAGE_TYPE, protocol_1.SuspensionMessage.create({
381
+ const msg = new types_1.Message(protocol_1.SUSPENSION_MESSAGE_TYPE, new protocol_1.SuspensionMessage({
390
382
  entryIndexes: indices,
391
383
  }));
392
384
  this.console.debugJournalMessage("Writing suspension message to journal.", msg.messageType, msg.message);
@@ -394,7 +386,7 @@ class StateMachine {
394
386
  if (!this.journal.outputMsgWasReplayed()) {
395
387
  this.send(msg);
396
388
  }
397
- this.console.debugInvokeMessage("Suspending function.");
389
+ this.console.debug("Suspending function.");
398
390
  await this.finish();
399
391
  }
400
392
  /**
@@ -423,12 +415,17 @@ class StateMachine {
423
415
  e.message);
424
416
  this.unhandledError(e);
425
417
  }
418
+ handleDanglingPromiseError(e) {
419
+ this.console.info("Aborting function execution and closing state machine due to an error: " +
420
+ e.message);
421
+ this.unhandledError(e);
422
+ }
426
423
  nextEntryWillBeReplayed() {
427
424
  return this.journal.nextEntryWillBeReplayed();
428
425
  }
429
426
  clearSuspensionTimeout() {
430
427
  if (this.suspensionTimeout !== undefined) {
431
- (0, timers_1.clearTimeout)(this.suspensionTimeout);
428
+ clearTimeout(this.suspensionTimeout);
432
429
  this.suspensionTimeout = undefined;
433
430
  }
434
431
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state_machine.js","sourceRoot":"","sources":["../../src/state_machine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { Context, ObjectContext } from "../context";
2
+ import * as d from "./discovery";
3
+ import { ContextImpl } from "../context_impl";
4
+ export interface Component {
5
+ name(): string;
6
+ handlerMatching(url: UrlPathComponents): ComponentHandler | undefined;
7
+ discovery(): d.Service;
8
+ }
9
+ export interface ComponentHandler {
10
+ name(): string;
11
+ component(): Component;
12
+ invoke(context: ContextImpl, input: Uint8Array): Promise<Uint8Array>;
13
+ }
14
+ export type ServiceHandlerFunction<I, O> = (ctx: Context, param: I) => Promise<O>;
15
+ export type ServiceHandlerOpts<I, O> = {
16
+ name: string;
17
+ fn: ServiceHandlerFunction<I, O>;
18
+ };
19
+ export declare class ServiceComponent implements Component {
20
+ private readonly componentName;
21
+ private readonly handlers;
22
+ constructor(componentName: string);
23
+ name(): string;
24
+ add<I, O>(opts: ServiceHandlerOpts<I, O>): void;
25
+ discovery(): d.Service;
26
+ handlerMatching(url: UrlPathComponents): ComponentHandler | undefined;
27
+ }
28
+ export declare class ServiceHandler implements ComponentHandler {
29
+ private readonly handlerName;
30
+ private readonly parent;
31
+ private readonly fn;
32
+ constructor(opts: ServiceHandlerOpts<any, any>, parent: ServiceComponent);
33
+ invoke(context: ContextImpl, input: Uint8Array): Promise<Uint8Array>;
34
+ name(): string;
35
+ component(): Component;
36
+ }
37
+ export type VirtualObjectHandlerFunction<I, O> = (ctx: ObjectContext, param: I) => Promise<O>;
38
+ export type VirtualObjectHandlerOpts<I, O> = {
39
+ name: string;
40
+ fn: VirtualObjectHandlerFunction<I, O>;
41
+ };
42
+ export declare class VritualObjectComponent implements Component {
43
+ readonly componentName: string;
44
+ private readonly opts;
45
+ constructor(componentName: string);
46
+ name(): string;
47
+ add<I, O>(opts: VirtualObjectHandlerOpts<I, O>): void;
48
+ discovery(): d.Service;
49
+ handlerMatching(url: UrlPathComponents): ComponentHandler | undefined;
50
+ }
51
+ export declare class VirtualObjectHandler implements ComponentHandler {
52
+ private readonly componentName;
53
+ private readonly parent;
54
+ private readonly opts;
55
+ constructor(componentName: string, parent: VritualObjectComponent, opts: VirtualObjectHandlerOpts<any, any>);
56
+ name(): string;
57
+ component(): Component;
58
+ invoke(context: ContextImpl, input: Uint8Array): Promise<Uint8Array>;
59
+ }
60
+ export type UrlPathComponents = {
61
+ componentName: string;
62
+ handlerName: string;
63
+ };
64
+ export declare function parseUrlComponents(urlPath?: string): UrlPathComponents | "discovery" | undefined;
65
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/types/components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
4
+ *
5
+ * This file is part of the Restate SDK for Node.js/TypeScript,
6
+ * which is released under the MIT license.
7
+ *
8
+ * You can find a copy of the license in file LICENSE in the root
9
+ * directory of this repository or package, or at
10
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.parseUrlComponents = exports.VirtualObjectHandler = exports.VritualObjectComponent = exports.ServiceHandler = exports.ServiceComponent = void 0;
37
+ const d = __importStar(require("./discovery"));
38
+ const serde_1 = require("../utils/serde");
39
+ class ServiceComponent {
40
+ componentName;
41
+ handlers = new Map();
42
+ constructor(componentName) {
43
+ this.componentName = componentName;
44
+ }
45
+ name() {
46
+ return this.componentName;
47
+ }
48
+ add(opts) {
49
+ const c = new ServiceHandler(opts, this);
50
+ this.handlers.set(opts.name, c);
51
+ }
52
+ discovery() {
53
+ const handlers = [...this.handlers.keys()].map((name) => {
54
+ return {
55
+ name,
56
+ };
57
+ });
58
+ return {
59
+ name: this.componentName,
60
+ ty: d.ServiceType.SERVICE,
61
+ handlers,
62
+ };
63
+ }
64
+ handlerMatching(url) {
65
+ return this.handlers.get(url.handlerName);
66
+ }
67
+ }
68
+ exports.ServiceComponent = ServiceComponent;
69
+ class ServiceHandler {
70
+ handlerName;
71
+ parent;
72
+ fn;
73
+ constructor(opts, parent) {
74
+ this.handlerName = opts.name;
75
+ this.parent = parent;
76
+ this.fn = opts.fn;
77
+ }
78
+ async invoke(context, input) {
79
+ const req = (0, serde_1.deserializeJson)(input);
80
+ const res = await this.fn(context, req);
81
+ return (0, serde_1.serializeJson)(res);
82
+ }
83
+ name() {
84
+ return this.handlerName;
85
+ }
86
+ component() {
87
+ return this.parent;
88
+ }
89
+ }
90
+ exports.ServiceHandler = ServiceHandler;
91
+ class VritualObjectComponent {
92
+ componentName;
93
+ opts = new Map();
94
+ constructor(componentName) {
95
+ this.componentName = componentName;
96
+ }
97
+ name() {
98
+ return this.componentName;
99
+ }
100
+ add(opts) {
101
+ this.opts.set(opts.name, opts);
102
+ }
103
+ discovery() {
104
+ const handlers = [...this.opts.keys()].map((name) => {
105
+ return {
106
+ name,
107
+ };
108
+ });
109
+ return {
110
+ name: this.componentName,
111
+ ty: d.ServiceType.VIRTUAL_OBJECT,
112
+ handlers,
113
+ };
114
+ }
115
+ handlerMatching(url) {
116
+ const opts = this.opts.get(url.handlerName);
117
+ if (!opts) {
118
+ return undefined;
119
+ }
120
+ return new VirtualObjectHandler(url.handlerName, this, opts);
121
+ }
122
+ }
123
+ exports.VritualObjectComponent = VritualObjectComponent;
124
+ class VirtualObjectHandler {
125
+ componentName;
126
+ parent;
127
+ opts;
128
+ constructor(componentName, parent, opts) {
129
+ this.componentName = componentName;
130
+ this.parent = parent;
131
+ this.opts = opts;
132
+ }
133
+ name() {
134
+ return this.componentName;
135
+ }
136
+ component() {
137
+ return this.parent;
138
+ }
139
+ async invoke(context, input) {
140
+ const req = (0, serde_1.deserializeJson)(input);
141
+ const res = await this.opts.fn(context, req);
142
+ return (0, serde_1.serializeJson)(res);
143
+ }
144
+ }
145
+ exports.VirtualObjectHandler = VirtualObjectHandler;
146
+ function parseUrlComponents(urlPath) {
147
+ if (!urlPath) {
148
+ return undefined;
149
+ }
150
+ const fragments = urlPath.split("/");
151
+ if (fragments.length >= 3 && fragments[fragments.length - 3] === "invoke") {
152
+ return {
153
+ componentName: fragments[fragments.length - 2],
154
+ handlerName: fragments[fragments.length - 1],
155
+ };
156
+ }
157
+ if (fragments.length > 0 && fragments[fragments.length - 1] === "discover") {
158
+ return "discovery";
159
+ }
160
+ return undefined;
161
+ }
162
+ exports.parseUrlComponents = parseUrlComponents;
163
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/types/components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare enum ProtocolMode {
2
+ BIDI_STREAM = "BIDI_STREAM",
3
+ REQUEST_RESPONSE = "REQUEST_RESPONSE"
4
+ }
5
+ export declare enum ServiceType {
6
+ VIRTUAL_OBJECT = "VIRTUAL_OBJECT",
7
+ SERVICE = "SERVICE"
8
+ }
9
+ export declare enum ServiceHandlerType {
10
+ EXCLUSIVE = "EXCLUSIVE",
11
+ SHARED = "SHARED"
12
+ }
13
+ type InputPayload = {
14
+ contentType: string;
15
+ empty: "ALLOW" | "DISALLOW" | "REQUIRE";
16
+ jsonSchema?: any;
17
+ };
18
+ type OutputPayload = {
19
+ contentType: string;
20
+ setContentTypeIfEmpty: boolean;
21
+ };
22
+ export interface Handler {
23
+ name: string;
24
+ ty?: ServiceHandlerType;
25
+ input?: InputPayload;
26
+ output?: OutputPayload;
27
+ }
28
+ export interface Service {
29
+ name: string;
30
+ ty: ServiceType;
31
+ handlers: Handler[];
32
+ }
33
+ export interface Deployment {
34
+ protocolMode: ProtocolMode;
35
+ minProtocolVersion: number;
36
+ maxProtocolVersion: number;
37
+ services: Service[];
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/types/discovery.ts"],"names":[],"mappings":"AAWA,oBAAY,YAAY;IACtB,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;CACtC;AAED,oBAAY,WAAW;IACrB,cAAc,mBAAmB;IACjC,OAAO,YAAY;CACpB;AAED,oBAAY,kBAAkB;IAC5B,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAGxC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,WAAW,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
4
+ *
5
+ * This file is part of the Restate SDK for Node.js/TypeScript,
6
+ * which is released under the MIT license.
7
+ *
8
+ * You can find a copy of the license in file LICENSE in the root
9
+ * directory of this repository or package, or at
10
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ServiceHandlerType = exports.ServiceType = exports.ProtocolMode = void 0;
14
+ var ProtocolMode;
15
+ (function (ProtocolMode) {
16
+ ProtocolMode["BIDI_STREAM"] = "BIDI_STREAM";
17
+ ProtocolMode["REQUEST_RESPONSE"] = "REQUEST_RESPONSE";
18
+ })(ProtocolMode = exports.ProtocolMode || (exports.ProtocolMode = {}));
19
+ var ServiceType;
20
+ (function (ServiceType) {
21
+ ServiceType["VIRTUAL_OBJECT"] = "VIRTUAL_OBJECT";
22
+ ServiceType["SERVICE"] = "SERVICE";
23
+ })(ServiceType = exports.ServiceType || (exports.ServiceType = {}));
24
+ var ServiceHandlerType;
25
+ (function (ServiceHandlerType) {
26
+ ServiceHandlerType["EXCLUSIVE"] = "EXCLUSIVE";
27
+ ServiceHandlerType["SHARED"] = "SHARED";
28
+ })(ServiceHandlerType = exports.ServiceHandlerType || (exports.ServiceHandlerType = {}));
29
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/types/discovery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2CAA2B,CAAA;IAC3B,qDAAqC,CAAA;AACvC,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gDAAiC,CAAA;IACjC,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,6CAAuB,CAAA;IACvB,uCAAiB,CAAA;AACnB,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B"}
@@ -0,0 +1,53 @@
1
+ import { ErrorMessage, Failure } from "../generated/proto/protocol_pb";
2
+ import * as p from "./protocol";
3
+ export declare const INTERNAL_ERROR_CODE = 500;
4
+ export declare const TIMEOUT_ERROR_CODE = 408;
5
+ export declare const UNKNOWN_ERROR_CODE = 500;
6
+ export declare enum RestateErrorCodes {
7
+ JOURNAL_MISMATCH = 570,
8
+ PROTOCOL_VIOLATION = 571
9
+ }
10
+ export type JournalErrorContext = {
11
+ relatedEntryName?: string;
12
+ relatedEntryIndex?: number;
13
+ relatedEntryType?: bigint;
14
+ };
15
+ export declare function ensureError(e: unknown): Error;
16
+ export declare class RestateError extends Error {
17
+ readonly code: number;
18
+ constructor(message: string, options?: {
19
+ errorCode?: number;
20
+ cause?: any;
21
+ });
22
+ toFailure(): Failure;
23
+ }
24
+ export declare class TerminalError extends RestateError {
25
+ constructor(message: string, options?: {
26
+ errorCode?: number;
27
+ cause?: any;
28
+ });
29
+ }
30
+ export declare class TimeoutError extends TerminalError {
31
+ constructor();
32
+ }
33
+ export declare class RetryableError extends RestateError {
34
+ constructor(message: string, options?: {
35
+ errorCode?: number;
36
+ cause?: any;
37
+ });
38
+ static internal(message: string): RetryableError;
39
+ static journalMismatch(journalIndex: number, actualEntry: {
40
+ messageType: bigint;
41
+ message: p.ProtocolMessage | Uint8Array;
42
+ }, expectedEntry: {
43
+ messageType: bigint;
44
+ message: p.ProtocolMessage | Uint8Array;
45
+ }): RetryableError;
46
+ static protocolViolation(message: string): RetryableError;
47
+ static apiViolation(message: string): RetryableError;
48
+ }
49
+ export declare function errorToFailure(err: Error): Failure;
50
+ export declare function failureToTerminalError(failure: Failure): TerminalError;
51
+ export declare function failureToError(failure: Failure, terminalError: boolean): Error;
52
+ export declare function errorToErrorMessage(err: Error, additionalContext?: JournalErrorContext): ErrorMessage;
53
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/types/errors.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,oBAAY,iBAAiB;IAC3B,gBAAgB,MAAM;IACtB,kBAAkB,MAAM;CACzB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAa7C;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE;IAKnE,SAAS,IAAI,OAAO;CAM5B;AAID,qBAAa,aAAc,SAAQ,YAAY;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE;CAG3E;AAED,qBAAa,YAAa,SAAQ,aAAa;;CAI9C;AAGD,qBAAa,cAAe,SAAQ,YAAY;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE;WAI5D,QAAQ,CAAC,OAAO,EAAE,MAAM;WAIxB,eAAe,CAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC;KACzC,EACD,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC;KACzC;WAeW,iBAAiB,CAAC,OAAO,EAAE,MAAM;WAMjC,YAAY,CAAC,OAAO,EAAE,MAAM;CAK3C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAOlD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAEtE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,KAAK,CAOP;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,KAAK,EACV,iBAAiB,CAAC,EAAE,mBAAmB,GACtC,YAAY,CAYd"}