@workflow/core 5.0.0-beta.3 → 5.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attribute-changes.d.ts +7 -0
- package/dist/attribute-changes.d.ts.map +1 -0
- package/dist/attribute-changes.js +25 -0
- package/dist/capabilities.d.ts +22 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +41 -4
- package/dist/capture-stack.d.ts +16 -0
- package/dist/capture-stack.d.ts.map +1 -0
- package/dist/capture-stack.js +21 -0
- package/dist/class-serialization.d.ts +32 -0
- package/dist/class-serialization.d.ts.map +1 -1
- package/dist/class-serialization.js +37 -1
- package/dist/classify-error.d.ts +26 -3
- package/dist/classify-error.d.ts.map +1 -1
- package/dist/classify-error.js +103 -6
- package/dist/context-errors.d.ts +27 -0
- package/dist/context-errors.d.ts.map +1 -0
- package/dist/context-errors.js +101 -0
- package/dist/context-violation-error.d.ts +97 -0
- package/dist/context-violation-error.d.ts.map +1 -0
- package/dist/context-violation-error.js +147 -0
- package/dist/create-hook.d.ts +42 -3
- package/dist/create-hook.d.ts.map +1 -1
- package/dist/create-hook.js +4 -3
- package/dist/define-hook.d.ts.map +1 -1
- package/dist/define-hook.js +20 -5
- package/dist/describe-error.d.ts +70 -0
- package/dist/describe-error.d.ts.map +1 -0
- package/dist/describe-error.js +165 -0
- package/dist/encryption.d.ts +22 -1
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +72 -27
- package/dist/events-consumer.d.ts +25 -1
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +95 -16
- package/dist/flushable-stream.d.ts +10 -10
- package/dist/flushable-stream.d.ts.map +1 -1
- package/dist/flushable-stream.js +26 -15
- package/dist/global.d.ts +35 -1
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js +21 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/log-format.d.ts +25 -0
- package/dist/log-format.d.ts.map +1 -0
- package/dist/log-format.js +250 -0
- package/dist/logger.d.ts +29 -30
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +82 -32
- package/dist/private.d.ts +107 -2
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +80 -3
- package/dist/runtime/constants.d.ts +189 -0
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +310 -15
- package/dist/runtime/get-port-lazy.d.ts +25 -0
- package/dist/runtime/get-port-lazy.d.ts.map +1 -0
- package/dist/runtime/get-port-lazy.js +92 -0
- package/dist/runtime/get-world-lazy.d.ts +23 -0
- package/dist/runtime/get-world-lazy.d.ts.map +1 -0
- package/dist/runtime/get-world-lazy.js +46 -0
- package/dist/runtime/helpers.d.ts +57 -6
- package/dist/runtime/helpers.d.ts.map +1 -1
- package/dist/runtime/helpers.js +169 -32
- package/dist/runtime/replay-budget.d.ts +98 -0
- package/dist/runtime/replay-budget.d.ts.map +1 -0
- package/dist/runtime/replay-budget.js +192 -0
- package/dist/runtime/resume-hook.d.ts.map +1 -1
- package/dist/runtime/resume-hook.js +39 -23
- package/dist/runtime/run-id-time.d.ts +10 -0
- package/dist/runtime/run-id-time.d.ts.map +1 -0
- package/dist/runtime/run-id-time.js +31 -0
- package/dist/runtime/run.d.ts +6 -2
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +52 -10
- package/dist/runtime/runs.d.ts +36 -2
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +18 -7
- package/dist/runtime/start.d.ts +58 -1
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +160 -46
- package/dist/runtime/step-executor.d.ts +131 -0
- package/dist/runtime/step-executor.d.ts.map +1 -0
- package/dist/runtime/step-executor.js +818 -0
- package/dist/runtime/step-handler.d.ts.map +1 -1
- package/dist/runtime/step-handler.js +718 -557
- package/dist/runtime/step-latency.d.ts +131 -0
- package/dist/runtime/step-latency.d.ts.map +1 -0
- package/dist/runtime/step-latency.js +155 -0
- package/dist/runtime/step-ownership.d.ts +72 -0
- package/dist/runtime/step-ownership.d.ts.map +1 -0
- package/dist/runtime/step-ownership.js +114 -0
- package/dist/runtime/step-single-flight.d.ts +12 -0
- package/dist/runtime/step-single-flight.d.ts.map +1 -0
- package/dist/runtime/step-single-flight.js +69 -0
- package/dist/runtime/suspension-handler.d.ts +81 -7
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +355 -137
- package/dist/runtime/wait-continuation.d.ts +84 -0
- package/dist/runtime/wait-continuation.d.ts.map +1 -0
- package/dist/runtime/wait-continuation.js +105 -0
- package/dist/runtime/wait-until.d.ts +18 -0
- package/dist/runtime/wait-until.d.ts.map +1 -0
- package/dist/runtime/wait-until.js +42 -0
- package/dist/runtime/world-compatibility.d.ts +5 -0
- package/dist/runtime/world-compatibility.d.ts.map +1 -0
- package/dist/runtime/world-compatibility.js +12 -0
- package/dist/runtime/world-init.d.ts +50 -0
- package/dist/runtime/world-init.d.ts.map +1 -0
- package/dist/runtime/world-init.js +50 -0
- package/dist/runtime/world-target.d.ts +11 -0
- package/dist/runtime/world-target.d.ts.map +1 -0
- package/dist/runtime/world-target.js +15 -0
- package/dist/runtime/world.d.ts +21 -9
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +58 -83
- package/dist/runtime.d.ts +15 -10
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1757 -326
- package/dist/schemas.d.ts +1 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -1
- package/dist/serialization/client.d.ts +17 -0
- package/dist/serialization/client.d.ts.map +1 -0
- package/dist/serialization/client.js +48 -0
- package/dist/serialization/codec-devalue.d.ts +14 -0
- package/dist/serialization/codec-devalue.d.ts.map +1 -0
- package/dist/serialization/codec-devalue.js +98 -0
- package/dist/serialization/codec.d.ts +106 -0
- package/dist/serialization/codec.d.ts.map +1 -0
- package/dist/serialization/codec.js +17 -0
- package/dist/serialization/compression.d.ts +104 -0
- package/dist/serialization/compression.d.ts.map +1 -0
- package/dist/serialization/compression.js +260 -0
- package/dist/serialization/encryption.d.ts +33 -0
- package/dist/serialization/encryption.d.ts.map +1 -0
- package/dist/serialization/encryption.js +70 -0
- package/dist/serialization/errors.d.ts +34 -0
- package/dist/serialization/errors.d.ts.map +1 -0
- package/dist/serialization/errors.js +59 -0
- package/dist/serialization/format.d.ts +60 -0
- package/dist/serialization/format.d.ts.map +1 -0
- package/dist/serialization/format.js +97 -0
- package/dist/serialization/index.d.ts +19 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/serialization/index.js +22 -0
- package/dist/serialization/reducers/class.d.ts +11 -0
- package/dist/serialization/reducers/class.d.ts.map +1 -0
- package/dist/serialization/reducers/class.js +68 -0
- package/dist/serialization/reducers/common.d.ts +16 -0
- package/dist/serialization/reducers/common.d.ts.map +1 -0
- package/dist/serialization/reducers/common.js +417 -0
- package/dist/serialization/reducers/step-function.d.ts +35 -0
- package/dist/serialization/reducers/step-function.d.ts.map +1 -0
- package/dist/serialization/reducers/step-function.js +88 -0
- package/dist/serialization/step.d.ts +17 -0
- package/dist/serialization/step.d.ts.map +1 -0
- package/dist/serialization/step.js +48 -0
- package/dist/serialization/types.d.ts +253 -0
- package/dist/serialization/types.d.ts.map +1 -0
- package/dist/serialization/types.js +25 -0
- package/dist/serialization/workflow.d.ts +29 -0
- package/dist/serialization/workflow.d.ts.map +1 -0
- package/dist/serialization/workflow.js +54 -0
- package/dist/serialization-format.d.ts +16 -0
- package/dist/serialization-format.d.ts.map +1 -1
- package/dist/serialization-format.js +213 -50
- package/dist/serialization.d.ts +322 -214
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +1575 -664
- package/dist/set-attributes.d.ts +18 -0
- package/dist/set-attributes.d.ts.map +1 -0
- package/dist/set-attributes.js +61 -0
- package/dist/sleep.d.ts.map +1 -1
- package/dist/sleep.js +3 -2
- package/dist/source-map.d.ts +5 -0
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +102 -10
- package/dist/step/context-storage.d.ts +53 -0
- package/dist/step/context-storage.d.ts.map +1 -1
- package/dist/step/context-storage.js +1 -1
- package/dist/step/get-closure-vars.d.ts.map +1 -1
- package/dist/step/get-closure-vars.js +3 -2
- package/dist/step/get-step-metadata.d.ts.map +1 -1
- package/dist/step/get-step-metadata.js +3 -2
- package/dist/step/get-workflow-metadata.d.ts.map +1 -1
- package/dist/step/get-workflow-metadata.js +3 -2
- package/dist/step/writable-stream.d.ts.map +1 -1
- package/dist/step/writable-stream.js +58 -6
- package/dist/step-hydration-cache.d.ts +148 -0
- package/dist/step-hydration-cache.d.ts.map +1 -0
- package/dist/step-hydration-cache.js +171 -0
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +144 -25
- package/dist/symbols.d.ts +28 -0
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +29 -1
- package/dist/telemetry/semantic-conventions.d.ts +98 -2
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +66 -1
- package/dist/telemetry.d.ts +68 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +106 -4
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +23 -1
- package/dist/util.d.ts +16 -6
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +25 -16
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/vm/index.d.ts.map +1 -1
- package/dist/vm/index.js +3 -2
- package/dist/vm/script-cache.d.ts +28 -0
- package/dist/vm/script-cache.d.ts.map +1 -0
- package/dist/vm/script-cache.js +140 -0
- package/dist/workflow/abort-controller.d.ts +65 -0
- package/dist/workflow/abort-controller.d.ts.map +1 -0
- package/dist/workflow/abort-controller.js +277 -0
- package/dist/workflow/attribute-dispatcher.d.ts +6 -0
- package/dist/workflow/attribute-dispatcher.d.ts.map +1 -0
- package/dist/workflow/attribute-dispatcher.js +48 -0
- package/dist/workflow/create-hook.d.ts.map +1 -1
- package/dist/workflow/create-hook.js +25 -3
- package/dist/workflow/define-hook.d.ts +1 -1
- package/dist/workflow/define-hook.d.ts.map +1 -1
- package/dist/workflow/define-hook.js +8 -4
- package/dist/workflow/get-workflow-metadata.d.ts.map +1 -1
- package/dist/workflow/get-workflow-metadata.js +14 -3
- package/dist/workflow/hook.d.ts.map +1 -1
- package/dist/workflow/hook.js +207 -33
- package/dist/workflow/index.d.ts +1 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +5 -3
- package/dist/workflow/set-attributes.d.ts +77 -0
- package/dist/workflow/set-attributes.d.ts.map +1 -0
- package/dist/workflow/set-attributes.js +65 -0
- package/dist/workflow/sleep.d.ts.map +1 -1
- package/dist/workflow/sleep.js +45 -8
- package/dist/workflow/world-init-stub.d.ts +15 -0
- package/dist/workflow/world-init-stub.d.ts.map +1 -0
- package/dist/workflow/world-init-stub.js +15 -0
- package/dist/workflow.d.ts +17 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +190 -56
- package/docs/api-reference/create-hook.mdx +38 -0
- package/docs/api-reference/create-webhook.mdx +1 -0
- package/docs/api-reference/fetch.mdx +5 -0
- package/docs/api-reference/index.mdx +3 -0
- package/docs/api-reference/set-attributes.mdx +65 -0
- package/docs/foundations/cancellation.mdx +459 -0
- package/docs/foundations/errors-and-retries.mdx +7 -3
- package/docs/foundations/hooks.mdx +29 -0
- package/docs/foundations/idempotency.mdx +236 -11
- package/docs/foundations/index.mdx +1 -23
- package/docs/foundations/meta.json +3 -1
- package/docs/foundations/serialization.mdx +77 -41
- package/docs/foundations/starting-workflows.mdx +5 -1
- package/docs/foundations/streaming.mdx +14 -23
- package/docs/foundations/versioning.mdx +263 -0
- package/docs/how-it-works/cancellation.mdx +287 -0
- package/docs/how-it-works/code-transform.mdx +2 -2
- package/docs/how-it-works/encryption.mdx +2 -2
- package/docs/how-it-works/event-sourcing.mdx +2 -2
- package/docs/how-it-works/meta.json +2 -1
- package/package.json +32 -11
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { redirectStackToCaller } from './capture-stack.js';
|
|
2
|
+
import { ContextViolationError, NotInStepContextError, NotInWorkflowContextError, NotInWorkflowOrStepContextError, } from './context-violation-error.js';
|
|
3
|
+
import { WORKFLOW_CONTEXT_SYMBOL, } from './workflow/get-workflow-metadata.js';
|
|
4
|
+
// Re-export the structural base + subclasses so the public surface is a
|
|
5
|
+
// single import point. The base + simpler subclasses live in
|
|
6
|
+
// `context-violation-error.ts` because `get-workflow-metadata.ts` needs to
|
|
7
|
+
// throw one without creating an import cycle with this file.
|
|
8
|
+
export { ContextViolationError, NotInStepContextError, NotInWorkflowContextError, NotInWorkflowOrStepContextError, };
|
|
9
|
+
/**
|
|
10
|
+
* Thrown when an API that MUST NOT run inside a workflow function is called
|
|
11
|
+
* from one (e.g. `resumeHook()`, which would cause determinism issues).
|
|
12
|
+
* The message names the specific workflow that made the offending call.
|
|
13
|
+
*/
|
|
14
|
+
export class UnavailableInWorkflowContextError extends ContextViolationError {
|
|
15
|
+
name = 'UnavailableInWorkflowContextError';
|
|
16
|
+
constructor(functionName, docsUrl) {
|
|
17
|
+
const ctx = globalThis[WORKFLOW_CONTEXT_SYMBOL];
|
|
18
|
+
const workflowName = ctx?.workflowName;
|
|
19
|
+
// Apply dim styling to `workflow/` / `step/` prefixes in the qualified
|
|
20
|
+
// name so the part the user named stands out.
|
|
21
|
+
const nameSegs = (() => {
|
|
22
|
+
if (!workflowName)
|
|
23
|
+
return null;
|
|
24
|
+
const m = workflowName.match(/^(workflow\/|step\/)(.*)$/);
|
|
25
|
+
if (m)
|
|
26
|
+
return [{ dim: m[1] }, { text: m[2] }];
|
|
27
|
+
return [{ text: workflowName }];
|
|
28
|
+
})();
|
|
29
|
+
const contextLine = nameSegs
|
|
30
|
+
? {
|
|
31
|
+
type: 'plain',
|
|
32
|
+
segments: [
|
|
33
|
+
{ text: 'this call was made from the ' },
|
|
34
|
+
...nameSegs,
|
|
35
|
+
{ text: ' workflow context.' },
|
|
36
|
+
],
|
|
37
|
+
}
|
|
38
|
+
: {
|
|
39
|
+
type: 'plain',
|
|
40
|
+
segments: [{ text: 'this call was made from a workflow context.' }],
|
|
41
|
+
};
|
|
42
|
+
super({
|
|
43
|
+
title: [
|
|
44
|
+
{ code: functionName },
|
|
45
|
+
{ text: ' cannot be called from a workflow context.' },
|
|
46
|
+
],
|
|
47
|
+
details: [
|
|
48
|
+
{
|
|
49
|
+
type: 'plain',
|
|
50
|
+
segments: [
|
|
51
|
+
{
|
|
52
|
+
text: 'calling this in a workflow context can cause determinism issues.',
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
contextLine,
|
|
57
|
+
{ type: 'docs', url: docsUrl },
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Throw a {@link NotInWorkflowContextError} whose stack trace points at the
|
|
64
|
+
* user code that called `stackStartFn`, not at our framework internals.
|
|
65
|
+
*
|
|
66
|
+
* Prefer this over `throw new NotInWorkflowContextError(...)` so tooling
|
|
67
|
+
* (Next.js error overlay, VS Code terminal linkifier, Sentry, etc.) shows
|
|
68
|
+
* the user's call site as the relevant frame.
|
|
69
|
+
*/
|
|
70
|
+
export function throwNotInWorkflowContext(functionName, docsUrl,
|
|
71
|
+
// biome-ignore lint/complexity/noBannedTypes: matches Error.captureStackTrace
|
|
72
|
+
stackStartFn) {
|
|
73
|
+
const err = new NotInWorkflowContextError(functionName, docsUrl);
|
|
74
|
+
redirectStackToCaller(err, stackStartFn);
|
|
75
|
+
throw err;
|
|
76
|
+
}
|
|
77
|
+
/** See {@link throwNotInWorkflowContext}. */
|
|
78
|
+
export function throwNotInStepContext(functionName, docsUrl,
|
|
79
|
+
// biome-ignore lint/complexity/noBannedTypes: matches Error.captureStackTrace
|
|
80
|
+
stackStartFn) {
|
|
81
|
+
const err = new NotInStepContextError(functionName, docsUrl);
|
|
82
|
+
redirectStackToCaller(err, stackStartFn);
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
85
|
+
/** See {@link throwNotInWorkflowContext}. */
|
|
86
|
+
export function throwNotInWorkflowOrStepContext(functionName, docsUrl,
|
|
87
|
+
// biome-ignore lint/complexity/noBannedTypes: matches Error.captureStackTrace
|
|
88
|
+
stackStartFn) {
|
|
89
|
+
const err = new NotInWorkflowOrStepContextError(functionName, docsUrl);
|
|
90
|
+
redirectStackToCaller(err, stackStartFn);
|
|
91
|
+
throw err;
|
|
92
|
+
}
|
|
93
|
+
/** See {@link throwNotInWorkflowContext}. */
|
|
94
|
+
export function throwUnavailableInWorkflowContext(functionName, docsUrl,
|
|
95
|
+
// biome-ignore lint/complexity/noBannedTypes: matches Error.captureStackTrace
|
|
96
|
+
stackStartFn) {
|
|
97
|
+
const err = new UnavailableInWorkflowContextError(functionName, docsUrl);
|
|
98
|
+
redirectStackToCaller(err, stackStartFn);
|
|
99
|
+
throw err;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1lcnJvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLHFCQUFxQixFQUdyQixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLCtCQUErQixHQUNoQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCx1QkFBdUIsR0FFeEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3Qyx3RUFBd0U7QUFDeEUsNkRBQTZEO0FBQzdELDJFQUEyRTtBQUMzRSw2REFBNkQ7QUFDN0QsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLCtCQUErQixHQUNoQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxxQkFBcUI7SUFDMUUsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBRTNDLFlBQVksWUFBb0IsRUFBRSxPQUFnQjtRQUNoRCxNQUFNLEdBQUcsR0FBSSxVQUFrQixDQUFDLHVCQUF1QixDQUUxQyxDQUFDO1FBQ2QsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLFlBQVksQ0FBQztRQUV2Qyx1RUFBdUU7UUFDdkUsOENBQThDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUM7Z0JBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFVLENBQUM7WUFDdkQsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFVLENBQUM7UUFDM0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVMLE1BQU0sV0FBVyxHQUFXLFFBQVE7WUFDbEMsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRTtvQkFDUixFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRTtvQkFDeEMsR0FBRyxRQUFRO29CQUNYLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO2lCQUMvQjthQUNGO1lBQ0gsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLDZDQUE2QyxFQUFFLENBQUM7YUFDcEUsQ0FBQztRQUVOLEtBQUssQ0FBQztZQUNKLEtBQUssRUFBRTtnQkFDTCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7Z0JBQ3RCLEVBQUUsSUFBSSxFQUFFLDRDQUE0QyxFQUFFO2FBQ3ZEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxPQUFPO29CQUNiLFFBQVEsRUFBRTt3QkFDUjs0QkFDRSxJQUFJLEVBQUUsa0VBQWtFO3lCQUN6RTtxQkFDRjtpQkFDRjtnQkFDRCxXQUFXO2dCQUNYLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFO2FBQy9CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsWUFBb0IsRUFDcEIsT0FBZ0I7QUFDaEIsOEVBQThFO0FBQzlFLFlBQXNCO0lBRXRCLE1BQU0sR0FBRyxHQUFHLElBQUkseUJBQXlCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsQ0FBQztBQUNaLENBQUM7QUFFRCw2Q0FBNkM7QUFDN0MsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxZQUFvQixFQUNwQixPQUFnQjtBQUNoQiw4RUFBOEU7QUFDOUUsWUFBc0I7SUFFdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QscUJBQXFCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sR0FBRyxDQUFDO0FBQ1osQ0FBQztBQUVELDZDQUE2QztBQUM3QyxNQUFNLFVBQVUsK0JBQStCLENBQzdDLFlBQW9CLEVBQ3BCLE9BQWdCO0FBQ2hCLDhFQUE4RTtBQUM5RSxZQUFzQjtJQUV0QixNQUFNLEdBQUcsR0FBRyxJQUFJLCtCQUErQixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekMsTUFBTSxHQUFHLENBQUM7QUFDWixDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLE1BQU0sVUFBVSxpQ0FBaUMsQ0FDL0MsWUFBb0IsRUFDcEIsT0FBZ0I7QUFDaEIsOEVBQThFO0FBQzlFLFlBQXNCO0lBRXRCLE1BQU0sR0FBRyxHQUFHLElBQUksaUNBQWlDLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWRpcmVjdFN0YWNrVG9DYWxsZXIgfSBmcm9tICcuL2NhcHR1cmUtc3RhY2suanMnO1xuaW1wb3J0IHtcbiAgQ29udGV4dFZpb2xhdGlvbkVycm9yLFxuICB0eXBlIERldGFpbCxcbiAgdHlwZSBEb2NzVXJsLFxuICBOb3RJblN0ZXBDb250ZXh0RXJyb3IsXG4gIE5vdEluV29ya2Zsb3dDb250ZXh0RXJyb3IsXG4gIE5vdEluV29ya2Zsb3dPclN0ZXBDb250ZXh0RXJyb3IsXG59IGZyb20gJy4vY29udGV4dC12aW9sYXRpb24tZXJyb3IuanMnO1xuaW1wb3J0IHtcbiAgV09SS0ZMT1dfQ09OVEVYVF9TWU1CT0wsXG4gIHR5cGUgV29ya2Zsb3dNZXRhZGF0YSxcbn0gZnJvbSAnLi93b3JrZmxvdy9nZXQtd29ya2Zsb3ctbWV0YWRhdGEuanMnO1xuXG4vLyBSZS1leHBvcnQgdGhlIHN0cnVjdHVyYWwgYmFzZSArIHN1YmNsYXNzZXMgc28gdGhlIHB1YmxpYyBzdXJmYWNlIGlzIGFcbi8vIHNpbmdsZSBpbXBvcnQgcG9pbnQuIFRoZSBiYXNlICsgc2ltcGxlciBzdWJjbGFzc2VzIGxpdmUgaW5cbi8vIGBjb250ZXh0LXZpb2xhdGlvbi1lcnJvci50c2AgYmVjYXVzZSBgZ2V0LXdvcmtmbG93LW1ldGFkYXRhLnRzYCBuZWVkcyB0b1xuLy8gdGhyb3cgb25lIHdpdGhvdXQgY3JlYXRpbmcgYW4gaW1wb3J0IGN5Y2xlIHdpdGggdGhpcyBmaWxlLlxuZXhwb3J0IHtcbiAgQ29udGV4dFZpb2xhdGlvbkVycm9yLFxuICBOb3RJblN0ZXBDb250ZXh0RXJyb3IsXG4gIE5vdEluV29ya2Zsb3dDb250ZXh0RXJyb3IsXG4gIE5vdEluV29ya2Zsb3dPclN0ZXBDb250ZXh0RXJyb3IsXG59O1xuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IE1VU1QgTk9UIHJ1biBpbnNpZGUgYSB3b3JrZmxvdyBmdW5jdGlvbiBpcyBjYWxsZWRcbiAqIGZyb20gb25lIChlLmcuIGByZXN1bWVIb29rKClgLCB3aGljaCB3b3VsZCBjYXVzZSBkZXRlcm1pbmlzbSBpc3N1ZXMpLlxuICogVGhlIG1lc3NhZ2UgbmFtZXMgdGhlIHNwZWNpZmljIHdvcmtmbG93IHRoYXQgbWFkZSB0aGUgb2ZmZW5kaW5nIGNhbGwuXG4gKi9cbmV4cG9ydCBjbGFzcyBVbmF2YWlsYWJsZUluV29ya2Zsb3dDb250ZXh0RXJyb3IgZXh0ZW5kcyBDb250ZXh0VmlvbGF0aW9uRXJyb3Ige1xuICBuYW1lID0gJ1VuYXZhaWxhYmxlSW5Xb3JrZmxvd0NvbnRleHRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoZnVuY3Rpb25OYW1lOiBzdHJpbmcsIGRvY3NVcmw6IERvY3NVcmwpIHtcbiAgICBjb25zdCBjdHggPSAoZ2xvYmFsVGhpcyBhcyBhbnkpW1dPUktGTE9XX0NPTlRFWFRfU1lNQk9MXSBhc1xuICAgICAgfCBXb3JrZmxvd01ldGFkYXRhXG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB3b3JrZmxvd05hbWUgPSBjdHg/LndvcmtmbG93TmFtZTtcblxuICAgIC8vIEFwcGx5IGRpbSBzdHlsaW5nIHRvIGB3b3JrZmxvdy9gIC8gYHN0ZXAvYCBwcmVmaXhlcyBpbiB0aGUgcXVhbGlmaWVkXG4gICAgLy8gbmFtZSBzbyB0aGUgcGFydCB0aGUgdXNlciBuYW1lZCBzdGFuZHMgb3V0LlxuICAgIGNvbnN0IG5hbWVTZWdzID0gKCgpID0+IHtcbiAgICAgIGlmICghd29ya2Zsb3dOYW1lKSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IG0gPSB3b3JrZmxvd05hbWUubWF0Y2goL14od29ya2Zsb3dcXC98c3RlcFxcLykoLiopJC8pO1xuICAgICAgaWYgKG0pIHJldHVybiBbeyBkaW06IG1bMV0gfSwgeyB0ZXh0OiBtWzJdIH1dIGFzIGNvbnN0O1xuICAgICAgcmV0dXJuIFt7IHRleHQ6IHdvcmtmbG93TmFtZSB9XSBhcyBjb25zdDtcbiAgICB9KSgpO1xuXG4gICAgY29uc3QgY29udGV4dExpbmU6IERldGFpbCA9IG5hbWVTZWdzXG4gICAgICA/IHtcbiAgICAgICAgICB0eXBlOiAncGxhaW4nLFxuICAgICAgICAgIHNlZ21lbnRzOiBbXG4gICAgICAgICAgICB7IHRleHQ6ICd0aGlzIGNhbGwgd2FzIG1hZGUgZnJvbSB0aGUgJyB9LFxuICAgICAgICAgICAgLi4ubmFtZVNlZ3MsXG4gICAgICAgICAgICB7IHRleHQ6ICcgd29ya2Zsb3cgY29udGV4dC4nIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgdHlwZTogJ3BsYWluJyxcbiAgICAgICAgICBzZWdtZW50czogW3sgdGV4dDogJ3RoaXMgY2FsbCB3YXMgbWFkZSBmcm9tIGEgd29ya2Zsb3cgY29udGV4dC4nIH1dLFxuICAgICAgICB9O1xuXG4gICAgc3VwZXIoe1xuICAgICAgdGl0bGU6IFtcbiAgICAgICAgeyBjb2RlOiBmdW5jdGlvbk5hbWUgfSxcbiAgICAgICAgeyB0ZXh0OiAnIGNhbm5vdCBiZSBjYWxsZWQgZnJvbSBhIHdvcmtmbG93IGNvbnRleHQuJyB9LFxuICAgICAgXSxcbiAgICAgIGRldGFpbHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdwbGFpbicsXG4gICAgICAgICAgc2VnbWVudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGV4dDogJ2NhbGxpbmcgdGhpcyBpbiBhIHdvcmtmbG93IGNvbnRleHQgY2FuIGNhdXNlIGRldGVybWluaXNtIGlzc3Vlcy4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBjb250ZXh0TGluZSxcbiAgICAgICAgeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93IGEge0BsaW5rIE5vdEluV29ya2Zsb3dDb250ZXh0RXJyb3J9IHdob3NlIHN0YWNrIHRyYWNlIHBvaW50cyBhdCB0aGVcbiAqIHVzZXIgY29kZSB0aGF0IGNhbGxlZCBgc3RhY2tTdGFydEZuYCwgbm90IGF0IG91ciBmcmFtZXdvcmsgaW50ZXJuYWxzLlxuICpcbiAqIFByZWZlciB0aGlzIG92ZXIgYHRocm93IG5ldyBOb3RJbldvcmtmbG93Q29udGV4dEVycm9yKC4uLilgIHNvIHRvb2xpbmdcbiAqIChOZXh0LmpzIGVycm9yIG92ZXJsYXksIFZTIENvZGUgdGVybWluYWwgbGlua2lmaWVyLCBTZW50cnksIGV0Yy4pIHNob3dzXG4gKiB0aGUgdXNlcidzIGNhbGwgc2l0ZSBhcyB0aGUgcmVsZXZhbnQgZnJhbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd05vdEluV29ya2Zsb3dDb250ZXh0KFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgZG9jc1VybDogRG9jc1VybCxcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS9ub0Jhbm5lZFR5cGVzOiBtYXRjaGVzIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlXG4gIHN0YWNrU3RhcnRGbjogRnVuY3Rpb25cbik6IG5ldmVyIHtcbiAgY29uc3QgZXJyID0gbmV3IE5vdEluV29ya2Zsb3dDb250ZXh0RXJyb3IoZnVuY3Rpb25OYW1lLCBkb2NzVXJsKTtcbiAgcmVkaXJlY3RTdGFja1RvQ2FsbGVyKGVyciwgc3RhY2tTdGFydEZuKTtcbiAgdGhyb3cgZXJyO1xufVxuXG4vKiogU2VlIHtAbGluayB0aHJvd05vdEluV29ya2Zsb3dDb250ZXh0fS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd05vdEluU3RlcENvbnRleHQoXG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICBkb2NzVXJsOiBEb2NzVXJsLFxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L25vQmFubmVkVHlwZXM6IG1hdGNoZXMgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2VcbiAgc3RhY2tTdGFydEZuOiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnIgPSBuZXcgTm90SW5TdGVwQ29udGV4dEVycm9yKGZ1bmN0aW9uTmFtZSwgZG9jc1VybCk7XG4gIHJlZGlyZWN0U3RhY2tUb0NhbGxlcihlcnIsIHN0YWNrU3RhcnRGbik7XG4gIHRocm93IGVycjtcbn1cblxuLyoqIFNlZSB7QGxpbmsgdGhyb3dOb3RJbldvcmtmbG93Q29udGV4dH0uICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dChcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gIGRvY3NVcmw6IERvY3NVcmwsXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvbm9CYW5uZWRUeXBlczogbWF0Y2hlcyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZVxuICBzdGFja1N0YXJ0Rm46IEZ1bmN0aW9uXG4pOiBuZXZlciB7XG4gIGNvbnN0IGVyciA9IG5ldyBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yKGZ1bmN0aW9uTmFtZSwgZG9jc1VybCk7XG4gIHJlZGlyZWN0U3RhY2tUb0NhbGxlcihlcnIsIHN0YWNrU3RhcnRGbik7XG4gIHRocm93IGVycjtcbn1cblxuLyoqIFNlZSB7QGxpbmsgdGhyb3dOb3RJbldvcmtmbG93Q29udGV4dH0uICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dVbmF2YWlsYWJsZUluV29ya2Zsb3dDb250ZXh0KFxuICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgZG9jc1VybDogRG9jc1VybCxcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS9ub0Jhbm5lZFR5cGVzOiBtYXRjaGVzIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlXG4gIHN0YWNrU3RhcnRGbjogRnVuY3Rpb25cbik6IG5ldmVyIHtcbiAgY29uc3QgZXJyID0gbmV3IFVuYXZhaWxhYmxlSW5Xb3JrZmxvd0NvbnRleHRFcnJvcihmdW5jdGlvbk5hbWUsIGRvY3NVcmwpO1xuICByZWRpcmVjdFN0YWNrVG9DYWxsZXIoZXJyLCBzdGFja1N0YXJ0Rm4pO1xuICB0aHJvdyBlcnI7XG59XG4iXX0=
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `docs:` line URL. The leading protocol is part of the type so call sites
|
|
3
|
+
* can't accidentally pass a protocol-relative or bare path.
|
|
4
|
+
*/
|
|
5
|
+
export type DocsUrl = `https://${string}`;
|
|
6
|
+
declare const INSPECT_CUSTOM: unique symbol;
|
|
7
|
+
/**
|
|
8
|
+
* Structured data for a framed error. The base class takes this and renders
|
|
9
|
+
* it to plain text (for `.message` / `.stack` / structured logs) or to an
|
|
10
|
+
* ANSI-framed string (for terminal display via `util.inspect` / `toString`).
|
|
11
|
+
*
|
|
12
|
+
* Keeping the pieces structured means we never have to strip ANSI back out
|
|
13
|
+
* once it's in the message — we just don't put it there in the first place.
|
|
14
|
+
*/
|
|
15
|
+
export interface FramedContent {
|
|
16
|
+
/** Headline. `{ code: 'foo()' }` segments render as backticked inline code. */
|
|
17
|
+
readonly title: readonly Segment[];
|
|
18
|
+
/** One framed branch per entry. The last uses `╰▶`, others use `├▶`. */
|
|
19
|
+
readonly details: readonly Detail[];
|
|
20
|
+
}
|
|
21
|
+
export type Segment = {
|
|
22
|
+
readonly text: string;
|
|
23
|
+
} | {
|
|
24
|
+
readonly code: string;
|
|
25
|
+
} | {
|
|
26
|
+
readonly dim: string;
|
|
27
|
+
};
|
|
28
|
+
export type Detail = {
|
|
29
|
+
readonly type: 'plain';
|
|
30
|
+
readonly segments: readonly Segment[];
|
|
31
|
+
} | {
|
|
32
|
+
readonly type: 'docs';
|
|
33
|
+
readonly url: DocsUrl;
|
|
34
|
+
};
|
|
35
|
+
export declare function renderPlain(c: FramedContent): string;
|
|
36
|
+
export declare function renderPretty(c: FramedContent): string;
|
|
37
|
+
/**
|
|
38
|
+
* Base class for structured context-violation errors.
|
|
39
|
+
*
|
|
40
|
+
* Design notes:
|
|
41
|
+
*
|
|
42
|
+
* - `.message` is **plain text** (no ANSI escape bytes). Structured logs,
|
|
43
|
+
* log drains, CBOR-serialized event data, and anything else that reads
|
|
44
|
+
* `err.message` / `err.stack` as a string gets clean output — no mojibake
|
|
45
|
+
* in JSON, no `\x1B[...m` noise in Vercel logs.
|
|
46
|
+
*
|
|
47
|
+
* - The ANSI-framed version is rendered **lazily** via `toString()` and
|
|
48
|
+
* `[util.inspect.custom]`. When the error is thrown and Node prints it
|
|
49
|
+
* via `util.inspect`, the user sees the colored, framed box. When it's
|
|
50
|
+
* attached to a structured log field, the consumer sees plain text.
|
|
51
|
+
*
|
|
52
|
+
* - `fatal = true` marks these as non-retryable. Calling `createHook()`
|
|
53
|
+
* from a step function will never succeed no matter how many retries —
|
|
54
|
+
* burning attempts just produces duplicated log output. The runtime's
|
|
55
|
+
* `FatalError.is(err)` gate recognizes any error with `fatal: true`.
|
|
56
|
+
*/
|
|
57
|
+
export declare abstract class ContextViolationError extends Error {
|
|
58
|
+
#private;
|
|
59
|
+
/** Non-retryable — see class doc. */
|
|
60
|
+
readonly fatal = true;
|
|
61
|
+
constructor(content: FramedContent);
|
|
62
|
+
/**
|
|
63
|
+
* `console.log(err)` and most Node internals route through `util.inspect`,
|
|
64
|
+
* which respects this symbol. Returning a custom string here means the
|
|
65
|
+
* thrown error prints as a pretty frame in the terminal while `.message`
|
|
66
|
+
* and `.stack` stay plain.
|
|
67
|
+
*/
|
|
68
|
+
[INSPECT_CUSTOM](): string;
|
|
69
|
+
toString(): string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Thrown when an API that must run inside a workflow function is called
|
|
73
|
+
* from outside a workflow context (e.g. from a step function or from
|
|
74
|
+
* regular application code).
|
|
75
|
+
*/
|
|
76
|
+
export declare class NotInWorkflowContextError extends ContextViolationError {
|
|
77
|
+
name: string;
|
|
78
|
+
constructor(functionName: string, docsUrl: DocsUrl);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Thrown when an API that must run inside a step function is called from
|
|
82
|
+
* outside a step context.
|
|
83
|
+
*/
|
|
84
|
+
export declare class NotInStepContextError extends ContextViolationError {
|
|
85
|
+
name: string;
|
|
86
|
+
constructor(functionName: string, docsUrl: DocsUrl);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Thrown when an API that must run inside either a workflow or step function
|
|
90
|
+
* is called from regular application code.
|
|
91
|
+
*/
|
|
92
|
+
export declare class NotInWorkflowOrStepContextError extends ContextViolationError {
|
|
93
|
+
name: string;
|
|
94
|
+
constructor(functionName: string, docsUrl: DocsUrl);
|
|
95
|
+
}
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=context-violation-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-violation-error.d.ts","sourceRoot":"","sources":["../src/context-violation-error.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,WAAW,MAAM,EAAE,CAAC;AAE1C,QAAA,MAAM,cAAc,eAA2C,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GACd;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAwBrD,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAapD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,qBAAsB,SAAQ,KAAK;;IACvD,qCAAqC;IACrC,QAAQ,CAAC,KAAK,QAAQ;gBAIV,OAAO,EAAE,aAAa;IAKlC;;;;;OAKG;IACH,CAAC,cAAc,CAAC,IAAI,MAAM;IAgB1B,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,IAAI,SAA+B;gBAEvB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;IAC9D,IAAI,SAA2B;gBAEnB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,qBAAqB;IACxE,IAAI,SAAqC;gBAE7B,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import * as Ansi from '@workflow/errors/ansi';
|
|
2
|
+
const INSPECT_CUSTOM = Symbol.for('nodejs.util.inspect.custom');
|
|
3
|
+
function renderSegmentPlain(s) {
|
|
4
|
+
if ('code' in s)
|
|
5
|
+
return `\`${s.code}\``;
|
|
6
|
+
if ('dim' in s)
|
|
7
|
+
return s.dim;
|
|
8
|
+
return s.text;
|
|
9
|
+
}
|
|
10
|
+
function renderSegmentPretty(s) {
|
|
11
|
+
if ('code' in s)
|
|
12
|
+
return Ansi.code(s.code);
|
|
13
|
+
if ('dim' in s)
|
|
14
|
+
return Ansi.dim(s.dim);
|
|
15
|
+
return s.text;
|
|
16
|
+
}
|
|
17
|
+
function renderDetailPlain(d) {
|
|
18
|
+
if (d.type === 'docs')
|
|
19
|
+
return `docs: ${d.url}`;
|
|
20
|
+
return d.segments.map(renderSegmentPlain).join('');
|
|
21
|
+
}
|
|
22
|
+
function renderDetailPretty(d) {
|
|
23
|
+
if (d.type === 'docs')
|
|
24
|
+
return Ansi.docs(d.url);
|
|
25
|
+
return d.segments.map(renderSegmentPretty).join('');
|
|
26
|
+
}
|
|
27
|
+
export function renderPlain(c) {
|
|
28
|
+
// Mimic `Ansi.frame` structure so `.message` is still readable in logs
|
|
29
|
+
// even without the color.
|
|
30
|
+
const title = c.title.map(renderSegmentPlain).join('');
|
|
31
|
+
const lines = [title];
|
|
32
|
+
c.details.forEach((detail, index) => {
|
|
33
|
+
const isLast = index === c.details.length - 1;
|
|
34
|
+
const first = isLast ? '╰▶ ' : '├▶ ';
|
|
35
|
+
const cont = isLast ? ' ' : '│ ';
|
|
36
|
+
const raw = renderDetailPlain(detail).split('\n');
|
|
37
|
+
raw.forEach((line, i) => lines.push(`${i === 0 ? first : cont}${line}`));
|
|
38
|
+
});
|
|
39
|
+
return lines.join('\n');
|
|
40
|
+
}
|
|
41
|
+
export function renderPretty(c) {
|
|
42
|
+
const title = c.title.map(renderSegmentPretty).join('');
|
|
43
|
+
return Ansi.frame(title, c.details.map(renderDetailPretty));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Base class for structured context-violation errors.
|
|
47
|
+
*
|
|
48
|
+
* Design notes:
|
|
49
|
+
*
|
|
50
|
+
* - `.message` is **plain text** (no ANSI escape bytes). Structured logs,
|
|
51
|
+
* log drains, CBOR-serialized event data, and anything else that reads
|
|
52
|
+
* `err.message` / `err.stack` as a string gets clean output — no mojibake
|
|
53
|
+
* in JSON, no `\x1B[...m` noise in Vercel logs.
|
|
54
|
+
*
|
|
55
|
+
* - The ANSI-framed version is rendered **lazily** via `toString()` and
|
|
56
|
+
* `[util.inspect.custom]`. When the error is thrown and Node prints it
|
|
57
|
+
* via `util.inspect`, the user sees the colored, framed box. When it's
|
|
58
|
+
* attached to a structured log field, the consumer sees plain text.
|
|
59
|
+
*
|
|
60
|
+
* - `fatal = true` marks these as non-retryable. Calling `createHook()`
|
|
61
|
+
* from a step function will never succeed no matter how many retries —
|
|
62
|
+
* burning attempts just produces duplicated log output. The runtime's
|
|
63
|
+
* `FatalError.is(err)` gate recognizes any error with `fatal: true`.
|
|
64
|
+
*/
|
|
65
|
+
export class ContextViolationError extends Error {
|
|
66
|
+
/** Non-retryable — see class doc. */
|
|
67
|
+
fatal = true;
|
|
68
|
+
#content;
|
|
69
|
+
constructor(content) {
|
|
70
|
+
super(renderPlain(content));
|
|
71
|
+
this.#content = content;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* `console.log(err)` and most Node internals route through `util.inspect`,
|
|
75
|
+
* which respects this symbol. Returning a custom string here means the
|
|
76
|
+
* thrown error prints as a pretty frame in the terminal while `.message`
|
|
77
|
+
* and `.stack` stay plain.
|
|
78
|
+
*/
|
|
79
|
+
[INSPECT_CUSTOM]() {
|
|
80
|
+
const pretty = renderPretty(this.#content);
|
|
81
|
+
// `stack` starts with `${name}: ${message}\n at ...`. Our message is
|
|
82
|
+
// multi-line (`title\n╰▶ docs: …`), so slicing only the first line glues
|
|
83
|
+
// the framed-detail tail of the message onto the prepended pretty form
|
|
84
|
+
// and renders every detail line twice. Slice past *all* message lines.
|
|
85
|
+
const messageLineCount = this.message.split('\n').length;
|
|
86
|
+
const tail = (this.stack ?? '')
|
|
87
|
+
.split('\n')
|
|
88
|
+
.slice(messageLineCount)
|
|
89
|
+
.join('\n');
|
|
90
|
+
return tail
|
|
91
|
+
? `${this.name}: ${pretty}\n${tail}`
|
|
92
|
+
: `${this.name}: ${pretty}`;
|
|
93
|
+
}
|
|
94
|
+
toString() {
|
|
95
|
+
return `${this.name}: ${renderPretty(this.#content)}`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Thrown when an API that must run inside a workflow function is called
|
|
100
|
+
* from outside a workflow context (e.g. from a step function or from
|
|
101
|
+
* regular application code).
|
|
102
|
+
*/
|
|
103
|
+
export class NotInWorkflowContextError extends ContextViolationError {
|
|
104
|
+
name = 'NotInWorkflowContextError';
|
|
105
|
+
constructor(functionName, docsUrl) {
|
|
106
|
+
super({
|
|
107
|
+
title: [
|
|
108
|
+
{ code: functionName },
|
|
109
|
+
{ text: ' can only be called inside a workflow function' },
|
|
110
|
+
],
|
|
111
|
+
details: [{ type: 'docs', url: docsUrl }],
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Thrown when an API that must run inside a step function is called from
|
|
117
|
+
* outside a step context.
|
|
118
|
+
*/
|
|
119
|
+
export class NotInStepContextError extends ContextViolationError {
|
|
120
|
+
name = 'NotInStepContextError';
|
|
121
|
+
constructor(functionName, docsUrl) {
|
|
122
|
+
super({
|
|
123
|
+
title: [
|
|
124
|
+
{ code: functionName },
|
|
125
|
+
{ text: ' can only be called inside a step function' },
|
|
126
|
+
],
|
|
127
|
+
details: [{ type: 'docs', url: docsUrl }],
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Thrown when an API that must run inside either a workflow or step function
|
|
133
|
+
* is called from regular application code.
|
|
134
|
+
*/
|
|
135
|
+
export class NotInWorkflowOrStepContextError extends ContextViolationError {
|
|
136
|
+
name = 'NotInWorkflowOrStepContextError';
|
|
137
|
+
constructor(functionName, docsUrl) {
|
|
138
|
+
super({
|
|
139
|
+
title: [
|
|
140
|
+
{ code: functionName },
|
|
141
|
+
{ text: ' can only be called inside a workflow or step function' },
|
|
142
|
+
],
|
|
143
|
+
details: [{ type: 'docs', url: docsUrl }],
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12aW9sYXRpb24tZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dC12aW9sYXRpb24tZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSx1QkFBdUIsQ0FBQztBQVE5QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUEwQmhFLFNBQVMsa0JBQWtCLENBQUMsQ0FBVTtJQUNwQyxJQUFJLE1BQU0sSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN4QyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxDQUFVO0lBQ3JDLElBQUksTUFBTSxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxDQUFTO0lBQ2xDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLENBQVM7SUFDbkMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsQ0FBZ0I7SUFDMUMsdUVBQXVFO0lBQ3ZFLDBCQUEwQjtJQUMxQixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFnQjtJQUMzQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLEtBQUs7SUFDdkQscUNBQXFDO0lBQzVCLEtBQUssR0FBRyxJQUFJLENBQUM7SUFFYixRQUFRLENBQWdCO0lBRWpDLFlBQVksT0FBc0I7UUFDaEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILENBQUMsY0FBYyxDQUFDO1FBQ2QsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyx3RUFBd0U7UUFDeEUseUVBQXlFO1FBQ3pFLHVFQUF1RTtRQUN2RSx1RUFBdUU7UUFDdkUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQzthQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsS0FBSyxDQUFDLGdCQUFnQixDQUFDO2FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNkLE9BQU8sSUFBSTtZQUNULENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxLQUFLLElBQUksRUFBRTtZQUNwQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEscUJBQXFCO0lBQ2xFLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUVuQyxZQUFZLFlBQW9CLEVBQUUsT0FBZ0I7UUFDaEQsS0FBSyxDQUFDO1lBQ0osS0FBSyxFQUFFO2dCQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDdEIsRUFBRSxJQUFJLEVBQUUsZ0RBQWdELEVBQUU7YUFDM0Q7WUFDRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxxQkFBcUI7SUFDOUQsSUFBSSxHQUFHLHVCQUF1QixDQUFDO0lBRS9CLFlBQVksWUFBb0IsRUFBRSxPQUFnQjtRQUNoRCxLQUFLLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUN0QixFQUFFLElBQUksRUFBRSw0Q0FBNEMsRUFBRTthQUN2RDtZQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHFCQUFxQjtJQUN4RSxJQUFJLEdBQUcsaUNBQWlDLENBQUM7SUFFekMsWUFBWSxZQUFvQixFQUFFLE9BQWdCO1FBQ2hELEtBQUssQ0FBQztZQUNKLEtBQUssRUFBRTtnQkFDTCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7Z0JBQ3RCLEVBQUUsSUFBSSxFQUFFLHdEQUF3RCxFQUFFO2FBQ25FO1lBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBBbnNpIGZyb20gJ0B3b3JrZmxvdy9lcnJvcnMvYW5zaSc7XG5cbi8qKlxuICogQSBgZG9jczpgIGxpbmUgVVJMLiBUaGUgbGVhZGluZyBwcm90b2NvbCBpcyBwYXJ0IG9mIHRoZSB0eXBlIHNvIGNhbGwgc2l0ZXNcbiAqIGNhbid0IGFjY2lkZW50YWxseSBwYXNzIGEgcHJvdG9jb2wtcmVsYXRpdmUgb3IgYmFyZSBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBEb2NzVXJsID0gYGh0dHBzOi8vJHtzdHJpbmd9YDtcblxuY29uc3QgSU5TUEVDVF9DVVNUT00gPSBTeW1ib2wuZm9yKCdub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbScpO1xuXG4vKipcbiAqIFN0cnVjdHVyZWQgZGF0YSBmb3IgYSBmcmFtZWQgZXJyb3IuIFRoZSBiYXNlIGNsYXNzIHRha2VzIHRoaXMgYW5kIHJlbmRlcnNcbiAqIGl0IHRvIHBsYWluIHRleHQgKGZvciBgLm1lc3NhZ2VgIC8gYC5zdGFja2AgLyBzdHJ1Y3R1cmVkIGxvZ3MpIG9yIHRvIGFuXG4gKiBBTlNJLWZyYW1lZCBzdHJpbmcgKGZvciB0ZXJtaW5hbCBkaXNwbGF5IHZpYSBgdXRpbC5pbnNwZWN0YCAvIGB0b1N0cmluZ2ApLlxuICpcbiAqIEtlZXBpbmcgdGhlIHBpZWNlcyBzdHJ1Y3R1cmVkIG1lYW5zIHdlIG5ldmVyIGhhdmUgdG8gc3RyaXAgQU5TSSBiYWNrIG91dFxuICogb25jZSBpdCdzIGluIHRoZSBtZXNzYWdlIOKAlCB3ZSBqdXN0IGRvbid0IHB1dCBpdCB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJhbWVkQ29udGVudCB7XG4gIC8qKiBIZWFkbGluZS4gYHsgY29kZTogJ2ZvbygpJyB9YCBzZWdtZW50cyByZW5kZXIgYXMgYmFja3RpY2tlZCBpbmxpbmUgY29kZS4gKi9cbiAgcmVhZG9ubHkgdGl0bGU6IHJlYWRvbmx5IFNlZ21lbnRbXTtcbiAgLyoqIE9uZSBmcmFtZWQgYnJhbmNoIHBlciBlbnRyeS4gVGhlIGxhc3QgdXNlcyBg4pWw4pa2YCwgb3RoZXJzIHVzZSBg4pSc4pa2YC4gKi9cbiAgcmVhZG9ubHkgZGV0YWlsczogcmVhZG9ubHkgRGV0YWlsW107XG59XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnQgPVxuICB8IHsgcmVhZG9ubHkgdGV4dDogc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IGNvZGU6IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBkaW06IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBEZXRhaWwgPVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ3BsYWluJzsgcmVhZG9ubHkgc2VnbWVudHM6IHJlYWRvbmx5IFNlZ21lbnRbXSB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnZG9jcyc7IHJlYWRvbmx5IHVybDogRG9jc1VybCB9O1xuXG5mdW5jdGlvbiByZW5kZXJTZWdtZW50UGxhaW4oczogU2VnbWVudCk6IHN0cmluZyB7XG4gIGlmICgnY29kZScgaW4gcykgcmV0dXJuIGBcXGAke3MuY29kZX1cXGBgO1xuICBpZiAoJ2RpbScgaW4gcykgcmV0dXJuIHMuZGltO1xuICByZXR1cm4gcy50ZXh0O1xufVxuXG5mdW5jdGlvbiByZW5kZXJTZWdtZW50UHJldHR5KHM6IFNlZ21lbnQpOiBzdHJpbmcge1xuICBpZiAoJ2NvZGUnIGluIHMpIHJldHVybiBBbnNpLmNvZGUocy5jb2RlKTtcbiAgaWYgKCdkaW0nIGluIHMpIHJldHVybiBBbnNpLmRpbShzLmRpbSk7XG4gIHJldHVybiBzLnRleHQ7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckRldGFpbFBsYWluKGQ6IERldGFpbCk6IHN0cmluZyB7XG4gIGlmIChkLnR5cGUgPT09ICdkb2NzJykgcmV0dXJuIGBkb2NzOiAke2QudXJsfWA7XG4gIHJldHVybiBkLnNlZ21lbnRzLm1hcChyZW5kZXJTZWdtZW50UGxhaW4pLmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJEZXRhaWxQcmV0dHkoZDogRGV0YWlsKTogc3RyaW5nIHtcbiAgaWYgKGQudHlwZSA9PT0gJ2RvY3MnKSByZXR1cm4gQW5zaS5kb2NzKGQudXJsKTtcbiAgcmV0dXJuIGQuc2VnbWVudHMubWFwKHJlbmRlclNlZ21lbnRQcmV0dHkpLmpvaW4oJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyUGxhaW4oYzogRnJhbWVkQ29udGVudCk6IHN0cmluZyB7XG4gIC8vIE1pbWljIGBBbnNpLmZyYW1lYCBzdHJ1Y3R1cmUgc28gYC5tZXNzYWdlYCBpcyBzdGlsbCByZWFkYWJsZSBpbiBsb2dzXG4gIC8vIGV2ZW4gd2l0aG91dCB0aGUgY29sb3IuXG4gIGNvbnN0IHRpdGxlID0gYy50aXRsZS5tYXAocmVuZGVyU2VnbWVudFBsYWluKS5qb2luKCcnKTtcbiAgY29uc3QgbGluZXMgPSBbdGl0bGVdO1xuICBjLmRldGFpbHMuZm9yRWFjaCgoZGV0YWlsLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGlzTGFzdCA9IGluZGV4ID09PSBjLmRldGFpbHMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBmaXJzdCA9IGlzTGFzdCA/ICfilbDilrYgJyA6ICfilJzilrYgJztcbiAgICBjb25zdCBjb250ID0gaXNMYXN0ID8gJyAgICcgOiAn4pSCICAnO1xuICAgIGNvbnN0IHJhdyA9IHJlbmRlckRldGFpbFBsYWluKGRldGFpbCkuc3BsaXQoJ1xcbicpO1xuICAgIHJhdy5mb3JFYWNoKChsaW5lLCBpKSA9PiBsaW5lcy5wdXNoKGAke2kgPT09IDAgPyBmaXJzdCA6IGNvbnR9JHtsaW5lfWApKTtcbiAgfSk7XG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclByZXR0eShjOiBGcmFtZWRDb250ZW50KTogc3RyaW5nIHtcbiAgY29uc3QgdGl0bGUgPSBjLnRpdGxlLm1hcChyZW5kZXJTZWdtZW50UHJldHR5KS5qb2luKCcnKTtcbiAgcmV0dXJuIEFuc2kuZnJhbWUodGl0bGUsIGMuZGV0YWlscy5tYXAocmVuZGVyRGV0YWlsUHJldHR5KSk7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igc3RydWN0dXJlZCBjb250ZXh0LXZpb2xhdGlvbiBlcnJvcnMuXG4gKlxuICogRGVzaWduIG5vdGVzOlxuICpcbiAqIC0gYC5tZXNzYWdlYCBpcyAqKnBsYWluIHRleHQqKiAobm8gQU5TSSBlc2NhcGUgYnl0ZXMpLiBTdHJ1Y3R1cmVkIGxvZ3MsXG4gKiAgIGxvZyBkcmFpbnMsIENCT1Itc2VyaWFsaXplZCBldmVudCBkYXRhLCBhbmQgYW55dGhpbmcgZWxzZSB0aGF0IHJlYWRzXG4gKiAgIGBlcnIubWVzc2FnZWAgLyBgZXJyLnN0YWNrYCBhcyBhIHN0cmluZyBnZXRzIGNsZWFuIG91dHB1dCDigJQgbm8gbW9qaWJha2VcbiAqICAgaW4gSlNPTiwgbm8gYFxceDFCWy4uLm1gIG5vaXNlIGluIFZlcmNlbCBsb2dzLlxuICpcbiAqIC0gVGhlIEFOU0ktZnJhbWVkIHZlcnNpb24gaXMgcmVuZGVyZWQgKipsYXppbHkqKiB2aWEgYHRvU3RyaW5nKClgIGFuZFxuICogICBgW3V0aWwuaW5zcGVjdC5jdXN0b21dYC4gV2hlbiB0aGUgZXJyb3IgaXMgdGhyb3duIGFuZCBOb2RlIHByaW50cyBpdFxuICogICB2aWEgYHV0aWwuaW5zcGVjdGAsIHRoZSB1c2VyIHNlZXMgdGhlIGNvbG9yZWQsIGZyYW1lZCBib3guIFdoZW4gaXQnc1xuICogICBhdHRhY2hlZCB0byBhIHN0cnVjdHVyZWQgbG9nIGZpZWxkLCB0aGUgY29uc3VtZXIgc2VlcyBwbGFpbiB0ZXh0LlxuICpcbiAqIC0gYGZhdGFsID0gdHJ1ZWAgbWFya3MgdGhlc2UgYXMgbm9uLXJldHJ5YWJsZS4gQ2FsbGluZyBgY3JlYXRlSG9vaygpYFxuICogICBmcm9tIGEgc3RlcCBmdW5jdGlvbiB3aWxsIG5ldmVyIHN1Y2NlZWQgbm8gbWF0dGVyIGhvdyBtYW55IHJldHJpZXMg4oCUXG4gKiAgIGJ1cm5pbmcgYXR0ZW1wdHMganVzdCBwcm9kdWNlcyBkdXBsaWNhdGVkIGxvZyBvdXRwdXQuIFRoZSBydW50aW1lJ3NcbiAqICAgYEZhdGFsRXJyb3IuaXMoZXJyKWAgZ2F0ZSByZWNvZ25pemVzIGFueSBlcnJvciB3aXRoIGBmYXRhbDogdHJ1ZWAuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZXh0VmlvbGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKiBOb24tcmV0cnlhYmxlIOKAlCBzZWUgY2xhc3MgZG9jLiAqL1xuICByZWFkb25seSBmYXRhbCA9IHRydWU7XG5cbiAgcmVhZG9ubHkgI2NvbnRlbnQ6IEZyYW1lZENvbnRlbnQ7XG5cbiAgY29uc3RydWN0b3IoY29udGVudDogRnJhbWVkQ29udGVudCkge1xuICAgIHN1cGVyKHJlbmRlclBsYWluKGNvbnRlbnQpKTtcbiAgICB0aGlzLiNjb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBgY29uc29sZS5sb2coZXJyKWAgYW5kIG1vc3QgTm9kZSBpbnRlcm5hbHMgcm91dGUgdGhyb3VnaCBgdXRpbC5pbnNwZWN0YCxcbiAgICogd2hpY2ggcmVzcGVjdHMgdGhpcyBzeW1ib2wuIFJldHVybmluZyBhIGN1c3RvbSBzdHJpbmcgaGVyZSBtZWFucyB0aGVcbiAgICogdGhyb3duIGVycm9yIHByaW50cyBhcyBhIHByZXR0eSBmcmFtZSBpbiB0aGUgdGVybWluYWwgd2hpbGUgYC5tZXNzYWdlYFxuICAgKiBhbmQgYC5zdGFja2Agc3RheSBwbGFpbi5cbiAgICovXG4gIFtJTlNQRUNUX0NVU1RPTV0oKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmV0dHkgPSByZW5kZXJQcmV0dHkodGhpcy4jY29udGVudCk7XG4gICAgLy8gYHN0YWNrYCBzdGFydHMgd2l0aCBgJHtuYW1lfTogJHttZXNzYWdlfVxcbiAgICBhdCAuLi5gLiBPdXIgbWVzc2FnZSBpc1xuICAgIC8vIG11bHRpLWxpbmUgKGB0aXRsZVxcbuKVsOKWtiBkb2NzOiDigKZgKSwgc28gc2xpY2luZyBvbmx5IHRoZSBmaXJzdCBsaW5lIGdsdWVzXG4gICAgLy8gdGhlIGZyYW1lZC1kZXRhaWwgdGFpbCBvZiB0aGUgbWVzc2FnZSBvbnRvIHRoZSBwcmVwZW5kZWQgcHJldHR5IGZvcm1cbiAgICAvLyBhbmQgcmVuZGVycyBldmVyeSBkZXRhaWwgbGluZSB0d2ljZS4gU2xpY2UgcGFzdCAqYWxsKiBtZXNzYWdlIGxpbmVzLlxuICAgIGNvbnN0IG1lc3NhZ2VMaW5lQ291bnQgPSB0aGlzLm1lc3NhZ2Uuc3BsaXQoJ1xcbicpLmxlbmd0aDtcbiAgICBjb25zdCB0YWlsID0gKHRoaXMuc3RhY2sgPz8gJycpXG4gICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAuc2xpY2UobWVzc2FnZUxpbmVDb3VudClcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gdGFpbFxuICAgICAgPyBgJHt0aGlzLm5hbWV9OiAke3ByZXR0eX1cXG4ke3RhaWx9YFxuICAgICAgOiBgJHt0aGlzLm5hbWV9OiAke3ByZXR0eX1gO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfTogJHtyZW5kZXJQcmV0dHkodGhpcy4jY29udGVudCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IG11c3QgcnVuIGluc2lkZSBhIHdvcmtmbG93IGZ1bmN0aW9uIGlzIGNhbGxlZFxuICogZnJvbSBvdXRzaWRlIGEgd29ya2Zsb3cgY29udGV4dCAoZS5nLiBmcm9tIGEgc3RlcCBmdW5jdGlvbiBvciBmcm9tXG4gKiByZWd1bGFyIGFwcGxpY2F0aW9uIGNvZGUpLlxuICovXG5leHBvcnQgY2xhc3MgTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvciBleHRlbmRzIENvbnRleHRWaW9sYXRpb25FcnJvciB7XG4gIG5hbWUgPSAnTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoZnVuY3Rpb25OYW1lOiBzdHJpbmcsIGRvY3NVcmw6IERvY3NVcmwpIHtcbiAgICBzdXBlcih7XG4gICAgICB0aXRsZTogW1xuICAgICAgICB7IGNvZGU6IGZ1bmN0aW9uTmFtZSB9LFxuICAgICAgICB7IHRleHQ6ICcgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBhIHdvcmtmbG93IGZ1bmN0aW9uJyB9LFxuICAgICAgXSxcbiAgICAgIGRldGFpbHM6IFt7IHR5cGU6ICdkb2NzJywgdXJsOiBkb2NzVXJsIH1dLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhyb3duIHdoZW4gYW4gQVBJIHRoYXQgbXVzdCBydW4gaW5zaWRlIGEgc3RlcCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbVxuICogb3V0c2lkZSBhIHN0ZXAgY29udGV4dC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vdEluU3RlcENvbnRleHRFcnJvciBleHRlbmRzIENvbnRleHRWaW9sYXRpb25FcnJvciB7XG4gIG5hbWUgPSAnTm90SW5TdGVwQ29udGV4dEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihmdW5jdGlvbk5hbWU6IHN0cmluZywgZG9jc1VybDogRG9jc1VybCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHRpdGxlOiBbXG4gICAgICAgIHsgY29kZTogZnVuY3Rpb25OYW1lIH0sXG4gICAgICAgIHsgdGV4dDogJyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgc3RlcCBmdW5jdGlvbicgfSxcbiAgICAgIF0sXG4gICAgICBkZXRhaWxzOiBbeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9XSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IG11c3QgcnVuIGluc2lkZSBlaXRoZXIgYSB3b3JrZmxvdyBvciBzdGVwIGZ1bmN0aW9uXG4gKiBpcyBjYWxsZWQgZnJvbSByZWd1bGFyIGFwcGxpY2F0aW9uIGNvZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yIGV4dGVuZHMgQ29udGV4dFZpb2xhdGlvbkVycm9yIHtcbiAgbmFtZSA9ICdOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihmdW5jdGlvbk5hbWU6IHN0cmluZywgZG9jc1VybDogRG9jc1VybCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHRpdGxlOiBbXG4gICAgICAgIHsgY29kZTogZnVuY3Rpb25OYW1lIH0sXG4gICAgICAgIHsgdGV4dDogJyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgd29ya2Zsb3cgb3Igc3RlcCBmdW5jdGlvbicgfSxcbiAgICAgIF0sXG4gICAgICBkZXRhaWxzOiBbeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9XSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/dist/create-hook.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Run } from './runtime/run.js';
|
|
1
2
|
import type { Serializable } from './schemas.js';
|
|
2
3
|
/**
|
|
3
4
|
* An object that can be awaited to receive a value.
|
|
@@ -24,6 +25,42 @@ export interface Hook<T = any> extends AsyncIterable<T>, Thenable<T> {
|
|
|
24
25
|
* The token used to identify this hook.
|
|
25
26
|
*/
|
|
26
27
|
token: string;
|
|
28
|
+
/**
|
|
29
|
+
* Returns a promise that resolves with the conflicting {@link Run} if
|
|
30
|
+
* another active hook already owns this hook's token, or `null` once
|
|
31
|
+
* the hook has been registered and is ready to receive payloads.
|
|
32
|
+
*
|
|
33
|
+
* Calling `createHook()` alone does not register the hook — registration
|
|
34
|
+
* only happens when the workflow suspends. Awaiting `getConflict()`
|
|
35
|
+
* suspends the workflow to commit the hook registration, so it can be
|
|
36
|
+
* used to claim the token (and detect token conflicts early) without
|
|
37
|
+
* waiting for payload data.
|
|
38
|
+
*
|
|
39
|
+
* When a conflict is detected, the resolved `Run` is the run that
|
|
40
|
+
* currently owns the token. The workflow can decide how to handle the
|
|
41
|
+
* duplicate in code: return or log `conflict.runId`, inspect
|
|
42
|
+
* `await conflict.status`, await `conflict.returnValue`, or cancel the
|
|
43
|
+
* owner with `await conflict.cancel()` and continue in the current run.
|
|
44
|
+
*
|
|
45
|
+
* Note that awaiting the hook's payload (`await hook`) when the token is
|
|
46
|
+
* already owned by another active hook still rejects with
|
|
47
|
+
* `HookConflictError`. In the rare case where the conflicting run cannot
|
|
48
|
+
* be identified (a `hook_conflict` event persisted by an old world that
|
|
49
|
+
* did not record the owning run's ID), `getConflict()` also rejects with
|
|
50
|
+
* `HookConflictError` rather than resolving with an incomplete value.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* using hook = createHook({ token: `order:${orderId}` });
|
|
55
|
+
* const conflict = await hook.getConflict();
|
|
56
|
+
* if (conflict) {
|
|
57
|
+
* // another run already owns this token
|
|
58
|
+
* return { dedupedTo: conflict.runId };
|
|
59
|
+
* }
|
|
60
|
+
* // token is now claimed, without waiting for payload data
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
getConflict(): Promise<Run<unknown> | null>;
|
|
27
64
|
/**
|
|
28
65
|
* Disposes the hook, releasing its token for reuse by other workflows.
|
|
29
66
|
*
|
|
@@ -86,7 +123,9 @@ export interface HookOptions {
|
|
|
86
123
|
* tokens are always randomly generated to prevent unauthorized access
|
|
87
124
|
* to the public webhook endpoint.
|
|
88
125
|
*
|
|
89
|
-
* If
|
|
126
|
+
* If provided, the token must be a non-empty string; passing an empty
|
|
127
|
+
* string throws. If not provided (or `undefined`), a randomly generated
|
|
128
|
+
* token will be assigned.
|
|
90
129
|
*
|
|
91
130
|
* @example
|
|
92
131
|
*
|
|
@@ -117,8 +156,8 @@ export interface HookOptions {
|
|
|
117
156
|
* Whether this hook can be resumed via the public webhook endpoint.
|
|
118
157
|
*
|
|
119
158
|
* When `true`, the hook can be triggered by sending an HTTP request to the
|
|
120
|
-
* public
|
|
121
|
-
*
|
|
159
|
+
* public workflow webhook URL. This is automatically set when using
|
|
160
|
+
* `createWebhook()`.
|
|
122
161
|
*
|
|
123
162
|
* When `false` (the default), the hook can only be resumed server-side
|
|
124
163
|
* via `resumeHook()`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-hook.d.ts","sourceRoot":"","sources":["../src/create-hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-hook.d.ts","sourceRoot":"","sources":["../src/create-hook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,UAAU,QAAQ,CAAC,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;;;;;;;;;;OAYG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IACzD;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC;IAChD;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAMlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,GAClD,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAChC,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/create-hook.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { throwNotInWorkflowContext } from './context-errors.js';
|
|
1
2
|
/**
|
|
2
3
|
* Creates a {@link Hook} that can be used to suspend and resume the workflow run with a payload.
|
|
3
4
|
*
|
|
@@ -22,11 +23,11 @@
|
|
|
22
23
|
*/
|
|
23
24
|
// @ts-expect-error `options` is here for types/docs
|
|
24
25
|
export function createHook(options) {
|
|
25
|
-
|
|
26
|
+
throwNotInWorkflowContext('createHook()', 'https://workflow-sdk.dev/docs/api-reference/workflow/create-hook', createHook);
|
|
26
27
|
}
|
|
27
28
|
export function createWebhook(
|
|
28
29
|
// @ts-expect-error `options` is here for types/docs
|
|
29
30
|
options) {
|
|
30
|
-
|
|
31
|
+
throwNotInWorkflowContext('createWebhook()', 'https://workflow-sdk.dev/docs/api-reference/workflow/create-webhook', createWebhook);
|
|
31
32
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlLWhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkpBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLFVBQVUsQ0FBVSxPQUFxQjtJQUN2RCxNQUFNLElBQUksS0FBSyxDQUNiLDhEQUE4RCxDQUMvRCxDQUFDO0FBQ0osQ0FBQztBQWFELE1BQU0sVUFBVSxhQUFhO0FBQzNCLG9EQUFvRDtBQUNwRCxPQUF3QjtJQUV4QixNQUFNLElBQUksS0FBSyxDQUNiLGlFQUFpRSxDQUNsRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VyaWFsaXphYmxlIH0gZnJvbSAnLi9zY2hlbWFzLmpzJztcblxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBjYW4gYmUgYXdhaXRlZCB0byByZWNlaXZlIGEgdmFsdWUuXG4gKi9cbmludGVyZmFjZSBUaGVuYWJsZTxUPiB7XG4gIHRoZW46IFByb21pc2U8VD5bJ3RoZW4nXTtcbn1cblxuLyoqXG4gKiBBIGBSZXF1ZXN0YCB0aGF0IGNhbiBiZSByZXNwb25kZWQgdG8gd2l0aGluIGEgd29ya2Zsb3dcbiAqIHN0ZXAgZnVuY3Rpb24gYnkgY2FsbGluZyB0aGUgYHJlc3BvbmRXaXRoKClgIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0V2l0aFJlc3BvbnNlIGV4dGVuZHMgUmVxdWVzdCB7XG4gIHJlc3BvbmRXaXRoOiAocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEEgaG9vayB0aGF0IGNhbiBiZSBhd2FpdGVkIGFuZC9vciBpdGVyYXRlZCBvdmVyIHRvIHJlY2VpdmVcbiAqIGEgdmFsdWUgd2l0aGluIGEgd29ya2Zsb3cgZnJvbSBhbiBleHRlcm5hbCBzeXN0ZW0uXG4gKlxuICogSG9va3MgaW1wbGVtZW50IHRoZSBUQzM5IEV4cGxpY2l0IFJlc291cmNlIE1hbmFnZW1lbnQgcHJvcG9zYWwsXG4gKiBhbGxvd2luZyB0aGVtIHRvIGJlIHVzZWQgd2l0aCB0aGUgYHVzaW5nYCBrZXl3b3JkIGZvciBhdXRvbWF0aWMgZGlzcG9zYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9vazxUID0gYW55PiBleHRlbmRzIEFzeW5jSXRlcmFibGU8VD4sIFRoZW5hYmxlPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0b2tlbiB1c2VkIHRvIGlkZW50aWZ5IHRoaXMgaG9vay5cbiAgICovXG4gIHRva2VuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc3Bvc2VzIHRoZSBob29rLCByZWxlYXNpbmcgaXRzIHRva2VuIGZvciByZXVzZSBieSBvdGhlciB3b3JrZmxvd3MuXG4gICAqXG4gICAqIEFmdGVyIGNhbGxpbmcgYGRpc3Bvc2UoKWAsIHRoZSBob29rIHdpbGwgbm8gbG9uZ2VyIHJlY2VpdmUgYW55IGV2ZW50cy5cbiAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBleHBsaWNpdGx5IHJlbGVhc2UgYSBob29rIHRva2VuIGJlZm9yZVxuICAgKiB0aGUgd29ya2Zsb3cgY29tcGxldGVzLCBhbGxvd2luZyBhbm90aGVyIHdvcmtmbG93IHRvIHJlZ2lzdGVyIGEgaG9va1xuICAgKiB3aXRoIHRoZSBzYW1lIHRva2VuLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBob29rID0gY3JlYXRlSG9vazx7IG1lc3NhZ2U6IHN0cmluZyB9Pih7IHRva2VuOiAnbXktdG9rZW4nIH0pO1xuICAgKlxuICAgKiBmb3IgYXdhaXQgKGNvbnN0IHBheWxvYWQgb2YgaG9vaykge1xuICAgKiAgIGlmIChwYXlsb2FkLm1lc3NhZ2UgPT09ICdkb25lJykge1xuICAgKiAgICAgaG9vay5kaXNwb3NlKCk7IC8vIFJlbGVhc2UgdGhlIHRva2VuIGVhcmx5XG4gICAqICAgICBicmVhaztcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBkaXNwb3NlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudHMgdGhlIFRDMzkgRXhwbGljaXQgUmVzb3VyY2UgTWFuYWdlbWVudCBwcm9wb3NhbC5cbiAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB1c2luZyB0aGUgYHVzaW5nYCBrZXl3b3JkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiB7XG4gICAqICAgdXNpbmcgaG9vayA9IGNyZWF0ZUhvb2s8eyBtZXNzYWdlOiBzdHJpbmcgfT4oeyB0b2tlbjogJ215LXRva2VuJyB9KTtcbiAgICogICBjb25zdCBwYXlsb2FkID0gYXdhaXQgaG9vaztcbiAgICogICAvLyBob29rIGlzIGF1dG9tYXRpY2FsbHkgZGlzcG9zZWQgd2hlbiB0aGUgYmxvY2sgZXhpdHNcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIFtTeW1ib2wuZGlzcG9zZV0oKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHdlYmhvb2sgdGhhdCBjYW4gYmUgdXNlZCB0byBzdXNwZW5kIGFuZCByZXN1bWUgdGhlIHdvcmtmbG93IHJ1blxuICogdXBvbiByZWNlaXZpbmcgYW4gSFRUUCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxuICpcbiAqIEBzZWUge0BsaW5rIGNyZWF0ZVdlYmhvb2t9XG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXF1ZXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2ViaG9vazxUIGV4dGVuZHMgUmVxdWVzdD4gZXh0ZW5kcyBIb29rPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBVUkwgdGhhdCBleHRlcm5hbCBzeXN0ZW1zIGNhbiBjYWxsIHRvIHNlbmQgZGF0YSB0byB0aGUgd29ya2Zsb3cuXG4gICAqL1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb29rT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVbmlxdWUgdG9rZW4gdGhhdCBpcyB1c2VkIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBob29rLlxuICAgKlxuICAgKiBXaGVuIHNwZWNpZnlpbmcgYW4gZXhwbGljaXQgdG9rZW4sIHRoZSB0b2tlbiBzaG91bGQgYmUgY29uc3RydWN0ZWRcbiAgICogd2l0aCBpbmZvcm1hdGlvbiB0aGF0IHRoZSBkaXNwYXRjaGluZyBzaWRlIGNhbiByZWxpYWJseSByZWNvbnN0cnVjdFxuICAgKiB0aGUgdG9rZW4gd2l0aCB0aGUgaW5mb3JtYXRpb24gaXQgaGFzIGF2YWlsYWJsZS5cbiAgICpcbiAgICogRGV0ZXJtaW5pc3RpYyB0b2tlbnMgYXJlIGludGVuZGVkIGZvciB1c2Ugd2l0aCBgY3JlYXRlSG9vaygpYCBhbmRcbiAgICogc2VydmVyLXNpZGUgYHJlc3VtZUhvb2soKWAgb25seS4gRm9yIHdlYmhvb2tzIChgY3JlYXRlV2ViaG9vaygpYCksXG4gICAqIHRva2VucyBhcmUgYWx3YXlzIHJhbmRvbWx5IGdlbmVyYXRlZCB0byBwcmV2ZW50IHVuYXV0aG9yaXplZCBhY2Nlc3NcbiAgICogdG8gdGhlIHB1YmxpYyB3ZWJob29rIGVuZHBvaW50LlxuICAgKlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgcmFuZG9tbHkgZ2VuZXJhdGVkIHRva2VuIHdpbGwgYmUgYXNzaWduZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIEV4cGxpY2l0IHRva2VuIGZvciBhIFNsYWNrIGJvdCAob25lIHdvcmtmbG93IHJ1biBwZXIgY2hhbm5lbClcbiAgICogY29uc3QgaG9vayA9IGNyZWF0ZUhvb2s8U2xhY2tNZXNzYWdlPih7XG4gICAqICAgdG9rZW46IGBzbGFja193ZWJob29rOiR7Y2hhbm5lbElkfWAsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHRva2VuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHVzZXItZGVmaW5lZCBkYXRhIHRvIGluY2x1ZGUgd2l0aCB0aGUgaG9vayBwYXlsb2FkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBob29rID0gY3JlYXRlSG9vazx7IG5hbWU6IHN0cmluZyB9Pih7XG4gICAqICAgbWV0YWRhdGE6IHtcbiAgICogICAgIHR5cGU6IFwiY2F0XCIsXG4gICAqICAgICBjb2xvcjogXCJvcmFuZ2VcIixcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBtZXRhZGF0YT86IFNlcmlhbGl6YWJsZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGhvb2sgY2FuIGJlIHJlc3VtZWQgdmlhIHRoZSBwdWJsaWMgd2ViaG9vayBlbmRwb2ludC5cbiAgICpcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBob29rIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc2VuZGluZyBhbiBIVFRQIHJlcXVlc3QgdG8gdGhlXG4gICAqIHB1YmxpYyBgLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3dlYmhvb2sve3Rva2VufWAgVVJMLiBUaGlzIGlzIGF1dG9tYXRpY2FsbHlcbiAgICogc2V0IHdoZW4gdXNpbmcgYGNyZWF0ZVdlYmhvb2soKWAuXG4gICAqXG4gICAqIFdoZW4gYGZhbHNlYCAodGhlIGRlZmF1bHQpLCB0aGUgaG9vayBjYW4gb25seSBiZSByZXN1bWVkIHNlcnZlci1zaWRlXG4gICAqIHZpYSBgcmVzdW1lSG9vaygpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGlzV2ViaG9vaz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViaG9va09wdGlvbnNcbiAgZXh0ZW5kcyBPbWl0PEhvb2tPcHRpb25zLCAndG9rZW4nIHwgJ2lzV2ViaG9vayc+IHtcbiAgLyoqXG4gICAqIElmIHNldCB0byBhIGBSZXNwb25zZWAgb2JqZWN0LCB0aGUgd2ViaG9vayB3aWxsIGF1dG9tYXRpY2FsbHlcbiAgICogcmVzcG9uZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVzcG9uc2UuXG4gICAqXG4gICAqIElmIHNldCB0byBgXCJtYW51YWxcImAsIGVhY2ggaW5kaXZpZHVhbCByZXF1ZXN0IHdpbGwgbmVlZCB0b1xuICAgKiBiZSByZXNwb25kZWQgdG8gbWFudWFsbHkgZnJvbSB3aXRoaW4gdGhlIHdvcmtmbG93IGJ5IGNhbGxpbmcgdGhlXG4gICAqIGByZXNwb25kV2l0aCgpYCBtZXRob2QuXG4gICAqXG4gICAqIElmIG5vdCBzZXQgdGhlbiB0aGUgd2ViaG9vayB3aWxsIGF1dG9tYXRpY2FsbHkgcmVzcG9uZCB3aXRoXG4gICAqIGEgYDIwMiBBY2NlcHRlZGAgcmVzcG9uc2UuXG4gICAqL1xuICByZXNwb25kV2l0aD86IFJlc3BvbnNlIHwgJ21hbnVhbCc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtAbGluayBIb29rfSB0aGF0IGNhbiBiZSB1c2VkIHRvIHN1c3BlbmQgYW5kIHJlc3VtZSB0aGUgd29ya2Zsb3cgcnVuIHdpdGggYSBwYXlsb2FkLlxuICpcbiAqIEhvb2tzIGFsbG93IGV4dGVybmFsIHN5c3RlbXMgdG8gc2VuZCBhcmJpdHJhcnkgc2VyaWFsaXphYmxlIGRhdGEgaW50byBhIHdvcmtmbG93LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgaG9vay5cbiAqIEByZXR1cm5zIEEgYEhvb2tgIHRoYXQgY2FuIGJlIGF3YWl0ZWQgdG8gcmVjZWl2ZSBvbmUgb3IgbW9yZSBwYXlsb2Fkcy5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYHRzXG4gKiBleHBvcnQgYXN5bmMgZnVuY3Rpb24gd29ya2Zsb3dXaXRoSG9vaygpIHtcbiAqICAgXCJ1c2Ugd29ya2Zsb3dcIjtcbiAqXG4gKiAgIGNvbnN0IGhvb2sgPSBjcmVhdGVIb29rPHsgbWVzc2FnZTogc3RyaW5nIH0+KCk7XG4gKiAgIGNvbnNvbGUubG9nKCdIb29rIHRva2VuOicsIGhvb2sudG9rZW4pO1xuICpcbiAqICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IGhvb2s7XG4gKiAgIGNvbnNvbGUubG9nKCdSZWNlaXZlZDonLCBwYXlsb2FkLm1lc3NhZ2UpO1xuICogfVxuICogYGBgXG4gKi9cbi8vIEB0cy1leHBlY3QtZXJyb3IgYG9wdGlvbnNgIGlzIGhlcmUgZm9yIHR5cGVzL2RvY3NcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIb29rPFQgPSBhbnk+KG9wdGlvbnM/OiBIb29rT3B0aW9ucyk6IEhvb2s8VD4ge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ2BjcmVhdGVIb29rKClgIGNhbiBvbmx5IGJlIGNhbGxlZCBpbnNpZGUgYSB3b3JrZmxvdyBmdW5jdGlvbidcbiAgKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEge0BsaW5rIFdlYmhvb2t9IHRoYXQgY2FuIGJlIHVzZWQgdG8gc3VzcGVuZCBhbmQgcmVzdW1lIHRoZSB3b3JrZmxvd1xuICogcnVuIHVwb24gcmVjZWl2aW5nIGFuIEhUVFAgcmVxdWVzdCB0byB0aGUgc3BlY2lmaWVkIFVSTC5cbiAqXG4gKiBXZWJob29rcyB3aWxsIHJlc3VsdCBpbiBhIHtAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvUmVxdWVzdCB8IFJlcXVlc3R9IG9iamVjdFxuICogdGhhdCBjYW4gYmUgaW50ZXJhY3RlZCB3aXRoIGluIHdvcmtmbG93IGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdlYmhvb2soXG4gIG9wdGlvbnM6IFdlYmhvb2tPcHRpb25zICYgeyByZXNwb25kV2l0aDogJ21hbnVhbCcgfVxuKTogV2ViaG9vazxSZXF1ZXN0V2l0aFJlc3BvbnNlPjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXZWJob29rKG9wdGlvbnM/OiBXZWJob29rT3B0aW9ucyk6IFdlYmhvb2s8UmVxdWVzdD47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2ViaG9vayhcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBgb3B0aW9uc2AgaXMgaGVyZSBmb3IgdHlwZXMvZG9jc1xuICBvcHRpb25zPzogV2ViaG9va09wdGlvbnNcbik6IFdlYmhvb2s8UmVxdWVzdD4gfCBXZWJob29rPFJlcXVlc3RXaXRoUmVzcG9uc2U+IHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdgY3JlYXRlV2ViaG9vaygpYCBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgd29ya2Zsb3cgZnVuY3Rpb24nXG4gICk7XG59XG4iXX0=
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3JlYXRlLWhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFvTWhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLFVBQVUsQ0FBVSxPQUFxQjtJQUN2RCx5QkFBeUIsQ0FDdkIsY0FBYyxFQUNkLGtFQUFrRSxFQUNsRSxVQUFVLENBQ1gsQ0FBQztBQUNKLENBQUM7QUFhRCxNQUFNLFVBQVUsYUFBYTtBQUMzQixvREFBb0Q7QUFDcEQsT0FBd0I7SUFFeEIseUJBQXlCLENBQ3ZCLGlCQUFpQixFQUNqQixxRUFBcUUsRUFDckUsYUFBYSxDQUNkLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3dOb3RJbldvcmtmbG93Q29udGV4dCB9IGZyb20gJy4vY29udGV4dC1lcnJvcnMuanMnO1xuaW1wb3J0IHR5cGUgeyBSdW4gfSBmcm9tICcuL3J1bnRpbWUvcnVuLmpzJztcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXphYmxlIH0gZnJvbSAnLi9zY2hlbWFzLmpzJztcblxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBjYW4gYmUgYXdhaXRlZCB0byByZWNlaXZlIGEgdmFsdWUuXG4gKi9cbmludGVyZmFjZSBUaGVuYWJsZTxUPiB7XG4gIHRoZW46IFByb21pc2U8VD5bJ3RoZW4nXTtcbn1cblxuLyoqXG4gKiBBIGBSZXF1ZXN0YCB0aGF0IGNhbiBiZSByZXNwb25kZWQgdG8gd2l0aGluIGEgd29ya2Zsb3dcbiAqIHN0ZXAgZnVuY3Rpb24gYnkgY2FsbGluZyB0aGUgYHJlc3BvbmRXaXRoKClgIG1ldGhvZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0V2l0aFJlc3BvbnNlIGV4dGVuZHMgUmVxdWVzdCB7XG4gIHJlc3BvbmRXaXRoOiAocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEEgaG9vayB0aGF0IGNhbiBiZSBhd2FpdGVkIGFuZC9vciBpdGVyYXRlZCBvdmVyIHRvIHJlY2VpdmVcbiAqIGEgdmFsdWUgd2l0aGluIGEgd29ya2Zsb3cgZnJvbSBhbiBleHRlcm5hbCBzeXN0ZW0uXG4gKlxuICogSG9va3MgaW1wbGVtZW50IHRoZSBUQzM5IEV4cGxpY2l0IFJlc291cmNlIE1hbmFnZW1lbnQgcHJvcG9zYWwsXG4gKiBhbGxvd2luZyB0aGVtIHRvIGJlIHVzZWQgd2l0aCB0aGUgYHVzaW5nYCBrZXl3b3JkIGZvciBhdXRvbWF0aWMgZGlzcG9zYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9vazxUID0gYW55PiBleHRlbmRzIEFzeW5jSXRlcmFibGU8VD4sIFRoZW5hYmxlPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSB0b2tlbiB1c2VkIHRvIGlkZW50aWZ5IHRoaXMgaG9vay5cbiAgICovXG4gIHRva2VuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgY29uZmxpY3Rpbmcge0BsaW5rIFJ1bn0gaWZcbiAgICogYW5vdGhlciBhY3RpdmUgaG9vayBhbHJlYWR5IG93bnMgdGhpcyBob29rJ3MgdG9rZW4sIG9yIGBudWxsYCBvbmNlXG4gICAqIHRoZSBob29rIGhhcyBiZWVuIHJlZ2lzdGVyZWQgYW5kIGlzIHJlYWR5IHRvIHJlY2VpdmUgcGF5bG9hZHMuXG4gICAqXG4gICAqIENhbGxpbmcgYGNyZWF0ZUhvb2soKWAgYWxvbmUgZG9lcyBub3QgcmVnaXN0ZXIgdGhlIGhvb2sg4oCUIHJlZ2lzdHJhdGlvblxuICAgKiBvbmx5IGhhcHBlbnMgd2hlbiB0aGUgd29ya2Zsb3cgc3VzcGVuZHMuIEF3YWl0aW5nIGBnZXRDb25mbGljdCgpYFxuICAgKiBzdXNwZW5kcyB0aGUgd29ya2Zsb3cgdG8gY29tbWl0IHRoZSBob29rIHJlZ2lzdHJhdGlvbiwgc28gaXQgY2FuIGJlXG4gICAqIHVzZWQgdG8gY2xhaW0gdGhlIHRva2VuIChhbmQgZGV0ZWN0IHRva2VuIGNvbmZsaWN0cyBlYXJseSkgd2l0aG91dFxuICAgKiB3YWl0aW5nIGZvciBwYXlsb2FkIGRhdGEuXG4gICAqXG4gICAqIFdoZW4gYSBjb25mbGljdCBpcyBkZXRlY3RlZCwgdGhlIHJlc29sdmVkIGBSdW5gIGlzIHRoZSBydW4gdGhhdFxuICAgKiBjdXJyZW50bHkgb3ducyB0aGUgdG9rZW4uIFRoZSB3b3JrZmxvdyBjYW4gZGVjaWRlIGhvdyB0byBoYW5kbGUgdGhlXG4gICAqIGR1cGxpY2F0ZSBpbiBjb2RlOiByZXR1cm4gb3IgbG9nIGBjb25mbGljdC5ydW5JZGAsIGluc3BlY3RcbiAgICogYGF3YWl0IGNvbmZsaWN0LnN0YXR1c2AsIGF3YWl0IGBjb25mbGljdC5yZXR1cm5WYWx1ZWAsIG9yIGNhbmNlbCB0aGVcbiAgICogb3duZXIgd2l0aCBgYXdhaXQgY29uZmxpY3QuY2FuY2VsKClgIGFuZCBjb250aW51ZSBpbiB0aGUgY3VycmVudCBydW4uXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhd2FpdGluZyB0aGUgaG9vaydzIHBheWxvYWQgKGBhd2FpdCBob29rYCkgd2hlbiB0aGUgdG9rZW4gaXNcbiAgICogYWxyZWFkeSBvd25lZCBieSBhbm90aGVyIGFjdGl2ZSBob29rIHN0aWxsIHJlamVjdHMgd2l0aFxuICAgKiBgSG9va0NvbmZsaWN0RXJyb3JgLiBJbiB0aGUgcmFyZSBjYXNlIHdoZXJlIHRoZSBjb25mbGljdGluZyBydW4gY2Fubm90XG4gICAqIGJlIGlkZW50aWZpZWQgKGEgYGhvb2tfY29uZmxpY3RgIGV2ZW50IHBlcnNpc3RlZCBieSBhbiBvbGQgd29ybGQgdGhhdFxuICAgKiBkaWQgbm90IHJlY29yZCB0aGUgb3duaW5nIHJ1bidzIElEKSwgYGdldENvbmZsaWN0KClgIGFsc28gcmVqZWN0cyB3aXRoXG4gICAqIGBIb29rQ29uZmxpY3RFcnJvcmAgcmF0aGVyIHRoYW4gcmVzb2x2aW5nIHdpdGggYW4gaW5jb21wbGV0ZSB2YWx1ZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogdXNpbmcgaG9vayA9IGNyZWF0ZUhvb2soeyB0b2tlbjogYG9yZGVyOiR7b3JkZXJJZH1gIH0pO1xuICAgKiBjb25zdCBjb25mbGljdCA9IGF3YWl0IGhvb2suZ2V0Q29uZmxpY3QoKTtcbiAgICogaWYgKGNvbmZsaWN0KSB7XG4gICAqICAgLy8gYW5vdGhlciBydW4gYWxyZWFkeSBvd25zIHRoaXMgdG9rZW5cbiAgICogICByZXR1cm4geyBkZWR1cGVkVG86IGNvbmZsaWN0LnJ1bklkIH07XG4gICAqIH1cbiAgICogLy8gdG9rZW4gaXMgbm93IGNsYWltZWQsIHdpdGhvdXQgd2FpdGluZyBmb3IgcGF5bG9hZCBkYXRhXG4gICAqIGBgYFxuICAgKi9cbiAgZ2V0Q29uZmxpY3QoKTogUHJvbWlzZTxSdW48dW5rbm93bj4gfCBudWxsPjtcblxuICAvKipcbiAgICogRGlzcG9zZXMgdGhlIGhvb2ssIHJlbGVhc2luZyBpdHMgdG9rZW4gZm9yIHJldXNlIGJ5IG90aGVyIHdvcmtmbG93cy5cbiAgICpcbiAgICogQWZ0ZXIgY2FsbGluZyBgZGlzcG9zZSgpYCwgdGhlIGhvb2sgd2lsbCBubyBsb25nZXIgcmVjZWl2ZSBhbnkgZXZlbnRzLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIGV4cGxpY2l0bHkgcmVsZWFzZSBhIGhvb2sgdG9rZW4gYmVmb3JlXG4gICAqIHRoZSB3b3JrZmxvdyBjb21wbGV0ZXMsIGFsbG93aW5nIGFub3RoZXIgd29ya2Zsb3cgdG8gcmVnaXN0ZXIgYSBob29rXG4gICAqIHdpdGggdGhlIHNhbWUgdG9rZW4uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGNvbnN0IGhvb2sgPSBjcmVhdGVIb29rPHsgbWVzc2FnZTogc3RyaW5nIH0+KHsgdG9rZW46ICdteS10b2tlbicgfSk7XG4gICAqXG4gICAqIGZvciBhd2FpdCAoY29uc3QgcGF5bG9hZCBvZiBob29rKSB7XG4gICAqICAgaWYgKHBheWxvYWQubWVzc2FnZSA9PT0gJ2RvbmUnKSB7XG4gICAqICAgICBob29rLmRpc3Bvc2UoKTsgLy8gUmVsZWFzZSB0aGUgdG9rZW4gZWFybHlcbiAgICogICAgIGJyZWFrO1xuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGRpc3Bvc2UoKTogdm9pZDtcblxuICAvKipcbiAgICogSW1wbGVtZW50cyB0aGUgVEMzOSBFeHBsaWNpdCBSZXNvdXJjZSBNYW5hZ2VtZW50IHByb3Bvc2FsLlxuICAgKiBDYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHVzaW5nIHRoZSBgdXNpbmdgIGtleXdvcmQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIHtcbiAgICogICB1c2luZyBob29rID0gY3JlYXRlSG9vazx7IG1lc3NhZ2U6IHN0cmluZyB9Pih7IHRva2VuOiAnbXktdG9rZW4nIH0pO1xuICAgKiAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBob29rO1xuICAgKiAgIC8vIGhvb2sgaXMgYXV0b21hdGljYWxseSBkaXNwb3NlZCB3aGVuIHRoZSBibG9jayBleGl0c1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgW1N5bWJvbC5kaXNwb3NlXSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgd2ViaG9vayB0aGF0IGNhbiBiZSB1c2VkIHRvIHN1c3BlbmQgYW5kIHJlc3VtZSB0aGUgd29ya2Zsb3cgcnVuXG4gKiB1cG9uIHJlY2VpdmluZyBhbiBIVFRQIHJlcXVlc3QgdG8gdGhlIHNwZWNpZmllZCBVUkwuXG4gKlxuICogQHNlZSB7QGxpbmsgY3JlYXRlV2ViaG9va31cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1JlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJob29rPFQgZXh0ZW5kcyBSZXF1ZXN0PiBleHRlbmRzIEhvb2s8VD4ge1xuICAvKipcbiAgICogVGhlIFVSTCB0aGF0IGV4dGVybmFsIHN5c3RlbXMgY2FuIGNhbGwgdG8gc2VuZCBkYXRhIHRvIHRoZSB3b3JrZmxvdy5cbiAgICovXG4gIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhvb2tPcHRpb25zIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSB0b2tlbiB0aGF0IGlzIHVzZWQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGhvb2suXG4gICAqXG4gICAqIFdoZW4gc3BlY2lmeWluZyBhbiBleHBsaWNpdCB0b2tlbiwgdGhlIHRva2VuIHNob3VsZCBiZSBjb25zdHJ1Y3RlZFxuICAgKiB3aXRoIGluZm9ybWF0aW9uIHRoYXQgdGhlIGRpc3BhdGNoaW5nIHNpZGUgY2FuIHJlbGlhYmx5IHJlY29uc3RydWN0XG4gICAqIHRoZSB0b2tlbiB3aXRoIHRoZSBpbmZvcm1hdGlvbiBpdCBoYXMgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBEZXRlcm1pbmlzdGljIHRva2VucyBhcmUgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIGBjcmVhdGVIb29rKClgIGFuZFxuICAgKiBzZXJ2ZXItc2lkZSBgcmVzdW1lSG9vaygpYCBvbmx5LiBGb3Igd2ViaG9va3MgKGBjcmVhdGVXZWJob29rKClgKSxcbiAgICogdG9rZW5zIGFyZSBhbHdheXMgcmFuZG9tbHkgZ2VuZXJhdGVkIHRvIHByZXZlbnQgdW5hdXRob3JpemVkIGFjY2Vzc1xuICAgKiB0byB0aGUgcHVibGljIHdlYmhvb2sgZW5kcG9pbnQuXG4gICAqXG4gICAqIElmIHByb3ZpZGVkLCB0aGUgdG9rZW4gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmc7IHBhc3NpbmcgYW4gZW1wdHlcbiAgICogc3RyaW5nIHRocm93cy4gSWYgbm90IHByb3ZpZGVkIChvciBgdW5kZWZpbmVkYCksIGEgcmFuZG9tbHkgZ2VuZXJhdGVkXG4gICAqIHRva2VuIHdpbGwgYmUgYXNzaWduZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIEV4cGxpY2l0IHRva2VuIGZvciBhIFNsYWNrIGJvdCAob25lIHdvcmtmbG93IHJ1biBwZXIgY2hhbm5lbClcbiAgICogY29uc3QgaG9vayA9IGNyZWF0ZUhvb2s8U2xhY2tNZXNzYWdlPih7XG4gICAqICAgdG9rZW46IGBzbGFja193ZWJob29rOiR7Y2hhbm5lbElkfWAsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHRva2VuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHVzZXItZGVmaW5lZCBkYXRhIHRvIGluY2x1ZGUgd2l0aCB0aGUgaG9vayBwYXlsb2FkLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBob29rID0gY3JlYXRlSG9vazx7IG5hbWU6IHN0cmluZyB9Pih7XG4gICAqICAgbWV0YWRhdGE6IHtcbiAgICogICAgIHR5cGU6IFwiY2F0XCIsXG4gICAqICAgICBjb2xvcjogXCJvcmFuZ2VcIixcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBtZXRhZGF0YT86IFNlcmlhbGl6YWJsZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGhvb2sgY2FuIGJlIHJlc3VtZWQgdmlhIHRoZSBwdWJsaWMgd2ViaG9vayBlbmRwb2ludC5cbiAgICpcbiAgICogV2hlbiBgdHJ1ZWAsIHRoZSBob29rIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc2VuZGluZyBhbiBIVFRQIHJlcXVlc3QgdG8gdGhlXG4gICAqIHB1YmxpYyB3b3JrZmxvdyB3ZWJob29rIFVSTC4gVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHNldCB3aGVuIHVzaW5nXG4gICAqIGBjcmVhdGVXZWJob29rKClgLlxuICAgKlxuICAgKiBXaGVuIGBmYWxzZWAgKHRoZSBkZWZhdWx0KSwgdGhlIGhvb2sgY2FuIG9ubHkgYmUgcmVzdW1lZCBzZXJ2ZXItc2lkZVxuICAgKiB2aWEgYHJlc3VtZUhvb2soKWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc1dlYmhvb2s/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlYmhvb2tPcHRpb25zXG4gIGV4dGVuZHMgT21pdDxIb29rT3B0aW9ucywgJ3Rva2VuJyB8ICdpc1dlYmhvb2snPiB7XG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gYSBgUmVzcG9uc2VgIG9iamVjdCwgdGhlIHdlYmhvb2sgd2lsbCBhdXRvbWF0aWNhbGx5XG4gICAqIHJlc3BvbmQgd2l0aCB0aGUgc3BlY2lmaWVkIHJlc3BvbnNlLlxuICAgKlxuICAgKiBJZiBzZXQgdG8gYFwibWFudWFsXCJgLCBlYWNoIGluZGl2aWR1YWwgcmVxdWVzdCB3aWxsIG5lZWQgdG9cbiAgICogYmUgcmVzcG9uZGVkIHRvIG1hbnVhbGx5IGZyb20gd2l0aGluIHRoZSB3b3JrZmxvdyBieSBjYWxsaW5nIHRoZVxuICAgKiBgcmVzcG9uZFdpdGgoKWAgbWV0aG9kLlxuICAgKlxuICAgKiBJZiBub3Qgc2V0IHRoZW4gdGhlIHdlYmhvb2sgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc3BvbmQgd2l0aFxuICAgKiBhIGAyMDIgQWNjZXB0ZWRgIHJlc3BvbnNlLlxuICAgKi9cbiAgcmVzcG9uZFdpdGg/OiBSZXNwb25zZSB8ICdtYW51YWwnO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB7QGxpbmsgSG9va30gdGhhdCBjYW4gYmUgdXNlZCB0byBzdXNwZW5kIGFuZCByZXN1bWUgdGhlIHdvcmtmbG93IHJ1biB3aXRoIGEgcGF5bG9hZC5cbiAqXG4gKiBIb29rcyBhbGxvdyBleHRlcm5hbCBzeXN0ZW1zIHRvIHNlbmQgYXJiaXRyYXJ5IHNlcmlhbGl6YWJsZSBkYXRhIGludG8gYSB3b3JrZmxvdy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIGhvb2suXG4gKiBAcmV0dXJucyBBIGBIb29rYCB0aGF0IGNhbiBiZSBhd2FpdGVkIHRvIHJlY2VpdmUgb25lIG9yIG1vcmUgcGF5bG9hZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGB0c1xuICogZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93V2l0aEhvb2soKSB7XG4gKiAgIFwidXNlIHdvcmtmbG93XCI7XG4gKlxuICogICBjb25zdCBob29rID0gY3JlYXRlSG9vazx7IG1lc3NhZ2U6IHN0cmluZyB9PigpO1xuICogICBjb25zb2xlLmxvZygnSG9vayB0b2tlbjonLCBob29rLnRva2VuKTtcbiAqXG4gKiAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBob29rO1xuICogICBjb25zb2xlLmxvZygnUmVjZWl2ZWQ6JywgcGF5bG9hZC5tZXNzYWdlKTtcbiAqIH1cbiAqIGBgYFxuICovXG4vLyBAdHMtZXhwZWN0LWVycm9yIGBvcHRpb25zYCBpcyBoZXJlIGZvciB0eXBlcy9kb2NzXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG9vazxUID0gYW55PihvcHRpb25zPzogSG9va09wdGlvbnMpOiBIb29rPFQ+IHtcbiAgdGhyb3dOb3RJbldvcmtmbG93Q29udGV4dChcbiAgICAnY3JlYXRlSG9vaygpJyxcbiAgICAnaHR0cHM6Ly93b3JrZmxvdy1zZGsuZGV2L2RvY3MvYXBpLXJlZmVyZW5jZS93b3JrZmxvdy9jcmVhdGUtaG9vaycsXG4gICAgY3JlYXRlSG9va1xuICApO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB7QGxpbmsgV2ViaG9va30gdGhhdCBjYW4gYmUgdXNlZCB0byBzdXNwZW5kIGFuZCByZXN1bWUgdGhlIHdvcmtmbG93XG4gKiBydW4gdXBvbiByZWNlaXZpbmcgYW4gSFRUUCByZXF1ZXN0IHRvIHRoZSBzcGVjaWZpZWQgVVJMLlxuICpcbiAqIFdlYmhvb2tzIHdpbGwgcmVzdWx0IGluIGEge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXF1ZXN0IHwgUmVxdWVzdH0gb2JqZWN0XG4gKiB0aGF0IGNhbiBiZSBpbnRlcmFjdGVkIHdpdGggaW4gd29ya2Zsb3cgZnVuY3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2ViaG9vayhcbiAgb3B0aW9uczogV2ViaG9va09wdGlvbnMgJiB7IHJlc3BvbmRXaXRoOiAnbWFudWFsJyB9XG4pOiBXZWJob29rPFJlcXVlc3RXaXRoUmVzcG9uc2U+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdlYmhvb2sob3B0aW9ucz86IFdlYmhvb2tPcHRpb25zKTogV2ViaG9vazxSZXF1ZXN0PjtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXZWJob29rKFxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGBvcHRpb25zYCBpcyBoZXJlIGZvciB0eXBlcy9kb2NzXG4gIG9wdGlvbnM/OiBXZWJob29rT3B0aW9uc1xuKTogV2ViaG9vazxSZXF1ZXN0PiB8IFdlYmhvb2s8UmVxdWVzdFdpdGhSZXNwb25zZT4ge1xuICB0aHJvd05vdEluV29ya2Zsb3dDb250ZXh0KFxuICAgICdjcmVhdGVXZWJob29rKCknLFxuICAgICdodHRwczovL3dvcmtmbG93LXNkay5kZXYvZG9jcy9hcGktcmVmZXJlbmNlL3dvcmtmbG93L2NyZWF0ZS13ZWJob29rJyxcbiAgICBjcmVhdGVXZWJob29rXG4gICk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-hook.d.ts","sourceRoot":"","sources":["../src/define-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-hook.d.ts","sourceRoot":"","sources":["../src/define-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG1D;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,MAAM,EAAE,OAAO;IACxC;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC7D;AAED,yBAAiB,SAAS,CAAC;IACzB;;OAEG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAC7C,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,EACnD,MAAM,GACP,GAAE;IACD,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CA8ClC"}
|
package/dist/define-hook.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { throwNotInWorkflowContext } from './context-errors.js';
|
|
1
2
|
import { resumeHook } from './runtime/resume-hook.js';
|
|
2
3
|
/**
|
|
3
4
|
* Defines a typed hook for type-safe hook creation and resumption.
|
|
@@ -31,10 +32,14 @@ import { resumeHook } from './runtime/resume-hook.js';
|
|
|
31
32
|
* ```
|
|
32
33
|
*/
|
|
33
34
|
export function defineHook({ schema, } = {}) {
|
|
35
|
+
function create(_options) {
|
|
36
|
+
// NOTE: `create` is referenced by name (not `this.create`) so the stack
|
|
37
|
+
// strip still works if the caller destructured the hook (`const { create }
|
|
38
|
+
// = defineHook(); create()`) — in that case `this` is undefined.
|
|
39
|
+
throwNotInWorkflowContext('defineHook().create()', 'https://workflow-sdk.dev/docs/api-reference/workflow/define-hook', create);
|
|
40
|
+
}
|
|
34
41
|
return {
|
|
35
|
-
create
|
|
36
|
-
throw new Error('`defineHook().create()` can only be called inside a workflow function.');
|
|
37
|
-
},
|
|
42
|
+
create,
|
|
38
43
|
async resume(token, payload) {
|
|
39
44
|
if (!schema?.['~standard']) {
|
|
40
45
|
return await resumeHook(token, payload);
|
|
@@ -45,10 +50,20 @@ export function defineHook({ schema, } = {}) {
|
|
|
45
50
|
}
|
|
46
51
|
// if the `issues` field exists, the validation failed
|
|
47
52
|
if (result.issues) {
|
|
48
|
-
|
|
53
|
+
const lines = result.issues.map((issue) => {
|
|
54
|
+
const path = issue.path
|
|
55
|
+
?.map((segment) => typeof segment === 'object' && segment !== null
|
|
56
|
+
? String(segment.key)
|
|
57
|
+
: String(segment))
|
|
58
|
+
.join('.');
|
|
59
|
+
return path
|
|
60
|
+
? ` at "${path}": ${issue.message}`
|
|
61
|
+
: ` ${issue.message}`;
|
|
62
|
+
});
|
|
63
|
+
throw new Error(`Hook payload did not match the defined schema:\n${lines.join('\n')}`);
|
|
49
64
|
}
|
|
50
65
|
return await resumeHook(token, result.value);
|
|
51
66
|
},
|
|
52
67
|
};
|
|
53
68
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLWhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmaW5lLWhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBbUN0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBMkIsRUFDbkQsTUFBTSxNQUdKLEVBQUU7SUFDSixTQUFTLE1BQU0sQ0FBQyxRQUFzQjtRQUNwQyx3RUFBd0U7UUFDeEUsMkVBQTJFO1FBQzNFLGlFQUFpRTtRQUNqRSx5QkFBeUIsQ0FDdkIsdUJBQXVCLEVBQ3ZCLGtFQUFrRSxFQUNsRSxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTTtRQUNOLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBYSxFQUFFLE9BQWU7WUFDekMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sTUFBTSxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFFRCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELElBQUksTUFBTSxZQUFZLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUM7WUFDeEIsQ0FBQztZQUVELHNEQUFzRDtZQUN0RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDeEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUk7d0JBQ3JCLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDaEIsT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxJQUFJO3dCQUM3QyxDQUFDLENBQUMsTUFBTSxDQUFFLE9BQWdDLENBQUMsR0FBRyxDQUFDO3dCQUMvQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUNwQjt5QkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2IsT0FBTyxJQUFJO3dCQUNULENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFO3dCQUNwQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sSUFBSSxLQUFLLENBQ2IsbURBQW1ELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDdEUsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPLE1BQU0sVUFBVSxDQUFVLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFuZGFyZFNjaGVtYVYxIH0gZnJvbSAnQHN0YW5kYXJkLXNjaGVtYS9zcGVjJztcbmltcG9ydCB0eXBlIHsgSG9vayBhcyBIb29rRW50aXR5IH0gZnJvbSAnQHdvcmtmbG93L3dvcmxkJztcbmltcG9ydCB7IHRocm93Tm90SW5Xb3JrZmxvd0NvbnRleHQgfSBmcm9tICcuL2NvbnRleHQtZXJyb3JzLmpzJztcbmltcG9ydCB0eXBlIHsgSG9vaywgSG9va09wdGlvbnMgfSBmcm9tICcuL2NyZWF0ZS1ob29rLmpzJztcbmltcG9ydCB7IHJlc3VtZUhvb2sgfSBmcm9tICcuL3J1bnRpbWUvcmVzdW1lLWhvb2suanMnO1xuXG4vKipcbiAqIEEgdHlwZWQgaG9vayBpbnRlcmZhY2UgZm9yIHR5cGUtc2FmZSBob29rIGNyZWF0aW9uIGFuZCByZXN1bXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkSG9vazxUSW5wdXQsIFRPdXRwdXQ+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaG9vayB3aXRoIHRoZSBkZWZpbmVkIG91dHB1dCB0eXBlLlxuICAgKlxuICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBub3QgYXZhaWxhYmxlIGluIHJ1bnRpbWUgYnVuZGxlcy4gVXNlIGl0IGZyb20gd29ya2Zsb3cgY29udGV4dHMgb25seS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBob29rIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQSBIb29rIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGRlZmluZWQgb3V0cHV0IHR5cGVcbiAgICovXG4gIGNyZWF0ZShvcHRpb25zPzogSG9va09wdGlvbnMpOiBIb29rPFRPdXRwdXQ+O1xuICAvKipcbiAgICogUmVzdW1lcyBhIGhvb2sgYnkgc2VuZGluZyBhIHBheWxvYWQgd2l0aCB0aGUgZGVmaW5lZCBpbnB1dCB0eXBlLlxuICAgKiBUaGlzIGlzIGEgdHlwZS1zYWZlIHdyYXBwZXIgYXJvdW5kIHRoZSBgcmVzdW1lSG9va2AgcnVudGltZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHRva2VuIC0gVGhlIHVuaXF1ZSB0b2tlbiBpZGVudGlmeWluZyB0aGUgaG9va1xuICAgKiBAcGFyYW0gcGF5bG9hZCAtIFRoZSBwYXlsb2FkIHRvIHNlbmQ7IGlmIGEgYHNjaGVtYWAgaXMgY29uZmlndXJlZCBpdCBpcyB2YWxpZGF0ZWQvdHJhbnNmb3JtZWQgYmVmb3JlIHJlc3VtaW5nXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBob29rIGVudGl0eVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBob29rIGlzIG5vdCBmb3VuZCBvciBpZiB0aGVyZSdzIGFuIGVycm9yIGR1cmluZyB0aGUgcHJvY2Vzc1xuICAgKi9cbiAgcmVzdW1lKHRva2VuOiBzdHJpbmcsIHBheWxvYWQ6IFRJbnB1dCk6IFByb21pc2U8SG9va0VudGl0eT47XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgVHlwZWRIb29rIHtcbiAgLyoqXG4gICAqIEV4dHJhY3RzIHRoZSBpbnB1dCB0eXBlIGZyb20gYSB7QGxpbmsgVHlwZWRIb29rfVxuICAgKi9cbiAgZXhwb3J0IHR5cGUgSW5wdXQ8VCBleHRlbmRzIFR5cGVkSG9vazxhbnksIGFueT4+ID1cbiAgICBUIGV4dGVuZHMgVHlwZWRIb29rPGluZmVyIEksIGFueT4gPyBJIDogbmV2ZXI7XG59XG5cbi8qKlxuICogRGVmaW5lcyBhIHR5cGVkIGhvb2sgZm9yIHR5cGUtc2FmZSBob29rIGNyZWF0aW9uIGFuZCByZXN1bXB0aW9uLlxuICpcbiAqIFRoaXMgaGVscGVyIHByb3ZpZGVzIHR5cGUgc2FmZXR5IGJ5IGFsbG93aW5nIHlvdSB0byBkZWZpbmUgdGhlIGlucHV0IGFuZCBvdXRwdXQgdHlwZXNcbiAqIGZvciB0aGUgaG9vaydzIHBheWxvYWQsIHdpdGggb3B0aW9uYWwgdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb24gdmlhIGEgc2NoZW1hLlxuICpcbiAqIEBwYXJhbSBzY2hlbWEgLSBTY2hlbWEgdXNlZCB0byB2YWxpZGF0ZSBhbmQgdHJhbnNmb3JtIHRoZSBpbnB1dCBwYXlsb2FkIGJlZm9yZSByZXN1bWluZ1xuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYGNyZWF0ZWAgYW5kIGByZXN1bWVgIGZ1bmN0aW9ucyBwcmUtdHlwZWQgd2l0aCB0aGUgaW5wdXQgYW5kIG91dHB1dCB0eXBlc1xuICpcbiAqIEBleGFtcGxlXG4gKlxuICogYGBgdHNcbiAqIC8vIERlZmluZSBhIGhvb2sgd2l0aCBhIHNwZWNpZmljIHBheWxvYWQgdHlwZVxuICogY29uc3QgYXBwcm92YWxIb29rID0gZGVmaW5lSG9vazx7IGFwcHJvdmVkOiBib29sZWFuOyBjb21tZW50OiBzdHJpbmcgfT4oKTtcbiAqXG4gKiAvLyBJbiBhIHdvcmtmbG93XG4gKiBleHBvcnQgYXN5bmMgZnVuY3Rpb24gd29ya2Zsb3dXaXRoQXBwcm92YWwoKSB7XG4gKiAgIFwidXNlIHdvcmtmbG93XCI7XG4gKlxuICogICBjb25zdCBob29rID0gYXBwcm92YWxIb29rLmNyZWF0ZSgpO1xuICogICBjb25zdCByZXN1bHQgPSBhd2FpdCBob29rOyAvLyBGdWxseSB0eXBlZCBhcyB7IGFwcHJvdmVkOiBib29sZWFuOyBjb21tZW50OiBzdHJpbmc7IH1cbiAqIH1cbiAqXG4gKiAvLyBJbiBhbiBBUEkgcm91dGVcbiAqIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBQT1NUKHJlcXVlc3Q6IFJlcXVlc3QpIHtcbiAqICAgY29uc3QgeyB0b2tlbiwgYXBwcm92ZWQsIGNvbW1lbnQgfSA9IGF3YWl0IHJlcXVlc3QuanNvbigpO1xuICogICBhd2FpdCBhcHByb3ZhbEhvb2sucmVzdW1lKHRva2VuLCB7IGFwcHJvdmVkLCBjb21tZW50IH0pOyAvLyBJbnB1dCB0eXBlXG4gKiAgIHJldHVybiBSZXNwb25zZS5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lSG9vazxUSW5wdXQsIFRPdXRwdXQgPSBUSW5wdXQ+KHtcbiAgc2NoZW1hLFxufToge1xuICBzY2hlbWE/OiBTdGFuZGFyZFNjaGVtYVYxPFRJbnB1dCwgVE91dHB1dD47XG59ID0ge30pOiBUeXBlZEhvb2s8VElucHV0LCBUT3V0cHV0PiB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShfb3B0aW9ucz86IEhvb2tPcHRpb25zKTogSG9vazxUT3V0cHV0PiB7XG4gICAgLy8gTk9URTogYGNyZWF0ZWAgaXMgcmVmZXJlbmNlZCBieSBuYW1lIChub3QgYHRoaXMuY3JlYXRlYCkgc28gdGhlIHN0YWNrXG4gICAgLy8gc3RyaXAgc3RpbGwgd29ya3MgaWYgdGhlIGNhbGxlciBkZXN0cnVjdHVyZWQgdGhlIGhvb2sgKGBjb25zdCB7IGNyZWF0ZSB9XG4gICAgLy8gPSBkZWZpbmVIb29rKCk7IGNyZWF0ZSgpYCkg4oCUIGluIHRoYXQgY2FzZSBgdGhpc2AgaXMgdW5kZWZpbmVkLlxuICAgIHRocm93Tm90SW5Xb3JrZmxvd0NvbnRleHQoXG4gICAgICAnZGVmaW5lSG9vaygpLmNyZWF0ZSgpJyxcbiAgICAgICdodHRwczovL3dvcmtmbG93LXNkay5kZXYvZG9jcy9hcGktcmVmZXJlbmNlL3dvcmtmbG93L2RlZmluZS1ob29rJyxcbiAgICAgIGNyZWF0ZVxuICAgICk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNyZWF0ZSxcbiAgICBhc3luYyByZXN1bWUodG9rZW46IHN0cmluZywgcGF5bG9hZDogVElucHV0KTogUHJvbWlzZTxIb29rRW50aXR5PiB7XG4gICAgICBpZiAoIXNjaGVtYT8uWyd+c3RhbmRhcmQnXSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmVzdW1lSG9vayh0b2tlbiwgcGF5bG9hZCk7XG4gICAgICB9XG5cbiAgICAgIGxldCByZXN1bHQgPSBzY2hlbWFbJ35zdGFuZGFyZCddLnZhbGlkYXRlKHBheWxvYWQpO1xuICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICAvLyBpZiB0aGUgYGlzc3Vlc2AgZmllbGQgZXhpc3RzLCB0aGUgdmFsaWRhdGlvbiBmYWlsZWRcbiAgICAgIGlmIChyZXN1bHQuaXNzdWVzKSB7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gcmVzdWx0Lmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGF0aCA9IGlzc3VlLnBhdGhcbiAgICAgICAgICAgID8ubWFwKChzZWdtZW50KSA9PlxuICAgICAgICAgICAgICB0eXBlb2Ygc2VnbWVudCA9PT0gJ29iamVjdCcgJiYgc2VnbWVudCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgID8gU3RyaW5nKChzZWdtZW50IGFzIHsga2V5OiBQcm9wZXJ0eUtleSB9KS5rZXkpXG4gICAgICAgICAgICAgICAgOiBTdHJpbmcoc2VnbWVudClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcuJyk7XG4gICAgICAgICAgcmV0dXJuIHBhdGhcbiAgICAgICAgICAgID8gYCAgYXQgXCIke3BhdGh9XCI6ICR7aXNzdWUubWVzc2FnZX1gXG4gICAgICAgICAgICA6IGAgICR7aXNzdWUubWVzc2FnZX1gO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBIb29rIHBheWxvYWQgZGlkIG5vdCBtYXRjaCB0aGUgZGVmaW5lZCBzY2hlbWE6XFxuJHtsaW5lcy5qb2luKCdcXG4nKX1gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCByZXN1bWVIb29rPFRPdXRwdXQ+KHRva2VuLCByZXN1bHQudmFsdWUpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
|