n8n-nodes-base 1.91.1 → 1.93.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/Aws.credentials.js +0 -2
- package/dist/credentials/Aws.credentials.js.map +1 -1
- package/dist/credentials/JinaAiApi.credentials.js +61 -0
- package/dist/credentials/JinaAiApi.credentials.js.map +1 -0
- package/dist/credentials/MicrosoftAzureCosmosDbSharedKeyApi.credentials.js +1 -1
- package/dist/credentials/MicrosoftAzureCosmosDbSharedKeyApi.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 +18 -1
- package/dist/known/nodes.json +28 -0
- package/dist/methods/defined.json +6 -0
- package/dist/methods/referenced.json +3 -0
- package/dist/nodes/Affinity/__schema__/v1.0.0/listEntry/getAll.json +1 -4
- package/dist/nodes/Airtop/__schema__/v1.0.0/extraction/query.json +47 -0
- package/dist/nodes/Aws/Cognito/AwsCognito.node.js +102 -0
- package/dist/nodes/Aws/Cognito/AwsCognito.node.js.map +1 -0
- package/dist/nodes/Aws/Cognito/AwsCognito.node.json +18 -0
- package/dist/nodes/Aws/Cognito/cognito.svg +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/common.description.js +160 -0
- package/dist/nodes/Aws/Cognito/descriptions/common.description.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/Group.resource.js +189 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/Group.resource.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/create.operation.js +126 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/create.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/delete.operation.js +47 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/delete.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/get.operation.js +54 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/get.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/getAll.operation.js +95 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/getAll.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/update.operation.js +120 -0
- package/dist/nodes/Aws/Cognito/descriptions/group/update.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/index.js +45 -0
- package/dist/nodes/Aws/Cognito/descriptions/index.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/User.resource.js +263 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/User.resource.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/addToGroup.operation.js +51 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/addToGroup.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/create.operation.js +299 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/create.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/delete.operation.js +47 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/delete.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/get.operation.js +54 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/get.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/getAll.operation.js +187 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/getAll.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/removeFromGroup.operation.js +60 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/removeFromGroup.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/update.operation.js +189 -0
- package/dist/nodes/Aws/Cognito/descriptions/user/update.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/userPool/UserPool.resource.js +81 -0
- package/dist/nodes/Aws/Cognito/descriptions/userPool/UserPool.resource.js.map +1 -0
- package/dist/nodes/Aws/Cognito/descriptions/userPool/get.operation.js +50 -0
- package/dist/nodes/Aws/Cognito/descriptions/userPool/get.operation.js.map +1 -0
- package/dist/nodes/Aws/Cognito/helpers/constants.js +91 -0
- package/dist/nodes/Aws/Cognito/helpers/constants.js.map +1 -0
- package/dist/nodes/Aws/Cognito/helpers/errorHandler.js +109 -0
- package/dist/nodes/Aws/Cognito/helpers/errorHandler.js.map +1 -0
- package/dist/nodes/Aws/Cognito/helpers/interfaces.js +17 -0
- package/dist/nodes/Aws/Cognito/helpers/interfaces.js.map +1 -0
- package/dist/nodes/Aws/Cognito/helpers/utils.js +318 -0
- package/dist/nodes/Aws/Cognito/helpers/utils.js.map +1 -0
- package/dist/nodes/Aws/Cognito/methods/index.js +39 -0
- package/dist/nodes/Aws/Cognito/methods/index.js.map +1 -0
- package/dist/nodes/Aws/Cognito/methods/listSearch.js +157 -0
- package/dist/nodes/Aws/Cognito/methods/listSearch.js.map +1 -0
- package/dist/nodes/Aws/Cognito/transport/index.js +72 -0
- package/dist/nodes/Aws/Cognito/transport/index.js.map +1 -0
- 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/Aws/S3/__schema__/v2.0.0/file/getAll.json +1 -7
- package/dist/nodes/BambooHr/__schema__/v1.0.0/employee/get.json +10 -1
- package/dist/nodes/Cron/Cron.node.js +1 -1
- package/dist/nodes/Cron/Cron.node.js.map +1 -1
- package/dist/nodes/Dropcontact/__schema__/v1.0.0/contact/enrich.json +7 -15
- 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/EmailSend/__schema__/v2.1.0/email/send.json +7 -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/Github/__schema__/v1.1.0/file/list.json +44 -0
- package/dist/nodes/Gitlab/__schema__/v1.0.0/file/get.json +1 -4
- package/dist/nodes/Google/BusinessProfile/__schema__/v1.0.0/review/getAll.json +1 -12
- package/dist/nodes/Google/Calendar/__schema__/v1.3.0/event/getAll.json +4 -7
- package/dist/nodes/Google/Contacts/__schema__/v1.0.0/contact/getAll.json +1 -12
- package/dist/nodes/Google/Drive/__schema__/v3.0.0/file/download.json +9 -0
- package/dist/nodes/Google/Firebase/CloudFirestore/__schema__/v1.1.0/document/query.json +7 -1
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/addLabels.json +1 -13
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/get.json +7 -1
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/getAll.json +29 -113
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/thread/get.json +1 -60
- package/dist/nodes/Google/Sheet/GoogleSheets.node.js +3 -2
- package/dist/nodes/Google/Sheet/GoogleSheets.node.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 -105
- 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 +21 -18
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/helpers/GoogleSheet.js +4 -0
- package/dist/nodes/Google/Sheet/v2/helpers/GoogleSheet.js.map +1 -1
- package/dist/nodes/Google/Task/__schema__/v1.0.0/task/getAll.json +1 -4
- package/dist/nodes/Google/YouTube/YouTube.node.js +4 -2
- package/dist/nodes/Google/YouTube/YouTube.node.js.map +1 -1
- package/dist/nodes/Google/YouTube/__schema__/v1.0.0/video/get.json +35 -1
- package/dist/nodes/Hubspot/__schema__/v2.1.0/company/getAll.json +4 -1
- package/dist/nodes/Hubspot/__schema__/v2.1.0/contact/search.json +1 -4
- package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/getAll.json +45 -11
- package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/search.json +2 -5
- package/dist/nodes/Hubspot/__schema__/v2.1.0/ticket/get.json +4 -4
- package/dist/nodes/Interval/Interval.node.js +1 -1
- package/dist/nodes/Interval/Interval.node.js.map +1 -1
- package/dist/nodes/ItemLists/__schema__/v3.0.0/itemList/limit.json +4 -1
- package/dist/nodes/JinaAI/JinaAi.node.js +486 -0
- package/dist/nodes/JinaAI/JinaAi.node.js.map +1 -0
- package/dist/nodes/JinaAI/JinaAi.node.json +18 -0
- package/dist/nodes/JinaAI/jinaAi.dark.svg +6 -0
- package/dist/nodes/JinaAI/jinaAi.svg +6 -0
- package/dist/nodes/Jira/__schema__/v1.0.0/issue/get.json +259 -1
- package/dist/nodes/Jira/__schema__/v1.0.0/issue/getAll.json +57 -37
- package/dist/nodes/Linear/__schema__/v1.0.0/issue/getAll.json +1 -12
- 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/Microsoft/AzureCosmosDb/AzureCosmosDb.node.json +2 -2
- package/dist/nodes/Microsoft/Entra/MicrosoftEntra.node.js +2 -2
- package/dist/nodes/Microsoft/Entra/MicrosoftEntra.node.js.map +1 -1
- package/dist/nodes/Microsoft/Entra/__schema__/v1.0.0/user/getAll.json +1 -7
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/event/getAll.json +4 -1
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/folderMessage/getAll.json +8 -47
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/get.json +124 -1
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/getAll.json +40 -20
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/sendAndWait.json +12 -11
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/messageAttachment/get.json +13 -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/Storage/__schema__/v1.0.0/blob/getAll.json +44 -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/__schema__/v2.0.0/channel/getAll.json +1 -4
- 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/Microsoft/ToDo/__schema__/v1.0.0/task/getAll.json +21 -5
- package/dist/nodes/Notion/__schema__/v2.2.0/database/get.json +149 -2
- package/dist/nodes/Odoo/__schema__/v1.0.0/contact/getAll.json +10 -1
- package/dist/nodes/Odoo/__schema__/v1.0.0/custom/getAll.json +1 -4
- package/dist/nodes/Odoo/__schema__/v1.0.0/opportunity/getAll.json +49 -1
- package/dist/nodes/OpenAi/__schema__/v1.1.0/chat/complete.json +1 -29
- package/dist/nodes/Pipedrive/__schema__/v1.0.0/organization/search.json +20 -25
- package/dist/nodes/Pipedrive/__schema__/v1.0.0/person/search.json +1 -18
- package/dist/nodes/Plivo/__schema__/v1.0.0/call/make.json +15 -0
- 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/QuickBooks/__schema__/v1.0.0/transaction/getReport.json +1 -4
- 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/Salesforce/__schema__/v1.0.0/customObject/getAll.json +2 -2
- package/dist/nodes/Salesforce/__schema__/v1.0.0/opportunity/getAll.json +5 -2
- package/dist/nodes/Salesforce/__schema__/v1.0.0/task/getAll.json +4 -1
- package/dist/nodes/Schedule/ScheduleTrigger.node.js +1 -1
- package/dist/nodes/Schedule/ScheduleTrigger.node.js.map +1 -1
- package/dist/nodes/SeaTable/__schema__/v2.0.0/row/list.json +30 -0
- package/dist/nodes/ServiceNow/__schema__/v1.0.0/tableRecord/getAll.json +1 -4
- package/dist/nodes/Slack/__schema__/v2.3.0/channel/history.json +49 -3
- package/dist/nodes/Slack/__schema__/v2.3.0/message/post.json +4 -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/Ssh/__schema__/v1.0.0/command/execute.json +4 -1
- package/dist/nodes/Strapi/__schema__/v1.0.0/entry/get.json +32 -0
- package/dist/nodes/Strapi/__schema__/v1.0.0/entry/getAll.json +1 -4
- package/dist/nodes/Telegram/__schema__/v1.2.0/chat/get.json +27 -1
- package/dist/nodes/Telegram/__schema__/v1.2.0/chat/member.json +7 -1
- package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendMessage.json +1 -4
- package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendPhoto.json +4 -1
- package/dist/nodes/Trello/__schema__/v1.0.0/list/getAll.json +7 -1
- package/dist/nodes/Trello/__schema__/v1.0.0/list/getCards.json +13 -1
- package/dist/nodes/Wordpress/PageDescription.js +0 -17
- package/dist/nodes/Wordpress/PageDescription.js.map +1 -1
- package/dist/nodes/Wordpress/__schema__/v1.0.0/post/get.json +7 -1
- package/dist/nodes/Zoho/__schema__/v1.0.0/contact/getAll.json +15 -16
- package/dist/nodes/Zoho/__schema__/v1.0.0/lead/getAll.json +1 -122
- package/dist/nodes/Zoom/__schema__/v1.0.0/meeting/getAll.json +1 -4
- package/dist/types/credentials.json +8 -7
- package/dist/types/nodes.json +29 -22
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +12 -2
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
- package/package.json +16 -9
- /package/dist/{credentials/icons/SharePoint.svg → nodes/Microsoft/SharePoint/microsoftSharePoint.svg} +0 -0
|
@@ -18,7 +18,9 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var GoogleSheetsTrigger_node_exports = {};
|
|
20
20
|
__export(GoogleSheetsTrigger_node_exports, {
|
|
21
|
-
GoogleSheetsTrigger: () => GoogleSheetsTrigger
|
|
21
|
+
GoogleSheetsTrigger: () => GoogleSheetsTrigger,
|
|
22
|
+
document: () => document,
|
|
23
|
+
sheet: () => sheet
|
|
22
24
|
});
|
|
23
25
|
module.exports = __toCommonJS(GoogleSheetsTrigger_node_exports);
|
|
24
26
|
var import_n8n_workflow = require("n8n-workflow");
|
|
@@ -28,6 +30,111 @@ var import_listSearch = require("./v2/methods/listSearch");
|
|
|
28
30
|
var import_loadOptions = require("./v2/methods/loadOptions");
|
|
29
31
|
var import_transport = require("./v2/transport");
|
|
30
32
|
var import_constants = require("../constants");
|
|
33
|
+
const document = {
|
|
34
|
+
displayName: "Document",
|
|
35
|
+
name: "documentId",
|
|
36
|
+
type: "resourceLocator",
|
|
37
|
+
default: { mode: "list", value: "" },
|
|
38
|
+
required: true,
|
|
39
|
+
modes: [
|
|
40
|
+
{
|
|
41
|
+
displayName: "From List",
|
|
42
|
+
name: "list",
|
|
43
|
+
type: "list",
|
|
44
|
+
typeOptions: {
|
|
45
|
+
searchListMethod: "spreadSheetsSearch",
|
|
46
|
+
searchable: true
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
displayName: "By URL",
|
|
51
|
+
name: "url",
|
|
52
|
+
type: "string",
|
|
53
|
+
extractValue: {
|
|
54
|
+
type: "regex",
|
|
55
|
+
regex: import_constants.GOOGLE_DRIVE_FILE_URL_REGEX
|
|
56
|
+
},
|
|
57
|
+
validation: [
|
|
58
|
+
{
|
|
59
|
+
type: "regex",
|
|
60
|
+
properties: {
|
|
61
|
+
regex: import_constants.GOOGLE_DRIVE_FILE_URL_REGEX,
|
|
62
|
+
errorMessage: "Not a valid Google Drive File URL"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
displayName: "By ID",
|
|
69
|
+
name: "id",
|
|
70
|
+
type: "string",
|
|
71
|
+
validation: [
|
|
72
|
+
{
|
|
73
|
+
type: "regex",
|
|
74
|
+
properties: {
|
|
75
|
+
regex: "[a-zA-Z0-9\\-_]{2,}",
|
|
76
|
+
errorMessage: "Not a valid Google Drive File ID"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
url: "=https://docs.google.com/spreadsheets/d/{{$value}}/edit"
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
};
|
|
84
|
+
const sheet = {
|
|
85
|
+
displayName: "Sheet",
|
|
86
|
+
name: "sheetName",
|
|
87
|
+
type: "resourceLocator",
|
|
88
|
+
default: { mode: "list", value: "" },
|
|
89
|
+
// default: '', //empty string set to progresivly reveal fields
|
|
90
|
+
required: true,
|
|
91
|
+
typeOptions: {
|
|
92
|
+
loadOptionsDependsOn: ["documentId.value"]
|
|
93
|
+
},
|
|
94
|
+
modes: [
|
|
95
|
+
{
|
|
96
|
+
displayName: "From List",
|
|
97
|
+
name: "list",
|
|
98
|
+
type: "list",
|
|
99
|
+
typeOptions: {
|
|
100
|
+
searchListMethod: "sheetsSearch",
|
|
101
|
+
searchable: false
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
displayName: "By URL",
|
|
106
|
+
name: "url",
|
|
107
|
+
type: "string",
|
|
108
|
+
extractValue: {
|
|
109
|
+
type: "regex",
|
|
110
|
+
regex: import_constants.GOOGLE_SHEETS_SHEET_URL_REGEX
|
|
111
|
+
},
|
|
112
|
+
validation: [
|
|
113
|
+
{
|
|
114
|
+
type: "regex",
|
|
115
|
+
properties: {
|
|
116
|
+
regex: import_constants.GOOGLE_SHEETS_SHEET_URL_REGEX,
|
|
117
|
+
errorMessage: "Not a valid Sheet URL"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
displayName: "By ID",
|
|
124
|
+
name: "id",
|
|
125
|
+
type: "string",
|
|
126
|
+
validation: [
|
|
127
|
+
{
|
|
128
|
+
type: "regex",
|
|
129
|
+
properties: {
|
|
130
|
+
regex: "((gid=)?[0-9]{1,})",
|
|
131
|
+
errorMessage: "Not a valid Sheet ID"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
};
|
|
31
138
|
class GoogleSheetsTrigger {
|
|
32
139
|
constructor() {
|
|
33
140
|
this.description = {
|
|
@@ -70,111 +177,8 @@ class GoogleSheetsTrigger {
|
|
|
70
177
|
],
|
|
71
178
|
default: "triggerOAuth2"
|
|
72
179
|
},
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
name: "documentId",
|
|
76
|
-
type: "resourceLocator",
|
|
77
|
-
default: { mode: "list", value: "" },
|
|
78
|
-
required: true,
|
|
79
|
-
modes: [
|
|
80
|
-
{
|
|
81
|
-
displayName: "From List",
|
|
82
|
-
name: "list",
|
|
83
|
-
type: "list",
|
|
84
|
-
typeOptions: {
|
|
85
|
-
searchListMethod: "spreadSheetsSearch",
|
|
86
|
-
searchable: true
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
displayName: "By URL",
|
|
91
|
-
name: "url",
|
|
92
|
-
type: "string",
|
|
93
|
-
extractValue: {
|
|
94
|
-
type: "regex",
|
|
95
|
-
regex: import_constants.GOOGLE_DRIVE_FILE_URL_REGEX
|
|
96
|
-
},
|
|
97
|
-
validation: [
|
|
98
|
-
{
|
|
99
|
-
type: "regex",
|
|
100
|
-
properties: {
|
|
101
|
-
regex: import_constants.GOOGLE_DRIVE_FILE_URL_REGEX,
|
|
102
|
-
errorMessage: "Not a valid Google Drive File URL"
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
]
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
displayName: "By ID",
|
|
109
|
-
name: "id",
|
|
110
|
-
type: "string",
|
|
111
|
-
validation: [
|
|
112
|
-
{
|
|
113
|
-
type: "regex",
|
|
114
|
-
properties: {
|
|
115
|
-
regex: "[a-zA-Z0-9\\-_]{2,}",
|
|
116
|
-
errorMessage: "Not a valid Google Drive File ID"
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
],
|
|
120
|
-
url: "=https://docs.google.com/spreadsheets/d/{{$value}}/edit"
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
displayName: "Sheet",
|
|
126
|
-
name: "sheetName",
|
|
127
|
-
type: "resourceLocator",
|
|
128
|
-
default: { mode: "list", value: "" },
|
|
129
|
-
// default: '', //empty string set to progresivly reveal fields
|
|
130
|
-
required: true,
|
|
131
|
-
typeOptions: {
|
|
132
|
-
loadOptionsDependsOn: ["documentId.value"]
|
|
133
|
-
},
|
|
134
|
-
modes: [
|
|
135
|
-
{
|
|
136
|
-
displayName: "From List",
|
|
137
|
-
name: "list",
|
|
138
|
-
type: "list",
|
|
139
|
-
typeOptions: {
|
|
140
|
-
searchListMethod: "sheetsSearch",
|
|
141
|
-
searchable: false
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
displayName: "By URL",
|
|
146
|
-
name: "url",
|
|
147
|
-
type: "string",
|
|
148
|
-
extractValue: {
|
|
149
|
-
type: "regex",
|
|
150
|
-
regex: import_constants.GOOGLE_SHEETS_SHEET_URL_REGEX
|
|
151
|
-
},
|
|
152
|
-
validation: [
|
|
153
|
-
{
|
|
154
|
-
type: "regex",
|
|
155
|
-
properties: {
|
|
156
|
-
regex: import_constants.GOOGLE_SHEETS_SHEET_URL_REGEX,
|
|
157
|
-
errorMessage: "Not a valid Sheet URL"
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
]
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
displayName: "By ID",
|
|
164
|
-
name: "id",
|
|
165
|
-
type: "string",
|
|
166
|
-
validation: [
|
|
167
|
-
{
|
|
168
|
-
type: "regex",
|
|
169
|
-
properties: {
|
|
170
|
-
regex: "((gid=)?[0-9]{1,})",
|
|
171
|
-
errorMessage: "Not a valid Sheet ID"
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
]
|
|
175
|
-
}
|
|
176
|
-
]
|
|
177
|
-
},
|
|
180
|
+
document,
|
|
181
|
+
sheet,
|
|
178
182
|
{
|
|
179
183
|
displayName: "Trigger On",
|
|
180
184
|
name: "event",
|
|
@@ -623,6 +627,8 @@ class GoogleSheetsTrigger {
|
|
|
623
627
|
}
|
|
624
628
|
// Annotate the CommonJS export names for ESM import in node:
|
|
625
629
|
0 && (module.exports = {
|
|
626
|
-
GoogleSheetsTrigger
|
|
630
|
+
GoogleSheetsTrigger,
|
|
631
|
+
document,
|
|
632
|
+
sheet
|
|
627
633
|
});
|
|
628
634
|
//# sourceMappingURL=GoogleSheetsTrigger.node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../nodes/Google/Sheet/GoogleSheetsTrigger.node.ts"],"sourcesContent":["import type {\n\tIDataObject,\n\tINodeExecutionData,\n\tINodeType,\n\tINodeTypeDescription,\n\tIPollFunctions,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\n\nimport {\n\tarrayOfArraysToJson,\n\tBINARY_MIME_TYPE,\n\tcompareRevisions,\n\tgetRevisionFile,\n\tsheetBinaryToArrayOfArrays,\n} from './GoogleSheetsTrigger.utils';\nimport { GoogleSheet } from './v2/helpers/GoogleSheet';\nimport type { ResourceLocator, ValueRenderOption } from './v2/helpers/GoogleSheets.types';\nimport { sheetsSearch, spreadSheetsSearch } from './v2/methods/listSearch';\nimport { getSheetHeaderRowAndSkipEmpty } from './v2/methods/loadOptions';\nimport { apiRequest } from './v2/transport';\nimport { GOOGLE_DRIVE_FILE_URL_REGEX, GOOGLE_SHEETS_SHEET_URL_REGEX } from '../constants';\n\nexport class GoogleSheetsTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Google Sheets Trigger',\n\t\tname: 'googleSheetsTrigger',\n\t\ticon: 'file:googleSheets.svg',\n\t\tgroup: ['trigger'],\n\t\tversion: 1,\n\t\tsubtitle: '={{($parameter[\"event\"])}}',\n\t\tdescription: 'Starts the workflow when Google Sheets events occur',\n\t\tdefaults: {\n\t\t\tname: 'Google Sheets Trigger',\n\t\t},\n\t\tinputs: [],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'googleSheetsTriggerOAuth2Api',\n\t\t\t\trequired: true,\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\tauthentication: ['triggerOAuth2'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tpolling: true,\n\t\tproperties: [\n\t\t\t// trigger shared logic with GoogleSheets node, leaving this here for compatibility\n\t\t\t{\n\t\t\t\tdisplayName: 'Authentication',\n\t\t\t\tname: 'authentication',\n\t\t\t\ttype: 'hidden',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\tname: 'OAuth2 (recommended)',\n\t\t\t\t\t\tvalue: 'triggerOAuth2',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'triggerOAuth2',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Document',\n\t\t\t\tname: 'documentId',\n\t\t\t\ttype: 'resourceLocator',\n\t\t\t\tdefault: { mode: 'list', value: '' },\n\t\t\t\trequired: true,\n\t\t\t\tmodes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'From List',\n\t\t\t\t\t\tname: 'list',\n\t\t\t\t\t\ttype: 'list',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tsearchListMethod: 'spreadSheetsSearch',\n\t\t\t\t\t\t\tsearchable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'By URL',\n\t\t\t\t\t\tname: 'url',\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\textractValue: {\n\t\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\t\tregex: GOOGLE_DRIVE_FILE_URL_REGEX,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalidation: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tregex: GOOGLE_DRIVE_FILE_URL_REGEX,\n\t\t\t\t\t\t\t\t\terrorMessage: 'Not a valid Google Drive File URL',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'By ID',\n\t\t\t\t\t\tname: 'id',\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tvalidation: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tregex: '[a-zA-Z0-9\\\\-_]{2,}',\n\t\t\t\t\t\t\t\t\terrorMessage: 'Not a valid Google Drive File ID',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\turl: '=https://docs.google.com/spreadsheets/d/{{$value}}/edit',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Sheet',\n\t\t\t\tname: 'sheetName',\n\t\t\t\ttype: 'resourceLocator',\n\t\t\t\tdefault: { mode: 'list', value: '' },\n\t\t\t\t// default: '', //empty string set to progresivly reveal fields\n\t\t\t\trequired: true,\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsDependsOn: ['documentId.value'],\n\t\t\t\t},\n\t\t\t\tmodes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'From List',\n\t\t\t\t\t\tname: 'list',\n\t\t\t\t\t\ttype: 'list',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tsearchListMethod: 'sheetsSearch',\n\t\t\t\t\t\t\tsearchable: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'By URL',\n\t\t\t\t\t\tname: 'url',\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\textractValue: {\n\t\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\t\tregex: GOOGLE_SHEETS_SHEET_URL_REGEX,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalidation: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tregex: GOOGLE_SHEETS_SHEET_URL_REGEX,\n\t\t\t\t\t\t\t\t\terrorMessage: 'Not a valid Sheet URL',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'By ID',\n\t\t\t\t\t\tname: 'id',\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tvalidation: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'regex',\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tregex: '((gid=)?[0-9]{1,})',\n\t\t\t\t\t\t\t\t\terrorMessage: 'Not a valid Sheet ID',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Trigger On',\n\t\t\t\tname: 'event',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t\"It will be triggered also by newly created columns (if the 'Columns to Watch' option is not set)\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Row Added',\n\t\t\t\t\t\tvalue: 'rowAdded',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Row Updated',\n\t\t\t\t\t\tvalue: 'rowUpdate',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Row Added or Updated',\n\t\t\t\t\t\tvalue: 'anyUpdate',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'anyUpdate',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Include in Output',\n\t\t\t\tname: 'includeInOutput',\n\t\t\t\ttype: 'options',\n\t\t\t\tdefault: 'new',\n\t\t\t\tdescription: 'This option will be effective only when automatically executing the workflow',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'New Version',\n\t\t\t\t\t\tvalue: 'new',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Old Version',\n\t\t\t\t\t\tvalue: 'old',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Both Versions',\n\t\t\t\t\t\tvalue: 'both',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\thide: {\n\t\t\t\t\t\tevent: ['rowAdded'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Options',\n\t\t\t\tname: 'options',\n\t\t\t\ttype: 'collection',\n\t\t\t\tplaceholder: 'Add option',\n\t\t\t\tdefault: {},\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Columns to Watch',\n\t\t\t\t\t\tname: 'columnsToWatch',\n\t\t\t\t\t\ttype: 'multiOptions',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tloadOptionsDependsOn: ['sheetName.value'],\n\t\t\t\t\t\t\tloadOptionsMethod: 'getSheetHeaderRowAndSkipEmpty',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t'/event': ['anyUpdate', 'rowUpdate'],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Data Location on Sheet',\n\t\t\t\t\t\tname: 'dataLocationOnSheet',\n\t\t\t\t\t\ttype: 'fixedCollection',\n\t\t\t\t\t\tplaceholder: 'Select Range',\n\t\t\t\t\t\tdefault: { values: { rangeDefinition: 'specifyRangeA1' } },\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Values',\n\t\t\t\t\t\t\t\tname: 'values',\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Range Definition',\n\t\t\t\t\t\t\t\t\t\tname: 'rangeDefinition',\n\t\t\t\t\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Specify Range (A1 Notation)',\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: 'specifyRangeA1',\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: 'Manually specify the data range',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Specify Range (Rows)',\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: 'specifyRange',\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: 'Manually specify the data range',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Header Row',\n\t\t\t\t\t\t\t\t\t\tname: 'headerRow',\n\t\t\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdefault: 1,\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t'Index of the row which contains the keys. Starts at 1. The incoming node data is matched to the keys for assignment. The matching is case sensitive.',\n\t\t\t\t\t\t\t\t\t\thint: 'First row is row 1',\n\t\t\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\t\t\trangeDefinition: ['specifyRange'],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'First Data Row',\n\t\t\t\t\t\t\t\t\t\tname: 'firstDataRow',\n\t\t\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdefault: 2,\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t'Index of the first row which contains the actual data and not the keys. Starts with 1.',\n\t\t\t\t\t\t\t\t\t\thint: 'First row is row 1',\n\t\t\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\t\t\trangeDefinition: ['specifyRange'],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Range',\n\t\t\t\t\t\t\t\t\t\tname: 'range',\n\t\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\t\t\t\t\tplaceholder: 'A:Z',\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t'The table range to read from or to append data to. See the Google <a href=\"https://developers.google.com/sheets/api/guides/values#writing\">documentation</a> for the details.',\n\t\t\t\t\t\t\t\t\t\thint: 'You can specify both the rows and the columns, e.g. C4:E7',\n\t\t\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\t\t\trangeDefinition: ['specifyRangeA1'],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Value Render',\n\t\t\t\t\t\tname: 'valueRender',\n\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Unformatted',\n\t\t\t\t\t\t\t\tvalue: 'UNFORMATTED_VALUE',\n\t\t\t\t\t\t\t\tdescription: 'Values will be calculated, but not formatted in the reply',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Formatted',\n\t\t\t\t\t\t\t\tvalue: 'FORMATTED_VALUE',\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\"Values will be formatted and calculated according to the cell's formatting (based on the spreadsheet's locale)\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Formula',\n\t\t\t\t\t\t\t\tvalue: 'FORMULA',\n\t\t\t\t\t\t\t\tdescription: 'Values will not be calculated. The reply will include the formulas.',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdefault: 'UNFORMATTED_VALUE',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Determines how values will be rendered in the output. <a href=\"https://developers.google.com/sheets/api/reference/rest/v4/ValueRenderOption\" target=\"_blank\">More info</a>.',\n\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\thide: {\n\t\t\t\t\t\t\t\t'/event': ['anyUpdate', 'rowUpdate'],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'DateTime Render',\n\t\t\t\t\t\tname: 'dateTimeRenderOption',\n\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Serial Number',\n\t\t\t\t\t\t\t\tvalue: 'SERIAL_NUMBER',\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t'Fields will be returned as doubles in \"serial number\" format (as popularized by Lotus 1-2-3)',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Formatted String',\n\t\t\t\t\t\t\t\tvalue: 'FORMATTED_STRING',\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t'Fields will be rendered as strings in their given number format (which depends on the spreadsheet locale)',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdefault: 'SERIAL_NUMBER',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Determines how dates should be rendered in the output. <a href=\"https://developers.google.com/sheets/api/reference/rest/v4/DateTimeRenderOption\" target=\"_blank\">More info</a>.',\n\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\thide: {\n\t\t\t\t\t\t\t\t'/event': ['anyUpdate', 'rowUpdate'],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t};\n\n\tmethods = {\n\t\tlistSearch: { spreadSheetsSearch, sheetsSearch },\n\t\tloadOptions: { getSheetHeaderRowAndSkipEmpty },\n\t};\n\n\tasync poll(this: IPollFunctions): Promise<INodeExecutionData[][] | null> {\n\t\ttry {\n\t\t\tconst workflowStaticData = this.getWorkflowStaticData('node');\n\t\t\tconst event = this.getNodeParameter('event', 0) as string;\n\n\t\t\tconst documentId = this.getNodeParameter('documentId', undefined, {\n\t\t\t\textractValue: true,\n\t\t\t}) as string;\n\n\t\t\tconst sheetWithinDocument = this.getNodeParameter('sheetName', undefined, {\n\t\t\t\textractValue: true,\n\t\t\t}) as string;\n\t\t\tconst { mode: sheetMode } = this.getNodeParameter('sheetName', 0) as {\n\t\t\t\tmode: ResourceLocator;\n\t\t\t};\n\n\t\t\tconst googleSheet = new GoogleSheet(documentId, this);\n\t\t\tconst { sheetId, title: sheetName } = await googleSheet.spreadsheetGetSheet(\n\t\t\t\tthis.getNode(),\n\t\t\t\tsheetMode,\n\t\t\t\tsheetWithinDocument,\n\t\t\t);\n\n\t\t\tconst options = this.getNodeParameter('options') as IDataObject;\n\n\t\t\t// If the documentId or sheetId changed, reset the workflow static data\n\t\t\tif (\n\t\t\t\tthis.getMode() !== 'manual' &&\n\t\t\t\t(workflowStaticData.documentId !== documentId || workflowStaticData.sheetId !== sheetId)\n\t\t\t) {\n\t\t\t\tworkflowStaticData.documentId = documentId;\n\t\t\t\tworkflowStaticData.sheetId = sheetId;\n\t\t\t\tworkflowStaticData.lastRevision = undefined;\n\t\t\t\tworkflowStaticData.lastRevisionLink = undefined;\n\t\t\t\tworkflowStaticData.lastIndexChecked = undefined;\n\t\t\t}\n\n\t\t\tconst previousRevision = workflowStaticData.lastRevision as number;\n\t\t\tconst previousRevisionLink = workflowStaticData.lastRevisionLink as string;\n\n\t\t\tif (event !== 'rowAdded') {\n\t\t\t\tlet pageToken;\n\t\t\t\tdo {\n\t\t\t\t\tconst { revisions, nextPageToken } = await apiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfields: 'revisions(id, exportLinks), nextPageToken',\n\t\t\t\t\t\t\tpageToken,\n\t\t\t\t\t\t\tpageSize: 1000,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`https://www.googleapis.com/drive/v3/files/${documentId}/revisions`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (nextPageToken) {\n\t\t\t\t\t\tpageToken = nextPageToken as string;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpageToken = undefined;\n\n\t\t\t\t\t\tconst lastRevision = +revisions[revisions.length - 1].id;\n\t\t\t\t\t\tif (lastRevision <= previousRevision) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (this.getMode() !== 'manual') {\n\t\t\t\t\t\t\t\tworkflowStaticData.lastRevision = lastRevision;\n\t\t\t\t\t\t\t\tworkflowStaticData.lastRevisionLink =\n\t\t\t\t\t\t\t\t\trevisions[revisions.length - 1].exportLinks[BINARY_MIME_TYPE];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} while (pageToken);\n\t\t\t}\n\n\t\t\tlet range = 'A:ZZZ';\n\t\t\tlet keyRow = 1;\n\t\t\tlet startIndex = 2;\n\n\t\t\tlet rangeDefinition = '';\n\n\t\t\tconst [from, to] = range.split(':');\n\t\t\tlet keyRange = `${from}${keyRow}:${to}${keyRow}`;\n\t\t\tlet rangeToCheck = `${from}${keyRow}:${to}`;\n\n\t\t\tif (options.dataLocationOnSheet) {\n\t\t\t\tconst locationDefine = (options.dataLocationOnSheet as IDataObject).values as IDataObject;\n\t\t\t\trangeDefinition = locationDefine.rangeDefinition as string;\n\n\t\t\t\tif (rangeDefinition === 'specifyRangeA1') {\n\t\t\t\t\tif (locationDefine.range === '') {\n\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\"The field 'Range' is empty, please provide a range\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\trange = locationDefine.range as string;\n\t\t\t\t}\n\n\t\t\t\tif (rangeDefinition === 'specifyRange') {\n\t\t\t\t\tkeyRow = parseInt(locationDefine.headerRow as string, 10);\n\t\t\t\t\tstartIndex = parseInt(locationDefine.firstDataRow as string, 10);\n\t\t\t\t}\n\n\t\t\t\tconst [rangeFrom, rangeTo] = range.split(':');\n\t\t\t\tconst cellDataFrom = rangeFrom.match(/([a-zA-Z]{1,10})([0-9]{0,10})/) || [];\n\t\t\t\tconst cellDataTo = rangeTo.match(/([a-zA-Z]{1,10})([0-9]{0,10})/) || [];\n\n\t\t\t\tif (rangeDefinition === 'specifyRangeA1' && cellDataFrom[2] !== undefined) {\n\t\t\t\t\tkeyRange = `${cellDataFrom[1]}${+cellDataFrom[2]}:${cellDataTo[1]}${+cellDataFrom[2]}`;\n\t\t\t\t\trangeToCheck = `${cellDataFrom[1]}${+cellDataFrom[2] + 1}:${rangeTo}`;\n\t\t\t\t} else {\n\t\t\t\t\tkeyRange = `${cellDataFrom[1]}${keyRow}:${cellDataTo[1]}${keyRow}`;\n\t\t\t\t\trangeToCheck = `${cellDataFrom[1]}${keyRow}:${rangeTo}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst qs: IDataObject = {};\n\n\t\t\tObject.assign(qs, options);\n\n\t\t\tif (event === 'rowAdded') {\n\t\t\t\tconst [columns] = ((\n\t\t\t\t\t(await apiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t`/v4/spreadsheets/${documentId}/values/${encodeURIComponent(sheetName)}!${keyRange}`,\n\t\t\t\t\t)) as IDataObject\n\t\t\t\t).values as string[][]) || [[]];\n\n\t\t\t\tif (!columns?.length) {\n\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t'Could not retrieve the columns from key row',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst sheetData = await googleSheet.getData(\n\t\t\t\t\t`${sheetName}!${rangeToCheck}`,\n\t\t\t\t\t(options.valueRender as ValueRenderOption) || 'UNFORMATTED_VALUE',\n\t\t\t\t\t(options.dateTimeRenderOption as string) || 'FORMATTED_STRING',\n\t\t\t\t);\n\n\t\t\t\tif (Array.isArray(sheetData) && sheetData.length !== 0) {\n\t\t\t\t\tsheetData.splice(0, 1); // Remove header row\n\t\t\t\t}\n\n\t\t\t\tlet dataStartIndex = 0;\n\t\t\t\tif (rangeDefinition === 'specifyRange' && keyRow < startIndex) {\n\t\t\t\t\tdataStartIndex = startIndex - keyRow - 1;\n\t\t\t\t}\n\n\t\t\t\tif (this.getMode() === 'manual') {\n\t\t\t\t\tif (Array.isArray(sheetData)) {\n\t\t\t\t\t\tconst sheetDataFromStartIndex = sheetData.slice(dataStartIndex);\n\t\t\t\t\t\tconst returnData = arrayOfArraysToJson(sheetDataFromStartIndex, columns);\n\n\t\t\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0) {\n\t\t\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(sheetData) && this.getMode() !== 'manual') {\n\t\t\t\t\tif (workflowStaticData.lastIndexChecked === undefined) {\n\t\t\t\t\t\tworkflowStaticData.lastIndexChecked = sheetData.length;\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst rowsStartIndex = Math.max(\n\t\t\t\t\t\tworkflowStaticData.lastIndexChecked as number,\n\t\t\t\t\t\tdataStartIndex,\n\t\t\t\t\t);\n\t\t\t\t\tconst addedRows = sheetData?.slice(rowsStartIndex) || [];\n\t\t\t\t\tconst returnData = arrayOfArraysToJson(addedRows, columns);\n\n\t\t\t\t\tworkflowStaticData.lastIndexChecked = sheetData.length;\n\n\t\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0) {\n\t\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event === 'anyUpdate' || event === 'rowUpdate') {\n\t\t\t\tif (sheetName.length > 31) {\n\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t'Sheet name is too long choose a name with 31 characters or less',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst sheetRange = `${sheetName}!${range}`;\n\n\t\t\t\tlet dataStartIndex = startIndex - 1;\n\t\t\t\tif (rangeDefinition !== 'specifyRangeA1') {\n\t\t\t\t\tdataStartIndex = keyRow < startIndex ? startIndex - 2 : startIndex - 1;\n\t\t\t\t}\n\n\t\t\t\tconst currentData =\n\t\t\t\t\t((await googleSheet.getData(\n\t\t\t\t\t\tsheetRange,\n\t\t\t\t\t\t'UNFORMATTED_VALUE',\n\t\t\t\t\t\t'SERIAL_NUMBER',\n\t\t\t\t\t)) as string[][]) || [];\n\n\t\t\t\tif (previousRevision === undefined) {\n\t\t\t\t\tif (currentData.length === 0) {\n\t\t\t\t\t\treturn [[]];\n\t\t\t\t\t}\n\t\t\t\t\tconst zeroBasedKeyRow = keyRow - 1;\n\t\t\t\t\tconst columns = currentData[zeroBasedKeyRow];\n\t\t\t\t\tcurrentData.splice(zeroBasedKeyRow, 1); // Remove key row\n\n\t\t\t\t\tlet returnData;\n\t\t\t\t\tif (rangeDefinition !== 'specifyRangeA1') {\n\t\t\t\t\t\treturnData = arrayOfArraysToJson(currentData.slice(dataStartIndex), columns);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturnData = arrayOfArraysToJson(currentData, columns);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0 && this.getMode() === 'manual') {\n\t\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst previousRevisionBinaryData = await getRevisionFile.call(this, previousRevisionLink);\n\n\t\t\t\tconst previousRevisionSheetData =\n\t\t\t\t\tsheetBinaryToArrayOfArrays(\n\t\t\t\t\t\tpreviousRevisionBinaryData,\n\t\t\t\t\t\tsheetName,\n\t\t\t\t\t\trangeDefinition === 'specifyRangeA1' ? range : undefined,\n\t\t\t\t\t) || [];\n\n\t\t\t\tconst includeInOutput = this.getNodeParameter('includeInOutput', 'new') as string;\n\n\t\t\t\tlet returnData;\n\t\t\t\tif (options.columnsToWatch) {\n\t\t\t\t\treturnData = compareRevisions(\n\t\t\t\t\t\tpreviousRevisionSheetData,\n\t\t\t\t\t\tcurrentData,\n\t\t\t\t\t\tkeyRow,\n\t\t\t\t\t\tincludeInOutput,\n\t\t\t\t\t\toptions.columnsToWatch as string[],\n\t\t\t\t\t\tdataStartIndex,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturnData = compareRevisions(\n\t\t\t\t\t\tpreviousRevisionSheetData,\n\t\t\t\t\t\tcurrentData,\n\t\t\t\t\t\tkeyRow,\n\t\t\t\t\t\tincludeInOutput,\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tdataStartIndex,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0) {\n\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror?.description\n\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t.includes('user does not have sufficient permissions for file')\n\t\t\t) {\n\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\"Edit access to the document is required for the 'Row Update' and 'Row Added or Updated' triggers. Request edit access to the document's owner or select the 'Row Added' trigger in the 'Trigger On' dropdown.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (\n\t\t\t\terror?.error?.error?.message !== undefined &&\n\t\t\t\t!(error.error.error.message as string).toLocaleLowerCase().includes('unknown error') &&\n\t\t\t\t!(error.error.error.message as string).toLocaleLowerCase().includes('bad request')\n\t\t\t) {\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tlet [message, ...description] = (error.error.error.message as string).split('. ');\n\t\t\t\tif (message.toLowerCase() === 'access not configured') {\n\t\t\t\t\tmessage = 'Missing Google Drive API';\n\t\t\t\t}\n\t\t\t\tthrow new NodeOperationError(this.getNode(), message, {\n\t\t\t\t\tdescription: description.join('.\\n '),\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\treturn null;\n\t}\n}\n"],"mappings":"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","names":["returnData"]}
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Google/Sheet/GoogleSheetsTrigger.node.ts"],"sourcesContent":["import type {\n\tIDataObject,\n\tINodeExecutionData,\n\tINodeType,\n\tINodeTypeDescription,\n\tINodeProperties,\n\tIPollFunctions,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\n\nimport {\n\tarrayOfArraysToJson,\n\tBINARY_MIME_TYPE,\n\tcompareRevisions,\n\tgetRevisionFile,\n\tsheetBinaryToArrayOfArrays,\n} from './GoogleSheetsTrigger.utils';\nimport { GoogleSheet } from './v2/helpers/GoogleSheet';\nimport type { ResourceLocator, ValueRenderOption } from './v2/helpers/GoogleSheets.types';\nimport { sheetsSearch, spreadSheetsSearch } from './v2/methods/listSearch';\nimport { getSheetHeaderRowAndSkipEmpty } from './v2/methods/loadOptions';\nimport { apiRequest } from './v2/transport';\nimport { GOOGLE_DRIVE_FILE_URL_REGEX, GOOGLE_SHEETS_SHEET_URL_REGEX } from '../constants';\n\nexport const document: INodeProperties = {\n\tdisplayName: 'Document',\n\tname: 'documentId',\n\ttype: 'resourceLocator',\n\tdefault: { mode: 'list', value: '' },\n\trequired: true,\n\tmodes: [\n\t\t{\n\t\t\tdisplayName: 'From List',\n\t\t\tname: 'list',\n\t\t\ttype: 'list',\n\t\t\ttypeOptions: {\n\t\t\t\tsearchListMethod: 'spreadSheetsSearch',\n\t\t\t\tsearchable: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tdisplayName: 'By URL',\n\t\t\tname: 'url',\n\t\t\ttype: 'string',\n\t\t\textractValue: {\n\t\t\t\ttype: 'regex',\n\t\t\t\tregex: GOOGLE_DRIVE_FILE_URL_REGEX,\n\t\t\t},\n\t\t\tvalidation: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'regex',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tregex: GOOGLE_DRIVE_FILE_URL_REGEX,\n\t\t\t\t\t\terrorMessage: 'Not a valid Google Drive File URL',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tdisplayName: 'By ID',\n\t\t\tname: 'id',\n\t\t\ttype: 'string',\n\t\t\tvalidation: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'regex',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tregex: '[a-zA-Z0-9\\\\-_]{2,}',\n\t\t\t\t\t\terrorMessage: 'Not a valid Google Drive File ID',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\turl: '=https://docs.google.com/spreadsheets/d/{{$value}}/edit',\n\t\t},\n\t],\n};\n\nexport const sheet: INodeProperties = {\n\tdisplayName: 'Sheet',\n\tname: 'sheetName',\n\ttype: 'resourceLocator',\n\tdefault: { mode: 'list', value: '' },\n\t// default: '', //empty string set to progresivly reveal fields\n\trequired: true,\n\ttypeOptions: {\n\t\tloadOptionsDependsOn: ['documentId.value'],\n\t},\n\tmodes: [\n\t\t{\n\t\t\tdisplayName: 'From List',\n\t\t\tname: 'list',\n\t\t\ttype: 'list',\n\t\t\ttypeOptions: {\n\t\t\t\tsearchListMethod: 'sheetsSearch',\n\t\t\t\tsearchable: false,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tdisplayName: 'By URL',\n\t\t\tname: 'url',\n\t\t\ttype: 'string',\n\t\t\textractValue: {\n\t\t\t\ttype: 'regex',\n\t\t\t\tregex: GOOGLE_SHEETS_SHEET_URL_REGEX,\n\t\t\t},\n\t\t\tvalidation: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'regex',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tregex: GOOGLE_SHEETS_SHEET_URL_REGEX,\n\t\t\t\t\t\terrorMessage: 'Not a valid Sheet URL',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tdisplayName: 'By ID',\n\t\t\tname: 'id',\n\t\t\ttype: 'string',\n\t\t\tvalidation: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'regex',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tregex: '((gid=)?[0-9]{1,})',\n\t\t\t\t\t\terrorMessage: 'Not a valid Sheet ID',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t],\n};\n\nexport class GoogleSheetsTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Google Sheets Trigger',\n\t\tname: 'googleSheetsTrigger',\n\t\ticon: 'file:googleSheets.svg',\n\t\tgroup: ['trigger'],\n\t\tversion: 1,\n\t\tsubtitle: '={{($parameter[\"event\"])}}',\n\t\tdescription: 'Starts the workflow when Google Sheets events occur',\n\t\tdefaults: {\n\t\t\tname: 'Google Sheets Trigger',\n\t\t},\n\t\tinputs: [],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'googleSheetsTriggerOAuth2Api',\n\t\t\t\trequired: true,\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\tauthentication: ['triggerOAuth2'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tpolling: true,\n\t\tproperties: [\n\t\t\t// trigger shared logic with GoogleSheets node, leaving this here for compatibility\n\t\t\t{\n\t\t\t\tdisplayName: 'Authentication',\n\t\t\t\tname: 'authentication',\n\t\t\t\ttype: 'hidden',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased\n\t\t\t\t\t\tname: 'OAuth2 (recommended)',\n\t\t\t\t\t\tvalue: 'triggerOAuth2',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'triggerOAuth2',\n\t\t\t},\n\t\t\tdocument,\n\t\t\tsheet,\n\t\t\t{\n\t\t\t\tdisplayName: 'Trigger On',\n\t\t\t\tname: 'event',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t\"It will be triggered also by newly created columns (if the 'Columns to Watch' option is not set)\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Row Added',\n\t\t\t\t\t\tvalue: 'rowAdded',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Row Updated',\n\t\t\t\t\t\tvalue: 'rowUpdate',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Row Added or Updated',\n\t\t\t\t\t\tvalue: 'anyUpdate',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'anyUpdate',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Include in Output',\n\t\t\t\tname: 'includeInOutput',\n\t\t\t\ttype: 'options',\n\t\t\t\tdefault: 'new',\n\t\t\t\tdescription: 'This option will be effective only when automatically executing the workflow',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'New Version',\n\t\t\t\t\t\tvalue: 'new',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Old Version',\n\t\t\t\t\t\tvalue: 'old',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Both Versions',\n\t\t\t\t\t\tvalue: 'both',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\thide: {\n\t\t\t\t\t\tevent: ['rowAdded'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Options',\n\t\t\t\tname: 'options',\n\t\t\t\ttype: 'collection',\n\t\t\t\tplaceholder: 'Add option',\n\t\t\t\tdefault: {},\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Columns to Watch',\n\t\t\t\t\t\tname: 'columnsToWatch',\n\t\t\t\t\t\ttype: 'multiOptions',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tloadOptionsDependsOn: ['sheetName.value'],\n\t\t\t\t\t\t\tloadOptionsMethod: 'getSheetHeaderRowAndSkipEmpty',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefault: [],\n\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t'/event': ['anyUpdate', 'rowUpdate'],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Data Location on Sheet',\n\t\t\t\t\t\tname: 'dataLocationOnSheet',\n\t\t\t\t\t\ttype: 'fixedCollection',\n\t\t\t\t\t\tplaceholder: 'Select Range',\n\t\t\t\t\t\tdefault: { values: { rangeDefinition: 'specifyRangeA1' } },\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Values',\n\t\t\t\t\t\t\t\tname: 'values',\n\t\t\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Range Definition',\n\t\t\t\t\t\t\t\t\t\tname: 'rangeDefinition',\n\t\t\t\t\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Specify Range (A1 Notation)',\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: 'specifyRangeA1',\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: 'Manually specify the data range',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Specify Range (Rows)',\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: 'specifyRange',\n\t\t\t\t\t\t\t\t\t\t\t\tdescription: 'Manually specify the data range',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Header Row',\n\t\t\t\t\t\t\t\t\t\tname: 'headerRow',\n\t\t\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdefault: 1,\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t'Index of the row which contains the keys. Starts at 1. The incoming node data is matched to the keys for assignment. The matching is case sensitive.',\n\t\t\t\t\t\t\t\t\t\thint: 'First row is row 1',\n\t\t\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\t\t\trangeDefinition: ['specifyRange'],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'First Data Row',\n\t\t\t\t\t\t\t\t\t\tname: 'firstDataRow',\n\t\t\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdefault: 2,\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t'Index of the first row which contains the actual data and not the keys. Starts with 1.',\n\t\t\t\t\t\t\t\t\t\thint: 'First row is row 1',\n\t\t\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\t\t\trangeDefinition: ['specifyRange'],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Range',\n\t\t\t\t\t\t\t\t\t\tname: 'range',\n\t\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\t\t\t\t\tplaceholder: 'A:Z',\n\t\t\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\t\t'The table range to read from or to append data to. See the Google <a href=\"https://developers.google.com/sheets/api/guides/values#writing\">documentation</a> for the details.',\n\t\t\t\t\t\t\t\t\t\thint: 'You can specify both the rows and the columns, e.g. C4:E7',\n\t\t\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\t\t\trangeDefinition: ['specifyRangeA1'],\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Value Render',\n\t\t\t\t\t\tname: 'valueRender',\n\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Unformatted',\n\t\t\t\t\t\t\t\tvalue: 'UNFORMATTED_VALUE',\n\t\t\t\t\t\t\t\tdescription: 'Values will be calculated, but not formatted in the reply',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Formatted',\n\t\t\t\t\t\t\t\tvalue: 'FORMATTED_VALUE',\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t\"Values will be formatted and calculated according to the cell's formatting (based on the spreadsheet's locale)\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Formula',\n\t\t\t\t\t\t\t\tvalue: 'FORMULA',\n\t\t\t\t\t\t\t\tdescription: 'Values will not be calculated. The reply will include the formulas.',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdefault: 'UNFORMATTED_VALUE',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Determines how values will be rendered in the output. <a href=\"https://developers.google.com/sheets/api/reference/rest/v4/ValueRenderOption\" target=\"_blank\">More info</a>.',\n\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\thide: {\n\t\t\t\t\t\t\t\t'/event': ['anyUpdate', 'rowUpdate'],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'DateTime Render',\n\t\t\t\t\t\tname: 'dateTimeRenderOption',\n\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Serial Number',\n\t\t\t\t\t\t\t\tvalue: 'SERIAL_NUMBER',\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t'Fields will be returned as doubles in \"serial number\" format (as popularized by Lotus 1-2-3)',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'Formatted String',\n\t\t\t\t\t\t\t\tvalue: 'FORMATTED_STRING',\n\t\t\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t\t\t'Fields will be rendered as strings in their given number format (which depends on the spreadsheet locale)',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tdefault: 'SERIAL_NUMBER',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Determines how dates should be rendered in the output. <a href=\"https://developers.google.com/sheets/api/reference/rest/v4/DateTimeRenderOption\" target=\"_blank\">More info</a>.',\n\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\thide: {\n\t\t\t\t\t\t\t\t'/event': ['anyUpdate', 'rowUpdate'],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t};\n\n\tmethods = {\n\t\tlistSearch: { spreadSheetsSearch, sheetsSearch },\n\t\tloadOptions: { getSheetHeaderRowAndSkipEmpty },\n\t};\n\n\tasync poll(this: IPollFunctions): Promise<INodeExecutionData[][] | null> {\n\t\ttry {\n\t\t\tconst workflowStaticData = this.getWorkflowStaticData('node');\n\t\t\tconst event = this.getNodeParameter('event', 0) as string;\n\n\t\t\tconst documentId = this.getNodeParameter('documentId', undefined, {\n\t\t\t\textractValue: true,\n\t\t\t}) as string;\n\n\t\t\tconst sheetWithinDocument = this.getNodeParameter('sheetName', undefined, {\n\t\t\t\textractValue: true,\n\t\t\t}) as string;\n\t\t\tconst { mode: sheetMode } = this.getNodeParameter('sheetName', 0) as {\n\t\t\t\tmode: ResourceLocator;\n\t\t\t};\n\n\t\t\tconst googleSheet = new GoogleSheet(documentId, this);\n\t\t\tconst { sheetId, title: sheetName } = await googleSheet.spreadsheetGetSheet(\n\t\t\t\tthis.getNode(),\n\t\t\t\tsheetMode,\n\t\t\t\tsheetWithinDocument,\n\t\t\t);\n\n\t\t\tconst options = this.getNodeParameter('options') as IDataObject;\n\n\t\t\t// If the documentId or sheetId changed, reset the workflow static data\n\t\t\tif (\n\t\t\t\tthis.getMode() !== 'manual' &&\n\t\t\t\t(workflowStaticData.documentId !== documentId || workflowStaticData.sheetId !== sheetId)\n\t\t\t) {\n\t\t\t\tworkflowStaticData.documentId = documentId;\n\t\t\t\tworkflowStaticData.sheetId = sheetId;\n\t\t\t\tworkflowStaticData.lastRevision = undefined;\n\t\t\t\tworkflowStaticData.lastRevisionLink = undefined;\n\t\t\t\tworkflowStaticData.lastIndexChecked = undefined;\n\t\t\t}\n\n\t\t\tconst previousRevision = workflowStaticData.lastRevision as number;\n\t\t\tconst previousRevisionLink = workflowStaticData.lastRevisionLink as string;\n\n\t\t\tif (event !== 'rowAdded') {\n\t\t\t\tlet pageToken;\n\t\t\t\tdo {\n\t\t\t\t\tconst { revisions, nextPageToken } = await apiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfields: 'revisions(id, exportLinks), nextPageToken',\n\t\t\t\t\t\t\tpageToken,\n\t\t\t\t\t\t\tpageSize: 1000,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t`https://www.googleapis.com/drive/v3/files/${documentId}/revisions`,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (nextPageToken) {\n\t\t\t\t\t\tpageToken = nextPageToken as string;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpageToken = undefined;\n\n\t\t\t\t\t\tconst lastRevision = +revisions[revisions.length - 1].id;\n\t\t\t\t\t\tif (lastRevision <= previousRevision) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (this.getMode() !== 'manual') {\n\t\t\t\t\t\t\t\tworkflowStaticData.lastRevision = lastRevision;\n\t\t\t\t\t\t\t\tworkflowStaticData.lastRevisionLink =\n\t\t\t\t\t\t\t\t\trevisions[revisions.length - 1].exportLinks[BINARY_MIME_TYPE];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} while (pageToken);\n\t\t\t}\n\n\t\t\tlet range = 'A:ZZZ';\n\t\t\tlet keyRow = 1;\n\t\t\tlet startIndex = 2;\n\n\t\t\tlet rangeDefinition = '';\n\n\t\t\tconst [from, to] = range.split(':');\n\t\t\tlet keyRange = `${from}${keyRow}:${to}${keyRow}`;\n\t\t\tlet rangeToCheck = `${from}${keyRow}:${to}`;\n\n\t\t\tif (options.dataLocationOnSheet) {\n\t\t\t\tconst locationDefine = (options.dataLocationOnSheet as IDataObject).values as IDataObject;\n\t\t\t\trangeDefinition = locationDefine.rangeDefinition as string;\n\n\t\t\t\tif (rangeDefinition === 'specifyRangeA1') {\n\t\t\t\t\tif (locationDefine.range === '') {\n\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\"The field 'Range' is empty, please provide a range\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\trange = locationDefine.range as string;\n\t\t\t\t}\n\n\t\t\t\tif (rangeDefinition === 'specifyRange') {\n\t\t\t\t\tkeyRow = parseInt(locationDefine.headerRow as string, 10);\n\t\t\t\t\tstartIndex = parseInt(locationDefine.firstDataRow as string, 10);\n\t\t\t\t}\n\n\t\t\t\tconst [rangeFrom, rangeTo] = range.split(':');\n\t\t\t\tconst cellDataFrom = rangeFrom.match(/([a-zA-Z]{1,10})([0-9]{0,10})/) || [];\n\t\t\t\tconst cellDataTo = rangeTo.match(/([a-zA-Z]{1,10})([0-9]{0,10})/) || [];\n\n\t\t\t\tif (rangeDefinition === 'specifyRangeA1' && cellDataFrom[2] !== undefined) {\n\t\t\t\t\tkeyRange = `${cellDataFrom[1]}${+cellDataFrom[2]}:${cellDataTo[1]}${+cellDataFrom[2]}`;\n\t\t\t\t\trangeToCheck = `${cellDataFrom[1]}${+cellDataFrom[2] + 1}:${rangeTo}`;\n\t\t\t\t} else {\n\t\t\t\t\tkeyRange = `${cellDataFrom[1]}${keyRow}:${cellDataTo[1]}${keyRow}`;\n\t\t\t\t\trangeToCheck = `${cellDataFrom[1]}${keyRow}:${rangeTo}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst qs: IDataObject = {};\n\n\t\t\tObject.assign(qs, options);\n\n\t\t\tif (event === 'rowAdded') {\n\t\t\t\tconst [columns] = ((\n\t\t\t\t\t(await apiRequest.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t'GET',\n\t\t\t\t\t\t`/v4/spreadsheets/${documentId}/values/${encodeURIComponent(sheetName)}!${keyRange}`,\n\t\t\t\t\t)) as IDataObject\n\t\t\t\t).values as string[][]) || [[]];\n\n\t\t\t\tif (!columns?.length) {\n\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t'Could not retrieve the columns from key row',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst sheetData = await googleSheet.getData(\n\t\t\t\t\t`${sheetName}!${rangeToCheck}`,\n\t\t\t\t\t(options.valueRender as ValueRenderOption) || 'UNFORMATTED_VALUE',\n\t\t\t\t\t(options.dateTimeRenderOption as string) || 'FORMATTED_STRING',\n\t\t\t\t);\n\n\t\t\t\tif (Array.isArray(sheetData) && sheetData.length !== 0) {\n\t\t\t\t\tsheetData.splice(0, 1); // Remove header row\n\t\t\t\t}\n\n\t\t\t\tlet dataStartIndex = 0;\n\t\t\t\tif (rangeDefinition === 'specifyRange' && keyRow < startIndex) {\n\t\t\t\t\tdataStartIndex = startIndex - keyRow - 1;\n\t\t\t\t}\n\n\t\t\t\tif (this.getMode() === 'manual') {\n\t\t\t\t\tif (Array.isArray(sheetData)) {\n\t\t\t\t\t\tconst sheetDataFromStartIndex = sheetData.slice(dataStartIndex);\n\t\t\t\t\t\tconst returnData = arrayOfArraysToJson(sheetDataFromStartIndex, columns);\n\n\t\t\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0) {\n\t\t\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(sheetData) && this.getMode() !== 'manual') {\n\t\t\t\t\tif (workflowStaticData.lastIndexChecked === undefined) {\n\t\t\t\t\t\tworkflowStaticData.lastIndexChecked = sheetData.length;\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst rowsStartIndex = Math.max(\n\t\t\t\t\t\tworkflowStaticData.lastIndexChecked as number,\n\t\t\t\t\t\tdataStartIndex,\n\t\t\t\t\t);\n\t\t\t\t\tconst addedRows = sheetData?.slice(rowsStartIndex) || [];\n\t\t\t\t\tconst returnData = arrayOfArraysToJson(addedRows, columns);\n\n\t\t\t\t\tworkflowStaticData.lastIndexChecked = sheetData.length;\n\n\t\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0) {\n\t\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event === 'anyUpdate' || event === 'rowUpdate') {\n\t\t\t\tif (sheetName.length > 31) {\n\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t'Sheet name is too long choose a name with 31 characters or less',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst sheetRange = `${sheetName}!${range}`;\n\n\t\t\t\tlet dataStartIndex = startIndex - 1;\n\t\t\t\tif (rangeDefinition !== 'specifyRangeA1') {\n\t\t\t\t\tdataStartIndex = keyRow < startIndex ? startIndex - 2 : startIndex - 1;\n\t\t\t\t}\n\n\t\t\t\tconst currentData =\n\t\t\t\t\t((await googleSheet.getData(\n\t\t\t\t\t\tsheetRange,\n\t\t\t\t\t\t'UNFORMATTED_VALUE',\n\t\t\t\t\t\t'SERIAL_NUMBER',\n\t\t\t\t\t)) as string[][]) || [];\n\n\t\t\t\tif (previousRevision === undefined) {\n\t\t\t\t\tif (currentData.length === 0) {\n\t\t\t\t\t\treturn [[]];\n\t\t\t\t\t}\n\t\t\t\t\tconst zeroBasedKeyRow = keyRow - 1;\n\t\t\t\t\tconst columns = currentData[zeroBasedKeyRow];\n\t\t\t\t\tcurrentData.splice(zeroBasedKeyRow, 1); // Remove key row\n\n\t\t\t\t\tlet returnData;\n\t\t\t\t\tif (rangeDefinition !== 'specifyRangeA1') {\n\t\t\t\t\t\treturnData = arrayOfArraysToJson(currentData.slice(dataStartIndex), columns);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturnData = arrayOfArraysToJson(currentData, columns);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0 && this.getMode() === 'manual') {\n\t\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst previousRevisionBinaryData = await getRevisionFile.call(this, previousRevisionLink);\n\n\t\t\t\tconst previousRevisionSheetData =\n\t\t\t\t\tsheetBinaryToArrayOfArrays(\n\t\t\t\t\t\tpreviousRevisionBinaryData,\n\t\t\t\t\t\tsheetName,\n\t\t\t\t\t\trangeDefinition === 'specifyRangeA1' ? range : undefined,\n\t\t\t\t\t) || [];\n\n\t\t\t\tconst includeInOutput = this.getNodeParameter('includeInOutput', 'new') as string;\n\n\t\t\t\tlet returnData;\n\t\t\t\tif (options.columnsToWatch) {\n\t\t\t\t\treturnData = compareRevisions(\n\t\t\t\t\t\tpreviousRevisionSheetData,\n\t\t\t\t\t\tcurrentData,\n\t\t\t\t\t\tkeyRow,\n\t\t\t\t\t\tincludeInOutput,\n\t\t\t\t\t\toptions.columnsToWatch as string[],\n\t\t\t\t\t\tdataStartIndex,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturnData = compareRevisions(\n\t\t\t\t\t\tpreviousRevisionSheetData,\n\t\t\t\t\t\tcurrentData,\n\t\t\t\t\t\tkeyRow,\n\t\t\t\t\t\tincludeInOutput,\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tdataStartIndex,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (Array.isArray(returnData) && returnData.length !== 0) {\n\t\t\t\t\treturn [this.helpers.returnJsonArray(returnData)];\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror?.description\n\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t.includes('user does not have sufficient permissions for file')\n\t\t\t) {\n\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\"Edit access to the document is required for the 'Row Update' and 'Row Added or Updated' triggers. Request edit access to the document's owner or select the 'Row Added' trigger in the 'Trigger On' dropdown.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (\n\t\t\t\terror?.error?.error?.message !== undefined &&\n\t\t\t\t!(error.error.error.message as string).toLocaleLowerCase().includes('unknown error') &&\n\t\t\t\t!(error.error.error.message as string).toLocaleLowerCase().includes('bad request')\n\t\t\t) {\n\t\t\t\t// eslint-disable-next-line prefer-const\n\t\t\t\tlet [message, ...description] = (error.error.error.message as string).split('. ');\n\t\t\t\tif (message.toLowerCase() === 'access not configured') {\n\t\t\t\t\tmessage = 'Missing Google Drive API';\n\t\t\t\t}\n\t\t\t\tthrow new NodeOperationError(this.getNode(), message, {\n\t\t\t\t\tdescription: description.join('.\\n '),\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\treturn null;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,0BAAwD;AAExD,iCAMO;AACP,yBAA4B;AAE5B,wBAAiD;AACjD,yBAA8C;AAC9C,uBAA2B;AAC3B,uBAA2E;AAEpE,MAAM,WAA4B;AAAA,EACxC,aAAa;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS,EAAE,MAAM,QAAQ,OAAO,GAAG;AAAA,EACnC,UAAU;AAAA,EACV,OAAO;AAAA,IACN;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,QACZ,kBAAkB;AAAA,QAClB,YAAY;AAAA,MACb;AAAA,IACD;AAAA,IACA;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,cAAc;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,MACR;AAAA,MACA,YAAY;AAAA,QACX;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,OAAO;AAAA,YACP,cAAc;AAAA,UACf;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,QACX;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,OAAO;AAAA,YACP,cAAc;AAAA,UACf;AAAA,QACD;AAAA,MACD;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,QAAyB;AAAA,EACrC,aAAa;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS,EAAE,MAAM,QAAQ,OAAO,GAAG;AAAA;AAAA,EAEnC,UAAU;AAAA,EACV,aAAa;AAAA,IACZ,sBAAsB,CAAC,kBAAkB;AAAA,EAC1C;AAAA,EACA,OAAO;AAAA,IACN;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,QACZ,kBAAkB;AAAA,QAClB,YAAY;AAAA,MACb;AAAA,IACD;AAAA,IACA;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,cAAc;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,MACR;AAAA,MACA,YAAY;AAAA,QACX;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,OAAO;AAAA,YACP,cAAc;AAAA,UACf;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,QACX;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,OAAO;AAAA,YACP,cAAc;AAAA,UACf;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,oBAAyC;AAAA,EAA/C;AACN,uBAAoC;AAAA,MACnC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO,CAAC,SAAS;AAAA,MACjB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,aAAa;AAAA,MACb,UAAU;AAAA,QACT,MAAM;AAAA,MACP;AAAA,MACA,QAAQ,CAAC;AAAA,MACT,SAAS,CAAC,wCAAoB,IAAI;AAAA,MAClC,aAAa;AAAA,QACZ;AAAA,UACC,MAAM;AAAA,UACN,UAAU;AAAA,UACV,gBAAgB;AAAA,YACf,MAAM;AAAA,cACL,gBAAgB,CAAC,eAAe;AAAA,YACjC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,SAAS;AAAA,MACT,YAAY;AAAA;AAAA,QAEX;AAAA,UACC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,YACR;AAAA;AAAA,cAEC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,UACD;AAAA,UACA,SAAS;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,UACC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,aACC;AAAA,UACD,SAAS;AAAA,YACR;AAAA,cACC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,YACA;AAAA,cACC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,YACA;AAAA,cACC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,UACD;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QACX;AAAA,QACA;AAAA,UACC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,aAAa;AAAA,UACb,SAAS;AAAA,YACR;AAAA,cACC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,YACA;AAAA,cACC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,YACA;AAAA,cACC,MAAM;AAAA,cACN,OAAO;AAAA,YACR;AAAA,UACD;AAAA,UACA,gBAAgB;AAAA,YACf,MAAM;AAAA,cACL,OAAO,CAAC,UAAU;AAAA,YACnB;AAAA,UACD;AAAA,QACD;AAAA,QACA;AAAA,UACC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,aAAa;AAAA,UACb,SAAS,CAAC;AAAA,UACV,SAAS;AAAA,YACR;AAAA,cACC,aAAa;AAAA,cACb,MAAM;AAAA,cACN,MAAM;AAAA,cACN,aACC;AAAA,cACD,aAAa;AAAA,gBACZ,sBAAsB,CAAC,iBAAiB;AAAA,gBACxC,mBAAmB;AAAA,cACpB;AAAA,cACA,SAAS,CAAC;AAAA,cACV,gBAAgB;AAAA,gBACf,MAAM;AAAA,kBACL,UAAU,CAAC,aAAa,WAAW;AAAA,gBACpC;AAAA,cACD;AAAA,YACD;AAAA,YACA;AAAA,cACC,aAAa;AAAA,cACb,MAAM;AAAA,cACN,MAAM;AAAA,cACN,aAAa;AAAA,cACb,SAAS,EAAE,QAAQ,EAAE,iBAAiB,iBAAiB,EAAE;AAAA,cACzD,SAAS;AAAA,gBACR;AAAA,kBACC,aAAa;AAAA,kBACb,MAAM;AAAA,kBACN,QAAQ;AAAA,oBACP;AAAA,sBACC,aAAa;AAAA,sBACb,MAAM;AAAA,sBACN,MAAM;AAAA,sBACN,SAAS;AAAA,wBACR;AAAA,0BACC,MAAM;AAAA,0BACN,OAAO;AAAA,0BACP,aAAa;AAAA,wBACd;AAAA,wBACA;AAAA,0BACC,MAAM;AAAA,0BACN,OAAO;AAAA,0BACP,aAAa;AAAA,wBACd;AAAA,sBACD;AAAA,sBACA,SAAS;AAAA,oBACV;AAAA,oBACA;AAAA,sBACC,aAAa;AAAA,sBACb,MAAM;AAAA,sBACN,MAAM;AAAA,sBACN,aAAa;AAAA,wBACZ,UAAU;AAAA,sBACX;AAAA,sBACA,SAAS;AAAA,sBACT,aACC;AAAA,sBACD,MAAM;AAAA,sBACN,gBAAgB;AAAA,wBACf,MAAM;AAAA,0BACL,iBAAiB,CAAC,cAAc;AAAA,wBACjC;AAAA,sBACD;AAAA,oBACD;AAAA,oBACA;AAAA,sBACC,aAAa;AAAA,sBACb,MAAM;AAAA,sBACN,MAAM;AAAA,sBACN,aAAa;AAAA,wBACZ,UAAU;AAAA,sBACX;AAAA,sBACA,SAAS;AAAA,sBACT,aACC;AAAA,sBACD,MAAM;AAAA,sBACN,gBAAgB;AAAA,wBACf,MAAM;AAAA,0BACL,iBAAiB,CAAC,cAAc;AAAA,wBACjC;AAAA,sBACD;AAAA,oBACD;AAAA,oBACA;AAAA,sBACC,aAAa;AAAA,sBACb,MAAM;AAAA,sBACN,MAAM;AAAA,sBACN,SAAS;AAAA,sBACT,aAAa;AAAA,sBACb,aACC;AAAA,sBACD,MAAM;AAAA,sBACN,gBAAgB;AAAA,wBACf,MAAM;AAAA,0BACL,iBAAiB,CAAC,gBAAgB;AAAA,wBACnC;AAAA,sBACD;AAAA,oBACD;AAAA,kBACD;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,YACA;AAAA,cACC,aAAa;AAAA,cACb,MAAM;AAAA,cACN,MAAM;AAAA,cACN,SAAS;AAAA,gBACR;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,aAAa;AAAA,gBACd;AAAA,gBACA;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,aACC;AAAA,gBACF;AAAA,gBACA;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,aAAa;AAAA,gBACd;AAAA,cACD;AAAA,cACA,SAAS;AAAA,cACT,aACC;AAAA,cACD,gBAAgB;AAAA,gBACf,MAAM;AAAA,kBACL,UAAU,CAAC,aAAa,WAAW;AAAA,gBACpC;AAAA,cACD;AAAA,YACD;AAAA,YACA;AAAA,cACC,aAAa;AAAA,cACb,MAAM;AAAA,cACN,MAAM;AAAA,cACN,SAAS;AAAA,gBACR;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,aACC;AAAA,gBACF;AAAA,gBACA;AAAA,kBACC,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,aACC;AAAA,gBACF;AAAA,cACD;AAAA,cACA,SAAS;AAAA,cACT,aACC;AAAA,cACD,gBAAgB;AAAA,gBACf,MAAM;AAAA,kBACL,UAAU,CAAC,aAAa,WAAW;AAAA,gBACpC;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAEA,mBAAU;AAAA,MACT,YAAY,EAAE,0DAAoB,6CAAa;AAAA,MAC/C,aAAa,EAAE,gFAA8B;AAAA,IAC9C;AAAA;AAAA,EAEA,MAAM,OAAmE;AACxE,QAAI;AACH,YAAM,qBAAqB,KAAK,sBAAsB,MAAM;AAC5D,YAAM,QAAQ,KAAK,iBAAiB,SAAS,CAAC;AAE9C,YAAM,aAAa,KAAK,iBAAiB,cAAc,QAAW;AAAA,QACjE,cAAc;AAAA,MACf,CAAC;AAED,YAAM,sBAAsB,KAAK,iBAAiB,aAAa,QAAW;AAAA,QACzE,cAAc;AAAA,MACf,CAAC;AACD,YAAM,EAAE,MAAM,UAAU,IAAI,KAAK,iBAAiB,aAAa,CAAC;AAIhE,YAAM,cAAc,IAAI,+BAAY,YAAY,IAAI;AACpD,YAAM,EAAE,SAAS,OAAO,UAAU,IAAI,MAAM,YAAY;AAAA,QACvD,KAAK,QAAQ;AAAA,QACb;AAAA,QACA;AAAA,MACD;AAEA,YAAM,UAAU,KAAK,iBAAiB,SAAS;AAG/C,UACC,KAAK,QAAQ,MAAM,aAClB,mBAAmB,eAAe,cAAc,mBAAmB,YAAY,UAC/E;AACD,2BAAmB,aAAa;AAChC,2BAAmB,UAAU;AAC7B,2BAAmB,eAAe;AAClC,2BAAmB,mBAAmB;AACtC,2BAAmB,mBAAmB;AAAA,MACvC;AAEA,YAAM,mBAAmB,mBAAmB;AAC5C,YAAM,uBAAuB,mBAAmB;AAEhD,UAAI,UAAU,YAAY;AACzB,YAAI;AACJ,WAAG;AACF,gBAAM,EAAE,WAAW,cAAc,IAAI,MAAM,4BAAW;AAAA,YACrD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,cACC,QAAQ;AAAA,cACR;AAAA,cACA,UAAU;AAAA,YACX;AAAA,YACA,6CAA6C,UAAU;AAAA,UACxD;AAEA,cAAI,eAAe;AAClB,wBAAY;AAAA,UACb,OAAO;AACN,wBAAY;AAEZ,kBAAM,eAAe,CAAC,UAAU,UAAU,SAAS,CAAC,EAAE;AACtD,gBAAI,gBAAgB,kBAAkB;AACrC,qBAAO;AAAA,YACR,OAAO;AACN,kBAAI,KAAK,QAAQ,MAAM,UAAU;AAChC,mCAAmB,eAAe;AAClC,mCAAmB,mBAClB,UAAU,UAAU,SAAS,CAAC,EAAE,YAAY,2CAAgB;AAAA,cAC9D;AAAA,YACD;AAAA,UACD;AAAA,QACD,SAAS;AAAA,MACV;AAEA,UAAI,QAAQ;AACZ,UAAI,SAAS;AACb,UAAI,aAAa;AAEjB,UAAI,kBAAkB;AAEtB,YAAM,CAAC,MAAM,EAAE,IAAI,MAAM,MAAM,GAAG;AAClC,UAAI,WAAW,GAAG,IAAI,GAAG,MAAM,IAAI,EAAE,GAAG,MAAM;AAC9C,UAAI,eAAe,GAAG,IAAI,GAAG,MAAM,IAAI,EAAE;AAEzC,UAAI,QAAQ,qBAAqB;AAChC,cAAM,iBAAkB,QAAQ,oBAAoC;AACpE,0BAAkB,eAAe;AAEjC,YAAI,oBAAoB,kBAAkB;AACzC,cAAI,eAAe,UAAU,IAAI;AAChC,kBAAM,IAAI;AAAA,cACT,KAAK,QAAQ;AAAA,cACb;AAAA,YACD;AAAA,UACD;AACA,kBAAQ,eAAe;AAAA,QACxB;AAEA,YAAI,oBAAoB,gBAAgB;AACvC,mBAAS,SAAS,eAAe,WAAqB,EAAE;AACxD,uBAAa,SAAS,eAAe,cAAwB,EAAE;AAAA,QAChE;AAEA,cAAM,CAAC,WAAW,OAAO,IAAI,MAAM,MAAM,GAAG;AAC5C,cAAM,eAAe,UAAU,MAAM,+BAA+B,KAAK,CAAC;AAC1E,cAAM,aAAa,QAAQ,MAAM,+BAA+B,KAAK,CAAC;AAEtE,YAAI,oBAAoB,oBAAoB,aAAa,CAAC,MAAM,QAAW;AAC1E,qBAAW,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACpF,yBAAe,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO;AAAA,QACpE,OAAO;AACN,qBAAW,GAAG,aAAa,CAAC,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,GAAG,MAAM;AAChE,yBAAe,GAAG,aAAa,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO;AAAA,QACtD;AAAA,MACD;AAEA,YAAM,KAAkB,CAAC;AAEzB,aAAO,OAAO,IAAI,OAAO;AAEzB,UAAI,UAAU,YAAY;AACzB,cAAM,CAAC,OAAO,KACZ,MAAM,4BAAW;AAAA,UACjB;AAAA,UACA;AAAA,UACA,oBAAoB,UAAU,WAAW,mBAAmB,SAAS,CAAC,IAAI,QAAQ;AAAA,QACnF,GACC,UAAyB,CAAC,CAAC,CAAC;AAE9B,YAAI,CAAC,SAAS,QAAQ;AACrB,gBAAM,IAAI;AAAA,YACT,KAAK,QAAQ;AAAA,YACb;AAAA,UACD;AAAA,QACD;AAEA,cAAM,YAAY,MAAM,YAAY;AAAA,UACnC,GAAG,SAAS,IAAI,YAAY;AAAA,UAC3B,QAAQ,eAAqC;AAAA,UAC7C,QAAQ,wBAAmC;AAAA,QAC7C;AAEA,YAAI,MAAM,QAAQ,SAAS,KAAK,UAAU,WAAW,GAAG;AACvD,oBAAU,OAAO,GAAG,CAAC;AAAA,QACtB;AAEA,YAAI,iBAAiB;AACrB,YAAI,oBAAoB,kBAAkB,SAAS,YAAY;AAC9D,2BAAiB,aAAa,SAAS;AAAA,QACxC;AAEA,YAAI,KAAK,QAAQ,MAAM,UAAU;AAChC,cAAI,MAAM,QAAQ,SAAS,GAAG;AAC7B,kBAAM,0BAA0B,UAAU,MAAM,cAAc;AAC9D,kBAAM,iBAAa,gDAAoB,yBAAyB,OAAO;AAEvE,gBAAI,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW,GAAG;AACzD,qBAAO,CAAC,KAAK,QAAQ,gBAAgB,UAAU,CAAC;AAAA,YACjD;AAAA,UACD;AAAA,QACD;AAEA,YAAI,MAAM,QAAQ,SAAS,KAAK,KAAK,QAAQ,MAAM,UAAU;AAC5D,cAAI,mBAAmB,qBAAqB,QAAW;AACtD,+BAAmB,mBAAmB,UAAU;AAChD,mBAAO;AAAA,UACR;AAEA,gBAAM,iBAAiB,KAAK;AAAA,YAC3B,mBAAmB;AAAA,YACnB;AAAA,UACD;AACA,gBAAM,YAAY,WAAW,MAAM,cAAc,KAAK,CAAC;AACvD,gBAAM,iBAAa,gDAAoB,WAAW,OAAO;AAEzD,6BAAmB,mBAAmB,UAAU;AAEhD,cAAI,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW,GAAG;AACzD,mBAAO,CAAC,KAAK,QAAQ,gBAAgB,UAAU,CAAC;AAAA,UACjD;AAAA,QACD;AAAA,MACD;AAEA,UAAI,UAAU,eAAe,UAAU,aAAa;AACnD,YAAI,UAAU,SAAS,IAAI;AAC1B,gBAAM,IAAI;AAAA,YACT,KAAK,QAAQ;AAAA,YACb;AAAA,UACD;AAAA,QACD;AACA,cAAM,aAAa,GAAG,SAAS,IAAI,KAAK;AAExC,YAAI,iBAAiB,aAAa;AAClC,YAAI,oBAAoB,kBAAkB;AACzC,2BAAiB,SAAS,aAAa,aAAa,IAAI,aAAa;AAAA,QACtE;AAEA,cAAM,cACH,MAAM,YAAY;AAAA,UACnB;AAAA,UACA;AAAA,UACA;AAAA,QACD,KAAqB,CAAC;AAEvB,YAAI,qBAAqB,QAAW;AACnC,cAAI,YAAY,WAAW,GAAG;AAC7B,mBAAO,CAAC,CAAC,CAAC;AAAA,UACX;AACA,gBAAM,kBAAkB,SAAS;AACjC,gBAAM,UAAU,YAAY,eAAe;AAC3C,sBAAY,OAAO,iBAAiB,CAAC;AAErC,cAAIA;AACJ,cAAI,oBAAoB,kBAAkB;AACzC,YAAAA,kBAAa,gDAAoB,YAAY,MAAM,cAAc,GAAG,OAAO;AAAA,UAC5E,OAAO;AACN,YAAAA,kBAAa,gDAAoB,aAAa,OAAO;AAAA,UACtD;AAEA,cAAI,MAAM,QAAQA,WAAU,KAAKA,YAAW,WAAW,KAAK,KAAK,QAAQ,MAAM,UAAU;AACxF,mBAAO,CAAC,KAAK,QAAQ,gBAAgBA,WAAU,CAAC;AAAA,UACjD,OAAO;AACN,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,cAAM,6BAA6B,MAAM,2CAAgB,KAAK,MAAM,oBAAoB;AAExF,cAAM,gCACL;AAAA,UACC;AAAA,UACA;AAAA,UACA,oBAAoB,mBAAmB,QAAQ;AAAA,QAChD,KAAK,CAAC;AAEP,cAAM,kBAAkB,KAAK,iBAAiB,mBAAmB,KAAK;AAEtE,YAAI;AACJ,YAAI,QAAQ,gBAAgB;AAC3B,2BAAa;AAAA,YACZ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,QAAQ;AAAA,YACR;AAAA,YACA;AAAA,UACD;AAAA,QACD,OAAO;AACN,2BAAa;AAAA,YACZ;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,CAAC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAEA,YAAI,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW,GAAG;AACzD,iBAAO,CAAC,KAAK,QAAQ,gBAAgB,UAAU,CAAC;AAAA,QACjD;AAAA,MACD;AAAA,IACD,SAAS,OAAO;AACf,UACC,OAAO,aACJ,YAAY,EACb,SAAS,oDAAoD,GAC9D;AACD,cAAM,IAAI;AAAA,UACT,KAAK,QAAQ;AAAA,UACb;AAAA,QACD;AAAA,MACD;AACA,UACC,OAAO,OAAO,OAAO,YAAY,UACjC,CAAE,MAAM,MAAM,MAAM,QAAmB,kBAAkB,EAAE,SAAS,eAAe,KACnF,CAAE,MAAM,MAAM,MAAM,QAAmB,kBAAkB,EAAE,SAAS,aAAa,GAChF;AAED,YAAI,CAAC,SAAS,GAAG,WAAW,IAAK,MAAM,MAAM,MAAM,QAAmB,MAAM,IAAI;AAChF,YAAI,QAAQ,YAAY,MAAM,yBAAyB;AACtD,oBAAU;AAAA,QACX;AACA,cAAM,IAAI,uCAAmB,KAAK,QAAQ,GAAG,SAAS;AAAA,UACrD,aAAa,YAAY,KAAK,MAAM;AAAA,QACrC,CAAC;AAAA,MACF;AACA,YAAM;AAAA,IACP;AACA,WAAO;AAAA,EACR;AACD;","names":["returnData"]}
|
|
@@ -19,11 +19,13 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var read_operation_exports = {};
|
|
20
20
|
__export(read_operation_exports, {
|
|
21
21
|
description: () => description,
|
|
22
|
-
execute: () => execute
|
|
22
|
+
execute: () => execute,
|
|
23
|
+
readFilter: () => readFilter
|
|
23
24
|
});
|
|
24
25
|
module.exports = __toCommonJS(read_operation_exports);
|
|
25
26
|
var import_commonDescription = require("./commonDescription");
|
|
26
27
|
var import_GoogleSheets = require("../../helpers/GoogleSheets.utils");
|
|
28
|
+
var import_readOperation = require("../utils/readOperation");
|
|
27
29
|
const combineFiltersOptions = {
|
|
28
30
|
displayName: "Combine Filters",
|
|
29
31
|
name: "combineFilters",
|
|
@@ -43,44 +45,47 @@ const combineFiltersOptions = {
|
|
|
43
45
|
],
|
|
44
46
|
default: "AND"
|
|
45
47
|
};
|
|
48
|
+
const readFilter = {
|
|
49
|
+
displayName: "Filters",
|
|
50
|
+
name: "filtersUI",
|
|
51
|
+
placeholder: "Add Filter",
|
|
52
|
+
type: "fixedCollection",
|
|
53
|
+
typeOptions: {
|
|
54
|
+
multipleValueButtonText: "Add Filter",
|
|
55
|
+
multipleValues: true
|
|
56
|
+
},
|
|
57
|
+
default: {},
|
|
58
|
+
options: [
|
|
59
|
+
{
|
|
60
|
+
displayName: "Filter",
|
|
61
|
+
name: "values",
|
|
62
|
+
values: [
|
|
63
|
+
{
|
|
64
|
+
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options
|
|
65
|
+
displayName: "Column",
|
|
66
|
+
name: "lookupColumn",
|
|
67
|
+
type: "options",
|
|
68
|
+
typeOptions: {
|
|
69
|
+
loadOptionsDependsOn: ["sheetName.value"],
|
|
70
|
+
loadOptionsMethod: "getSheetHeaderRowWithGeneratedColumnNames"
|
|
71
|
+
},
|
|
72
|
+
default: "",
|
|
73
|
+
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>'
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
displayName: "Value",
|
|
77
|
+
name: "lookupValue",
|
|
78
|
+
type: "string",
|
|
79
|
+
default: "",
|
|
80
|
+
hint: "The column must have this value to be matched"
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
};
|
|
46
86
|
const description = [
|
|
47
87
|
{
|
|
48
|
-
|
|
49
|
-
name: "filtersUI",
|
|
50
|
-
placeholder: "Add Filter",
|
|
51
|
-
type: "fixedCollection",
|
|
52
|
-
typeOptions: {
|
|
53
|
-
multipleValueButtonText: "Add Filter",
|
|
54
|
-
multipleValues: true
|
|
55
|
-
},
|
|
56
|
-
default: {},
|
|
57
|
-
options: [
|
|
58
|
-
{
|
|
59
|
-
displayName: "Filter",
|
|
60
|
-
name: "values",
|
|
61
|
-
values: [
|
|
62
|
-
{
|
|
63
|
-
// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options
|
|
64
|
-
displayName: "Column",
|
|
65
|
-
name: "lookupColumn",
|
|
66
|
-
type: "options",
|
|
67
|
-
typeOptions: {
|
|
68
|
-
loadOptionsDependsOn: ["sheetName.value"],
|
|
69
|
-
loadOptionsMethod: "getSheetHeaderRowWithGeneratedColumnNames"
|
|
70
|
-
},
|
|
71
|
-
default: "",
|
|
72
|
-
description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>'
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
displayName: "Value",
|
|
76
|
-
name: "lookupValue",
|
|
77
|
-
type: "string",
|
|
78
|
-
default: "",
|
|
79
|
-
hint: "The column must have this value to be matched"
|
|
80
|
-
}
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
],
|
|
88
|
+
...readFilter,
|
|
84
89
|
displayOptions: {
|
|
85
90
|
show: {
|
|
86
91
|
resource: ["sheet"],
|
|
@@ -182,75 +187,16 @@ async function execute(sheet, sheetName) {
|
|
|
182
187
|
if (nodeVersion > 4.1) {
|
|
183
188
|
length = items.length;
|
|
184
189
|
}
|
|
185
|
-
|
|
190
|
+
let returnData = [];
|
|
186
191
|
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
dataLocationOnSheetOptions.rangeDefinition = "detectAutomatically";
|
|
192
|
-
}
|
|
193
|
-
const range = (0, import_GoogleSheets.getRangeString)(sheetName, dataLocationOnSheetOptions);
|
|
194
|
-
const valueRenderMode = outputFormattingOption.general || "UNFORMATTED_VALUE";
|
|
195
|
-
const dateTimeRenderOption = outputFormattingOption.date || "FORMATTED_STRING";
|
|
196
|
-
const sheetData = await sheet.getData(
|
|
197
|
-
range,
|
|
198
|
-
valueRenderMode,
|
|
199
|
-
dateTimeRenderOption
|
|
200
|
-
);
|
|
201
|
-
if (sheetData === void 0 || sheetData.length === 0) {
|
|
202
|
-
return [];
|
|
203
|
-
}
|
|
204
|
-
const {
|
|
205
|
-
data,
|
|
206
|
-
headerRow: keyRowIndex,
|
|
207
|
-
firstDataRow: dataStartRowIndex
|
|
208
|
-
} = (0, import_GoogleSheets.prepareSheetData)(sheetData, dataLocationOnSheetOptions);
|
|
209
|
-
let responseData = [];
|
|
210
|
-
const lookupValues = this.getNodeParameter(
|
|
211
|
-
"filtersUI.values",
|
|
192
|
+
returnData = await import_readOperation.readSheet.call(
|
|
193
|
+
this,
|
|
194
|
+
sheet,
|
|
195
|
+
sheetName,
|
|
212
196
|
itemIndex,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
if (lookupValues.length) {
|
|
217
|
-
let returnAllMatches;
|
|
218
|
-
if (nodeVersion < 4.5) {
|
|
219
|
-
returnAllMatches = options.returnAllMatches === "returnAllMatches" ? true : false;
|
|
220
|
-
} else {
|
|
221
|
-
returnAllMatches = options.returnFirstMatch ? false : true;
|
|
222
|
-
}
|
|
223
|
-
if (nodeVersion <= 4.1) {
|
|
224
|
-
for (let i = 1; i < items.length; i++) {
|
|
225
|
-
const itemLookupValues = this.getNodeParameter(
|
|
226
|
-
"filtersUI.values",
|
|
227
|
-
i,
|
|
228
|
-
[]
|
|
229
|
-
);
|
|
230
|
-
if (itemLookupValues.length) {
|
|
231
|
-
lookupValues.push(...itemLookupValues);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
const combineFilters = this.getNodeParameter("combineFilters", itemIndex, "OR");
|
|
236
|
-
responseData = await sheet.lookupValues({
|
|
237
|
-
inputData,
|
|
238
|
-
keyRowIndex,
|
|
239
|
-
dataStartRowIndex,
|
|
240
|
-
lookupValues,
|
|
241
|
-
returnAllMatches,
|
|
242
|
-
combineFilters
|
|
243
|
-
});
|
|
244
|
-
} else {
|
|
245
|
-
responseData = sheet.structureArrayDataByColumn(inputData, keyRowIndex, dataStartRowIndex);
|
|
246
|
-
}
|
|
247
|
-
returnData.push(
|
|
248
|
-
...responseData.map((item) => {
|
|
249
|
-
return {
|
|
250
|
-
json: item,
|
|
251
|
-
pairedItem: { item: itemIndex }
|
|
252
|
-
};
|
|
253
|
-
})
|
|
197
|
+
returnData,
|
|
198
|
+
nodeVersion,
|
|
199
|
+
items
|
|
254
200
|
);
|
|
255
201
|
}
|
|
256
202
|
return returnData;
|
|
@@ -258,6 +204,7 @@ async function execute(sheet, sheetName) {
|
|
|
258
204
|
// Annotate the CommonJS export names for ESM import in node:
|
|
259
205
|
0 && (module.exports = {
|
|
260
206
|
description,
|
|
261
|
-
execute
|
|
207
|
+
execute,
|
|
208
|
+
readFilter
|
|
262
209
|
});
|
|
263
210
|
//# sourceMappingURL=read.operation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../nodes/Google/Sheet/v2/actions/sheet/read.operation.ts"],"sourcesContent":["import type {\n\tIExecuteFunctions,\n\tIDataObject,\n\tINodeExecutionData,\n\tINodeProperties,\n} from 'n8n-workflow';\n\nimport { dataLocationOnSheet, outputFormatting } from './commonDescription';\nimport type { GoogleSheet } from '../../helpers/GoogleSheet';\nimport type {\n\tILookupValues,\n\tRangeDetectionOptions,\n\tSheetProperties,\n\tSheetRangeData,\n\tValueRenderOption,\n} from '../../helpers/GoogleSheets.types';\nimport {\n\tgetRangeString,\n\tprepareSheetData,\n\tuntilSheetSelected,\n} from '../../helpers/GoogleSheets.utils';\n\nconst combineFiltersOptions: INodeProperties = {\n\tdisplayName: 'Combine Filters',\n\tname: 'combineFilters',\n\ttype: 'options',\n\tdescription:\n\t\t'How to combine the conditions defined in \"Filters\": AND requires all conditions to be true, OR requires at least one condition to be true',\n\toptions: [\n\t\t{\n\t\t\tname: 'AND',\n\t\t\tvalue: 'AND',\n\t\t\tdescription: 'Only rows that meet all the conditions are selected',\n\t\t},\n\t\t{\n\t\t\tname: 'OR',\n\t\t\tvalue: 'OR',\n\t\t\tdescription: 'Rows that meet at least one condition are selected',\n\t\t},\n\t],\n\tdefault: 'AND',\n};\n\nexport const description: SheetProperties = [\n\t{\n\t\tdisplayName: 'Filters',\n\t\tname: 'filtersUI',\n\t\tplaceholder: 'Add Filter',\n\t\ttype: 'fixedCollection',\n\t\ttypeOptions: {\n\t\t\tmultipleValueButtonText: 'Add Filter',\n\t\t\tmultipleValues: true,\n\t\t},\n\t\tdefault: {},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Filter',\n\t\t\t\tname: 'values',\n\t\t\t\tvalues: [\n\t\t\t\t\t{\n\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options\n\t\t\t\t\t\tdisplayName: 'Column',\n\t\t\t\t\t\tname: 'lookupColumn',\n\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\t\tloadOptionsDependsOn: ['sheetName.value'],\n\t\t\t\t\t\t\tloadOptionsMethod: 'getSheetHeaderRowWithGeneratedColumnNames',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\tdescription:\n\t\t\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayName: 'Value',\n\t\t\t\t\t\tname: 'lookupValue',\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\thint: 'The column must have this value to be matched',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\t...combineFiltersOptions,\n\t\tdefault: 'OR',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\t'@version': [{ _cnd: { lt: 4.3 } }],\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\t...combineFiltersOptions,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\t'@version': [{ _cnd: { gte: 4.3 } }],\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tdisplayName: 'Options',\n\t\tname: 'options',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add option',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\tdataLocationOnSheet,\n\t\t\toutputFormatting,\n\t\t\t{\n\t\t\t\tdisplayName: 'Return only First Matching Row',\n\t\t\t\tname: 'returnFirstMatch',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t\tdescription:\n\t\t\t\t\t'Whether to select the first row of the sheet or the first matching row (if filters are set)',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\t'@version': [{ _cnd: { gte: 4.5 } }],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'When Filter Has Multiple Matches',\n\t\t\t\tname: 'returnAllMatches',\n\t\t\t\ttype: 'options',\n\t\t\t\tdefault: 'returnFirstMatch',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Return First Match',\n\t\t\t\t\t\tvalue: 'returnFirstMatch',\n\t\t\t\t\t\tdescription: 'Return only the first match',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Return All Matches',\n\t\t\t\t\t\tvalue: 'returnAllMatches',\n\t\t\t\t\t\tdescription: 'Return all values that match',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdescription:\n\t\t\t\t\t'By default only the first result gets returned, Set to \"Return All Matches\" to get multiple matches',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\t'@version': [{ _cnd: { lt: 4.5 } }],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n];\n\nexport async function execute(\n\tthis: IExecuteFunctions,\n\tsheet: GoogleSheet,\n\tsheetName: string,\n): Promise<INodeExecutionData[]> {\n\tconst items = this.getInputData();\n\tconst nodeVersion = this.getNode().typeVersion;\n\tlet length = 1;\n\n\tif (nodeVersion > 4.1) {\n\t\tlength = items.length;\n\t}\n\n\tconst returnData: INodeExecutionData[] = [];\n\n\tfor (let itemIndex = 0; itemIndex < length; itemIndex++) {\n\t\tconst options = this.getNodeParameter('options', itemIndex, {});\n\t\tconst outputFormattingOption =\n\t\t\t((options.outputFormatting as IDataObject)?.values as IDataObject) || {};\n\n\t\tconst dataLocationOnSheetOptions =\n\t\t\t((options.dataLocationOnSheet as IDataObject)?.values as RangeDetectionOptions) || {};\n\n\t\tif (dataLocationOnSheetOptions.rangeDefinition === undefined) {\n\t\t\tdataLocationOnSheetOptions.rangeDefinition = 'detectAutomatically';\n\t\t}\n\n\t\tconst range = getRangeString(sheetName, dataLocationOnSheetOptions);\n\n\t\tconst valueRenderMode = (outputFormattingOption.general ||\n\t\t\t'UNFORMATTED_VALUE') as ValueRenderOption;\n\t\tconst dateTimeRenderOption = (outputFormattingOption.date || 'FORMATTED_STRING') as string;\n\n\t\tconst sheetData = (await sheet.getData(\n\t\t\trange,\n\t\t\tvalueRenderMode,\n\t\t\tdateTimeRenderOption,\n\t\t)) as SheetRangeData;\n\n\t\tif (sheetData === undefined || sheetData.length === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst {\n\t\t\tdata,\n\t\t\theaderRow: keyRowIndex,\n\t\t\tfirstDataRow: dataStartRowIndex,\n\t\t} = prepareSheetData(sheetData, dataLocationOnSheetOptions);\n\n\t\tlet responseData = [];\n\n\t\tconst lookupValues = this.getNodeParameter(\n\t\t\t'filtersUI.values',\n\t\t\titemIndex,\n\t\t\t[],\n\t\t) as ILookupValues[];\n\n\t\tconst inputData = data as string[][];\n\n\t\tif (lookupValues.length) {\n\t\t\tlet returnAllMatches;\n\t\t\tif (nodeVersion < 4.5) {\n\t\t\t\treturnAllMatches = options.returnAllMatches === 'returnAllMatches' ? true : false;\n\t\t\t} else {\n\t\t\t\treturnAllMatches = options.returnFirstMatch ? false : true;\n\t\t\t}\n\n\t\t\tif (nodeVersion <= 4.1) {\n\t\t\t\tfor (let i = 1; i < items.length; i++) {\n\t\t\t\t\tconst itemLookupValues = this.getNodeParameter(\n\t\t\t\t\t\t'filtersUI.values',\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t[],\n\t\t\t\t\t) as ILookupValues[];\n\t\t\t\t\tif (itemLookupValues.length) {\n\t\t\t\t\t\tlookupValues.push(...itemLookupValues);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst combineFilters = this.getNodeParameter('combineFilters', itemIndex, 'OR') as\n\t\t\t\t| 'AND'\n\t\t\t\t| 'OR';\n\n\t\t\tresponseData = await sheet.lookupValues({\n\t\t\t\tinputData,\n\t\t\t\tkeyRowIndex,\n\t\t\t\tdataStartRowIndex,\n\t\t\t\tlookupValues,\n\t\t\t\treturnAllMatches,\n\t\t\t\tcombineFilters,\n\t\t\t});\n\t\t} else {\n\t\t\tresponseData = sheet.structureArrayDataByColumn(inputData, keyRowIndex, dataStartRowIndex);\n\t\t}\n\n\t\treturnData.push(\n\t\t\t...responseData.map((item) => {\n\t\t\t\treturn {\n\t\t\t\t\tjson: item,\n\t\t\t\t\tpairedItem: { item: itemIndex },\n\t\t\t\t};\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn returnData;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../nodes/Google/Sheet/v2/actions/sheet/read.operation.ts"],"sourcesContent":["import type { IExecuteFunctions, INodeExecutionData, INodeProperties } from 'n8n-workflow';\n\nimport { dataLocationOnSheet, outputFormatting } from './commonDescription';\nimport type { GoogleSheet } from '../../helpers/GoogleSheet';\nimport type { SheetProperties } from '../../helpers/GoogleSheets.types';\nimport { untilSheetSelected } from '../../helpers/GoogleSheets.utils';\nimport { readSheet } from '../utils/readOperation';\n\nconst combineFiltersOptions: INodeProperties = {\n\tdisplayName: 'Combine Filters',\n\tname: 'combineFilters',\n\ttype: 'options',\n\tdescription:\n\t\t'How to combine the conditions defined in \"Filters\": AND requires all conditions to be true, OR requires at least one condition to be true',\n\toptions: [\n\t\t{\n\t\t\tname: 'AND',\n\t\t\tvalue: 'AND',\n\t\t\tdescription: 'Only rows that meet all the conditions are selected',\n\t\t},\n\t\t{\n\t\t\tname: 'OR',\n\t\t\tvalue: 'OR',\n\t\t\tdescription: 'Rows that meet at least one condition are selected',\n\t\t},\n\t],\n\tdefault: 'AND',\n};\n\nexport const readFilter: INodeProperties = {\n\tdisplayName: 'Filters',\n\tname: 'filtersUI',\n\tplaceholder: 'Add Filter',\n\ttype: 'fixedCollection',\n\ttypeOptions: {\n\t\tmultipleValueButtonText: 'Add Filter',\n\t\tmultipleValues: true,\n\t},\n\tdefault: {},\n\toptions: [\n\t\t{\n\t\t\tdisplayName: 'Filter',\n\t\t\tname: 'values',\n\t\t\tvalues: [\n\t\t\t\t{\n\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options\n\t\t\t\t\tdisplayName: 'Column',\n\t\t\t\t\tname: 'lookupColumn',\n\t\t\t\t\ttype: 'options',\n\t\t\t\t\ttypeOptions: {\n\t\t\t\t\t\tloadOptionsDependsOn: ['sheetName.value'],\n\t\t\t\t\t\tloadOptionsMethod: 'getSheetHeaderRowWithGeneratedColumnNames',\n\t\t\t\t\t},\n\t\t\t\t\tdefault: '',\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdisplayName: 'Value',\n\t\t\t\t\tname: 'lookupValue',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: '',\n\t\t\t\t\thint: 'The column must have this value to be matched',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t],\n};\n\nexport const description: SheetProperties = [\n\t{\n\t\t...readFilter,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\t...combineFiltersOptions,\n\t\tdefault: 'OR',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\t'@version': [{ _cnd: { lt: 4.3 } }],\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\t...combineFiltersOptions,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\t'@version': [{ _cnd: { gte: 4.3 } }],\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tdisplayName: 'Options',\n\t\tname: 'options',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add option',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['sheet'],\n\t\t\t\toperation: ['read'],\n\t\t\t},\n\t\t\thide: {\n\t\t\t\t...untilSheetSelected,\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\tdataLocationOnSheet,\n\t\t\toutputFormatting,\n\t\t\t{\n\t\t\t\tdisplayName: 'Return only First Matching Row',\n\t\t\t\tname: 'returnFirstMatch',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t\tdescription:\n\t\t\t\t\t'Whether to select the first row of the sheet or the first matching row (if filters are set)',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\t'@version': [{ _cnd: { gte: 4.5 } }],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'When Filter Has Multiple Matches',\n\t\t\t\tname: 'returnAllMatches',\n\t\t\t\ttype: 'options',\n\t\t\t\tdefault: 'returnFirstMatch',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Return First Match',\n\t\t\t\t\t\tvalue: 'returnFirstMatch',\n\t\t\t\t\t\tdescription: 'Return only the first match',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Return All Matches',\n\t\t\t\t\t\tvalue: 'returnAllMatches',\n\t\t\t\t\t\tdescription: 'Return all values that match',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdescription:\n\t\t\t\t\t'By default only the first result gets returned, Set to \"Return All Matches\" to get multiple matches',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\t'@version': [{ _cnd: { lt: 4.5 } }],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n];\n\nexport async function execute(\n\tthis: IExecuteFunctions,\n\tsheet: GoogleSheet,\n\tsheetName: string,\n): Promise<INodeExecutionData[]> {\n\tconst items = this.getInputData();\n\tconst nodeVersion = this.getNode().typeVersion;\n\tlet length = 1;\n\n\tif (nodeVersion > 4.1) {\n\t\tlength = items.length;\n\t}\n\n\tlet returnData: INodeExecutionData[] = [];\n\n\tfor (let itemIndex = 0; itemIndex < length; itemIndex++) {\n\t\treturnData = await readSheet.call(\n\t\t\tthis,\n\t\t\tsheet,\n\t\t\tsheetName,\n\t\t\titemIndex,\n\t\t\treturnData,\n\t\t\tnodeVersion,\n\t\t\titems,\n\t\t);\n\t}\n\n\treturn returnData;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,+BAAsD;AAGtD,0BAAmC;AACnC,2BAA0B;AAE1B,MAAM,wBAAyC;AAAA,EAC9C,aAAa;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA,EACN,aACC;AAAA,EACD,SAAS;AAAA,IACR;AAAA,MACC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,IACd;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,IACd;AAAA,EACD;AAAA,EACA,SAAS;AACV;AAEO,MAAM,aAA8B;AAAA,EAC1C,aAAa;AAAA,EACb,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,aAAa;AAAA,IACZ,yBAAyB;AAAA,IACzB,gBAAgB;AAAA,EACjB;AAAA,EACA,SAAS,CAAC;AAAA,EACV,SAAS;AAAA,IACR;AAAA,MACC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,QAAQ;AAAA,QACP;AAAA;AAAA,UAEC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,aAAa;AAAA,YACZ,sBAAsB,CAAC,iBAAiB;AAAA,YACxC,mBAAmB;AAAA,UACpB;AAAA,UACA,SAAS;AAAA,UACT,aACC;AAAA,QACF;AAAA,QACA;AAAA,UACC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,QACP;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,cAA+B;AAAA,EAC3C;AAAA,IACC,GAAG;AAAA,IACH,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,UAAU,CAAC,OAAO;AAAA,QAClB,WAAW,CAAC,MAAM;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,QACL,GAAG;AAAA,MACJ;AAAA,IACD;AAAA,EACD;AAAA,EACA;AAAA,IACC,GAAG;AAAA,IACH,SAAS;AAAA,IACT,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;AAAA,QAClC,UAAU,CAAC,OAAO;AAAA,QAClB,WAAW,CAAC,MAAM;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,QACL,GAAG;AAAA,MACJ;AAAA,IACD;AAAA,EACD;AAAA,EACA;AAAA,IACC,GAAG;AAAA,IACH,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAAA,QACnC,UAAU,CAAC,OAAO;AAAA,QAClB,WAAW,CAAC,MAAM;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,QACL,GAAG;AAAA,MACJ;AAAA,IACD;AAAA,EACD;AAAA,EACA;AAAA,IACC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,IACV,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,UAAU,CAAC,OAAO;AAAA,QAClB,WAAW,CAAC,MAAM;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,QACL,GAAG;AAAA,MACJ;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,QACC,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACC;AAAA,QACD,gBAAgB;AAAA,UACf,MAAM;AAAA,YACL,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAAA,UACpC;AAAA,QACD;AAAA,MACD;AAAA,MACA;AAAA,QACC,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,UACR;AAAA,YACC,MAAM;AAAA,YACN,OAAO;AAAA,YACP,aAAa;AAAA,UACd;AAAA,UACA;AAAA,YACC,MAAM;AAAA,YACN,OAAO;AAAA,YACP,aAAa;AAAA,UACd;AAAA,QACD;AAAA,QACA,aACC;AAAA,QACD,gBAAgB;AAAA,UACf,MAAM;AAAA,YACL,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;AAAA,UACnC;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,eAAsB,QAErB,OACA,WACgC;AAChC,QAAM,QAAQ,KAAK,aAAa;AAChC,QAAM,cAAc,KAAK,QAAQ,EAAE;AACnC,MAAI,SAAS;AAEb,MAAI,cAAc,KAAK;AACtB,aAAS,MAAM;AAAA,EAChB;AAEA,MAAI,aAAmC,CAAC;AAExC,WAAS,YAAY,GAAG,YAAY,QAAQ,aAAa;AACxD,iBAAa,MAAM,+BAAU;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;","names":[]}
|