@workflow/core 5.0.0-beta.39 → 5.0.0-beta.40
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/classify-error.d.ts.map +1 -1
- package/dist/classify-error.js +5 -2
- package/dist/correlation-id.d.ts +109 -0
- package/dist/correlation-id.d.ts.map +1 -0
- package/dist/correlation-id.js +139 -0
- package/dist/describe-error.d.ts.map +1 -1
- package/dist/describe-error.js +14 -1
- package/dist/events-consumer.d.ts +1 -0
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +11 -3
- package/dist/private.d.ts +17 -1
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +1 -1
- package/dist/runtime/constants.d.ts +19 -0
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +30 -1
- 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/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 +1429 -0
- package/dist/runtime/quickjs-runtime.d.ts +193 -0
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
- package/dist/runtime/quickjs-runtime.js +1944 -0
- package/dist/runtime/run.d.ts +2 -0
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +9 -4
- package/dist/runtime/runs.d.ts +18 -1
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +96 -2
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +9 -1
- package/dist/runtime/suspension-handler.d.ts +7 -0
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +29 -2
- 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.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +484 -47
- package/dist/serialization/codec-devalue-vm.d.ts +9 -0
- package/dist/serialization/codec-devalue-vm.d.ts.map +1 -0
- package/dist/serialization/codec-devalue-vm.js +137 -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/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.map +1 -1
- package/dist/serialization/reducers/common.js +28 -6
- 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/vm-bundle-entry.d.ts +12 -0
- package/dist/serialization/vm-bundle-entry.d.ts.map +1 -0
- package/dist/serialization/vm-bundle-entry.js +58 -0
- package/dist/serialization/workflow-vm.d.ts +24 -0
- package/dist/serialization/workflow-vm.d.ts.map +1 -0
- package/dist/serialization/workflow-vm.js +66 -0
- package/dist/serialization.d.ts +2 -1
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +26 -21
- package/dist/source-map.d.ts +20 -0
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +47 -1
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +7 -2
- package/dist/telemetry/semantic-conventions.d.ts +78 -0
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +56 -1
- package/dist/telemetry.d.ts +5 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +13 -13
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -2
- package/dist/workflow/abort-controller.d.ts.map +1 -1
- package/dist/workflow/abort-controller.js +6 -4
- package/dist/workflow/attribute-dispatcher.js +2 -2
- package/dist/workflow/hook.js +2 -2
- package/dist/workflow/sleep.js +2 -2
- package/dist/workflow.d.ts +49 -2
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +723 -569
- package/docs/api-reference/create-hook.mdx +1 -1
- package/docs/foundations/starting-workflows.mdx +74 -1
- package/package.json +8 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify-error.d.ts","sourceRoot":"","sources":["../src/classify-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"classify-error.d.ts","sourceRoot":"","sources":["../src/classify-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,YAAY,EAOjB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAsC1B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB,CAe5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAW3D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAkC3D"}
|
package/dist/classify-error.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CorruptedEventLogError, MaxEventsExceededError, ReplayDivergenceError, RUN_ERROR_CODES, RuntimeDecryptionError, StepNotRegisteredError, ThrottleError, WorkflowNotRegisteredError, WorkflowRuntimeError, WorkflowWorldError, } from '@workflow/errors';
|
|
1
|
+
import { CorruptedEventLogError, MaxEventsExceededError, ReplayDivergenceError, RUN_ERROR_CODES, RuntimeDecryptionError, StepNotRegisteredError, ThrottleError, WorkflowDeploymentMismatchError, WorkflowNotRegisteredError, WorkflowRuntimeError, WorkflowWorldError, } from '@workflow/errors';
|
|
2
2
|
const WORLD_CONTRACT_ERROR_CODES = new Set([
|
|
3
3
|
'PARSE_ERROR',
|
|
4
4
|
'SCHEMA_VALIDATION',
|
|
@@ -97,6 +97,9 @@ export function classifyRunError(err) {
|
|
|
97
97
|
if (MaxEventsExceededError.is(err)) {
|
|
98
98
|
return RUN_ERROR_CODES.MAX_EVENTS_EXCEEDED;
|
|
99
99
|
}
|
|
100
|
+
if (WorkflowDeploymentMismatchError.is(err)) {
|
|
101
|
+
return RUN_ERROR_CODES.DEPLOYMENT_MISMATCH;
|
|
102
|
+
}
|
|
100
103
|
// World-layer faults — both a malformed response (contract violation) and a
|
|
101
104
|
// transient infrastructure failure (throttle / 5xx / transport / timeout,
|
|
102
105
|
// e.g. a firewall challenge) — are the backend's fault, not the user's.
|
|
@@ -114,4 +117,4 @@ export function classifyRunError(err) {
|
|
|
114
117
|
}
|
|
115
118
|
return RUN_ERROR_CODES.USER_ERROR;
|
|
116
119
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpZnktZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xhc3NpZnktZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLGtCQUFrQixHQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDekMsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixlQUFlLENBQUMsb0JBQW9CO0NBQ3JDLENBQUMsQ0FBQztBQUVIOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUV0RTs7Ozs7O0dBTUc7QUFDSCxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLG9CQUFvQixDQUFDLEVBQUU7SUFDdkIsc0JBQXNCLENBQUMsRUFBRTtJQUN6QiwwQkFBMEIsQ0FBQyxFQUFFO0lBQzdCLCtEQUErRDtJQUMvRCx5REFBeUQ7SUFDekQsb0VBQW9FO0lBQ3BFLGtDQUFrQztJQUNsQyxzQkFBc0IsQ0FBQyxFQUFFO0NBQzFCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsR0FBWTtJQUMvQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JELE9BQU8sQ0FDTCxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsb0NBQW9DLENBQUM7UUFDNUQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUM7UUFDdkQsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3hCLEtBQUssS0FBSyxJQUFJO1lBQ2QsTUFBTSxJQUFJLEtBQUs7WUFDZixLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsR0FBWTtJQUNoRCxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksMkJBQTJCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQVk7SUFDM0MsSUFBSSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLDBFQUEwRTtJQUMxRSx3RUFBd0U7SUFDeEUsOEVBQThFO0lBQzlFLDBFQUEwRTtJQUMxRSw4RUFBOEU7SUFDOUUsMERBQTBEO0lBQzFELElBQUksb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUkscUJBQXFCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxPQUFPLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxNQUFNLE9BQU8sSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQzNDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakIsT0FBTyxlQUFlLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb3JydXB0ZWRFdmVudExvZ0Vycm9yLFxuICBNYXhFdmVudHNFeGNlZWRlZEVycm9yLFxuICBSZXBsYXlEaXZlcmdlbmNlRXJyb3IsXG4gIFJVTl9FUlJPUl9DT0RFUyxcbiAgdHlwZSBSdW5FcnJvckNvZGUsXG4gIFJ1bnRpbWVEZWNyeXB0aW9uRXJyb3IsXG4gIFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3IsXG4gIFRocm90dGxlRXJyb3IsXG4gIFdvcmtmbG93Tm90UmVnaXN0ZXJlZEVycm9yLFxuICBXb3JrZmxvd1J1bnRpbWVFcnJvcixcbiAgV29ya2Zsb3dXb3JsZEVycm9yLFxufSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzJztcblxuY29uc3QgV09STERfQ09OVFJBQ1RfRVJST1JfQ09ERVMgPSBuZXcgU2V0KFtcbiAgJ1BBUlNFX0VSUk9SJyxcbiAgJ1NDSEVNQV9WQUxJREFUSU9OJyxcbiAgUlVOX0VSUk9SX0NPREVTLldPUkxEX0NPTlRSQUNUX0VSUk9SLFxuXSk7XG5cbi8qKlxuICogYFdvcmtmbG93V29ybGRFcnJvci5jb2RlYCB2YWx1ZXMgdGhhdCBtYXJrIGEgdHJhbnNpZW50IHRyYW5zcG9ydCBmYWlsdXJlXG4gKiAoc2V0IGJ5IHdvcmxkLXZlcmNlbCdzIEhUVFAgY2xpZW50KTogYFRSQU5TUE9SVGAgY292ZXJzIGFuIGV4aGF1c3RlZFxuICogUmV0cnlBZ2VudCAoYFVORF9FUlJfUkVRX1JFVFJZYCDigJQgZS5nLiB0aGUgZmlyZXdhbGwgaW4gZnJvbnQgb2ZcbiAqIHdvcmtmbG93LXNlcnZlciBzaGVkZGluZyBsb2FkIHdpdGggNDI5LzUwMyksIGEgZHJvcHBlZCBzb2NrZXQsIG9yIGFcbiAqIGNvbm5lY3QvRE5TIGZhaWx1cmU7IGBUSU1FT1VUYCBjb3ZlcnMgYSByZXF1ZXN0IHRoYXQgZXhjZWVkZWQgdGhlIGNsaWVudFxuICogdGltZW91dC4gQm90aCBhcmUgaW5mcmFzdHJ1Y3R1cmUgZmFpbHVyZXMgYSBmcmVzaCBpbnZvY2F0aW9uIGNhbiByZWNvdmVyXG4gKiBmcm9tLiBLZXB0IGRpc3RpbmN0IGZyb20gYFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTYCBzbyBhIHRyYW5zcG9ydCBibGlwIGlzXG4gKiBuZXZlciBtaXNjbGFzc2lmaWVkIGFzIHRoZSBzZXJ2ZXIgcmV0dXJuaW5nIGEgbWFsZm9ybWVkIHJlc3BvbnNlLlxuICovXG5jb25zdCBSRVRSWUFCTEVfV09STERfRVJST1JfQ09ERVMgPSBuZXcgU2V0KFsnVFJBTlNQT1JUJywgJ1RJTUVPVVQnXSk7XG5cbi8qKlxuICogU2V0IG9mIGVycm9yIG5hbWVzIHRoYXQgc2hvdWxkIGNsYXNzaWZ5IGFzIGdlbmVyaWMgYFJVTlRJTUVfRVJST1JgLiBFYWNoXG4gKiBgKi5pcygpYCBzdGF0aWMgZG9lcyBhIG5hbWUtYmFzZWQgZHVjayBjaGVjaywgc28gc3ViY2xhc3NpbmcgYWxvbmUgaXNcbiAqIG5vdCBlbm91Z2gg4oCUIHdlIGhhdmUgdG8gZW51bWVyYXRlIGV2ZXJ5IGNvbmNyZXRlIHN1YmNsYXNzIHdlIHdhbnQgdG9cbiAqIHJlY29nbml6ZS4gS2VlcCBpbiBzeW5jIHdpdGggdGhlIGBXb3JrZmxvd1J1bnRpbWVFcnJvcmAgY2xhc3MgaGllcmFyY2h5XG4gKiBpbiBgQHdvcmtmbG93L2Vycm9yc2AuXG4gKi9cbmNvbnN0IFJVTlRJTUVfRVJST1JfQ0hFQ0tTID0gW1xuICBXb3JrZmxvd1J1bnRpbWVFcnJvci5pcyxcbiAgU3RlcE5vdFJlZ2lzdGVyZWRFcnJvci5pcyxcbiAgV29ya2Zsb3dOb3RSZWdpc3RlcmVkRXJyb3IuaXMsXG4gIC8vIFNESy1sZXZlbCBlbmNyeXB0aW9uIGZhaWx1cmVzIChtb3N0IG5vdGFibHkgQUVTLUdDTSBhdXRoLXRhZ1xuICAvLyBtaXNtYXRjaGVzIHN1cmZhY2luZyBhcyBhIG5hdGl2ZSBgT3BlcmF0aW9uRXJyb3JgIGZyb21cbiAgLy8gYEFFU0NpcGhlckpvYi5vbkRvbmVgKSBhcmUgd3JhcHBlZCBpbiBgUnVudGltZURlY3J5cHRpb25FcnJvcmAgYXRcbiAgLy8gdGhlIGVuY3J5cHRpb24gbW9kdWxlIGJvdW5kYXJ5LlxuICBSdW50aW1lRGVjcnlwdGlvbkVycm9yLmlzLFxuXTtcblxuLyoqXG4gKiBDbGFzc2lmeSBhbiBlcnJvciB0aGF0IGNhdXNlZCBhIHdvcmtmbG93IHJ1biB0byBmYWlsLlxuICpcbiAqIEFmdGVyIHRoZSBzdHJ1Y3R1cmFsIHNlcGFyYXRpb24gb2YgaW5mcmFzdHJ1Y3R1cmUgdnMgdXNlciBjb2RlIGVycm9yXG4gKiBoYW5kbGluZywgdGhlIG9ubHkgZXJyb3JzIHRoYXQgcmVhY2ggdGhlIGBydW5fZmFpbGVkYCB0cnkvY2F0Y2ggYXJlOlxuICogLSBVc2VyIGNvZGUgZXJyb3JzICh0aHJvd3MgZnJvbSB3b3JrZmxvdyBmdW5jdGlvbnMsIHByb3BhZ2F0ZWQgc3RlcCBmYWlsdXJlcylcbiAqIC0gV29ya2Zsb3dSdW50aW1lRXJyb3IgYW5kIHN1YmNsYXNzZXMgKG1pc3NpbmcgdGltZXN0YW1wcywgd29ya2Zsb3cvc3RlcFxuICogICBub3QgcmVnaXN0ZXJlZCwgY29ycnVwdGVkIGV2ZW50IGxvZywgZXRjLilcbiAqXG4gKiBVc2VzIGVhY2ggc3ViY2xhc3MncyBgLmlzKClgIHN0YXRpYyAoYSBuYW1lLWJhc2VkIGR1Y2sgY2hlY2spIGluc3RlYWQgb2ZcbiAqIGEgc2luZ2xlIGBpbnN0YW5jZW9mYCBjaGVjayBiZWNhdXNlIHdvcmtmbG93cyBleGVjdXRlIGluIGEgc2VwYXJhdGVcbiAqIGB2bWAgcmVhbG06IHRoZSBWTS1jb250ZXh0IGBXb3JrZmxvd1J1bnRpbWVFcnJvcmAgYW5kIHRoZSBob3N0LWNvbnRleHRcbiAqIG9uZSBhcmUgZGlzdGluY3QgY2xhc3Nlcywgc28gYGluc3RhbmNlb2ZgIHJldHVybnMgYGZhbHNlYCBmb3IgYW55IGVycm9yXG4gKiB0aHJvd24gaW5zaWRlIHRoZSB3b3JrZmxvdyBWTSBhbmQgd2UnZCBtaXNjbGFzc2lmeSBnZW51aW5lIHJ1bnRpbWVcbiAqIGVycm9ycyBhcyB1c2VyIGVycm9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV29ybGRDb250cmFjdEVycm9yKGVycjogdW5rbm93bik6IGVyciBpcyBXb3JrZmxvd1dvcmxkRXJyb3Ige1xuICBpZiAoIVdvcmtmbG93V29ybGRFcnJvci5pcyhlcnIpIHx8IGVyci5zdGF0dXMgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNhdXNlID0gJ2NhdXNlJyBpbiBlcnIgPyBlcnIuY2F1c2UgOiB1bmRlZmluZWQ7XG4gIHJldHVybiAoXG4gICAgKGVyci5jb2RlICE9PSB1bmRlZmluZWQgJiYgV09STERfQ09OVFJBQ1RfRVJST1JfQ09ERVMuaGFzKGVyci5jb2RlKSkgfHxcbiAgICBlcnIubWVzc2FnZS5zdGFydHNXaXRoKCdGYWlsZWQgdG8gcGFyc2UgcmVzcG9uc2UgYm9keSBmb3IgJykgfHxcbiAgICBlcnIubWVzc2FnZS5zdGFydHNXaXRoKCdTY2hlbWEgdmFsaWRhdGlvbiBmYWlsZWQgZm9yICcpIHx8XG4gICAgKHR5cGVvZiBjYXVzZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIGNhdXNlICE9PSBudWxsICYmXG4gICAgICAnbmFtZScgaW4gY2F1c2UgJiZcbiAgICAgIGNhdXNlLm5hbWUgPT09ICdab2RFcnJvcicpXG4gICk7XG59XG5cbi8qKlxuICogVHJ1ZSB3aGVuIGFuIGVycm9yIGZyb20gYSB3b3JsZCAod29ya2Zsb3ctc2VydmVyKSBjYWxsIGlzIGEgdHJhbnNpZW50XG4gKiBpbmZyYXN0cnVjdHVyZSBmYWlsdXJlIHRoYXQgc2hvdWxkIGJlIHJldHJpZWQgYnkgcmVkZWxpdmVyaW5nIHRoZSBxdWV1ZVxuICogbWVzc2FnZSwgcmF0aGVyIHRoYW4gZmFpbGluZyB0aGUgcnVuLiBBIGZyZXNoIGludm9jYXRpb24gd2lsbCBsaWtlbHlcbiAqIHN1Y2NlZWQgb25jZSB0aGUgYmFja2VuZCAob3IgdGhlIGZpcmV3YWxsIGluIGZyb250IG9mIGl0KSByZWNvdmVycy5cbiAqXG4gKiAtIGBUaHJvdHRsZUVycm9yYCAoNDI5KTogcmF0ZSBsaW1pdGVkIC8gbG9hZCBzaGVkXG4gKiAtIGBXb3JrZmxvd1dvcmxkRXJyb3JgIHdpdGggYHN0YXR1cyA+PSA1MDBgOiBzZXJ2ZXItc2lkZSBlcnJvclxuICogLSBgV29ya2Zsb3dXb3JsZEVycm9yYCB3aXRoIGEgcmV0cnlhYmxlIHRyYW5zcG9ydCBgY29kZWAgKGBUUkFOU1BPUlRgIC9cbiAqICAgYFRJTUVPVVRgKTogdGhlIHJlcXVlc3QgbmV2ZXIgcHJvZHVjZWQgYSB1c2FibGUgcmVzcG9uc2VcbiAqXG4gKiBVc2VzIGAuaXMoKWAgbmFtZS1iYXNlZCBkdWNrIGNoZWNrcyAobm90IGBpbnN0YW5jZW9mYCkgZm9yIHRoZSBzYW1lXG4gKiBjcm9zcy1gdm1gLXJlYWxtIHJlYXNvbiBkZXNjcmliZWQgb24gYGNsYXNzaWZ5UnVuRXJyb3JgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZXRyeWFibGVXb3JsZEVycm9yKGVycjogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoVGhyb3R0bGVFcnJvci5pcyhlcnIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKCFXb3JrZmxvd1dvcmxkRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoZXJyLnN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIGVyci5zdGF0dXMgPj0gNTAwKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGVyci5jb2RlICE9PSB1bmRlZmluZWQgJiYgUkVUUllBQkxFX1dPUkxEX0VSUk9SX0NPREVTLmhhcyhlcnIuY29kZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGFzc2lmeVJ1bkVycm9yKGVycjogdW5rbm93bik6IFJ1bkVycm9yQ29kZSB7XG4gIGlmIChSZXBsYXlEaXZlcmdlbmNlRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuUkVQTEFZX0RJVkVSR0VOQ0U7XG4gIH1cblxuICBpZiAoQ29ycnVwdGVkRXZlbnRMb2dFcnJvci5pcyhlcnIpKSB7XG4gICAgcmV0dXJuIFJVTl9FUlJPUl9DT0RFUy5DT1JSVVBURURfRVZFTlRfTE9HO1xuICB9XG5cbiAgaWYgKE1heEV2ZW50c0V4Y2VlZGVkRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuTUFYX0VWRU5UU19FWENFRURFRDtcbiAgfVxuXG4gIC8vIFdvcmxkLWxheWVyIGZhdWx0cyDigJQgYm90aCBhIG1hbGZvcm1lZCByZXNwb25zZSAoY29udHJhY3QgdmlvbGF0aW9uKSBhbmQgYVxuICAvLyB0cmFuc2llbnQgaW5mcmFzdHJ1Y3R1cmUgZmFpbHVyZSAodGhyb3R0bGUgLyA1eHggLyB0cmFuc3BvcnQgLyB0aW1lb3V0LFxuICAvLyBlLmcuIGEgZmlyZXdhbGwgY2hhbGxlbmdlKSDigJQgYXJlIHRoZSBiYWNrZW5kJ3MgZmF1bHQsIG5vdCB0aGUgdXNlcidzLlxuICAvLyBCdWNrZXQgdGhlbSB1bmRlciBXT1JMRF9DT05UUkFDVF9FUlJPUiByYXRoZXIgdGhhbiBVU0VSX0VSUk9SIHNvIGRhc2hib2FyZHNcbiAgLy8gYXR0cmlidXRlIGFuIG91dGFnZSBjb3JyZWN0bHkuIE5vdGUgdGhlIHJldHJ5YWJsZSB2YXJpYW50cyBhcmUgbm9ybWFsbHlcbiAgLy8gcmVkZWxpdmVyZWQgdmlhIHRoZSBxdWV1ZSAoc2VlIGBpc1JldHJ5YWJsZVdvcmxkRXJyb3JgKSBhbmQgb25seSByZWFjaCB0aGlzXG4gIC8vIHRlcm1pbmFsIGNsYXNzaWZpY2F0aW9uIGlmIHRoZSBydW4gdWx0aW1hdGVseSBnaXZlcyB1cC5cbiAgaWYgKGlzV29ybGRDb250cmFjdEVycm9yKGVycikgfHwgaXNSZXRyeWFibGVXb3JsZEVycm9yKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLldPUkxEX0NPTlRSQUNUX0VSUk9SO1xuICB9XG5cbiAgZm9yIChjb25zdCBpc01hdGNoIG9mIFJVTlRJTUVfRVJST1JfQ0hFQ0tTKSB7XG4gICAgaWYgKGlzTWF0Y2goZXJyKSkge1xuICAgICAgcmV0dXJuIFJVTl9FUlJPUl9DT0RFUy5SVU5USU1FX0VSUk9SO1xuICAgIH1cbiAgfVxuICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlVTRVJfRVJST1I7XG59XG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpZnktZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xhc3NpZnktZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYiwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3pDLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsZUFBZSxDQUFDLG9CQUFvQjtDQUNyQyxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFdEU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixvQkFBb0IsQ0FBQyxFQUFFO0lBQ3ZCLHNCQUFzQixDQUFDLEVBQUU7SUFDekIsMEJBQTBCLENBQUMsRUFBRTtJQUM3QiwrREFBK0Q7SUFDL0QseURBQXlEO0lBQ3pELG9FQUFvRTtJQUNwRSxrQ0FBa0M7SUFDbEMsc0JBQXNCLENBQUMsRUFBRTtDQUMxQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVk7SUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxPQUFPLENBQ0wsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxDQUFDO1FBQzVELEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDO1FBQ3ZELENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUTtZQUN4QixLQUFLLEtBQUssSUFBSTtZQUNkLE1BQU0sSUFBSSxLQUFLO1lBQ2YsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQVk7SUFDaEQsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFZO0lBQzNDLElBQUkscUJBQXFCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxlQUFlLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksK0JBQStCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSwwRUFBMEU7SUFDMUUsd0VBQXdFO0lBQ3hFLDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsOEVBQThFO0lBQzlFLDBEQUEwRDtJQUMxRCxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUQsT0FBTyxlQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssTUFBTSxPQUFPLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMzQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29ycnVwdGVkRXZlbnRMb2dFcnJvcixcbiAgTWF4RXZlbnRzRXhjZWVkZWRFcnJvcixcbiAgUmVwbGF5RGl2ZXJnZW5jZUVycm9yLFxuICBSVU5fRVJST1JfQ09ERVMsXG4gIHR5cGUgUnVuRXJyb3JDb2RlLFxuICBSdW50aW1lRGVjcnlwdGlvbkVycm9yLFxuICBTdGVwTm90UmVnaXN0ZXJlZEVycm9yLFxuICBUaHJvdHRsZUVycm9yLFxuICBXb3JrZmxvd0RlcGxveW1lbnRNaXNtYXRjaEVycm9yLFxuICBXb3JrZmxvd05vdFJlZ2lzdGVyZWRFcnJvcixcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IsXG4gIFdvcmtmbG93V29ybGRFcnJvcixcbn0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5cbmNvbnN0IFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTID0gbmV3IFNldChbXG4gICdQQVJTRV9FUlJPUicsXG4gICdTQ0hFTUFfVkFMSURBVElPTicsXG4gIFJVTl9FUlJPUl9DT0RFUy5XT1JMRF9DT05UUkFDVF9FUlJPUixcbl0pO1xuXG4vKipcbiAqIGBXb3JrZmxvd1dvcmxkRXJyb3IuY29kZWAgdmFsdWVzIHRoYXQgbWFyayBhIHRyYW5zaWVudCB0cmFuc3BvcnQgZmFpbHVyZVxuICogKHNldCBieSB3b3JsZC12ZXJjZWwncyBIVFRQIGNsaWVudCk6IGBUUkFOU1BPUlRgIGNvdmVycyBhbiBleGhhdXN0ZWRcbiAqIFJldHJ5QWdlbnQgKGBVTkRfRVJSX1JFUV9SRVRSWWAg4oCUIGUuZy4gdGhlIGZpcmV3YWxsIGluIGZyb250IG9mXG4gKiB3b3JrZmxvdy1zZXJ2ZXIgc2hlZGRpbmcgbG9hZCB3aXRoIDQyOS81MDMpLCBhIGRyb3BwZWQgc29ja2V0LCBvciBhXG4gKiBjb25uZWN0L0ROUyBmYWlsdXJlOyBgVElNRU9VVGAgY292ZXJzIGEgcmVxdWVzdCB0aGF0IGV4Y2VlZGVkIHRoZSBjbGllbnRcbiAqIHRpbWVvdXQuIEJvdGggYXJlIGluZnJhc3RydWN0dXJlIGZhaWx1cmVzIGEgZnJlc2ggaW52b2NhdGlvbiBjYW4gcmVjb3ZlclxuICogZnJvbS4gS2VwdCBkaXN0aW5jdCBmcm9tIGBXT1JMRF9DT05UUkFDVF9FUlJPUl9DT0RFU2Agc28gYSB0cmFuc3BvcnQgYmxpcCBpc1xuICogbmV2ZXIgbWlzY2xhc3NpZmllZCBhcyB0aGUgc2VydmVyIHJldHVybmluZyBhIG1hbGZvcm1lZCByZXNwb25zZS5cbiAqL1xuY29uc3QgUkVUUllBQkxFX1dPUkxEX0VSUk9SX0NPREVTID0gbmV3IFNldChbJ1RSQU5TUE9SVCcsICdUSU1FT1VUJ10pO1xuXG4vKipcbiAqIFNldCBvZiBlcnJvciBuYW1lcyB0aGF0IHNob3VsZCBjbGFzc2lmeSBhcyBnZW5lcmljIGBSVU5USU1FX0VSUk9SYC4gRWFjaFxuICogYCouaXMoKWAgc3RhdGljIGRvZXMgYSBuYW1lLWJhc2VkIGR1Y2sgY2hlY2ssIHNvIHN1YmNsYXNzaW5nIGFsb25lIGlzXG4gKiBub3QgZW5vdWdoIOKAlCB3ZSBoYXZlIHRvIGVudW1lcmF0ZSBldmVyeSBjb25jcmV0ZSBzdWJjbGFzcyB3ZSB3YW50IHRvXG4gKiByZWNvZ25pemUuIEtlZXAgaW4gc3luYyB3aXRoIHRoZSBgV29ya2Zsb3dSdW50aW1lRXJyb3JgIGNsYXNzIGhpZXJhcmNoeVxuICogaW4gYEB3b3JrZmxvdy9lcnJvcnNgLlxuICovXG5jb25zdCBSVU5USU1FX0VSUk9SX0NIRUNLUyA9IFtcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IuaXMsXG4gIFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3IuaXMsXG4gIFdvcmtmbG93Tm90UmVnaXN0ZXJlZEVycm9yLmlzLFxuICAvLyBTREstbGV2ZWwgZW5jcnlwdGlvbiBmYWlsdXJlcyAobW9zdCBub3RhYmx5IEFFUy1HQ00gYXV0aC10YWdcbiAgLy8gbWlzbWF0Y2hlcyBzdXJmYWNpbmcgYXMgYSBuYXRpdmUgYE9wZXJhdGlvbkVycm9yYCBmcm9tXG4gIC8vIGBBRVNDaXBoZXJKb2Iub25Eb25lYCkgYXJlIHdyYXBwZWQgaW4gYFJ1bnRpbWVEZWNyeXB0aW9uRXJyb3JgIGF0XG4gIC8vIHRoZSBlbmNyeXB0aW9uIG1vZHVsZSBib3VuZGFyeS5cbiAgUnVudGltZURlY3J5cHRpb25FcnJvci5pcyxcbl07XG5cbi8qKlxuICogQ2xhc3NpZnkgYW4gZXJyb3IgdGhhdCBjYXVzZWQgYSB3b3JrZmxvdyBydW4gdG8gZmFpbC5cbiAqXG4gKiBBZnRlciB0aGUgc3RydWN0dXJhbCBzZXBhcmF0aW9uIG9mIGluZnJhc3RydWN0dXJlIHZzIHVzZXIgY29kZSBlcnJvclxuICogaGFuZGxpbmcsIHRoZSBvbmx5IGVycm9ycyB0aGF0IHJlYWNoIHRoZSBgcnVuX2ZhaWxlZGAgdHJ5L2NhdGNoIGFyZTpcbiAqIC0gVXNlciBjb2RlIGVycm9ycyAodGhyb3dzIGZyb20gd29ya2Zsb3cgZnVuY3Rpb25zLCBwcm9wYWdhdGVkIHN0ZXAgZmFpbHVyZXMpXG4gKiAtIFdvcmtmbG93UnVudGltZUVycm9yIGFuZCBzdWJjbGFzc2VzIChtaXNzaW5nIHRpbWVzdGFtcHMsIHdvcmtmbG93L3N0ZXBcbiAqICAgbm90IHJlZ2lzdGVyZWQsIGNvcnJ1cHRlZCBldmVudCBsb2csIGV0Yy4pXG4gKlxuICogVXNlcyBlYWNoIHN1YmNsYXNzJ3MgYC5pcygpYCBzdGF0aWMgKGEgbmFtZS1iYXNlZCBkdWNrIGNoZWNrKSBpbnN0ZWFkIG9mXG4gKiBhIHNpbmdsZSBgaW5zdGFuY2VvZmAgY2hlY2sgYmVjYXVzZSB3b3JrZmxvd3MgZXhlY3V0ZSBpbiBhIHNlcGFyYXRlXG4gKiBgdm1gIHJlYWxtOiB0aGUgVk0tY29udGV4dCBgV29ya2Zsb3dSdW50aW1lRXJyb3JgIGFuZCB0aGUgaG9zdC1jb250ZXh0XG4gKiBvbmUgYXJlIGRpc3RpbmN0IGNsYXNzZXMsIHNvIGBpbnN0YW5jZW9mYCByZXR1cm5zIGBmYWxzZWAgZm9yIGFueSBlcnJvclxuICogdGhyb3duIGluc2lkZSB0aGUgd29ya2Zsb3cgVk0gYW5kIHdlJ2QgbWlzY2xhc3NpZnkgZ2VudWluZSBydW50aW1lXG4gKiBlcnJvcnMgYXMgdXNlciBlcnJvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dvcmxkQ29udHJhY3RFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgV29ya2Zsb3dXb3JsZEVycm9yIHtcbiAgaWYgKCFXb3JrZmxvd1dvcmxkRXJyb3IuaXMoZXJyKSB8fCBlcnIuc3RhdHVzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjYXVzZSA9ICdjYXVzZScgaW4gZXJyID8gZXJyLmNhdXNlIDogdW5kZWZpbmVkO1xuICByZXR1cm4gKFxuICAgIChlcnIuY29kZSAhPT0gdW5kZWZpbmVkICYmIFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTLmhhcyhlcnIuY29kZSkpIHx8XG4gICAgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlIGJvZHkgZm9yICcpIHx8XG4gICAgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnU2NoZW1hIHZhbGlkYXRpb24gZmFpbGVkIGZvciAnKSB8fFxuICAgICh0eXBlb2YgY2F1c2UgPT09ICdvYmplY3QnICYmXG4gICAgICBjYXVzZSAhPT0gbnVsbCAmJlxuICAgICAgJ25hbWUnIGluIGNhdXNlICYmXG4gICAgICBjYXVzZS5uYW1lID09PSAnWm9kRXJyb3InKVxuICApO1xufVxuXG4vKipcbiAqIFRydWUgd2hlbiBhbiBlcnJvciBmcm9tIGEgd29ybGQgKHdvcmtmbG93LXNlcnZlcikgY2FsbCBpcyBhIHRyYW5zaWVudFxuICogaW5mcmFzdHJ1Y3R1cmUgZmFpbHVyZSB0aGF0IHNob3VsZCBiZSByZXRyaWVkIGJ5IHJlZGVsaXZlcmluZyB0aGUgcXVldWVcbiAqIG1lc3NhZ2UsIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIHJ1bi4gQSBmcmVzaCBpbnZvY2F0aW9uIHdpbGwgbGlrZWx5XG4gKiBzdWNjZWVkIG9uY2UgdGhlIGJhY2tlbmQgKG9yIHRoZSBmaXJld2FsbCBpbiBmcm9udCBvZiBpdCkgcmVjb3ZlcnMuXG4gKlxuICogLSBgVGhyb3R0bGVFcnJvcmAgKDQyOSk6IHJhdGUgbGltaXRlZCAvIGxvYWQgc2hlZFxuICogLSBgV29ya2Zsb3dXb3JsZEVycm9yYCB3aXRoIGBzdGF0dXMgPj0gNTAwYDogc2VydmVyLXNpZGUgZXJyb3JcbiAqIC0gYFdvcmtmbG93V29ybGRFcnJvcmAgd2l0aCBhIHJldHJ5YWJsZSB0cmFuc3BvcnQgYGNvZGVgIChgVFJBTlNQT1JUYCAvXG4gKiAgIGBUSU1FT1VUYCk6IHRoZSByZXF1ZXN0IG5ldmVyIHByb2R1Y2VkIGEgdXNhYmxlIHJlc3BvbnNlXG4gKlxuICogVXNlcyBgLmlzKClgIG5hbWUtYmFzZWQgZHVjayBjaGVja3MgKG5vdCBgaW5zdGFuY2VvZmApIGZvciB0aGUgc2FtZVxuICogY3Jvc3MtYHZtYC1yZWFsbSByZWFzb24gZGVzY3JpYmVkIG9uIGBjbGFzc2lmeVJ1bkVycm9yYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmV0cnlhYmxlV29ybGRFcnJvcihlcnI6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKFRocm90dGxlRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICghV29ya2Zsb3dXb3JsZEVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGVyci5zdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBlcnIuc3RhdHVzID49IDUwMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBlcnIuY29kZSAhPT0gdW5kZWZpbmVkICYmIFJFVFJZQUJMRV9XT1JMRF9FUlJPUl9DT0RFUy5oYXMoZXJyLmNvZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlSdW5FcnJvcihlcnI6IHVua25vd24pOiBSdW5FcnJvckNvZGUge1xuICBpZiAoUmVwbGF5RGl2ZXJnZW5jZUVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlJFUExBWV9ESVZFUkdFTkNFO1xuICB9XG5cbiAgaWYgKENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuQ09SUlVQVEVEX0VWRU5UX0xPRztcbiAgfVxuXG4gIGlmIChNYXhFdmVudHNFeGNlZWRlZEVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLk1BWF9FVkVOVFNfRVhDRUVERUQ7XG4gIH1cblxuICBpZiAoV29ya2Zsb3dEZXBsb3ltZW50TWlzbWF0Y2hFcnJvci5pcyhlcnIpKSB7XG4gICAgcmV0dXJuIFJVTl9FUlJPUl9DT0RFUy5ERVBMT1lNRU5UX01JU01BVENIO1xuICB9XG5cbiAgLy8gV29ybGQtbGF5ZXIgZmF1bHRzIOKAlCBib3RoIGEgbWFsZm9ybWVkIHJlc3BvbnNlIChjb250cmFjdCB2aW9sYXRpb24pIGFuZCBhXG4gIC8vIHRyYW5zaWVudCBpbmZyYXN0cnVjdHVyZSBmYWlsdXJlICh0aHJvdHRsZSAvIDV4eCAvIHRyYW5zcG9ydCAvIHRpbWVvdXQsXG4gIC8vIGUuZy4gYSBmaXJld2FsbCBjaGFsbGVuZ2UpIOKAlCBhcmUgdGhlIGJhY2tlbmQncyBmYXVsdCwgbm90IHRoZSB1c2VyJ3MuXG4gIC8vIEJ1Y2tldCB0aGVtIHVuZGVyIFdPUkxEX0NPTlRSQUNUX0VSUk9SIHJhdGhlciB0aGFuIFVTRVJfRVJST1Igc28gZGFzaGJvYXJkc1xuICAvLyBhdHRyaWJ1dGUgYW4gb3V0YWdlIGNvcnJlY3RseS4gTm90ZSB0aGUgcmV0cnlhYmxlIHZhcmlhbnRzIGFyZSBub3JtYWxseVxuICAvLyByZWRlbGl2ZXJlZCB2aWEgdGhlIHF1ZXVlIChzZWUgYGlzUmV0cnlhYmxlV29ybGRFcnJvcmApIGFuZCBvbmx5IHJlYWNoIHRoaXNcbiAgLy8gdGVybWluYWwgY2xhc3NpZmljYXRpb24gaWYgdGhlIHJ1biB1bHRpbWF0ZWx5IGdpdmVzIHVwLlxuICBpZiAoaXNXb3JsZENvbnRyYWN0RXJyb3IoZXJyKSB8fCBpc1JldHJ5YWJsZVdvcmxkRXJyb3IoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuV09STERfQ09OVFJBQ1RfRVJST1I7XG4gIH1cblxuICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgUlVOVElNRV9FUlJPUl9DSEVDS1MpIHtcbiAgICBpZiAoaXNNYXRjaChlcnIpKSB7XG4gICAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlJVTlRJTUVfRVJST1I7XG4gICAgfVxuICB9XG4gIHJldHVybiBSVU5fRVJST1JfQ09ERVMuVVNFUl9FUlJPUjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Correlation-id generation for the entity families a replay can create.
|
|
3
|
+
*
|
|
4
|
+
* Correlation ids are minted by the workflow VM and are the server's identity
|
|
5
|
+
* gate: a conditional create on the id is what makes a duplicate write from a
|
|
6
|
+
* second live replay idempotent instead of additive. That only works if two
|
|
7
|
+
* replays of the same run mint the same id for the same entity.
|
|
8
|
+
*
|
|
9
|
+
* Historically every id was the Nth draw of *one* monotonic ULID sequence per
|
|
10
|
+
* run, shared by steps, waits, hooks, attribute writes, abort controllers and
|
|
11
|
+
* stream ids alike. Every id was therefore an ordinal over the whole run, and a
|
|
12
|
+
* single extra draw of any kind renumbered every entity of every kind after it.
|
|
13
|
+
* Two replays that agreed about every step but disagreed about one `sleep()`
|
|
14
|
+
* would mint different ids for all subsequent steps, so their writes appended
|
|
15
|
+
* side by side instead of colliding, and the settled log ended up holding two
|
|
16
|
+
* names for one logical step. Only one of them can be consumed on the next
|
|
17
|
+
* replay; the other is fatal (`onUnconsumedEvent`).
|
|
18
|
+
*
|
|
19
|
+
* Per-kind sources narrow that coupling to one kind at a time: each family
|
|
20
|
+
* draws from its own independent incrementing sequence, so a disagreement about
|
|
21
|
+
* how many hooks or sleeps were created no longer renames steps.
|
|
22
|
+
*
|
|
23
|
+
* Ids stay syntactically valid ULIDs (10 Crockford characters of
|
|
24
|
+
* `fixedTimestamp` plus 16 of body), because correlation ids are validated as
|
|
25
|
+
* prefixed 26-char ULIDs by the backend, and they stay monotonic *within* a
|
|
26
|
+
* kind, because `hooks.list` is ordered by hook id.
|
|
27
|
+
*
|
|
28
|
+
* Monotonicity is per kind, and two kinds mint `hook_` ids (`hook` and
|
|
29
|
+
* `abortHook`), so listing order is only creation order *within* each of them.
|
|
30
|
+
* No world filters system hooks out of a listing, so a run that constructs an
|
|
31
|
+
* abort controller and also creates its own hooks lists that system hook at a
|
|
32
|
+
* position decided by its kind's hash rather than at its creation position.
|
|
33
|
+
* Order among the user's own hooks is unaffected.
|
|
34
|
+
*
|
|
35
|
+
* This does not make ids independent of *ordinal position within their own
|
|
36
|
+
* kind*: two replays that disagree about how many steps ran still mint
|
|
37
|
+
* different ids for the next step. That is a narrower failure than the shared
|
|
38
|
+
* sequence's, not an eliminated one.
|
|
39
|
+
*/
|
|
40
|
+
/** Entity families that draw correlation ids, each from its own sequence. */
|
|
41
|
+
export type CorrelationIdKind =
|
|
42
|
+
/** `step_` ids, one per step invocation. */
|
|
43
|
+
'step'
|
|
44
|
+
/** `wait_` ids, one per `sleep()`. */
|
|
45
|
+
| 'wait'
|
|
46
|
+
/** `hook_` ids for hooks created by workflow code. */
|
|
47
|
+
| 'hook'
|
|
48
|
+
/** `attr_` ids, one per attribute write. */
|
|
49
|
+
| 'attr'
|
|
50
|
+
/**
|
|
51
|
+
* The abort controller's own id, which becomes its stream name and hook
|
|
52
|
+
* token. Separate from `hook` so constructing an abort controller does not
|
|
53
|
+
* renumber later user hooks.
|
|
54
|
+
*/
|
|
55
|
+
| 'abort'
|
|
56
|
+
/** `hook_` ids for the internal system hook backing an abort controller. */
|
|
57
|
+
| 'abortHook'
|
|
58
|
+
/**
|
|
59
|
+
* Ids minted during serialization (`STABLE_ULID`): stream names, and an abort
|
|
60
|
+
* holder's stream name and `abrt_` hook token when it reaches serialization
|
|
61
|
+
* without an identity yet (`reduceAbortWithListener`), which is why `abort`
|
|
62
|
+
* above is not the only mint path for an abort identity. Not correlation ids,
|
|
63
|
+
* but they drew from the same shared sequence, so a workflow that serialized
|
|
64
|
+
* a stream renumbered every entity created after it.
|
|
65
|
+
*/
|
|
66
|
+
| 'stream';
|
|
67
|
+
/** Mints the ULID body of a correlation id for one entity family. */
|
|
68
|
+
export type CorrelationIdGenerator = (kind: CorrelationIdKind) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Builds a replay's correlation-id generator.
|
|
71
|
+
*
|
|
72
|
+
* `perKind: false` returns the run's single shared monotonic sequence and
|
|
73
|
+
* ignores the kind entirely, so both schemes go through one call path and the
|
|
74
|
+
* flag is the only difference between them.
|
|
75
|
+
*/
|
|
76
|
+
export declare function createCorrelationIdGenerator(options: {
|
|
77
|
+
/**
|
|
78
|
+
* The run's replay-stable seed. Must not vary between replays of one run, and
|
|
79
|
+
* must differ between runs, or two runs would mint identical ids.
|
|
80
|
+
*/
|
|
81
|
+
seed: string;
|
|
82
|
+
fixedTimestamp: number;
|
|
83
|
+
/** The run's shared monotonic sequence, used as-is when `perKind` is false. */
|
|
84
|
+
positional: () => string;
|
|
85
|
+
perKind: boolean;
|
|
86
|
+
}): CorrelationIdGenerator;
|
|
87
|
+
/** Length of a ULID, exported so tests need not restate it. */
|
|
88
|
+
export declare const CORRELATION_ID_LENGTH: number;
|
|
89
|
+
/**
|
|
90
|
+
* Whether each entity family draws correlation ids from its own sequence rather
|
|
91
|
+
* than from one sequence shared by the whole run. Off unless opted in, so an SDK
|
|
92
|
+
* upgrade alone never moves a run between schemes.
|
|
93
|
+
*
|
|
94
|
+
* The invariant either way: a run must replay under the scheme that minted its
|
|
95
|
+
* ids. A replay under the other scheme mints ids its own earlier events do not
|
|
96
|
+
* carry, so it can consume none of them and fails the run. Two things can break
|
|
97
|
+
* it, and both are about turning the flag on rather than about upgrading:
|
|
98
|
+
*
|
|
99
|
+
* - Enabling it while runs are in flight. On Vercel, skew protection keeps a run
|
|
100
|
+
* on the deployment that started it, so a run only ever sees the value baked
|
|
101
|
+
* into its own deployment. Elsewhere (world-postgres, world-local, a
|
|
102
|
+
* self-hosted process) nothing pins a run to the code that started it, so
|
|
103
|
+
* enable it during a quiet window.
|
|
104
|
+
* - A rolling deploy that leaves both values live, which puts two schemes on one
|
|
105
|
+
* run concurrently — the side-by-side append this whole mechanism exists to
|
|
106
|
+
* avoid. Roll the value out to the whole fleet at once.
|
|
107
|
+
*/
|
|
108
|
+
export declare function isPerKindCorrelationIdsEnabled(): boolean;
|
|
109
|
+
//# sourceMappingURL=correlation-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlation-id.d.ts","sourceRoot":"","sources":["../src/correlation-id.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB;AAC3B,4CAA4C;AAC1C,MAAM;AACR,sCAAsC;GACpC,MAAM;AACR,sDAAsD;GACpD,MAAM;AACR,4CAA4C;GAC1C,MAAM;AACR;;;;GAIG;GACD,OAAO;AACT,4EAA4E;GAC1E,WAAW;AACb;;;;;;;GAOG;GACD,QAAQ,CAAC;AAEb,qEAAqE;AACrE,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,iBAAiB,KAAK,MAAM,CAAC;AAoGzE;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,sBAAsB,CAmBzB;AAED,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,QAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,IAAI,OAAO,CAExD"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { encodeTime, incrementBase32 } from 'ulid';
|
|
2
|
+
const CROCKFORD = '0123456789ABCDEFGHJKMNPQRSTVWXYZ';
|
|
3
|
+
/** Number of Crockford characters in a ULID's random component. */
|
|
4
|
+
const BODY_CHARS = 16;
|
|
5
|
+
/** Number of Crockford characters in a ULID's timestamp component. */
|
|
6
|
+
const TIME_CHARS = 10;
|
|
7
|
+
function mul32(a, b) {
|
|
8
|
+
return Math.imul(a, b) >>> 0;
|
|
9
|
+
}
|
|
10
|
+
function rotl32(value, shift) {
|
|
11
|
+
return ((value << shift) | (value >>> (32 - shift))) >>> 0;
|
|
12
|
+
}
|
|
13
|
+
/** MurmurHash3's 32-bit finalizer. */
|
|
14
|
+
function fmix32(input) {
|
|
15
|
+
let h = input >>> 0;
|
|
16
|
+
h = (h ^ (h >>> 16)) >>> 0;
|
|
17
|
+
h = mul32(h, 0x85ebca6b);
|
|
18
|
+
h = (h ^ (h >>> 13)) >>> 0;
|
|
19
|
+
h = mul32(h, 0xc2b2ae35);
|
|
20
|
+
return (h ^ (h >>> 16)) >>> 0;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Deterministic 128-bit hash of a string, as four 32-bit lanes.
|
|
24
|
+
*
|
|
25
|
+
* A MurmurHash3-style mixer over UTF-16 code units, rotating which lane absorbs
|
|
26
|
+
* each unit and diffusing across lanes at the end. Only determinism and
|
|
27
|
+
* diffusion matter here: this is not a cryptographic hash, claims no
|
|
28
|
+
* bit-compatibility with any reference implementation, and must not be used for
|
|
29
|
+
* anything that outlives a deployment's replays.
|
|
30
|
+
*/
|
|
31
|
+
function hash128(input) {
|
|
32
|
+
const lanes = [
|
|
33
|
+
0x9e3779b1, 0x85ebca77, 0xc2b2ae3d, 0x27d4eb2f,
|
|
34
|
+
];
|
|
35
|
+
for (let i = 0; i < input.length; i++) {
|
|
36
|
+
let k = input.charCodeAt(i) >>> 0;
|
|
37
|
+
k = mul32(k, 0xcc9e2d51);
|
|
38
|
+
k = rotl32(k, 15);
|
|
39
|
+
k = mul32(k, 0x1b873593);
|
|
40
|
+
const lane = i & 3;
|
|
41
|
+
let h = (lanes[lane] ^ k) >>> 0;
|
|
42
|
+
h = rotl32(h, 13);
|
|
43
|
+
lanes[lane] = (mul32(h, 5) + 0xe6546b64) >>> 0;
|
|
44
|
+
}
|
|
45
|
+
lanes[0] = (lanes[0] ^ input.length) >>> 0;
|
|
46
|
+
// Two passes so every lane depends on every other lane.
|
|
47
|
+
for (let pass = 0; pass < 2; pass++) {
|
|
48
|
+
for (let lane = 0; lane < 4; lane++) {
|
|
49
|
+
const previous = lanes[(lane + 3) & 3];
|
|
50
|
+
lanes[lane] = fmix32((lanes[lane] ^ previous) >>> 0);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return lanes;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Derives a kind's starting body: 80 bits of a 128-bit hash as 16 Crockford
|
|
57
|
+
* characters, most significant first.
|
|
58
|
+
*
|
|
59
|
+
* The leading character is confined to the alphabet's lower half so the body
|
|
60
|
+
* starts below half of the 80-bit space. `incrementBase32` throws on overflow,
|
|
61
|
+
* and without this a base that happened to land near `Z…Z` would make overflow
|
|
62
|
+
* reachable after few draws rather than after 2^79 of them.
|
|
63
|
+
*/
|
|
64
|
+
function deriveBody(seed, kind) {
|
|
65
|
+
const lanes = hash128(`${seed} correlation-kind ${kind}`);
|
|
66
|
+
const bytes = [
|
|
67
|
+
(lanes[0] >>> 24) & 0xff,
|
|
68
|
+
(lanes[0] >>> 16) & 0xff,
|
|
69
|
+
(lanes[0] >>> 8) & 0xff,
|
|
70
|
+
lanes[0] & 0xff,
|
|
71
|
+
(lanes[1] >>> 24) & 0xff,
|
|
72
|
+
(lanes[1] >>> 16) & 0xff,
|
|
73
|
+
(lanes[1] >>> 8) & 0xff,
|
|
74
|
+
lanes[1] & 0xff,
|
|
75
|
+
(lanes[2] >>> 24) & 0xff,
|
|
76
|
+
(lanes[2] >>> 16) & 0xff,
|
|
77
|
+
];
|
|
78
|
+
let body = '';
|
|
79
|
+
let accumulator = 0;
|
|
80
|
+
let bits = 0;
|
|
81
|
+
for (const byte of bytes) {
|
|
82
|
+
accumulator = ((accumulator << 8) | byte) >>> 0;
|
|
83
|
+
bits += 8;
|
|
84
|
+
while (bits >= 5) {
|
|
85
|
+
const index = (accumulator >>> (bits - 5)) & 31;
|
|
86
|
+
body += CROCKFORD[body.length === 0 ? index & 15 : index];
|
|
87
|
+
bits -= 5;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return body;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Builds a replay's correlation-id generator.
|
|
94
|
+
*
|
|
95
|
+
* `perKind: false` returns the run's single shared monotonic sequence and
|
|
96
|
+
* ignores the kind entirely, so both schemes go through one call path and the
|
|
97
|
+
* flag is the only difference between them.
|
|
98
|
+
*/
|
|
99
|
+
export function createCorrelationIdGenerator(options) {
|
|
100
|
+
const { seed, fixedTimestamp, positional, perKind } = options;
|
|
101
|
+
if (!perKind) {
|
|
102
|
+
return positional;
|
|
103
|
+
}
|
|
104
|
+
const time = encodeTime(fixedTimestamp, TIME_CHARS);
|
|
105
|
+
const bodies = new Map();
|
|
106
|
+
return (kind) => {
|
|
107
|
+
const previous = bodies.get(kind);
|
|
108
|
+
const body = previous === undefined
|
|
109
|
+
? deriveBody(seed, kind)
|
|
110
|
+
: incrementBase32(previous);
|
|
111
|
+
bodies.set(kind, body);
|
|
112
|
+
return `${time}${body}`;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/** Length of a ULID, exported so tests need not restate it. */
|
|
116
|
+
export const CORRELATION_ID_LENGTH = TIME_CHARS + BODY_CHARS;
|
|
117
|
+
/**
|
|
118
|
+
* Whether each entity family draws correlation ids from its own sequence rather
|
|
119
|
+
* than from one sequence shared by the whole run. Off unless opted in, so an SDK
|
|
120
|
+
* upgrade alone never moves a run between schemes.
|
|
121
|
+
*
|
|
122
|
+
* The invariant either way: a run must replay under the scheme that minted its
|
|
123
|
+
* ids. A replay under the other scheme mints ids its own earlier events do not
|
|
124
|
+
* carry, so it can consume none of them and fails the run. Two things can break
|
|
125
|
+
* it, and both are about turning the flag on rather than about upgrading:
|
|
126
|
+
*
|
|
127
|
+
* - Enabling it while runs are in flight. On Vercel, skew protection keeps a run
|
|
128
|
+
* on the deployment that started it, so a run only ever sees the value baked
|
|
129
|
+
* into its own deployment. Elsewhere (world-postgres, world-local, a
|
|
130
|
+
* self-hosted process) nothing pins a run to the code that started it, so
|
|
131
|
+
* enable it during a quiet window.
|
|
132
|
+
* - A rolling deploy that leaves both values live, which puts two schemes on one
|
|
133
|
+
* run concurrently — the side-by-side append this whole mechanism exists to
|
|
134
|
+
* avoid. Roll the value out to the whole fleet at once.
|
|
135
|
+
*/
|
|
136
|
+
export function isPerKindCorrelationIdsEnabled() {
|
|
137
|
+
return process.env.WORKFLOW_PER_KIND_CORRELATION_IDS === '1';
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycmVsYXRpb24taWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29ycmVsYXRpb24taWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUF5RW5ELE1BQU0sU0FBUyxHQUFHLGtDQUFrQyxDQUFDO0FBRXJELG1FQUFtRTtBQUNuRSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFdEIsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUV0QixTQUFTLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsS0FBYSxFQUFFLEtBQWE7SUFDMUMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELHNDQUFzQztBQUN0QyxTQUFTLE1BQU0sQ0FBQyxLQUFhO0lBQzNCLElBQUksQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6QixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsT0FBTyxDQUFDLEtBQWE7SUFDNUIsTUFBTSxLQUFLLEdBQXFDO1FBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7S0FDL0MsQ0FBQztJQUNGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLHdEQUF3RDtJQUN4RCxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxJQUFZLEVBQUUsSUFBdUI7SUFDdkQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxxQkFBcUIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLEtBQUssR0FBRztRQUNaLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUk7UUFDeEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSTtRQUN4QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJO1FBQ3ZCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO1FBQ2YsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSTtRQUN4QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJO1FBQ3hCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUk7UUFDdkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7UUFDZixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJO1FBQ3hCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUk7S0FDekIsQ0FBQztJQUNGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNwQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7SUFDYixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ1YsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxXQUFXLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEQsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUFDLE9BVTVDO0lBQ0MsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUU5RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztJQUVwRCxPQUFPLENBQUMsSUFBdUIsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQ1IsUUFBUSxLQUFLLFNBQVM7WUFDcEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFFN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sVUFBVSw4QkFBOEI7SUFDNUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxLQUFLLEdBQUcsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5jb2RlVGltZSwgaW5jcmVtZW50QmFzZTMyIH0gZnJvbSAndWxpZCc7XG5cbi8qKlxuICogQ29ycmVsYXRpb24taWQgZ2VuZXJhdGlvbiBmb3IgdGhlIGVudGl0eSBmYW1pbGllcyBhIHJlcGxheSBjYW4gY3JlYXRlLlxuICpcbiAqIENvcnJlbGF0aW9uIGlkcyBhcmUgbWludGVkIGJ5IHRoZSB3b3JrZmxvdyBWTSBhbmQgYXJlIHRoZSBzZXJ2ZXIncyBpZGVudGl0eVxuICogZ2F0ZTogYSBjb25kaXRpb25hbCBjcmVhdGUgb24gdGhlIGlkIGlzIHdoYXQgbWFrZXMgYSBkdXBsaWNhdGUgd3JpdGUgZnJvbSBhXG4gKiBzZWNvbmQgbGl2ZSByZXBsYXkgaWRlbXBvdGVudCBpbnN0ZWFkIG9mIGFkZGl0aXZlLiBUaGF0IG9ubHkgd29ya3MgaWYgdHdvXG4gKiByZXBsYXlzIG9mIHRoZSBzYW1lIHJ1biBtaW50IHRoZSBzYW1lIGlkIGZvciB0aGUgc2FtZSBlbnRpdHkuXG4gKlxuICogSGlzdG9yaWNhbGx5IGV2ZXJ5IGlkIHdhcyB0aGUgTnRoIGRyYXcgb2YgKm9uZSogbW9ub3RvbmljIFVMSUQgc2VxdWVuY2UgcGVyXG4gKiBydW4sIHNoYXJlZCBieSBzdGVwcywgd2FpdHMsIGhvb2tzLCBhdHRyaWJ1dGUgd3JpdGVzLCBhYm9ydCBjb250cm9sbGVycyBhbmRcbiAqIHN0cmVhbSBpZHMgYWxpa2UuIEV2ZXJ5IGlkIHdhcyB0aGVyZWZvcmUgYW4gb3JkaW5hbCBvdmVyIHRoZSB3aG9sZSBydW4sIGFuZCBhXG4gKiBzaW5nbGUgZXh0cmEgZHJhdyBvZiBhbnkga2luZCByZW51bWJlcmVkIGV2ZXJ5IGVudGl0eSBvZiBldmVyeSBraW5kIGFmdGVyIGl0LlxuICogVHdvIHJlcGxheXMgdGhhdCBhZ3JlZWQgYWJvdXQgZXZlcnkgc3RlcCBidXQgZGlzYWdyZWVkIGFib3V0IG9uZSBgc2xlZXAoKWBcbiAqIHdvdWxkIG1pbnQgZGlmZmVyZW50IGlkcyBmb3IgYWxsIHN1YnNlcXVlbnQgc3RlcHMsIHNvIHRoZWlyIHdyaXRlcyBhcHBlbmRlZFxuICogc2lkZSBieSBzaWRlIGluc3RlYWQgb2YgY29sbGlkaW5nLCBhbmQgdGhlIHNldHRsZWQgbG9nIGVuZGVkIHVwIGhvbGRpbmcgdHdvXG4gKiBuYW1lcyBmb3Igb25lIGxvZ2ljYWwgc3RlcC4gT25seSBvbmUgb2YgdGhlbSBjYW4gYmUgY29uc3VtZWQgb24gdGhlIG5leHRcbiAqIHJlcGxheTsgdGhlIG90aGVyIGlzIGZhdGFsIChgb25VbmNvbnN1bWVkRXZlbnRgKS5cbiAqXG4gKiBQZXIta2luZCBzb3VyY2VzIG5hcnJvdyB0aGF0IGNvdXBsaW5nIHRvIG9uZSBraW5kIGF0IGEgdGltZTogZWFjaCBmYW1pbHlcbiAqIGRyYXdzIGZyb20gaXRzIG93biBpbmRlcGVuZGVudCBpbmNyZW1lbnRpbmcgc2VxdWVuY2UsIHNvIGEgZGlzYWdyZWVtZW50IGFib3V0XG4gKiBob3cgbWFueSBob29rcyBvciBzbGVlcHMgd2VyZSBjcmVhdGVkIG5vIGxvbmdlciByZW5hbWVzIHN0ZXBzLlxuICpcbiAqIElkcyBzdGF5IHN5bnRhY3RpY2FsbHkgdmFsaWQgVUxJRHMgKDEwIENyb2NrZm9yZCBjaGFyYWN0ZXJzIG9mXG4gKiBgZml4ZWRUaW1lc3RhbXBgIHBsdXMgMTYgb2YgYm9keSksIGJlY2F1c2UgY29ycmVsYXRpb24gaWRzIGFyZSB2YWxpZGF0ZWQgYXNcbiAqIHByZWZpeGVkIDI2LWNoYXIgVUxJRHMgYnkgdGhlIGJhY2tlbmQsIGFuZCB0aGV5IHN0YXkgbW9ub3RvbmljICp3aXRoaW4qIGFcbiAqIGtpbmQsIGJlY2F1c2UgYGhvb2tzLmxpc3RgIGlzIG9yZGVyZWQgYnkgaG9vayBpZC5cbiAqXG4gKiBNb25vdG9uaWNpdHkgaXMgcGVyIGtpbmQsIGFuZCB0d28ga2luZHMgbWludCBgaG9va19gIGlkcyAoYGhvb2tgIGFuZFxuICogYGFib3J0SG9va2ApLCBzbyBsaXN0aW5nIG9yZGVyIGlzIG9ubHkgY3JlYXRpb24gb3JkZXIgKndpdGhpbiogZWFjaCBvZiB0aGVtLlxuICogTm8gd29ybGQgZmlsdGVycyBzeXN0ZW0gaG9va3Mgb3V0IG9mIGEgbGlzdGluZywgc28gYSBydW4gdGhhdCBjb25zdHJ1Y3RzIGFuXG4gKiBhYm9ydCBjb250cm9sbGVyIGFuZCBhbHNvIGNyZWF0ZXMgaXRzIG93biBob29rcyBsaXN0cyB0aGF0IHN5c3RlbSBob29rIGF0IGFcbiAqIHBvc2l0aW9uIGRlY2lkZWQgYnkgaXRzIGtpbmQncyBoYXNoIHJhdGhlciB0aGFuIGF0IGl0cyBjcmVhdGlvbiBwb3NpdGlvbi5cbiAqIE9yZGVyIGFtb25nIHRoZSB1c2VyJ3Mgb3duIGhvb2tzIGlzIHVuYWZmZWN0ZWQuXG4gKlxuICogVGhpcyBkb2VzIG5vdCBtYWtlIGlkcyBpbmRlcGVuZGVudCBvZiAqb3JkaW5hbCBwb3NpdGlvbiB3aXRoaW4gdGhlaXIgb3duXG4gKiBraW5kKjogdHdvIHJlcGxheXMgdGhhdCBkaXNhZ3JlZSBhYm91dCBob3cgbWFueSBzdGVwcyByYW4gc3RpbGwgbWludFxuICogZGlmZmVyZW50IGlkcyBmb3IgdGhlIG5leHQgc3RlcC4gVGhhdCBpcyBhIG5hcnJvd2VyIGZhaWx1cmUgdGhhbiB0aGUgc2hhcmVkXG4gKiBzZXF1ZW5jZSdzLCBub3QgYW4gZWxpbWluYXRlZCBvbmUuXG4gKi9cblxuLyoqIEVudGl0eSBmYW1pbGllcyB0aGF0IGRyYXcgY29ycmVsYXRpb24gaWRzLCBlYWNoIGZyb20gaXRzIG93biBzZXF1ZW5jZS4gKi9cbmV4cG9ydCB0eXBlIENvcnJlbGF0aW9uSWRLaW5kID1cbiAgLyoqIGBzdGVwX2AgaWRzLCBvbmUgcGVyIHN0ZXAgaW52b2NhdGlvbi4gKi9cbiAgfCAnc3RlcCdcbiAgLyoqIGB3YWl0X2AgaWRzLCBvbmUgcGVyIGBzbGVlcCgpYC4gKi9cbiAgfCAnd2FpdCdcbiAgLyoqIGBob29rX2AgaWRzIGZvciBob29rcyBjcmVhdGVkIGJ5IHdvcmtmbG93IGNvZGUuICovXG4gIHwgJ2hvb2snXG4gIC8qKiBgYXR0cl9gIGlkcywgb25lIHBlciBhdHRyaWJ1dGUgd3JpdGUuICovXG4gIHwgJ2F0dHInXG4gIC8qKlxuICAgKiBUaGUgYWJvcnQgY29udHJvbGxlcidzIG93biBpZCwgd2hpY2ggYmVjb21lcyBpdHMgc3RyZWFtIG5hbWUgYW5kIGhvb2tcbiAgICogdG9rZW4uIFNlcGFyYXRlIGZyb20gYGhvb2tgIHNvIGNvbnN0cnVjdGluZyBhbiBhYm9ydCBjb250cm9sbGVyIGRvZXMgbm90XG4gICAqIHJlbnVtYmVyIGxhdGVyIHVzZXIgaG9va3MuXG4gICAqL1xuICB8ICdhYm9ydCdcbiAgLyoqIGBob29rX2AgaWRzIGZvciB0aGUgaW50ZXJuYWwgc3lzdGVtIGhvb2sgYmFja2luZyBhbiBhYm9ydCBjb250cm9sbGVyLiAqL1xuICB8ICdhYm9ydEhvb2snXG4gIC8qKlxuICAgKiBJZHMgbWludGVkIGR1cmluZyBzZXJpYWxpemF0aW9uIChgU1RBQkxFX1VMSURgKTogc3RyZWFtIG5hbWVzLCBhbmQgYW4gYWJvcnRcbiAgICogaG9sZGVyJ3Mgc3RyZWFtIG5hbWUgYW5kIGBhYnJ0X2AgaG9vayB0b2tlbiB3aGVuIGl0IHJlYWNoZXMgc2VyaWFsaXphdGlvblxuICAgKiB3aXRob3V0IGFuIGlkZW50aXR5IHlldCAoYHJlZHVjZUFib3J0V2l0aExpc3RlbmVyYCksIHdoaWNoIGlzIHdoeSBgYWJvcnRgXG4gICAqIGFib3ZlIGlzIG5vdCB0aGUgb25seSBtaW50IHBhdGggZm9yIGFuIGFib3J0IGlkZW50aXR5LiBOb3QgY29ycmVsYXRpb24gaWRzLFxuICAgKiBidXQgdGhleSBkcmV3IGZyb20gdGhlIHNhbWUgc2hhcmVkIHNlcXVlbmNlLCBzbyBhIHdvcmtmbG93IHRoYXQgc2VyaWFsaXplZFxuICAgKiBhIHN0cmVhbSByZW51bWJlcmVkIGV2ZXJ5IGVudGl0eSBjcmVhdGVkIGFmdGVyIGl0LlxuICAgKi9cbiAgfCAnc3RyZWFtJztcblxuLyoqIE1pbnRzIHRoZSBVTElEIGJvZHkgb2YgYSBjb3JyZWxhdGlvbiBpZCBmb3Igb25lIGVudGl0eSBmYW1pbHkuICovXG5leHBvcnQgdHlwZSBDb3JyZWxhdGlvbklkR2VuZXJhdG9yID0gKGtpbmQ6IENvcnJlbGF0aW9uSWRLaW5kKSA9PiBzdHJpbmc7XG5cbmNvbnN0IENST0NLRk9SRCA9ICcwMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZWic7XG5cbi8qKiBOdW1iZXIgb2YgQ3JvY2tmb3JkIGNoYXJhY3RlcnMgaW4gYSBVTElEJ3MgcmFuZG9tIGNvbXBvbmVudC4gKi9cbmNvbnN0IEJPRFlfQ0hBUlMgPSAxNjtcblxuLyoqIE51bWJlciBvZiBDcm9ja2ZvcmQgY2hhcmFjdGVycyBpbiBhIFVMSUQncyB0aW1lc3RhbXAgY29tcG9uZW50LiAqL1xuY29uc3QgVElNRV9DSEFSUyA9IDEwO1xuXG5mdW5jdGlvbiBtdWwzMihhOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLmltdWwoYSwgYikgPj4+IDA7XG59XG5cbmZ1bmN0aW9uIHJvdGwzMih2YWx1ZTogbnVtYmVyLCBzaGlmdDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuICgodmFsdWUgPDwgc2hpZnQpIHwgKHZhbHVlID4+PiAoMzIgLSBzaGlmdCkpKSA+Pj4gMDtcbn1cblxuLyoqIE11cm11ckhhc2gzJ3MgMzItYml0IGZpbmFsaXplci4gKi9cbmZ1bmN0aW9uIGZtaXgzMihpbnB1dDogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGggPSBpbnB1dCA+Pj4gMDtcbiAgaCA9IChoIF4gKGggPj4+IDE2KSkgPj4+IDA7XG4gIGggPSBtdWwzMihoLCAweDg1ZWJjYTZiKTtcbiAgaCA9IChoIF4gKGggPj4+IDEzKSkgPj4+IDA7XG4gIGggPSBtdWwzMihoLCAweGMyYjJhZTM1KTtcbiAgcmV0dXJuIChoIF4gKGggPj4+IDE2KSkgPj4+IDA7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5pc3RpYyAxMjgtYml0IGhhc2ggb2YgYSBzdHJpbmcsIGFzIGZvdXIgMzItYml0IGxhbmVzLlxuICpcbiAqIEEgTXVybXVySGFzaDMtc3R5bGUgbWl4ZXIgb3ZlciBVVEYtMTYgY29kZSB1bml0cywgcm90YXRpbmcgd2hpY2ggbGFuZSBhYnNvcmJzXG4gKiBlYWNoIHVuaXQgYW5kIGRpZmZ1c2luZyBhY3Jvc3MgbGFuZXMgYXQgdGhlIGVuZC4gT25seSBkZXRlcm1pbmlzbSBhbmRcbiAqIGRpZmZ1c2lvbiBtYXR0ZXIgaGVyZTogdGhpcyBpcyBub3QgYSBjcnlwdG9ncmFwaGljIGhhc2gsIGNsYWltcyBub1xuICogYml0LWNvbXBhdGliaWxpdHkgd2l0aCBhbnkgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBhbmQgbXVzdCBub3QgYmUgdXNlZCBmb3JcbiAqIGFueXRoaW5nIHRoYXQgb3V0bGl2ZXMgYSBkZXBsb3ltZW50J3MgcmVwbGF5cy5cbiAqL1xuZnVuY3Rpb24gaGFzaDEyOChpbnB1dDogc3RyaW5nKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICBjb25zdCBsYW5lczogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPSBbXG4gICAgMHg5ZTM3NzliMSwgMHg4NWViY2E3NywgMHhjMmIyYWUzZCwgMHgyN2Q0ZWIyZixcbiAgXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykge1xuICAgIGxldCBrID0gaW5wdXQuY2hhckNvZGVBdChpKSA+Pj4gMDtcbiAgICBrID0gbXVsMzIoaywgMHhjYzllMmQ1MSk7XG4gICAgayA9IHJvdGwzMihrLCAxNSk7XG4gICAgayA9IG11bDMyKGssIDB4MWI4NzM1OTMpO1xuICAgIGNvbnN0IGxhbmUgPSBpICYgMztcbiAgICBsZXQgaCA9IChsYW5lc1tsYW5lXSBeIGspID4+PiAwO1xuICAgIGggPSByb3RsMzIoaCwgMTMpO1xuICAgIGxhbmVzW2xhbmVdID0gKG11bDMyKGgsIDUpICsgMHhlNjU0NmI2NCkgPj4+IDA7XG4gIH1cbiAgbGFuZXNbMF0gPSAobGFuZXNbMF0gXiBpbnB1dC5sZW5ndGgpID4+PiAwO1xuICAvLyBUd28gcGFzc2VzIHNvIGV2ZXJ5IGxhbmUgZGVwZW5kcyBvbiBldmVyeSBvdGhlciBsYW5lLlxuICBmb3IgKGxldCBwYXNzID0gMDsgcGFzcyA8IDI7IHBhc3MrKykge1xuICAgIGZvciAobGV0IGxhbmUgPSAwOyBsYW5lIDwgNDsgbGFuZSsrKSB7XG4gICAgICBjb25zdCBwcmV2aW91cyA9IGxhbmVzWyhsYW5lICsgMykgJiAzXTtcbiAgICAgIGxhbmVzW2xhbmVdID0gZm1peDMyKChsYW5lc1tsYW5lXSBeIHByZXZpb3VzKSA+Pj4gMCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBsYW5lcztcbn1cblxuLyoqXG4gKiBEZXJpdmVzIGEga2luZCdzIHN0YXJ0aW5nIGJvZHk6IDgwIGJpdHMgb2YgYSAxMjgtYml0IGhhc2ggYXMgMTYgQ3JvY2tmb3JkXG4gKiBjaGFyYWN0ZXJzLCBtb3N0IHNpZ25pZmljYW50IGZpcnN0LlxuICpcbiAqIFRoZSBsZWFkaW5nIGNoYXJhY3RlciBpcyBjb25maW5lZCB0byB0aGUgYWxwaGFiZXQncyBsb3dlciBoYWxmIHNvIHRoZSBib2R5XG4gKiBzdGFydHMgYmVsb3cgaGFsZiBvZiB0aGUgODAtYml0IHNwYWNlLiBgaW5jcmVtZW50QmFzZTMyYCB0aHJvd3Mgb24gb3ZlcmZsb3csXG4gKiBhbmQgd2l0aG91dCB0aGlzIGEgYmFzZSB0aGF0IGhhcHBlbmVkIHRvIGxhbmQgbmVhciBgWuKAplpgIHdvdWxkIG1ha2Ugb3ZlcmZsb3dcbiAqIHJlYWNoYWJsZSBhZnRlciBmZXcgZHJhd3MgcmF0aGVyIHRoYW4gYWZ0ZXIgMl43OSBvZiB0aGVtLlxuICovXG5mdW5jdGlvbiBkZXJpdmVCb2R5KHNlZWQ6IHN0cmluZywga2luZDogQ29ycmVsYXRpb25JZEtpbmQpOiBzdHJpbmcge1xuICBjb25zdCBsYW5lcyA9IGhhc2gxMjgoYCR7c2VlZH0gY29ycmVsYXRpb24ta2luZCAke2tpbmR9YCk7XG4gIGNvbnN0IGJ5dGVzID0gW1xuICAgIChsYW5lc1swXSA+Pj4gMjQpICYgMHhmZixcbiAgICAobGFuZXNbMF0gPj4+IDE2KSAmIDB4ZmYsXG4gICAgKGxhbmVzWzBdID4+PiA4KSAmIDB4ZmYsXG4gICAgbGFuZXNbMF0gJiAweGZmLFxuICAgIChsYW5lc1sxXSA+Pj4gMjQpICYgMHhmZixcbiAgICAobGFuZXNbMV0gPj4+IDE2KSAmIDB4ZmYsXG4gICAgKGxhbmVzWzFdID4+PiA4KSAmIDB4ZmYsXG4gICAgbGFuZXNbMV0gJiAweGZmLFxuICAgIChsYW5lc1syXSA+Pj4gMjQpICYgMHhmZixcbiAgICAobGFuZXNbMl0gPj4+IDE2KSAmIDB4ZmYsXG4gIF07XG4gIGxldCBib2R5ID0gJyc7XG4gIGxldCBhY2N1bXVsYXRvciA9IDA7XG4gIGxldCBiaXRzID0gMDtcbiAgZm9yIChjb25zdCBieXRlIG9mIGJ5dGVzKSB7XG4gICAgYWNjdW11bGF0b3IgPSAoKGFjY3VtdWxhdG9yIDw8IDgpIHwgYnl0ZSkgPj4+IDA7XG4gICAgYml0cyArPSA4O1xuICAgIHdoaWxlIChiaXRzID49IDUpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gKGFjY3VtdWxhdG9yID4+PiAoYml0cyAtIDUpKSAmIDMxO1xuICAgICAgYm9keSArPSBDUk9DS0ZPUkRbYm9keS5sZW5ndGggPT09IDAgPyBpbmRleCAmIDE1IDogaW5kZXhdO1xuICAgICAgYml0cyAtPSA1O1xuICAgIH1cbiAgfVxuICByZXR1cm4gYm9keTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSByZXBsYXkncyBjb3JyZWxhdGlvbi1pZCBnZW5lcmF0b3IuXG4gKlxuICogYHBlcktpbmQ6IGZhbHNlYCByZXR1cm5zIHRoZSBydW4ncyBzaW5nbGUgc2hhcmVkIG1vbm90b25pYyBzZXF1ZW5jZSBhbmRcbiAqIGlnbm9yZXMgdGhlIGtpbmQgZW50aXJlbHksIHNvIGJvdGggc2NoZW1lcyBnbyB0aHJvdWdoIG9uZSBjYWxsIHBhdGggYW5kIHRoZVxuICogZmxhZyBpcyB0aGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvcnJlbGF0aW9uSWRHZW5lcmF0b3Iob3B0aW9uczoge1xuICAvKipcbiAgICogVGhlIHJ1bidzIHJlcGxheS1zdGFibGUgc2VlZC4gTXVzdCBub3QgdmFyeSBiZXR3ZWVuIHJlcGxheXMgb2Ygb25lIHJ1biwgYW5kXG4gICAqIG11c3QgZGlmZmVyIGJldHdlZW4gcnVucywgb3IgdHdvIHJ1bnMgd291bGQgbWludCBpZGVudGljYWwgaWRzLlxuICAgKi9cbiAgc2VlZDogc3RyaW5nO1xuICBmaXhlZFRpbWVzdGFtcDogbnVtYmVyO1xuICAvKiogVGhlIHJ1bidzIHNoYXJlZCBtb25vdG9uaWMgc2VxdWVuY2UsIHVzZWQgYXMtaXMgd2hlbiBgcGVyS2luZGAgaXMgZmFsc2UuICovXG4gIHBvc2l0aW9uYWw6ICgpID0+IHN0cmluZztcbiAgcGVyS2luZDogYm9vbGVhbjtcbn0pOiBDb3JyZWxhdGlvbklkR2VuZXJhdG9yIHtcbiAgY29uc3QgeyBzZWVkLCBmaXhlZFRpbWVzdGFtcCwgcG9zaXRpb25hbCwgcGVyS2luZCB9ID0gb3B0aW9ucztcblxuICBpZiAoIXBlcktpbmQpIHtcbiAgICByZXR1cm4gcG9zaXRpb25hbDtcbiAgfVxuXG4gIGNvbnN0IHRpbWUgPSBlbmNvZGVUaW1lKGZpeGVkVGltZXN0YW1wLCBUSU1FX0NIQVJTKTtcbiAgY29uc3QgYm9kaWVzID0gbmV3IE1hcDxDb3JyZWxhdGlvbklkS2luZCwgc3RyaW5nPigpO1xuXG4gIHJldHVybiAoa2luZDogQ29ycmVsYXRpb25JZEtpbmQpID0+IHtcbiAgICBjb25zdCBwcmV2aW91cyA9IGJvZGllcy5nZXQoa2luZCk7XG4gICAgY29uc3QgYm9keSA9XG4gICAgICBwcmV2aW91cyA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gZGVyaXZlQm9keShzZWVkLCBraW5kKVxuICAgICAgICA6IGluY3JlbWVudEJhc2UzMihwcmV2aW91cyk7XG4gICAgYm9kaWVzLnNldChraW5kLCBib2R5KTtcbiAgICByZXR1cm4gYCR7dGltZX0ke2JvZHl9YDtcbiAgfTtcbn1cblxuLyoqIExlbmd0aCBvZiBhIFVMSUQsIGV4cG9ydGVkIHNvIHRlc3RzIG5lZWQgbm90IHJlc3RhdGUgaXQuICovXG5leHBvcnQgY29uc3QgQ09SUkVMQVRJT05fSURfTEVOR1RIID0gVElNRV9DSEFSUyArIEJPRFlfQ0hBUlM7XG5cbi8qKlxuICogV2hldGhlciBlYWNoIGVudGl0eSBmYW1pbHkgZHJhd3MgY29ycmVsYXRpb24gaWRzIGZyb20gaXRzIG93biBzZXF1ZW5jZSByYXRoZXJcbiAqIHRoYW4gZnJvbSBvbmUgc2VxdWVuY2Ugc2hhcmVkIGJ5IHRoZSB3aG9sZSBydW4uIE9mZiB1bmxlc3Mgb3B0ZWQgaW4sIHNvIGFuIFNES1xuICogdXBncmFkZSBhbG9uZSBuZXZlciBtb3ZlcyBhIHJ1biBiZXR3ZWVuIHNjaGVtZXMuXG4gKlxuICogVGhlIGludmFyaWFudCBlaXRoZXIgd2F5OiBhIHJ1biBtdXN0IHJlcGxheSB1bmRlciB0aGUgc2NoZW1lIHRoYXQgbWludGVkIGl0c1xuICogaWRzLiBBIHJlcGxheSB1bmRlciB0aGUgb3RoZXIgc2NoZW1lIG1pbnRzIGlkcyBpdHMgb3duIGVhcmxpZXIgZXZlbnRzIGRvIG5vdFxuICogY2FycnksIHNvIGl0IGNhbiBjb25zdW1lIG5vbmUgb2YgdGhlbSBhbmQgZmFpbHMgdGhlIHJ1bi4gVHdvIHRoaW5ncyBjYW4gYnJlYWtcbiAqIGl0LCBhbmQgYm90aCBhcmUgYWJvdXQgdHVybmluZyB0aGUgZmxhZyBvbiByYXRoZXIgdGhhbiBhYm91dCB1cGdyYWRpbmc6XG4gKlxuICogLSBFbmFibGluZyBpdCB3aGlsZSBydW5zIGFyZSBpbiBmbGlnaHQuIE9uIFZlcmNlbCwgc2tldyBwcm90ZWN0aW9uIGtlZXBzIGEgcnVuXG4gKiAgIG9uIHRoZSBkZXBsb3ltZW50IHRoYXQgc3RhcnRlZCBpdCwgc28gYSBydW4gb25seSBldmVyIHNlZXMgdGhlIHZhbHVlIGJha2VkXG4gKiAgIGludG8gaXRzIG93biBkZXBsb3ltZW50LiBFbHNld2hlcmUgKHdvcmxkLXBvc3RncmVzLCB3b3JsZC1sb2NhbCwgYVxuICogICBzZWxmLWhvc3RlZCBwcm9jZXNzKSBub3RoaW5nIHBpbnMgYSBydW4gdG8gdGhlIGNvZGUgdGhhdCBzdGFydGVkIGl0LCBzb1xuICogICBlbmFibGUgaXQgZHVyaW5nIGEgcXVpZXQgd2luZG93LlxuICogLSBBIHJvbGxpbmcgZGVwbG95IHRoYXQgbGVhdmVzIGJvdGggdmFsdWVzIGxpdmUsIHdoaWNoIHB1dHMgdHdvIHNjaGVtZXMgb24gb25lXG4gKiAgIHJ1biBjb25jdXJyZW50bHkg4oCUIHRoZSBzaWRlLWJ5LXNpZGUgYXBwZW5kIHRoaXMgd2hvbGUgbWVjaGFuaXNtIGV4aXN0cyB0b1xuICogICBhdm9pZC4gUm9sbCB0aGUgdmFsdWUgb3V0IHRvIHRoZSB3aG9sZSBmbGVldCBhdCBvbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQZXJLaW5kQ29ycmVsYXRpb25JZHNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcy5lbnYuV09SS0ZMT1dfUEVSX0tJTkRfQ09SUkVMQVRJT05fSURTID09PSAnMSc7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe-error.d.ts","sourceRoot":"","sources":["../src/describe-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"describe-error.d.ts","sourceRoot":"","sources":["../src/describe-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,kBAAkB,CAAC;AAS1B;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+CD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,oBAAoB,GAC3B,gBAAgB,CAqDlB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,SAAS,CAAC,EAAE,YAAY,GACvB,gBAAgB,CAsFlB"}
|
package/dist/describe-error.js
CHANGED
|
@@ -21,6 +21,7 @@ const REPLAY_TIMEOUT_HINT = 'The workflow replay between step boundaries took to
|
|
|
21
21
|
const MAX_DELIVERIES_HINT = 'The workflow queue exceeded its max-delivery budget. This usually indicates a persistent runtime failure — check the most recent stack traces for the underlying cause.';
|
|
22
22
|
const MAX_EVENTS_HINT = 'The workflow exceeded the maximum number of events per run. This usually means unbounded work in the workflow function — e.g. a loop that keeps creating steps without terminating. Break long-running workflows into child workflows to stay under the limit.';
|
|
23
23
|
const WORLD_CONTRACT_HINT = 'The workflow backend returned data that violated the SDK contract. This is not retryable; please report it with the stack trace and runId.';
|
|
24
|
+
const DEPLOYMENT_MISMATCH_HINT = "The run was delivered to a deployment other than the deployment it is pinned to, and was stopped to protect against code-skew errors after the runtime failed to re-route it there. Verify that the run's deployment is still available and that queue callbacks route to it.";
|
|
24
25
|
function normalizeErrorCode(code) {
|
|
25
26
|
// Values read back from persisted events are `string | undefined` — we
|
|
26
27
|
// only trust codes that match a known entry in `RUN_ERROR_CODES`.
|
|
@@ -77,6 +78,9 @@ export function describeRunError(signal) {
|
|
|
77
78
|
hint: WORLD_CONTRACT_HINT,
|
|
78
79
|
};
|
|
79
80
|
}
|
|
81
|
+
if (errorCode === RUN_ERROR_CODES.DEPLOYMENT_MISMATCH) {
|
|
82
|
+
return { attribution: 'sdk', errorCode, hint: DEPLOYMENT_MISMATCH_HINT };
|
|
83
|
+
}
|
|
80
84
|
if (name === 'WorkflowRuntimeError' || name === 'StepNotRegisteredError') {
|
|
81
85
|
return { attribution: 'sdk', errorCode, hint: RUNTIME_ERROR_HINT };
|
|
82
86
|
}
|
|
@@ -129,6 +133,15 @@ export function describeError(err, errorCode) {
|
|
|
129
133
|
hint: CORRUPTED_EVENT_LOG_HINT,
|
|
130
134
|
};
|
|
131
135
|
}
|
|
136
|
+
// Check DEPLOYMENT_MISMATCH before the generic WorkflowRuntimeError branch —
|
|
137
|
+
// WorkflowDeploymentMismatchError subclasses it, but has its own code + hint.
|
|
138
|
+
if (effectiveCode === RUN_ERROR_CODES.DEPLOYMENT_MISMATCH) {
|
|
139
|
+
return {
|
|
140
|
+
attribution: 'sdk',
|
|
141
|
+
errorCode: effectiveCode,
|
|
142
|
+
hint: DEPLOYMENT_MISMATCH_HINT,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
132
145
|
if (err instanceof WorkflowRuntimeError) {
|
|
133
146
|
return {
|
|
134
147
|
attribution: 'sdk',
|
|
@@ -173,4 +186,4 @@ export function describeError(err, errorCode) {
|
|
|
173
186
|
}
|
|
174
187
|
return { attribution: 'user', errorCode: effectiveCode };
|
|
175
188
|
}
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVzY3JpYmUtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixlQUFlLEVBRWYsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixpQ0FBaUMsR0FDbEMsTUFBTSxxQkFBcUIsQ0FBQztBQTRDN0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNsQywyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLGlDQUFpQztJQUNqQyxtQ0FBbUM7Q0FDcEMsQ0FBQyxDQUFDO0FBRUgsU0FBUyx1QkFBdUIsQ0FBQyxHQUFZO0lBQzNDLE9BQU8sQ0FDTCxHQUFHLFlBQVkseUJBQXlCO1FBQ3hDLEdBQUcsWUFBWSxxQkFBcUI7UUFDcEMsR0FBRyxZQUFZLCtCQUErQjtRQUM5QyxHQUFHLFlBQVksaUNBQWlDLENBQ2pELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSx3QkFBd0IsR0FDNUIsMkpBQTJKLENBQUM7QUFDOUosTUFBTSxrQkFBa0IsR0FDdEIsd0lBQXdJLENBQUM7QUFDM0ksTUFBTSxrQkFBa0IsR0FDdEIsNklBQTZJLENBQUM7QUFDaEosTUFBTSx3QkFBd0IsR0FDNUIsZ0tBQWdLLENBQUM7QUFDbkssTUFBTSxtQkFBbUIsR0FDdkIsZ1pBQWdaLENBQUM7QUFDblosTUFBTSxtQkFBbUIsR0FDdkIseUtBQXlLLENBQUM7QUFDNUssTUFBTSxlQUFlLEdBQ25CLGdRQUFnUSxDQUFDO0FBQ25RLE1BQU0sbUJBQW1CLEdBQ3ZCLDRJQUE0SSxDQUFDO0FBRS9JLFNBQVMsa0JBQWtCLENBQUMsSUFBd0I7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QUFPO1lBQ0wsV0FBVyxFQUFFLEtBQUs7WUFDbEIsU0FBUyxFQUFFLGFBQWE7WUFDeEIsSUFBSSxFQUFFLG1CQUFtQjtTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksYUFBYSxLQUFLLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFELE9BQU87WUFDTCxXQUFXLEVBQUUsTUFBTTtZQUNuQixTQUFTLEVBQUUsYUFBYTtZQUN4QixJQUFJLEVBQUUsZUFBZTtTQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksYUFBYSxLQUFLLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFELE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSztZQUNsQixTQUFTLEVBQUUsYUFBYTtZQUN4QixJQUFJLEVBQUUsd0JBQXdCO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxhQUFhLEtBQUssZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDM0QsT0FBTztZQUNMLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFNBQVMsRUFBRSxhQUFhO1lBQ3hCLElBQUksRUFBRSxtQkFBbUI7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IsXG4gIFJVTl9FUlJPUl9DT0RFUyxcbiAgdHlwZSBSdW5FcnJvckNvZGUsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IsXG59IGZyb20gJ0B3b3JrZmxvdy9lcnJvcnMnO1xuaW1wb3J0IHsgY2xhc3NpZnlSdW5FcnJvciB9IGZyb20gJy4vY2xhc3NpZnktZXJyb3IuanMnO1xuaW1wb3J0IHtcbiAgTm90SW5TdGVwQ29udGV4dEVycm9yLFxuICBOb3RJbldvcmtmbG93Q29udGV4dEVycm9yLFxuICBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yLFxuICBVbmF2YWlsYWJsZUluV29ya2Zsb3dDb250ZXh0RXJyb3IsXG59IGZyb20gJy4vY29udGV4dC1lcnJvcnMuanMnO1xuXG4vKipcbiAqIEF0dHJpYnV0aW9uIG9mIGEgd29ya2Zsb3cvc3RlcCBmYWlsdXJlIGZvciBwcmVzZW50YXRpb24uXG4gKlxuICogLSBgdXNlcmA6IHRoZSBlcnJvciBjYW1lIGZyb20gY3VzdG9tZXIgY29kZSAoYSBzdGVwIG9yIHdvcmtmbG93IGZ1bmN0aW9uXG4gKiAgIHRocmV3LCBvciBhIHZhbHVlIHRoZXkgcGFzc2VkIGFjcm9zcyBhIGJvdW5kYXJ5IHdhc24ndCBzZXJpYWxpemFibGUpLlxuICogLSBgc2RrYDogdGhlIFNESyBwcm9kdWNlZCB0aGUgZXJyb3IgaXRzZWxmIOKAlCBhbiBpbnRlcm5hbCBpbnZhcmlhbnQgYnJva2UsXG4gKiAgIG9yIGEgcnVudGltZSBndWFyZCByZWplY3RlZCB0aGUgY2FsbC4gVGhlc2Ugc2hvdWxkIGJlIHJhcmU7IHdoZW4gdGhleVxuICogICBoYXBwZW4gd2Ugd2FudCB0byBmcmFtZSB0aGUgdGVybWluYWwgb3V0cHV0IGFzIFwidGhpcyBpcyB1cywgbm90IHlvdS5cIlxuICovXG5leHBvcnQgdHlwZSBFcnJvckF0dHJpYnV0aW9uID0gJ3VzZXInIHwgJ3Nkayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JEZXNjcmlwdGlvbiB7XG4gIGF0dHJpYnV0aW9uOiBFcnJvckF0dHJpYnV0aW9uO1xuICBlcnJvckNvZGU6IFJ1bkVycm9yQ29kZTtcbiAgLyoqXG4gICAqIFNob3J0LCBjbGFzcy1hd2FyZSBoaW50IHRvIGhlbHAgYSB1c2VyIHVuZGVyc3RhbmQgd2hhdCB0aGUgZXJyb3IgbWVhbnMuXG4gICAqIE9ubHkgc2V0IGZvciB3ZWxsLWtub3duIFNESyBlcnJvciBjbGFzc2VzIChTZXJpYWxpemF0aW9uRXJyb3IsXG4gICAqIFdvcmtmbG93UnVudGltZUVycm9yLCBjb250ZXh0LXZpb2xhdGlvbiBlcnJvcnMpOyBgdW5kZWZpbmVkYCBmb3IgcGxhaW5cbiAgICogdXNlciBlcnJvcnMsIHdoZXJlIHRoZSBzdGFjayBpcyBhbHJlYWR5IHRoZSBtb3N0IHVzZWZ1bCB0aGluZyB0byBzaG93LlxuICAgKi9cbiAgaGludD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFcnJvciBzaWduYWwgZmllbGRzIGNhcnJpZWQgb24gcGVyc2lzdGVkIGZhaWx1cmUgZXZlbnRzIChlLmcuXG4gKiBgcnVuX2ZhaWxlZGAgLyBgc3RlcF9mYWlsZWRgKS4gVGhlIHNoYXBlIGlzIGludGVudGlvbmFsbHkgbG9vc2U6XG4gKlxuICogLSBgZXJyb3JDb2RlYCBpcyB0eXBlZCBhcyBgc3RyaW5nYCByYXRoZXIgdGhhbiBgUnVuRXJyb3JDb2RlYCBiZWNhdXNlXG4gKiAgIHRoZSB2YWx1ZSBjb21lcyBmcm9tIHN0b3JlZCBKU09OL0NCT1IgYW5kIG1heSBwcmVkYXRlIHRoZSBjdXJyZW50XG4gKiAgIGVudW0g4oCUIGNhbGxlcnMgc2hvdWxkIG5vdCBuYXJyb3cgb24gaXQgYmxpbmRseS4gVmFsdWVzIHRoYXQgZG9uJ3RcbiAqICAgbWF0Y2ggYSBrbm93biBgUlVOX0VSUk9SX0NPREVTYCBlbnRyeSBmYWxsIHRocm91Z2ggdG8gVVNFUl9FUlJPUi5cbiAqIC0gYGVycm9yTmFtZWAgaXMgdGhlIHRocm93biBgRXJyb3IjbmFtZWAuIEl0IGlzIG5vdCB1bml2ZXJzYWxseVxuICogICBwZXJzaXN0ZWQgdG9kYXk7IGNhbGxlcnMgdGhhdCBoYXZlIGFjY2VzcyB0byBpdCAoZWl0aGVyIHZpYSBhblxuICogICBpbi1tZW1vcnkgdGhyb3cgb3IgYSByaWNoZXIgcGF5bG9hZCkgY2FuIHBhc3MgaXQgaW4gdG8gc2hhcnBlblxuICogICB0aGUgYXR0cmlidXRpb24gYW5kIGhpbnQuIFdoZW4gYWJzZW50LCBgZGVzY3JpYmVSdW5FcnJvcmAgc3RpbGxcbiAqICAgcmV0dXJucyBhIHNlbnNpYmxlIGF0dHJpYnV0aW9uIGZyb20gYGVycm9yQ29kZWAgYWxvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc2lzdGVkRXJyb3JTaWduYWwge1xuICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gIGVycm9yTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgQ09OVEVYVF9FUlJPUl9OQU1FUyA9IG5ldyBTZXQoW1xuICAnTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvcicsXG4gICdOb3RJblN0ZXBDb250ZXh0RXJyb3InLFxuICAnTm90SW5Xb3JrZmxvd09yU3RlcENvbnRleHRFcnJvcicsXG4gICdVbmF2YWlsYWJsZUluV29ya2Zsb3dDb250ZXh0RXJyb3InLFxuXSk7XG5cbmZ1bmN0aW9uIGlzQ29udGV4dFZpb2xhdGlvbkVycm9yKGVycjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGVyciBpbnN0YW5jZW9mIE5vdEluV29ya2Zsb3dDb250ZXh0RXJyb3IgfHxcbiAgICBlcnIgaW5zdGFuY2VvZiBOb3RJblN0ZXBDb250ZXh0RXJyb3IgfHxcbiAgICBlcnIgaW5zdGFuY2VvZiBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yIHx8XG4gICAgZXJyIGluc3RhbmNlb2YgVW5hdmFpbGFibGVJbldvcmtmbG93Q29udGV4dEVycm9yXG4gICk7XG59XG5cbmNvbnN0IFNFUklBTElaQVRJT05fRVJST1JfSElOVCA9XG4gICdBIHZhbHVlIHBhc3NlZCBhY3Jvc3MgYSB3b3JrZmxvdy9zdGVwIGJvdW5kYXJ5IGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLiBTZWUgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBvZmZlbmRpbmcgcGF0aCBhbmQgdGhlIExlYXJuIE1vcmUgbGluayBmb3IgZGV0YWlscy4nO1xuY29uc3QgQ09OVEVYVF9FUlJPUl9ISU5UID1cbiAgJ0Egd29ya2Zsb3ctb25seSBvciBzdGVwLW9ubHkgQVBJIHdhcyBjYWxsZWQgZnJvbSB0aGUgd3JvbmcgY29udGV4dC4gVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4YWN0IEFQSSBhbmQgaG93IHRvIG1vdmUgdGhlIGNhbGwuJztcbmNvbnN0IFJVTlRJTUVfRVJST1JfSElOVCA9XG4gICdUaGlzIGlzIGFuIGludGVybmFsIHdvcmtmbG93IFNESyBlcnJvciwgbm90IGEgYnVnIGluIHlvdXIgY29kZS4gSWYgaXQga2VlcHMgaGFwcGVuaW5nLCBwbGVhc2UgcmVwb3J0IGl0IHdpdGggdGhlIHN0YWNrIHRyYWNlIGFuZCB0aGUgcnVuSWQuJztcbmNvbnN0IENPUlJVUFRFRF9FVkVOVF9MT0dfSElOVCA9XG4gICdUaGUgd29ya2Zsb3cgZXZlbnQgbG9nIGNvbnRhaW5zIG9ycGhhbmVkIG9yIG1pc21hdGNoZWQgZXZlbnRzIGFuZCBjYW5ub3QgYmUgcmVwbGF5ZWQuIFRoaXMgaXMgYW4gaW50ZXJuYWwgd29ya2Zsb3cgU0RLIGVycm9yOyBwbGVhc2UgcmVwb3J0IGl0IHdpdGggdGhlIHJ1bklkLic7XG5jb25zdCBSRVBMQVlfVElNRU9VVF9ISU5UID1cbiAgJ1RoZSB3b3JrZmxvdyByZXBsYXkgYmV0d2VlbiBzdGVwIGJvdW5kYXJpZXMgdG9vayB0b28gbG9uZy4gVGhpcyBib3VuZHMgd29ya2Zsb3ctVk0gYW5kIGV2ZW50LWxvZyByZXBsYXkgdGltZSBvbmx5IOKAlCBzdGVwIGJvZGllcyAoYFwidXNlIHN0ZXBcImAgZnVuY3Rpb25zKSBhcmUgZXhjbHVkZWQuIFRoaXMgdXN1YWxseSBtZWFucyB0aGUgZXZlbnQgbG9nIGlzIHVudXN1YWxseSBsYXJnZSBvciB0aGUgd29ya2Zsb3cgZnVuY3Rpb24gaXMgZG9pbmcgaGVhdnkgc3luY2hyb25vdXMgd29yayBpbiB3b3JrZmxvdyBjb2RlIG91dHNpZGUgb2Ygc3RlcCBib2RpZXMuIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGJ1ZGdldCB2aWEgdGhlIFdPUktGTE9XX1JFUExBWV9USU1FT1VUX01TIGVudiB2YXIgaWYgbmVlZGVkLic7XG5jb25zdCBNQVhfREVMSVZFUklFU19ISU5UID1cbiAgJ1RoZSB3b3JrZmxvdyBxdWV1ZSBleGNlZWRlZCBpdHMgbWF4LWRlbGl2ZXJ5IGJ1ZGdldC4gVGhpcyB1c3VhbGx5IGluZGljYXRlcyBhIHBlcnNpc3RlbnQgcnVudGltZSBmYWlsdXJlIOKAlCBjaGVjayB0aGUgbW9zdCByZWNlbnQgc3RhY2sgdHJhY2VzIGZvciB0aGUgdW5kZXJseWluZyBjYXVzZS4nO1xuY29uc3QgTUFYX0VWRU5UU19ISU5UID1cbiAgJ1RoZSB3b3JrZmxvdyBleGNlZWRlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgZXZlbnRzIHBlciBydW4uIFRoaXMgdXN1YWxseSBtZWFucyB1bmJvdW5kZWQgd29yayBpbiB0aGUgd29ya2Zsb3cgZnVuY3Rpb24g4oCUIGUuZy4gYSBsb29wIHRoYXQga2VlcHMgY3JlYXRpbmcgc3RlcHMgd2l0aG91dCB0ZXJtaW5hdGluZy4gQnJlYWsgbG9uZy1ydW5uaW5nIHdvcmtmbG93cyBpbnRvIGNoaWxkIHdvcmtmbG93cyB0byBzdGF5IHVuZGVyIHRoZSBsaW1pdC4nO1xuY29uc3QgV09STERfQ09OVFJBQ1RfSElOVCA9XG4gICdUaGUgd29ya2Zsb3cgYmFja2VuZCByZXR1cm5lZCBkYXRhIHRoYXQgdmlvbGF0ZWQgdGhlIFNESyBjb250cmFjdC4gVGhpcyBpcyBub3QgcmV0cnlhYmxlOyBwbGVhc2UgcmVwb3J0IGl0IHdpdGggdGhlIHN0YWNrIHRyYWNlIGFuZCBydW5JZC4nO1xuXG5mdW5jdGlvbiBub3JtYWxpemVFcnJvckNvZGUoY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogUnVuRXJyb3JDb2RlIHtcbiAgLy8gVmFsdWVzIHJlYWQgYmFjayBmcm9tIHBlcnNpc3RlZCBldmVudHMgYXJlIGBzdHJpbmcgfCB1bmRlZmluZWRgIOKAlCB3ZVxuICAvLyBvbmx5IHRydXN0IGNvZGVzIHRoYXQgbWF0Y2ggYSBrbm93biBlbnRyeSBpbiBgUlVOX0VSUk9SX0NPREVTYC5cbiAgY29uc3Qga25vd24gPSBPYmplY3QudmFsdWVzKFJVTl9FUlJPUl9DT0RFUykgYXMgcmVhZG9ubHkgc3RyaW5nW107XG4gIGlmIChjb2RlICYmIGtub3duLmluY2x1ZGVzKGNvZGUpKSB7XG4gICAgcmV0dXJuIGNvZGUgYXMgUnVuRXJyb3JDb2RlO1xuICB9XG4gIHJldHVybiBSVU5fRVJST1JfQ09ERVMuVVNFUl9FUlJPUjtcbn1cblxuLyoqXG4gKiBEYXRhLWRyaXZlbiB2YXJpYW50IG9mIHtAbGluayBkZXNjcmliZUVycm9yfSB0aGF0IHdvcmtzIGZyb20gcGVyc2lzdGVkXG4gKiBldmVudCBmaWVsZHMgaW5zdGVhZCBvZiBhIGxpdmUgYEVycm9yYCBpbnN0YW5jZS4gSW50ZW5kZWQgZm9yIENMSS93ZWJcbiAqIHJlbmRlcmVycyB0aGF0IHJlYWQgZmFpbHVyZSBldmVudHMgYW5kIG5vIGxvbmdlciBoYXZlIHRoZSBvcmlnaW5hbFxuICogdGhyb3duIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlUnVuRXJyb3IoXG4gIHNpZ25hbDogUGVyc2lzdGVkRXJyb3JTaWduYWxcbik6IEVycm9yRGVzY3JpcHRpb24ge1xuICBjb25zdCBuYW1lID0gc2lnbmFsLmVycm9yTmFtZTtcbiAgY29uc3QgZXJyb3JDb2RlID1cbiAgICBuYW1lID09PSAnQ29ycnVwdGVkRXZlbnRMb2dFcnJvcidcbiAgICAgID8gUlVOX0VSUk9SX0NPREVTLkNPUlJVUFRFRF9FVkVOVF9MT0dcbiAgICAgIDogbm9ybWFsaXplRXJyb3JDb2RlKHNpZ25hbC5lcnJvckNvZGUpO1xuXG4gIGlmIChuYW1lID09PSAnU2VyaWFsaXphdGlvbkVycm9yJykge1xuICAgIHJldHVybiB7IGF0dHJpYnV0aW9uOiAndXNlcicsIGVycm9yQ29kZSwgaGludDogU0VSSUFMSVpBVElPTl9FUlJPUl9ISU5UIH07XG4gIH1cbiAgaWYgKG5hbWUgJiYgQ09OVEVYVF9FUlJPUl9OQU1FUy5oYXMobmFtZSkpIHtcbiAgICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3VzZXInLCBlcnJvckNvZGUsIGhpbnQ6IENPTlRFWFRfRVJST1JfSElOVCB9O1xuICB9XG4gIGlmIChuYW1lID09PSAnQ29ycnVwdGVkRXZlbnRMb2dFcnJvcicpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICdzZGsnLFxuICAgICAgZXJyb3JDb2RlLFxuICAgICAgaGludDogQ09SUlVQVEVEX0VWRU5UX0xPR19ISU5ULFxuICAgIH07XG4gIH1cbiAgaWYgKGVycm9yQ29kZSA9PT0gUlVOX0VSUk9SX0NPREVTLlJFUExBWV9USU1FT1VUKSB7XG4gICAgcmV0dXJuIHsgYXR0cmlidXRpb246ICdzZGsnLCBlcnJvckNvZGUsIGhpbnQ6IFJFUExBWV9USU1FT1VUX0hJTlQgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuTUFYX0RFTElWRVJJRVNfRVhDRUVERUQpIHtcbiAgICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3NkaycsIGVycm9yQ29kZSwgaGludDogTUFYX0RFTElWRVJJRVNfSElOVCB9O1xuICB9XG4gIGlmIChlcnJvckNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5NQVhfRVZFTlRTX0VYQ0VFREVEKSB7XG4gICAgcmV0dXJuIHsgYXR0cmlidXRpb246ICd1c2VyJywgZXJyb3JDb2RlLCBoaW50OiBNQVhfRVZFTlRTX0hJTlQgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuQ09SUlVQVEVEX0VWRU5UX0xPRykge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGUsXG4gICAgICBoaW50OiBDT1JSVVBURURfRVZFTlRfTE9HX0hJTlQsXG4gICAgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuV09STERfQ09OVFJBQ1RfRVJST1IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICdzZGsnLFxuICAgICAgZXJyb3JDb2RlLFxuICAgICAgaGludDogV09STERfQ09OVFJBQ1RfSElOVCxcbiAgICB9O1xuICB9XG4gIGlmIChuYW1lID09PSAnV29ya2Zsb3dSdW50aW1lRXJyb3InIHx8IG5hbWUgPT09ICdTdGVwTm90UmVnaXN0ZXJlZEVycm9yJykge1xuICAgIHJldHVybiB7IGF0dHJpYnV0aW9uOiAnc2RrJywgZXJyb3JDb2RlLCBoaW50OiBSVU5USU1FX0VSUk9SX0hJTlQgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuUlVOVElNRV9FUlJPUikge1xuICAgIHJldHVybiB7IGF0dHJpYnV0aW9uOiAnc2RrJywgZXJyb3JDb2RlLCBoaW50OiBSVU5USU1FX0VSUk9SX0hJTlQgfTtcbiAgfVxuICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3VzZXInLCBlcnJvckNvZGUgfTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZSBhbiBlcnJvciBmb3IgdXNlci1mYWNpbmcgcHJlc2VudGF0aW9uLiBQdXJlbHkgaW5mb3JtYXRpb25hbCDigJRcbiAqIGRvZXMgbm90IGNoYW5nZSBhbnkgcGVyc2lzdGVkIGV2ZW50IGRhdGEgb3IgZXJyb3IgY2xhc3NpZmljYXRpb24gdXNlZCBieVxuICogdGhlIHJ1bnRpbWUuXG4gKlxuICogVGhlIGF0dHJpYnV0aW9uIGhlcmUgaXMgbW9yZSBudWFuY2VkIHRoYW4gYGNsYXNzaWZ5UnVuRXJyb3JgOlxuICpcbiAqIC0gYFNlcmlhbGl6YXRpb25FcnJvcmAgaXMgdGVjaG5pY2FsbHkgcmFpc2VkIGJ5IHRoZSBTREssIGJ1dCBpdCBhbG1vc3RcbiAqICAgYWx3YXlzIHBvaW50cyBhdCBzb21ldGhpbmcgdGhlIGNhbGxlciBkaWQgKHBhc3NlZCBhIG5vbi1zZXJpYWxpemFibGVcbiAqICAgdmFsdWUsIGRpZG4ndCByZWdpc3RlciBhIGNsYXNzKS4gV2UgYXR0cmlidXRlIGl0IHRvIHRoZSB1c2VyLlxuICogLSBDb250ZXh0LXZpb2xhdGlvbiBlcnJvcnMgKGBOb3RJbldvcmtmbG93Q29udGV4dEVycm9yYCwgZXRjLikgbGlrZXdpc2VcbiAqICAgZGVzY3JpYmUgYSB1c2VyIG1pc3Rha2UuXG4gKiAtIGBXb3JrZmxvd1J1bnRpbWVFcnJvcmAgKGFuZCBzdWJjbGFzc2VzIGxpa2UgYFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3JgKVxuICogICBpbmRpY2F0ZXMgYW4gaW50ZXJuYWwgU0RLIGludmFyaWFudCBicm9rZSDigJQgc3VyZmFjZSB0aGF0IGFzIGBzZGtgLlxuICpcbiAqIEBwYXJhbSBlcnIgVGhlIGVycm9yIHZhbHVlIHRocm93biBieSB0aGUgd29ya2Zsb3cgLyBzdGVwLlxuICogQHBhcmFtIGVycm9yQ29kZSBPcHRpb25hbCBwcmVjb21wdXRlZCBlcnJvciBjb2RlLiBDYWxsZXJzIHRoYXQgYWxyZWFkeVxuICogICBrbm93IHRoZSBjb2RlIChlLmcuIGBSRVBMQVlfVElNRU9VVGAgb3IgYE1BWF9ERUxJVkVSSUVTX0VYQ0VFREVEYCwgd2hpY2hcbiAqICAgYGNsYXNzaWZ5UnVuRXJyb3JgIGNhbid0IGRlcml2ZSBmcm9tIHRoZSBlcnJvciBhbG9uZSkgc2hvdWxkIHBhc3MgaXQgc29cbiAqICAgdGhlIGF0dHJpYnV0aW9uIGFuZCBoaW50IHJlZmxlY3QgdGhlIGFjdHVhbCBmYWlsdXJlIGNhdGVnb3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVFcnJvcihcbiAgZXJyOiB1bmtub3duLFxuICBlcnJvckNvZGU/OiBSdW5FcnJvckNvZGVcbik6IEVycm9yRGVzY3JpcHRpb24ge1xuICBjb25zdCBlZmZlY3RpdmVDb2RlID0gZXJyb3JDb2RlID8/IGNsYXNzaWZ5UnVuRXJyb3IoZXJyKTtcblxuICBpZiAoU2VyaWFsaXphdGlvbkVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICd1c2VyJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IFNFUklBTElaQVRJT05fRVJST1JfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGlzQ29udGV4dFZpb2xhdGlvbkVycm9yKGVycikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICd1c2VyJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IENPTlRFWFRfRVJST1JfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBDT1JSVVBURURfRVZFTlRfTE9HX0hJTlQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlcnIgaW5zdGFuY2VvZiBXb3JrZmxvd1J1bnRpbWVFcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBSVU5USU1FX0VSUk9SX0hJTlQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlZmZlY3RpdmVDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuUkVQTEFZX1RJTUVPVVQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICdzZGsnLFxuICAgICAgZXJyb3JDb2RlOiBlZmZlY3RpdmVDb2RlLFxuICAgICAgaGludDogUkVQTEFZX1RJTUVPVVRfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGVmZmVjdGl2ZUNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5NQVhfREVMSVZFUklFU19FWENFRURFRCkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBNQVhfREVMSVZFUklFU19ISU5ULFxuICAgIH07XG4gIH1cblxuICBpZiAoZWZmZWN0aXZlQ29kZSA9PT0gUlVOX0VSUk9SX0NPREVTLk1BWF9FVkVOVFNfRVhDRUVERUQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICd1c2VyJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IE1BWF9FVkVOVFNfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGVmZmVjdGl2ZUNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5DT1JSVVBURURfRVZFTlRfTE9HKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF0dHJpYnV0aW9uOiAnc2RrJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IENPUlJVUFRFRF9FVkVOVF9MT0dfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGVmZmVjdGl2ZUNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5XT1JMRF9DT05UUkFDVF9FUlJPUikge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBXT1JMRF9DT05UUkFDVF9ISU5ULFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3VzZXInLCBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUgfTtcbn1cbiJdfQ==
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVzY3JpYmUtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixlQUFlLEVBRWYsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLCtCQUErQixFQUMvQixpQ0FBaUMsR0FDbEMsTUFBTSxxQkFBcUIsQ0FBQztBQTRDN0IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNsQywyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLGlDQUFpQztJQUNqQyxtQ0FBbUM7Q0FDcEMsQ0FBQyxDQUFDO0FBRUgsU0FBUyx1QkFBdUIsQ0FBQyxHQUFZO0lBQzNDLE9BQU8sQ0FDTCxHQUFHLFlBQVkseUJBQXlCO1FBQ3hDLEdBQUcsWUFBWSxxQkFBcUI7UUFDcEMsR0FBRyxZQUFZLCtCQUErQjtRQUM5QyxHQUFHLFlBQVksaUNBQWlDLENBQ2pELENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSx3QkFBd0IsR0FDNUIsMkpBQTJKLENBQUM7QUFDOUosTUFBTSxrQkFBa0IsR0FDdEIsd0lBQXdJLENBQUM7QUFDM0ksTUFBTSxrQkFBa0IsR0FDdEIsNklBQTZJLENBQUM7QUFDaEosTUFBTSx3QkFBd0IsR0FDNUIsZ0tBQWdLLENBQUM7QUFDbkssTUFBTSxtQkFBbUIsR0FDdkIsZ1pBQWdaLENBQUM7QUFDblosTUFBTSxtQkFBbUIsR0FDdkIseUtBQXlLLENBQUM7QUFDNUssTUFBTSxlQUFlLEdBQ25CLGdRQUFnUSxDQUFDO0FBQ25RLE1BQU0sbUJBQW1CLEdBQ3ZCLDRJQUE0SSxDQUFDO0FBQy9JLE1BQU0sd0JBQXdCLEdBQzVCLCtRQUEr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YSxFQUFFLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IsXG4gIFJVTl9FUlJPUl9DT0RFUyxcbiAgdHlwZSBSdW5FcnJvckNvZGUsXG4gIFNlcmlhbGl6YXRpb25FcnJvcixcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IsXG59IGZyb20gJ0B3b3JrZmxvdy9lcnJvcnMnO1xuaW1wb3J0IHsgY2xhc3NpZnlSdW5FcnJvciB9IGZyb20gJy4vY2xhc3NpZnktZXJyb3IuanMnO1xuaW1wb3J0IHtcbiAgTm90SW5TdGVwQ29udGV4dEVycm9yLFxuICBOb3RJbldvcmtmbG93Q29udGV4dEVycm9yLFxuICBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yLFxuICBVbmF2YWlsYWJsZUluV29ya2Zsb3dDb250ZXh0RXJyb3IsXG59IGZyb20gJy4vY29udGV4dC1lcnJvcnMuanMnO1xuXG4vKipcbiAqIEF0dHJpYnV0aW9uIG9mIGEgd29ya2Zsb3cvc3RlcCBmYWlsdXJlIGZvciBwcmVzZW50YXRpb24uXG4gKlxuICogLSBgdXNlcmA6IHRoZSBlcnJvciBjYW1lIGZyb20gY3VzdG9tZXIgY29kZSAoYSBzdGVwIG9yIHdvcmtmbG93IGZ1bmN0aW9uXG4gKiAgIHRocmV3LCBvciBhIHZhbHVlIHRoZXkgcGFzc2VkIGFjcm9zcyBhIGJvdW5kYXJ5IHdhc24ndCBzZXJpYWxpemFibGUpLlxuICogLSBgc2RrYDogdGhlIFNESyBwcm9kdWNlZCB0aGUgZXJyb3IgaXRzZWxmIOKAlCBhbiBpbnRlcm5hbCBpbnZhcmlhbnQgYnJva2UsXG4gKiAgIG9yIGEgcnVudGltZSBndWFyZCByZWplY3RlZCB0aGUgY2FsbC4gVGhlc2Ugc2hvdWxkIGJlIHJhcmU7IHdoZW4gdGhleVxuICogICBoYXBwZW4gd2Ugd2FudCB0byBmcmFtZSB0aGUgdGVybWluYWwgb3V0cHV0IGFzIFwidGhpcyBpcyB1cywgbm90IHlvdS5cIlxuICovXG5leHBvcnQgdHlwZSBFcnJvckF0dHJpYnV0aW9uID0gJ3VzZXInIHwgJ3Nkayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JEZXNjcmlwdGlvbiB7XG4gIGF0dHJpYnV0aW9uOiBFcnJvckF0dHJpYnV0aW9uO1xuICBlcnJvckNvZGU6IFJ1bkVycm9yQ29kZTtcbiAgLyoqXG4gICAqIFNob3J0LCBjbGFzcy1hd2FyZSBoaW50IHRvIGhlbHAgYSB1c2VyIHVuZGVyc3RhbmQgd2hhdCB0aGUgZXJyb3IgbWVhbnMuXG4gICAqIE9ubHkgc2V0IGZvciB3ZWxsLWtub3duIFNESyBlcnJvciBjbGFzc2VzIChTZXJpYWxpemF0aW9uRXJyb3IsXG4gICAqIFdvcmtmbG93UnVudGltZUVycm9yLCBjb250ZXh0LXZpb2xhdGlvbiBlcnJvcnMpOyBgdW5kZWZpbmVkYCBmb3IgcGxhaW5cbiAgICogdXNlciBlcnJvcnMsIHdoZXJlIHRoZSBzdGFjayBpcyBhbHJlYWR5IHRoZSBtb3N0IHVzZWZ1bCB0aGluZyB0byBzaG93LlxuICAgKi9cbiAgaGludD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFcnJvciBzaWduYWwgZmllbGRzIGNhcnJpZWQgb24gcGVyc2lzdGVkIGZhaWx1cmUgZXZlbnRzIChlLmcuXG4gKiBgcnVuX2ZhaWxlZGAgLyBgc3RlcF9mYWlsZWRgKS4gVGhlIHNoYXBlIGlzIGludGVudGlvbmFsbHkgbG9vc2U6XG4gKlxuICogLSBgZXJyb3JDb2RlYCBpcyB0eXBlZCBhcyBgc3RyaW5nYCByYXRoZXIgdGhhbiBgUnVuRXJyb3JDb2RlYCBiZWNhdXNlXG4gKiAgIHRoZSB2YWx1ZSBjb21lcyBmcm9tIHN0b3JlZCBKU09OL0NCT1IgYW5kIG1heSBwcmVkYXRlIHRoZSBjdXJyZW50XG4gKiAgIGVudW0g4oCUIGNhbGxlcnMgc2hvdWxkIG5vdCBuYXJyb3cgb24gaXQgYmxpbmRseS4gVmFsdWVzIHRoYXQgZG9uJ3RcbiAqICAgbWF0Y2ggYSBrbm93biBgUlVOX0VSUk9SX0NPREVTYCBlbnRyeSBmYWxsIHRocm91Z2ggdG8gVVNFUl9FUlJPUi5cbiAqIC0gYGVycm9yTmFtZWAgaXMgdGhlIHRocm93biBgRXJyb3IjbmFtZWAuIEl0IGlzIG5vdCB1bml2ZXJzYWxseVxuICogICBwZXJzaXN0ZWQgdG9kYXk7IGNhbGxlcnMgdGhhdCBoYXZlIGFjY2VzcyB0byBpdCAoZWl0aGVyIHZpYSBhblxuICogICBpbi1tZW1vcnkgdGhyb3cgb3IgYSByaWNoZXIgcGF5bG9hZCkgY2FuIHBhc3MgaXQgaW4gdG8gc2hhcnBlblxuICogICB0aGUgYXR0cmlidXRpb24gYW5kIGhpbnQuIFdoZW4gYWJzZW50LCBgZGVzY3JpYmVSdW5FcnJvcmAgc3RpbGxcbiAqICAgcmV0dXJucyBhIHNlbnNpYmxlIGF0dHJpYnV0aW9uIGZyb20gYGVycm9yQ29kZWAgYWxvbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc2lzdGVkRXJyb3JTaWduYWwge1xuICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gIGVycm9yTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgQ09OVEVYVF9FUlJPUl9OQU1FUyA9IG5ldyBTZXQoW1xuICAnTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvcicsXG4gICdOb3RJblN0ZXBDb250ZXh0RXJyb3InLFxuICAnTm90SW5Xb3JrZmxvd09yU3RlcENvbnRleHRFcnJvcicsXG4gICdVbmF2YWlsYWJsZUluV29ya2Zsb3dDb250ZXh0RXJyb3InLFxuXSk7XG5cbmZ1bmN0aW9uIGlzQ29udGV4dFZpb2xhdGlvbkVycm9yKGVycjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGVyciBpbnN0YW5jZW9mIE5vdEluV29ya2Zsb3dDb250ZXh0RXJyb3IgfHxcbiAgICBlcnIgaW5zdGFuY2VvZiBOb3RJblN0ZXBDb250ZXh0RXJyb3IgfHxcbiAgICBlcnIgaW5zdGFuY2VvZiBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yIHx8XG4gICAgZXJyIGluc3RhbmNlb2YgVW5hdmFpbGFibGVJbldvcmtmbG93Q29udGV4dEVycm9yXG4gICk7XG59XG5cbmNvbnN0IFNFUklBTElaQVRJT05fRVJST1JfSElOVCA9XG4gICdBIHZhbHVlIHBhc3NlZCBhY3Jvc3MgYSB3b3JrZmxvdy9zdGVwIGJvdW5kYXJ5IGNvdWxkIG5vdCBiZSBzZXJpYWxpemVkLiBTZWUgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBvZmZlbmRpbmcgcGF0aCBhbmQgdGhlIExlYXJuIE1vcmUgbGluayBmb3IgZGV0YWlscy4nO1xuY29uc3QgQ09OVEVYVF9FUlJPUl9ISU5UID1cbiAgJ0Egd29ya2Zsb3ctb25seSBvciBzdGVwLW9ubHkgQVBJIHdhcyBjYWxsZWQgZnJvbSB0aGUgd3JvbmcgY29udGV4dC4gVGhlIGVycm9yIG1lc3NhZ2UgaW5jbHVkZXMgdGhlIGV4YWN0IEFQSSBhbmQgaG93IHRvIG1vdmUgdGhlIGNhbGwuJztcbmNvbnN0IFJVTlRJTUVfRVJST1JfSElOVCA9XG4gICdUaGlzIGlzIGFuIGludGVybmFsIHdvcmtmbG93IFNESyBlcnJvciwgbm90IGEgYnVnIGluIHlvdXIgY29kZS4gSWYgaXQga2VlcHMgaGFwcGVuaW5nLCBwbGVhc2UgcmVwb3J0IGl0IHdpdGggdGhlIHN0YWNrIHRyYWNlIGFuZCB0aGUgcnVuSWQuJztcbmNvbnN0IENPUlJVUFRFRF9FVkVOVF9MT0dfSElOVCA9XG4gICdUaGUgd29ya2Zsb3cgZXZlbnQgbG9nIGNvbnRhaW5zIG9ycGhhbmVkIG9yIG1pc21hdGNoZWQgZXZlbnRzIGFuZCBjYW5ub3QgYmUgcmVwbGF5ZWQuIFRoaXMgaXMgYW4gaW50ZXJuYWwgd29ya2Zsb3cgU0RLIGVycm9yOyBwbGVhc2UgcmVwb3J0IGl0IHdpdGggdGhlIHJ1bklkLic7XG5jb25zdCBSRVBMQVlfVElNRU9VVF9ISU5UID1cbiAgJ1RoZSB3b3JrZmxvdyByZXBsYXkgYmV0d2VlbiBzdGVwIGJvdW5kYXJpZXMgdG9vayB0b28gbG9uZy4gVGhpcyBib3VuZHMgd29ya2Zsb3ctVk0gYW5kIGV2ZW50LWxvZyByZXBsYXkgdGltZSBvbmx5IOKAlCBzdGVwIGJvZGllcyAoYFwidXNlIHN0ZXBcImAgZnVuY3Rpb25zKSBhcmUgZXhjbHVkZWQuIFRoaXMgdXN1YWxseSBtZWFucyB0aGUgZXZlbnQgbG9nIGlzIHVudXN1YWxseSBsYXJnZSBvciB0aGUgd29ya2Zsb3cgZnVuY3Rpb24gaXMgZG9pbmcgaGVhdnkgc3luY2hyb25vdXMgd29yayBpbiB3b3JrZmxvdyBjb2RlIG91dHNpZGUgb2Ygc3RlcCBib2RpZXMuIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGJ1ZGdldCB2aWEgdGhlIFdPUktGTE9XX1JFUExBWV9USU1FT1VUX01TIGVudiB2YXIgaWYgbmVlZGVkLic7XG5jb25zdCBNQVhfREVMSVZFUklFU19ISU5UID1cbiAgJ1RoZSB3b3JrZmxvdyBxdWV1ZSBleGNlZWRlZCBpdHMgbWF4LWRlbGl2ZXJ5IGJ1ZGdldC4gVGhpcyB1c3VhbGx5IGluZGljYXRlcyBhIHBlcnNpc3RlbnQgcnVudGltZSBmYWlsdXJlIOKAlCBjaGVjayB0aGUgbW9zdCByZWNlbnQgc3RhY2sgdHJhY2VzIGZvciB0aGUgdW5kZXJseWluZyBjYXVzZS4nO1xuY29uc3QgTUFYX0VWRU5UU19ISU5UID1cbiAgJ1RoZSB3b3JrZmxvdyBleGNlZWRlZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgZXZlbnRzIHBlciBydW4uIFRoaXMgdXN1YWxseSBtZWFucyB1bmJvdW5kZWQgd29yayBpbiB0aGUgd29ya2Zsb3cgZnVuY3Rpb24g4oCUIGUuZy4gYSBsb29wIHRoYXQga2VlcHMgY3JlYXRpbmcgc3RlcHMgd2l0aG91dCB0ZXJtaW5hdGluZy4gQnJlYWsgbG9uZy1ydW5uaW5nIHdvcmtmbG93cyBpbnRvIGNoaWxkIHdvcmtmbG93cyB0byBzdGF5IHVuZGVyIHRoZSBsaW1pdC4nO1xuY29uc3QgV09STERfQ09OVFJBQ1RfSElOVCA9XG4gICdUaGUgd29ya2Zsb3cgYmFja2VuZCByZXR1cm5lZCBkYXRhIHRoYXQgdmlvbGF0ZWQgdGhlIFNESyBjb250cmFjdC4gVGhpcyBpcyBub3QgcmV0cnlhYmxlOyBwbGVhc2UgcmVwb3J0IGl0IHdpdGggdGhlIHN0YWNrIHRyYWNlIGFuZCBydW5JZC4nO1xuY29uc3QgREVQTE9ZTUVOVF9NSVNNQVRDSF9ISU5UID1cbiAgXCJUaGUgcnVuIHdhcyBkZWxpdmVyZWQgdG8gYSBkZXBsb3ltZW50IG90aGVyIHRoYW4gdGhlIGRlcGxveW1lbnQgaXQgaXMgcGlubmVkIHRvLCBhbmQgd2FzIHN0b3BwZWQgdG8gcHJvdGVjdCBhZ2FpbnN0IGNvZGUtc2tldyBlcnJvcnMgYWZ0ZXIgdGhlIHJ1bnRpbWUgZmFpbGVkIHRvIHJlLXJvdXRlIGl0IHRoZXJlLiBWZXJpZnkgdGhhdCB0aGUgcnVuJ3MgZGVwbG95bWVudCBpcyBzdGlsbCBhdmFpbGFibGUgYW5kIHRoYXQgcXVldWUgY2FsbGJhY2tzIHJvdXRlIHRvIGl0LlwiO1xuXG5mdW5jdGlvbiBub3JtYWxpemVFcnJvckNvZGUoY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogUnVuRXJyb3JDb2RlIHtcbiAgLy8gVmFsdWVzIHJlYWQgYmFjayBmcm9tIHBlcnNpc3RlZCBldmVudHMgYXJlIGBzdHJpbmcgfCB1bmRlZmluZWRgIOKAlCB3ZVxuICAvLyBvbmx5IHRydXN0IGNvZGVzIHRoYXQgbWF0Y2ggYSBrbm93biBlbnRyeSBpbiBgUlVOX0VSUk9SX0NPREVTYC5cbiAgY29uc3Qga25vd24gPSBPYmplY3QudmFsdWVzKFJVTl9FUlJPUl9DT0RFUykgYXMgcmVhZG9ubHkgc3RyaW5nW107XG4gIGlmIChjb2RlICYmIGtub3duLmluY2x1ZGVzKGNvZGUpKSB7XG4gICAgcmV0dXJuIGNvZGUgYXMgUnVuRXJyb3JDb2RlO1xuICB9XG4gIHJldHVybiBSVU5fRVJST1JfQ09ERVMuVVNFUl9FUlJPUjtcbn1cblxuLyoqXG4gKiBEYXRhLWRyaXZlbiB2YXJpYW50IG9mIHtAbGluayBkZXNjcmliZUVycm9yfSB0aGF0IHdvcmtzIGZyb20gcGVyc2lzdGVkXG4gKiBldmVudCBmaWVsZHMgaW5zdGVhZCBvZiBhIGxpdmUgYEVycm9yYCBpbnN0YW5jZS4gSW50ZW5kZWQgZm9yIENMSS93ZWJcbiAqIHJlbmRlcmVycyB0aGF0IHJlYWQgZmFpbHVyZSBldmVudHMgYW5kIG5vIGxvbmdlciBoYXZlIHRoZSBvcmlnaW5hbFxuICogdGhyb3duIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlUnVuRXJyb3IoXG4gIHNpZ25hbDogUGVyc2lzdGVkRXJyb3JTaWduYWxcbik6IEVycm9yRGVzY3JpcHRpb24ge1xuICBjb25zdCBuYW1lID0gc2lnbmFsLmVycm9yTmFtZTtcbiAgY29uc3QgZXJyb3JDb2RlID1cbiAgICBuYW1lID09PSAnQ29ycnVwdGVkRXZlbnRMb2dFcnJvcidcbiAgICAgID8gUlVOX0VSUk9SX0NPREVTLkNPUlJVUFRFRF9FVkVOVF9MT0dcbiAgICAgIDogbm9ybWFsaXplRXJyb3JDb2RlKHNpZ25hbC5lcnJvckNvZGUpO1xuXG4gIGlmIChuYW1lID09PSAnU2VyaWFsaXphdGlvbkVycm9yJykge1xuICAgIHJldHVybiB7IGF0dHJpYnV0aW9uOiAndXNlcicsIGVycm9yQ29kZSwgaGludDogU0VSSUFMSVpBVElPTl9FUlJPUl9ISU5UIH07XG4gIH1cbiAgaWYgKG5hbWUgJiYgQ09OVEVYVF9FUlJPUl9OQU1FUy5oYXMobmFtZSkpIHtcbiAgICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3VzZXInLCBlcnJvckNvZGUsIGhpbnQ6IENPTlRFWFRfRVJST1JfSElOVCB9O1xuICB9XG4gIGlmIChuYW1lID09PSAnQ29ycnVwdGVkRXZlbnRMb2dFcnJvcicpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICdzZGsnLFxuICAgICAgZXJyb3JDb2RlLFxuICAgICAgaGludDogQ09SUlVQVEVEX0VWRU5UX0xPR19ISU5ULFxuICAgIH07XG4gIH1cbiAgaWYgKGVycm9yQ29kZSA9PT0gUlVOX0VSUk9SX0NPREVTLlJFUExBWV9USU1FT1VUKSB7XG4gICAgcmV0dXJuIHsgYXR0cmlidXRpb246ICdzZGsnLCBlcnJvckNvZGUsIGhpbnQ6IFJFUExBWV9USU1FT1VUX0hJTlQgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuTUFYX0RFTElWRVJJRVNfRVhDRUVERUQpIHtcbiAgICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3NkaycsIGVycm9yQ29kZSwgaGludDogTUFYX0RFTElWRVJJRVNfSElOVCB9O1xuICB9XG4gIGlmIChlcnJvckNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5NQVhfRVZFTlRTX0VYQ0VFREVEKSB7XG4gICAgcmV0dXJuIHsgYXR0cmlidXRpb246ICd1c2VyJywgZXJyb3JDb2RlLCBoaW50OiBNQVhfRVZFTlRTX0hJTlQgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuQ09SUlVQVEVEX0VWRU5UX0xPRykge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGUsXG4gICAgICBoaW50OiBDT1JSVVBURURfRVZFTlRfTE9HX0hJTlQsXG4gICAgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuV09STERfQ09OVFJBQ1RfRVJST1IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICdzZGsnLFxuICAgICAgZXJyb3JDb2RlLFxuICAgICAgaGludDogV09STERfQ09OVFJBQ1RfSElOVCxcbiAgICB9O1xuICB9XG4gIGlmIChlcnJvckNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5ERVBMT1lNRU5UX01JU01BVENIKSB7XG4gICAgcmV0dXJuIHsgYXR0cmlidXRpb246ICdzZGsnLCBlcnJvckNvZGUsIGhpbnQ6IERFUExPWU1FTlRfTUlTTUFUQ0hfSElOVCB9O1xuICB9XG4gIGlmIChuYW1lID09PSAnV29ya2Zsb3dSdW50aW1lRXJyb3InIHx8IG5hbWUgPT09ICdTdGVwTm90UmVnaXN0ZXJlZEVycm9yJykge1xuICAgIHJldHVybiB7IGF0dHJpYnV0aW9uOiAnc2RrJywgZXJyb3JDb2RlLCBoaW50OiBSVU5USU1FX0VSUk9SX0hJTlQgfTtcbiAgfVxuICBpZiAoZXJyb3JDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuUlVOVElNRV9FUlJPUikge1xuICAgIHJldHVybiB7IGF0dHJpYnV0aW9uOiAnc2RrJywgZXJyb3JDb2RlLCBoaW50OiBSVU5USU1FX0VSUk9SX0hJTlQgfTtcbiAgfVxuICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3VzZXInLCBlcnJvckNvZGUgfTtcbn1cblxuLyoqXG4gKiBEZXNjcmliZSBhbiBlcnJvciBmb3IgdXNlci1mYWNpbmcgcHJlc2VudGF0aW9uLiBQdXJlbHkgaW5mb3JtYXRpb25hbCDigJRcbiAqIGRvZXMgbm90IGNoYW5nZSBhbnkgcGVyc2lzdGVkIGV2ZW50IGRhdGEgb3IgZXJyb3IgY2xhc3NpZmljYXRpb24gdXNlZCBieVxuICogdGhlIHJ1bnRpbWUuXG4gKlxuICogVGhlIGF0dHJpYnV0aW9uIGhlcmUgaXMgbW9yZSBudWFuY2VkIHRoYW4gYGNsYXNzaWZ5UnVuRXJyb3JgOlxuICpcbiAqIC0gYFNlcmlhbGl6YXRpb25FcnJvcmAgaXMgdGVjaG5pY2FsbHkgcmFpc2VkIGJ5IHRoZSBTREssIGJ1dCBpdCBhbG1vc3RcbiAqICAgYWx3YXlzIHBvaW50cyBhdCBzb21ldGhpbmcgdGhlIGNhbGxlciBkaWQgKHBhc3NlZCBhIG5vbi1zZXJpYWxpemFibGVcbiAqICAgdmFsdWUsIGRpZG4ndCByZWdpc3RlciBhIGNsYXNzKS4gV2UgYXR0cmlidXRlIGl0IHRvIHRoZSB1c2VyLlxuICogLSBDb250ZXh0LXZpb2xhdGlvbiBlcnJvcnMgKGBOb3RJbldvcmtmbG93Q29udGV4dEVycm9yYCwgZXRjLikgbGlrZXdpc2VcbiAqICAgZGVzY3JpYmUgYSB1c2VyIG1pc3Rha2UuXG4gKiAtIGBXb3JrZmxvd1J1bnRpbWVFcnJvcmAgKGFuZCBzdWJjbGFzc2VzIGxpa2UgYFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3JgKVxuICogICBpbmRpY2F0ZXMgYW4gaW50ZXJuYWwgU0RLIGludmFyaWFudCBicm9rZSDigJQgc3VyZmFjZSB0aGF0IGFzIGBzZGtgLlxuICpcbiAqIEBwYXJhbSBlcnIgVGhlIGVycm9yIHZhbHVlIHRocm93biBieSB0aGUgd29ya2Zsb3cgLyBzdGVwLlxuICogQHBhcmFtIGVycm9yQ29kZSBPcHRpb25hbCBwcmVjb21wdXRlZCBlcnJvciBjb2RlLiBDYWxsZXJzIHRoYXQgYWxyZWFkeVxuICogICBrbm93IHRoZSBjb2RlIChlLmcuIGBSRVBMQVlfVElNRU9VVGAgb3IgYE1BWF9ERUxJVkVSSUVTX0VYQ0VFREVEYCwgd2hpY2hcbiAqICAgYGNsYXNzaWZ5UnVuRXJyb3JgIGNhbid0IGRlcml2ZSBmcm9tIHRoZSBlcnJvciBhbG9uZSkgc2hvdWxkIHBhc3MgaXQgc29cbiAqICAgdGhlIGF0dHJpYnV0aW9uIGFuZCBoaW50IHJlZmxlY3QgdGhlIGFjdHVhbCBmYWlsdXJlIGNhdGVnb3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVFcnJvcihcbiAgZXJyOiB1bmtub3duLFxuICBlcnJvckNvZGU/OiBSdW5FcnJvckNvZGVcbik6IEVycm9yRGVzY3JpcHRpb24ge1xuICBjb25zdCBlZmZlY3RpdmVDb2RlID0gZXJyb3JDb2RlID8/IGNsYXNzaWZ5UnVuRXJyb3IoZXJyKTtcblxuICBpZiAoU2VyaWFsaXphdGlvbkVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICd1c2VyJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IFNFUklBTElaQVRJT05fRVJST1JfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGlzQ29udGV4dFZpb2xhdGlvbkVycm9yKGVycikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICd1c2VyJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IENPTlRFWFRfRVJST1JfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBDT1JSVVBURURfRVZFTlRfTE9HX0hJTlQsXG4gICAgfTtcbiAgfVxuXG4gIC8vIENoZWNrIERFUExPWU1FTlRfTUlTTUFUQ0ggYmVmb3JlIHRoZSBnZW5lcmljIFdvcmtmbG93UnVudGltZUVycm9yIGJyYW5jaCDigJRcbiAgLy8gV29ya2Zsb3dEZXBsb3ltZW50TWlzbWF0Y2hFcnJvciBzdWJjbGFzc2VzIGl0LCBidXQgaGFzIGl0cyBvd24gY29kZSArIGhpbnQuXG4gIGlmIChlZmZlY3RpdmVDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuREVQTE9ZTUVOVF9NSVNNQVRDSCkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBERVBMT1lNRU5UX01JU01BVENIX0hJTlQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlcnIgaW5zdGFuY2VvZiBXb3JrZmxvd1J1bnRpbWVFcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBSVU5USU1FX0VSUk9SX0hJTlQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlZmZlY3RpdmVDb2RlID09PSBSVU5fRVJST1JfQ09ERVMuUkVQTEFZX1RJTUVPVVQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICdzZGsnLFxuICAgICAgZXJyb3JDb2RlOiBlZmZlY3RpdmVDb2RlLFxuICAgICAgaGludDogUkVQTEFZX1RJTUVPVVRfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGVmZmVjdGl2ZUNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5NQVhfREVMSVZFUklFU19FWENFRURFRCkge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBNQVhfREVMSVZFUklFU19ISU5ULFxuICAgIH07XG4gIH1cblxuICBpZiAoZWZmZWN0aXZlQ29kZSA9PT0gUlVOX0VSUk9SX0NPREVTLk1BWF9FVkVOVFNfRVhDRUVERUQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRpb246ICd1c2VyJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IE1BWF9FVkVOVFNfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGVmZmVjdGl2ZUNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5DT1JSVVBURURfRVZFTlRfTE9HKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF0dHJpYnV0aW9uOiAnc2RrJyxcbiAgICAgIGVycm9yQ29kZTogZWZmZWN0aXZlQ29kZSxcbiAgICAgIGhpbnQ6IENPUlJVUFRFRF9FVkVOVF9MT0dfSElOVCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGVmZmVjdGl2ZUNvZGUgPT09IFJVTl9FUlJPUl9DT0RFUy5XT1JMRF9DT05UUkFDVF9FUlJPUikge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGlvbjogJ3NkaycsXG4gICAgICBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUsXG4gICAgICBoaW50OiBXT1JMRF9DT05UUkFDVF9ISU5ULFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBhdHRyaWJ1dGlvbjogJ3VzZXInLCBlcnJvckNvZGU6IGVmZmVjdGl2ZUNvZGUgfTtcbn1cbiJdfQ==
|
|
@@ -55,6 +55,7 @@ export declare class EventsConsumer {
|
|
|
55
55
|
private pendingUnconsumedTimeout;
|
|
56
56
|
private unconsumedCheckVersion;
|
|
57
57
|
constructor(events: Event[], options: EventsConsumerOptions);
|
|
58
|
+
append(events: Event[]): void;
|
|
58
59
|
/**
|
|
59
60
|
* Registers a callback function to be called after an event has been consumed
|
|
60
61
|
* by a different callback. The callback can return:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-consumer.d.ts","sourceRoot":"","sources":["../src/events-consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,iBAAiB,CAAC;AAGxD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAmB3C,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,QAAQ,IAAA;IACR;;OAEG;IACH,WAAW,IAAA;IACX;;OAEG;IACH,QAAQ,IAAA;CACT;AAED,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,mBAAmB,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,qBAAa,cAAc;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"events-consumer.d.ts","sourceRoot":"","sources":["../src/events-consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,iBAAiB,CAAC;AAGxD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAmB3C,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,QAAQ,IAAA;IACR;;OAEG;IACH,WAAW,IAAA;IACX;;OAEG;IACH,QAAQ,IAAA;CACT;AAED,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,mBAAmB,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC;;;;;;OAMG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,qBAAa,cAAc;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAM;IACjD,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,OAAO,CAAC,wBAAwB,CAA8C;IAC9E,OAAO,CAAC,sBAAsB,CAAK;gBAEvB,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,qBAAqB;IAW3D,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAK7B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,EAAE,qBAAqB;IAgBnC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,OAAO,CA0Bb;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,gBAAgB;CAqCzB"}
|