n8n-workflow 1.98.0 → 1.99.1
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/{augment-object.d.ts → cjs/augment-object.d.ts} +1 -0
- package/dist/cjs/augment-object.d.ts.map +1 -0
- package/dist/cjs/augment-object.js +159 -0
- package/dist/cjs/augment-object.js.map +1 -0
- package/dist/{constants.d.ts → cjs/constants.d.ts} +12 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +112 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/{cron.d.ts → cjs/cron.d.ts} +1 -0
- package/dist/cjs/cron.d.ts.map +1 -0
- package/dist/cjs/cron.js +37 -0
- package/dist/cjs/cron.js.map +1 -0
- package/dist/{deferred-promise.d.ts → cjs/deferred-promise.d.ts} +1 -0
- package/dist/cjs/deferred-promise.d.ts.map +1 -0
- package/dist/cjs/deferred-promise.js +22 -0
- package/dist/cjs/deferred-promise.js.map +1 -0
- package/dist/{errors → cjs/errors}/abstract/execution-base.error.d.ts +1 -0
- package/dist/cjs/errors/abstract/execution-base.error.d.ts.map +1 -0
- package/dist/cjs/errors/abstract/execution-base.error.js +50 -0
- package/dist/cjs/errors/abstract/execution-base.error.js.map +1 -0
- package/dist/cjs/errors/abstract/node.error.d.ts +48 -0
- package/dist/cjs/errors/abstract/node.error.d.ts.map +1 -0
- package/dist/cjs/errors/abstract/node.error.js +178 -0
- package/dist/cjs/errors/abstract/node.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/application.error.d.ts +6 -2
- package/dist/cjs/errors/application.error.d.ts.map +1 -0
- package/dist/cjs/errors/application.error.js +41 -0
- package/dist/cjs/errors/application.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/base/base.error.d.ts +12 -0
- package/dist/cjs/errors/base/base.error.d.ts.map +1 -0
- package/dist/cjs/errors/base/base.error.js +53 -0
- package/dist/cjs/errors/base/base.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/base/operational.error.d.ts +8 -0
- package/dist/cjs/errors/base/operational.error.d.ts.map +1 -0
- package/dist/cjs/errors/base/operational.error.js +29 -0
- package/dist/cjs/errors/base/operational.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/base/unexpected.error.d.ts +8 -0
- package/dist/cjs/errors/base/unexpected.error.d.ts.map +1 -0
- package/dist/cjs/errors/base/unexpected.error.js +29 -0
- package/dist/cjs/errors/base/unexpected.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/base/user.error.d.ts +8 -0
- package/dist/cjs/errors/base/user.error.d.ts.map +1 -0
- package/dist/cjs/errors/base/user.error.js +29 -0
- package/dist/cjs/errors/base/user.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/cli-subworkflow-operation.error.d.ts +1 -0
- package/dist/cjs/errors/cli-subworkflow-operation.error.d.ts.map +1 -0
- package/dist/cjs/errors/cli-subworkflow-operation.error.js +18 -0
- package/dist/cjs/errors/cli-subworkflow-operation.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/db-connection-timeout-error.d.ts +1 -0
- package/dist/cjs/errors/db-connection-timeout-error.d.ts.map +1 -0
- package/dist/cjs/errors/db-connection-timeout-error.js +23 -0
- package/dist/cjs/errors/db-connection-timeout-error.js.map +1 -0
- package/dist/cjs/errors/ensure-error.d.ts +3 -0
- package/dist/cjs/errors/ensure-error.d.ts.map +1 -0
- package/dist/cjs/errors/ensure-error.js +23 -0
- package/dist/cjs/errors/ensure-error.js.map +1 -0
- package/dist/{errors → cjs/errors}/error.types.d.ts +2 -0
- package/dist/cjs/errors/error.types.d.ts.map +1 -0
- package/dist/cjs/errors/error.types.js +13 -0
- package/dist/{errors → cjs/errors}/error.types.js.map +1 -1
- package/dist/{errors → cjs/errors}/execution-cancelled.error.d.ts +1 -0
- package/dist/cjs/errors/execution-cancelled.error.d.ts.map +1 -0
- package/dist/cjs/errors/execution-cancelled.error.js +24 -0
- package/dist/cjs/errors/execution-cancelled.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/expression-extension.error.d.ts +1 -0
- package/dist/cjs/errors/expression-extension.error.d.ts.map +1 -0
- package/dist/cjs/errors/expression-extension.error.js +18 -0
- package/dist/cjs/errors/expression-extension.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/expression.error.d.ts +4 -0
- package/dist/cjs/errors/expression.error.d.ts.map +1 -0
- package/dist/cjs/errors/expression.error.js +48 -0
- package/dist/cjs/errors/expression.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/index.d.ts +1 -0
- package/dist/cjs/errors/index.d.ts.map +1 -0
- package/dist/cjs/errors/index.js +58 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/{errors → cjs/errors}/node-api.error.d.ts +8 -0
- package/dist/cjs/errors/node-api.error.d.ts.map +1 -0
- package/dist/cjs/errors/node-api.error.js +257 -0
- package/dist/cjs/errors/node-api.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/node-operation.error.d.ts +4 -0
- package/dist/cjs/errors/node-operation.error.d.ts.map +1 -0
- package/dist/cjs/errors/node-operation.error.js +50 -0
- package/dist/cjs/errors/node-operation.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/node-ssl.error.d.ts +1 -0
- package/dist/cjs/errors/node-ssl.error.d.ts.map +1 -0
- package/dist/cjs/errors/node-ssl.error.js +21 -0
- package/dist/cjs/errors/node-ssl.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/subworkflow-operation.error.d.ts +1 -0
- package/dist/cjs/errors/subworkflow-operation.error.d.ts.map +1 -0
- package/dist/cjs/errors/subworkflow-operation.error.js +30 -0
- package/dist/cjs/errors/subworkflow-operation.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/trigger-close.error.d.ts +1 -0
- package/dist/cjs/errors/trigger-close.error.d.ts.map +1 -0
- package/dist/cjs/errors/trigger-close.error.js +24 -0
- package/dist/cjs/errors/trigger-close.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/webhook-taken.error.d.ts +1 -0
- package/dist/cjs/errors/webhook-taken.error.d.ts.map +1 -0
- package/dist/cjs/errors/webhook-taken.error.js +21 -0
- package/dist/cjs/errors/webhook-taken.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/workflow-activation.error.d.ts +4 -0
- package/dist/cjs/errors/workflow-activation.error.d.ts.map +1 -0
- package/dist/cjs/errors/workflow-activation.error.js +54 -0
- package/dist/cjs/errors/workflow-activation.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/workflow-deactivation.error.d.ts +1 -0
- package/dist/cjs/errors/workflow-deactivation.error.d.ts.map +1 -0
- package/dist/cjs/errors/workflow-deactivation.error.js +18 -0
- package/dist/cjs/errors/workflow-deactivation.error.js.map +1 -0
- package/dist/{errors → cjs/errors}/workflow-operation.error.d.ts +4 -0
- package/dist/cjs/errors/workflow-operation.error.d.ts.map +1 -0
- package/dist/cjs/errors/workflow-operation.error.js +32 -0
- package/dist/cjs/errors/workflow-operation.error.js.map +1 -0
- package/dist/{execution-status.d.ts → cjs/execution-status.d.ts} +1 -0
- package/dist/cjs/execution-status.d.ts.map +1 -0
- package/dist/cjs/execution-status.js +24 -0
- package/dist/cjs/execution-status.js.map +1 -0
- package/dist/{expression-evaluator-proxy.d.ts → cjs/expression-evaluator-proxy.d.ts} +1 -0
- package/dist/cjs/expression-evaluator-proxy.d.ts.map +1 -0
- package/dist/cjs/expression-evaluator-proxy.js +30 -0
- package/dist/cjs/expression-evaluator-proxy.js.map +1 -0
- package/dist/{expression-sandboxing.d.ts → cjs/expression-sandboxing.d.ts} +1 -0
- package/dist/cjs/expression-sandboxing.d.ts.map +1 -0
- package/dist/cjs/expression-sandboxing.js +62 -0
- package/dist/cjs/expression-sandboxing.js.map +1 -0
- package/dist/{expression.d.ts → cjs/expression.d.ts} +33 -0
- package/dist/cjs/expression.d.ts.map +1 -0
- package/dist/cjs/expression.js +368 -0
- package/dist/cjs/expression.js.map +1 -0
- package/dist/cjs/expressions/expression-helpers.d.ts +6 -0
- package/dist/cjs/expressions/expression-helpers.d.ts.map +1 -0
- package/dist/cjs/expressions/expression-helpers.js +24 -0
- package/dist/cjs/expressions/expression-helpers.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/array-extensions.d.ts +1 -0
- package/dist/cjs/extensions/array-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/array-extensions.js +627 -0
- package/dist/cjs/extensions/array-extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/boolean-extensions.d.ts +1 -0
- package/dist/cjs/extensions/boolean-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/boolean-extensions.js +49 -0
- package/dist/cjs/extensions/boolean-extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/date-extensions.d.ts +1 -0
- package/dist/cjs/extensions/date-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/date-extensions.js +528 -0
- package/dist/cjs/extensions/date-extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/expression-extension.d.ts +22 -0
- package/dist/cjs/extensions/expression-extension.d.ts.map +1 -0
- package/dist/cjs/extensions/expression-extension.js +493 -0
- package/dist/cjs/extensions/expression-extension.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/expression-parser.d.ts +1 -0
- package/dist/cjs/extensions/expression-parser.d.ts.map +1 -0
- package/dist/cjs/extensions/expression-parser.js +94 -0
- package/dist/cjs/extensions/expression-parser.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/extended-functions.d.ts +1 -0
- package/dist/cjs/extensions/extended-functions.d.ts.map +1 -0
- package/dist/cjs/extensions/extended-functions.js +89 -0
- package/dist/cjs/extensions/extended-functions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/extensions.d.ts +1 -0
- package/dist/cjs/extensions/extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/extensions.js +13 -0
- package/dist/cjs/extensions/extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/index.d.ts +1 -0
- package/dist/cjs/extensions/index.d.ts.map +1 -0
- package/dist/cjs/extensions/index.js +21 -0
- package/dist/cjs/extensions/index.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/number-extensions.d.ts +1 -0
- package/dist/cjs/extensions/number-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/number-extensions.js +236 -0
- package/dist/cjs/extensions/number-extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/object-extensions.d.ts +1 -0
- package/dist/cjs/extensions/object-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/object-extensions.js +296 -0
- package/dist/cjs/extensions/object-extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/string-extensions.d.ts +1 -0
- package/dist/cjs/extensions/string-extensions.d.ts.map +1 -0
- package/dist/cjs/extensions/string-extensions.js +788 -0
- package/dist/cjs/extensions/string-extensions.js.map +1 -0
- package/dist/{extensions → cjs/extensions}/utils.d.ts +1 -0
- package/dist/cjs/extensions/utils.d.ts.map +1 -0
- package/dist/cjs/extensions/utils.js +42 -0
- package/dist/cjs/extensions/utils.js.map +1 -0
- package/dist/cjs/from-ai-parse-utils.d.ts +44 -0
- package/dist/cjs/from-ai-parse-utils.d.ts.map +1 -0
- package/dist/cjs/from-ai-parse-utils.js +291 -0
- package/dist/cjs/from-ai-parse-utils.js.map +1 -0
- package/dist/{global-state.d.ts → cjs/global-state.d.ts} +1 -0
- package/dist/cjs/global-state.d.ts.map +1 -0
- package/dist/cjs/global-state.js +23 -0
- package/dist/cjs/global-state.js.map +1 -0
- package/dist/{graph → cjs/graph}/graph-utils.d.ts +21 -0
- package/dist/cjs/graph/graph-utils.d.ts.map +1 -0
- package/dist/cjs/graph/graph-utils.js +195 -0
- package/dist/cjs/graph/graph-utils.js.map +1 -0
- package/dist/{index.d.ts → cjs/index.d.ts} +2 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +114 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/{interfaces.d.ts → cjs/interfaces.d.ts} +90 -0
- package/dist/cjs/interfaces.d.ts.map +1 -0
- package/dist/cjs/interfaces.js +53 -0
- package/dist/cjs/interfaces.js.map +1 -0
- package/dist/{logger-proxy.d.ts → cjs/logger-proxy.d.ts} +1 -0
- package/dist/cjs/logger-proxy.d.ts.map +1 -0
- package/dist/cjs/logger-proxy.js +26 -0
- package/dist/cjs/logger-proxy.js.map +1 -0
- package/dist/{message-event-bus.d.ts → cjs/message-event-bus.d.ts} +1 -0
- package/dist/cjs/message-event-bus.d.ts.map +1 -0
- package/dist/cjs/message-event-bus.js +96 -0
- package/dist/cjs/message-event-bus.js.map +1 -0
- package/dist/{metadata-utils.d.ts → cjs/metadata-utils.d.ts} +1 -0
- package/dist/cjs/metadata-utils.d.ts.map +1 -0
- package/dist/cjs/metadata-utils.js +37 -0
- package/dist/cjs/metadata-utils.js.map +1 -0
- package/dist/{native-methods → cjs/native-methods}/array.methods.d.ts +1 -0
- package/dist/cjs/native-methods/array.methods.d.ts.map +1 -0
- package/dist/cjs/native-methods/array.methods.js +552 -0
- package/dist/cjs/native-methods/array.methods.js.map +1 -0
- package/dist/{native-methods → cjs/native-methods}/boolean.methods.d.ts +1 -0
- package/dist/cjs/native-methods/boolean.methods.d.ts.map +1 -0
- package/dist/cjs/native-methods/boolean.methods.js +31 -0
- package/dist/cjs/native-methods/boolean.methods.js.map +1 -0
- package/dist/{native-methods → cjs/native-methods}/index.d.ts +1 -0
- package/dist/cjs/native-methods/index.d.ts.map +1 -0
- package/dist/cjs/native-methods/index.js +27 -0
- package/dist/cjs/native-methods/index.js.map +1 -0
- package/dist/{native-methods → cjs/native-methods}/number.methods.d.ts +1 -0
- package/dist/cjs/native-methods/number.methods.d.ts.map +1 -0
- package/dist/cjs/native-methods/number.methods.js +95 -0
- package/dist/cjs/native-methods/number.methods.js.map +1 -0
- package/dist/{native-methods → cjs/native-methods}/object.methods.d.ts +1 -0
- package/dist/cjs/native-methods/object.methods.d.ts.map +1 -0
- package/dist/cjs/native-methods/object.methods.js +18 -0
- package/dist/cjs/native-methods/object.methods.js.map +1 -0
- package/dist/{native-methods → cjs/native-methods}/string.methods.d.ts +1 -0
- package/dist/cjs/native-methods/string.methods.d.ts.map +1 -0
- package/dist/cjs/native-methods/string.methods.js +499 -0
- package/dist/cjs/native-methods/string.methods.js.map +1 -0
- package/dist/{node-helpers.d.ts → cjs/node-helpers.d.ts} +109 -1
- package/dist/cjs/node-helpers.d.ts.map +1 -0
- package/dist/cjs/node-helpers.js +1369 -0
- package/dist/cjs/node-helpers.js.map +1 -0
- package/dist/{node-parameters → cjs/node-parameters}/filter-parameter.d.ts +1 -0
- package/dist/cjs/node-parameters/filter-parameter.d.ts.map +1 -0
- package/dist/cjs/node-parameters/filter-parameter.js +383 -0
- package/dist/cjs/node-parameters/filter-parameter.js.map +1 -0
- package/dist/{node-parameters → cjs/node-parameters}/rename-node-utils.d.ts +2 -1
- package/dist/cjs/node-parameters/rename-node-utils.d.ts.map +1 -0
- package/dist/cjs/node-parameters/rename-node-utils.js +36 -0
- package/dist/cjs/node-parameters/rename-node-utils.js.map +1 -0
- package/dist/{node-reference-parser-utils.d.ts → cjs/node-reference-parser-utils.d.ts} +11 -0
- package/dist/cjs/node-reference-parser-utils.d.ts.map +1 -0
- package/dist/cjs/node-reference-parser-utils.js +468 -0
- package/dist/cjs/node-reference-parser-utils.js.map +1 -0
- package/dist/{observable-object.d.ts → cjs/observable-object.d.ts} +1 -0
- package/dist/cjs/observable-object.d.ts.map +1 -0
- package/dist/cjs/observable-object.js +72 -0
- package/dist/cjs/observable-object.js.map +1 -0
- package/dist/{result.d.ts → cjs/result.d.ts} +7 -0
- package/dist/cjs/result.d.ts.map +1 -0
- package/dist/cjs/result.js +41 -0
- package/dist/cjs/result.js.map +1 -0
- package/dist/{telemetry-helpers.d.ts → cjs/telemetry-helpers.d.ts} +7 -0
- package/dist/cjs/telemetry-helpers.d.ts.map +1 -0
- package/dist/cjs/telemetry-helpers.js +522 -0
- package/dist/cjs/telemetry-helpers.js.map +1 -0
- package/dist/{type-guards.d.ts → cjs/type-guards.d.ts} +1 -0
- package/dist/cjs/type-guards.d.ts.map +1 -0
- package/dist/cjs/type-guards.js +56 -0
- package/dist/cjs/type-guards.js.map +1 -0
- package/dist/{type-validation.d.ts → cjs/type-validation.d.ts} +1 -0
- package/dist/cjs/type-validation.d.ts.map +1 -0
- package/dist/cjs/type-validation.js +408 -0
- package/dist/cjs/type-validation.js.map +1 -0
- package/dist/cjs/typecheck.tsbuildinfo +1 -0
- package/dist/{utils.d.ts → cjs/utils.d.ts} +31 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +334 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/{versioned-node-type.d.ts → cjs/versioned-node-type.d.ts} +1 -0
- package/dist/cjs/versioned-node-type.d.ts.map +1 -0
- package/dist/cjs/versioned-node-type.js +36 -0
- package/dist/cjs/versioned-node-type.js.map +1 -0
- package/dist/cjs/workflow-data-proxy-env-provider.d.ts +25 -0
- package/dist/cjs/workflow-data-proxy-env-provider.d.ts.map +1 -0
- package/dist/cjs/workflow-data-proxy-env-provider.js +70 -0
- package/dist/cjs/workflow-data-proxy-env-provider.js.map +1 -0
- package/dist/{workflow-data-proxy-helpers.d.ts → cjs/workflow-data-proxy-helpers.d.ts} +1 -0
- package/dist/cjs/workflow-data-proxy-helpers.d.ts.map +1 -0
- package/dist/cjs/workflow-data-proxy-helpers.js +20 -0
- package/dist/cjs/workflow-data-proxy-helpers.js.map +1 -0
- package/dist/{workflow-data-proxy.d.ts → cjs/workflow-data-proxy.d.ts} +45 -0
- package/dist/cjs/workflow-data-proxy.d.ts.map +1 -0
- package/dist/cjs/workflow-data-proxy.js +1189 -0
- package/dist/cjs/workflow-data-proxy.js.map +1 -0
- package/dist/cjs/workflow.d.ts +157 -0
- package/dist/cjs/workflow.d.ts.map +1 -0
- package/dist/cjs/workflow.js +765 -0
- package/dist/cjs/workflow.js.map +1 -0
- package/dist/esm/augment-object.d.ts +3 -0
- package/dist/esm/augment-object.d.ts.map +1 -0
- package/dist/{augment-object.js → esm/augment-object.js} +9 -6
- package/dist/esm/augment-object.js.map +1 -0
- package/dist/esm/constants.d.ts +73 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +99 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/cron.d.ts +35 -0
- package/dist/esm/cron.d.ts.map +1 -0
- package/dist/{cron.js → esm/cron.js} +4 -8
- package/dist/esm/cron.js.map +1 -0
- package/dist/esm/deferred-promise.d.ts +10 -0
- package/dist/esm/deferred-promise.d.ts.map +1 -0
- package/dist/esm/deferred-promise.js +9 -0
- package/dist/esm/deferred-promise.js.map +1 -0
- package/dist/esm/errors/abstract/execution-base.error.d.ts +28 -0
- package/dist/esm/errors/abstract/execution-base.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/abstract/execution-base.error.js +9 -8
- package/dist/esm/errors/abstract/execution-base.error.js.map +1 -0
- package/dist/esm/errors/abstract/node.error.d.ts +48 -0
- package/dist/esm/errors/abstract/node.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/abstract/node.error.js +52 -12
- package/dist/esm/errors/abstract/node.error.js.map +1 -0
- package/dist/esm/errors/application.error.d.ts +13 -0
- package/dist/esm/errors/application.error.d.ts.map +1 -0
- package/dist/esm/errors/application.error.js +24 -0
- package/dist/esm/errors/application.error.js.map +1 -0
- package/dist/esm/errors/base/base.error.d.ts +26 -0
- package/dist/esm/errors/base/base.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/base/base.error.js +20 -10
- package/dist/esm/errors/base/base.error.js.map +1 -0
- package/dist/esm/errors/base/operational.error.d.ts +16 -0
- package/dist/esm/errors/base/operational.error.d.ts.map +1 -0
- package/dist/esm/errors/base/operational.error.js +15 -0
- package/dist/esm/errors/base/operational.error.js.map +1 -0
- package/dist/esm/errors/base/unexpected.error.d.ts +16 -0
- package/dist/esm/errors/base/unexpected.error.d.ts.map +1 -0
- package/dist/esm/errors/base/unexpected.error.js +15 -0
- package/dist/esm/errors/base/unexpected.error.js.map +1 -0
- package/dist/esm/errors/base/user.error.d.ts +18 -0
- package/dist/esm/errors/base/user.error.d.ts.map +1 -0
- package/dist/esm/errors/base/user.error.js +15 -0
- package/dist/esm/errors/base/user.error.js.map +1 -0
- package/dist/esm/errors/cli-subworkflow-operation.error.d.ts +4 -0
- package/dist/esm/errors/cli-subworkflow-operation.error.d.ts.map +1 -0
- package/dist/esm/errors/cli-subworkflow-operation.error.js +4 -0
- package/dist/esm/errors/cli-subworkflow-operation.error.js.map +1 -0
- package/dist/esm/errors/db-connection-timeout-error.d.ts +9 -0
- package/dist/esm/errors/db-connection-timeout-error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/db-connection-timeout-error.js +2 -6
- package/dist/esm/errors/db-connection-timeout-error.js.map +1 -0
- package/dist/esm/errors/ensure-error.d.ts +3 -0
- package/dist/esm/errors/ensure-error.d.ts.map +1 -0
- package/dist/esm/errors/ensure-error.js +10 -0
- package/dist/esm/errors/ensure-error.js.map +1 -0
- package/dist/esm/errors/error.types.d.ts +12 -0
- package/dist/esm/errors/error.types.d.ts.map +1 -0
- package/dist/esm/errors/error.types.js +2 -0
- package/dist/esm/errors/error.types.js.map +1 -0
- package/dist/esm/errors/execution-cancelled.error.d.ts +5 -0
- package/dist/esm/errors/execution-cancelled.error.d.ts.map +1 -0
- package/dist/esm/errors/execution-cancelled.error.js +10 -0
- package/dist/esm/errors/execution-cancelled.error.js.map +1 -0
- package/dist/esm/errors/expression-extension.error.d.ts +4 -0
- package/dist/esm/errors/expression-extension.error.d.ts.map +1 -0
- package/dist/esm/errors/expression-extension.error.js +4 -0
- package/dist/esm/errors/expression-extension.error.js.map +1 -0
- package/dist/esm/errors/expression.error.d.ts +22 -0
- package/dist/esm/errors/expression.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/expression.error.js +5 -6
- package/dist/esm/errors/expression.error.js.map +1 -0
- package/dist/esm/errors/index.d.ts +24 -0
- package/dist/esm/errors/index.d.ts.map +1 -0
- package/dist/esm/errors/index.js +23 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/errors/node-api.error.d.ts +39 -0
- package/dist/esm/errors/node-api.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/node-api.error.js +55 -19
- package/dist/esm/errors/node-api.error.js.map +1 -0
- package/dist/esm/errors/node-operation.error.d.ts +11 -0
- package/dist/esm/errors/node-operation.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/node-operation.error.js +9 -9
- package/dist/esm/errors/node-operation.error.js.map +1 -0
- package/dist/esm/errors/node-ssl.error.d.ts +5 -0
- package/dist/esm/errors/node-ssl.error.d.ts.map +1 -0
- package/dist/esm/errors/node-ssl.error.js +7 -0
- package/dist/esm/errors/node-ssl.error.js.map +1 -0
- package/dist/esm/errors/subworkflow-operation.error.d.ts +7 -0
- package/dist/esm/errors/subworkflow-operation.error.d.ts.map +1 -0
- package/dist/esm/errors/subworkflow-operation.error.js +16 -0
- package/dist/esm/errors/subworkflow-operation.error.js.map +1 -0
- package/dist/esm/errors/trigger-close.error.d.ts +12 -0
- package/dist/esm/errors/trigger-close.error.d.ts.map +1 -0
- package/dist/esm/errors/trigger-close.error.js +10 -0
- package/dist/esm/errors/trigger-close.error.js.map +1 -0
- package/dist/esm/errors/webhook-taken.error.d.ts +5 -0
- package/dist/esm/errors/webhook-taken.error.d.ts.map +1 -0
- package/dist/esm/errors/webhook-taken.error.js +7 -0
- package/dist/esm/errors/webhook-taken.error.js.map +1 -0
- package/dist/esm/errors/workflow-activation.error.d.ts +20 -0
- package/dist/esm/errors/workflow-activation.error.d.ts.map +1 -0
- package/dist/{errors → esm/errors}/workflow-activation.error.js +12 -11
- package/dist/esm/errors/workflow-activation.error.js.map +1 -0
- package/dist/esm/errors/workflow-deactivation.error.d.ts +4 -0
- package/dist/esm/errors/workflow-deactivation.error.d.ts.map +1 -0
- package/dist/esm/errors/workflow-deactivation.error.js +4 -0
- package/dist/esm/errors/workflow-deactivation.error.js.map +1 -0
- package/dist/esm/errors/workflow-operation.error.d.ts +11 -0
- package/dist/esm/errors/workflow-operation.error.d.ts.map +1 -0
- package/dist/esm/errors/workflow-operation.error.js +18 -0
- package/dist/esm/errors/workflow-operation.error.js.map +1 -0
- package/dist/esm/execution-status.d.ts +3 -0
- package/dist/esm/execution-status.d.ts.map +1 -0
- package/dist/esm/execution-status.js +11 -0
- package/dist/esm/execution-status.js.map +1 -0
- package/dist/esm/expression-evaluator-proxy.d.ts +6 -0
- package/dist/esm/expression-evaluator-proxy.d.ts.map +1 -0
- package/dist/esm/expression-evaluator-proxy.js +15 -0
- package/dist/esm/expression-evaluator-proxy.js.map +1 -0
- package/dist/esm/expression-sandboxing.d.ts +5 -0
- package/dist/esm/expression-sandboxing.d.ts.map +1 -0
- package/dist/esm/expression-sandboxing.js +47 -0
- package/dist/esm/expression-sandboxing.js.map +1 -0
- package/dist/esm/expression.d.ts +46 -0
- package/dist/esm/expression.d.ts.map +1 -0
- package/dist/{expression.js → esm/expression.js} +125 -44
- package/dist/esm/expression.js.map +1 -0
- package/dist/esm/expressions/expression-helpers.d.ts +6 -0
- package/dist/esm/expressions/expression-helpers.d.ts.map +1 -0
- package/dist/esm/expressions/expression-helpers.js +10 -0
- package/dist/esm/expressions/expression-helpers.js.map +1 -0
- package/dist/esm/extensions/array-extensions.d.ts +33 -0
- package/dist/esm/extensions/array-extensions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/array-extensions.js +41 -42
- package/dist/esm/extensions/array-extensions.js.map +1 -0
- package/dist/esm/extensions/boolean-extensions.d.ts +6 -0
- package/dist/esm/extensions/boolean-extensions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/boolean-extensions.js +4 -10
- package/dist/esm/extensions/boolean-extensions.js.map +1 -0
- package/dist/esm/extensions/date-extensions.d.ts +3 -0
- package/dist/esm/extensions/date-extensions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/date-extensions.js +27 -29
- package/dist/esm/extensions/date-extensions.js.map +1 -0
- package/dist/esm/extensions/expression-extension.d.ts +32 -0
- package/dist/esm/extensions/expression-extension.d.ts.map +1 -0
- package/dist/esm/extensions/expression-extension.js +474 -0
- package/dist/esm/extensions/expression-extension.js.map +1 -0
- package/dist/esm/extensions/expression-parser.d.ts +14 -0
- package/dist/esm/extensions/expression-parser.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/expression-parser.js +9 -11
- package/dist/esm/extensions/expression-parser.js.map +1 -0
- package/dist/esm/extensions/extended-functions.d.ts +28 -0
- package/dist/esm/extensions/extended-functions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/extended-functions.js +8 -10
- package/dist/esm/extensions/extended-functions.js.map +1 -0
- package/dist/esm/extensions/extensions.d.ts +42 -0
- package/dist/esm/extensions/extensions.d.ts.map +1 -0
- package/dist/esm/extensions/extensions.js +2 -0
- package/dist/esm/extensions/extensions.js.map +1 -0
- package/dist/esm/extensions/index.d.ts +3 -0
- package/dist/esm/extensions/index.d.ts.map +1 -0
- package/dist/esm/extensions/index.js +2 -0
- package/dist/esm/extensions/index.js.map +1 -0
- package/dist/esm/extensions/number-extensions.d.ts +27 -0
- package/dist/esm/extensions/number-extensions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/number-extensions.js +14 -15
- package/dist/esm/extensions/number-extensions.js.map +1 -0
- package/dist/esm/extensions/object-extensions.d.ts +46 -0
- package/dist/esm/extensions/object-extensions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/object-extensions.js +18 -21
- package/dist/esm/extensions/object-extensions.js.map +1 -0
- package/dist/esm/extensions/string-extensions.d.ts +38 -0
- package/dist/esm/extensions/string-extensions.d.ts.map +1 -0
- package/dist/{extensions → esm/extensions}/string-extensions.js +121 -40
- package/dist/esm/extensions/string-extensions.js.map +1 -0
- package/dist/esm/extensions/utils.d.ts +4 -0
- package/dist/esm/extensions/utils.d.ts.map +1 -0
- package/dist/esm/extensions/utils.js +27 -0
- package/dist/esm/extensions/utils.js.map +1 -0
- package/dist/esm/from-ai-parse-utils.d.ts +44 -0
- package/dist/esm/from-ai-parse-utils.d.ts.map +1 -0
- package/dist/{from-ai-parse-utils.js → esm/from-ai-parse-utils.js} +63 -18
- package/dist/esm/from-ai-parse-utils.js.map +1 -0
- package/dist/esm/global-state.d.ts +6 -0
- package/dist/esm/global-state.d.ts.map +1 -0
- package/dist/esm/global-state.js +9 -0
- package/dist/esm/global-state.js.map +1 -0
- package/dist/esm/graph/graph-utils.d.ts +57 -0
- package/dist/esm/graph/graph-utils.d.ts.map +1 -0
- package/dist/{graph → esm/graph}/graph-utils.js +35 -16
- package/dist/esm/graph/graph-utils.js.map +1 -0
- package/dist/esm/index.d.ts +49 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +33 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces.d.ts +2173 -0
- package/dist/esm/interfaces.d.ts.map +1 -0
- package/dist/{interfaces.js → esm/interfaces.js} +13 -11
- package/dist/esm/interfaces.js.map +1 -0
- package/dist/esm/logger-proxy.d.ts +7 -0
- package/dist/esm/logger-proxy.d.ts.map +1 -0
- package/dist/esm/logger-proxy.js +12 -0
- package/dist/esm/logger-proxy.js.map +1 -0
- package/dist/esm/message-event-bus.d.ts +107 -0
- package/dist/esm/message-event-bus.d.ts.map +1 -0
- package/dist/{message-event-bus.js → esm/message-event-bus.js} +26 -23
- package/dist/esm/message-event-bus.js.map +1 -0
- package/dist/esm/metadata-utils.d.ts +5 -0
- package/dist/esm/metadata-utils.d.ts.map +1 -0
- package/dist/{metadata-utils.js → esm/metadata-utils.js} +6 -7
- package/dist/esm/metadata-utils.js.map +1 -0
- package/dist/esm/native-methods/array.methods.d.ts +3 -0
- package/dist/esm/native-methods/array.methods.d.ts.map +1 -0
- package/dist/{native-methods → esm/native-methods}/array.methods.js +1 -4
- package/dist/esm/native-methods/array.methods.js.map +1 -0
- package/dist/esm/native-methods/boolean.methods.d.ts +3 -0
- package/dist/esm/native-methods/boolean.methods.d.ts.map +1 -0
- package/dist/{native-methods → esm/native-methods}/boolean.methods.js +1 -4
- package/dist/esm/native-methods/boolean.methods.js.map +1 -0
- package/dist/esm/native-methods/index.d.ts +4 -0
- package/dist/esm/native-methods/index.d.ts.map +1 -0
- package/dist/esm/native-methods/index.js +14 -0
- package/dist/esm/native-methods/index.js.map +1 -0
- package/dist/esm/native-methods/number.methods.d.ts +3 -0
- package/dist/esm/native-methods/number.methods.d.ts.map +1 -0
- package/dist/{native-methods → esm/native-methods}/number.methods.js +1 -4
- package/dist/esm/native-methods/number.methods.js.map +1 -0
- package/dist/esm/native-methods/object.methods.d.ts +3 -0
- package/dist/esm/native-methods/object.methods.d.ts.map +1 -0
- package/dist/esm/native-methods/object.methods.js +5 -0
- package/dist/esm/native-methods/object.methods.js.map +1 -0
- package/dist/esm/native-methods/string.methods.d.ts +3 -0
- package/dist/esm/native-methods/string.methods.d.ts.map +1 -0
- package/dist/{native-methods → esm/native-methods}/string.methods.js +1 -4
- package/dist/esm/native-methods/string.methods.js.map +1 -0
- package/dist/esm/node-helpers.d.ts +145 -0
- package/dist/esm/node-helpers.d.ts.map +1 -0
- package/dist/{node-helpers.js → esm/node-helpers.js} +302 -106
- package/dist/esm/node-helpers.js.map +1 -0
- package/dist/esm/node-parameters/filter-parameter.d.ts +21 -0
- package/dist/esm/node-parameters/filter-parameter.d.ts.map +1 -0
- package/dist/{node-parameters → esm/node-parameters}/filter-parameter.js +13 -51
- package/dist/esm/node-parameters/filter-parameter.js.map +1 -0
- package/dist/esm/node-parameters/rename-node-utils.d.ts +3 -0
- package/dist/esm/node-parameters/rename-node-utils.d.ts.map +1 -0
- package/dist/{node-parameters → esm/node-parameters}/rename-node-utils.js +4 -5
- package/dist/esm/node-parameters/rename-node-utils.js.map +1 -0
- package/dist/esm/node-reference-parser-utils.d.ts +20 -0
- package/dist/esm/node-reference-parser-utils.d.ts.map +1 -0
- package/dist/{node-reference-parser-utils.js → esm/node-reference-parser-utils.js} +135 -46
- package/dist/esm/node-reference-parser-utils.js.map +1 -0
- package/dist/esm/observable-object.d.ts +7 -0
- package/dist/esm/observable-object.d.ts.map +1 -0
- package/dist/{observable-object.js → esm/observable-object.js} +13 -5
- package/dist/esm/observable-object.js.map +1 -0
- package/dist/esm/result.d.ts +19 -0
- package/dist/esm/result.d.ts.map +1 -0
- package/dist/esm/result.js +25 -0
- package/dist/esm/result.js.map +1 -0
- package/dist/esm/telemetry-helpers.d.ts +45 -0
- package/dist/esm/telemetry-helpers.d.ts.map +1 -0
- package/dist/{telemetry-helpers.js → esm/telemetry-helpers.js} +67 -62
- package/dist/esm/telemetry-helpers.js.map +1 -0
- package/dist/esm/type-guards.d.ts +12 -0
- package/dist/esm/type-guards.d.ts.map +1 -0
- package/dist/esm/type-guards.js +33 -0
- package/dist/esm/type-guards.js.map +1 -0
- package/dist/esm/type-validation.d.ts +22 -0
- package/dist/esm/type-validation.d.ts.map +1 -0
- package/dist/{type-validation.js → esm/type-validation.js} +66 -78
- package/dist/esm/type-validation.js.map +1 -0
- package/dist/esm/typecheck.tsbuildinfo +1 -0
- package/dist/esm/utils.d.ts +94 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +300 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/esm/versioned-node-type.d.ts +10 -0
- package/dist/esm/versioned-node-type.d.ts.map +1 -0
- package/dist/{versioned-node-type.js → esm/versioned-node-type.js} +4 -5
- package/dist/esm/versioned-node-type.js.map +1 -0
- package/dist/esm/workflow-data-proxy-env-provider.d.ts +25 -0
- package/dist/esm/workflow-data-proxy-env-provider.d.ts.map +1 -0
- package/dist/{workflow-data-proxy-env-provider.js → esm/workflow-data-proxy-env-provider.js} +22 -9
- package/dist/esm/workflow-data-proxy-env-provider.js.map +1 -0
- package/dist/esm/workflow-data-proxy-helpers.d.ts +3 -0
- package/dist/esm/workflow-data-proxy-helpers.d.ts.map +1 -0
- package/dist/esm/workflow-data-proxy-helpers.js +7 -0
- package/dist/esm/workflow-data-proxy-helpers.js.map +1 -0
- package/dist/esm/workflow-data-proxy.d.ts +80 -0
- package/dist/esm/workflow-data-proxy.d.ts.map +1 -0
- package/dist/{workflow-data-proxy.js → esm/workflow-data-proxy.js} +174 -109
- package/dist/esm/workflow-data-proxy.js.map +1 -0
- package/dist/esm/workflow.d.ts +157 -0
- package/dist/esm/workflow.d.ts.map +1 -0
- package/dist/{workflow.js → esm/workflow.js} +223 -73
- package/dist/esm/workflow.js.map +1 -0
- package/package.json +20 -16
- package/dist/augment-object.js.map +0 -1
- package/dist/build.tsbuildinfo +0 -1
- package/dist/constants.js +0 -89
- package/dist/constants.js.map +0 -1
- package/dist/cron.js.map +0 -1
- package/dist/deferred-promise.js +0 -12
- package/dist/deferred-promise.js.map +0 -1
- package/dist/errors/abstract/execution-base.error.js.map +0 -1
- package/dist/errors/abstract/node.error.d.ts +0 -12
- package/dist/errors/abstract/node.error.js.map +0 -1
- package/dist/errors/application.error.js +0 -24
- package/dist/errors/application.error.js.map +0 -1
- package/dist/errors/base/base.error.js.map +0 -1
- package/dist/errors/base/operational.error.js +0 -12
- package/dist/errors/base/operational.error.js.map +0 -1
- package/dist/errors/base/unexpected.error.js +0 -12
- package/dist/errors/base/unexpected.error.js.map +0 -1
- package/dist/errors/base/user.error.js +0 -12
- package/dist/errors/base/user.error.js.map +0 -1
- package/dist/errors/cli-subworkflow-operation.error.js +0 -8
- package/dist/errors/cli-subworkflow-operation.error.js.map +0 -1
- package/dist/errors/db-connection-timeout-error.js.map +0 -1
- package/dist/errors/ensure-error.d.ts +0 -1
- package/dist/errors/ensure-error.js +0 -11
- package/dist/errors/ensure-error.js.map +0 -1
- package/dist/errors/error.types.js +0 -3
- package/dist/errors/execution-cancelled.error.js +0 -14
- package/dist/errors/execution-cancelled.error.js.map +0 -1
- package/dist/errors/expression-extension.error.js +0 -8
- package/dist/errors/expression-extension.error.js.map +0 -1
- package/dist/errors/expression.error.js.map +0 -1
- package/dist/errors/index.js +0 -48
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/node-api.error.js.map +0 -1
- package/dist/errors/node-operation.error.js.map +0 -1
- package/dist/errors/node-ssl.error.js +0 -11
- package/dist/errors/node-ssl.error.js.map +0 -1
- package/dist/errors/subworkflow-operation.error.js +0 -19
- package/dist/errors/subworkflow-operation.error.js.map +0 -1
- package/dist/errors/trigger-close.error.js +0 -13
- package/dist/errors/trigger-close.error.js.map +0 -1
- package/dist/errors/webhook-taken.error.js +0 -11
- package/dist/errors/webhook-taken.error.js.map +0 -1
- package/dist/errors/workflow-activation.error.js.map +0 -1
- package/dist/errors/workflow-deactivation.error.js +0 -8
- package/dist/errors/workflow-deactivation.error.js.map +0 -1
- package/dist/errors/workflow-operation.error.js +0 -17
- package/dist/errors/workflow-operation.error.js.map +0 -1
- package/dist/execution-status.js +0 -14
- package/dist/execution-status.js.map +0 -1
- package/dist/expression-evaluator-proxy.js +0 -20
- package/dist/expression-evaluator-proxy.js.map +0 -1
- package/dist/expression-sandboxing.js +0 -43
- package/dist/expression-sandboxing.js.map +0 -1
- package/dist/expression.js.map +0 -1
- package/dist/extensions/array-extensions.js.map +0 -1
- package/dist/extensions/boolean-extensions.js.map +0 -1
- package/dist/extensions/date-extensions.js.map +0 -1
- package/dist/extensions/expression-extension.js +0 -362
- package/dist/extensions/expression-extension.js.map +0 -1
- package/dist/extensions/expression-parser.js.map +0 -1
- package/dist/extensions/extended-functions.js.map +0 -1
- package/dist/extensions/extensions.js +0 -3
- package/dist/extensions/extensions.js.map +0 -1
- package/dist/extensions/index.js +0 -11
- package/dist/extensions/index.js.map +0 -1
- package/dist/extensions/number-extensions.js.map +0 -1
- package/dist/extensions/object-extensions.js.map +0 -1
- package/dist/extensions/string-extensions.js.map +0 -1
- package/dist/extensions/utils.js +0 -31
- package/dist/extensions/utils.js.map +0 -1
- package/dist/from-ai-parse-utils.d.ts +0 -12
- package/dist/from-ai-parse-utils.js.map +0 -1
- package/dist/global-state.js +0 -13
- package/dist/global-state.js.map +0 -1
- package/dist/graph/graph-utils.js.map +0 -1
- package/dist/index.js +0 -103
- package/dist/index.js.map +0 -1
- package/dist/interfaces.js.map +0 -1
- package/dist/logger-proxy.js +0 -16
- package/dist/logger-proxy.js.map +0 -1
- package/dist/message-event-bus.js.map +0 -1
- package/dist/metadata-utils.js.map +0 -1
- package/dist/native-methods/array.methods.js.map +0 -1
- package/dist/native-methods/boolean.methods.js.map +0 -1
- package/dist/native-methods/index.js +0 -17
- package/dist/native-methods/index.js.map +0 -1
- package/dist/native-methods/number.methods.js.map +0 -1
- package/dist/native-methods/object.methods.js +0 -8
- package/dist/native-methods/object.methods.js.map +0 -1
- package/dist/native-methods/string.methods.js.map +0 -1
- package/dist/node-helpers.js.map +0 -1
- package/dist/node-parameters/filter-parameter.js.map +0 -1
- package/dist/node-parameters/rename-node-utils.js.map +0 -1
- package/dist/node-reference-parser-utils.js.map +0 -1
- package/dist/observable-object.js.map +0 -1
- package/dist/result.js +0 -25
- package/dist/result.js.map +0 -1
- package/dist/telemetry-helpers.js.map +0 -1
- package/dist/type-guards.js +0 -46
- package/dist/type-guards.js.map +0 -1
- package/dist/type-validation.js.map +0 -1
- package/dist/utils.js +0 -259
- package/dist/utils.js.map +0 -1
- package/dist/versioned-node-type.js.map +0 -1
- package/dist/workflow-data-proxy-env-provider.d.ts +0 -7
- package/dist/workflow-data-proxy-env-provider.js.map +0 -1
- package/dist/workflow-data-proxy-helpers.js +0 -10
- package/dist/workflow-data-proxy-helpers.js.map +0 -1
- package/dist/workflow-data-proxy.js.map +0 -1
- package/dist/workflow.d.ts +0 -54
- package/dist/workflow.js.map +0 -1
|
@@ -1,44 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
exports.getNodeOutputs = getNodeOutputs;
|
|
17
|
-
exports.getNodeParametersIssues = getNodeParametersIssues;
|
|
18
|
-
exports.getParameterValueByPath = getParameterValueByPath;
|
|
19
|
-
exports.getParameterIssues = getParameterIssues;
|
|
20
|
-
exports.mergeIssues = mergeIssues;
|
|
21
|
-
exports.mergeNodeProperties = mergeNodeProperties;
|
|
22
|
-
exports.getVersionedNodeType = getVersionedNodeType;
|
|
23
|
-
exports.isTriggerNode = isTriggerNode;
|
|
24
|
-
exports.isExecutable = isExecutable;
|
|
25
|
-
exports.isNodeWithWorkflowSelector = isNodeWithWorkflowSelector;
|
|
26
|
-
exports.makeDescription = makeDescription;
|
|
27
|
-
exports.isTool = isTool;
|
|
28
|
-
exports.makeNodeName = makeNodeName;
|
|
29
|
-
exports.isDefaultNodeName = isDefaultNodeName;
|
|
30
|
-
exports.getToolDescriptionForNode = getToolDescriptionForNode;
|
|
31
|
-
exports.getSubworkflowId = getSubworkflowId;
|
|
32
|
-
const get_1 = __importDefault(require("lodash/get"));
|
|
33
|
-
const isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
34
|
-
const constants_1 = require("./constants");
|
|
35
|
-
const application_error_1 = require("./errors/application.error");
|
|
36
|
-
const interfaces_1 = require("./interfaces");
|
|
37
|
-
const filter_parameter_1 = require("./node-parameters/filter-parameter");
|
|
38
|
-
const type_guards_1 = require("./type-guards");
|
|
39
|
-
const type_validation_1 = require("./type-validation");
|
|
40
|
-
const utils_1 = require("./utils");
|
|
41
|
-
exports.cronNodeOptions = [
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
4
|
+
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
|
|
5
|
+
/* eslint-disable prefer-spread */
|
|
6
|
+
import get from 'lodash/get';
|
|
7
|
+
import isEqual from 'lodash/isEqual';
|
|
8
|
+
import { EXECUTE_WORKFLOW_NODE_TYPE, WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE } from './constants';
|
|
9
|
+
import { ApplicationError } from './errors/application.error';
|
|
10
|
+
import { NodeConnectionTypes } from './interfaces';
|
|
11
|
+
import { validateFilterParameter } from './node-parameters/filter-parameter';
|
|
12
|
+
import { isFilterValue, isINodePropertyOptionsList, isResourceLocatorValue, isResourceMapperValue, isValidResourceLocatorParameterValue, } from './type-guards';
|
|
13
|
+
import { validateFieldType } from './type-validation';
|
|
14
|
+
import { deepCopy } from './utils';
|
|
15
|
+
export const cronNodeOptions = [
|
|
42
16
|
{
|
|
43
17
|
name: 'item',
|
|
44
18
|
displayName: 'Item',
|
|
@@ -223,19 +197,24 @@ exports.cronNodeOptions = [
|
|
|
223
197
|
],
|
|
224
198
|
},
|
|
225
199
|
];
|
|
226
|
-
|
|
200
|
+
/**
|
|
201
|
+
* Determines if the provided node type has any output types other than the main connection type.
|
|
202
|
+
* @param typeDescription The node's type description to check.
|
|
203
|
+
*/
|
|
204
|
+
export function isSubNodeType(typeDescription) {
|
|
227
205
|
if (!typeDescription?.outputs || typeof typeDescription.outputs === 'string') {
|
|
228
206
|
return false;
|
|
229
207
|
}
|
|
230
208
|
const outputTypes = getConnectionTypes(typeDescription.outputs);
|
|
231
209
|
return outputTypes
|
|
232
|
-
? outputTypes.filter((output) => output !==
|
|
210
|
+
? outputTypes.filter((output) => output !== NodeConnectionTypes.Main).length > 0
|
|
233
211
|
: false;
|
|
234
212
|
}
|
|
235
213
|
const getPropertyValues = (nodeValues, propertyName, node, nodeTypeDescription, nodeValuesRoot) => {
|
|
236
214
|
let value;
|
|
237
215
|
if (propertyName.charAt(0) === '/') {
|
|
238
|
-
value
|
|
216
|
+
// Get the value from the root of the node
|
|
217
|
+
value = get(nodeValuesRoot, propertyName.slice(1));
|
|
239
218
|
}
|
|
240
219
|
else if (propertyName === '@version') {
|
|
241
220
|
value = node?.typeVersion || 0;
|
|
@@ -244,7 +223,8 @@ const getPropertyValues = (nodeValues, propertyName, node, nodeTypeDescription,
|
|
|
244
223
|
value = nodeTypeDescription?.name.endsWith('Tool') ?? false;
|
|
245
224
|
}
|
|
246
225
|
else {
|
|
247
|
-
value
|
|
226
|
+
// Get the value from current level
|
|
227
|
+
value = get(nodeValues, propertyName);
|
|
248
228
|
}
|
|
249
229
|
if (value && typeof value === 'object' && '__rl' in value && value.__rl) {
|
|
250
230
|
value = value.value;
|
|
@@ -265,10 +245,10 @@ const checkConditions = (conditions, actualValues) => {
|
|
|
265
245
|
const [key, targetValue] = Object.entries(condition._cnd)[0];
|
|
266
246
|
return actualValues.every((propertyValue) => {
|
|
267
247
|
if (key === 'eq') {
|
|
268
|
-
return (
|
|
248
|
+
return isEqual(propertyValue, targetValue);
|
|
269
249
|
}
|
|
270
250
|
if (key === 'not') {
|
|
271
|
-
return !(
|
|
251
|
+
return !isEqual(propertyValue, targetValue);
|
|
272
252
|
}
|
|
273
253
|
if (key === 'gte') {
|
|
274
254
|
return propertyValue >= targetValue;
|
|
@@ -307,13 +287,23 @@ const checkConditions = (conditions, actualValues) => {
|
|
|
307
287
|
return actualValues.includes(condition);
|
|
308
288
|
});
|
|
309
289
|
};
|
|
310
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Returns if the parameter should be displayed or not
|
|
292
|
+
*
|
|
293
|
+
* @param {INodeParameters} nodeValues The data on the node which decides if the parameter
|
|
294
|
+
* should be displayed
|
|
295
|
+
* @param {(INodeProperties | INodeCredentialDescription)} parameter The parameter to check if it should be displayed
|
|
296
|
+
* @param {INodeParameters} [nodeValuesRoot] The root node-parameter-data
|
|
297
|
+
*/
|
|
298
|
+
export function displayParameter(nodeValues, parameter, node, // Allow null as it does also get used by credentials and they do not have versioning yet
|
|
299
|
+
nodeTypeDescription, nodeValuesRoot, displayKey = 'displayOptions') {
|
|
311
300
|
if (!parameter[displayKey]) {
|
|
312
301
|
return true;
|
|
313
302
|
}
|
|
314
303
|
const { show, hide } = parameter[displayKey];
|
|
315
304
|
nodeValuesRoot = nodeValuesRoot || nodeValues;
|
|
316
305
|
if (show) {
|
|
306
|
+
// All the defined rules have to match to display parameter
|
|
317
307
|
for (const propertyName of Object.keys(show)) {
|
|
318
308
|
const values = getPropertyValues(nodeValues, propertyName, node, nodeTypeDescription, nodeValuesRoot);
|
|
319
309
|
if (values.some((v) => typeof v === 'string' && v.charAt(0) === '=')) {
|
|
@@ -325,6 +315,7 @@ function displayParameter(nodeValues, parameter, node, nodeTypeDescription, node
|
|
|
325
315
|
}
|
|
326
316
|
}
|
|
327
317
|
if (hide) {
|
|
318
|
+
// Any of the defined hide rules have to match to hide the parameter
|
|
328
319
|
for (const propertyName of Object.keys(hide)) {
|
|
329
320
|
const values = getPropertyValues(nodeValues, propertyName, node, nodeTypeDescription, nodeValuesRoot);
|
|
330
321
|
if (values.length !== 0 && checkConditions(hide[propertyName], values)) {
|
|
@@ -334,20 +325,38 @@ function displayParameter(nodeValues, parameter, node, nodeTypeDescription, node
|
|
|
334
325
|
}
|
|
335
326
|
return true;
|
|
336
327
|
}
|
|
337
|
-
|
|
328
|
+
/**
|
|
329
|
+
* Returns if the given parameter should be displayed or not considering the path
|
|
330
|
+
* to the properties
|
|
331
|
+
*
|
|
332
|
+
* @param {INodeParameters} nodeValues The data on the node which decides if the parameter
|
|
333
|
+
* should be displayed
|
|
334
|
+
* @param {(INodeProperties | INodeCredentialDescription)} parameter The parameter to check if it should be displayed
|
|
335
|
+
* @param {string} path The path to the property
|
|
336
|
+
*/
|
|
337
|
+
export function displayParameterPath(nodeValues, parameter, path, node, nodeTypeDescription, displayKey = 'displayOptions') {
|
|
338
338
|
let resolvedNodeValues = nodeValues;
|
|
339
339
|
if (path !== '') {
|
|
340
|
-
resolvedNodeValues = (
|
|
340
|
+
resolvedNodeValues = get(nodeValues, path);
|
|
341
341
|
}
|
|
342
|
+
// Get the root parameter data
|
|
342
343
|
let nodeValuesRoot = nodeValues;
|
|
343
344
|
if (path && path.split('.').indexOf('parameters') === 0) {
|
|
344
|
-
nodeValuesRoot = (
|
|
345
|
+
nodeValuesRoot = get(nodeValues, 'parameters');
|
|
345
346
|
}
|
|
346
347
|
return displayParameter(resolvedNodeValues, parameter, node, nodeTypeDescription, nodeValuesRoot, displayKey);
|
|
347
348
|
}
|
|
348
|
-
|
|
349
|
+
/**
|
|
350
|
+
* Returns the context data
|
|
351
|
+
*
|
|
352
|
+
* @param {IRunExecutionData} runExecutionData The run execution data
|
|
353
|
+
* @param {string} type The data type. "node"/"flow"
|
|
354
|
+
* @param {INode} [node] If type "node" is set the node to return the context of has to be supplied
|
|
355
|
+
*/
|
|
356
|
+
export function getContext(runExecutionData, type, node) {
|
|
349
357
|
if (runExecutionData.executionData === undefined) {
|
|
350
|
-
|
|
358
|
+
// TODO: Should not happen leave it for test now
|
|
359
|
+
throw new ApplicationError('`executionData` is not initialized');
|
|
351
360
|
}
|
|
352
361
|
let key;
|
|
353
362
|
if (type === 'flow') {
|
|
@@ -355,12 +364,13 @@ function getContext(runExecutionData, type, node) {
|
|
|
355
364
|
}
|
|
356
365
|
else if (type === 'node') {
|
|
357
366
|
if (node === undefined) {
|
|
358
|
-
|
|
367
|
+
// @TODO: What does this mean?
|
|
368
|
+
throw new ApplicationError('The request data of context type "node" the node parameter has to be set!');
|
|
359
369
|
}
|
|
360
370
|
key = `node:${node.name}`;
|
|
361
371
|
}
|
|
362
372
|
else {
|
|
363
|
-
throw new
|
|
373
|
+
throw new ApplicationError('Unknown context type. Only `flow` and `node` are supported.', {
|
|
364
374
|
extra: { contextType: type },
|
|
365
375
|
});
|
|
366
376
|
}
|
|
@@ -369,6 +379,9 @@ function getContext(runExecutionData, type, node) {
|
|
|
369
379
|
}
|
|
370
380
|
return runExecutionData.executionData.contextData[key];
|
|
371
381
|
}
|
|
382
|
+
/**
|
|
383
|
+
* Returns which parameters are dependent on which
|
|
384
|
+
*/
|
|
372
385
|
function getParameterDependencies(nodePropertiesArray) {
|
|
373
386
|
const dependencies = {};
|
|
374
387
|
for (const nodeProperties of nodePropertiesArray) {
|
|
@@ -377,12 +390,14 @@ function getParameterDependencies(nodePropertiesArray) {
|
|
|
377
390
|
dependencies[name] = [];
|
|
378
391
|
}
|
|
379
392
|
if (!displayOptions) {
|
|
393
|
+
// Does not have any dependencies
|
|
380
394
|
continue;
|
|
381
395
|
}
|
|
382
396
|
for (const displayRule of Object.values(displayOptions)) {
|
|
383
397
|
for (const parameterName of Object.keys(displayRule)) {
|
|
384
398
|
if (!dependencies[name].includes(parameterName)) {
|
|
385
399
|
if (parameterName.charAt(0) === '@') {
|
|
400
|
+
// Is a special parameter so can be skipped
|
|
386
401
|
continue;
|
|
387
402
|
}
|
|
388
403
|
dependencies[name].push(parameterName);
|
|
@@ -392,6 +407,10 @@ function getParameterDependencies(nodePropertiesArray) {
|
|
|
392
407
|
}
|
|
393
408
|
return dependencies;
|
|
394
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Returns in which order the parameters should be resolved
|
|
412
|
+
* to have the parameters available they depend on
|
|
413
|
+
*/
|
|
395
414
|
function getParameterResolveOrder(nodePropertiesArray, parameterDependencies) {
|
|
396
415
|
const executionOrder = [];
|
|
397
416
|
const indexToResolve = Array.from({ length: nodePropertiesArray.length }, (_, k) => k);
|
|
@@ -406,37 +425,56 @@ function getParameterResolveOrder(nodePropertiesArray, parameterDependencies) {
|
|
|
406
425
|
index = indexToResolve.shift();
|
|
407
426
|
property = nodePropertiesArray[index];
|
|
408
427
|
if (parameterDependencies[property.name].length === 0) {
|
|
428
|
+
// Does not have any dependencies so simply add
|
|
409
429
|
executionOrder.push(index);
|
|
410
430
|
resolvedParameters.push(property.name);
|
|
411
431
|
continue;
|
|
412
432
|
}
|
|
433
|
+
// Parameter has dependencies
|
|
413
434
|
for (const dependency of parameterDependencies[property.name]) {
|
|
414
435
|
if (!resolvedParameters.includes(dependency)) {
|
|
415
436
|
if (dependency.charAt(0) === '/') {
|
|
437
|
+
// Assume that root level dependencies are resolved
|
|
416
438
|
continue;
|
|
417
439
|
}
|
|
440
|
+
// Dependencies for that parameter are still missing so
|
|
441
|
+
// try to add again later
|
|
418
442
|
indexToResolve.push(index);
|
|
419
443
|
continue;
|
|
420
444
|
}
|
|
421
445
|
}
|
|
446
|
+
// All dependencies got found so add
|
|
422
447
|
executionOrder.push(index);
|
|
423
448
|
resolvedParameters.push(property.name);
|
|
424
449
|
if (indexToResolve.length < lastIndexLength) {
|
|
425
450
|
lastIndexReduction = iterations;
|
|
426
451
|
}
|
|
427
452
|
if (iterations > lastIndexReduction + nodePropertiesArray.length) {
|
|
428
|
-
throw new
|
|
453
|
+
throw new ApplicationError('Could not resolve parameter dependencies. Max iterations reached! Hint: If `displayOptions` are specified in any child parameter of a parent `collection` or `fixedCollection`, remove the `displayOptions` from the child parameter.');
|
|
429
454
|
}
|
|
430
455
|
lastIndexLength = indexToResolve.length;
|
|
431
456
|
}
|
|
432
457
|
return executionOrder;
|
|
433
458
|
}
|
|
434
|
-
|
|
459
|
+
/**
|
|
460
|
+
* Returns the node parameter values. Depending on the settings it either just returns the none
|
|
461
|
+
* default values or it applies all the default values.
|
|
462
|
+
*
|
|
463
|
+
* @param {INodeProperties[]} nodePropertiesArray The properties which exist and their settings
|
|
464
|
+
* @param {INodeParameters} nodeValues The node parameter data
|
|
465
|
+
* @param {boolean} returnDefaults If default values get added or only none default values returned
|
|
466
|
+
* @param {boolean} returnNoneDisplayed If also values which should not be displayed should be returned
|
|
467
|
+
* @param {GetNodeParametersOptions} options Optional properties
|
|
468
|
+
*/
|
|
469
|
+
// eslint-disable-next-line complexity
|
|
470
|
+
export function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, returnNoneDisplayed, node, nodeTypeDescription, options) {
|
|
435
471
|
let { nodeValuesRoot, parameterDependencies } = options ?? {};
|
|
436
472
|
const { onlySimpleTypes = false, dataIsResolved = false, parentType } = options ?? {};
|
|
437
473
|
if (parameterDependencies === undefined) {
|
|
438
474
|
parameterDependencies = getParameterDependencies(nodePropertiesArray);
|
|
439
475
|
}
|
|
476
|
+
// Get the parameter names which get used multiple times as for this
|
|
477
|
+
// ones we have to always check which ones get displayed and which ones not
|
|
440
478
|
const duplicateParameterNames = [];
|
|
441
479
|
const parameterNames = [];
|
|
442
480
|
for (const nodeProperties of nodePropertiesArray) {
|
|
@@ -462,12 +500,14 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
462
500
|
});
|
|
463
501
|
}
|
|
464
502
|
nodeValuesRoot = nodeValuesRoot || nodeValuesDisplayCheck;
|
|
503
|
+
// Go through the parameters in order of their dependencies
|
|
465
504
|
const parameterIterationOrderIndex = getParameterResolveOrder(nodePropertiesArray, parameterDependencies);
|
|
466
505
|
for (const parameterIndex of parameterIterationOrderIndex) {
|
|
467
506
|
const nodeProperties = nodePropertiesArray[parameterIndex];
|
|
468
507
|
if (!nodeValues ||
|
|
469
508
|
(nodeValues[nodeProperties.name] === undefined &&
|
|
470
509
|
(!returnDefaults || parentType === 'collection'))) {
|
|
510
|
+
// The value is not defined so go to the next
|
|
471
511
|
continue;
|
|
472
512
|
}
|
|
473
513
|
if (!returnNoneDisplayed &&
|
|
@@ -477,13 +517,17 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
477
517
|
}
|
|
478
518
|
}
|
|
479
519
|
if (!['collection', 'fixedCollection'].includes(nodeProperties.type)) {
|
|
520
|
+
// Is a simple property so can be set as it is
|
|
480
521
|
if (duplicateParameterNames.includes(nodeProperties.name)) {
|
|
481
522
|
if (!displayParameter(nodeValuesDisplayCheck, nodeProperties, node, nodeTypeDescription, nodeValuesRoot)) {
|
|
482
523
|
continue;
|
|
483
524
|
}
|
|
484
525
|
}
|
|
485
526
|
if (returnDefaults) {
|
|
527
|
+
// Set also when it has the default value
|
|
486
528
|
if (['boolean', 'number', 'options'].includes(nodeProperties.type)) {
|
|
529
|
+
// Boolean, numbers and options are special as false and 0 are valid values
|
|
530
|
+
// and should not be replaced with default value
|
|
487
531
|
nodeParameters[nodeProperties.name] =
|
|
488
532
|
nodeValues[nodeProperties.name] !== undefined
|
|
489
533
|
? nodeValues[nodeProperties.name]
|
|
@@ -505,34 +549,44 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
505
549
|
else if ((nodeValues[nodeProperties.name] !== nodeProperties.default &&
|
|
506
550
|
typeof nodeValues[nodeProperties.name] !== 'object') ||
|
|
507
551
|
(typeof nodeValues[nodeProperties.name] === 'object' &&
|
|
508
|
-
!(
|
|
552
|
+
!isEqual(nodeValues[nodeProperties.name], nodeProperties.default)) ||
|
|
509
553
|
(nodeValues[nodeProperties.name] !== undefined && parentType === 'collection')) {
|
|
554
|
+
// Set only if it is different to the default value
|
|
510
555
|
nodeParameters[nodeProperties.name] = nodeValues[nodeProperties.name];
|
|
511
556
|
nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
|
|
512
557
|
continue;
|
|
513
558
|
}
|
|
514
559
|
}
|
|
515
560
|
if (onlySimpleTypes) {
|
|
561
|
+
// It is only supposed to resolve the simple types. So continue.
|
|
516
562
|
continue;
|
|
517
563
|
}
|
|
564
|
+
// Is a complex property so check lower levels
|
|
518
565
|
let tempValue;
|
|
519
566
|
if (nodeProperties.type === 'collection') {
|
|
567
|
+
// Is collection
|
|
520
568
|
if (nodeProperties.typeOptions !== undefined &&
|
|
521
569
|
nodeProperties.typeOptions.multipleValues === true) {
|
|
570
|
+
// Multiple can be set so will be an array
|
|
571
|
+
// Return directly the values like they are
|
|
522
572
|
if (nodeValues[nodeProperties.name] !== undefined) {
|
|
523
573
|
nodeParameters[nodeProperties.name] = nodeValues[nodeProperties.name];
|
|
524
574
|
}
|
|
525
575
|
else if (returnDefaults) {
|
|
576
|
+
// Does not have values defined but defaults should be returned
|
|
526
577
|
if (Array.isArray(nodeProperties.default)) {
|
|
527
|
-
nodeParameters[nodeProperties.name] =
|
|
578
|
+
nodeParameters[nodeProperties.name] = deepCopy(nodeProperties.default);
|
|
528
579
|
}
|
|
529
580
|
else {
|
|
581
|
+
// As it is probably wrong for many nodes, do we keep on returning an empty array if
|
|
582
|
+
// anything else than an array is set as default
|
|
530
583
|
nodeParameters[nodeProperties.name] = [];
|
|
531
584
|
}
|
|
532
585
|
}
|
|
533
586
|
nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
|
|
534
587
|
}
|
|
535
588
|
else if (nodeValues[nodeProperties.name] !== undefined) {
|
|
589
|
+
// Has values defined so get them
|
|
536
590
|
const tempNodeParameters = getNodeParameters(nodeProperties.options, nodeValues[nodeProperties.name], returnDefaults, returnNoneDisplayed, node, nodeTypeDescription, {
|
|
537
591
|
onlySimpleTypes: false,
|
|
538
592
|
dataIsResolved: false,
|
|
@@ -545,11 +599,13 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
545
599
|
}
|
|
546
600
|
}
|
|
547
601
|
else if (returnDefaults) {
|
|
548
|
-
|
|
602
|
+
// Does not have values defined but defaults should be returned
|
|
603
|
+
nodeParameters[nodeProperties.name] = deepCopy(nodeProperties.default);
|
|
549
604
|
nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
|
|
550
605
|
}
|
|
551
606
|
}
|
|
552
607
|
else if (nodeProperties.type === 'fixedCollection') {
|
|
608
|
+
// Is fixedCollection
|
|
553
609
|
const collectionValues = {};
|
|
554
610
|
let tempNodeParameters;
|
|
555
611
|
let tempNodePropertiesArray;
|
|
@@ -557,23 +613,31 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
557
613
|
let propertyValues = nodeValues[nodeProperties.name];
|
|
558
614
|
if (returnDefaults) {
|
|
559
615
|
if (propertyValues === undefined) {
|
|
560
|
-
propertyValues =
|
|
616
|
+
propertyValues = deepCopy(nodeProperties.default);
|
|
561
617
|
}
|
|
562
618
|
}
|
|
563
619
|
if (!returnDefaults &&
|
|
564
620
|
nodeProperties.typeOptions?.multipleValues === false &&
|
|
565
621
|
propertyValues &&
|
|
566
622
|
Object.keys(propertyValues).length === 0) {
|
|
623
|
+
// For fixedCollections, which only allow one value, it is important to still return
|
|
624
|
+
// the empty object which indicates that a value got added, even if it does not have
|
|
625
|
+
// anything set. If that is not done, the value would get lost.
|
|
567
626
|
return nodeValues;
|
|
568
627
|
}
|
|
628
|
+
// Iterate over all collections
|
|
569
629
|
for (const itemName of Object.keys(propertyValues || {})) {
|
|
570
630
|
if (nodeProperties.typeOptions !== undefined &&
|
|
571
631
|
nodeProperties.typeOptions.multipleValues === true) {
|
|
632
|
+
// Multiple can be set so will be an array
|
|
572
633
|
const tempArrayValue = [];
|
|
634
|
+
// Iterate over all items as it contains multiple ones
|
|
573
635
|
for (const nodeValue of propertyValues[itemName]) {
|
|
574
|
-
nodePropertyOptions = nodeProperties.options.find(
|
|
636
|
+
nodePropertyOptions = nodeProperties.options.find(
|
|
637
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
638
|
+
(nodePropertyOptions) => nodePropertyOptions.name === itemName);
|
|
575
639
|
if (nodePropertyOptions === undefined) {
|
|
576
|
-
throw new
|
|
640
|
+
throw new ApplicationError('Could not find property option', {
|
|
577
641
|
extra: { propertyOption: itemName, property: nodeProperties.name },
|
|
578
642
|
});
|
|
579
643
|
}
|
|
@@ -591,7 +655,10 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
591
655
|
collectionValues[itemName] = tempArrayValue;
|
|
592
656
|
}
|
|
593
657
|
else {
|
|
658
|
+
// Only one can be set so is an object of objects
|
|
594
659
|
tempNodeParameters = {};
|
|
660
|
+
// Get the options of the current item
|
|
661
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
595
662
|
const nodePropertyOptions = nodeProperties.options.find((data) => data.name === itemName);
|
|
596
663
|
if (nodePropertyOptions !== undefined) {
|
|
597
664
|
tempNodePropertiesArray = nodePropertyOptions.values;
|
|
@@ -617,6 +684,9 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
617
684
|
propertyValues &&
|
|
618
685
|
propertyValues?.constructor.name === 'Object' &&
|
|
619
686
|
Object.keys(propertyValues).length !== 0) {
|
|
687
|
+
// For fixedCollections, which only allow one value, it is important to still return
|
|
688
|
+
// the object with an empty collection property which indicates that a value got added
|
|
689
|
+
// which contains all default values. If that is not done, the value would get lost.
|
|
620
690
|
const returnValue = {};
|
|
621
691
|
Object.keys(propertyValues || {}).forEach((value) => {
|
|
622
692
|
returnValue[value] = {};
|
|
@@ -624,9 +694,11 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
624
694
|
nodeParameters[nodeProperties.name] = returnValue;
|
|
625
695
|
}
|
|
626
696
|
if (Object.keys(collectionValues).length !== 0 || returnDefaults) {
|
|
697
|
+
// Set only if value got found
|
|
627
698
|
if (returnDefaults) {
|
|
699
|
+
// Set also when it has the default value
|
|
628
700
|
if (collectionValues === undefined) {
|
|
629
|
-
nodeParameters[nodeProperties.name] =
|
|
701
|
+
nodeParameters[nodeProperties.name] = deepCopy(nodeProperties.default);
|
|
630
702
|
}
|
|
631
703
|
else {
|
|
632
704
|
nodeParameters[nodeProperties.name] = collectionValues;
|
|
@@ -634,6 +706,7 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
634
706
|
nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
|
|
635
707
|
}
|
|
636
708
|
else if (collectionValues !== nodeProperties.default) {
|
|
709
|
+
// Set only if values got found and it is not the default
|
|
637
710
|
nodeParameters[nodeProperties.name] = collectionValues;
|
|
638
711
|
nodeParametersFull[nodeProperties.name] = nodeParameters[nodeProperties.name];
|
|
639
712
|
}
|
|
@@ -642,24 +715,32 @@ function getNodeParameters(nodePropertiesArray, nodeValues, returnDefaults, retu
|
|
|
642
715
|
}
|
|
643
716
|
return nodeParameters;
|
|
644
717
|
}
|
|
645
|
-
|
|
718
|
+
/**
|
|
719
|
+
* Returns the webhook path
|
|
720
|
+
*/
|
|
721
|
+
export function getNodeWebhookPath(workflowId, node, path, isFullPath, restartWebhook) {
|
|
646
722
|
let webhookPath = '';
|
|
647
723
|
if (restartWebhook === true) {
|
|
648
724
|
return path;
|
|
649
725
|
}
|
|
650
726
|
if (node.webhookId === undefined) {
|
|
651
|
-
|
|
727
|
+
const nodeName = encodeURIComponent(node.name.toLowerCase());
|
|
728
|
+
webhookPath = `${workflowId}/${nodeName}/${path}`;
|
|
652
729
|
}
|
|
653
730
|
else {
|
|
654
731
|
if (isFullPath === true) {
|
|
655
|
-
return path;
|
|
732
|
+
return path || node.webhookId;
|
|
656
733
|
}
|
|
657
734
|
webhookPath = `${node.webhookId}/${path}`;
|
|
658
735
|
}
|
|
659
736
|
return webhookPath;
|
|
660
737
|
}
|
|
661
|
-
|
|
738
|
+
/**
|
|
739
|
+
* Returns the webhook URL
|
|
740
|
+
*/
|
|
741
|
+
export function getNodeWebhookUrl(baseUrl, workflowId, node, path, isFullPath) {
|
|
662
742
|
if ((path.startsWith(':') || path.includes('/:')) && node.webhookId) {
|
|
743
|
+
// setting this to false to prefix the webhookId
|
|
663
744
|
isFullPath = false;
|
|
664
745
|
}
|
|
665
746
|
if (path.startsWith('/')) {
|
|
@@ -667,7 +748,7 @@ function getNodeWebhookUrl(baseUrl, workflowId, node, path, isFullPath) {
|
|
|
667
748
|
}
|
|
668
749
|
return `${baseUrl}/${getNodeWebhookPath(workflowId, node, path, isFullPath)}`;
|
|
669
750
|
}
|
|
670
|
-
function getConnectionTypes(connections) {
|
|
751
|
+
export function getConnectionTypes(connections) {
|
|
671
752
|
return connections
|
|
672
753
|
.map((connection) => {
|
|
673
754
|
if (typeof connection === 'string') {
|
|
@@ -677,10 +758,11 @@ function getConnectionTypes(connections) {
|
|
|
677
758
|
})
|
|
678
759
|
.filter((connection) => connection !== undefined);
|
|
679
760
|
}
|
|
680
|
-
function getNodeInputs(workflow, node, nodeTypeData) {
|
|
761
|
+
export function getNodeInputs(workflow, node, nodeTypeData) {
|
|
681
762
|
if (Array.isArray(nodeTypeData?.inputs)) {
|
|
682
763
|
return nodeTypeData.inputs;
|
|
683
764
|
}
|
|
765
|
+
// Calculate the outputs dynamically
|
|
684
766
|
try {
|
|
685
767
|
return (workflow.expression.getSimpleParameterValue(node, nodeTypeData.inputs, 'internal', {}) || []);
|
|
686
768
|
}
|
|
@@ -689,12 +771,13 @@ function getNodeInputs(workflow, node, nodeTypeData) {
|
|
|
689
771
|
return [];
|
|
690
772
|
}
|
|
691
773
|
}
|
|
692
|
-
function getNodeOutputs(workflow, node, nodeTypeData) {
|
|
774
|
+
export function getNodeOutputs(workflow, node, nodeTypeData) {
|
|
693
775
|
let outputs = [];
|
|
694
776
|
if (Array.isArray(nodeTypeData.outputs)) {
|
|
695
777
|
outputs = nodeTypeData.outputs;
|
|
696
778
|
}
|
|
697
779
|
else {
|
|
780
|
+
// Calculate the outputs dynamically
|
|
698
781
|
try {
|
|
699
782
|
outputs = (workflow.expression.getSimpleParameterValue(node, nodeTypeData.outputs, 'internal', {}) || []);
|
|
700
783
|
}
|
|
@@ -703,8 +786,11 @@ function getNodeOutputs(workflow, node, nodeTypeData) {
|
|
|
703
786
|
}
|
|
704
787
|
}
|
|
705
788
|
if (node.onError === 'continueErrorOutput') {
|
|
706
|
-
|
|
789
|
+
// Copy the data to make sure that we do not change the data of the
|
|
790
|
+
// node type and so change the displayNames for all nodes in the flow
|
|
791
|
+
outputs = deepCopy(outputs);
|
|
707
792
|
if (outputs.length === 1) {
|
|
793
|
+
// Set the displayName to "Success"
|
|
708
794
|
if (typeof outputs[0] === 'string') {
|
|
709
795
|
outputs[0] = {
|
|
710
796
|
type: outputs[0],
|
|
@@ -716,17 +802,24 @@ function getNodeOutputs(workflow, node, nodeTypeData) {
|
|
|
716
802
|
...outputs,
|
|
717
803
|
{
|
|
718
804
|
category: 'error',
|
|
719
|
-
type:
|
|
805
|
+
type: NodeConnectionTypes.Main,
|
|
720
806
|
displayName: 'Error',
|
|
721
807
|
},
|
|
722
808
|
];
|
|
723
809
|
}
|
|
724
810
|
return outputs;
|
|
725
811
|
}
|
|
726
|
-
|
|
812
|
+
/**
|
|
813
|
+
* Returns all the parameter-issues of the node
|
|
814
|
+
*
|
|
815
|
+
* @param {INodeProperties[]} nodePropertiesArray The properties of the node
|
|
816
|
+
* @param {INode} node The data of the node
|
|
817
|
+
*/
|
|
818
|
+
export function getNodeParametersIssues(nodePropertiesArray, node, nodeTypeDescription, pinDataNodeNames) {
|
|
727
819
|
const foundIssues = {};
|
|
728
820
|
let propertyIssues;
|
|
729
821
|
if (node.disabled === true || pinDataNodeNames?.includes(node.name)) {
|
|
822
|
+
// Ignore issues on disabled and pindata nodes
|
|
730
823
|
return null;
|
|
731
824
|
}
|
|
732
825
|
for (const nodeProperty of nodePropertiesArray) {
|
|
@@ -738,12 +831,16 @@ function getNodeParametersIssues(nodePropertiesArray, node, nodeTypeDescription,
|
|
|
738
831
|
}
|
|
739
832
|
return foundIssues;
|
|
740
833
|
}
|
|
834
|
+
/*
|
|
835
|
+
* Validates resource locator node parameters based on validation ruled defined in each parameter mode
|
|
836
|
+
*/
|
|
741
837
|
const validateResourceLocatorParameter = (value, parameterMode) => {
|
|
742
838
|
const valueToValidate = value?.value?.toString() || '';
|
|
743
839
|
if (valueToValidate.startsWith('=')) {
|
|
744
840
|
return [];
|
|
745
841
|
}
|
|
746
842
|
const validationErrors = [];
|
|
843
|
+
// Each mode can have multiple validations specified
|
|
747
844
|
if (parameterMode.validation) {
|
|
748
845
|
for (const validation of parameterMode.validation) {
|
|
749
846
|
if (validation && validation.type === 'regex') {
|
|
@@ -757,7 +854,11 @@ const validateResourceLocatorParameter = (value, parameterMode) => {
|
|
|
757
854
|
}
|
|
758
855
|
return validationErrors;
|
|
759
856
|
};
|
|
857
|
+
/*
|
|
858
|
+
* Validates resource mapper values based on service schema
|
|
859
|
+
*/
|
|
760
860
|
const validateResourceMapperParameter = (nodeProperties, value, skipRequiredCheck = false) => {
|
|
861
|
+
// No issues to raise in automatic mapping mode, no user input to validate
|
|
761
862
|
if (value.mappingMode === 'autoMapInputData') {
|
|
762
863
|
return {};
|
|
763
864
|
}
|
|
@@ -775,7 +876,7 @@ const validateResourceMapperParameter = (nodeProperties, value, skipRequiredChec
|
|
|
775
876
|
}
|
|
776
877
|
}
|
|
777
878
|
if (!fieldValue?.toString().startsWith('=') && field.type) {
|
|
778
|
-
const validationResult =
|
|
879
|
+
const validationResult = validateFieldType(field.id, fieldValue, field.type, {
|
|
779
880
|
valueOptions: field.options,
|
|
780
881
|
});
|
|
781
882
|
if (!validationResult.valid && validationResult.errorMessage) {
|
|
@@ -792,7 +893,7 @@ const validateParameter = (nodeProperties, value, type) => {
|
|
|
792
893
|
const nodeName = nodeProperties.name;
|
|
793
894
|
const options = type === 'options' ? nodeProperties.options : undefined;
|
|
794
895
|
if (!value?.toString().startsWith('=')) {
|
|
795
|
-
const validationResult =
|
|
896
|
+
const validationResult = validateFieldType(nodeName, value, type, {
|
|
796
897
|
valueOptions: options,
|
|
797
898
|
});
|
|
798
899
|
if (!validationResult.valid && validationResult.errorMessage) {
|
|
@@ -801,13 +902,22 @@ const validateParameter = (nodeProperties, value, type) => {
|
|
|
801
902
|
}
|
|
802
903
|
return undefined;
|
|
803
904
|
};
|
|
905
|
+
/**
|
|
906
|
+
* Adds an issue if the parameter is not defined
|
|
907
|
+
*
|
|
908
|
+
* @param {INodeIssues} foundIssues The already found issues
|
|
909
|
+
* @param {INodeProperties} nodeProperties The properties of the node
|
|
910
|
+
* @param {NodeParameterValue} value The value of the parameter
|
|
911
|
+
*/
|
|
804
912
|
function addToIssuesIfMissing(foundIssues, nodeProperties, value) {
|
|
913
|
+
// TODO: Check what it really has when undefined
|
|
805
914
|
if ((nodeProperties.type === 'string' && (value === '' || value === undefined)) ||
|
|
806
915
|
(nodeProperties.type === 'multiOptions' && Array.isArray(value) && value.length === 0) ||
|
|
807
916
|
(nodeProperties.type === 'dateTime' && (value === '' || value === undefined)) ||
|
|
808
917
|
(nodeProperties.type === 'options' && (value === '' || value === undefined)) ||
|
|
809
918
|
((nodeProperties.type === 'resourceLocator' || nodeProperties.type === 'workflowSelector') &&
|
|
810
|
-
!
|
|
919
|
+
!isValidResourceLocatorParameterValue(value))) {
|
|
920
|
+
// Parameter is required but empty
|
|
811
921
|
if (foundIssues.parameters === undefined) {
|
|
812
922
|
foundIssues.parameters = {};
|
|
813
923
|
}
|
|
@@ -817,20 +927,38 @@ function addToIssuesIfMissing(foundIssues, nodeProperties, value) {
|
|
|
817
927
|
foundIssues.parameters[nodeProperties.name].push(`Parameter "${nodeProperties.displayName}" is required.`);
|
|
818
928
|
}
|
|
819
929
|
}
|
|
820
|
-
|
|
821
|
-
|
|
930
|
+
/**
|
|
931
|
+
* Returns the parameter value
|
|
932
|
+
*
|
|
933
|
+
* @param {INodeParameters} nodeValues The values of the node
|
|
934
|
+
* @param {string} parameterName The name of the parameter to return the value of
|
|
935
|
+
* @param {string} path The path to the properties
|
|
936
|
+
*/
|
|
937
|
+
export function getParameterValueByPath(nodeValues, parameterName, path) {
|
|
938
|
+
return get(nodeValues, path ? `${path}.${parameterName}` : parameterName);
|
|
822
939
|
}
|
|
823
940
|
function isINodeParameterResourceLocator(value) {
|
|
824
941
|
return typeof value === 'object' && value !== null && 'value' in value && 'mode' in value;
|
|
825
942
|
}
|
|
826
|
-
|
|
943
|
+
/**
|
|
944
|
+
* Returns all the issues with the given node-values
|
|
945
|
+
*
|
|
946
|
+
* @param {INodeProperties} nodeProperties The properties of the node
|
|
947
|
+
* @param {INodeParameters} nodeValues The values of the node
|
|
948
|
+
* @param {string} path The path to the properties
|
|
949
|
+
*/
|
|
950
|
+
// eslint-disable-next-line complexity
|
|
951
|
+
export function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDescription) {
|
|
827
952
|
const foundIssues = {};
|
|
828
953
|
const isDisplayed = displayParameterPath(nodeValues, nodeProperties, path, node, nodeTypeDescription);
|
|
829
954
|
if (nodeProperties.required === true) {
|
|
830
955
|
if (isDisplayed) {
|
|
831
956
|
const value = getParameterValueByPath(nodeValues, nodeProperties.name, path);
|
|
832
|
-
if (
|
|
957
|
+
if (
|
|
958
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
959
|
+
nodeProperties.typeOptions !== undefined &&
|
|
833
960
|
nodeProperties.typeOptions.multipleValues !== undefined) {
|
|
961
|
+
// Multiple can be set so will be an array
|
|
834
962
|
if (Array.isArray(value)) {
|
|
835
963
|
for (const singleValue of value) {
|
|
836
964
|
addToIssuesIfMissing(foundIssues, nodeProperties, singleValue);
|
|
@@ -838,6 +966,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
838
966
|
}
|
|
839
967
|
}
|
|
840
968
|
else {
|
|
969
|
+
// Only one can be set so will be a single value
|
|
841
970
|
addToIssuesIfMissing(foundIssues, nodeProperties, value);
|
|
842
971
|
}
|
|
843
972
|
}
|
|
@@ -864,7 +993,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
864
993
|
else if (nodeProperties.type === 'resourceMapper' && isDisplayed) {
|
|
865
994
|
const skipRequiredCheck = nodeProperties.typeOptions?.resourceMapper?.mode !== 'add';
|
|
866
995
|
const value = getParameterValueByPath(nodeValues, nodeProperties.name, path);
|
|
867
|
-
if (
|
|
996
|
+
if (isResourceMapperValue(value)) {
|
|
868
997
|
const issues = validateResourceMapperParameter(nodeProperties, value, skipRequiredCheck);
|
|
869
998
|
if (Object.keys(issues).length > 0) {
|
|
870
999
|
if (foundIssues.parameters === undefined) {
|
|
@@ -879,8 +1008,8 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
879
1008
|
}
|
|
880
1009
|
else if (nodeProperties.type === 'filter' && isDisplayed) {
|
|
881
1010
|
const value = getParameterValueByPath(nodeValues, nodeProperties.name, path);
|
|
882
|
-
if (
|
|
883
|
-
const issues =
|
|
1011
|
+
if (isFilterValue(value)) {
|
|
1012
|
+
const issues = validateFilterParameter(nodeProperties, value);
|
|
884
1013
|
if (Object.keys(issues).length > 0) {
|
|
885
1014
|
foundIssues.parameters = { ...foundIssues.parameters, ...issues };
|
|
886
1015
|
}
|
|
@@ -899,11 +1028,20 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
899
1028
|
foundIssues.parameters[nodeProperties.name].push(error);
|
|
900
1029
|
}
|
|
901
1030
|
}
|
|
1031
|
+
// Check if there are any child parameters
|
|
902
1032
|
if (nodeProperties.options === undefined) {
|
|
1033
|
+
// There are none so nothing else to check
|
|
903
1034
|
return foundIssues;
|
|
904
1035
|
}
|
|
1036
|
+
// Check the child parameters
|
|
1037
|
+
// Important:
|
|
1038
|
+
// Checks the child properties only if the property is defined on current level.
|
|
1039
|
+
// That means that the required flag works only for the current level only. If
|
|
1040
|
+
// it is set on a lower level it means that the property is only required in case
|
|
1041
|
+
// the parent property got set.
|
|
905
1042
|
let basePath = path ? `${path}.` : '';
|
|
906
1043
|
const checkChildNodeProperties = [];
|
|
1044
|
+
// Collect all the properties to check
|
|
907
1045
|
if (nodeProperties.type === 'collection') {
|
|
908
1046
|
for (const option of nodeProperties.options) {
|
|
909
1047
|
checkChildNodeProperties.push({
|
|
@@ -916,7 +1054,9 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
916
1054
|
basePath = basePath ? `${basePath}.` : `${nodeProperties.name}.`;
|
|
917
1055
|
let propertyOptions;
|
|
918
1056
|
for (propertyOptions of nodeProperties.options) {
|
|
1057
|
+
// Check if the option got set and if not skip it
|
|
919
1058
|
const value = getParameterValueByPath(nodeValues, propertyOptions.name, basePath.slice(0, -1));
|
|
1059
|
+
// Validate allowed field counts
|
|
920
1060
|
const valueArray = Array.isArray(value) ? value : [];
|
|
921
1061
|
const { minRequiredFields, maxAllowedFields } = nodeProperties.typeOptions ?? {};
|
|
922
1062
|
let error = '';
|
|
@@ -934,8 +1074,11 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
934
1074
|
if (value === undefined) {
|
|
935
1075
|
continue;
|
|
936
1076
|
}
|
|
937
|
-
if (
|
|
1077
|
+
if (
|
|
1078
|
+
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
1079
|
+
nodeProperties.typeOptions !== undefined &&
|
|
938
1080
|
nodeProperties.typeOptions.multipleValues !== undefined) {
|
|
1081
|
+
// Multiple can be set so will be an array of objects
|
|
939
1082
|
if (Array.isArray(value)) {
|
|
940
1083
|
for (let i = 0; i < value.length; i++) {
|
|
941
1084
|
for (const option of propertyOptions.values) {
|
|
@@ -948,6 +1091,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
948
1091
|
}
|
|
949
1092
|
}
|
|
950
1093
|
else {
|
|
1094
|
+
// Only one can be set so will be an object
|
|
951
1095
|
for (const option of propertyOptions.values) {
|
|
952
1096
|
checkChildNodeProperties.push({
|
|
953
1097
|
basePath: basePath + propertyOptions.name,
|
|
@@ -958,6 +1102,7 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
958
1102
|
}
|
|
959
1103
|
}
|
|
960
1104
|
else {
|
|
1105
|
+
// For all other types there is nothing to check so return
|
|
961
1106
|
return foundIssues;
|
|
962
1107
|
}
|
|
963
1108
|
let propertyIssues;
|
|
@@ -967,8 +1112,15 @@ function getParameterIssues(nodeProperties, nodeValues, path, node, nodeTypeDesc
|
|
|
967
1112
|
}
|
|
968
1113
|
return foundIssues;
|
|
969
1114
|
}
|
|
970
|
-
|
|
1115
|
+
/**
|
|
1116
|
+
* Merges multiple NodeIssues together
|
|
1117
|
+
*
|
|
1118
|
+
* @param {INodeIssues} destination The issues to merge into
|
|
1119
|
+
* @param {(INodeIssues | null)} source The issues to merge
|
|
1120
|
+
*/
|
|
1121
|
+
export function mergeIssues(destination, source) {
|
|
971
1122
|
if (source === null) {
|
|
1123
|
+
// Nothing to merge
|
|
972
1124
|
return;
|
|
973
1125
|
}
|
|
974
1126
|
if (source.execution === true) {
|
|
@@ -995,44 +1147,54 @@ function mergeIssues(destination, source) {
|
|
|
995
1147
|
destination.typeUnknown = true;
|
|
996
1148
|
}
|
|
997
1149
|
}
|
|
998
|
-
|
|
1150
|
+
/**
|
|
1151
|
+
* Merges the given node properties
|
|
1152
|
+
*/
|
|
1153
|
+
export function mergeNodeProperties(mainProperties, addProperties) {
|
|
999
1154
|
let existingIndex;
|
|
1000
1155
|
for (const property of addProperties) {
|
|
1001
1156
|
if (property.doNotInherit)
|
|
1002
1157
|
continue;
|
|
1003
1158
|
existingIndex = mainProperties.findIndex((element) => element.name === property.name);
|
|
1004
1159
|
if (existingIndex === -1) {
|
|
1160
|
+
// Property does not exist yet, so add
|
|
1005
1161
|
mainProperties.push(property);
|
|
1006
1162
|
}
|
|
1007
1163
|
else {
|
|
1164
|
+
// Property exists already, so overwrite
|
|
1008
1165
|
mainProperties[existingIndex] = property;
|
|
1009
1166
|
}
|
|
1010
1167
|
}
|
|
1011
1168
|
}
|
|
1012
|
-
function getVersionedNodeType(object, version) {
|
|
1169
|
+
export function getVersionedNodeType(object, version) {
|
|
1013
1170
|
if ('nodeVersions' in object) {
|
|
1014
1171
|
return object.getNodeType(version);
|
|
1015
1172
|
}
|
|
1016
1173
|
return object;
|
|
1017
1174
|
}
|
|
1018
|
-
function isTriggerNode(nodeTypeData) {
|
|
1175
|
+
export function isTriggerNode(nodeTypeData) {
|
|
1019
1176
|
return nodeTypeData.group.includes('trigger');
|
|
1020
1177
|
}
|
|
1021
|
-
function isExecutable(workflow, node, nodeTypeData) {
|
|
1178
|
+
export function isExecutable(workflow, node, nodeTypeData) {
|
|
1022
1179
|
const outputs = getNodeOutputs(workflow, node, nodeTypeData);
|
|
1023
1180
|
const outputNames = getConnectionTypes(outputs);
|
|
1024
|
-
return (outputNames.includes(
|
|
1025
|
-
outputNames.includes(
|
|
1181
|
+
return (outputNames.includes(NodeConnectionTypes.Main) ||
|
|
1182
|
+
outputNames.includes(NodeConnectionTypes.AiTool) ||
|
|
1026
1183
|
isTriggerNode(nodeTypeData));
|
|
1027
1184
|
}
|
|
1028
|
-
function isNodeWithWorkflowSelector(node) {
|
|
1029
|
-
return [
|
|
1185
|
+
export function isNodeWithWorkflowSelector(node) {
|
|
1186
|
+
return [EXECUTE_WORKFLOW_NODE_TYPE, WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE].includes(node.type);
|
|
1030
1187
|
}
|
|
1188
|
+
/**
|
|
1189
|
+
* @returns An object containing either the resolved operation's action if available,
|
|
1190
|
+
* else the resource and operation if both exist.
|
|
1191
|
+
* If neither can be resolved, returns an empty object.
|
|
1192
|
+
*/
|
|
1031
1193
|
function resolveResourceAndOperation(nodeParameters, nodeTypeDescription) {
|
|
1032
1194
|
const resource = nodeParameters.resource;
|
|
1033
1195
|
const operation = nodeParameters.operation;
|
|
1034
1196
|
const nodeTypeOperation = nodeTypeDescription.properties.find((p) => p.name === 'operation' && p.displayOptions?.show?.resource?.includes(resource));
|
|
1035
|
-
if (nodeTypeOperation?.options &&
|
|
1197
|
+
if (nodeTypeOperation?.options && isINodePropertyOptionsList(nodeTypeOperation.options)) {
|
|
1036
1198
|
const foundOperation = nodeTypeOperation.options.find((option) => option.value === operation);
|
|
1037
1199
|
if (foundOperation?.action) {
|
|
1038
1200
|
return { action: foundOperation.action };
|
|
@@ -1045,7 +1207,18 @@ function resolveResourceAndOperation(nodeParameters, nodeTypeDescription) {
|
|
|
1045
1207
|
return {};
|
|
1046
1208
|
}
|
|
1047
1209
|
}
|
|
1048
|
-
|
|
1210
|
+
/**
|
|
1211
|
+
* Generates a human-readable description for a node based on its parameters and type definition.
|
|
1212
|
+
*
|
|
1213
|
+
* This function creates a descriptive string that represents what the node does,
|
|
1214
|
+
* based on its resource, operation, and node type information. The description is
|
|
1215
|
+
* formatted in one of the following ways:
|
|
1216
|
+
*
|
|
1217
|
+
* 1. "{action} in {displayName}" if the operation has a defined action
|
|
1218
|
+
* 2. "{operation} {resource} in {displayName}" if resource and operation exist
|
|
1219
|
+
* 3. The node type's description field as a fallback
|
|
1220
|
+
*/
|
|
1221
|
+
export function makeDescription(nodeParameters, nodeTypeDescription) {
|
|
1049
1222
|
const { action, operation, resource } = resolveResourceAndOperation(nodeParameters, nodeTypeDescription);
|
|
1050
1223
|
if (action) {
|
|
1051
1224
|
return `${action} in ${nodeTypeDescription.defaults.name}`;
|
|
@@ -1055,22 +1228,33 @@ function makeDescription(nodeParameters, nodeTypeDescription) {
|
|
|
1055
1228
|
}
|
|
1056
1229
|
return nodeTypeDescription.description;
|
|
1057
1230
|
}
|
|
1058
|
-
function isTool(nodeTypeDescription, parameters) {
|
|
1231
|
+
export function isTool(nodeTypeDescription, parameters) {
|
|
1232
|
+
// Check if node is a vector store in retrieve-as-tool mode
|
|
1059
1233
|
if (nodeTypeDescription.name.includes('vectorStore')) {
|
|
1060
1234
|
const mode = parameters.mode;
|
|
1061
1235
|
return mode === 'retrieve-as-tool';
|
|
1062
1236
|
}
|
|
1237
|
+
// Check for other tool nodes
|
|
1063
1238
|
for (const output of nodeTypeDescription.outputs) {
|
|
1064
1239
|
if (typeof output === 'string') {
|
|
1065
|
-
return output ===
|
|
1240
|
+
return output === NodeConnectionTypes.AiTool;
|
|
1066
1241
|
}
|
|
1067
|
-
else if (output?.type && output.type ===
|
|
1242
|
+
else if (output?.type && output.type === NodeConnectionTypes.AiTool) {
|
|
1068
1243
|
return true;
|
|
1069
1244
|
}
|
|
1070
1245
|
}
|
|
1071
1246
|
return false;
|
|
1072
1247
|
}
|
|
1073
|
-
|
|
1248
|
+
/**
|
|
1249
|
+
* Generates a resource and operation aware node name.
|
|
1250
|
+
*
|
|
1251
|
+
* Appends `in {nodeTypeDisplayName}` if nodeType is a tool
|
|
1252
|
+
*
|
|
1253
|
+
* 1. "{action}" if the operation has a defined action
|
|
1254
|
+
* 2. "{operation} {resource}" if resource and operation exist
|
|
1255
|
+
* 3. The node type's defaults.name field or displayName as a fallback
|
|
1256
|
+
*/
|
|
1257
|
+
export function makeNodeName(nodeParameters, nodeTypeDescription) {
|
|
1074
1258
|
const { action, operation, resource } = resolveResourceAndOperation(nodeParameters, nodeTypeDescription);
|
|
1075
1259
|
const postfix = isTool(nodeTypeDescription, nodeParameters)
|
|
1076
1260
|
? ` in ${nodeTypeDescription.defaults.name}`
|
|
@@ -1084,7 +1268,10 @@ function makeNodeName(nodeParameters, nodeTypeDescription) {
|
|
|
1084
1268
|
}
|
|
1085
1269
|
return nodeTypeDescription.defaults.name ?? nodeTypeDescription.displayName;
|
|
1086
1270
|
}
|
|
1087
|
-
|
|
1271
|
+
/**
|
|
1272
|
+
* Returns true if the node name is of format `<defaultNodeName>\d*` , which includes auto-renamed nodes
|
|
1273
|
+
*/
|
|
1274
|
+
export function isDefaultNodeName(name, nodeType, parameters) {
|
|
1088
1275
|
const legacyDefaultName = nodeType.defaults.name ?? nodeType.displayName;
|
|
1089
1276
|
const currentDefaultName = makeNodeName(parameters, nodeType);
|
|
1090
1277
|
for (const defaultName of [legacyDefaultName, currentDefaultName]) {
|
|
@@ -1093,7 +1280,11 @@ function isDefaultNodeName(name, nodeType, parameters) {
|
|
|
1093
1280
|
}
|
|
1094
1281
|
return false;
|
|
1095
1282
|
}
|
|
1096
|
-
|
|
1283
|
+
/**
|
|
1284
|
+
* Determines whether a tool description should be updated and returns the new description if needed.
|
|
1285
|
+
* Returns undefined if no update is needed.
|
|
1286
|
+
*/
|
|
1287
|
+
export const getUpdatedToolDescription = (currentNodeType, newParameters, currentParameters) => {
|
|
1097
1288
|
if (!currentNodeType)
|
|
1098
1289
|
return;
|
|
1099
1290
|
if (newParameters?.descriptionType === 'manual' && currentParameters) {
|
|
@@ -1107,8 +1298,10 @@ const getUpdatedToolDescription = (currentNodeType, newParameters, currentParame
|
|
|
1107
1298
|
}
|
|
1108
1299
|
return;
|
|
1109
1300
|
};
|
|
1110
|
-
|
|
1111
|
-
|
|
1301
|
+
/**
|
|
1302
|
+
* Generates a tool description for a given node based on its parameters and type.
|
|
1303
|
+
*/
|
|
1304
|
+
export function getToolDescriptionForNode(node, nodeType) {
|
|
1112
1305
|
let toolDescription;
|
|
1113
1306
|
if (node.parameters.descriptionType === 'auto' ||
|
|
1114
1307
|
!node?.parameters.toolDescription?.toString().trim()) {
|
|
@@ -1122,8 +1315,11 @@ function getToolDescriptionForNode(node, nodeType) {
|
|
|
1122
1315
|
}
|
|
1123
1316
|
return toolDescription;
|
|
1124
1317
|
}
|
|
1125
|
-
|
|
1126
|
-
|
|
1318
|
+
/**
|
|
1319
|
+
* Attempts to retrieve the ID of a subworkflow from a execute workflow node.
|
|
1320
|
+
*/
|
|
1321
|
+
export function getSubworkflowId(node) {
|
|
1322
|
+
if (isNodeWithWorkflowSelector(node) && isResourceLocatorValue(node.parameters.workflowId)) {
|
|
1127
1323
|
return node.parameters.workflowId.value;
|
|
1128
1324
|
}
|
|
1129
1325
|
return;
|