@restatedev/restate-sdk 1.0.1 → 1.1.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 (345) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/src/common_api.d.ts +4 -2
  3. package/dist/cjs/src/common_api.d.ts.map +1 -1
  4. package/dist/cjs/src/common_api.js.map +1 -1
  5. package/dist/cjs/src/connection/connection.d.ts +64 -0
  6. package/dist/cjs/src/connection/connection.d.ts.map +1 -1
  7. package/dist/cjs/src/connection/connection.js +168 -0
  8. package/dist/cjs/src/connection/connection.js.map +1 -1
  9. package/dist/cjs/src/context.d.ts +13 -9
  10. package/dist/cjs/src/context.d.ts.map +1 -1
  11. package/dist/cjs/src/context.js.map +1 -1
  12. package/dist/cjs/src/context_impl.d.ts.map +1 -1
  13. package/dist/cjs/src/context_impl.js +15 -20
  14. package/dist/cjs/src/context_impl.js.map +1 -1
  15. package/dist/cjs/src/endpoint/endpoint_builder.d.ts +10 -0
  16. package/dist/cjs/src/endpoint/endpoint_builder.d.ts.map +1 -1
  17. package/dist/cjs/src/endpoint/endpoint_builder.js +13 -0
  18. package/dist/cjs/src/endpoint/endpoint_builder.js.map +1 -1
  19. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts +18 -1
  20. package/dist/cjs/src/endpoint/fetch_endpoint.d.ts.map +1 -1
  21. package/dist/cjs/src/endpoint/fetch_endpoint.js +16 -1
  22. package/dist/cjs/src/endpoint/fetch_endpoint.js.map +1 -1
  23. package/dist/cjs/src/endpoint/handlers/fetch.d.ts.map +1 -1
  24. package/dist/cjs/src/endpoint/handlers/fetch.js +1 -2
  25. package/dist/cjs/src/endpoint/handlers/fetch.js.map +1 -1
  26. package/dist/cjs/src/endpoint/handlers/generic.d.ts +10 -7
  27. package/dist/cjs/src/endpoint/handlers/generic.d.ts.map +1 -1
  28. package/dist/cjs/src/endpoint/handlers/generic.js +76 -54
  29. package/dist/cjs/src/endpoint/handlers/generic.js.map +1 -1
  30. package/dist/cjs/src/endpoint/handlers/lambda.d.ts.map +1 -1
  31. package/dist/cjs/src/endpoint/handlers/lambda.js +33 -16
  32. package/dist/cjs/src/endpoint/handlers/lambda.js.map +1 -1
  33. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts +2 -0
  34. package/dist/cjs/src/endpoint/lambda_endpoint.d.ts.map +1 -1
  35. package/dist/cjs/src/endpoint/lambda_endpoint.js +6 -8
  36. package/dist/cjs/src/endpoint/lambda_endpoint.js.map +1 -1
  37. package/dist/cjs/src/endpoint/node_endpoint.d.ts +2 -0
  38. package/dist/cjs/src/endpoint/node_endpoint.d.ts.map +1 -1
  39. package/dist/cjs/src/endpoint/node_endpoint.js +31 -20
  40. package/dist/cjs/src/endpoint/node_endpoint.js.map +1 -1
  41. package/dist/cjs/src/endpoint.d.ts +25 -2
  42. package/dist/cjs/src/endpoint.d.ts.map +1 -1
  43. package/dist/cjs/src/fetch.d.ts +2 -1
  44. package/dist/cjs/src/fetch.d.ts.map +1 -1
  45. package/dist/cjs/src/fetch.js +4 -2
  46. package/dist/cjs/src/fetch.js.map +1 -1
  47. package/dist/cjs/src/generated/version.d.ts +1 -1
  48. package/dist/cjs/src/generated/version.js +1 -1
  49. package/dist/cjs/src/invocation.d.ts +1 -1
  50. package/dist/cjs/src/invocation.d.ts.map +1 -1
  51. package/dist/cjs/src/invocation.js.map +1 -1
  52. package/dist/cjs/src/io/decoder.d.ts +2 -2
  53. package/dist/cjs/src/io/decoder.d.ts.map +1 -1
  54. package/dist/cjs/src/io/decoder.js +7 -8
  55. package/dist/cjs/src/io/decoder.js.map +1 -1
  56. package/dist/cjs/src/io/encoder.d.ts +0 -3
  57. package/dist/cjs/src/io/encoder.d.ts.map +1 -1
  58. package/dist/cjs/src/io/encoder.js +1 -18
  59. package/dist/cjs/src/io/encoder.js.map +1 -1
  60. package/dist/cjs/src/logger.d.ts +21 -13
  61. package/dist/cjs/src/logger.d.ts.map +1 -1
  62. package/dist/cjs/src/logger.js +56 -56
  63. package/dist/cjs/src/logger.js.map +1 -1
  64. package/dist/cjs/src/state_machine.d.ts +3 -5
  65. package/dist/cjs/src/state_machine.d.ts.map +1 -1
  66. package/dist/cjs/src/state_machine.js +7 -15
  67. package/dist/cjs/src/state_machine.js.map +1 -1
  68. package/dist/cjs/src/types/rpc.d.ts +11 -11
  69. package/dist/cjs/src/types/rpc.d.ts.map +1 -1
  70. package/dist/cjs/src/types/rpc.js.map +1 -1
  71. package/dist/cjs/src/user_agent.d.ts +1 -1
  72. package/dist/cjs/src/utils/message_logger.d.ts +2 -2
  73. package/dist/cjs/src/utils/message_logger.d.ts.map +1 -1
  74. package/dist/cjs/src/utils/message_logger.js +3 -3
  75. package/dist/cjs/src/utils/message_logger.js.map +1 -1
  76. package/dist/cjs/src/utils/streams.d.ts +4 -0
  77. package/dist/cjs/src/utils/streams.d.ts.map +1 -0
  78. package/dist/cjs/src/utils/streams.js +24 -0
  79. package/dist/cjs/src/utils/streams.js.map +1 -0
  80. package/dist/cjs/test/awakeable.test.d.ts +2 -0
  81. package/dist/cjs/test/awakeable.test.d.ts.map +1 -0
  82. package/dist/cjs/test/awakeable.test.js +141 -0
  83. package/dist/cjs/test/awakeable.test.js.map +1 -0
  84. package/dist/cjs/test/complete_awakeable.test.d.ts +2 -0
  85. package/dist/cjs/test/complete_awakeable.test.d.ts.map +1 -0
  86. package/dist/cjs/test/complete_awakeable.test.js +123 -0
  87. package/dist/cjs/test/complete_awakeable.test.js.map +1 -0
  88. package/dist/cjs/test/eager_state.test.d.ts +2 -0
  89. package/dist/cjs/test/eager_state.test.d.ts.map +1 -0
  90. package/dist/cjs/test/eager_state.test.js +280 -0
  91. package/dist/cjs/test/eager_state.test.js.map +1 -0
  92. package/dist/cjs/test/get_and_set_state.test.d.ts +2 -0
  93. package/dist/cjs/test/get_and_set_state.test.d.ts.map +1 -0
  94. package/dist/cjs/test/get_and_set_state.test.js +233 -0
  95. package/dist/cjs/test/get_and_set_state.test.js.map +1 -0
  96. package/dist/cjs/test/get_state.test.d.ts +2 -0
  97. package/dist/cjs/test/get_state.test.d.ts.map +1 -0
  98. package/dist/cjs/test/get_state.test.js +333 -0
  99. package/dist/cjs/test/get_state.test.js.map +1 -0
  100. package/dist/cjs/test/lambda.test.d.ts +2 -0
  101. package/dist/cjs/test/lambda.test.d.ts.map +1 -0
  102. package/dist/cjs/test/lambda.test.js +246 -0
  103. package/dist/cjs/test/lambda.test.js.map +1 -0
  104. package/dist/cjs/test/message_coders.test.d.ts +2 -0
  105. package/dist/cjs/test/message_coders.test.d.ts.map +1 -0
  106. package/dist/cjs/test/message_coders.test.js +37 -0
  107. package/dist/cjs/test/message_coders.test.js.map +1 -0
  108. package/dist/cjs/test/promise_combinator_tracker.test.d.ts +2 -0
  109. package/dist/cjs/test/promise_combinator_tracker.test.d.ts.map +1 -0
  110. package/dist/cjs/test/promise_combinator_tracker.test.js +156 -0
  111. package/dist/cjs/test/promise_combinator_tracker.test.js.map +1 -0
  112. package/dist/cjs/test/promise_combinators.test.d.ts +2 -0
  113. package/dist/cjs/test/promise_combinators.test.d.ts.map +1 -0
  114. package/dist/cjs/test/promise_combinators.test.js +433 -0
  115. package/dist/cjs/test/promise_combinators.test.js.map +1 -0
  116. package/dist/cjs/test/promises.test.d.ts +2 -0
  117. package/dist/cjs/test/promises.test.d.ts.map +1 -0
  118. package/dist/cjs/test/promises.test.js +32 -0
  119. package/dist/cjs/test/promises.test.js.map +1 -0
  120. package/dist/cjs/test/protocol_stream.test.d.ts +2 -0
  121. package/dist/cjs/test/protocol_stream.test.d.ts.map +1 -0
  122. package/dist/cjs/test/protocol_stream.test.js +243 -0
  123. package/dist/cjs/test/protocol_stream.test.js.map +1 -0
  124. package/dist/cjs/test/protoutils.d.ts +44 -0
  125. package/dist/cjs/test/protoutils.d.ts.map +1 -0
  126. package/dist/cjs/test/protoutils.js +359 -0
  127. package/dist/cjs/test/protoutils.js.map +1 -0
  128. package/dist/cjs/test/service_bind.test.d.ts +2 -0
  129. package/dist/cjs/test/service_bind.test.d.ts.map +1 -0
  130. package/dist/cjs/test/service_bind.test.js +50 -0
  131. package/dist/cjs/test/service_bind.test.js.map +1 -0
  132. package/dist/cjs/test/side_effect.test.d.ts +2 -0
  133. package/dist/cjs/test/side_effect.test.d.ts.map +1 -0
  134. package/dist/cjs/test/side_effect.test.js +133 -0
  135. package/dist/cjs/test/side_effect.test.js.map +1 -0
  136. package/dist/cjs/test/sleep.test.d.ts +2 -0
  137. package/dist/cjs/test/sleep.test.d.ts.map +1 -0
  138. package/dist/cjs/test/sleep.test.js +224 -0
  139. package/dist/cjs/test/sleep.test.js.map +1 -0
  140. package/dist/cjs/test/state_keys.test.d.ts +2 -0
  141. package/dist/cjs/test/state_keys.test.d.ts.map +1 -0
  142. package/dist/cjs/test/state_keys.test.js +92 -0
  143. package/dist/cjs/test/state_keys.test.js.map +1 -0
  144. package/dist/cjs/test/state_machine.test.d.ts +2 -0
  145. package/dist/cjs/test/state_machine.test.d.ts.map +1 -0
  146. package/dist/cjs/test/state_machine.test.js +42 -0
  147. package/dist/cjs/test/state_machine.test.js.map +1 -0
  148. package/dist/cjs/test/testdriver.d.ts +31 -0
  149. package/dist/cjs/test/testdriver.d.ts.map +1 -0
  150. package/dist/cjs/test/testdriver.js +137 -0
  151. package/dist/cjs/test/testdriver.js.map +1 -0
  152. package/dist/cjs/test/utils.test.d.ts +2 -0
  153. package/dist/cjs/test/utils.test.d.ts.map +1 -0
  154. package/dist/cjs/test/utils.test.js +104 -0
  155. package/dist/cjs/test/utils.test.js.map +1 -0
  156. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  157. package/dist/esm/src/common_api.d.ts +4 -2
  158. package/dist/esm/src/common_api.d.ts.map +1 -1
  159. package/dist/esm/src/common_api.js +1 -1
  160. package/dist/esm/src/common_api.js.map +1 -1
  161. package/dist/esm/src/connection/connection.d.ts +64 -0
  162. package/dist/esm/src/connection/connection.d.ts.map +1 -1
  163. package/dist/esm/src/connection/connection.js +166 -1
  164. package/dist/esm/src/connection/connection.js.map +1 -1
  165. package/dist/esm/src/context.d.ts +13 -9
  166. package/dist/esm/src/context.d.ts.map +1 -1
  167. package/dist/esm/src/context.js.map +1 -1
  168. package/dist/esm/src/context_impl.d.ts.map +1 -1
  169. package/dist/esm/src/context_impl.js +15 -20
  170. package/dist/esm/src/context_impl.js.map +1 -1
  171. package/dist/esm/src/endpoint/endpoint_builder.d.ts +10 -0
  172. package/dist/esm/src/endpoint/endpoint_builder.d.ts.map +1 -1
  173. package/dist/esm/src/endpoint/endpoint_builder.js +13 -0
  174. package/dist/esm/src/endpoint/endpoint_builder.js.map +1 -1
  175. package/dist/esm/src/endpoint/fetch_endpoint.d.ts +18 -1
  176. package/dist/esm/src/endpoint/fetch_endpoint.d.ts.map +1 -1
  177. package/dist/esm/src/endpoint/fetch_endpoint.js +16 -1
  178. package/dist/esm/src/endpoint/fetch_endpoint.js.map +1 -1
  179. package/dist/esm/src/endpoint/handlers/fetch.d.ts.map +1 -1
  180. package/dist/esm/src/endpoint/handlers/fetch.js +1 -2
  181. package/dist/esm/src/endpoint/handlers/fetch.js.map +1 -1
  182. package/dist/esm/src/endpoint/handlers/generic.d.ts +10 -7
  183. package/dist/esm/src/endpoint/handlers/generic.d.ts.map +1 -1
  184. package/dist/esm/src/endpoint/handlers/generic.js +77 -55
  185. package/dist/esm/src/endpoint/handlers/generic.js.map +1 -1
  186. package/dist/esm/src/endpoint/handlers/lambda.d.ts.map +1 -1
  187. package/dist/esm/src/endpoint/handlers/lambda.js +33 -16
  188. package/dist/esm/src/endpoint/handlers/lambda.js.map +1 -1
  189. package/dist/esm/src/endpoint/lambda_endpoint.d.ts +2 -0
  190. package/dist/esm/src/endpoint/lambda_endpoint.d.ts.map +1 -1
  191. package/dist/esm/src/endpoint/lambda_endpoint.js +6 -8
  192. package/dist/esm/src/endpoint/lambda_endpoint.js.map +1 -1
  193. package/dist/esm/src/endpoint/node_endpoint.d.ts +2 -0
  194. package/dist/esm/src/endpoint/node_endpoint.d.ts.map +1 -1
  195. package/dist/esm/src/endpoint/node_endpoint.js +31 -20
  196. package/dist/esm/src/endpoint/node_endpoint.js.map +1 -1
  197. package/dist/esm/src/endpoint.d.ts +25 -2
  198. package/dist/esm/src/endpoint.d.ts.map +1 -1
  199. package/dist/esm/src/fetch.d.ts +2 -1
  200. package/dist/esm/src/fetch.d.ts.map +1 -1
  201. package/dist/esm/src/fetch.js +4 -2
  202. package/dist/esm/src/fetch.js.map +1 -1
  203. package/dist/esm/src/generated/version.d.ts +1 -1
  204. package/dist/esm/src/generated/version.js +1 -1
  205. package/dist/esm/src/invocation.d.ts +1 -1
  206. package/dist/esm/src/invocation.d.ts.map +1 -1
  207. package/dist/esm/src/invocation.js.map +1 -1
  208. package/dist/esm/src/io/decoder.d.ts +2 -2
  209. package/dist/esm/src/io/decoder.d.ts.map +1 -1
  210. package/dist/esm/src/io/decoder.js +7 -8
  211. package/dist/esm/src/io/decoder.js.map +1 -1
  212. package/dist/esm/src/io/encoder.d.ts +0 -3
  213. package/dist/esm/src/io/encoder.d.ts.map +1 -1
  214. package/dist/esm/src/io/encoder.js +0 -13
  215. package/dist/esm/src/io/encoder.js.map +1 -1
  216. package/dist/esm/src/logger.d.ts +21 -13
  217. package/dist/esm/src/logger.d.ts.map +1 -1
  218. package/dist/esm/src/logger.js +53 -55
  219. package/dist/esm/src/logger.js.map +1 -1
  220. package/dist/esm/src/state_machine.d.ts +3 -5
  221. package/dist/esm/src/state_machine.d.ts.map +1 -1
  222. package/dist/esm/src/state_machine.js +8 -16
  223. package/dist/esm/src/state_machine.js.map +1 -1
  224. package/dist/esm/src/types/rpc.d.ts +11 -11
  225. package/dist/esm/src/types/rpc.d.ts.map +1 -1
  226. package/dist/esm/src/types/rpc.js.map +1 -1
  227. package/dist/esm/src/user_agent.d.ts +1 -1
  228. package/dist/esm/src/utils/message_logger.d.ts +2 -2
  229. package/dist/esm/src/utils/message_logger.d.ts.map +1 -1
  230. package/dist/esm/src/utils/message_logger.js +4 -4
  231. package/dist/esm/src/utils/message_logger.js.map +1 -1
  232. package/dist/esm/src/utils/streams.d.ts +4 -0
  233. package/dist/esm/src/utils/streams.d.ts.map +1 -0
  234. package/dist/esm/src/utils/streams.js +20 -0
  235. package/dist/esm/src/utils/streams.js.map +1 -0
  236. package/dist/esm/test/awakeable.test.d.ts +2 -0
  237. package/dist/esm/test/awakeable.test.d.ts.map +1 -0
  238. package/dist/esm/test/awakeable.test.js +139 -0
  239. package/dist/esm/test/awakeable.test.js.map +1 -0
  240. package/dist/esm/test/complete_awakeable.test.d.ts +2 -0
  241. package/dist/esm/test/complete_awakeable.test.d.ts.map +1 -0
  242. package/dist/esm/test/complete_awakeable.test.js +121 -0
  243. package/dist/esm/test/complete_awakeable.test.js.map +1 -0
  244. package/dist/esm/test/eager_state.test.d.ts +2 -0
  245. package/dist/esm/test/eager_state.test.d.ts.map +1 -0
  246. package/dist/esm/test/eager_state.test.js +278 -0
  247. package/dist/esm/test/eager_state.test.js.map +1 -0
  248. package/dist/esm/test/get_and_set_state.test.d.ts +2 -0
  249. package/dist/esm/test/get_and_set_state.test.d.ts.map +1 -0
  250. package/dist/esm/test/get_and_set_state.test.js +231 -0
  251. package/dist/esm/test/get_and_set_state.test.js.map +1 -0
  252. package/dist/esm/test/get_state.test.d.ts +2 -0
  253. package/dist/esm/test/get_state.test.d.ts.map +1 -0
  254. package/dist/esm/test/get_state.test.js +331 -0
  255. package/dist/esm/test/get_state.test.js.map +1 -0
  256. package/dist/esm/test/lambda.test.d.ts +2 -0
  257. package/dist/esm/test/lambda.test.d.ts.map +1 -0
  258. package/dist/esm/test/lambda.test.js +221 -0
  259. package/dist/esm/test/lambda.test.js.map +1 -0
  260. package/dist/esm/test/message_coders.test.d.ts +2 -0
  261. package/dist/esm/test/message_coders.test.d.ts.map +1 -0
  262. package/dist/esm/test/message_coders.test.js +35 -0
  263. package/dist/esm/test/message_coders.test.js.map +1 -0
  264. package/dist/esm/test/promise_combinator_tracker.test.d.ts +2 -0
  265. package/dist/esm/test/promise_combinator_tracker.test.d.ts.map +1 -0
  266. package/dist/esm/test/promise_combinator_tracker.test.js +154 -0
  267. package/dist/esm/test/promise_combinator_tracker.test.js.map +1 -0
  268. package/dist/esm/test/promise_combinators.test.d.ts +2 -0
  269. package/dist/esm/test/promise_combinators.test.d.ts.map +1 -0
  270. package/dist/esm/test/promise_combinators.test.js +431 -0
  271. package/dist/esm/test/promise_combinators.test.js.map +1 -0
  272. package/dist/esm/test/promises.test.d.ts +2 -0
  273. package/dist/esm/test/promises.test.d.ts.map +1 -0
  274. package/dist/esm/test/promises.test.js +30 -0
  275. package/dist/esm/test/promises.test.js.map +1 -0
  276. package/dist/esm/test/protocol_stream.test.d.ts +2 -0
  277. package/dist/esm/test/protocol_stream.test.d.ts.map +1 -0
  278. package/dist/esm/test/protocol_stream.test.js +218 -0
  279. package/dist/esm/test/protocol_stream.test.js.map +1 -0
  280. package/dist/esm/test/protoutils.d.ts +44 -0
  281. package/dist/esm/test/protoutils.d.ts.map +1 -0
  282. package/dist/esm/test/protoutils.js +326 -0
  283. package/dist/esm/test/protoutils.js.map +1 -0
  284. package/dist/esm/test/service_bind.test.d.ts +2 -0
  285. package/dist/esm/test/service_bind.test.d.ts.map +1 -0
  286. package/dist/esm/test/service_bind.test.js +48 -0
  287. package/dist/esm/test/service_bind.test.js.map +1 -0
  288. package/dist/esm/test/side_effect.test.d.ts +2 -0
  289. package/dist/esm/test/side_effect.test.d.ts.map +1 -0
  290. package/dist/esm/test/side_effect.test.js +131 -0
  291. package/dist/esm/test/side_effect.test.js.map +1 -0
  292. package/dist/esm/test/sleep.test.d.ts +2 -0
  293. package/dist/esm/test/sleep.test.d.ts.map +1 -0
  294. package/dist/esm/test/sleep.test.js +222 -0
  295. package/dist/esm/test/sleep.test.js.map +1 -0
  296. package/dist/esm/test/state_keys.test.d.ts +2 -0
  297. package/dist/esm/test/state_keys.test.d.ts.map +1 -0
  298. package/dist/esm/test/state_keys.test.js +90 -0
  299. package/dist/esm/test/state_keys.test.js.map +1 -0
  300. package/dist/esm/test/state_machine.test.d.ts +2 -0
  301. package/dist/esm/test/state_machine.test.d.ts.map +1 -0
  302. package/dist/esm/test/state_machine.test.js +40 -0
  303. package/dist/esm/test/state_machine.test.js.map +1 -0
  304. package/dist/esm/test/testdriver.d.ts +31 -0
  305. package/dist/esm/test/testdriver.d.ts.map +1 -0
  306. package/dist/esm/test/testdriver.js +133 -0
  307. package/dist/esm/test/testdriver.js.map +1 -0
  308. package/dist/esm/test/utils.test.d.ts +2 -0
  309. package/dist/esm/test/utils.test.d.ts.map +1 -0
  310. package/dist/esm/test/utils.test.js +102 -0
  311. package/dist/esm/test/utils.test.js.map +1 -0
  312. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  313. package/package.json +2 -2
  314. package/dist/cjs/src/connection/buffered_connection.d.ts +0 -14
  315. package/dist/cjs/src/connection/buffered_connection.d.ts.map +0 -1
  316. package/dist/cjs/src/connection/buffered_connection.js +0 -44
  317. package/dist/cjs/src/connection/buffered_connection.js.map +0 -1
  318. package/dist/cjs/src/connection/http_connection.d.ts +0 -77
  319. package/dist/cjs/src/connection/http_connection.d.ts.map +0 -1
  320. package/dist/cjs/src/connection/http_connection.js +0 -208
  321. package/dist/cjs/src/connection/http_connection.js.map +0 -1
  322. package/dist/cjs/src/connection/lambda_connection.d.ts +0 -17
  323. package/dist/cjs/src/connection/lambda_connection.d.ts.map +0 -1
  324. package/dist/cjs/src/connection/lambda_connection.js +0 -64
  325. package/dist/cjs/src/connection/lambda_connection.js.map +0 -1
  326. package/dist/cjs/src/endpoint/handlers/node.d.ts +0 -11
  327. package/dist/cjs/src/endpoint/handlers/node.d.ts.map +0 -1
  328. package/dist/cjs/src/endpoint/handlers/node.js +0 -188
  329. package/dist/cjs/src/endpoint/handlers/node.js.map +0 -1
  330. package/dist/esm/src/connection/buffered_connection.d.ts +0 -14
  331. package/dist/esm/src/connection/buffered_connection.d.ts.map +0 -1
  332. package/dist/esm/src/connection/buffered_connection.js +0 -40
  333. package/dist/esm/src/connection/buffered_connection.js.map +0 -1
  334. package/dist/esm/src/connection/http_connection.d.ts +0 -77
  335. package/dist/esm/src/connection/http_connection.d.ts.map +0 -1
  336. package/dist/esm/src/connection/http_connection.js +0 -204
  337. package/dist/esm/src/connection/http_connection.js.map +0 -1
  338. package/dist/esm/src/connection/lambda_connection.d.ts +0 -17
  339. package/dist/esm/src/connection/lambda_connection.d.ts.map +0 -1
  340. package/dist/esm/src/connection/lambda_connection.js +0 -60
  341. package/dist/esm/src/connection/lambda_connection.js.map +0 -1
  342. package/dist/esm/src/endpoint/handlers/node.d.ts +0 -11
  343. package/dist/esm/src/endpoint/handlers/node.d.ts.map +0 -1
  344. package/dist/esm/src/endpoint/handlers/node.js +0 -181
  345. package/dist/esm/src/endpoint/handlers/node.js.map +0 -1
