@workflow/core 5.0.0-beta.4 → 5.0.0-beta.41
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.
- package/dist/attribute-changes.d.ts +7 -0
- package/dist/attribute-changes.d.ts.map +1 -0
- package/dist/attribute-changes.js +25 -0
- package/dist/capabilities.d.ts +33 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +71 -4
- package/dist/capture-stack.d.ts +16 -0
- package/dist/capture-stack.d.ts.map +1 -0
- package/dist/capture-stack.js +21 -0
- package/dist/class-serialization.d.ts +32 -0
- package/dist/class-serialization.d.ts.map +1 -1
- package/dist/class-serialization.js +37 -1
- package/dist/classify-error.d.ts +26 -3
- package/dist/classify-error.d.ts.map +1 -1
- package/dist/classify-error.js +109 -6
- package/dist/context-errors.d.ts +27 -0
- package/dist/context-errors.d.ts.map +1 -0
- package/dist/context-errors.js +101 -0
- package/dist/context-violation-error.d.ts +97 -0
- package/dist/context-violation-error.d.ts.map +1 -0
- package/dist/context-violation-error.js +149 -0
- package/dist/create-hook.d.ts +62 -4
- package/dist/create-hook.d.ts.map +1 -1
- package/dist/create-hook.js +4 -3
- package/dist/define-hook.d.ts.map +1 -1
- package/dist/define-hook.js +20 -5
- package/dist/describe-error.d.ts +70 -0
- package/dist/describe-error.d.ts.map +1 -0
- package/dist/describe-error.js +189 -0
- package/dist/encryption.d.ts +37 -3
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +97 -31
- package/dist/events-consumer.d.ts +147 -1
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +444 -43
- package/dist/flushable-stream.d.ts +65 -10
- package/dist/flushable-stream.d.ts.map +1 -1
- package/dist/flushable-stream.js +131 -18
- package/dist/global.d.ts +37 -1
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js +21 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/log-format.d.ts +25 -0
- package/dist/log-format.d.ts.map +1 -0
- package/dist/log-format.js +250 -0
- package/dist/logger.d.ts +29 -30
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +82 -32
- package/dist/private.d.ts +246 -8
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +345 -9
- package/dist/replay-payload-cache.d.ts +68 -0
- package/dist/replay-payload-cache.d.ts.map +1 -0
- package/dist/replay-payload-cache.js +160 -0
- package/dist/runtime/compute-instance.d.ts +12 -0
- package/dist/runtime/compute-instance.d.ts.map +1 -0
- package/dist/runtime/compute-instance.js +13 -0
- package/dist/runtime/constants.d.ts +251 -0
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +425 -16
- package/dist/runtime/count-step-started-events.d.ts +52 -0
- package/dist/runtime/count-step-started-events.d.ts.map +1 -0
- package/dist/runtime/count-step-started-events.js +72 -0
- package/dist/runtime/deployment-guard.d.ts +99 -0
- package/dist/runtime/deployment-guard.d.ts.map +1 -0
- package/dist/runtime/deployment-guard.js +154 -0
- package/dist/runtime/get-port-lazy.d.ts +25 -0
- package/dist/runtime/get-port-lazy.d.ts.map +1 -0
- package/dist/runtime/get-port-lazy.js +92 -0
- package/dist/runtime/get-world-lazy.d.ts +23 -0
- package/dist/runtime/get-world-lazy.d.ts.map +1 -0
- package/dist/runtime/get-world-lazy.js +46 -0
- package/dist/runtime/helpers.d.ts +327 -10
- package/dist/runtime/helpers.d.ts.map +1 -1
- package/dist/runtime/helpers.js +586 -40
- package/dist/runtime/quickjs-assets.generated.d.ts +14 -0
- package/dist/runtime/quickjs-assets.generated.d.ts.map +1 -0
- package/dist/runtime/quickjs-assets.generated.js +30 -0
- package/dist/runtime/quickjs-entrypoint.d.ts +124 -0
- package/dist/runtime/quickjs-entrypoint.d.ts.map +1 -0
- package/dist/runtime/quickjs-entrypoint.js +1437 -0
- package/dist/runtime/quickjs-runtime.d.ts +228 -0
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
- package/dist/runtime/quickjs-runtime.js +2372 -0
- package/dist/runtime/quickjs-serde.d.ts +107 -0
- package/dist/runtime/quickjs-serde.d.ts.map +1 -0
- package/dist/runtime/quickjs-serde.js +2098 -0
- package/dist/runtime/replay-budget.d.ts +89 -0
- package/dist/runtime/replay-budget.d.ts.map +1 -0
- package/dist/runtime/replay-budget.js +139 -0
- package/dist/runtime/replay-recovery-reporter.d.ts +36 -0
- package/dist/runtime/replay-recovery-reporter.d.ts.map +1 -0
- package/dist/runtime/replay-recovery-reporter.js +64 -0
- package/dist/runtime/resume-hook.d.ts +27 -4
- package/dist/runtime/resume-hook.d.ts.map +1 -1
- package/dist/runtime/resume-hook.js +452 -76
- package/dist/runtime/run-id-time.d.ts +19 -0
- package/dist/runtime/run-id-time.d.ts.map +1 -0
- package/dist/runtime/run-id-time.js +42 -0
- package/dist/runtime/run.d.ts +8 -2
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +62 -15
- package/dist/runtime/runs.d.ts +54 -3
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +119 -13
- package/dist/runtime/start.d.ts +70 -1
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +313 -60
- package/dist/runtime/step-executor.d.ts +177 -0
- package/dist/runtime/step-executor.d.ts.map +1 -0
- package/dist/runtime/step-executor.js +946 -0
- package/dist/runtime/step-latency.d.ts +197 -0
- package/dist/runtime/step-latency.d.ts.map +1 -0
- package/dist/runtime/step-latency.js +207 -0
- package/dist/runtime/step-ownership.d.ts +72 -0
- package/dist/runtime/step-ownership.d.ts.map +1 -0
- package/dist/runtime/step-ownership.js +114 -0
- package/dist/runtime/step-single-flight.d.ts +12 -0
- package/dist/runtime/step-single-flight.d.ts.map +1 -0
- package/dist/runtime/step-single-flight.js +69 -0
- package/dist/runtime/suspension-handler.d.ts +109 -7
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +486 -140
- package/dist/runtime/vm-mode.d.ts +44 -0
- package/dist/runtime/vm-mode.d.ts.map +1 -0
- package/dist/runtime/vm-mode.js +62 -0
- package/dist/runtime/vm-serde-bundle.generated.d.ts +14 -0
- package/dist/runtime/vm-serde-bundle.generated.d.ts.map +1 -0
- package/dist/runtime/vm-serde-bundle.generated.js +16 -0
- package/dist/runtime/wait-continuation.d.ts +84 -0
- package/dist/runtime/wait-continuation.d.ts.map +1 -0
- package/dist/runtime/wait-continuation.js +105 -0
- package/dist/runtime/wait-until.d.ts +18 -0
- package/dist/runtime/wait-until.d.ts.map +1 -0
- package/dist/runtime/wait-until.js +42 -0
- package/dist/runtime/world-compatibility.d.ts +20 -0
- package/dist/runtime/world-compatibility.d.ts.map +1 -0
- package/dist/runtime/world-compatibility.js +32 -0
- package/dist/runtime/world-init.d.ts +50 -0
- package/dist/runtime/world-init.d.ts.map +1 -0
- package/dist/runtime/world-init.js +50 -0
- package/dist/runtime/world.d.ts +14 -2
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +101 -26
- package/dist/runtime.d.ts +17 -12
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +3135 -328
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -1
- package/dist/sealed-box.d.ts +167 -0
- package/dist/sealed-box.d.ts.map +1 -0
- package/dist/sealed-box.js +571 -0
- package/dist/serialization/client.d.ts +17 -0
- package/dist/serialization/client.d.ts.map +1 -0
- package/dist/serialization/client.js +48 -0
- package/dist/serialization/codec-devalue-vm.d.ts +16 -0
- package/dist/serialization/codec-devalue-vm.d.ts.map +1 -0
- package/dist/serialization/codec-devalue-vm.js +148 -0
- package/dist/serialization/codec-devalue.d.ts +14 -0
- package/dist/serialization/codec-devalue.d.ts.map +1 -0
- package/dist/serialization/codec-devalue.js +105 -0
- package/dist/serialization/codec.d.ts +125 -0
- package/dist/serialization/codec.d.ts.map +1 -0
- package/dist/serialization/codec.js +17 -0
- package/dist/serialization/compression.d.ts +104 -0
- package/dist/serialization/compression.d.ts.map +1 -0
- package/dist/serialization/compression.js +260 -0
- package/dist/serialization/encryption.d.ts +134 -0
- package/dist/serialization/encryption.d.ts.map +1 -0
- package/dist/serialization/encryption.js +186 -0
- package/dist/serialization/errors.d.ts +34 -0
- package/dist/serialization/errors.d.ts.map +1 -0
- package/dist/serialization/errors.js +59 -0
- package/dist/serialization/format.d.ts +60 -0
- package/dist/serialization/format.d.ts.map +1 -0
- package/dist/serialization/format.js +97 -0
- package/dist/serialization/hardened.d.ts +155 -0
- package/dist/serialization/hardened.d.ts.map +1 -0
- package/dist/serialization/hardened.js +523 -0
- package/dist/serialization/index.d.ts +20 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/serialization/index.js +22 -0
- package/dist/serialization/reducers/class-vm.d.ts +20 -0
- package/dist/serialization/reducers/class-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/class-vm.js +77 -0
- package/dist/serialization/reducers/class.d.ts +11 -0
- package/dist/serialization/reducers/class.d.ts.map +1 -0
- package/dist/serialization/reducers/class.js +73 -0
- package/dist/serialization/reducers/common-vm.d.ts +15 -0
- package/dist/serialization/reducers/common-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/common-vm.js +579 -0
- package/dist/serialization/reducers/common.d.ts +16 -0
- package/dist/serialization/reducers/common.d.ts.map +1 -0
- package/dist/serialization/reducers/common.js +478 -0
- package/dist/serialization/reducers/step-function-vm.d.ts +44 -0
- package/dist/serialization/reducers/step-function-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/step-function-vm.js +97 -0
- package/dist/serialization/reducers/step-function.d.ts +35 -0
- package/dist/serialization/reducers/step-function.d.ts.map +1 -0
- package/dist/serialization/reducers/step-function.js +104 -0
- package/dist/serialization/step.d.ts +17 -0
- package/dist/serialization/step.d.ts.map +1 -0
- package/dist/serialization/step.js +48 -0
- package/dist/serialization/types.d.ts +273 -0
- package/dist/serialization/types.d.ts.map +1 -0
- package/dist/serialization/types.js +35 -0
- package/dist/serialization/workflow-vm.d.ts +29 -0
- package/dist/serialization/workflow-vm.d.ts.map +1 -0
- package/dist/serialization/workflow-vm.js +71 -0
- package/dist/serialization/workflow.d.ts +29 -0
- package/dist/serialization/workflow.d.ts.map +1 -0
- package/dist/serialization/workflow.js +54 -0
- package/dist/serialization-format.d.ts +60 -4
- package/dist/serialization-format.d.ts.map +1 -1
- package/dist/serialization-format.js +276 -56
- package/dist/serialization.d.ts +374 -221
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +2300 -783
- package/dist/set-attributes.d.ts +13 -0
- package/dist/set-attributes.d.ts.map +1 -0
- package/dist/set-attributes.js +60 -0
- package/dist/sleep.d.ts.map +1 -1
- package/dist/sleep.js +3 -2
- package/dist/source-map.d.ts +25 -0
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +148 -10
- package/dist/step/context-storage.d.ts +61 -2
- package/dist/step/context-storage.d.ts.map +1 -1
- package/dist/step/context-storage.js +7 -5
- package/dist/step/get-closure-vars.d.ts.map +1 -1
- package/dist/step/get-closure-vars.js +3 -2
- package/dist/step/get-step-metadata.d.ts.map +1 -1
- package/dist/step/get-step-metadata.js +3 -2
- package/dist/step/get-workflow-metadata.d.ts.map +1 -1
- package/dist/step/get-workflow-metadata.js +3 -2
- package/dist/step/writable-stream.d.ts.map +1 -1
- package/dist/step/writable-stream.js +71 -7
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +225 -29
- package/dist/symbols.d.ts +54 -0
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +55 -1
- package/dist/telemetry/semantic-conventions.d.ts +265 -2
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +190 -1
- package/dist/telemetry.d.ts +73 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +153 -16
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +23 -1
- package/dist/util.d.ts +16 -6
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +25 -16
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/vm/index.d.ts.map +1 -1
- package/dist/vm/index.js +85 -14
- package/dist/vm/script-cache.d.ts +28 -0
- package/dist/vm/script-cache.d.ts.map +1 -0
- package/dist/vm/script-cache.js +140 -0
- package/dist/workflow/abort-controller.d.ts +65 -0
- package/dist/workflow/abort-controller.d.ts.map +1 -0
- package/dist/workflow/abort-controller.js +312 -0
- package/dist/workflow/attribute-dispatcher.d.ts +6 -0
- package/dist/workflow/attribute-dispatcher.d.ts.map +1 -0
- package/dist/workflow/attribute-dispatcher.js +48 -0
- package/dist/workflow/create-hook.d.ts.map +1 -1
- package/dist/workflow/create-hook.js +25 -3
- package/dist/workflow/define-hook.d.ts +1 -1
- package/dist/workflow/define-hook.d.ts.map +1 -1
- package/dist/workflow/define-hook.js +8 -4
- package/dist/workflow/get-workflow-metadata.d.ts.map +1 -1
- package/dist/workflow/get-workflow-metadata.js +14 -3
- package/dist/workflow/hook.d.ts.map +1 -1
- package/dist/workflow/hook.js +302 -36
- package/dist/workflow/index.d.ts +1 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +5 -3
- package/dist/workflow/set-attributes.d.ts +68 -0
- package/dist/workflow/set-attributes.d.ts.map +1 -0
- package/dist/workflow/set-attributes.js +60 -0
- package/dist/workflow/sleep.d.ts.map +1 -1
- package/dist/workflow/sleep.js +57 -8
- package/dist/workflow/world-init-stub.d.ts +15 -0
- package/dist/workflow/world-init-stub.d.ts.map +1 -0
- package/dist/workflow/world-init-stub.js +15 -0
- package/dist/workflow.d.ts +79 -3
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +831 -553
- package/docs/api-reference/create-hook.mdx +79 -0
- package/docs/api-reference/create-webhook.mdx +1 -0
- package/docs/api-reference/define-hook.mdx +26 -24
- package/docs/api-reference/fatal-error.mdx +29 -7
- package/docs/api-reference/fetch.mdx +8 -4
- package/docs/api-reference/index.mdx +3 -0
- package/docs/api-reference/set-attributes.mdx +61 -0
- package/docs/api-reference/sleep.mdx +1 -1
- package/docs/foundations/cancellation.mdx +459 -0
- package/docs/foundations/errors-and-retries.mdx +7 -3
- package/docs/foundations/hooks.mdx +29 -0
- package/docs/foundations/idempotency.mdx +243 -11
- package/docs/foundations/index.mdx +1 -23
- package/docs/foundations/meta.json +3 -1
- package/docs/foundations/serialization.mdx +77 -41
- package/docs/foundations/starting-workflows.mdx +79 -2
- package/docs/foundations/streaming.mdx +14 -23
- package/docs/foundations/versioning.mdx +263 -0
- package/docs/how-it-works/cancellation.mdx +287 -0
- package/docs/how-it-works/code-transform.mdx +21 -17
- package/docs/how-it-works/encryption.mdx +5 -5
- package/docs/how-it-works/event-sourcing.mdx +17 -9
- package/docs/how-it-works/framework-integrations.mdx +96 -337
- package/docs/how-it-works/meta.json +2 -1
- package/package.json +31 -13
- package/dist/runtime/step-handler.d.ts +0 -2
- package/dist/runtime/step-handler.d.ts.map +0 -1
- package/dist/runtime/step-handler.js +0 -678
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serialization module — public API.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the mode-specific serialize/deserialize functions and
|
|
5
|
+
* the codec/format/encryption abstractions.
|
|
6
|
+
*/
|
|
7
|
+
export { devalueCodec } from './codec-devalue.js';
|
|
8
|
+
// Re-export composable compression
|
|
9
|
+
export { COMPRESSION_MIN_BYTES, compress, decompress, isCompressed, } from './compression.js';
|
|
10
|
+
// Re-export composable encryption
|
|
11
|
+
export { decrypt, encrypt, } from './encryption.js';
|
|
12
|
+
// Re-export format prefix utilities
|
|
13
|
+
export { decodeFormatPrefix, encodeWithFormatPrefix, isEncrypted, peekFormatPrefix, } from './format.js';
|
|
14
|
+
export { isFormatPrefix, SerializationFormat } from './types.js';
|
|
15
|
+
import * as client from './client.js';
|
|
16
|
+
import * as step from './step.js';
|
|
17
|
+
// Re-export mode-specific modules as namespaces
|
|
18
|
+
import * as workflow from './workflow.js';
|
|
19
|
+
export { workflow, step, client };
|
|
20
|
+
// Re-export revive helper (used by legacy compat in serialization.ts)
|
|
21
|
+
export { revive } from './reducers/common.js';
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXphdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUlILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxtQ0FBbUM7QUFDbkMsT0FBTyxFQUNMLHFCQUFxQixFQUdyQixRQUFRLEVBQ1IsVUFBVSxFQUNWLFlBQVksR0FDYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLGtDQUFrQztBQUNsQyxPQUFPLEVBRUwsT0FBTyxFQUVQLE9BQU8sR0FDUixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLG9DQUFvQztBQUNwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sYUFBYSxDQUFDO0FBV3JCLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFakUsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsZ0RBQWdEO0FBQ2hELE9BQU8sS0FBSyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBRWxDLHNFQUFzRTtBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlcmlhbGl6YXRpb24gbW9kdWxlIOKAlCBwdWJsaWMgQVBJLlxuICpcbiAqIFJlLWV4cG9ydHMgdGhlIG1vZGUtc3BlY2lmaWMgc2VyaWFsaXplL2Rlc2VyaWFsaXplIGZ1bmN0aW9ucyBhbmRcbiAqIHRoZSBjb2RlYy9mb3JtYXQvZW5jcnlwdGlvbiBhYnN0cmFjdGlvbnMuXG4gKi9cblxuLy8gUmUtZXhwb3J0IGNvZGVjIGludGVyZmFjZSBhbmQgbW9kZSB0eXBlXG5leHBvcnQgdHlwZSB7IENvZGVjLCBDb2RlY09wdGlvbnMsIFNlcmlhbGl6YXRpb25Nb2RlIH0gZnJvbSAnLi9jb2RlYy5qcyc7XG5leHBvcnQgeyBkZXZhbHVlQ29kZWMgfSBmcm9tICcuL2NvZGVjLWRldmFsdWUuanMnO1xuLy8gUmUtZXhwb3J0IGNvbXBvc2FibGUgY29tcHJlc3Npb25cbmV4cG9ydCB7XG4gIENPTVBSRVNTSU9OX01JTl9CWVRFUyxcbiAgdHlwZSBDb21wcmVzc2lvbkNvZGVjLFxuICB0eXBlIENvbXByZXNzaW9uU3RhdHMsXG4gIGNvbXByZXNzLFxuICBkZWNvbXByZXNzLFxuICBpc0NvbXByZXNzZWQsXG59IGZyb20gJy4vY29tcHJlc3Npb24uanMnO1xuLy8gUmUtZXhwb3J0IGNvbXBvc2FibGUgZW5jcnlwdGlvblxuZXhwb3J0IHtcbiAgdHlwZSBDcnlwdG9LZXksXG4gIGRlY3J5cHQsXG4gIHR5cGUgRW5jcnlwdGlvbktleVBhcmFtLFxuICBlbmNyeXB0LFxufSBmcm9tICcuL2VuY3J5cHRpb24uanMnO1xuLy8gUmUtZXhwb3J0IGZvcm1hdCBwcmVmaXggdXRpbGl0aWVzXG5leHBvcnQge1xuICBkZWNvZGVGb3JtYXRQcmVmaXgsXG4gIGVuY29kZVdpdGhGb3JtYXRQcmVmaXgsXG4gIGlzRW5jcnlwdGVkLFxuICBwZWVrRm9ybWF0UHJlZml4LFxufSBmcm9tICcuL2Zvcm1hdC5qcyc7XG4vLyBSZS1leHBvcnQgaGFyZGVuZWQtc2VyaWFsaXphdGlvbiBvYnNlcnZhdGlvbiB0eXBlcyAocG9wdWxhdGVkIHZpYVxuLy8gYENvZGVjT3B0aW9ucy5ndWVzdENvZGVTdGF0c2ApXG5leHBvcnQgdHlwZSB7IEd1ZXN0Q29kZUV4ZWN1dGlvbiwgR3Vlc3RDb2RlU3RhdHMgfSBmcm9tICcuL2hhcmRlbmVkLmpzJztcbi8vIFJlLWV4cG9ydCB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBGb3JtYXRQcmVmaXgsXG4gIFJlZHVjZXJzLFxuICBSZXZpdmVycyxcbiAgU2VyaWFsaXphYmxlU3BlY2lhbCxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgeyBpc0Zvcm1hdFByZWZpeCwgU2VyaWFsaXphdGlvbkZvcm1hdCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5pbXBvcnQgKiBhcyBjbGllbnQgZnJvbSAnLi9jbGllbnQuanMnO1xuaW1wb3J0ICogYXMgc3RlcCBmcm9tICcuL3N0ZXAuanMnO1xuLy8gUmUtZXhwb3J0IG1vZGUtc3BlY2lmaWMgbW9kdWxlcyBhcyBuYW1lc3BhY2VzXG5pbXBvcnQgKiBhcyB3b3JrZmxvdyBmcm9tICcuL3dvcmtmbG93LmpzJztcbmV4cG9ydCB7IHdvcmtmbG93LCBzdGVwLCBjbGllbnQgfTtcblxuLy8gUmUtZXhwb3J0IHJldml2ZSBoZWxwZXIgKHVzZWQgYnkgbGVnYWN5IGNvbXBhdCBpbiBzZXJpYWxpemF0aW9uLnRzKVxuZXhwb3J0IHsgcmV2aXZlIH0gZnJvbSAnLi9yZWR1Y2Vycy9jb21tb24uanMnO1xuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VM-compatible copy: identical semantics to class.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
|
+
* Reducers and revivers for custom class serialization.
|
|
12
|
+
*
|
|
13
|
+
* Handles:
|
|
14
|
+
* - Class: class constructors with a `classId` property
|
|
15
|
+
* - Instance: instances of classes with custom WORKFLOW_SERIALIZE/DESERIALIZE methods
|
|
16
|
+
*/
|
|
17
|
+
import type { Reducers, Revivers } from '../types.js';
|
|
18
|
+
export declare function getClassReducers(): Partial<Reducers>;
|
|
19
|
+
export declare function getClassRevivers(global?: Record<string, any>): Partial<Revivers>;
|
|
20
|
+
//# sourceMappingURL=class-vm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-vm.d.ts","sourceRoot":"","sources":["../../../src/serialization/reducers/class-vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CA8BpD;AAID,wBAAgB,gBAAgB,CAC9B,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAc,GACvC,OAAO,CAAC,QAAQ,CAAC,CAiCnB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VM-compatible copy: identical semantics to class.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
|
+
* Reducers and revivers for custom class serialization.
|
|
12
|
+
*
|
|
13
|
+
* Handles:
|
|
14
|
+
* - Class: class constructors with a `classId` property
|
|
15
|
+
* - Instance: instances of classes with custom WORKFLOW_SERIALIZE/DESERIALIZE methods
|
|
16
|
+
*/
|
|
17
|
+
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE } from '@workflow/serde';
|
|
18
|
+
import { getSerializationClass } from '../../class-serialization.js';
|
|
19
|
+
// ---- Reducers ----
|
|
20
|
+
export function getClassReducers() {
|
|
21
|
+
return {
|
|
22
|
+
// Class and Instance are intentionally placed before Error so that
|
|
23
|
+
// custom Error subclasses with WORKFLOW_SERIALIZE take precedence
|
|
24
|
+
// over the generic Error serialization (devalue uses first-match-wins).
|
|
25
|
+
Class: (value) => {
|
|
26
|
+
if (typeof value !== 'function')
|
|
27
|
+
return false;
|
|
28
|
+
const classId = value.classId;
|
|
29
|
+
if (typeof classId !== 'string')
|
|
30
|
+
return false;
|
|
31
|
+
return { classId };
|
|
32
|
+
},
|
|
33
|
+
Instance: (value) => {
|
|
34
|
+
if (value === null || typeof value !== 'object')
|
|
35
|
+
return false;
|
|
36
|
+
const cls = value.constructor;
|
|
37
|
+
if (!cls || typeof cls !== 'function')
|
|
38
|
+
return false;
|
|
39
|
+
const serialize = cls[WORKFLOW_SERIALIZE];
|
|
40
|
+
if (typeof serialize !== 'function')
|
|
41
|
+
return false;
|
|
42
|
+
const classId = cls.classId;
|
|
43
|
+
if (typeof classId !== 'string') {
|
|
44
|
+
throw new Error(`Class "${cls.name}" with ${String(WORKFLOW_SERIALIZE)} must have a static "classId" property.`);
|
|
45
|
+
}
|
|
46
|
+
const data = serialize.call(cls, value);
|
|
47
|
+
return { classId, data };
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// ---- Revivers ----
|
|
52
|
+
export function getClassRevivers(global = globalThis) {
|
|
53
|
+
return {
|
|
54
|
+
Class: (value) => {
|
|
55
|
+
const classId = value.classId;
|
|
56
|
+
const cls = getSerializationClass(classId, global);
|
|
57
|
+
if (!cls) {
|
|
58
|
+
throw new Error(`Class "${classId}" not found. Make sure the class is registered with registerSerializationClass.`);
|
|
59
|
+
}
|
|
60
|
+
return cls;
|
|
61
|
+
},
|
|
62
|
+
Instance: (value) => {
|
|
63
|
+
const classId = value.classId;
|
|
64
|
+
const data = value.data;
|
|
65
|
+
const cls = getSerializationClass(classId, global);
|
|
66
|
+
if (!cls) {
|
|
67
|
+
throw new Error(`Class "${classId}" not found. Make sure the class is registered with registerSerializationClass.`);
|
|
68
|
+
}
|
|
69
|
+
const deserialize = cls[WORKFLOW_DESERIALIZE];
|
|
70
|
+
if (typeof deserialize !== 'function') {
|
|
71
|
+
throw new Error(`Class "${classId}" does not have a static ${String(WORKFLOW_DESERIALIZE)} method.`);
|
|
72
|
+
}
|
|
73
|
+
return deserialize.call(cls, data);
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Mtdm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXphdGlvbi9yZWR1Y2Vycy9jbGFzcy12bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNIOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3JFLHFCQUFxQjtBQUVyQixNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU87UUFDTCxtRUFBbUU7UUFDbkUsa0VBQWtFO1FBQ2xFLHdFQUF3RTtRQUN4RSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBSSxLQUFhLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzlELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRXBELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFDLElBQUksT0FBTyxTQUFTLEtBQUssVUFBVTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUVsRCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQzVCLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyx5Q0FBeUMsQ0FDaEcsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELHFCQUFxQjtBQUVyQixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFNBQThCLFVBQVU7SUFFeEMsT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxPQUFPLGlGQUFpRixDQUNuRyxDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUV4QixNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxPQUFPLGlGQUFpRixDQUNuRyxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFJLEdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3ZELElBQUksT0FBTyxXQUFXLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxPQUFPLDRCQUE0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUNwRixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWTS1jb21wYXRpYmxlIGNvcHk6IGlkZW50aWNhbCBzZW1hbnRpY3MgdG8gY2xhc3MudHMgYmVmb3JlIHRoZSBob3N0LXNpZGVcbiAqIGhhcmRlbmluZyAoIzMyNTcpIG1hZGUgdGhhdCBtb2R1bGUgZGVwZW5kIG9uIGBzZXJpYWxpemF0aW9uL2hhcmRlbmVkLnRzYFxuICogKHdoaWNoIGltcG9ydHMgYG5vZGU6dXRpbGAgYW5kIGNhcHR1cmVzIGhvc3QgaW50cmluc2ljcyDigJQgbWVhbmluZ2xlc3NcbiAqIGFuZCB1bmJ1bmRsZWFibGUgaW5zaWRlIHRoZSBRdWlja0pTIFZNLCB3aGVyZSB0aGUgY29kZWMgYWxyZWFkeSBydW5zIGluXG4gKiB0aGUgZ3Vlc3QgcmVhbG0pLiBUaGUgaG9zdC9ndWVzdCBib3VuZGFyeSBoYXJkZW5pbmcgZm9yIHRoZSBRdWlja0pTXG4gKiBlbmdpbmUgbGFuZHMgd2l0aCB0aGUgaG9zdC1zaWRlIHNlcmRlICgjMzI2MyksIHdoaWNoIHJldGlyZXMgdGhpc1xuICogYnVuZGxlIGVudGlyZWx5LiBXaXJlIGZvcm1hdCBpcyBpZGVudGljYWwgdG8gdGhlIGhhcmRlbmVkIGhvc3QgdmVyc2lvbi5cbiAqL1xuLyoqXG4gKiBSZWR1Y2VycyBhbmQgcmV2aXZlcnMgZm9yIGN1c3RvbSBjbGFzcyBzZXJpYWxpemF0aW9uLlxuICpcbiAqIEhhbmRsZXM6XG4gKiAtIENsYXNzOiBjbGFzcyBjb25zdHJ1Y3RvcnMgd2l0aCBhIGBjbGFzc0lkYCBwcm9wZXJ0eVxuICogLSBJbnN0YW5jZTogaW5zdGFuY2VzIG9mIGNsYXNzZXMgd2l0aCBjdXN0b20gV09SS0ZMT1dfU0VSSUFMSVpFL0RFU0VSSUFMSVpFIG1ldGhvZHNcbiAqL1xuXG5pbXBvcnQgeyBXT1JLRkxPV19ERVNFUklBTElaRSwgV09SS0ZMT1dfU0VSSUFMSVpFIH0gZnJvbSAnQHdvcmtmbG93L3NlcmRlJztcbmltcG9ydCB7IGdldFNlcmlhbGl6YXRpb25DbGFzcyB9IGZyb20gJy4uLy4uL2NsYXNzLXNlcmlhbGl6YXRpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBSZWR1Y2VycywgUmV2aXZlcnMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8vIC0tLS0gUmVkdWNlcnMgLS0tLVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NSZWR1Y2VycygpOiBQYXJ0aWFsPFJlZHVjZXJzPiB7XG4gIHJldHVybiB7XG4gICAgLy8gQ2xhc3MgYW5kIEluc3RhbmNlIGFyZSBpbnRlbnRpb25hbGx5IHBsYWNlZCBiZWZvcmUgRXJyb3Igc28gdGhhdFxuICAgIC8vIGN1c3RvbSBFcnJvciBzdWJjbGFzc2VzIHdpdGggV09SS0ZMT1dfU0VSSUFMSVpFIHRha2UgcHJlY2VkZW5jZVxuICAgIC8vIG92ZXIgdGhlIGdlbmVyaWMgRXJyb3Igc2VyaWFsaXphdGlvbiAoZGV2YWx1ZSB1c2VzIGZpcnN0LW1hdGNoLXdpbnMpLlxuICAgIENsYXNzOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdmdW5jdGlvbicpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGNsYXNzSWQgPSAodmFsdWUgYXMgYW55KS5jbGFzc0lkO1xuICAgICAgaWYgKHR5cGVvZiBjbGFzc0lkICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIHsgY2xhc3NJZCB9O1xuICAgIH0sXG4gICAgSW5zdGFuY2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGNscyA9IHZhbHVlLmNvbnN0cnVjdG9yO1xuICAgICAgaWYgKCFjbHMgfHwgdHlwZW9mIGNscyAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgICBjb25zdCBzZXJpYWxpemUgPSBjbHNbV09SS0ZMT1dfU0VSSUFMSVpFXTtcbiAgICAgIGlmICh0eXBlb2Ygc2VyaWFsaXplICE9PSAnZnVuY3Rpb24nKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGNvbnN0IGNsYXNzSWQgPSBjbHMuY2xhc3NJZDtcbiAgICAgIGlmICh0eXBlb2YgY2xhc3NJZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDbGFzcyBcIiR7Y2xzLm5hbWV9XCIgd2l0aCAke1N0cmluZyhXT1JLRkxPV19TRVJJQUxJWkUpfSBtdXN0IGhhdmUgYSBzdGF0aWMgXCJjbGFzc0lkXCIgcHJvcGVydHkuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhID0gc2VyaWFsaXplLmNhbGwoY2xzLCB2YWx1ZSk7XG4gICAgICByZXR1cm4geyBjbGFzc0lkLCBkYXRhIH07XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gLS0tLSBSZXZpdmVycyAtLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc1Jldml2ZXJzKFxuICBnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnbG9iYWxUaGlzXG4pOiBQYXJ0aWFsPFJldml2ZXJzPiB7XG4gIHJldHVybiB7XG4gICAgQ2xhc3M6ICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgY2xhc3NJZCA9IHZhbHVlLmNsYXNzSWQ7XG4gICAgICBjb25zdCBjbHMgPSBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoY2xhc3NJZCwgZ2xvYmFsKTtcbiAgICAgIGlmICghY2xzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2xhc3MgXCIke2NsYXNzSWR9XCIgbm90IGZvdW5kLiBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZ2lzdGVyZWQgd2l0aCByZWdpc3RlclNlcmlhbGl6YXRpb25DbGFzcy5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xzO1xuICAgIH0sXG4gICAgSW5zdGFuY2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgY2xhc3NJZCA9IHZhbHVlLmNsYXNzSWQ7XG4gICAgICBjb25zdCBkYXRhID0gdmFsdWUuZGF0YTtcblxuICAgICAgY29uc3QgY2xzID0gZ2V0U2VyaWFsaXphdGlvbkNsYXNzKGNsYXNzSWQsIGdsb2JhbCk7XG4gICAgICBpZiAoIWNscykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENsYXNzIFwiJHtjbGFzc0lkfVwiIG5vdCBmb3VuZC4gTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWdpc3RlcmVkIHdpdGggcmVnaXN0ZXJTZXJpYWxpemF0aW9uQ2xhc3MuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXNlcmlhbGl6ZSA9IChjbHMgYXMgYW55KVtXT1JLRkxPV19ERVNFUklBTElaRV07XG4gICAgICBpZiAodHlwZW9mIGRlc2VyaWFsaXplICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2xhc3MgXCIke2NsYXNzSWR9XCIgZG9lcyBub3QgaGF2ZSBhIHN0YXRpYyAke1N0cmluZyhXT1JLRkxPV19ERVNFUklBTElaRSl9IG1ldGhvZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZXNlcmlhbGl6ZS5jYWxsKGNscywgZGF0YSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reducers and revivers for custom class serialization.
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Class: class constructors with a `classId` property
|
|
6
|
+
* - Instance: instances of classes with custom WORKFLOW_SERIALIZE/DESERIALIZE methods
|
|
7
|
+
*/
|
|
8
|
+
import type { Reducers, Revivers } from '../types.js';
|
|
9
|
+
export declare function getClassReducers(): Partial<Reducers>;
|
|
10
|
+
export declare function getClassRevivers(global?: Record<string, any>): Partial<Revivers>;
|
|
11
|
+
//# sourceMappingURL=class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../../src/serialization/reducers/class.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAkCpD;AAID,wBAAgB,gBAAgB,CAC9B,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAc,GACvC,OAAO,CAAC,QAAQ,CAAC,CAiCnB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reducers and revivers for custom class serialization.
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - Class: class constructors with a `classId` property
|
|
6
|
+
* - Instance: instances of classes with custom WORKFLOW_SERIALIZE/DESERIALIZE methods
|
|
7
|
+
*/
|
|
8
|
+
import { WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE } from '@workflow/serde';
|
|
9
|
+
import { getSerializationClass } from '../../class-serialization.js';
|
|
10
|
+
import { readProperty, recordGuestCode } from '../hardened.js';
|
|
11
|
+
// ---- Reducers ----
|
|
12
|
+
export function getClassReducers() {
|
|
13
|
+
return {
|
|
14
|
+
// Class and Instance are intentionally placed before Error so that
|
|
15
|
+
// custom Error subclasses with WORKFLOW_SERIALIZE take precedence
|
|
16
|
+
// over the generic Error serialization (devalue uses first-match-wins).
|
|
17
|
+
Class: (value) => {
|
|
18
|
+
if (typeof value !== 'function')
|
|
19
|
+
return false;
|
|
20
|
+
const classId = readProperty(value, 'classId');
|
|
21
|
+
if (typeof classId !== 'string')
|
|
22
|
+
return false;
|
|
23
|
+
return { classId };
|
|
24
|
+
},
|
|
25
|
+
Instance: (value) => {
|
|
26
|
+
if (value === null || typeof value !== 'object')
|
|
27
|
+
return false;
|
|
28
|
+
const cls = readProperty(value, 'constructor');
|
|
29
|
+
if (!cls || typeof cls !== 'function')
|
|
30
|
+
return false;
|
|
31
|
+
const serialize = readProperty(cls, WORKFLOW_SERIALIZE);
|
|
32
|
+
if (typeof serialize !== 'function')
|
|
33
|
+
return false;
|
|
34
|
+
const classId = readProperty(cls, 'classId');
|
|
35
|
+
if (typeof classId !== 'string') {
|
|
36
|
+
throw new Error(`Class "${String(readProperty(cls, 'name'))}" with ${String(WORKFLOW_SERIALIZE)} must have a static "classId" property.`);
|
|
37
|
+
}
|
|
38
|
+
// Custom serializers are workflow code by definition — the data only
|
|
39
|
+
// exists behind them. Record the execution so retention-aware callers
|
|
40
|
+
// can account for possible VM-state perturbation.
|
|
41
|
+
recordGuestCode('method', `[WORKFLOW_SERIALIZE] (${classId})`);
|
|
42
|
+
const data = serialize.call(cls, value);
|
|
43
|
+
return { classId, data };
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// ---- Revivers ----
|
|
48
|
+
export function getClassRevivers(global = globalThis) {
|
|
49
|
+
return {
|
|
50
|
+
Class: (value) => {
|
|
51
|
+
const classId = value.classId;
|
|
52
|
+
const cls = getSerializationClass(classId, global);
|
|
53
|
+
if (!cls) {
|
|
54
|
+
throw new Error(`Class "${classId}" not found. Make sure the class is registered with registerSerializationClass.`);
|
|
55
|
+
}
|
|
56
|
+
return cls;
|
|
57
|
+
},
|
|
58
|
+
Instance: (value) => {
|
|
59
|
+
const classId = value.classId;
|
|
60
|
+
const data = value.data;
|
|
61
|
+
const cls = getSerializationClass(classId, global);
|
|
62
|
+
if (!cls) {
|
|
63
|
+
throw new Error(`Class "${classId}" not found. Make sure the class is registered with registerSerializationClass.`);
|
|
64
|
+
}
|
|
65
|
+
const deserialize = cls[WORKFLOW_DESERIALIZE];
|
|
66
|
+
if (typeof deserialize !== 'function') {
|
|
67
|
+
throw new Error(`Class "${classId}" does not have a static ${String(WORKFLOW_DESERIALIZE)} method.`);
|
|
68
|
+
}
|
|
69
|
+
return deserialize.call(cls, data);
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VyaWFsaXphdGlvbi9yZWR1Y2Vycy9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRy9ELHFCQUFxQjtBQUVyQixNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU87UUFDTCxtRUFBbUU7UUFDbkUsa0VBQWtFO1FBQ2xFLHdFQUF3RTtRQUN4RSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzlELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRXBELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUN4RCxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVU7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFbEQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLFVBQVUsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsVUFBVSxNQUFNLENBQUMsa0JBQWtCLENBQUMseUNBQXlDLENBQ3pILENBQUM7WUFDSixDQUFDO1lBRUQscUVBQXFFO1lBQ3JFLHNFQUFzRTtZQUN0RSxrREFBa0Q7WUFDbEQsZUFBZSxDQUFDLFFBQVEsRUFBRSx5QkFBeUIsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUMvRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELHFCQUFxQjtBQUVyQixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFNBQThCLFVBQVU7SUFFeEMsT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxPQUFPLGlGQUFpRixDQUNuRyxDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUV4QixNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxPQUFPLGlGQUFpRixDQUNuRyxDQUFDO1lBQ0osQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFJLEdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3ZELElBQUksT0FBTyxXQUFXLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxPQUFPLDRCQUE0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUNwRixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZWR1Y2VycyBhbmQgcmV2aXZlcnMgZm9yIGN1c3RvbSBjbGFzcyBzZXJpYWxpemF0aW9uLlxuICpcbiAqIEhhbmRsZXM6XG4gKiAtIENsYXNzOiBjbGFzcyBjb25zdHJ1Y3RvcnMgd2l0aCBhIGBjbGFzc0lkYCBwcm9wZXJ0eVxuICogLSBJbnN0YW5jZTogaW5zdGFuY2VzIG9mIGNsYXNzZXMgd2l0aCBjdXN0b20gV09SS0ZMT1dfU0VSSUFMSVpFL0RFU0VSSUFMSVpFIG1ldGhvZHNcbiAqL1xuXG5pbXBvcnQgeyBXT1JLRkxPV19ERVNFUklBTElaRSwgV09SS0ZMT1dfU0VSSUFMSVpFIH0gZnJvbSAnQHdvcmtmbG93L3NlcmRlJztcbmltcG9ydCB7IGdldFNlcmlhbGl6YXRpb25DbGFzcyB9IGZyb20gJy4uLy4uL2NsYXNzLXNlcmlhbGl6YXRpb24uanMnO1xuaW1wb3J0IHsgcmVhZFByb3BlcnR5LCByZWNvcmRHdWVzdENvZGUgfSBmcm9tICcuLi9oYXJkZW5lZC5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlZHVjZXJzLCBSZXZpdmVycyB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuLy8gLS0tLSBSZWR1Y2VycyAtLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc1JlZHVjZXJzKCk6IFBhcnRpYWw8UmVkdWNlcnM+IHtcbiAgcmV0dXJuIHtcbiAgICAvLyBDbGFzcyBhbmQgSW5zdGFuY2UgYXJlIGludGVudGlvbmFsbHkgcGxhY2VkIGJlZm9yZSBFcnJvciBzbyB0aGF0XG4gICAgLy8gY3VzdG9tIEVycm9yIHN1YmNsYXNzZXMgd2l0aCBXT1JLRkxPV19TRVJJQUxJWkUgdGFrZSBwcmVjZWRlbmNlXG4gICAgLy8gb3ZlciB0aGUgZ2VuZXJpYyBFcnJvciBzZXJpYWxpemF0aW9uIChkZXZhbHVlIHVzZXMgZmlyc3QtbWF0Y2gtd2lucykuXG4gICAgQ2xhc3M6ICh2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGZhbHNlO1xuICAgICAgY29uc3QgY2xhc3NJZCA9IHJlYWRQcm9wZXJ0eSh2YWx1ZSwgJ2NsYXNzSWQnKTtcbiAgICAgIGlmICh0eXBlb2YgY2xhc3NJZCAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZTtcbiAgICAgIHJldHVybiB7IGNsYXNzSWQgfTtcbiAgICB9LFxuICAgIEluc3RhbmNlOiAodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBjbHMgPSByZWFkUHJvcGVydHkodmFsdWUsICdjb25zdHJ1Y3RvcicpO1xuICAgICAgaWYgKCFjbHMgfHwgdHlwZW9mIGNscyAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIGZhbHNlO1xuXG4gICAgICBjb25zdCBzZXJpYWxpemUgPSByZWFkUHJvcGVydHkoY2xzLCBXT1JLRkxPV19TRVJJQUxJWkUpO1xuICAgICAgaWYgKHR5cGVvZiBzZXJpYWxpemUgIT09ICdmdW5jdGlvbicpIHJldHVybiBmYWxzZTtcblxuICAgICAgY29uc3QgY2xhc3NJZCA9IHJlYWRQcm9wZXJ0eShjbHMsICdjbGFzc0lkJyk7XG4gICAgICBpZiAodHlwZW9mIGNsYXNzSWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2xhc3MgXCIke1N0cmluZyhyZWFkUHJvcGVydHkoY2xzLCAnbmFtZScpKX1cIiB3aXRoICR7U3RyaW5nKFdPUktGTE9XX1NFUklBTElaRSl9IG11c3QgaGF2ZSBhIHN0YXRpYyBcImNsYXNzSWRcIiBwcm9wZXJ0eS5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEN1c3RvbSBzZXJpYWxpemVycyBhcmUgd29ya2Zsb3cgY29kZSBieSBkZWZpbml0aW9uIOKAlCB0aGUgZGF0YSBvbmx5XG4gICAgICAvLyBleGlzdHMgYmVoaW5kIHRoZW0uIFJlY29yZCB0aGUgZXhlY3V0aW9uIHNvIHJldGVudGlvbi1hd2FyZSBjYWxsZXJzXG4gICAgICAvLyBjYW4gYWNjb3VudCBmb3IgcG9zc2libGUgVk0tc3RhdGUgcGVydHVyYmF0aW9uLlxuICAgICAgcmVjb3JkR3Vlc3RDb2RlKCdtZXRob2QnLCBgW1dPUktGTE9XX1NFUklBTElaRV0gKCR7Y2xhc3NJZH0pYCk7XG4gICAgICBjb25zdCBkYXRhID0gc2VyaWFsaXplLmNhbGwoY2xzLCB2YWx1ZSk7XG4gICAgICByZXR1cm4geyBjbGFzc0lkLCBkYXRhIH07XG4gICAgfSxcbiAgfTtcbn1cblxuLy8gLS0tLSBSZXZpdmVycyAtLS0tXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc1Jldml2ZXJzKFxuICBnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnbG9iYWxUaGlzXG4pOiBQYXJ0aWFsPFJldml2ZXJzPiB7XG4gIHJldHVybiB7XG4gICAgQ2xhc3M6ICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgY2xhc3NJZCA9IHZhbHVlLmNsYXNzSWQ7XG4gICAgICBjb25zdCBjbHMgPSBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoY2xhc3NJZCwgZ2xvYmFsKTtcbiAgICAgIGlmICghY2xzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2xhc3MgXCIke2NsYXNzSWR9XCIgbm90IGZvdW5kLiBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZ2lzdGVyZWQgd2l0aCByZWdpc3RlclNlcmlhbGl6YXRpb25DbGFzcy5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xzO1xuICAgIH0sXG4gICAgSW5zdGFuY2U6ICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgY2xhc3NJZCA9IHZhbHVlLmNsYXNzSWQ7XG4gICAgICBjb25zdCBkYXRhID0gdmFsdWUuZGF0YTtcblxuICAgICAgY29uc3QgY2xzID0gZ2V0U2VyaWFsaXphdGlvbkNsYXNzKGNsYXNzSWQsIGdsb2JhbCk7XG4gICAgICBpZiAoIWNscykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENsYXNzIFwiJHtjbGFzc0lkfVwiIG5vdCBmb3VuZC4gTWFrZSBzdXJlIHRoZSBjbGFzcyBpcyByZWdpc3RlcmVkIHdpdGggcmVnaXN0ZXJTZXJpYWxpemF0aW9uQ2xhc3MuYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXNlcmlhbGl6ZSA9IChjbHMgYXMgYW55KVtXT1JLRkxPV19ERVNFUklBTElaRV07XG4gICAgICBpZiAodHlwZW9mIGRlc2VyaWFsaXplICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2xhc3MgXCIke2NsYXNzSWR9XCIgZG9lcyBub3QgaGF2ZSBhIHN0YXRpYyAke1N0cmluZyhXT1JLRkxPV19ERVNFUklBTElaRSl9IG1ldGhvZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkZXNlcmlhbGl6ZS5jYWxsKGNscywgZGF0YSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VM-compatible common reducers and revivers.
|
|
3
|
+
*
|
|
4
|
+
* Identical to common.ts but without Node.js dependencies:
|
|
5
|
+
* - Uses native `btoa` / `atob` (provided by quickjs-wasi's base64
|
|
6
|
+
* extension, see `quickjs-assets.generated.ts`) instead of Buffer
|
|
7
|
+
* or pure-JS base64.
|
|
8
|
+
* - Uses `instanceof Error` instead of `types.isNativeError()`.
|
|
9
|
+
*
|
|
10
|
+
* This module is safe to bundle into the QuickJS WASM VM.
|
|
11
|
+
*/
|
|
12
|
+
import type { Reducers, Revivers } from '../types.js';
|
|
13
|
+
export declare function getCommonReducers(): Partial<Reducers>;
|
|
14
|
+
export declare function getCommonRevivers(): Partial<Revivers>;
|
|
15
|
+
//# sourceMappingURL=common-vm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-vm.d.ts","sourceRoot":"","sources":["../../../src/serialization/reducers/common-vm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAuB,MAAM,aAAa,CAAC;AA6E3E,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,QAAQ,CAAC,CAqQrD;AAID,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,QAAQ,CAAC,CA+NrD"}
|