@n8n/workflow-sdk 0.2.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/LICENSE.md +88 -0
- package/README.md +30 -0
- package/dist/ast-interpreter/errors.d.ts +19 -0
- package/dist/ast-interpreter/errors.js +64 -0
- package/dist/ast-interpreter/errors.js.map +1 -0
- package/dist/ast-interpreter/index.d.ts +5 -0
- package/dist/ast-interpreter/index.js +18 -0
- package/dist/ast-interpreter/index.js.map +1 -0
- package/dist/ast-interpreter/interpreter.d.ts +2 -0
- package/dist/ast-interpreter/interpreter.js +471 -0
- package/dist/ast-interpreter/interpreter.js.map +1 -0
- package/dist/ast-interpreter/parser.d.ts +2 -0
- package/dist/ast-interpreter/parser.js +61 -0
- package/dist/ast-interpreter/parser.js.map +1 -0
- package/dist/ast-interpreter/validators.d.ts +13 -0
- package/dist/ast-interpreter/validators.js +243 -0
- package/dist/ast-interpreter/validators.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -0
- package/dist/cli/code-to-json.d.ts +1 -0
- package/dist/cli/code-to-json.js +51 -0
- package/dist/cli/code-to-json.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +25 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/json-to-code.d.ts +1 -0
- package/dist/cli/json-to-code.js +60 -0
- package/dist/cli/json-to-code.js.map +1 -0
- package/dist/cli/utils.d.ts +1 -0
- package/dist/cli/utils.js +16 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/codegen/code-generator.d.ts +14 -0
- package/dist/codegen/code-generator.js +807 -0
- package/dist/codegen/code-generator.js.map +1 -0
- package/dist/codegen/composite-builder.d.ts +3 -0
- package/dist/codegen/composite-builder.js +718 -0
- package/dist/codegen/composite-builder.js.map +1 -0
- package/dist/codegen/composite-handlers/build-utils.d.ts +24 -0
- package/dist/codegen/composite-handlers/build-utils.js +79 -0
- package/dist/codegen/composite-handlers/build-utils.js.map +1 -0
- package/dist/codegen/composite-handlers/error-handler.d.ts +6 -0
- package/dist/codegen/composite-handlers/error-handler.js +51 -0
- package/dist/codegen/composite-handlers/error-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/if-else-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/if-else-handler.js +57 -0
- package/dist/codegen/composite-handlers/if-else-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/index.d.ts +1 -0
- package/dist/codegen/composite-handlers/index.js +17 -0
- package/dist/codegen/composite-handlers/index.js.map +1 -0
- package/dist/codegen/composite-handlers/merge-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/merge-handler.js +25 -0
- package/dist/codegen/composite-handlers/merge-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/sib-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/sib-handler.js +57 -0
- package/dist/codegen/composite-handlers/sib-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/switch-case-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/switch-case-handler.js +80 -0
- package/dist/codegen/composite-handlers/switch-case-handler.js.map +1 -0
- package/dist/codegen/composite-tree.d.ts +81 -0
- package/dist/codegen/composite-tree.js +3 -0
- package/dist/codegen/composite-tree.js.map +1 -0
- package/dist/codegen/config-builder.d.ts +7 -0
- package/dist/codegen/config-builder.js +22 -0
- package/dist/codegen/config-builder.js.map +1 -0
- package/dist/codegen/constants.d.ts +5 -0
- package/dist/codegen/constants.js +30 -0
- package/dist/codegen/constants.js.map +1 -0
- package/dist/codegen/deferred-connections.d.ts +20 -0
- package/dist/codegen/deferred-connections.js +46 -0
- package/dist/codegen/deferred-connections.js.map +1 -0
- package/dist/codegen/execution-schema-jsdoc.d.ts +3 -0
- package/dist/codegen/execution-schema-jsdoc.js +109 -0
- package/dist/codegen/execution-schema-jsdoc.js.map +1 -0
- package/dist/codegen/execution-status.d.ts +9 -0
- package/dist/codegen/execution-status.js +42 -0
- package/dist/codegen/execution-status.js.map +1 -0
- package/dist/codegen/expression-annotator.d.ts +2 -0
- package/dist/codegen/expression-annotator.js +38 -0
- package/dist/codegen/expression-annotator.js.map +1 -0
- package/dist/codegen/graph-annotator.d.ts +2 -0
- package/dist/codegen/graph-annotator.js +107 -0
- package/dist/codegen/graph-annotator.js.map +1 -0
- package/dist/codegen/index.d.ts +20 -0
- package/dist/codegen/index.js +60 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/merge-pattern.d.ts +12 -0
- package/dist/codegen/merge-pattern.js +119 -0
- package/dist/codegen/merge-pattern.js.map +1 -0
- package/dist/codegen/node-type-utils.d.ts +4 -0
- package/dist/codegen/node-type-utils.js +38 -0
- package/dist/codegen/node-type-utils.js.map +1 -0
- package/dist/codegen/output-utils.d.ts +9 -0
- package/dist/codegen/output-utils.js +68 -0
- package/dist/codegen/output-utils.js.map +1 -0
- package/dist/codegen/parse-workflow-code.d.ts +3 -0
- package/dist/codegen/parse-workflow-code.js +438 -0
- package/dist/codegen/parse-workflow-code.js.map +1 -0
- package/dist/codegen/semantic-graph.d.ts +3 -0
- package/dist/codegen/semantic-graph.js +216 -0
- package/dist/codegen/semantic-graph.js.map +1 -0
- package/dist/codegen/semantic-registry.d.ts +18 -0
- package/dist/codegen/semantic-registry.js +102 -0
- package/dist/codegen/semantic-registry.js.map +1 -0
- package/dist/codegen/sib-merge-handler.d.ts +20 -0
- package/dist/codegen/sib-merge-handler.js +92 -0
- package/dist/codegen/sib-merge-handler.js.map +1 -0
- package/dist/codegen/string-utils.d.ts +6 -0
- package/dist/codegen/string-utils.js +38 -0
- package/dist/codegen/string-utils.js.map +1 -0
- package/dist/codegen/subnode-generator.d.ts +17 -0
- package/dist/codegen/subnode-generator.js +219 -0
- package/dist/codegen/subnode-generator.js.map +1 -0
- package/dist/codegen/types.d.ts +40 -0
- package/dist/codegen/types.js +16 -0
- package/dist/codegen/types.js.map +1 -0
- package/dist/codegen/variable-names.d.ts +8 -0
- package/dist/codegen/variable-names.js +121 -0
- package/dist/codegen/variable-names.js.map +1 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +14 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/node-types.d.ts +19 -0
- package/dist/constants/node-types.js +46 -0
- package/dist/constants/node-types.js.map +1 -0
- package/dist/expression/index.d.ts +6 -0
- package/dist/expression/index.js +181 -0
- package/dist/expression/index.js.map +1 -0
- package/dist/expression.d.ts +1 -0
- package/dist/expression.js +10 -0
- package/dist/expression.js.map +1 -0
- package/dist/generate-types/generate-node-defs-cli.d.ts +7 -0
- package/dist/generate-types/generate-node-defs-cli.js +99 -0
- package/dist/generate-types/generate-node-defs-cli.js.map +1 -0
- package/dist/generate-types/generate-types.d.ts +163 -0
- package/dist/generate-types/generate-types.js +2569 -0
- package/dist/generate-types/generate-types.js.map +1 -0
- package/dist/generate-types/generate-zod-schemas.d.ts +41 -0
- package/dist/generate-types/generate-zod-schemas.js +1129 -0
- package/dist/generate-types/generate-zod-schemas.js.map +1 -0
- package/dist/generate-types/index.d.ts +3 -0
- package/dist/generate-types/index.js +62 -0
- package/dist/generate-types/index.js.map +1 -0
- package/dist/generate-types/zod-helpers.d.ts +189 -0
- package/dist/generate-types/zod-helpers.js +76 -0
- package/dist/generate-types/zod-helpers.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -0
- package/dist/types/aliases.d.ts +5 -0
- package/dist/types/aliases.js +3 -0
- package/dist/types/aliases.js.map +1 -0
- package/dist/types/base.d.ts +395 -0
- package/dist/types/base.js +22 -0
- package/dist/types/base.js.map +1 -0
- package/dist/utils/code-helpers.d.ts +7 -0
- package/dist/utils/code-helpers.js +47 -0
- package/dist/utils/code-helpers.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/safe-access.d.ts +3 -0
- package/dist/utils/safe-access.js +21 -0
- package/dist/utils/safe-access.js.map +1 -0
- package/dist/utils/trigger-detection.d.ts +1 -0
- package/dist/utils/trigger-detection.js +17 -0
- package/dist/utils/trigger-detection.js.map +1 -0
- package/dist/validation/display-options.d.ts +18 -0
- package/dist/validation/display-options.js +194 -0
- package/dist/validation/display-options.js.map +1 -0
- package/dist/validation/index.d.ts +34 -0
- package/dist/validation/index.js +428 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/input-resolver.d.ts +2 -0
- package/dist/validation/input-resolver.js +23 -0
- package/dist/validation/input-resolver.js.map +1 -0
- package/dist/validation/resolve-schema.d.ts +14 -0
- package/dist/validation/resolve-schema.js +105 -0
- package/dist/validation/resolve-schema.js.map +1 -0
- package/dist/validation/schema-helpers.d.ts +164 -0
- package/dist/validation/schema-helpers.js +51 -0
- package/dist/validation/schema-helpers.js.map +1 -0
- package/dist/validation/schema-validator.d.ts +22 -0
- package/dist/validation/schema-validator.js +402 -0
- package/dist/validation/schema-validator.js.map +1 -0
- package/dist/validation/test-schema-setup.d.ts +2 -0
- package/dist/validation/test-schema-setup.js +108 -0
- package/dist/validation/test-schema-setup.js.map +1 -0
- package/dist/validation.d.ts +1 -0
- package/dist/validation.js +9 -0
- package/dist/validation.js.map +1 -0
- package/dist/workflow-builder/connection-utils.d.ts +4 -0
- package/dist/workflow-builder/connection-utils.js +42 -0
- package/dist/workflow-builder/connection-utils.js.map +1 -0
- package/dist/workflow-builder/constants.d.ts +3 -0
- package/dist/workflow-builder/constants.js +7 -0
- package/dist/workflow-builder/constants.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/if-else.d.ts +2 -0
- package/dist/workflow-builder/control-flow-builders/if-else.js +3 -0
- package/dist/workflow-builder/control-flow-builders/if-else.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/next-batch.d.ts +2 -0
- package/dist/workflow-builder/control-flow-builders/next-batch.js +7 -0
- package/dist/workflow-builder/control-flow-builders/next-batch.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/split-in-batches.d.ts +27 -0
- package/dist/workflow-builder/control-flow-builders/split-in-batches.js +268 -0
- package/dist/workflow-builder/control-flow-builders/split-in-batches.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/switch-case.d.ts +2 -0
- package/dist/workflow-builder/control-flow-builders/switch-case.js +3 -0
- package/dist/workflow-builder/control-flow-builders/switch-case.js.map +1 -0
- package/dist/workflow-builder/layout-utils.d.ts +2 -0
- package/dist/workflow-builder/layout-utils.js +54 -0
- package/dist/workflow-builder/layout-utils.js.map +1 -0
- package/dist/workflow-builder/node-builders/index.d.ts +2 -0
- package/dist/workflow-builder/node-builders/index.js +29 -0
- package/dist/workflow-builder/node-builders/index.js.map +1 -0
- package/dist/workflow-builder/node-builders/node-builder.d.ts +26 -0
- package/dist/workflow-builder/node-builders/node-builder.js +596 -0
- package/dist/workflow-builder/node-builders/node-builder.js.map +1 -0
- package/dist/workflow-builder/node-builders/subnode-builders.d.ts +25 -0
- package/dist/workflow-builder/node-builders/subnode-builders.js +110 -0
- package/dist/workflow-builder/node-builders/subnode-builders.js.map +1 -0
- package/dist/workflow-builder/pin-data-utils.d.ts +5 -0
- package/dist/workflow-builder/pin-data-utils.js +54 -0
- package/dist/workflow-builder/pin-data-utils.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.d.ts +9 -0
- package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.js +162 -0
- package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.d.ts +5 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js +83 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/index.d.ts +3 -0
- package/dist/workflow-builder/plugins/composite-handlers/index.js +10 -0
- package/dist/workflow-builder/plugins/composite-handlers/index.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/split-in-batches-handler.d.ts +15 -0
- package/dist/workflow-builder/plugins/composite-handlers/split-in-batches-handler.js +216 -0
- package/dist/workflow-builder/plugins/composite-handlers/split-in-batches-handler.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/switch-case-handler.d.ts +5 -0
- package/dist/workflow-builder/plugins/composite-handlers/switch-case-handler.js +91 -0
- package/dist/workflow-builder/plugins/composite-handlers/switch-case-handler.js.map +1 -0
- package/dist/workflow-builder/plugins/defaults.d.ts +2 -0
- package/dist/workflow-builder/plugins/defaults.js +53 -0
- package/dist/workflow-builder/plugins/defaults.js.map +1 -0
- package/dist/workflow-builder/plugins/index.d.ts +3 -0
- package/dist/workflow-builder/plugins/index.js +9 -0
- package/dist/workflow-builder/plugins/index.js.map +1 -0
- package/dist/workflow-builder/plugins/registry.d.ts +22 -0
- package/dist/workflow-builder/plugins/registry.js +98 -0
- package/dist/workflow-builder/plugins/registry.js.map +1 -0
- package/dist/workflow-builder/plugins/serializers/index.d.ts +1 -0
- package/dist/workflow-builder/plugins/serializers/index.js +6 -0
- package/dist/workflow-builder/plugins/serializers/index.js.map +1 -0
- package/dist/workflow-builder/plugins/serializers/json-serializer.d.ts +3 -0
- package/dist/workflow-builder/plugins/serializers/json-serializer.js +140 -0
- package/dist/workflow-builder/plugins/serializers/json-serializer.js.map +1 -0
- package/dist/workflow-builder/plugins/types.d.ts +76 -0
- package/dist/workflow-builder/plugins/types.js +29 -0
- package/dist/workflow-builder/plugins/types.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/agent-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/agent-validator.js +45 -0
- package/dist/workflow-builder/plugins/validators/agent-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/chain-llm-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/chain-llm-validator.js +39 -0
- package/dist/workflow-builder/plugins/validators/chain-llm-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/date-method-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/date-method-validator.js +28 -0
- package/dist/workflow-builder/plugins/validators/date-method-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js +142 -0
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/expression-path-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/expression-path-validator.js +155 -0
- package/dist/workflow-builder/plugins/validators/expression-path-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/expression-prefix-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/expression-prefix-validator.js +32 -0
- package/dist/workflow-builder/plugins/validators/expression-prefix-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/from-ai-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/from-ai-validator.js +30 -0
- package/dist/workflow-builder/plugins/validators/from-ai-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/http-request-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/http-request-validator.js +55 -0
- package/dist/workflow-builder/plugins/validators/http-request-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/index.d.ts +15 -0
- package/dist/workflow-builder/plugins/validators/index.js +34 -0
- package/dist/workflow-builder/plugins/validators/index.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/max-nodes-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/max-nodes-validator.js +40 -0
- package/dist/workflow-builder/plugins/validators/max-nodes-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/merge-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/merge-node-validator.js +54 -0
- package/dist/workflow-builder/plugins/validators/merge-node-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/missing-trigger-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/missing-trigger-validator.js +27 -0
- package/dist/workflow-builder/plugins/validators/missing-trigger-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/no-nodes-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/no-nodes-validator.js +23 -0
- package/dist/workflow-builder/plugins/validators/no-nodes-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/set-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/set-node-validator.js +41 -0
- package/dist/workflow-builder/plugins/validators/set-node-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/subnode-connection-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/subnode-connection-validator.js +64 -0
- package/dist/workflow-builder/plugins/validators/subnode-connection-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/tool-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/tool-node-validator.js +37 -0
- package/dist/workflow-builder/plugins/validators/tool-node-validator.js.map +1 -0
- package/dist/workflow-builder/string-utils.d.ts +9 -0
- package/dist/workflow-builder/string-utils.js +237 -0
- package/dist/workflow-builder/string-utils.js.map +1 -0
- package/dist/workflow-builder/subnode-utils.d.ts +2 -0
- package/dist/workflow-builder/subnode-utils.js +180 -0
- package/dist/workflow-builder/subnode-utils.js.map +1 -0
- package/dist/workflow-builder/type-guards.d.ts +15 -0
- package/dist/workflow-builder/type-guards.js +48 -0
- package/dist/workflow-builder/type-guards.js.map +1 -0
- package/dist/workflow-builder/validation-helpers.d.ts +27 -0
- package/dist/workflow-builder/validation-helpers.js +195 -0
- package/dist/workflow-builder/validation-helpers.js.map +1 -0
- package/dist/workflow-builder/workflow-import.d.ts +15 -0
- package/dist/workflow-builder/workflow-import.js +102 -0
- package/dist/workflow-builder/workflow-import.js.map +1 -0
- package/dist/workflow-builder.d.ts +2 -0
- package/dist/workflow-builder.js +636 -0
- package/dist/workflow-builder.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import type { ValidationOptions, ValidationResult } from '../validation/index';
|
|
2
|
+
import type { PluginRegistry } from '../workflow-builder/plugins/registry';
|
|
3
|
+
export interface IDataObject {
|
|
4
|
+
[key: string]: string | number | boolean | null | undefined | object | IDataObject | Array<string | number | boolean | null | object | IDataObject>;
|
|
5
|
+
}
|
|
6
|
+
export interface BinaryData {
|
|
7
|
+
[key: string]: {
|
|
8
|
+
fileName?: string;
|
|
9
|
+
mimeType?: string;
|
|
10
|
+
fileExtension?: string;
|
|
11
|
+
fileSize?: string;
|
|
12
|
+
data?: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface Item<T = IDataObject> {
|
|
16
|
+
json: T;
|
|
17
|
+
binary?: BinaryData;
|
|
18
|
+
}
|
|
19
|
+
export type Items<T = IDataObject> = Array<Item<T>>;
|
|
20
|
+
export interface CredentialReference {
|
|
21
|
+
name: string;
|
|
22
|
+
id: string;
|
|
23
|
+
}
|
|
24
|
+
export interface NewCredentialValue {
|
|
25
|
+
readonly __newCredential: true;
|
|
26
|
+
readonly name: string;
|
|
27
|
+
}
|
|
28
|
+
export interface PlaceholderValue {
|
|
29
|
+
readonly __placeholder: true;
|
|
30
|
+
readonly hint: string;
|
|
31
|
+
}
|
|
32
|
+
export type OnError = 'stopWorkflow' | 'continueRegularOutput' | 'continueErrorOutput';
|
|
33
|
+
export interface WorkflowSettings {
|
|
34
|
+
timezone?: string;
|
|
35
|
+
errorWorkflow?: string;
|
|
36
|
+
saveDataErrorExecution?: 'all' | 'none';
|
|
37
|
+
saveDataSuccessExecution?: 'all' | 'none';
|
|
38
|
+
saveManualExecutions?: boolean;
|
|
39
|
+
saveExecutionProgress?: boolean;
|
|
40
|
+
executionTimeout?: number;
|
|
41
|
+
executionOrder?: 'v0' | 'v1';
|
|
42
|
+
callerPolicy?: 'any' | 'none' | 'workflowsFromAList' | 'workflowsFromSameOwner';
|
|
43
|
+
callerIds?: string;
|
|
44
|
+
[key: string]: unknown;
|
|
45
|
+
}
|
|
46
|
+
export type GenericValue = string | object | number | boolean | undefined | null;
|
|
47
|
+
export interface IConnection {
|
|
48
|
+
node: string;
|
|
49
|
+
type: string;
|
|
50
|
+
index: number;
|
|
51
|
+
}
|
|
52
|
+
export type NodeInputConnections = Array<IConnection[] | null>;
|
|
53
|
+
export interface INodeConnections {
|
|
54
|
+
[key: string]: NodeInputConnections;
|
|
55
|
+
}
|
|
56
|
+
export interface IConnections {
|
|
57
|
+
[key: string]: INodeConnections;
|
|
58
|
+
}
|
|
59
|
+
export interface NodeJSON {
|
|
60
|
+
id: string;
|
|
61
|
+
name?: string;
|
|
62
|
+
type: string;
|
|
63
|
+
typeVersion: number;
|
|
64
|
+
position: [number, number];
|
|
65
|
+
parameters?: IDataObject;
|
|
66
|
+
credentials?: Record<string, {
|
|
67
|
+
id?: string;
|
|
68
|
+
name: string;
|
|
69
|
+
}>;
|
|
70
|
+
disabled?: boolean;
|
|
71
|
+
notes?: string;
|
|
72
|
+
notesInFlow?: boolean;
|
|
73
|
+
executeOnce?: boolean;
|
|
74
|
+
retryOnFail?: boolean;
|
|
75
|
+
alwaysOutputData?: boolean;
|
|
76
|
+
onError?: OnError;
|
|
77
|
+
}
|
|
78
|
+
export interface WorkflowJSON {
|
|
79
|
+
id?: string;
|
|
80
|
+
name: string;
|
|
81
|
+
nodes: NodeJSON[];
|
|
82
|
+
connections: IConnections;
|
|
83
|
+
settings?: WorkflowSettings;
|
|
84
|
+
pinData?: Record<string, IDataObject[]>;
|
|
85
|
+
meta?: {
|
|
86
|
+
templateId?: string;
|
|
87
|
+
instanceId?: string;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export interface ConnectionTarget {
|
|
91
|
+
node: string;
|
|
92
|
+
type: string;
|
|
93
|
+
index: number;
|
|
94
|
+
}
|
|
95
|
+
export interface GraphNode {
|
|
96
|
+
instance: NodeInstance<string, string, unknown>;
|
|
97
|
+
connections: Map<string, Map<number, ConnectionTarget[]>>;
|
|
98
|
+
}
|
|
99
|
+
export interface DeclaredConnection {
|
|
100
|
+
target: NodeInstance<string, string, unknown> | InputTarget;
|
|
101
|
+
outputIndex: number;
|
|
102
|
+
targetInputIndex?: number;
|
|
103
|
+
}
|
|
104
|
+
export interface InputTarget {
|
|
105
|
+
readonly _isInputTarget: true;
|
|
106
|
+
readonly node: NodeInstance<string, string, unknown>;
|
|
107
|
+
readonly inputIndex: number;
|
|
108
|
+
}
|
|
109
|
+
export interface OutputSelector<TType extends string, TVersion extends string, TOutput = unknown> {
|
|
110
|
+
readonly _isOutputSelector: true;
|
|
111
|
+
readonly node: NodeInstance<TType, TVersion, TOutput>;
|
|
112
|
+
readonly outputIndex: number;
|
|
113
|
+
to<T extends NodeInstance<string, string, unknown>>(target: T | T[] | InputTarget): NodeChain<NodeInstance<TType, TVersion, TOutput>, T>;
|
|
114
|
+
}
|
|
115
|
+
export interface BinaryField {
|
|
116
|
+
fileName?: string;
|
|
117
|
+
directory?: string;
|
|
118
|
+
mimeType?: string;
|
|
119
|
+
fileExtension?: string;
|
|
120
|
+
fileSize?: string;
|
|
121
|
+
}
|
|
122
|
+
export type BinaryContext = {
|
|
123
|
+
[fieldName: string]: BinaryField | (() => string[]);
|
|
124
|
+
} & {
|
|
125
|
+
keys(): string[];
|
|
126
|
+
};
|
|
127
|
+
export interface InputContext {
|
|
128
|
+
first(): IDataObject;
|
|
129
|
+
all(): IDataObject[];
|
|
130
|
+
item: IDataObject;
|
|
131
|
+
}
|
|
132
|
+
export interface ExecutionContext {
|
|
133
|
+
id: string;
|
|
134
|
+
mode: 'test' | 'production';
|
|
135
|
+
resumeUrl?: string;
|
|
136
|
+
}
|
|
137
|
+
export interface WorkflowContext {
|
|
138
|
+
id?: string;
|
|
139
|
+
name?: string;
|
|
140
|
+
active: boolean;
|
|
141
|
+
}
|
|
142
|
+
export interface ExpressionContext {
|
|
143
|
+
json: IDataObject;
|
|
144
|
+
binary: BinaryContext;
|
|
145
|
+
input: InputContext;
|
|
146
|
+
env: IDataObject;
|
|
147
|
+
vars: IDataObject;
|
|
148
|
+
secrets: IDataObject;
|
|
149
|
+
now: Date;
|
|
150
|
+
today: Date;
|
|
151
|
+
itemIndex: number;
|
|
152
|
+
runIndex: number;
|
|
153
|
+
execution: ExecutionContext;
|
|
154
|
+
workflow: WorkflowContext;
|
|
155
|
+
}
|
|
156
|
+
export type Expression<T> = ($: ExpressionContext) => T;
|
|
157
|
+
export interface NodeConfig<TParams = IDataObject> {
|
|
158
|
+
parameters?: TParams;
|
|
159
|
+
credentials?: Record<string, CredentialReference | NewCredentialValue>;
|
|
160
|
+
name?: string;
|
|
161
|
+
position?: [number, number];
|
|
162
|
+
disabled?: boolean;
|
|
163
|
+
notes?: string;
|
|
164
|
+
notesInFlow?: boolean;
|
|
165
|
+
executeOnce?: boolean;
|
|
166
|
+
retryOnFail?: boolean;
|
|
167
|
+
alwaysOutputData?: boolean;
|
|
168
|
+
onError?: OnError;
|
|
169
|
+
pinData?: IDataObject[];
|
|
170
|
+
output?: IDataObject[];
|
|
171
|
+
subnodes?: SubnodeConfig;
|
|
172
|
+
}
|
|
173
|
+
export interface StickyNoteConfig {
|
|
174
|
+
color?: number;
|
|
175
|
+
position?: [number, number];
|
|
176
|
+
width?: number;
|
|
177
|
+
height?: number;
|
|
178
|
+
name?: string;
|
|
179
|
+
}
|
|
180
|
+
export interface SubnodeConfig {
|
|
181
|
+
model?: LanguageModelInstance | LanguageModelInstance[];
|
|
182
|
+
memory?: MemoryInstance;
|
|
183
|
+
tools?: ToolInstance[];
|
|
184
|
+
outputParser?: OutputParserInstance;
|
|
185
|
+
embedding?: EmbeddingInstance | EmbeddingInstance[];
|
|
186
|
+
embeddings?: EmbeddingInstance | EmbeddingInstance[];
|
|
187
|
+
vectorStore?: VectorStoreInstance;
|
|
188
|
+
retriever?: RetrieverInstance;
|
|
189
|
+
documentLoader?: DocumentLoaderInstance | DocumentLoaderInstance[];
|
|
190
|
+
textSplitter?: TextSplitterInstance;
|
|
191
|
+
reranker?: RerankerInstance;
|
|
192
|
+
}
|
|
193
|
+
export interface NodeInstance<TType extends string, TVersion extends string, TOutput = unknown> {
|
|
194
|
+
readonly type: TType;
|
|
195
|
+
readonly version: TVersion;
|
|
196
|
+
readonly config: NodeConfig;
|
|
197
|
+
readonly id: string;
|
|
198
|
+
readonly name: string;
|
|
199
|
+
readonly _outputType?: TOutput;
|
|
200
|
+
update(config: Partial<NodeConfig>): NodeInstance<TType, TVersion, TOutput>;
|
|
201
|
+
to<T extends NodeInstance<string, string, unknown>>(target: T | T[] | InputTarget, outputIndex?: number): NodeChain<NodeInstance<TType, TVersion, TOutput>, T>;
|
|
202
|
+
to<T>(target: IfElseBuilder<T>, outputIndex?: number): NodeChain<NodeInstance<TType, TVersion, TOutput>, NodeInstance<'n8n-nodes-base.if', string, T>>;
|
|
203
|
+
to<T>(target: SwitchCaseBuilder<T>, outputIndex?: number): NodeChain<NodeInstance<TType, TVersion, TOutput>, NodeInstance<'n8n-nodes-base.switch', string, T>>;
|
|
204
|
+
to<T>(target: SplitInBatchesBuilder<T>, outputIndex?: number): NodeChain<NodeInstance<TType, TVersion, TOutput>, NodeInstance<TType, TVersion, TOutput>>;
|
|
205
|
+
input(index: number): InputTarget;
|
|
206
|
+
output(index: number): OutputSelector<TType, TVersion, TOutput>;
|
|
207
|
+
onTrue?(target: IfElseTarget): IfElseBuilder<TOutput>;
|
|
208
|
+
onFalse?(target: IfElseTarget): IfElseBuilder<TOutput>;
|
|
209
|
+
onCase?(index: number, target: SwitchCaseTarget): SwitchCaseBuilder<TOutput>;
|
|
210
|
+
onError<T extends NodeInstance<string, string, unknown>>(handler: T): this;
|
|
211
|
+
getConnections(): DeclaredConnection[];
|
|
212
|
+
}
|
|
213
|
+
export interface TriggerInstance<TType extends string, TVersion extends string, TOutput = unknown> extends NodeInstance<TType, TVersion, TOutput> {
|
|
214
|
+
readonly isTrigger: true;
|
|
215
|
+
}
|
|
216
|
+
export interface NodeChain<THead extends NodeInstance<string, string, unknown> = NodeInstance<string, string, unknown>, TTail extends NodeInstance<string, string, unknown> = NodeInstance<string, string, unknown>> extends NodeInstance<TTail['type'], TTail['version'], TTail['_outputType']> {
|
|
217
|
+
readonly _isChain: true;
|
|
218
|
+
readonly head: THead;
|
|
219
|
+
readonly tail: TTail;
|
|
220
|
+
readonly allNodes: Array<NodeInstance<string, string, unknown>>;
|
|
221
|
+
to<T extends NodeInstance<string, string, unknown>>(target: T | T[] | InputTarget, outputIndex?: number): NodeChain<THead, T>;
|
|
222
|
+
to<T>(target: IfElseBuilder<T>, outputIndex?: number): NodeChain<THead, NodeInstance<'n8n-nodes-base.if', string, T>>;
|
|
223
|
+
to<T>(target: SwitchCaseBuilder<T>, outputIndex?: number): NodeChain<THead, NodeInstance<'n8n-nodes-base.switch', string, T>>;
|
|
224
|
+
to<T>(target: SplitInBatchesBuilder<T>, outputIndex?: number): NodeChain<THead, TTail>;
|
|
225
|
+
}
|
|
226
|
+
export declare function isNodeChain(value: unknown): value is NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>>;
|
|
227
|
+
export declare function isNodeInstance(value: unknown): value is NodeInstance<string, string, unknown>;
|
|
228
|
+
export interface SubnodeInstance<TType extends string, TVersion extends string, TOutput, TSubnodeType extends string> extends NodeInstance<TType, TVersion, TOutput> {
|
|
229
|
+
readonly _subnodeType: TSubnodeType;
|
|
230
|
+
}
|
|
231
|
+
export type LanguageModelInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_languageModel'>;
|
|
232
|
+
export type MemoryInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_memory'>;
|
|
233
|
+
export type ToolInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_tool'>;
|
|
234
|
+
export type OutputParserInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_outputParser'>;
|
|
235
|
+
export type EmbeddingInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_embedding'>;
|
|
236
|
+
export type VectorStoreInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_vectorStore'>;
|
|
237
|
+
export type RetrieverInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_retriever'>;
|
|
238
|
+
export type DocumentLoaderInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_document'>;
|
|
239
|
+
export type TextSplitterInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_textSplitter'>;
|
|
240
|
+
export type RerankerInstance<TType extends string = string, TVersion extends string = string, TOutput = unknown> = SubnodeInstance<TType, TVersion, TOutput, 'ai_reranker'>;
|
|
241
|
+
export interface IfElseConfig {
|
|
242
|
+
version: number;
|
|
243
|
+
config?: NodeConfig;
|
|
244
|
+
}
|
|
245
|
+
export interface IfElseComposite {
|
|
246
|
+
readonly ifNode: NodeInstance<'n8n-nodes-base.if', string, unknown>;
|
|
247
|
+
readonly trueBranch: NodeInstance<string, string, unknown> | Array<NodeInstance<string, string, unknown>>;
|
|
248
|
+
readonly falseBranch: NodeInstance<string, string, unknown> | Array<NodeInstance<string, string, unknown>>;
|
|
249
|
+
}
|
|
250
|
+
export interface SwitchCaseConfig {
|
|
251
|
+
version: number;
|
|
252
|
+
config?: NodeConfig;
|
|
253
|
+
}
|
|
254
|
+
export interface SwitchCaseComposite {
|
|
255
|
+
readonly switchNode: NodeInstance<'n8n-nodes-base.switch', string, unknown>;
|
|
256
|
+
readonly cases: Array<NodeInstance<string, string, unknown> | Array<NodeInstance<string, string, unknown>> | null>;
|
|
257
|
+
}
|
|
258
|
+
export type IfElseTarget = null | NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>> | Array<NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>>> | IfElseBuilder<unknown> | SwitchCaseBuilder<unknown>;
|
|
259
|
+
export type SwitchCaseTarget = null | NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>> | Array<NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>>> | IfElseBuilder<unknown> | SwitchCaseBuilder<unknown>;
|
|
260
|
+
export interface IfElseBuilder<TOutput = unknown> {
|
|
261
|
+
readonly _isIfElseBuilder: true;
|
|
262
|
+
readonly ifNode: NodeInstance<'n8n-nodes-base.if', string, TOutput>;
|
|
263
|
+
readonly trueBranch: IfElseTarget;
|
|
264
|
+
readonly falseBranch: IfElseTarget;
|
|
265
|
+
onTrue(target: IfElseTarget): IfElseBuilder<TOutput>;
|
|
266
|
+
onFalse(target: IfElseTarget): IfElseBuilder<TOutput>;
|
|
267
|
+
to<T extends NodeInstance<string, string, unknown>>(target: T | T[], outputIndex?: number): NodeChain<NodeInstance<'n8n-nodes-base.if', string, TOutput>, T>;
|
|
268
|
+
}
|
|
269
|
+
export interface SwitchCaseBuilder<TOutput = unknown> {
|
|
270
|
+
readonly _isSwitchCaseBuilder: true;
|
|
271
|
+
readonly switchNode: NodeInstance<'n8n-nodes-base.switch', string, TOutput>;
|
|
272
|
+
readonly caseMapping: Map<number, SwitchCaseTarget>;
|
|
273
|
+
onCase(index: number, target: SwitchCaseTarget): SwitchCaseBuilder<TOutput>;
|
|
274
|
+
to<T extends NodeInstance<string, string, unknown>>(target: T | T[], outputIndex?: number): NodeChain<NodeInstance<'n8n-nodes-base.switch', string, TOutput>, T>;
|
|
275
|
+
}
|
|
276
|
+
export interface SplitInBatchesFactoryConfig {
|
|
277
|
+
version: number | string;
|
|
278
|
+
config?: NodeConfig;
|
|
279
|
+
}
|
|
280
|
+
export interface SplitInBatchesConfig extends NodeConfig {
|
|
281
|
+
version?: number | string;
|
|
282
|
+
id?: string;
|
|
283
|
+
}
|
|
284
|
+
export interface SplitInBatchesBuilder<TOutput = unknown> {
|
|
285
|
+
readonly sibNode: NodeInstance<'n8n-nodes-base.splitInBatches', string, unknown>;
|
|
286
|
+
onEachBatch(target: null | NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>> | Array<NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>>>): SplitInBatchesBuilder<TOutput>;
|
|
287
|
+
onDone(target: null | NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>> | Array<NodeInstance<string, string, unknown> | NodeChain<NodeInstance<string, string, unknown>, NodeInstance<string, string, unknown>>>): SplitInBatchesBuilder<TOutput>;
|
|
288
|
+
}
|
|
289
|
+
export interface GeneratePinDataOptions {
|
|
290
|
+
beforeWorkflow?: WorkflowJSON;
|
|
291
|
+
}
|
|
292
|
+
export interface WorkflowBuilder {
|
|
293
|
+
readonly id: string;
|
|
294
|
+
readonly name: string;
|
|
295
|
+
add<N extends NodeInstance<string, string, unknown> | TriggerInstance<string, string, unknown> | NodeChain | IfElseBuilder<unknown> | SwitchCaseBuilder<unknown>>(node: N): WorkflowBuilder;
|
|
296
|
+
to<N extends NodeInstance<string, string, unknown>>(node: N): WorkflowBuilder;
|
|
297
|
+
to(inputTarget: InputTarget): WorkflowBuilder;
|
|
298
|
+
to(ifElse: IfElseComposite): WorkflowBuilder;
|
|
299
|
+
to(switchCase: SwitchCaseComposite): WorkflowBuilder;
|
|
300
|
+
to<T>(splitInBatches: SplitInBatchesBuilder<T>): WorkflowBuilder;
|
|
301
|
+
to<T>(ifElseBuilder: IfElseBuilder<T>): WorkflowBuilder;
|
|
302
|
+
to<T>(switchCaseBuilder: SwitchCaseBuilder<T>): WorkflowBuilder;
|
|
303
|
+
to(nodes: Array<NodeInstance<string, string, unknown> | NodeChain | null>): WorkflowBuilder;
|
|
304
|
+
settings(settings: WorkflowSettings): WorkflowBuilder;
|
|
305
|
+
connect(source: NodeInstance<string, string, unknown>, sourceOutput: number, target: NodeInstance<string, string, unknown>, targetInput: number): WorkflowBuilder;
|
|
306
|
+
getNode(name: string): NodeInstance<string, string, unknown> | undefined;
|
|
307
|
+
validate(options?: ValidationOptions): ValidationResult;
|
|
308
|
+
toJSON(): WorkflowJSON;
|
|
309
|
+
toFormat<T>(format: string): T;
|
|
310
|
+
toString(): string;
|
|
311
|
+
generatePinData(options?: GeneratePinDataOptions): WorkflowBuilder;
|
|
312
|
+
regenerateNodeIds(): void;
|
|
313
|
+
}
|
|
314
|
+
export interface WorkflowBuilderOptions {
|
|
315
|
+
settings?: WorkflowSettings;
|
|
316
|
+
registry?: PluginRegistry;
|
|
317
|
+
}
|
|
318
|
+
export interface WorkflowBuilderStatic {
|
|
319
|
+
(id: string, name: string, options?: WorkflowSettings | WorkflowBuilderOptions): WorkflowBuilder;
|
|
320
|
+
fromJSON(json: WorkflowJSON): WorkflowBuilder;
|
|
321
|
+
}
|
|
322
|
+
export interface NodeInput<TType extends string = string, TVersion extends number = number, TParams = unknown> {
|
|
323
|
+
type: TType;
|
|
324
|
+
version: TVersion;
|
|
325
|
+
config: NodeConfig<TParams>;
|
|
326
|
+
output?: IDataObject[];
|
|
327
|
+
}
|
|
328
|
+
export interface TriggerInput<TType extends string = string, TVersion extends number = number, TParams = unknown> {
|
|
329
|
+
type: TType;
|
|
330
|
+
version: TVersion;
|
|
331
|
+
config: NodeConfig<TParams>;
|
|
332
|
+
output?: IDataObject[];
|
|
333
|
+
}
|
|
334
|
+
export type WorkflowFn = WorkflowBuilderStatic;
|
|
335
|
+
export type NodeFn = <TNode extends NodeInput>(input: TNode) => NodeInstance<TNode['type'], `${TNode['version']}`, unknown>;
|
|
336
|
+
export type TriggerFn = <TTrigger extends TriggerInput>(input: TTrigger) => TriggerInstance<TTrigger['type'], `${TTrigger['version']}`, unknown>;
|
|
337
|
+
export type StickyFn = (content: string, nodes?: Array<NodeInstance<string, string, unknown>>, config?: StickyNoteConfig) => NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void>;
|
|
338
|
+
export type PlaceholderFn = (hint: string) => PlaceholderValue;
|
|
339
|
+
export type NewCredentialFn = (name: string) => NewCredentialValue;
|
|
340
|
+
export type IfElseFn = (branches: [
|
|
341
|
+
NodeInstance<string, string, unknown> | null,
|
|
342
|
+
NodeInstance<string, string, unknown> | null
|
|
343
|
+
], config?: IfElseConfig) => IfElseComposite;
|
|
344
|
+
export type SwitchCaseFn = (config?: SwitchCaseConfig) => NodeInstance<'n8n-nodes-base.switch', string, unknown>;
|
|
345
|
+
export type SplitInBatchesFn = (configOrNode: SplitInBatchesFactoryConfig | NodeInstance<'n8n-nodes-base.splitInBatches', string, unknown>) => SplitInBatchesBuilder<unknown>;
|
|
346
|
+
export interface AllItemsContext {
|
|
347
|
+
$input: {
|
|
348
|
+
all(): IDataObject[];
|
|
349
|
+
first(): IDataObject;
|
|
350
|
+
last(): IDataObject;
|
|
351
|
+
itemMatching(index: number): IDataObject;
|
|
352
|
+
};
|
|
353
|
+
$env: IDataObject;
|
|
354
|
+
$vars: IDataObject;
|
|
355
|
+
$secrets: IDataObject;
|
|
356
|
+
$now: Date;
|
|
357
|
+
$today: Date;
|
|
358
|
+
$runIndex: number;
|
|
359
|
+
$execution: ExecutionContext;
|
|
360
|
+
$workflow: WorkflowContext;
|
|
361
|
+
(nodeName: string): {
|
|
362
|
+
json: IDataObject;
|
|
363
|
+
};
|
|
364
|
+
$jmespath: (data: unknown, expr: string) => unknown;
|
|
365
|
+
}
|
|
366
|
+
export interface EachItemContext {
|
|
367
|
+
$input: {
|
|
368
|
+
item: IDataObject;
|
|
369
|
+
};
|
|
370
|
+
$itemIndex: number;
|
|
371
|
+
$env: IDataObject;
|
|
372
|
+
$vars: IDataObject;
|
|
373
|
+
$secrets: IDataObject;
|
|
374
|
+
$now: Date;
|
|
375
|
+
$today: Date;
|
|
376
|
+
$runIndex: number;
|
|
377
|
+
$execution: ExecutionContext;
|
|
378
|
+
$workflow: WorkflowContext;
|
|
379
|
+
(nodeName: string): {
|
|
380
|
+
json: IDataObject;
|
|
381
|
+
};
|
|
382
|
+
$jmespath: (data: unknown, expr: string) => unknown;
|
|
383
|
+
}
|
|
384
|
+
export interface CodeResult<T> {
|
|
385
|
+
mode: 'runOnceForAllItems' | 'runOnceForEachItem';
|
|
386
|
+
jsCode: string;
|
|
387
|
+
_outputType?: T;
|
|
388
|
+
}
|
|
389
|
+
export type RunOnceForAllItemsFn = <T = unknown>(fn: (ctx: AllItemsContext) => Array<{
|
|
390
|
+
json: T;
|
|
391
|
+
}>) => CodeResult<T>;
|
|
392
|
+
export type RunOnceForEachItemFn = <T = unknown>(fn: (ctx: EachItemContext) => {
|
|
393
|
+
json: T;
|
|
394
|
+
} | null) => CodeResult<T>;
|
|
395
|
+
export type FromAIArgumentType = 'string' | 'number' | 'boolean' | 'json';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isNodeChain = isNodeChain;
|
|
4
|
+
exports.isNodeInstance = isNodeInstance;
|
|
5
|
+
function isNodeChain(value) {
|
|
6
|
+
if (value === null || typeof value !== 'object')
|
|
7
|
+
return false;
|
|
8
|
+
if (!('_isChain' in value))
|
|
9
|
+
return false;
|
|
10
|
+
const isChainValue = value._isChain;
|
|
11
|
+
return isChainValue === true;
|
|
12
|
+
}
|
|
13
|
+
function isNodeInstance(value) {
|
|
14
|
+
if (value === null || typeof value !== 'object')
|
|
15
|
+
return false;
|
|
16
|
+
if (!('type' in value && 'version' in value && 'config' in value && 'to' in value)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
const toProp = value.to;
|
|
20
|
+
return typeof toProp === 'function';
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":";;AAghBA,kCAWC;AAKD,wCAQC;AAxBD,SAAgB,WAAW,CAC1B,KAAc;IAKd,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,MAAM,YAAY,GAAI,KAAiC,CAAC,QAAQ,CAAC;IACjE,OAAO,YAAY,KAAK,IAAI,CAAC;AAC9B,CAAC;AAKD,SAAgB,cAAc,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAI,KAAiC,CAAC,EAAE,CAAC;IACrD,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CodeResult, AllItemsContext, EachItemContext } from '../types/base';
|
|
2
|
+
export declare function runOnceForAllItems<T = unknown>(fn: (ctx: AllItemsContext) => Array<{
|
|
3
|
+
json: T;
|
|
4
|
+
}>): CodeResult<T>;
|
|
5
|
+
export declare function runOnceForEachItem<T = unknown>(fn: (ctx: EachItemContext) => {
|
|
6
|
+
json: T;
|
|
7
|
+
} | null): CodeResult<T>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runOnceForAllItems = runOnceForAllItems;
|
|
4
|
+
exports.runOnceForEachItem = runOnceForEachItem;
|
|
5
|
+
function extractFunctionBody(fn) {
|
|
6
|
+
const fnStr = fn.toString();
|
|
7
|
+
const arrowMatch = fnStr.match(/^\s*\(?(\w+)\)?\s*=>\s*(.+)$/s);
|
|
8
|
+
if (arrowMatch) {
|
|
9
|
+
const paramName = arrowMatch[1];
|
|
10
|
+
let body = arrowMatch[2].trim();
|
|
11
|
+
if (body.startsWith('{') && body.endsWith('}')) {
|
|
12
|
+
body = body.slice(1, -1).trim();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
body = `return ${body};`;
|
|
16
|
+
}
|
|
17
|
+
body = body.replace(new RegExp(`${paramName}\\.\\$`, 'g'), '$');
|
|
18
|
+
body = body.replace(new RegExp(`${paramName}\\(`, 'g'), '$(');
|
|
19
|
+
body = body.replace(new RegExp(`${paramName}\\.`, 'g'), '');
|
|
20
|
+
return body;
|
|
21
|
+
}
|
|
22
|
+
const funcMatch = fnStr.match(/function\s*\(\s*(\w+)\s*\)\s*\{([\s\S]*)\}$/);
|
|
23
|
+
if (funcMatch) {
|
|
24
|
+
const paramName = funcMatch[1];
|
|
25
|
+
let body = funcMatch[2].trim();
|
|
26
|
+
body = body.replace(new RegExp(`${paramName}\\.\\$`, 'g'), '$');
|
|
27
|
+
body = body.replace(new RegExp(`${paramName}\\(`, 'g'), '$(');
|
|
28
|
+
body = body.replace(new RegExp(`${paramName}\\.`, 'g'), '');
|
|
29
|
+
return body;
|
|
30
|
+
}
|
|
31
|
+
throw new Error('Unable to parse function body');
|
|
32
|
+
}
|
|
33
|
+
function runOnceForAllItems(fn) {
|
|
34
|
+
const jsCode = extractFunctionBody(fn);
|
|
35
|
+
return {
|
|
36
|
+
mode: 'runOnceForAllItems',
|
|
37
|
+
jsCode,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function runOnceForEachItem(fn) {
|
|
41
|
+
const jsCode = extractFunctionBody(fn);
|
|
42
|
+
return {
|
|
43
|
+
mode: 'runOnceForEachItem',
|
|
44
|
+
jsCode,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=code-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-helpers.js","sourceRoot":"","sources":["../../src/utils/code-helpers.ts"],"names":[],"mappings":";;AA8EA,gDASC;AA2BD,gDASC;AArHD,SAAS,mBAAmB,CAAC,EAAY;IACxC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAG5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAChE,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAGhC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YAEP,IAAI,GAAG,UAAU,IAAI,GAAG,CAAC;QAC1B,CAAC;QAKD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACb,CAAC;IAGD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7E,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAG/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAChE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AAClD,CAAC;AA8BD,SAAgB,kBAAkB,CACjC,EAAgD;IAEhD,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,MAAM;KACN,CAAC;AACH,CAAC;AA2BD,SAAgB,kBAAkB,CACjC,EAAgD;IAEhD,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,MAAM;KACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runOnceForEachItem = exports.runOnceForAllItems = exports.hasProperty = exports.getProperty = exports.isPlainObject = void 0;
|
|
4
|
+
var safe_access_1 = require("./safe-access");
|
|
5
|
+
Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return safe_access_1.isPlainObject; } });
|
|
6
|
+
Object.defineProperty(exports, "getProperty", { enumerable: true, get: function () { return safe_access_1.getProperty; } });
|
|
7
|
+
Object.defineProperty(exports, "hasProperty", { enumerable: true, get: function () { return safe_access_1.hasProperty; } });
|
|
8
|
+
var code_helpers_1 = require("./code-helpers");
|
|
9
|
+
Object.defineProperty(exports, "runOnceForAllItems", { enumerable: true, get: function () { return code_helpers_1.runOnceForAllItems; } });
|
|
10
|
+
Object.defineProperty(exports, "runOnceForEachItem", { enumerable: true, get: function () { return code_helpers_1.runOnceForEachItem; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAMA,6CAAwE;AAA/D,4GAAA,aAAa,OAAA;AAAE,0GAAA,WAAW,OAAA;AAAE,0GAAA,WAAW,OAAA;AAChD,+CAAwE;AAA/D,kHAAA,kBAAkB,OAAA;AAAE,kHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isPlainObject = isPlainObject;
|
|
4
|
+
exports.getProperty = getProperty;
|
|
5
|
+
exports.hasProperty = hasProperty;
|
|
6
|
+
function isPlainObject(value) {
|
|
7
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
8
|
+
}
|
|
9
|
+
function getProperty(value, key) {
|
|
10
|
+
if (!isPlainObject(value)) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return value[key];
|
|
14
|
+
}
|
|
15
|
+
function hasProperty(value, key) {
|
|
16
|
+
if (!isPlainObject(value)) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return key in value;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=safe-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-access.js","sourceRoot":"","sources":["../../src/utils/safe-access.ts"],"names":[],"mappings":";;AASA,sCAEC;AAUD,kCAKC;AAUD,kCAKC;AAhCD,SAAgB,aAAa,CAAC,KAAc;IAC3C,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAUD,SAAgB,WAAW,CAAI,KAAc,EAAE,GAAW;IACzD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAkB,CAAC;AACpC,CAAC;AAUD,SAAgB,WAAW,CAAC,KAAc,EAAE,GAAW;IACtD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,GAAG,IAAI,KAAK,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isTriggerNodeType(type: string): boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTriggerNodeType = isTriggerNodeType;
|
|
4
|
+
const TRIGGER_NODE_TYPES = new Set([
|
|
5
|
+
'n8n-nodes-base.webhook',
|
|
6
|
+
'n8n-nodes-base.cron',
|
|
7
|
+
'n8n-nodes-base.emailReadImap',
|
|
8
|
+
'n8n-nodes-base.telegramBot',
|
|
9
|
+
'n8n-nodes-base.start',
|
|
10
|
+
]);
|
|
11
|
+
function isTriggerNodeType(type) {
|
|
12
|
+
if (TRIGGER_NODE_TYPES.has(type)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
return type.toLowerCase().includes('trigger');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=trigger-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-detection.js","sourceRoot":"","sources":["../../src/utils/trigger-detection.ts"],"names":[],"mappings":";;AA6BA,8CAKC;AAvBD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAClC,wBAAwB;IACxB,qBAAqB;IACrB,8BAA8B;IAC9B,4BAA4B;IAC5B,sBAAsB;CACtB,CAAC,CAAC;AAYH,SAAgB,iBAAiB,CAAC,IAAY;IAC7C,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type DisplayConditionOperator = 'eq' | 'not' | 'gte' | 'lte' | 'gt' | 'lt' | 'between' | 'includes' | 'startsWith' | 'endsWith' | 'regex' | 'exists';
|
|
2
|
+
export type DisplayCondition = {
|
|
3
|
+
_cnd: Partial<Record<DisplayConditionOperator, unknown>>;
|
|
4
|
+
};
|
|
5
|
+
export type DisplayOptions = {
|
|
6
|
+
show?: Record<string, unknown[]>;
|
|
7
|
+
hide?: Record<string, unknown[]>;
|
|
8
|
+
};
|
|
9
|
+
export type DisplayOptionsContext = {
|
|
10
|
+
parameters: Record<string, unknown>;
|
|
11
|
+
nodeVersion?: number;
|
|
12
|
+
rootParameters?: Record<string, unknown>;
|
|
13
|
+
defaults?: Record<string, unknown>;
|
|
14
|
+
isToolNode?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function checkConditions(conditions: unknown[], actualValues: unknown[]): boolean;
|
|
17
|
+
export declare function getPropertyValue(context: DisplayOptionsContext, propertyName: string): unknown[];
|
|
18
|
+
export declare function matchesDisplayOptions(context: DisplayOptionsContext, displayOptions: DisplayOptions): boolean;
|