@restatedev/restate-sdk 1.3.3 → 1.5.0

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 (505) hide show
  1. package/README.md +6 -4
  2. package/dist/cjs/src/common_api.d.ts +5 -5
  3. package/dist/cjs/src/common_api.d.ts.map +1 -1
  4. package/dist/cjs/src/common_api.js +2 -1
  5. package/dist/cjs/src/common_api.js.map +1 -1
  6. package/dist/cjs/src/context.d.ts +103 -12
  7. package/dist/cjs/src/context.d.ts.map +1 -1
  8. package/dist/cjs/src/context.js +25 -13
  9. package/dist/cjs/src/context.js.map +1 -1
  10. package/dist/cjs/src/context_impl.d.ts +38 -24
  11. package/dist/cjs/src/context_impl.d.ts.map +1 -1
  12. package/dist/cjs/src/context_impl.js +327 -342
  13. package/dist/cjs/src/context_impl.js.map +1 -1
  14. package/dist/cjs/src/endpoint/endpoint_builder.d.ts +6 -8
  15. package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -1
  16. package/dist/cjs/src/endpoint/endpoint_builder.js +23 -23
  17. package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -1
  18. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +4 -6
  19. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -1
  20. package/dist/cjs/src/endpoint/fetch_endpoint.js +0 -4
  21. package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -1
  22. package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -1
  23. package/dist/cjs/src/endpoint/handlers/fetch.js +1 -0
  24. package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -1
  25. package/dist/cjs/src/endpoint/handlers/generic.d.ts +9 -0
  26. package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -1
  27. package/dist/cjs/src/endpoint/handlers/generic.js +249 -88
  28. package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -1
  29. package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -1
  30. package/dist/cjs/src/endpoint/handlers/lambda.js +15 -3
  31. package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -1
  32. package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +283 -0
  33. package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -0
  34. package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +1333 -0
  35. package/dist/cjs/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -0
  36. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +4 -6
  37. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -1
  38. package/dist/cjs/src/endpoint/lambda_endpoint.js +0 -4
  39. package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -1
  40. package/dist/cjs/src/endpoint/node_endpoint.d.ts +4 -6
  41. package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -1
  42. package/dist/cjs/src/endpoint/node_endpoint.js +12 -4
  43. package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -1
  44. package/dist/cjs/src/endpoint.d.ts +6 -37
  45. package/dist/cjs/src/endpoint.d.ts.map +1 -1
  46. package/dist/cjs/src/generated/version.d.ts +1 -1
  47. package/dist/cjs/src/generated/version.js +1 -1
  48. package/dist/cjs/src/io.d.ts +25 -0
  49. package/dist/cjs/src/io.d.ts.map +1 -0
  50. package/dist/cjs/src/io.js +78 -0
  51. package/dist/cjs/src/io.js.map +1 -0
  52. package/dist/cjs/src/logging/console_logger_transport.d.ts +5 -0
  53. package/dist/cjs/src/logging/console_logger_transport.d.ts.map +1 -0
  54. package/dist/cjs/src/logging/console_logger_transport.js +98 -0
  55. package/dist/cjs/src/logging/console_logger_transport.js.map +1 -0
  56. package/dist/cjs/src/logging/logger.d.ts +11 -0
  57. package/dist/cjs/src/logging/logger.d.ts.map +1 -0
  58. package/dist/cjs/src/logging/logger.js +61 -0
  59. package/dist/cjs/src/logging/logger.js.map +1 -0
  60. package/dist/cjs/src/logging/logger_transport.d.ts +52 -0
  61. package/dist/cjs/src/logging/logger_transport.d.ts.map +1 -0
  62. package/dist/cjs/src/logging/logger_transport.js +59 -0
  63. package/dist/cjs/src/logging/logger_transport.js.map +1 -0
  64. package/dist/cjs/src/promises.d.ts +110 -0
  65. package/dist/cjs/src/promises.d.ts.map +1 -0
  66. package/dist/cjs/src/promises.js +323 -0
  67. package/dist/cjs/src/promises.js.map +1 -0
  68. package/dist/cjs/src/types/components.d.ts +11 -3
  69. package/dist/cjs/src/types/components.d.ts.map +1 -1
  70. package/dist/cjs/src/types/components.js +38 -5
  71. package/dist/cjs/src/types/components.js.map +1 -1
  72. package/dist/cjs/src/types/discovery.d.ts +4 -0
  73. package/dist/cjs/src/types/discovery.d.ts.map +1 -1
  74. package/dist/cjs/src/types/errors.d.ts +8 -31
  75. package/dist/cjs/src/types/errors.d.ts.map +1 -1
  76. package/dist/cjs/src/types/errors.js +18 -74
  77. package/dist/cjs/src/types/errors.js.map +1 -1
  78. package/dist/cjs/src/types/rpc.d.ts +66 -41
  79. package/dist/cjs/src/types/rpc.d.ts.map +1 -1
  80. package/dist/cjs/src/types/rpc.js +32 -83
  81. package/dist/cjs/src/types/rpc.js.map +1 -1
  82. package/dist/cjs/src/user_agent.d.ts +1 -1
  83. package/dist/cjs/src/utils/buffer.d.ts +1 -0
  84. package/dist/cjs/src/utils/buffer.d.ts.map +1 -1
  85. package/dist/cjs/src/utils/completable_promise.d.ts +9 -0
  86. package/dist/cjs/src/utils/completable_promise.d.ts.map +1 -0
  87. package/dist/cjs/src/utils/completable_promise.js +34 -0
  88. package/dist/cjs/src/utils/completable_promise.js.map +1 -0
  89. package/dist/cjs/src/utils/rand.d.ts +1 -1
  90. package/dist/cjs/src/utils/rand.d.ts.map +1 -1
  91. package/dist/cjs/src/utils/rand.js +1 -1
  92. package/dist/cjs/src/utils/rand.js.map +1 -1
  93. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  94. package/dist/esm/src/common_api.d.ts +5 -5
  95. package/dist/esm/src/common_api.d.ts.map +1 -1
  96. package/dist/esm/src/common_api.js +1 -1
  97. package/dist/esm/src/common_api.js.map +1 -1
  98. package/dist/esm/src/context.d.ts +103 -12
  99. package/dist/esm/src/context.d.ts.map +1 -1
  100. package/dist/esm/src/context.js +24 -12
  101. package/dist/esm/src/context.js.map +1 -1
  102. package/dist/esm/src/context_impl.d.ts +38 -24
  103. package/dist/esm/src/context_impl.d.ts.map +1 -1
  104. package/dist/esm/src/context_impl.js +325 -341
  105. package/dist/esm/src/context_impl.js.map +1 -1
  106. package/dist/esm/src/endpoint/endpoint_builder.d.ts +6 -8
  107. package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -1
  108. package/dist/esm/src/endpoint/endpoint_builder.js +23 -23
  109. package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -1
  110. package/dist/esm/src/endpoint/fetch_endpoint.d.ts +4 -6
  111. package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -1
  112. package/dist/esm/src/endpoint/fetch_endpoint.js +0 -4
  113. package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -1
  114. package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -1
  115. package/dist/esm/src/endpoint/handlers/fetch.js +1 -0
  116. package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -1
  117. package/dist/esm/src/endpoint/handlers/generic.d.ts +9 -0
  118. package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -1
  119. package/dist/esm/src/endpoint/handlers/generic.js +226 -89
  120. package/dist/esm/src/endpoint/handlers/generic.js.map +1 -1
  121. package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -1
  122. package/dist/esm/src/endpoint/handlers/lambda.js +15 -3
  123. package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -1
  124. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +283 -0
  125. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -0
  126. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +1322 -0
  127. package/dist/esm/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -0
  128. package/dist/esm/src/endpoint/lambda_endpoint.d.ts +4 -6
  129. package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -1
  130. package/dist/esm/src/endpoint/lambda_endpoint.js +0 -4
  131. package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -1
  132. package/dist/esm/src/endpoint/node_endpoint.d.ts +4 -6
  133. package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -1
  134. package/dist/esm/src/endpoint/node_endpoint.js +12 -4
  135. package/dist/esm/src/endpoint/node_endpoint.js.map +1 -1
  136. package/dist/esm/src/endpoint.d.ts +6 -37
  137. package/dist/esm/src/endpoint.d.ts.map +1 -1
  138. package/dist/esm/src/generated/version.d.ts +1 -1
  139. package/dist/esm/src/generated/version.js +1 -1
  140. package/dist/esm/src/io.d.ts +25 -0
  141. package/dist/esm/src/io.d.ts.map +1 -0
  142. package/dist/esm/src/io.js +73 -0
  143. package/dist/esm/src/io.js.map +1 -0
  144. package/dist/esm/src/logging/console_logger_transport.d.ts +5 -0
  145. package/dist/esm/src/logging/console_logger_transport.d.ts.map +1 -0
  146. package/dist/esm/src/{logger.js → logging/console_logger_transport.js} +40 -90
  147. package/dist/esm/src/logging/console_logger_transport.js.map +1 -0
  148. package/dist/esm/src/logging/logger.d.ts +11 -0
  149. package/dist/esm/src/logging/logger.d.ts.map +1 -0
  150. package/dist/esm/src/logging/logger.js +57 -0
  151. package/dist/esm/src/logging/logger.js.map +1 -0
  152. package/dist/esm/src/logging/logger_transport.d.ts +52 -0
  153. package/dist/esm/src/logging/logger_transport.d.ts.map +1 -0
  154. package/dist/esm/src/logging/logger_transport.js +55 -0
  155. package/dist/esm/src/logging/logger_transport.js.map +1 -0
  156. package/dist/esm/src/promises.d.ts +110 -0
  157. package/dist/esm/src/promises.d.ts.map +1 -0
  158. package/dist/esm/src/promises.js +311 -0
  159. package/dist/esm/src/promises.js.map +1 -0
  160. package/dist/esm/src/types/components.d.ts +11 -3
  161. package/dist/esm/src/types/components.d.ts.map +1 -1
  162. package/dist/esm/src/types/components.js +38 -5
  163. package/dist/esm/src/types/components.js.map +1 -1
  164. package/dist/esm/src/types/discovery.d.ts +4 -0
  165. package/dist/esm/src/types/discovery.d.ts.map +1 -1
  166. package/dist/esm/src/types/errors.d.ts +8 -31
  167. package/dist/esm/src/types/errors.d.ts.map +1 -1
  168. package/dist/esm/src/types/errors.js +16 -68
  169. package/dist/esm/src/types/errors.js.map +1 -1
  170. package/dist/esm/src/types/rpc.d.ts +66 -41
  171. package/dist/esm/src/types/rpc.d.ts.map +1 -1
  172. package/dist/esm/src/types/rpc.js +32 -83
  173. package/dist/esm/src/types/rpc.js.map +1 -1
  174. package/dist/esm/src/user_agent.d.ts +1 -1
  175. package/dist/esm/src/utils/buffer.d.ts +1 -0
  176. package/dist/esm/src/utils/buffer.d.ts.map +1 -1
  177. package/dist/esm/src/utils/completable_promise.d.ts +9 -0
  178. package/dist/esm/src/utils/completable_promise.d.ts.map +1 -0
  179. package/dist/esm/src/utils/completable_promise.js +30 -0
  180. package/dist/esm/src/utils/completable_promise.js.map +1 -0
  181. package/dist/esm/src/utils/rand.d.ts +1 -1
  182. package/dist/esm/src/utils/rand.d.ts.map +1 -1
  183. package/dist/esm/src/utils/rand.js +1 -1
  184. package/dist/esm/src/utils/rand.js.map +1 -1
  185. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  186. package/package.json +2 -6
  187. package/dist/cjs/src/connection/connection.d.ts +0 -84
  188. package/dist/cjs/src/connection/connection.d.ts.map +0 -1
  189. package/dist/cjs/src/connection/connection.js +0 -181
  190. package/dist/cjs/src/connection/connection.js.map +0 -1
  191. package/dist/cjs/src/endpoint/request_signing/basex.d.ts +0 -10
  192. package/dist/cjs/src/endpoint/request_signing/basex.d.ts.map +0 -1
  193. package/dist/cjs/src/endpoint/request_signing/basex.js +0 -138
  194. package/dist/cjs/src/endpoint/request_signing/basex.js.map +0 -1
  195. package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts +0 -17
  196. package/dist/cjs/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
  197. package/dist/cjs/src/endpoint/request_signing/ed25519.js +0 -80
  198. package/dist/cjs/src/endpoint/request_signing/ed25519.js.map +0 -1
  199. package/dist/cjs/src/endpoint/request_signing/v1.d.ts +0 -10
  200. package/dist/cjs/src/endpoint/request_signing/v1.d.ts.map +0 -1
  201. package/dist/cjs/src/endpoint/request_signing/v1.js +0 -151
  202. package/dist/cjs/src/endpoint/request_signing/v1.js.map +0 -1
  203. package/dist/cjs/src/endpoint/request_signing/validate.d.ts +0 -19
  204. package/dist/cjs/src/endpoint/request_signing/validate.d.ts.map +0 -1
  205. package/dist/cjs/src/endpoint/request_signing/validate.js +0 -45
  206. package/dist/cjs/src/endpoint/request_signing/validate.js.map +0 -1
  207. package/dist/cjs/src/generated/proto/discovery_pb.d.ts +0 -18
  208. package/dist/cjs/src/generated/proto/discovery_pb.d.ts.map +0 -1
  209. package/dist/cjs/src/generated/proto/discovery_pb.js +0 -40
  210. package/dist/cjs/src/generated/proto/discovery_pb.js.map +0 -1
  211. package/dist/cjs/src/generated/proto/javascript_pb.d.ts +0 -26
  212. package/dist/cjs/src/generated/proto/javascript_pb.d.ts.map +0 -1
  213. package/dist/cjs/src/generated/proto/javascript_pb.js +0 -52
  214. package/dist/cjs/src/generated/proto/javascript_pb.js.map +0 -1
  215. package/dist/cjs/src/generated/proto/protocol_pb.d.ts +0 -1051
  216. package/dist/cjs/src/generated/proto/protocol_pb.d.ts.map +0 -1
  217. package/dist/cjs/src/generated/proto/protocol_pb.js +0 -1288
  218. package/dist/cjs/src/generated/proto/protocol_pb.js.map +0 -1
  219. package/dist/cjs/src/invocation.d.ts +0 -48
  220. package/dist/cjs/src/invocation.d.ts.map +0 -1
  221. package/dist/cjs/src/invocation.js +0 -158
  222. package/dist/cjs/src/invocation.js.map +0 -1
  223. package/dist/cjs/src/io/decoder.d.ts +0 -9
  224. package/dist/cjs/src/io/decoder.d.ts.map +0 -1
  225. package/dist/cjs/src/io/decoder.js +0 -137
  226. package/dist/cjs/src/io/decoder.js.map +0 -1
  227. package/dist/cjs/src/io/encoder.d.ts +0 -4
  228. package/dist/cjs/src/io/encoder.d.ts.map +0 -1
  229. package/dist/cjs/src/io/encoder.js +0 -41
  230. package/dist/cjs/src/io/encoder.js.map +0 -1
  231. package/dist/cjs/src/journal.d.ts +0 -52
  232. package/dist/cjs/src/journal.d.ts.map +0 -1
  233. package/dist/cjs/src/journal.js +0 -438
  234. package/dist/cjs/src/journal.js.map +0 -1
  235. package/dist/cjs/src/local_state_store.d.ts +0 -14
  236. package/dist/cjs/src/local_state_store.d.ts.map +0 -1
  237. package/dist/cjs/src/local_state_store.js +0 -83
  238. package/dist/cjs/src/local_state_store.js.map +0 -1
  239. package/dist/cjs/src/logger.d.ts +0 -35
  240. package/dist/cjs/src/logger.d.ts.map +0 -1
  241. package/dist/cjs/src/logger.js +0 -151
  242. package/dist/cjs/src/logger.js.map +0 -1
  243. package/dist/cjs/src/promise_combinator_tracker.d.ts +0 -29
  244. package/dist/cjs/src/promise_combinator_tracker.d.ts.map +0 -1
  245. package/dist/cjs/src/promise_combinator_tracker.js +0 -130
  246. package/dist/cjs/src/promise_combinator_tracker.js.map +0 -1
  247. package/dist/cjs/src/state_machine.d.ts +0 -85
  248. package/dist/cjs/src/state_machine.d.ts.map +0 -1
  249. package/dist/cjs/src/state_machine.js +0 -426
  250. package/dist/cjs/src/state_machine.js.map +0 -1
  251. package/dist/cjs/src/types/protocol.d.ts +0 -40
  252. package/dist/cjs/src/types/protocol.d.ts.map +0 -1
  253. package/dist/cjs/src/types/protocol.js +0 -237
  254. package/dist/cjs/src/types/protocol.js.map +0 -1
  255. package/dist/cjs/src/types/types.d.ts +0 -20
  256. package/dist/cjs/src/types/types.d.ts.map +0 -1
  257. package/dist/cjs/src/types/types.js +0 -110
  258. package/dist/cjs/src/types/types.js.map +0 -1
  259. package/dist/cjs/src/utils/message_logger.d.ts +0 -7
  260. package/dist/cjs/src/utils/message_logger.d.ts.map +0 -1
  261. package/dist/cjs/src/utils/message_logger.js +0 -79
  262. package/dist/cjs/src/utils/message_logger.js.map +0 -1
  263. package/dist/cjs/src/utils/promises.d.ts +0 -15
  264. package/dist/cjs/src/utils/promises.d.ts.map +0 -1
  265. package/dist/cjs/src/utils/promises.js +0 -68
  266. package/dist/cjs/src/utils/promises.js.map +0 -1
  267. package/dist/cjs/src/utils/utils.d.ts +0 -3
  268. package/dist/cjs/src/utils/utils.d.ts.map +0 -1
  269. package/dist/cjs/src/utils/utils.js +0 -105
  270. package/dist/cjs/src/utils/utils.js.map +0 -1
  271. package/dist/cjs/test/awakeable.test.d.ts +0 -2
  272. package/dist/cjs/test/awakeable.test.d.ts.map +0 -1
  273. package/dist/cjs/test/awakeable.test.js +0 -141
  274. package/dist/cjs/test/awakeable.test.js.map +0 -1
  275. package/dist/cjs/test/complete_awakeable.test.d.ts +0 -2
  276. package/dist/cjs/test/complete_awakeable.test.d.ts.map +0 -1
  277. package/dist/cjs/test/complete_awakeable.test.js +0 -123
  278. package/dist/cjs/test/complete_awakeable.test.js.map +0 -1
  279. package/dist/cjs/test/eager_state.test.d.ts +0 -2
  280. package/dist/cjs/test/eager_state.test.d.ts.map +0 -1
  281. package/dist/cjs/test/eager_state.test.js +0 -280
  282. package/dist/cjs/test/eager_state.test.js.map +0 -1
  283. package/dist/cjs/test/get_and_set_state.test.d.ts +0 -2
  284. package/dist/cjs/test/get_and_set_state.test.d.ts.map +0 -1
  285. package/dist/cjs/test/get_and_set_state.test.js +0 -233
  286. package/dist/cjs/test/get_and_set_state.test.js.map +0 -1
  287. package/dist/cjs/test/get_state.test.d.ts +0 -2
  288. package/dist/cjs/test/get_state.test.d.ts.map +0 -1
  289. package/dist/cjs/test/get_state.test.js +0 -328
  290. package/dist/cjs/test/get_state.test.js.map +0 -1
  291. package/dist/cjs/test/lambda.test.d.ts +0 -2
  292. package/dist/cjs/test/lambda.test.d.ts.map +0 -1
  293. package/dist/cjs/test/lambda.test.js +0 -258
  294. package/dist/cjs/test/lambda.test.js.map +0 -1
  295. package/dist/cjs/test/message_coders.test.d.ts +0 -2
  296. package/dist/cjs/test/message_coders.test.d.ts.map +0 -1
  297. package/dist/cjs/test/message_coders.test.js +0 -37
  298. package/dist/cjs/test/message_coders.test.js.map +0 -1
  299. package/dist/cjs/test/promise_combinator_tracker.test.d.ts +0 -2
  300. package/dist/cjs/test/promise_combinator_tracker.test.d.ts.map +0 -1
  301. package/dist/cjs/test/promise_combinator_tracker.test.js +0 -156
  302. package/dist/cjs/test/promise_combinator_tracker.test.js.map +0 -1
  303. package/dist/cjs/test/promise_combinators.test.d.ts +0 -2
  304. package/dist/cjs/test/promise_combinators.test.d.ts.map +0 -1
  305. package/dist/cjs/test/promise_combinators.test.js +0 -433
  306. package/dist/cjs/test/promise_combinators.test.js.map +0 -1
  307. package/dist/cjs/test/promises.test.d.ts +0 -2
  308. package/dist/cjs/test/promises.test.d.ts.map +0 -1
  309. package/dist/cjs/test/promises.test.js +0 -32
  310. package/dist/cjs/test/promises.test.js.map +0 -1
  311. package/dist/cjs/test/protocol_stream.test.d.ts +0 -2
  312. package/dist/cjs/test/protocol_stream.test.d.ts.map +0 -1
  313. package/dist/cjs/test/protocol_stream.test.js +0 -243
  314. package/dist/cjs/test/protocol_stream.test.js.map +0 -1
  315. package/dist/cjs/test/protoutils.d.ts +0 -44
  316. package/dist/cjs/test/protoutils.d.ts.map +0 -1
  317. package/dist/cjs/test/protoutils.js +0 -368
  318. package/dist/cjs/test/protoutils.js.map +0 -1
  319. package/dist/cjs/test/service_bind.test.d.ts +0 -2
  320. package/dist/cjs/test/service_bind.test.d.ts.map +0 -1
  321. package/dist/cjs/test/service_bind.test.js +0 -118
  322. package/dist/cjs/test/service_bind.test.js.map +0 -1
  323. package/dist/cjs/test/side_effect.test.d.ts +0 -2
  324. package/dist/cjs/test/side_effect.test.d.ts.map +0 -1
  325. package/dist/cjs/test/side_effect.test.js +0 -133
  326. package/dist/cjs/test/side_effect.test.js.map +0 -1
  327. package/dist/cjs/test/sleep.test.d.ts +0 -2
  328. package/dist/cjs/test/sleep.test.d.ts.map +0 -1
  329. package/dist/cjs/test/sleep.test.js +0 -224
  330. package/dist/cjs/test/sleep.test.js.map +0 -1
  331. package/dist/cjs/test/state_keys.test.d.ts +0 -2
  332. package/dist/cjs/test/state_keys.test.d.ts.map +0 -1
  333. package/dist/cjs/test/state_keys.test.js +0 -92
  334. package/dist/cjs/test/state_keys.test.js.map +0 -1
  335. package/dist/cjs/test/state_machine.test.d.ts +0 -2
  336. package/dist/cjs/test/state_machine.test.d.ts.map +0 -1
  337. package/dist/cjs/test/state_machine.test.js +0 -42
  338. package/dist/cjs/test/state_machine.test.js.map +0 -1
  339. package/dist/cjs/test/testdriver.d.ts +0 -39
  340. package/dist/cjs/test/testdriver.d.ts.map +0 -1
  341. package/dist/cjs/test/testdriver.js +0 -188
  342. package/dist/cjs/test/testdriver.js.map +0 -1
  343. package/dist/cjs/test/utils.test.d.ts +0 -2
  344. package/dist/cjs/test/utils.test.d.ts.map +0 -1
  345. package/dist/cjs/test/utils.test.js +0 -93
  346. package/dist/cjs/test/utils.test.js.map +0 -1
  347. package/dist/esm/src/connection/connection.d.ts +0 -84
  348. package/dist/esm/src/connection/connection.d.ts.map +0 -1
  349. package/dist/esm/src/connection/connection.js +0 -177
  350. package/dist/esm/src/connection/connection.js.map +0 -1
  351. package/dist/esm/src/endpoint/request_signing/basex.d.ts +0 -10
  352. package/dist/esm/src/endpoint/request_signing/basex.d.ts.map +0 -1
  353. package/dist/esm/src/endpoint/request_signing/basex.js +0 -136
  354. package/dist/esm/src/endpoint/request_signing/basex.js.map +0 -1
  355. package/dist/esm/src/endpoint/request_signing/ed25519.d.ts +0 -17
  356. package/dist/esm/src/endpoint/request_signing/ed25519.d.ts.map +0 -1
  357. package/dist/esm/src/endpoint/request_signing/ed25519.js +0 -52
  358. package/dist/esm/src/endpoint/request_signing/ed25519.js.map +0 -1
  359. package/dist/esm/src/endpoint/request_signing/v1.d.ts +0 -10
  360. package/dist/esm/src/endpoint/request_signing/v1.d.ts.map +0 -1
  361. package/dist/esm/src/endpoint/request_signing/v1.js +0 -143
  362. package/dist/esm/src/endpoint/request_signing/v1.js.map +0 -1
  363. package/dist/esm/src/endpoint/request_signing/validate.d.ts +0 -19
  364. package/dist/esm/src/endpoint/request_signing/validate.d.ts.map +0 -1
  365. package/dist/esm/src/endpoint/request_signing/validate.js +0 -40
  366. package/dist/esm/src/endpoint/request_signing/validate.js.map +0 -1
  367. package/dist/esm/src/generated/proto/discovery_pb.d.ts +0 -18
  368. package/dist/esm/src/generated/proto/discovery_pb.d.ts.map +0 -1
  369. package/dist/esm/src/generated/proto/discovery_pb.js +0 -37
  370. package/dist/esm/src/generated/proto/discovery_pb.js.map +0 -1
  371. package/dist/esm/src/generated/proto/javascript_pb.d.ts +0 -26
  372. package/dist/esm/src/generated/proto/javascript_pb.d.ts.map +0 -1
  373. package/dist/esm/src/generated/proto/javascript_pb.js +0 -48
  374. package/dist/esm/src/generated/proto/javascript_pb.js.map +0 -1
  375. package/dist/esm/src/generated/proto/protocol_pb.d.ts +0 -1051
  376. package/dist/esm/src/generated/proto/protocol_pb.d.ts.map +0 -1
  377. package/dist/esm/src/generated/proto/protocol_pb.js +0 -1258
  378. package/dist/esm/src/generated/proto/protocol_pb.js.map +0 -1
  379. package/dist/esm/src/invocation.d.ts +0 -48
  380. package/dist/esm/src/invocation.d.ts.map +0 -1
  381. package/dist/esm/src/invocation.js +0 -153
  382. package/dist/esm/src/invocation.js.map +0 -1
  383. package/dist/esm/src/io/decoder.d.ts +0 -9
  384. package/dist/esm/src/io/decoder.d.ts.map +0 -1
  385. package/dist/esm/src/io/decoder.js +0 -128
  386. package/dist/esm/src/io/decoder.js.map +0 -1
  387. package/dist/esm/src/io/encoder.d.ts +0 -4
  388. package/dist/esm/src/io/encoder.d.ts.map +0 -1
  389. package/dist/esm/src/io/encoder.js +0 -36
  390. package/dist/esm/src/io/encoder.js.map +0 -1
  391. package/dist/esm/src/journal.d.ts +0 -52
  392. package/dist/esm/src/journal.d.ts.map +0 -1
  393. package/dist/esm/src/journal.js +0 -410
  394. package/dist/esm/src/journal.js.map +0 -1
  395. package/dist/esm/src/local_state_store.d.ts +0 -14
  396. package/dist/esm/src/local_state_store.d.ts.map +0 -1
  397. package/dist/esm/src/local_state_store.js +0 -79
  398. package/dist/esm/src/local_state_store.js.map +0 -1
  399. package/dist/esm/src/logger.d.ts +0 -35
  400. package/dist/esm/src/logger.d.ts.map +0 -1
  401. package/dist/esm/src/logger.js.map +0 -1
  402. package/dist/esm/src/promise_combinator_tracker.d.ts +0 -29
  403. package/dist/esm/src/promise_combinator_tracker.d.ts.map +0 -1
  404. package/dist/esm/src/promise_combinator_tracker.js +0 -125
  405. package/dist/esm/src/promise_combinator_tracker.js.map +0 -1
  406. package/dist/esm/src/state_machine.d.ts +0 -85
  407. package/dist/esm/src/state_machine.d.ts.map +0 -1
  408. package/dist/esm/src/state_machine.js +0 -399
  409. package/dist/esm/src/state_machine.js.map +0 -1
  410. package/dist/esm/src/types/protocol.d.ts +0 -40
  411. package/dist/esm/src/types/protocol.d.ts.map +0 -1
  412. package/dist/esm/src/types/protocol.js +0 -206
  413. package/dist/esm/src/types/protocol.js.map +0 -1
  414. package/dist/esm/src/types/types.d.ts +0 -20
  415. package/dist/esm/src/types/types.d.ts.map +0 -1
  416. package/dist/esm/src/types/types.js +0 -105
  417. package/dist/esm/src/types/types.js.map +0 -1
  418. package/dist/esm/src/utils/message_logger.d.ts +0 -7
  419. package/dist/esm/src/utils/message_logger.d.ts.map +0 -1
  420. package/dist/esm/src/utils/message_logger.js +0 -75
  421. package/dist/esm/src/utils/message_logger.js.map +0 -1
  422. package/dist/esm/src/utils/promises.d.ts +0 -15
  423. package/dist/esm/src/utils/promises.d.ts.map +0 -1
  424. package/dist/esm/src/utils/promises.js +0 -63
  425. package/dist/esm/src/utils/promises.js.map +0 -1
  426. package/dist/esm/src/utils/utils.d.ts +0 -3
  427. package/dist/esm/src/utils/utils.d.ts.map +0 -1
  428. package/dist/esm/src/utils/utils.js +0 -101
  429. package/dist/esm/src/utils/utils.js.map +0 -1
  430. package/dist/esm/test/awakeable.test.d.ts +0 -2
  431. package/dist/esm/test/awakeable.test.d.ts.map +0 -1
  432. package/dist/esm/test/awakeable.test.js +0 -139
  433. package/dist/esm/test/awakeable.test.js.map +0 -1
  434. package/dist/esm/test/complete_awakeable.test.d.ts +0 -2
  435. package/dist/esm/test/complete_awakeable.test.d.ts.map +0 -1
  436. package/dist/esm/test/complete_awakeable.test.js +0 -121
  437. package/dist/esm/test/complete_awakeable.test.js.map +0 -1
  438. package/dist/esm/test/eager_state.test.d.ts +0 -2
  439. package/dist/esm/test/eager_state.test.d.ts.map +0 -1
  440. package/dist/esm/test/eager_state.test.js +0 -278
  441. package/dist/esm/test/eager_state.test.js.map +0 -1
  442. package/dist/esm/test/get_and_set_state.test.d.ts +0 -2
  443. package/dist/esm/test/get_and_set_state.test.d.ts.map +0 -1
  444. package/dist/esm/test/get_and_set_state.test.js +0 -231
  445. package/dist/esm/test/get_and_set_state.test.js.map +0 -1
  446. package/dist/esm/test/get_state.test.d.ts +0 -2
  447. package/dist/esm/test/get_state.test.d.ts.map +0 -1
  448. package/dist/esm/test/get_state.test.js +0 -326
  449. package/dist/esm/test/get_state.test.js.map +0 -1
  450. package/dist/esm/test/lambda.test.d.ts +0 -2
  451. package/dist/esm/test/lambda.test.d.ts.map +0 -1
  452. package/dist/esm/test/lambda.test.js +0 -233
  453. package/dist/esm/test/lambda.test.js.map +0 -1
  454. package/dist/esm/test/message_coders.test.d.ts +0 -2
  455. package/dist/esm/test/message_coders.test.d.ts.map +0 -1
  456. package/dist/esm/test/message_coders.test.js +0 -35
  457. package/dist/esm/test/message_coders.test.js.map +0 -1
  458. package/dist/esm/test/promise_combinator_tracker.test.d.ts +0 -2
  459. package/dist/esm/test/promise_combinator_tracker.test.d.ts.map +0 -1
  460. package/dist/esm/test/promise_combinator_tracker.test.js +0 -154
  461. package/dist/esm/test/promise_combinator_tracker.test.js.map +0 -1
  462. package/dist/esm/test/promise_combinators.test.d.ts +0 -2
  463. package/dist/esm/test/promise_combinators.test.d.ts.map +0 -1
  464. package/dist/esm/test/promise_combinators.test.js +0 -431
  465. package/dist/esm/test/promise_combinators.test.js.map +0 -1
  466. package/dist/esm/test/promises.test.d.ts +0 -2
  467. package/dist/esm/test/promises.test.d.ts.map +0 -1
  468. package/dist/esm/test/promises.test.js +0 -30
  469. package/dist/esm/test/promises.test.js.map +0 -1
  470. package/dist/esm/test/protocol_stream.test.d.ts +0 -2
  471. package/dist/esm/test/protocol_stream.test.d.ts.map +0 -1
  472. package/dist/esm/test/protocol_stream.test.js +0 -218
  473. package/dist/esm/test/protocol_stream.test.js.map +0 -1
  474. package/dist/esm/test/protoutils.d.ts +0 -44
  475. package/dist/esm/test/protoutils.d.ts.map +0 -1
  476. package/dist/esm/test/protoutils.js +0 -335
  477. package/dist/esm/test/protoutils.js.map +0 -1
  478. package/dist/esm/test/service_bind.test.d.ts +0 -2
  479. package/dist/esm/test/service_bind.test.d.ts.map +0 -1
  480. package/dist/esm/test/service_bind.test.js +0 -93
  481. package/dist/esm/test/service_bind.test.js.map +0 -1
  482. package/dist/esm/test/side_effect.test.d.ts +0 -2
  483. package/dist/esm/test/side_effect.test.d.ts.map +0 -1
  484. package/dist/esm/test/side_effect.test.js +0 -131
  485. package/dist/esm/test/side_effect.test.js.map +0 -1
  486. package/dist/esm/test/sleep.test.d.ts +0 -2
  487. package/dist/esm/test/sleep.test.d.ts.map +0 -1
  488. package/dist/esm/test/sleep.test.js +0 -222
  489. package/dist/esm/test/sleep.test.js.map +0 -1
  490. package/dist/esm/test/state_keys.test.d.ts +0 -2
  491. package/dist/esm/test/state_keys.test.d.ts.map +0 -1
  492. package/dist/esm/test/state_keys.test.js +0 -90
  493. package/dist/esm/test/state_keys.test.js.map +0 -1
  494. package/dist/esm/test/state_machine.test.d.ts +0 -2
  495. package/dist/esm/test/state_machine.test.d.ts.map +0 -1
  496. package/dist/esm/test/state_machine.test.js +0 -40
  497. package/dist/esm/test/state_machine.test.js.map +0 -1
  498. package/dist/esm/test/testdriver.d.ts +0 -39
  499. package/dist/esm/test/testdriver.d.ts.map +0 -1
  500. package/dist/esm/test/testdriver.js +0 -182
  501. package/dist/esm/test/testdriver.js.map +0 -1
  502. package/dist/esm/test/utils.test.d.ts +0 -2
  503. package/dist/esm/test/utils.test.d.ts.map +0 -1
  504. package/dist/esm/test/utils.test.js +0 -91
  505. package/dist/esm/test/utils.test.js.map +0 -1
