@atom8n/n8n-core 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/bin/common.js +19 -0
- package/bin/copy-static-files +24 -0
- package/bin/generate-metadata +75 -0
- package/bin/generate-translations +99 -0
- package/dist/binary-data/binary-data.config.d.ts +15 -0
- package/dist/binary-data/binary-data.config.js +62 -0
- package/dist/binary-data/binary-data.config.js.map +1 -0
- package/dist/binary-data/binary-data.service.d.ts +32 -0
- package/dist/binary-data/binary-data.service.js +243 -0
- package/dist/binary-data/binary-data.service.js.map +1 -0
- package/dist/binary-data/file-system.manager.d.ts +31 -0
- package/dist/binary-data/file-system.manager.js +154 -0
- package/dist/binary-data/file-system.manager.js.map +1 -0
- package/dist/binary-data/index.d.ts +5 -0
- package/dist/binary-data/index.js +27 -0
- package/dist/binary-data/index.js.map +1 -0
- package/dist/binary-data/object-store/object-store.config.d.ts +19 -0
- package/dist/binary-data/object-store/object-store.config.js +83 -0
- package/dist/binary-data/object-store/object-store.config.js.map +1 -0
- package/dist/binary-data/object-store/object-store.service.ee.d.ts +46 -0
- package/dist/binary-data/object-store/object-store.service.ee.js +235 -0
- package/dist/binary-data/object-store/object-store.service.ee.js.map +1 -0
- package/dist/binary-data/object-store/types.d.ts +8 -0
- package/dist/binary-data/object-store/types.js +3 -0
- package/dist/binary-data/object-store/types.js.map +1 -0
- package/dist/binary-data/object-store.manager.d.ts +23 -0
- package/dist/binary-data/object-store.manager.js +86 -0
- package/dist/binary-data/object-store.manager.js.map +1 -0
- package/dist/binary-data/types.d.ts +46 -0
- package/dist/binary-data/types.js +3 -0
- package/dist/binary-data/types.js.map +1 -0
- package/dist/binary-data/utils.d.ts +15 -0
- package/dist/binary-data/utils.js +66 -0
- package/dist/binary-data/utils.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -0
- package/dist/constants.d.ts +19 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/credentials.d.ts +12 -0
- package/dist/credentials.js +99 -0
- package/dist/credentials.js.map +1 -0
- package/dist/data-deduplication-service.d.ts +16 -0
- package/dist/data-deduplication-service.js +95 -0
- package/dist/data-deduplication-service.js.map +1 -0
- package/dist/encryption/cipher.d.ts +8 -0
- package/dist/encryption/cipher.js +57 -0
- package/dist/encryption/cipher.js.map +1 -0
- package/dist/encryption/index.d.ts +1 -0
- package/dist/encryption/index.js +6 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/errors/abstract/binary-data.error.d.ts +3 -0
- package/dist/errors/abstract/binary-data.error.js +8 -0
- package/dist/errors/abstract/binary-data.error.js.map +1 -0
- package/dist/errors/abstract/filesystem.error.d.ts +4 -0
- package/dist/errors/abstract/filesystem.error.js +11 -0
- package/dist/errors/abstract/filesystem.error.js.map +1 -0
- package/dist/errors/binary-data-file-not-found.error.d.ts +4 -0
- package/dist/errors/binary-data-file-not-found.error.js +11 -0
- package/dist/errors/binary-data-file-not-found.error.js.map +1 -0
- package/dist/errors/disallowed-filepath.error.d.ts +4 -0
- package/dist/errors/disallowed-filepath.error.js +11 -0
- package/dist/errors/disallowed-filepath.error.js.map +1 -0
- package/dist/errors/error-reporter.d.ts +35 -0
- package/dist/errors/error-reporter.js +256 -0
- package/dist/errors/error-reporter.js.map +1 -0
- package/dist/errors/file-not-found.error.d.ts +4 -0
- package/dist/errors/file-not-found.error.js +11 -0
- package/dist/errors/file-not-found.error.js.map +1 -0
- package/dist/errors/file-too-large.error.d.ts +9 -0
- package/dist/errors/file-too-large.error.js +13 -0
- package/dist/errors/file-too-large.error.js.map +1 -0
- package/dist/errors/index.d.ts +11 -0
- package/dist/errors/index.js +26 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/invalid-execution-metadata.error.d.ts +5 -0
- package/dist/errors/invalid-execution-metadata.error.js +12 -0
- package/dist/errors/invalid-execution-metadata.error.js.map +1 -0
- package/dist/errors/invalid-manager.error.d.ts +4 -0
- package/dist/errors/invalid-manager.error.js +11 -0
- package/dist/errors/invalid-manager.error.js.map +1 -0
- package/dist/errors/invalid-source-type.error.d.ts +4 -0
- package/dist/errors/invalid-source-type.error.js +11 -0
- package/dist/errors/invalid-source-type.error.js.map +1 -0
- package/dist/errors/missing-source-id.error.d.ts +4 -0
- package/dist/errors/missing-source-id.error.js +11 -0
- package/dist/errors/missing-source-id.error.js.map +1 -0
- package/dist/errors/unrecognized-credential-type.error.d.ts +4 -0
- package/dist/errors/unrecognized-credential-type.error.js +11 -0
- package/dist/errors/unrecognized-credential-type.error.js.map +1 -0
- package/dist/errors/unrecognized-node-type.error.d.ts +4 -0
- package/dist/errors/unrecognized-node-type.error.js +11 -0
- package/dist/errors/unrecognized-node-type.error.js.map +1 -0
- package/dist/errors/workflow-has-issues.error.d.ts +4 -0
- package/dist/errors/workflow-has-issues.error.js +11 -0
- package/dist/errors/workflow-has-issues.error.js.map +1 -0
- package/dist/execution-engine/active-workflows.d.ts +23 -0
- package/dist/execution-engine/active-workflows.js +153 -0
- package/dist/execution-engine/active-workflows.js.map +1 -0
- package/dist/execution-engine/execution-context-hook-registry.service.d.ts +12 -0
- package/dist/execution-engine/execution-context-hook-registry.service.js +69 -0
- package/dist/execution-engine/execution-context-hook-registry.service.js.map +1 -0
- package/dist/execution-engine/execution-context.d.ts +2 -0
- package/dist/execution-engine/execution-context.js +56 -0
- package/dist/execution-engine/execution-context.js.map +1 -0
- package/dist/execution-engine/execution-context.service.d.ts +17 -0
- package/dist/execution-engine/execution-context.service.js +108 -0
- package/dist/execution-engine/execution-context.service.js.map +1 -0
- package/dist/execution-engine/execution-lifecycle-hooks.d.ts +20 -0
- package/dist/execution-engine/execution-lifecycle-hooks.js +31 -0
- package/dist/execution-engine/execution-lifecycle-hooks.js.map +1 -0
- package/dist/execution-engine/external-secrets-proxy.d.ts +18 -0
- package/dist/execution-engine/external-secrets-proxy.js +38 -0
- package/dist/execution-engine/external-secrets-proxy.js.map +1 -0
- package/dist/execution-engine/index.d.ts +26 -0
- package/dist/execution-engine/index.js +31 -0
- package/dist/execution-engine/index.js.map +1 -0
- package/dist/execution-engine/interfaces.d.ts +7 -0
- package/dist/execution-engine/interfaces.js +3 -0
- package/dist/execution-engine/interfaces.js.map +1 -0
- package/dist/execution-engine/node-execution-context/base-execute-context.d.ts +47 -0
- package/dist/execution-engine/node-execution-context/base-execute-context.js +150 -0
- package/dist/execution-engine/node-execution-context/base-execute-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/credentials-test-context.d.ts +7 -0
- package/dist/execution-engine/node-execution-context/credentials-test-context.js +37 -0
- package/dist/execution-engine/node-execution-context/credentials-test-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/execute-context.d.ts +24 -0
- package/dist/execution-engine/node-execution-context/execute-context.js +108 -0
- package/dist/execution-engine/node-execution-context/execute-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/execute-single-context.d.ts +15 -0
- package/dist/execution-engine/node-execution-context/execute-single-context.js +53 -0
- package/dist/execution-engine/node-execution-context/execute-single-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/hook-context.d.ts +13 -0
- package/dist/execution-engine/node-execution-context/hook-context.js +35 -0
- package/dist/execution-engine/node-execution-context/hook-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/index.d.ts +17 -0
- package/dist/execution-engine/node-execution-context/index.js +51 -0
- package/dist/execution-engine/node-execution-context/index.js.map +1 -0
- package/dist/execution-engine/node-execution-context/load-options-context.d.ts +10 -0
- package/dist/execution-engine/node-execution-context/load-options-context.js +43 -0
- package/dist/execution-engine/node-execution-context/load-options-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/local-load-options-context.d.ts +10 -0
- package/dist/execution-engine/node-execution-context/local-load-options-context.js +51 -0
- package/dist/execution-engine/node-execution-context/local-load-options-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/node-execution-context.d.ts +68 -0
- package/dist/execution-engine/node-execution-context/node-execution-context.js +324 -0
- package/dist/execution-engine/node-execution-context/node-execution-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/poll-context.d.ts +11 -0
- package/dist/execution-engine/node-execution-context/poll-context.js +38 -0
- package/dist/execution-engine/node-execution-context/poll-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/supply-data-context.d.ts +26 -0
- package/dist/execution-engine/node-execution-context/supply-data-context.js +181 -0
- package/dist/execution-engine/node-execution-context/supply-data-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/trigger-context.d.ts +11 -0
- package/dist/execution-engine/node-execution-context/trigger-context.js +40 -0
- package/dist/execution-engine/node-execution-context/trigger-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/binary-helper-functions.d.ts +10 -0
- package/dist/execution-engine/node-execution-context/utils/binary-helper-functions.js +213 -0
- package/dist/execution-engine/node-execution-context/utils/binary-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/cleanup-parameter-data.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/cleanup-parameter-data.js +27 -0
- package/dist/execution-engine/node-execution-context/utils/cleanup-parameter-data.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/construct-execution-metadata.d.ts +4 -0
- package/dist/execution-engine/node-execution-context/utils/construct-execution-metadata.js +11 -0
- package/dist/execution-engine/node-execution-context/utils/construct-execution-metadata.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/copy-input-items.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/copy-input-items.js +19 -0
- package/dist/execution-engine/node-execution-context/utils/copy-input-items.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/create-node-as-tool.d.ts +21 -0
- package/dist/execution-engine/node-execution-context/utils/create-node-as-tool.js +65 -0
- package/dist/execution-engine/node-execution-context/utils/create-node-as-tool.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/data-table-helper-functions.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/data-table-helper-functions.js +13 -0
- package/dist/execution-engine/node-execution-context/utils/data-table-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/deduplication-helper-functions.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/deduplication-helper-functions.js +38 -0
- package/dist/execution-engine/node-execution-context/utils/deduplication-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/ensure-type.d.ts +6 -0
- package/dist/execution-engine/node-execution-context/utils/ensure-type.js +75 -0
- package/dist/execution-engine/node-execution-context/utils/ensure-type.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/execution-metadata.d.ts +6 -0
- package/dist/execution-engine/node-execution-context/utils/execution-metadata.js +57 -0
- package/dist/execution-engine/node-execution-context/utils/execution-metadata.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/extract-value.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/extract-value.js +135 -0
- package/dist/execution-engine/node-execution-context/utils/extract-value.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js +144 -0
- package/dist/execution-engine/node-execution-context/utils/file-system-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/get-additional-keys.d.ts +4 -0
- package/dist/execution-engine/node-execution-context/utils/get-additional-keys.js +57 -0
- package/dist/execution-engine/node-execution-context/utils/get-additional-keys.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.d.ts +5 -0
- package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.js +211 -0
- package/dist/execution-engine/node-execution-context/utils/get-input-connection-data.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/get-secrets-proxy.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/get-secrets-proxy.js +68 -0
- package/dist/execution-engine/node-execution-context/utils/get-secrets-proxy.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/normalize-items.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/normalize-items.js +36 -0
- package/dist/execution-engine/node-execution-context/utils/normalize-items.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/parse-incoming-message.d.ts +16 -0
- package/dist/execution-engine/node-execution-context/utils/parse-incoming-message.js +57 -0
- package/dist/execution-engine/node-execution-context/utils/parse-incoming-message.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/request-helper-functions.d.ts +18 -0
- package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js +1213 -0
- package/dist/execution-engine/node-execution-context/utils/request-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/return-json-array.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/return-json-array.js +19 -0
- package/dist/execution-engine/node-execution-context/utils/return-json-array.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.js +22 -0
- package/dist/execution-engine/node-execution-context/utils/scheduling-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/ssh-tunnel-helper-functions.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/ssh-tunnel-helper-functions.js +14 -0
- package/dist/execution-engine/node-execution-context/utils/ssh-tunnel-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/validate-value-against-schema.d.ts +2 -0
- package/dist/execution-engine/node-execution-context/utils/validate-value-against-schema.js +132 -0
- package/dist/execution-engine/node-execution-context/utils/validate-value-against-schema.js.map +1 -0
- package/dist/execution-engine/node-execution-context/utils/webhook-helper-functions.d.ts +3 -0
- package/dist/execution-engine/node-execution-context/utils/webhook-helper-functions.js +31 -0
- package/dist/execution-engine/node-execution-context/utils/webhook-helper-functions.js.map +1 -0
- package/dist/execution-engine/node-execution-context/webhook-context.d.ts +21 -0
- package/dist/execution-engine/node-execution-context/webhook-context.js +87 -0
- package/dist/execution-engine/node-execution-context/webhook-context.js.map +1 -0
- package/dist/execution-engine/node-execution-context/workflow-node-context.d.ts +6 -0
- package/dist/execution-engine/node-execution-context/workflow-node-context.js +14 -0
- package/dist/execution-engine/node-execution-context/workflow-node-context.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/clean-run-data.d.ts +3 -0
- package/dist/execution-engine/partial-execution-utils/clean-run-data.js +28 -0
- package/dist/execution-engine/partial-execution-utils/clean-run-data.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/directed-graph.d.ts +65 -0
- package/dist/execution-engine/partial-execution-utils/directed-graph.js +370 -0
- package/dist/execution-engine/partial-execution-utils/directed-graph.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/filter-disabled-nodes.d.ts +2 -0
- package/dist/execution-engine/partial-execution-utils/filter-disabled-nodes.js +17 -0
- package/dist/execution-engine/partial-execution-utils/filter-disabled-nodes.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/find-start-nodes.d.ts +10 -0
- package/dist/execution-engine/partial-execution-utils/find-start-nodes.js +74 -0
- package/dist/execution-engine/partial-execution-utils/find-start-nodes.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/find-subgraph.d.ts +7 -0
- package/dist/execution-engine/partial-execution-utils/find-subgraph.js +59 -0
- package/dist/execution-engine/partial-execution-utils/find-subgraph.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/find-trigger-for-partial-execution.d.ts +4 -0
- package/dist/execution-engine/partial-execution-utils/find-trigger-for-partial-execution.js +102 -0
- package/dist/execution-engine/partial-execution-utils/find-trigger-for-partial-execution.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/get-incoming-data.d.ts +6 -0
- package/dist/execution-engine/partial-execution-utils/get-incoming-data.js +21 -0
- package/dist/execution-engine/partial-execution-utils/get-incoming-data.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/get-source-data-groups.d.ts +8 -0
- package/dist/execution-engine/partial-execution-utils/get-source-data-groups.js +65 -0
- package/dist/execution-engine/partial-execution-utils/get-source-data-groups.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/handle-cycles.d.ts +3 -0
- package/dist/execution-engine/partial-execution-utils/handle-cycles.js +60 -0
- package/dist/execution-engine/partial-execution-utils/handle-cycles.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/index.d.ts +10 -0
- package/dist/execution-engine/partial-execution-utils/index.js +25 -0
- package/dist/execution-engine/partial-execution-utils/index.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/recreate-node-execution-stack.d.ts +9 -0
- package/dist/execution-engine/partial-execution-utils/recreate-node-execution-stack.js +146 -0
- package/dist/execution-engine/partial-execution-utils/recreate-node-execution-stack.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/rewire-graph.d.ts +3 -0
- package/dist/execution-engine/partial-execution-utils/rewire-graph.js +72 -0
- package/dist/execution-engine/partial-execution-utils/rewire-graph.js.map +1 -0
- package/dist/execution-engine/partial-execution-utils/run-data-utils.d.ts +2 -0
- package/dist/execution-engine/partial-execution-utils/run-data-utils.js +15 -0
- package/dist/execution-engine/partial-execution-utils/run-data-utils.js.map +1 -0
- package/dist/execution-engine/requests-response.d.ts +23 -0
- package/dist/execution-engine/requests-response.js +128 -0
- package/dist/execution-engine/requests-response.js.map +1 -0
- package/dist/execution-engine/routing-node.d.ts +17 -0
- package/dist/execution-engine/routing-node.js +571 -0
- package/dist/execution-engine/routing-node.js.map +1 -0
- package/dist/execution-engine/scheduled-task-manager.d.ts +27 -0
- package/dist/execution-engine/scheduled-task-manager.js +140 -0
- package/dist/execution-engine/scheduled-task-manager.js.map +1 -0
- package/dist/execution-engine/ssh-clients-manager.d.ts +27 -0
- package/dist/execution-engine/ssh-clients-manager.js +170 -0
- package/dist/execution-engine/ssh-clients-manager.js.map +1 -0
- package/dist/execution-engine/triggers-and-pollers.d.ts +6 -0
- package/dist/execution-engine/triggers-and-pollers.js +66 -0
- package/dist/execution-engine/triggers-and-pollers.js.map +1 -0
- package/dist/execution-engine/workflow-execute.d.ts +46 -0
- package/dist/execution-engine/workflow-execute.js +1490 -0
- package/dist/execution-engine/workflow-execute.js.map +1 -0
- package/dist/html-sandbox.d.ts +3 -0
- package/dist/html-sandbox.js +19 -0
- package/dist/html-sandbox.js.map +1 -0
- package/dist/http-proxy.d.ts +6 -0
- package/dist/http-proxy.js +109 -0
- package/dist/http-proxy.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-settings/index.d.ts +1 -0
- package/dist/instance-settings/index.js +6 -0
- package/dist/instance-settings/index.js.map +1 -0
- package/dist/instance-settings/instance-settings.d.ts +49 -0
- package/dist/instance-settings/instance-settings.js +210 -0
- package/dist/instance-settings/instance-settings.js.map +1 -0
- package/dist/instance-settings/worker-missing-encryption-key.error.d.ts +4 -0
- package/dist/instance-settings/worker-missing-encryption-key.error.js +15 -0
- package/dist/instance-settings/worker-missing-encryption-key.error.js.map +1 -0
- package/dist/interfaces.d.ts +16 -0
- package/dist/interfaces.js +3 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/node-execute-functions.d.ts +3 -0
- package/dist/node-execute-functions.js +12 -0
- package/dist/node-execute-functions.js.map +1 -0
- package/dist/nodes-loader/constants.d.ts +5 -0
- package/dist/nodes-loader/constants.js +106 -0
- package/dist/nodes-loader/constants.js.map +1 -0
- package/dist/nodes-loader/custom-directory-loader.d.ts +6 -0
- package/dist/nodes-loader/custom-directory-loader.js +34 -0
- package/dist/nodes-loader/custom-directory-loader.js.map +1 -0
- package/dist/nodes-loader/directory-loader.d.ts +41 -0
- package/dist/nodes-loader/directory-loader.js +371 -0
- package/dist/nodes-loader/directory-loader.js.map +1 -0
- package/dist/nodes-loader/index.d.ts +5 -0
- package/dist/nodes-loader/index.js +12 -0
- package/dist/nodes-loader/index.js.map +1 -0
- package/dist/nodes-loader/lazy-package-directory-loader.d.ts +4 -0
- package/dist/nodes-loader/lazy-package-directory-loader.js +42 -0
- package/dist/nodes-loader/lazy-package-directory-loader.js.map +1 -0
- package/dist/nodes-loader/load-class-in-isolation.d.ts +1 -0
- package/dist/nodes-loader/load-class-in-isolation.js +20 -0
- package/dist/nodes-loader/load-class-in-isolation.js.map +1 -0
- package/dist/nodes-loader/package-directory-loader.d.ts +12 -0
- package/dist/nodes-loader/package-directory-loader.js +86 -0
- package/dist/nodes-loader/package-directory-loader.js.map +1 -0
- package/dist/nodes-loader/types.d.ts +14 -0
- package/dist/nodes-loader/types.js +3 -0
- package/dist/nodes-loader/types.js.map +1 -0
- package/dist/utils/assertions.d.ts +2 -0
- package/dist/utils/assertions.js +16 -0
- package/dist/utils/assertions.js.map +1 -0
- package/dist/utils/deep-merge.d.ts +1 -0
- package/dist/utils/deep-merge.js +33 -0
- package/dist/utils/deep-merge.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/is-json-compatible.d.ts +7 -0
- package/dist/utils/is-json-compatible.js +81 -0
- package/dist/utils/is-json-compatible.js.map +1 -0
- package/dist/utils/serialized-buffer.d.ts +6 -0
- package/dist/utils/serialized-buffer.js +16 -0
- package/dist/utils/serialized-buffer.js.map +1 -0
- package/dist/utils/signature-helpers.d.ts +2 -0
- package/dist/utils/signature-helpers.js +16 -0
- package/dist/utils/signature-helpers.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.anyReachableRootHasRunData = anyReachableRootHasRunData;
|
|
37
|
+
exports.findTriggerForPartialExecution = findTriggerForPartialExecution;
|
|
38
|
+
const assert = __importStar(require("assert/strict"));
|
|
39
|
+
const isTriggerNode = (nodeType) => nodeType.description.group.includes('trigger');
|
|
40
|
+
function findAllParentTriggers(workflow, destinationNodeName) {
|
|
41
|
+
const parentNodes = workflow
|
|
42
|
+
.getParentNodes(destinationNodeName)
|
|
43
|
+
.map((name) => {
|
|
44
|
+
const node = workflow.getNode(name);
|
|
45
|
+
assert.ok(node);
|
|
46
|
+
return {
|
|
47
|
+
node,
|
|
48
|
+
nodeType: workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion),
|
|
49
|
+
};
|
|
50
|
+
})
|
|
51
|
+
.filter((value) => value !== null)
|
|
52
|
+
.filter(({ nodeType }) => isTriggerNode(nodeType))
|
|
53
|
+
.map(({ node }) => node);
|
|
54
|
+
return parentNodes;
|
|
55
|
+
}
|
|
56
|
+
function anyReachableRootHasRunData(workflow, destinationNodeName, runData) {
|
|
57
|
+
const destinationNode = workflow.getNodes().get(destinationNodeName);
|
|
58
|
+
if (!destinationNode)
|
|
59
|
+
return false;
|
|
60
|
+
const parentConnections = workflow.getParentConnections(destinationNode);
|
|
61
|
+
const parentNodes = new Set();
|
|
62
|
+
for (const connection of parentConnections) {
|
|
63
|
+
parentNodes.add(connection.from);
|
|
64
|
+
}
|
|
65
|
+
const rootNodes = new Set();
|
|
66
|
+
for (const parentNode of parentNodes) {
|
|
67
|
+
const hasParents = workflow.getDirectParentConnections(parentNode).length > 0;
|
|
68
|
+
if (!hasParents) {
|
|
69
|
+
rootNodes.add(parentNode);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
for (const rootNode of rootNodes) {
|
|
73
|
+
if (runData[rootNode.name]) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
function findTriggerForPartialExecution(workflow, destinationNodeName, runData) {
|
|
80
|
+
const destinationNode = workflow.getNode(destinationNodeName);
|
|
81
|
+
if (!destinationNode)
|
|
82
|
+
return;
|
|
83
|
+
const destinationNodeType = workflow.nodeTypes.getByNameAndVersion(destinationNode.type, destinationNode.typeVersion);
|
|
84
|
+
if (isTriggerNode(destinationNodeType) && !destinationNode.disabled) {
|
|
85
|
+
return destinationNode;
|
|
86
|
+
}
|
|
87
|
+
const parentTriggers = findAllParentTriggers(workflow, destinationNodeName).filter((trigger) => !trigger.disabled);
|
|
88
|
+
for (const trigger of parentTriggers) {
|
|
89
|
+
if (runData[trigger.name]) {
|
|
90
|
+
return trigger;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const pinnedTriggers = parentTriggers
|
|
94
|
+
.filter((trigger) => workflow.pinData?.[trigger.name])
|
|
95
|
+
.sort((a, b) => (a.type.endsWith('webhook') ? -1 : b.type.endsWith('webhook') ? 1 : 0));
|
|
96
|
+
if (pinnedTriggers.length) {
|
|
97
|
+
return pinnedTriggers[0];
|
|
98
|
+
}
|
|
99
|
+
const webhookTriggers = parentTriggers.filter((trigger) => trigger.type.endsWith('webhook'));
|
|
100
|
+
return webhookTriggers.length > 0 ? webhookTriggers[0] : parentTriggers[0];
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=find-trigger-for-partial-execution.js.map
|
package/dist/execution-engine/partial-execution-utils/find-trigger-for-partial-execution.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-trigger-for-partial-execution.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/find-trigger-for-partial-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { INodeExecutionData, IRunData, NodeConnectionType } from 'n8n-workflow';
|
|
2
|
+
export declare function getIncomingData(runData: IRunData, nodeName: string, runIndex: number, connectionType: NodeConnectionType, outputIndex: number): INodeExecutionData[] | null;
|
|
3
|
+
export declare function getIncomingDataFromAnyRun(runData: IRunData, nodeName: string, connectionType: NodeConnectionType, outputIndex: number): {
|
|
4
|
+
data: INodeExecutionData[];
|
|
5
|
+
runIndex: number;
|
|
6
|
+
} | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getIncomingData = getIncomingData;
|
|
4
|
+
exports.getIncomingDataFromAnyRun = getIncomingDataFromAnyRun;
|
|
5
|
+
function getIncomingData(runData, nodeName, runIndex, connectionType, outputIndex) {
|
|
6
|
+
return runData[nodeName]?.at(runIndex)?.data?.[connectionType].at(outputIndex) ?? null;
|
|
7
|
+
}
|
|
8
|
+
function getRunIndexLength(runData, nodeName) {
|
|
9
|
+
return runData[nodeName]?.length ?? 0;
|
|
10
|
+
}
|
|
11
|
+
function getIncomingDataFromAnyRun(runData, nodeName, connectionType, outputIndex) {
|
|
12
|
+
const maxRunIndexes = getRunIndexLength(runData, nodeName);
|
|
13
|
+
for (let runIndex = 0; runIndex < maxRunIndexes; runIndex++) {
|
|
14
|
+
const data = getIncomingData(runData, nodeName, runIndex, connectionType, outputIndex);
|
|
15
|
+
if (data && data.length > 0) {
|
|
16
|
+
return { data, runIndex };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=get-incoming-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-incoming-data.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/get-incoming-data.ts"],"names":[],"mappings":";;AAEA,0CAQC;AAMD,8DAiBC;AA/BD,SAAgB,eAAe,CAC9B,OAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,cAAkC,EAClC,WAAmB;IAEnB,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACxF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAiB,EAAE,QAAgB;IAC7D,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,yBAAyB,CACxC,OAAiB,EACjB,QAAgB,EAChB,cAAkC,EAClC,WAAmB;IAEnB,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE3D,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAEvF,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type INode, type IPinData, type IRunData } from 'n8n-workflow';
|
|
2
|
+
import type { GraphConnection, DirectedGraph } from './directed-graph';
|
|
3
|
+
type SourceConnectionGroup = {
|
|
4
|
+
complete: boolean;
|
|
5
|
+
connections: GraphConnection[];
|
|
6
|
+
};
|
|
7
|
+
export declare function getSourceDataGroups(graph: DirectedGraph, node: INode, runData: IRunData, pinnedData: IPinData): SourceConnectionGroup[];
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSourceDataGroups = getSourceDataGroups;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
function sortByInputIndexThenByName(connection1, connection2) {
|
|
6
|
+
if (connection1.inputIndex === connection2.inputIndex) {
|
|
7
|
+
return connection1.from.name.localeCompare(connection2.from.name);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return connection1.inputIndex - connection2.inputIndex;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function newGroup() {
|
|
14
|
+
return {
|
|
15
|
+
complete: true,
|
|
16
|
+
connections: [],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function getSourceDataGroups(graph, node, runData, pinnedData) {
|
|
20
|
+
const connections = graph.getConnections({ to: node });
|
|
21
|
+
const sortedConnectionsWithData = [];
|
|
22
|
+
const sortedConnectionsWithoutData = [];
|
|
23
|
+
for (const connection of connections) {
|
|
24
|
+
const hasData = runData[connection.from.name] || pinnedData[connection.from.name];
|
|
25
|
+
if (hasData) {
|
|
26
|
+
sortedConnectionsWithData.push(connection);
|
|
27
|
+
}
|
|
28
|
+
else if (connection.type === n8n_workflow_1.NodeConnectionTypes.Main) {
|
|
29
|
+
sortedConnectionsWithoutData.push(connection);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (sortedConnectionsWithData.length === 0 && sortedConnectionsWithoutData.length === 0) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
sortedConnectionsWithData.sort(sortByInputIndexThenByName);
|
|
36
|
+
sortedConnectionsWithoutData.sort(sortByInputIndexThenByName);
|
|
37
|
+
const groups = [];
|
|
38
|
+
let currentGroup = newGroup();
|
|
39
|
+
let currentInputIndex = Math.min(...sortedConnectionsWithData.map((c) => c.inputIndex), ...sortedConnectionsWithoutData.map((c) => c.inputIndex)) - 1;
|
|
40
|
+
while (sortedConnectionsWithData.length > 0 || sortedConnectionsWithoutData.length > 0) {
|
|
41
|
+
currentInputIndex++;
|
|
42
|
+
const connectionWithDataIndex = sortedConnectionsWithData.findIndex((c) => c.inputIndex === currentInputIndex);
|
|
43
|
+
if (connectionWithDataIndex >= 0) {
|
|
44
|
+
const connection = sortedConnectionsWithData[connectionWithDataIndex];
|
|
45
|
+
currentGroup.connections.push(connection);
|
|
46
|
+
sortedConnectionsWithData.splice(connectionWithDataIndex, 1);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const connectionWithoutDataIndex = sortedConnectionsWithoutData.findIndex((c) => c.inputIndex === currentInputIndex);
|
|
50
|
+
if (connectionWithoutDataIndex >= 0) {
|
|
51
|
+
const connection = sortedConnectionsWithoutData[connectionWithoutDataIndex];
|
|
52
|
+
currentGroup.connections.push(connection);
|
|
53
|
+
currentGroup.complete = false;
|
|
54
|
+
sortedConnectionsWithoutData.splice(connectionWithoutDataIndex, 1);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
groups.push(currentGroup);
|
|
58
|
+
currentGroup = newGroup();
|
|
59
|
+
currentInputIndex =
|
|
60
|
+
Math.min(...sortedConnectionsWithData.map((c) => c.inputIndex), ...sortedConnectionsWithoutData.map((c) => c.inputIndex)) - 1;
|
|
61
|
+
}
|
|
62
|
+
groups.push(currentGroup);
|
|
63
|
+
return groups;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=get-source-data-groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-source-data-groups.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/get-source-data-groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.handleCycles = handleCycles;
|
|
37
|
+
const a = __importStar(require("node:assert/strict"));
|
|
38
|
+
function handleCycles(graph, startNodes, trigger) {
|
|
39
|
+
const cycles = graph.getStronglyConnectedComponents().filter((cycle) => cycle.size >= 1);
|
|
40
|
+
const newStartNodes = new Set(startNodes);
|
|
41
|
+
if (cycles.length === 0) {
|
|
42
|
+
return newStartNodes;
|
|
43
|
+
}
|
|
44
|
+
for (const startNode of startNodes) {
|
|
45
|
+
for (const cycle of cycles) {
|
|
46
|
+
const isPartOfCycle = cycle.has(startNode);
|
|
47
|
+
if (isPartOfCycle) {
|
|
48
|
+
const firstNode = graph.depthFirstSearch({
|
|
49
|
+
from: trigger,
|
|
50
|
+
fn: (node) => cycle.has(node),
|
|
51
|
+
});
|
|
52
|
+
a.ok(firstNode, "the trigger must be connected to the cycle, otherwise the cycle wouldn't be part of the subgraph");
|
|
53
|
+
newStartNodes.delete(startNode);
|
|
54
|
+
newStartNodes.add(firstNode);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return newStartNodes;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=handle-cycles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle-cycles.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/handle-cycles.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,oCAyCC;AAtDD,sDAAwC;AAaxC,SAAgB,YAAY,CAC3B,KAAoB,EACpB,UAAsB,EACtB,OAAc;IAQd,MAAM,MAAM,GAAG,KAAK,CAAC,8BAA8B,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,aAAa,GAAe,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAItD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;oBACxC,IAAI,EAAE,OAAO;oBACb,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;iBAC7B,CAAC,CAAC;gBAEH,CAAC,CAAC,EAAE,CACH,SAAS,EACT,kGAAkG,CAClG,CAAC;gBAEF,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,aAAa,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { DirectedGraph } from './directed-graph';
|
|
2
|
+
export { findTriggerForPartialExecution, anyReachableRootHasRunData, } from './find-trigger-for-partial-execution';
|
|
3
|
+
export { findStartNodes } from './find-start-nodes';
|
|
4
|
+
export { findSubgraph } from './find-subgraph';
|
|
5
|
+
export { recreateNodeExecutionStack } from './recreate-node-execution-stack';
|
|
6
|
+
export { cleanRunData } from './clean-run-data';
|
|
7
|
+
export { handleCycles } from './handle-cycles';
|
|
8
|
+
export { filterDisabledNodes } from './filter-disabled-nodes';
|
|
9
|
+
export { rewireGraph } from './rewire-graph';
|
|
10
|
+
export { getNextExecutionIndex } from './run-data-utils';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNextExecutionIndex = exports.rewireGraph = exports.filterDisabledNodes = exports.handleCycles = exports.cleanRunData = exports.recreateNodeExecutionStack = exports.findSubgraph = exports.findStartNodes = exports.anyReachableRootHasRunData = exports.findTriggerForPartialExecution = exports.DirectedGraph = void 0;
|
|
4
|
+
var directed_graph_1 = require("./directed-graph");
|
|
5
|
+
Object.defineProperty(exports, "DirectedGraph", { enumerable: true, get: function () { return directed_graph_1.DirectedGraph; } });
|
|
6
|
+
var find_trigger_for_partial_execution_1 = require("./find-trigger-for-partial-execution");
|
|
7
|
+
Object.defineProperty(exports, "findTriggerForPartialExecution", { enumerable: true, get: function () { return find_trigger_for_partial_execution_1.findTriggerForPartialExecution; } });
|
|
8
|
+
Object.defineProperty(exports, "anyReachableRootHasRunData", { enumerable: true, get: function () { return find_trigger_for_partial_execution_1.anyReachableRootHasRunData; } });
|
|
9
|
+
var find_start_nodes_1 = require("./find-start-nodes");
|
|
10
|
+
Object.defineProperty(exports, "findStartNodes", { enumerable: true, get: function () { return find_start_nodes_1.findStartNodes; } });
|
|
11
|
+
var find_subgraph_1 = require("./find-subgraph");
|
|
12
|
+
Object.defineProperty(exports, "findSubgraph", { enumerable: true, get: function () { return find_subgraph_1.findSubgraph; } });
|
|
13
|
+
var recreate_node_execution_stack_1 = require("./recreate-node-execution-stack");
|
|
14
|
+
Object.defineProperty(exports, "recreateNodeExecutionStack", { enumerable: true, get: function () { return recreate_node_execution_stack_1.recreateNodeExecutionStack; } });
|
|
15
|
+
var clean_run_data_1 = require("./clean-run-data");
|
|
16
|
+
Object.defineProperty(exports, "cleanRunData", { enumerable: true, get: function () { return clean_run_data_1.cleanRunData; } });
|
|
17
|
+
var handle_cycles_1 = require("./handle-cycles");
|
|
18
|
+
Object.defineProperty(exports, "handleCycles", { enumerable: true, get: function () { return handle_cycles_1.handleCycles; } });
|
|
19
|
+
var filter_disabled_nodes_1 = require("./filter-disabled-nodes");
|
|
20
|
+
Object.defineProperty(exports, "filterDisabledNodes", { enumerable: true, get: function () { return filter_disabled_nodes_1.filterDisabledNodes; } });
|
|
21
|
+
var rewire_graph_1 = require("./rewire-graph");
|
|
22
|
+
Object.defineProperty(exports, "rewireGraph", { enumerable: true, get: function () { return rewire_graph_1.rewireGraph; } });
|
|
23
|
+
var run_data_utils_1 = require("./run-data-utils");
|
|
24
|
+
Object.defineProperty(exports, "getNextExecutionIndex", { enumerable: true, get: function () { return run_data_utils_1.getNextExecutionIndex; } });
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,2FAG8C;AAF7C,oJAAA,8BAA8B,OAAA;AAC9B,gJAAA,0BAA0B,OAAA;AAE3B,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,mDAAgD;AAAvC,8GAAA,YAAY,OAAA;AACrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mDAAyD;AAAhD,uHAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type NodeConnectionType, type IExecuteData, type INode, type INodeExecutionData, type IPinData, type IRunData, type ISourceData, type IWaitingForExecution, type IWaitingForExecutionSource } from 'n8n-workflow';
|
|
2
|
+
import type { DirectedGraph } from './directed-graph';
|
|
3
|
+
export declare function addWaitingExecution(waitingExecution: IWaitingForExecution, nodeName: string, runIndex: number, inputType: NodeConnectionType, inputIndex: number, executionData: INodeExecutionData[] | null): void;
|
|
4
|
+
export declare function addWaitingExecutionSource(waitingExecutionSource: IWaitingForExecutionSource, nodeName: string, runIndex: number, inputType: NodeConnectionType, inputIndex: number, sourceData: ISourceData | null): void;
|
|
5
|
+
export declare function recreateNodeExecutionStack(graph: DirectedGraph, startNodes: Set<INode>, runData: IRunData, pinData: IPinData): {
|
|
6
|
+
nodeExecutionStack: IExecuteData[];
|
|
7
|
+
waitingExecution: IWaitingForExecution;
|
|
8
|
+
waitingExecutionSource: IWaitingForExecutionSource;
|
|
9
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.addWaitingExecution = addWaitingExecution;
|
|
37
|
+
exports.addWaitingExecutionSource = addWaitingExecutionSource;
|
|
38
|
+
exports.recreateNodeExecutionStack = recreateNodeExecutionStack;
|
|
39
|
+
const a = __importStar(require("assert/strict"));
|
|
40
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
41
|
+
const get_incoming_data_1 = require("./get-incoming-data");
|
|
42
|
+
const get_source_data_groups_1 = require("./get-source-data-groups");
|
|
43
|
+
function addWaitingExecution(waitingExecution, nodeName, runIndex, inputType, inputIndex, executionData) {
|
|
44
|
+
const waitingExecutionObject = waitingExecution[nodeName] ?? {};
|
|
45
|
+
const taskDataConnections = waitingExecutionObject[runIndex] ?? {};
|
|
46
|
+
const executionDataList = taskDataConnections[inputType] ?? [];
|
|
47
|
+
executionDataList[inputIndex] = executionData;
|
|
48
|
+
taskDataConnections[inputType] = executionDataList;
|
|
49
|
+
waitingExecutionObject[runIndex] = taskDataConnections;
|
|
50
|
+
waitingExecution[nodeName] = waitingExecutionObject;
|
|
51
|
+
}
|
|
52
|
+
function addWaitingExecutionSource(waitingExecutionSource, nodeName, runIndex, inputType, inputIndex, sourceData) {
|
|
53
|
+
const waitingExecutionSourceObject = waitingExecutionSource[nodeName] ?? {};
|
|
54
|
+
const taskDataConnectionsSource = waitingExecutionSourceObject[runIndex] ?? {};
|
|
55
|
+
const sourceDataList = taskDataConnectionsSource[inputType] ?? [];
|
|
56
|
+
sourceDataList[inputIndex] = sourceData;
|
|
57
|
+
taskDataConnectionsSource[inputType] = sourceDataList;
|
|
58
|
+
waitingExecutionSourceObject[runIndex] = taskDataConnectionsSource;
|
|
59
|
+
waitingExecutionSource[nodeName] = waitingExecutionSourceObject;
|
|
60
|
+
}
|
|
61
|
+
function recreateNodeExecutionStack(graph, startNodes, runData, pinData) {
|
|
62
|
+
for (const node of graph.getNodes().values()) {
|
|
63
|
+
a.notEqual(node.disabled, true, `Graph contains disabled nodes. This is not supported. Make sure to pass the graph through "findSubgraph" before calling "recreateNodeExecutionStack". The node in question is "${node.name}"`);
|
|
64
|
+
}
|
|
65
|
+
const nodeExecutionStack = [];
|
|
66
|
+
const waitingExecution = {};
|
|
67
|
+
const waitingExecutionSource = {};
|
|
68
|
+
for (const startNode of startNodes) {
|
|
69
|
+
const incomingStartNodeConnections = graph
|
|
70
|
+
.getDirectParentConnections(startNode)
|
|
71
|
+
.filter((c) => c.type === n8n_workflow_1.NodeConnectionTypes.Main);
|
|
72
|
+
let incomingData = [];
|
|
73
|
+
let incomingSourceData = null;
|
|
74
|
+
if (incomingStartNodeConnections.length === 0) {
|
|
75
|
+
incomingData.push([{ json: {} }]);
|
|
76
|
+
const executeData = {
|
|
77
|
+
node: startNode,
|
|
78
|
+
data: { main: incomingData },
|
|
79
|
+
source: incomingSourceData,
|
|
80
|
+
};
|
|
81
|
+
nodeExecutionStack.push(executeData);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const sourceDataSets = (0, get_source_data_groups_1.getSourceDataGroups)(graph, startNode, runData, pinData);
|
|
85
|
+
for (const sourceData of sourceDataSets) {
|
|
86
|
+
if (sourceData.complete) {
|
|
87
|
+
incomingData = [];
|
|
88
|
+
incomingSourceData = { main: [] };
|
|
89
|
+
for (const incomingConnection of sourceData.connections) {
|
|
90
|
+
let runIndex = 0;
|
|
91
|
+
const sourceNode = incomingConnection.from;
|
|
92
|
+
if (pinData[sourceNode.name]) {
|
|
93
|
+
incomingData.push(pinData[sourceNode.name]);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
a.ok(runData[sourceNode.name], `Start node(${incomingConnection.to.name}) has an incoming connection with no run or pinned data. This is not supported. The connection in question is "${sourceNode.name}->${startNode.name}". Are you sure the start nodes come from the "findStartNodes" function?`);
|
|
97
|
+
const nodeIncomingData = (0, get_incoming_data_1.getIncomingDataFromAnyRun)(runData, sourceNode.name, incomingConnection.type, incomingConnection.outputIndex);
|
|
98
|
+
if (nodeIncomingData) {
|
|
99
|
+
runIndex = nodeIncomingData.runIndex;
|
|
100
|
+
incomingData.push(nodeIncomingData.data);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
incomingSourceData.main.push({
|
|
104
|
+
previousNode: incomingConnection.from.name,
|
|
105
|
+
previousNodeOutput: incomingConnection.outputIndex,
|
|
106
|
+
previousNodeRun: runIndex,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const executeData = {
|
|
110
|
+
node: startNode,
|
|
111
|
+
data: { main: incomingData },
|
|
112
|
+
source: incomingSourceData,
|
|
113
|
+
};
|
|
114
|
+
nodeExecutionStack.push(executeData);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const nodeName = startNode.name;
|
|
118
|
+
const nextRunIndex = waitingExecution[nodeName]
|
|
119
|
+
? Object.keys(waitingExecution[nodeName]).length
|
|
120
|
+
: 0;
|
|
121
|
+
for (const incomingConnection of sourceData.connections) {
|
|
122
|
+
const sourceNode = incomingConnection.from;
|
|
123
|
+
const maybeNodeIncomingData = (0, get_incoming_data_1.getIncomingDataFromAnyRun)(runData, sourceNode.name, incomingConnection.type, incomingConnection.outputIndex);
|
|
124
|
+
const nodeIncomingData = maybeNodeIncomingData?.data ?? null;
|
|
125
|
+
if (nodeIncomingData) {
|
|
126
|
+
addWaitingExecution(waitingExecution, nodeName, nextRunIndex, incomingConnection.type, incomingConnection.inputIndex, nodeIncomingData);
|
|
127
|
+
addWaitingExecutionSource(waitingExecutionSource, nodeName, nextRunIndex, incomingConnection.type, incomingConnection.inputIndex, nodeIncomingData
|
|
128
|
+
? {
|
|
129
|
+
previousNode: incomingConnection.from.name,
|
|
130
|
+
previousNodeRun: nextRunIndex,
|
|
131
|
+
previousNodeOutput: incomingConnection.outputIndex,
|
|
132
|
+
}
|
|
133
|
+
: null);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
nodeExecutionStack,
|
|
142
|
+
waitingExecution,
|
|
143
|
+
waitingExecutionSource,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=recreate-node-execution-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recreate-node-execution-stack.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/recreate-node-execution-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.rewireGraph = rewireGraph;
|
|
37
|
+
const constants_1 = require("@n8n/constants");
|
|
38
|
+
const a = __importStar(require("assert/strict"));
|
|
39
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
40
|
+
function rewireGraph(tool, graph, agentRequest) {
|
|
41
|
+
const modifiedGraph = graph.clone();
|
|
42
|
+
const children = modifiedGraph.getChildren(tool);
|
|
43
|
+
if (children.size === 0) {
|
|
44
|
+
return graph;
|
|
45
|
+
}
|
|
46
|
+
const rootNode = [...children][children.size - 1];
|
|
47
|
+
a.ok(rootNode);
|
|
48
|
+
const allIncomingConnection = modifiedGraph
|
|
49
|
+
.getDirectParentConnections(rootNode)
|
|
50
|
+
.filter((cn) => cn.type === n8n_workflow_1.NodeConnectionTypes.Main);
|
|
51
|
+
const toolExecutor = {
|
|
52
|
+
name: constants_1.TOOL_EXECUTOR_NODE_NAME,
|
|
53
|
+
disabled: false,
|
|
54
|
+
type: '@n8n/n8n-nodes-langchain.toolExecutor',
|
|
55
|
+
parameters: {
|
|
56
|
+
query: agentRequest?.query ?? {},
|
|
57
|
+
toolName: agentRequest?.tool?.name ?? '',
|
|
58
|
+
},
|
|
59
|
+
id: rootNode.id,
|
|
60
|
+
typeVersion: 0,
|
|
61
|
+
position: [0, 0],
|
|
62
|
+
};
|
|
63
|
+
modifiedGraph.addNode(toolExecutor);
|
|
64
|
+
tool.rewireOutputLogTo = n8n_workflow_1.NodeConnectionTypes.AiTool;
|
|
65
|
+
modifiedGraph.addConnection({ from: tool, to: toolExecutor, type: n8n_workflow_1.NodeConnectionTypes.AiTool });
|
|
66
|
+
for (const cn of allIncomingConnection) {
|
|
67
|
+
modifiedGraph.addConnection({ from: cn.from, to: toolExecutor, type: cn.type });
|
|
68
|
+
}
|
|
69
|
+
modifiedGraph.removeNode(rootNode);
|
|
70
|
+
return modifiedGraph;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=rewire-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewire-graph.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/rewire-graph.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,kCAkDC;AAxDD,8CAAyD;AACzD,iDAAmC;AACnC,+CAAoF;AAIpF,SAAgB,WAAW,CAC1B,IAAW,EACX,KAAoB,EACpB,YAA6B;IAE7B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEjD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAElD,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEf,MAAM,qBAAqB,GAAG,aAAa;SACzC,0BAA0B,CAAC,QAAQ,CAAC;SACpC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,kCAAmB,CAAC,IAAI,CAAC,CAAC;IAGvD,MAAM,YAAY,GAAU;QAC3B,IAAI,EAAE,mCAAuB;QAC7B,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,uCAAuC;QAC7C,UAAU,EAAE;YACX,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;YAChC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;SACxC;QACD,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAChB,CAAC;IAGF,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAGpC,IAAI,CAAC,iBAAiB,GAAG,kCAAmB,CAAC,MAAM,CAAC;IACpD,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,kCAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;IAGhG,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACxC,aAAa,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAGD,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEnC,OAAO,aAAa,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNextExecutionIndex = getNextExecutionIndex;
|
|
4
|
+
function getNextExecutionIndex(runData = {}) {
|
|
5
|
+
if (!runData || Object.keys(runData).length === 0)
|
|
6
|
+
return 0;
|
|
7
|
+
const previousIndices = Object.values(runData)
|
|
8
|
+
.flat()
|
|
9
|
+
.map((taskData) => taskData.executionIndex)
|
|
10
|
+
.filter((value) => typeof value === 'number');
|
|
11
|
+
if (previousIndices.length === 0)
|
|
12
|
+
return 0;
|
|
13
|
+
return Math.max(...previousIndices) + 1;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=run-data-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-data-utils.js","sourceRoot":"","sources":["../../../src/execution-engine/partial-execution-utils/run-data-utils.ts"],"names":[],"mappings":";;AAUA,sDAeC;AAfD,SAAgB,qBAAqB,CAAC,UAAoB,EAAE;IAE3D,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE5D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAC5C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAG1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IAG/C,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC"}
|