n8n-nodes-base 1.92.0 → 1.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/credentials/AirtopApi.credentials.js +2 -1
- package/dist/credentials/AirtopApi.credentials.js.map +1 -1
- package/dist/credentials/JinaAiApi.credentials.js +1 -1
- package/dist/credentials/JinaAiApi.credentials.js.map +1 -1
- package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js +0 -9
- package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js +13 -0
- package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/Snowflake.credentials.js +46 -2
- package/dist/credentials/Snowflake.credentials.js.map +1 -1
- package/dist/known/credentials.json +10 -1
- package/dist/known/nodes.json +20 -4
- package/dist/methods/defined.json +6 -0
- package/dist/methods/referenced.json +3 -0
- package/dist/nodes/Airtop/Airtop.node.js +14 -8
- package/dist/nodes/Airtop/Airtop.node.js.map +1 -1
- package/dist/nodes/Airtop/GenericFunctions.js +87 -15
- package/dist/nodes/Airtop/GenericFunctions.js.map +1 -1
- package/dist/nodes/Airtop/actions/common/fields.js +9 -0
- package/dist/nodes/Airtop/actions/common/fields.js.map +1 -1
- package/dist/nodes/Airtop/actions/common/output.utils.js +79 -0
- package/dist/nodes/Airtop/actions/common/output.utils.js.map +1 -0
- package/dist/nodes/Airtop/actions/common/session.utils.js +2 -2
- package/dist/nodes/Airtop/actions/common/session.utils.js.map +1 -1
- package/dist/nodes/Airtop/actions/extraction/getPaginated.operation.js +13 -4
- package/dist/nodes/Airtop/actions/extraction/getPaginated.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/extraction/query.operation.js +21 -3
- package/dist/nodes/Airtop/actions/extraction/query.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/extraction/scrape.operation.js +2 -1
- package/dist/nodes/Airtop/actions/extraction/scrape.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/file/File.resource.js +104 -0
- package/dist/nodes/Airtop/actions/file/File.resource.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/delete.operation.js +60 -0
- package/dist/nodes/Airtop/actions/file/delete.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/get.operation.js +91 -0
- package/dist/nodes/Airtop/actions/file/get.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/getMany.operation.js +100 -0
- package/dist/nodes/Airtop/actions/file/getMany.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/helpers.js +199 -0
- package/dist/nodes/Airtop/actions/file/helpers.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/load.operation.js +85 -0
- package/dist/nodes/Airtop/actions/file/load.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/file/upload.operation.js +186 -0
- package/dist/nodes/Airtop/actions/file/upload.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/interaction/Interaction.resource.js +22 -1
- package/dist/nodes/Airtop/actions/interaction/Interaction.resource.js.map +1 -1
- package/dist/nodes/Airtop/actions/interaction/fill.operation.js +89 -0
- package/dist/nodes/Airtop/actions/interaction/fill.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/interaction/scroll.operation.js +219 -0
- package/dist/nodes/Airtop/actions/interaction/scroll.operation.js.map +1 -0
- package/dist/nodes/Airtop/actions/node.type.js.map +1 -1
- package/dist/nodes/Airtop/actions/router.js +13 -4
- package/dist/nodes/Airtop/actions/router.js.map +1 -1
- package/dist/nodes/Airtop/actions/session/create.operation.js +85 -32
- package/dist/nodes/Airtop/actions/session/create.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/window/Window.resource.js +2 -1
- package/dist/nodes/Airtop/actions/window/Window.resource.js.map +1 -1
- package/dist/nodes/Airtop/actions/window/create.operation.js +1 -1
- package/dist/nodes/Airtop/actions/window/create.operation.js.map +1 -1
- package/dist/nodes/Airtop/actions/window/takeScreenshot.operation.js +26 -3
- package/dist/nodes/Airtop/actions/window/takeScreenshot.operation.js.map +1 -1
- package/dist/nodes/Airtop/constants.js +38 -5
- package/dist/nodes/Airtop/constants.js.map +1 -1
- package/dist/nodes/Airtop/countries.js +1026 -0
- package/dist/nodes/Airtop/countries.js.map +1 -0
- package/dist/nodes/Airtop/transport/index.js +6 -3
- package/dist/nodes/Airtop/transport/index.js.map +1 -1
- package/dist/nodes/Airtop/transport/types.js.map +1 -1
- package/dist/nodes/Aws/IAM/AwsIam.node.js +95 -0
- package/dist/nodes/Aws/IAM/AwsIam.node.js.map +1 -0
- package/dist/nodes/Aws/IAM/AwsIam.node.json +18 -0
- package/dist/nodes/Aws/IAM/AwsIam.svg +18 -0
- package/dist/nodes/Aws/IAM/descriptions/common.js +188 -0
- package/dist/nodes/Aws/IAM/descriptions/common.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/Group.resource.js +175 -0
- package/dist/nodes/Aws/IAM/descriptions/group/Group.resource.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/create.operation.js +66 -0
- package/dist/nodes/Aws/IAM/descriptions/group/create.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/delete.operation.js +43 -0
- package/dist/nodes/Aws/IAM/descriptions/group/delete.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/get.operation.js +50 -0
- package/dist/nodes/Aws/IAM/descriptions/group/get.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/getAll.operation.js +47 -0
- package/dist/nodes/Aws/IAM/descriptions/group/getAll.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/group/update.operation.js +70 -0
- package/dist/nodes/Aws/IAM/descriptions/group/update.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/index.js +42 -0
- package/dist/nodes/Aws/IAM/descriptions/index.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/User.resource.js +231 -0
- package/dist/nodes/Aws/IAM/descriptions/user/User.resource.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/addToGroup.operation.js +47 -0
- package/dist/nodes/Aws/IAM/descriptions/user/addToGroup.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/create.operation.js +118 -0
- package/dist/nodes/Aws/IAM/descriptions/user/create.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/delete.operation.js +43 -0
- package/dist/nodes/Aws/IAM/descriptions/user/delete.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/get.operation.js +43 -0
- package/dist/nodes/Aws/IAM/descriptions/user/get.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/getAll.operation.js +66 -0
- package/dist/nodes/Aws/IAM/descriptions/user/getAll.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.js +74 -0
- package/dist/nodes/Aws/IAM/descriptions/user/removeFromGroup.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/descriptions/user/update.operation.js +68 -0
- package/dist/nodes/Aws/IAM/descriptions/user/update.operation.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/constants.js +47 -0
- package/dist/nodes/Aws/IAM/helpers/constants.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/errorHandler.js +90 -0
- package/dist/nodes/Aws/IAM/helpers/errorHandler.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/types.js +17 -0
- package/dist/nodes/Aws/IAM/helpers/types.js.map +1 -0
- package/dist/nodes/Aws/IAM/helpers/utils.js +279 -0
- package/dist/nodes/Aws/IAM/helpers/utils.js.map +1 -0
- package/dist/nodes/Aws/IAM/methods/index.js +39 -0
- package/dist/nodes/Aws/IAM/methods/index.js.map +1 -0
- package/dist/nodes/Aws/IAM/methods/listSearch.js +132 -0
- package/dist/nodes/Aws/IAM/methods/listSearch.js.map +1 -0
- package/dist/nodes/Aws/IAM/transport/index.js +64 -0
- package/dist/nodes/Aws/IAM/transport/index.js.map +1 -0
- package/dist/nodes/Cron/Cron.node.js +1 -1
- package/dist/nodes/Cron/Cron.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js +2 -2
- package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js +2 -2
- package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js.map +1 -1
- package/dist/nodes/Evaluation/Evaluation/Description.node.js +146 -0
- package/dist/nodes/Evaluation/Evaluation/Description.node.js.map +1 -0
- package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js +117 -0
- package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js.map +1 -0
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +187 -0
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -0
- package/dist/nodes/Evaluation/methods/index.js +42 -0
- package/dist/nodes/Evaluation/methods/index.js.map +1 -0
- package/dist/nodes/Evaluation/methods/loadOptions.js +40 -0
- package/dist/nodes/Evaluation/methods/loadOptions.js.map +1 -0
- package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js +119 -0
- package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js.map +1 -0
- package/dist/nodes/Evaluation/utils/evaluationUtils.js +171 -0
- package/dist/nodes/Evaluation/utils/evaluationUtils.js.map +1 -0
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js +4 -3
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js.map +1 -1
- package/dist/nodes/Form/common.descriptions.js +2 -2
- package/dist/nodes/Form/common.descriptions.js.map +1 -1
- package/dist/nodes/Google/Drive/v2/actions/file/upload.operation.js +4 -1
- package/dist/nodes/Google/Drive/v2/actions/file/upload.operation.js.map +1 -1
- package/dist/nodes/Google/Firebase/CloudFirestore/GenericFunctions.js +1 -2
- package/dist/nodes/Google/Firebase/CloudFirestore/GenericFunctions.js.map +1 -1
- package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js +113 -107
- package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js +52 -106
- package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js +97 -0
- package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js.map +1 -0
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js +20 -17
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Google/YouTube/YouTube.node.js +4 -2
- package/dist/nodes/Google/YouTube/YouTube.node.js.map +1 -1
- package/dist/nodes/HttpRequest/GenericFunctions.js +1 -1
- package/dist/nodes/HttpRequest/GenericFunctions.js.map +1 -1
- package/dist/nodes/Interval/Interval.node.js +1 -1
- package/dist/nodes/Interval/Interval.node.js.map +1 -1
- package/dist/nodes/Jira/Jira.node.js +34 -15
- package/dist/nodes/Jira/Jira.node.js.map +1 -1
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +2 -2
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
- package/dist/nodes/MQTT/MqttTrigger.node.js +2 -2
- package/dist/nodes/MQTT/MqttTrigger.node.js.map +1 -1
- package/dist/nodes/ManualTrigger/ManualTrigger.node.js +1 -1
- package/dist/nodes/ManualTrigger/ManualTrigger.node.js.map +1 -1
- package/dist/nodes/Merge/Merge.node.js +3 -2
- package/dist/nodes/Merge/Merge.node.js.map +1 -1
- package/dist/nodes/Merge/v3/actions/mode/combineBySql.js +42 -4
- package/dist/nodes/Merge/v3/actions/mode/combineBySql.js.map +1 -1
- package/dist/nodes/Merge/v3/actions/versionDescription.js +1 -1
- package/dist/nodes/Merge/v3/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js +93 -0
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharepoint.node.json +18 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js +190 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js +108 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js +62 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js +129 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js +77 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/index.js +45 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/index.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js +175 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js +62 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js +83 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js +203 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js +99 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js +65 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js +105 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js +17 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/utils.js +252 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/utils.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/index.js +42 -0
- package/dist/nodes/Microsoft/SharePoint/methods/index.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js +222 -0
- package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js +104 -0
- package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/test/credentials.js +54 -0
- package/dist/nodes/Microsoft/SharePoint/test/credentials.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/transport/index.js +46 -0
- package/dist/nodes/Microsoft/SharePoint/transport/index.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js +387 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.json +18 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/types.js +17 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/types.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js +147 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/v2/transport/index.js.map +1 -1
- package/dist/nodes/MongoDb/GenericFunctions.js +9 -2
- package/dist/nodes/MongoDb/GenericFunctions.js.map +1 -1
- package/dist/nodes/MongoDb/MongoDb.node.js +25 -5
- package/dist/nodes/MongoDb/MongoDb.node.js.map +1 -1
- package/dist/nodes/PostBin/BinDescription.js +1 -1
- package/dist/nodes/PostBin/BinDescription.js.map +1 -1
- package/dist/nodes/PostBin/GenericFunctions.js +5 -5
- package/dist/nodes/PostBin/GenericFunctions.js.map +1 -1
- package/dist/nodes/PostBin/PostBin.node.js +1 -1
- package/dist/nodes/PostBin/PostBin.node.js.map +1 -1
- package/dist/nodes/PostBin/RequestDescription.js +2 -2
- package/dist/nodes/PostBin/RequestDescription.js.map +1 -1
- package/dist/nodes/Postgres/PostgresTrigger.node.js +2 -2
- package/dist/nodes/Postgres/PostgresTrigger.node.js.map +1 -1
- package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js +2 -2
- package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js +8 -3
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/utils.js +43 -0
- package/dist/nodes/RespondToWebhook/utils.js.map +1 -0
- package/dist/nodes/Schedule/ScheduleTrigger.node.js +1 -1
- package/dist/nodes/Schedule/ScheduleTrigger.node.js.map +1 -1
- package/dist/nodes/Snowflake/GenericFunctions.js +34 -2
- package/dist/nodes/Snowflake/GenericFunctions.js.map +1 -1
- package/dist/nodes/Snowflake/Snowflake.node.js +5 -7
- package/dist/nodes/Snowflake/Snowflake.node.js.map +1 -1
- package/dist/nodes/SseTrigger/SseTrigger.node.js +2 -2
- package/dist/nodes/SseTrigger/SseTrigger.node.js.map +1 -1
- package/dist/nodes/Telegram/Telegram.node.js +5 -1
- package/dist/nodes/Telegram/Telegram.node.js.map +1 -1
- package/dist/nodes/Transform/Summarize/utils.js +2 -1
- package/dist/nodes/Transform/Summarize/utils.js.map +1 -1
- package/dist/test/setup.js +1 -0
- package/dist/test/setup.js.map +1 -1
- package/dist/types/credentials.json +7 -7
- package/dist/types/nodes.json +27 -23
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +12 -2
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
- package/package.json +15 -12
- package/dist/nodes/EvaluationMetrics/EvaluationMetrics.node.js +0 -119
- package/dist/nodes/EvaluationMetrics/EvaluationMetrics.node.js.map +0 -1
- package/dist/nodes/EvaluationMetrics/EvaluationMetrics.node.json +0 -14
- /package/dist/{credentials/icons/SharePoint.svg → nodes/Microsoft/SharePoint/microsoftSharePoint.svg} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var EvaluationTrigger_node_ee_exports = {};
|
|
20
|
+
__export(EvaluationTrigger_node_ee_exports, {
|
|
21
|
+
EvaluationTrigger: () => EvaluationTrigger,
|
|
22
|
+
startingRow: () => startingRow
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(EvaluationTrigger_node_ee_exports);
|
|
25
|
+
var import_n8n_workflow = require("n8n-workflow");
|
|
26
|
+
var import_GoogleSheetsTrigger = require("../../Google/Sheet/GoogleSheetsTrigger.node");
|
|
27
|
+
var import_read = require("../../Google/Sheet/v2/actions/sheet/read.operation");
|
|
28
|
+
var import_versionDescription = require("../../Google/Sheet/v2/actions/versionDescription");
|
|
29
|
+
var import_methods = require("../methods");
|
|
30
|
+
var import_evaluationTriggerUtils = require("../utils/evaluationTriggerUtils");
|
|
31
|
+
let startingRow = 2;
|
|
32
|
+
class EvaluationTrigger {
|
|
33
|
+
constructor() {
|
|
34
|
+
this.description = {
|
|
35
|
+
displayName: "Evaluation Trigger",
|
|
36
|
+
icon: "fa:check-double",
|
|
37
|
+
name: "evaluationTrigger",
|
|
38
|
+
group: ["trigger"],
|
|
39
|
+
version: 4.6,
|
|
40
|
+
description: "Run a test dataset through your workflow to check performance",
|
|
41
|
+
eventTriggerDescription: "",
|
|
42
|
+
defaults: {
|
|
43
|
+
name: "When fetching a dataset row",
|
|
44
|
+
color: "#c3c9d5"
|
|
45
|
+
},
|
|
46
|
+
inputs: [],
|
|
47
|
+
outputs: [import_n8n_workflow.NodeConnectionTypes.Main],
|
|
48
|
+
properties: [
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Pulls a test dataset from a Google Sheet. The workflow will run once for each row, in sequence. Tips for wiring this node up <a href="https://docs.n8n.io/advanced-ai/evaluations/tips-and-common-issues/#combining-multiple-triggers">here</a>.',
|
|
51
|
+
name: "notice",
|
|
52
|
+
type: "notice",
|
|
53
|
+
default: ""
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
displayName: "Credentials",
|
|
57
|
+
name: "credentials",
|
|
58
|
+
type: "credentials",
|
|
59
|
+
default: ""
|
|
60
|
+
},
|
|
61
|
+
import_versionDescription.authentication,
|
|
62
|
+
{
|
|
63
|
+
...import_GoogleSheetsTrigger.document,
|
|
64
|
+
displayName: "Document Containing Dataset",
|
|
65
|
+
hint: 'Example dataset format <a href="https://docs.google.com/spreadsheets/d/1vD_IdeFUg7sHsK9okL6Doy1rGOkWTnPJV3Dro4FBUsY/edit?gid=0#gid=0">here</a>'
|
|
66
|
+
},
|
|
67
|
+
{ ...import_GoogleSheetsTrigger.sheet, displayName: "Sheet Containing Dataset" },
|
|
68
|
+
{
|
|
69
|
+
displayName: "Limit Rows",
|
|
70
|
+
name: "limitRows",
|
|
71
|
+
type: "boolean",
|
|
72
|
+
default: false,
|
|
73
|
+
noDataExpression: true,
|
|
74
|
+
description: "Whether to limit number of rows to process"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
displayName: "Max Rows to Process",
|
|
78
|
+
name: "maxRows",
|
|
79
|
+
type: "number",
|
|
80
|
+
default: 10,
|
|
81
|
+
description: "Maximum number of rows to process",
|
|
82
|
+
noDataExpression: false,
|
|
83
|
+
displayOptions: { show: { limitRows: [true] } }
|
|
84
|
+
},
|
|
85
|
+
import_read.readFilter
|
|
86
|
+
],
|
|
87
|
+
codex: {
|
|
88
|
+
alias: ["Test", "Metrics", "Evals", "Set Output", "Set Metrics"]
|
|
89
|
+
},
|
|
90
|
+
credentials: [
|
|
91
|
+
{
|
|
92
|
+
name: "googleApi",
|
|
93
|
+
required: true,
|
|
94
|
+
displayOptions: {
|
|
95
|
+
show: {
|
|
96
|
+
authentication: ["serviceAccount"]
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
testedBy: "googleApiCredentialTest"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: "googleSheetsOAuth2Api",
|
|
103
|
+
required: true,
|
|
104
|
+
displayOptions: {
|
|
105
|
+
show: {
|
|
106
|
+
authentication: ["oAuth2"]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
};
|
|
112
|
+
this.methods = { loadOptions: import_methods.loadOptions, listSearch: import_methods.listSearch };
|
|
113
|
+
}
|
|
114
|
+
async execute(startRow) {
|
|
115
|
+
if (startRow) {
|
|
116
|
+
startingRow = startRow;
|
|
117
|
+
}
|
|
118
|
+
const inputData = this.getInputData();
|
|
119
|
+
const MAX_ROWS = 1e3;
|
|
120
|
+
const maxRows = this.getNodeParameter("limitRows", 0) ? this.getNodeParameter("maxRows", 0) + 1 : MAX_ROWS;
|
|
121
|
+
const rangeOptions = {
|
|
122
|
+
rangeDefinition: "specifyRange",
|
|
123
|
+
headerRow: 1,
|
|
124
|
+
firstDataRow: startingRow
|
|
125
|
+
};
|
|
126
|
+
const googleSheetInstance = import_evaluationTriggerUtils.getGoogleSheet.call(this);
|
|
127
|
+
const googleSheet = await import_evaluationTriggerUtils.getSheet.call(this, googleSheetInstance);
|
|
128
|
+
const allRows = await import_evaluationTriggerUtils.getResults.call(this, [], googleSheetInstance, googleSheet, rangeOptions);
|
|
129
|
+
if (inputData[0].json.requestDataset) {
|
|
130
|
+
const testRunnerResult = await import_evaluationTriggerUtils.getResults.call(
|
|
131
|
+
this,
|
|
132
|
+
[],
|
|
133
|
+
googleSheetInstance,
|
|
134
|
+
googleSheet,
|
|
135
|
+
{}
|
|
136
|
+
);
|
|
137
|
+
const result = testRunnerResult.filter((row) => row?.json?.row_number <= maxRows);
|
|
138
|
+
return [result];
|
|
139
|
+
}
|
|
140
|
+
const hasFilter = this.getNodeParameter("filtersUI.values", 0, []);
|
|
141
|
+
if (hasFilter.length > 0) {
|
|
142
|
+
const currentRow = allRows[0];
|
|
143
|
+
const currentRowNumber = currentRow.json?.row_number;
|
|
144
|
+
if (currentRow === void 0) {
|
|
145
|
+
startingRow = 2;
|
|
146
|
+
throw new import_n8n_workflow.NodeOperationError(this.getNode(), "No row found");
|
|
147
|
+
}
|
|
148
|
+
const rowsLeft = await import_evaluationTriggerUtils.getNumberOfRowsLeftFiltered.call(
|
|
149
|
+
this,
|
|
150
|
+
googleSheetInstance,
|
|
151
|
+
googleSheet.title,
|
|
152
|
+
currentRowNumber + 1,
|
|
153
|
+
maxRows
|
|
154
|
+
);
|
|
155
|
+
currentRow.json._rowsLeft = rowsLeft;
|
|
156
|
+
startingRow = currentRowNumber + 1;
|
|
157
|
+
if (rowsLeft === 0) {
|
|
158
|
+
startingRow = 2;
|
|
159
|
+
}
|
|
160
|
+
return [[currentRow]];
|
|
161
|
+
} else {
|
|
162
|
+
const currentRow = allRows.find((row) => row?.json?.row_number === startingRow);
|
|
163
|
+
const rowsLeft = await import_evaluationTriggerUtils.getRowsLeft.call(
|
|
164
|
+
this,
|
|
165
|
+
googleSheetInstance,
|
|
166
|
+
googleSheet.title,
|
|
167
|
+
`${googleSheet.title}!${startingRow}:${maxRows}`
|
|
168
|
+
);
|
|
169
|
+
if (currentRow === void 0) {
|
|
170
|
+
startingRow = 2;
|
|
171
|
+
throw new import_n8n_workflow.NodeOperationError(this.getNode(), "No row found");
|
|
172
|
+
}
|
|
173
|
+
currentRow.json._rowsLeft = rowsLeft;
|
|
174
|
+
startingRow += 1;
|
|
175
|
+
if (rowsLeft === 0) {
|
|
176
|
+
startingRow = 2;
|
|
177
|
+
}
|
|
178
|
+
return [[currentRow]];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
183
|
+
0 && (module.exports = {
|
|
184
|
+
EvaluationTrigger,
|
|
185
|
+
startingRow
|
|
186
|
+
});
|
|
187
|
+
//# sourceMappingURL=EvaluationTrigger.node.ee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.ts"],"sourcesContent":["/* eslint-disable n8n-nodes-base/node-filename-against-convention */\nimport type {\n\tINodeType,\n\tINodeTypeDescription,\n\tIExecuteFunctions,\n\tINodeExecutionData,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\n\nimport { document, sheet } from '../../Google/Sheet/GoogleSheetsTrigger.node';\nimport { readFilter } from '../../Google/Sheet/v2/actions/sheet/read.operation';\nimport { authentication } from '../../Google/Sheet/v2/actions/versionDescription';\nimport type { ILookupValues } from '../../Google/Sheet/v2/helpers/GoogleSheets.types';\nimport { listSearch, loadOptions } from '../methods';\nimport {\n\tgetGoogleSheet,\n\tgetResults,\n\tgetRowsLeft,\n\tgetNumberOfRowsLeftFiltered,\n\tgetSheet,\n} from '../utils/evaluationTriggerUtils';\n\nexport let startingRow = 2;\n\nexport class EvaluationTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Evaluation Trigger',\n\t\ticon: 'fa:check-double',\n\t\tname: 'evaluationTrigger',\n\t\tgroup: ['trigger'],\n\t\tversion: 4.6,\n\t\tdescription: 'Run a test dataset through your workflow to check performance',\n\t\teventTriggerDescription: '',\n\t\tdefaults: {\n\t\t\tname: 'When fetching a dataset row',\n\t\t\tcolor: '#c3c9d5',\n\t\t},\n\t\tinputs: [],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName:\n\t\t\t\t\t'Pulls a test dataset from a Google Sheet. The workflow will run once for each row, in sequence. Tips for wiring this node up <a href=\"https://docs.n8n.io/advanced-ai/evaluations/tips-and-common-issues/#combining-multiple-triggers\">here</a>.',\n\t\t\t\tname: 'notice',\n\t\t\t\ttype: 'notice',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Credentials',\n\t\t\t\tname: 'credentials',\n\t\t\t\ttype: 'credentials',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tauthentication,\n\t\t\t{\n\t\t\t\t...document,\n\t\t\t\tdisplayName: 'Document Containing Dataset',\n\t\t\t\thint: 'Example dataset format <a href=\"https://docs.google.com/spreadsheets/d/1vD_IdeFUg7sHsK9okL6Doy1rGOkWTnPJV3Dro4FBUsY/edit?gid=0#gid=0\">here</a>',\n\t\t\t},\n\t\t\t{ ...sheet, displayName: 'Sheet Containing Dataset' },\n\t\t\t{\n\t\t\t\tdisplayName: 'Limit Rows',\n\t\t\t\tname: 'limitRows',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t\tnoDataExpression: true,\n\t\t\t\tdescription: 'Whether to limit number of rows to process',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Max Rows to Process',\n\t\t\t\tname: 'maxRows',\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 10,\n\t\t\t\tdescription: 'Maximum number of rows to process',\n\t\t\t\tnoDataExpression: false,\n\t\t\t\tdisplayOptions: { show: { limitRows: [true] } },\n\t\t\t},\n\t\t\treadFilter,\n\t\t],\n\t\tcodex: {\n\t\t\talias: ['Test', 'Metrics', 'Evals', 'Set Output', 'Set Metrics'],\n\t\t},\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'googleApi',\n\t\t\t\trequired: true,\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\tauthentication: ['serviceAccount'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\ttestedBy: 'googleApiCredentialTest',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'googleSheetsOAuth2Api',\n\t\t\t\trequired: true,\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\tauthentication: ['oAuth2'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n\n\tmethods = { loadOptions, listSearch };\n\n\tasync execute(this: IExecuteFunctions, startRow?: number): Promise<INodeExecutionData[][]> {\n\t\t// We need to allow tests to reset the startingRow\n\t\tif (startRow) {\n\t\t\tstartingRow = startRow;\n\t\t}\n\n\t\tconst inputData = this.getInputData();\n\n\t\tconst MAX_ROWS = 1000;\n\n\t\tconst maxRows = this.getNodeParameter('limitRows', 0)\n\t\t\t? (this.getNodeParameter('maxRows', 0) as number) + 1\n\t\t\t: MAX_ROWS;\n\n\t\tconst rangeOptions = {\n\t\t\trangeDefinition: 'specifyRange',\n\t\t\theaderRow: 1,\n\t\t\tfirstDataRow: startingRow,\n\t\t};\n\n\t\tconst googleSheetInstance = getGoogleSheet.call(this);\n\n\t\tconst googleSheet = await getSheet.call(this, googleSheetInstance);\n\n\t\tconst allRows = await getResults.call(this, [], googleSheetInstance, googleSheet, rangeOptions);\n\n\t\t// This is for test runner which requires a different return format\n\t\tif (inputData[0].json.requestDataset) {\n\t\t\tconst testRunnerResult = await getResults.call(\n\t\t\t\tthis,\n\t\t\t\t[],\n\t\t\t\tgoogleSheetInstance,\n\t\t\t\tgoogleSheet,\n\t\t\t\t{},\n\t\t\t);\n\n\t\t\tconst result = testRunnerResult.filter((row) => (row?.json?.row_number as number) <= maxRows);\n\n\t\t\treturn [result];\n\t\t}\n\n\t\tconst hasFilter = this.getNodeParameter('filtersUI.values', 0, []) as ILookupValues[];\n\n\t\tif (hasFilter.length > 0) {\n\t\t\tconst currentRow = allRows[0];\n\t\t\tconst currentRowNumber = currentRow.json?.row_number as number;\n\n\t\t\tif (currentRow === undefined) {\n\t\t\t\tstartingRow = 2;\n\n\t\t\t\tthrow new NodeOperationError(this.getNode(), 'No row found');\n\t\t\t}\n\n\t\t\tconst rowsLeft = await getNumberOfRowsLeftFiltered.call(\n\t\t\t\tthis,\n\t\t\t\tgoogleSheetInstance,\n\t\t\t\tgoogleSheet.title,\n\t\t\t\tcurrentRowNumber + 1,\n\t\t\t\tmaxRows,\n\t\t\t);\n\n\t\t\tcurrentRow.json._rowsLeft = rowsLeft;\n\n\t\t\tstartingRow = currentRowNumber + 1;\n\n\t\t\tif (rowsLeft === 0) {\n\t\t\t\tstartingRow = 2;\n\t\t\t}\n\n\t\t\treturn [[currentRow]];\n\t\t} else {\n\t\t\tconst currentRow = allRows.find((row) => (row?.json?.row_number as number) === startingRow);\n\n\t\t\tconst rowsLeft = await getRowsLeft.call(\n\t\t\t\tthis,\n\t\t\t\tgoogleSheetInstance,\n\t\t\t\tgoogleSheet.title,\n\t\t\t\t`${googleSheet.title}!${startingRow}:${maxRows}`,\n\t\t\t);\n\n\t\t\tif (currentRow === undefined) {\n\t\t\t\tstartingRow = 2;\n\n\t\t\t\tthrow new NodeOperationError(this.getNode(), 'No row found');\n\t\t\t}\n\n\t\t\tcurrentRow.json._rowsLeft = rowsLeft;\n\n\t\t\tstartingRow += 1;\n\n\t\t\tif (rowsLeft === 0) {\n\t\t\t\tstartingRow = 2;\n\t\t\t}\n\n\t\t\treturn [[currentRow]];\n\t\t}\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var methods_exports = {};
|
|
30
|
+
__export(methods_exports, {
|
|
31
|
+
listSearch: () => listSearch,
|
|
32
|
+
loadOptions: () => loadOptions
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(methods_exports);
|
|
35
|
+
var loadOptions = __toESM(require("./loadOptions"));
|
|
36
|
+
var listSearch = __toESM(require("./../../Google/Sheet/v2/methods/listSearch"));
|
|
37
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
38
|
+
0 && (module.exports = {
|
|
39
|
+
listSearch,
|
|
40
|
+
loadOptions
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Evaluation/methods/index.ts"],"sourcesContent":["export * as loadOptions from './loadOptions';\nexport * as listSearch from './../../Google/Sheet/v2/methods/listSearch';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAC7B,iBAA4B;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var loadOptions_exports = {};
|
|
20
|
+
__export(loadOptions_exports, {
|
|
21
|
+
getSheetHeaderRowWithGeneratedColumnNames: () => getSheetHeaderRowWithGeneratedColumnNames
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(loadOptions_exports);
|
|
24
|
+
var import_loadOptions = require("../../Google/Sheet/v2/methods/loadOptions");
|
|
25
|
+
async function getSheetHeaderRowWithGeneratedColumnNames() {
|
|
26
|
+
const returnData = await import_loadOptions.getSheetHeaderRow.call(this);
|
|
27
|
+
return returnData.map((column, i) => {
|
|
28
|
+
if (column.value !== "") return column;
|
|
29
|
+
const indexBasedValue = `col_${i + 1}`;
|
|
30
|
+
return {
|
|
31
|
+
name: indexBasedValue,
|
|
32
|
+
value: indexBasedValue
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
getSheetHeaderRowWithGeneratedColumnNames
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=loadOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Evaluation/methods/loadOptions.ts"],"sourcesContent":["import type { ILoadOptionsFunctions, INodePropertyOptions } from 'n8n-workflow';\n\nimport { getSheetHeaderRow } from '../../Google/Sheet/v2/methods/loadOptions';\n\nexport async function getSheetHeaderRowWithGeneratedColumnNames(\n\tthis: ILoadOptionsFunctions,\n): Promise<INodePropertyOptions[]> {\n\tconst returnData = await getSheetHeaderRow.call(this);\n\treturn returnData.map((column, i) => {\n\t\tif (column.value !== '') return column;\n\t\tconst indexBasedValue = `col_${i + 1}`;\n\t\treturn {\n\t\t\tname: indexBasedValue,\n\t\t\tvalue: indexBasedValue,\n\t\t};\n\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,yBAAkC;AAElC,eAAsB,4CAEa;AAClC,QAAM,aAAa,MAAM,qCAAkB,KAAK,IAAI;AACpD,SAAO,WAAW,IAAI,CAAC,QAAQ,MAAM;AACpC,QAAI,OAAO,UAAU,GAAI,QAAO;AAChC,UAAM,kBAAkB,OAAO,IAAI,CAAC;AACpC,WAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACR;AAAA,EACD,CAAC;AACF;","names":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var evaluationTriggerUtils_exports = {};
|
|
20
|
+
__export(evaluationTriggerUtils_exports, {
|
|
21
|
+
getFilteredResults: () => getFilteredResults,
|
|
22
|
+
getGoogleSheet: () => getGoogleSheet,
|
|
23
|
+
getNumberOfRowsLeftFiltered: () => getNumberOfRowsLeftFiltered,
|
|
24
|
+
getResults: () => getResults,
|
|
25
|
+
getRowsLeft: () => getRowsLeft,
|
|
26
|
+
getSheet: () => getSheet
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(evaluationTriggerUtils_exports);
|
|
29
|
+
var import_readOperation = require("../../Google/Sheet/v2/actions/utils/readOperation");
|
|
30
|
+
var import_GoogleSheet = require("../../Google/Sheet/v2/helpers/GoogleSheet");
|
|
31
|
+
var import_GoogleSheets = require("../../Google/Sheet/v2/helpers/GoogleSheets.utils");
|
|
32
|
+
async function getSheet(googleSheet) {
|
|
33
|
+
const sheetWithinDocument = this.getNodeParameter("sheetName", 0, void 0, {
|
|
34
|
+
extractValue: true
|
|
35
|
+
});
|
|
36
|
+
const { mode: sheetMode } = this.getNodeParameter("sheetName", 0);
|
|
37
|
+
return await googleSheet.spreadsheetGetSheet(this.getNode(), sheetMode, sheetWithinDocument);
|
|
38
|
+
}
|
|
39
|
+
function getGoogleSheet() {
|
|
40
|
+
const { mode, value } = this.getNodeParameter("documentId", 0);
|
|
41
|
+
const spreadsheetId = (0, import_GoogleSheets.getSpreadsheetId)(this.getNode(), mode, value);
|
|
42
|
+
const googleSheet = new import_GoogleSheet.GoogleSheet(spreadsheetId, this);
|
|
43
|
+
return googleSheet;
|
|
44
|
+
}
|
|
45
|
+
async function getFilteredResults(operationResult, googleSheet, result, startingRow, endingRow) {
|
|
46
|
+
const sheetName = result.title;
|
|
47
|
+
operationResult = await import_readOperation.readSheet.call(
|
|
48
|
+
this,
|
|
49
|
+
googleSheet,
|
|
50
|
+
sheetName,
|
|
51
|
+
0,
|
|
52
|
+
operationResult,
|
|
53
|
+
this.getNode().typeVersion,
|
|
54
|
+
[],
|
|
55
|
+
void 0,
|
|
56
|
+
{
|
|
57
|
+
rangeDefinition: "specifyRange",
|
|
58
|
+
headerRow: 1,
|
|
59
|
+
firstDataRow: startingRow
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
return operationResult.filter((row) => row?.json?.row_number <= endingRow);
|
|
63
|
+
}
|
|
64
|
+
async function getNumberOfRowsLeftFiltered(googleSheet, sheetName, startingRow, endingRow) {
|
|
65
|
+
const remainderSheet = await import_readOperation.readSheet.call(
|
|
66
|
+
this,
|
|
67
|
+
googleSheet,
|
|
68
|
+
sheetName,
|
|
69
|
+
0,
|
|
70
|
+
[],
|
|
71
|
+
this.getNode().typeVersion,
|
|
72
|
+
[],
|
|
73
|
+
void 0,
|
|
74
|
+
{
|
|
75
|
+
rangeDefinition: "specifyRange",
|
|
76
|
+
headerRow: 1,
|
|
77
|
+
firstDataRow: startingRow
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
return remainderSheet.filter((row) => row?.json?.row_number <= endingRow).length;
|
|
81
|
+
}
|
|
82
|
+
async function getResults(operationResult, googleSheet, result, rangeOptions) {
|
|
83
|
+
const sheetName = result.title;
|
|
84
|
+
operationResult = await import_readOperation.readSheet.call(
|
|
85
|
+
this,
|
|
86
|
+
googleSheet,
|
|
87
|
+
sheetName,
|
|
88
|
+
0,
|
|
89
|
+
operationResult,
|
|
90
|
+
this.getNode().typeVersion,
|
|
91
|
+
[],
|
|
92
|
+
void 0,
|
|
93
|
+
rangeOptions
|
|
94
|
+
);
|
|
95
|
+
return operationResult;
|
|
96
|
+
}
|
|
97
|
+
async function getRowsLeft(googleSheet, sheetName, rangeString) {
|
|
98
|
+
const remainderSheet = await import_readOperation.readSheet.call(
|
|
99
|
+
this,
|
|
100
|
+
googleSheet,
|
|
101
|
+
sheetName,
|
|
102
|
+
0,
|
|
103
|
+
[],
|
|
104
|
+
this.getNode().typeVersion,
|
|
105
|
+
[],
|
|
106
|
+
rangeString
|
|
107
|
+
);
|
|
108
|
+
return remainderSheet.length;
|
|
109
|
+
}
|
|
110
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
111
|
+
0 && (module.exports = {
|
|
112
|
+
getFilteredResults,
|
|
113
|
+
getGoogleSheet,
|
|
114
|
+
getNumberOfRowsLeftFiltered,
|
|
115
|
+
getResults,
|
|
116
|
+
getRowsLeft,
|
|
117
|
+
getSheet
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=evaluationTriggerUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Evaluation/utils/evaluationTriggerUtils.ts"],"sourcesContent":["import type { IExecuteFunctions, INodeExecutionData, IDataObject } from 'n8n-workflow';\n\nimport { readSheet } from '../../Google/Sheet/v2/actions/utils/readOperation';\nimport { GoogleSheet } from '../../Google/Sheet/v2/helpers/GoogleSheet';\nimport type { ResourceLocator } from '../../Google/Sheet/v2/helpers/GoogleSheets.types';\nimport { getSpreadsheetId } from '../../Google/Sheet/v2/helpers/GoogleSheets.utils';\n\nexport async function getSheet(\n\tthis: IExecuteFunctions,\n\tgoogleSheet: GoogleSheet,\n): Promise<{\n\ttitle: string;\n\tsheetId: number;\n}> {\n\tconst sheetWithinDocument = this.getNodeParameter('sheetName', 0, undefined, {\n\t\textractValue: true,\n\t}) as string;\n\tconst { mode: sheetMode } = this.getNodeParameter('sheetName', 0) as {\n\t\tmode: ResourceLocator;\n\t};\n\n\treturn await googleSheet.spreadsheetGetSheet(this.getNode(), sheetMode, sheetWithinDocument);\n}\n\nexport function getGoogleSheet(this: IExecuteFunctions) {\n\tconst { mode, value } = this.getNodeParameter('documentId', 0) as IDataObject;\n\tconst spreadsheetId = getSpreadsheetId(this.getNode(), mode as ResourceLocator, value as string);\n\n\tconst googleSheet = new GoogleSheet(spreadsheetId, this);\n\n\treturn googleSheet;\n}\n\nexport async function getFilteredResults(\n\tthis: IExecuteFunctions,\n\toperationResult: INodeExecutionData[],\n\tgoogleSheet: GoogleSheet,\n\tresult: { title: string; sheetId: number },\n\tstartingRow: number,\n\tendingRow: number,\n): Promise<INodeExecutionData[]> {\n\tconst sheetName = result.title;\n\n\toperationResult = await readSheet.call(\n\t\tthis,\n\t\tgoogleSheet,\n\t\tsheetName,\n\t\t0,\n\t\toperationResult,\n\t\tthis.getNode().typeVersion,\n\t\t[],\n\t\tundefined,\n\t\t{\n\t\t\trangeDefinition: 'specifyRange',\n\t\t\theaderRow: 1,\n\t\t\tfirstDataRow: startingRow,\n\t\t},\n\t);\n\n\treturn operationResult.filter((row) => (row?.json?.row_number as number) <= endingRow);\n}\n\nexport async function getNumberOfRowsLeftFiltered(\n\tthis: IExecuteFunctions,\n\tgoogleSheet: GoogleSheet,\n\tsheetName: string,\n\tstartingRow: number,\n\tendingRow: number,\n) {\n\tconst remainderSheet: INodeExecutionData[] = await readSheet.call(\n\t\tthis,\n\t\tgoogleSheet,\n\t\tsheetName,\n\t\t0,\n\t\t[],\n\t\tthis.getNode().typeVersion,\n\t\t[],\n\t\tundefined,\n\t\t{\n\t\t\trangeDefinition: 'specifyRange',\n\t\t\theaderRow: 1,\n\t\t\tfirstDataRow: startingRow,\n\t\t},\n\t);\n\n\treturn remainderSheet.filter((row) => (row?.json?.row_number as number) <= endingRow).length;\n}\n\nexport async function getResults(\n\tthis: IExecuteFunctions,\n\toperationResult: INodeExecutionData[],\n\tgoogleSheet: GoogleSheet,\n\tresult: { title: string; sheetId: number },\n\trangeOptions: IDataObject,\n): Promise<INodeExecutionData[]> {\n\tconst sheetName = result.title;\n\n\toperationResult = await readSheet.call(\n\t\tthis,\n\t\tgoogleSheet,\n\t\tsheetName,\n\t\t0,\n\t\toperationResult,\n\t\tthis.getNode().typeVersion,\n\t\t[],\n\t\tundefined,\n\t\trangeOptions,\n\t);\n\n\treturn operationResult;\n}\n\nexport async function getRowsLeft(\n\tthis: IExecuteFunctions,\n\tgoogleSheet: GoogleSheet,\n\tsheetName: string,\n\trangeString: string,\n) {\n\tconst remainderSheet: INodeExecutionData[] = await readSheet.call(\n\t\tthis,\n\t\tgoogleSheet,\n\t\tsheetName,\n\t\t0,\n\t\t[],\n\t\tthis.getNode().typeVersion,\n\t\t[],\n\t\trangeString,\n\t);\n\n\treturn remainderSheet.length;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAA0B;AAC1B,yBAA4B;AAE5B,0BAAiC;AAEjC,eAAsB,SAErB,aAIE;AACF,QAAM,sBAAsB,KAAK,iBAAiB,aAAa,GAAG,QAAW;AAAA,IAC5E,cAAc;AAAA,EACf,CAAC;AACD,QAAM,EAAE,MAAM,UAAU,IAAI,KAAK,iBAAiB,aAAa,CAAC;AAIhE,SAAO,MAAM,YAAY,oBAAoB,KAAK,QAAQ,GAAG,WAAW,mBAAmB;AAC5F;AAEO,SAAS,iBAAwC;AACvD,QAAM,EAAE,MAAM,MAAM,IAAI,KAAK,iBAAiB,cAAc,CAAC;AAC7D,QAAM,oBAAgB,sCAAiB,KAAK,QAAQ,GAAG,MAAyB,KAAe;AAE/F,QAAM,cAAc,IAAI,+BAAY,eAAe,IAAI;AAEvD,SAAO;AACR;AAEA,eAAsB,mBAErB,iBACA,aACA,QACA,aACA,WACgC;AAChC,QAAM,YAAY,OAAO;AAEzB,oBAAkB,MAAM,+BAAU;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,QAAQ,EAAE;AAAA,IACf,CAAC;AAAA,IACD;AAAA,IACA;AAAA,MACC,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,cAAc;AAAA,IACf;AAAA,EACD;AAEA,SAAO,gBAAgB,OAAO,CAAC,QAAS,KAAK,MAAM,cAAyB,SAAS;AACtF;AAEA,eAAsB,4BAErB,aACA,WACA,aACA,WACC;AACD,QAAM,iBAAuC,MAAM,+BAAU;AAAA,IAC5D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,CAAC;AAAA,IACD,KAAK,QAAQ,EAAE;AAAA,IACf,CAAC;AAAA,IACD;AAAA,IACA;AAAA,MACC,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,cAAc;AAAA,IACf;AAAA,EACD;AAEA,SAAO,eAAe,OAAO,CAAC,QAAS,KAAK,MAAM,cAAyB,SAAS,EAAE;AACvF;AAEA,eAAsB,WAErB,iBACA,aACA,QACA,cACgC;AAChC,QAAM,YAAY,OAAO;AAEzB,oBAAkB,MAAM,+BAAU;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,QAAQ,EAAE;AAAA,IACf,CAAC;AAAA,IACD;AAAA,IACA;AAAA,EACD;AAEA,SAAO;AACR;AAEA,eAAsB,YAErB,aACA,WACA,aACC;AACD,QAAM,iBAAuC,MAAM,+BAAU;AAAA,IAC5D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,CAAC;AAAA,IACD,KAAK,QAAQ,EAAE;AAAA,IACf,CAAC;AAAA,IACD;AAAA,EACD;AAEA,SAAO,eAAe;AACvB;","names":[]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var evaluationUtils_exports = {};
|
|
20
|
+
__export(evaluationUtils_exports, {
|
|
21
|
+
checkIfEvaluating: () => checkIfEvaluating,
|
|
22
|
+
setMetrics: () => setMetrics,
|
|
23
|
+
setOutput: () => setOutput,
|
|
24
|
+
setOutputs: () => setOutputs
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(evaluationUtils_exports);
|
|
27
|
+
var import_n8n_workflow = require("n8n-workflow");
|
|
28
|
+
var import_evaluationTriggerUtils = require("./evaluationTriggerUtils");
|
|
29
|
+
var import_utils = require("../../Set/v2/helpers/utils");
|
|
30
|
+
async function setOutput() {
|
|
31
|
+
const evaluationNode = this.getNode();
|
|
32
|
+
const parentNodes = this.getParentNodes(evaluationNode.name);
|
|
33
|
+
const evalTrigger = parentNodes.find((node) => node.type === "n8n-nodes-base.evaluationTrigger");
|
|
34
|
+
const evalTriggerOutput = evalTrigger ? this.evaluateExpression(`{{ $('${evalTrigger?.name}').isExecuted }}`, 0) : void 0;
|
|
35
|
+
if (!evalTrigger || !evalTriggerOutput) {
|
|
36
|
+
this.addExecutionHints({
|
|
37
|
+
message: "No outputs were set since the execution didn't start from an evaluation trigger",
|
|
38
|
+
location: "outputPane"
|
|
39
|
+
});
|
|
40
|
+
return [this.getInputData()];
|
|
41
|
+
}
|
|
42
|
+
const outputFields = this.getNodeParameter("outputs.values", 0, []);
|
|
43
|
+
if (outputFields.length === 0) {
|
|
44
|
+
throw new import_n8n_workflow.UserError("No outputs to set", {
|
|
45
|
+
description: "Add outputs to write back to the Google Sheet using the \u2018Add Output\u2019 button"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const googleSheetInstance = import_evaluationTriggerUtils.getGoogleSheet.call(this);
|
|
49
|
+
const googleSheet = await import_evaluationTriggerUtils.getSheet.call(this, googleSheetInstance);
|
|
50
|
+
const evaluationTrigger = this.evaluateExpression(
|
|
51
|
+
`{{ $('${evalTrigger.name}').first().json }}`,
|
|
52
|
+
0
|
|
53
|
+
);
|
|
54
|
+
const rowNumber = evaluationTrigger.row_number === "row_number" ? 1 : evaluationTrigger.row_number;
|
|
55
|
+
const columnNames = Object.keys(evaluationTrigger).filter(
|
|
56
|
+
(key) => key !== "row_number" && key !== "_rowsLeft"
|
|
57
|
+
);
|
|
58
|
+
outputFields.forEach(({ outputName }) => {
|
|
59
|
+
if (!columnNames.includes(outputName)) {
|
|
60
|
+
columnNames.push(outputName);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
await googleSheetInstance.updateRows(
|
|
64
|
+
googleSheet.title,
|
|
65
|
+
[columnNames],
|
|
66
|
+
"RAW",
|
|
67
|
+
// default value for Value Input Mode
|
|
68
|
+
1
|
|
69
|
+
// header row
|
|
70
|
+
);
|
|
71
|
+
const outputs = outputFields.reduce((acc, { outputName, outputValue }) => {
|
|
72
|
+
acc[outputName] = outputValue;
|
|
73
|
+
return acc;
|
|
74
|
+
}, {});
|
|
75
|
+
const preparedData = googleSheetInstance.prepareDataForUpdatingByRowNumber(
|
|
76
|
+
[
|
|
77
|
+
{
|
|
78
|
+
row_number: rowNumber,
|
|
79
|
+
...outputs
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
`${googleSheet.title}!A:Z`,
|
|
83
|
+
[columnNames]
|
|
84
|
+
);
|
|
85
|
+
await googleSheetInstance.batchUpdate(
|
|
86
|
+
preparedData.updateData,
|
|
87
|
+
"RAW"
|
|
88
|
+
// default value for Value Input Mode
|
|
89
|
+
);
|
|
90
|
+
return [this.getInputData()];
|
|
91
|
+
}
|
|
92
|
+
async function setMetrics() {
|
|
93
|
+
const items = this.getInputData();
|
|
94
|
+
const metrics = [];
|
|
95
|
+
for (let i = 0; i < items.length; i++) {
|
|
96
|
+
const dataToSave = this.getNodeParameter("metrics", i, {});
|
|
97
|
+
const newItem = {
|
|
98
|
+
json: {},
|
|
99
|
+
pairedItem: { item: i }
|
|
100
|
+
};
|
|
101
|
+
const newData = Object.fromEntries(
|
|
102
|
+
(dataToSave?.assignments ?? []).map((assignment) => {
|
|
103
|
+
const assignmentValue = typeof assignment.value === "number" ? assignment.value : Number(assignment.value);
|
|
104
|
+
if (isNaN(assignmentValue)) {
|
|
105
|
+
throw new import_n8n_workflow.NodeOperationError(
|
|
106
|
+
this.getNode(),
|
|
107
|
+
`Value for '${assignment.name}' isn't a number`,
|
|
108
|
+
{
|
|
109
|
+
description: `It\u2019s currently '${assignment.value}'. Metrics must be numeric.`
|
|
110
|
+
}
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
if (!assignment.name || isNaN(assignmentValue)) {
|
|
114
|
+
throw new import_n8n_workflow.NodeOperationError(this.getNode(), "Metric name missing", {
|
|
115
|
+
description: "Make sure each metric you define has a name"
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const { name, value } = (0, import_utils.validateEntry)(
|
|
119
|
+
assignment.name,
|
|
120
|
+
assignment.type,
|
|
121
|
+
assignmentValue,
|
|
122
|
+
this.getNode(),
|
|
123
|
+
i,
|
|
124
|
+
false,
|
|
125
|
+
1
|
|
126
|
+
);
|
|
127
|
+
return [name, value];
|
|
128
|
+
})
|
|
129
|
+
);
|
|
130
|
+
const returnItem = import_utils.composeReturnItem.call(
|
|
131
|
+
this,
|
|
132
|
+
i,
|
|
133
|
+
newItem,
|
|
134
|
+
newData,
|
|
135
|
+
{ dotNotation: false, include: "none" },
|
|
136
|
+
1
|
|
137
|
+
);
|
|
138
|
+
metrics.push(returnItem);
|
|
139
|
+
}
|
|
140
|
+
return [metrics];
|
|
141
|
+
}
|
|
142
|
+
async function checkIfEvaluating() {
|
|
143
|
+
const evaluationExecutionResult = [];
|
|
144
|
+
const normalExecutionResult = [];
|
|
145
|
+
const evaluationNode = this.getNode();
|
|
146
|
+
const parentNodes = this.getParentNodes(evaluationNode.name);
|
|
147
|
+
const evalTrigger = parentNodes.find((node) => node.type === "n8n-nodes-base.evaluationTrigger");
|
|
148
|
+
const evalTriggerOutput = evalTrigger ? this.evaluateExpression(`{{ $('${evalTrigger?.name}').isExecuted }}`, 0) : void 0;
|
|
149
|
+
if (evalTriggerOutput) {
|
|
150
|
+
return [this.getInputData(), normalExecutionResult];
|
|
151
|
+
} else {
|
|
152
|
+
return [evaluationExecutionResult, this.getInputData()];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function setOutputs(parameters) {
|
|
156
|
+
if (parameters.operation === "checkIfEvaluating") {
|
|
157
|
+
return [
|
|
158
|
+
{ type: "main", displayName: "Evaluation" },
|
|
159
|
+
{ type: "main", displayName: "Normal" }
|
|
160
|
+
];
|
|
161
|
+
}
|
|
162
|
+
return [{ type: "main" }];
|
|
163
|
+
}
|
|
164
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
165
|
+
0 && (module.exports = {
|
|
166
|
+
checkIfEvaluating,
|
|
167
|
+
setMetrics,
|
|
168
|
+
setOutput,
|
|
169
|
+
setOutputs
|
|
170
|
+
});
|
|
171
|
+
//# sourceMappingURL=evaluationUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Evaluation/utils/evaluationUtils.ts"],"sourcesContent":["import { NodeOperationError, UserError } from 'n8n-workflow';\nimport type {\n\tFieldType,\n\tINodeParameters,\n\tAssignmentCollectionValue,\n\tIDataObject,\n\tIExecuteFunctions,\n\tINodeExecutionData,\n} from 'n8n-workflow';\n\nimport { getGoogleSheet, getSheet } from './evaluationTriggerUtils';\nimport { composeReturnItem, validateEntry } from '../../Set/v2/helpers/utils';\n\nexport async function setOutput(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\tconst evaluationNode = this.getNode();\n\tconst parentNodes = this.getParentNodes(evaluationNode.name);\n\n\tconst evalTrigger = parentNodes.find((node) => node.type === 'n8n-nodes-base.evaluationTrigger');\n\tconst evalTriggerOutput = evalTrigger\n\t\t? this.evaluateExpression(`{{ $('${evalTrigger?.name}').isExecuted }}`, 0)\n\t\t: undefined;\n\n\tif (!evalTrigger || !evalTriggerOutput) {\n\t\tthis.addExecutionHints({\n\t\t\tmessage: \"No outputs were set since the execution didn't start from an evaluation trigger\",\n\t\t\tlocation: 'outputPane',\n\t\t});\n\t\treturn [this.getInputData()];\n\t}\n\n\tconst outputFields = this.getNodeParameter('outputs.values', 0, []) as Array<{\n\t\toutputName: string;\n\t\toutputValue: string;\n\t}>;\n\n\tif (outputFields.length === 0) {\n\t\tthrow new UserError('No outputs to set', {\n\t\t\tdescription: 'Add outputs to write back to the Google Sheet using the ‘Add Output’ button',\n\t\t});\n\t}\n\n\tconst googleSheetInstance = getGoogleSheet.call(this);\n\tconst googleSheet = await getSheet.call(this, googleSheetInstance);\n\n\tconst evaluationTrigger = this.evaluateExpression(\n\t\t`{{ $('${evalTrigger.name}').first().json }}`,\n\t\t0,\n\t) as IDataObject;\n\n\tconst rowNumber =\n\t\tevaluationTrigger.row_number === 'row_number' ? 1 : evaluationTrigger.row_number;\n\n\tconst columnNames = Object.keys(evaluationTrigger).filter(\n\t\t(key) => key !== 'row_number' && key !== '_rowsLeft',\n\t);\n\n\toutputFields.forEach(({ outputName }) => {\n\t\tif (!columnNames.includes(outputName)) {\n\t\t\tcolumnNames.push(outputName);\n\t\t}\n\t});\n\n\tawait googleSheetInstance.updateRows(\n\t\tgoogleSheet.title,\n\t\t[columnNames],\n\t\t'RAW', // default value for Value Input Mode\n\t\t1, // header row\n\t);\n\n\tconst outputs = outputFields.reduce((acc, { outputName, outputValue }) => {\n\t\tacc[outputName] = outputValue;\n\t\treturn acc;\n\t}, {} as IDataObject);\n\n\tconst preparedData = googleSheetInstance.prepareDataForUpdatingByRowNumber(\n\t\t[\n\t\t\t{\n\t\t\t\trow_number: rowNumber,\n\t\t\t\t...outputs,\n\t\t\t},\n\t\t],\n\t\t`${googleSheet.title}!A:Z`,\n\t\t[columnNames],\n\t);\n\n\tawait googleSheetInstance.batchUpdate(\n\t\tpreparedData.updateData,\n\t\t'RAW', // default value for Value Input Mode\n\t);\n\n\treturn [this.getInputData()];\n}\n\nexport async function setMetrics(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\tconst items = this.getInputData();\n\tconst metrics: INodeExecutionData[] = [];\n\n\tfor (let i = 0; i < items.length; i++) {\n\t\tconst dataToSave = this.getNodeParameter('metrics', i, {}) as AssignmentCollectionValue;\n\n\t\tconst newItem: INodeExecutionData = {\n\t\t\tjson: {},\n\t\t\tpairedItem: { item: i },\n\t\t};\n\t\tconst newData = Object.fromEntries(\n\t\t\t(dataToSave?.assignments ?? []).map((assignment) => {\n\t\t\t\tconst assignmentValue =\n\t\t\t\t\ttypeof assignment.value === 'number' ? assignment.value : Number(assignment.value);\n\n\t\t\t\tif (isNaN(assignmentValue)) {\n\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t`Value for '${assignment.name}' isn't a number`,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: `It’s currently '${assignment.value}'. Metrics must be numeric.`,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!assignment.name || isNaN(assignmentValue)) {\n\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Metric name missing', {\n\t\t\t\t\t\tdescription: 'Make sure each metric you define has a name',\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst { name, value } = validateEntry(\n\t\t\t\t\tassignment.name,\n\t\t\t\t\tassignment.type as FieldType,\n\t\t\t\t\tassignmentValue,\n\t\t\t\t\tthis.getNode(),\n\t\t\t\t\ti,\n\t\t\t\t\tfalse,\n\t\t\t\t\t1,\n\t\t\t\t);\n\n\t\t\t\treturn [name, value];\n\t\t\t}),\n\t\t);\n\n\t\tconst returnItem = composeReturnItem.call(\n\t\t\tthis,\n\t\t\ti,\n\t\t\tnewItem,\n\t\t\tnewData,\n\t\t\t{ dotNotation: false, include: 'none' },\n\t\t\t1,\n\t\t);\n\t\tmetrics.push(returnItem);\n\t}\n\n\treturn [metrics];\n}\n\nexport async function checkIfEvaluating(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\tconst evaluationExecutionResult: INodeExecutionData[] = [];\n\tconst normalExecutionResult: INodeExecutionData[] = [];\n\n\tconst evaluationNode = this.getNode();\n\tconst parentNodes = this.getParentNodes(evaluationNode.name);\n\n\tconst evalTrigger = parentNodes.find((node) => node.type === 'n8n-nodes-base.evaluationTrigger');\n\tconst evalTriggerOutput = evalTrigger\n\t\t? this.evaluateExpression(`{{ $('${evalTrigger?.name}').isExecuted }}`, 0)\n\t\t: undefined;\n\n\tif (evalTriggerOutput) {\n\t\treturn [this.getInputData(), normalExecutionResult];\n\t} else {\n\t\treturn [evaluationExecutionResult, this.getInputData()];\n\t}\n}\n\nexport function setOutputs(parameters: INodeParameters) {\n\tif (parameters.operation === 'checkIfEvaluating') {\n\t\treturn [\n\t\t\t{ type: 'main', displayName: 'Evaluation' },\n\t\t\t{ type: 'main', displayName: 'Normal' },\n\t\t];\n\t}\n\n\treturn [{ type: 'main' }];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -209,14 +209,15 @@ class ExecuteWorkflowTrigger {
|
|
|
209
209
|
} else {
|
|
210
210
|
const newParams = (0, import_GenericFunctions.getFieldEntries)(this);
|
|
211
211
|
const newKeys = new Set(newParams.fields.map((x) => x.name));
|
|
212
|
-
const itemsInSchema = inputData.map((
|
|
212
|
+
const itemsInSchema = inputData.map(({ json, binary }, index) => ({
|
|
213
213
|
json: {
|
|
214
214
|
...Object.fromEntries(newParams.fields.map((x) => [x.name, import_constants.FALLBACK_DEFAULT_VALUE])),
|
|
215
215
|
// Need to trim to the expected schema to support legacy Execute Workflow callers passing through all their data
|
|
216
216
|
// which we do not want to expose past this node.
|
|
217
|
-
...import_lodash.default.pickBy(
|
|
217
|
+
...import_lodash.default.pickBy(json, (_value, key) => newKeys.has(key))
|
|
218
218
|
},
|
|
219
|
-
index
|
|
219
|
+
index,
|
|
220
|
+
binary
|
|
220
221
|
}));
|
|
221
222
|
return [itemsInSchema];
|
|
222
223
|
}
|