n8n-workflow 2.31.1 → 2.32.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/dist/cjs/augment-object.js +136 -146
- package/dist/cjs/augment-object.js.map +1 -1
- package/dist/cjs/build.tsbuildinfo +1 -1
- package/dist/cjs/common/find-ai-root-node-names.js +36 -46
- package/dist/cjs/common/find-ai-root-node-names.js.map +1 -1
- package/dist/cjs/common/get-child-nodes.js +8 -18
- package/dist/cjs/common/get-child-nodes.js.map +1 -1
- package/dist/cjs/common/get-connected-nodes.js +84 -94
- package/dist/cjs/common/get-connected-nodes.js.map +1 -1
- package/dist/cjs/common/get-node-by-name.js +16 -26
- package/dist/cjs/common/get-node-by-name.js.map +1 -1
- package/dist/cjs/common/get-parent-nodes.js +14 -24
- package/dist/cjs/common/get-parent-nodes.js.map +1 -1
- package/dist/cjs/common/index.js +9 -19
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/common/map-connections-by-destination.js +31 -41
- package/dist/cjs/common/map-connections-by-destination.js.map +1 -1
- package/dist/cjs/common/resolve-variables.d.ts +8 -0
- package/dist/cjs/common/resolve-variables.d.ts.map +1 -1
- package/dist/cjs/common/resolve-variables.js +46 -33
- package/dist/cjs/common/resolve-variables.js.map +1 -1
- package/dist/cjs/connections-diff.js +58 -68
- package/dist/cjs/connections-diff.js.map +1 -1
- package/dist/cjs/constants.d.ts +3 -3
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +157 -166
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/credential-domain-restrictions.js +153 -163
- package/dist/cjs/credential-domain-restrictions.js.map +1 -1
- package/dist/cjs/cron.d.ts.map +1 -1
- package/dist/cjs/cron.js +25 -35
- package/dist/cjs/cron.js.map +1 -1
- package/dist/cjs/data-table.types.js +10 -20
- package/dist/cjs/data-table.types.js.map +1 -1
- package/dist/cjs/dynamic-credentials-helpers.js +93 -103
- package/dist/cjs/dynamic-credentials-helpers.js.map +1 -1
- package/dist/cjs/errors/abstract/execution-base.error.d.ts.map +1 -1
- package/dist/cjs/errors/abstract/execution-base.error.js +41 -51
- package/dist/cjs/errors/abstract/execution-base.error.js.map +1 -1
- package/dist/cjs/errors/abstract/node.error.d.ts.map +1 -1
- package/dist/cjs/errors/abstract/node.error.js +142 -152
- package/dist/cjs/errors/abstract/node.error.js.map +1 -1
- package/dist/cjs/errors/base/base.error.d.ts.map +1 -1
- package/dist/cjs/errors/base/base.error.js +35 -45
- package/dist/cjs/errors/base/base.error.js.map +1 -1
- package/dist/cjs/errors/base/operational.error.d.ts.map +1 -1
- package/dist/cjs/errors/base/operational.error.js +17 -27
- package/dist/cjs/errors/base/operational.error.js.map +1 -1
- package/dist/cjs/errors/base/unexpected.error.d.ts.map +1 -1
- package/dist/cjs/errors/base/unexpected.error.js +17 -27
- package/dist/cjs/errors/base/unexpected.error.js.map +1 -1
- package/dist/cjs/errors/base/user.error.d.ts.map +1 -1
- package/dist/cjs/errors/base/user.error.js +17 -27
- package/dist/cjs/errors/base/user.error.js.map +1 -1
- package/dist/cjs/errors/cli-subworkflow-operation.error.js +7 -17
- package/dist/cjs/errors/cli-subworkflow-operation.error.js.map +1 -1
- package/dist/cjs/errors/db-connection-timeout-error.d.ts.map +1 -1
- package/dist/cjs/errors/db-connection-timeout-error.js +11 -21
- package/dist/cjs/errors/db-connection-timeout-error.js.map +1 -1
- package/dist/cjs/errors/execution-cancelled.error.d.ts.map +1 -1
- package/dist/cjs/errors/execution-cancelled.error.js +33 -43
- package/dist/cjs/errors/execution-cancelled.error.js.map +1 -1
- package/dist/cjs/errors/expression-class-extension.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression-class-extension.error.js +9 -19
- package/dist/cjs/errors/expression-class-extension.error.js.map +1 -1
- package/dist/cjs/errors/expression-computed-destructuring.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression-computed-destructuring.error.js +9 -19
- package/dist/cjs/errors/expression-computed-destructuring.error.js.map +1 -1
- package/dist/cjs/errors/expression-destructuring.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression-destructuring.error.js +9 -19
- package/dist/cjs/errors/expression-destructuring.error.js.map +1 -1
- package/dist/cjs/errors/expression-extension.error.js +7 -17
- package/dist/cjs/errors/expression-extension.error.js.map +1 -1
- package/dist/cjs/errors/expression-reserved-variable.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression-reserved-variable.error.js +9 -19
- package/dist/cjs/errors/expression-reserved-variable.error.js.map +1 -1
- package/dist/cjs/errors/expression-with-statement.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression-with-statement.error.js +9 -19
- package/dist/cjs/errors/expression-with-statement.error.js.map +1 -1
- package/dist/cjs/errors/expression.error.d.ts.map +1 -1
- package/dist/cjs/errors/expression.error.js +33 -43
- package/dist/cjs/errors/expression.error.js.map +1 -1
- package/dist/cjs/errors/index.js +62 -72
- package/dist/cjs/errors/index.js.map +1 -1
- package/dist/cjs/errors/node-api.error.d.ts.map +1 -1
- package/dist/cjs/errors/node-api.error.js +227 -237
- package/dist/cjs/errors/node-api.error.js.map +1 -1
- package/dist/cjs/errors/node-operation.error.d.ts.map +1 -1
- package/dist/cjs/errors/node-operation.error.js +43 -53
- package/dist/cjs/errors/node-operation.error.js.map +1 -1
- package/dist/cjs/errors/node-ssl.error.d.ts.map +1 -1
- package/dist/cjs/errors/node-ssl.error.js +9 -19
- package/dist/cjs/errors/node-ssl.error.js.map +1 -1
- package/dist/cjs/errors/subworkflow-operation.error.d.ts.map +1 -1
- package/dist/cjs/errors/subworkflow-operation.error.js +18 -28
- package/dist/cjs/errors/subworkflow-operation.error.js.map +1 -1
- package/dist/cjs/errors/trigger-close.error.d.ts.map +1 -1
- package/dist/cjs/errors/trigger-close.error.js +11 -21
- package/dist/cjs/errors/trigger-close.error.js.map +1 -1
- package/dist/cjs/errors/webhook-taken.error.d.ts.map +1 -1
- package/dist/cjs/errors/webhook-taken.error.js +9 -19
- package/dist/cjs/errors/webhook-taken.error.js.map +1 -1
- package/dist/cjs/errors/workflow-activation.error.d.ts.map +1 -1
- package/dist/cjs/errors/workflow-activation.error.js +54 -64
- package/dist/cjs/errors/workflow-activation.error.js.map +1 -1
- package/dist/cjs/errors/workflow-configuration.error.js +10 -20
- package/dist/cjs/errors/workflow-configuration.error.js.map +1 -1
- package/dist/cjs/errors/workflow-deactivation.error.js +7 -17
- package/dist/cjs/errors/workflow-deactivation.error.js.map +1 -1
- package/dist/cjs/errors/workflow-operation.error.d.ts.map +1 -1
- package/dist/cjs/errors/workflow-operation.error.js +20 -30
- package/dist/cjs/errors/workflow-operation.error.js.map +1 -1
- package/dist/cjs/evaluation-helpers.js +16 -26
- package/dist/cjs/evaluation-helpers.js.map +1 -1
- package/dist/cjs/execution-context-establishment-hooks.d.ts.map +1 -1
- package/dist/cjs/execution-context-establishment-hooks.js +43 -49
- package/dist/cjs/execution-context-establishment-hooks.js.map +1 -1
- package/dist/cjs/execution-context.d.ts +14 -14
- package/dist/cjs/execution-context.d.ts.map +1 -1
- package/dist/cjs/execution-context.js +203 -213
- package/dist/cjs/execution-context.js.map +1 -1
- package/dist/cjs/execution-status.d.ts +2 -2
- package/dist/cjs/execution-status.d.ts.map +1 -1
- package/dist/cjs/execution-status.js +27 -37
- package/dist/cjs/execution-status.js.map +1 -1
- package/dist/cjs/expression-evaluator-proxy.d.ts.map +1 -1
- package/dist/cjs/expression-evaluator-proxy.js +18 -28
- package/dist/cjs/expression-evaluator-proxy.js.map +1 -1
- package/dist/cjs/expression-sandboxing.d.ts.map +1 -1
- package/dist/cjs/expression-sandboxing.js +447 -457
- package/dist/cjs/expression-sandboxing.js.map +1 -1
- package/dist/cjs/expression.d.ts.map +1 -1
- package/dist/cjs/expression.js +535 -546
- package/dist/cjs/expression.js.map +1 -1
- package/dist/cjs/expressions/expression-helpers.d.ts.map +1 -1
- package/dist/cjs/expressions/expression-helpers.js +13 -23
- package/dist/cjs/expressions/expression-helpers.js.map +1 -1
- package/dist/cjs/extensions/array-extensions.js +591 -601
- package/dist/cjs/extensions/array-extensions.js.map +1 -1
- package/dist/cjs/extensions/boolean-extensions.d.ts +1 -1
- package/dist/cjs/extensions/boolean-extensions.js +38 -48
- package/dist/cjs/extensions/boolean-extensions.js.map +1 -1
- package/dist/cjs/extensions/date-extensions.js +507 -517
- package/dist/cjs/extensions/date-extensions.js.map +1 -1
- package/dist/cjs/extensions/expression-extension.d.ts.map +1 -1
- package/dist/cjs/extensions/expression-extension.js +455 -465
- package/dist/cjs/extensions/expression-extension.js.map +1 -1
- package/dist/cjs/extensions/expression-parser.d.ts.map +1 -1
- package/dist/cjs/extensions/expression-parser.js +82 -92
- package/dist/cjs/extensions/expression-parser.js.map +1 -1
- package/dist/cjs/extensions/extended-functions.d.ts +10 -18
- package/dist/cjs/extensions/extended-functions.d.ts.map +1 -1
- package/dist/cjs/extensions/extended-functions.js +80 -90
- package/dist/cjs/extensions/extended-functions.js.map +1 -1
- package/dist/cjs/extensions/extensions.js +2 -12
- package/dist/cjs/extensions/index.js +10 -20
- package/dist/cjs/extensions/index.js.map +1 -1
- package/dist/cjs/extensions/number-extensions.js +226 -236
- package/dist/cjs/extensions/number-extensions.js.map +1 -1
- package/dist/cjs/extensions/object-extensions.js +274 -284
- package/dist/cjs/extensions/object-extensions.js.map +1 -1
- package/dist/cjs/extensions/string-extensions.d.ts +1 -1
- package/dist/cjs/extensions/string-extensions.d.ts.map +1 -1
- package/dist/cjs/extensions/string-extensions.js +769 -779
- package/dist/cjs/extensions/string-extensions.js.map +1 -1
- package/dist/cjs/extensions/utils.d.ts.map +1 -1
- package/dist/cjs/extensions/utils.js +35 -45
- package/dist/cjs/extensions/utils.js.map +1 -1
- package/dist/cjs/from-ai-parse-utils.js +393 -403
- package/dist/cjs/from-ai-parse-utils.js.map +1 -1
- package/dist/cjs/global-state.js +12 -22
- package/dist/cjs/global-state.js.map +1 -1
- package/dist/cjs/graph/graph-utils.js +166 -176
- package/dist/cjs/graph/graph-utils.js.map +1 -1
- package/dist/cjs/highlighted-data.js +13 -23
- package/dist/cjs/highlighted-data.js.map +1 -1
- package/dist/cjs/index.js +105 -115
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +112 -22
- package/dist/cjs/interfaces.d.ts.map +1 -1
- package/dist/cjs/interfaces.js +62 -72
- package/dist/cjs/interfaces.js.map +1 -1
- package/dist/cjs/jmespath-query.js +26 -36
- package/dist/cjs/jmespath-query.js.map +1 -1
- package/dist/cjs/logger-proxy.d.ts.map +1 -1
- package/dist/cjs/logger-proxy.js +15 -25
- package/dist/cjs/logger-proxy.js.map +1 -1
- package/dist/cjs/mcp-helpers.js +10 -20
- package/dist/cjs/mcp-helpers.js.map +1 -1
- package/dist/cjs/message-event-bus.d.ts +184 -165
- package/dist/cjs/message-event-bus.d.ts.map +1 -1
- package/dist/cjs/message-event-bus.js +207 -217
- package/dist/cjs/message-event-bus.js.map +1 -1
- package/dist/cjs/metadata-utils.js +35 -45
- package/dist/cjs/metadata-utils.js.map +1 -1
- package/dist/cjs/native-methods/array.methods.js +527 -537
- package/dist/cjs/native-methods/array.methods.js.map +1 -1
- package/dist/cjs/native-methods/boolean.methods.js +18 -28
- package/dist/cjs/native-methods/boolean.methods.js.map +1 -1
- package/dist/cjs/native-methods/index.js +16 -26
- package/dist/cjs/native-methods/index.js.map +1 -1
- package/dist/cjs/native-methods/number.methods.js +79 -89
- package/dist/cjs/native-methods/number.methods.js.map +1 -1
- package/dist/cjs/native-methods/object.methods.js +7 -17
- package/dist/cjs/native-methods/object.methods.js.map +1 -1
- package/dist/cjs/native-methods/string.methods.js +474 -484
- package/dist/cjs/native-methods/string.methods.js.map +1 -1
- package/dist/cjs/node-grouping-validation.d.ts +6 -0
- package/dist/cjs/node-grouping-validation.d.ts.map +1 -1
- package/dist/cjs/node-grouping-validation.js +165 -144
- package/dist/cjs/node-grouping-validation.js.map +1 -1
- package/dist/cjs/node-helpers.d.ts.map +1 -1
- package/dist/cjs/node-helpers.js +1486 -1493
- package/dist/cjs/node-helpers.js.map +1 -1
- package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -1
- package/dist/cjs/node-parameters/filter-parameter.js +315 -325
- package/dist/cjs/node-parameters/filter-parameter.js.map +1 -1
- package/dist/cjs/node-parameters/node-parameter-value-type-guard.js +105 -115
- package/dist/cjs/node-parameters/node-parameter-value-type-guard.js.map +1 -1
- package/dist/cjs/node-parameters/parameter-type-validation.js +120 -130
- package/dist/cjs/node-parameters/parameter-type-validation.js.map +1 -1
- package/dist/cjs/node-parameters/path-utils.js +21 -31
- package/dist/cjs/node-parameters/path-utils.js.map +1 -1
- package/dist/cjs/node-parameters/rename-node-utils.js +22 -32
- package/dist/cjs/node-parameters/rename-node-utils.js.map +1 -1
- package/dist/cjs/node-reference-parser-utils.js +472 -482
- package/dist/cjs/node-reference-parser-utils.js.map +1 -1
- package/dist/cjs/node-validation.js +59 -69
- package/dist/cjs/node-validation.js.map +1 -1
- package/dist/cjs/observable-object.js +56 -66
- package/dist/cjs/observable-object.js.map +1 -1
- package/dist/cjs/redaction-channels.js +36 -46
- package/dist/cjs/redaction-channels.js.map +1 -1
- package/dist/cjs/run-execution-data/run-execution-data.js +15 -25
- package/dist/cjs/run-execution-data/run-execution-data.js.map +1 -1
- package/dist/cjs/run-execution-data/run-execution-data.v0.js +2 -12
- package/dist/cjs/run-execution-data/run-execution-data.v1.js +26 -36
- package/dist/cjs/run-execution-data/run-execution-data.v1.js.map +1 -1
- package/dist/cjs/run-execution-data-factory.js +113 -123
- package/dist/cjs/run-execution-data-factory.js.map +1 -1
- package/dist/cjs/schemas.d.ts +13 -13
- package/dist/cjs/schemas.d.ts.map +1 -1
- package/dist/cjs/schemas.js +351 -360
- package/dist/cjs/schemas.js.map +1 -1
- package/dist/cjs/sub-workflow-output.js +10 -20
- package/dist/cjs/sub-workflow-output.js.map +1 -1
- package/dist/cjs/telemetry-helpers.d.ts.map +1 -1
- package/dist/cjs/telemetry-helpers.js +716 -726
- package/dist/cjs/telemetry-helpers.js.map +1 -1
- package/dist/cjs/tool-helpers.js +18 -28
- package/dist/cjs/tool-helpers.js.map +1 -1
- package/dist/cjs/trigger-identity.js +41 -51
- package/dist/cjs/trigger-identity.js.map +1 -1
- package/dist/cjs/trimmed-task-data.js +21 -31
- package/dist/cjs/trimmed-task-data.js.map +1 -1
- package/dist/cjs/type-guards.d.ts +3 -3
- package/dist/cjs/type-guards.d.ts.map +1 -1
- package/dist/cjs/type-guards.js +74 -84
- package/dist/cjs/type-guards.js.map +1 -1
- package/dist/cjs/type-validation.d.ts.map +1 -1
- package/dist/cjs/type-validation.js +383 -393
- package/dist/cjs/type-validation.js.map +1 -1
- package/dist/cjs/utils.d.ts +2 -2
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +430 -440
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/versioned-node-type.d.ts.map +1 -1
- package/dist/cjs/versioned-node-type.js +20 -30
- package/dist/cjs/versioned-node-type.js.map +1 -1
- package/dist/cjs/workflow-checksum.js +67 -77
- package/dist/cjs/workflow-checksum.js.map +1 -1
- package/dist/cjs/workflow-data-proxy-env-provider.js +58 -68
- package/dist/cjs/workflow-data-proxy-env-provider.js.map +1 -1
- package/dist/cjs/workflow-data-proxy-helpers.js +8 -18
- package/dist/cjs/workflow-data-proxy-helpers.js.map +1 -1
- package/dist/cjs/workflow-data-proxy.d.ts.map +1 -1
- package/dist/cjs/workflow-data-proxy.js +1162 -1172
- package/dist/cjs/workflow-data-proxy.js.map +1 -1
- package/dist/cjs/workflow-diff.d.ts +2 -1
- package/dist/cjs/workflow-diff.d.ts.map +1 -1
- package/dist/cjs/workflow-diff.js +292 -300
- package/dist/cjs/workflow-diff.js.map +1 -1
- package/dist/cjs/workflow-environments-helper.js +23 -33
- package/dist/cjs/workflow-environments-helper.js.map +1 -1
- package/dist/cjs/workflow-expression.d.ts.map +1 -1
- package/dist/cjs/workflow-expression.js +97 -107
- package/dist/cjs/workflow-expression.js.map +1 -1
- package/dist/cjs/workflow-structure-validation.d.ts.map +1 -1
- package/dist/cjs/workflow-structure-validation.js +140 -150
- package/dist/cjs/workflow-structure-validation.js.map +1 -1
- package/dist/cjs/workflow-validation.js +40 -50
- package/dist/cjs/workflow-validation.js.map +1 -1
- package/dist/cjs/workflow.d.ts.map +1 -1
- package/dist/cjs/workflow.js +612 -622
- package/dist/cjs/workflow.js.map +1 -1
- package/dist/esm/common/get-child-nodes.js.map +1 -1
- package/dist/esm/common/get-connected-nodes.js.map +1 -1
- package/dist/esm/common/get-parent-nodes.js.map +1 -1
- package/dist/esm/common/resolve-variables.d.ts +8 -0
- package/dist/esm/common/resolve-variables.d.ts.map +1 -1
- package/dist/esm/common/resolve-variables.js +22 -0
- package/dist/esm/common/resolve-variables.js.map +1 -1
- package/dist/esm/constants.d.ts +3 -3
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/cron.d.ts.map +1 -1
- package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -1
- package/dist/esm/errors/abstract/execution-base.error.js.map +1 -1
- package/dist/esm/errors/abstract/node.error.d.ts.map +1 -1
- package/dist/esm/errors/abstract/node.error.js.map +1 -1
- package/dist/esm/errors/base/base.error.d.ts.map +1 -1
- package/dist/esm/errors/base/base.error.js.map +1 -1
- package/dist/esm/errors/base/operational.error.d.ts.map +1 -1
- package/dist/esm/errors/base/operational.error.js.map +1 -1
- package/dist/esm/errors/base/unexpected.error.d.ts.map +1 -1
- package/dist/esm/errors/base/unexpected.error.js.map +1 -1
- package/dist/esm/errors/base/user.error.d.ts.map +1 -1
- package/dist/esm/errors/base/user.error.js.map +1 -1
- package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -1
- package/dist/esm/errors/execution-cancelled.error.d.ts.map +1 -1
- package/dist/esm/errors/expression-class-extension.error.d.ts.map +1 -1
- package/dist/esm/errors/expression-computed-destructuring.error.d.ts.map +1 -1
- package/dist/esm/errors/expression-destructuring.error.d.ts.map +1 -1
- package/dist/esm/errors/expression-reserved-variable.error.d.ts.map +1 -1
- package/dist/esm/errors/expression-with-statement.error.d.ts.map +1 -1
- package/dist/esm/errors/expression.error.d.ts.map +1 -1
- package/dist/esm/errors/node-api.error.d.ts.map +1 -1
- package/dist/esm/errors/node-api.error.js.map +1 -1
- package/dist/esm/errors/node-operation.error.d.ts.map +1 -1
- package/dist/esm/errors/node-operation.error.js.map +1 -1
- package/dist/esm/errors/node-ssl.error.d.ts.map +1 -1
- package/dist/esm/errors/subworkflow-operation.error.d.ts.map +1 -1
- package/dist/esm/errors/trigger-close.error.d.ts.map +1 -1
- package/dist/esm/errors/trigger-close.error.js.map +1 -1
- package/dist/esm/errors/webhook-taken.error.d.ts.map +1 -1
- package/dist/esm/errors/workflow-activation.error.d.ts.map +1 -1
- package/dist/esm/errors/workflow-activation.error.js.map +1 -1
- package/dist/esm/errors/workflow-operation.error.d.ts.map +1 -1
- package/dist/esm/execution-context-establishment-hooks.d.ts.map +1 -1
- package/dist/esm/execution-context-establishment-hooks.js +7 -3
- package/dist/esm/execution-context-establishment-hooks.js.map +1 -1
- package/dist/esm/execution-context.d.ts +14 -14
- package/dist/esm/execution-context.d.ts.map +1 -1
- package/dist/esm/execution-status.d.ts +2 -2
- package/dist/esm/execution-status.d.ts.map +1 -1
- package/dist/esm/expression-evaluator-proxy.d.ts.map +1 -1
- package/dist/esm/expression-sandboxing.d.ts.map +1 -1
- package/dist/esm/expression-sandboxing.js.map +1 -1
- package/dist/esm/expression.d.ts.map +1 -1
- package/dist/esm/expression.js.map +1 -1
- package/dist/esm/expressions/expression-helpers.d.ts.map +1 -1
- package/dist/esm/extensions/boolean-extensions.d.ts +1 -1
- package/dist/esm/extensions/expression-extension.d.ts.map +1 -1
- package/dist/esm/extensions/expression-parser.d.ts.map +1 -1
- package/dist/esm/extensions/extended-functions.d.ts +10 -18
- package/dist/esm/extensions/extended-functions.d.ts.map +1 -1
- package/dist/esm/extensions/number-extensions.js.map +1 -1
- package/dist/esm/extensions/string-extensions.d.ts +1 -1
- package/dist/esm/extensions/string-extensions.d.ts.map +1 -1
- package/dist/esm/extensions/string-extensions.js.map +1 -1
- package/dist/esm/extensions/utils.d.ts.map +1 -1
- package/dist/esm/from-ai-parse-utils.js.map +1 -1
- package/dist/esm/interfaces.d.ts +112 -22
- package/dist/esm/interfaces.d.ts.map +1 -1
- package/dist/esm/interfaces.js.map +1 -1
- package/dist/esm/logger-proxy.d.ts.map +1 -1
- package/dist/esm/message-event-bus.d.ts +184 -165
- package/dist/esm/message-event-bus.d.ts.map +1 -1
- package/dist/esm/message-event-bus.js +2 -2
- package/dist/esm/message-event-bus.js.map +1 -1
- package/dist/esm/node-grouping-validation.d.ts +6 -0
- package/dist/esm/node-grouping-validation.d.ts.map +1 -1
- package/dist/esm/node-grouping-validation.js +34 -5
- package/dist/esm/node-grouping-validation.js.map +1 -1
- package/dist/esm/node-helpers.d.ts.map +1 -1
- package/dist/esm/node-helpers.js +3 -0
- package/dist/esm/node-helpers.js.map +1 -1
- package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -1
- package/dist/esm/node-parameters/filter-parameter.js.map +1 -1
- package/dist/esm/node-reference-parser-utils.js.map +1 -1
- package/dist/esm/run-execution-data-factory.js.map +1 -1
- package/dist/esm/schemas.d.ts +13 -13
- package/dist/esm/schemas.d.ts.map +1 -1
- package/dist/esm/schemas.js +1 -0
- package/dist/esm/schemas.js.map +1 -1
- package/dist/esm/telemetry-helpers.d.ts.map +1 -1
- package/dist/esm/telemetry-helpers.js.map +1 -1
- package/dist/esm/type-guards.d.ts +3 -3
- package/dist/esm/type-guards.d.ts.map +1 -1
- package/dist/esm/type-validation.d.ts.map +1 -1
- package/dist/esm/type-validation.js.map +1 -1
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/dist/esm/utils.d.ts +2 -2
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/versioned-node-type.d.ts.map +1 -1
- package/dist/esm/workflow-data-proxy.d.ts.map +1 -1
- package/dist/esm/workflow-data-proxy.js.map +1 -1
- package/dist/esm/workflow-diff.d.ts +2 -1
- package/dist/esm/workflow-diff.d.ts.map +1 -1
- package/dist/esm/workflow-diff.js +3 -1
- package/dist/esm/workflow-diff.js.map +1 -1
- package/dist/esm/workflow-expression.d.ts.map +1 -1
- package/dist/esm/workflow-expression.js.map +1 -1
- package/dist/esm/workflow-structure-validation.d.ts.map +1 -1
- package/dist/esm/workflow-structure-validation.js.map +1 -1
- package/dist/esm/workflow.d.ts.map +1 -1
- package/dist/esm/workflow.js.map +1 -1
- package/package.json +9 -8
|
@@ -1,162 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkflowStructureValidationError = exports.formatWorkflowStructureIssuePath = void 0;
|
|
4
|
+
exports.safeParseWorkflowStructure = safeParseWorkflowStructure;
|
|
5
|
+
exports.parseWorkflowStructure = parseWorkflowStructure;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
/**
|
|
8
|
+
* Workflow Structure Validation
|
|
9
|
+
*
|
|
10
|
+
* Single source of truth for validating workflow **structure** — the minimum
|
|
11
|
+
* shape that the editor and runtime assume is always present and correctly
|
|
12
|
+
* formed. Intentionally separate from activation/publish validation
|
|
13
|
+
* (WorkflowValidationService) which checks semantic correctness (trigger
|
|
14
|
+
* presence, known node types, credential issues, etc.).
|
|
15
|
+
*
|
|
16
|
+
* Lives in n8n-workflow so it can be shared by:
|
|
17
|
+
* - Backend: create/update/import reject malformed payloads (400)
|
|
18
|
+
* - Frontend: open path warns but still renders; import path blocks
|
|
19
|
+
*
|
|
20
|
+
* Validates:
|
|
21
|
+
* - Required node fields (name, type, position)
|
|
22
|
+
* - Position is a 2-number tuple
|
|
23
|
+
* - Connection entries have valid node/type/index
|
|
24
|
+
* - No duplicate node names
|
|
25
|
+
* - Connection source/target keys reference existing nodes
|
|
26
|
+
*
|
|
27
|
+
* Does NOT validate:
|
|
28
|
+
* - Whether a node type is installed
|
|
29
|
+
* - Node parameter correctness
|
|
30
|
+
* - Credential validity
|
|
31
|
+
* - Activation readiness
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
const workflowNodeStructureSchema = zod_1.z
|
|
35
|
+
.object({
|
|
36
|
+
name: zod_1.z.string().min(1),
|
|
37
|
+
type: zod_1.z.string().min(1),
|
|
38
|
+
position: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]),
|
|
39
|
+
parameters: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
40
|
+
id: zod_1.z.string().optional(),
|
|
41
|
+
typeVersion: zod_1.z.number().optional(),
|
|
42
|
+
disabled: zod_1.z.boolean().optional(),
|
|
43
|
+
})
|
|
44
|
+
.passthrough();
|
|
45
|
+
const connectionEntrySchema = zod_1.z
|
|
46
|
+
.object({
|
|
47
|
+
node: zod_1.z.string().min(1),
|
|
48
|
+
type: zod_1.z.string().min(1),
|
|
49
|
+
index: zod_1.z.number().int().min(0),
|
|
50
|
+
})
|
|
51
|
+
.passthrough();
|
|
52
|
+
// Buckets can be null when a multi-output node has unused output slots.
|
|
53
|
+
// Matches NodeInputConnections type.
|
|
54
|
+
const connectionBucketSchema = zod_1.z.array(connectionEntrySchema).nullable().optional();
|
|
55
|
+
const workflowConnectionsStructureSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.record(zod_1.z.string(), zod_1.z.array(connectionBucketSchema)));
|
|
56
|
+
const workflowStructureSchema = zod_1.z.object({
|
|
57
|
+
nodes: zod_1.z.array(workflowNodeStructureSchema),
|
|
58
|
+
connections: workflowConnectionsStructureSchema,
|
|
59
|
+
});
|
|
60
|
+
const formatWorkflowStructureIssuePath = (path) => {
|
|
61
|
+
if (path.length === 0)
|
|
62
|
+
return 'workflow';
|
|
63
|
+
return path.reduce((acc, segment) => {
|
|
64
|
+
if (typeof segment === 'number')
|
|
65
|
+
return `${acc}[${segment}]`;
|
|
66
|
+
return acc ? `${acc}.${segment}` : segment;
|
|
67
|
+
}, '');
|
|
68
|
+
};
|
|
69
|
+
exports.formatWorkflowStructureIssuePath = formatWorkflowStructureIssuePath;
|
|
70
|
+
const formatIssuesDescription = (issues) => issues
|
|
71
|
+
.map(({ path, message }) => `${(0, exports.formatWorkflowStructureIssuePath)(path)}: ${message}`)
|
|
72
|
+
.join('\n');
|
|
73
|
+
class WorkflowStructureValidationError extends Error {
|
|
74
|
+
issues;
|
|
75
|
+
name = 'WorkflowStructureValidationError';
|
|
76
|
+
description;
|
|
77
|
+
constructor(issues) {
|
|
78
|
+
super('Invalid workflow structure');
|
|
79
|
+
this.issues = issues;
|
|
80
|
+
this.description = formatIssuesDescription(issues);
|
|
5
81
|
}
|
|
6
|
-
|
|
7
|
-
|
|
82
|
+
}
|
|
83
|
+
exports.WorkflowStructureValidationError = WorkflowStructureValidationError;
|
|
84
|
+
function safeParseWorkflowStructure(input) {
|
|
85
|
+
const parsed = workflowStructureSchema.safeParse(input);
|
|
86
|
+
if (!parsed.success) {
|
|
87
|
+
return {
|
|
88
|
+
success: false,
|
|
89
|
+
issues: parsed.error.issues,
|
|
90
|
+
};
|
|
8
91
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* shape that the editor and runtime assume is always present and correctly
|
|
21
|
-
* formed. Intentionally separate from activation/publish validation
|
|
22
|
-
* (WorkflowValidationService) which checks semantic correctness (trigger
|
|
23
|
-
* presence, known node types, credential issues, etc.).
|
|
24
|
-
*
|
|
25
|
-
* Lives in n8n-workflow so it can be shared by:
|
|
26
|
-
* - Backend: create/update/import reject malformed payloads (400)
|
|
27
|
-
* - Frontend: open path warns but still renders; import path blocks
|
|
28
|
-
*
|
|
29
|
-
* Validates:
|
|
30
|
-
* - Required node fields (name, type, position)
|
|
31
|
-
* - Position is a 2-number tuple
|
|
32
|
-
* - Connection entries have valid node/type/index
|
|
33
|
-
* - No duplicate node names
|
|
34
|
-
* - Connection source/target keys reference existing nodes
|
|
35
|
-
*
|
|
36
|
-
* Does NOT validate:
|
|
37
|
-
* - Whether a node type is installed
|
|
38
|
-
* - Node parameter correctness
|
|
39
|
-
* - Credential validity
|
|
40
|
-
* - Activation readiness
|
|
41
|
-
*
|
|
42
|
-
*/
|
|
43
|
-
const workflowNodeStructureSchema = zod_1.z
|
|
44
|
-
.object({
|
|
45
|
-
name: zod_1.z.string().min(1),
|
|
46
|
-
type: zod_1.z.string().min(1),
|
|
47
|
-
position: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]),
|
|
48
|
-
parameters: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
49
|
-
id: zod_1.z.string().optional(),
|
|
50
|
-
typeVersion: zod_1.z.number().optional(),
|
|
51
|
-
disabled: zod_1.z.boolean().optional(),
|
|
52
|
-
})
|
|
53
|
-
.passthrough();
|
|
54
|
-
const connectionEntrySchema = zod_1.z
|
|
55
|
-
.object({
|
|
56
|
-
node: zod_1.z.string().min(1),
|
|
57
|
-
type: zod_1.z.string().min(1),
|
|
58
|
-
index: zod_1.z.number().int().min(0),
|
|
59
|
-
})
|
|
60
|
-
.passthrough();
|
|
61
|
-
// Buckets can be null when a multi-output node has unused output slots.
|
|
62
|
-
// Matches NodeInputConnections type.
|
|
63
|
-
const connectionBucketSchema = zod_1.z.array(connectionEntrySchema).nullable().optional();
|
|
64
|
-
const workflowConnectionsStructureSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.record(zod_1.z.string(), zod_1.z.array(connectionBucketSchema)));
|
|
65
|
-
const workflowStructureSchema = zod_1.z.object({
|
|
66
|
-
nodes: zod_1.z.array(workflowNodeStructureSchema),
|
|
67
|
-
connections: workflowConnectionsStructureSchema,
|
|
68
|
-
});
|
|
69
|
-
const formatWorkflowStructureIssuePath = (path) => {
|
|
70
|
-
if (path.length === 0)
|
|
71
|
-
return 'workflow';
|
|
72
|
-
return path.reduce((acc, segment) => {
|
|
73
|
-
if (typeof segment === 'number')
|
|
74
|
-
return `${acc}[${segment}]`;
|
|
75
|
-
return acc ? `${acc}.${segment}` : segment;
|
|
76
|
-
}, '');
|
|
77
|
-
};
|
|
78
|
-
exports.formatWorkflowStructureIssuePath = formatWorkflowStructureIssuePath;
|
|
79
|
-
const formatIssuesDescription = (issues) => issues
|
|
80
|
-
.map(({ path, message }) => `${(0, exports.formatWorkflowStructureIssuePath)(path)}: ${message}`)
|
|
81
|
-
.join('\n');
|
|
82
|
-
class WorkflowStructureValidationError extends Error {
|
|
83
|
-
issues;
|
|
84
|
-
name = 'WorkflowStructureValidationError';
|
|
85
|
-
description;
|
|
86
|
-
constructor(issues) {
|
|
87
|
-
super('Invalid workflow structure');
|
|
88
|
-
this.issues = issues;
|
|
89
|
-
this.description = formatIssuesDescription(issues);
|
|
92
|
+
const { nodes, connections } = parsed.data;
|
|
93
|
+
const issues = [];
|
|
94
|
+
const nodeNames = new Set();
|
|
95
|
+
for (const [index, node] of nodes.entries()) {
|
|
96
|
+
if (nodeNames.has(node.name)) {
|
|
97
|
+
issues.push({
|
|
98
|
+
path: ['nodes', index, 'name'],
|
|
99
|
+
message: `Duplicate node name "${node.name}"`,
|
|
100
|
+
code: 'duplicate_node_name',
|
|
101
|
+
});
|
|
102
|
+
continue;
|
|
90
103
|
}
|
|
104
|
+
nodeNames.add(node.name);
|
|
91
105
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
};
|
|
106
|
+
for (const sourceNodeName of Object.keys(connections)) {
|
|
107
|
+
if (!nodeNames.has(sourceNodeName)) {
|
|
108
|
+
issues.push({
|
|
109
|
+
path: ['connections', sourceNodeName],
|
|
110
|
+
message: `Connection source "${sourceNodeName}" does not reference an existing node`,
|
|
111
|
+
code: 'unknown_connection_source',
|
|
112
|
+
});
|
|
100
113
|
}
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
message: `Connection source "${sourceNodeName}" does not reference an existing node`,
|
|
120
|
-
code: 'unknown_connection_source',
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
const connectionTypes = connections[sourceNodeName];
|
|
124
|
-
for (const connectionType of Object.keys(connectionTypes)) {
|
|
125
|
-
const buckets = connectionTypes[connectionType];
|
|
126
|
-
for (const [sourceIndex, bucket] of buckets.entries()) {
|
|
127
|
-
for (const [targetIndex, connection] of (bucket ?? []).entries()) {
|
|
128
|
-
if (!nodeNames.has(connection.node)) {
|
|
129
|
-
issues.push({
|
|
130
|
-
path: [
|
|
131
|
-
'connections',
|
|
132
|
-
sourceNodeName,
|
|
133
|
-
connectionType,
|
|
134
|
-
sourceIndex,
|
|
135
|
-
targetIndex,
|
|
136
|
-
'node',
|
|
137
|
-
],
|
|
138
|
-
message: `Connection target "${connection.node}" does not reference an existing node`,
|
|
139
|
-
code: 'unknown_connection_target',
|
|
140
|
-
});
|
|
141
|
-
}
|
|
114
|
+
const connectionTypes = connections[sourceNodeName];
|
|
115
|
+
for (const connectionType of Object.keys(connectionTypes)) {
|
|
116
|
+
const buckets = connectionTypes[connectionType];
|
|
117
|
+
for (const [sourceIndex, bucket] of buckets.entries()) {
|
|
118
|
+
for (const [targetIndex, connection] of (bucket ?? []).entries()) {
|
|
119
|
+
if (!nodeNames.has(connection.node)) {
|
|
120
|
+
issues.push({
|
|
121
|
+
path: [
|
|
122
|
+
'connections',
|
|
123
|
+
sourceNodeName,
|
|
124
|
+
connectionType,
|
|
125
|
+
sourceIndex,
|
|
126
|
+
targetIndex,
|
|
127
|
+
'node',
|
|
128
|
+
],
|
|
129
|
+
message: `Connection target "${connection.node}" does not reference an existing node`,
|
|
130
|
+
code: 'unknown_connection_target',
|
|
131
|
+
});
|
|
142
132
|
}
|
|
143
133
|
}
|
|
144
134
|
}
|
|
145
135
|
}
|
|
146
|
-
if (issues.length > 0) {
|
|
147
|
-
return { success: false, issues };
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
success: true,
|
|
151
|
-
data: parsed.data,
|
|
152
|
-
};
|
|
153
136
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
if (!result.success) {
|
|
157
|
-
throw new WorkflowStructureValidationError(result.issues);
|
|
158
|
-
}
|
|
159
|
-
return result.data;
|
|
137
|
+
if (issues.length > 0) {
|
|
138
|
+
return { success: false, issues };
|
|
160
139
|
}
|
|
161
|
-
|
|
140
|
+
return {
|
|
141
|
+
success: true,
|
|
142
|
+
data: parsed.data,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function parseWorkflowStructure(input) {
|
|
146
|
+
const result = safeParseWorkflowStructure(input);
|
|
147
|
+
if (!result.success) {
|
|
148
|
+
throw new WorkflowStructureValidationError(result.issues);
|
|
149
|
+
}
|
|
150
|
+
return result.data;
|
|
151
|
+
}
|
|
162
152
|
//# sourceMappingURL=workflow-structure-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-structure-validation.js","sourceRoot":"","sources":["../../src/workflow-structure-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-structure-validation.js","sourceRoot":"","sources":["../../src/workflow-structure-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (nodeType === undefined) {
|
|
37
|
-
// Type is not known, skip validation
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if (nodeType.poll !== undefined ||
|
|
41
|
-
nodeType.trigger !== undefined ||
|
|
42
|
-
nodeType.webhook !== undefined) {
|
|
43
|
-
// Is a trigger node. So workflow can be activated.
|
|
44
|
-
return { isValid: true };
|
|
45
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateWorkflowHasTriggerLikeNode = validateWorkflowHasTriggerLikeNode;
|
|
4
|
+
/**
|
|
5
|
+
* Validates that a workflow has at least one trigger-like node (trigger, webhook, or polling node).
|
|
6
|
+
* A workflow can only be activated if it has a node that can start the workflow execution.
|
|
7
|
+
*
|
|
8
|
+
* @param nodes - The workflow nodes to validate
|
|
9
|
+
* @param nodeTypes - Node types getter to retrieve node definitions
|
|
10
|
+
* @param ignoreNodeTypes - Optional array of node types to ignore (e.g., manual trigger, start node)
|
|
11
|
+
* @returns Object with isValid flag and error message if invalid
|
|
12
|
+
*/
|
|
13
|
+
function validateWorkflowHasTriggerLikeNode(nodes, nodeTypes, ignoreNodeTypes) {
|
|
14
|
+
let node;
|
|
15
|
+
let nodeType;
|
|
16
|
+
for (const nodeName of Object.keys(nodes)) {
|
|
17
|
+
node = nodes[nodeName];
|
|
18
|
+
// Skip disabled nodes - they cannot trigger a run
|
|
19
|
+
if (node.disabled === true) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
// Skip ignored node types (e.g., manual trigger, start node)
|
|
23
|
+
if (ignoreNodeTypes?.includes(node.type)) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
nodeType = nodeTypes.getByNameAndVersion(node.type, node.typeVersion);
|
|
27
|
+
if (nodeType === undefined) {
|
|
28
|
+
// Type is not known, skip validation
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (nodeType.poll !== undefined ||
|
|
32
|
+
nodeType.trigger !== undefined ||
|
|
33
|
+
nodeType.webhook !== undefined) {
|
|
34
|
+
// Is a trigger node. So workflow can be activated.
|
|
35
|
+
return { isValid: true };
|
|
46
36
|
}
|
|
47
|
-
return {
|
|
48
|
-
isValid: false,
|
|
49
|
-
error: 'Workflow cannot be activated because it has no trigger node. At least one trigger, webhook, or polling node is required.',
|
|
50
|
-
};
|
|
51
37
|
}
|
|
52
|
-
|
|
38
|
+
return {
|
|
39
|
+
isValid: false,
|
|
40
|
+
error: 'Workflow cannot be activated because it has no trigger node. At least one trigger, webhook, or polling node is required.',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
53
43
|
//# sourceMappingURL=workflow-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-validation.js","sourceRoot":"","sources":["../../src/workflow-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-validation.js","sourceRoot":"","sources":["../../src/workflow-validation.ts"],"names":[],"mappings":";;;AAMA;;;;;;;;GAQG;AACH,4CACC,KAAa,EACb,SAA2B,EAC3B,eAA0B;IAE1B,IAAI,IAAW,CAAC;IAChB,IAAI,QAA+B,CAAC;IAEpC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvB,kDAAkD;QAClD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5B,SAAS;QACV,CAAC;QAED,6DAA6D;QAC7D,IAAI,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,SAAS;QACV,CAAC;QAED,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEtE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,qCAAqC;YACrC,SAAS;QACV,CAAC;QAED,IACC,QAAQ,CAAC,IAAI,KAAK,SAAS;YAC3B,QAAQ,CAAC,OAAO,KAAK,SAAS;YAC9B,QAAQ,CAAC,OAAO,KAAK,SAAS,EAC7B,CAAC;YACF,mDAAmD;YACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,OAAO;QACN,OAAO,EAAE,KAAK;QACd,KAAK,EACJ,0HAA0H;KAC3H,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EACX,YAAY,EACZ,KAAK,EACL,kBAAkB,EAElB,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EAEf,sBAAsB,EACtB,kBAAkB,EAClB,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,kBAAkB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,WAAW,EAAE,YAAY,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,qBAAa,QAAQ;IACpB,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,KAAK,EAAE,MAAM,CAAM;IAEnB,uBAAuB,EAAE,YAAY,CAAM;IAE3C,4BAA4B,EAAE,YAAY,CAAM;IAEhD,SAAS,EAAE,UAAU,CAAC;IAEtB,UAAU,EAAE,kBAAkB,CAAC;IAE/B,MAAM,EAAE,OAAO,CAAC;IAEhB,QAAQ,EAAE,iBAAiB,CAAM;IAEjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAI1B,UAAU,EAAE,WAAW,CAAC;IAExB,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IAExC,OAAO,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":"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"}
|