@xyne/workflow-sdk 1.0.0
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/README.md +36 -0
- package/dist/agents/agent-step.d.ts +152 -0
- package/dist/agents/agent-step.d.ts.map +1 -0
- package/dist/agents/agent-step.js +403 -0
- package/dist/agents/agent-step.js.map +1 -0
- package/dist/agents/base-runtime.d.ts +38 -0
- package/dist/agents/base-runtime.d.ts.map +1 -0
- package/dist/agents/base-runtime.js +21 -0
- package/dist/agents/base-runtime.js.map +1 -0
- package/dist/agents/index.d.ts +12 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +17 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/interceptor.d.ts +19 -0
- package/dist/agents/interceptor.d.ts.map +1 -0
- package/dist/agents/interceptor.js +21 -0
- package/dist/agents/interceptor.js.map +1 -0
- package/dist/agents/interceptors/approval-gate.d.ts +14 -0
- package/dist/agents/interceptors/approval-gate.d.ts.map +1 -0
- package/dist/agents/interceptors/approval-gate.js +19 -0
- package/dist/agents/interceptors/approval-gate.js.map +1 -0
- package/dist/agents/interceptors/tool-logger.d.ts +15 -0
- package/dist/agents/interceptors/tool-logger.d.ts.map +1 -0
- package/dist/agents/interceptors/tool-logger.js +23 -0
- package/dist/agents/interceptors/tool-logger.js.map +1 -0
- package/dist/agents/pi-mono-runtime.d.ts +88 -0
- package/dist/agents/pi-mono-runtime.d.ts.map +1 -0
- package/dist/agents/pi-mono-runtime.js +129 -0
- package/dist/agents/pi-mono-runtime.js.map +1 -0
- package/dist/agents/tool-registry.d.ts +25 -0
- package/dist/agents/tool-registry.d.ts.map +1 -0
- package/dist/agents/tool-registry.js +47 -0
- package/dist/agents/tool-registry.js.map +1 -0
- package/dist/agents/tool-types.d.ts +25 -0
- package/dist/agents/tool-types.d.ts.map +1 -0
- package/dist/agents/tool-types.js +9 -0
- package/dist/agents/tool-types.js.map +1 -0
- package/dist/agents/types.d.ts +91 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +12 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/builder/index.d.ts +30 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +32 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/client/index.d.ts +19 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +18 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +128 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +10 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/workflow-client.d.ts +15 -0
- package/dist/client/workflow-client.d.ts.map +1 -0
- package/dist/client/workflow-client.js +293 -0
- package/dist/client/workflow-client.js.map +1 -0
- package/dist/common/attachment.d.ts +31 -0
- package/dist/common/attachment.d.ts.map +1 -0
- package/dist/common/attachment.js +21 -0
- package/dist/common/attachment.js.map +1 -0
- package/dist/common/executable-check.d.ts +42 -0
- package/dist/common/executable-check.d.ts.map +1 -0
- package/dist/common/executable-check.js +115 -0
- package/dist/common/executable-check.js.map +1 -0
- package/dist/common/index.d.ts +21 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +19 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/resume-payload.d.ts +34 -0
- package/dist/common/resume-payload.d.ts.map +1 -0
- package/dist/common/resume-payload.js +12 -0
- package/dist/common/resume-payload.js.map +1 -0
- package/dist/engine/available-context.d.ts +29 -0
- package/dist/engine/available-context.d.ts.map +1 -0
- package/dist/engine/available-context.js +66 -0
- package/dist/engine/available-context.js.map +1 -0
- package/dist/engine/condition-evaluator.d.ts +13 -0
- package/dist/engine/condition-evaluator.d.ts.map +1 -0
- package/dist/engine/condition-evaluator.js +92 -0
- package/dist/engine/condition-evaluator.js.map +1 -0
- package/dist/engine/config-validator.d.ts +25 -0
- package/dist/engine/config-validator.d.ts.map +1 -0
- package/dist/engine/config-validator.js +316 -0
- package/dist/engine/config-validator.js.map +1 -0
- package/dist/engine/pause-step.d.ts +20 -0
- package/dist/engine/pause-step.d.ts.map +1 -0
- package/dist/engine/pause-step.js +24 -0
- package/dist/engine/pause-step.js.map +1 -0
- package/dist/engine/service-registry.d.ts +49 -0
- package/dist/engine/service-registry.d.ts.map +1 -0
- package/dist/engine/service-registry.js +76 -0
- package/dist/engine/service-registry.js.map +1 -0
- package/dist/engine/variable-resolver.d.ts +29 -0
- package/dist/engine/variable-resolver.d.ts.map +1 -0
- package/dist/engine/variable-resolver.js +130 -0
- package/dist/engine/variable-resolver.js.map +1 -0
- package/dist/engine/workflow-executor.d.ts +96 -0
- package/dist/engine/workflow-executor.d.ts.map +1 -0
- package/dist/engine/workflow-executor.js +837 -0
- package/dist/engine/workflow-executor.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/persistence/in-memory-adapter.d.ts +138 -0
- package/dist/persistence/in-memory-adapter.d.ts.map +1 -0
- package/dist/persistence/in-memory-adapter.js +315 -0
- package/dist/persistence/in-memory-adapter.js.map +1 -0
- package/dist/persistence/types.d.ts +214 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +8 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/router/types.d.ts +57 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +8 -0
- package/dist/router/types.js.map +1 -0
- package/dist/router/workflow-router.d.ts +26 -0
- package/dist/router/workflow-router.d.ts.map +1 -0
- package/dist/router/workflow-router.js +611 -0
- package/dist/router/workflow-router.js.map +1 -0
- package/dist/runtime/execution-event-bus.d.ts +38 -0
- package/dist/runtime/execution-event-bus.d.ts.map +1 -0
- package/dist/runtime/execution-event-bus.js +87 -0
- package/dist/runtime/execution-event-bus.js.map +1 -0
- package/dist/runtime/types.d.ts +129 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +5 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/workflow-runtime.d.ts +256 -0
- package/dist/runtime/workflow-runtime.d.ts.map +1 -0
- package/dist/runtime/workflow-runtime.js +699 -0
- package/dist/runtime/workflow-runtime.js.map +1 -0
- package/dist/steps/base-step.d.ts +204 -0
- package/dist/steps/base-step.d.ts.map +1 -0
- package/dist/steps/base-step.js +69 -0
- package/dist/steps/base-step.js.map +1 -0
- package/dist/steps/builtin/code.step.d.ts +95 -0
- package/dist/steps/builtin/code.step.d.ts.map +1 -0
- package/dist/steps/builtin/code.step.js +122 -0
- package/dist/steps/builtin/code.step.js.map +1 -0
- package/dist/steps/builtin/conditional.step.d.ts +146 -0
- package/dist/steps/builtin/conditional.step.d.ts.map +1 -0
- package/dist/steps/builtin/conditional.step.js +71 -0
- package/dist/steps/builtin/conditional.step.js.map +1 -0
- package/dist/steps/builtin/dedup.step.d.ts +65 -0
- package/dist/steps/builtin/dedup.step.d.ts.map +1 -0
- package/dist/steps/builtin/dedup.step.js +61 -0
- package/dist/steps/builtin/dedup.step.js.map +1 -0
- package/dist/steps/builtin/http-request.step.d.ts +928 -0
- package/dist/steps/builtin/http-request.step.d.ts.map +1 -0
- package/dist/steps/builtin/http-request.step.js +570 -0
- package/dist/steps/builtin/http-request.step.js.map +1 -0
- package/dist/steps/builtin/loop.step.d.ts +100 -0
- package/dist/steps/builtin/loop.step.d.ts.map +1 -0
- package/dist/steps/builtin/loop.step.js +79 -0
- package/dist/steps/builtin/loop.step.js.map +1 -0
- package/dist/steps/builtin/parallel.step.d.ts +208 -0
- package/dist/steps/builtin/parallel.step.d.ts.map +1 -0
- package/dist/steps/builtin/parallel.step.js +249 -0
- package/dist/steps/builtin/parallel.step.js.map +1 -0
- package/dist/steps/builtin/switch.step.d.ts +200 -0
- package/dist/steps/builtin/switch.step.d.ts.map +1 -0
- package/dist/steps/builtin/switch.step.js +92 -0
- package/dist/steps/builtin/switch.step.js.map +1 -0
- package/dist/steps/builtin/transform.step.d.ts +247 -0
- package/dist/steps/builtin/transform.step.d.ts.map +1 -0
- package/dist/steps/builtin/transform.step.js +135 -0
- package/dist/steps/builtin/transform.step.js.map +1 -0
- package/dist/steps/builtin/wait.step.d.ts +921 -0
- package/dist/steps/builtin/wait.step.d.ts.map +1 -0
- package/dist/steps/builtin/wait.step.js +211 -0
- package/dist/steps/builtin/wait.step.js.map +1 -0
- package/dist/steps/step-registry.d.ts +64 -0
- package/dist/steps/step-registry.d.ts.map +1 -0
- package/dist/steps/step-registry.js +102 -0
- package/dist/steps/step-registry.js.map +1 -0
- package/dist/storage/in-memory-adapter.d.ts +25 -0
- package/dist/storage/in-memory-adapter.d.ts.map +1 -0
- package/dist/storage/in-memory-adapter.js +41 -0
- package/dist/storage/in-memory-adapter.js.map +1 -0
- package/dist/storage/types.d.ts +53 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +13 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mock-context.d.ts +13 -0
- package/dist/testing/mock-context.d.ts.map +1 -0
- package/dist/testing/mock-context.js +21 -0
- package/dist/testing/mock-context.js.map +1 -0
- package/dist/testing/mock-step-context.d.ts +47 -0
- package/dist/testing/mock-step-context.d.ts.map +1 -0
- package/dist/testing/mock-step-context.js +59 -0
- package/dist/testing/mock-step-context.js.map +1 -0
- package/dist/triggers/base-trigger.d.ts +58 -0
- package/dist/triggers/base-trigger.d.ts.map +1 -0
- package/dist/triggers/base-trigger.js +37 -0
- package/dist/triggers/base-trigger.js.map +1 -0
- package/dist/triggers/builtin/default-cron-trigger.d.ts +44 -0
- package/dist/triggers/builtin/default-cron-trigger.d.ts.map +1 -0
- package/dist/triggers/builtin/default-cron-trigger.js +31 -0
- package/dist/triggers/builtin/default-cron-trigger.js.map +1 -0
- package/dist/triggers/builtin/default-event-trigger.d.ts +32 -0
- package/dist/triggers/builtin/default-event-trigger.d.ts.map +1 -0
- package/dist/triggers/builtin/default-event-trigger.js +21 -0
- package/dist/triggers/builtin/default-event-trigger.js.map +1 -0
- package/dist/triggers/builtin/default-manual-trigger.d.ts +119 -0
- package/dist/triggers/builtin/default-manual-trigger.d.ts.map +1 -0
- package/dist/triggers/builtin/default-manual-trigger.js +64 -0
- package/dist/triggers/builtin/default-manual-trigger.js.map +1 -0
- package/dist/triggers/builtin/default-webhook-trigger.d.ts +72 -0
- package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +1 -0
- package/dist/triggers/builtin/default-webhook-trigger.js +91 -0
- package/dist/triggers/builtin/default-webhook-trigger.js.map +1 -0
- package/dist/triggers/cron-trigger.d.ts +52 -0
- package/dist/triggers/cron-trigger.d.ts.map +1 -0
- package/dist/triggers/cron-trigger.js +15 -0
- package/dist/triggers/cron-trigger.js.map +1 -0
- package/dist/triggers/event-trigger.d.ts +14 -0
- package/dist/triggers/event-trigger.d.ts.map +1 -0
- package/dist/triggers/event-trigger.js +13 -0
- package/dist/triggers/event-trigger.js.map +1 -0
- package/dist/triggers/manual-trigger.d.ts +11 -0
- package/dist/triggers/manual-trigger.d.ts.map +1 -0
- package/dist/triggers/manual-trigger.js +10 -0
- package/dist/triggers/manual-trigger.js.map +1 -0
- package/dist/triggers/trigger-registry.d.ts +48 -0
- package/dist/triggers/trigger-registry.d.ts.map +1 -0
- package/dist/triggers/trigger-registry.js +81 -0
- package/dist/triggers/trigger-registry.js.map +1 -0
- package/dist/triggers/webhook-trigger.d.ts +54 -0
- package/dist/triggers/webhook-trigger.d.ts.map +1 -0
- package/dist/triggers/webhook-trigger.js +13 -0
- package/dist/triggers/webhook-trigger.js.map +1 -0
- package/dist/types/attachment.d.ts +23 -0
- package/dist/types/attachment.d.ts.map +1 -0
- package/dist/types/attachment.js +2 -0
- package/dist/types/attachment.js.map +1 -0
- package/dist/types/categories.d.ts +14 -0
- package/dist/types/categories.d.ts.map +1 -0
- package/dist/types/categories.js +10 -0
- package/dist/types/categories.js.map +1 -0
- package/dist/types/context.d.ts +61 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +2 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/known-types.d.ts +34 -0
- package/dist/types/known-types.d.ts.map +1 -0
- package/dist/types/known-types.js +49 -0
- package/dist/types/known-types.js.map +1 -0
- package/dist/types/operators.d.ts +20 -0
- package/dist/types/operators.d.ts.map +1 -0
- package/dist/types/operators.js +27 -0
- package/dist/types/operators.js.map +1 -0
- package/dist/types/pause-path.d.ts +23 -0
- package/dist/types/pause-path.d.ts.map +1 -0
- package/dist/types/pause-path.js +2 -0
- package/dist/types/pause-path.js.map +1 -0
- package/dist/types/pause-state.d.ts +100 -0
- package/dist/types/pause-state.d.ts.map +1 -0
- package/dist/types/pause-state.js +15 -0
- package/dist/types/pause-state.js.map +1 -0
- package/dist/types/resume-payload.d.ts +34 -0
- package/dist/types/resume-payload.d.ts.map +1 -0
- package/dist/types/resume-payload.js +12 -0
- package/dist/types/resume-payload.js.map +1 -0
- package/dist/types/status.d.ts +27 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +41 -0
- package/dist/types/status.js.map +1 -0
- package/dist/types/step-events.d.ts +22 -0
- package/dist/types/step-events.d.ts.map +1 -0
- package/dist/types/step-events.js +8 -0
- package/dist/types/step-events.js.map +1 -0
- package/dist/types/step-types.d.ts +12 -0
- package/dist/types/step-types.d.ts.map +1 -0
- package/dist/types/step-types.js +2 -0
- package/dist/types/step-types.js.map +1 -0
- package/dist/types/trigger-types.d.ts +12 -0
- package/dist/types/trigger-types.d.ts.map +1 -0
- package/dist/types/trigger-types.js +2 -0
- package/dist/types/trigger-types.js.map +1 -0
- package/dist/types/validation.d.ts +19 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +11 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/types/workflow-config.d.ts +122 -0
- package/dist/types/workflow-config.d.ts.map +1 -0
- package/dist/types/workflow-config.js +71 -0
- package/dist/types/workflow-config.js.map +1 -0
- package/dist/util/executable-check.d.ts +42 -0
- package/dist/util/executable-check.d.ts.map +1 -0
- package/dist/util/executable-check.js +115 -0
- package/dist/util/executable-check.js.map +1 -0
- package/dist/util/schema-convert.d.ts +14 -0
- package/dist/util/schema-convert.d.ts.map +1 -0
- package/dist/util/schema-convert.js +16 -0
- package/dist/util/schema-convert.js.map +1 -0
- package/dist/util/variable-ref.d.ts +52 -0
- package/dist/util/variable-ref.d.ts.map +1 -0
- package/dist/util/variable-ref.js +89 -0
- package/dist/util/variable-ref.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { StepExecutionContext, ControlFlowExecutionContext } from '../steps/base-step.js';
|
|
2
|
+
import { ServiceRegistry } from '../engine/service-registry.js';
|
|
3
|
+
import type { WorkflowContext } from '../types/context.js';
|
|
4
|
+
import type { StepProgressEvent } from '../types/step-events.js';
|
|
5
|
+
interface MockStepContextOptions<TServices extends Record<string, unknown> = Record<string, unknown>> {
|
|
6
|
+
/** Override the full workflow context. */
|
|
7
|
+
workflow?: WorkflowContext;
|
|
8
|
+
/** Override runtime metadata. */
|
|
9
|
+
runtime?: Partial<StepExecutionContext['runtime']>;
|
|
10
|
+
/** Provide a pre-built ServiceRegistry. */
|
|
11
|
+
services?: ServiceRegistry<TServices>;
|
|
12
|
+
/** Pre-resolved credentials. */
|
|
13
|
+
credentials?: StepExecutionContext['credentials'];
|
|
14
|
+
/** Override static data methods. */
|
|
15
|
+
staticData?: Partial<StepExecutionContext['staticData']>;
|
|
16
|
+
/** Override logger methods. */
|
|
17
|
+
log?: Partial<StepExecutionContext['log']>;
|
|
18
|
+
/** Override emit function. */
|
|
19
|
+
emit?: (event: StepProgressEvent) => void;
|
|
20
|
+
/** Prior step data — set on review-gate retry or rerunFromStep. */
|
|
21
|
+
priorState?: Readonly<Record<string, unknown>>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create a mock StepExecutionContext for testing action steps.
|
|
25
|
+
*
|
|
26
|
+
* All fields have sensible defaults. The `pause()` function works
|
|
27
|
+
* (it throws `PauseStep`). Logger methods are no-ops by default.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createMockStepContext<TServices extends Record<string, unknown> = Record<string, unknown>>(options?: MockStepContextOptions<TServices>): StepExecutionContext<TServices>;
|
|
30
|
+
/**
|
|
31
|
+
* Create a mock ControlFlowExecutionContext for testing control flow steps.
|
|
32
|
+
*
|
|
33
|
+
* Extends `createMockStepContext` with a `walkBranch` stub that records calls.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createMockControlFlowContext<TServices extends Record<string, unknown> = Record<string, unknown>>(options?: MockStepContextOptions<TServices> & {
|
|
36
|
+
/** Custom walkBranch implementation. Default: no-op. */
|
|
37
|
+
walkBranch?: ControlFlowExecutionContext['walkBranch'];
|
|
38
|
+
}): ControlFlowExecutionContext<TServices> & {
|
|
39
|
+
/** Record of walkBranch calls for assertions. */
|
|
40
|
+
walkBranchCalls: Array<{
|
|
41
|
+
steps: unknown[];
|
|
42
|
+
context: WorkflowContext;
|
|
43
|
+
branchKey: string | undefined;
|
|
44
|
+
}>;
|
|
45
|
+
};
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=mock-step-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-step-context.d.ts","sourceRoot":"","sources":["../../src/testing/mock-step-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,UAAU,sBAAsB,CAC9B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnE,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,iCAAiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACtC,gCAAgC;IAChC,WAAW,CAAC,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAClD,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,mEAAmE;IACnE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEnE,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAC1C,oBAAoB,CAAC,SAAS,CAAC,CAiCjC;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEnE,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG;IAC5C,wDAAwD;IACxD,UAAU,CAAC,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC;CACxD,GACA,2BAA2B,CAAC,SAAS,CAAC,GAAG;IAC1C,iDAAiD;IACjD,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,eAAe,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;CACvG,CAaA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createPauseFunction } from '../steps/base-step.js';
|
|
2
|
+
import { ServiceRegistry } from '../engine/service-registry.js';
|
|
3
|
+
import { createMockContext } from './mock-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* Create a mock StepExecutionContext for testing action steps.
|
|
6
|
+
*
|
|
7
|
+
* All fields have sensible defaults. The `pause()` function works
|
|
8
|
+
* (it throws `PauseStep`). Logger methods are no-ops by default.
|
|
9
|
+
*/
|
|
10
|
+
export function createMockStepContext(options) {
|
|
11
|
+
const noop = () => { };
|
|
12
|
+
const noopAsync = () => Promise.resolve();
|
|
13
|
+
return {
|
|
14
|
+
workflow: options?.workflow ?? createMockContext(),
|
|
15
|
+
runtime: {
|
|
16
|
+
executionId: 'exec_test',
|
|
17
|
+
stepId: 'step_test_id',
|
|
18
|
+
stepName: 'step_test',
|
|
19
|
+
isResuming: false,
|
|
20
|
+
metadata: {},
|
|
21
|
+
baseUrl: '',
|
|
22
|
+
...options?.runtime,
|
|
23
|
+
},
|
|
24
|
+
...(options?.priorState ? { priorState: options.priorState } : {}),
|
|
25
|
+
services: options?.services ??
|
|
26
|
+
new ServiceRegistry(),
|
|
27
|
+
credentials: options?.credentials ?? {},
|
|
28
|
+
staticData: {
|
|
29
|
+
get: options?.staticData?.get ?? (() => Promise.resolve(undefined)),
|
|
30
|
+
set: options?.staticData?.set ?? noopAsync,
|
|
31
|
+
delete: options?.staticData?.delete ?? noopAsync,
|
|
32
|
+
},
|
|
33
|
+
pause: createPauseFunction(),
|
|
34
|
+
emit: options?.emit ?? noop,
|
|
35
|
+
log: {
|
|
36
|
+
info: options?.log?.info ?? noop,
|
|
37
|
+
warn: options?.log?.warn ?? noop,
|
|
38
|
+
error: options?.log?.error ?? noop,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a mock ControlFlowExecutionContext for testing control flow steps.
|
|
44
|
+
*
|
|
45
|
+
* Extends `createMockStepContext` with a `walkBranch` stub that records calls.
|
|
46
|
+
*/
|
|
47
|
+
export function createMockControlFlowContext(options) {
|
|
48
|
+
const calls = [];
|
|
49
|
+
const stepCtx = createMockStepContext(options);
|
|
50
|
+
return {
|
|
51
|
+
...stepCtx,
|
|
52
|
+
walkBranch: options?.walkBranch ??
|
|
53
|
+
(async (steps, context, branchKey) => {
|
|
54
|
+
calls.push({ steps, context, branchKey });
|
|
55
|
+
}),
|
|
56
|
+
walkBranchCalls: calls,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=mock-step-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-step-context.js","sourceRoot":"","sources":["../../src/testing/mock-step-context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAuBtD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAGnC,OAA2C;IAE3C,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAE1C,OAAO;QACL,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE;QAClD,OAAO,EAAE;YACP,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,GAAG,OAAO,EAAE,OAAO;SACpB;QACD,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,QAAQ,EACN,OAAO,EAAE,QAAQ;YAChB,IAAI,eAAe,EAA4C;QAClE,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;QACvC,UAAU,EAAE;YACV,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,SAAS;YAC1C,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,SAAS;SACjD;QACD,KAAK,EAAE,mBAAmB,EAAE;QAC5B,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI;QAC3B,GAAG,EAAE;YACH,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI;YAChC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,IAAI;YAChC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI;SACnC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAG1C,OAGC;IAKD,MAAM,KAAK,GAAyF,EAAE,CAAC;IACvG,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EACR,OAAO,EAAE,UAAU;YACnB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;gBACnC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { TriggerType } from '../types/trigger-types.js';
|
|
3
|
+
import type { TriggerCategory } from '../types/categories.js';
|
|
4
|
+
/**
|
|
5
|
+
* Abstract base for all triggers.
|
|
6
|
+
*
|
|
7
|
+
* A trigger defines:
|
|
8
|
+
* - What starts a workflow (type + config)
|
|
9
|
+
* - What data it produces (outputSchema)
|
|
10
|
+
* - How to validate user config and match incoming events
|
|
11
|
+
*
|
|
12
|
+
* Host implements concrete triggers (e.g. TicketCreatedTrigger, CronTrigger)
|
|
13
|
+
* and registers them into the TriggerRegistry.
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class BaseTrigger<TConfig extends z.ZodTypeAny> {
|
|
16
|
+
abstract readonly type: TriggerType;
|
|
17
|
+
abstract readonly configSchema: TConfig;
|
|
18
|
+
abstract readonly name: string;
|
|
19
|
+
abstract readonly description: string;
|
|
20
|
+
abstract readonly outputSchema: z.ZodTypeAny;
|
|
21
|
+
abstract readonly category: TriggerCategory;
|
|
22
|
+
readonly icon?: string;
|
|
23
|
+
/** Whether this trigger requires scope-based filtering in the UI. */
|
|
24
|
+
readonly requiresScopeFilter?: boolean;
|
|
25
|
+
/** Fields used for scope filtering (e.g. channelIds, boardIds). */
|
|
26
|
+
readonly scopeFilterFields?: readonly string[];
|
|
27
|
+
/** Validate raw config against the trigger's schema. */
|
|
28
|
+
validate(config: unknown): z.infer<TConfig>;
|
|
29
|
+
/**
|
|
30
|
+
* Post-load enrichment — resolve IDs to full objects, fetch related data, etc.
|
|
31
|
+
* Called after the trigger fires, before the workflow starts.
|
|
32
|
+
*/
|
|
33
|
+
hydratePayload?(payload: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
34
|
+
/**
|
|
35
|
+
* Does the incoming event match the user-configured filters?
|
|
36
|
+
* Default: always matches. Override for domain-specific filter logic.
|
|
37
|
+
*/
|
|
38
|
+
matchFilters(_filter: Record<string, unknown>, _payload: Record<string, unknown>): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Customize the JSON Schema generated from configSchema for UI form rendering.
|
|
41
|
+
* Override to add field metadata, ordering, conditional visibility, etc.
|
|
42
|
+
*/
|
|
43
|
+
decorateConfigSchema(jsonSchema: Record<string, unknown>): Record<string, unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Resolve a per-instance output JSON Schema from the trigger's saved config.
|
|
46
|
+
*
|
|
47
|
+
* Mirrors {@link BaseStep.resolveOutputJsonSchema}. Triggers that let
|
|
48
|
+
* authors describe the shape of incoming data (`inputSchema` on the
|
|
49
|
+
* manual trigger, `bodySchema` / `headersSchema` / `querySchema` on the
|
|
50
|
+
* default webhook trigger) should override this to type the variable
|
|
51
|
+
* picker for downstream steps.
|
|
52
|
+
*
|
|
53
|
+
* Default: not implemented — `available-context.ts` falls back to the
|
|
54
|
+
* static `outputSchema`.
|
|
55
|
+
*/
|
|
56
|
+
resolveOutputJsonSchema?(config: Record<string, unknown>): Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=base-trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-trigger.d.ts","sourceRoot":"","sources":["../../src/triggers/base-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,8BAAsB,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC,UAAU;IAC5D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAEvC,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE/C,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAI3C;;;OAGG;IACH,cAAc,CAAC,CACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;OAGG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO;IAIV;;;OAGG;IACH,oBAAoB,CAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI1B;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,CACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base for all triggers.
|
|
3
|
+
*
|
|
4
|
+
* A trigger defines:
|
|
5
|
+
* - What starts a workflow (type + config)
|
|
6
|
+
* - What data it produces (outputSchema)
|
|
7
|
+
* - How to validate user config and match incoming events
|
|
8
|
+
*
|
|
9
|
+
* Host implements concrete triggers (e.g. TicketCreatedTrigger, CronTrigger)
|
|
10
|
+
* and registers them into the TriggerRegistry.
|
|
11
|
+
*/
|
|
12
|
+
export class BaseTrigger {
|
|
13
|
+
icon;
|
|
14
|
+
/** Whether this trigger requires scope-based filtering in the UI. */
|
|
15
|
+
requiresScopeFilter;
|
|
16
|
+
/** Fields used for scope filtering (e.g. channelIds, boardIds). */
|
|
17
|
+
scopeFilterFields;
|
|
18
|
+
/** Validate raw config against the trigger's schema. */
|
|
19
|
+
validate(config) {
|
|
20
|
+
return this.configSchema.parse(config);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Does the incoming event match the user-configured filters?
|
|
24
|
+
* Default: always matches. Override for domain-specific filter logic.
|
|
25
|
+
*/
|
|
26
|
+
matchFilters(_filter, _payload) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Customize the JSON Schema generated from configSchema for UI form rendering.
|
|
31
|
+
* Override to add field metadata, ordering, conditional visibility, etc.
|
|
32
|
+
*/
|
|
33
|
+
decorateConfigSchema(jsonSchema) {
|
|
34
|
+
return jsonSchema;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=base-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-trigger.js","sourceRoot":"","sources":["../../src/triggers/base-trigger.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,WAAW;IAOtB,IAAI,CAAU;IAEvB,qEAAqE;IAC5D,mBAAmB,CAAW;IAEvC,mEAAmE;IAC1D,iBAAiB,CAAqB;IAE/C,wDAAwD;IACxD,QAAQ,CAAC,MAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAqB,CAAC;IAC7D,CAAC;IAUD;;;OAGG;IACH,YAAY,CACV,OAAgC,EAChC,QAAiC;QAEjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAClB,UAAmC;QAEnC,OAAO,UAAU,CAAC;IACpB,CAAC;CAiBF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CronTrigger } from '../cron-trigger.js';
|
|
3
|
+
import type { CronSchedule } from '../cron-trigger.js';
|
|
4
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
5
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
6
|
+
declare const DefaultCronTriggerConfigSchema: z.ZodObject<{
|
|
7
|
+
expression: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
expression: string;
|
|
10
|
+
}, {
|
|
11
|
+
expression: string;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Default cron trigger — fires on a cron schedule.
|
|
15
|
+
*
|
|
16
|
+
* Config accepts only the cron expression. Timezone is set globally on the
|
|
17
|
+
* runtime via `RuntimeOptions.defaultCronTimezone` (defaults to
|
|
18
|
+
* `Asia/Kolkata`), so every cron job in a deployment runs against the same
|
|
19
|
+
* zone.
|
|
20
|
+
*/
|
|
21
|
+
export declare class DefaultCronTrigger extends CronTrigger<typeof DefaultCronTriggerConfigSchema> {
|
|
22
|
+
readonly type = BuiltinTriggerType.CRON;
|
|
23
|
+
readonly name = "Cron Trigger";
|
|
24
|
+
readonly description = "Trigger a workflow on a recurring schedule";
|
|
25
|
+
readonly category = TriggerCategory.CRON;
|
|
26
|
+
readonly icon = "timer";
|
|
27
|
+
readonly configSchema: z.ZodObject<{
|
|
28
|
+
expression: z.ZodString;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
expression: string;
|
|
31
|
+
}, {
|
|
32
|
+
expression: string;
|
|
33
|
+
}>;
|
|
34
|
+
readonly outputSchema: z.ZodObject<{
|
|
35
|
+
firedAt: z.ZodString;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
firedAt: string;
|
|
38
|
+
}, {
|
|
39
|
+
firedAt: string;
|
|
40
|
+
}>;
|
|
41
|
+
getSchedule(config: z.infer<typeof DefaultCronTriggerConfigSchema>): CronSchedule;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=default-cron-trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-cron-trigger.d.ts","sourceRoot":"","sources":["../../../src/triggers/builtin/default-cron-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,QAAA,MAAM,8BAA8B;;;;;;EAGlC,CAAC;AAEH;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,OAAO,8BAA8B,CAAC;IACxF,SAAkB,IAAI,2BAA2B;IACjD,SAAkB,IAAI,kBAAkB;IACxC,SAAkB,WAAW,gDAAgD;IAC7E,SAAkB,QAAQ,wBAAwB;IAClD,SAAkB,IAAI,WAAW;IACjC,SAAkB,YAAY;;;;;;OAAkC;IAChE,SAAkB,YAAY;;;;;;OAE3B;IAEH,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,GAAG,YAAY;CAGlF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CronTrigger } from '../cron-trigger.js';
|
|
3
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
4
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
5
|
+
const DefaultCronTriggerConfigSchema = z.object({
|
|
6
|
+
expression: z.string().min(1)
|
|
7
|
+
.describe('Cron expression defining the schedule (e.g. "0 * * * *" for every hour)'),
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Default cron trigger — fires on a cron schedule.
|
|
11
|
+
*
|
|
12
|
+
* Config accepts only the cron expression. Timezone is set globally on the
|
|
13
|
+
* runtime via `RuntimeOptions.defaultCronTimezone` (defaults to
|
|
14
|
+
* `Asia/Kolkata`), so every cron job in a deployment runs against the same
|
|
15
|
+
* zone.
|
|
16
|
+
*/
|
|
17
|
+
export class DefaultCronTrigger extends CronTrigger {
|
|
18
|
+
type = BuiltinTriggerType.CRON;
|
|
19
|
+
name = 'Cron Trigger';
|
|
20
|
+
description = 'Trigger a workflow on a recurring schedule';
|
|
21
|
+
category = TriggerCategory.CRON;
|
|
22
|
+
icon = 'timer';
|
|
23
|
+
configSchema = DefaultCronTriggerConfigSchema;
|
|
24
|
+
outputSchema = z.object({
|
|
25
|
+
firedAt: z.string(),
|
|
26
|
+
});
|
|
27
|
+
getSchedule(config) {
|
|
28
|
+
return { expression: config.expression };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=default-cron-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-cron-trigger.js","sourceRoot":"","sources":["../../../src/triggers/builtin/default-cron-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1B,QAAQ,CAAC,yEAAyE,CAAC;CACvF,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAkD;IACtE,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAC/B,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAAG,4CAA4C,CAAC;IAC3D,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC;IAChC,IAAI,GAAG,OAAO,CAAC;IACf,YAAY,GAAG,8BAA8B,CAAC;IAC9C,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CAAC;IAEH,WAAW,CAAC,MAAsD;QAChE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { EventTrigger } from '../event-trigger.js';
|
|
3
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
4
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
5
|
+
declare const DefaultEventTriggerConfigSchema: z.ZodObject<{
|
|
6
|
+
eventType: z.ZodString;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
eventType: string;
|
|
9
|
+
}, {
|
|
10
|
+
eventType: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Default event trigger — fires when a matching event is dispatched.
|
|
14
|
+
* Config accepts an event type string to filter on.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DefaultEventTrigger extends EventTrigger<typeof DefaultEventTriggerConfigSchema> {
|
|
17
|
+
readonly type = BuiltinTriggerType.EVENT;
|
|
18
|
+
readonly name = "Event Trigger";
|
|
19
|
+
readonly description = "Trigger a workflow when a specific event occurs";
|
|
20
|
+
readonly category = TriggerCategory.EVENT;
|
|
21
|
+
readonly icon = "bell";
|
|
22
|
+
readonly configSchema: z.ZodObject<{
|
|
23
|
+
eventType: z.ZodString;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
eventType: string;
|
|
26
|
+
}, {
|
|
27
|
+
eventType: string;
|
|
28
|
+
}>;
|
|
29
|
+
readonly outputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=default-event-trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-event-trigger.d.ts","sourceRoot":"","sources":["../../../src/triggers/builtin/default-event-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,QAAA,MAAM,+BAA+B;;;;;;EAEnC,CAAC;AAEH;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,OAAO,+BAA+B,CAAC;IAC3F,SAAkB,IAAI,4BAA4B;IAClD,SAAkB,IAAI,mBAAmB;IACzC,SAAkB,WAAW,qDAAqD;IAClF,SAAkB,QAAQ,yBAAyB;IACnD,SAAkB,IAAI,UAAU;IAChC,SAAkB,YAAY;;;;;;OAAmC;IACjE,SAAkB,YAAY,yCAAyB;CACxD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { EventTrigger } from '../event-trigger.js';
|
|
3
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
4
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
5
|
+
const DefaultEventTriggerConfigSchema = z.object({
|
|
6
|
+
eventType: z.string().min(1).describe('The event type to listen for (e.g. "order.created", "user.signup")'),
|
|
7
|
+
});
|
|
8
|
+
/**
|
|
9
|
+
* Default event trigger — fires when a matching event is dispatched.
|
|
10
|
+
* Config accepts an event type string to filter on.
|
|
11
|
+
*/
|
|
12
|
+
export class DefaultEventTrigger extends EventTrigger {
|
|
13
|
+
type = BuiltinTriggerType.EVENT;
|
|
14
|
+
name = 'Event Trigger';
|
|
15
|
+
description = 'Trigger a workflow when a specific event occurs';
|
|
16
|
+
category = TriggerCategory.EVENT;
|
|
17
|
+
icon = 'bell';
|
|
18
|
+
configSchema = DefaultEventTriggerConfigSchema;
|
|
19
|
+
outputSchema = z.record(z.unknown());
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=default-event-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-event-trigger.js","sourceRoot":"","sources":["../../../src/triggers/builtin/default-event-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC;CAC5G,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAoD;IACzE,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC;IAChC,IAAI,GAAG,eAAe,CAAC;IACvB,WAAW,GAAG,iDAAiD,CAAC;IAChE,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;IACjC,IAAI,GAAG,MAAM,CAAC;IACd,YAAY,GAAG,+BAA+B,CAAC;IAC/C,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CACxD"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ManualTrigger } from '../manual-trigger.js';
|
|
3
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
4
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
5
|
+
/**
|
|
6
|
+
* Attachments slot — declares that the manual trigger accepts file uploads
|
|
7
|
+
* alongside the JSON-schema-typed fields. When present, the UI renders an
|
|
8
|
+
* upload zone above the schema form; the files land in
|
|
9
|
+
* `context.trigger.attachments` as {@link Attachment} references.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ManualTriggerAttachmentsSchema: z.ZodObject<{
|
|
12
|
+
accept: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
13
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
maxCount: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
required: boolean;
|
|
18
|
+
accept?: string[] | undefined;
|
|
19
|
+
maxSize?: number | undefined;
|
|
20
|
+
maxCount?: number | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
accept?: string[] | undefined;
|
|
23
|
+
maxSize?: number | undefined;
|
|
24
|
+
maxCount?: number | undefined;
|
|
25
|
+
required?: boolean | undefined;
|
|
26
|
+
}>;
|
|
27
|
+
export type ManualTriggerAttachmentsConfig = z.infer<typeof ManualTriggerAttachmentsSchema>;
|
|
28
|
+
export declare const DefaultManualTriggerConfigSchema: z.ZodObject<{
|
|
29
|
+
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
30
|
+
attachments: z.ZodOptional<z.ZodObject<{
|
|
31
|
+
accept: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
32
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
maxCount: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
required: boolean;
|
|
37
|
+
accept?: string[] | undefined;
|
|
38
|
+
maxSize?: number | undefined;
|
|
39
|
+
maxCount?: number | undefined;
|
|
40
|
+
}, {
|
|
41
|
+
accept?: string[] | undefined;
|
|
42
|
+
maxSize?: number | undefined;
|
|
43
|
+
maxCount?: number | undefined;
|
|
44
|
+
required?: boolean | undefined;
|
|
45
|
+
}>>;
|
|
46
|
+
}, "strip", z.ZodTypeAny, {
|
|
47
|
+
inputSchema?: Record<string, unknown> | undefined;
|
|
48
|
+
attachments?: {
|
|
49
|
+
required: boolean;
|
|
50
|
+
accept?: string[] | undefined;
|
|
51
|
+
maxSize?: number | undefined;
|
|
52
|
+
maxCount?: number | undefined;
|
|
53
|
+
} | undefined;
|
|
54
|
+
}, {
|
|
55
|
+
inputSchema?: Record<string, unknown> | undefined;
|
|
56
|
+
attachments?: {
|
|
57
|
+
accept?: string[] | undefined;
|
|
58
|
+
maxSize?: number | undefined;
|
|
59
|
+
maxCount?: number | undefined;
|
|
60
|
+
required?: boolean | undefined;
|
|
61
|
+
} | undefined;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* Default manual trigger — fires via `runtime.triggerManual()`.
|
|
65
|
+
* Accepts any JSON payload as input plus optional file attachments.
|
|
66
|
+
*/
|
|
67
|
+
export declare class DefaultManualTrigger extends ManualTrigger<typeof DefaultManualTriggerConfigSchema> {
|
|
68
|
+
readonly type = BuiltinTriggerType.MANUAL;
|
|
69
|
+
readonly name = "Manual Trigger";
|
|
70
|
+
readonly description = "Trigger a workflow manually with a custom payload";
|
|
71
|
+
readonly category = TriggerCategory.MANUAL;
|
|
72
|
+
readonly icon = "cursor";
|
|
73
|
+
readonly configSchema: z.ZodObject<{
|
|
74
|
+
inputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
75
|
+
attachments: z.ZodOptional<z.ZodObject<{
|
|
76
|
+
accept: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
77
|
+
maxSize: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
maxCount: z.ZodOptional<z.ZodNumber>;
|
|
79
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
80
|
+
}, "strip", z.ZodTypeAny, {
|
|
81
|
+
required: boolean;
|
|
82
|
+
accept?: string[] | undefined;
|
|
83
|
+
maxSize?: number | undefined;
|
|
84
|
+
maxCount?: number | undefined;
|
|
85
|
+
}, {
|
|
86
|
+
accept?: string[] | undefined;
|
|
87
|
+
maxSize?: number | undefined;
|
|
88
|
+
maxCount?: number | undefined;
|
|
89
|
+
required?: boolean | undefined;
|
|
90
|
+
}>>;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
inputSchema?: Record<string, unknown> | undefined;
|
|
93
|
+
attachments?: {
|
|
94
|
+
required: boolean;
|
|
95
|
+
accept?: string[] | undefined;
|
|
96
|
+
maxSize?: number | undefined;
|
|
97
|
+
maxCount?: number | undefined;
|
|
98
|
+
} | undefined;
|
|
99
|
+
}, {
|
|
100
|
+
inputSchema?: Record<string, unknown> | undefined;
|
|
101
|
+
attachments?: {
|
|
102
|
+
accept?: string[] | undefined;
|
|
103
|
+
maxSize?: number | undefined;
|
|
104
|
+
maxCount?: number | undefined;
|
|
105
|
+
required?: boolean | undefined;
|
|
106
|
+
} | undefined;
|
|
107
|
+
}>;
|
|
108
|
+
readonly outputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
109
|
+
decorateConfigSchema(jsonSchema: Record<string, unknown>): Record<string, unknown>;
|
|
110
|
+
/**
|
|
111
|
+
* The author-supplied `inputSchema` describes the manual trigger payload
|
|
112
|
+
* exactly. Whatever they send via `triggerManual(workflowId, payload)`
|
|
113
|
+
* is merged into `context.trigger`, so the variable picker should see
|
|
114
|
+
* those typed fields directly. Falls back to a permissive object when
|
|
115
|
+
* the author hasn't declared a schema.
|
|
116
|
+
*/
|
|
117
|
+
resolveOutputJsonSchema(config: Record<string, unknown>): Record<string, unknown>;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=default-manual-trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-manual-trigger.d.ts","sourceRoot":"","sources":["../../../src/triggers/builtin/default-manual-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EASzC,CAAC;AAEH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAE5F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK3C,CAAC;AAEH;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,OAAO,gCAAgC,CAAC;IAC9F,SAAkB,IAAI,6BAA6B;IACnD,SAAkB,IAAI,oBAAoB;IAC1C,SAAkB,WAAW,uDAAuD;IACpF,SAAkB,QAAQ,0BAA0B;IACpD,SAAkB,IAAI,YAAY;IAClC,SAAkB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAoC;IAClE,SAAkB,YAAY,yCAAyB;IAE9C,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ3F;;;;;;OAMG;IACM,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAY3F"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ManualTrigger } from '../manual-trigger.js';
|
|
3
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
4
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
5
|
+
/**
|
|
6
|
+
* Attachments slot — declares that the manual trigger accepts file uploads
|
|
7
|
+
* alongside the JSON-schema-typed fields. When present, the UI renders an
|
|
8
|
+
* upload zone above the schema form; the files land in
|
|
9
|
+
* `context.trigger.attachments` as {@link Attachment} references.
|
|
10
|
+
*/
|
|
11
|
+
export const ManualTriggerAttachmentsSchema = z.object({
|
|
12
|
+
accept: z.array(z.string()).optional()
|
|
13
|
+
.describe('Allowed MIME types or wildcards, e.g. ["application/pdf", "image/*"]'),
|
|
14
|
+
maxSize: z.number().int().positive().optional()
|
|
15
|
+
.describe('Max bytes per file'),
|
|
16
|
+
maxCount: z.number().int().positive().optional()
|
|
17
|
+
.describe('Max number of files'),
|
|
18
|
+
required: z.boolean().default(false)
|
|
19
|
+
.describe('Whether at least one attachment is required to trigger the workflow'),
|
|
20
|
+
});
|
|
21
|
+
export const DefaultManualTriggerConfigSchema = z.object({
|
|
22
|
+
inputSchema: z.record(z.unknown()).optional()
|
|
23
|
+
.describe('JSON Schema describing the expected manual input. The UI renders a form from this when triggering'),
|
|
24
|
+
attachments: ManualTriggerAttachmentsSchema.optional()
|
|
25
|
+
.describe('When set, the trigger UI shows a file upload area; uploaded files land in context.trigger.attachments'),
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Default manual trigger — fires via `runtime.triggerManual()`.
|
|
29
|
+
* Accepts any JSON payload as input plus optional file attachments.
|
|
30
|
+
*/
|
|
31
|
+
export class DefaultManualTrigger extends ManualTrigger {
|
|
32
|
+
type = BuiltinTriggerType.MANUAL;
|
|
33
|
+
name = 'Manual Trigger';
|
|
34
|
+
description = 'Trigger a workflow manually with a custom payload';
|
|
35
|
+
category = TriggerCategory.MANUAL;
|
|
36
|
+
icon = 'cursor';
|
|
37
|
+
configSchema = DefaultManualTriggerConfigSchema;
|
|
38
|
+
outputSchema = z.record(z.unknown());
|
|
39
|
+
decorateConfigSchema(jsonSchema) {
|
|
40
|
+
const props = jsonSchema['properties'];
|
|
41
|
+
if (props?.['inputSchema']) {
|
|
42
|
+
props['inputSchema'] = { ...props['inputSchema'], format: 'json-schema' };
|
|
43
|
+
}
|
|
44
|
+
return jsonSchema;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The author-supplied `inputSchema` describes the manual trigger payload
|
|
48
|
+
* exactly. Whatever they send via `triggerManual(workflowId, payload)`
|
|
49
|
+
* is merged into `context.trigger`, so the variable picker should see
|
|
50
|
+
* those typed fields directly. Falls back to a permissive object when
|
|
51
|
+
* the author hasn't declared a schema.
|
|
52
|
+
*/
|
|
53
|
+
resolveOutputJsonSchema(config) {
|
|
54
|
+
const inputSchema = config['inputSchema'];
|
|
55
|
+
if (inputSchema &&
|
|
56
|
+
typeof inputSchema === 'object' &&
|
|
57
|
+
!Array.isArray(inputSchema) &&
|
|
58
|
+
Object.keys(inputSchema).length > 0) {
|
|
59
|
+
return inputSchema;
|
|
60
|
+
}
|
|
61
|
+
return { type: 'object', additionalProperties: true };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=default-manual-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-manual-trigger.js","sourceRoot":"","sources":["../../../src/triggers/builtin/default-manual-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,sEAAsE,CAAC;IACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;SAC5C,QAAQ,CAAC,oBAAoB,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;SAC7C,QAAQ,CAAC,qBAAqB,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SACjC,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC1C,QAAQ,CAAC,mGAAmG,CAAC;IAChH,WAAW,EAAE,8BAA8B,CAAC,QAAQ,EAAE;SACnD,QAAQ,CAAC,uGAAuG,CAAC;CACrH,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAsD;IAC5E,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACjC,IAAI,GAAG,gBAAgB,CAAC;IACxB,WAAW,GAAG,mDAAmD,CAAC;IAClE,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC;IAClC,IAAI,GAAG,QAAQ,CAAC;IAChB,YAAY,GAAG,gCAAgC,CAAC;IAChD,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAE9C,oBAAoB,CAAC,UAAmC;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAwD,CAAC;QAC9F,IAAI,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC5E,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACM,uBAAuB,CAAC,MAA+B;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1C,IACE,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,WAAsC,CAAC,CAAC,MAAM,GAAG,CAAC,EAC9D,CAAC;YACD,OAAO,WAAsC,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { WebhookTrigger } from '../webhook-trigger.js';
|
|
3
|
+
import type { WebhookRequest, WebhookHandleResult } from '../webhook-trigger.js';
|
|
4
|
+
import { BuiltinTriggerType } from '../../types/known-types.js';
|
|
5
|
+
import { TriggerCategory } from '../../types/categories.js';
|
|
6
|
+
declare const DefaultWebhookTriggerConfigSchema: z.ZodObject<{
|
|
7
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
8
|
+
headersSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
9
|
+
bodySchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
secret?: string | undefined;
|
|
12
|
+
headersSchema?: Record<string, unknown> | undefined;
|
|
13
|
+
bodySchema?: Record<string, unknown> | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
secret?: string | undefined;
|
|
16
|
+
headersSchema?: Record<string, unknown> | undefined;
|
|
17
|
+
bodySchema?: Record<string, unknown> | undefined;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Default webhook trigger — accepts an incoming POST request and emits the
|
|
21
|
+
* body + headers as trigger data.
|
|
22
|
+
*
|
|
23
|
+
* Method is always POST (the router is POST-only for webhooks); query
|
|
24
|
+
* parameters are intentionally dropped — webhook payloads belong in the
|
|
25
|
+
* body, not in the query string. If you need a vendor that uses query
|
|
26
|
+
* params, subclass {@link WebhookTrigger} for that integration.
|
|
27
|
+
*
|
|
28
|
+
* Authors can optionally describe the expected shape of the incoming
|
|
29
|
+
* `headers` and `body` via JSON Schema fields in the config. These schemas
|
|
30
|
+
* type the variable picker for downstream steps — runtime parsing is
|
|
31
|
+
* unchanged (no rejection on mismatch).
|
|
32
|
+
*/
|
|
33
|
+
export declare class DefaultWebhookTrigger extends WebhookTrigger<typeof DefaultWebhookTriggerConfigSchema> {
|
|
34
|
+
readonly type = BuiltinTriggerType.WEBHOOK;
|
|
35
|
+
readonly name = "Webhook Trigger";
|
|
36
|
+
readonly description = "Trigger a workflow via an incoming HTTP POST request";
|
|
37
|
+
readonly category = TriggerCategory.WEBHOOK;
|
|
38
|
+
readonly icon = "satellite";
|
|
39
|
+
readonly configSchema: z.ZodObject<{
|
|
40
|
+
secret: z.ZodOptional<z.ZodString>;
|
|
41
|
+
headersSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
42
|
+
bodySchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
43
|
+
}, "strip", z.ZodTypeAny, {
|
|
44
|
+
secret?: string | undefined;
|
|
45
|
+
headersSchema?: Record<string, unknown> | undefined;
|
|
46
|
+
bodySchema?: Record<string, unknown> | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
secret?: string | undefined;
|
|
49
|
+
headersSchema?: Record<string, unknown> | undefined;
|
|
50
|
+
bodySchema?: Record<string, unknown> | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
readonly outputSchema: z.ZodObject<{
|
|
53
|
+
headers: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
54
|
+
body: z.ZodUnknown;
|
|
55
|
+
}, "strip", z.ZodTypeAny, {
|
|
56
|
+
headers: Record<string, unknown>;
|
|
57
|
+
body?: unknown;
|
|
58
|
+
}, {
|
|
59
|
+
headers: Record<string, unknown>;
|
|
60
|
+
body?: unknown;
|
|
61
|
+
}>;
|
|
62
|
+
decorateConfigSchema(jsonSchema: Record<string, unknown>): Record<string, unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Per-instance output schema. Plugs each user-supplied JSON Schema into
|
|
65
|
+
* the corresponding standard field; defaults to permissive shapes when
|
|
66
|
+
* the author hasn't typed it.
|
|
67
|
+
*/
|
|
68
|
+
resolveOutputJsonSchema(config: Record<string, unknown>): Record<string, unknown>;
|
|
69
|
+
handleRequest(request: WebhookRequest, _config: z.infer<typeof DefaultWebhookTriggerConfigSchema>): Promise<WebhookHandleResult>;
|
|
70
|
+
}
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=default-webhook-trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-webhook-trigger.d.ts","sourceRoot":"","sources":["../../../src/triggers/builtin/default-webhook-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,QAAA,MAAM,iCAAiC;;;;;;;;;;;;EAOrC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,SAAQ,cAAc,CAAC,OAAO,iCAAiC,CAAC;IACjG,SAAkB,IAAI,8BAA8B;IACpD,SAAkB,IAAI,qBAAqB;IAC3C,SAAkB,WAAW,0DAA0D;IACvF,SAAkB,QAAQ,2BAA2B;IACrD,SAAkB,IAAI,eAAe;IACrC,SAAkB,YAAY;;;;;;;;;;;;OAAqC;IACnE,SAAkB,YAAY;;;;;;;;;OAG3B;IAEM,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW3F;;;;OAIG;IACM,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBpF,aAAa,CACjB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,GACzD,OAAO,CAAC,mBAAmB,CAAC;CAYhC"}
|