@workflow/core 5.0.0-beta.43 → 5.0.0-beta.44
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/capabilities.d.ts +4 -4
- package/dist/capabilities.js +5 -5
- package/dist/capture-stack.d.ts +1 -1
- package/dist/capture-stack.js +2 -2
- package/dist/class-serialization.d.ts +8 -8
- package/dist/class-serialization.js +9 -9
- package/dist/classify-error.js +5 -5
- package/dist/context-violation-error.d.ts +5 -5
- package/dist/context-violation-error.d.ts.map +1 -1
- package/dist/context-violation-error.js +5 -5
- package/dist/create-hook.d.ts +2 -2
- package/dist/create-hook.js +1 -1
- package/dist/define-hook.js +2 -2
- package/dist/describe-error.d.ts +7 -7
- package/dist/describe-error.js +8 -8
- package/dist/encryption.d.ts +5 -5
- package/dist/encryption.js +7 -7
- package/dist/events-consumer.d.ts +19 -7
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +33 -12
- package/dist/flushable-stream.d.ts +4 -4
- package/dist/flushable-stream.js +12 -12
- package/dist/global.d.ts +1 -1
- package/dist/global.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/log-format.d.ts +2 -2
- package/dist/log-format.js +5 -5
- package/dist/logger.js +4 -4
- package/dist/private.d.ts +21 -65
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +160 -38
- package/dist/replay-payload-cache.d.ts +1 -1
- package/dist/replay-payload-cache.js +4 -4
- package/dist/runtime/compute-instance.d.ts +4 -3
- package/dist/runtime/compute-instance.d.ts.map +1 -1
- package/dist/runtime/compute-instance.js +5 -4
- package/dist/runtime/constants.d.ts +24 -24
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +49 -43
- package/dist/runtime/count-step-started-events.d.ts +7 -7
- package/dist/runtime/count-step-started-events.js +4 -4
- package/dist/runtime/deployment-guard.d.ts +7 -7
- package/dist/runtime/deployment-guard.js +8 -8
- package/dist/runtime/get-port-lazy.d.ts +2 -2
- package/dist/runtime/get-port-lazy.d.ts.map +1 -1
- package/dist/runtime/get-port-lazy.js +37 -30
- package/dist/runtime/get-world-lazy.d.ts +2 -2
- package/dist/runtime/get-world-lazy.js +3 -3
- package/dist/runtime/helpers.d.ts +18 -18
- package/dist/runtime/helpers.js +27 -27
- package/dist/runtime/quickjs-entrypoint.d.ts +21 -10
- package/dist/runtime/quickjs-entrypoint.d.ts.map +1 -1
- package/dist/runtime/quickjs-entrypoint.js +199 -81
- package/dist/runtime/quickjs-runtime.d.ts +31 -15
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -1
- package/dist/runtime/quickjs-runtime.js +126 -77
- package/dist/runtime/quickjs-serde.d.ts +10 -10
- package/dist/runtime/quickjs-serde.js +20 -20
- package/dist/runtime/replay-budget.d.ts +4 -4
- package/dist/runtime/replay-budget.js +5 -5
- package/dist/runtime/replay-recovery-reporter.d.ts +1 -1
- package/dist/runtime/replay-recovery-reporter.js +2 -2
- package/dist/runtime/resume-hook.d.ts +2 -2
- package/dist/runtime/resume-hook.js +27 -27
- package/dist/runtime/resume-latency.d.ts +25 -25
- package/dist/runtime/resume-latency.d.ts.map +1 -1
- package/dist/runtime/resume-latency.js +4 -4
- package/dist/runtime/run-id-time.d.ts +2 -2
- package/dist/runtime/run-id-time.js +5 -5
- package/dist/runtime/run.d.ts +21 -4
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +104 -10
- package/dist/runtime/runs.d.ts +4 -4
- package/dist/runtime/runs.js +2 -2
- package/dist/runtime/start.d.ts +3 -3
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +27 -23
- package/dist/runtime/step-executor.d.ts +14 -14
- package/dist/runtime/step-executor.d.ts.map +1 -1
- package/dist/runtime/step-executor.js +54 -39
- package/dist/runtime/step-latency.d.ts +14 -14
- package/dist/runtime/step-latency.js +11 -11
- package/dist/runtime/step-ownership.d.ts +6 -6
- package/dist/runtime/step-ownership.js +8 -8
- package/dist/runtime/step-single-flight.d.ts +1 -1
- package/dist/runtime/step-single-flight.d.ts.map +1 -1
- package/dist/runtime/step-single-flight.js +17 -11
- package/dist/runtime/suspension-handler.d.ts +29 -17
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +206 -71
- package/dist/runtime/unserializable-step.d.ts +34 -0
- package/dist/runtime/unserializable-step.d.ts.map +1 -0
- package/dist/runtime/unserializable-step.js +52 -0
- package/dist/runtime/vm-mode.d.ts +1 -1
- package/dist/runtime/vm-mode.js +2 -2
- package/dist/runtime/wait-continuation.d.ts +31 -9
- package/dist/runtime/wait-continuation.d.ts.map +1 -1
- package/dist/runtime/wait-continuation.js +44 -13
- package/dist/runtime/wait-until.d.ts +1 -1
- package/dist/runtime/wait-until.js +2 -2
- package/dist/runtime/world-compatibility.d.ts +20 -9
- package/dist/runtime/world-compatibility.d.ts.map +1 -1
- package/dist/runtime/world-compatibility.js +24 -13
- package/dist/runtime/world-init.d.ts +5 -5
- package/dist/runtime/world-init.js +6 -6
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +13 -3
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +300 -206
- package/dist/sealed-box.d.ts +7 -7
- package/dist/sealed-box.js +15 -15
- package/dist/serialization/client.js +2 -2
- package/dist/serialization/codec-devalue-vm.d.ts +1 -1
- package/dist/serialization/codec-devalue-vm.js +4 -4
- package/dist/serialization/codec-devalue.d.ts +1 -1
- package/dist/serialization/codec-devalue.js +2 -2
- package/dist/serialization/codec.d.ts +4 -4
- package/dist/serialization/codec.js +2 -2
- package/dist/serialization/compression.d.ts +12 -11
- package/dist/serialization/compression.d.ts.map +1 -1
- package/dist/serialization/compression.js +16 -15
- package/dist/serialization/encryption.d.ts +7 -7
- package/dist/serialization/encryption.d.ts.map +1 -1
- package/dist/serialization/encryption.js +8 -8
- package/dist/serialization/errors.js +2 -2
- package/dist/serialization/format.d.ts +6 -6
- package/dist/serialization/format.js +7 -7
- package/dist/serialization/hardened.d.ts +18 -18
- package/dist/serialization/hardened.d.ts.map +1 -1
- package/dist/serialization/hardened.js +41 -32
- package/dist/serialization/index.d.ts +1 -1
- package/dist/serialization/index.js +2 -2
- package/dist/serialization/reducers/class-vm.d.ts +1 -1
- package/dist/serialization/reducers/class-vm.js +2 -2
- package/dist/serialization/reducers/class.js +2 -2
- package/dist/serialization/reducers/common-vm.js +12 -12
- package/dist/serialization/reducers/common.js +12 -12
- package/dist/serialization/reducers/step-function-vm.d.ts +1 -1
- package/dist/serialization/reducers/step-function-vm.js +2 -2
- package/dist/serialization/reducers/step-function.js +2 -2
- package/dist/serialization/step.js +2 -2
- package/dist/serialization/types.d.ts +5 -5
- package/dist/serialization/types.js +2 -2
- package/dist/serialization/workflow-vm.d.ts +1 -1
- package/dist/serialization/workflow-vm.d.ts.map +1 -1
- package/dist/serialization/workflow-vm.js +13 -10
- package/dist/serialization-format.d.ts +11 -11
- package/dist/serialization-format.d.ts.map +1 -1
- package/dist/serialization-format.js +29 -23
- package/dist/serialization.d.ts +10 -10
- package/dist/serialization.js +98 -98
- package/dist/set-attributes.js +2 -2
- package/dist/source-map.d.ts +1 -1
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +18 -12
- package/dist/step/context-storage.d.ts +5 -5
- package/dist/step/context-storage.js +1 -1
- package/dist/step/writable-stream.d.ts +3 -3
- package/dist/step/writable-stream.js +7 -7
- package/dist/step.js +12 -12
- package/dist/symbols.d.ts +2 -2
- package/dist/symbols.js +3 -3
- package/dist/telemetry/semantic-conventions.d.ts +21 -13
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +21 -15
- package/dist/telemetry.d.ts +3 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +19 -10
- package/dist/test-support/orchestrator-context.d.ts.map +1 -1
- package/dist/test-support/orchestrator-context.js +12 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -2
- package/dist/vm/index.js +4 -4
- package/dist/vm/script-cache.d.ts.map +1 -1
- package/dist/vm/script-cache.js +23 -17
- package/dist/vm/uint8array-base64.js +1 -1
- package/dist/workflow/abort-controller.d.ts +1 -1
- package/dist/workflow/abort-controller.js +12 -12
- package/dist/workflow/create-hook.js +2 -2
- package/dist/workflow/get-workflow-metadata.js +2 -2
- package/dist/workflow/hook.js +16 -16
- package/dist/workflow/set-attributes.d.ts +1 -1
- package/dist/workflow/set-attributes.js +2 -2
- package/dist/workflow/sleep.js +2 -2
- package/dist/workflow/world-init-stub.d.ts +1 -1
- package/dist/workflow/world-init-stub.js +2 -2
- package/dist/workflow.d.ts +2 -2
- package/dist/workflow.js +21 -7
- package/docs/api-reference/create-hook.mdx +15 -15
- package/docs/api-reference/create-webhook.mdx +15 -15
- package/docs/api-reference/define-hook.mdx +10 -10
- package/docs/api-reference/fatal-error.mdx +2 -2
- package/docs/api-reference/fetch.mdx +7 -7
- package/docs/api-reference/get-step-metadata.mdx +2 -2
- package/docs/api-reference/get-workflow-metadata.mdx +3 -3
- package/docs/api-reference/get-writable.mdx +7 -7
- package/docs/api-reference/index.mdx +1 -1
- package/docs/api-reference/retryable-error.mdx +1 -1
- package/docs/api-reference/set-attributes.mdx +2 -2
- package/docs/api-reference/sleep.mdx +3 -3
- package/docs/foundations/cancellation.mdx +31 -31
- package/docs/foundations/errors-and-retries.mdx +42 -11
- package/docs/foundations/hooks.mdx +35 -35
- package/docs/foundations/idempotency.mdx +9 -9
- package/docs/foundations/serialization.mdx +21 -22
- package/docs/foundations/starting-workflows.mdx +36 -37
- package/docs/foundations/streaming.mdx +46 -41
- package/docs/foundations/versioning.mdx +3 -3
- package/docs/foundations/workflows-and-steps.mdx +9 -9
- package/docs/how-it-works/cancellation.mdx +62 -62
- package/docs/how-it-works/code-transform.mdx +66 -54
- package/docs/how-it-works/encryption.mdx +25 -21
- package/docs/how-it-works/event-sourcing.mdx +53 -35
- package/docs/how-it-works/framework-integrations.mdx +12 -12
- package/docs/how-it-works/understanding-directives.mdx +21 -21
- package/package.json +7 -7
package/dist/set-attributes.js
CHANGED
|
@@ -33,7 +33,7 @@ export async function setAttributes(attrs, options = {}) {
|
|
|
33
33
|
await store.runReadyBarrier;
|
|
34
34
|
}
|
|
35
35
|
catch {
|
|
36
|
-
// intentional: ordering barrier only
|
|
36
|
+
// intentional: ordering barrier only, see above.
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
const world = await getWorldLazy();
|
|
@@ -57,4 +57,4 @@ export async function setAttributes(attrs, options = {}) {
|
|
|
57
57
|
},
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWF0dHJpYnV0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2V0LWF0dHJpYnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLM0Q7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FDakMsS0FBeUMsRUFDekMsVUFBZ0MsRUFBRTtJQUVsQyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQztJQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksVUFBVSxDQUNsQiwrRUFBK0U7WUFDN0UsbURBQW1ELENBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcseUJBQXlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTztJQUVqQyxvRUFBb0U7SUFDcEUsNkVBQTZFO0lBQzdFLDBFQUEwRTtJQUMxRSw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLDhFQUE4RTtJQUM5RSxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDOUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLGlEQUFpRDtRQUNuRCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUM7SUFDbkMsNkVBQTZFO0lBQzdFLDBFQUEwRTtJQUMxRSw2RUFBNkU7SUFDN0Usb0VBQW9FO0lBQ3BFLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQy9CLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsU0FBUyxFQUFFO1lBQ1QsT0FBTztZQUNQLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNO2dCQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPO2FBQ3BDO1lBQ0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxJQUFJO2dCQUMxQyxDQUFDLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUU7Z0JBQ25DLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYXRhbEVycm9yIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgeyBTUEVDX1ZFUlNJT05fQ1VSUkVOVCB9IGZyb20gJ0B3b3JrZmxvdy93b3JsZCc7XG5pbXBvcnQgeyBub3JtYWxpemVBdHRyaWJ1dGVDaGFuZ2VzIH0gZnJvbSAnLi9hdHRyaWJ1dGUtY2hhbmdlcy5qcyc7XG5pbXBvcnQgeyBnZXRXb3JsZExhenkgfSBmcm9tICcuL3J1bnRpbWUvZ2V0LXdvcmxkLWxhenkuanMnO1xuaW1wb3J0IHsgY29udGV4dFN0b3JhZ2UgfSBmcm9tICcuL3N0ZXAvY29udGV4dC1zdG9yYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgU2V0QXR0cmlidXRlc09wdGlvbnMgfSBmcm9tICcuL3dvcmtmbG93L3NldC1hdHRyaWJ1dGVzLmpzJztcblxuZXhwb3J0IHR5cGUgeyBTZXRBdHRyaWJ1dGVzT3B0aW9ucyB9O1xuXG4vKipcbiAqIEhvc3Qtc2lkZSBpbXBsZW1lbnRhdGlvbiBmb3IgYHNldEF0dHJpYnV0ZXNgLiBXb3JrZmxvdyBib2RpZXMgcmVzb2x2ZVxuICogdG8gYC4vd29ya2Zsb3cvc2V0LWF0dHJpYnV0ZXMudHNgIHZpYSB0aGUgYHdvcmtmbG93YCBwYWNrYWdlLWV4cG9ydHNcbiAqIGNvbmRpdGlvbjsgc3RlcCBib2RpZXMgcmVzb2x2ZSBoZXJlIGFuZCBjYW4gcGVyZm9ybSB0aGUgd29ybGQgd3JpdGVcbiAqIGRpcmVjdGx5IGJlY2F1c2UgdGhleSBhbHJlYWR5IHJ1biBpbiBob3N0IGNvbnRleHQuXG4gKlxuICogUGxhaW4gYXBwbGljYXRpb24gY29kZSBzdGlsbCBoYXMgbm8gYWN0aXZlIHdvcmtmbG93IHJ1biwgc28gaXQgdGhyb3dzXG4gKiBhIGNsZWFyIGBGYXRhbEVycm9yYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldEF0dHJpYnV0ZXMoXG4gIGF0dHJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+LFxuICBvcHRpb25zOiBTZXRBdHRyaWJ1dGVzT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgc3RvcmUgPSBjb250ZXh0U3RvcmFnZS5nZXRTdG9yZSgpO1xuICBjb25zdCBydW5JZCA9IHN0b3JlPy53b3JrZmxvd01ldGFkYXRhPy53b3JrZmxvd1J1bklkO1xuICBpZiAoIXJ1bklkKSB7XG4gICAgdGhyb3cgbmV3IEZhdGFsRXJyb3IoXG4gICAgICBcInNldEF0dHJpYnV0ZXMoKSBtdXN0IGJlIGNhbGxlZCBmcm9tIGEgJ3VzZSB3b3JrZmxvdycgb3IgJ3VzZSBzdGVwJyBmdW5jdGlvbi4gXCIgK1xuICAgICAgICAnQ2FsbGluZyBpdCBmcm9tIHBsYWluIGhvc3QgY29kZSBpcyBub3Qgc3VwcG9ydGVkLidcbiAgICApO1xuICB9XG5cbiAgY29uc3QgY2hhbmdlcyA9IG5vcm1hbGl6ZUF0dHJpYnV0ZUNoYW5nZXMoYXR0cnMsIG9wdGlvbnMpO1xuICBpZiAoY2hhbmdlcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAvLyBUdXJibyBvcHRpbWlzdGljIHN0YXJ0IHJ1bnMgdGhlIHN0ZXAgYm9keSBiZWZvcmUgdGhlIGJhY2tncm91bmRlZFxuICAvLyBgcnVuX3N0YXJ0ZWRgIGlzIGR1cmFibGUuIE9yZGVyIHRoaXMgYGF0dHJfc2V0YCBhZnRlciB0aGUgcnVuIGV4aXN0cyBzbyBpdFxuICAvLyBuZXZlciByZWFjaGVzIHRoZSBXb3JsZCBiZWZvcmUgdGhlIHJ1biBkb2VzICh3aGljaCB3b3VsZCBiZSByZWplY3RlZCBhc1xuICAvLyBydW4tbm90LWZvdW5kKS4gQSBuby1vcCBvdXRzaWRlIHR1cmJvIChiYXJyaWVyIHVuZGVmaW5lZCkgYW5kIG9uIHRoZSBhd2FpdFxuICAvLyBwYXRoLiBUaGUgcmVqZWN0aW9uIGlzIHN3YWxsb3dlZCBmb3Igb3JkZXJpbmcgb25seTogaWYgYHJ1bl9zdGFydGVkYCB0cnVseVxuICAvLyBmYWlsZWQgdGhlIHJ1biBkb2VzIG5vdCBleGlzdCwgc28gdGhlIGNyZWF0ZSBiZWxvdyBzdXJmYWNlcyB0aGUgcmVhbCBlcnJvci5cbiAgaWYgKHN0b3JlLnJ1blJlYWR5QmFycmllcikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzdG9yZS5ydW5SZWFkeUJhcnJpZXI7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBpbnRlbnRpb25hbDogb3JkZXJpbmcgYmFycmllciBvbmx5LCBzZWUgYWJvdmUuXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgd29ybGQgPSBhd2FpdCBnZXRXb3JsZExhenkoKTtcbiAgLy8gRGVsaWJlcmF0ZWx5IHVuZ3VhcmRlZCwgdW5saWtlIHRoZSBhdHRyX3NldCBhIHN1c3BlbnNpb24gd3JpdGVzOiB0aGlzIGNhbGxcbiAgLy8gcnVucyBpbnNpZGUgYSBzdGVwIGJvZHksIHdoaWNoIGhvbGRzIG5vIHJlcGxheSBzbmFwc2hvdCwgc28gdGhlcmUgaXMgbm9cbiAgLy8gZXZlbnQgbG9nIHRvIGNvbXBhcmUgYWdhaW5zdCBhbmQgbm90aGluZyBhIHByZWNvbmRpdGlvbiBjb3VsZCBmZW5jZS4gSXQgaXNcbiAgLy8gYSBnZW51aW5lbHkgb3V0LW9mLWJhbmQgd3JpdGUgZnJvbSB0aGUgZXZlbnQgbG9nJ3MgcG9pbnQgb2Ygdmlldy5cbiAgYXdhaXQgd29ybGQuZXZlbnRzLmNyZWF0ZShydW5JZCwge1xuICAgIGV2ZW50VHlwZTogJ2F0dHJfc2V0JyxcbiAgICBzcGVjVmVyc2lvbjogU1BFQ19WRVJTSU9OX0NVUlJFTlQsXG4gICAgZXZlbnREYXRhOiB7XG4gICAgICBjaGFuZ2VzLFxuICAgICAgd3JpdGVyOiB7XG4gICAgICAgIHR5cGU6ICdzdGVwJyxcbiAgICAgICAgc3RlcElkOiBzdG9yZS5zdGVwTWV0YWRhdGEuc3RlcElkLFxuICAgICAgICBhdHRlbXB0OiBzdG9yZS5zdGVwTWV0YWRhdGEuYXR0ZW1wdCxcbiAgICAgIH0sXG4gICAgICAuLi4ob3B0aW9ucy5hbGxvd1Jlc2VydmVkQXR0cmlidXRlcyA9PT0gdHJ1ZVxuICAgICAgICA/IHsgYWxsb3dSZXNlcnZlZEF0dHJpYnV0ZXM6IHRydWUgfVxuICAgICAgICA6IHt9KSxcbiAgICB9LFxuICB9KTtcbn1cbiJdfQ==
|
package/dist/source-map.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* present.
|
|
5
5
|
*
|
|
6
6
|
* Use this on the host side before evaluating workflow bundles inside
|
|
7
|
-
* the QuickJS VM
|
|
7
|
+
* the QuickJS VM: the inline map can account for several MB of bundle
|
|
8
8
|
* text (measured ~30%+ of VM heap bytes on the example workbench's
|
|
9
9
|
* bundle), and the VM never needs it; only host-side `remapErrorStack`
|
|
10
10
|
* reads the map (and it can do so against the original, unstripped
|
package/dist/source-map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-map.d.ts","sourceRoot":"","sources":["../src/source-map.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAqBjE;AA4GD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAsDR"}
|
package/dist/source-map.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { originalPositionFor, TraceMap } from '@jridgewell/trace-mapping';
|
|
2
|
+
import { globalSingleton } from '@workflow/utils';
|
|
2
3
|
/** Marker prefix of an inline source map comment emitted by bundlers. */
|
|
3
4
|
const INLINE_SOURCE_MAP_MARKER = '//# sourceMappingURL=data:application/json;base64,';
|
|
4
5
|
/**
|
|
@@ -7,7 +8,7 @@ const INLINE_SOURCE_MAP_MARKER = '//# sourceMappingURL=data:application/json;bas
|
|
|
7
8
|
* present.
|
|
8
9
|
*
|
|
9
10
|
* Use this on the host side before evaluating workflow bundles inside
|
|
10
|
-
* the QuickJS VM
|
|
11
|
+
* the QuickJS VM: the inline map can account for several MB of bundle
|
|
11
12
|
* text (measured ~30%+ of VM heap bytes on the example workbench's
|
|
12
13
|
* bundle), and the VM never needs it; only host-side `remapErrorStack`
|
|
13
14
|
* reads the map (and it can do so against the original, unstripped
|
|
@@ -95,17 +96,22 @@ function extractInlineSourceMapBase64(source) {
|
|
|
95
96
|
* Keyed by the bundle `code`. Insertion-ordered LRU capped at `MAX_TRACERS`,
|
|
96
97
|
* mirroring `vm/script-cache.ts`: production serves a single build-time bundle
|
|
97
98
|
* literal for the process lifetime, while dev/watch produces a new bundle
|
|
98
|
-
* string per edit
|
|
99
|
+
* string per edit; the bound keeps the few most-recent ones and evicts the
|
|
99
100
|
* rest instead of pinning every historical version.
|
|
100
101
|
*/
|
|
101
|
-
|
|
102
|
+
// On `globalThis` (see `globalSingleton`): the cache exists to avoid re-parsing
|
|
103
|
+
// one build-time bundle for the life of the process, which per-copy state would
|
|
104
|
+
// do once per bundler layer.
|
|
105
|
+
const tracers = globalSingleton('@workflow/core//sourceMapTracers', 1, () => ({
|
|
106
|
+
byCode: new Map(),
|
|
107
|
+
}));
|
|
102
108
|
const MAX_TRACERS = 8;
|
|
103
109
|
function getTraceMapForCode(workflowCode) {
|
|
104
|
-
const cached =
|
|
110
|
+
const cached = tracers.byCode.get(workflowCode);
|
|
105
111
|
if (cached !== undefined) {
|
|
106
112
|
// Move to most-recently-used position (end of insertion order).
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
tracers.byCode.delete(workflowCode);
|
|
114
|
+
tracers.byCode.set(workflowCode, cached);
|
|
109
115
|
return cached;
|
|
110
116
|
}
|
|
111
117
|
let tracer = null;
|
|
@@ -118,18 +124,18 @@ function getTraceMapForCode(workflowCode) {
|
|
|
118
124
|
tracer = new TraceMap(sourceMapData);
|
|
119
125
|
}
|
|
120
126
|
catch {
|
|
121
|
-
// Malformed inline map
|
|
127
|
+
// Malformed inline map: treat as absent so we don't retry parsing it.
|
|
122
128
|
tracer = null;
|
|
123
129
|
}
|
|
124
130
|
}
|
|
125
|
-
|
|
131
|
+
tracers.byCode.set(workflowCode, tracer);
|
|
126
132
|
// Evict the least-recently-used entries when over the cap. New entries are
|
|
127
133
|
// appended at the end, so the oldest live at the front.
|
|
128
|
-
while (
|
|
129
|
-
const oldest =
|
|
134
|
+
while (tracers.byCode.size > MAX_TRACERS) {
|
|
135
|
+
const oldest = tracers.byCode.keys().next().value;
|
|
130
136
|
if (oldest === undefined)
|
|
131
137
|
break;
|
|
132
|
-
|
|
138
|
+
tracers.byCode.delete(oldest);
|
|
133
139
|
}
|
|
134
140
|
return tracer;
|
|
135
141
|
}
|
|
@@ -191,4 +197,4 @@ export function remapErrorStack(stack, filename, workflowCode) {
|
|
|
191
197
|
return stack;
|
|
192
198
|
}
|
|
193
199
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zb3VyY2UtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRSx5RUFBeUU7QUFDekUsTUFBTSx3QkFBd0IsR0FDNUIsb0RBQW9ELENBQUM7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxZQUFvQjtJQUN2RCxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDL0QsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQUUsT0FBTyxZQUFZLENBQUM7SUFDcEMsa0VBQWtFO0lBQ2xFLCtEQUErRDtJQUMvRCxxRUFBcUU7SUFDckUscUJBQXFCO0lBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUM7SUFDOUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUUsQ0FBQyxFQUFFLENBQUM7SUFDOUQsSUFBSSxDQUFDLEtBQUssWUFBWTtRQUFFLE9BQU8sWUFBWSxDQUFDO0lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENB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QUksRUFBRSxDQUFDO2dCQUM5QyxNQUFNLElBQUksR0FBRyxZQUFZLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUM7Z0JBQzFELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RFLE9BQU8sVUFBVSxJQUFJLEtBQUssUUFBUSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ3ZFLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxDQUFDLGdDQUFnQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1Asd0RBQXdEO1FBQ3hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvcmlnaW5hbFBvc2l0aW9uRm9yLCBUcmFjZU1hcCB9IGZyb20gJ0BqcmlkZ2V3ZWxsL3RyYWNlLW1hcHBpbmcnO1xuXG4vKiogTWFya2VyIHByZWZpeCBvZiBhbiBpbmxpbmUgc291cmNlIG1hcCBjb21tZW50IGVtaXR0ZWQgYnkgYnVuZGxlcnMuICovXG5jb25zdCBJTkxJTkVfU09VUkNFX01BUF9NQVJLRVIgPVxuICAnLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwnO1xuXG4vKipcbiAqIFN0cmlwIHRoZSB0cmFpbGluZyBgLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTrigKZgIGNvbW1lbnQgZnJvbSBhIEpTXG4gKiBidW5kbGUuIFJldHVybnMgdGhlIGlucHV0IHVuY2hhbmdlZCBpZiBubyB0cmFpbGluZyBpbmxpbmUgbWFwIGlzXG4gKiBwcmVzZW50LlxuICpcbiAqIFVzZSB0aGlzIG9uIHRoZSBob3N0IHNpZGUgYmVmb3JlIGV2YWx1YXRpbmcgd29ya2Zsb3cgYnVuZGxlcyBpbnNpZGVcbiAqIHRoZSBRdWlja0pTIFZNIOKAlCB0aGUgaW5saW5lIG1hcCBjYW4gYWNjb3VudCBmb3Igc2V2ZXJhbCBNQiBvZiBidW5kbGVcbiAqIHRleHQgKG1lYXN1cmVkIH4zMCUrIG9mIFZNIGhlYXAgYnl0ZXMgb24gdGhlIGV4YW1wbGUgd29ya2JlbmNoJ3NcbiAqIGJ1bmRsZSksIGFuZCB0aGUgVk0gbmV2ZXIgbmVlZHMgaXQ7IG9ubHkgaG9zdC1zaWRlIGByZW1hcEVycm9yU3RhY2tgXG4gKiByZWFkcyB0aGUgbWFwIChhbmQgaXQgY2FuIGRvIHNvIGFnYWluc3QgdGhlIG9yaWdpbmFsLCB1bnN0cmlwcGVkXG4gKiBzdHJpbmcpLlxuICpcbiAqIEltcGxlbWVudGVkIGFzIGEgbGluZWFyIGBsYXN0SW5kZXhPZmAgKyBjaGFyYWN0ZXIgc2NhbiByYXRoZXIgdGhhbiBhXG4gKiByZWdleDogb24gd2VicGFjayBkZXYtc2VydmVyIGJ1bmRsZXMgKHRlbnMgb2YgTUIsIHdpdGggaHVuZHJlZHMgb2ZcbiAqIHBlci1tb2R1bGUgaW5saW5lIG1hcCBjb21tZW50cyBlbWJlZGRlZCBpbiBldmFsIHN0cmluZ3MpIGFcbiAqIGBTdHJpbmcucmVwbGFjZWAgcmVnZXggb3ZlciB0aGUgYnVuZGxlIGJsb3dzIFY4J3MgY2FsbCBzdGFja1xuICogKFwiUmFuZ2VFcnJvcjogTWF4aW11bSBjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRcIiksIHdlZGdpbmcgZXZlcnlcbiAqIHdvcmtmbG93IGludm9jYXRpb24gb24gdGhhdCBmcmFtZXdvcmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcElubGluZVNvdXJjZU1hcCh3b3JrZmxvd0NvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGlkeCA9IHdvcmtmbG93Q29kZS5sYXN0SW5kZXhPZihJTkxJTkVfU09VUkNFX01BUF9NQVJLRVIpO1xuICBpZiAoaWR4ID09PSAtMSkgcmV0dXJuIHdvcmtmbG93Q29kZTtcbiAgLy8gT25seSBzdHJpcCB3aGVuIHRoZSBjb21tZW50IGlzIHRoZSBUUkFJTElORyBjb250ZW50OiBldmVyeXRoaW5nXG4gIC8vIGFmdGVyIHRoZSBtYXJrZXIgbXVzdCBiZSBiYXNlNjQgcGF5bG9hZCBmb2xsb3dlZCBieSBvcHRpb25hbFxuICAvLyB3aGl0ZXNwYWNlLiBBIG1pZC1idW5kbGUgb2NjdXJyZW5jZSAoZS5nLiBpbnNpZGUgYSBzdHJpbmcgbGl0ZXJhbClcbiAgLy8gaXMgbGVmdCB1bnRvdWNoZWQuXG4gIGxldCBpID0gaWR4ICsgSU5MSU5FX1NPVVJDRV9NQVBfTUFSS0VSLmxlbmd0aDtcbiAgY29uc3QgcGF5bG9hZFN0YXJ0ID0gaTtcbiAgY29uc3QgbiA9IHdvcmtmbG93Q29kZS5sZW5ndGg7XG4gIHdoaWxlIChpIDwgbiAmJiBpc0Jhc2U2NENoYXIod29ya2Zsb3dDb2RlLmNoYXJDb2RlQXQoaSkpKSBpKys7XG4gIGlmIChpID09PSBwYXlsb2FkU3RhcnQpIHJldHVybiB3b3JrZmxvd0NvZGU7XG4gIHdoaWxlIChpIDwgbikge1xuICAgIGNvbnN0IGMgPSB3b3JrZmxvd0NvZGUuY2hhckNvZGVBdChpKTtcbiAgICAvLyBzcGFjZSwgdGFiLCBuZXdsaW5lLCBjYXJyaWFnZSByZXR1cm5cbiAgICBpZiAoYyAhPT0gMHgyMCAmJiBjICE9PSAweDA5ICYmIGMgIT09IDB4MGEgJiYgYyAhPT0gMHgwZCkge1xuICAgICAgcmV0dXJuIHdvcmtmbG93Q29kZTtcbiAgICB9XG4gICAgaSsrO1xuICB9XG4gIHJldHVybiB3b3JrZmxvd0NvZGUuc2xpY2UoMCwgaWR4KTtcbn1cblxuZnVuY3Rpb24gaXNCYXNlNjRDaGFyKGNvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIChjb2RlID49IDB4NDEgJiYgY29kZSA8PSAweDVhKSB8fFxuICAgIChjb2RlID49IDB4NjEgJiYgY29kZSA8PSAweDdhKSB8fFxuICAgIChjb2RlID49IDB4MzAgJiYgY29kZSA8PSAweDM5KSB8fFxuICAgIGNvZGUgPT09IDB4MmIgfHxcbiAgICBjb2RlID09PSAweDJmIHx8XG4gICAgY29kZSA9PT0gMHgzZFxuICApO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SW5saW5lU291cmNlTWFwQmFzZTY0KHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc291cmNlTWFwUHJlZml4ID0gJy8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbic7XG4gIGNvbnN0IGJhc2U2NE1hcmtlciA9ICc7YmFzZTY0LCc7XG4gIGxldCBzY2FuRnJvbSA9IDA7XG5cbiAgd2hpbGUgKHNjYW5Gcm9tIDwgc291cmNlLmxlbmd0aCkge1xuICAgIGNvbnN0IHByZWZpeElkeCA9IHNvdXJjZS5pbmRleE9mKHNvdXJjZU1hcFByZWZpeCwgc2NhbkZyb20pO1xuICAgIGlmIChwcmVmaXhJZHggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYmFzZTY0U3RhcnQgPSBzb3VyY2UuaW5kZXhPZihcbiAgICAgIGJhc2U2NE1hcmtlcixcbiAgICAgIHByZWZpeElkeCArIHNvdXJjZU1hcFByZWZpeC5sZW5ndGhcbiAgICApO1xuICAgIGlmIChiYXNlNjRTdGFydCA9PT0gLTEpIHtcbiAgICAgIHNjYW5Gcm9tID0gcHJlZml4SWR4ICsgc291cmNlTWFwUHJlZml4Lmxlbmd0aDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hQmVmb3JlID0gc291cmNlLmluZGV4T2YoJywnLCBwcmVmaXhJZHgpO1xuICAgIGlmIChjb21tYUJlZm9yZSAhPT0gLTEgJiYgY29tbWFCZWZvcmUgPCBiYXNlNjRTdGFydCkge1xuICAgICAgc2NhbkZyb20gPSBiYXNlNjRTdGFydCArIGJhc2U2NE1hcmtlci5sZW5ndGg7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVN0YXJ0ID0gYmFzZTY0U3RhcnQgKyBiYXNlNjRNYXJrZXIubGVuZ3RoO1xuICAgIGxldCB2YWx1ZUVuZCA9IHZhbHVlU3RhcnQ7XG4gICAgd2hpbGUgKHZhbHVlRW5kIDwgc291cmNlLmxlbmd0aCkge1xuICAgICAgaWYgKCFpc0Jhc2U2NENoYXIoc291cmNlLmNoYXJDb2RlQXQodmFsdWVFbmQpKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHZhbHVlRW5kKys7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlRW5kID4gdmFsdWVTdGFydCkge1xuICAgICAgcmV0dXJuIHNvdXJjZS5zbGljZSh2YWx1ZVN0YXJ0LCB2YWx1ZUVuZCk7XG4gICAgfVxuICAgIHNjYW5Gcm9tID0gdmFsdWVFbmQ7XG4gIH1cbn1cblxuLyoqXG4gKiBNZW1vaXplZCBgVHJhY2VNYXAgfCBudWxsYCBwZXIgd29ya2Zsb3cgYnVuZGxlLiBgbnVsbGAgcmVjb3JkcyBcInRoaXMgYnVuZGxlXG4gKiBoYXMgbm8gdXNhYmxlIGlubGluZSBzb3VyY2UgbWFwXCIgc28gcmVwZWF0ZWQgZmFpbHVyZXMgZG9uJ3QgcmVzY2FuIHRoZSB3aG9sZVxuICogKHBvdGVudGlhbGx5IG11bHRpLU1CKSBidW5kbGUgc3RyaW5nIG9yIHJlLXBhcnNlIHRoZSBtYXAuIFRoaXMgbWF0dGVycyBtb3N0XG4gKiBpbiBwcm9kdWN0aW9uLCB3aGVyZSBzb3VyY2UgbWFwcyBhcmUgb2ZmIGJ5IGRlZmF1bHQ6IHRoZSBmaXJzdCBmYWlsdXJlIHNjYW5zXG4gKiBvbmNlIGFuZCBjYWNoZXMgYG51bGxgLCBldmVyeSBsYXRlciBmYWlsdXJlIGlzIE8oMSkuXG4gKlxuICogS2V5ZWQgYnkgdGhlIGJ1bmRsZSBgY29kZWAuIEluc2VydGlvbi1vcmRlcmVkIExSVSBjYXBwZWQgYXQgYE1BWF9UUkFDRVJTYCxcbiAqIG1pcnJvcmluZyBgdm0vc2NyaXB0LWNhY2hlLnRzYDogcHJvZHVjdGlvbiBzZXJ2ZXMgYSBzaW5nbGUgYnVpbGQtdGltZSBidW5kbGVcbiAqIGxpdGVyYWwgZm9yIHRoZSBwcm9jZXNzIGxpZmV0aW1lLCB3aGlsZSBkZXYvd2F0Y2ggcHJvZHVjZXMgYSBuZXcgYnVuZGxlXG4gKiBzdHJpbmcgcGVyIGVkaXQg4oCUIHRoZSBib3VuZCBrZWVwcyB0aGUgZmV3IG1vc3QtcmVjZW50IG9uZXMgYW5kIGV2aWN0cyB0aGVcbiAqIHJlc3QgaW5zdGVhZCBvZiBwaW5uaW5nIGV2ZXJ5IGhpc3RvcmljYWwgdmVyc2lvbi5cbiAqL1xuY29uc3QgdHJhY2VyQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgVHJhY2VNYXAgfCBudWxsPigpO1xuY29uc3QgTUFYX1RSQUNFUlMgPSA4O1xuXG5mdW5jdGlvbiBnZXRUcmFjZU1hcEZvckNvZGUod29ya2Zsb3dDb2RlOiBzdHJpbmcpOiBUcmFjZU1hcCB8IG51bGwge1xuICBjb25zdCBjYWNoZWQgPSB0cmFjZXJDYWNoZS5nZXQod29ya2Zsb3dDb2RlKTtcbiAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gTW92ZSB0byBtb3N0LXJlY2VudGx5LXVzZWQgcG9zaXRpb24gKGVuZCBvZiBpbnNlcnRpb24gb3JkZXIpLlxuICAgIHRyYWNlckNhY2hlLmRlbGV0ZSh3b3JrZmxvd0NvZGUpO1xuICAgIHRyYWNlckNhY2hlLnNldCh3b3JrZmxvd0NvZGUsIGNhY2hlZCk7XG4gICAgcmV0dXJuIGNhY2hlZDtcbiAgfVxuXG4gIGxldCB0cmFjZXI6IFRyYWNlTWFwIHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0IGJhc2U2NCA9IGV4dHJhY3RJbmxpbmVTb3VyY2VNYXBCYXNlNjQod29ya2Zsb3dDb2RlKTtcbiAgaWYgKGJhc2U2NCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzb3VyY2VNYXBKc29uID0gQnVmZmVyLmZyb20oYmFzZTY0LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICBjb25zdCBzb3VyY2VNYXBEYXRhID0gSlNPTi5wYXJzZShzb3VyY2VNYXBKc29uKTtcbiAgICAgIC8vIFVzZSBUcmFjZU1hcCAocHVyZSBKUywgbm8gV0FTTSByZXF1aXJlZClcbiAgICAgIHRyYWNlciA9IG5ldyBUcmFjZU1hcChzb3VyY2VNYXBEYXRhKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIE1hbGZvcm1lZCBpbmxpbmUgbWFwIOKAlCB0cmVhdCBhcyBhYnNlbnQgc28gd2UgZG9uJ3QgcmV0cnkgcGFyc2luZyBpdC5cbiAgICAgIHRyYWNlciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgdHJhY2VyQ2FjaGUuc2V0KHdvcmtmbG93Q29kZSwgdHJhY2VyKTtcbiAgLy8gRXZpY3QgdGhlIGxlYXN0LXJlY2VudGx5LXVzZWQgZW50cmllcyB3aGVuIG92ZXIgdGhlIGNhcC4gTmV3IGVudHJpZXMgYXJlXG4gIC8vIGFwcGVuZGVkIGF0IHRoZSBlbmQsIHNvIHRoZSBvbGRlc3QgbGl2ZSBhdCB0aGUgZnJvbnQuXG4gIHdoaWxlICh0cmFjZXJDYWNoZS5zaXplID4gTUFYX1RSQUNFUlMpIHtcbiAgICBjb25zdCBvbGRlc3QgPSB0cmFjZXJDYWNoZS5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgIGlmIChvbGRlc3QgPT09IHVuZGVmaW5lZCkgYnJlYWs7XG4gICAgdHJhY2VyQ2FjaGUuZGVsZXRlKG9sZGVzdCk7XG4gIH1cbiAgcmV0dXJuIHRyYWNlcjtcbn1cblxuLyoqXG4gKiBSZW1hcHMgYW4gZXJyb3Igc3RhY2sgdHJhY2UgdXNpbmcgaW5saW5lIHNvdXJjZSBtYXBzIHRvIHNob3cgb3JpZ2luYWwgc291cmNlIGxvY2F0aW9ucy5cbiAqXG4gKiBEZWdyYWRlcyBncmFjZWZ1bGx5IHdoZW4gdGhlIGJ1bmRsZSBoYXMgbm8gaW5saW5lIHNvdXJjZSBtYXAgKGUuZy4gcHJvZHVjdGlvblxuICogYnVpbGRzLCB3aGVyZSBtYXBzIGFyZSBvZmYgYnkgZGVmYXVsdCk6IHRoZSBvcmlnaW5hbCBzdGFjayBpcyByZXR1cm5lZFxuICogdW5jaGFuZ2VkLiBBIGNoZWFwIGBmaWxlbmFtZWAgcHJlc2VuY2UgY2hlY2sgc2tpcHMgYWxsIHdvcmsgd2hlbiBubyBmcmFtZVxuICogcmVmZXJlbmNlcyB0aGUgd29ya2Zsb3cgZmlsZSwgYW5kIHBhcnNlZCBzb3VyY2UgbWFwcyBhcmUgbWVtb2l6ZWQgcGVyIGJ1bmRsZS5cbiAqXG4gKiBAcGFyYW0gc3RhY2sgLSBUaGUgZXJyb3Igc3RhY2sgdHJhY2UgdG8gcmVtYXBcbiAqIEBwYXJhbSBmaWxlbmFtZSAtIFRoZSB3b3JrZmxvdyBmaWxlbmFtZSB0byBtYXRjaCBpbiBzdGFjayBmcmFtZXNcbiAqIEBwYXJhbSB3b3JrZmxvd0NvZGUgLSBUaGUgd29ya2Zsb3cgYnVuZGxlIGNvZGUgY29udGFpbmluZyBpbmxpbmUgc291cmNlIG1hcHNcbiAqIEByZXR1cm5zIFRoZSByZW1hcHBlZCBzdGFjayB0cmFjZSB3aXRoIG9yaWdpbmFsIHNvdXJjZSBsb2NhdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbWFwRXJyb3JTdGFjayhcbiAgc3RhY2s6IHN0cmluZyxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgd29ya2Zsb3dDb2RlOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIC8vIE5vdGhpbmcgdG8gcmVtYXAgaWYgbm8gZnJhbWUgcmVmZXJlbmNlcyB0aGUgd29ya2Zsb3cgZmlsZS4gQXZvaWRzIHRvdWNoaW5nXG4gIC8vIHRoZSAobGFyZ2UpIGJ1bmRsZSBzdHJpbmcgZW50aXJlbHkgZm9yIGVycm9ycyB0aHJvd24gZWxzZXdoZXJlLlxuICBpZiAoIXN0YWNrLmluY2x1ZGVzKGZpbGVuYW1lKSkge1xuICAgIHJldHVybiBzdGFjaztcbiAgfVxuXG4gIGNvbnN0IHRyYWNlciA9IGdldFRyYWNlTWFwRm9yQ29kZSh3b3JrZmxvd0NvZGUpO1xuICBpZiAoIXRyYWNlcikge1xuICAgIHJldHVybiBzdGFjazsgLy8gTm8gc291cmNlIG1hcCBmb3VuZFxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBQYXJzZSBhbmQgcmVtYXAgZWFjaCBsaW5lIGluIHRoZSBzdGFjayB0cmFjZVxuICAgIGNvbnN0IGxpbmVzID0gc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IHJlbWFwcGVkTGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpID0+IHtcbiAgICAgIC8vIE1hdGNoIHN0YWNrIGZyYW1lczogXCJhdCBmdW5jdGlvbk5hbWUgKGZpbGVuYW1lOmxpbmU6Y29sdW1uKVwiIG9yIFwiYXQgZmlsZW5hbWU6bGluZTpjb2x1bW5cIlxuICAgICAgY29uc3QgZnJhbWVNYXRjaCA9IGxpbmUubWF0Y2goXG4gICAgICAgIC9eXFxzKmF0XFxzKyg/OiguKz8pXFxzK1xcKCk/KC4rPyk6KFxcZCspOihcXGQrKVxcKT8kL1xuICAgICAgKTtcbiAgICAgIGlmICghZnJhbWVNYXRjaCkge1xuICAgICAgICByZXR1cm4gbGluZTsgLy8gTm90IGEgc3RhY2sgZnJhbWUsIHJldHVybiBhcy1pc1xuICAgICAgfVxuXG4gICAgICBjb25zdCBbLCBmdW5jdGlvbk5hbWUsIGZpbGUsIGxpbmVTdHIsIGNvbFN0cl0gPSBmcmFtZU1hdGNoO1xuXG4gICAgICAvLyBPbmx5IHJlbWFwIGZyYW1lcyBmcm9tIG91ciB3b3JrZmxvdyBmaWxlXG4gICAgICBpZiAoIWZpbGUuaW5jbHVkZXMoZmlsZW5hbWUpKSB7XG4gICAgICAgIHJldHVybiBsaW5lO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW5lTnVtYmVyID0gcGFyc2VJbnQobGluZVN0ciwgMTApO1xuICAgICAgY29uc3QgY29sdW1uTnVtYmVyID0gcGFyc2VJbnQoY29sU3RyLCAxMCk7XG5cbiAgICAgIC8vIE1hcCB0byBvcmlnaW5hbCBzb3VyY2UgcG9zaXRpb25cbiAgICAgIGNvbnN0IG9yaWdpbmFsID0gb3JpZ2luYWxQb3NpdGlvbkZvcih0cmFjZXIsIHtcbiAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgY29sdW1uOiBjb2x1bW5OdW1iZXIsXG4gICAgICB9KTtcblxuICAgICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAmJiBvcmlnaW5hbC5saW5lICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGZ1bmMgPSBmdW5jdGlvbk5hbWUgfHwgb3JpZ2luYWwubmFtZSB8fCAnYW5vbnltb3VzJztcbiAgICAgICAgY29uc3QgY29sID0gb3JpZ2luYWwuY29sdW1uICE9PSBudWxsID8gb3JpZ2luYWwuY29sdW1uIDogY29sdW1uTnVtYmVyO1xuICAgICAgICByZXR1cm4gYCAgICBhdCAke2Z1bmN9ICgke29yaWdpbmFsLnNvdXJjZX06JHtvcmlnaW5hbC5saW5lfToke2NvbH0pYDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxpbmU7IC8vIENvdWxkbid0IG1hcCwgcmV0dXJuIG9yaWdpbmFsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVtYXBwZWRMaW5lcy5qb2luKCdcXG4nKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gSWYgc291cmNlIG1hcCBwcm9jZXNzaW5nIGZhaWxzLCByZXR1cm4gb3JpZ2luYWwgc3RhY2tcbiAgICByZXR1cm4gc3RhY2s7XG4gIH1cbn1cbiJdfQ==
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zb3VyY2UtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEQseUVBQXlFO0FBQ3pFLE1BQU0sd0JBQXdCLEdBQzVCLG9EQUFvRCxDQUFDO0FBRXZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQy9ELElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUFFLE9BQU8sWUFBWSxDQUFDO0lBQ3BDLGtFQUFrRTtJQUNsRSwrREFBK0Q7SUFDL0QscUVBQXFFO0lBQ3JFLHFCQUFxQjtJQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDO0lBQzlDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztJQUN2QixNQUFNLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFFLENBQUMsRUFBRSxDQUFDO0lBQzlELElBQUksQ0FBQyxLQUFLLFlBQVk7UUFBRSxPQUFPLFlBQVksQ0FBQztJQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJ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LENBQUMsQ0FBQztZQUN6QyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRTFDLGtDQUFrQztZQUNsQyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNDLElBQUksRUFBRSxVQUFVO2dCQUNoQixNQUFNLEVBQUUsWUFBWTthQUNyQixDQUFDLENBQUM7WUFFSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxJQUFJLEdBQUcsWUFBWSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO2dCQUMxRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUN0RSxPQUFPLFVBQVUsSUFBSSxLQUFLLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUN2RSxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxnQ0FBZ0M7UUFDL0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLHdEQUF3RDtRQUN4RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb3JpZ2luYWxQb3NpdGlvbkZvciwgVHJhY2VNYXAgfSBmcm9tICdAanJpZGdld2VsbC90cmFjZS1tYXBwaW5nJztcbmltcG9ydCB7IGdsb2JhbFNpbmdsZXRvbiB9IGZyb20gJ0B3b3JrZmxvdy91dGlscyc7XG5cbi8qKiBNYXJrZXIgcHJlZml4IG9mIGFuIGlubGluZSBzb3VyY2UgbWFwIGNvbW1lbnQgZW1pdHRlZCBieSBidW5kbGVycy4gKi9cbmNvbnN0IElOTElORV9TT1VSQ0VfTUFQX01BUktFUiA9XG4gICcvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCc7XG5cbi8qKlxuICogU3RyaXAgdGhlIHRyYWlsaW5nIGAvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOuKApmAgY29tbWVudCBmcm9tIGEgSlNcbiAqIGJ1bmRsZS4gUmV0dXJucyB0aGUgaW5wdXQgdW5jaGFuZ2VkIGlmIG5vIHRyYWlsaW5nIGlubGluZSBtYXAgaXNcbiAqIHByZXNlbnQuXG4gKlxuICogVXNlIHRoaXMgb24gdGhlIGhvc3Qgc2lkZSBiZWZvcmUgZXZhbHVhdGluZyB3b3JrZmxvdyBidW5kbGVzIGluc2lkZVxuICogdGhlIFF1aWNrSlMgVk06IHRoZSBpbmxpbmUgbWFwIGNhbiBhY2NvdW50IGZvciBzZXZlcmFsIE1CIG9mIGJ1bmRsZVxuICogdGV4dCAobWVhc3VyZWQgfjMwJSsgb2YgVk0gaGVhcCBieXRlcyBvbiB0aGUgZXhhbXBsZSB3b3JrYmVuY2gnc1xuICogYnVuZGxlKSwgYW5kIHRoZSBWTSBuZXZlciBuZWVkcyBpdDsgb25seSBob3N0LXNpZGUgYHJlbWFwRXJyb3JTdGFja2BcbiAqIHJlYWRzIHRoZSBtYXAgKGFuZCBpdCBjYW4gZG8gc28gYWdhaW5zdCB0aGUgb3JpZ2luYWwsIHVuc3RyaXBwZWRcbiAqIHN0cmluZykuXG4gKlxuICogSW1wbGVtZW50ZWQgYXMgYSBsaW5lYXIgYGxhc3RJbmRleE9mYCArIGNoYXJhY3RlciBzY2FuIHJhdGhlciB0aGFuIGFcbiAqIHJlZ2V4OiBvbiB3ZWJwYWNrIGRldi1zZXJ2ZXIgYnVuZGxlcyAodGVucyBvZiBNQiwgd2l0aCBodW5kcmVkcyBvZlxuICogcGVyLW1vZHVsZSBpbmxpbmUgbWFwIGNvbW1lbnRzIGVtYmVkZGVkIGluIGV2YWwgc3RyaW5ncykgYVxuICogYFN0cmluZy5yZXBsYWNlYCByZWdleCBvdmVyIHRoZSBidW5kbGUgYmxvd3MgVjgncyBjYWxsIHN0YWNrXG4gKiAoXCJSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZFwiKSwgd2VkZ2luZyBldmVyeVxuICogd29ya2Zsb3cgaW52b2NhdGlvbiBvbiB0aGF0IGZyYW1ld29yay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwSW5saW5lU291cmNlTWFwKHdvcmtmbG93Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaWR4ID0gd29ya2Zsb3dDb2RlLmxhc3RJbmRleE9mKElOTElORV9TT1VSQ0VfTUFQX01BUktFUik7XG4gIGlmIChpZHggPT09IC0xKSByZXR1cm4gd29ya2Zsb3dDb2RlO1xuICAvLyBPbmx5IHN0cmlwIHdoZW4gdGhlIGNvbW1lbnQgaXMgdGhlIFRSQUlMSU5HIGNvbnRlbnQ6IGV2ZXJ5dGhpbmdcbiAgLy8gYWZ0ZXIgdGhlIG1hcmtlciBtdXN0IGJlIGJhc2U2NCBwYXlsb2FkIGZvbGxvd2VkIGJ5IG9wdGlvbmFsXG4gIC8vIHdoaXRlc3BhY2UuIEEgbWlkLWJ1bmRsZSBvY2N1cnJlbmNlIChlLmcuIGluc2lkZSBhIHN0cmluZyBsaXRlcmFsKVxuICAvLyBpcyBsZWZ0IHVudG91Y2hlZC5cbiAgbGV0IGkgPSBpZHggKyBJTkxJTkVfU09VUkNFX01BUF9NQVJLRVIubGVuZ3RoO1xuICBjb25zdCBwYXlsb2FkU3RhcnQgPSBpO1xuICBjb25zdCBuID0gd29ya2Zsb3dDb2RlLmxlbmd0aDtcbiAgd2hpbGUgKGkgPCBuICYmIGlzQmFzZTY0Q2hhcih3b3JrZmxvd0NvZGUuY2hhckNvZGVBdChpKSkpIGkrKztcbiAgaWYgKGkgPT09IHBheWxvYWRTdGFydCkgcmV0dXJuIHdvcmtmbG93Q29kZTtcbiAgd2hpbGUgKGkgPCBuKSB7XG4gICAgY29uc3QgYyA9IHdvcmtmbG93Q29kZS5jaGFyQ29kZUF0KGkpO1xuICAgIC8vIHNwYWNlLCB0YWIsIG5ld2xpbmUsIGNhcnJpYWdlIHJldHVyblxuICAgIGlmIChjICE9PSAweDIwICYmIGMgIT09IDB4MDkgJiYgYyAhPT0gMHgwYSAmJiBjICE9PSAweDBkKSB7XG4gICAgICByZXR1cm4gd29ya2Zsb3dDb2RlO1xuICAgIH1cbiAgICBpKys7XG4gIH1cbiAgcmV0dXJuIHdvcmtmbG93Q29kZS5zbGljZSgwLCBpZHgpO1xufVxuXG5mdW5jdGlvbiBpc0Jhc2U2NENoYXIoY29kZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgKGNvZGUgPj0gMHg0MSAmJiBjb2RlIDw9IDB4NWEpIHx8XG4gICAgKGNvZGUgPj0gMHg2MSAmJiBjb2RlIDw9IDB4N2EpIHx8XG4gICAgKGNvZGUgPj0gMHgzMCAmJiBjb2RlIDw9IDB4MzkpIHx8XG4gICAgY29kZSA9PT0gMHgyYiB8fFxuICAgIGNvZGUgPT09IDB4MmYgfHxcbiAgICBjb2RlID09PSAweDNkXG4gICk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RJbmxpbmVTb3VyY2VNYXBCYXNlNjQoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzb3VyY2VNYXBQcmVmaXggPSAnLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uJztcbiAgY29uc3QgYmFzZTY0TWFya2VyID0gJztiYXNlNjQsJztcbiAgbGV0IHNjYW5Gcm9tID0gMDtcblxuICB3aGlsZSAoc2NhbkZyb20gPCBzb3VyY2UubGVuZ3RoKSB7XG4gICAgY29uc3QgcHJlZml4SWR4ID0gc291cmNlLmluZGV4T2Yoc291cmNlTWFwUHJlZml4LCBzY2FuRnJvbSk7XG4gICAgaWYgKHByZWZpeElkeCA9PT0gLTEpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBiYXNlNjRTdGFydCA9IHNvdXJjZS5pbmRleE9mKFxuICAgICAgYmFzZTY0TWFya2VyLFxuICAgICAgcHJlZml4SWR4ICsgc291cmNlTWFwUHJlZml4Lmxlbmd0aFxuICAgICk7XG4gICAgaWYgKGJhc2U2NFN0YXJ0ID09PSAtMSkge1xuICAgICAgc2NhbkZyb20gPSBwcmVmaXhJZHggKyBzb3VyY2VNYXBQcmVmaXgubGVuZ3RoO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFCZWZvcmUgPSBzb3VyY2UuaW5kZXhPZignLCcsIHByZWZpeElkeCk7XG4gICAgaWYgKGNvbW1hQmVmb3JlICE9PSAtMSAmJiBjb21tYUJlZm9yZSA8IGJhc2U2NFN0YXJ0KSB7XG4gICAgICBzY2FuRnJvbSA9IGJhc2U2NFN0YXJ0ICsgYmFzZTY0TWFya2VyLmxlbmd0aDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlU3RhcnQgPSBiYXNlNjRTdGFydCArIGJhc2U2NE1hcmtlci5sZW5ndGg7XG4gICAgbGV0IHZhbHVlRW5kID0gdmFsdWVTdGFydDtcbiAgICB3aGlsZSAodmFsdWVFbmQgPCBzb3VyY2UubGVuZ3RoKSB7XG4gICAgICBpZiAoIWlzQmFzZTY0Q2hhcihzb3VyY2UuY2hhckNvZGVBdCh2YWx1ZUVuZCkpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdmFsdWVFbmQrKztcbiAgICB9XG5cbiAgICBpZiAodmFsdWVFbmQgPiB2YWx1ZVN0YXJ0KSB7XG4gICAgICByZXR1cm4gc291cmNlLnNsaWNlKHZhbHVlU3RhcnQsIHZhbHVlRW5kKTtcbiAgICB9XG4gICAgc2NhbkZyb20gPSB2YWx1ZUVuZDtcbiAgfVxufVxuXG4vKipcbiAqIE1lbW9pemVkIGBUcmFjZU1hcCB8IG51bGxgIHBlciB3b3JrZmxvdyBidW5kbGUuIGBudWxsYCByZWNvcmRzIFwidGhpcyBidW5kbGVcbiAqIGhhcyBubyB1c2FibGUgaW5saW5lIHNvdXJjZSBtYXBcIiBzbyByZXBlYXRlZCBmYWlsdXJlcyBkb24ndCByZXNjYW4gdGhlIHdob2xlXG4gKiAocG90ZW50aWFsbHkgbXVsdGktTUIpIGJ1bmRsZSBzdHJpbmcgb3IgcmUtcGFyc2UgdGhlIG1hcC4gVGhpcyBtYXR0ZXJzIG1vc3RcbiAqIGluIHByb2R1Y3Rpb24sIHdoZXJlIHNvdXJjZSBtYXBzIGFyZSBvZmYgYnkgZGVmYXVsdDogdGhlIGZpcnN0IGZhaWx1cmUgc2NhbnNcbiAqIG9uY2UgYW5kIGNhY2hlcyBgbnVsbGAsIGV2ZXJ5IGxhdGVyIGZhaWx1cmUgaXMgTygxKS5cbiAqXG4gKiBLZXllZCBieSB0aGUgYnVuZGxlIGBjb2RlYC4gSW5zZXJ0aW9uLW9yZGVyZWQgTFJVIGNhcHBlZCBhdCBgTUFYX1RSQUNFUlNgLFxuICogbWlycm9yaW5nIGB2bS9zY3JpcHQtY2FjaGUudHNgOiBwcm9kdWN0aW9uIHNlcnZlcyBhIHNpbmdsZSBidWlsZC10aW1lIGJ1bmRsZVxuICogbGl0ZXJhbCBmb3IgdGhlIHByb2Nlc3MgbGlmZXRpbWUsIHdoaWxlIGRldi93YXRjaCBwcm9kdWNlcyBhIG5ldyBidW5kbGVcbiAqIHN0cmluZyBwZXIgZWRpdDsgdGhlIGJvdW5kIGtlZXBzIHRoZSBmZXcgbW9zdC1yZWNlbnQgb25lcyBhbmQgZXZpY3RzIHRoZVxuICogcmVzdCBpbnN0ZWFkIG9mIHBpbm5pbmcgZXZlcnkgaGlzdG9yaWNhbCB2ZXJzaW9uLlxuICovXG4vLyBPbiBgZ2xvYmFsVGhpc2AgKHNlZSBgZ2xvYmFsU2luZ2xldG9uYCk6IHRoZSBjYWNoZSBleGlzdHMgdG8gYXZvaWQgcmUtcGFyc2luZ1xuLy8gb25lIGJ1aWxkLXRpbWUgYnVuZGxlIGZvciB0aGUgbGlmZSBvZiB0aGUgcHJvY2Vzcywgd2hpY2ggcGVyLWNvcHkgc3RhdGUgd291bGRcbi8vIGRvIG9uY2UgcGVyIGJ1bmRsZXIgbGF5ZXIuXG5jb25zdCB0cmFjZXJzID0gZ2xvYmFsU2luZ2xldG9uKCdAd29ya2Zsb3cvY29yZS8vc291cmNlTWFwVHJhY2VycycsIDEsICgpID0+ICh7XG4gIGJ5Q29kZTogbmV3IE1hcDxzdHJpbmcsIFRyYWNlTWFwIHwgbnVsbD4oKSxcbn0pKTtcbmNvbnN0IE1BWF9UUkFDRVJTID0gODtcblxuZnVuY3Rpb24gZ2V0VHJhY2VNYXBGb3JDb2RlKHdvcmtmbG93Q29kZTogc3RyaW5nKTogVHJhY2VNYXAgfCBudWxsIHtcbiAgY29uc3QgY2FjaGVkID0gdHJhY2Vycy5ieUNvZGUuZ2V0KHdvcmtmbG93Q29kZSk7XG4gIGlmIChjYWNoZWQgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE1vdmUgdG8gbW9zdC1yZWNlbnRseS11c2VkIHBvc2l0aW9uIChlbmQgb2YgaW5zZXJ0aW9uIG9yZGVyKS5cbiAgICB0cmFjZXJzLmJ5Q29kZS5kZWxldGUod29ya2Zsb3dDb2RlKTtcbiAgICB0cmFjZXJzLmJ5Q29kZS5zZXQod29ya2Zsb3dDb2RlLCBjYWNoZWQpO1xuICAgIHJldHVybiBjYWNoZWQ7XG4gIH1cblxuICBsZXQgdHJhY2VyOiBUcmFjZU1hcCB8IG51bGwgPSBudWxsO1xuICBjb25zdCBiYXNlNjQgPSBleHRyYWN0SW5saW5lU291cmNlTWFwQmFzZTY0KHdvcmtmbG93Q29kZSk7XG4gIGlmIChiYXNlNjQpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc291cmNlTWFwSnNvbiA9IEJ1ZmZlci5mcm9tKGJhc2U2NCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgY29uc3Qgc291cmNlTWFwRGF0YSA9IEpTT04ucGFyc2Uoc291cmNlTWFwSnNvbik7XG4gICAgICAvLyBVc2UgVHJhY2VNYXAgKHB1cmUgSlMsIG5vIFdBU00gcmVxdWlyZWQpXG4gICAgICB0cmFjZXIgPSBuZXcgVHJhY2VNYXAoc291cmNlTWFwRGF0YSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBNYWxmb3JtZWQgaW5saW5lIG1hcDogdHJlYXQgYXMgYWJzZW50IHNvIHdlIGRvbid0IHJldHJ5IHBhcnNpbmcgaXQuXG4gICAgICB0cmFjZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNlcnMuYnlDb2RlLnNldCh3b3JrZmxvd0NvZGUsIHRyYWNlcik7XG4gIC8vIEV2aWN0IHRoZSBsZWFzdC1yZWNlbnRseS11c2VkIGVudHJpZXMgd2hlbiBvdmVyIHRoZSBjYXAuIE5ldyBlbnRyaWVzIGFyZVxuICAvLyBhcHBlbmRlZCBhdCB0aGUgZW5kLCBzbyB0aGUgb2xkZXN0IGxpdmUgYXQgdGhlIGZyb250LlxuICB3aGlsZSAodHJhY2Vycy5ieUNvZGUuc2l6ZSA+IE1BWF9UUkFDRVJTKSB7XG4gICAgY29uc3Qgb2xkZXN0ID0gdHJhY2Vycy5ieUNvZGUua2V5cygpLm5leHQoKS52YWx1ZTtcbiAgICBpZiAob2xkZXN0ID09PSB1bmRlZmluZWQpIGJyZWFrO1xuICAgIHRyYWNlcnMuYnlDb2RlLmRlbGV0ZShvbGRlc3QpO1xuICB9XG4gIHJldHVybiB0cmFjZXI7XG59XG5cbi8qKlxuICogUmVtYXBzIGFuIGVycm9yIHN0YWNrIHRyYWNlIHVzaW5nIGlubGluZSBzb3VyY2UgbWFwcyB0byBzaG93IG9yaWdpbmFsIHNvdXJjZSBsb2NhdGlvbnMuXG4gKlxuICogRGVncmFkZXMgZ3JhY2VmdWxseSB3aGVuIHRoZSBidW5kbGUgaGFzIG5vIGlubGluZSBzb3VyY2UgbWFwIChlLmcuIHByb2R1Y3Rpb25cbiAqIGJ1aWxkcywgd2hlcmUgbWFwcyBhcmUgb2ZmIGJ5IGRlZmF1bHQpOiB0aGUgb3JpZ2luYWwgc3RhY2sgaXMgcmV0dXJuZWRcbiAqIHVuY2hhbmdlZC4gQSBjaGVhcCBgZmlsZW5hbWVgIHByZXNlbmNlIGNoZWNrIHNraXBzIGFsbCB3b3JrIHdoZW4gbm8gZnJhbWVcbiAqIHJlZmVyZW5jZXMgdGhlIHdvcmtmbG93IGZpbGUsIGFuZCBwYXJzZWQgc291cmNlIG1hcHMgYXJlIG1lbW9pemVkIHBlciBidW5kbGUuXG4gKlxuICogQHBhcmFtIHN0YWNrIC0gVGhlIGVycm9yIHN0YWNrIHRyYWNlIHRvIHJlbWFwXG4gKiBAcGFyYW0gZmlsZW5hbWUgLSBUaGUgd29ya2Zsb3cgZmlsZW5hbWUgdG8gbWF0Y2ggaW4gc3RhY2sgZnJhbWVzXG4gKiBAcGFyYW0gd29ya2Zsb3dDb2RlIC0gVGhlIHdvcmtmbG93IGJ1bmRsZSBjb2RlIGNvbnRhaW5pbmcgaW5saW5lIHNvdXJjZSBtYXBzXG4gKiBAcmV0dXJucyBUaGUgcmVtYXBwZWQgc3RhY2sgdHJhY2Ugd2l0aCBvcmlnaW5hbCBzb3VyY2UgbG9jYXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1hcEVycm9yU3RhY2soXG4gIHN0YWNrOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIHdvcmtmbG93Q29kZTogc3RyaW5nXG4pOiBzdHJpbmcge1xuICAvLyBOb3RoaW5nIHRvIHJlbWFwIGlmIG5vIGZyYW1lIHJlZmVyZW5jZXMgdGhlIHdvcmtmbG93IGZpbGUuIEF2b2lkcyB0b3VjaGluZ1xuICAvLyB0aGUgKGxhcmdlKSBidW5kbGUgc3RyaW5nIGVudGlyZWx5IGZvciBlcnJvcnMgdGhyb3duIGVsc2V3aGVyZS5cbiAgaWYgKCFzdGFjay5pbmNsdWRlcyhmaWxlbmFtZSkpIHtcbiAgICByZXR1cm4gc3RhY2s7XG4gIH1cblxuICBjb25zdCB0cmFjZXIgPSBnZXRUcmFjZU1hcEZvckNvZGUod29ya2Zsb3dDb2RlKTtcbiAgaWYgKCF0cmFjZXIpIHtcbiAgICByZXR1cm4gc3RhY2s7IC8vIE5vIHNvdXJjZSBtYXAgZm91bmRcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gUGFyc2UgYW5kIHJlbWFwIGVhY2ggbGluZSBpbiB0aGUgc3RhY2sgdHJhY2VcbiAgICBjb25zdCBsaW5lcyA9IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCByZW1hcHBlZExpbmVzID0gbGluZXMubWFwKChsaW5lKSA9PiB7XG4gICAgICAvLyBNYXRjaCBzdGFjayBmcmFtZXM6IFwiYXQgZnVuY3Rpb25OYW1lIChmaWxlbmFtZTpsaW5lOmNvbHVtbilcIiBvciBcImF0IGZpbGVuYW1lOmxpbmU6Y29sdW1uXCJcbiAgICAgIGNvbnN0IGZyYW1lTWF0Y2ggPSBsaW5lLm1hdGNoKFxuICAgICAgICAvXlxccyphdFxccysoPzooLis/KVxccytcXCgpPyguKz8pOihcXGQrKTooXFxkKylcXCk/JC9cbiAgICAgICk7XG4gICAgICBpZiAoIWZyYW1lTWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGxpbmU7IC8vIE5vdCBhIHN0YWNrIGZyYW1lLCByZXR1cm4gYXMtaXNcbiAgICAgIH1cblxuICAgICAgY29uc3QgWywgZnVuY3Rpb25OYW1lLCBmaWxlLCBsaW5lU3RyLCBjb2xTdHJdID0gZnJhbWVNYXRjaDtcblxuICAgICAgLy8gT25seSByZW1hcCBmcmFtZXMgZnJvbSBvdXIgd29ya2Zsb3cgZmlsZVxuICAgICAgaWYgKCFmaWxlLmluY2x1ZGVzKGZpbGVuYW1lKSkge1xuICAgICAgICByZXR1cm4gbGluZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGluZU51bWJlciA9IHBhcnNlSW50KGxpbmVTdHIsIDEwKTtcbiAgICAgIGNvbnN0IGNvbHVtbk51bWJlciA9IHBhcnNlSW50KGNvbFN0ciwgMTApO1xuXG4gICAgICAvLyBNYXAgdG8gb3JpZ2luYWwgc291cmNlIHBvc2l0aW9uXG4gICAgICBjb25zdCBvcmlnaW5hbCA9IG9yaWdpbmFsUG9zaXRpb25Gb3IodHJhY2VyLCB7XG4gICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgIGNvbHVtbjogY29sdW1uTnVtYmVyLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChvcmlnaW5hbC5zb3VyY2UgJiYgb3JpZ2luYWwubGluZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmdW5jID0gZnVuY3Rpb25OYW1lIHx8IG9yaWdpbmFsLm5hbWUgfHwgJ2Fub255bW91cyc7XG4gICAgICAgIGNvbnN0IGNvbCA9IG9yaWdpbmFsLmNvbHVtbiAhPT0gbnVsbCA/IG9yaWdpbmFsLmNvbHVtbiA6IGNvbHVtbk51bWJlcjtcbiAgICAgICAgcmV0dXJuIGAgICAgYXQgJHtmdW5jfSAoJHtvcmlnaW5hbC5zb3VyY2V9OiR7b3JpZ2luYWwubGluZX06JHtjb2x9KWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5lOyAvLyBDb3VsZG4ndCBtYXAsIHJldHVybiBvcmlnaW5hbFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlbWFwcGVkTGluZXMuam9pbignXFxuJyk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIElmIHNvdXJjZSBtYXAgcHJvY2Vzc2luZyBmYWlscywgcmV0dXJuIG9yaWdpbmFsIHN0YWNrXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9XG59XG4iXX0=
|
|
@@ -9,7 +9,7 @@ import type { StepMetadata } from './get-step-metadata.js';
|
|
|
9
9
|
* Holds the user-facing `WritableStream` and the shared `FlushableStreamState`
|
|
10
10
|
* driving the background pipe to the workflow server. Re-used so repeat calls
|
|
11
11
|
* to `getWritable()` within the same step return the same handle instead of
|
|
12
|
-
* spawning racing pipes
|
|
12
|
+
* spawning racing pipes; see https://github.com/vercel/workflow/issues/2058.
|
|
13
13
|
*/
|
|
14
14
|
export interface CachedWritable {
|
|
15
15
|
writable: WritableStream<any>;
|
|
@@ -35,14 +35,14 @@ export type StepContext = {
|
|
|
35
35
|
* The canonical case is a step-initiated `AbortController.abort()`: the
|
|
36
36
|
* durable `hook_received` event records the cancellation in the workflow's
|
|
37
37
|
* event log. If it is flushed in the background (like `ops`), the workflow
|
|
38
|
-
* continuation enqueued by `step_completed` can run
|
|
39
|
-
* abort, dispatching a later step with a stale, non-aborted `signal`
|
|
38
|
+
* continuation enqueued by `step_completed` can run (and advance past the
|
|
39
|
+
* abort, dispatching a later step with a stale, non-aborted `signal`) before
|
|
40
40
|
* the `hook_received` event exists. Awaiting these inline before completion
|
|
41
41
|
* guarantees the abort is ordered ahead of any continuation that observes the
|
|
42
42
|
* step's result. Unlike these, `ops` holds best-effort real-time stream
|
|
43
43
|
* writes that should fire ASAP and are intentionally left in the background.
|
|
44
44
|
*
|
|
45
|
-
* Contract: producers MUST NOT push a promise that can reject
|
|
45
|
+
* Contract: producers MUST NOT push a promise that can reject; these are
|
|
46
46
|
* awaited only to enforce ordering, never to surface an outcome. A rejection
|
|
47
47
|
* here would propagate as an infra error (queue re-delivery), not the
|
|
48
48
|
* user-code failure path, so each producer swallows its own errors (see
|
|
@@ -60,7 +60,7 @@ export type StepContext = {
|
|
|
60
60
|
/**
|
|
61
61
|
* Turbo mode only: a promise that resolves once the backgrounded
|
|
62
62
|
* `run_started` has landed (the run exists). Set when the step body runs
|
|
63
|
-
* optimistically
|
|
63
|
+
* optimistically (before `run_started`/`step_started` are confirmed), so a
|
|
64
64
|
* direct step-body world write (e.g. `setAttributes`, which
|
|
65
65
|
* resolves to a host-side `attr_set` create) can gate on it and never race
|
|
66
66
|
* ahead of the run's creation. `undefined` outside turbo and on the await
|
|
@@ -21,4 +21,4 @@ export const contextStorage = (() => {
|
|
|
21
21
|
store[CONTEXT_STORAGE_SYMBOL] ??= new AsyncLocalStorage();
|
|
22
22
|
return store[CONTEXT_STORAGE_SYMBOL];
|
|
23
23
|
})();
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0ZXAvY29udGV4dC1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBeUVyRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW1DLENBQUMsR0FBRyxFQUFFO0lBQ2xFLE1BQU0sS0FBSyxHQUFHLFVBQWlCLENBQUM7SUFDaEMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQUssSUFBSSxpQkFBaUIsRUFBZSxDQUFDO0lBQ3ZFLE9BQU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSAnbm9kZTphc3luY19ob29rcyc7XG5pbXBvcnQgdHlwZSB7IEZsdXNoYWJsZVN0cmVhbVN0YXRlIH0gZnJvbSAnLi4vZmx1c2hhYmxlLXN0cmVhbS5qcyc7XG5pbXBvcnQgdHlwZSB7IFBheWxvYWRLZXkgfSBmcm9tICcuLi9zZXJpYWxpemF0aW9uL2VuY3J5cHRpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd01ldGFkYXRhIH0gZnJvbSAnLi4vd29ya2Zsb3cvZ2V0LXdvcmtmbG93LW1ldGFkYXRhLmpzJztcbmltcG9ydCB0eXBlIHsgU3RlcE1ldGFkYXRhIH0gZnJvbSAnLi9nZXQtc3RlcC1tZXRhZGF0YS5qcyc7XG5cbi8qKlxuICogUGVyLXN0ZXAgY2FjaGUgZW50cnkgZm9yIGEgYChydW5JZCwgbmFtZXNwYWNlKWAgd3JpdGFibGUgc3RyZWFtLlxuICpcbiAqIEhvbGRzIHRoZSB1c2VyLWZhY2luZyBgV3JpdGFibGVTdHJlYW1gIGFuZCB0aGUgc2hhcmVkIGBGbHVzaGFibGVTdHJlYW1TdGF0ZWBcbiAqIGRyaXZpbmcgdGhlIGJhY2tncm91bmQgcGlwZSB0byB0aGUgd29ya2Zsb3cgc2VydmVyLiBSZS11c2VkIHNvIHJlcGVhdCBjYWxsc1xuICogdG8gYGdldFdyaXRhYmxlKClgIHdpdGhpbiB0aGUgc2FtZSBzdGVwIHJldHVybiB0aGUgc2FtZSBoYW5kbGUgaW5zdGVhZCBvZlxuICogc3Bhd25pbmcgcmFjaW5nIHBpcGVzOyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC93b3JrZmxvdy9pc3N1ZXMvMjA1OC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWNoZWRXcml0YWJsZSB7XG4gIHdyaXRhYmxlOiBXcml0YWJsZVN0cmVhbTxhbnk+O1xuICBzdGF0ZTogRmx1c2hhYmxlU3RyZWFtU3RhdGU7XG59XG5cbmV4cG9ydCB0eXBlIFN0ZXBDb250ZXh0ID0ge1xuICBzdGVwTWV0YWRhdGE6IFN0ZXBNZXRhZGF0YTtcbiAgd29ya2Zsb3dNZXRhZGF0YTogV29ya2Zsb3dNZXRhZGF0YTtcbiAgLyoqIERlcGxveW1lbnQgdGhhdCBvd25zIHRoZSBjdXJyZW50IHdvcmtmbG93IHJ1biwgdXNlZCBmb3IgZm9yd2FyZGVkIHN0cmVhbXMuICovXG4gIHdvcmtmbG93RGVwbG95bWVudElkPzogc3RyaW5nO1xuICAvKipcbiAgICogUm9vdCBydW4gaWQgb2YgdGhlIGN1cnJlbnQgcnVuJ3MgbGluZWFnZSAoYCRyb290UnVuSWRgKSwgc28gYSBuZXN0ZWRcbiAgICogYHN0YXJ0KClgIGluaGVyaXRzIGl0IHdpdGhvdXQgcmVsb2FkaW5nIHRoZSBwYXJlbnQuIFNldCBieSB0aGUgcnVudGltZSBmcm9tXG4gICAqIHRoZSBydW4gaXQgYWxyZWFkeSBoYXMgbG9hZGVkLlxuICAgKi9cbiAgcm9vdFJ1bklkPzogc3RyaW5nO1xuICBvcHM6IFByb21pc2U8dm9pZD5bXTtcbiAgLyoqXG4gICAqIE9wZXJhdGlvbnMgdGhhdCBNVVNUIGJlIGR1cmFibHkgY29tbWl0dGVkIGJlZm9yZSB0aGUgc3RlcCdzXG4gICAqIGBzdGVwX2NvbXBsZXRlZGAvYHN0ZXBfZmFpbGVkYCBldmVudCBpcyB3cml0dGVuLCBiZWNhdXNlIHRoZSB3b3JrZmxvd1xuICAgKiBjb250aW51YXRpb24gdHJpZ2dlcmVkIGJ5IHRoYXQgZXZlbnQgZGVwZW5kcyBvbiB0aGVtLlxuICAgKlxuICAgKiBUaGUgY2Fub25pY2FsIGNhc2UgaXMgYSBzdGVwLWluaXRpYXRlZCBgQWJvcnRDb250cm9sbGVyLmFib3J0KClgOiB0aGVcbiAgICogZHVyYWJsZSBgaG9va19yZWNlaXZlZGAgZXZlbnQgcmVjb3JkcyB0aGUgY2FuY2VsbGF0aW9uIGluIHRoZSB3b3JrZmxvdydzXG4gICAqIGV2ZW50IGxvZy4gSWYgaXQgaXMgZmx1c2hlZCBpbiB0aGUgYmFja2dyb3VuZCAobGlrZSBgb3BzYCksIHRoZSB3b3JrZmxvd1xuICAgKiBjb250aW51YXRpb24gZW5xdWV1ZWQgYnkgYHN0ZXBfY29tcGxldGVkYCBjYW4gcnVuIChhbmQgYWR2YW5jZSBwYXN0IHRoZVxuICAgKiBhYm9ydCwgZGlzcGF0Y2hpbmcgYSBsYXRlciBzdGVwIHdpdGggYSBzdGFsZSwgbm9uLWFib3J0ZWQgYHNpZ25hbGApIGJlZm9yZVxuICAgKiB0aGUgYGhvb2tfcmVjZWl2ZWRgIGV2ZW50IGV4aXN0cy4gQXdhaXRpbmcgdGhlc2UgaW5saW5lIGJlZm9yZSBjb21wbGV0aW9uXG4gICAqIGd1YXJhbnRlZXMgdGhlIGFib3J0IGlzIG9yZGVyZWQgYWhlYWQgb2YgYW55IGNvbnRpbnVhdGlvbiB0aGF0IG9ic2VydmVzIHRoZVxuICAgKiBzdGVwJ3MgcmVzdWx0LiBVbmxpa2UgdGhlc2UsIGBvcHNgIGhvbGRzIGJlc3QtZWZmb3J0IHJlYWwtdGltZSBzdHJlYW1cbiAgICogd3JpdGVzIHRoYXQgc2hvdWxkIGZpcmUgQVNBUCBhbmQgYXJlIGludGVudGlvbmFsbHkgbGVmdCBpbiB0aGUgYmFja2dyb3VuZC5cbiAgICpcbiAgICogQ29udHJhY3Q6IHByb2R1Y2VycyBNVVNUIE5PVCBwdXNoIGEgcHJvbWlzZSB0aGF0IGNhbiByZWplY3Q7IHRoZXNlIGFyZVxuICAgKiBhd2FpdGVkIG9ubHkgdG8gZW5mb3JjZSBvcmRlcmluZywgbmV2ZXIgdG8gc3VyZmFjZSBhbiBvdXRjb21lLiBBIHJlamVjdGlvblxuICAgKiBoZXJlIHdvdWxkIHByb3BhZ2F0ZSBhcyBhbiBpbmZyYSBlcnJvciAocXVldWUgcmUtZGVsaXZlcnkpLCBub3QgdGhlXG4gICAqIHVzZXItY29kZSBmYWlsdXJlIHBhdGgsIHNvIGVhY2ggcHJvZHVjZXIgc3dhbGxvd3MgaXRzIG93biBlcnJvcnMgKHNlZVxuICAgKiBgcmV2aXZlQWJvcnRDb250cm9sbGVyYCBpbiBzZXJpYWxpemF0aW9uLnRzKS4gVGhlIGF3YWl0IHNpdGVzIGFsc29cbiAgICogZGVmZW5zaXZlbHkgYC5jYXRjaCgpYCBzbyBvcmRlcmluZyBpcyBhbGwgdGhpcyBidWNrZXQgY2FuIGV2ZXIgZW5mb3JjZS5cbiAgICpcbiAgICogUmVxdWlyZWQgKG5vdCBvcHRpb25hbCkgc28gYSBuZXcgc3RlcC1jb250ZXh0IGNvbnN0cnVjdGlvbiBzaXRlIHRoYXRcbiAgICogZm9yZ2V0cyB0byB3aXJlIGl0IGZhaWxzIGF0IGNvbXBpbGUgdGltZSwgcmF0aGVyIHRoYW4gc2lsZW50bHkgcmVncmVzc2luZ1xuICAgKiB0aGUgb3JkZXJpbmcgZ3VhcmFudGVlIGJhY2sgdG8gYmFja2dyb3VuZC1mbHVzaCBiZWhhdmlvci5cbiAgICovXG4gIHByZUNvbXBsZXRpb25PcHM6IFByb21pc2U8dm9pZD5bXTtcbiAgY2xvc3VyZVZhcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBlbmNyeXB0aW9uS2V5PzogUGF5bG9hZEtleTtcbiAgd3JpdGFibGVzPzogTWFwPHN0cmluZywgQ2FjaGVkV3JpdGFibGU+O1xuICAvKipcbiAgICogVHVyYm8gbW9kZSBvbmx5OiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBiYWNrZ3JvdW5kZWRcbiAgICogYHJ1bl9zdGFydGVkYCBoYXMgbGFuZGVkICh0aGUgcnVuIGV4aXN0cykuIFNldCB3aGVuIHRoZSBzdGVwIGJvZHkgcnVuc1xuICAgKiBvcHRpbWlzdGljYWxseSAoYmVmb3JlIGBydW5fc3RhcnRlZGAvYHN0ZXBfc3RhcnRlZGAgYXJlIGNvbmZpcm1lZCksIHNvIGFcbiAgICogZGlyZWN0IHN0ZXAtYm9keSB3b3JsZCB3cml0ZSAoZS5nLiBgc2V0QXR0cmlidXRlc2AsIHdoaWNoXG4gICAqIHJlc29sdmVzIHRvIGEgaG9zdC1zaWRlIGBhdHRyX3NldGAgY3JlYXRlKSBjYW4gZ2F0ZSBvbiBpdCBhbmQgbmV2ZXIgcmFjZVxuICAgKiBhaGVhZCBvZiB0aGUgcnVuJ3MgY3JlYXRpb24uIGB1bmRlZmluZWRgIG91dHNpZGUgdHVyYm8gYW5kIG9uIHRoZSBhd2FpdFxuICAgKiBwYXRoLCB3aGVyZSBgcnVuX3N0YXJ0ZWRgIHdhcyBhbHJlYWR5IGR1cmFibGUgYmVmb3JlIHRoZSBib2R5IHJhbi5cbiAgICovXG4gIHJ1blJlYWR5QmFycmllcj86IFByb21pc2U8dW5rbm93bj47XG59O1xuXG4vKipcbiAqIFByb2Nlc3Mtd2lkZSBzaW5nbGV0b24gQXN5bmNMb2NhbFN0b3JhZ2UgZm9yIHN0ZXAgZXhlY3V0aW9uIGNvbnRleHQuXG4gKlxuICogVXNlcyBgU3ltYm9sLmZvcigpYCBvbiBnbG9iYWxUaGlzIHRvIGd1YXJhbnRlZSBhIHNpbmdsZSBpbnN0YW5jZSBldmVuIHdoZW5cbiAqIGJ1bmRsZXJzIChlLmcuIFZlcmNlbCdzIHByb2R1Y3Rpb24gYnVuZGxlcikgY3JlYXRlIG11bHRpcGxlIGNvcGllcyBvZiB0aGlzXG4gKiBtb2R1bGUuIFdpdGhvdXQgdGhpcywgYGNvbnRleHRTdG9yYWdlLnJ1bigpYCBpbiB0aGUgc3RlcCBleGVjdXRvciBhbmRcbiAqIGBjb250ZXh0U3RvcmFnZS5nZXRTdG9yZSgpYCBpbiB1c2VyIGNvZGUgKHZpYSBnZXRXb3JrZmxvd01ldGFkYXRhIC9cbiAqIGdldFN0ZXBNZXRhZGF0YSkgY2FuIHJlZmVyZW5jZSBkaWZmZXJlbnQgQXN5bmNMb2NhbFN0b3JhZ2UgaW5zdGFuY2VzLFxuICogY2F1c2luZyB0aGUgc3RvcmUgdG8gYXBwZWFyIGVtcHR5LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSB3ZXJlIHVuYWJsZSB0byByZXByb2R1Y2UgdGhpcyBpc3N1ZS4gVGhpcyBpcyBhIGZpeCBmb3IgdGhlIG9ubHkgc3ludGhldGljIHdheVxuICogd2F5IGluIHdoaWNoIHdlIGNvdWxkIGdldCB0aGUgYnVpbGRlciB0byBicmVhayB3aXRoIHRoZSByZXBvcnRlZCBlcnJvciBtZXNzYWdlLCBhbmRcbiAqIHNlcnZlcyBhcyBkZWZlbnNlLWluLWRlcHRoLCBzaW5jZSB0aGUgY2hhbmdlIGlzIG90aGVyd2lzZSBzYWZlLlxuICpcbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC93b3JrZmxvdy9pc3N1ZXMvMTU3N1xuICovXG5jb25zdCBDT05URVhUX1NUT1JBR0VfU1lNQk9MID0gU3ltYm9sLmZvcignV09SS0ZMT1dfU1RFUF9DT05URVhUX1NUT1JBR0UnKTtcblxuZXhwb3J0IGNvbnN0IGNvbnRleHRTdG9yYWdlOiBBc3luY0xvY2FsU3RvcmFnZTxTdGVwQ29udGV4dD4gPSAoKCkgPT4ge1xuICBjb25zdCBzdG9yZSA9IGdsb2JhbFRoaXMgYXMgYW55O1xuICBzdG9yZVtDT05URVhUX1NUT1JBR0VfU1lNQk9MXSA/Pz0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlPFN0ZXBDb250ZXh0PigpO1xuICByZXR1cm4gc3RvcmVbQ09OVEVYVF9TVE9SQUdFX1NZTUJPTF07XG59KSgpO1xuIl19
|
|
@@ -9,10 +9,10 @@ export interface WorkflowWritableStreamOptions {
|
|
|
9
9
|
namespace?: string;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* Retrieves
|
|
12
|
+
* Retrieves the writable stream associated with the current workflow.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* Use the writable stream within step functions to write data. Read the data
|
|
15
|
+
* outside the workflow by using the readable method of `getRun`.
|
|
16
16
|
*
|
|
17
17
|
* @param options - Optional configuration for the writable stream
|
|
18
18
|
* @returns The writable stream associated with the current workflow run
|
|
@@ -6,10 +6,10 @@ import { STREAM_NAME_SYMBOL, STREAM_SERVER_DEPLOYMENT_ID_SYMBOL, STREAM_SERVER_P
|
|
|
6
6
|
import { getWorkflowRunStreamId } from '../util.js';
|
|
7
7
|
import { contextStorage } from './context-storage.js';
|
|
8
8
|
/**
|
|
9
|
-
* Retrieves
|
|
9
|
+
* Retrieves the writable stream associated with the current workflow.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Use the writable stream within step functions to write data. Read the data
|
|
12
|
+
* outside the workflow by using the readable method of `getRun`.
|
|
13
13
|
*
|
|
14
14
|
* @param options - Optional configuration for the writable stream
|
|
15
15
|
* @returns The writable stream associated with the current workflow run
|
|
@@ -25,8 +25,8 @@ export function getWritable(options = {}) {
|
|
|
25
25
|
const name = getWorkflowRunStreamId(runId, namespace);
|
|
26
26
|
// Cache the writable per (runId, namespace) within the step context.
|
|
27
27
|
//
|
|
28
|
-
// The previous behavior
|
|
29
|
-
// background pipe on every call
|
|
28
|
+
// The previous behavior (constructing a fresh TransformStream and
|
|
29
|
+
// background pipe on every call) produced non-deterministic chunk
|
|
30
30
|
// ordering when callers acquired a new writer per write (e.g. a
|
|
31
31
|
// per-chunk loop). Each pipe flushed to the same (runId, name) server
|
|
32
32
|
// stream independently, and on Vercel the 50-100ms HTTP latency
|
|
@@ -71,7 +71,7 @@ export function getWritable(options = {}) {
|
|
|
71
71
|
// server stream. Calling `start(child, [args, theWritable])` from
|
|
72
72
|
// the same step uses these tags to emit `{ name, runId }` in the
|
|
73
73
|
// dehydrated descriptor, so the child's reviver can open the
|
|
74
|
-
// writable against the original `(runId, name)` directly
|
|
74
|
+
// writable against the original `(runId, name)` directly, with no
|
|
75
75
|
// in-process bridge tied to this step's lifetime.
|
|
76
76
|
Object.defineProperty(serialize.writable, STREAM_NAME_SYMBOL, {
|
|
77
77
|
value: name,
|
|
@@ -100,4 +100,4 @@ export function getWritable(options = {}) {
|
|
|
100
100
|
cache.set(name, { writable: serialize.writable, state });
|
|
101
101
|
return serialize.writable;
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGFibGUtc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0ZXAvd3JpdGFibGUtc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsNEJBQTRCLEdBQzdCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLDJCQUEyQixHQUM1QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUF1QixjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWEzRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixVQUF5QyxFQUFFO0lBRTNDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCwrQkFBK0IsQ0FDN0IsZUFBZSxFQUNmLG1FQUFtRSxFQUNuRSxXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDakQsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRELHFFQUFx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QztZQUN6RCxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRXpELE9BQU8sU0FBUyxDQUFDLFFBQTZCLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRocm93Tm90SW5Xb3JrZmxvd09yU3RlcENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0LWVycm9ycy5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVGbHVzaGFibGVTdGF0ZSxcbiAgZmx1c2hhYmxlUGlwZSxcbiAgcG9sbFdyaXRhYmxlTG9jayxcbn0gZnJvbSAnLi4vZmx1c2hhYmxlLXN0cmVhbS5qcyc7XG5pbXBvcnQgeyBieXRlc1RvQmFzZTY0IH0gZnJvbSAnLi4vc2VhbGVkLWJveC5qcyc7XG5pbXBvcnQge1xuICBnZXRFeHRlcm5hbFJlZHVjZXJzLFxuICBnZXRTZXJpYWxpemVTdHJlYW0sXG4gIGlzUnVuUGF5bG9hZEtleXMsXG4gIFdvcmtmbG93U2VydmVyV3JpdGFibGVTdHJlYW0sXG59IGZyb20gJy4uL3NlcmlhbGl6YXRpb24uanMnO1xuaW1wb3J0IHtcbiAgU1RSRUFNX05BTUVfU1lNQk9MLFxuICBTVFJFQU1fU0VSVkVSX0RFUExPWU1FTlRfSURfU1lNQk9MLFxuICBTVFJFQU1fU0VSVkVSX1BVQkxJQ19LRVlfU1lNQk9MLFxuICBTVFJFQU1fU0VSVkVSX1JVTl9JRF9TWU1CT0wsXG59IGZyb20gJy4uL3N5bWJvbHMuanMnO1xuaW1wb3J0IHsgZ2V0V29ya2Zsb3dSdW5TdHJlYW1JZCB9IGZyb20gJy4uL3V0aWwuanMnO1xuaW1wb3J0IHsgdHlwZSBDYWNoZWRXcml0YWJsZSwgY29udGV4dFN0b3JhZ2UgfSBmcm9tICcuL2NvbnRleHQtc3RvcmFnZS5qcyc7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIHtAbGluayBnZXRXcml0YWJsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dXcml0YWJsZVN0cmVhbU9wdGlvbnMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgbmFtZXNwYWNlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbXVsdGlwbGUgc3RyZWFtcyBhc3NvY2lhdGVkXG4gICAqIHdpdGggdGhlIHNhbWUgd29ya2Zsb3cgcnVuLlxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIHdyaXRhYmxlIHN0cmVhbSB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCB3b3JrZmxvdy5cbiAqXG4gKiBUaGUgd3JpdGFibGUgc3RyZWFtIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aGluIHN0ZXAgZnVuY3Rpb25zIHRvIHdyaXRlXG4gKiBkYXRhIHRoYXQgY2FuIGJlIHJlYWQgb3V0c2lkZSB0aGUgd29ya2Zsb3cgYnkgdXNpbmcgdGhlIHJlYWRhYmxlIG1ldGhvZCBvZiBnZXRSdW4uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgd3JpdGFibGUgc3RyZWFtXG4gKiBAcmV0dXJucyBUaGUgd3JpdGFibGUgc3RyZWFtIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCB3b3JrZmxvdyBydW5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgY2FsbGVkIG91dHNpZGUgYSB3b3JrZmxvdyBvciBzdGVwIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRXcml0YWJsZTxXID0gYW55PihcbiAgb3B0aW9uczogV29ya2Zsb3dXcml0YWJsZVN0cmVhbU9wdGlvbnMgPSB7fVxuKTogV3JpdGFibGVTdHJlYW08Vz4ge1xuICBjb25zdCBjdHggPSBjb250ZXh0U3RvcmFnZS5nZXRTdG9yZSgpO1xuICBpZiAoIWN0eCkge1xuICAgIHRocm93Tm90SW5Xb3JrZmxvd09yU3RlcENvbnRleHQoXG4gICAgICAnZ2V0V3JpdGFibGUoKScsXG4gICAgICAnaHR0cHM6Ly93b3JrZmxvdy1zZGsuZGV2L2RvY3MvYXBpLXJlZmVyZW5jZS93b3JrZmxvdy9nZXQtd3JpdGFibGUnLFxuICAgICAgZ2V0V3JpdGFibGVcbiAgICApO1xuICB9XG5cbiAgY29uc3QgeyBuYW1lc3BhY2UgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHJ1bklkID0gY3R4LndvcmtmbG93TWV0YWRhdGEud29ya2Zsb3dSdW5JZDtcbiAgY29uc3QgbmFtZSA9IGdldFdvcmtmbG93UnVuU3RyZWFtSWQocnVuSWQsIG5hbWVzcGFjZSk7XG5cbiAgLy8gQ2FjaGUgdGhlIHdyaXRhYmxlIHBlciAocnVuSWQsIG5hbWVzcGFjZSkgd2l0aGluIHRoZSBzdGVwIGNvbnRleHQuXG4gIC8vXG4gIC8vIFRoZSBwcmV2aW91cyBiZWhhdmlvciDigJQgY29uc3RydWN0aW5nIGEgZnJlc2ggVHJhbnNmb3JtU3RyZWFtIGFuZFxuICAvLyBiYWNrZ3JvdW5kIHBpcGUgb24gZXZlcnkgY2FsbCDigJQgcHJvZHVjZWQgbm9uLWRldGVybWluaXN0aWMgY2h1bmtcbiAgLy8gb3JkZXJpbmcgd2hlbiBjYWxsZXJzIGFjcXVpcmVkIGEgbmV3IHdyaXRlciBwZXIgd3JpdGUgKGUuZy4gYVxuICAvLyBwZXItY2h1bmsgbG9vcCkuIEVhY2ggcGlwZSBmbHVzaGVkIHRvIHRoZSBzYW1lIChydW5JZCwgbmFtZSkgc2VydmVyXG4gIC8vIHN0cmVhbSBpbmRlcGVuZGVudGx5LCBhbmQgb24gVmVyY2VsIHRoZSA1MC0xMDBtcyBIVFRQIGxhdGVuY3lcbiAgLy8gdHVybmVkIHRoZSByYWNlIHdpbmRvdyBmcm9tIG1pY3Jvc2Vjb25kcyBpbnRvIHNvbWV0aGluZyBwcm9kLXZpc2libGUuXG4gIC8vXG4gIC8vIFNoYXJpbmcgYSBzaW5nbGUgVHJhbnNmb3JtU3RyZWFtICsgcGlwZSBhY3Jvc3MgY2FsbHMgbWFrZXMgdGhlXG4gIC8vIHVuc2FmZSBwYXR0ZXJuIGNvcnJlY3Q6IHdyaXRlcyBnbyB0aHJvdWdoIG9uZSBzZXJpYWwgc2luayBpbiB0aGVcbiAgLy8gb3JkZXIgdGhlIHVzZXIgd3JvdGUgdGhlbS4gU2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvd29ya2Zsb3cvaXNzdWVzLzIwNTguXG4gIGN0eC53cml0YWJsZXMgPz89IG5ldyBNYXA8c3RyaW5nLCBDYWNoZWRXcml0YWJsZT4oKTtcbiAgY29uc3QgY2FjaGUgPSBjdHgud3JpdGFibGVzO1xuICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQobmFtZSk7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkLndyaXRhYmxlIGFzIFdyaXRhYmxlU3RyZWFtPFc+O1xuICB9XG5cbiAgLy8gQ3JlYXRlIGEgdHJhbnNmb3JtIHN0cmVhbSB0aGF0IHNlcmlhbGl6ZXMgY2h1bmtzIGFuZCBwaXBlcyB0byB0aGUgd29ya2Zsb3cgc2VydmVyLlxuICAvLyBUaGUgdGFyZ2V0IHJ1biBpcyB0aGUgd29ya2Zsb3cgcnVuIHRoYXQgb3ducyB0aGlzIHN0ZXAsIHdoaWNoIChwZXJcbiAgLy8gdmVyc2lvbiBza2V3IHByb3RlY3Rpb24pIGlzIG9uIHRoaXMgc2FtZSBTREsgdmVyc2lvbiwgc28gYnl0ZS1zdHJlYW1cbiAgLy8gZnJhbWluZyBpcyBhbHdheXMgc2FmZSBoZXJlLlxuICBjb25zdCBzZXJpYWxpemUgPSBnZXRTZXJpYWxpemVTdHJlYW0oXG4gICAgLy8gSW4gdHVyYm8gb3B0aW1pc3RpYyBzdGFydCB0aGUgYm9keSBydW5zIGJlZm9yZSBgcnVuX3N0YXJ0ZWRgIGlzIGR1cmFibGUuXG4gICAgLy8gVGhyZWFkIHRoZSBydW4tcmVhZHkgYmFycmllciBzbyB0aGF0IGEgbmVzdGVkIFJlYWRhYmxlU3RyZWFtIHdyaXR0ZW4gaW50b1xuICAgIC8vIHRoaXMgd3JpdGFibGUgaXMgcGlwZWQgdG8gaXRzIG93biBzZXJ2ZXIgc3RyZWFtIG9ubHkgYWZ0ZXIgdGhlIHJ1blxuICAgIC8vIGV4aXN0cy4gVW5kZWZpbmVkIG91dHNpZGUgdHVyYm8gLyBvbiB0aGUgYXdhaXQgcGF0aC5cbiAgICBnZXRFeHRlcm5hbFJlZHVjZXJzKFxuICAgICAgZ2xvYmFsVGhpcyxcbiAgICAgIGN0eC5vcHMsXG4gICAgICBydW5JZCxcbiAgICAgIGN0eC5lbmNyeXB0aW9uS2V5LFxuICAgICAgdHJ1ZSxcbiAgICAgIGN0eC5ydW5SZWFkeUJhcnJpZXJcbiAgICApLFxuICAgIGN0eC5lbmNyeXB0aW9uS2V5XG4gICk7XG5cbiAgLy8gVXNlIGZsdXNoYWJsZSBwaXBlIHNvIHRoZSBvcHMgcHJvbWlzZSByZXNvbHZlcyB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzXG4gIC8vIHRoZWlyIHdyaXRlciBsb2NrLCBub3Qgb25seSB3aGVuIHRoZSBzdHJlYW0gaXMgZXhwbGljaXRseSBjbG9zZWQuXG4gIC8vIFdpdGhvdXQgdGhpcywgVmVyY2VsIGZ1bmN0aW9ucyBoYW5nIHVudGlsIHRoZSBydW50aW1lIHRpbWVvdXQgYmVjYXVzZVxuICAvLyAucGlwZVRvKCkgb25seSByZXNvbHZlcyBvbiBzdHJlYW0gY2xvc2UuXG4gIC8vIEluIHR1cmJvIG9wdGltaXN0aWMgc3RhcnQgdGhlIGJvZHkgcnVucyBiZWZvcmUgYHJ1bl9zdGFydGVkYCBpcyBkdXJhYmxlO1xuICAvLyBwYXNzIHRoZSBydW4tcmVhZHkgYmFycmllciBzbyB0aGUgZmlyc3Qgc2VydmVyIHdyaXRlIG9yZGVycyBhZnRlciB0aGUgcnVuXG4gIC8vIGV4aXN0cy4gVW5kZWZpbmVkIG91dHNpZGUgdHVyYm8gLyBvbiB0aGUgYXdhaXQgcGF0aCAocnVuIGFscmVhZHkgZHVyYWJsZSkuXG4gIGNvbnN0IHNlcnZlcldyaXRhYmxlID0gbmV3IFdvcmtmbG93U2VydmVyV3JpdGFibGVTdHJlYW0oXG4gICAgcnVuSWQsXG4gICAgbmFtZSxcbiAgICBjdHgucnVuUmVhZHlCYXJyaWVyXG4gICk7XG4gIGNvbnN0IHN0YXRlID0gY3JlYXRlRmx1c2hhYmxlU3RhdGUoKTtcbiAgY3R4Lm9wcy5wdXNoKHN0YXRlLnByb21pc2UpO1xuXG4gIGZsdXNoYWJsZVBpcGUoc2VyaWFsaXplLnJlYWRhYmxlLCBzZXJ2ZXJXcml0YWJsZSwgc3RhdGUpLmNhdGNoKCgpID0+IHtcbiAgICAvLyBFcnJvcnMgYXJlIGhhbmRsZWQgdmlhIHN0YXRlLnJlamVjdFxuICB9KTtcblxuICBwb2xsV3JpdGFibGVMb2NrKHNlcmlhbGl6ZS53cml0YWJsZSwgc3RhdGUpO1xuXG4gIC8vIFRhZyB0aGUgd3JpdGFibGUgd2l0aCBpdHMgdW5kZXJseWluZyBgKHJ1bklkLCBuYW1lKWAgc28gZG93bnN0cmVhbVxuICAvLyByZWR1Y2VycyBjYW4gcmVjb2duaXplIHRoYXQgaXQncyBhbHJlYWR5IGJhY2tlZCBieSBhIHdvcmtmbG93XG4gIC8vIHNlcnZlciBzdHJlYW0uIENhbGxpbmcgYHN0YXJ0KGNoaWxkLCBbYXJncywgdGhlV3JpdGFibGVdKWAgZnJvbVxuICAvLyB0aGUgc2FtZSBzdGVwIHVzZXMgdGhlc2UgdGFncyB0byBlbWl0IGB7IG5hbWUsIHJ1bklkIH1gIGluIHRoZVxuICAvLyBkZWh5ZHJhdGVkIGRlc2NyaXB0b3IsIHNvIHRoZSBjaGlsZCdzIHJldml2ZXIgY2FuIG9wZW4gdGhlXG4gIC8vIHdyaXRhYmxlIGFnYWluc3QgdGhlIG9yaWdpbmFsIGAocnVuSWQsIG5hbWUpYCBkaXJlY3RseSDigJQgbm9cbiAgLy8gaW4tcHJvY2VzcyBicmlkZ2UgdGllZCB0byB0aGlzIHN0ZXAncyBsaWZldGltZS5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlcmlhbGl6ZS53cml0YWJsZSwgU1RSRUFNX05BTUVfU1lNQk9MLCB7XG4gICAgdmFsdWU6IG5hbWUsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlcmlhbGl6ZS53cml0YWJsZSwgU1RSRUFNX1NFUlZFUl9SVU5fSURfU1lNQk9MLCB7XG4gICAgdmFsdWU6IHJ1bklkLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgfSk7XG4gIGlmIChjdHgud29ya2Zsb3dEZXBsb3ltZW50SWQpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICBzZXJpYWxpemUud3JpdGFibGUsXG4gICAgICBTVFJFQU1fU0VSVkVSX0RFUExPWU1FTlRfSURfU1lNQk9MLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogY3R4LndvcmtmbG93RGVwbG95bWVudElkLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuICAvLyBQdWJsaXNoIHRoaXMgcnVuJ3MgWDI1NTE5IHB1YmxpYyBrZXkgb24gdGhlIGhhbmRsZSBzbyB0aGF0IGEgcnVuIHRoaXNcbiAgLy8gd3JpdGFibGUgaXMgZm9yd2FyZGVkIHRvIGNhbiBzZWFsIGZyYW1lcyB3aXRob3V0IGxvb2tpbmcgYW55dGhpbmcgdXAuXG4gIC8vIFRoZSBrZXkgaXMgYWxyZWFkeSByZXNvbHZlZCBvbiB0aGUgc3RlcCBjb250ZXh0LCBzbyB0aGlzIGNvc3RzIG5vdGhpbmdcbiAgLy8gaGVyZSBhbmQgc2F2ZXMgdGhlIHJlY2VpdmVyIGEgcm91bmQgdHJpcC5cbiAgaWYgKGlzUnVuUGF5bG9hZEtleXMoY3R4LmVuY3J5cHRpb25LZXkpKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNlcmlhbGl6ZS53cml0YWJsZSwgU1RSRUFNX1NFUlZFUl9QVUJMSUNfS0VZX1NZTUJPTCwge1xuICAgICAgdmFsdWU6IGJ5dGVzVG9CYXNlNjQoY3R4LmVuY3J5cHRpb25LZXkua2V5UGFpci5wdWJsaWNLZXkpLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgY2FjaGUuc2V0KG5hbWUsIHsgd3JpdGFibGU6IHNlcmlhbGl6ZS53cml0YWJsZSwgc3RhdGUgfSk7XG5cbiAgcmV0dXJuIHNlcmlhbGl6ZS53cml0YWJsZSBhcyBXcml0YWJsZVN0cmVhbTxXPjtcbn1cbiJdfQ==
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGFibGUtc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0ZXAvd3JpdGFibGUtc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLGdCQUFnQixHQUNqQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsNEJBQTRCLEdBQzdCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLDJCQUEyQixHQUM1QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUF1QixjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQWEzRTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixVQUF5QyxFQUFFO0lBRTNDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCwrQkFBK0IsQ0FDN0IsZUFBZSxFQUNmLG1FQUFtRSxFQUNuRSxXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDakQsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXRELHFFQUFx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QztZQUN6RCxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRXpELE9BQU8sU0FBUyxDQUFDLFFBQTZCLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRocm93Tm90SW5Xb3JrZmxvd09yU3RlcENvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0LWVycm9ycy5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVGbHVzaGFibGVTdGF0ZSxcbiAgZmx1c2hhYmxlUGlwZSxcbiAgcG9sbFdyaXRhYmxlTG9jayxcbn0gZnJvbSAnLi4vZmx1c2hhYmxlLXN0cmVhbS5qcyc7XG5pbXBvcnQgeyBieXRlc1RvQmFzZTY0IH0gZnJvbSAnLi4vc2VhbGVkLWJveC5qcyc7XG5pbXBvcnQge1xuICBnZXRFeHRlcm5hbFJlZHVjZXJzLFxuICBnZXRTZXJpYWxpemVTdHJlYW0sXG4gIGlzUnVuUGF5bG9hZEtleXMsXG4gIFdvcmtmbG93U2VydmVyV3JpdGFibGVTdHJlYW0sXG59IGZyb20gJy4uL3NlcmlhbGl6YXRpb24uanMnO1xuaW1wb3J0IHtcbiAgU1RSRUFNX05BTUVfU1lNQk9MLFxuICBTVFJFQU1fU0VSVkVSX0RFUExPWU1FTlRfSURfU1lNQk9MLFxuICBTVFJFQU1fU0VSVkVSX1BVQkxJQ19LRVlfU1lNQk9MLFxuICBTVFJFQU1fU0VSVkVSX1JVTl9JRF9TWU1CT0wsXG59IGZyb20gJy4uL3N5bWJvbHMuanMnO1xuaW1wb3J0IHsgZ2V0V29ya2Zsb3dSdW5TdHJlYW1JZCB9IGZyb20gJy4uL3V0aWwuanMnO1xuaW1wb3J0IHsgdHlwZSBDYWNoZWRXcml0YWJsZSwgY29udGV4dFN0b3JhZ2UgfSBmcm9tICcuL2NvbnRleHQtc3RvcmFnZS5qcyc7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIHtAbGluayBnZXRXcml0YWJsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dXcml0YWJsZVN0cmVhbU9wdGlvbnMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgbmFtZXNwYWNlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gbXVsdGlwbGUgc3RyZWFtcyBhc3NvY2lhdGVkXG4gICAqIHdpdGggdGhlIHNhbWUgd29ya2Zsb3cgcnVuLlxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgd3JpdGFibGUgc3RyZWFtIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCB3b3JrZmxvdy5cbiAqXG4gKiBVc2UgdGhlIHdyaXRhYmxlIHN0cmVhbSB3aXRoaW4gc3RlcCBmdW5jdGlvbnMgdG8gd3JpdGUgZGF0YS4gUmVhZCB0aGUgZGF0YVxuICogb3V0c2lkZSB0aGUgd29ya2Zsb3cgYnkgdXNpbmcgdGhlIHJlYWRhYmxlIG1ldGhvZCBvZiBgZ2V0UnVuYC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3cml0YWJsZSBzdHJlYW1cbiAqIEByZXR1cm5zIFRoZSB3cml0YWJsZSBzdHJlYW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IHdvcmtmbG93IHJ1blxuICogQHRocm93cyBFcnJvciBpZiBjYWxsZWQgb3V0c2lkZSBhIHdvcmtmbG93IG9yIHN0ZXAgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdyaXRhYmxlPFcgPSBhbnk+KFxuICBvcHRpb25zOiBXb3JrZmxvd1dyaXRhYmxlU3RyZWFtT3B0aW9ucyA9IHt9XG4pOiBXcml0YWJsZVN0cmVhbTxXPiB7XG4gIGNvbnN0IGN0eCA9IGNvbnRleHRTdG9yYWdlLmdldFN0b3JlKCk7XG4gIGlmICghY3R4KSB7XG4gICAgdGhyb3dOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dChcbiAgICAgICdnZXRXcml0YWJsZSgpJyxcbiAgICAgICdodHRwczovL3dvcmtmbG93LXNkay5kZXYvZG9jcy9hcGktcmVmZXJlbmNlL3dvcmtmbG93L2dldC13cml0YWJsZScsXG4gICAgICBnZXRXcml0YWJsZVxuICAgICk7XG4gIH1cblxuICBjb25zdCB7IG5hbWVzcGFjZSB9ID0gb3B0aW9ucztcbiAgY29uc3QgcnVuSWQgPSBjdHgud29ya2Zsb3dNZXRhZGF0YS53b3JrZmxvd1J1bklkO1xuICBjb25zdCBuYW1lID0gZ2V0V29ya2Zsb3dSdW5TdHJlYW1JZChydW5JZCwgbmFtZXNwYWNlKTtcblxuICAvLyBDYWNoZSB0aGUgd3JpdGFibGUgcGVyIChydW5JZCwgbmFtZXNwYWNlKSB3aXRoaW4gdGhlIHN0ZXAgY29udGV4dC5cbiAgLy9cbiAgLy8gVGhlIHByZXZpb3VzIGJlaGF2aW9yIChjb25zdHJ1Y3RpbmcgYSBmcmVzaCBUcmFuc2Zvcm1TdHJlYW0gYW5kXG4gIC8vIGJhY2tncm91bmQgcGlwZSBvbiBldmVyeSBjYWxsKSBwcm9kdWNlZCBub24tZGV0ZXJtaW5pc3RpYyBjaHVua1xuICAvLyBvcmRlcmluZyB3aGVuIGNhbGxlcnMgYWNxdWlyZWQgYSBuZXcgd3JpdGVyIHBlciB3cml0ZSAoZS5nLiBhXG4gIC8vIHBlci1jaHVuayBsb29wKS4gRWFjaCBwaXBlIGZsdXNoZWQgdG8gdGhlIHNhbWUgKHJ1bklkLCBuYW1lKSBzZXJ2ZXJcbiAgLy8gc3RyZWFtIGluZGVwZW5kZW50bHksIGFuZCBvbiBWZXJjZWwgdGhlIDUwLTEwMG1zIEhUVFAgbGF0ZW5jeVxuICAvLyB0dXJuZWQgdGhlIHJhY2Ugd2luZG93IGZyb20gbWljcm9zZWNvbmRzIGludG8gc29tZXRoaW5nIHByb2QtdmlzaWJsZS5cbiAgLy9cbiAgLy8gU2hhcmluZyBhIHNpbmdsZSBUcmFuc2Zvcm1TdHJlYW0gKyBwaXBlIGFjcm9zcyBjYWxscyBtYWtlcyB0aGVcbiAgLy8gdW5zYWZlIHBhdHRlcm4gY29ycmVjdDogd3JpdGVzIGdvIHRocm91Z2ggb25lIHNlcmlhbCBzaW5rIGluIHRoZVxuICAvLyBvcmRlciB0aGUgdXNlciB3cm90ZSB0aGVtLiBTZWVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC93b3JrZmxvdy9pc3N1ZXMvMjA1OC5cbiAgY3R4LndyaXRhYmxlcyA/Pz0gbmV3IE1hcDxzdHJpbmcsIENhY2hlZFdyaXRhYmxlPigpO1xuICBjb25zdCBjYWNoZSA9IGN0eC53cml0YWJsZXM7XG4gIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChuYW1lKTtcbiAgaWYgKGNhY2hlZCkge1xuICAgIHJldHVybiBjYWNoZWQud3JpdGFibGUgYXMgV3JpdGFibGVTdHJlYW08Vz47XG4gIH1cblxuICAvLyBDcmVhdGUgYSB0cmFuc2Zvcm0gc3RyZWFtIHRoYXQgc2VyaWFsaXplcyBjaHVua3MgYW5kIHBpcGVzIHRvIHRoZSB3b3JrZmxvdyBzZXJ2ZXIuXG4gIC8vIFRoZSB0YXJnZXQgcnVuIGlzIHRoZSB3b3JrZmxvdyBydW4gdGhhdCBvd25zIHRoaXMgc3RlcCwgd2hpY2ggKHBlclxuICAvLyB2ZXJzaW9uIHNrZXcgcHJvdGVjdGlvbikgaXMgb24gdGhpcyBzYW1lIFNESyB2ZXJzaW9uLCBzbyBieXRlLXN0cmVhbVxuICAvLyBmcmFtaW5nIGlzIGFsd2F5cyBzYWZlIGhlcmUuXG4gIGNvbnN0IHNlcmlhbGl6ZSA9IGdldFNlcmlhbGl6ZVN0cmVhbShcbiAgICAvLyBJbiB0dXJibyBvcHRpbWlzdGljIHN0YXJ0IHRoZSBib2R5IHJ1bnMgYmVmb3JlIGBydW5fc3RhcnRlZGAgaXMgZHVyYWJsZS5cbiAgICAvLyBUaHJlYWQgdGhlIHJ1bi1yZWFkeSBiYXJyaWVyIHNvIHRoYXQgYSBuZXN0ZWQgUmVhZGFibGVTdHJlYW0gd3JpdHRlbiBpbnRvXG4gICAgLy8gdGhpcyB3cml0YWJsZSBpcyBwaXBlZCB0byBpdHMgb3duIHNlcnZlciBzdHJlYW0gb25seSBhZnRlciB0aGUgcnVuXG4gICAgLy8gZXhpc3RzLiBVbmRlZmluZWQgb3V0c2lkZSB0dXJibyAvIG9uIHRoZSBhd2FpdCBwYXRoLlxuICAgIGdldEV4dGVybmFsUmVkdWNlcnMoXG4gICAgICBnbG9iYWxUaGlzLFxuICAgICAgY3R4Lm9wcyxcbiAgICAgIHJ1bklkLFxuICAgICAgY3R4LmVuY3J5cHRpb25LZXksXG4gICAgICB0cnVlLFxuICAgICAgY3R4LnJ1blJlYWR5QmFycmllclxuICAgICksXG4gICAgY3R4LmVuY3J5cHRpb25LZXlcbiAgKTtcblxuICAvLyBVc2UgZmx1c2hhYmxlIHBpcGUgc28gdGhlIG9wcyBwcm9taXNlIHJlc29sdmVzIHdoZW4gdGhlIHVzZXIgcmVsZWFzZXNcbiAgLy8gdGhlaXIgd3JpdGVyIGxvY2ssIG5vdCBvbmx5IHdoZW4gdGhlIHN0cmVhbSBpcyBleHBsaWNpdGx5IGNsb3NlZC5cbiAgLy8gV2l0aG91dCB0aGlzLCBWZXJjZWwgZnVuY3Rpb25zIGhhbmcgdW50aWwgdGhlIHJ1bnRpbWUgdGltZW91dCBiZWNhdXNlXG4gIC8vIC5waXBlVG8oKSBvbmx5IHJlc29sdmVzIG9uIHN0cmVhbSBjbG9zZS5cbiAgLy8gSW4gdHVyYm8gb3B0aW1pc3RpYyBzdGFydCB0aGUgYm9keSBydW5zIGJlZm9yZSBgcnVuX3N0YXJ0ZWRgIGlzIGR1cmFibGU7XG4gIC8vIHBhc3MgdGhlIHJ1bi1yZWFkeSBiYXJyaWVyIHNvIHRoZSBmaXJzdCBzZXJ2ZXIgd3JpdGUgb3JkZXJzIGFmdGVyIHRoZSBydW5cbiAgLy8gZXhpc3RzLiBVbmRlZmluZWQgb3V0c2lkZSB0dXJibyAvIG9uIHRoZSBhd2FpdCBwYXRoIChydW4gYWxyZWFkeSBkdXJhYmxlKS5cbiAgY29uc3Qgc2VydmVyV3JpdGFibGUgPSBuZXcgV29ya2Zsb3dTZXJ2ZXJXcml0YWJsZVN0cmVhbShcbiAgICBydW5JZCxcbiAgICBuYW1lLFxuICAgIGN0eC5ydW5SZWFkeUJhcnJpZXJcbiAgKTtcbiAgY29uc3Qgc3RhdGUgPSBjcmVhdGVGbHVzaGFibGVTdGF0ZSgpO1xuICBjdHgub3BzLnB1c2goc3RhdGUucHJvbWlzZSk7XG5cbiAgZmx1c2hhYmxlUGlwZShzZXJpYWxpemUucmVhZGFibGUsIHNlcnZlcldyaXRhYmxlLCBzdGF0ZSkuY2F0Y2goKCkgPT4ge1xuICAgIC8vIEVycm9ycyBhcmUgaGFuZGxlZCB2aWEgc3RhdGUucmVqZWN0XG4gIH0pO1xuXG4gIHBvbGxXcml0YWJsZUxvY2soc2VyaWFsaXplLndyaXRhYmxlLCBzdGF0ZSk7XG5cbiAgLy8gVGFnIHRoZSB3cml0YWJsZSB3aXRoIGl0cyB1bmRlcmx5aW5nIGAocnVuSWQsIG5hbWUpYCBzbyBkb3duc3RyZWFtXG4gIC8vIHJlZHVjZXJzIGNhbiByZWNvZ25pemUgdGhhdCBpdCdzIGFscmVhZHkgYmFja2VkIGJ5IGEgd29ya2Zsb3dcbiAgLy8gc2VydmVyIHN0cmVhbS4gQ2FsbGluZyBgc3RhcnQoY2hpbGQsIFthcmdzLCB0aGVXcml0YWJsZV0pYCBmcm9tXG4gIC8vIHRoZSBzYW1lIHN0ZXAgdXNlcyB0aGVzZSB0YWdzIHRvIGVtaXQgYHsgbmFtZSwgcnVuSWQgfWAgaW4gdGhlXG4gIC8vIGRlaHlkcmF0ZWQgZGVzY3JpcHRvciwgc28gdGhlIGNoaWxkJ3MgcmV2aXZlciBjYW4gb3BlbiB0aGVcbiAgLy8gd3JpdGFibGUgYWdhaW5zdCB0aGUgb3JpZ2luYWwgYChydW5JZCwgbmFtZSlgIGRpcmVjdGx5LCB3aXRoIG5vXG4gIC8vIGluLXByb2Nlc3MgYnJpZGdlIHRpZWQgdG8gdGhpcyBzdGVwJ3MgbGlmZXRpbWUuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXJpYWxpemUud3JpdGFibGUsIFNUUkVBTV9OQU1FX1NZTUJPTCwge1xuICAgIHZhbHVlOiBuYW1lLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXJpYWxpemUud3JpdGFibGUsIFNUUkVBTV9TRVJWRVJfUlVOX0lEX1NZTUJPTCwge1xuICAgIHZhbHVlOiBydW5JZCxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gIH0pO1xuICBpZiAoY3R4LndvcmtmbG93RGVwbG95bWVudElkKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgc2VyaWFsaXplLndyaXRhYmxlLFxuICAgICAgU1RSRUFNX1NFUlZFUl9ERVBMT1lNRU5UX0lEX1NZTUJPTCxcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGN0eC53b3JrZmxvd0RlcGxveW1lbnRJZCxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgfVxuICAgICk7XG4gIH1cbiAgLy8gUHVibGlzaCB0aGlzIHJ1bidzIFgyNTUxOSBwdWJsaWMga2V5IG9uIHRoZSBoYW5kbGUgc28gdGhhdCBhIHJ1biB0aGlzXG4gIC8vIHdyaXRhYmxlIGlzIGZvcndhcmRlZCB0byBjYW4gc2VhbCBmcmFtZXMgd2l0aG91dCBsb29raW5nIGFueXRoaW5nIHVwLlxuICAvLyBUaGUga2V5IGlzIGFscmVhZHkgcmVzb2x2ZWQgb24gdGhlIHN0ZXAgY29udGV4dCwgc28gdGhpcyBjb3N0cyBub3RoaW5nXG4gIC8vIGhlcmUgYW5kIHNhdmVzIHRoZSByZWNlaXZlciBhIHJvdW5kIHRyaXAuXG4gIGlmIChpc1J1blBheWxvYWRLZXlzKGN0eC5lbmNyeXB0aW9uS2V5KSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZXJpYWxpemUud3JpdGFibGUsIFNUUkVBTV9TRVJWRVJfUFVCTElDX0tFWV9TWU1CT0wsIHtcbiAgICAgIHZhbHVlOiBieXRlc1RvQmFzZTY0KGN0eC5lbmNyeXB0aW9uS2V5LmtleVBhaXIucHVibGljS2V5KSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIGNhY2hlLnNldChuYW1lLCB7IHdyaXRhYmxlOiBzZXJpYWxpemUud3JpdGFibGUsIHN0YXRlIH0pO1xuXG4gIHJldHVybiBzZXJpYWxpemUud3JpdGFibGUgYXMgV3JpdGFibGVTdHJlYW08Vz47XG59XG4iXX0=
|