@workflow/core 5.0.0-beta.5 → 5.0.0-beta.50

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 (310) hide show
  1. package/dist/attribute-changes.d.ts +5 -0
  2. package/dist/attribute-changes.d.ts.map +1 -0
  3. package/dist/attribute-changes.js +25 -0
  4. package/dist/capabilities.d.ts +35 -2
  5. package/dist/capabilities.d.ts.map +1 -1
  6. package/dist/capabilities.js +74 -5
  7. package/dist/capture-stack.d.ts +1 -1
  8. package/dist/capture-stack.js +2 -2
  9. package/dist/class-serialization.d.ts +32 -0
  10. package/dist/class-serialization.d.ts.map +1 -1
  11. package/dist/class-serialization.js +37 -1
  12. package/dist/classify-error.d.ts +19 -3
  13. package/dist/classify-error.d.ts.map +1 -1
  14. package/dist/classify-error.js +98 -6
  15. package/dist/context-violation-error.d.ts +5 -5
  16. package/dist/context-violation-error.d.ts.map +1 -1
  17. package/dist/context-violation-error.js +8 -6
  18. package/dist/create-hook.d.ts +72 -7
  19. package/dist/create-hook.d.ts.map +1 -1
  20. package/dist/create-hook.js +1 -1
  21. package/dist/define-hook.js +2 -2
  22. package/dist/describe-error.d.ts +7 -7
  23. package/dist/describe-error.d.ts.map +1 -1
  24. package/dist/describe-error.js +97 -12
  25. package/dist/encryption.d.ts +38 -4
  26. package/dist/encryption.d.ts.map +1 -1
  27. package/dist/encryption.js +96 -14
  28. package/dist/events-consumer.d.ts +271 -0
  29. package/dist/events-consumer.d.ts.map +1 -1
  30. package/dist/events-consumer.js +646 -42
  31. package/dist/flushable-stream.d.ts +56 -1
  32. package/dist/flushable-stream.d.ts.map +1 -1
  33. package/dist/flushable-stream.js +123 -11
  34. package/dist/global.d.ts +36 -2
  35. package/dist/global.d.ts.map +1 -1
  36. package/dist/global.js +21 -6
  37. package/dist/index.d.ts +2 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +3 -2
  40. package/dist/log-format.d.ts +2 -2
  41. package/dist/log-format.js +7 -7
  42. package/dist/logger.d.ts +1 -0
  43. package/dist/logger.d.ts.map +1 -1
  44. package/dist/logger.js +10 -6
  45. package/dist/private.d.ts +226 -9
  46. package/dist/private.d.ts.map +1 -1
  47. package/dist/private.js +626 -7
  48. package/dist/replay-payload-cache.d.ts +64 -0
  49. package/dist/replay-payload-cache.d.ts.map +1 -0
  50. package/dist/replay-payload-cache.js +158 -0
  51. package/dist/runtime/compute-instance.d.ts +13 -0
  52. package/dist/runtime/compute-instance.d.ts.map +1 -0
  53. package/dist/runtime/compute-instance.js +14 -0
  54. package/dist/runtime/constants.d.ts +315 -0
  55. package/dist/runtime/constants.d.ts.map +1 -1
  56. package/dist/runtime/constants.js +502 -16
  57. package/dist/runtime/count-step-started-events.d.ts +52 -0
  58. package/dist/runtime/count-step-started-events.d.ts.map +1 -0
  59. package/dist/runtime/count-step-started-events.js +72 -0
  60. package/dist/runtime/deployment-guard.d.ts +99 -0
  61. package/dist/runtime/deployment-guard.d.ts.map +1 -0
  62. package/dist/runtime/deployment-guard.js +154 -0
  63. package/dist/runtime/get-port-lazy.d.ts +15 -0
  64. package/dist/runtime/get-port-lazy.d.ts.map +1 -1
  65. package/dist/runtime/get-port-lazy.js +75 -6
  66. package/dist/runtime/get-world-lazy.d.ts +5 -14
  67. package/dist/runtime/get-world-lazy.d.ts.map +1 -1
  68. package/dist/runtime/get-world-lazy.js +19 -29
  69. package/dist/runtime/helpers.d.ts +341 -29
  70. package/dist/runtime/helpers.d.ts.map +1 -1
  71. package/dist/runtime/helpers.js +559 -57
  72. package/dist/runtime/quickjs-assets.generated.d.ts +14 -0
  73. package/dist/runtime/quickjs-assets.generated.d.ts.map +1 -0
  74. package/dist/runtime/quickjs-assets.generated.js +30 -0
  75. package/dist/runtime/quickjs-entrypoint.d.ts +136 -0
  76. package/dist/runtime/quickjs-entrypoint.d.ts.map +1 -0
  77. package/dist/runtime/quickjs-entrypoint.js +1686 -0
  78. package/dist/runtime/quickjs-runtime.d.ts +244 -0
  79. package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
  80. package/dist/runtime/quickjs-runtime.js +2427 -0
  81. package/dist/runtime/quickjs-serde.d.ts +107 -0
  82. package/dist/runtime/quickjs-serde.d.ts.map +1 -0
  83. package/dist/runtime/quickjs-serde.js +2159 -0
  84. package/dist/runtime/replay-budget.d.ts +97 -0
  85. package/dist/runtime/replay-budget.d.ts.map +1 -0
  86. package/dist/runtime/replay-budget.js +139 -0
  87. package/dist/runtime/replay-recovery-reporter.d.ts +36 -0
  88. package/dist/runtime/replay-recovery-reporter.d.ts.map +1 -0
  89. package/dist/runtime/replay-recovery-reporter.js +64 -0
  90. package/dist/runtime/resume-hook.d.ts +91 -8
  91. package/dist/runtime/resume-hook.d.ts.map +1 -1
  92. package/dist/runtime/resume-hook.js +512 -89
  93. package/dist/runtime/resume-latency.d.ts +150 -0
  94. package/dist/runtime/resume-latency.d.ts.map +1 -0
  95. package/dist/runtime/resume-latency.js +155 -0
  96. package/dist/runtime/run-id-time.d.ts +19 -0
  97. package/dist/runtime/run-id-time.d.ts.map +1 -0
  98. package/dist/runtime/run-id-time.js +42 -0
  99. package/dist/runtime/run.d.ts +72 -7
  100. package/dist/runtime/run.d.ts.map +1 -1
  101. package/dist/runtime/run.js +280 -53
  102. package/dist/runtime/runs.d.ts +54 -3
  103. package/dist/runtime/runs.d.ts.map +1 -1
  104. package/dist/runtime/runs.js +126 -16
  105. package/dist/runtime/start.d.ts +101 -2
  106. package/dist/runtime/start.d.ts.map +1 -1
  107. package/dist/runtime/start.js +352 -61
  108. package/dist/runtime/step-executor.d.ts +205 -5
  109. package/dist/runtime/step-executor.d.ts.map +1 -1
  110. package/dist/runtime/step-executor.js +760 -127
  111. package/dist/runtime/step-latency.d.ts +220 -0
  112. package/dist/runtime/step-latency.d.ts.map +1 -0
  113. package/dist/runtime/step-latency.js +215 -0
  114. package/dist/runtime/step-ownership.d.ts +72 -0
  115. package/dist/runtime/step-ownership.d.ts.map +1 -0
  116. package/dist/runtime/step-ownership.js +114 -0
  117. package/dist/runtime/step-single-flight.d.ts +12 -0
  118. package/dist/runtime/step-single-flight.d.ts.map +1 -0
  119. package/dist/runtime/step-single-flight.js +75 -0
  120. package/dist/runtime/suspension-handler.d.ts +269 -7
  121. package/dist/runtime/suspension-handler.d.ts.map +1 -1
  122. package/dist/runtime/suspension-handler.js +1253 -125
  123. package/dist/runtime/unserializable-step.d.ts +34 -0
  124. package/dist/runtime/unserializable-step.d.ts.map +1 -0
  125. package/dist/runtime/unserializable-step.js +52 -0
  126. package/dist/runtime/vm-mode.d.ts +44 -0
  127. package/dist/runtime/vm-mode.d.ts.map +1 -0
  128. package/dist/runtime/vm-mode.js +62 -0
  129. package/dist/runtime/vm-serde-bundle.generated.d.ts +14 -0
  130. package/dist/runtime/vm-serde-bundle.generated.d.ts.map +1 -0
  131. package/dist/runtime/vm-serde-bundle.generated.js +16 -0
  132. package/dist/runtime/wait-continuation.d.ts +106 -0
  133. package/dist/runtime/wait-continuation.d.ts.map +1 -0
  134. package/dist/runtime/wait-continuation.js +136 -0
  135. package/dist/runtime/wait-until.d.ts +18 -0
  136. package/dist/runtime/wait-until.d.ts.map +1 -0
  137. package/dist/runtime/wait-until.js +42 -0
  138. package/dist/runtime/world-compatibility.d.ts +32 -0
  139. package/dist/runtime/world-compatibility.d.ts.map +1 -0
  140. package/dist/runtime/world-compatibility.js +44 -0
  141. package/dist/runtime/world-init.d.ts +17 -42
  142. package/dist/runtime/world-init.d.ts.map +1 -1
  143. package/dist/runtime/world-init.js +18 -43
  144. package/dist/runtime/world.d.ts +14 -2
  145. package/dist/runtime/world.d.ts.map +1 -1
  146. package/dist/runtime/world.js +75 -19
  147. package/dist/runtime.d.ts +10 -6
  148. package/dist/runtime.d.ts.map +1 -1
  149. package/dist/runtime.js +3741 -490
  150. package/dist/sealed-box.d.ts +167 -0
  151. package/dist/sealed-box.d.ts.map +1 -0
  152. package/dist/sealed-box.js +571 -0
  153. package/dist/serialization/client.d.ts +3 -3
  154. package/dist/serialization/client.d.ts.map +1 -1
  155. package/dist/serialization/client.js +8 -4
  156. package/dist/serialization/codec-devalue-vm.d.ts +16 -0
  157. package/dist/serialization/codec-devalue-vm.d.ts.map +1 -0
  158. package/dist/serialization/codec-devalue-vm.js +148 -0
  159. package/dist/serialization/codec-devalue.d.ts +1 -1
  160. package/dist/serialization/codec-devalue.d.ts.map +1 -1
  161. package/dist/serialization/codec-devalue.js +24 -6
  162. package/dist/serialization/codec.d.ts +37 -2
  163. package/dist/serialization/codec.d.ts.map +1 -1
  164. package/dist/serialization/codec.js +2 -2
  165. package/dist/serialization/compression.d.ts +105 -0
  166. package/dist/serialization/compression.d.ts.map +1 -0
  167. package/dist/serialization/compression.js +261 -0
  168. package/dist/serialization/encryption.d.ts +119 -17
  169. package/dist/serialization/encryption.d.ts.map +1 -1
  170. package/dist/serialization/encryption.js +152 -17
  171. package/dist/serialization/errors.d.ts +13 -0
  172. package/dist/serialization/errors.d.ts.map +1 -1
  173. package/dist/serialization/errors.js +20 -2
  174. package/dist/serialization/format.d.ts +6 -6
  175. package/dist/serialization/format.js +7 -7
  176. package/dist/serialization/hardened.d.ts +156 -0
  177. package/dist/serialization/hardened.d.ts.map +1 -0
  178. package/dist/serialization/hardened.js +538 -0
  179. package/dist/serialization/index.d.ts +10 -8
  180. package/dist/serialization/index.d.ts.map +1 -1
  181. package/dist/serialization/index.js +10 -8
  182. package/dist/serialization/reducers/class-vm.d.ts +20 -0
  183. package/dist/serialization/reducers/class-vm.d.ts.map +1 -0
  184. package/dist/serialization/reducers/class-vm.js +77 -0
  185. package/dist/serialization/reducers/class.d.ts.map +1 -1
  186. package/dist/serialization/reducers/class.js +11 -6
  187. package/dist/serialization/reducers/common-vm.d.ts +15 -0
  188. package/dist/serialization/reducers/common-vm.d.ts.map +1 -0
  189. package/dist/serialization/reducers/common-vm.js +616 -0
  190. package/dist/serialization/reducers/common.d.ts +1 -1
  191. package/dist/serialization/reducers/common.d.ts.map +1 -1
  192. package/dist/serialization/reducers/common.js +202 -62
  193. package/dist/serialization/reducers/step-function-vm.d.ts +44 -0
  194. package/dist/serialization/reducers/step-function-vm.d.ts.map +1 -0
  195. package/dist/serialization/reducers/step-function-vm.js +97 -0
  196. package/dist/serialization/reducers/step-function.d.ts.map +1 -1
  197. package/dist/serialization/reducers/step-function.js +25 -9
  198. package/dist/serialization/step.d.ts +4 -4
  199. package/dist/serialization/step.d.ts.map +1 -1
  200. package/dist/serialization/step.js +9 -5
  201. package/dist/serialization/types.d.ts +80 -1
  202. package/dist/serialization/types.d.ts.map +1 -1
  203. package/dist/serialization/types.js +15 -1
  204. package/dist/serialization/workflow-vm.d.ts +29 -0
  205. package/dist/serialization/workflow-vm.d.ts.map +1 -0
  206. package/dist/serialization/workflow-vm.js +74 -0
  207. package/dist/serialization-format.d.ts +64 -8
  208. package/dist/serialization-format.d.ts.map +1 -1
  209. package/dist/serialization-format.js +225 -73
  210. package/dist/serialization.d.ts +262 -34
  211. package/dist/serialization.d.ts.map +1 -1
  212. package/dist/serialization.js +1879 -274
  213. package/dist/set-attributes.d.ts +13 -0
  214. package/dist/set-attributes.d.ts.map +1 -0
  215. package/dist/set-attributes.js +60 -0
  216. package/dist/source-map.d.ts +25 -0
  217. package/dist/source-map.d.ts.map +1 -1
  218. package/dist/source-map.js +154 -10
  219. package/dist/step/context-storage.d.ts +61 -2
  220. package/dist/step/context-storage.d.ts.map +1 -1
  221. package/dist/step/context-storage.js +7 -5
  222. package/dist/step/writable-stream.d.ts +3 -3
  223. package/dist/step/writable-stream.d.ts.map +1 -1
  224. package/dist/step/writable-stream.js +72 -9
  225. package/dist/step.d.ts.map +1 -1
  226. package/dist/step.js +148 -27
  227. package/dist/symbols.d.ts +50 -0
  228. package/dist/symbols.d.ts.map +1 -1
  229. package/dist/symbols.js +51 -1
  230. package/dist/telemetry/semantic-conventions.d.ts +397 -2
  231. package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
  232. package/dist/telemetry/semantic-conventions.js +297 -3
  233. package/dist/telemetry.d.ts +91 -0
  234. package/dist/telemetry.d.ts.map +1 -1
  235. package/dist/telemetry.js +244 -17
  236. package/dist/test-support/orchestrator-context.d.ts +25 -0
  237. package/dist/test-support/orchestrator-context.d.ts.map +1 -0
  238. package/dist/test-support/orchestrator-context.js +101 -0
  239. package/dist/types.d.ts +6 -0
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/types.js +23 -1
  242. package/dist/util.d.ts +0 -5
  243. package/dist/util.d.ts.map +1 -1
  244. package/dist/util.js +1 -15
  245. package/dist/version.d.ts +1 -1
  246. package/dist/version.d.ts.map +1 -1
  247. package/dist/version.js +2 -2
  248. package/dist/vm/index.d.ts.map +1 -1
  249. package/dist/vm/index.js +84 -14
  250. package/dist/vm/script-cache.d.ts +26 -0
  251. package/dist/vm/script-cache.d.ts.map +1 -0
  252. package/dist/vm/script-cache.js +131 -0
  253. package/dist/vm/uint8array-base64.js +1 -1
  254. package/dist/workflow/abort-controller.d.ts +2 -2
  255. package/dist/workflow/abort-controller.d.ts.map +1 -1
  256. package/dist/workflow/abort-controller.js +88 -21
  257. package/dist/workflow/attribute-dispatcher.d.ts +6 -0
  258. package/dist/workflow/attribute-dispatcher.d.ts.map +1 -0
  259. package/dist/workflow/attribute-dispatcher.js +45 -0
  260. package/dist/workflow/create-hook.d.ts.map +1 -1
  261. package/dist/workflow/create-hook.js +24 -3
  262. package/dist/workflow/get-workflow-metadata.js +2 -2
  263. package/dist/workflow/hook.d.ts.map +1 -1
  264. package/dist/workflow/hook.js +304 -47
  265. package/dist/workflow/index.d.ts +1 -0
  266. package/dist/workflow/index.d.ts.map +1 -1
  267. package/dist/workflow/index.js +2 -1
  268. package/dist/workflow/set-attributes.d.ts +68 -0
  269. package/dist/workflow/set-attributes.d.ts.map +1 -0
  270. package/dist/workflow/set-attributes.js +60 -0
  271. package/dist/workflow/sleep.d.ts.map +1 -1
  272. package/dist/workflow/sleep.js +58 -12
  273. package/dist/workflow/world-init-stub.d.ts +3 -3
  274. package/dist/workflow/world-init-stub.js +4 -4
  275. package/dist/workflow.d.ts +95 -3
  276. package/dist/workflow.d.ts.map +1 -1
  277. package/dist/workflow.js +895 -561
  278. package/docs/api-reference/create-hook.mdx +89 -10
  279. package/docs/api-reference/create-webhook.mdx +16 -15
  280. package/docs/api-reference/define-hook.mdx +35 -33
  281. package/docs/api-reference/fatal-error.mdx +30 -8
  282. package/docs/api-reference/fetch.mdx +14 -10
  283. package/docs/api-reference/get-step-metadata.mdx +2 -2
  284. package/docs/api-reference/get-workflow-metadata.mdx +3 -3
  285. package/docs/api-reference/get-writable.mdx +7 -7
  286. package/docs/api-reference/index.mdx +4 -1
  287. package/docs/api-reference/retryable-error.mdx +1 -1
  288. package/docs/api-reference/set-attributes.mdx +61 -0
  289. package/docs/api-reference/sleep.mdx +4 -4
  290. package/docs/foundations/cancellation.mdx +31 -32
  291. package/docs/foundations/errors-and-retries.mdx +42 -11
  292. package/docs/foundations/hooks.mdx +64 -35
  293. package/docs/foundations/idempotency.mdx +244 -12
  294. package/docs/foundations/index.mdx +1 -23
  295. package/docs/foundations/meta.json +2 -1
  296. package/docs/foundations/serialization.mdx +21 -22
  297. package/docs/foundations/starting-workflows.mdx +106 -30
  298. package/docs/foundations/streaming.mdx +107 -59
  299. package/docs/foundations/versioning.mdx +263 -0
  300. package/docs/foundations/workflows-and-steps.mdx +9 -9
  301. package/docs/how-it-works/cancellation.mdx +63 -63
  302. package/docs/how-it-works/code-transform.mdx +83 -67
  303. package/docs/how-it-works/encryption.mdx +30 -26
  304. package/docs/how-it-works/event-sourcing.mdx +98 -34
  305. package/docs/how-it-works/framework-integrations.mdx +96 -337
  306. package/docs/how-it-works/understanding-directives.mdx +22 -22
  307. package/package.json +24 -15
  308. package/dist/runtime/step-handler.d.ts +0 -2
  309. package/dist/runtime/step-handler.d.ts.map +0 -1
  310. package/dist/runtime/step-handler.js +0 -776
