@xyne/workflow-sdk 3.2.37 → 3.2.39
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/agents/agent-step.d.ts +2 -2
- package/dist/agents/host-agent-step.d.ts +1 -1
- package/dist/builder/index.d.ts +2 -2
- package/dist/builder/index.d.ts.map +1 -1
- package/dist/builder/index.js +1 -1
- package/dist/builder/index.js.map +1 -1
- package/dist/client/types.d.ts +7 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/workflow-client.d.ts.map +1 -1
- package/dist/client/workflow-client.js +7 -0
- package/dist/client/workflow-client.js.map +1 -1
- package/dist/common/citation-ref.d.ts +4 -4
- package/dist/common/credentials.d.ts +107 -0
- package/dist/common/credentials.d.ts.map +1 -1
- package/dist/common/credentials.js +67 -0
- package/dist/common/credentials.js.map +1 -1
- package/dist/common/index.d.ts +2 -2
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +2 -2
- package/dist/common/index.js.map +1 -1
- package/dist/connectors/builtin/builtin-connector.d.ts +33 -0
- package/dist/connectors/builtin/builtin-connector.d.ts.map +1 -0
- package/dist/connectors/builtin/builtin-connector.js +63 -0
- package/dist/connectors/builtin/builtin-connector.js.map +1 -0
- package/dist/connectors/builtin/credentials.d.ts +18 -0
- package/dist/connectors/builtin/credentials.d.ts.map +1 -0
- package/dist/connectors/builtin/credentials.js +50 -0
- package/dist/connectors/builtin/credentials.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/code.step.d.ts +4 -4
- package/dist/connectors/builtin/steps/code.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/code.step.js +3 -3
- package/dist/connectors/builtin/steps/code.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/conditional.step.d.ts +10 -10
- package/dist/connectors/builtin/steps/conditional.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/conditional.step.js +4 -4
- package/dist/connectors/builtin/steps/conditional.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/dedup.step.d.ts +4 -4
- package/dist/connectors/builtin/steps/dedup.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/dedup.step.js +3 -3
- package/dist/connectors/builtin/steps/dedup.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/http-request.step.d.ts +29 -22
- package/dist/connectors/builtin/steps/http-request.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/http-request.step.js +15 -9
- package/dist/connectors/builtin/steps/http-request.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/loop.step.d.ts +4 -4
- package/dist/connectors/builtin/steps/loop.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/loop.step.js +3 -3
- package/dist/connectors/builtin/steps/loop.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/map.step.d.ts +4 -4
- package/dist/connectors/builtin/steps/map.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/map.step.js +4 -4
- package/dist/connectors/builtin/steps/map.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/parallel.step.d.ts +4 -4
- package/dist/connectors/builtin/steps/parallel.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/parallel.step.js +3 -3
- package/dist/connectors/builtin/steps/parallel.step.js.map +1 -0
- package/dist/connectors/builtin/steps/ssrf-guard.d.ts.map +1 -0
- package/dist/connectors/builtin/steps/ssrf-guard.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/switch.step.d.ts +14 -14
- package/dist/connectors/builtin/steps/switch.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/switch.step.js +4 -4
- package/dist/connectors/builtin/steps/switch.step.js.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/wait.step.d.ts +4 -4
- package/dist/connectors/builtin/steps/wait.step.d.ts.map +1 -0
- package/dist/{steps/builtin → connectors/builtin/steps}/wait.step.js +4 -4
- package/dist/connectors/builtin/steps/wait.step.js.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-cron-trigger.d.ts +4 -4
- package/dist/connectors/builtin/triggers/default-cron-trigger.d.ts.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-cron-trigger.js +3 -3
- package/dist/connectors/builtin/triggers/default-cron-trigger.js.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-event-trigger.d.ts +3 -3
- package/dist/connectors/builtin/triggers/default-event-trigger.d.ts.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-event-trigger.js +3 -3
- package/dist/connectors/builtin/triggers/default-event-trigger.js.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-manual-trigger.d.ts +3 -3
- package/dist/connectors/builtin/triggers/default-manual-trigger.d.ts.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-manual-trigger.js +3 -3
- package/dist/connectors/builtin/triggers/default-manual-trigger.js.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-webhook-v2-trigger.d.ts +10 -8
- package/dist/connectors/builtin/triggers/default-webhook-v2-trigger.d.ts.map +1 -0
- package/dist/{triggers/builtin → connectors/builtin/triggers}/default-webhook-v2-trigger.js +10 -8
- package/dist/connectors/builtin/triggers/default-webhook-v2-trigger.js.map +1 -0
- package/dist/connectors/core/base-connector.d.ts +50 -0
- package/dist/connectors/core/base-connector.d.ts.map +1 -0
- package/dist/connectors/core/base-connector.js +8 -0
- package/dist/connectors/core/base-connector.js.map +1 -0
- package/dist/connectors/core/connector-registry.d.ts +130 -0
- package/dist/connectors/core/connector-registry.d.ts.map +1 -0
- package/dist/connectors/core/connector-registry.js +353 -0
- package/dist/connectors/core/connector-registry.js.map +1 -0
- package/dist/connectors/core/credentials.d.ts +104 -0
- package/dist/connectors/core/credentials.d.ts.map +1 -0
- package/dist/connectors/core/credentials.js +67 -0
- package/dist/connectors/core/credentials.js.map +1 -0
- package/dist/connectors/core/index.d.ts +7 -0
- package/dist/connectors/core/index.d.ts.map +1 -0
- package/dist/connectors/core/index.js +5 -0
- package/dist/connectors/core/index.js.map +1 -0
- package/dist/engine/available-context.d.ts +3 -4
- package/dist/engine/available-context.d.ts.map +1 -1
- package/dist/engine/available-context.js +17 -13
- package/dist/engine/available-context.js.map +1 -1
- package/dist/engine/config-validator.d.ts +13 -5
- package/dist/engine/config-validator.d.ts.map +1 -1
- package/dist/engine/config-validator.js +89 -11
- package/dist/engine/config-validator.js.map +1 -1
- package/dist/engine/credential-resolver.d.ts +42 -0
- package/dist/engine/credential-resolver.d.ts.map +1 -0
- package/dist/engine/credential-resolver.js +63 -0
- package/dist/engine/credential-resolver.js.map +1 -0
- package/dist/engine/workflow-executor.d.ts +4 -5
- package/dist/engine/workflow-executor.d.ts.map +1 -1
- package/dist/engine/workflow-executor.js +16 -38
- package/dist/engine/workflow-executor.js.map +1 -1
- package/dist/index.d.ts +43 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -15
- package/dist/index.js.map +1 -1
- package/dist/ingest/body.d.ts +18 -0
- package/dist/ingest/body.d.ts.map +1 -0
- package/dist/ingest/body.js +47 -0
- package/dist/ingest/body.js.map +1 -0
- package/dist/ingest/filter.d.ts +11 -0
- package/dist/ingest/filter.d.ts.map +1 -0
- package/dist/ingest/filter.js +23 -0
- package/dist/ingest/filter.js.map +1 -0
- package/dist/ingest/headers.d.ts +3 -0
- package/dist/ingest/headers.d.ts.map +1 -0
- package/dist/ingest/headers.js +11 -0
- package/dist/ingest/headers.js.map +1 -0
- package/dist/ingest/types.d.ts +50 -0
- package/dist/ingest/types.d.ts.map +1 -0
- package/dist/ingest/types.js +9 -0
- package/dist/ingest/types.js.map +1 -0
- package/dist/persistence/in-memory-adapter.d.ts +4 -8
- package/dist/persistence/in-memory-adapter.d.ts.map +1 -1
- package/dist/persistence/in-memory-adapter.js +8 -25
- package/dist/persistence/in-memory-adapter.js.map +1 -1
- package/dist/persistence/types.d.ts +5 -19
- package/dist/persistence/types.d.ts.map +1 -1
- package/dist/router/types.d.ts +31 -3
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/workflow-router.d.ts +4 -3
- package/dist/router/workflow-router.d.ts.map +1 -1
- package/dist/router/workflow-router.js +84 -41
- package/dist/router/workflow-router.js.map +1 -1
- package/dist/runtime/types.d.ts +6 -4
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/workflow-runtime.d.ts +46 -37
- package/dist/runtime/workflow-runtime.d.ts.map +1 -1
- package/dist/runtime/workflow-runtime.js +173 -133
- package/dist/runtime/workflow-runtime.js.map +1 -1
- package/dist/steps/base-step.d.ts +24 -0
- package/dist/steps/base-step.d.ts.map +1 -1
- package/dist/steps/base-step.js +23 -0
- package/dist/steps/base-step.js.map +1 -1
- package/dist/steps/{step-registry.d.ts → step-descriptor.d.ts} +24 -32
- package/dist/steps/step-descriptor.d.ts.map +1 -0
- package/dist/steps/step-descriptor.js +33 -0
- package/dist/steps/step-descriptor.js.map +1 -0
- package/dist/testing/authz-conformance.d.ts.map +1 -1
- package/dist/testing/authz-conformance.js +6 -7
- package/dist/testing/authz-conformance.js.map +1 -1
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/mock-step-context.d.ts +1 -0
- package/dist/testing/mock-step-context.d.ts.map +1 -1
- package/dist/testing/mock-step-context.js +1 -0
- package/dist/testing/mock-step-context.js.map +1 -1
- package/dist/testing/test-connector.d.ts +40 -0
- package/dist/testing/test-connector.d.ts.map +1 -0
- package/dist/testing/test-connector.js +39 -0
- package/dist/testing/test-connector.js.map +1 -0
- package/dist/triggers/api-trigger.d.ts +15 -0
- package/dist/triggers/api-trigger.d.ts.map +1 -0
- package/dist/triggers/api-trigger.js +14 -0
- package/dist/triggers/api-trigger.js.map +1 -0
- package/dist/triggers/base-trigger.d.ts +30 -0
- package/dist/triggers/base-trigger.d.ts.map +1 -1
- package/dist/triggers/base-trigger.js +17 -0
- package/dist/triggers/base-trigger.js.map +1 -1
- package/dist/triggers/trigger-descriptor.d.ts +44 -0
- package/dist/triggers/trigger-descriptor.d.ts.map +1 -0
- package/dist/triggers/trigger-descriptor.js +30 -0
- package/dist/triggers/trigger-descriptor.js.map +1 -0
- package/dist/triggers/webhook-trigger.d.ts +48 -36
- package/dist/triggers/webhook-trigger.d.ts.map +1 -1
- package/dist/triggers/webhook-trigger.js +40 -6
- package/dist/triggers/webhook-trigger.js.map +1 -1
- package/dist/types/known-types.d.ts +0 -1
- package/dist/types/known-types.d.ts.map +1 -1
- package/dist/types/known-types.js +0 -1
- package/dist/types/known-types.js.map +1 -1
- package/dist/types/validation.d.ts +3 -1
- package/dist/types/validation.d.ts.map +1 -1
- package/dist/types/validation.js +2 -0
- package/dist/types/validation.js.map +1 -1
- package/dist/types/workflow-config.d.ts +23 -0
- package/dist/types/workflow-config.d.ts.map +1 -1
- package/dist/types/workflow-config.js +8 -0
- package/dist/types/workflow-config.js.map +1 -1
- package/dist/util/credential-slot-schema.d.ts +20 -0
- package/dist/util/credential-slot-schema.d.ts.map +1 -0
- package/dist/util/credential-slot-schema.js +30 -0
- package/dist/util/credential-slot-schema.js.map +1 -0
- package/package.json +1 -1
- package/dist/runtime/execution-event-bus.d.ts +0 -38
- package/dist/runtime/execution-event-bus.d.ts.map +0 -1
- package/dist/runtime/execution-event-bus.js +0 -87
- package/dist/runtime/execution-event-bus.js.map +0 -1
- package/dist/steps/builtin/code.step.d.ts.map +0 -1
- package/dist/steps/builtin/code.step.js.map +0 -1
- package/dist/steps/builtin/conditional.step.d.ts.map +0 -1
- package/dist/steps/builtin/conditional.step.js.map +0 -1
- package/dist/steps/builtin/dedup.step.d.ts.map +0 -1
- package/dist/steps/builtin/dedup.step.js.map +0 -1
- package/dist/steps/builtin/http-request.step.d.ts.map +0 -1
- package/dist/steps/builtin/http-request.step.js.map +0 -1
- package/dist/steps/builtin/loop.step.d.ts.map +0 -1
- package/dist/steps/builtin/loop.step.js.map +0 -1
- package/dist/steps/builtin/map.step.d.ts.map +0 -1
- package/dist/steps/builtin/map.step.js.map +0 -1
- package/dist/steps/builtin/parallel.step.d.ts.map +0 -1
- package/dist/steps/builtin/parallel.step.js.map +0 -1
- package/dist/steps/builtin/ssrf-guard.d.ts.map +0 -1
- package/dist/steps/builtin/ssrf-guard.js.map +0 -1
- package/dist/steps/builtin/switch.step.d.ts.map +0 -1
- package/dist/steps/builtin/switch.step.js.map +0 -1
- package/dist/steps/builtin/wait.step.d.ts.map +0 -1
- package/dist/steps/builtin/wait.step.js.map +0 -1
- package/dist/steps/step-registry.d.ts.map +0 -1
- package/dist/steps/step-registry.js +0 -103
- package/dist/steps/step-registry.js.map +0 -1
- package/dist/triggers/builtin/default-cron-trigger.d.ts.map +0 -1
- package/dist/triggers/builtin/default-cron-trigger.js.map +0 -1
- package/dist/triggers/builtin/default-event-trigger.d.ts.map +0 -1
- package/dist/triggers/builtin/default-event-trigger.js.map +0 -1
- package/dist/triggers/builtin/default-manual-trigger.d.ts.map +0 -1
- package/dist/triggers/builtin/default-manual-trigger.js.map +0 -1
- package/dist/triggers/builtin/default-webhook-trigger.d.ts +0 -72
- package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +0 -1
- package/dist/triggers/builtin/default-webhook-trigger.js +0 -91
- package/dist/triggers/builtin/default-webhook-trigger.js.map +0 -1
- package/dist/triggers/builtin/default-webhook-v2-trigger.d.ts.map +0 -1
- package/dist/triggers/builtin/default-webhook-v2-trigger.js.map +0 -1
- package/dist/triggers/trigger-registry.d.ts +0 -48
- package/dist/triggers/trigger-registry.d.ts.map +0 -1
- package/dist/triggers/trigger-registry.js +0 -83
- package/dist/triggers/trigger-registry.js.map +0 -1
- /package/dist/{steps/builtin → connectors/builtin/steps}/ssrf-guard.d.ts +0 -0
- /package/dist/{steps/builtin → connectors/builtin/steps}/ssrf-guard.js +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A throwaway connector for tests.
|
|
3
|
+
*
|
|
4
|
+
* `ConnectorRegistry` has no `registerStep` on purpose — a component may only
|
|
5
|
+
* enter the system as part of a connector, because every check the registry
|
|
6
|
+
* makes depends on knowing the owner. That is right in production and
|
|
7
|
+
* inconvenient in a test that wants one fake step, so this wraps loose
|
|
8
|
+
* components in a connector named `test`.
|
|
9
|
+
*/
|
|
10
|
+
import { BaseConnector } from '../connectors/core/base-connector.js';
|
|
11
|
+
import type { AnyStep, AnyTrigger } from '../connectors/core/base-connector.js';
|
|
12
|
+
import { ConnectorRegistry } from '../connectors/core/connector-registry.js';
|
|
13
|
+
import type { CredentialDefinition } from '../connectors/core/credentials.js';
|
|
14
|
+
export declare class TestConnector extends BaseConnector {
|
|
15
|
+
readonly id = "test";
|
|
16
|
+
readonly version = "1.0.0";
|
|
17
|
+
readonly name = "Test";
|
|
18
|
+
readonly description = "Components under test";
|
|
19
|
+
/** Whatever the components under test accept; empty unless a case sets it. */
|
|
20
|
+
readonly credentials: readonly CredentialDefinition[];
|
|
21
|
+
readonly steps: readonly AnyStep[];
|
|
22
|
+
readonly triggers: readonly AnyTrigger[];
|
|
23
|
+
constructor(components?: {
|
|
24
|
+
steps?: readonly AnyStep[];
|
|
25
|
+
triggers?: readonly AnyTrigger[];
|
|
26
|
+
credentials?: readonly CredentialDefinition[];
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A registry holding these components, under one test connector.
|
|
31
|
+
*
|
|
32
|
+
* The built-ins (CODE, WAIT, LOOP, …) come with every `ConnectorRegistry`, so
|
|
33
|
+
* cases that drive a real control-flow step need nothing extra here.
|
|
34
|
+
*/
|
|
35
|
+
export declare function testRegistry(components?: {
|
|
36
|
+
steps?: readonly AnyStep[];
|
|
37
|
+
triggers?: readonly AnyTrigger[];
|
|
38
|
+
credentials?: readonly CredentialDefinition[];
|
|
39
|
+
}): ConnectorRegistry;
|
|
40
|
+
//# sourceMappingURL=test-connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-connector.d.ts","sourceRoot":"","sources":["../../src/testing/test-connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,qBAAa,aAAc,SAAQ,aAAa;IAC9C,SAAkB,EAAE,UAAU;IAC9B,SAAkB,OAAO,WAAW;IACpC,SAAkB,IAAI,UAAU;IAChC,SAAkB,WAAW,2BAA2B;IACxD,8EAA8E;IAC9E,SAAkB,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC/D,SAAkB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5C,SAAkB,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;gBAEtC,UAAU,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;QACjC,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;KAC/C;CAMF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,CAAC,EAAE;IACxC,KAAK,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAC/C,GAAG,iBAAiB,CAIpB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A throwaway connector for tests.
|
|
3
|
+
*
|
|
4
|
+
* `ConnectorRegistry` has no `registerStep` on purpose — a component may only
|
|
5
|
+
* enter the system as part of a connector, because every check the registry
|
|
6
|
+
* makes depends on knowing the owner. That is right in production and
|
|
7
|
+
* inconvenient in a test that wants one fake step, so this wraps loose
|
|
8
|
+
* components in a connector named `test`.
|
|
9
|
+
*/
|
|
10
|
+
import { BaseConnector } from '../connectors/core/base-connector.js';
|
|
11
|
+
import { ConnectorRegistry } from '../connectors/core/connector-registry.js';
|
|
12
|
+
export class TestConnector extends BaseConnector {
|
|
13
|
+
id = 'test';
|
|
14
|
+
version = '1.0.0';
|
|
15
|
+
name = 'Test';
|
|
16
|
+
description = 'Components under test';
|
|
17
|
+
/** Whatever the components under test accept; empty unless a case sets it. */
|
|
18
|
+
credentials;
|
|
19
|
+
steps;
|
|
20
|
+
triggers;
|
|
21
|
+
constructor(components) {
|
|
22
|
+
super();
|
|
23
|
+
this.steps = components?.steps ?? [];
|
|
24
|
+
this.triggers = components?.triggers ?? [];
|
|
25
|
+
this.credentials = components?.credentials ?? [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A registry holding these components, under one test connector.
|
|
30
|
+
*
|
|
31
|
+
* The built-ins (CODE, WAIT, LOOP, …) come with every `ConnectorRegistry`, so
|
|
32
|
+
* cases that drive a real control-flow step need nothing extra here.
|
|
33
|
+
*/
|
|
34
|
+
export function testRegistry(components) {
|
|
35
|
+
const registry = new ConnectorRegistry();
|
|
36
|
+
registry.register(new TestConnector(components));
|
|
37
|
+
return registry;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=test-connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-connector.js","sourceRoot":"","sources":["../../src/testing/test-connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAG7E,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC5B,EAAE,GAAG,MAAM,CAAC;IACZ,OAAO,GAAG,OAAO,CAAC;IAClB,IAAI,GAAG,MAAM,CAAC;IACd,WAAW,GAAG,uBAAuB,CAAC;IACxD,8EAA8E;IAC5D,WAAW,CAAkC;IAC7C,KAAK,CAAqB;IAC1B,QAAQ,CAAwB;IAElD,YAAY,UAIX;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;IACnD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,UAI5B;IACC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import { ManualTrigger } from './manual-trigger.js';
|
|
3
|
+
/**
|
|
4
|
+
* API trigger — started by a client calling the workflow's API trigger route.
|
|
5
|
+
*
|
|
6
|
+
* The SDK does not authenticate that caller; a host that exposes the route
|
|
7
|
+
* guards it, for example with an API key. Like a manual trigger, the payload is
|
|
8
|
+
* described by the author's input schema.
|
|
9
|
+
*
|
|
10
|
+
* The API trigger route accepts only workflows whose trigger is an `ApiTrigger`,
|
|
11
|
+
* the same way the webhook route accepts only a `WebhookTrigger`.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class ApiTrigger<TConfig extends z.ZodTypeAny = z.ZodTypeAny> extends ManualTrigger<TConfig> {
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=api-trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-trigger.d.ts","sourceRoot":"","sources":["../../src/triggers/api-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;GASG;AACH,8BAAsB,UAAU,CAC9B,OAAO,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAC3C,SAAQ,aAAa,CAAC,OAAO,CAAC;CAAG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ManualTrigger } from './manual-trigger.js';
|
|
2
|
+
/**
|
|
3
|
+
* API trigger — started by a client calling the workflow's API trigger route.
|
|
4
|
+
*
|
|
5
|
+
* The SDK does not authenticate that caller; a host that exposes the route
|
|
6
|
+
* guards it, for example with an API key. Like a manual trigger, the payload is
|
|
7
|
+
* described by the author's input schema.
|
|
8
|
+
*
|
|
9
|
+
* The API trigger route accepts only workflows whose trigger is an `ApiTrigger`,
|
|
10
|
+
* the same way the webhook route accepts only a `WebhookTrigger`.
|
|
11
|
+
*/
|
|
12
|
+
export class ApiTrigger extends ManualTrigger {
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=api-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-trigger.js","sourceRoot":"","sources":["../../src/triggers/api-trigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,OAAgB,UAEpB,SAAQ,aAAsB;CAAG"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
2
|
import type { TriggerType } from '../types/trigger-types.js';
|
|
3
3
|
import type { TriggerCategory } from '../types/categories.js';
|
|
4
|
+
import type { CredentialSlot } from '../steps/base-step.js';
|
|
5
|
+
import type { CredentialRequirement } from '../connectors/core/credentials.js';
|
|
6
|
+
import type { ResolvedCredential } from '../common/credentials.js';
|
|
7
|
+
import type { ResourceAttributes } from '../authz/attributes.js';
|
|
8
|
+
/** What the engine hands a trigger's server-side methods. */
|
|
9
|
+
export interface TriggerExecutionContext {
|
|
10
|
+
/** Credentials the trigger's slots resolved to, keyed by slot name. */
|
|
11
|
+
readonly credentials: Readonly<Record<string, ResolvedCredential>>;
|
|
12
|
+
/** The tenant the workflow belongs to. */
|
|
13
|
+
readonly attributes: ResourceAttributes<'workflow'>;
|
|
14
|
+
/** Base URL the deployment is reachable at. Empty when unconfigured. */
|
|
15
|
+
readonly baseUrl: string;
|
|
16
|
+
}
|
|
4
17
|
/**
|
|
5
18
|
* Abstract base for all triggers.
|
|
6
19
|
*
|
|
@@ -20,6 +33,23 @@ export declare abstract class BaseTrigger<TConfig extends z.ZodTypeAny> {
|
|
|
20
33
|
abstract readonly outputSchema: z.ZodTypeAny;
|
|
21
34
|
abstract readonly category: TriggerCategory;
|
|
22
35
|
readonly icon?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Which connector provides this trigger. Written by
|
|
38
|
+
* `ConnectorRegistry.register()`, never by the trigger — see BaseStep.
|
|
39
|
+
*/
|
|
40
|
+
readonly connectorId?: string;
|
|
41
|
+
readonly connectorName?: string;
|
|
42
|
+
readonly connectorIcon?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Config fields holding a credential name, resolved by the engine. Same
|
|
45
|
+
* contract as a step's slots.
|
|
46
|
+
*/
|
|
47
|
+
readonly credentialSlots?: readonly CredentialSlot[];
|
|
48
|
+
/**
|
|
49
|
+
* Which credential types this trigger accepts. The registry checks each is
|
|
50
|
+
* declared by the trigger's own connector.
|
|
51
|
+
*/
|
|
52
|
+
readonly credential?: CredentialRequirement;
|
|
23
53
|
/** Whether this trigger requires scope-based filtering in the UI. */
|
|
24
54
|
readonly requiresScopeFilter?: boolean;
|
|
25
55
|
/** Fields used for scope filtering (e.g. channelIds, boardIds). */
|
|
@@ -1 +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;
|
|
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;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACnE,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpD,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;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;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAErD;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAE5C,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"}
|
|
@@ -11,6 +11,23 @@
|
|
|
11
11
|
*/
|
|
12
12
|
export class BaseTrigger {
|
|
13
13
|
icon;
|
|
14
|
+
/**
|
|
15
|
+
* Which connector provides this trigger. Written by
|
|
16
|
+
* `ConnectorRegistry.register()`, never by the trigger — see BaseStep.
|
|
17
|
+
*/
|
|
18
|
+
connectorId;
|
|
19
|
+
connectorName;
|
|
20
|
+
connectorIcon;
|
|
21
|
+
/**
|
|
22
|
+
* Config fields holding a credential name, resolved by the engine. Same
|
|
23
|
+
* contract as a step's slots.
|
|
24
|
+
*/
|
|
25
|
+
credentialSlots;
|
|
26
|
+
/**
|
|
27
|
+
* Which credential types this trigger accepts. The registry checks each is
|
|
28
|
+
* declared by the trigger's own connector.
|
|
29
|
+
*/
|
|
30
|
+
credential;
|
|
14
31
|
/** Whether this trigger requires scope-based filtering in the UI. */
|
|
15
32
|
requiresScopeFilter;
|
|
16
33
|
/** Fields used for scope filtering (e.g. channelIds, boardIds). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-trigger.js","sourceRoot":"","sources":["../../src/triggers/base-trigger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-trigger.js","sourceRoot":"","sources":["../../src/triggers/base-trigger.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,WAAW;IAOtB,IAAI,CAAU;IAEvB;;;OAGG;IACM,WAAW,CAAU;IACrB,aAAa,CAAU;IACvB,aAAa,CAAU;IAEhC;;;OAGG;IACM,eAAe,CAA6B;IAErD;;;OAGG;IACM,UAAU,CAAyB;IAE5C,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
|
+
/**
|
|
2
|
+
* How a trigger describes itself to the builder — the `StepDescriptor`
|
|
3
|
+
* counterpart, moved out of the deleted `TriggerRegistry` for the same reason:
|
|
4
|
+
* connectors hold triggers now, but the palette still needs them described.
|
|
5
|
+
*/
|
|
6
|
+
import type { z } from 'zod';
|
|
7
|
+
import type { TriggerType } from '../types/trigger-types.js';
|
|
8
|
+
import type { TriggerCategory } from '../types/categories.js';
|
|
9
|
+
import { BaseTrigger } from './base-trigger.js';
|
|
10
|
+
import type { CredentialSlot } from '../steps/base-step.js';
|
|
11
|
+
import type { CredentialTypeRef } from '../common/credentials.js';
|
|
12
|
+
type AnyTrigger = BaseTrigger<z.ZodTypeAny>;
|
|
13
|
+
export interface TriggerSummary {
|
|
14
|
+
type: TriggerType;
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
category: TriggerCategory;
|
|
18
|
+
icon?: string;
|
|
19
|
+
/** The connector that provides this trigger. Stamped at registration. */
|
|
20
|
+
connectorId?: string;
|
|
21
|
+
connectorName?: string;
|
|
22
|
+
/** Its icon name, for the palette's connector list. Absent when the connector sets none. */
|
|
23
|
+
connectorIcon?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface TriggerDescriptor extends TriggerSummary {
|
|
26
|
+
/** JSON Schema for the trigger's config — generated from the Zod schema. */
|
|
27
|
+
configSchema: Record<string, unknown>;
|
|
28
|
+
/** JSON Schema for the trigger's output — generated from the Zod schema. */
|
|
29
|
+
outputSchema: Record<string, unknown>;
|
|
30
|
+
/** Whether this trigger requires scope-based filtering in the UI. */
|
|
31
|
+
requiresScopeFilter: boolean;
|
|
32
|
+
/** Fields used for scope filtering (e.g. channelIds, boardIds). */
|
|
33
|
+
scopeFilterFields: readonly string[];
|
|
34
|
+
/** Credential slots this trigger declares. Empty array if none. */
|
|
35
|
+
credentialSlots: readonly CredentialSlot[];
|
|
36
|
+
/** Credential types the trigger accepts. Empty means any type. */
|
|
37
|
+
credential: readonly CredentialTypeRef[];
|
|
38
|
+
/** True for a webhook trigger, which an external provider calls. */
|
|
39
|
+
webhook: boolean;
|
|
40
|
+
}
|
|
41
|
+
export declare function buildTriggerSummary(t: AnyTrigger): TriggerSummary;
|
|
42
|
+
export declare function buildTriggerDescriptor(t: AnyTrigger): TriggerDescriptor;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=trigger-descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-descriptor.d.ts","sourceRoot":"","sources":["../../src/triggers/trigger-descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,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;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,KAAK,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAI5C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,qEAAqE;IACrE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mEAAmE;IACnE,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,mEAAmE;IACnE,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,kEAAkE;IAClE,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACzC,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,GAAG,cAAc,CAWjE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAWvE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BaseTrigger } from './base-trigger.js';
|
|
2
|
+
import { WebhookTrigger } from './webhook-trigger.js';
|
|
3
|
+
import { zodToJsonSchemaRecord } from '../util/schema-convert.js';
|
|
4
|
+
import { credentialTypeRefs } from '../util/credential-slot-schema.js';
|
|
5
|
+
// ─── Builders ───
|
|
6
|
+
export function buildTriggerSummary(t) {
|
|
7
|
+
return {
|
|
8
|
+
type: t.type,
|
|
9
|
+
name: t.name,
|
|
10
|
+
description: t.description,
|
|
11
|
+
category: t.category,
|
|
12
|
+
...(t.icon !== undefined ? { icon: t.icon } : {}),
|
|
13
|
+
...(t.connectorId !== undefined ? { connectorId: t.connectorId } : {}),
|
|
14
|
+
...(t.connectorName !== undefined ? { connectorName: t.connectorName } : {}),
|
|
15
|
+
...(t.connectorIcon !== undefined ? { connectorIcon: t.connectorIcon } : {}),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function buildTriggerDescriptor(t) {
|
|
19
|
+
return {
|
|
20
|
+
...buildTriggerSummary(t),
|
|
21
|
+
configSchema: t.decorateConfigSchema(zodToJsonSchemaRecord(t.configSchema)),
|
|
22
|
+
outputSchema: zodToJsonSchemaRecord(t.outputSchema),
|
|
23
|
+
requiresScopeFilter: t.requiresScopeFilter ?? false,
|
|
24
|
+
scopeFilterFields: t.scopeFilterFields ?? [],
|
|
25
|
+
credentialSlots: t.credentialSlots ?? [],
|
|
26
|
+
credential: credentialTypeRefs(t.credential),
|
|
27
|
+
webhook: t instanceof WebhookTrigger,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=trigger-descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-descriptor.js","sourceRoot":"","sources":["../../src/triggers/trigger-descriptor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAsCvE,mBAAmB;AAEnB,MAAM,UAAU,mBAAmB,CAAC,CAAa;IAC/C,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,CAAa;IAClD,OAAO;QACL,GAAG,mBAAmB,CAAC,CAAC,CAAC;QACzB,YAAY,EAAE,CAAC,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3E,YAAY,EAAE,qBAAqB,CAAC,CAAC,CAAC,YAAY,CAAC;QACnD,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,IAAI,KAAK;QACnD,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,EAAE;QAC5C,eAAe,EAAE,CAAC,CAAC,eAAe,IAAI,EAAE;QACxC,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5C,OAAO,EAAE,CAAC,YAAY,cAAc;KACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,50 +1,62 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
2
|
import { BaseTrigger } from './base-trigger.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
headers: Record<string, string | string[] | undefined>;
|
|
6
|
-
body: unknown;
|
|
7
|
-
query: Record<string, string | string[] | undefined>;
|
|
8
|
-
}
|
|
9
|
-
export interface WebhookResponse {
|
|
10
|
-
status: number;
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
body?: unknown;
|
|
13
|
-
}
|
|
14
|
-
export interface WebhookHandleResult {
|
|
15
|
-
/** Data to pass into the workflow as trigger context. */
|
|
16
|
-
triggerData: Record<string, unknown>;
|
|
17
|
-
/** HTTP response to return to the webhook caller. */
|
|
18
|
-
httpResponse: WebhookResponse;
|
|
19
|
-
}
|
|
20
|
-
export interface WebhookActivationContext {
|
|
21
|
-
/** The full URL the webhook will be reachable at. */
|
|
22
|
-
webhookUrl: string;
|
|
23
|
-
credentials: Record<string, never>;
|
|
24
|
-
}
|
|
3
|
+
import type { TriggerExecutionContext } from './base-trigger.js';
|
|
4
|
+
import type { InboundHttpRequest, InboundReply, RawInboundRequest, Translation } from '../ingest/types.js';
|
|
25
5
|
/**
|
|
26
|
-
* Webhook trigger — fires when an external
|
|
6
|
+
* Webhook trigger — fires when an external service POSTs to
|
|
7
|
+
* `<baseUrl>/webhooks/<workflowId>`.
|
|
8
|
+
*
|
|
9
|
+
* The author registers that URL with the provider by hand. On each request the
|
|
10
|
+
* engine:
|
|
11
|
+
*
|
|
12
|
+
* 1. finds the workflow and checks it is active,
|
|
13
|
+
* 2. resolves the trigger's credentials, rejecting the request if one is
|
|
14
|
+
* missing, revoked, or of a type the trigger does not accept,
|
|
15
|
+
* 3. calls {@link handshake}, and sends its reply if it returns one,
|
|
16
|
+
* 4. calls {@link verify} with the exact bytes and those credentials,
|
|
17
|
+
* 5. parses the body,
|
|
18
|
+
*
|
|
19
|
+
* and only then calls {@link handleRequest}. Each event it returns must pass
|
|
20
|
+
* the workflow's trigger filter to become a run.
|
|
27
21
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
22
|
+
* How a request is verified belongs to the connector: its provider's signing
|
|
23
|
+
* scheme, its own utilities. The engine's part is that verification always
|
|
24
|
+
* runs first and receives the right credentials. The URL carries no secret, so
|
|
25
|
+
* an implementation that accepts everything leaves the workflow open to anyone
|
|
26
|
+
* who learns its id.
|
|
32
27
|
*/
|
|
33
28
|
export declare abstract class WebhookTrigger<TConfig extends z.ZodTypeAny = z.ZodTypeAny> extends BaseTrigger<TConfig> {
|
|
34
29
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
30
|
+
* Answer a provider's URL handshake: the request some providers send when the
|
|
31
|
+
* URL is registered, before any real delivery, expecting a reply in their own
|
|
32
|
+
* format. Return that reply, or `undefined` for every other request.
|
|
33
|
+
*
|
|
34
|
+
* Runs before {@link verify}, so the request is unauthenticated: some handshakes
|
|
35
|
+
* are unsigned (Microsoft Graph's `validationToken`), and some arrive as GET
|
|
36
|
+
* (Meta's `hub.challenge`). That is why a handshake can only reply, never start
|
|
37
|
+
* a run. Match the provider's handshake exactly, echo only what it expects echoed,
|
|
38
|
+
* and check a token it sends against the credentials where it sends one.
|
|
39
|
+
*
|
|
40
|
+
* A GET reaches no other method: when this returns `undefined` for one, the
|
|
41
|
+
* sender gets 404. A signed handshake, such as Slack's `url_verification`, is
|
|
42
|
+
* better answered from {@link handleRequest}, after verification.
|
|
43
|
+
*
|
|
44
|
+
* A thrown error is logged and the request carries on to {@link verify}.
|
|
37
45
|
*/
|
|
38
|
-
|
|
46
|
+
handshake(_request: InboundHttpRequest, _config: z.infer<TConfig>, _ctx: TriggerExecutionContext): Promise<InboundReply | undefined>;
|
|
39
47
|
/**
|
|
40
|
-
*
|
|
41
|
-
* with
|
|
48
|
+
* Is this request really from the provider? Return false, or throw, to reject
|
|
49
|
+
* it with 401. Runs before the body is parsed.
|
|
50
|
+
*
|
|
51
|
+
* Read a secret with `credentialValues(ctx.credentials, slot, 'secret')`.
|
|
42
52
|
*/
|
|
43
|
-
|
|
53
|
+
abstract verify(request: InboundHttpRequest, config: z.infer<TConfig>, ctx: TriggerExecutionContext): Promise<boolean>;
|
|
44
54
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
55
|
+
* Turn a verified request into events, and say what to reply.
|
|
56
|
+
*
|
|
57
|
+
* Should be pure: no network calls. Enrichment that needs the provider's API
|
|
58
|
+
* belongs in `hydratePayload`, which runs inside the execution.
|
|
47
59
|
*/
|
|
48
|
-
|
|
60
|
+
abstract handleRequest(request: RawInboundRequest, config: z.infer<TConfig>, ctx: TriggerExecutionContext): Promise<Translation>;
|
|
49
61
|
}
|
|
50
62
|
//# sourceMappingURL=webhook-trigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-trigger.d.ts","sourceRoot":"","sources":["../../src/triggers/webhook-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"webhook-trigger.d.ts","sourceRoot":"","sources":["../../src/triggers/webhook-trigger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE3G;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,8BAAsB,cAAc,CAClC,OAAO,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAC3C,SAAQ,WAAW,CAAC,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CACP,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EACzB,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIpC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CACb,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EACxB,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CACpB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EACxB,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,WAAW,CAAC;CACxB"}
|
|
@@ -1,13 +1,47 @@
|
|
|
1
1
|
import { BaseTrigger } from './base-trigger.js';
|
|
2
|
-
// ─── WebhookTrigger ───
|
|
3
2
|
/**
|
|
4
|
-
* Webhook trigger — fires when an external
|
|
3
|
+
* Webhook trigger — fires when an external service POSTs to
|
|
4
|
+
* `<baseUrl>/webhooks/<workflowId>`.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* The author registers that URL with the provider by hand. On each request the
|
|
7
|
+
* engine:
|
|
8
|
+
*
|
|
9
|
+
* 1. finds the workflow and checks it is active,
|
|
10
|
+
* 2. resolves the trigger's credentials, rejecting the request if one is
|
|
11
|
+
* missing, revoked, or of a type the trigger does not accept,
|
|
12
|
+
* 3. calls {@link handshake}, and sends its reply if it returns one,
|
|
13
|
+
* 4. calls {@link verify} with the exact bytes and those credentials,
|
|
14
|
+
* 5. parses the body,
|
|
15
|
+
*
|
|
16
|
+
* and only then calls {@link handleRequest}. Each event it returns must pass
|
|
17
|
+
* the workflow's trigger filter to become a run.
|
|
18
|
+
*
|
|
19
|
+
* How a request is verified belongs to the connector: its provider's signing
|
|
20
|
+
* scheme, its own utilities. The engine's part is that verification always
|
|
21
|
+
* runs first and receives the right credentials. The URL carries no secret, so
|
|
22
|
+
* an implementation that accepts everything leaves the workflow open to anyone
|
|
23
|
+
* who learns its id.
|
|
10
24
|
*/
|
|
11
25
|
export class WebhookTrigger extends BaseTrigger {
|
|
26
|
+
/**
|
|
27
|
+
* Answer a provider's URL handshake: the request some providers send when the
|
|
28
|
+
* URL is registered, before any real delivery, expecting a reply in their own
|
|
29
|
+
* format. Return that reply, or `undefined` for every other request.
|
|
30
|
+
*
|
|
31
|
+
* Runs before {@link verify}, so the request is unauthenticated: some handshakes
|
|
32
|
+
* are unsigned (Microsoft Graph's `validationToken`), and some arrive as GET
|
|
33
|
+
* (Meta's `hub.challenge`). That is why a handshake can only reply, never start
|
|
34
|
+
* a run. Match the provider's handshake exactly, echo only what it expects echoed,
|
|
35
|
+
* and check a token it sends against the credentials where it sends one.
|
|
36
|
+
*
|
|
37
|
+
* A GET reaches no other method: when this returns `undefined` for one, the
|
|
38
|
+
* sender gets 404. A signed handshake, such as Slack's `url_verification`, is
|
|
39
|
+
* better answered from {@link handleRequest}, after verification.
|
|
40
|
+
*
|
|
41
|
+
* A thrown error is logged and the request carries on to {@link verify}.
|
|
42
|
+
*/
|
|
43
|
+
handshake(_request, _config, _ctx) {
|
|
44
|
+
return Promise.resolve(undefined);
|
|
45
|
+
}
|
|
12
46
|
}
|
|
13
47
|
//# sourceMappingURL=webhook-trigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-trigger.js","sourceRoot":"","sources":["../../src/triggers/webhook-trigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"webhook-trigger.js","sourceRoot":"","sources":["../../src/triggers/webhook-trigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAgB,cAEpB,SAAQ,WAAoB;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CACP,QAA4B,EAC5B,OAAyB,EACzB,IAA6B;QAE7B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;CAyBF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-types.d.ts","sourceRoot":"","sources":["../../src/types/known-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,oBAAY,eAAe;IAEzB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,GAAG,QAAQ;IAEX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,YAAY,iBAAiB;IAC7B,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,qBAAqB,yCAAgC,CAAC;AAInE,QAAA,MAAM,wBAAwB,qIAMpB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,yGAAyG;AACzG,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,uIAMpC,CAAC;AAIH;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,
|
|
1
|
+
{"version":3,"file":"known-types.d.ts","sourceRoot":"","sources":["../../src/types/known-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;GAGG;AACH,oBAAY,eAAe;IAEzB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,GAAG,QAAQ;IAEX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,YAAY,iBAAiB;IAC7B,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,qBAAqB,yCAAgC,CAAC;AAInE,QAAA,MAAM,wBAAwB,qIAMpB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,yGAAyG;AACzG,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAEvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,uIAMpC,CAAC;AAIH;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;CAC1B;AAED,eAAO,MAAM,wBAAwB,4CAAmC,CAAC"}
|
|
@@ -44,7 +44,6 @@ export const ControlFlowStepTypeSchema = z.enum([
|
|
|
44
44
|
export var BuiltinTriggerType;
|
|
45
45
|
(function (BuiltinTriggerType) {
|
|
46
46
|
BuiltinTriggerType["EVENT"] = "EVENT";
|
|
47
|
-
BuiltinTriggerType["WEBHOOK"] = "WEBHOOK";
|
|
48
47
|
BuiltinTriggerType["CRON"] = "CRON";
|
|
49
48
|
BuiltinTriggerType["MANUAL"] = "MANUAL";
|
|
50
49
|
BuiltinTriggerType["WEBHOOK_V2"] = "WEBHOOK_V2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-types.js","sourceRoot":"","sources":["../../src/types/known-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8BAA8B;AAE9B;;;GAGG;AACH,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACzB,eAAe;IACf,8CAA2B,CAAA;IAC3B,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,wCAAqB,CAAA;IACrB,8BAAW,CAAA;IACX,SAAS;IACT,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,gDAA6B,CAAA;IAC7B,kCAAe,CAAA;AACjB,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEnE,8BAA8B;AAE9B,MAAM,wBAAwB,GAAG;IAC/B,eAAe,CAAC,WAAW;IAC3B,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,IAAI;IACpB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,GAAG;CACX,CAAC;AAIX,yGAAyG;AACzG,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CACjE,wBAAwB,CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,eAAe,CAAC,WAAW;IAC3B,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,IAAI;IACpB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,GAAG;CACpB,CAAC,CAAC;AAEH,iCAAiC;AAEjC;;;GAGG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"known-types.js","sourceRoot":"","sources":["../../src/types/known-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8BAA8B;AAE9B;;;GAGG;AACH,MAAM,CAAN,IAAY,eAYX;AAZD,WAAY,eAAe;IACzB,eAAe;IACf,8CAA2B,CAAA;IAC3B,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,wCAAqB,CAAA;IACrB,8BAAW,CAAA;IACX,SAAS;IACT,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,gDAA6B,CAAA;IAC7B,kCAAe,CAAA;AACjB,CAAC,EAZW,eAAe,KAAf,eAAe,QAY1B;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAEnE,8BAA8B;AAE9B,MAAM,wBAAwB,GAAG;IAC/B,eAAe,CAAC,WAAW;IAC3B,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,IAAI;IACpB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,GAAG;CACX,CAAC;AAIX,yGAAyG;AACzG,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CACjE,wBAAwB,CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,eAAe,CAAC,WAAW;IAC3B,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,IAAI;IACpB,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,GAAG;CACpB,CAAC,CAAC;AAEH,iCAAiC;AAEjC;;;GAGG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,uCAAiB,CAAA;IACjB,+CAAyB,CAAA;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -4,7 +4,9 @@ export declare enum ValidationIssueCode {
|
|
|
4
4
|
UNKNOWN_REFERENCE = "unknownReference",
|
|
5
5
|
FORWARD_REFERENCE = "forwardReference",
|
|
6
6
|
TYPE_MISMATCH = "typeMismatch",
|
|
7
|
-
DUPLICATE_STEP_ID = "duplicateStepId"
|
|
7
|
+
DUPLICATE_STEP_ID = "duplicateStepId",
|
|
8
|
+
MISSING_CREDENTIAL = "missingCredential",
|
|
9
|
+
INVALID_FILTER = "invalidFilter"
|
|
8
10
|
}
|
|
9
11
|
export declare const ValidationIssueCodeSchema: z.ZodNativeEnum<typeof ValidationIssueCode>;
|
|
10
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,iBAAiB,qBAAqB;IACtC,iBAAiB,qBAAqB;IACtC,aAAa,iBAAiB;IAC9B,iBAAiB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,mBAAmB;IAC7B,KAAK,UAAU;IACf,iBAAiB,qBAAqB;IACtC,iBAAiB,qBAAqB;IACtC,aAAa,iBAAiB;IAC9B,iBAAiB,oBAAoB;IACrC,kBAAkB,sBAAsB;IACxC,cAAc,kBAAkB;CACjC;AAED,eAAO,MAAM,yBAAyB,6CAAoC,CAAC;AAE3E;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1B,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B"}
|
package/dist/types/validation.js
CHANGED
|
@@ -6,6 +6,8 @@ export var ValidationIssueCode;
|
|
|
6
6
|
ValidationIssueCode["FORWARD_REFERENCE"] = "forwardReference";
|
|
7
7
|
ValidationIssueCode["TYPE_MISMATCH"] = "typeMismatch";
|
|
8
8
|
ValidationIssueCode["DUPLICATE_STEP_ID"] = "duplicateStepId";
|
|
9
|
+
ValidationIssueCode["MISSING_CREDENTIAL"] = "missingCredential";
|
|
10
|
+
ValidationIssueCode["INVALID_FILTER"] = "invalidFilter";
|
|
9
11
|
})(ValidationIssueCode || (ValidationIssueCode = {}));
|
|
10
12
|
export const ValidationIssueCodeSchema = z.nativeEnum(ValidationIssueCode);
|
|
11
13
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAN,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,6DAAsC,CAAA;IACtC,6DAAsC,CAAA;IACtC,qDAA8B,CAAA;IAC9B,4DAAqC,CAAA;IACrC,+DAAwC,CAAA;IACxC,uDAAgC,CAAA;AAClC,CAAC,EARW,mBAAmB,KAAnB,mBAAmB,QAQ9B;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -178,6 +178,12 @@ export interface WorkflowConfig {
|
|
|
178
178
|
trigger: {
|
|
179
179
|
type: TriggerType;
|
|
180
180
|
config: Record<string, unknown>;
|
|
181
|
+
/**
|
|
182
|
+
* Which arriving events start a run. Separate from `config` because it has a
|
|
183
|
+
* different lifecycle: config is what the trigger is connected to, the filter
|
|
184
|
+
* is which of its events the workflow wants. See {@link TriggerFilter}.
|
|
185
|
+
*/
|
|
186
|
+
filter?: TriggerFilter;
|
|
181
187
|
};
|
|
182
188
|
steps: WorkflowStepConfig[];
|
|
183
189
|
settings?: WorkflowSettings;
|
|
@@ -193,6 +199,23 @@ export interface WorkflowConfig {
|
|
|
193
199
|
*/
|
|
194
200
|
variables?: WorkflowVariable[];
|
|
195
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* An author-configured condition on the trigger's events, evaluated by the
|
|
204
|
+
* engine before a run is created. An event that fails it leaves no trace.
|
|
205
|
+
*/
|
|
206
|
+
export interface TriggerFilter {
|
|
207
|
+
/**
|
|
208
|
+
* The same condition tree the Conditional step uses. Variables may reference
|
|
209
|
+
* `{{trigger.*}}` and `{{vars.*}}` only — nothing else exists before a run.
|
|
210
|
+
*/
|
|
211
|
+
conditions?: Condition;
|
|
212
|
+
}
|
|
213
|
+
export declare const TriggerFilterSchema: z.ZodType<TriggerFilter>;
|
|
214
|
+
/**
|
|
215
|
+
* The scope id that asks for the context a trigger filter can see — the trigger
|
|
216
|
+
* output and variables, no steps. Pass it wherever an `atStepId` is expected.
|
|
217
|
+
*/
|
|
218
|
+
export declare const TRIGGER_FILTER_SCOPE = "$trigger";
|
|
196
219
|
/**
|
|
197
220
|
* Read a dotted path from a nested object.
|
|
198
221
|
* `readDottedPath({ a: { b: 1 } }, 'a.b')` → `1`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-config.d.ts","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workflow-config.d.ts","sourceRoot":"","sources":["../../src/types/workflow-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ/D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAChD,KAAK,EAAE,CAAC,GACP,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAM9B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,CAAC,CAAC,UAAU,GAAG,IAAI,CAWrB;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GACjB,aAAa,GACb;IAAE,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,GACpB;IAAE,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAEzB,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAIvD,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAMhD,CAAC;AAIF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC;IAClC,MAAM,EAAE;QACN,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,kBAAkB,EAAE,CAAC;QAC9B,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;KACjC,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7B,MAAM,EAAE;QACN;;;WAGG;QACH,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB;;;WAGG;QACH,OAAO,EAAE,kBAAkB,EAAE,CAAC;KAC/B,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,qBAAqB,GACrB,gBAAgB,CAAC;AAIrB;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;kCACkC;AAClC,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAID,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QACP,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC;;;;WAIG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,CAAC;IACF,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAID;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAElB,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAI/C;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,GACX,OAAO,CAcT"}
|
|
@@ -50,6 +50,14 @@ export const WorkflowSettingsSchema = z.object({
|
|
|
50
50
|
})
|
|
51
51
|
.optional(),
|
|
52
52
|
});
|
|
53
|
+
export const TriggerFilterSchema = z
|
|
54
|
+
.object({ conditions: ConditionSchema.optional() })
|
|
55
|
+
.strict();
|
|
56
|
+
/**
|
|
57
|
+
* The scope id that asks for the context a trigger filter can see — the trigger
|
|
58
|
+
* output and variables, no steps. Pass it wherever an `atStepId` is expected.
|
|
59
|
+
*/
|
|
60
|
+
export const TRIGGER_FILTER_SCOPE = '$trigger';
|
|
53
61
|
// ─── Utility ───
|
|
54
62
|
/**
|
|
55
63
|
* Read a dotted path from a nested object.
|