@@ -0,0 +1,61 @@
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.createLogger = void 0;
14
+ const logger_transport_js_1 = require("./logger_transport.js");
15
+ function createLogger(loggerTransport, source, context, isReplaying = () => false) {
16
+ function loggerForLevel(loggerTransport, source, level, isReplaying, context) {
17
+ return {
18
+ get: () => {
19
+ return loggerTransport.bind(null, {
20
+ source,
21
+ level,
22
+ replaying: isReplaying(),
23
+ context,
24
+ });
25
+ },
26
+ };
27
+ }
28
+ const info = loggerForLevel(loggerTransport, source, logger_transport_js_1.RestateLogLevel.INFO, isReplaying, context);
29
+ return Object.create(console, {
30
+ trace: loggerForLevel(loggerTransport, source, logger_transport_js_1.RestateLogLevel.TRACE, isReplaying, context),
31
+ debug: loggerForLevel(loggerTransport, source, logger_transport_js_1.RestateLogLevel.DEBUG, isReplaying, context),
32
+ info,
33
+ log: info,
34
+ warn: loggerForLevel(loggerTransport, source, logger_transport_js_1.RestateLogLevel.WARN, isReplaying, context),
35
+ error: loggerForLevel(loggerTransport, source, logger_transport_js_1.RestateLogLevel.ERROR, isReplaying, context),
36
+ logForLevel: {
37
+ get() {
38
+ return (level, message, ...optionalParams) => {
39
+ if (optionalParams?.length === 0 || optionalParams === undefined) {
40
+ loggerTransport.bind(null)({
41
+ source,
42
+ level,
43
+ replaying: isReplaying(),
44
+ context,
45
+ }, message);
46
+ }
47
+ else {
48
+ loggerTransport.bind(null)({
49
+ source,
50
+ level,
51
+ replaying: isReplaying(),
52
+ context,
53
+ }, message, optionalParams);
54
+ }
55
+ };
56
+ },
57
+ },
58
+ });
59
+ }
60
+ exports.createLogger = createLogger;
61
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/logging/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AASH,+DAAwD;AAaxD,SAAgB,YAAY,CAC1B,eAAgC,EAChC,MAAiB,EACjB,OAAuB,EACvB,cAA6B,GAAG,EAAE,CAAC,KAAK;IAExC,SAAS,cAAc,CACrB,eAAgC,EAChC,MAAiB,EACjB,KAAsB,EACtB,WAA0B,EAC1B,OAAuB;QAEvB,OAAO;YACL,GAAG,EAAE,GAAG,EAAE;gBACR,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;oBAChC,MAAM;oBACN,KAAK;oBACL,SAAS,EAAE,WAAW,EAAE;oBACxB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CACzB,eAAe,EACf,MAAM,EACN,qCAAe,CAAC,IAAI,EACpB,WAAW,EACX,OAAO,CACR,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QAC5B,KAAK,EAAE,cAAc,CACnB,eAAe,EACf,MAAM,EACN,qCAAe,CAAC,KAAK,EACrB,WAAW,EACX,OAAO,CACR;QACD,KAAK,EAAE,cAAc,CACnB,eAAe,EACf,MAAM,EACN,qCAAe,CAAC,KAAK,EACrB,WAAW,EACX,OAAO,CACR;QACD,IAAI;QACJ,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,cAAc,CAClB,eAAe,EACf,MAAM,EACN,qCAAe,CAAC,IAAI,EACpB,WAAW,EACX,OAAO,CACR;QACD,KAAK,EAAE,cAAc,CACnB,eAAe,EACf,MAAM,EACN,qCAAe,CAAC,KAAK,EACrB,WAAW,EACX,OAAO,CACR;QACD,WAAW,EAAE;YACX,GAAG;gBACD,OAAO,CACL,KAAsB,EACtB,OAAa,EACb,GAAG,cAAqB,EAClB,EAAE;oBACR,IAAI,cAAc,EAAE,MAAM,KAAK,CAAC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;wBACjE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CACxB;4BACE,MAAM;4BACN,KAAK;4BACL,SAAS,EAAE,WAAW,EAAE;4BACxB,OAAO;yBACR,EACD,OAAO,CACR,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CACxB;4BACE,MAAM;4BACN,KAAK;4BACL,SAAS,EAAE,WAAW,EAAE;4BACxB,OAAO;yBACR,EACD,OAAO,EACP,cAAc,CACf,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC;YACJ,CAAC;SACF;KACF,CAAW,CAAC;AACf,CAAC;AAhGD,oCAgGC"}
@@ -0,0 +1,52 @@
1
+ import type { Request } from "../context.js";
2
+ /**
3
+ * Logger level.
4
+ */
5
+ export declare enum RestateLogLevel {
6
+ TRACE = "trace",
7
+ DEBUG = "debug",
8
+ INFO = "info",
9
+ WARN = "warn",
10
+ ERROR = "error"
11
+ }
12
+ /**
13
+ * Source of the log.
14
+ */
15
+ export declare enum LogSource {
16
+ SYSTEM = "SYSTEM",
17
+ JOURNAL = "JOURNAL",
18
+ USER = "USER"
19
+ }
20
+ /**
21
+ * Log event metadata metadata.
22
+ */
23
+ export type LogMetadata = {
24
+ source: LogSource;
25
+ level: RestateLogLevel;
26
+ replaying: boolean;
27
+ context?: LoggerContext;
28
+ };
29
+ /**
30
+ * Logger transport, often known in other logging libraries as appender. Filtering of log events should happen within this function as well.
31
+ *
32
+ * This can be overridden in {@link RestateEndpointBase.setLogger} to customize logging. The default Logger transport will log to console.
33
+ */
34
+ export type LoggerTransport = (params: LogMetadata, message?: any, ...optionalParams: any[]) => void;
35
+ /**
36
+ * Logger context.
37
+ */
38
+ export declare class LoggerContext {
39
+ readonly invocationId: string;
40
+ readonly serviceName: string;
41
+ readonly handlerName: string;
42
+ readonly key?: string | undefined;
43
+ readonly request?: Request | undefined;
44
+ readonly additionalContext?: {
45
+ [name: string]: string;
46
+ } | undefined;
47
+ readonly invocationTarget: string;
48
+ constructor(invocationId: string, serviceName: string, handlerName: string, key?: string | undefined, request?: Request | undefined, additionalContext?: {
49
+ [name: string]: string;
50
+ } | undefined);
51
+ }
52
+ //# sourceMappingURL=logger_transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger_transport.d.ts","sourceRoot":"","sources":["../../../../src/logging/logger_transport.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,GAAG,EACb,GAAG,cAAc,EAAE,GAAG,EAAE,KACrB,IAAI,CAAC;AAEV;;GAEG;AACH,qBAAa,aAAa;IAItB,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,GAAG,CAAC;IACb,QAAQ,CAAC,OAAO,CAAC;IACjB,QAAQ,CAAC,iBAAiB,CAAC;;;IAR7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAGvB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,oBAAQ,EACZ,OAAO,CAAC,qBAAS,EACjB,iBAAiB,CAAC;;iBAA4B;CAO1D"}
@@ -0,0 +1,59 @@
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.LoggerContext = exports.LogSource = exports.RestateLogLevel = void 0;
14
+ /**
15
+ * Logger level.
16
+ */
17
+ var RestateLogLevel;
18
+ (function (RestateLogLevel) {
19
+ RestateLogLevel["TRACE"] = "trace";
20
+ RestateLogLevel["DEBUG"] = "debug";
21
+ RestateLogLevel["INFO"] = "info";
22
+ RestateLogLevel["WARN"] = "warn";
23
+ RestateLogLevel["ERROR"] = "error";
24
+ })(RestateLogLevel || (exports.RestateLogLevel = RestateLogLevel = {}));
25
+ /**
26
+ * Source of the log.
27
+ */
28
+ var LogSource;
29
+ (function (LogSource) {
30
+ LogSource["SYSTEM"] = "SYSTEM";
31
+ LogSource["JOURNAL"] = "JOURNAL";
32
+ LogSource["USER"] = "USER";
33
+ })(LogSource || (exports.LogSource = LogSource = {}));
34
+ /**
35
+ * Logger context.
36
+ */
37
+ class LoggerContext {
38
+ invocationId;
39
+ serviceName;
40
+ handlerName;
41
+ key;
42
+ request;
43
+ additionalContext;
44
+ invocationTarget;
45
+ constructor(invocationId, serviceName, handlerName, key, request, additionalContext) {
46
+ this.invocationId = invocationId;
47
+ this.serviceName = serviceName;
48
+ this.handlerName = handlerName;
49
+ this.key = key;
50
+ this.request = request;
51
+ this.additionalContext = additionalContext;
52
+ this.invocationTarget =
53
+ key === undefined || key.length === 0
54
+ ? `${serviceName}/${handlerName}`
55
+ : `${serviceName}/${key}/${handlerName}`;
56
+ }
57
+ }
58
+ exports.LoggerContext = LoggerContext;
59
+ //# sourceMappingURL=logger_transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger_transport.js","sourceRoot":"","sources":["../../../../src/logging/logger_transport.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAMH;;GAEG;AACH,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAED;;GAEG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,gCAAmB,CAAA;IACnB,0BAAa,CAAA;AACf,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAuBD;;GAEG;AACH,MAAa,aAAa;IAIb;IACA;IACA;IACA;IACA;IACA;IARF,gBAAgB,CAAS;IAElC,YACW,YAAoB,EACpB,WAAmB,EACnB,WAAmB,EACnB,GAAY,EACZ,OAAiB,EACjB,iBAA8C;QAL9C,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAQ;QACnB,gBAAW,GAAX,WAAW,CAAQ;QACnB,QAAG,GAAH,GAAG,CAAS;QACZ,YAAO,GAAP,OAAO,CAAU;QACjB,sBAAiB,GAAjB,iBAAiB,CAA6B;QAEvD,IAAI,CAAC,gBAAgB;YACnB,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBACnC,CAAC,CAAC,GAAG,WAAW,IAAI,WAAW,EAAE;gBACjC,CAAC,CAAC,GAAG,WAAW,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;IAC/C,CAAC;CACF;AAhBD,sCAgBC"}
@@ -0,0 +1,110 @@
1
+ import type { CombineablePromise, InvocationId, InvocationPromise } from "./context.js";
2
+ import type * as vm from "./endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js";
3
+ import { TerminalError } from "./types/errors.js";
4
+ import { CompletablePromise } from "./utils/completable_promise.js";
5
+ import type { ContextImpl, RunClosuresTracker } from "./context_impl.js";
6
+ import type { InputPump, OutputPump } from "./io.js";
7
+ export declare function pendingPromise<T>(): Promise<T>;
8
+ export declare const RESTATE_CTX_SYMBOL: unique symbol;
9
+ export interface RestatePromise<T> extends CombineablePromise<T> {
10
+ [RESTATE_CTX_SYMBOL]: ContextImpl;
11
+ tryCancel(): void;
12
+ tryComplete(): void;
13
+ uncompletedLeaves(): Array<number>;
14
+ publicPromise(): Promise<T>;
15
+ }
16
+ export type AsyncResultValue = "Empty" | {
17
+ Success: Uint8Array;
18
+ } | {
19
+ Failure: vm.WasmFailure;
20
+ } | {
21
+ StateKeys: string[];
22
+ } | {
23
+ InvocationId: string;
24
+ };
25
+ export declare function extractContext(n: any): ContextImpl | undefined;
26
+ declare abstract class AbstractRestatePromise<T> implements RestatePromise<T> {
27
+ [RESTATE_CTX_SYMBOL]: ContextImpl;
28
+ private pollingPromise?;
29
+ private cancelPromise;
30
+ protected constructor(ctx: ContextImpl);
31
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
32
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult>;
33
+ finally(onfinally?: (() => void) | null | undefined): Promise<T>;
34
+ private publicPromiseOrCancelPromise;
35
+ orTimeout(millis: number): CombineablePromise<T>;
36
+ map<U>(mapper: (value?: T, failure?: TerminalError) => U): CombineablePromise<U>;
37
+ tryCancel(): void;
38
+ abstract tryComplete(): void;
39
+ abstract uncompletedLeaves(): Array<number>;
40
+ abstract publicPromise(): Promise<T>;
41
+ abstract [Symbol.toStringTag]: string;
42
+ }
43
+ export declare class RestateSinglePromise<T> extends AbstractRestatePromise<T> {
44
+ readonly handle: number;
45
+ private readonly completer;
46
+ private state;
47
+ private completablePromise;
48
+ constructor(ctx: ContextImpl, handle: number, completer: (value: AsyncResultValue, prom: CompletablePromise<T>) => void);
49
+ uncompletedLeaves(): number[];
50
+ tryComplete(): void;
51
+ publicPromise(): Promise<T>;
52
+ readonly [Symbol.toStringTag] = "RestateSinglePromise";
53
+ }
54
+ export declare class RestateInvocationPromise<T> extends RestateSinglePromise<T> implements InvocationPromise<T> {
55
+ private readonly invocationIdPromise;
56
+ constructor(ctx: ContextImpl, handle: number, completer: (value: AsyncResultValue, prom: CompletablePromise<T>) => void, invocationIdPromise: Promise<InvocationId>);
57
+ get invocationId(): Promise<InvocationId>;
58
+ }
59
+ export declare class RestateCombinatorPromise extends AbstractRestatePromise<any> {
60
+ readonly childs: Array<RestatePromise<any>>;
61
+ private state;
62
+ private readonly combinatorPromise;
63
+ constructor(ctx: ContextImpl, combinatorConstructor: (promises: Promise<any>[]) => Promise<any>, childs: Array<RestatePromise<any>>);
64
+ uncompletedLeaves(): number[];
65
+ tryComplete(): void;
66
+ publicPromise(): Promise<unknown>;
67
+ readonly [Symbol.toStringTag] = "RestateCombinatorPromise";
68
+ }
69
+ export declare class RestatePendingPromise<T> implements RestatePromise<T> {
70
+ [RESTATE_CTX_SYMBOL]: ContextImpl;
71
+ constructor(ctx: ContextImpl);
72
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
73
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult>;
74
+ finally(onfinally?: (() => void) | null | undefined): Promise<T>;
75
+ orTimeout(): CombineablePromise<T>;
76
+ map<U>(): CombineablePromise<U>;
77
+ tryCancel(): void;
78
+ tryComplete(): void;
79
+ uncompletedLeaves(): number[];
80
+ publicPromise(): Promise<T>;
81
+ readonly [Symbol.toStringTag] = "RestatePendingPromise";
82
+ }
83
+ export declare class InvocationPendingPromise<T> extends RestatePendingPromise<T> implements InvocationPromise<T> {
84
+ constructor(ctx: ContextImpl);
85
+ get invocationId(): Promise<InvocationId>;
86
+ }
87
+ export declare class RestateMappedPromise<T, U> extends AbstractRestatePromise<U> {
88
+ readonly inner: RestatePromise<T>;
89
+ private publicPromiseMapper;
90
+ constructor(ctx: ContextImpl, inner: RestatePromise<T>, mapper: (value?: T, failure?: TerminalError) => U);
91
+ tryComplete(): void;
92
+ uncompletedLeaves(): number[];
93
+ publicPromise(): Promise<U>;
94
+ readonly [Symbol.toStringTag] = "RestateMappedPromise";
95
+ }
96
+ /**
97
+ * Promises executor, gluing VM with I/O and Promises given to user space.
98
+ */
99
+ export declare class PromisesExecutor {
100
+ private readonly coreVm;
101
+ private readonly inputPump;
102
+ private readonly outputPump;
103
+ private readonly runClosuresTracker;
104
+ private readonly errorCallback;
105
+ constructor(coreVm: vm.WasmVM, inputPump: InputPump, outputPump: OutputPump, runClosuresTracker: RunClosuresTracker, errorCallback: (e: any) => void);
106
+ doProgress(restatePromise: RestatePromise<unknown>): Promise<void>;
107
+ private doProgressInner;
108
+ }
109
+ export {};
110
+ //# sourceMappingURL=promises.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promises.d.ts","sourceRoot":"","sources":["../../../src/promises.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2023-2025 - 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.PromisesExecutor = exports.RestateMappedPromise = exports.InvocationPendingPromise = exports.RestatePendingPromise = exports.RestateCombinatorPromise = exports.RestateInvocationPromise = exports.RestateSinglePromise = exports.extractContext = exports.RESTATE_CTX_SYMBOL = exports.pendingPromise = void 0;
14
+ const errors_js_1 = require("./types/errors.js");
15
+ const completable_promise_js_1 = require("./utils/completable_promise.js");
16
+ const promises_1 = require("timers/promises");
17
+ // A promise that is never completed
18
+ function pendingPromise() {
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
20
+ return new Promise(() => { });
21
+ }
22
+ exports.pendingPromise = pendingPromise;
23
+ // ------ Restate promises ------
24
+ // These promises are "proxy promises" that will be handed over to the user,
25
+ // and moved forward by the PromiseExecutor below when the user awaits on them.
26
+ var PromiseState;
27
+ (function (PromiseState) {
28
+ PromiseState[PromiseState["COMPLETED"] = 0] = "COMPLETED";
29
+ PromiseState[PromiseState["NOT_COMPLETED"] = 1] = "NOT_COMPLETED";
30
+ })(PromiseState || (PromiseState = {}));
31
+ exports.RESTATE_CTX_SYMBOL = Symbol("restateContext");
32
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
+ function extractContext(n) {
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
35
+ return n[exports.RESTATE_CTX_SYMBOL];
36
+ }
37
+ exports.extractContext = extractContext;
38
+ class AbstractRestatePromise {
39
+ [exports.RESTATE_CTX_SYMBOL];
40
+ pollingPromise;
41
+ cancelPromise = new completable_promise_js_1.CompletablePromise();
42
+ constructor(ctx) {
43
+ this[exports.RESTATE_CTX_SYMBOL] = ctx;
44
+ }
45
+ // --- Promise methods
46
+ then(onfulfilled, onrejected) {
47
+ this.pollingPromise =
48
+ this.pollingPromise ||
49
+ this[exports.RESTATE_CTX_SYMBOL].promisesExecutor
50
+ .doProgress(this)
51
+ .catch(() => { });
52
+ return this.publicPromiseOrCancelPromise().then(onfulfilled, onrejected);
53
+ }
54
+ catch(onrejected) {
55
+ this.pollingPromise =
56
+ this.pollingPromise ||
57
+ this[exports.RESTATE_CTX_SYMBOL].promisesExecutor
58
+ .doProgress(this)
59
+ .catch(() => { });
60
+ return this.publicPromiseOrCancelPromise().catch(onrejected);
61
+ }
62
+ finally(onfinally) {
63
+ this.pollingPromise =
64
+ this.pollingPromise ||
65
+ this[exports.RESTATE_CTX_SYMBOL].promisesExecutor
66
+ .doProgress(this)
67
+ .catch(() => { });
68
+ return this.publicPromiseOrCancelPromise().finally(onfinally);
69
+ }
70
+ publicPromiseOrCancelPromise() {
71
+ return Promise.race([
72
+ this.cancelPromise.promise,
73
+ this.publicPromise(),
74
+ ]);
75
+ }
76
+ // --- Combineable Promise methods
77
+ orTimeout(millis) {
78
+ return new RestateCombinatorPromise(this[exports.RESTATE_CTX_SYMBOL], ([thisPromise, sleepPromise]) => {
79
+ return new Promise((resolve, reject) => {
80
+ thisPromise.then(resolve, reject);
81
+ sleepPromise.then(() => {
82
+ reject(new errors_js_1.TimeoutError());
83
+ }, reject);
84
+ });
85
+ }, [this, this[exports.RESTATE_CTX_SYMBOL].sleep(millis)]);
86
+ }
87
+ map(mapper) {
88
+ return new RestateMappedPromise(this[exports.RESTATE_CTX_SYMBOL], this, mapper);
89
+ }
90
+ tryCancel() {
91
+ this.cancelPromise.reject(new errors_js_1.CancelledError());
92
+ }
93
+ }
94
+ class RestateSinglePromise extends AbstractRestatePromise {
95
+ handle;
96
+ completer;
97
+ state = PromiseState.NOT_COMPLETED;
98
+ completablePromise = new completable_promise_js_1.CompletablePromise();
99
+ constructor(ctx, handle, completer) {
100
+ super(ctx);
101
+ this.handle = handle;
102
+ this.completer = completer;
103
+ }
104
+ uncompletedLeaves() {
105
+ return this.state === PromiseState.COMPLETED ? [] : [this.handle];
106
+ }
107
+ tryComplete() {
108
+ if (this.state === PromiseState.COMPLETED) {
109
+ return;
110
+ }
111
+ const notification = this[exports.RESTATE_CTX_SYMBOL].coreVm.take_notification(this.handle);
112
+ if (notification === "NotReady") {
113
+ return;
114
+ }
115
+ this.state = PromiseState.COMPLETED;
116
+ this.completer(notification, this.completablePromise);
117
+ }
118
+ publicPromise() {
119
+ return this.completablePromise.promise;
120
+ }
121
+ [Symbol.toStringTag] = "RestateSinglePromise";
122
+ }
123
+ exports.RestateSinglePromise = RestateSinglePromise;
124
+ class RestateInvocationPromise extends RestateSinglePromise {
125
+ invocationIdPromise;
126
+ constructor(ctx, handle, completer, invocationIdPromise) {
127
+ super(ctx, handle, completer);
128
+ this.invocationIdPromise = invocationIdPromise;
129
+ }
130
+ get invocationId() {
131
+ return this.invocationIdPromise;
132
+ }
133
+ }
134
+ exports.RestateInvocationPromise = RestateInvocationPromise;
135
+ class RestateCombinatorPromise extends AbstractRestatePromise {
136
+ childs;
137
+ state = PromiseState.NOT_COMPLETED;
138
+ combinatorPromise;
139
+ constructor(ctx, combinatorConstructor, childs) {
140
+ super(ctx);
141
+ this.childs = childs;
142
+ this.combinatorPromise = combinatorConstructor(childs.map((p) => p.publicPromise())).finally(() => {
143
+ this.state = PromiseState.COMPLETED;
144
+ });
145
+ }
146
+ uncompletedLeaves() {
147
+ return this.state === PromiseState.COMPLETED
148
+ ? []
149
+ : this.childs.flatMap((p) => p.uncompletedLeaves());
150
+ }
151
+ tryComplete() {
152
+ this.childs.forEach((c) => c.tryComplete());
153
+ }
154
+ publicPromise() {
155
+ return this.combinatorPromise;
156
+ }
157
+ [Symbol.toStringTag] = "RestateCombinatorPromise";
158
+ }
159
+ exports.RestateCombinatorPromise = RestateCombinatorPromise;
160
+ class RestatePendingPromise {
161
+ [exports.RESTATE_CTX_SYMBOL];
162
+ constructor(ctx) {
163
+ this[exports.RESTATE_CTX_SYMBOL] = ctx;
164
+ }
165
+ // --- Promise methods
166
+ then(onfulfilled, onrejected) {
167
+ return pendingPromise().then(onfulfilled, onrejected);
168
+ }
169
+ catch(onrejected) {
170
+ return pendingPromise().catch(onrejected);
171
+ }
172
+ finally(onfinally) {
173
+ return pendingPromise().finally(onfinally);
174
+ }
175
+ // --- RestatePromise methods
176
+ orTimeout() {
177
+ return this;
178
+ }
179
+ map() {
180
+ return this;
181
+ }
182
+ tryCancel() { }
183
+ tryComplete() { }
184
+ uncompletedLeaves() {
185
+ return [];
186
+ }
187
+ publicPromise() {
188
+ return pendingPromise();
189
+ }
190
+ [Symbol.toStringTag] = "RestatePendingPromise";
191
+ }
192
+ exports.RestatePendingPromise = RestatePendingPromise;
193
+ class InvocationPendingPromise extends RestatePendingPromise {
194
+ constructor(ctx) {
195
+ super(ctx);
196
+ }
197
+ get invocationId() {
198
+ return pendingPromise();
199
+ }
200
+ }
201
+ exports.InvocationPendingPromise = InvocationPendingPromise;
202
+ class RestateMappedPromise extends AbstractRestatePromise {
203
+ inner;
204
+ publicPromiseMapper;
205
+ constructor(ctx, inner, mapper) {
206
+ super(ctx);
207
+ this.inner = inner;
208
+ this.publicPromiseMapper = (value, failure) => {
209
+ try {
210
+ return Promise.resolve(mapper(value, failure));
211
+ }
212
+ catch (e) {
213
+ if (e instanceof errors_js_1.TerminalError) {
214
+ return Promise.reject(e);
215
+ }
216
+ else {
217
+ ctx.handleInvocationEndError(e);
218
+ return pendingPromise();
219
+ }
220
+ }
221
+ };
222
+ }
223
+ tryComplete() {
224
+ this.inner.tryComplete();
225
+ }
226
+ uncompletedLeaves() {
227
+ return this.inner.uncompletedLeaves();
228
+ }
229
+ publicPromise() {
230
+ const promiseMapper = this.publicPromiseMapper;
231
+ return this.inner.publicPromise().then((t) => promiseMapper(t, undefined), (error) => {
232
+ if (error instanceof errors_js_1.RestateError) {
233
+ return promiseMapper(undefined, error);
234
+ }
235
+ else {
236
+ // Something else, just re-throw it
237
+ throw error;
238
+ }
239
+ });
240
+ }
241
+ [Symbol.toStringTag] = "RestateMappedPromise";
242
+ }
243
+ exports.RestateMappedPromise = RestateMappedPromise;
244
+ /**
245
+ * Promises executor, gluing VM with I/O and Promises given to user space.
246
+ */
247
+ class PromisesExecutor {
248
+ coreVm;
249
+ inputPump;
250
+ outputPump;
251
+ runClosuresTracker;
252
+ errorCallback;
253
+ constructor(coreVm, inputPump, outputPump, runClosuresTracker, errorCallback) {
254
+ this.coreVm = coreVm;
255
+ this.inputPump = inputPump;
256
+ this.outputPump = outputPump;
257
+ this.runClosuresTracker = runClosuresTracker;
258
+ this.errorCallback = errorCallback;
259
+ }
260
+ async doProgress(restatePromise) {
261
+ // Only the first time try process output
262
+ await this.outputPump.awaitNextProgress();
263
+ await this.doProgressInner(restatePromise);
264
+ }
265
+ async doProgressInner(restatePromise) {
266
+ // Try complete the promise
267
+ try {
268
+ restatePromise.tryComplete();
269
+ }
270
+ catch (e) {
271
+ // This can happen if either take_notification throws an exception or completer throws an exception.
272
+ // Both should be programming mistakes of the SDK, but we cover them here.
273
+ restatePromise[exports.RESTATE_CTX_SYMBOL].handleInvocationEndError(e);
274
+ return Promise.resolve();
275
+ }
276
+ // tl;dr don't touch this, or you can break combineable promises,
277
+ // slinkydeveloper won't be happy about it
278
+ //
279
+ // The reason for this setTimeout is that we need to enqueue the polling after
280
+ // we eventually resolve some promises. This is especially crucial for RestateCombinatorPromise
281
+ // as it flips the completed state using .finally() on the combinator.
282
+ return (0, promises_1.setTimeout)().then(async () => {
283
+ try {
284
+ // Invoke do progress on the vm
285
+ const handles = restatePromise.uncompletedLeaves();
286
+ if (handles.length === 0) {
287
+ // Completed, we're good!
288
+ return;
289
+ }
290
+ const doProgressResult = this.coreVm.do_progress(new Uint32Array(handles));
291
+ if (doProgressResult === "AnyCompleted") {
292
+ // Next recursion will cause the promise to do some progress
293
+ }
294
+ else if (doProgressResult === "ReadFromInput") {
295
+ // Read from input
296
+ await this.inputPump.awaitNextProgress();
297
+ }
298
+ else if (doProgressResult === "WaitingPendingRun") {
299
+ // Wait for any of the pending run to complete
300
+ await this.runClosuresTracker.awaitNextCompletedRun();
301
+ }
302
+ else if (doProgressResult === "CancelSignalReceived") {
303
+ restatePromise.tryCancel();
304
+ return;
305
+ }
306
+ else {
307
+ // We need to execute a run closure
308
+ this.runClosuresTracker.executeRun(doProgressResult.ExecuteRun);
309
+ // Let the run context switch, then come back to this flow.
310
+ await (0, promises_1.setTimeout)();
311
+ }
312
+ // Recursion
313
+ await this.doProgress(restatePromise);
314
+ }
315
+ catch (e) {
316
+ // Not good, this is a retryable error.
317
+ this.errorCallback(e);
318
+ }
319
+ });
320
+ }
321
+ }
322
+ exports.PromisesExecutor = PromisesExecutor;
323
+ //# sourceMappingURL=promises.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promises.js","sourceRoot":"","sources":["../../../src/promises.ts"],"names":[],"mappings":"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"}