n8n-nodes-base 1.92.0 → 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/MicrosoftSharePointOAuth2Api.credentials.js +0 -9
- package/dist/credentials/MicrosoftSharePointOAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js +13 -0
- package/dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/Snowflake.credentials.js +46 -2
- package/dist/credentials/Snowflake.credentials.js.map +1 -1
- package/dist/known/credentials.json +10 -1
- package/dist/known/nodes.json +20 -0
- package/dist/methods/defined.json +6 -0
- package/dist/methods/referenced.json +3 -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/Cron/Cron.node.js +1 -1
- package/dist/nodes/Cron/Cron.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js +2 -2
- package/dist/nodes/EmailReadImap/v1/EmailReadImapV1.node.js.map +1 -1
- package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js +2 -2
- package/dist/nodes/EmailReadImap/v2/EmailReadImapV2.node.js.map +1 -1
- package/dist/nodes/Evaluation/Evaluation/Description.node.js +146 -0
- package/dist/nodes/Evaluation/Evaluation/Description.node.js.map +1 -0
- package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js +117 -0
- package/dist/nodes/Evaluation/Evaluation/Evaluation.node.ee.js.map +1 -0
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +187 -0
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -0
- package/dist/nodes/Evaluation/methods/index.js +42 -0
- package/dist/nodes/Evaluation/methods/index.js.map +1 -0
- package/dist/nodes/Evaluation/methods/loadOptions.js +40 -0
- package/dist/nodes/Evaluation/methods/loadOptions.js.map +1 -0
- package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js +119 -0
- package/dist/nodes/Evaluation/utils/evaluationTriggerUtils.js.map +1 -0
- package/dist/nodes/Evaluation/utils/evaluationUtils.js +171 -0
- package/dist/nodes/Evaluation/utils/evaluationUtils.js.map +1 -0
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js +4 -3
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js.map +1 -1
- package/dist/nodes/Form/common.descriptions.js +2 -2
- package/dist/nodes/Form/common.descriptions.js.map +1 -1
- package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js +113 -107
- package/dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js +52 -106
- package/dist/nodes/Google/Sheet/v2/actions/sheet/read.operation.js.map +1 -1
- package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js +97 -0
- package/dist/nodes/Google/Sheet/v2/actions/utils/readOperation.js.map +1 -0
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js +20 -17
- package/dist/nodes/Google/Sheet/v2/actions/versionDescription.js.map +1 -1
- package/dist/nodes/Google/YouTube/YouTube.node.js +4 -2
- package/dist/nodes/Google/YouTube/YouTube.node.js.map +1 -1
- package/dist/nodes/Interval/Interval.node.js +1 -1
- package/dist/nodes/Interval/Interval.node.js.map +1 -1
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +2 -2
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
- package/dist/nodes/MQTT/MqttTrigger.node.js +2 -2
- package/dist/nodes/MQTT/MqttTrigger.node.js.map +1 -1
- package/dist/nodes/ManualTrigger/ManualTrigger.node.js +1 -1
- package/dist/nodes/ManualTrigger/ManualTrigger.node.js.map +1 -1
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js +93 -0
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharePoint.node.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/MicrosoftSharepoint.node.json +18 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js +190 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/common.descriptions.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js +108 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/File.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js +62 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/download.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js +129 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/update.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js +77 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/file/upload.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/index.js +45 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/index.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js +175 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/Item.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/create.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js +62 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/delete.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js +83 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/get.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js +203 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/getAll.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/update.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js +100 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/item/upsert.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js +99 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/List.resource.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js +65 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/get.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js +105 -0
- package/dist/nodes/Microsoft/SharePoint/descriptions/list/getAll.operation.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js +17 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/interfaces.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/utils.js +252 -0
- package/dist/nodes/Microsoft/SharePoint/helpers/utils.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/index.js +42 -0
- package/dist/nodes/Microsoft/SharePoint/methods/index.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js +222 -0
- package/dist/nodes/Microsoft/SharePoint/methods/listSearch.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js +104 -0
- package/dist/nodes/Microsoft/SharePoint/methods/resourceMapping.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/test/credentials.js +54 -0
- package/dist/nodes/Microsoft/SharePoint/test/credentials.js.map +1 -0
- package/dist/nodes/Microsoft/SharePoint/transport/index.js +46 -0
- package/dist/nodes/Microsoft/SharePoint/transport/index.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js +387 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/MicrosoftTeamsTrigger.node.json +18 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/types.js +17 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/types.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js +147 -0
- package/dist/nodes/Microsoft/Teams/v2/helpers/utils-trigger.js.map +1 -0
- package/dist/nodes/Microsoft/Teams/v2/transport/index.js.map +1 -1
- package/dist/nodes/PostBin/BinDescription.js +1 -1
- package/dist/nodes/PostBin/BinDescription.js.map +1 -1
- package/dist/nodes/PostBin/GenericFunctions.js +5 -5
- package/dist/nodes/PostBin/GenericFunctions.js.map +1 -1
- package/dist/nodes/PostBin/PostBin.node.js +1 -1
- package/dist/nodes/PostBin/PostBin.node.js.map +1 -1
- package/dist/nodes/PostBin/RequestDescription.js +2 -2
- package/dist/nodes/PostBin/RequestDescription.js.map +1 -1
- package/dist/nodes/Postgres/PostgresTrigger.node.js +2 -2
- package/dist/nodes/Postgres/PostgresTrigger.node.js.map +1 -1
- package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js +2 -2
- package/dist/nodes/RabbitMQ/RabbitMQTrigger.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js +8 -3
- package/dist/nodes/RespondToWebhook/RespondToWebhook.node.js.map +1 -1
- package/dist/nodes/RespondToWebhook/utils.js +43 -0
- package/dist/nodes/RespondToWebhook/utils.js.map +1 -0
- package/dist/nodes/Schedule/ScheduleTrigger.node.js +1 -1
- package/dist/nodes/Schedule/ScheduleTrigger.node.js.map +1 -1
- package/dist/nodes/Snowflake/GenericFunctions.js +34 -2
- package/dist/nodes/Snowflake/GenericFunctions.js.map +1 -1
- package/dist/nodes/Snowflake/Snowflake.node.js +5 -7
- package/dist/nodes/Snowflake/Snowflake.node.js.map +1 -1
- package/dist/nodes/SseTrigger/SseTrigger.node.js +2 -2
- package/dist/nodes/SseTrigger/SseTrigger.node.js.map +1 -1
- package/dist/types/credentials.json +6 -6
- package/dist/types/nodes.json +22 -17
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +12 -2
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
- package/package.json +13 -9
- /package/dist/{credentials/icons/SharePoint.svg → nodes/Microsoft/SharePoint/microsoftSharePoint.svg} +0 -0
|
@@ -54,7 +54,7 @@ class ScheduleTrigger {
|
|
|
54
54
|
outputs: [import_n8n_workflow.NodeConnectionTypes.Main],
|
|
55
55
|
properties: [
|
|
56
56
|
{
|
|
57
|
-
displayName: `This workflow will run on the schedule you define here once you <a data-key="activate">activate</a> it.<br><br>For testing, you can also trigger it manually: by going back to the canvas and clicking '
|
|
57
|
+
displayName: `This workflow will run on the schedule you define here once you <a data-key="activate">activate</a> it.<br><br>For testing, you can also trigger it manually: by going back to the canvas and clicking 'execute workflow'`,
|
|
58
58
|
name: "notice",
|
|
59
59
|
type: "notice",
|
|
60
60
|
default: ""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../nodes/Schedule/ScheduleTrigger.node.ts"],"sourcesContent":["import { sendAt } from 'cron';\nimport moment from 'moment-timezone';\nimport type {\n\tITriggerFunctions,\n\tINodeType,\n\tINodeTypeDescription,\n\tITriggerResponse,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\n\nimport { intervalToRecurrence, recurrenceCheck, toCronExpression } from './GenericFunctions';\nimport type { IRecurrenceRule, Rule } from './SchedulerInterface';\n\nexport class ScheduleTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Schedule Trigger',\n\t\tname: 'scheduleTrigger',\n\t\ticon: 'fa:clock',\n\t\tgroup: ['trigger', 'schedule'],\n\t\tversion: [1, 1.1, 1.2],\n\t\tdescription: 'Triggers the workflow on a given schedule',\n\t\teventTriggerDescription: '',\n\t\tactivationMessage:\n\t\t\t'Your schedule trigger will now trigger executions on the schedule you have defined.',\n\t\tdefaults: {\n\t\t\tname: 'Schedule Trigger',\n\t\t\tcolor: '#31C49F',\n\t\t},\n\n\t\tinputs: [],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName:\n\t\t\t\t\t'This workflow will run on the schedule you define here once you <a data-key=\"activate\">activate</a> it.<br><br>For testing, you can also trigger it manually: by going back to the canvas and clicking \\'test workflow\\'',\n\t\t\t\tname: 'notice',\n\t\t\t\ttype: 'notice',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Trigger Rules',\n\t\t\t\tname: 'rule',\n\t\t\t\tplaceholder: 'Add Rule',\n\t\t\t\ttype: 'fixedCollection',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tmultipleValues: true,\n\t\t\t\t},\n\t\t\t\tdefault: {\n\t\t\t\t\tinterval: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfield: 'days',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'interval',\n\t\t\t\t\t\tdisplayName: 'Trigger Interval',\n\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger Interval',\n\t\t\t\t\t\t\t\tname: 'field',\n\t\t\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\t\t\tdefault: 'days',\n\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-options-type-unsorted-items\n\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Seconds',\n\t\t\t\t\t\t\t\t\t\tvalue: 'seconds',\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\tname: 'Minutes',\n\t\t\t\t\t\t\t\t\t\tvalue: 'minutes',\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\tname: 'Hours',\n\t\t\t\t\t\t\t\t\t\tvalue: 'hours',\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\tname: 'Days',\n\t\t\t\t\t\t\t\t\t\tvalue: 'days',\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\tname: 'Weeks',\n\t\t\t\t\t\t\t\t\t\tvalue: 'weeks',\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\tname: 'Months',\n\t\t\t\t\t\t\t\t\t\tvalue: 'months',\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\tname: 'Custom (Cron)',\n\t\t\t\t\t\t\t\t\t\tvalue: 'cronExpression',\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\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Seconds Between Triggers',\n\t\t\t\t\t\t\t\tname: 'secondsInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdefault: 30,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['seconds'],\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\tdescription: 'Number of seconds between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Minutes Between Triggers',\n\t\t\t\t\t\t\t\tname: 'minutesInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdefault: 5,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['minutes'],\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\tdescription: 'Number of minutes between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Hours Between Triggers',\n\t\t\t\t\t\t\t\tname: 'hoursInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['hours'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Number of hours between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Days Between Triggers',\n\t\t\t\t\t\t\t\tname: 'daysInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['days'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Number of days between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Weeks Between Triggers',\n\t\t\t\t\t\t\t\tname: 'weeksInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['weeks'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Would run every week unless specified otherwise',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Months Between Triggers',\n\t\t\t\t\t\t\t\tname: 'monthsInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['months'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Would run every month unless specified otherwise',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger at Day of Month',\n\t\t\t\t\t\t\t\tname: 'triggerAtDayOfMonth',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['months'],\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\ttypeOptions: {\n\t\t\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\t\t\tmaxValue: 31,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'The day of the month to trigger (1-31)',\n\t\t\t\t\t\t\t\thint: 'If a month doesn’t have this day, the node won’t trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger on Weekdays',\n\t\t\t\t\t\t\t\tname: 'triggerAtDay',\n\t\t\t\t\t\t\t\ttype: 'multiOptions',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['weeks'],\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\ttypeOptions: {\n\t\t\t\t\t\t\t\t\tmaxValue: 7,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Monday',\n\t\t\t\t\t\t\t\t\t\tvalue: 1,\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\tname: 'Tuesday',\n\t\t\t\t\t\t\t\t\t\tvalue: 2,\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\tname: 'Wednesday',\n\t\t\t\t\t\t\t\t\t\tvalue: 3,\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\tname: 'Thursday',\n\t\t\t\t\t\t\t\t\t\tvalue: 4,\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\tname: 'Friday',\n\t\t\t\t\t\t\t\t\t\tvalue: 5,\n\t\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Saturday',\n\t\t\t\t\t\t\t\t\t\tvalue: 6,\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\tname: 'Sunday',\n\t\t\t\t\t\t\t\t\t\tvalue: 0,\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\tdefault: [0],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger at Hour',\n\t\t\t\t\t\t\t\tname: 'triggerAtHour',\n\t\t\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\t\t\tdefault: 0,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['days', 'weeks', 'months'],\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\toptions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Midnight',\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Midnight',\n\t\t\t\t\t\t\t\t\t\tvalue: 0,\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\tname: '1am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '1am',\n\t\t\t\t\t\t\t\t\t\tvalue: 1,\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\tname: '2am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '2am',\n\t\t\t\t\t\t\t\t\t\tvalue: 2,\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\tname: '3am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '3am',\n\t\t\t\t\t\t\t\t\t\tvalue: 3,\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\tname: '4am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '4am',\n\t\t\t\t\t\t\t\t\t\tvalue: 4,\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\tname: '5am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '5am',\n\t\t\t\t\t\t\t\t\t\tvalue: 5,\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\tname: '6am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '6am',\n\t\t\t\t\t\t\t\t\t\tvalue: 6,\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\tname: '7am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '7am',\n\t\t\t\t\t\t\t\t\t\tvalue: 7,\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\tname: '8am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '8am',\n\t\t\t\t\t\t\t\t\t\tvalue: 8,\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\tname: '9am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '9am',\n\t\t\t\t\t\t\t\t\t\tvalue: 9,\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\tname: '10am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '10am',\n\t\t\t\t\t\t\t\t\t\tvalue: 10,\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\tname: '11am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '11am',\n\t\t\t\t\t\t\t\t\t\tvalue: 11,\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\tname: 'Noon',\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Noon',\n\t\t\t\t\t\t\t\t\t\tvalue: 12,\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\tname: '1pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '1pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 13,\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\tname: '2pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '2pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 14,\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\tname: '3pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '3pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 15,\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\tname: '4pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '4pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 16,\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\tname: '5pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '5pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 17,\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\tname: '6pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '6pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 18,\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\tname: '7pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '7pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 19,\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\tname: '8pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '8pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 20,\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\tname: '9pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '9pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 21,\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\tname: '10pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '10pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 22,\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\tname: '11pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '11pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 23,\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\tdescription: 'The hour of the day to trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger at Minute',\n\t\t\t\t\t\t\t\tname: 'triggerAtMinute',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdefault: 0,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['hours', 'days', 'weeks', 'months'],\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\ttypeOptions: {\n\t\t\t\t\t\t\t\t\tminValue: 0,\n\t\t\t\t\t\t\t\t\tmaxValue: 59,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdescription: 'The minute past the hour to trigger (0-59)',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName:\n\t\t\t\t\t\t\t\t\t'You can find help generating your cron expression <a href=\"https://crontab.guru/examples.html\" target=\"_blank\">here</a>',\n\t\t\t\t\t\t\t\tname: 'notice',\n\t\t\t\t\t\t\t\ttype: 'notice',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['cronExpression'],\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\tdefault: '',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Expression',\n\t\t\t\t\t\t\t\tname: 'expression',\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\t\t\tplaceholder: 'eg. 0 15 * 1 sun',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['cronExpression'],\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\thint: 'Format: [Second] [Minute] [Hour] [Day of Month] [Month] [Day of Week]',\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\tasync trigger(this: ITriggerFunctions): Promise<ITriggerResponse> {\n\t\tconst { interval: intervals } = this.getNodeParameter('rule', []) as Rule;\n\t\tconst timezone = this.getTimezone();\n\t\tconst staticData = this.getWorkflowStaticData('node') as {\n\t\t\trecurrenceRules: number[];\n\t\t};\n\t\tif (!staticData.recurrenceRules) {\n\t\t\tstaticData.recurrenceRules = [];\n\t\t}\n\n\t\tconst executeTrigger = (recurrence: IRecurrenceRule) => {\n\t\t\tconst shouldTrigger = recurrenceCheck(recurrence, staticData.recurrenceRules, timezone);\n\t\t\tif (!shouldTrigger) return;\n\n\t\t\tconst momentTz = moment.tz(timezone);\n\t\t\tconst resultData = {\n\t\t\t\ttimestamp: momentTz.toISOString(true),\n\t\t\t\t'Readable date': momentTz.format('MMMM Do YYYY, h:mm:ss a'),\n\t\t\t\t'Readable time': momentTz.format('h:mm:ss a'),\n\t\t\t\t'Day of week': momentTz.format('dddd'),\n\t\t\t\tYear: momentTz.format('YYYY'),\n\t\t\t\tMonth: momentTz.format('MMMM'),\n\t\t\t\t'Day of month': momentTz.format('DD'),\n\t\t\t\tHour: momentTz.format('HH'),\n\t\t\t\tMinute: momentTz.format('mm'),\n\t\t\t\tSecond: momentTz.format('ss'),\n\t\t\t\tTimezone: `${timezone} (UTC${momentTz.format('Z')})`,\n\t\t\t};\n\n\t\t\tthis.emit([this.helpers.returnJsonArray([resultData])]);\n\t\t};\n\n\t\tconst rules = intervals.map((interval, i) => ({\n\t\t\tinterval,\n\t\t\tcronExpression: toCronExpression(interval),\n\t\t\trecurrence: intervalToRecurrence(interval, i),\n\t\t}));\n\n\t\tif (this.getMode() !== 'manual') {\n\t\t\tfor (const { interval, cronExpression, recurrence } of rules) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.helpers.registerCron(cronExpression, () => executeTrigger(recurrence));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (interval.field === 'cronExpression') {\n\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Invalid cron expression', {\n\t\t\t\t\t\t\tdescription: 'More information on how to build them at https://crontab.guru/',\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {};\n\t\t} else {\n\t\t\tconst manualTriggerFunction = async () => {\n\t\t\t\tconst { interval, cronExpression, recurrence } = rules[0];\n\t\t\t\tif (interval.field === 'cronExpression') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsendAt(cronExpression);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Invalid cron expression', {\n\t\t\t\t\t\t\tdescription: 'More information on how to build them at https://crontab.guru/',\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\texecuteTrigger(recurrence);\n\t\t\t};\n\n\t\t\treturn { manualTriggerFunction };\n\t\t}\n\t}\n}\n"],"mappings":"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oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA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","names":["moment"]}
|
|
1
|
+
{"version":3,"sources":["../../../nodes/Schedule/ScheduleTrigger.node.ts"],"sourcesContent":["import { sendAt } from 'cron';\nimport moment from 'moment-timezone';\nimport type {\n\tITriggerFunctions,\n\tINodeType,\n\tINodeTypeDescription,\n\tITriggerResponse,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, NodeOperationError } from 'n8n-workflow';\n\nimport { intervalToRecurrence, recurrenceCheck, toCronExpression } from './GenericFunctions';\nimport type { IRecurrenceRule, Rule } from './SchedulerInterface';\n\nexport class ScheduleTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Schedule Trigger',\n\t\tname: 'scheduleTrigger',\n\t\ticon: 'fa:clock',\n\t\tgroup: ['trigger', 'schedule'],\n\t\tversion: [1, 1.1, 1.2],\n\t\tdescription: 'Triggers the workflow on a given schedule',\n\t\teventTriggerDescription: '',\n\t\tactivationMessage:\n\t\t\t'Your schedule trigger will now trigger executions on the schedule you have defined.',\n\t\tdefaults: {\n\t\t\tname: 'Schedule Trigger',\n\t\t\tcolor: '#31C49F',\n\t\t},\n\n\t\tinputs: [],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName:\n\t\t\t\t\t'This workflow will run on the schedule you define here once you <a data-key=\"activate\">activate</a> it.<br><br>For testing, you can also trigger it manually: by going back to the canvas and clicking \\'execute workflow\\'',\n\t\t\t\tname: 'notice',\n\t\t\t\ttype: 'notice',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Trigger Rules',\n\t\t\t\tname: 'rule',\n\t\t\t\tplaceholder: 'Add Rule',\n\t\t\t\ttype: 'fixedCollection',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tmultipleValues: true,\n\t\t\t\t},\n\t\t\t\tdefault: {\n\t\t\t\t\tinterval: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfield: 'days',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'interval',\n\t\t\t\t\t\tdisplayName: 'Trigger Interval',\n\t\t\t\t\t\tvalues: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger Interval',\n\t\t\t\t\t\t\t\tname: 'field',\n\t\t\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\t\t\tdefault: 'days',\n\t\t\t\t\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-options-type-unsorted-items\n\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Seconds',\n\t\t\t\t\t\t\t\t\t\tvalue: 'seconds',\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\tname: 'Minutes',\n\t\t\t\t\t\t\t\t\t\tvalue: 'minutes',\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\tname: 'Hours',\n\t\t\t\t\t\t\t\t\t\tvalue: 'hours',\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\tname: 'Days',\n\t\t\t\t\t\t\t\t\t\tvalue: 'days',\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\tname: 'Weeks',\n\t\t\t\t\t\t\t\t\t\tvalue: 'weeks',\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\tname: 'Months',\n\t\t\t\t\t\t\t\t\t\tvalue: 'months',\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\tname: 'Custom (Cron)',\n\t\t\t\t\t\t\t\t\t\tvalue: 'cronExpression',\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\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Seconds Between Triggers',\n\t\t\t\t\t\t\t\tname: 'secondsInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdefault: 30,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['seconds'],\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\tdescription: 'Number of seconds between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Minutes Between Triggers',\n\t\t\t\t\t\t\t\tname: 'minutesInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdefault: 5,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['minutes'],\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\tdescription: 'Number of minutes between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Hours Between Triggers',\n\t\t\t\t\t\t\t\tname: 'hoursInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['hours'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Number of hours between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Days Between Triggers',\n\t\t\t\t\t\t\t\tname: 'daysInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['days'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Number of days between each workflow trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Weeks Between Triggers',\n\t\t\t\t\t\t\t\tname: 'weeksInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['weeks'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Would run every week unless specified otherwise',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Months Between Triggers',\n\t\t\t\t\t\t\t\tname: 'monthsInterval',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['months'],\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\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'Would run every month unless specified otherwise',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger at Day of Month',\n\t\t\t\t\t\t\t\tname: 'triggerAtDayOfMonth',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['months'],\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\ttypeOptions: {\n\t\t\t\t\t\t\t\t\tminValue: 1,\n\t\t\t\t\t\t\t\t\tmaxValue: 31,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdefault: 1,\n\t\t\t\t\t\t\t\tdescription: 'The day of the month to trigger (1-31)',\n\t\t\t\t\t\t\t\thint: 'If a month doesn’t have this day, the node won’t trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger on Weekdays',\n\t\t\t\t\t\t\t\tname: 'triggerAtDay',\n\t\t\t\t\t\t\t\ttype: 'multiOptions',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['weeks'],\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\ttypeOptions: {\n\t\t\t\t\t\t\t\t\tmaxValue: 7,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Monday',\n\t\t\t\t\t\t\t\t\t\tvalue: 1,\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\tname: 'Tuesday',\n\t\t\t\t\t\t\t\t\t\tvalue: 2,\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\tname: 'Wednesday',\n\t\t\t\t\t\t\t\t\t\tvalue: 3,\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\tname: 'Thursday',\n\t\t\t\t\t\t\t\t\t\tvalue: 4,\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\tname: 'Friday',\n\t\t\t\t\t\t\t\t\t\tvalue: 5,\n\t\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Saturday',\n\t\t\t\t\t\t\t\t\t\tvalue: 6,\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\tname: 'Sunday',\n\t\t\t\t\t\t\t\t\t\tvalue: 0,\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\tdefault: [0],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger at Hour',\n\t\t\t\t\t\t\t\tname: 'triggerAtHour',\n\t\t\t\t\t\t\t\ttype: 'options',\n\t\t\t\t\t\t\t\tdefault: 0,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['days', 'weeks', 'months'],\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\toptions: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'Midnight',\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Midnight',\n\t\t\t\t\t\t\t\t\t\tvalue: 0,\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\tname: '1am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '1am',\n\t\t\t\t\t\t\t\t\t\tvalue: 1,\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\tname: '2am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '2am',\n\t\t\t\t\t\t\t\t\t\tvalue: 2,\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\tname: '3am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '3am',\n\t\t\t\t\t\t\t\t\t\tvalue: 3,\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\tname: '4am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '4am',\n\t\t\t\t\t\t\t\t\t\tvalue: 4,\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\tname: '5am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '5am',\n\t\t\t\t\t\t\t\t\t\tvalue: 5,\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\tname: '6am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '6am',\n\t\t\t\t\t\t\t\t\t\tvalue: 6,\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\tname: '7am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '7am',\n\t\t\t\t\t\t\t\t\t\tvalue: 7,\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\tname: '8am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '8am',\n\t\t\t\t\t\t\t\t\t\tvalue: 8,\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\tname: '9am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '9am',\n\t\t\t\t\t\t\t\t\t\tvalue: 9,\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\tname: '10am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '10am',\n\t\t\t\t\t\t\t\t\t\tvalue: 10,\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\tname: '11am',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '11am',\n\t\t\t\t\t\t\t\t\t\tvalue: 11,\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\tname: 'Noon',\n\t\t\t\t\t\t\t\t\t\tdisplayName: 'Noon',\n\t\t\t\t\t\t\t\t\t\tvalue: 12,\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\tname: '1pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '1pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 13,\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\tname: '2pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '2pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 14,\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\tname: '3pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '3pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 15,\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\tname: '4pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '4pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 16,\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\tname: '5pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '5pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 17,\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\tname: '6pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '6pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 18,\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\tname: '7pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '7pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 19,\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\tname: '8pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '8pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 20,\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\tname: '9pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '9pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 21,\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\tname: '10pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '10pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 22,\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\tname: '11pm',\n\t\t\t\t\t\t\t\t\t\tdisplayName: '11pm',\n\t\t\t\t\t\t\t\t\t\tvalue: 23,\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\tdescription: 'The hour of the day to trigger',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Trigger at Minute',\n\t\t\t\t\t\t\t\tname: 'triggerAtMinute',\n\t\t\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\t\t\tdefault: 0,\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['hours', 'days', 'weeks', 'months'],\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\ttypeOptions: {\n\t\t\t\t\t\t\t\t\tminValue: 0,\n\t\t\t\t\t\t\t\t\tmaxValue: 59,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdescription: 'The minute past the hour to trigger (0-59)',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName:\n\t\t\t\t\t\t\t\t\t'You can find help generating your cron expression <a href=\"https://crontab.guru/examples.html\" target=\"_blank\">here</a>',\n\t\t\t\t\t\t\t\tname: 'notice',\n\t\t\t\t\t\t\t\ttype: 'notice',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['cronExpression'],\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\tdefault: '',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayName: 'Expression',\n\t\t\t\t\t\t\t\tname: 'expression',\n\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\tdefault: '',\n\t\t\t\t\t\t\t\tplaceholder: 'eg. 0 15 * 1 sun',\n\t\t\t\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\t\t\t\tfield: ['cronExpression'],\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\thint: 'Format: [Second] [Minute] [Hour] [Day of Month] [Month] [Day of Week]',\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\tasync trigger(this: ITriggerFunctions): Promise<ITriggerResponse> {\n\t\tconst { interval: intervals } = this.getNodeParameter('rule', []) as Rule;\n\t\tconst timezone = this.getTimezone();\n\t\tconst staticData = this.getWorkflowStaticData('node') as {\n\t\t\trecurrenceRules: number[];\n\t\t};\n\t\tif (!staticData.recurrenceRules) {\n\t\t\tstaticData.recurrenceRules = [];\n\t\t}\n\n\t\tconst executeTrigger = (recurrence: IRecurrenceRule) => {\n\t\t\tconst shouldTrigger = recurrenceCheck(recurrence, staticData.recurrenceRules, timezone);\n\t\t\tif (!shouldTrigger) return;\n\n\t\t\tconst momentTz = moment.tz(timezone);\n\t\t\tconst resultData = {\n\t\t\t\ttimestamp: momentTz.toISOString(true),\n\t\t\t\t'Readable date': momentTz.format('MMMM Do YYYY, h:mm:ss a'),\n\t\t\t\t'Readable time': momentTz.format('h:mm:ss a'),\n\t\t\t\t'Day of week': momentTz.format('dddd'),\n\t\t\t\tYear: momentTz.format('YYYY'),\n\t\t\t\tMonth: momentTz.format('MMMM'),\n\t\t\t\t'Day of month': momentTz.format('DD'),\n\t\t\t\tHour: momentTz.format('HH'),\n\t\t\t\tMinute: momentTz.format('mm'),\n\t\t\t\tSecond: momentTz.format('ss'),\n\t\t\t\tTimezone: `${timezone} (UTC${momentTz.format('Z')})`,\n\t\t\t};\n\n\t\t\tthis.emit([this.helpers.returnJsonArray([resultData])]);\n\t\t};\n\n\t\tconst rules = intervals.map((interval, i) => ({\n\t\t\tinterval,\n\t\t\tcronExpression: toCronExpression(interval),\n\t\t\trecurrence: intervalToRecurrence(interval, i),\n\t\t}));\n\n\t\tif (this.getMode() !== 'manual') {\n\t\t\tfor (const { interval, cronExpression, recurrence } of rules) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.helpers.registerCron(cronExpression, () => executeTrigger(recurrence));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (interval.field === 'cronExpression') {\n\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Invalid cron expression', {\n\t\t\t\t\t\t\tdescription: 'More information on how to build them at https://crontab.guru/',\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {};\n\t\t} else {\n\t\t\tconst manualTriggerFunction = async () => {\n\t\t\t\tconst { interval, cronExpression, recurrence } = rules[0];\n\t\t\t\tif (interval.field === 'cronExpression') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsendAt(cronExpression);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Invalid cron expression', {\n\t\t\t\t\t\t\tdescription: 'More information on how to build them at https://crontab.guru/',\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\texecuteTrigger(recurrence);\n\t\t\t};\n\n\t\t\treturn { manualTriggerFunction };\n\t\t}\n\t}\n}\n"],"mappings":"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oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,oBACA;AAAA,sBACC,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,OAAO;AAAA,oBACR;AAAA,kBACD;AAAA,kBACA,aAAa;AAAA,gBACd;AAAA,gBACA;AAAA,kBACC,aAAa;AAAA,kBACb,MAAM;AAAA,kBACN,MAAM;AAAA,kBACN,SAAS;AAAA,kBACT,gBAAgB;AAAA,oBACf,MAAM;AAAA,sBACL,OAAO,CAAC,SAAS,QAAQ,SAAS,QAAQ;AAAA,oBAC3C;AAAA,kBACD;AAAA,kBACA,aAAa;AAAA,oBACZ,UAAU;AAAA,oBACV,UAAU;AAAA,kBACX;AAAA,kBACA,aAAa;AAAA,gBACd;AAAA,gBACA;AAAA,kBACC,aACC;AAAA,kBACD,MAAM;AAAA,kBACN,MAAM;AAAA,kBACN,gBAAgB;AAAA,oBACf,MAAM;AAAA,sBACL,OAAO,CAAC,gBAAgB;AAAA,oBACzB;AAAA,kBACD;AAAA,kBACA,SAAS;AAAA,gBACV;AAAA,gBACA;AAAA,kBACC,aAAa;AAAA,kBACb,MAAM;AAAA,kBACN,MAAM;AAAA,kBACN,SAAS;AAAA,kBACT,aAAa;AAAA,kBACb,gBAAgB;AAAA,oBACf,MAAM;AAAA,sBACL,OAAO,CAAC,gBAAgB;AAAA,oBACzB;AAAA,kBACD;AAAA,kBACA,MAAM;AAAA,gBACP;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA;AAAA,EAEA,MAAM,UAA4D;AACjE,UAAM,EAAE,UAAU,UAAU,IAAI,KAAK,iBAAiB,QAAQ,CAAC,CAAC;AAChE,UAAM,WAAW,KAAK,YAAY;AAClC,UAAM,aAAa,KAAK,sBAAsB,MAAM;AAGpD,QAAI,CAAC,WAAW,iBAAiB;AAChC,iBAAW,kBAAkB,CAAC;AAAA,IAC/B;AAEA,UAAM,iBAAiB,CAAC,eAAgC;AACvD,YAAM,oBAAgB,yCAAgB,YAAY,WAAW,iBAAiB,QAAQ;AACtF,UAAI,CAAC,cAAe;AAEpB,YAAM,WAAW,uBAAAA,QAAO,GAAG,QAAQ;AACnC,YAAM,aAAa;AAAA,QAClB,WAAW,SAAS,YAAY,IAAI;AAAA,QACpC,iBAAiB,SAAS,OAAO,yBAAyB;AAAA,QAC1D,iBAAiB,SAAS,OAAO,WAAW;AAAA,QAC5C,eAAe,SAAS,OAAO,MAAM;AAAA,QACrC,MAAM,SAAS,OAAO,MAAM;AAAA,QAC5B,OAAO,SAAS,OAAO,MAAM;AAAA,QAC7B,gBAAgB,SAAS,OAAO,IAAI;AAAA,QACpC,MAAM,SAAS,OAAO,IAAI;AAAA,QAC1B,QAAQ,SAAS,OAAO,IAAI;AAAA,QAC5B,QAAQ,SAAS,OAAO,IAAI;AAAA,QAC5B,UAAU,GAAG,QAAQ,QAAQ,SAAS,OAAO,GAAG,CAAC;AAAA,MAClD;AAEA,WAAK,KAAK,CAAC,KAAK,QAAQ,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;AAAA,IACvD;AAEA,UAAM,QAAQ,UAAU,IAAI,CAAC,UAAU,OAAO;AAAA,MAC7C;AAAA,MACA,oBAAgB,0CAAiB,QAAQ;AAAA,MACzC,gBAAY,8CAAqB,UAAU,CAAC;AAAA,IAC7C,EAAE;AAEF,QAAI,KAAK,QAAQ,MAAM,UAAU;AAChC,iBAAW,EAAE,UAAU,gBAAgB,WAAW,KAAK,OAAO;AAC7D,YAAI;AACH,eAAK,QAAQ,aAAa,gBAAgB,MAAM,eAAe,UAAU,CAAC;AAAA,QAC3E,SAAS,OAAO;AACf,cAAI,SAAS,UAAU,kBAAkB;AACxC,kBAAM,IAAI,uCAAmB,KAAK,QAAQ,GAAG,2BAA2B;AAAA,cACvE,aAAa;AAAA,YACd,CAAC;AAAA,UACF,OAAO;AACN,kBAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD;AACA,aAAO,CAAC;AAAA,IACT,OAAO;AACN,YAAM,wBAAwB,YAAY;AACzC,cAAM,EAAE,UAAU,gBAAgB,WAAW,IAAI,MAAM,CAAC;AACxD,YAAI,SAAS,UAAU,kBAAkB;AACxC,cAAI;AACH,oCAAO,cAAc;AAAA,UACtB,SAAS,OAAO;AACf,kBAAM,IAAI,uCAAmB,KAAK,QAAQ,GAAG,2BAA2B;AAAA,cACvE,aAAa;AAAA,YACd,CAAC;AAAA,UACF;AAAA,QACD;AACA,uBAAe,UAAU;AAAA,MAC1B;AAEA,aAAO,EAAE,sBAAsB;AAAA,IAChC;AAAA,EACD;AACD;","names":["moment"]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,14 +17,43 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
var GenericFunctions_exports = {};
|
|
20
30
|
__export(GenericFunctions_exports, {
|
|
21
31
|
connect: () => connect,
|
|
22
32
|
destroy: () => destroy,
|
|
23
|
-
execute: () => execute
|
|
33
|
+
execute: () => execute,
|
|
34
|
+
getConnectionOptions: () => getConnectionOptions
|
|
24
35
|
});
|
|
25
36
|
module.exports = __toCommonJS(GenericFunctions_exports);
|
|
37
|
+
var import_pick = __toESM(require("lodash/pick"));
|
|
38
|
+
const commonConnectionFields = [
|
|
39
|
+
"account",
|
|
40
|
+
"database",
|
|
41
|
+
"schema",
|
|
42
|
+
"warehouse",
|
|
43
|
+
"role",
|
|
44
|
+
"clientSessionKeepAlive"
|
|
45
|
+
];
|
|
46
|
+
const getConnectionOptions = (credential) => {
|
|
47
|
+
const connectionOptions = (0, import_pick.default)(credential, commonConnectionFields);
|
|
48
|
+
if (credential.authentication === "keyPair") {
|
|
49
|
+
connectionOptions.authenticator = "SNOWFLAKE_JWT";
|
|
50
|
+
connectionOptions.privateKey = credential.privateKey;
|
|
51
|
+
} else {
|
|
52
|
+
connectionOptions.username = credential.username;
|
|
53
|
+
connectionOptions.password = credential.password;
|
|
54
|
+
}
|
|
55
|
+
return connectionOptions;
|
|
56
|
+
};
|
|
26
57
|
async function connect(conn) {
|
|
27
58
|
return await new Promise((resolve, reject) => {
|
|
28
59
|
conn.connect((error) => error ? reject(error) : resolve());
|
|
@@ -46,6 +77,7 @@ async function execute(conn, sqlText, binds) {
|
|
|
46
77
|
0 && (module.exports = {
|
|
47
78
|
connect,
|
|
48
79
|
destroy,
|
|
49
|
-
execute
|
|
80
|
+
execute,
|
|
81
|
+
getConnectionOptions
|
|
50
82
|
});
|
|
51
83
|
//# sourceMappingURL=GenericFunctions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../nodes/Snowflake/GenericFunctions.ts"],"sourcesContent":["import type snowflake from 'snowflake-sdk';\n\nexport async function connect(conn: snowflake.Connection) {\n\treturn await new Promise<void>((resolve, reject) => {\n\t\tconn.connect((error) => (error ? reject(error) : resolve()));\n\t});\n}\n\nexport async function destroy(conn: snowflake.Connection) {\n\treturn await new Promise<void>((resolve, reject) => {\n\t\tconn.destroy((error) => (error ? reject(error) : resolve()));\n\t});\n}\n\nexport async function execute(\n\tconn: snowflake.Connection,\n\tsqlText: string,\n\tbinds: snowflake.InsertBinds,\n) {\n\treturn await new Promise<any[] | undefined>((resolve, reject) => {\n\t\tconn.execute({\n\t\t\tsqlText,\n\t\t\tbinds,\n\t\t\tcomplete: (error, _, rows) => (error ? reject(error) : resolve(rows)),\n\t\t});\n\t});\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../nodes/Snowflake/GenericFunctions.ts"],"sourcesContent":["import pick from 'lodash/pick';\nimport type snowflake from 'snowflake-sdk';\n\nconst commonConnectionFields = [\n\t'account',\n\t'database',\n\t'schema',\n\t'warehouse',\n\t'role',\n\t'clientSessionKeepAlive',\n] as const;\n\nexport type SnowflakeCredential = Pick<\n\tsnowflake.ConnectionOptions,\n\t(typeof commonConnectionFields)[number]\n> &\n\t(\n\t\t| {\n\t\t\t\tauthentication: 'password';\n\t\t\t\tusername?: string;\n\t\t\t\tpassword?: string;\n\t\t }\n\t\t| {\n\t\t\t\tauthentication: 'keyPair';\n\t\t\t\tprivateKey: string;\n\t\t }\n\t);\n\nexport const getConnectionOptions = (credential: SnowflakeCredential) => {\n\tconst connectionOptions: snowflake.ConnectionOptions = pick(credential, commonConnectionFields);\n\tif (credential.authentication === 'keyPair') {\n\t\tconnectionOptions.authenticator = 'SNOWFLAKE_JWT';\n\t\tconnectionOptions.privateKey = credential.privateKey;\n\t} else {\n\t\tconnectionOptions.username = credential.username;\n\t\tconnectionOptions.password = credential.password;\n\t}\n\treturn connectionOptions;\n};\n\nexport async function connect(conn: snowflake.Connection) {\n\treturn await new Promise<void>((resolve, reject) => {\n\t\tconn.connect((error) => (error ? reject(error) : resolve()));\n\t});\n}\n\nexport async function destroy(conn: snowflake.Connection) {\n\treturn await new Promise<void>((resolve, reject) => {\n\t\tconn.destroy((error) => (error ? reject(error) : resolve()));\n\t});\n}\n\nexport async function execute(\n\tconn: snowflake.Connection,\n\tsqlText: string,\n\tbinds: snowflake.InsertBinds,\n) {\n\treturn await new Promise<any[] | undefined>((resolve, reject) => {\n\t\tconn.execute({\n\t\t\tsqlText,\n\t\t\tbinds,\n\t\t\tcomplete: (error, _, rows) => (error ? reject(error) : resolve(rows)),\n\t\t});\n\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAGjB,MAAM,yBAAyB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAkBO,MAAM,uBAAuB,CAAC,eAAoC;AACxE,QAAM,wBAAiD,YAAAA,SAAK,YAAY,sBAAsB;AAC9F,MAAI,WAAW,mBAAmB,WAAW;AAC5C,sBAAkB,gBAAgB;AAClC,sBAAkB,aAAa,WAAW;AAAA,EAC3C,OAAO;AACN,sBAAkB,WAAW,WAAW;AACxC,sBAAkB,WAAW,WAAW;AAAA,EACzC;AACA,SAAO;AACR;AAEA,eAAsB,QAAQ,MAA4B;AACzD,SAAO,MAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AACnD,SAAK,QAAQ,CAAC,UAAW,QAAQ,OAAO,KAAK,IAAI,QAAQ,CAAE;AAAA,EAC5D,CAAC;AACF;AAEA,eAAsB,QAAQ,MAA4B;AACzD,SAAO,MAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AACnD,SAAK,QAAQ,CAAC,UAAW,QAAQ,OAAO,KAAK,IAAI,QAAQ,CAAE;AAAA,EAC5D,CAAC;AACF;AAEA,eAAsB,QACrB,MACA,SACA,OACC;AACD,SAAO,MAAM,IAAI,QAA2B,CAAC,SAAS,WAAW;AAChE,SAAK,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA,UAAU,CAAC,OAAO,GAAG,SAAU,QAAQ,OAAO,KAAK,IAAI,QAAQ,IAAI;AAAA,IACpE,CAAC;AAAA,EACF,CAAC;AACF;","names":["pick"]}
|
|
@@ -182,13 +182,11 @@ class Snowflake {
|
|
|
182
182
|
};
|
|
183
183
|
}
|
|
184
184
|
async execute() {
|
|
185
|
-
const credentials = await this.getCredentials(
|
|
186
|
-
|
|
187
|
-
);
|
|
188
|
-
const returnData = [];
|
|
189
|
-
let responseData;
|
|
190
|
-
const connection = import_snowflake_sdk.default.createConnection(credentials);
|
|
185
|
+
const credentials = await this.getCredentials("snowflake");
|
|
186
|
+
const connectionOptions = (0, import_GenericFunctions.getConnectionOptions)(credentials);
|
|
187
|
+
const connection = import_snowflake_sdk.default.createConnection(connectionOptions);
|
|
191
188
|
await (0, import_GenericFunctions.connect)(connection);
|
|
189
|
+
const returnData = [];
|
|
192
190
|
const items = this.getInputData();
|
|
193
191
|
const operation = this.getNodeParameter("operation", 0);
|
|
194
192
|
if (operation === "executeQuery") {
|
|
@@ -197,7 +195,7 @@ class Snowflake {
|
|
|
197
195
|
for (const resolvable of (0, import_utilities.getResolvables)(query)) {
|
|
198
196
|
query = query.replace(resolvable, this.evaluateExpression(resolvable, i));
|
|
199
197
|
}
|
|
200
|
-
responseData = await (0, import_GenericFunctions.execute)(connection, query, []);
|
|
198
|
+
const responseData = await (0, import_GenericFunctions.execute)(connection, query, []);
|
|
201
199
|
const executionData = this.helpers.constructExecutionMetaData(
|
|
202
200
|
this.helpers.returnJsonArray(responseData),
|
|
203
201
|
{ itemData: { item: i } }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../nodes/Snowflake/Snowflake.node.ts"],"sourcesContent":["import type {\n\tIExecuteFunctions,\n\tIDataObject,\n\tINodeExecutionData,\n\tINodeType,\n\tINodeTypeDescription,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes } from 'n8n-workflow';\nimport snowflake from 'snowflake-sdk';\n\nimport { getResolvables } from '@utils/utilities';\n\nimport { connect, destroy, execute } from './GenericFunctions';\n\nexport class Snowflake implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Snowflake',\n\t\tname: 'snowflake',\n\t\ticon: 'file:snowflake.svg',\n\t\tgroup: ['input'],\n\t\tversion: 1,\n\t\tdescription: 'Get, add and update data in Snowflake',\n\t\tdefaults: {\n\t\t\tname: 'Snowflake',\n\t\t},\n\t\tusableAsTool: true,\n\t\tinputs: [NodeConnectionTypes.Main],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tparameterPane: 'wide',\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'snowflake',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Operation',\n\t\t\t\tname: 'operation',\n\t\t\t\ttype: 'options',\n\t\t\t\tnoDataExpression: true,\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Execute Query',\n\t\t\t\t\t\tvalue: 'executeQuery',\n\t\t\t\t\t\tdescription: 'Execute an SQL query',\n\t\t\t\t\t\taction: 'Execute a SQL query',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Insert',\n\t\t\t\t\t\tvalue: 'insert',\n\t\t\t\t\t\tdescription: 'Insert rows in database',\n\t\t\t\t\t\taction: 'Insert rows in database',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Update',\n\t\t\t\t\t\tvalue: 'update',\n\t\t\t\t\t\tdescription: 'Update rows in database',\n\t\t\t\t\t\taction: 'Update rows in database',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'insert',\n\t\t\t},\n\n\t\t\t// ----------------------------------\n\t\t\t// executeQuery\n\t\t\t// ----------------------------------\n\t\t\t{\n\t\t\t\tdisplayName: 'Query',\n\t\t\t\tname: 'query',\n\t\t\t\ttype: 'string',\n\t\t\t\tnoDataExpression: true,\n\t\t\t\ttypeOptions: {\n\t\t\t\t\teditor: 'sqlEditor',\n\t\t\t\t},\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['executeQuery'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'SELECT id, name FROM product WHERE id < 40',\n\t\t\t\trequired: true,\n\t\t\t\tdescription: 'The SQL query to execute',\n\t\t\t},\n\n\t\t\t// ----------------------------------\n\t\t\t// insert\n\t\t\t// ----------------------------------\n\t\t\t{\n\t\t\t\tdisplayName: 'Table',\n\t\t\t\tname: 'table',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['insert'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\trequired: true,\n\t\t\t\tdescription: 'Name of the table in which to insert data to',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Columns',\n\t\t\t\tname: 'columns',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['insert'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'id,name,description',\n\t\t\t\tdescription:\n\t\t\t\t\t'Comma-separated list of the properties which should used as columns for the new rows',\n\t\t\t},\n\n\t\t\t// ----------------------------------\n\t\t\t// update\n\t\t\t// ----------------------------------\n\t\t\t{\n\t\t\t\tdisplayName: 'Table',\n\t\t\t\tname: 'table',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['update'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\trequired: true,\n\t\t\t\tdescription: 'Name of the table in which to update data in',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Update Key',\n\t\t\t\tname: 'updateKey',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['update'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: 'id',\n\t\t\t\trequired: true,\n\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-description-miscased-id\n\t\t\t\tdescription:\n\t\t\t\t\t'Name of the property which decides which rows in the database should be updated. Normally that would be \"id\".',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Columns',\n\t\t\t\tname: 'columns',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['update'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'name,description',\n\t\t\t\tdescription:\n\t\t\t\t\t'Comma-separated list of the properties which should used as columns for rows to update',\n\t\t\t},\n\t\t],\n\t};\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst credentials = (await this.getCredentials(\n\t\t\t'snowflake',\n\t\t)) as unknown as snowflake.ConnectionOptions;\n\t\tconst returnData: INodeExecutionData[] = [];\n\t\tlet responseData;\n\n\t\tconst connection = snowflake.createConnection(credentials);\n\n\t\tawait connect(connection);\n\n\t\tconst items = this.getInputData();\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\n\t\tif (operation === 'executeQuery') {\n\t\t\t// ----------------------------------\n\t\t\t// executeQuery\n\t\t\t// ----------------------------------\n\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\tlet query = this.getNodeParameter('query', i) as string;\n\n\t\t\t\tfor (const resolvable of getResolvables(query)) {\n\t\t\t\t\tquery = query.replace(resolvable, this.evaluateExpression(resolvable, i) as string);\n\t\t\t\t}\n\n\t\t\t\tresponseData = await execute(connection, query, []);\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(responseData as IDataObject[]),\n\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t}\n\t\t}\n\n\t\tif (operation === 'insert') {\n\t\t\t// ----------------------------------\n\t\t\t// insert\n\t\t\t// ----------------------------------\n\n\t\t\tconst table = this.getNodeParameter('table', 0) as string;\n\t\t\tconst columnString = this.getNodeParameter('columns', 0) as string;\n\t\t\tconst columns = columnString.split(',').map((column) => column.trim());\n\t\t\tconst query = `INSERT INTO ${table}(${columns.join(',')}) VALUES (${columns\n\t\t\t\t.map((_column) => '?')\n\t\t\t\t.join(',')})`;\n\t\t\tconst data = this.helpers.copyInputItems(items, columns);\n\t\t\tconst binds = data.map((element) => Object.values(element));\n\t\t\tawait execute(connection, query, binds as unknown as snowflake.InsertBinds);\n\t\t\tdata.forEach((d, i) => {\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(d),\n\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t});\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\t// ----------------------------------\n\t\t\t// update\n\t\t\t// ----------------------------------\n\n\t\t\tconst table = this.getNodeParameter('table', 0) as string;\n\t\t\tconst updateKey = this.getNodeParameter('updateKey', 0) as string;\n\t\t\tconst columnString = this.getNodeParameter('columns', 0) as string;\n\t\t\tconst columns = columnString.split(',').map((column) => column.trim());\n\n\t\t\tif (!columns.includes(updateKey)) {\n\t\t\t\tcolumns.unshift(updateKey);\n\t\t\t}\n\n\t\t\tconst query = `UPDATE ${table} SET ${columns\n\t\t\t\t.map((column) => `${column} = ?`)\n\t\t\t\t.join(',')} WHERE ${updateKey} = ?;`;\n\t\t\tconst data = this.helpers.copyInputItems(items, columns);\n\t\t\tconst binds = data.map((element) => Object.values(element).concat(element[updateKey]));\n\t\t\tfor (let i = 0; i < binds.length; i++) {\n\t\t\t\tawait execute(connection, query, binds[i] as unknown as snowflake.InsertBinds);\n\t\t\t}\n\t\t\tdata.forEach((d, i) => {\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(d),\n\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t});\n\t\t}\n\n\t\tawait destroy(connection);\n\t\treturn [returnData];\n\t}\n}\n"],"mappings":"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","names":["snowflake"]}
|
|
1
|
+
{"version":3,"sources":["../../../nodes/Snowflake/Snowflake.node.ts"],"sourcesContent":["import type {\n\tIExecuteFunctions,\n\tIDataObject,\n\tINodeExecutionData,\n\tINodeType,\n\tINodeTypeDescription,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes } from 'n8n-workflow';\nimport snowflake from 'snowflake-sdk';\n\nimport { getResolvables } from '@utils/utilities';\n\nimport {\n\tconnect,\n\tdestroy,\n\texecute,\n\tgetConnectionOptions,\n\ttype SnowflakeCredential,\n} from './GenericFunctions';\n\nexport class Snowflake implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Snowflake',\n\t\tname: 'snowflake',\n\t\ticon: 'file:snowflake.svg',\n\t\tgroup: ['input'],\n\t\tversion: 1,\n\t\tdescription: 'Get, add and update data in Snowflake',\n\t\tdefaults: {\n\t\t\tname: 'Snowflake',\n\t\t},\n\t\tusableAsTool: true,\n\t\tinputs: [NodeConnectionTypes.Main],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tparameterPane: 'wide',\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'snowflake',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Operation',\n\t\t\t\tname: 'operation',\n\t\t\t\ttype: 'options',\n\t\t\t\tnoDataExpression: true,\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Execute Query',\n\t\t\t\t\t\tvalue: 'executeQuery',\n\t\t\t\t\t\tdescription: 'Execute an SQL query',\n\t\t\t\t\t\taction: 'Execute a SQL query',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Insert',\n\t\t\t\t\t\tvalue: 'insert',\n\t\t\t\t\t\tdescription: 'Insert rows in database',\n\t\t\t\t\t\taction: 'Insert rows in database',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Update',\n\t\t\t\t\t\tvalue: 'update',\n\t\t\t\t\t\tdescription: 'Update rows in database',\n\t\t\t\t\t\taction: 'Update rows in database',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 'insert',\n\t\t\t},\n\n\t\t\t// ----------------------------------\n\t\t\t// executeQuery\n\t\t\t// ----------------------------------\n\t\t\t{\n\t\t\t\tdisplayName: 'Query',\n\t\t\t\tname: 'query',\n\t\t\t\ttype: 'string',\n\t\t\t\tnoDataExpression: true,\n\t\t\t\ttypeOptions: {\n\t\t\t\t\teditor: 'sqlEditor',\n\t\t\t\t},\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['executeQuery'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'SELECT id, name FROM product WHERE id < 40',\n\t\t\t\trequired: true,\n\t\t\t\tdescription: 'The SQL query to execute',\n\t\t\t},\n\n\t\t\t// ----------------------------------\n\t\t\t// insert\n\t\t\t// ----------------------------------\n\t\t\t{\n\t\t\t\tdisplayName: 'Table',\n\t\t\t\tname: 'table',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['insert'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\trequired: true,\n\t\t\t\tdescription: 'Name of the table in which to insert data to',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Columns',\n\t\t\t\tname: 'columns',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['insert'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'id,name,description',\n\t\t\t\tdescription:\n\t\t\t\t\t'Comma-separated list of the properties which should used as columns for the new rows',\n\t\t\t},\n\n\t\t\t// ----------------------------------\n\t\t\t// update\n\t\t\t// ----------------------------------\n\t\t\t{\n\t\t\t\tdisplayName: 'Table',\n\t\t\t\tname: 'table',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['update'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\trequired: true,\n\t\t\t\tdescription: 'Name of the table in which to update data in',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Update Key',\n\t\t\t\tname: 'updateKey',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['update'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: 'id',\n\t\t\t\trequired: true,\n\t\t\t\t// eslint-disable-next-line n8n-nodes-base/node-param-description-miscased-id\n\t\t\t\tdescription:\n\t\t\t\t\t'Name of the property which decides which rows in the database should be updated. Normally that would be \"id\".',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Columns',\n\t\t\t\tname: 'columns',\n\t\t\t\ttype: 'string',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['update'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'name,description',\n\t\t\t\tdescription:\n\t\t\t\t\t'Comma-separated list of the properties which should used as columns for rows to update',\n\t\t\t},\n\t\t],\n\t};\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst credentials = await this.getCredentials<SnowflakeCredential>('snowflake');\n\n\t\tconst connectionOptions = getConnectionOptions(credentials);\n\t\tconst connection = snowflake.createConnection(connectionOptions);\n\n\t\tawait connect(connection);\n\n\t\tconst returnData: INodeExecutionData[] = [];\n\t\tconst items = this.getInputData();\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\n\t\tif (operation === 'executeQuery') {\n\t\t\t// ----------------------------------\n\t\t\t// executeQuery\n\t\t\t// ----------------------------------\n\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\tlet query = this.getNodeParameter('query', i) as string;\n\n\t\t\t\tfor (const resolvable of getResolvables(query)) {\n\t\t\t\t\tquery = query.replace(resolvable, this.evaluateExpression(resolvable, i) as string);\n\t\t\t\t}\n\n\t\t\t\tconst responseData = await execute(connection, query, []);\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(responseData as IDataObject[]),\n\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t}\n\t\t}\n\n\t\tif (operation === 'insert') {\n\t\t\t// ----------------------------------\n\t\t\t// insert\n\t\t\t// ----------------------------------\n\n\t\t\tconst table = this.getNodeParameter('table', 0) as string;\n\t\t\tconst columnString = this.getNodeParameter('columns', 0) as string;\n\t\t\tconst columns = columnString.split(',').map((column) => column.trim());\n\t\t\tconst query = `INSERT INTO ${table}(${columns.join(',')}) VALUES (${columns\n\t\t\t\t.map((_column) => '?')\n\t\t\t\t.join(',')})`;\n\t\t\tconst data = this.helpers.copyInputItems(items, columns);\n\t\t\tconst binds = data.map((element) => Object.values(element));\n\t\t\tawait execute(connection, query, binds as unknown as snowflake.InsertBinds);\n\t\t\tdata.forEach((d, i) => {\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(d),\n\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t});\n\t\t}\n\n\t\tif (operation === 'update') {\n\t\t\t// ----------------------------------\n\t\t\t// update\n\t\t\t// ----------------------------------\n\n\t\t\tconst table = this.getNodeParameter('table', 0) as string;\n\t\t\tconst updateKey = this.getNodeParameter('updateKey', 0) as string;\n\t\t\tconst columnString = this.getNodeParameter('columns', 0) as string;\n\t\t\tconst columns = columnString.split(',').map((column) => column.trim());\n\n\t\t\tif (!columns.includes(updateKey)) {\n\t\t\t\tcolumns.unshift(updateKey);\n\t\t\t}\n\n\t\t\tconst query = `UPDATE ${table} SET ${columns\n\t\t\t\t.map((column) => `${column} = ?`)\n\t\t\t\t.join(',')} WHERE ${updateKey} = ?;`;\n\t\t\tconst data = this.helpers.copyInputItems(items, columns);\n\t\t\tconst binds = data.map((element) => Object.values(element).concat(element[updateKey]));\n\t\t\tfor (let i = 0; i < binds.length; i++) {\n\t\t\t\tawait execute(connection, query, binds[i] as unknown as snowflake.InsertBinds);\n\t\t\t}\n\t\t\tdata.forEach((d, i) => {\n\t\t\t\tconst executionData = this.helpers.constructExecutionMetaData(\n\t\t\t\t\tthis.helpers.returnJsonArray(d),\n\t\t\t\t\t{ itemData: { item: i } },\n\t\t\t\t);\n\t\t\t\treturnData.push(...executionData);\n\t\t\t});\n\t\t}\n\n\t\tawait destroy(connection);\n\t\treturn [returnData];\n\t}\n}\n"],"mappings":"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","names":["snowflake"]}
|
|
@@ -52,8 +52,8 @@ class SseTrigger {
|
|
|
52
52
|
triggerPanel: {
|
|
53
53
|
header: "",
|
|
54
54
|
executionsHelp: {
|
|
55
|
-
inactive: "<b>While building your workflow</b>, click the '
|
|
56
|
-
active: "<b>While building your workflow</b>, click the '
|
|
55
|
+
inactive: "<b>While building your workflow</b>, click the 'execute step' button, then trigger an SSE event. This will trigger an execution, which will show up in this editor.<br /> <br /><b>Once you're happy with your workflow</b>, <a data-key='activate'>activate</a> it. Then every time a change is detected, the workflow will execute. These executions will show up in the <a data-key='executions'>executions list</a>, but not in the editor.",
|
|
56
|
+
active: "<b>While building your workflow</b>, click the 'execute step' button, then trigger an SSE event. This will trigger an execution, which will show up in this editor.<br /> <br /><b>Your workflow will also execute automatically</b>, since it's activated. Every time a change is detected, this node will trigger an execution. These executions will show up in the <a data-key='executions'>executions list</a>, but not in the editor."
|
|
57
57
|
},
|
|
58
58
|
activationHint: "Once you\u2019ve finished building your workflow, <a data-key='activate'>activate</a> it to have it also listen continuously (you just won\u2019t see those executions here)."
|
|
59
59
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../nodes/SseTrigger/SseTrigger.node.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport type {\n\tIDataObject,\n\tITriggerFunctions,\n\tINodeType,\n\tINodeTypeDescription,\n\tITriggerResponse,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, jsonParse } from 'n8n-workflow';\n\nexport class SseTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'SSE Trigger',\n\t\tname: 'sseTrigger',\n\t\ticon: 'fa:cloud-download-alt',\n\t\ticonColor: 'dark-blue',\n\t\tgroup: ['trigger'],\n\t\tversion: 1,\n\t\tdescription: 'Triggers the workflow when Server-Sent Events occur',\n\t\teventTriggerDescription: '',\n\t\tactivationMessage: 'You can now make calls to your SSE URL to trigger executions.',\n\t\tdefaults: {\n\t\t\tname: 'SSE Trigger',\n\t\t\tcolor: '#225577',\n\t\t},\n\t\ttriggerPanel: {\n\t\t\theader: '',\n\t\t\texecutionsHelp: {\n\t\t\t\tinactive:\n\t\t\t\t\t\"<b>While building your workflow</b>, click the '
|
|
1
|
+
{"version":3,"sources":["../../../nodes/SseTrigger/SseTrigger.node.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport type {\n\tIDataObject,\n\tITriggerFunctions,\n\tINodeType,\n\tINodeTypeDescription,\n\tITriggerResponse,\n} from 'n8n-workflow';\nimport { NodeConnectionTypes, jsonParse } from 'n8n-workflow';\n\nexport class SseTrigger implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'SSE Trigger',\n\t\tname: 'sseTrigger',\n\t\ticon: 'fa:cloud-download-alt',\n\t\ticonColor: 'dark-blue',\n\t\tgroup: ['trigger'],\n\t\tversion: 1,\n\t\tdescription: 'Triggers the workflow when Server-Sent Events occur',\n\t\teventTriggerDescription: '',\n\t\tactivationMessage: 'You can now make calls to your SSE URL to trigger executions.',\n\t\tdefaults: {\n\t\t\tname: 'SSE Trigger',\n\t\t\tcolor: '#225577',\n\t\t},\n\t\ttriggerPanel: {\n\t\t\theader: '',\n\t\t\texecutionsHelp: {\n\t\t\t\tinactive:\n\t\t\t\t\t\"<b>While building your workflow</b>, click the 'execute step' button, then trigger an SSE event. This will trigger an execution, which will show up in this editor.<br /> <br /><b>Once you're happy with your workflow</b>, <a data-key='activate'>activate</a> it. Then every time a change is detected, the workflow will execute. These executions will show up in the <a data-key='executions'>executions list</a>, but not in the editor.\",\n\t\t\t\tactive:\n\t\t\t\t\t\"<b>While building your workflow</b>, click the 'execute step' button, then trigger an SSE event. This will trigger an execution, which will show up in this editor.<br /> <br /><b>Your workflow will also execute automatically</b>, since it's activated. Every time a change is detected, this node will trigger an execution. These executions will show up in the <a data-key='executions'>executions list</a>, but not in the editor.\",\n\t\t\t},\n\t\t\tactivationHint:\n\t\t\t\t\"Once you’ve finished building your workflow, <a data-key='activate'>activate</a> it to have it also listen continuously (you just won’t see those executions here).\",\n\t\t},\n\t\tinputs: [],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tdisplayName: 'URL',\n\t\t\t\tname: 'url',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\tplaceholder: 'http://example.com',\n\t\t\t\tdescription: 'The URL to receive the SSE from',\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t],\n\t};\n\n\tasync trigger(this: ITriggerFunctions): Promise<ITriggerResponse> {\n\t\tconst url = this.getNodeParameter('url') as string;\n\n\t\tconst eventSource = new EventSource(url);\n\n\t\teventSource.onmessage = (event) => {\n\t\t\tconst eventData = jsonParse<IDataObject>(event.data as string, {\n\t\t\t\terrorMessage: 'Invalid JSON for event data',\n\t\t\t});\n\t\t\tthis.emit([this.helpers.returnJsonArray([eventData])]);\n\t\t};\n\n\t\tasync function closeFunction() {\n\t\t\teventSource.close();\n\t\t}\n\n\t\treturn {\n\t\t\tcloseFunction,\n\t\t};\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAwB;AAQxB,0BAA+C;AAExC,MAAM,WAAgC;AAAA,EAAtC;AACN,uBAAoC;AAAA,MACnC,aAAa;AAAA,MACb,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,OAAO,CAAC,SAAS;AAAA,MACjB,SAAS;AAAA,MACT,aAAa;AAAA,MACb,yBAAyB;AAAA,MACzB,mBAAmB;AAAA,MACnB,UAAU;AAAA,QACT,MAAM;AAAA,QACN,OAAO;AAAA,MACR;AAAA,MACA,cAAc;AAAA,QACb,QAAQ;AAAA,QACR,gBAAgB;AAAA,UACf,UACC;AAAA,UACD,QACC;AAAA,QACF;AAAA,QACA,gBACC;AAAA,MACF;AAAA,MACA,QAAQ,CAAC;AAAA,MACT,SAAS,CAAC,wCAAoB,IAAI;AAAA,MAClC,YAAY;AAAA,QACX;AAAA,UACC,aAAa;AAAA,UACb,MAAM;AAAA,UACN,MAAM;AAAA,UACN,SAAS;AAAA,UACT,aAAa;AAAA,UACb,aAAa;AAAA,UACb,UAAU;AAAA,QACX;AAAA,MACD;AAAA,IACD;AAAA;AAAA,EAEA,MAAM,UAA4D;AACjE,UAAM,MAAM,KAAK,iBAAiB,KAAK;AAEvC,UAAM,cAAc,IAAI,mBAAAA,QAAY,GAAG;AAEvC,gBAAY,YAAY,CAAC,UAAU;AAClC,YAAM,gBAAY,+BAAuB,MAAM,MAAgB;AAAA,QAC9D,cAAc;AAAA,MACf,CAAC;AACD,WAAK,KAAK,CAAC,KAAK,QAAQ,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AAAA,IACtD;AAEA,mBAAe,gBAAgB;AAC9B,kBAAY,MAAM;AAAA,IACnB;AAEA,WAAO;AAAA,MACN;AAAA,IACD;AAAA,EACD;AACD;","names":["EventSource"]}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{"name":"auth0ManagementApi","displayName":"Auth0 Management API","documentationUrl":"auth0management","httpRequestNode":{"name":"Auth0","docsUrl":"https://auth0.com/docs/api/management/v2","apiBaseUrlPlaceholder":"https://your-tenant.auth0.com/api/v2/users/"},"properties":[{"displayName":"Session Token","name":"sessionToken","type":"hidden","typeOptions":{"expirable":true,"password":true},"default":""},{"displayName":"Auth0 Domain","name":"domain","type":"string","required":true,"default":"your-domain.eu.auth0.com"},{"displayName":"Client ID","name":"clientId","type":"string","required":true,"default":""},{"displayName":"Client Secret","name":"clientSecret","type":"string","typeOptions":{"password":true},"required":true,"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.sessionToken}}"}}},"test":{"request":{"baseURL":"=https://{{$credentials.domain}}","url":"/api/v2/clients"}},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/Auth0.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/Auth0.dark.svg"},"supportedNodes":[]},
|
|
19
19
|
{"name":"automizyApi","displayName":"Automizy API","documentationUrl":"automizy","properties":[{"displayName":"This service may no longer exist and will be removed from n8n in a future release.","name":"deprecated","type":"notice","default":""},{"displayName":"API Token","name":"apiToken","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["automizy"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Automizy/automizy.png"},
|
|
20
20
|
{"name":"autopilotApi","displayName":"Autopilot API","documentationUrl":"autopilot","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["autopilot","autopilotTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Autopilot/autopilot.svg"},
|
|
21
|
-
{"name":"aws","displayName":"AWS","documentationUrl":"aws","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Cape Town) - af-south-1","value":"af-south-1"},{"name":"Asia Pacific (Hong Kong) - ap-east-1","value":"ap-east-1"},{"name":"Asia Pacific (Mumbai) - ap-south-1","value":"ap-south-1"},{"name":"Asia Pacific (Hyderabad) - ap-south-2","value":"ap-south-2"},{"name":"Asia Pacific (Singapore) - ap-southeast-1","value":"ap-southeast-1"},{"name":"Asia Pacific (Sydney) - ap-southeast-2","value":"ap-southeast-2"},{"name":"Asia Pacific (Jakarta) - ap-southeast-3","value":"ap-southeast-3"},{"name":"Asia Pacific (Melbourne) - ap-southeast-4","value":"ap-southeast-4"},{"name":"Asia Pacific (Malaysia) - ap-southeast-5","value":"ap-southeast-5"},{"name":"Asia Pacific (Thailand) - ap-southeast-7","value":"ap-southeast-7"},{"name":"Asia Pacific (Tokyo) - ap-northeast-1","value":"ap-northeast-1"},{"name":"Asia Pacific (Seoul) - ap-northeast-2","value":"ap-northeast-2"},{"name":"Asia Pacific (Osaka) - ap-northeast-3","value":"ap-northeast-3"},{"name":"Canada (Central) - ca-central-1","value":"ca-central-1"},{"name":"Canada West (Calgary) - ca-west-1","value":"ca-west-1"},{"name":"China (Beijing) - cn-north-1","value":"cn-north-1"},{"name":"China (Ningxia) - cn-northwest-1","value":"cn-northwest-1"},{"name":"Europe (Frankfurt) - eu-central-1","value":"eu-central-1"},{"name":"Europe (Zurich) - eu-central-2","value":"eu-central-2"},{"name":"Europe (Stockholm) - eu-north-1","value":"eu-north-1"},{"name":"Europe (Milan) - eu-south-1","value":"eu-south-1"},{"name":"Europe (Spain) - eu-south-2","value":"eu-south-2"},{"name":"Europe (Ireland) - eu-west-1","value":"eu-west-1"},{"name":"Europe (London) - eu-west-2","value":"eu-west-2"},{"name":"Europe (Paris) - eu-west-3","value":"eu-west-3"},{"name":"Israel (Tel Aviv) - il-central-1","value":"il-central-1"},{"name":"Middle East (UAE) - me-central-1","value":"me-central-1"},{"name":"Middle East (Bahrain) - me-south-1","value":"me-south-1"},{"name":"Mexico (Central) - mx-central-1","value":"mx-central-1"},{"name":"South America (São Paulo) - sa-east-1","value":"sa-east-1"},{"name":"US East (N. Virginia) - us-east-1","value":"us-east-1"},{"name":"US East (Ohio) - us-east-2","value":"us-east-2"},{"name":"US East (GovCloud) - us-gov-east-1","value":"us-gov-east-1"},{"name":"US West (N. California) - us-west-1","value":"us-west-1"},{"name":"US West (Oregon) - us-west-2","value":"us-west-2"},{"name":"US West (GovCloud) - us-gov-west-1","value":"us-gov-west-1"}],"default":"us-east-1"},{"displayName":"Access Key ID","name":"accessKeyId","type":"string","default":""},{"displayName":"Secret Access Key","name":"secretAccessKey","type":"string","default":"","typeOptions":{"password":true}},{"displayName":"Temporary Security Credentials","name":"temporaryCredentials","description":"Support for temporary credentials from AWS STS","type":"boolean","default":false},{"displayName":"Session Token","name":"sessionToken","type":"string","displayOptions":{"show":{"temporaryCredentials":[true]}},"default":"","typeOptions":{"password":true}},{"displayName":"Custom Endpoints","name":"customEndpoints","type":"boolean","default":false},{"displayName":"Rekognition Endpoint","name":"rekognitionEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Rekognition using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://rekognition.{region}.amazonaws.com"},{"displayName":"Lambda Endpoint","name":"lambdaEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Lambda using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://lambda.{region}.amazonaws.com"},{"displayName":"SNS Endpoint","name":"snsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SNS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sns.{region}.amazonaws.com"},{"displayName":"SES Endpoint","name":"sesEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SES using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://email.{region}.amazonaws.com"},{"displayName":"SQS Endpoint","name":"sqsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SQS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sqs.{region}.amazonaws.com"},{"displayName":"S3 Endpoint","name":"s3Endpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and S3 using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://s3.{region}.amazonaws.com"},{"displayName":"SSM Endpoint","name":"ssmEndpoint","description":"Endpoint for AWS Systems Manager (SSM)","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://ssm.{region}.amazonaws.com"}],"test":{"request":{"baseURL":"=https://sts.{{$credentials.region}}.amazonaws.com","url":"?Action=GetCallerIdentity&Version=2011-06-15","method":"POST"}},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/AWS.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/AWS.dark.svg"},"supportedNodes":["awsLambda","awsSns","awsSnsTrigger","awsCertificateManager","awsCognito","awsComprehend","awsDynamoDb","awsElb","awsRekognition","awsS3","awsSes","awsSqs","awsTextract","awsTranscribe"],"authenticate":{}},
|
|
21
|
+
{"name":"aws","displayName":"AWS","documentationUrl":"aws","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Cape Town) - af-south-1","value":"af-south-1"},{"name":"Asia Pacific (Hong Kong) - ap-east-1","value":"ap-east-1"},{"name":"Asia Pacific (Mumbai) - ap-south-1","value":"ap-south-1"},{"name":"Asia Pacific (Hyderabad) - ap-south-2","value":"ap-south-2"},{"name":"Asia Pacific (Singapore) - ap-southeast-1","value":"ap-southeast-1"},{"name":"Asia Pacific (Sydney) - ap-southeast-2","value":"ap-southeast-2"},{"name":"Asia Pacific (Jakarta) - ap-southeast-3","value":"ap-southeast-3"},{"name":"Asia Pacific (Melbourne) - ap-southeast-4","value":"ap-southeast-4"},{"name":"Asia Pacific (Malaysia) - ap-southeast-5","value":"ap-southeast-5"},{"name":"Asia Pacific (Thailand) - ap-southeast-7","value":"ap-southeast-7"},{"name":"Asia Pacific (Tokyo) - ap-northeast-1","value":"ap-northeast-1"},{"name":"Asia Pacific (Seoul) - ap-northeast-2","value":"ap-northeast-2"},{"name":"Asia Pacific (Osaka) - ap-northeast-3","value":"ap-northeast-3"},{"name":"Canada (Central) - ca-central-1","value":"ca-central-1"},{"name":"Canada West (Calgary) - ca-west-1","value":"ca-west-1"},{"name":"China (Beijing) - cn-north-1","value":"cn-north-1"},{"name":"China (Ningxia) - cn-northwest-1","value":"cn-northwest-1"},{"name":"Europe (Frankfurt) - eu-central-1","value":"eu-central-1"},{"name":"Europe (Zurich) - eu-central-2","value":"eu-central-2"},{"name":"Europe (Stockholm) - eu-north-1","value":"eu-north-1"},{"name":"Europe (Milan) - eu-south-1","value":"eu-south-1"},{"name":"Europe (Spain) - eu-south-2","value":"eu-south-2"},{"name":"Europe (Ireland) - eu-west-1","value":"eu-west-1"},{"name":"Europe (London) - eu-west-2","value":"eu-west-2"},{"name":"Europe (Paris) - eu-west-3","value":"eu-west-3"},{"name":"Israel (Tel Aviv) - il-central-1","value":"il-central-1"},{"name":"Middle East (UAE) - me-central-1","value":"me-central-1"},{"name":"Middle East (Bahrain) - me-south-1","value":"me-south-1"},{"name":"Mexico (Central) - mx-central-1","value":"mx-central-1"},{"name":"South America (São Paulo) - sa-east-1","value":"sa-east-1"},{"name":"US East (N. Virginia) - us-east-1","value":"us-east-1"},{"name":"US East (Ohio) - us-east-2","value":"us-east-2"},{"name":"US East (GovCloud) - us-gov-east-1","value":"us-gov-east-1"},{"name":"US West (N. California) - us-west-1","value":"us-west-1"},{"name":"US West (Oregon) - us-west-2","value":"us-west-2"},{"name":"US West (GovCloud) - us-gov-west-1","value":"us-gov-west-1"}],"default":"us-east-1"},{"displayName":"Access Key ID","name":"accessKeyId","type":"string","default":""},{"displayName":"Secret Access Key","name":"secretAccessKey","type":"string","default":"","typeOptions":{"password":true}},{"displayName":"Temporary Security Credentials","name":"temporaryCredentials","description":"Support for temporary credentials from AWS STS","type":"boolean","default":false},{"displayName":"Session Token","name":"sessionToken","type":"string","displayOptions":{"show":{"temporaryCredentials":[true]}},"default":"","typeOptions":{"password":true}},{"displayName":"Custom Endpoints","name":"customEndpoints","type":"boolean","default":false},{"displayName":"Rekognition Endpoint","name":"rekognitionEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Rekognition using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://rekognition.{region}.amazonaws.com"},{"displayName":"Lambda Endpoint","name":"lambdaEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Lambda using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://lambda.{region}.amazonaws.com"},{"displayName":"SNS Endpoint","name":"snsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SNS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sns.{region}.amazonaws.com"},{"displayName":"SES Endpoint","name":"sesEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SES using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://email.{region}.amazonaws.com"},{"displayName":"SQS Endpoint","name":"sqsEndpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SQS using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://sqs.{region}.amazonaws.com"},{"displayName":"S3 Endpoint","name":"s3Endpoint","description":"If you use Amazon VPC to host n8n, you can establish a connection between your VPC and S3 using a VPC endpoint. Leave blank to use the default endpoint.","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://s3.{region}.amazonaws.com"},{"displayName":"SSM Endpoint","name":"ssmEndpoint","description":"Endpoint for AWS Systems Manager (SSM)","type":"string","displayOptions":{"show":{"customEndpoints":[true]}},"default":"","placeholder":"https://ssm.{region}.amazonaws.com"}],"test":{"request":{"baseURL":"=https://sts.{{$credentials.region}}.amazonaws.com","url":"?Action=GetCallerIdentity&Version=2011-06-15","method":"POST"}},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/AWS.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/AWS.dark.svg"},"supportedNodes":["awsLambda","awsSns","awsSnsTrigger","awsCertificateManager","awsCognito","awsComprehend","awsDynamoDb","awsElb","awsIam","awsRekognition","awsS3","awsSes","awsSqs","awsTextract","awsTranscribe"],"authenticate":{}},
|
|
22
22
|
{"name":"azureStorageOAuth2Api","displayName":"Azure Storage OAuth2 API","extends":["microsoftOAuth2Api"],"documentationUrl":"azurestorage","properties":[{"displayName":"Account","name":"account","type":"string","default":""},{"displayName":"Base URL","name":"baseUrl","type":"hidden","default":"=https://{{ $self[\"account\"] }}.blob.core.windows.net"},{"displayName":"Scope","name":"scope","type":"hidden","default":"https://storage.azure.com/.default"}],"supportedNodes":["azureStorage"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.svg","dark":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.dark.svg"}},
|
|
23
23
|
{"name":"azureStorageSharedKeyApi","displayName":"Azure Storage Shared Key API","documentationUrl":"azurestorage","properties":[{"displayName":"Account","name":"account","description":"Account name","type":"string","default":""},{"displayName":"Key","name":"key","description":"Account key","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Base URL","name":"baseUrl","type":"hidden","default":"=https://{{ $self[\"account\"] }}.blob.core.windows.net"}],"supportedNodes":["azureStorage"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.svg","dark":"icons/n8n-nodes-base/dist/nodes/Microsoft/Storage/azureStorage.dark.svg"},"authenticate":{}},
|
|
24
24
|
{"name":"bambooHrApi","displayName":"BambooHR API","documentationUrl":"bambooHr","properties":[{"displayName":"Subdomain","name":"subdomain","type":"string","default":""},{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["bambooHr"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/BambooHr/bambooHr.png"},
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
{"name":"gongOAuth2Api","extends":["oAuth2Api"],"displayName":"Gong OAuth2 API","documentationUrl":"gong","properties":[{"displayName":"Base URL","name":"baseUrl","type":"string","default":"https://api.gong.io"},{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://app.gong.io/oauth2/authorize","required":true},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://app.gong.io/oauth2/generate-customer-token","required":true},{"displayName":"Scope","name":"scope","type":"hidden","default":"api:calls:read:transcript api:provisioning:read api:workspaces:read api:meetings:user:delete api:crm:get-objects api:data-privacy:delete api:crm:schema api:flows:write api:crm:upload api:meetings:integration:status api:calls:read:extensive api:meetings:user:update api:integration-settings:write api:settings:scorecards:read api:stats:scorecards api:stats:interaction api:stats:user-actions api:crm:integration:delete api:calls:read:basic api:calls:read:media-url api:digital-interactions:write api:crm:integrations:read api:library:read api:data-privacy:read api:users:read api:logs:read api:calls:create api:meetings:user:create api:stats:user-actions:detailed api:settings:trackers:read api:crm:integration:register api:provisioning:read-write api:engagement-data:write api:permission-profile:read api:permission-profile:write api:flows:read api:crm-calls:manual-association:read"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":""},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"header"}],"supportedNodes":["gong"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Gong/gong.svg"},
|
|
112
112
|
{"name":"googleAdsOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Ads OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Developer Token","name":"developerToken","type":"string","typeOptions":{"password":true},"default":"","required":true},{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/adwords"}],"supportedNodes":["googleAds"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Ads/googleAds.svg"},
|
|
113
113
|
{"name":"googleAnalyticsOAuth2","extends":["googleOAuth2Api"],"displayName":"Google Analytics OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/analytics https://www.googleapis.com/auth/analytics.readonly"}],"supportedNodes":["googleAnalytics"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Analytics/analytics.svg"},
|
|
114
|
-
{"name":"googleApi","displayName":"Google Service Account API","documentationUrl":"google/service-account","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Johannesburg) - africa-south1","value":"africa-south1"},{"name":"Asia Pacific (Changhua County) - asia-east1","value":"asia-east1"},{"name":"Asia Pacific (Hong Kong) - asia-east2","value":"asia-east2"},{"name":"Asia Pacific (Tokyo) - asia-northeast1","value":"asia-northeast1"},{"name":"Asia Pacific (Osaka) - asia-northeast2","value":"asia-northeast2"},{"name":"Asia Pacific (Seoul) - asia-northeast3","value":"asia-northeast3"},{"name":"Asia Pacific (Mumbai) - asia-south1","value":"asia-south1"},{"name":"Asia Pacific (Delhi) - asia-south2","value":"asia-south2"},{"name":"Asia Pacific (Jurong West) - asia-southeast1","value":"asia-southeast1"},{"name":"Asia Pacific (Jakarta) - asia-southeast2","value":"asia-southeast2"},{"name":"Asia Pacific (Sydney) - australia-southeast1","value":"australia-southeast1"},{"name":"Asia Pacific (Melbourne) - australia-southeast2","value":"australia-southeast2"},{"name":"Europe (Warsaw) - europe-central2","value":"europe-central2"},{"name":"Europe (Hamina) - europe-north1","value":"europe-north1"},{"name":"Europe (Madrid) - europe-southwest1","value":"europe-southwest1"},{"name":"Europe (St. Ghislain) - europe-west1","value":"europe-west1"},{"name":"Europe (Berlin) - europe-west10","value":"europe-west10"},{"name":"Europe (Turin) - europe-west12","value":"europe-west12"},{"name":"Europe (London) - europe-west2","value":"europe-west2"},{"name":"Europe (Frankfurt) - europe-west3","value":"europe-west3"},{"name":"Europe (Eemshaven) - europe-west4","value":"europe-west4"},{"name":"Europe (Zurich) - europe-west6","value":"europe-west6"},{"name":"Europe (Milan) - europe-west8","value":"europe-west8"},{"name":"Europe (Paris) - europe-west9","value":"europe-west9"},{"name":"Middle East (Doha) - me-central1","value":"me-central1"},{"name":"Middle East (Dammam) - me-central2","value":"me-central2"},{"name":"Middle East (Tel Aviv) - me-west1","value":"me-west1"},{"name":"Americas (Montréal) - northamerica-northeast1","value":"northamerica-northeast1"},{"name":"Americas (Toronto) - northamerica-northeast2","value":"northamerica-northeast2"},{"name":"Americas (Queretaro) - northamerica-south1","value":"northamerica-south1"},{"name":"Americas (Osasco) - southamerica-east1","value":"southamerica-east1"},{"name":"Americas (Santiago) - southamerica-west1","value":"southamerica-west1"},{"name":"Americas (Council Bluffs) - us-central1","value":"us-central1"},{"name":"Americas (Moncks Corner) - us-east1","value":"us-east1"},{"name":"Americas (Ashburn) - us-east4","value":"us-east4"},{"name":"Americas (Columbus) - us-east5","value":"us-east5"},{"name":"Americas (Dallas) - us-south1","value":"us-south1"},{"name":"Americas (The Dalles) - us-west1","value":"us-west1"},{"name":"Americas (Los Angeles) - us-west2","value":"us-west2"},{"name":"Americas (Salt Lake City) - us-west3","value":"us-west3"},{"name":"Americas (Las Vegas) - us-west4","value":"us-west4"}],"default":"us-central1","description":"The region where the Google Cloud service is located. This applies only to specific nodes, like the Google Vertex Chat Model"},{"displayName":"Service Account Email","name":"email","type":"string","placeholder":"name@email.com","default":"","description":"The Google Service account similar to user-808@project.iam.gserviceaccount.com","required":true},{"displayName":"Private Key","name":"privateKey","type":"string","default":"","placeholder":"-----BEGIN PRIVATE KEY-----\nXIYEvQIBADANBg<...>0IhA7TMoGYPQc=\n-----END PRIVATE KEY-----\n","description":"Enter the private key located in the JSON file downloaded from Google Cloud Console","required":true,"typeOptions":{"password":true}},{"displayName":"Impersonate a User","name":"inpersonate","type":"boolean","default":false},{"displayName":"Email","name":"delegatedEmail","type":"string","default":"","displayOptions":{"show":{"inpersonate":[true]}},"description":"The email address of the user for which the application is requesting delegated access"},{"displayName":"Set up for use in HTTP Request node","name":"httpNode","type":"boolean","default":false},{"displayName":"When using the HTTP Request node, you must specify the scopes you want to send. In other nodes, they're added automatically","name":"httpWarning","type":"notice","default":"","displayOptions":{"show":{"httpNode":[true]}}},{"displayName":"Scope(s)","name":"scopes","type":"string","default":"","description":"You can find the scopes for services <a href=\"https://developers.google.com/identity/protocols/oauth2/scopes\" target=\"_blank\">here</a>","displayOptions":{"show":{"httpNode":[true]}}}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Google.svg","supportedNodes":["googleBigQuery","googleBooks","googleChat","googleDocs","googleDrive","googleDriveTrigger","googleFirebaseCloudFirestore","gmail","gmailTrigger","googleSheets","googleSlides","googleTranslate"],"authenticate":{}},
|
|
114
|
+
{"name":"googleApi","displayName":"Google Service Account API","documentationUrl":"google/service-account","properties":[{"displayName":"Region","name":"region","type":"options","options":[{"name":"Africa (Johannesburg) - africa-south1","value":"africa-south1"},{"name":"Asia Pacific (Changhua County) - asia-east1","value":"asia-east1"},{"name":"Asia Pacific (Hong Kong) - asia-east2","value":"asia-east2"},{"name":"Asia Pacific (Tokyo) - asia-northeast1","value":"asia-northeast1"},{"name":"Asia Pacific (Osaka) - asia-northeast2","value":"asia-northeast2"},{"name":"Asia Pacific (Seoul) - asia-northeast3","value":"asia-northeast3"},{"name":"Asia Pacific (Mumbai) - asia-south1","value":"asia-south1"},{"name":"Asia Pacific (Delhi) - asia-south2","value":"asia-south2"},{"name":"Asia Pacific (Jurong West) - asia-southeast1","value":"asia-southeast1"},{"name":"Asia Pacific (Jakarta) - asia-southeast2","value":"asia-southeast2"},{"name":"Asia Pacific (Sydney) - australia-southeast1","value":"australia-southeast1"},{"name":"Asia Pacific (Melbourne) - australia-southeast2","value":"australia-southeast2"},{"name":"Europe (Warsaw) - europe-central2","value":"europe-central2"},{"name":"Europe (Hamina) - europe-north1","value":"europe-north1"},{"name":"Europe (Madrid) - europe-southwest1","value":"europe-southwest1"},{"name":"Europe (St. Ghislain) - europe-west1","value":"europe-west1"},{"name":"Europe (Berlin) - europe-west10","value":"europe-west10"},{"name":"Europe (Turin) - europe-west12","value":"europe-west12"},{"name":"Europe (London) - europe-west2","value":"europe-west2"},{"name":"Europe (Frankfurt) - europe-west3","value":"europe-west3"},{"name":"Europe (Eemshaven) - europe-west4","value":"europe-west4"},{"name":"Europe (Zurich) - europe-west6","value":"europe-west6"},{"name":"Europe (Milan) - europe-west8","value":"europe-west8"},{"name":"Europe (Paris) - europe-west9","value":"europe-west9"},{"name":"Middle East (Doha) - me-central1","value":"me-central1"},{"name":"Middle East (Dammam) - me-central2","value":"me-central2"},{"name":"Middle East (Tel Aviv) - me-west1","value":"me-west1"},{"name":"Americas (Montréal) - northamerica-northeast1","value":"northamerica-northeast1"},{"name":"Americas (Toronto) - northamerica-northeast2","value":"northamerica-northeast2"},{"name":"Americas (Queretaro) - northamerica-south1","value":"northamerica-south1"},{"name":"Americas (Osasco) - southamerica-east1","value":"southamerica-east1"},{"name":"Americas (Santiago) - southamerica-west1","value":"southamerica-west1"},{"name":"Americas (Council Bluffs) - us-central1","value":"us-central1"},{"name":"Americas (Moncks Corner) - us-east1","value":"us-east1"},{"name":"Americas (Ashburn) - us-east4","value":"us-east4"},{"name":"Americas (Columbus) - us-east5","value":"us-east5"},{"name":"Americas (Dallas) - us-south1","value":"us-south1"},{"name":"Americas (The Dalles) - us-west1","value":"us-west1"},{"name":"Americas (Los Angeles) - us-west2","value":"us-west2"},{"name":"Americas (Salt Lake City) - us-west3","value":"us-west3"},{"name":"Americas (Las Vegas) - us-west4","value":"us-west4"}],"default":"us-central1","description":"The region where the Google Cloud service is located. This applies only to specific nodes, like the Google Vertex Chat Model"},{"displayName":"Service Account Email","name":"email","type":"string","placeholder":"name@email.com","default":"","description":"The Google Service account similar to user-808@project.iam.gserviceaccount.com","required":true},{"displayName":"Private Key","name":"privateKey","type":"string","default":"","placeholder":"-----BEGIN PRIVATE KEY-----\nXIYEvQIBADANBg<...>0IhA7TMoGYPQc=\n-----END PRIVATE KEY-----\n","description":"Enter the private key located in the JSON file downloaded from Google Cloud Console","required":true,"typeOptions":{"password":true}},{"displayName":"Impersonate a User","name":"inpersonate","type":"boolean","default":false},{"displayName":"Email","name":"delegatedEmail","type":"string","default":"","displayOptions":{"show":{"inpersonate":[true]}},"description":"The email address of the user for which the application is requesting delegated access"},{"displayName":"Set up for use in HTTP Request node","name":"httpNode","type":"boolean","default":false},{"displayName":"When using the HTTP Request node, you must specify the scopes you want to send. In other nodes, they're added automatically","name":"httpWarning","type":"notice","default":"","displayOptions":{"show":{"httpNode":[true]}}},{"displayName":"Scope(s)","name":"scopes","type":"string","default":"","description":"You can find the scopes for services <a href=\"https://developers.google.com/identity/protocols/oauth2/scopes\" target=\"_blank\">here</a>","displayOptions":{"show":{"httpNode":[true]}}}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Google.svg","supportedNodes":["evaluationTrigger","evaluation","googleBigQuery","googleBooks","googleChat","googleDocs","googleDrive","googleDriveTrigger","googleFirebaseCloudFirestore","gmail","gmailTrigger","googleSheets","googleSlides","googleTranslate"],"authenticate":{}},
|
|
115
115
|
{"name":"googleBigQueryOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google BigQuery OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/drive"}],"supportedNodes":["googleBigQuery"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/BigQuery/googleBigQuery.svg"},
|
|
116
116
|
{"name":"googleBooksOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Books OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/books"}],"supportedNodes":["googleBooks"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Books/googlebooks.svg"},
|
|
117
117
|
{"name":"googleCalendarOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Calendar OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events"}],"supportedNodes":["googleCalendar","googleCalendarTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Calendar/googleCalendar.svg"},
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
{"name":"googleBusinessProfileOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Business Profile OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/business.manage"},{"displayName":"Make sure that you have fulfilled the prerequisites and requested access to Google Business Profile API. <a href=\"https://developers.google.com/my-business/content/prereqs\" target=\"_blank\">More info</a>. Also, make sure that you have enabled the following APIs & Services in the Google Cloud Console: Google My Business API, Google My Business Management API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":""}],"supportedNodes":["googleBusinessProfile","googleBusinessProfileTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/BusinessProfile/googleBusinessProfile.svg"},
|
|
127
127
|
{"name":"googleOAuth2Api","extends":["oAuth2Api"],"displayName":"Google OAuth2 API","documentationUrl":"google/oauth-generic","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://accounts.google.com/o/oauth2/v2/auth"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://oauth2.googleapis.com/token"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"access_type=offline&prompt=consent"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"body"}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Google.svg","supportedNodes":[]},
|
|
128
128
|
{"name":"googlePerspectiveOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Perspective OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/userinfo.email"}],"supportedNodes":["googlePerspective"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Google/Perspective/googlePerspective.svg","dark":"icons/n8n-nodes-base/dist/nodes/Google/Perspective/googlePerspective.dark.svg"}},
|
|
129
|
-
{"name":"googleSheetsOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Sheets OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.metadata"},{"displayName":"Make sure you enabled the following APIs & Services in the Google Cloud Console: Google Drive API, Google Sheets API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":"","displayOptions":{"hideOnCloud":true}}],"supportedNodes":["googleSheets"],"
|
|
129
|
+
{"name":"googleSheetsOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Sheets OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.metadata"},{"displayName":"Make sure you enabled the following APIs & Services in the Google Cloud Console: Google Drive API, Google Sheets API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":"","displayOptions":{"hideOnCloud":true}}],"supportedNodes":["evaluationTrigger","evaluation","googleSheets"],"icon":"fa:check-double"},
|
|
130
130
|
{"name":"googleSheetsTriggerOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Sheets Trigger OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.metadata"},{"displayName":"Make sure you have enabled the following APIs & Services in the Google Cloud Console: Google Drive API, Google Sheets API. <a href=\"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#scopes\" target=\"_blank\">More info</a>.","name":"notice","type":"notice","default":"","displayOptions":{"hideOnCloud":true}}],"supportedNodes":["googleSheetsTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Sheet/googleSheets.svg"},
|
|
131
131
|
{"name":"googleSlidesOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Slides OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/presentations"}],"supportedNodes":["googleSlides"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Slides/googleslides.svg"},
|
|
132
132
|
{"name":"googleTasksOAuth2Api","extends":["googleOAuth2Api"],"displayName":"Google Tasks OAuth2 API","documentationUrl":"google/oauth-single-service","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"https://www.googleapis.com/auth/tasks"}],"supportedNodes":["googleTasks"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Google/Task/googleTasks.svg"},
|
|
@@ -212,9 +212,9 @@
|
|
|
212
212
|
{"name":"microsoftOAuth2Api","extends":["oAuth2Api"],"displayName":"Microsoft OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"string","default":"https://login.microsoftonline.com/common/oauth2/v2.0/authorize"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"string","default":"https://login.microsoftonline.com/common/oauth2/v2.0/token"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"response_mode=query"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"body"}],"iconUrl":"icons/n8n-nodes-base/dist/credentials/icons/Microsoft.svg","supportedNodes":[]},
|
|
213
213
|
{"name":"microsoftOneDriveOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Drive OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access Files.ReadWrite.All"}],"supportedNodes":["microsoftOneDrive","microsoftOneDriveTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/OneDrive/oneDrive.svg"},
|
|
214
214
|
{"name":"microsoftOutlookOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Outlook OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access Contacts.Read Contacts.ReadWrite Calendars.Read Calendars.Read.Shared Calendars.ReadWrite Mail.ReadWrite Mail.ReadWrite.Shared Mail.Send Mail.Send.Shared MailboxSettings.Read"},{"displayName":"Use Shared Mailbox","name":"useShared","type":"boolean","default":false},{"displayName":"User Principal Name","name":"userPrincipalName","description":"Target user's UPN or ID","type":"string","default":"","displayOptions":{"show":{"useShared":[true]}}}],"supportedNodes":["microsoftOutlook","microsoftOutlookTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Outlook/outlook.svg"},
|
|
215
|
-
{"name":"microsoftSharePointOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft SharePoint OAuth2 API","documentationUrl":"microsoft","
|
|
215
|
+
{"name":"microsoftSharePointOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft SharePoint OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"=openid offline_access https://{{$self.subdomain}}.sharepoint.com/.default"},{"displayName":"Subdomain","name":"subdomain","type":"string","default":"","hint":"You can extract the subdomain from the URL. For example, in the URL \"https://tenant123.sharepoint.com\", the subdomain is \"tenant123\"."}],"supportedNodes":["microsoftSharePoint"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Microsoft/SharePoint/microsoftSharePoint.svg","dark":"icons/n8n-nodes-base/dist/nodes/Microsoft/SharePoint/microsoftSharePoint.svg"}},
|
|
216
216
|
{"name":"microsoftSql","displayName":"Microsoft SQL","documentationUrl":"microsoftSql","properties":[{"displayName":"Server","name":"server","type":"string","default":"localhost"},{"displayName":"Database","name":"database","type":"string","default":"master"},{"displayName":"User","name":"user","type":"string","default":"sa"},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Port","name":"port","type":"number","default":1433},{"displayName":"Domain","name":"domain","type":"string","default":""},{"displayName":"TLS","name":"tls","type":"boolean","default":true},{"displayName":"Ignore SSL Issues (Insecure)","name":"allowUnauthorizedCerts","type":"boolean","default":false,"description":"Whether to connect even if SSL certificate validation is not possible"},{"displayName":"Connect Timeout","name":"connectTimeout","type":"number","default":15000,"description":"Connection timeout in ms"},{"displayName":"Request Timeout","name":"requestTimeout","type":"number","default":15000,"description":"Request timeout in ms"},{"displayName":"TDS Version","name":"tdsVersion","type":"options","options":[{"name":"7_4 (SQL Server 2012 ~ 2019)","value":"7_4"},{"name":"7_3_B (SQL Server 2008R2)","value":"7_3_B"},{"name":"7_3_A (SQL Server 2008)","value":"7_3_A"},{"name":"7_2 (SQL Server 2005)","value":"7_2"},{"name":"7_1 (SQL Server 2000)","value":"7_1"}],"default":"7_4","description":"The version of TDS to use. If server doesn't support specified version, negotiated version is used instead."}],"supportedNodes":["microsoftSql"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Sql/mssql.svg"},
|
|
217
|
-
{"name":"microsoftTeamsOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Teams OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access User.ReadWrite.All Group.ReadWrite.All Chat.ReadWrite"}],"supportedNodes":["microsoftTeams"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Teams/teams.svg"},
|
|
217
|
+
{"name":"microsoftTeamsOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft Teams OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access User.ReadWrite.All Group.ReadWrite.All Chat.ReadWrite"},{"displayName":"\n Microsoft Teams Trigger requires the following permissions:\n <br><code>ChannelMessage.Read.All</code>\n <br><code>Chat.Read.All</code>\n <br><code>Team.ReadBasic.All</code>\n <br><code>Subscription.ReadWrite.All</code>\n <br>Configure these permissions in <a href=\"https://portal.azure.com\">Microsoft Entra</a>\n ","name":"notice","type":"notice","default":""}],"supportedNodes":["microsoftTeams","microsoftTeamsTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/Teams/teams.svg"},
|
|
218
218
|
{"name":"microsoftToDoOAuth2Api","extends":["microsoftOAuth2Api"],"displayName":"Microsoft To Do OAuth2 API","documentationUrl":"microsoft","properties":[{"displayName":"Scope","name":"scope","type":"hidden","default":"openid offline_access Tasks.ReadWrite"}],"supportedNodes":["microsoftToDo"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Microsoft/ToDo/todo.svg"},
|
|
219
219
|
{"name":"mindeeInvoiceApi","displayName":"Mindee Invoice API","documentationUrl":"mindee","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["mindee"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Mindee/mindee.svg","authenticate":{}},
|
|
220
220
|
{"name":"mindeeReceiptApi","displayName":"Mindee Receipt API","documentationUrl":"mindee","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["mindee"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Mindee/mindee.svg","authenticate":{}},
|
|
@@ -306,7 +306,7 @@
|
|
|
306
306
|
{"name":"slackOAuth2Api","extends":["oAuth2Api"],"displayName":"Slack OAuth2 API","documentationUrl":"slack","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://slack.com/oauth/v2/authorize"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://slack.com/api/oauth.v2.access"},{"displayName":"Scope","name":"scope","type":"hidden","default":"chat:write"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"user_scope=channels:read channels:write chat:write files:read files:write groups:read im:read mpim:read reactions:read reactions:write stars:read stars:write usergroups:write usergroups:read users.profile:read users.profile:write users:read"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"body"},{"displayName":"If you get an Invalid Scopes error, make sure you add the correct one <a target=\"_blank\" href=\"https://docs.n8n.io/integrations/builtin/credentials/slack/#using-oauth\">here</a> to your Slack integration","name":"notice","type":"notice","default":""}],"supportedNodes":["slack"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Slack/slack.svg"},
|
|
307
307
|
{"name":"sms77Api","displayName":"seven API","documentationUrl":"sms77","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"X-Api-Key":"={{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"https://gateway.seven.io/api","url":"/hooks","qs":{"action":"read"}},"rules":[{"type":"responseSuccessBody","properties":{"key":"success","message":"Invalid API Key"}}]},"supportedNodes":["sms77"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Sms77/seven.svg"},
|
|
308
308
|
{"name":"smtp","displayName":"SMTP","documentationUrl":"sendemail","properties":[{"displayName":"User","name":"user","type":"string","default":""},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Host","name":"host","type":"string","default":""},{"displayName":"Port","name":"port","type":"number","default":465},{"displayName":"SSL/TLS","name":"secure","type":"boolean","default":true},{"displayName":"Disable STARTTLS","name":"disableStartTls","type":"boolean","default":false,"displayOptions":{"show":{"secure":[false]}}},{"displayName":"Client Host Name","name":"hostName","type":"string","default":"","placeholder":"","description":"The hostname of the client, used for identifying to the server"}],"supportedNodes":["emailSend"],"icon":"fa:envelope"},
|
|
309
|
-
{"name":"snowflake","displayName":"Snowflake","documentationUrl":"snowflake","properties":[{"displayName":"Account","name":"account","type":"string","default":"","description":"Enter the name of your Snowflake account"},{"displayName":"Database","name":"database","type":"string","default":"","description":"Specify the database you want to use after creating the connection"},{"displayName":"Warehouse","name":"warehouse","type":"string","default":"","description":"The default virtual warehouse to use for the session after connecting. Used for performing queries, loading data, etc."},{"displayName":"Username","name":"username","type":"string","default":""},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Schema","name":"schema","type":"string","default":"","description":"Enter the schema you want to use after creating the connection"},{"displayName":"Role","name":"role","type":"string","default":"","description":"Enter the security role you want to use after creating the connection"},{"displayName":"Client Session Keep Alive","name":"clientSessionKeepAlive","type":"boolean","default":false,"description":"Whether to keep alive the client session. By default, client connections typically time out approximately 3-4 hours after the most recent query was executed. If the parameter clientSessionKeepAlive is set to true, the client’s connection to the server will be kept alive indefinitely, even if no queries are executed."}],"supportedNodes":["snowflake"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Snowflake/snowflake.svg"},
|
|
309
|
+
{"name":"snowflake","displayName":"Snowflake","documentationUrl":"snowflake","properties":[{"displayName":"Account","name":"account","type":"string","default":"","description":"Enter the name of your Snowflake account"},{"displayName":"Database","name":"database","type":"string","default":"","description":"Specify the database you want to use after creating the connection"},{"displayName":"Warehouse","name":"warehouse","type":"string","default":"","description":"The default virtual warehouse to use for the session after connecting. Used for performing queries, loading data, etc."},{"displayName":"Authentication","name":"authentication","type":"options","options":[{"name":"Password","value":"password"},{"name":"Key-Pair","value":"keyPair"}],"default":"password","description":"The way to authenticate with Snowflake"},{"displayName":"Username","name":"username","type":"string","default":"","displayOptions":{"show":{"authentication":["password"]}}},{"displayName":"Password","name":"password","type":"string","typeOptions":{"password":true},"default":"","displayOptions":{"show":{"authentication":["password"]}}},{"displayName":"Private Key","name":"privateKey","type":"string","typeOptions":{"password":true,"rows":4},"default":"","required":true,"displayOptions":{"show":{"authentication":["keyPair"]}},"description":"Private PEM key for Key-pair authentication with Snowflake"},{"displayName":"Schema","name":"schema","type":"string","default":"","description":"Enter the schema you want to use after creating the connection"},{"displayName":"Role","name":"role","type":"string","default":"","description":"Enter the security role you want to use after creating the connection"},{"displayName":"Client Session Keep Alive","name":"clientSessionKeepAlive","type":"boolean","default":false,"description":"Whether to keep alive the client session. By default, client connections typically time out approximately 3-4 hours after the most recent query was executed. If the parameter clientSessionKeepAlive is set to true, the client’s connection to the server will be kept alive indefinitely, even if no queries are executed."}],"supportedNodes":["snowflake"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Snowflake/snowflake.svg"},
|
|
310
310
|
{"name":"solarWindsIpamApi","displayName":"SolarWinds IPAM","documentationUrl":"solarwindsipam","httpRequestNode":{"name":"SolarWinds IPAM","docsUrl":"https://www.solarwinds.com/ip-address-manager","apiBaseUrlPlaceholder":"https://your-ipam-server"},"properties":[{"displayName":"Base URL","name":"url","required":true,"type":"string","default":"","placeholder":"https://your-ipam-server","description":"The base URL of your SolarWinds IPAM server."},{"displayName":"Username","name":"username","required":true,"type":"string","default":"","description":"The username for SolarWinds IPAM API."},{"displayName":"Password","name":"password","required":true,"type":"string","typeOptions":{"password":true},"default":"","description":"The password for SolarWinds IPAM API."}],"authenticate":{"type":"generic","properties":{"auth":{"username":"={{$credentials.username}}","password":"={{$credentials.password}}"}}},"test":{"request":{"baseURL":"={{$credentials.url}}","url":"/SolarWinds/InformationService/v3/Json/Query","method":"GET","qs":{"query":"SELECT TOP 1 AccountID FROM IPAM.AccountRoles"},"skipSslCertificateValidation":true},"rules":[{"type":"responseCode","properties":{"value":403,"message":"Connection failed: Invalid credentials or unreachable server"}}]},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsIpam.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsIpam.svg"},"supportedNodes":[]},
|
|
311
311
|
{"name":"solarWindsObservabilityApi","displayName":"SolarWinds Observability","documentationUrl":"solarwindsobservability","httpRequestNode":{"name":"SolarWinds Observability","docsUrl":"https://documentation.solarwinds.com/en/success_center/observability/content/api/api-swagger.htm","apiBaseUrlPlaceholder":"https://api.xx-yy.cloud.solarwinds.com/"},"properties":[{"displayName":"URL","name":"url","required":true,"type":"string","default":""},{"displayName":"API Token","name":"apiToken","required":true,"type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiToken}}","Content-Type":"application/json-rpc"}}},"test":{"request":{"baseURL":"={{$credentials.url}}","url":"/v1/logs","method":"GET"},"rules":[{"type":"responseSuccessBody","properties":{"key":"error","value":"invalid_auth","message":"Invalid access token"}}]},"iconUrl":{"light":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsObservability.svg","dark":"icons/n8n-nodes-base/dist/credentials/icons/SolarWindsObservability.svg"},"supportedNodes":[]},
|
|
312
312
|
{"name":"splunkApi","displayName":"Splunk API","documentationUrl":"splunk","properties":[{"displayName":"Auth Token","name":"authToken","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Base URL","name":"baseUrl","type":"string","description":"Protocol, domain and port","placeholder":"e.g. https://localhost:8089","default":""},{"displayName":"Allow Self-Signed Certificates","name":"allowUnauthorizedCerts","type":"boolean","description":"Whether to connect even if SSL certificate validation is not possible","default":false}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials?.authToken}}"}}},"test":{"request":{"url":"={{$credentials.baseUrl}}/services/alerts/fired_alerts","method":"GET","skipSslCertificateValidation":"={{$credentials?.allowUnauthorizedCerts}}"}},"supportedNodes":["splunk"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Splunk/splunk.svg"},
|