@@ -0,0 +1,44 @@
1
+ /**
2
+ * VM-compatible copy: identical semantics to step-function.ts before the host-side
3
+ * hardening (#3257) made that module depend on `serialization/hardened.ts`
4
+ * (which imports `node:util` and captures host intrinsics, meaningless
5
+ * and unbundleable inside the QuickJS VM, where the codec already runs in
6
+ * the guest realm). The host/guest boundary hardening for the QuickJS
7
+ * engine lands with the host-side serde (#3263), which retires this
8
+ * bundle entirely. Wire format is identical to the hardened host version.
9
+ */
10
+ /**
11
+ * Reducer and reviver for step function references.
12
+ *
13
+ * In workflow mode, step functions are replaced by the SWC plugin with
14
+ * proxies created by `globalThis[Symbol.for("WORKFLOW_USE_STEP")]("stepId")`.
15
+ * These proxies have a `.stepId` property and optionally a `.__closureVarsFn`
16
+ * for captured closure variables. They may additionally have `.__boundThis`
17
+ * (and rarely `.__boundArgs`) when the SWC plugin emitted
18
+ * `useStep(...).bind(this)` for a nested arrow step that lexically
19
+ * captured `this` (see `packages/swc-plugin-workflow/spec.md` → "Lexical
20
+ * `this` Capture in Nested Arrow Steps").
21
+ *
22
+ * The reducer serializes them as
23
+ * `{ stepId, closureVars?, boundThis?, boundArgs? }`.
24
+ * The reviver reconstructs them by calling WORKFLOW_USE_STEP and, when
25
+ * `boundThis` (or `boundArgs`) is present, re-binding the resulting
26
+ * proxy so the caller's captured `this` (and prefilled args) survive the
27
+ * round trip.
28
+ */
29
+ import type { Reducers, Revivers } from '../types.js';
30
+ export declare function getStepFunctionReducer(): Partial<Reducers>;
31
+ /**
32
+ * Create the StepFunction reviver for workflow context.
33
+ *
34
+ * The reviver calls WORKFLOW_USE_STEP to create the step proxy,
35
+ * restoring the ability to call the step from workflow code. If the
36
+ * serialized payload includes `boundThis` (and optionally `boundArgs`),
37
+ * the reviver also re-binds the freshly-created proxy so a step proxy
38
+ * that was constructed with `.bind(this, …)` in the workflow bundle
39
+ * continues to carry that receiver and any prefilled arguments after
40
+ * being deserialized in another bundle (e.g. when passed as a step
41
+ * argument).
42
+ */
43
+ export declare function getStepFunctionReviver(global?: Record<string, any>): Partial<Revivers>;
44
+ //# sourceMappingURL=step-function-vm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-function-vm.d.ts","sourceRoot":"","sources":["../../../src/serialization/reducers/step-function-vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAuC1D;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAc,GACvC,OAAO,CAAC,QAAQ,CAAC,CA8BnB"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * VM-compatible copy: identical semantics to step-function.ts before the host-side
3
+ * hardening (#3257) made that module depend on `serialization/hardened.ts`
4
+ * (which imports `node:util` and captures host intrinsics, meaningless
5
+ * and unbundleable inside the QuickJS VM, where the codec already runs in
6
+ * the guest realm). The host/guest boundary hardening for the QuickJS
7
+ * engine lands with the host-side serde (#3263), which retires this
8
+ * bundle entirely. Wire format is identical to the hardened host version.
9
+ */
10
+ /**
11
+ * Reducer and reviver for step function references.
12
+ *
13
+ * In workflow mode, step functions are replaced by the SWC plugin with
14
+ * proxies created by `globalThis[Symbol.for("WORKFLOW_USE_STEP")]("stepId")`.
15
+ * These proxies have a `.stepId` property and optionally a `.__closureVarsFn`
16
+ * for captured closure variables. They may additionally have `.__boundThis`
17
+ * (and rarely `.__boundArgs`) when the SWC plugin emitted
18
+ * `useStep(...).bind(this)` for a nested arrow step that lexically
19
+ * captured `this` (see `packages/swc-plugin-workflow/spec.md` → "Lexical
20
+ * `this` Capture in Nested Arrow Steps").
21
+ *
22
+ * The reducer serializes them as
23
+ * `{ stepId, closureVars?, boundThis?, boundArgs? }`.
24
+ * The reviver reconstructs them by calling WORKFLOW_USE_STEP and, when
25
+ * `boundThis` (or `boundArgs`) is present, re-binding the resulting
26
+ * proxy so the caller's captured `this` (and prefilled args) survive the
27
+ * round trip.
28
+ */
29
+ // ---- Reducer ----
30
+ export function getStepFunctionReducer() {
31
+ return {
32
+ StepFunction: (value) => {
33
+ if (typeof value !== 'function')
34
+ return false;
35
+ const stepId = value.stepId;
36
+ if (typeof stepId !== 'string')
37
+ return false;
38
+ const closureVarsFn = value.__closureVarsFn;
39
+ const closureVars = closureVarsFn && typeof closureVarsFn === 'function'
40
+ ? closureVarsFn()
41
+ : undefined;
42
+ // `__boundThis` / `__boundArgs` are marker properties added by the
43
+ // step proxy's overridden `.bind` (see step.ts) to record the
44
+ // bound receiver and any prefilled arguments. Use `in` for
45
+ // `__boundThis` so we round-trip even when the bound `this` is
46
+ // `undefined`/`null`. `__boundArgs` is only set when the user
47
+ // actually supplied prefilled args, so a missing property means
48
+ // "no prefilled args".
49
+ const hasBoundThis = '__boundThis' in value;
50
+ const boundThis = hasBoundThis ? value.__boundThis : undefined;
51
+ const boundArgs = value.__boundArgs;
52
+ const payload = { stepId };
53
+ if (closureVars !== undefined)
54
+ payload.closureVars = closureVars;
55
+ if (hasBoundThis)
56
+ payload.boundThis = boundThis;
57
+ if (Array.isArray(boundArgs) && boundArgs.length > 0) {
58
+ payload.boundArgs = boundArgs;
59
+ }
60
+ return payload;
61
+ },
62
+ };
63
+ }
64
+ // ---- Reviver ----
65
+ /**
66
+ * Create the StepFunction reviver for workflow context.
67
+ *
68
+ * The reviver calls WORKFLOW_USE_STEP to create the step proxy,
69
+ * restoring the ability to call the step from workflow code. If the
70
+ * serialized payload includes `boundThis` (and optionally `boundArgs`),
71
+ * the reviver also re-binds the freshly-created proxy so a step proxy
72
+ * that was constructed with `.bind(this, …)` in the workflow bundle
73
+ * continues to carry that receiver and any prefilled arguments after
74
+ * being deserialized in another bundle (e.g. when passed as a step
75
+ * argument).
76
+ */
77
+ export function getStepFunctionReviver(global = globalThis) {
78
+ const useStep = global[Symbol.for('WORKFLOW_USE_STEP')];
79
+ return {
80
+ StepFunction: (value) => {
81
+ const stepId = value.stepId;
82
+ const closureVars = value.closureVars;
83
+ if (!useStep) {
84
+ throw new Error('WORKFLOW_USE_STEP not found on global object. Step functions cannot be deserialized outside workflow context.');
85
+ }
86
+ const proxy = closureVars
87
+ ? useStep(stepId, () => closureVars)
88
+ : useStep(stepId);
89
+ if ('boundThis' in value) {
90
+ const boundArgs = Array.isArray(value.boundArgs) ? value.boundArgs : [];
91
+ return proxy.bind(value.boundThis, ...boundArgs);
92
+ }
93
+ return proxy;
94
+ },
95
+ };
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1mdW5jdGlvbi12bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJpYWxpemF0aW9uL3JlZHVjZXJzL3N0ZXAtZnVuY3Rpb24tdm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBSUgsb0JBQW9CO0FBRXBCLE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTztRQUNMLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RCLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBSSxLQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3JDLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUU3QyxNQUFNLGFBQWEsR0FBSSxLQUFhLENBQUMsZUFBZSxDQUFDO1lBQ3JELE1BQU0sV0FBVyxHQUNmLGFBQWEsSUFBSSxPQUFPLGFBQWEsS0FBSyxVQUFVO2dCQUNsRCxDQUFDLENBQUMsYUFBYSxFQUFFO2dCQUNqQixDQUFDLENBQUMsU0FBUyxDQUFDO1lBRWhCLG1FQUFtRTtZQUNuRSw4REFBOEQ7WUFDOUQsMkRBQTJEO1lBQzNELCtEQUErRDtZQUMvRCw4REFBOEQ7WUFDOUQsZ0VBQWdFO1lBQ2hFLHVCQUF1QjtZQUN2QixNQUFNLFlBQVksR0FBRyxhQUFhLElBQUssS0FBYSxDQUFDO1lBQ3JELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUUsS0FBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3hFLE1BQU0sU0FBUyxHQUFJLEtBQWEsQ0FBQyxXQUFvQyxDQUFDO1lBRXRFLE1BQU0sT0FBTyxHQUtULEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDZixJQUFJLFdBQVcsS0FBSyxTQUFTO2dCQUFFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2pFLElBQUksWUFBWTtnQkFBRSxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDaEMsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELG9CQUFvQjtBQUVwQjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsU0FBOEIsVUFBVTtJQUV4QyxNQUFNLE9BQU8sR0FBSSxNQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUtsRCxDQUFDO0lBRWQsT0FBTztRQUNMLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDNUIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUV0QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDYiwrR0FBK0csQ0FDaEgsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxXQUFXO2dCQUN2QixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFcEIsSUFBSSxXQUFXLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hFLE9BQVEsS0FBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWTS1jb21wYXRpYmxlIGNvcHk6IGlkZW50aWNhbCBzZW1hbnRpY3MgdG8gc3RlcC1mdW5jdGlvbi50cyBiZWZvcmUgdGhlIGhvc3Qtc2lkZVxuICogaGFyZGVuaW5nICgjMzI1NykgbWFkZSB0aGF0IG1vZHVsZSBkZXBlbmQgb24gYHNlcmlhbGl6YXRpb24vaGFyZGVuZWQudHNgXG4gKiAod2hpY2ggaW1wb3J0cyBgbm9kZTp1dGlsYCBhbmQgY2FwdHVyZXMgaG9zdCBpbnRyaW5zaWNzLCBtZWFuaW5nbGVzc1xuICogYW5kIHVuYnVuZGxlYWJsZSBpbnNpZGUgdGhlIFF1aWNrSlMgVk0sIHdoZXJlIHRoZSBjb2RlYyBhbHJlYWR5IHJ1bnMgaW5cbiAqIHRoZSBndWVzdCByZWFsbSkuIFRoZSBob3N0L2d1ZXN0IGJvdW5kYXJ5IGhhcmRlbmluZyBmb3IgdGhlIFF1aWNrSlNcbiAqIGVuZ2luZSBsYW5kcyB3aXRoIHRoZSBob3N0LXNpZGUgc2VyZGUgKCMzMjYzKSwgd2hpY2ggcmV0aXJlcyB0aGlzXG4gKiBidW5kbGUgZW50aXJlbHkuIFdpcmUgZm9ybWF0IGlzIGlkZW50aWNhbCB0byB0aGUgaGFyZGVuZWQgaG9zdCB2ZXJzaW9uLlxuICovXG4vKipcbiAqIFJlZHVjZXIgYW5kIHJldml2ZXIgZm9yIHN0ZXAgZnVuY3Rpb24gcmVmZXJlbmNlcy5cbiAqXG4gKiBJbiB3b3JrZmxvdyBtb2RlLCBzdGVwIGZ1bmN0aW9ucyBhcmUgcmVwbGFjZWQgYnkgdGhlIFNXQyBwbHVnaW4gd2l0aFxuICogcHJveGllcyBjcmVhdGVkIGJ5IGBnbG9iYWxUaGlzW1N5bWJvbC5mb3IoXCJXT1JLRkxPV19VU0VfU1RFUFwiKV0oXCJzdGVwSWRcIilgLlxuICogVGhlc2UgcHJveGllcyBoYXZlIGEgYC5zdGVwSWRgIHByb3BlcnR5IGFuZCBvcHRpb25hbGx5IGEgYC5fX2Nsb3N1cmVWYXJzRm5gXG4gKiBmb3IgY2FwdHVyZWQgY2xvc3VyZSB2YXJpYWJsZXMuIFRoZXkgbWF5IGFkZGl0aW9uYWxseSBoYXZlIGAuX19ib3VuZFRoaXNgXG4gKiAoYW5kIHJhcmVseSBgLl9fYm91bmRBcmdzYCkgd2hlbiB0aGUgU1dDIHBsdWdpbiBlbWl0dGVkXG4gKiBgdXNlU3RlcCguLi4pLmJpbmQodGhpcylgIGZvciBhIG5lc3RlZCBhcnJvdyBzdGVwIHRoYXQgbGV4aWNhbGx5XG4gKiBjYXB0dXJlZCBgdGhpc2AgKHNlZSBgcGFja2FnZXMvc3djLXBsdWdpbi13b3JrZmxvdy9zcGVjLm1kYCDihpIgXCJMZXhpY2FsXG4gKiBgdGhpc2AgQ2FwdHVyZSBpbiBOZXN0ZWQgQXJyb3cgU3RlcHNcIikuXG4gKlxuICogVGhlIHJlZHVjZXIgc2VyaWFsaXplcyB0aGVtIGFzXG4gKiAgIGB7IHN0ZXBJZCwgY2xvc3VyZVZhcnM/LCBib3VuZFRoaXM/LCBib3VuZEFyZ3M/IH1gLlxuICogVGhlIHJldml2ZXIgcmVjb25zdHJ1Y3RzIHRoZW0gYnkgY2FsbGluZyBXT1JLRkxPV19VU0VfU1RFUCBhbmQsIHdoZW5cbiAqIGBib3VuZFRoaXNgIChvciBgYm91bmRBcmdzYCkgaXMgcHJlc2VudCwgcmUtYmluZGluZyB0aGUgcmVzdWx0aW5nXG4gKiBwcm94eSBzbyB0aGUgY2FsbGVyJ3MgY2FwdHVyZWQgYHRoaXNgIChhbmQgcHJlZmlsbGVkIGFyZ3MpIHN1cnZpdmUgdGhlXG4gKiByb3VuZCB0cmlwLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUmVkdWNlcnMsIFJldml2ZXJzIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vLyAtLS0tIFJlZHVjZXIgLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RlcEZ1bmN0aW9uUmVkdWNlcigpOiBQYXJ0aWFsPFJlZHVjZXJzPiB7XG4gIHJldHVybiB7XG4gICAgU3RlcEZ1bmN0aW9uOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IHN0ZXBJZCA9ICh2YWx1ZSBhcyBhbnkpLnN0ZXBJZDtcbiAgICAgIGlmICh0eXBlb2Ygc3RlcElkICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgICBjb25zdCBjbG9zdXJlVmFyc0ZuID0gKHZhbHVlIGFzIGFueSkuX19jbG9zdXJlVmFyc0ZuO1xuICAgICAgY29uc3QgY2xvc3VyZVZhcnMgPVxuICAgICAgICBjbG9zdXJlVmFyc0ZuICYmIHR5cGVvZiBjbG9zdXJlVmFyc0ZuID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyBjbG9zdXJlVmFyc0ZuKClcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgLy8gYF9fYm91bmRUaGlzYCAvIGBfX2JvdW5kQXJnc2AgYXJlIG1hcmtlciBwcm9wZXJ0aWVzIGFkZGVkIGJ5IHRoZVxuICAgICAgLy8gc3RlcCBwcm94eSdzIG92ZXJyaWRkZW4gYC5iaW5kYCAoc2VlIHN0ZXAudHMpIHRvIHJlY29yZCB0aGVcbiAgICAgIC8vIGJvdW5kIHJlY2VpdmVyIGFuZCBhbnkgcHJlZmlsbGVkIGFyZ3VtZW50cy4gVXNlIGBpbmAgZm9yXG4gICAgICAvLyBgX19ib3VuZFRoaXNgIHNvIHdlIHJvdW5kLXRyaXAgZXZlbiB3aGVuIHRoZSBib3VuZCBgdGhpc2AgaXNcbiAgICAgIC8vIGB1bmRlZmluZWRgL2BudWxsYC4gYF9fYm91bmRBcmdzYCBpcyBvbmx5IHNldCB3aGVuIHRoZSB1c2VyXG4gICAgICAvLyBhY3R1YWxseSBzdXBwbGllZCBwcmVmaWxsZWQgYXJncywgc28gYSBtaXNzaW5nIHByb3BlcnR5IG1lYW5zXG4gICAgICAvLyBcIm5vIHByZWZpbGxlZCBhcmdzXCIuXG4gICAgICBjb25zdCBoYXNCb3VuZFRoaXMgPSAnX19ib3VuZFRoaXMnIGluICh2YWx1ZSBhcyBhbnkpO1xuICAgICAgY29uc3QgYm91bmRUaGlzID0gaGFzQm91bmRUaGlzID8gKHZhbHVlIGFzIGFueSkuX19ib3VuZFRoaXMgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBib3VuZEFyZ3MgPSAodmFsdWUgYXMgYW55KS5fX2JvdW5kQXJncyBhcyB1bmtub3duW10gfCB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IHBheWxvYWQ6IHtcbiAgICAgICAgc3RlcElkOiBzdHJpbmc7XG4gICAgICAgIGNsb3N1cmVWYXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgYm91bmRUaGlzPzogdW5rbm93bjtcbiAgICAgICAgYm91bmRBcmdzPzogdW5rbm93bltdO1xuICAgICAgfSA9IHsgc3RlcElkIH07XG4gICAgICBpZiAoY2xvc3VyZVZhcnMgIT09IHVuZGVmaW5lZCkgcGF5bG9hZC5jbG9zdXJlVmFycyA9IGNsb3N1cmVWYXJzO1xuICAgICAgaWYgKGhhc0JvdW5kVGhpcykgcGF5bG9hZC5ib3VuZFRoaXMgPSBib3VuZFRoaXM7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShib3VuZEFyZ3MpICYmIGJvdW5kQXJncy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHBheWxvYWQuYm91bmRBcmdzID0gYm91bmRBcmdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICB9LFxuICB9O1xufVxuXG4vLyAtLS0tIFJldml2ZXIgLS0tLVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgU3RlcEZ1bmN0aW9uIHJldml2ZXIgZm9yIHdvcmtmbG93IGNvbnRleHQuXG4gKlxuICogVGhlIHJldml2ZXIgY2FsbHMgV09SS0ZMT1dfVVNFX1NURVAgdG8gY3JlYXRlIHRoZSBzdGVwIHByb3h5LFxuICogcmVzdG9yaW5nIHRoZSBhYmlsaXR5IHRvIGNhbGwgdGhlIHN0ZXAgZnJvbSB3b3JrZmxvdyBjb2RlLiBJZiB0aGVcbiAqIHNlcmlhbGl6ZWQgcGF5bG9hZCBpbmNsdWRlcyBgYm91bmRUaGlzYCAoYW5kIG9wdGlvbmFsbHkgYGJvdW5kQXJnc2ApLFxuICogdGhlIHJldml2ZXIgYWxzbyByZS1iaW5kcyB0aGUgZnJlc2hseS1jcmVhdGVkIHByb3h5IHNvIGEgc3RlcCBwcm94eVxuICogdGhhdCB3YXMgY29uc3RydWN0ZWQgd2l0aCBgLmJpbmQodGhpcywg4oCmKWAgaW4gdGhlIHdvcmtmbG93IGJ1bmRsZVxuICogY29udGludWVzIHRvIGNhcnJ5IHRoYXQgcmVjZWl2ZXIgYW5kIGFueSBwcmVmaWxsZWQgYXJndW1lbnRzIGFmdGVyXG4gKiBiZWluZyBkZXNlcmlhbGl6ZWQgaW4gYW5vdGhlciBidW5kbGUgKGUuZy4gd2hlbiBwYXNzZWQgYXMgYSBzdGVwXG4gKiBhcmd1bWVudCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGVwRnVuY3Rpb25SZXZpdmVyKFxuICBnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnbG9iYWxUaGlzXG4pOiBQYXJ0aWFsPFJldml2ZXJzPiB7XG4gIGNvbnN0IHVzZVN0ZXAgPSAoZ2xvYmFsIGFzIGFueSlbU3ltYm9sLmZvcignV09SS0ZMT1dfVVNFX1NURVAnKV0gYXNcbiAgICB8ICgoXG4gICAgICAgIHN0ZXBJZDogc3RyaW5nLFxuICAgICAgICBjbG9zdXJlVmFyc0ZuPzogKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICkgPT4gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUHJvbWlzZTx1bmtub3duPilcbiAgICB8IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgIFN0ZXBGdW5jdGlvbjogKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBzdGVwSWQgPSB2YWx1ZS5zdGVwSWQ7XG4gICAgICBjb25zdCBjbG9zdXJlVmFycyA9IHZhbHVlLmNsb3N1cmVWYXJzO1xuXG4gICAgICBpZiAoIXVzZVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdXT1JLRkxPV19VU0VfU1RFUCBub3QgZm91bmQgb24gZ2xvYmFsIG9iamVjdC4gU3RlcCBmdW5jdGlvbnMgY2Fubm90IGJlIGRlc2VyaWFsaXplZCBvdXRzaWRlIHdvcmtmbG93IGNvbnRleHQuJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm94eSA9IGNsb3N1cmVWYXJzXG4gICAgICAgID8gdXNlU3RlcChzdGVwSWQsICgpID0+IGNsb3N1cmVWYXJzKVxuICAgICAgICA6IHVzZVN0ZXAoc3RlcElkKTtcblxuICAgICAgaWYgKCdib3VuZFRoaXMnIGluIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kQXJncyA9IEFycmF5LmlzQXJyYXkodmFsdWUuYm91bmRBcmdzKSA/IHZhbHVlLmJvdW5kQXJncyA6IFtdO1xuICAgICAgICByZXR1cm4gKHByb3h5IGFzIGFueSkuYmluZCh2YWx1ZS5ib3VuZFRoaXMsIC4uLmJvdW5kQXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJveHk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"step-function.d.ts","sourceRoot":"","sources":["../../../src/serialization/reducers/step-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAuC1D;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAc,GACvC,OAAO,CAAC,QAAQ,CAAC,CA8BnB"}
1
+ {"version":3,"file":"step-function.d.ts","sourceRoot":"","sources":["../../../src/serialization/reducers/step-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAuD1D;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAc,GACvC,OAAO,CAAC,QAAQ,CAAC,CA8BnB"}
@@ -17,19 +17,33 @@
17
17
  * proxy so the caller's captured `this` (and prefilled args) survive the
18
18
  * round trip.
19
19
  */
20
+ import { hasProperty, isUseStepClosureFn, readProperty, recordGuestCode, } from '../hardened.js';
20
21
  // ---- Reducer ----
21
22
  export function getStepFunctionReducer() {
22
23
  return {
23
24
  StepFunction: (value) => {
24
25
  if (typeof value !== 'function')
25
26
  return false;
26
- const stepId = value.stepId;
27
+ const stepId = readProperty(value, 'stepId');
27
28
  if (typeof stepId !== 'string')
28
29
  return false;
29
- const closureVarsFn = value.__closureVarsFn;
30
- const closureVars = closureVarsFn && typeof closureVarsFn === 'function'
31
- ? closureVarsFn()
32
- : undefined;
30
+ const closureVarsFn = readProperty(value, '__closureVarsFn');
31
+ // The reducer has to invoke this to read the step's captured closure
32
+ // variables. The compiler-generated function is a sequence of lexical
33
+ // reads and cannot perturb observable VM state, so reporting it would
34
+ // flag every step that captures a variable. But the property is
35
+ // reachable from workflow code, which can replace it with anything.
36
+ // `step.ts` marks the function that came through `useStep` when it
37
+ // builds the proxy, so this is checked rather than assumed; anything
38
+ // unrecognized is reported like other guest code. See
39
+ // `markUseStepClosureFn` for what the mark does and does not prove.
40
+ let closureVars;
41
+ if (typeof closureVarsFn === 'function') {
42
+ if (!isUseStepClosureFn(closureVarsFn)) {
43
+ recordGuestCode('method', '__closureVarsFn');
44
+ }
45
+ closureVars = closureVarsFn();
46
+ }
33
47
  // `__boundThis` / `__boundArgs` are marker properties added by the
34
48
  // step proxy's overridden `.bind` (see step.ts) to record the
35
49
  // bound receiver and any prefilled arguments. Use `in` for
@@ -37,9 +51,11 @@ export function getStepFunctionReducer() {
37
51
  // `undefined`/`null`. `__boundArgs` is only set when the user
38
52
  // actually supplied prefilled args, so a missing property means
39
53
  // "no prefilled args".
40
- const hasBoundThis = '__boundThis' in value;
41
- const boundThis = hasBoundThis ? value.__boundThis : undefined;
42
- const boundArgs = value.__boundArgs;
54
+ const hasBoundThis = hasProperty(value, '__boundThis');
55
+ const boundThis = hasBoundThis
56
+ ? readProperty(value, '__boundThis')
57
+ : undefined;
58
+ const boundArgs = readProperty(value, '__boundArgs');
43
59
  const payload = { stepId };
44
60
  if (closureVars !== undefined)
45
61
  payload.closureVars = closureVars;
@@ -85,4 +101,4 @@ export function getStepFunctionReviver(global = globalThis) {
85
101
  },
86
102
  };
87
103
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJpYWxpemF0aW9uL3JlZHVjZXJzL3N0ZXAtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUlILG9CQUFvQjtBQUVwQixNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU87UUFDTCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0QixJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVU7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDOUMsTUFBTSxNQUFNLEdBQUksS0FBYSxDQUFDLE1BQU0sQ0FBQztZQUNyQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFN0MsTUFBTSxhQUFhLEdBQUksS0FBYSxDQUFDLGVBQWUsQ0FBQztZQUNyRCxNQUFNLFdBQVcsR0FDZixhQUFhLElBQUksT0FBTyxhQUFhLEtBQUssVUFBVTtnQkFDbEQsQ0FBQyxDQUFDLGFBQWEsRUFBRTtnQkFDakIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUVoQixtRUFBbUU7WUFDbkUsOERBQThEO1lBQzlELDJEQUEyRDtZQUMzRCwrREFBK0Q7WUFDL0QsOERBQThEO1lBQzlELGdFQUFnRTtZQUNoRSx1QkFBdUI7WUFDdkIsTUFBTSxZQUFZLEdBQUcsYUFBYSxJQUFLLEtBQWEsQ0FBQztZQUNyRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFFLEtBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN4RSxNQUFNLFNBQVMsR0FBSSxLQUFhLENBQUMsV0FBb0MsQ0FBQztZQUV0RSxNQUFNLE9BQU8sR0FLVCxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2YsSUFBSSxXQUFXLEtBQUssU0FBUztnQkFBRSxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNqRSxJQUFJLFlBQVk7Z0JBQUUsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxvQkFBb0I7QUFFcEI7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFNBQThCLFVBQVU7SUFFeEMsTUFBTSxPQUFPLEdBQUksTUFBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FLbEQsQ0FBQztJQUVkLE9BQU87UUFDTCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFFdEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0dBQStHLENBQ2hILENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsV0FBVztnQkFDdkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBCLElBQUksV0FBVyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4RSxPQUFRLEtBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVkdWNlciBhbmQgcmV2aXZlciBmb3Igc3RlcCBmdW5jdGlvbiByZWZlcmVuY2VzLlxuICpcbiAqIEluIHdvcmtmbG93IG1vZGUsIHN0ZXAgZnVuY3Rpb25zIGFyZSByZXBsYWNlZCBieSB0aGUgU1dDIHBsdWdpbiB3aXRoXG4gKiBwcm94aWVzIGNyZWF0ZWQgYnkgYGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXBJZFwiKWAuXG4gKiBUaGVzZSBwcm94aWVzIGhhdmUgYSBgLnN0ZXBJZGAgcHJvcGVydHkgYW5kIG9wdGlvbmFsbHkgYSBgLl9fY2xvc3VyZVZhcnNGbmBcbiAqIGZvciBjYXB0dXJlZCBjbG9zdXJlIHZhcmlhYmxlcy4gVGhleSBtYXkgYWRkaXRpb25hbGx5IGhhdmUgYC5fX2JvdW5kVGhpc2BcbiAqIChhbmQgcmFyZWx5IGAuX19ib3VuZEFyZ3NgKSB3aGVuIHRoZSBTV0MgcGx1Z2luIGVtaXR0ZWRcbiAqIGB1c2VTdGVwKC4uLikuYmluZCh0aGlzKWAgZm9yIGEgbmVzdGVkIGFycm93IHN0ZXAgdGhhdCBsZXhpY2FsbHlcbiAqIGNhcHR1cmVkIGB0aGlzYCAoc2VlIGBwYWNrYWdlcy9zd2MtcGx1Z2luLXdvcmtmbG93L3NwZWMubWRgIOKGkiBcIkxleGljYWxcbiAqIGB0aGlzYCBDYXB0dXJlIGluIE5lc3RlZCBBcnJvdyBTdGVwc1wiKS5cbiAqXG4gKiBUaGUgcmVkdWNlciBzZXJpYWxpemVzIHRoZW0gYXNcbiAqICAgYHsgc3RlcElkLCBjbG9zdXJlVmFycz8sIGJvdW5kVGhpcz8sIGJvdW5kQXJncz8gfWAuXG4gKiBUaGUgcmV2aXZlciByZWNvbnN0cnVjdHMgdGhlbSBieSBjYWxsaW5nIFdPUktGTE9XX1VTRV9TVEVQIGFuZCwgd2hlblxuICogYGJvdW5kVGhpc2AgKG9yIGBib3VuZEFyZ3NgKSBpcyBwcmVzZW50LCByZS1iaW5kaW5nIHRoZSByZXN1bHRpbmdcbiAqIHByb3h5IHNvIHRoZSBjYWxsZXIncyBjYXB0dXJlZCBgdGhpc2AgKGFuZCBwcmVmaWxsZWQgYXJncykgc3Vydml2ZSB0aGVcbiAqIHJvdW5kIHRyaXAuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSZWR1Y2VycywgUmV2aXZlcnMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8vIC0tLS0gUmVkdWNlciAtLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGVwRnVuY3Rpb25SZWR1Y2VyKCk6IFBhcnRpYWw8UmVkdWNlcnM+IHtcbiAgcmV0dXJuIHtcbiAgICBTdGVwRnVuY3Rpb246ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGZhbHNlO1xuICAgICAgY29uc3Qgc3RlcElkID0gKHZhbHVlIGFzIGFueSkuc3RlcElkO1xuICAgICAgaWYgKHR5cGVvZiBzdGVwSWQgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGNsb3N1cmVWYXJzRm4gPSAodmFsdWUgYXMgYW55KS5fX2Nsb3N1cmVWYXJzRm47XG4gICAgICBjb25zdCBjbG9zdXJlVmFycyA9XG4gICAgICAgIGNsb3N1cmVWYXJzRm4gJiYgdHlwZW9mIGNsb3N1cmVWYXJzRm4gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IGNsb3N1cmVWYXJzRm4oKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAvLyBgX19ib3VuZFRoaXNgIC8gYF9fYm91bmRBcmdzYCBhcmUgbWFya2VyIHByb3BlcnRpZXMgYWRkZWQgYnkgdGhlXG4gICAgICAvLyBzdGVwIHByb3h5J3Mgb3ZlcnJpZGRlbiBgLmJpbmRgIChzZWUgc3RlcC50cykgdG8gcmVjb3JkIHRoZVxuICAgICAgLy8gYm91bmQgcmVjZWl2ZXIgYW5kIGFueSBwcmVmaWxsZWQgYXJndW1lbnRzLiBVc2UgYGluYCBmb3JcbiAgICAgIC8vIGBfX2JvdW5kVGhpc2Agc28gd2Ugcm91bmQtdHJpcCBldmVuIHdoZW4gdGhlIGJvdW5kIGB0aGlzYCBpc1xuICAgICAgLy8gYHVuZGVmaW5lZGAvYG51bGxgLiBgX19ib3VuZEFyZ3NgIGlzIG9ubHkgc2V0IHdoZW4gdGhlIHVzZXJcbiAgICAgIC8vIGFjdHVhbGx5IHN1cHBsaWVkIHByZWZpbGxlZCBhcmdzLCBzbyBhIG1pc3NpbmcgcHJvcGVydHkgbWVhbnNcbiAgICAgIC8vIFwibm8gcHJlZmlsbGVkIGFyZ3NcIi5cbiAgICAgIGNvbnN0IGhhc0JvdW5kVGhpcyA9ICdfX2JvdW5kVGhpcycgaW4gKHZhbHVlIGFzIGFueSk7XG4gICAgICBjb25zdCBib3VuZFRoaXMgPSBoYXNCb3VuZFRoaXMgPyAodmFsdWUgYXMgYW55KS5fX2JvdW5kVGhpcyA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGJvdW5kQXJncyA9ICh2YWx1ZSBhcyBhbnkpLl9fYm91bmRBcmdzIGFzIHVua25vd25bXSB8IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgcGF5bG9hZDoge1xuICAgICAgICBzdGVwSWQ6IHN0cmluZztcbiAgICAgICAgY2xvc3VyZVZhcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgICBib3VuZFRoaXM/OiB1bmtub3duO1xuICAgICAgICBib3VuZEFyZ3M/OiB1bmtub3duW107XG4gICAgICB9ID0geyBzdGVwSWQgfTtcbiAgICAgIGlmIChjbG9zdXJlVmFycyAhPT0gdW5kZWZpbmVkKSBwYXlsb2FkLmNsb3N1cmVWYXJzID0gY2xvc3VyZVZhcnM7XG4gICAgICBpZiAoaGFzQm91bmRUaGlzKSBwYXlsb2FkLmJvdW5kVGhpcyA9IGJvdW5kVGhpcztcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGJvdW5kQXJncykgJiYgYm91bmRBcmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcGF5bG9hZC5ib3VuZEFyZ3MgPSBib3VuZEFyZ3M7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH0sXG4gIH07XG59XG5cbi8vIC0tLS0gUmV2aXZlciAtLS0tXG5cbi8qKlxuICogQ3JlYXRlIHRoZSBTdGVwRnVuY3Rpb24gcmV2aXZlciBmb3Igd29ya2Zsb3cgY29udGV4dC5cbiAqXG4gKiBUaGUgcmV2aXZlciBjYWxscyBXT1JLRkxPV19VU0VfU1RFUCB0byBjcmVhdGUgdGhlIHN0ZXAgcHJveHksXG4gKiByZXN0b3JpbmcgdGhlIGFiaWxpdHkgdG8gY2FsbCB0aGUgc3RlcCBmcm9tIHdvcmtmbG93IGNvZGUuIElmIHRoZVxuICogc2VyaWFsaXplZCBwYXlsb2FkIGluY2x1ZGVzIGBib3VuZFRoaXNgIChhbmQgb3B0aW9uYWxseSBgYm91bmRBcmdzYCksXG4gKiB0aGUgcmV2aXZlciBhbHNvIHJlLWJpbmRzIHRoZSBmcmVzaGx5LWNyZWF0ZWQgcHJveHkgc28gYSBzdGVwIHByb3h5XG4gKiB0aGF0IHdhcyBjb25zdHJ1Y3RlZCB3aXRoIGAuYmluZCh0aGlzLCDigKYpYCBpbiB0aGUgd29ya2Zsb3cgYnVuZGxlXG4gKiBjb250aW51ZXMgdG8gY2FycnkgdGhhdCByZWNlaXZlciBhbmQgYW55IHByZWZpbGxlZCBhcmd1bWVudHMgYWZ0ZXJcbiAqIGJlaW5nIGRlc2VyaWFsaXplZCBpbiBhbm90aGVyIGJ1bmRsZSAoZS5nLiB3aGVuIHBhc3NlZCBhcyBhIHN0ZXBcbiAqIGFyZ3VtZW50KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0ZXBGdW5jdGlvblJldml2ZXIoXG4gIGdsb2JhbDogUmVjb3JkPHN0cmluZywgYW55PiA9IGdsb2JhbFRoaXNcbik6IFBhcnRpYWw8UmV2aXZlcnM+IHtcbiAgY29uc3QgdXNlU3RlcCA9IChnbG9iYWwgYXMgYW55KVtTeW1ib2wuZm9yKCdXT1JLRkxPV19VU0VfU1RFUCcpXSBhc1xuICAgIHwgKChcbiAgICAgICAgc3RlcElkOiBzdHJpbmcsXG4gICAgICAgIGNsb3N1cmVWYXJzRm4/OiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgKSA9PiAoLi4uYXJnczogdW5rbm93bltdKSA9PiBQcm9taXNlPHVua25vd24+KVxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgU3RlcEZ1bmN0aW9uOiAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXBJZCA9IHZhbHVlLnN0ZXBJZDtcbiAgICAgIGNvbnN0IGNsb3N1cmVWYXJzID0gdmFsdWUuY2xvc3VyZVZhcnM7XG5cbiAgICAgIGlmICghdXNlU3RlcCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1dPUktGTE9XX1VTRV9TVEVQIG5vdCBmb3VuZCBvbiBnbG9iYWwgb2JqZWN0LiBTdGVwIGZ1bmN0aW9ucyBjYW5ub3QgYmUgZGVzZXJpYWxpemVkIG91dHNpZGUgd29ya2Zsb3cgY29udGV4dC4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByb3h5ID0gY2xvc3VyZVZhcnNcbiAgICAgICAgPyB1c2VTdGVwKHN0ZXBJZCwgKCkgPT4gY2xvc3VyZVZhcnMpXG4gICAgICAgIDogdXNlU3RlcChzdGVwSWQpO1xuXG4gICAgICBpZiAoJ2JvdW5kVGhpcycgaW4gdmFsdWUpIHtcbiAgICAgICAgY29uc3QgYm91bmRBcmdzID0gQXJyYXkuaXNBcnJheSh2YWx1ZS5ib3VuZEFyZ3MpID8gdmFsdWUuYm91bmRBcmdzIDogW107XG4gICAgICAgIHJldHVybiAocHJveHkgYXMgYW55KS5iaW5kKHZhbHVlLmJvdW5kVGhpcywgLi4uYm91bmRBcmdzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm94eTtcbiAgICB9LFxuICB9O1xufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJpYWxpemF0aW9uL3JlZHVjZXJzL3N0ZXAtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVILE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixlQUFlLEdBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsb0JBQW9CO0FBRXBCLE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTztRQUNMLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3RCLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUU3QyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDN0QscUVBQXFFO1lBQ3JFLHNFQUFzRTtZQUN0RSxzRUFBc0U7WUFDdEUsZ0VBQWdFO1lBQ2hFLG9FQUFvRTtZQUNwRSxtRUFBbUU7WUFDbkUscUVBQXFFO1lBQ3JFLHNEQUFzRDtZQUN0RCxvRUFBb0U7WUFDcEUsSUFBSSxXQUFnRCxDQUFDO1lBQ3JELElBQUksT0FBTyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO29CQUN2QyxlQUFlLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQy9DLENBQUM7Z0JBQ0QsV0FBVyxHQUFJLGFBQStDLEVBQUUsQ0FBQztZQUNuRSxDQUFDO1lBRUQsbUVBQW1FO1lBQ25FLDhEQUE4RDtZQUM5RCwyREFBMkQ7WUFDM0QsK0RBQStEO1lBQy9ELDhEQUE4RDtZQUM5RCxnRUFBZ0U7WUFDaEUsdUJBQXVCO1lBQ3ZCLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDdkQsTUFBTSxTQUFTLEdBQUcsWUFBWTtnQkFDNUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO2dCQUNwQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxhQUFhLENBRXRDLENBQUM7WUFFZCxNQUFNLE9BQU8sR0FLVCxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2YsSUFBSSxXQUFXLEtBQUssU0FBUztnQkFBRSxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNqRSxJQUFJLFlBQVk7Z0JBQUUsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxvQkFBb0I7QUFFcEI7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFNBQThCLFVBQVU7SUFFeEMsTUFBTSxPQUFPLEdBQUksTUFBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FLbEQsQ0FBQztJQUVkLE9BQU87UUFDTCxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFFdEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0dBQStHLENBQ2hILENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsV0FBVztnQkFDdkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBCLElBQUksV0FBVyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4RSxPQUFRLEtBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVkdWNlciBhbmQgcmV2aXZlciBmb3Igc3RlcCBmdW5jdGlvbiByZWZlcmVuY2VzLlxuICpcbiAqIEluIHdvcmtmbG93IG1vZGUsIHN0ZXAgZnVuY3Rpb25zIGFyZSByZXBsYWNlZCBieSB0aGUgU1dDIHBsdWdpbiB3aXRoXG4gKiBwcm94aWVzIGNyZWF0ZWQgYnkgYGdsb2JhbFRoaXNbU3ltYm9sLmZvcihcIldPUktGTE9XX1VTRV9TVEVQXCIpXShcInN0ZXBJZFwiKWAuXG4gKiBUaGVzZSBwcm94aWVzIGhhdmUgYSBgLnN0ZXBJZGAgcHJvcGVydHkgYW5kIG9wdGlvbmFsbHkgYSBgLl9fY2xvc3VyZVZhcnNGbmBcbiAqIGZvciBjYXB0dXJlZCBjbG9zdXJlIHZhcmlhYmxlcy4gVGhleSBtYXkgYWRkaXRpb25hbGx5IGhhdmUgYC5fX2JvdW5kVGhpc2BcbiAqIChhbmQgcmFyZWx5IGAuX19ib3VuZEFyZ3NgKSB3aGVuIHRoZSBTV0MgcGx1Z2luIGVtaXR0ZWRcbiAqIGB1c2VTdGVwKC4uLikuYmluZCh0aGlzKWAgZm9yIGEgbmVzdGVkIGFycm93IHN0ZXAgdGhhdCBsZXhpY2FsbHlcbiAqIGNhcHR1cmVkIGB0aGlzYCAoc2VlIGBwYWNrYWdlcy9zd2MtcGx1Z2luLXdvcmtmbG93L3NwZWMubWRgIOKGkiBcIkxleGljYWxcbiAqIGB0aGlzYCBDYXB0dXJlIGluIE5lc3RlZCBBcnJvdyBTdGVwc1wiKS5cbiAqXG4gKiBUaGUgcmVkdWNlciBzZXJpYWxpemVzIHRoZW0gYXNcbiAqICAgYHsgc3RlcElkLCBjbG9zdXJlVmFycz8sIGJvdW5kVGhpcz8sIGJvdW5kQXJncz8gfWAuXG4gKiBUaGUgcmV2aXZlciByZWNvbnN0cnVjdHMgdGhlbSBieSBjYWxsaW5nIFdPUktGTE9XX1VTRV9TVEVQIGFuZCwgd2hlblxuICogYGJvdW5kVGhpc2AgKG9yIGBib3VuZEFyZ3NgKSBpcyBwcmVzZW50LCByZS1iaW5kaW5nIHRoZSByZXN1bHRpbmdcbiAqIHByb3h5IHNvIHRoZSBjYWxsZXIncyBjYXB0dXJlZCBgdGhpc2AgKGFuZCBwcmVmaWxsZWQgYXJncykgc3Vydml2ZSB0aGVcbiAqIHJvdW5kIHRyaXAuXG4gKi9cblxuaW1wb3J0IHtcbiAgaGFzUHJvcGVydHksXG4gIGlzVXNlU3RlcENsb3N1cmVGbixcbiAgcmVhZFByb3BlcnR5LFxuICByZWNvcmRHdWVzdENvZGUsXG59IGZyb20gJy4uL2hhcmRlbmVkLmpzJztcbmltcG9ydCB0eXBlIHsgUmVkdWNlcnMsIFJldml2ZXJzIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vLyAtLS0tIFJlZHVjZXIgLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RlcEZ1bmN0aW9uUmVkdWNlcigpOiBQYXJ0aWFsPFJlZHVjZXJzPiB7XG4gIHJldHVybiB7XG4gICAgU3RlcEZ1bmN0aW9uOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IHN0ZXBJZCA9IHJlYWRQcm9wZXJ0eSh2YWx1ZSwgJ3N0ZXBJZCcpO1xuICAgICAgaWYgKHR5cGVvZiBzdGVwSWQgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGNsb3N1cmVWYXJzRm4gPSByZWFkUHJvcGVydHkodmFsdWUsICdfX2Nsb3N1cmVWYXJzRm4nKTtcbiAgICAgIC8vIFRoZSByZWR1Y2VyIGhhcyB0byBpbnZva2UgdGhpcyB0byByZWFkIHRoZSBzdGVwJ3MgY2FwdHVyZWQgY2xvc3VyZVxuICAgICAgLy8gdmFyaWFibGVzLiBUaGUgY29tcGlsZXItZ2VuZXJhdGVkIGZ1bmN0aW9uIGlzIGEgc2VxdWVuY2Ugb2YgbGV4aWNhbFxuICAgICAgLy8gcmVhZHMgYW5kIGNhbm5vdCBwZXJ0dXJiIG9ic2VydmFibGUgVk0gc3RhdGUsIHNvIHJlcG9ydGluZyBpdCB3b3VsZFxuICAgICAgLy8gZmxhZyBldmVyeSBzdGVwIHRoYXQgY2FwdHVyZXMgYSB2YXJpYWJsZS4gQnV0IHRoZSBwcm9wZXJ0eSBpc1xuICAgICAgLy8gcmVhY2hhYmxlIGZyb20gd29ya2Zsb3cgY29kZSwgd2hpY2ggY2FuIHJlcGxhY2UgaXQgd2l0aCBhbnl0aGluZy5cbiAgICAgIC8vIGBzdGVwLnRzYCBtYXJrcyB0aGUgZnVuY3Rpb24gdGhhdCBjYW1lIHRocm91Z2ggYHVzZVN0ZXBgIHdoZW4gaXRcbiAgICAgIC8vIGJ1aWxkcyB0aGUgcHJveHksIHNvIHRoaXMgaXMgY2hlY2tlZCByYXRoZXIgdGhhbiBhc3N1bWVkOyBhbnl0aGluZ1xuICAgICAgLy8gdW5yZWNvZ25pemVkIGlzIHJlcG9ydGVkIGxpa2Ugb3RoZXIgZ3Vlc3QgY29kZS4gU2VlXG4gICAgICAvLyBgbWFya1VzZVN0ZXBDbG9zdXJlRm5gIGZvciB3aGF0IHRoZSBtYXJrIGRvZXMgYW5kIGRvZXMgbm90IHByb3ZlLlxuICAgICAgbGV0IGNsb3N1cmVWYXJzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICAgIGlmICh0eXBlb2YgY2xvc3VyZVZhcnNGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoIWlzVXNlU3RlcENsb3N1cmVGbihjbG9zdXJlVmFyc0ZuKSkge1xuICAgICAgICAgIHJlY29yZEd1ZXN0Q29kZSgnbWV0aG9kJywgJ19fY2xvc3VyZVZhcnNGbicpO1xuICAgICAgICB9XG4gICAgICAgIGNsb3N1cmVWYXJzID0gKGNsb3N1cmVWYXJzRm4gYXMgKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGBfX2JvdW5kVGhpc2AgLyBgX19ib3VuZEFyZ3NgIGFyZSBtYXJrZXIgcHJvcGVydGllcyBhZGRlZCBieSB0aGVcbiAgICAgIC8vIHN0ZXAgcHJveHkncyBvdmVycmlkZGVuIGAuYmluZGAgKHNlZSBzdGVwLnRzKSB0byByZWNvcmQgdGhlXG4gICAgICAvLyBib3VuZCByZWNlaXZlciBhbmQgYW55IHByZWZpbGxlZCBhcmd1bWVudHMuIFVzZSBgaW5gIGZvclxuICAgICAgLy8gYF9fYm91bmRUaGlzYCBzbyB3ZSByb3VuZC10cmlwIGV2ZW4gd2hlbiB0aGUgYm91bmQgYHRoaXNgIGlzXG4gICAgICAvLyBgdW5kZWZpbmVkYC9gbnVsbGAuIGBfX2JvdW5kQXJnc2AgaXMgb25seSBzZXQgd2hlbiB0aGUgdXNlclxuICAgICAgLy8gYWN0dWFsbHkgc3VwcGxpZWQgcHJlZmlsbGVkIGFyZ3MsIHNvIGEgbWlzc2luZyBwcm9wZXJ0eSBtZWFuc1xuICAgICAgLy8gXCJubyBwcmVmaWxsZWQgYXJnc1wiLlxuICAgICAgY29uc3QgaGFzQm91bmRUaGlzID0gaGFzUHJvcGVydHkodmFsdWUsICdfX2JvdW5kVGhpcycpO1xuICAgICAgY29uc3QgYm91bmRUaGlzID0gaGFzQm91bmRUaGlzXG4gICAgICAgID8gcmVhZFByb3BlcnR5KHZhbHVlLCAnX19ib3VuZFRoaXMnKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGJvdW5kQXJncyA9IHJlYWRQcm9wZXJ0eSh2YWx1ZSwgJ19fYm91bmRBcmdzJykgYXNcbiAgICAgICAgfCB1bmtub3duW11cbiAgICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IHBheWxvYWQ6IHtcbiAgICAgICAgc3RlcElkOiBzdHJpbmc7XG4gICAgICAgIGNsb3N1cmVWYXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgYm91bmRUaGlzPzogdW5rbm93bjtcbiAgICAgICAgYm91bmRBcmdzPzogdW5rbm93bltdO1xuICAgICAgfSA9IHsgc3RlcElkIH07XG4gICAgICBpZiAoY2xvc3VyZVZhcnMgIT09IHVuZGVmaW5lZCkgcGF5bG9hZC5jbG9zdXJlVmFycyA9IGNsb3N1cmVWYXJzO1xuICAgICAgaWYgKGhhc0JvdW5kVGhpcykgcGF5bG9hZC5ib3VuZFRoaXMgPSBib3VuZFRoaXM7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShib3VuZEFyZ3MpICYmIGJvdW5kQXJncy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHBheWxvYWQuYm91bmRBcmdzID0gYm91bmRBcmdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICB9LFxuICB9O1xufVxuXG4vLyAtLS0tIFJldml2ZXIgLS0tLVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgU3RlcEZ1bmN0aW9uIHJldml2ZXIgZm9yIHdvcmtmbG93IGNvbnRleHQuXG4gKlxuICogVGhlIHJldml2ZXIgY2FsbHMgV09SS0ZMT1dfVVNFX1NURVAgdG8gY3JlYXRlIHRoZSBzdGVwIHByb3h5LFxuICogcmVzdG9yaW5nIHRoZSBhYmlsaXR5IHRvIGNhbGwgdGhlIHN0ZXAgZnJvbSB3b3JrZmxvdyBjb2RlLiBJZiB0aGVcbiAqIHNlcmlhbGl6ZWQgcGF5bG9hZCBpbmNsdWRlcyBgYm91bmRUaGlzYCAoYW5kIG9wdGlvbmFsbHkgYGJvdW5kQXJnc2ApLFxuICogdGhlIHJldml2ZXIgYWxzbyByZS1iaW5kcyB0aGUgZnJlc2hseS1jcmVhdGVkIHByb3h5IHNvIGEgc3RlcCBwcm94eVxuICogdGhhdCB3YXMgY29uc3RydWN0ZWQgd2l0aCBgLmJpbmQodGhpcywg4oCmKWAgaW4gdGhlIHdvcmtmbG93IGJ1bmRsZVxuICogY29udGludWVzIHRvIGNhcnJ5IHRoYXQgcmVjZWl2ZXIgYW5kIGFueSBwcmVmaWxsZWQgYXJndW1lbnRzIGFmdGVyXG4gKiBiZWluZyBkZXNlcmlhbGl6ZWQgaW4gYW5vdGhlciBidW5kbGUgKGUuZy4gd2hlbiBwYXNzZWQgYXMgYSBzdGVwXG4gKiBhcmd1bWVudCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGVwRnVuY3Rpb25SZXZpdmVyKFxuICBnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnbG9iYWxUaGlzXG4pOiBQYXJ0aWFsPFJldml2ZXJzPiB7XG4gIGNvbnN0IHVzZVN0ZXAgPSAoZ2xvYmFsIGFzIGFueSlbU3ltYm9sLmZvcignV09SS0ZMT1dfVVNFX1NURVAnKV0gYXNcbiAgICB8ICgoXG4gICAgICAgIHN0ZXBJZDogc3RyaW5nLFxuICAgICAgICBjbG9zdXJlVmFyc0ZuPzogKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICkgPT4gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUHJvbWlzZTx1bmtub3duPilcbiAgICB8IHVuZGVmaW5lZDtcblxuICByZXR1cm4ge1xuICAgIFN0ZXBGdW5jdGlvbjogKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBzdGVwSWQgPSB2YWx1ZS5zdGVwSWQ7XG4gICAgICBjb25zdCBjbG9zdXJlVmFycyA9IHZhbHVlLmNsb3N1cmVWYXJzO1xuXG4gICAgICBpZiAoIXVzZVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdXT1JLRkxPV19VU0VfU1RFUCBub3QgZm91bmQgb24gZ2xvYmFsIG9iamVjdC4gU3RlcCBmdW5jdGlvbnMgY2Fubm90IGJlIGRlc2VyaWFsaXplZCBvdXRzaWRlIHdvcmtmbG93IGNvbnRleHQuJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm94eSA9IGNsb3N1cmVWYXJzXG4gICAgICAgID8gdXNlU3RlcChzdGVwSWQsICgpID0+IGNsb3N1cmVWYXJzKVxuICAgICAgICA6IHVzZVN0ZXAoc3RlcElkKTtcblxuICAgICAgaWYgKCdib3VuZFRoaXMnIGluIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kQXJncyA9IEFycmF5LmlzQXJyYXkodmFsdWUuYm91bmRBcmdzKSA/IHZhbHVlLmJvdW5kQXJncyA6IFtdO1xuICAgICAgICByZXR1cm4gKHByb3h5IGFzIGFueSkuYmluZCh2YWx1ZS5ib3VuZFRoaXMsIC4uLmJvdW5kQXJncyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcHJveHk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * Step mode serialization.
3
3
  *
4
- * Used by the step handler for serializing step return values and
4
+ * Used by the step executor for serializing step return values and
5
5
  * deserializing step arguments. Supports encryption as a composable layer.
6
6
  */
7
7
  import type { CodecOptions } from './codec.js';
8
- import { type CryptoKey } from './encryption.js';
8
+ import { type PayloadKey } from './encryption.js';
9
9
  /**
10
10
  * Serialize a value from the step execution environment.
11
11
  */
12
- export declare function serialize(value: unknown, encryptionKey?: CryptoKey, options?: CodecOptions): Promise<Uint8Array | unknown>;
12
+ export declare function serialize(value: unknown, encryptionKey?: PayloadKey, options?: CodecOptions): Promise<Uint8Array | unknown>;
13
13
  /**
14
14
  * Deserialize a value for the step execution environment.
15
15
  */
16
- export declare function deserialize(data: Uint8Array | unknown, encryptionKey?: CryptoKey, options?: CodecOptions): Promise<unknown>;
16
+ export declare function deserialize(data: Uint8Array | unknown, encryptionKey?: PayloadKey, options?: CodecOptions): Promise<unknown>;
17
17
  //# sourceMappingURL=step.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/serialization/step.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,SAAS,EACzB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,CAY/B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,GAAG,OAAO,EAC1B,aAAa,CAAC,EAAE,SAAS,EACzB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,OAAO,CAAC,CAmBlB"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/serialization/step.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,UAAU,EAC1B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,CAmB/B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,GAAG,OAAO,EAC1B,aAAa,CAAC,EAAE,UAAU,EAC1B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,OAAO,CAAC,CAsBlB"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Step mode serialization.
3
3
  *
4
- * Used by the step handler for serializing step return values and
4
+ * Used by the step executor for serializing step return values and
5
5
  * deserializing step arguments. Supports encryption as a composable layer.
6
6
  */
7
7
  import { SerializationError } from '@workflow/errors';
8
8
  import { devalueCodec } from './codec-devalue.js';
9
+ import { compress, decompress } from './compression.js';
9
10
  import { decrypt as decryptData, encrypt as encryptData, } from './encryption.js';
10
- import { formatSerializationError } from './errors.js';
11
+ import { formatSerializationError, rethrowIfRuntimeError } from './errors.js';
11
12
  import { decodeFormatPrefix, encodeWithFormatPrefix } from './format.js';
12
13
  import { SerializationFormat } from './types.js';
13
14
  /**
@@ -17,9 +18,12 @@ export async function serialize(value, encryptionKey, options) {
17
18
  try {
18
19
  const payload = devalueCodec.serialize(value, 'step', options);
19
20
  const prefixed = encodeWithFormatPrefix(SerializationFormat.DEVALUE_V1, payload);
20
- return encryptData(prefixed, encryptionKey);
21
+ // Compress before encrypting, since encrypted bytes don't compress.
22
+ const compressed = await compress(prefixed, options?.compression === true, options?.compressionStats);
23
+ return encryptData(compressed, encryptionKey);
21
24
  }
22
25
  catch (error) {
26
+ rethrowIfRuntimeError(error);
23
27
  const { message, hint } = formatSerializationError('step value', error);
24
28
  throw new SerializationError(message, { hint, cause: error });
25
29
  }
@@ -28,7 +32,7 @@ export async function serialize(value, encryptionKey, options) {
28
32
  * Deserialize a value for the step execution environment.
29
33
  */
30
34
  export async function deserialize(data, encryptionKey, options) {
31
- const decrypted = await decryptData(data, encryptionKey);
35
+ const decrypted = await decompress(await decryptData(data, encryptionKey), options?.compressionStats);
32
36
  if (!(decrypted instanceof Uint8Array)) {
33
37
  if (devalueCodec.deserializeLegacy) {
34
38
  return devalueCodec.deserializeLegacy(decrypted, 'step', options);
@@ -41,4 +45,4 @@ export async function deserialize(data, encryptionKey, options) {
41
45
  }
42
46
  throw new Error(`Unsupported serialization format: ${format}`);
43
47
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemF0aW9uL3N0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUVMLE9BQU8sSUFBSSxXQUFXLEVBQ3RCLE9BQU8sSUFBSSxXQUFXLEdBQ3ZCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FDN0IsS0FBYyxFQUNkLGFBQXlCLEVBQ3pCLE9BQXNCO0lBRXRCLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxzQkFBc0IsQ0FDckMsbUJBQW1CLENBQUMsVUFBVSxFQUM5QixPQUFPLENBQ00sQ0FBQztRQUNoQixPQUFPLFdBQVcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLHdCQUF3QixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsSUFBMEIsRUFDMUIsYUFBeUIsRUFDekIsT0FBc0I7SUFFdEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXpELElBQUksQ0FBQyxDQUFDLFNBQVMsWUFBWSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksWUFBWSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbkMsT0FBTyxZQUFZLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwyREFBMkQsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTFELElBQUksTUFBTSxLQUFLLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlDLE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0ZXAgbW9kZSBzZXJpYWxpemF0aW9uLlxuICpcbiAqIFVzZWQgYnkgdGhlIHN0ZXAgaGFuZGxlciBmb3Igc2VyaWFsaXppbmcgc3RlcCByZXR1cm4gdmFsdWVzIGFuZFxuICogZGVzZXJpYWxpemluZyBzdGVwIGFyZ3VtZW50cy4gU3VwcG9ydHMgZW5jcnlwdGlvbiBhcyBhIGNvbXBvc2FibGUgbGF5ZXIuXG4gKi9cblxuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkVycm9yIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IENvZGVjT3B0aW9ucyB9IGZyb20gJy4vY29kZWMuanMnO1xuaW1wb3J0IHsgZGV2YWx1ZUNvZGVjIH0gZnJvbSAnLi9jb2RlYy1kZXZhbHVlLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ3J5cHRvS2V5LFxuICBkZWNyeXB0IGFzIGRlY3J5cHREYXRhLFxuICBlbmNyeXB0IGFzIGVuY3J5cHREYXRhLFxufSBmcm9tICcuL2VuY3J5cHRpb24uanMnO1xuaW1wb3J0IHsgZm9ybWF0U2VyaWFsaXphdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMuanMnO1xuaW1wb3J0IHsgZGVjb2RlRm9ybWF0UHJlZml4LCBlbmNvZGVXaXRoRm9ybWF0UHJlZml4IH0gZnJvbSAnLi9mb3JtYXQuanMnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkZvcm1hdCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vKipcbiAqIFNlcmlhbGl6ZSBhIHZhbHVlIGZyb20gdGhlIHN0ZXAgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VyaWFsaXplKFxuICB2YWx1ZTogdW5rbm93bixcbiAgZW5jcnlwdGlvbktleT86IENyeXB0b0tleSxcbiAgb3B0aW9ucz86IENvZGVjT3B0aW9uc1xuKTogUHJvbWlzZTxVaW50OEFycmF5IHwgdW5rbm93bj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBheWxvYWQgPSBkZXZhbHVlQ29kZWMuc2VyaWFsaXplKHZhbHVlLCAnc3RlcCcsIG9wdGlvbnMpO1xuICAgIGNvbnN0IHByZWZpeGVkID0gZW5jb2RlV2l0aEZvcm1hdFByZWZpeChcbiAgICAgIFNlcmlhbGl6YXRpb25Gb3JtYXQuREVWQUxVRV9WMSxcbiAgICAgIHBheWxvYWRcbiAgICApIGFzIFVpbnQ4QXJyYXk7XG4gICAgcmV0dXJuIGVuY3J5cHREYXRhKHByZWZpeGVkLCBlbmNyeXB0aW9uS2V5KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCB7IG1lc3NhZ2UsIGhpbnQgfSA9IGZvcm1hdFNlcmlhbGl6YXRpb25FcnJvcignc3RlcCB2YWx1ZScsIGVycm9yKTtcbiAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKG1lc3NhZ2UsIHsgaGludCwgY2F1c2U6IGVycm9yIH0pO1xuICB9XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemUgYSB2YWx1ZSBmb3IgdGhlIHN0ZXAgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVzZXJpYWxpemUoXG4gIGRhdGE6IFVpbnQ4QXJyYXkgfCB1bmtub3duLFxuICBlbmNyeXB0aW9uS2V5PzogQ3J5cHRvS2V5LFxuICBvcHRpb25zPzogQ29kZWNPcHRpb25zXG4pOiBQcm9taXNlPHVua25vd24+IHtcbiAgY29uc3QgZGVjcnlwdGVkID0gYXdhaXQgZGVjcnlwdERhdGEoZGF0YSwgZW5jcnlwdGlvbktleSk7XG5cbiAgaWYgKCEoZGVjcnlwdGVkIGluc3RhbmNlb2YgVWludDhBcnJheSkpIHtcbiAgICBpZiAoZGV2YWx1ZUNvZGVjLmRlc2VyaWFsaXplTGVnYWN5KSB7XG4gICAgICByZXR1cm4gZGV2YWx1ZUNvZGVjLmRlc2VyaWFsaXplTGVnYWN5KGRlY3J5cHRlZCwgJ3N0ZXAnLCBvcHRpb25zKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Nhbm5vdCBkZXNlcmlhbGl6ZSBub24tYmluYXJ5IGRhdGEgd2l0aG91dCBsZWdhY3kgc3VwcG9ydCdcbiAgICApO1xuICB9XG5cbiAgY29uc3QgeyBmb3JtYXQsIHBheWxvYWQgfSA9IGRlY29kZUZvcm1hdFByZWZpeChkZWNyeXB0ZWQpO1xuXG4gIGlmIChmb3JtYXQgPT09IFNlcmlhbGl6YXRpb25Gb3JtYXQuREVWQUxVRV9WMSkge1xuICAgIHJldHVybiBkZXZhbHVlQ29kZWMuZGVzZXJpYWxpemUocGF5bG9hZCwgJ3N0ZXAnLCBvcHRpb25zKTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgc2VyaWFsaXphdGlvbiBmb3JtYXQ6ICR7Zm9ybWF0fWApO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemF0aW9uL3N0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsT0FBTyxJQUFJLFdBQVcsRUFDdEIsT0FBTyxJQUFJLFdBQVcsR0FFdkIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsU0FBUyxDQUM3QixLQUFjLEVBQ2QsYUFBMEIsRUFDMUIsT0FBc0I7SUFFdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUNyQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQzlCLE9BQU8sQ0FDTSxDQUFDO1FBQ2hCLG9FQUFvRTtRQUNwRSxNQUFNLFVBQVUsR0FBRyxNQUFNLFFBQVEsQ0FDL0IsUUFBUSxFQUNSLE9BQU8sRUFBRSxXQUFXLEtBQUssSUFBSSxFQUM3QixPQUFPLEVBQUUsZ0JBQWdCLENBQzFCLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLHdCQUF3QixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsSUFBMEIsRUFDMUIsYUFBMEIsRUFDMUIsT0FBc0I7SUFFdEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxVQUFVLENBQ2hDLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFDdEMsT0FBTyxFQUFFLGdCQUFnQixDQUMxQixDQUFDO0lBRUYsSUFBSSxDQUFDLENBQUMsU0FBUyxZQUFZLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBSSxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxPQUFPLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDJEQUEyRCxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUQsSUFBSSxNQUFNLEtBQUssbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUMsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RlcCBtb2RlIHNlcmlhbGl6YXRpb24uXG4gKlxuICogVXNlZCBieSB0aGUgc3RlcCBleGVjdXRvciBmb3Igc2VyaWFsaXppbmcgc3RlcCByZXR1cm4gdmFsdWVzIGFuZFxuICogZGVzZXJpYWxpemluZyBzdGVwIGFyZ3VtZW50cy4gU3VwcG9ydHMgZW5jcnlwdGlvbiBhcyBhIGNvbXBvc2FibGUgbGF5ZXIuXG4gKi9cblxuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkVycm9yIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IENvZGVjT3B0aW9ucyB9IGZyb20gJy4vY29kZWMuanMnO1xuaW1wb3J0IHsgZGV2YWx1ZUNvZGVjIH0gZnJvbSAnLi9jb2RlYy1kZXZhbHVlLmpzJztcbmltcG9ydCB7IGNvbXByZXNzLCBkZWNvbXByZXNzIH0gZnJvbSAnLi9jb21wcmVzc2lvbi5qcyc7XG5pbXBvcnQge1xuICBkZWNyeXB0IGFzIGRlY3J5cHREYXRhLFxuICBlbmNyeXB0IGFzIGVuY3J5cHREYXRhLFxuICB0eXBlIFBheWxvYWRLZXksXG59IGZyb20gJy4vZW5jcnlwdGlvbi5qcyc7XG5pbXBvcnQgeyBmb3JtYXRTZXJpYWxpemF0aW9uRXJyb3IsIHJldGhyb3dJZlJ1bnRpbWVFcnJvciB9IGZyb20gJy4vZXJyb3JzLmpzJztcbmltcG9ydCB7IGRlY29kZUZvcm1hdFByZWZpeCwgZW5jb2RlV2l0aEZvcm1hdFByZWZpeCB9IGZyb20gJy4vZm9ybWF0LmpzJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25Gb3JtYXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBTZXJpYWxpemUgYSB2YWx1ZSBmcm9tIHRoZSBzdGVwIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlcmlhbGl6ZShcbiAgdmFsdWU6IHVua25vd24sXG4gIGVuY3J5cHRpb25LZXk/OiBQYXlsb2FkS2V5LFxuICBvcHRpb25zPzogQ29kZWNPcHRpb25zXG4pOiBQcm9taXNlPFVpbnQ4QXJyYXkgfCB1bmtub3duPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGRldmFsdWVDb2RlYy5zZXJpYWxpemUodmFsdWUsICdzdGVwJywgb3B0aW9ucyk7XG4gICAgY29uc3QgcHJlZml4ZWQgPSBlbmNvZGVXaXRoRm9ybWF0UHJlZml4KFxuICAgICAgU2VyaWFsaXphdGlvbkZvcm1hdC5ERVZBTFVFX1YxLFxuICAgICAgcGF5bG9hZFxuICAgICkgYXMgVWludDhBcnJheTtcbiAgICAvLyBDb21wcmVzcyBiZWZvcmUgZW5jcnlwdGluZywgc2luY2UgZW5jcnlwdGVkIGJ5dGVzIGRvbid0IGNvbXByZXNzLlxuICAgIGNvbnN0IGNvbXByZXNzZWQgPSBhd2FpdCBjb21wcmVzcyhcbiAgICAgIHByZWZpeGVkLFxuICAgICAgb3B0aW9ucz8uY29tcHJlc3Npb24gPT09IHRydWUsXG4gICAgICBvcHRpb25zPy5jb21wcmVzc2lvblN0YXRzXG4gICAgKTtcbiAgICByZXR1cm4gZW5jcnlwdERhdGEoY29tcHJlc3NlZCwgZW5jcnlwdGlvbktleSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0aHJvd0lmUnVudGltZUVycm9yKGVycm9yKTtcbiAgICBjb25zdCB7IG1lc3NhZ2UsIGhpbnQgfSA9IGZvcm1hdFNlcmlhbGl6YXRpb25FcnJvcignc3RlcCB2YWx1ZScsIGVycm9yKTtcbiAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKG1lc3NhZ2UsIHsgaGludCwgY2F1c2U6IGVycm9yIH0pO1xuICB9XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemUgYSB2YWx1ZSBmb3IgdGhlIHN0ZXAgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVzZXJpYWxpemUoXG4gIGRhdGE6IFVpbnQ4QXJyYXkgfCB1bmtub3duLFxuICBlbmNyeXB0aW9uS2V5PzogUGF5bG9hZEtleSxcbiAgb3B0aW9ucz86IENvZGVjT3B0aW9uc1xuKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIGNvbnN0IGRlY3J5cHRlZCA9IGF3YWl0IGRlY29tcHJlc3MoXG4gICAgYXdhaXQgZGVjcnlwdERhdGEoZGF0YSwgZW5jcnlwdGlvbktleSksXG4gICAgb3B0aW9ucz8uY29tcHJlc3Npb25TdGF0c1xuICApO1xuXG4gIGlmICghKGRlY3J5cHRlZCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKSB7XG4gICAgaWYgKGRldmFsdWVDb2RlYy5kZXNlcmlhbGl6ZUxlZ2FjeSkge1xuICAgICAgcmV0dXJuIGRldmFsdWVDb2RlYy5kZXNlcmlhbGl6ZUxlZ2FjeShkZWNyeXB0ZWQsICdzdGVwJywgb3B0aW9ucyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3QgZGVzZXJpYWxpemUgbm9uLWJpbmFyeSBkYXRhIHdpdGhvdXQgbGVnYWN5IHN1cHBvcnQnXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHsgZm9ybWF0LCBwYXlsb2FkIH0gPSBkZWNvZGVGb3JtYXRQcmVmaXgoZGVjcnlwdGVkKTtcblxuICBpZiAoZm9ybWF0ID09PSBTZXJpYWxpemF0aW9uRm9ybWF0LkRFVkFMVUVfVjEpIHtcbiAgICByZXR1cm4gZGV2YWx1ZUNvZGVjLmRlc2VyaWFsaXplKHBheWxvYWQsICdzdGVwJywgb3B0aW9ucyk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNlcmlhbGl6YXRpb24gZm9ybWF0OiAke2Zvcm1hdH1gKTtcbn1cbiJdfQ==
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Shared types for the serialization system.
3
3
  */
4
+ import type { RuntimeDecryptionErrorContext } from '@workflow/errors';
4
5
  /**
5
6
  * A format prefix is exactly 4 lowercase alphanumeric characters [a-z0-9].
6
7
  *
7
- * This is a branded string type use `isFormatPrefix()` to validate
8
+ * This is a branded string type: use `isFormatPrefix()` to validate
8
9
  * at runtime. The `SerializationFormat` object provides well-known
9
10
  * constants, but codecs may define additional prefixes.
10
11
  */
@@ -25,7 +26,32 @@ export declare const SerializationFormat: {
25
26
  readonly DEVALUE_V1: FormatPrefix;
26
27
  /** Encrypted payload (inner payload has its own format prefix) */
27
28
  readonly ENCRYPTED: FormatPrefix;
29
+ /**
30
+ * Sealed payload: asymmetrically encrypted to a run's X25519 public key
31
+ * (inner payload has its own format prefix).
32
+ *
33
+ * Used for *cross-run* writes (hook payloads, forwarded stream frames),
34
+ * where the writer holds only the recipient run's public key and therefore
35
+ * cannot decrypt. A run's own payloads continue to use {@link ENCRYPTED}.
36
+ * See `sealed-box.ts` for the construction.
37
+ */
38
+ readonly SEALED: FormatPrefix;
39
+ /** Gzip-compressed payload (inner payload has its own format prefix) */
40
+ readonly GZIP: FormatPrefix;
41
+ /** Zstandard-compressed payload (inner payload has its own format prefix) */
42
+ readonly ZSTD: FormatPrefix;
28
43
  };
44
+ /**
45
+ * Wire-framing format identifier carried in the serialized
46
+ * `ReadableStream` ref's `framing` field.
47
+ *
48
+ * - absent / `'raw'`: chunks are written to the transport verbatim
49
+ * (legacy format, no auto-reconnect support).
50
+ * - `'framed-v1'`: each chunk is wrapped in a 4-byte big-endian length
51
+ * prefix, allowing the reader to identify chunk boundaries and
52
+ * transparently reconnect on transient stream errors.
53
+ */
54
+ export type ByteStreamFraming = 'raw' | 'framed-v1';
29
55
  /**
30
56
  * Types that need specialized handling when serialized/deserialized.
31
57
  * If a type is added here, it MUST also be added to the `Serializable`
@@ -62,6 +88,13 @@ export interface SerializableSpecial {
62
88
  cause?: unknown;
63
89
  };
64
90
  Headers: [string, string][];
91
+ HookConflictError: {
92
+ message: string;
93
+ stack?: string;
94
+ cause?: unknown;
95
+ token: string;
96
+ conflictingRunId?: string;
97
+ };
65
98
  Int8Array: string;
66
99
  Int16Array: string;
67
100
  Int32Array: string;
@@ -75,6 +108,16 @@ export interface SerializableSpecial {
75
108
  name: string;
76
109
  type?: 'bytes';
77
110
  startIndex?: number;
111
+ /**
112
+ * Wire-framing format for byte streams. See {@link ByteStreamFraming}
113
+ * and `getByteFramingStream` / `getByteUnframingStream`.
114
+ *
115
+ * Only meaningful when `type === 'bytes'`. Absent on object streams
116
+ * (which always use length-prefixed devalue framing) and on legacy
117
+ * byte streams written by SDKs that predate framing support; those
118
+ * are interpreted as `'raw'` by the consumer.
119
+ */
120
+ framing?: ByteStreamFraming;
78
121
  } | {
79
122
  bodyInit: any;
80
123
  };
@@ -98,6 +141,19 @@ export interface SerializableSpecial {
98
141
  cause?: unknown;
99
142
  retryAfter: number;
100
143
  };
144
+ RuntimeDecryptionError: {
145
+ message: string;
146
+ stack?: string;
147
+ cause?: unknown;
148
+ context?: RuntimeDecryptionErrorContext;
149
+ };
150
+ StreamError: {
151
+ message: string;
152
+ stack?: string;
153
+ cause?: unknown;
154
+ status?: number;
155
+ url?: string;
156
+ };
101
157
  Request: {
102
158
  method: string;
103
159
  url: string;
@@ -178,6 +234,29 @@ export interface SerializableSpecial {
178
234
  };
179
235
  WritableStream: {
180
236
  name: string;
237
+ /**
238
+ * The runId of the workflow run that owns the underlying server
239
+ * stream. Present only when the writable was forwarded across a
240
+ * `start()` boundary (parent → child). When omitted, the writable
241
+ * belongs to the receiving run (the normal in-run case).
242
+ */
243
+ runId?: string;
244
+ /**
245
+ * The deployment that owns the server stream. Carried with `runId`
246
+ * so a child running on a newer deployment can encrypt chunks with
247
+ * the parent's key without fetching the parent run first.
248
+ */
249
+ deploymentId?: string;
250
+ /**
251
+ * The owning run's X25519 public key (base64), when it has one.
252
+ *
253
+ * Lets the receiving run seal frames to the stream's owner with no
254
+ * lookup at all: neither a run fetch nor a key-API round trip. The
255
+ * owner derives this locally when it creates the stream, so including
256
+ * it here is free. Absent for runs created by older SDKs, in which
257
+ * case the receiver falls back to resolving the owner's symmetric key.
258
+ */
259
+ encryptionPublicKey?: string;
181
260
  };
182
261
  AbortController: {
183
262
  streamName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/serialization/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,2DAA2D;yBACrC,YAAY;IAClC,kEAAkE;wBAC7C,YAAY;CACzB,CAAC;AAIX;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1E,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAClB,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,cAAc,EACV;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACrD;QAAE,QAAQ,EAAE,GAAG,CAAA;KAAE,CAAC;IACtB,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C;;;;OAIG;IACH,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1B,gBAAgB,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF,GAAG,EAAE,GAAG,EAAE,CAAC;IACX,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAClE,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC;;;;;;WAMG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB;;;;;;;;WAQG;QACH,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;KACvB,CAAC;IACF,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChE,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,EAAE,CAAC;KACnB,CAAC;IACF,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,eAAe,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,QAAQ,GAAG;KACpB,CAAC,IAAI,MAAM,mBAAmB,GAAG,CAChC,KAAK,EAAE,GAAG,KACP,mBAAmB,CAAC,CAAC,CAAC,GAAG,KAAK;CACpC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;KACpB,CAAC,IAAI,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,GAAG;CACzE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/serialization/types.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,19 @@ export const SerializationFormat = {
17
17
  DEVALUE_V1: 'devl',
18
18
  /** Encrypted payload (inner payload has its own format prefix) */
19
19
  ENCRYPTED: 'encr',
20
+ /**
21
+ * Sealed payload: asymmetrically encrypted to a run's X25519 public key
22
+ * (inner payload has its own format prefix).
23
+ *
24
+ * Used for *cross-run* writes (hook payloads, forwarded stream frames),
25
+ * where the writer holds only the recipient run's public key and therefore
26
+ * cannot decrypt. A run's own payloads continue to use {@link ENCRYPTED}.
27
+ * See `sealed-box.ts` for the construction.
28
+ */
29
+ SEALED: 'encp',
30
+ /** Gzip-compressed payload (inner payload has its own format prefix) */
31
+ GZIP: 'gzip',
32
+ /** Zstandard-compressed payload (inner payload has its own format prefix) */
33
+ ZSTD: 'zstd',
20
34
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXphdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQWFIOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLDJEQUEyRDtJQUMzRCxVQUFVLEVBQUUsTUFBc0I7SUFDbEMsa0VBQWtFO0lBQ2xFLFNBQVMsRUFBRSxNQUFzQjtDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgdHlwZXMgZm9yIHRoZSBzZXJpYWxpemF0aW9uIHN5c3RlbS5cbiAqL1xuXG4vLyAtLS0tIEZvcm1hdCBQcmVmaXggLS0tLVxuXG4vKipcbiAqIEEgZm9ybWF0IHByZWZpeCBpcyBleGFjdGx5IDQgbG93ZXJjYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIFthLXowLTldLlxuICpcbiAqIFRoaXMgaXMgYSBicmFuZGVkIHN0cmluZyB0eXBlIOKAlCB1c2UgYGlzRm9ybWF0UHJlZml4KClgIHRvIHZhbGlkYXRlXG4gKiBhdCBydW50aW1lLiBUaGUgYFNlcmlhbGl6YXRpb25Gb3JtYXRgIG9iamVjdCBwcm92aWRlcyB3ZWxsLWtub3duXG4gKiBjb25zdGFudHMsIGJ1dCBjb2RlY3MgbWF5IGRlZmluZSBhZGRpdGlvbmFsIHByZWZpeGVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtYXRQcmVmaXggPSBzdHJpbmcgJiB7IHJlYWRvbmx5IF9fYnJhbmQ6ICdGb3JtYXRQcmVmaXgnIH07XG5cbi8qKlxuICogUnVudGltZSB0eXBlIGd1YXJkIGZvciBmb3JtYXQgcHJlZml4IHN0cmluZ3MuXG4gKlxuICogVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgaXMgZXhhY3RseSA0IGNoYXJhY3RlcnMgb2YgW2EtejAtOV0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1hdFByZWZpeCh2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgRm9ybWF0UHJlZml4IHtcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA9PT0gNCAmJiAvXlthLXowLTldezR9JC8udGVzdCh2YWx1ZSk7XG59XG5cbi8qKlxuICogV2VsbC1rbm93biBmb3JtYXQgcHJlZml4IGNvbnN0YW50cy4gQ29kZWNzIG1heSBkZWZpbmUgYWRkaXRpb25hbCBvbmVzLlxuICovXG5leHBvcnQgY29uc3QgU2VyaWFsaXphdGlvbkZvcm1hdCA9IHtcbiAgLyoqIGRldmFsdWUgc3RyaW5naWZ5L3BhcnNlIHdpdGggVGV4dEVuY29kZXIvVGV4dERlY29kZXIgKi9cbiAgREVWQUxVRV9WMTogJ2RldmwnIGFzIEZvcm1hdFByZWZpeCxcbiAgLyoqIEVuY3J5cHRlZCBwYXlsb2FkIChpbm5lciBwYXlsb2FkIGhhcyBpdHMgb3duIGZvcm1hdCBwcmVmaXgpICovXG4gIEVOQ1JZUFRFRDogJ2VuY3InIGFzIEZvcm1hdFByZWZpeCxcbn0gYXMgY29uc3Q7XG5cbi8vIC0tLS0gU2VyaWFsaXphYmxlIFR5cGVzIC0tLS1cblxuLyoqXG4gKiBUeXBlcyB0aGF0IG5lZWQgc3BlY2lhbGl6ZWQgaGFuZGxpbmcgd2hlbiBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZC5cbiAqIElmIGEgdHlwZSBpcyBhZGRlZCBoZXJlLCBpdCBNVVNUIGFsc28gYmUgYWRkZWQgdG8gdGhlIGBTZXJpYWxpemFibGVgXG4gKiB0eXBlIGluIGBzY2hlbWFzLnRzYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemFibGVTcGVjaWFsIHtcbiAgQXJyYXlCdWZmZXI6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBCaWdJbnQ6IHN0cmluZzsgLy8gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGJpZ2ludFxuICBCaWdJbnQ2NEFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgQmlnVWludDY0QXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBEYXRlOiBzdHJpbmc7IC8vIElTTyBzdHJpbmdcbiAgRE9NRXhjZXB0aW9uOiB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IHVua25vd247XG4gIH07XG4gIEZhdGFsRXJyb3I6IHsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIEZsb2F0MzJBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIEZsb2F0NjRBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIEVycm9yOiB7IG5hbWU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIEV2YWxFcnJvcjogeyBtZXNzYWdlOiBzdHJpbmc7IHN0YWNrPzogc3RyaW5nOyBjYXVzZT86IHVua25vd24gfTtcbiAgSGVhZGVyczogW3N0cmluZywgc3RyaW5nXVtdO1xuICBJbnQ4QXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBJbnQxNkFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgSW50MzJBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIE1hcDogW2FueSwgYW55XVtdO1xuICBSYW5nZUVycm9yOiB7IG1lc3NhZ2U6IHN0cmluZzsgc3RhY2s/OiBzdHJpbmc7IGNhdXNlPzogdW5rbm93biB9O1xuICBSZWFkYWJsZVN0cmVhbTpcbiAgICB8IHsgbmFtZTogc3RyaW5nOyB0eXBlPzogJ2J5dGVzJzsgc3RhcnRJbmRleD86IG51bWJlciB9XG4gICAgfCB7IGJvZHlJbml0OiBhbnkgfTtcbiAgUmVmZXJlbmNlRXJyb3I6IHsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIFJlZ0V4cDogeyBzb3VyY2U6IHN0cmluZzsgZmxhZ3M6IHN0cmluZyB9O1xuICAvKipcbiAgICogYHJldHJ5QWZ0ZXJgIGlzIHNlcmlhbGl6ZWQgYXMgYSBudW1lcmljIGVwb2NoIHRpbWVzdGFtcCByYXRoZXIgdGhhbiBhXG4gICAqIGBEYXRlYCB0byBiZSByZWFsbS1zYWZlLiBUaGUgRGF0ZSByZWR1Y2VyIHVzZXMgYGluc3RhbmNlb2YgZ2xvYmFsLkRhdGVgLFxuICAgKiB3aGljaCBmYWlscyBmb3IgRGF0ZXMgZnJvbSBhIGRpZmZlcmVudCBWTSByZWFsbS5cbiAgICovXG4gIFJldHJ5YWJsZUVycm9yOiB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIHN0YWNrPzogc3RyaW5nO1xuICAgIGNhdXNlPzogdW5rbm93bjtcbiAgICByZXRyeUFmdGVyOiBudW1iZXI7XG4gIH07XG4gIFJlcXVlc3Q6IHtcbiAgICBtZXRob2Q6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICBoZWFkZXJzOiBIZWFkZXJzO1xuICAgIGJvZHk6IFJlcXVlc3RbJ2JvZHknXTtcbiAgICBkdXBsZXg6IFJlcXVlc3RbJ2R1cGxleCddO1xuICAgIHJlc3BvbnNlV3JpdGFibGU/OiBXcml0YWJsZVN0cmVhbTxSZXNwb25zZT47XG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIH07XG4gIFJlc3BvbnNlOiB7XG4gICAgdHlwZTogUmVzcG9uc2VbJ3R5cGUnXTtcbiAgICB1cmw6IHN0cmluZztcbiAgICBzdGF0dXM6IG51bWJlcjtcbiAgICBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgaGVhZGVyczogSGVhZGVycztcbiAgICBib2R5OiBSZXNwb25zZVsnYm9keSddO1xuICAgIHJlZGlyZWN0ZWQ6IGJvb2xlYW47XG4gIH07XG4gIENsYXNzOiB7XG4gICAgY2xhc3NJZDogc3RyaW5nO1xuICB9O1xuICBJbnN0YW5jZToge1xuICAgIGNsYXNzSWQ6IHN0cmluZztcbiAgICBkYXRhOiB1bmtub3duO1xuICB9O1xuICBTZXQ6IGFueVtdO1xuICBTeW50YXhFcnJvcjogeyBtZXNzYWdlOiBzdHJpbmc7IHN0YWNrPzogc3RyaW5nOyBjYXVzZT86IHVua25vd24gfTtcbiAgU3RlcEZ1bmN0aW9uOiB7XG4gICAgc3RlcElkOiBzdHJpbmc7XG4gICAgY2xvc3VyZVZhcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIC8qKlxuICAgICAqIENhcHR1cmVkIGxleGljYWwgYHRoaXNgIGZvciBzdGVwIHByb3hpZXMgdGhhdCB3ZXJlIGNyZWF0ZWQgdmlhXG4gICAgICogYHVzZVN0ZXAoLi4uKS5iaW5kKHRoaXNBcmcpYCAodGhlIFNXQyBwbHVnaW4gZW1pdHMgdGhpcyBmb3IgbmVzdGVkXG4gICAgICogYXJyb3cgc3RlcHMgdGhhdCBjbG9zZSBvdmVyIHRoZWlyIGVuY2xvc2luZyBmdW5jdGlvbidzIGB0aGlzYCkuXG4gICAgICogVGhlIHJldml2ZXIgcmUtYmluZHMgdGhlIGZyZXNobHktY3JlYXRlZCBwcm94eSB0byB0aGlzIHZhbHVlIHNvIHRoZVxuICAgICAqIGJpbmRpbmcgc3Vydml2ZXMgc2VyaWFsaXphdGlvbiByb3VuZC10cmlwcy5cbiAgICAgKi9cbiAgICBib3VuZFRoaXM/OiB1bmtub3duO1xuICAgIC8qKlxuICAgICAqIFByZWZpbGxlZCBhcmd1bWVudHMgY2FwdHVyZWQgd2hlbiB0aGUgdXNlciAocmF0aGVyIHRoYW4gdGhlIFNXQ1xuICAgICAqIHBsdWdpbikgY2FsbGVkIGB1c2VTdGVwKC4uLikuYmluZCh0aGlzQXJnLCB4LCB5KWAuIFRoZSByZXZpdmVyXG4gICAgICogcmUtYXBwbGllcyB0aGVzZSBhbG9uZ3NpZGUgYGJvdW5kVGhpc2Agc28gcGFydGlhbCBhcHBsaWNhdGlvblxuICAgICAqIHN1cnZpdmVzIHNlcmlhbGl6YXRpb24uIFRoZSBTV0MgcGx1Z2luIG9ubHkgZXZlciBlbWl0c1xuICAgICAqIGAuYmluZCh0aGlzKWAgd2l0aCBubyBleHRyYSBhcmdzIHRvZGF5OyB0aGlzIHNsb3QgZXhpc3RzIHNvIGFcbiAgICAgKiBoYW5kLXdyaXR0ZW4gYC5iaW5kKHRoaXNBcmcsIHgpYCBkb2Vzbid0IHNpbGVudGx5IGxvc2UgYHhgIGFmdGVyXG4gICAgICogcm91bmQtdHJpcHBpbmcgdGhyb3VnaCB0aGUgcmVkdWNlci9yZXZpdmVyLlxuICAgICAqL1xuICAgIGJvdW5kQXJncz86IHVua25vd25bXTtcbiAgfTtcbiAgVHlwZUVycm9yOiB7IG1lc3NhZ2U6IHN0cmluZzsgc3RhY2s/OiBzdHJpbmc7IGNhdXNlPzogdW5rbm93biB9O1xuICBVUklFcnJvcjogeyBtZXNzYWdlOiBzdHJpbmc7IHN0YWNrPzogc3RyaW5nOyBjYXVzZT86IHVua25vd24gfTtcbiAgVVJMOiBzdHJpbmc7XG4gIFdvcmtmbG93RnVuY3Rpb246IHtcbiAgICB3b3JrZmxvd0lkOiBzdHJpbmc7XG4gIH07XG4gIFVSTFNlYXJjaFBhcmFtczogc3RyaW5nO1xuICBVaW50OEFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgVWludDhDbGFtcGVkQXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBVaW50MTZBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIFVpbnQzMkFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgQWdncmVnYXRlRXJyb3I6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgY2F1c2U/OiB1bmtub3duO1xuICAgIGVycm9yczogdW5rbm93bltdO1xuICB9O1xuICBXcml0YWJsZVN0cmVhbTogeyBuYW1lOiBzdHJpbmcgfTtcbiAgQWJvcnRDb250cm9sbGVyOiB7XG4gICAgc3RyZWFtTmFtZTogc3RyaW5nO1xuICAgIGhvb2tUb2tlbjogc3RyaW5nO1xuICAgIGFib3J0ZWQ6IGJvb2xlYW47XG4gICAgcmVhc29uPzogdW5rbm93bjtcbiAgfTtcbiAgQWJvcnRTaWduYWw6IHtcbiAgICBzdHJlYW1OYW1lOiBzdHJpbmc7XG4gICAgaG9va1Rva2VuOiBzdHJpbmc7XG4gICAgYWJvcnRlZDogYm9vbGVhbjtcbiAgICByZWFzb24/OiB1bmtub3duO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBSZWR1Y2VycyA9IHtcbiAgW0sgaW4ga2V5b2YgU2VyaWFsaXphYmxlU3BlY2lhbF06IChcbiAgICB2YWx1ZTogYW55XG4gICkgPT4gU2VyaWFsaXphYmxlU3BlY2lhbFtLXSB8IGZhbHNlO1xufTtcblxuZXhwb3J0IHR5cGUgUmV2aXZlcnMgPSB7XG4gIFtLIGluIGtleW9mIFNlcmlhbGl6YWJsZVNwZWNpYWxdOiAodmFsdWU6IFNlcmlhbGl6YWJsZVNwZWNpYWxbS10pID0+IGFueTtcbn07XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXphdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQWVIOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWE7SUFDMUMsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLDJEQUEyRDtJQUMzRCxVQUFVLEVBQUUsTUFBc0I7SUFDbEMsa0VBQWtFO0lBQ2xFLFNBQVMsRUFBRSxNQUFzQjtJQUNqQzs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sRUFBRSxNQUFzQjtJQUM5Qix3RUFBd0U7SUFDeEUsSUFBSSxFQUFFLE1BQXNCO0lBQzVCLDZFQUE2RTtJQUM3RSxJQUFJLEVBQUUsTUFBc0I7Q0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2hhcmVkIHR5cGVzIGZvciB0aGUgc2VyaWFsaXphdGlvbiBzeXN0ZW0uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSdW50aW1lRGVjcnlwdGlvbkVycm9yQ29udGV4dCB9IGZyb20gJ0B3b3JrZmxvdy9lcnJvcnMnO1xuXG4vLyAtLS0tIEZvcm1hdCBQcmVmaXggLS0tLVxuXG4vKipcbiAqIEEgZm9ybWF0IHByZWZpeCBpcyBleGFjdGx5IDQgbG93ZXJjYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIFthLXowLTldLlxuICpcbiAqIFRoaXMgaXMgYSBicmFuZGVkIHN0cmluZyB0eXBlOiB1c2UgYGlzRm9ybWF0UHJlZml4KClgIHRvIHZhbGlkYXRlXG4gKiBhdCBydW50aW1lLiBUaGUgYFNlcmlhbGl6YXRpb25Gb3JtYXRgIG9iamVjdCBwcm92aWRlcyB3ZWxsLWtub3duXG4gKiBjb25zdGFudHMsIGJ1dCBjb2RlY3MgbWF5IGRlZmluZSBhZGRpdGlvbmFsIHByZWZpeGVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtYXRQcmVmaXggPSBzdHJpbmcgJiB7IHJlYWRvbmx5IF9fYnJhbmQ6ICdGb3JtYXRQcmVmaXgnIH07XG5cbi8qKlxuICogUnVudGltZSB0eXBlIGd1YXJkIGZvciBmb3JtYXQgcHJlZml4IHN0cmluZ3MuXG4gKlxuICogVmFsaWRhdGVzIHRoYXQgYSBzdHJpbmcgaXMgZXhhY3RseSA0IGNoYXJhY3RlcnMgb2YgW2EtejAtOV0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1hdFByZWZpeCh2YWx1ZTogc3RyaW5nKTogdmFsdWUgaXMgRm9ybWF0UHJlZml4IHtcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA9PT0gNCAmJiAvXlthLXowLTldezR9JC8udGVzdCh2YWx1ZSk7XG59XG5cbi8qKlxuICogV2VsbC1rbm93biBmb3JtYXQgcHJlZml4IGNvbnN0YW50cy4gQ29kZWNzIG1heSBkZWZpbmUgYWRkaXRpb25hbCBvbmVzLlxuICovXG5leHBvcnQgY29uc3QgU2VyaWFsaXphdGlvbkZvcm1hdCA9IHtcbiAgLyoqIGRldmFsdWUgc3RyaW5naWZ5L3BhcnNlIHdpdGggVGV4dEVuY29kZXIvVGV4dERlY29kZXIgKi9cbiAgREVWQUxVRV9WMTogJ2RldmwnIGFzIEZvcm1hdFByZWZpeCxcbiAgLyoqIEVuY3J5cHRlZCBwYXlsb2FkIChpbm5lciBwYXlsb2FkIGhhcyBpdHMgb3duIGZvcm1hdCBwcmVmaXgpICovXG4gIEVOQ1JZUFRFRDogJ2VuY3InIGFzIEZvcm1hdFByZWZpeCxcbiAgLyoqXG4gICAqIFNlYWxlZCBwYXlsb2FkOiBhc3ltbWV0cmljYWxseSBlbmNyeXB0ZWQgdG8gYSBydW4ncyBYMjU1MTkgcHVibGljIGtleVxuICAgKiAoaW5uZXIgcGF5bG9hZCBoYXMgaXRzIG93biBmb3JtYXQgcHJlZml4KS5cbiAgICpcbiAgICogVXNlZCBmb3IgKmNyb3NzLXJ1biogd3JpdGVzIChob29rIHBheWxvYWRzLCBmb3J3YXJkZWQgc3RyZWFtIGZyYW1lcyksXG4gICAqIHdoZXJlIHRoZSB3cml0ZXIgaG9sZHMgb25seSB0aGUgcmVjaXBpZW50IHJ1bidzIHB1YmxpYyBrZXkgYW5kIHRoZXJlZm9yZVxuICAgKiBjYW5ub3QgZGVjcnlwdC4gQSBydW4ncyBvd24gcGF5bG9hZHMgY29udGludWUgdG8gdXNlIHtAbGluayBFTkNSWVBURUR9LlxuICAgKiBTZWUgYHNlYWxlZC1ib3gudHNgIGZvciB0aGUgY29uc3RydWN0aW9uLlxuICAgKi9cbiAgU0VBTEVEOiAnZW5jcCcgYXMgRm9ybWF0UHJlZml4LFxuICAvKiogR3ppcC1jb21wcmVzc2VkIHBheWxvYWQgKGlubmVyIHBheWxvYWQgaGFzIGl0cyBvd24gZm9ybWF0IHByZWZpeCkgKi9cbiAgR1pJUDogJ2d6aXAnIGFzIEZvcm1hdFByZWZpeCxcbiAgLyoqIFpzdGFuZGFyZC1jb21wcmVzc2VkIHBheWxvYWQgKGlubmVyIHBheWxvYWQgaGFzIGl0cyBvd24gZm9ybWF0IHByZWZpeCkgKi9cbiAgWlNURDogJ3pzdGQnIGFzIEZvcm1hdFByZWZpeCxcbn0gYXMgY29uc3Q7XG5cbi8vIC0tLS0gU2VyaWFsaXphYmxlIFR5cGVzIC0tLS1cblxuLyoqXG4gKiBXaXJlLWZyYW1pbmcgZm9ybWF0IGlkZW50aWZpZXIgY2FycmllZCBpbiB0aGUgc2VyaWFsaXplZFxuICogYFJlYWRhYmxlU3RyZWFtYCByZWYncyBgZnJhbWluZ2AgZmllbGQuXG4gKlxuICogLSBhYnNlbnQgLyBgJ3JhdydgOiBjaHVua3MgYXJlIHdyaXR0ZW4gdG8gdGhlIHRyYW5zcG9ydCB2ZXJiYXRpbVxuICogICAobGVnYWN5IGZvcm1hdCwgbm8gYXV0by1yZWNvbm5lY3Qgc3VwcG9ydCkuXG4gKiAtIGAnZnJhbWVkLXYxJ2A6IGVhY2ggY2h1bmsgaXMgd3JhcHBlZCBpbiBhIDQtYnl0ZSBiaWctZW5kaWFuIGxlbmd0aFxuICogICBwcmVmaXgsIGFsbG93aW5nIHRoZSByZWFkZXIgdG8gaWRlbnRpZnkgY2h1bmsgYm91bmRhcmllcyBhbmRcbiAqICAgdHJhbnNwYXJlbnRseSByZWNvbm5lY3Qgb24gdHJhbnNpZW50IHN0cmVhbSBlcnJvcnMuXG4gKi9cbmV4cG9ydCB0eXBlIEJ5dGVTdHJlYW1GcmFtaW5nID0gJ3JhdycgfCAnZnJhbWVkLXYxJztcblxuLyoqXG4gKiBUeXBlcyB0aGF0IG5lZWQgc3BlY2lhbGl6ZWQgaGFuZGxpbmcgd2hlbiBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZC5cbiAqIElmIGEgdHlwZSBpcyBhZGRlZCBoZXJlLCBpdCBNVVNUIGFsc28gYmUgYWRkZWQgdG8gdGhlIGBTZXJpYWxpemFibGVgXG4gKiB0eXBlIGluIGBzY2hlbWFzLnRzYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemFibGVTcGVjaWFsIHtcbiAgQXJyYXlCdWZmZXI6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBCaWdJbnQ6IHN0cmluZzsgLy8gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGJpZ2ludFxuICBCaWdJbnQ2NEFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgQmlnVWludDY0QXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBEYXRlOiBzdHJpbmc7IC8vIElTTyBzdHJpbmdcbiAgRE9NRXhjZXB0aW9uOiB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IHVua25vd247XG4gIH07XG4gIEZhdGFsRXJyb3I6IHsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIEZsb2F0MzJBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIEZsb2F0NjRBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIEVycm9yOiB7IG5hbWU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIEV2YWxFcnJvcjogeyBtZXNzYWdlOiBzdHJpbmc7IHN0YWNrPzogc3RyaW5nOyBjYXVzZT86IHVua25vd24gfTtcbiAgSGVhZGVyczogW3N0cmluZywgc3RyaW5nXVtdO1xuICBIb29rQ29uZmxpY3RFcnJvcjoge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IHVua25vd247XG4gICAgdG9rZW46IHN0cmluZztcbiAgICAvLyBUT0RPOiBNYWtlIHRoaXMgcmVxdWlyZWQgd2hlbiBIb29rQ29uZmxpY3RFcnJvci5jb25mbGljdGluZ1J1bklkIGlzIHJlcXVpcmVkLlxuICAgIGNvbmZsaWN0aW5nUnVuSWQ/OiBzdHJpbmc7XG4gIH07XG4gIEludDhBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIEludDE2QXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBJbnQzMkFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgTWFwOiBbYW55LCBhbnldW107XG4gIFJhbmdlRXJyb3I6IHsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIFJlYWRhYmxlU3RyZWFtOlxuICAgIHwge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIHR5cGU/OiAnYnl0ZXMnO1xuICAgICAgICBzdGFydEluZGV4PzogbnVtYmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogV2lyZS1mcmFtaW5nIGZvcm1hdCBmb3IgYnl0ZSBzdHJlYW1zLiBTZWUge0BsaW5rIEJ5dGVTdHJlYW1GcmFtaW5nfVxuICAgICAgICAgKiBhbmQgYGdldEJ5dGVGcmFtaW5nU3RyZWFtYCAvIGBnZXRCeXRlVW5mcmFtaW5nU3RyZWFtYC5cbiAgICAgICAgICpcbiAgICAgICAgICogT25seSBtZWFuaW5nZnVsIHdoZW4gYHR5cGUgPT09ICdieXRlcydgLiBBYnNlbnQgb24gb2JqZWN0IHN0cmVhbXNcbiAgICAgICAgICogKHdoaWNoIGFsd2F5cyB1c2UgbGVuZ3RoLXByZWZpeGVkIGRldmFsdWUgZnJhbWluZykgYW5kIG9uIGxlZ2FjeVxuICAgICAgICAgKiBieXRlIHN0cmVhbXMgd3JpdHRlbiBieSBTREtzIHRoYXQgcHJlZGF0ZSBmcmFtaW5nIHN1cHBvcnQ7IHRob3NlXG4gICAgICAgICAqIGFyZSBpbnRlcnByZXRlZCBhcyBgJ3JhdydgIGJ5IHRoZSBjb25zdW1lci5cbiAgICAgICAgICovXG4gICAgICAgIGZyYW1pbmc/OiBCeXRlU3RyZWFtRnJhbWluZztcbiAgICAgIH1cbiAgICB8IHsgYm9keUluaXQ6IGFueSB9O1xuICBSZWZlcmVuY2VFcnJvcjogeyBtZXNzYWdlOiBzdHJpbmc7IHN0YWNrPzogc3RyaW5nOyBjYXVzZT86IHVua25vd24gfTtcbiAgUmVnRXhwOiB7IHNvdXJjZTogc3RyaW5nOyBmbGFnczogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBgcmV0cnlBZnRlcmAgaXMgc2VyaWFsaXplZCBhcyBhIG51bWVyaWMgZXBvY2ggdGltZXN0YW1wIHJhdGhlciB0aGFuIGFcbiAgICogYERhdGVgIHRvIGJlIHJlYWxtLXNhZmUuIFRoZSBEYXRlIHJlZHVjZXIgdXNlcyBgaW5zdGFuY2VvZiBnbG9iYWwuRGF0ZWAsXG4gICAqIHdoaWNoIGZhaWxzIGZvciBEYXRlcyBmcm9tIGEgZGlmZmVyZW50IFZNIHJlYWxtLlxuICAgKi9cbiAgUmV0cnlhYmxlRXJyb3I6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgY2F1c2U/OiB1bmtub3duO1xuICAgIHJldHJ5QWZ0ZXI6IG51bWJlcjtcbiAgfTtcbiAgUnVudGltZURlY3J5cHRpb25FcnJvcjoge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IHVua25vd247XG4gICAgY29udGV4dD86IFJ1bnRpbWVEZWNyeXB0aW9uRXJyb3JDb250ZXh0O1xuICB9O1xuICBTdHJlYW1FcnJvcjoge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IHVua25vd247XG4gICAgc3RhdHVzPzogbnVtYmVyO1xuICAgIHVybD86IHN0cmluZztcbiAgfTtcbiAgUmVxdWVzdDoge1xuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIGhlYWRlcnM6IEhlYWRlcnM7XG4gICAgYm9keTogUmVxdWVzdFsnYm9keSddO1xuICAgIGR1cGxleDogUmVxdWVzdFsnZHVwbGV4J107XG4gICAgcmVzcG9uc2VXcml0YWJsZT86IFdyaXRhYmxlU3RyZWFtPFJlc3BvbnNlPjtcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgfTtcbiAgUmVzcG9uc2U6IHtcbiAgICB0eXBlOiBSZXNwb25zZVsndHlwZSddO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHN0YXR1czogbnVtYmVyO1xuICAgIHN0YXR1c1RleHQ6IHN0cmluZztcbiAgICBoZWFkZXJzOiBIZWFkZXJzO1xuICAgIGJvZHk6IFJlc3BvbnNlWydib2R5J107XG4gICAgcmVkaXJlY3RlZDogYm9vbGVhbjtcbiAgfTtcbiAgQ2xhc3M6IHtcbiAgICBjbGFzc0lkOiBzdHJpbmc7XG4gIH07XG4gIEluc3RhbmNlOiB7XG4gICAgY2xhc3NJZDogc3RyaW5nO1xuICAgIGRhdGE6IHVua25vd247XG4gIH07XG4gIFNldDogYW55W107XG4gIFN5bnRheEVycm9yOiB7IG1lc3NhZ2U6IHN0cmluZzsgc3RhY2s/OiBzdHJpbmc7IGNhdXNlPzogdW5rbm93biB9O1xuICBTdGVwRnVuY3Rpb246IHtcbiAgICBzdGVwSWQ6IHN0cmluZztcbiAgICBjbG9zdXJlVmFycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgLyoqXG4gICAgICogQ2FwdHVyZWQgbGV4aWNhbCBgdGhpc2AgZm9yIHN0ZXAgcHJveGllcyB0aGF0IHdlcmUgY3JlYXRlZCB2aWFcbiAgICAgKiBgdXNlU3RlcCguLi4pLmJpbmQodGhpc0FyZylgICh0aGUgU1dDIHBsdWdpbiBlbWl0cyB0aGlzIGZvciBuZXN0ZWRcbiAgICAgKiBhcnJvdyBzdGVwcyB0aGF0IGNsb3NlIG92ZXIgdGhlaXIgZW5jbG9zaW5nIGZ1bmN0aW9uJ3MgYHRoaXNgKS5cbiAgICAgKiBUaGUgcmV2aXZlciByZS1iaW5kcyB0aGUgZnJlc2hseS1jcmVhdGVkIHByb3h5IHRvIHRoaXMgdmFsdWUgc28gdGhlXG4gICAgICogYmluZGluZyBzdXJ2aXZlcyBzZXJpYWxpemF0aW9uIHJvdW5kLXRyaXBzLlxuICAgICAqL1xuICAgIGJvdW5kVGhpcz86IHVua25vd247XG4gICAgLyoqXG4gICAgICogUHJlZmlsbGVkIGFyZ3VtZW50cyBjYXB0dXJlZCB3aGVuIHRoZSB1c2VyIChyYXRoZXIgdGhhbiB0aGUgU1dDXG4gICAgICogcGx1Z2luKSBjYWxsZWQgYHVzZVN0ZXAoLi4uKS5iaW5kKHRoaXNBcmcsIHgsIHkpYC4gVGhlIHJldml2ZXJcbiAgICAgKiByZS1hcHBsaWVzIHRoZXNlIGFsb25nc2lkZSBgYm91bmRUaGlzYCBzbyBwYXJ0aWFsIGFwcGxpY2F0aW9uXG4gICAgICogc3Vydml2ZXMgc2VyaWFsaXphdGlvbi4gVGhlIFNXQyBwbHVnaW4gb25seSBldmVyIGVtaXRzXG4gICAgICogYC5iaW5kKHRoaXMpYCB3aXRoIG5vIGV4dHJhIGFyZ3MgdG9kYXk7IHRoaXMgc2xvdCBleGlzdHMgc28gYVxuICAgICAqIGhhbmQtd3JpdHRlbiBgLmJpbmQodGhpc0FyZywgeClgIGRvZXNuJ3Qgc2lsZW50bHkgbG9zZSBgeGAgYWZ0ZXJcbiAgICAgKiByb3VuZC10cmlwcGluZyB0aHJvdWdoIHRoZSByZWR1Y2VyL3Jldml2ZXIuXG4gICAgICovXG4gICAgYm91bmRBcmdzPzogdW5rbm93bltdO1xuICB9O1xuICBUeXBlRXJyb3I6IHsgbWVzc2FnZTogc3RyaW5nOyBzdGFjaz86IHN0cmluZzsgY2F1c2U/OiB1bmtub3duIH07XG4gIFVSSUVycm9yOiB7IG1lc3NhZ2U6IHN0cmluZzsgc3RhY2s/OiBzdHJpbmc7IGNhdXNlPzogdW5rbm93biB9O1xuICBVUkw6IHN0cmluZztcbiAgV29ya2Zsb3dGdW5jdGlvbjoge1xuICAgIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgfTtcbiAgVVJMU2VhcmNoUGFyYW1zOiBzdHJpbmc7XG4gIFVpbnQ4QXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBVaW50OENsYW1wZWRBcnJheTogc3RyaW5nOyAvLyBiYXNlNjQgc3RyaW5nXG4gIFVpbnQxNkFycmF5OiBzdHJpbmc7IC8vIGJhc2U2NCBzdHJpbmdcbiAgVWludDMyQXJyYXk6IHN0cmluZzsgLy8gYmFzZTY0IHN0cmluZ1xuICBBZ2dyZWdhdGVFcnJvcjoge1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBzdGFjaz86IHN0cmluZztcbiAgICBjYXVzZT86IHVua25vd247XG4gICAgZXJyb3JzOiB1bmtub3duW107XG4gIH07XG4gIFdyaXRhYmxlU3RyZWFtOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBydW5JZCBvZiB0aGUgd29ya2Zsb3cgcnVuIHRoYXQgb3ducyB0aGUgdW5kZXJseWluZyBzZXJ2ZXJcbiAgICAgKiBzdHJlYW0uIFByZXNlbnQgb25seSB3aGVuIHRoZSB3cml0YWJsZSB3YXMgZm9yd2FyZGVkIGFjcm9zcyBhXG4gICAgICogYHN0YXJ0KClgIGJvdW5kYXJ5IChwYXJlbnQg4oaSIGNoaWxkKS4gV2hlbiBvbWl0dGVkLCB0aGUgd3JpdGFibGVcbiAgICAgKiBiZWxvbmdzIHRvIHRoZSByZWNlaXZpbmcgcnVuICh0aGUgbm9ybWFsIGluLXJ1biBjYXNlKS5cbiAgICAgKi9cbiAgICBydW5JZD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgZGVwbG95bWVudCB0aGF0IG93bnMgdGhlIHNlcnZlciBzdHJlYW0uIENhcnJpZWQgd2l0aCBgcnVuSWRgXG4gICAgICogc28gYSBjaGlsZCBydW5uaW5nIG9uIGEgbmV3ZXIgZGVwbG95bWVudCBjYW4gZW5jcnlwdCBjaHVua3Mgd2l0aFxuICAgICAqIHRoZSBwYXJlbnQncyBrZXkgd2l0aG91dCBmZXRjaGluZyB0aGUgcGFyZW50IHJ1biBmaXJzdC5cbiAgICAgKi9cbiAgICBkZXBsb3ltZW50SWQ/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG93bmluZyBydW4ncyBYMjU1MTkgcHVibGljIGtleSAoYmFzZTY0KSwgd2hlbiBpdCBoYXMgb25lLlxuICAgICAqXG4gICAgICogTGV0cyB0aGUgcmVjZWl2aW5nIHJ1biBzZWFsIGZyYW1lcyB0byB0aGUgc3RyZWFtJ3Mgb3duZXIgd2l0aCBub1xuICAgICAqIGxvb2t1cCBhdCBhbGw6IG5laXRoZXIgYSBydW4gZmV0Y2ggbm9yIGEga2V5LUFQSSByb3VuZCB0cmlwLiBUaGVcbiAgICAgKiBvd25lciBkZXJpdmVzIHRoaXMgbG9jYWxseSB3aGVuIGl0IGNyZWF0ZXMgdGhlIHN0cmVhbSwgc28gaW5jbHVkaW5nXG4gICAgICogaXQgaGVyZSBpcyBmcmVlLiBBYnNlbnQgZm9yIHJ1bnMgY3JlYXRlZCBieSBvbGRlciBTREtzLCBpbiB3aGljaFxuICAgICAqIGNhc2UgdGhlIHJlY2VpdmVyIGZhbGxzIGJhY2sgdG8gcmVzb2x2aW5nIHRoZSBvd25lcidzIHN5bW1ldHJpYyBrZXkuXG4gICAgICovXG4gICAgZW5jcnlwdGlvblB1YmxpY0tleT86IHN0cmluZztcbiAgfTtcbiAgQWJvcnRDb250cm9sbGVyOiB7XG4gICAgc3RyZWFtTmFtZTogc3RyaW5nO1xuICAgIGhvb2tUb2tlbjogc3RyaW5nO1xuICAgIGFib3J0ZWQ6IGJvb2xlYW47XG4gICAgcmVhc29uPzogdW5rbm93bjtcbiAgfTtcbiAgQWJvcnRTaWduYWw6IHtcbiAgICBzdHJlYW1OYW1lOiBzdHJpbmc7XG4gICAgaG9va1Rva2VuOiBzdHJpbmc7XG4gICAgYWJvcnRlZDogYm9vbGVhbjtcbiAgICByZWFzb24/OiB1bmtub3duO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBSZWR1Y2VycyA9IHtcbiAgW0sgaW4ga2V5b2YgU2VyaWFsaXphYmxlU3BlY2lhbF06IChcbiAgICB2YWx1ZTogYW55XG4gICkgPT4gU2VyaWFsaXphYmxlU3BlY2lhbFtLXSB8IGZhbHNlO1xufTtcblxuZXhwb3J0IHR5cGUgUmV2aXZlcnMgPSB7XG4gIFtLIGluIGtleW9mIFNlcmlhbGl6YWJsZVNwZWNpYWxdOiAodmFsdWU6IFNlcmlhbGl6YWJsZVNwZWNpYWxbS10pID0+IGFueTtcbn07XG4iXX0=
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Host-side reference implementation of the QuickJS engine's workflow-mode
3
+ * wire codec.
4
+ *
5
+ * The QuickJS engine serializes through handles on the host
6
+ * (runtime/quickjs-serde.ts); this module is the value-space equivalent of
7
+ * that codec and is used by tests to build wire fixtures and assert
8
+ * byte-level parity. It has NO Node.js dependencies (no Buffer, no
9
+ * node:util), which is also what made it bundleable into the VM before the
10
+ * serde moved host-side.
11
+ *
12
+ * Produces and consumes the same wire format as the Node.js workflow.ts:
13
+ * format-prefixed devalue data ("devl" + devalue.stringify output).
14
+ */
15
+ /**
16
+ * Serialize a value to format-prefixed bytes.
17
+ *
18
+ * @param value - The value to serialize
19
+ * @returns Uint8Array with "devl" prefix + devalue payload
20
+ */
21
+ export declare function serialize(value: unknown): Uint8Array;
22
+ /**
23
+ * Deserialize format-prefixed bytes back to a value.
24
+ *
25
+ * @param data - Uint8Array with format prefix, or legacy non-binary data
26
+ * @returns The deserialized value
27
+ */
28
+ export declare function deserialize(data: Uint8Array | unknown): unknown;
29
+ //# sourceMappingURL=workflow-vm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-vm.d.ts","sourceRoot":"","sources":["../../src/serialization/workflow-vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsBH;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAOpD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CA0B/D"}