@@ -0,0 +1,218 @@
1
+ /*
2
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
+ *
4
+ * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * which is released under the MIT license.
6
+ *
7
+ * You can find a copy of the license in file LICENSE in the root
8
+ * directory of this repository or package, or at
9
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
+ */
11
+ import { START_MESSAGE_TYPE, StartMessage, COMPLETION_MESSAGE_TYPE, GET_STATE_ENTRY_MESSAGE_TYPE, SetStateEntryMessage, SET_STATE_ENTRY_MESSAGE_TYPE, } from "../src/types/protocol.js";
12
+ import { RestateConnection } from "../src/connection/connection.js";
13
+ import { Header, Message } from "../src/types/types.js";
14
+ import * as stream from "node:stream/web";
15
+ import { setTimeout } from "timers/promises";
16
+ import { CompletablePromise } from "../src/utils/promises.js";
17
+ import { describe, expect, it } from "vitest";
18
+ import { LogSource, createRestateConsole, defaultLogger, } from "../src/logger.js";
19
+ // The following test suite is taken from headers.rs
20
+ describe("Header", () => {
21
+ it("Should round trip a custom message", () => {
22
+ const a = new Header(0xfc00n, 10);
23
+ const b = Header.fromU64be(a.toU64be());
24
+ expect(b).toStrictEqual(a);
25
+ });
26
+ it("invoke_test", () => roundtripTest(newStart(25)));
27
+ it("completion_test", () => roundtripTest(newHeader(COMPLETION_MESSAGE_TYPE, 22)));
28
+ it("completed_get_state", () => roundtripTest(newCompletableEntry(GET_STATE_ENTRY_MESSAGE_TYPE, true, 0)));
29
+ it("not_completed_get_state", () => roundtripTest(newCompletableEntry(GET_STATE_ENTRY_MESSAGE_TYPE, false, 0)));
30
+ it("completed_get_state_with_len", () => roundtripTest(newCompletableEntry(GET_STATE_ENTRY_MESSAGE_TYPE, true, 10341)));
31
+ it("custom_entry", () => roundtripTest(newHeader(0xfc00n, 10341)));
32
+ it("custom_entry_with_requires_ack", () => roundtripTest(new Header(0xfc00n, 10341, undefined, true)));
33
+ });
34
+ const rlog = createRestateConsole(defaultLogger, LogSource.SYSTEM);
35
+ describe("Restate Streaming Connection", () => {
36
+ it("should demonstrate how to write messages and read messages.", async () => {
37
+ // imagine that the HTTP2 request handler hands to you a bidirectional (duplex in node's lingo)
38
+ // binary stream, that you can read from and write to.
39
+ const http2stream = mockHttp2DuplexStream();
40
+ // the following demonstrates how to use a stream_encoder/decoder to convert
41
+ // a raw duplex stream to a high-level stream of Restate's protocol messages and headers.
42
+ const restateStream = new RestateConnection(rlog, {}, http2stream);
43
+ // here we need to create a promise for the sake of this test.
44
+ // this future will be resolved once something is emitted on the stream.
45
+ const result = new CompletablePromise();
46
+ restateStream.pipeToConsumer({
47
+ handleMessage: (m) => {
48
+ result.resolve(m);
49
+ return false;
50
+ },
51
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
52
+ handleInputClosed: () => { },
53
+ handleStreamError: (error) => result.reject(error),
54
+ });
55
+ // now, let's simulate sending a message
56
+ void restateStream.send(new Message(START_MESSAGE_TYPE, new StartMessage({
57
+ id: Buffer.from("abcd"),
58
+ debugId: "abcd",
59
+ knownEntries: 1337,
60
+ }), undefined));
61
+ // and collect what was written
62
+ await restateStream.end();
63
+ const msg = await result.promise;
64
+ expect(msg.messageType).toStrictEqual(START_MESSAGE_TYPE);
65
+ expect(msg.message.knownEntries).toStrictEqual(1337);
66
+ });
67
+ it("should await sending of small data when closing", async () => {
68
+ const { duplex, processBytes } = mockBackpressuredDuplex(128);
69
+ const connection = new RestateConnection(rlog, {}, duplex);
70
+ // enqueue small data, below watermark, so that 'end' can immediately be written
71
+ void connection.send(newMessage(10));
72
+ const done = connection.end();
73
+ await verifyPromisePending(done);
74
+ // now let the stream flow
75
+ processBytes(10 * 1024);
76
+ // we should be able to finish cleanly
77
+ await done;
78
+ });
79
+ it("should await sending of larger data when closing", async () => {
80
+ const { duplex, processBytes } = mockBackpressuredDuplex(128);
81
+ const connection = new RestateConnection(rlog, {}, duplex);
82
+ // enqueue quite some data, before allowing any bytes to flow any
83
+ void connection.send(newMessage(1024));
84
+ void connection.send(newMessage(1024));
85
+ void connection.send(newMessage(1024));
86
+ const done = connection.end();
87
+ await verifyPromisePending(done);
88
+ // now let the stream flow
89
+ processBytes(10 * 1024);
90
+ // we should be able to finish cleanly
91
+ await done;
92
+ });
93
+ it("should not trigger backpressure for small messages", async () => {
94
+ const { duplex } = mockBackpressuredDuplex(1024);
95
+ const connection = new RestateConnection(rlog, {}, duplex);
96
+ // enqueue a message that is not too large
97
+ const promise1 = connection.send(newMessage(80));
98
+ const promise2 = connection.send(newMessage(80));
99
+ await verifyPromiseResolved(promise1);
100
+ await verifyPromiseResolved(promise2);
101
+ });
102
+ it("should trigger backpressure for large messages", async () => {
103
+ const { duplex } = mockBackpressuredDuplex(1024);
104
+ const connection = new RestateConnection(rlog, {}, duplex);
105
+ // this message should get sent immediately because its smaller than 1024
106
+ const promise1 = connection.send(newMessage(800));
107
+ await verifyPromiseResolved(promise1);
108
+ // this one should hang because it takes us over 1024
109
+ const promise2 = connection.send(newMessage(800));
110
+ await verifyPromisePending(promise2);
111
+ });
112
+ it("should resolve backpressure promises when the stream flows", async () => {
113
+ const { duplex, processBytes } = mockBackpressuredDuplex(1024);
114
+ const connection = new RestateConnection(rlog, {}, duplex);
115
+ // this message should get sent immediately because its smaller than 1024
116
+ const promise1 = connection.send(newMessage(800));
117
+ await verifyPromiseResolved(promise1);
118
+ // this one should hang until we let it flow because it takes us over 1024
119
+ const promise2 = connection.send(newMessage(800));
120
+ await verifyPromisePending(promise2);
121
+ // now let the stream flow
122
+ processBytes(10 * 1024);
123
+ // this should now complete
124
+ await promise2;
125
+ });
126
+ });
127
+ // The following is taken from headers.rs tests
128
+ function newHeader(messageTypeId, length) {
129
+ return new Header(messageTypeId, length);
130
+ }
131
+ function newStart(length) {
132
+ return new Header(START_MESSAGE_TYPE, length, undefined, undefined);
133
+ }
134
+ function newCompletableEntry(ty, completed, length) {
135
+ return new Header(ty, length, completed);
136
+ }
137
+ function newMessage(size) {
138
+ return new Message(SET_STATE_ENTRY_MESSAGE_TYPE, new SetStateEntryMessage({
139
+ key: Buffer.from("abcd"),
140
+ value: Buffer.alloc(size),
141
+ }));
142
+ }
143
+ function sameTruthness(a, b) {
144
+ if (a) {
145
+ expect(b).toBeTruthy();
146
+ }
147
+ else {
148
+ expect(b).toBeFalsy();
149
+ }
150
+ }
151
+ async function verifyPromisePending(promise) {
152
+ let complete = false;
153
+ void promise.then(() => {
154
+ complete = true;
155
+ });
156
+ await setTimeout(0); // let the callbacks and tasks proceed first
157
+ expect(complete).toBeFalsy();
158
+ }
159
+ async function verifyPromiseResolved(promise) {
160
+ let complete = false;
161
+ void promise.then(() => {
162
+ complete = true;
163
+ });
164
+ await setTimeout(0); // let the callbacks and tasks proceed first
165
+ expect(complete).toBeTruthy();
166
+ }
167
+ function roundtripTest(a) {
168
+ const b = Header.fromU64be(a.toU64be());
169
+ expect(b.messageType).toStrictEqual(a.messageType);
170
+ expect(b.frameLength).toStrictEqual(a.frameLength);
171
+ sameTruthness(a.completedFlag, b.completedFlag);
172
+ sameTruthness(a.requiresAckFlag, b.requiresAckFlag);
173
+ sameTruthness(a.partialStateFlag, b.partialStateFlag);
174
+ }
175
+ function mockHttp2DuplexStream() {
176
+ // pipe output into input
177
+ return new stream.TransformStream();
178
+ }
179
+ function mockBackpressuredDuplex(highWaterMark) {
180
+ let permittedBytes = 0;
181
+ const queue = [];
182
+ const writable = new stream.WritableStream({
183
+ write: async (chunk) => {
184
+ if (permittedBytes >= chunk.length) {
185
+ permittedBytes -= chunk.length;
186
+ }
187
+ else {
188
+ permittedBytes = 0;
189
+ await new Promise((resolve) => {
190
+ queue.push({ bytes: chunk.length - permittedBytes, cb: resolve });
191
+ });
192
+ }
193
+ },
194
+ }, new stream.ByteLengthQueuingStrategy({ highWaterMark }));
195
+ function processBytes(numBytes) {
196
+ while (queue.length > 0 && numBytes > 0) {
197
+ const next = queue[0];
198
+ if (next.bytes > numBytes) {
199
+ next.bytes -= numBytes;
200
+ numBytes = 0;
201
+ }
202
+ else {
203
+ numBytes -= next.bytes;
204
+ queue.pop();
205
+ process.nextTick(next.cb);
206
+ }
207
+ }
208
+ permittedBytes += numBytes;
209
+ }
210
+ return {
211
+ duplex: {
212
+ readable: new stream.ReadableStream(),
213
+ writable,
214
+ },
215
+ processBytes,
216
+ };
217
+ }
218
+ //# sourceMappingURL=protocol_stream.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol_stream.test.js","sourceRoot":"","sources":["../../../test/protocol_stream.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Empty } from "@bufbuild/protobuf";
3
+ import { Message } from "../src/types/types.js";
4
+ import { Failure, StartMessage_StateEntry } from "../src/generated/proto/protocol_pb.js";
5
+ import type { JournalErrorContext } from "../src/types/errors.js";
6
+ export type StartMessageOpts = {
7
+ knownEntries?: number;
8
+ partialState?: boolean;
9
+ state?: Buffer[][];
10
+ key?: string;
11
+ };
12
+ export declare function startMessage({ knownEntries, partialState, state, key, }?: StartMessageOpts): Message;
13
+ export declare function toStateEntries(entries: Buffer[][]): StartMessage_StateEntry[];
14
+ export declare function inputMessage(value: Uint8Array): Message;
15
+ export declare function outputMessage(value?: Uint8Array, failure?: Failure): Message;
16
+ export declare function getStateMessage<T>(key: string, value?: T, empty?: boolean, failure?: Failure): Message;
17
+ export declare function getStateMessageWithEmptyResult(key: string): Message;
18
+ export declare function getStateKeysMessage(value?: Array<string>): Message;
19
+ export declare function setStateMessage<T>(key: string, value: T): Message;
20
+ export declare function clearStateMessage(key: string): Message;
21
+ export declare function sleepMessage(wakeupTime: number, empty?: Empty, failure?: Failure): Message;
22
+ export declare function completionMessage(index: number, value?: any, empty?: boolean, failure?: Failure): Message;
23
+ export declare function completionMessageWithEmpty(index: number): Message;
24
+ export declare function ackMessage(index: number): Message;
25
+ export declare function invokeMessage(serviceName: string, handlerName: string, parameter: Uint8Array, value?: Uint8Array, failure?: Failure, key?: string): Message;
26
+ export declare function backgroundInvokeMessage(serviceName: string, handlerName: string, parameter: Uint8Array, invokeTime?: number, key?: string): Message;
27
+ export declare function sideEffectMessage<T>(value?: T, failure?: Failure, name?: string): Message;
28
+ export declare function awakeableMessage<T>(payload?: T, failure?: Failure): Message;
29
+ export declare function resolveAwakeableMessage<T>(id: string, payload: T): Message;
30
+ export declare function rejectAwakeableMessage(id: string, reason: string): Message;
31
+ export declare function suspensionMessage(entryIndices: number[]): Message;
32
+ export declare function combinatorEntryMessage(combinatorId: number, journalEntriesOrder: number[]): Message;
33
+ export declare function failure(msg: string, code?: number): Failure;
34
+ export declare function greetRequest(myName: string): Uint8Array;
35
+ export declare function greetResponse(myGreeting: string): Uint8Array;
36
+ export declare function errorMessage(failure: Failure, ctx?: JournalErrorContext): Message;
37
+ export declare function checkError(outputMsg: Message, errorMessage: string, code?: number): void;
38
+ export declare function checkJournalMismatchError(outputMsg: Message): void;
39
+ export declare function checkTerminalError(outputMsg: Message, errorMessage: string): void;
40
+ export declare function getAwakeableId(entryIndex: number): string;
41
+ export declare function keyVal(key: string, value: any): Buffer[];
42
+ export declare const END_MESSAGE: Message;
43
+ export declare const CLEAR_ALL_STATE_ENTRY_MESSAGE: Message;
44
+ //# sourceMappingURL=protoutils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protoutils.d.ts","sourceRoot":"","sources":["../../../test/protoutils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,326 @@
1
+ /*
2
+ * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH
3
+ *
4
+ * This file is part of the Restate SDK for Node.js/TypeScript,
5
+ * which is released under the MIT license.
6
+ *
7
+ * You can find a copy of the license in file LICENSE in the root
8
+ * directory of this repository or package, or at
9
+ * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
10
+ */
11
+ /* istanbul ignore file */
12
+ import { Empty, protoInt64 } from "@bufbuild/protobuf";
13
+ import { StartMessage, START_MESSAGE_TYPE, InputEntryMessage, INPUT_ENTRY_MESSAGE_TYPE, GetStateEntryMessage, GET_STATE_ENTRY_MESSAGE_TYPE, SetStateEntryMessage, SET_STATE_ENTRY_MESSAGE_TYPE, CompletionMessage, COMPLETION_MESSAGE_TYPE, INVOKE_ENTRY_MESSAGE_TYPE, CallEntryMessage, OUTPUT_ENTRY_MESSAGE_TYPE, OutputEntryMessage, BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, OneWayCallEntryMessage, AWAKEABLE_ENTRY_MESSAGE_TYPE, AwakeableEntryMessage, COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, CompleteAwakeableEntryMessage, CLEAR_STATE_ENTRY_MESSAGE_TYPE, ClearStateEntryMessage, SLEEP_ENTRY_MESSAGE_TYPE, SleepEntryMessage, SIDE_EFFECT_ENTRY_MESSAGE_TYPE, SUSPENSION_MESSAGE_TYPE, SuspensionMessage, ERROR_MESSAGE_TYPE, ErrorMessage, ENTRY_ACK_MESSAGE_TYPE, EntryAckMessage, END_MESSAGE_TYPE, EndMessage, AWAKEABLE_IDENTIFIER_PREFIX, COMBINATOR_ENTRY_MESSAGE, CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, ClearAllStateEntryMessage, GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, GetStateKeysEntryMessage, } from "../src/types/protocol.js";
14
+ import { Message } from "../src/types/types.js";
15
+ import { CombinatorEntryMessage } from "../src/generated/proto/javascript_pb.js";
16
+ import { Failure, RunEntryMessage, StartMessage_StateEntry, } from "../src/generated/proto/protocol_pb.js";
17
+ import { jsonSerialize } from "../src/utils/utils.js";
18
+ import { INTERNAL_ERROR_CODE, RestateErrorCodes, UNKNOWN_ERROR_CODE, } from "../src/types/errors.js";
19
+ import { expect } from "vitest";
20
+ export function startMessage({ knownEntries, partialState, state, key, } = {}) {
21
+ return new Message(START_MESSAGE_TYPE, new StartMessage({
22
+ id: Buffer.from("f311f1fdcb9863f0018bd3400ecd7d69b547204e776218b2", "hex"),
23
+ debugId: "8xHx_cuYY_AAYvTQA7NfWm1RyBOd2IYsg",
24
+ knownEntries: knownEntries, // only used for the Lambda case. For bidi streaming, this will be imputed by the testdriver
25
+ stateMap: toStateEntries(state || []),
26
+ partialState: partialState !== false,
27
+ key: key ?? "Till",
28
+ }), undefined, undefined);
29
+ }
30
+ export function toStateEntries(entries) {
31
+ return (entries.map((el) => new StartMessage_StateEntry({ key: el[0], value: el[1] })) || []);
32
+ }
33
+ export function inputMessage(value) {
34
+ if (value !== undefined) {
35
+ return new Message(INPUT_ENTRY_MESSAGE_TYPE, new InputEntryMessage({
36
+ value,
37
+ }));
38
+ }
39
+ else {
40
+ throw new Error("Input message needs either a value or a failure set.");
41
+ }
42
+ }
43
+ export function outputMessage(value, failure) {
44
+ if (value !== undefined) {
45
+ return new Message(OUTPUT_ENTRY_MESSAGE_TYPE, new OutputEntryMessage({
46
+ result: { case: "value", value: Buffer.from(value) },
47
+ }));
48
+ }
49
+ else if (failure !== undefined) {
50
+ return new Message(OUTPUT_ENTRY_MESSAGE_TYPE, new OutputEntryMessage({
51
+ result: { case: "failure", value: failure },
52
+ }));
53
+ }
54
+ else {
55
+ return new Message(OUTPUT_ENTRY_MESSAGE_TYPE, new OutputEntryMessage({
56
+ result: {
57
+ case: "failure",
58
+ value: new Failure({
59
+ code: 13,
60
+ message: `Uncaught exception for invocation id abcd`,
61
+ }),
62
+ },
63
+ }));
64
+ }
65
+ }
66
+ export function getStateMessage(key, value, empty, failure) {
67
+ if (empty === true) {
68
+ return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
69
+ key: Buffer.from(key),
70
+ result: { case: "empty", value: new Empty() },
71
+ }), true);
72
+ }
73
+ else if (value !== undefined) {
74
+ return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
75
+ key: Buffer.from(key),
76
+ result: { case: "value", value: Buffer.from(jsonSerialize(value)) },
77
+ }), true);
78
+ }
79
+ else if (failure !== undefined) {
80
+ return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
81
+ key: Buffer.from(key),
82
+ result: { case: "failure", value: failure },
83
+ }), true);
84
+ }
85
+ else {
86
+ return new Message(GET_STATE_ENTRY_MESSAGE_TYPE, new GetStateEntryMessage({
87
+ key: Buffer.from(key),
88
+ }), false);
89
+ }
90
+ }
91
+ export function getStateMessageWithEmptyResult(key) {
92
+ return getStateMessage(key, undefined, true);
93
+ }
94
+ export function getStateKeysMessage(value) {
95
+ if (value === undefined) {
96
+ return new Message(GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, new GetStateKeysEntryMessage({}), false);
97
+ }
98
+ else {
99
+ return new Message(GET_STATE_KEYS_ENTRY_MESSAGE_TYPE, new GetStateKeysEntryMessage({
100
+ result: {
101
+ case: "value",
102
+ value: { keys: value.map((b) => Buffer.from(b)) },
103
+ },
104
+ }), true);
105
+ }
106
+ }
107
+ export function setStateMessage(key, value) {
108
+ return new Message(SET_STATE_ENTRY_MESSAGE_TYPE, new SetStateEntryMessage({
109
+ key: Buffer.from(key),
110
+ value: Buffer.from(jsonSerialize(value)),
111
+ }));
112
+ }
113
+ export function clearStateMessage(key) {
114
+ return new Message(CLEAR_STATE_ENTRY_MESSAGE_TYPE, new ClearStateEntryMessage({
115
+ key: Buffer.from(key),
116
+ }));
117
+ }
118
+ export function sleepMessage(wakeupTime, empty, failure) {
119
+ if (empty !== undefined) {
120
+ return new Message(SLEEP_ENTRY_MESSAGE_TYPE, new SleepEntryMessage({
121
+ wakeUpTime: protoInt64.parse(wakeupTime),
122
+ result: { case: "empty", value: empty },
123
+ }));
124
+ }
125
+ else if (failure !== undefined) {
126
+ return new Message(SLEEP_ENTRY_MESSAGE_TYPE, new SleepEntryMessage({
127
+ wakeUpTime: protoInt64.parse(wakeupTime),
128
+ result: { case: "failure", value: failure },
129
+ }));
130
+ }
131
+ else {
132
+ return new Message(SLEEP_ENTRY_MESSAGE_TYPE, new SleepEntryMessage({
133
+ wakeUpTime: protoInt64.parse(wakeupTime),
134
+ }));
135
+ }
136
+ }
137
+ export function completionMessage(index,
138
+ /* eslint-disable @typescript-eslint/no-explicit-any */
139
+ value, empty, failure) {
140
+ if (value !== undefined) {
141
+ return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
142
+ entryIndex: index,
143
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
144
+ result: { case: "value", value: Buffer.from(value) },
145
+ }));
146
+ }
147
+ else if (empty) {
148
+ return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
149
+ entryIndex: index,
150
+ result: { case: "empty", value: new Empty() },
151
+ }));
152
+ }
153
+ else if (failure != undefined) {
154
+ return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
155
+ entryIndex: index,
156
+ result: { case: "failure", value: failure },
157
+ }));
158
+ }
159
+ else {
160
+ return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
161
+ entryIndex: index,
162
+ }));
163
+ }
164
+ }
165
+ export function completionMessageWithEmpty(index) {
166
+ return new Message(COMPLETION_MESSAGE_TYPE, new CompletionMessage({
167
+ entryIndex: index,
168
+ result: { case: "empty", value: new Empty() },
169
+ }));
170
+ }
171
+ export function ackMessage(index) {
172
+ return new Message(ENTRY_ACK_MESSAGE_TYPE, new EntryAckMessage({
173
+ entryIndex: index,
174
+ }));
175
+ }
176
+ export function invokeMessage(serviceName, handlerName, parameter, value, failure, key) {
177
+ if (value != undefined) {
178
+ return new Message(INVOKE_ENTRY_MESSAGE_TYPE, new CallEntryMessage({
179
+ serviceName: serviceName,
180
+ handlerName: handlerName,
181
+ parameter: Buffer.from(parameter),
182
+ result: { case: "value", value: value },
183
+ key,
184
+ }));
185
+ }
186
+ else if (failure != undefined) {
187
+ return new Message(INVOKE_ENTRY_MESSAGE_TYPE, new CallEntryMessage({
188
+ serviceName: serviceName,
189
+ handlerName: handlerName,
190
+ parameter: Buffer.from(parameter),
191
+ result: { case: "failure", value: failure },
192
+ key,
193
+ }));
194
+ }
195
+ else {
196
+ return new Message(INVOKE_ENTRY_MESSAGE_TYPE, new CallEntryMessage({
197
+ serviceName: serviceName,
198
+ handlerName: handlerName,
199
+ parameter: Buffer.from(parameter),
200
+ key,
201
+ }));
202
+ }
203
+ }
204
+ export function backgroundInvokeMessage(serviceName, handlerName, parameter, invokeTime, key) {
205
+ return invokeTime
206
+ ? new Message(BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, new OneWayCallEntryMessage({
207
+ serviceName: serviceName,
208
+ handlerName: handlerName,
209
+ parameter: Buffer.from(parameter),
210
+ invokeTime: protoInt64.parse(invokeTime),
211
+ key,
212
+ }))
213
+ : new Message(BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE, new OneWayCallEntryMessage({
214
+ serviceName: serviceName,
215
+ handlerName: handlerName,
216
+ parameter: Buffer.from(parameter),
217
+ }));
218
+ }
219
+ export function sideEffectMessage(value, failure, name) {
220
+ if (value !== undefined) {
221
+ return new Message(SIDE_EFFECT_ENTRY_MESSAGE_TYPE, new RunEntryMessage({
222
+ name,
223
+ result: { case: "value", value: Buffer.from(JSON.stringify(value)) },
224
+ }), false, true);
225
+ }
226
+ else if (failure !== undefined) {
227
+ return new Message(SIDE_EFFECT_ENTRY_MESSAGE_TYPE, new RunEntryMessage({
228
+ name,
229
+ result: { case: "failure", value: failure },
230
+ }), false, true);
231
+ }
232
+ else {
233
+ return new Message(SIDE_EFFECT_ENTRY_MESSAGE_TYPE, new RunEntryMessage({ name }), false, true);
234
+ }
235
+ }
236
+ export function awakeableMessage(payload, failure) {
237
+ if (payload) {
238
+ return new Message(AWAKEABLE_ENTRY_MESSAGE_TYPE, new AwakeableEntryMessage({
239
+ result: { case: "value", value: Buffer.from(JSON.stringify(payload)) },
240
+ }));
241
+ }
242
+ else if (failure) {
243
+ return new Message(AWAKEABLE_ENTRY_MESSAGE_TYPE, new AwakeableEntryMessage({
244
+ result: { case: "failure", value: failure },
245
+ }));
246
+ }
247
+ else {
248
+ return new Message(AWAKEABLE_ENTRY_MESSAGE_TYPE, new AwakeableEntryMessage());
249
+ }
250
+ }
251
+ export function resolveAwakeableMessage(id, payload) {
252
+ return new Message(COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, new CompleteAwakeableEntryMessage({
253
+ id: id,
254
+ result: { case: "value", value: Buffer.from(JSON.stringify(payload)) },
255
+ }));
256
+ }
257
+ export function rejectAwakeableMessage(id, reason) {
258
+ return new Message(COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, new CompleteAwakeableEntryMessage({
259
+ id: id,
260
+ result: {
261
+ case: "failure",
262
+ value: { code: UNKNOWN_ERROR_CODE, message: reason },
263
+ },
264
+ }));
265
+ }
266
+ export function suspensionMessage(entryIndices) {
267
+ return new Message(SUSPENSION_MESSAGE_TYPE, new SuspensionMessage({
268
+ entryIndexes: entryIndices,
269
+ }));
270
+ }
271
+ export function combinatorEntryMessage(combinatorId, journalEntriesOrder) {
272
+ return new Message(COMBINATOR_ENTRY_MESSAGE, new CombinatorEntryMessage({
273
+ combinatorId,
274
+ journalEntriesOrder,
275
+ }), undefined, true);
276
+ }
277
+ export function failure(msg, code = INTERNAL_ERROR_CODE) {
278
+ return new Failure({ code: code, message: msg });
279
+ }
280
+ export function greetRequest(myName) {
281
+ const str = JSON.stringify({ name: myName });
282
+ return Buffer.from(str);
283
+ }
284
+ export function greetResponse(myGreeting) {
285
+ const str = JSON.stringify({ greeting: myGreeting });
286
+ return Buffer.from(str);
287
+ }
288
+ export function errorMessage(failure, ctx) {
289
+ return new Message(ERROR_MESSAGE_TYPE, new ErrorMessage({
290
+ message: failure.message,
291
+ code: failure.code,
292
+ relatedEntryIndex: ctx?.relatedEntryIndex,
293
+ relatedEntryType: ctx?.relatedEntryType
294
+ ? Number(ctx.relatedEntryType)
295
+ : undefined,
296
+ relatedEntryName: ctx?.relatedEntryName,
297
+ }));
298
+ }
299
+ export function checkError(outputMsg, errorMessage, code = INTERNAL_ERROR_CODE) {
300
+ expect(outputMsg.messageType).toEqual(ERROR_MESSAGE_TYPE);
301
+ expect(outputMsg.message.code).toStrictEqual(code);
302
+ expect(outputMsg.message.message).toContain(errorMessage);
303
+ }
304
+ export function checkJournalMismatchError(outputMsg) {
305
+ checkError(outputMsg, "Journal mismatch: Replayed journal entries did not correspond to the user code. The user code has to be deterministic!", RestateErrorCodes.JOURNAL_MISMATCH);
306
+ }
307
+ export function checkTerminalError(outputMsg, errorMessage) {
308
+ expect(outputMsg.messageType).toEqual(OUTPUT_ENTRY_MESSAGE_TYPE);
309
+ const res = outputMsg.message.result;
310
+ expect(res.case === "failure" && res.value.message).toContain(errorMessage);
311
+ }
312
+ export function getAwakeableId(entryIndex) {
313
+ const encodedEntryIndex = Buffer.alloc(4 /* Size of u32 */);
314
+ encodedEntryIndex.writeUInt32BE(entryIndex);
315
+ return (AWAKEABLE_IDENTIFIER_PREFIX +
316
+ Buffer.concat([
317
+ Buffer.from("f311f1fdcb9863f0018bd3400ecd7d69b547204e776218b2", "hex"),
318
+ encodedEntryIndex,
319
+ ]).toString("base64url"));
320
+ }
321
+ export function keyVal(key, value) {
322
+ return [Buffer.from(key), Buffer.from(JSON.stringify(value))];
323
+ }
324
+ export const END_MESSAGE = new Message(END_MESSAGE_TYPE, new EndMessage());
325
+ export const CLEAR_ALL_STATE_ENTRY_MESSAGE = new Message(CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE, new ClearAllStateEntryMessage());
326
+ //# sourceMappingURL=protoutils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protoutils.js","sourceRoot":"","sources":["../../../test/protoutils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,4BAA4B,EAC5B,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,oCAAoC,EACpC,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,qCAAqC,EACrC,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,yBAAyB,EACzB,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,OAAO,EACP,eAAe,EACf,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,MAAM,UAAU,YAAY,CAAC,EAC3B,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,GAAG,MACiB,EAAE;IACtB,OAAO,IAAI,OAAO,CAChB,kBAAkB,EAClB,IAAI,YAAY,CAAC;QACf,EAAE,EAAE,MAAM,CAAC,IAAI,CACb,kDAAkD,EAClD,KAAK,CACN;QACD,OAAO,EAAE,mCAAmC;QAC5C,YAAY,EAAE,YAAY,EAAE,4FAA4F;QACxH,QAAQ,EAAE,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,YAAY,EAAE,YAAY,KAAK,KAAK;QACpC,GAAG,EAAE,GAAG,IAAI,MAAM;KACnB,CAAC,EACF,SAAS,EACT,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAmB;IAChD,OAAO,CACL,OAAO,CAAC,GAAG,CACT,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAClE,IAAI,EAAE,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAChB,wBAAwB,EACxB,IAAI,iBAAiB,CAAC;YACpB,KAAK;SACN,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,OAAiB;IACjE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAChB,yBAAyB,EACzB,IAAI,kBAAkB,CAAC;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACrD,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,OAAO,CAChB,yBAAyB,EACzB,IAAI,kBAAkB,CAAC;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,yBAAyB,EACzB,IAAI,kBAAkB,CAAC;YACrB,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,IAAI,OAAO,CAAC;oBACjB,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,2CAA2C;iBACrD,CAAC;aACH;SACF,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,KAAS,EACT,KAAe,EACf,OAAiB;IAEjB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,oBAAoB,CAAC;YACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,EAAE;SAC9C,CAAC,EACF,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,oBAAoB,CAAC;YACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;SACpE,CAAC,EACF,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,oBAAoB,CAAC;YACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C,CAAC,EACF,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,oBAAoB,CAAC;YACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACtB,CAAC,EACF,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAW;IACxD,OAAO,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAChB,iCAAiC,EACjC,IAAI,wBAAwB,CAAC,EAAE,CAAC,EAChC,KAAK,CACN,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,iCAAiC,EACjC,IAAI,wBAAwB,CAAC;YAC3B,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;aAClD;SACF,CAAC,EACF,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAW,EAAE,KAAQ;IACtD,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,oBAAoB,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACzC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,IAAI,OAAO,CAChB,8BAA8B,EAC9B,IAAI,sBAAsB,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;KACtB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,KAAa,EACb,OAAiB;IAEjB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAChB,wBAAwB,EACxB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,OAAO,CAChB,wBAAwB,EACxB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,wBAAwB,EACxB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;SACzC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAa;AACb,uDAAuD;AACvD,KAAW,EACX,KAAe,EACf,OAAiB;IAEjB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAChB,uBAAuB,EACvB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,KAAK;YACjB,iEAAiE;YACjE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACrD,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,OAAO,CAChB,uBAAuB,EACvB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,EAAE;SAC9C,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,OAAO,CAChB,uBAAuB,EACvB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,uBAAuB,EACvB,IAAI,iBAAiB,CAAC;YACpB,UAAU,EAAE,KAAK;SAClB,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,IAAI,OAAO,CAChB,uBAAuB,EACvB,IAAI,iBAAiB,CAAC;QACpB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,EAAE;KAC9C,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,OAAO,CAChB,sBAAsB,EACtB,IAAI,eAAe,CAAC;QAClB,UAAU,EAAE,KAAK;KAClB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,WAAmB,EACnB,WAAmB,EACnB,SAAqB,EACrB,KAAkB,EAClB,OAAiB,EACjB,GAAY;IAEZ,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,IAAI,OAAO,CAChB,yBAAyB,EACzB,IAAI,gBAAgB,CAAC;YACnB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YACvC,GAAG;SACJ,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,OAAO,CAChB,yBAAyB,EACzB,IAAI,gBAAgB,CAAC;YACnB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;YAC3C,GAAG;SACJ,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,yBAAyB,EACzB,IAAI,gBAAgB,CAAC;YACnB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,GAAG;SACJ,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,WAAmB,EACnB,SAAqB,EACrB,UAAmB,EACnB,GAAY;IAEZ,OAAO,UAAU;QACf,CAAC,CAAC,IAAI,OAAO,CACT,oCAAoC,EACpC,IAAI,sBAAsB,CAAC;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YACxC,GAAG;SACJ,CAAC,CACH;QACH,CAAC,CAAC,IAAI,OAAO,CACT,oCAAoC,EACpC,IAAI,sBAAsB,CAAC;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SAClC,CAAC,CACH,CAAC;AACR,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAS,EACT,OAAiB,EACjB,IAAa;IAEb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,OAAO,CAChB,8BAA8B,EAC9B,IAAI,eAAe,CAAC;YAClB,IAAI;YACJ,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;SACrE,CAAC,EACF,KAAK,EACL,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,IAAI,OAAO,CAChB,8BAA8B,EAC9B,IAAI,eAAe,CAAC;YAClB,IAAI;YACJ,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C,CAAC,EACF,KAAK,EACL,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,8BAA8B,EAC9B,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,EAC7B,KAAK,EACL,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,OAAW,EAAE,OAAiB;IAChE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,qBAAqB,CAAC;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE;SACvE,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,qBAAqB,CAAC;YACxB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,OAAO,CAChB,4BAA4B,EAC5B,IAAI,qBAAqB,EAAE,CAC5B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAI,EAAU,EAAE,OAAU;IAC/D,OAAO,IAAI,OAAO,CAChB,qCAAqC,EACrC,IAAI,6BAA6B,CAAC;QAChC,EAAE,EAAE,EAAE;QACN,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE;KACvE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAU,EAAE,MAAc;IAC/D,OAAO,IAAI,OAAO,CAChB,qCAAqC,EACrC,IAAI,6BAA6B,CAAC;QAChC,EAAE,EAAE,EAAE;QACN,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE;SACrD;KACF,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAAsB;IACtD,OAAO,IAAI,OAAO,CAChB,uBAAuB,EACvB,IAAI,iBAAiB,CAAC;QACpB,YAAY,EAAE,YAAY;KAC3B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,YAAoB,EACpB,mBAA6B;IAE7B,OAAO,IAAI,OAAO,CAChB,wBAAwB,EACxB,IAAI,sBAAsB,CAAC;QACzB,YAAY;QACZ,mBAAmB;KACpB,CAAC,EACF,SAAS,EACT,IAAI,CACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,OAAe,mBAAmB;IAElC,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,GAAyB;IAEzB,OAAO,IAAI,OAAO,CAChB,kBAAkB,EAClB,IAAI,YAAY,CAAC;QACf,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,iBAAiB,EAAE,GAAG,EAAE,iBAAiB;QACzC,gBAAgB,EAAE,GAAG,EAAE,gBAAgB;YACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC9B,CAAC,CAAC,SAAS;QACb,gBAAgB,EAAE,GAAG,EAAE,gBAAgB;KACxC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,SAAkB,EAClB,YAAoB,EACpB,OAAe,mBAAmB;IAElC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1D,MAAM,CAAE,SAAS,CAAC,OAAwB,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAE,SAAS,CAAC,OAAwB,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,SAAkB;IAC1D,UAAU,CACR,SAAS,EACT,wHAAwH,EACxH,iBAAiB,CAAC,gBAAgB,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAkB,EAAE,YAAoB;IACzE,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAI,SAAS,CAAC,OAA8B,CAAC,MAAM,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC5D,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAE5C,OAAO,CACL,2BAA2B;QAC3B,MAAM,CAAC,MAAM,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,KAAK,CAAC;YACtE,iBAAiB;SAClB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,KAAU;IAC5C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,OAAO,CACtD,kCAAkC,EAClC,IAAI,yBAAyB,EAAE,CAChC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=service_bind.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service_bind.test.d.ts","sourceRoot":"","sources":["../../../test/service_bind.test.ts"],"names":[],"mappings":""}