n8n-nodes-base 1.95.1 → 1.96.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/credentials/PerplexityApi.credentials.js +1 -1
- package/dist/credentials/PerplexityApi.credentials.js.map +1 -1
- package/dist/nodes/Adalo/__schema__/v1.0.0/collection/getAll.json +21 -0
- package/dist/nodes/Airtable/test/v2/node/helpers.js +12 -2
- package/dist/nodes/Airtable/test/v2/node/helpers.js.map +1 -1
- package/dist/nodes/Airtop/__schema__/v1.0.0/extraction/query.json +7 -1
- package/dist/nodes/Airtop/__schema__/v1.0.0/session/create.json +9 -0
- package/dist/nodes/Airtop/__schema__/v1.0.0/window/create.json +40 -0
- package/dist/nodes/Airtop/test/node/helpers.js +12 -2
- package/dist/nodes/Airtop/test/node/helpers.js.map +1 -1
- package/dist/nodes/Asana/__schema__/v1.0.0/subtask/getAll.json +4 -1
- package/dist/nodes/Aws/S3/__schema__/v2.0.0/file/getAll.json +7 -1
- package/dist/nodes/Aws/S3/__schema__/v2.0.0/folder/getAll.json +7 -1
- package/dist/nodes/BambooHr/__schema__/v1.0.0/employee/getAll.json +1 -4
- package/dist/nodes/ClickUp/__schema__/v1.0.0/list/customFields.json +23 -1
- package/dist/nodes/Code/Pyodide.js +24 -0
- package/dist/nodes/Code/Pyodide.js.map +1 -1
- package/dist/nodes/CompareDatasets/GenericFunctions.js +5 -5
- package/dist/nodes/CompareDatasets/GenericFunctions.js.map +1 -1
- package/dist/nodes/Discord/__schema__/v2.0.0/message/sendAndWait.json +14 -0
- package/dist/nodes/Discord/v2/helpers/utils.js +2 -2
- package/dist/nodes/Discord/v2/helpers/utils.js.map +1 -1
- package/dist/nodes/Dropbox/__schema__/v1.0.0/file/download.json +31 -1
- package/dist/nodes/Dropcontact/__schema__/v1.0.0/contact/enrich.json +15 -1
- package/dist/nodes/Dropcontact/__schema__/v1.0.0/contact/fetchRequest.json +50 -0
- package/dist/nodes/EmailReadImap/v2/utils.js +16 -3
- package/dist/nodes/EmailReadImap/v2/utils.js.map +1 -1
- package/dist/nodes/EmailSend/__schema__/v2.1.0/email/send.json +1 -7
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +1 -1
- package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -1
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js +2 -2
- package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js.map +1 -1
- package/dist/nodes/Form/Form.node.js +3 -3
- package/dist/nodes/Form/Form.node.js.map +1 -1
- package/dist/nodes/Form/utils/formCompletionUtils.js.map +1 -0
- package/dist/nodes/Form/utils/formNodeUtils.js.map +1 -0
- package/dist/nodes/Form/{utils.js → utils/utils.js} +21 -7
- package/dist/nodes/Form/utils/utils.js.map +1 -0
- package/dist/nodes/Form/v1/FormTriggerV1.node.js +1 -1
- package/dist/nodes/Form/v1/FormTriggerV1.node.js.map +1 -1
- package/dist/nodes/Form/v2/FormTriggerV2.node.js +1 -1
- package/dist/nodes/Form/v2/FormTriggerV2.node.js.map +1 -1
- package/dist/nodes/Freshservice/GenericFunctions.js +12 -2
- package/dist/nodes/Freshservice/GenericFunctions.js.map +1 -1
- package/dist/nodes/Google/Ads/__schema__/v1.0.0/campaign/getAll.json +13 -1
- package/dist/nodes/Google/Analytics/__schema__/v2.0.0/report/get.json +1 -4
- package/dist/nodes/Google/Calendar/__schema__/v1.3.0/event/getAll.json +1 -4
- package/dist/nodes/Google/Chat/__schema__/v1.0.0/message/create.json +30 -1
- package/dist/nodes/Google/Drive/__schema__/v3.0.0/file/upload.json +4 -1
- package/dist/nodes/Google/Drive/test/v2/node/helpers.js +12 -2
- package/dist/nodes/Google/Drive/test/v2/node/helpers.js.map +1 -1
- package/dist/nodes/Google/Firebase/CloudFirestore/__schema__/v1.1.0/document/query.json +1 -7
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/addLabels.json +13 -1
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/get.json +1 -7
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/markAsRead.json +13 -1
- package/dist/nodes/Google/Gmail/__schema__/v2.1.0/thread/addLabels.json +16 -1
- package/dist/nodes/Google/Sheet/v2/actions/sheet/update.operation.js +10 -4
- package/dist/nodes/Google/Sheet/v2/actions/sheet/update.operation.js.map +1 -1
- package/dist/nodes/HaloPSA/__schema__/v1.0.0/ticket/getAll.json +1 -268
- package/dist/nodes/HttpRequest/shared/optimizeResponse.js +5 -3
- package/dist/nodes/HttpRequest/shared/optimizeResponse.js.map +1 -1
- package/dist/nodes/Hubspot/__schema__/v2.1.0/company/getAll.json +1 -4
- package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/getAll.json +64 -1
- package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/search.json +1 -4
- package/dist/nodes/Hubspot/__schema__/v2.1.0/ticket/get.json +1 -61
- package/dist/nodes/JinaAI/__schema__/v1.0.0/reader/read.json +26 -0
- package/dist/nodes/Jira/__schema__/v1.0.0/issue/get.json +604 -7
- package/dist/nodes/Jira/__schema__/v1.0.0/issue/getAll.json +1 -110
- package/dist/nodes/Lemlist/__schema__/v2.0.0/lead/create.json +1 -4
- package/dist/nodes/Lemlist/__schema__/v2.0.0/lead/get.json +30 -0
- package/dist/nodes/Line/__schema__/v1.0.0/notification/send.json +4 -7
- package/dist/nodes/Linear/__schema__/v1.0.0/issue/getAll.json +12 -1
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +23 -3
- package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
- package/dist/nodes/Microsoft/Entra/__schema__/v1.0.0/user/getAll.json +1 -7
- package/dist/nodes/Microsoft/Entra/descriptions/GroupDescription.js +12 -2
- package/dist/nodes/Microsoft/Entra/descriptions/GroupDescription.js.map +1 -1
- package/dist/nodes/Microsoft/Entra/descriptions/UserDescription.js +13 -3
- package/dist/nodes/Microsoft/Entra/descriptions/UserDescription.js.map +1 -1
- package/dist/nodes/Microsoft/OneDrive/__schema__/v1.0.0/file/download.json +23 -10
- package/dist/nodes/Microsoft/OneDrive/__schema__/v1.0.0/folder/create.json +1 -15
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/event/getAll.json +1 -4
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/folderMessage/getAll.json +124 -1
- package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/getAll.json +1 -56
- package/dist/nodes/Microsoft/Sql/MicrosoftSql.node.js +12 -2
- package/dist/nodes/Microsoft/Sql/MicrosoftSql.node.js.map +1 -1
- package/dist/nodes/Microsoft/Storage/__schema__/v1.0.0/blob/create.json +39 -0
- package/dist/nodes/Microsoft/Storage/__schema__/v1.0.0/blob/get.json +44 -0
- package/dist/nodes/Microsoft/ToDo/__schema__/v1.0.0/task/getAll.json +5 -21
- package/dist/nodes/N8n/WorkflowDescription.js +40 -0
- package/dist/nodes/N8n/WorkflowDescription.js.map +1 -1
- package/dist/nodes/Nasa/__schema__/v1.0.0/donkiSolarFlare/get.json +1 -4
- package/dist/nodes/Notion/__schema__/v2.2.0/database/get.json +2 -149
- package/dist/nodes/Odoo/__schema__/v1.0.0/contact/get.json +1 -4
- package/dist/nodes/Odoo/__schema__/v1.0.0/contact/getAll.json +1 -10
- package/dist/nodes/Odoo/__schema__/v1.0.0/opportunity/getAll.json +1 -40
- package/dist/nodes/OpenAi/__schema__/v1.1.0/chat/complete.json +29 -1
- package/dist/nodes/Pipedrive/__schema__/v1.0.0/person/search.json +7 -1
- package/dist/nodes/QuickBase/__schema__/v1.0.0/record/getAll.json +9 -0
- package/dist/nodes/QuickBooks/__schema__/v1.0.0/transaction/getReport.json +4 -1
- package/dist/nodes/RssFeedRead/RssFeedRead.node.js +9 -3
- package/dist/nodes/RssFeedRead/RssFeedRead.node.js.map +1 -1
- package/dist/nodes/S3/__schema__/v1.0.0/file/download.json +21 -0
- package/dist/nodes/Salesforce/__schema__/v1.0.0/customObject/getAll.json +1 -4
- package/dist/nodes/Salesforce/__schema__/v1.0.0/lead/getAll.json +1 -4
- package/dist/nodes/Salesforce/__schema__/v1.0.0/opportunity/getAll.json +1 -4
- package/dist/nodes/Salesforce/__schema__/v1.0.0/search/query.json +1 -4
- package/dist/nodes/Shopify/__schema__/v1.0.0/order/getAll.json +250 -3
- package/dist/nodes/Slack/__schema__/v2.3.0/channel/history.json +1 -50
- package/dist/nodes/Slack/__schema__/v2.3.0/channel/member.json +168 -2
- package/dist/nodes/Slack/__schema__/v2.3.0/message/post.json +1 -4
- package/dist/nodes/Sms77/__schema__/v1.0.0/sms/send.json +1 -10
- package/dist/nodes/Strapi/__schema__/v1.0.0/entry/getAll.json +10 -1
- package/dist/nodes/Telegram/__schema__/v1.2.0/chat/member.json +1 -4
- package/dist/nodes/Telegram/__schema__/v1.2.0/message/editMessageText.json +4 -1
- package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendAndWait.json +14 -0
- package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendMessage.json +4 -21
- package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendPhoto.json +1 -7
- package/dist/nodes/Telegram/tests/Helpers.js +12 -2
- package/dist/nodes/Telegram/tests/Helpers.js.map +1 -1
- package/dist/nodes/Transform/RemoveDuplicates/utils.js +8 -6
- package/dist/nodes/Transform/RemoveDuplicates/utils.js.map +1 -1
- package/dist/nodes/Trello/__schema__/v1.0.0/list/getAll.json +1 -4
- package/dist/nodes/Trello/__schema__/v1.0.0/list/getCards.json +1 -4
- package/dist/nodes/Twitter/__schema__/v2.0.0/tweet/search.json +7 -1
- package/dist/nodes/Wait/Wait.node.js +1 -1
- package/dist/nodes/Wait/Wait.node.js.map +1 -1
- package/dist/nodes/Wordpress/__schema__/v1.0.0/post/get.json +1 -7
- package/dist/nodes/Zoho/__schema__/v1.0.0/contact/getAll.json +1 -4
- package/dist/nodes/Zoho/__schema__/v1.0.0/lead/getAll.json +99 -1
- package/dist/test/nodes/Helpers.js +12 -2
- package/dist/test/nodes/Helpers.js.map +1 -1
- package/dist/types/credentials.json +1 -1
- package/dist/types/nodes.json +13 -13
- package/dist/utils/binary.js +12 -9
- package/dist/utils/binary.js.map +1 -1
- package/dist/utils/sendAndWait/utils.js +21 -6
- package/dist/utils/sendAndWait/utils.js.map +1 -1
- package/dist/utils/utilities.js +31 -16
- package/dist/utils/utilities.js.map +1 -1
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +2 -2
- package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
- package/package.json +9 -9
- package/dist/nodes/Form/formCompletionUtils.js.map +0 -1
- package/dist/nodes/Form/formNodeUtils.js.map +0 -1
- package/dist/nodes/Form/utils.js.map +0 -1
- /package/dist/nodes/Form/{formCompletionUtils.js → utils/formCompletionUtils.js} +0 -0
- /package/dist/nodes/Form/{formNodeUtils.js → utils/formNodeUtils.js} +0 -0
|
@@ -24,9 +24,45 @@
|
|
|
24
24
|
"type": "string"
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
|
+
"ccRecipients": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"emailAddress": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"address": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
},
|
|
38
|
+
"name": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"changeKey": {
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
27
49
|
"conversationId": {
|
|
28
50
|
"type": "string"
|
|
29
51
|
},
|
|
52
|
+
"conversationIndex": {
|
|
53
|
+
"type": "string"
|
|
54
|
+
},
|
|
55
|
+
"createdDateTime": {
|
|
56
|
+
"type": "string"
|
|
57
|
+
},
|
|
58
|
+
"flag": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"properties": {
|
|
61
|
+
"flagStatus": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
30
66
|
"from": {
|
|
31
67
|
"type": "object",
|
|
32
68
|
"properties": {
|
|
@@ -49,9 +85,96 @@
|
|
|
49
85
|
"id": {
|
|
50
86
|
"type": "string"
|
|
51
87
|
},
|
|
88
|
+
"importance": {
|
|
89
|
+
"type": "string"
|
|
90
|
+
},
|
|
91
|
+
"inferenceClassification": {
|
|
92
|
+
"type": "string"
|
|
93
|
+
},
|
|
94
|
+
"internetMessageId": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"isDraft": {
|
|
98
|
+
"type": "boolean"
|
|
99
|
+
},
|
|
100
|
+
"isRead": {
|
|
101
|
+
"type": "boolean"
|
|
102
|
+
},
|
|
103
|
+
"isReadReceiptRequested": {
|
|
104
|
+
"type": "boolean"
|
|
105
|
+
},
|
|
106
|
+
"lastModifiedDateTime": {
|
|
107
|
+
"type": "string"
|
|
108
|
+
},
|
|
109
|
+
"parentFolderId": {
|
|
110
|
+
"type": "string"
|
|
111
|
+
},
|
|
112
|
+
"receivedDateTime": {
|
|
113
|
+
"type": "string"
|
|
114
|
+
},
|
|
115
|
+
"replyTo": {
|
|
116
|
+
"type": "array",
|
|
117
|
+
"items": {
|
|
118
|
+
"type": "object",
|
|
119
|
+
"properties": {
|
|
120
|
+
"emailAddress": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"properties": {
|
|
123
|
+
"address": {
|
|
124
|
+
"type": "string"
|
|
125
|
+
},
|
|
126
|
+
"name": {
|
|
127
|
+
"type": "string"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"sender": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"properties": {
|
|
137
|
+
"emailAddress": {
|
|
138
|
+
"type": "object",
|
|
139
|
+
"properties": {
|
|
140
|
+
"address": {
|
|
141
|
+
"type": "string"
|
|
142
|
+
},
|
|
143
|
+
"name": {
|
|
144
|
+
"type": "string"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"sentDateTime": {
|
|
151
|
+
"type": "string"
|
|
152
|
+
},
|
|
52
153
|
"subject": {
|
|
53
154
|
"type": "string"
|
|
155
|
+
},
|
|
156
|
+
"toRecipients": {
|
|
157
|
+
"type": "array",
|
|
158
|
+
"items": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"properties": {
|
|
161
|
+
"emailAddress": {
|
|
162
|
+
"type": "object",
|
|
163
|
+
"properties": {
|
|
164
|
+
"address": {
|
|
165
|
+
"type": "string"
|
|
166
|
+
},
|
|
167
|
+
"name": {
|
|
168
|
+
"type": "string"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"webLink": {
|
|
176
|
+
"type": "string"
|
|
54
177
|
}
|
|
55
178
|
},
|
|
56
|
-
"version":
|
|
179
|
+
"version": 4
|
|
57
180
|
}
|
|
@@ -27,14 +27,6 @@
|
|
|
27
27
|
"conversationId": {
|
|
28
28
|
"type": "string"
|
|
29
29
|
},
|
|
30
|
-
"flag": {
|
|
31
|
-
"type": "object",
|
|
32
|
-
"properties": {
|
|
33
|
-
"flagStatus": {
|
|
34
|
-
"type": "string"
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
30
|
"from": {
|
|
39
31
|
"type": "object",
|
|
40
32
|
"properties": {
|
|
@@ -57,34 +49,9 @@
|
|
|
57
49
|
"id": {
|
|
58
50
|
"type": "string"
|
|
59
51
|
},
|
|
60
|
-
"importance": {
|
|
61
|
-
"type": "string"
|
|
62
|
-
},
|
|
63
|
-
"isRead": {
|
|
64
|
-
"type": "boolean"
|
|
65
|
-
},
|
|
66
52
|
"receivedDateTime": {
|
|
67
53
|
"type": "string"
|
|
68
54
|
},
|
|
69
|
-
"replyTo": {
|
|
70
|
-
"type": "array",
|
|
71
|
-
"items": {
|
|
72
|
-
"type": "object",
|
|
73
|
-
"properties": {
|
|
74
|
-
"emailAddress": {
|
|
75
|
-
"type": "object",
|
|
76
|
-
"properties": {
|
|
77
|
-
"address": {
|
|
78
|
-
"type": "string"
|
|
79
|
-
},
|
|
80
|
-
"name": {
|
|
81
|
-
"type": "string"
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
55
|
"sender": {
|
|
89
56
|
"type": "object",
|
|
90
57
|
"properties": {
|
|
@@ -100,29 +67,7 @@
|
|
|
100
67
|
}
|
|
101
68
|
}
|
|
102
69
|
}
|
|
103
|
-
},
|
|
104
|
-
"subject": {
|
|
105
|
-
"type": "string"
|
|
106
|
-
},
|
|
107
|
-
"toRecipients": {
|
|
108
|
-
"type": "array",
|
|
109
|
-
"items": {
|
|
110
|
-
"type": "object",
|
|
111
|
-
"properties": {
|
|
112
|
-
"emailAddress": {
|
|
113
|
-
"type": "object",
|
|
114
|
-
"properties": {
|
|
115
|
-
"address": {
|
|
116
|
-
"type": "string"
|
|
117
|
-
},
|
|
118
|
-
"name": {
|
|
119
|
-
"type": "string"
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
70
|
}
|
|
126
71
|
},
|
|
127
|
-
"version":
|
|
72
|
+
"version": 4
|
|
128
73
|
}
|
|
@@ -234,11 +234,21 @@ class MicrosoftSql {
|
|
|
234
234
|
}
|
|
235
235
|
async execute() {
|
|
236
236
|
const credentials = await this.getCredentials("microsoftSql");
|
|
237
|
-
const pool = (0, import_GenericFunctions.configurePool)(credentials);
|
|
238
|
-
await pool.connect();
|
|
239
237
|
let responseData = [];
|
|
240
238
|
let returnData = [];
|
|
241
239
|
const items = this.getInputData();
|
|
240
|
+
const pairedItem = (0, import_utilities.generatePairedItemData)(items.length);
|
|
241
|
+
const pool = (0, import_GenericFunctions.configurePool)(credentials);
|
|
242
|
+
try {
|
|
243
|
+
await pool.connect();
|
|
244
|
+
} catch (error) {
|
|
245
|
+
void pool.close();
|
|
246
|
+
if (this.continueOnFail()) {
|
|
247
|
+
return [[{ json: { error: error.message }, pairedItem }]];
|
|
248
|
+
} else {
|
|
249
|
+
throw error;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
242
252
|
const operation = this.getNodeParameter("operation", 0);
|
|
243
253
|
const nodeVersion = this.getNode().typeVersion;
|
|
244
254
|
if (operation === "executeQuery" && nodeVersion >= 1.1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../nodes/Microsoft/Sql/MicrosoftSql.node.ts"],"sourcesContent":["import type { IResult } from 'mssql';\nimport {\n\ttype IExecuteFunctions,\n\ttype ICredentialDataDecryptedObject,\n\ttype ICredentialsDecrypted,\n\ttype ICredentialTestFunctions,\n\ttype IDataObject,\n\ttype INodeCredentialTestResult,\n\ttype INodeExecutionData,\n\ttype INodeType,\n\ttype INodeTypeDescription,\n\tNodeConnectionTypes,\n} from 'n8n-workflow';\n\nimport { flatten, generatePairedItemData, getResolvables } from '@utils/utilities';\n\nimport {\n\tconfigurePool,\n\tcreateTableStruct,\n\tdeleteOperation,\n\texecuteSqlQueryAndPrepareResults,\n\tinsertOperation,\n\tupdateOperation,\n} from './GenericFunctions';\nimport type { ITables } from './interfaces';\n\nexport class MicrosoftSql implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Microsoft SQL',\n\t\tname: 'microsoftSql',\n\t\ticon: 'file:mssql.svg',\n\t\tgroup: ['input'],\n\t\tversion: [1, 1.1],\n\t\tdescription: 'Get, add and update data in Microsoft SQL',\n\t\tdefaults: {\n\t\t\tname: 'Microsoft SQL',\n\t\t},\n\t\tinputs: [NodeConnectionTypes.Main],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tusableAsTool: true,\n\t\tparameterPane: 'wide',\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'microsoftSql',\n\t\t\t\trequired: true,\n\t\t\t\ttestedBy: 'microsoftSqlConnectionTest',\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\t{\n\t\t\t\t\t\tname: 'Delete',\n\t\t\t\t\t\tvalue: 'delete',\n\t\t\t\t\t\tdescription: 'Delete rows in database',\n\t\t\t\t\t\taction: 'Delete 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\tsqlDialect: 'MSSQL',\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\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\trequiresDataPath: 'multiple',\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\trequiresDataPath: 'single',\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\trequiresDataPath: 'multiple',\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\n\t\t\t// ----------------------------------\n\t\t\t// delete\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: ['delete'],\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 delete data',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Delete Key',\n\t\t\t\tname: 'deleteKey',\n\t\t\t\ttype: 'string',\n\t\t\t\trequiresDataPath: 'single',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['delete'],\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 deleted. Normally that would be \"id\".',\n\t\t\t},\n\t\t],\n\t};\n\n\tmethods = {\n\t\tcredentialTest: {\n\t\t\tasync microsoftSqlConnectionTest(\n\t\t\t\tthis: ICredentialTestFunctions,\n\t\t\t\tcredential: ICredentialsDecrypted,\n\t\t\t): Promise<INodeCredentialTestResult> {\n\t\t\t\tconst credentials = credential.data as ICredentialDataDecryptedObject;\n\t\t\t\ttry {\n\t\t\t\t\tconst pool = configurePool(credentials);\n\t\t\t\t\tawait pool.connect();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: 'Error',\n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'OK',\n\t\t\t\t\tmessage: 'Connection successful!',\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t};\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst credentials = await this.getCredentials('microsoftSql');\n\n\t\tconst pool = configurePool(credentials);\n\t\tawait pool.connect();\n\n\t\tlet responseData: IDataObject | IDataObject[] = [];\n\t\tlet returnData: INodeExecutionData[] = [];\n\n\t\tconst items = this.getInputData();\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\t\tconst nodeVersion = this.getNode().typeVersion;\n\n\t\tif (operation === 'executeQuery' && nodeVersion >= 1.1) {\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\tlet rawQuery = this.getNodeParameter('query', i) as string;\n\n\t\t\t\t\tfor (const resolvable of getResolvables(rawQuery)) {\n\t\t\t\t\t\trawQuery = rawQuery.replace(\n\t\t\t\t\t\t\tresolvable,\n\t\t\t\t\t\t\tthis.evaluateExpression(resolvable, i) as string,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst results = await executeSqlQueryAndPrepareResults(pool, rawQuery, i);\n\t\t\t\t\treturnData = returnData.concat(results);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tjson: { error: error.message },\n\t\t\t\t\t\t\tpairedItem: [{ item: i }],\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tawait pool.close();\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait pool.close();\n\t\t\treturn [returnData];\n\t\t}\n\t\ttry {\n\t\t\tif (operation === 'executeQuery') {\n\t\t\t\tlet rawQuery = this.getNodeParameter('query', 0) as string;\n\n\t\t\t\tfor (const resolvable of getResolvables(rawQuery)) {\n\t\t\t\t\trawQuery = rawQuery.replace(resolvable, this.evaluateExpression(resolvable, 0) as string);\n\t\t\t\t}\n\n\t\t\t\tconst { recordsets }: IResult<any[]> = await pool.request().query(rawQuery);\n\n\t\t\t\tconst result = recordsets.length > 1 ? flatten(recordsets) : recordsets[0];\n\n\t\t\t\tresponseData = result;\n\t\t\t}\n\n\t\t\tif (operation === 'insert') {\n\t\t\t\tconst tables = createTableStruct(this.getNodeParameter, items);\n\n\t\t\t\tawait insertOperation(tables, pool);\n\n\t\t\t\tresponseData = items;\n\t\t\t}\n\n\t\t\tif (operation === 'update') {\n\t\t\t\tconst updateKeys = items.map(\n\t\t\t\t\t(_, index) => this.getNodeParameter('updateKey', index) as string,\n\t\t\t\t);\n\n\t\t\t\tconst tables = createTableStruct(\n\t\t\t\t\tthis.getNodeParameter,\n\t\t\t\t\titems,\n\t\t\t\t\t['updateKey'].concat(updateKeys),\n\t\t\t\t\t'updateKey',\n\t\t\t\t);\n\n\t\t\t\tawait updateOperation(tables, pool);\n\n\t\t\t\tresponseData = items;\n\t\t\t}\n\n\t\t\tif (operation === 'delete') {\n\t\t\t\tconst tables = items.reduce((acc, item, index) => {\n\t\t\t\t\tconst table = this.getNodeParameter('table', index) as string;\n\t\t\t\t\tconst deleteKey = this.getNodeParameter('deleteKey', index) as string;\n\t\t\t\t\tif (acc[table] === undefined) {\n\t\t\t\t\t\tacc[table] = {};\n\t\t\t\t\t}\n\t\t\t\t\tif (acc[table][deleteKey] === undefined) {\n\t\t\t\t\t\tacc[table][deleteKey] = [];\n\t\t\t\t\t}\n\t\t\t\t\tacc[table][deleteKey].push(item);\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {} as ITables);\n\n\t\t\t\tresponseData = await deleteOperation(tables, pool);\n\t\t\t}\n\n\t\t\tconst itemData = generatePairedItemData(items.length);\n\n\t\t\treturnData = this.helpers.constructExecutionMetaData(\n\t\t\t\tthis.helpers.returnJsonArray(responseData),\n\t\t\t\t{ itemData },\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (this.continueOnFail()) {\n\t\t\t\tresponseData = items;\n\t\t\t} else {\n\t\t\t\tawait pool.close();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\t// shuts down the connection pool associated with the db object to allow the process to finish\n\t\tawait pool.close();\n\n\t\treturn [returnData];\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/Microsoft/Sql/MicrosoftSql.node.ts"],"sourcesContent":["import type { IResult } from 'mssql';\nimport {\n\ttype IExecuteFunctions,\n\ttype ICredentialDataDecryptedObject,\n\ttype ICredentialsDecrypted,\n\ttype ICredentialTestFunctions,\n\ttype IDataObject,\n\ttype INodeCredentialTestResult,\n\ttype INodeExecutionData,\n\ttype INodeType,\n\ttype INodeTypeDescription,\n\tNodeConnectionTypes,\n} from 'n8n-workflow';\n\nimport { flatten, generatePairedItemData, getResolvables } from '@utils/utilities';\n\nimport {\n\tconfigurePool,\n\tcreateTableStruct,\n\tdeleteOperation,\n\texecuteSqlQueryAndPrepareResults,\n\tinsertOperation,\n\tupdateOperation,\n} from './GenericFunctions';\nimport type { ITables } from './interfaces';\n\nexport class MicrosoftSql implements INodeType {\n\tdescription: INodeTypeDescription = {\n\t\tdisplayName: 'Microsoft SQL',\n\t\tname: 'microsoftSql',\n\t\ticon: 'file:mssql.svg',\n\t\tgroup: ['input'],\n\t\tversion: [1, 1.1],\n\t\tdescription: 'Get, add and update data in Microsoft SQL',\n\t\tdefaults: {\n\t\t\tname: 'Microsoft SQL',\n\t\t},\n\t\tinputs: [NodeConnectionTypes.Main],\n\t\toutputs: [NodeConnectionTypes.Main],\n\t\tusableAsTool: true,\n\t\tparameterPane: 'wide',\n\t\tcredentials: [\n\t\t\t{\n\t\t\t\tname: 'microsoftSql',\n\t\t\t\trequired: true,\n\t\t\t\ttestedBy: 'microsoftSqlConnectionTest',\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\t{\n\t\t\t\t\t\tname: 'Delete',\n\t\t\t\t\t\tvalue: 'delete',\n\t\t\t\t\t\tdescription: 'Delete rows in database',\n\t\t\t\t\t\taction: 'Delete 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\tsqlDialect: 'MSSQL',\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\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\trequiresDataPath: 'multiple',\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\trequiresDataPath: 'single',\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\trequiresDataPath: 'multiple',\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\n\t\t\t// ----------------------------------\n\t\t\t// delete\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: ['delete'],\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 delete data',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Delete Key',\n\t\t\t\tname: 'deleteKey',\n\t\t\t\ttype: 'string',\n\t\t\t\trequiresDataPath: 'single',\n\t\t\t\tdisplayOptions: {\n\t\t\t\t\tshow: {\n\t\t\t\t\t\toperation: ['delete'],\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 deleted. Normally that would be \"id\".',\n\t\t\t},\n\t\t],\n\t};\n\n\tmethods = {\n\t\tcredentialTest: {\n\t\t\tasync microsoftSqlConnectionTest(\n\t\t\t\tthis: ICredentialTestFunctions,\n\t\t\t\tcredential: ICredentialsDecrypted,\n\t\t\t): Promise<INodeCredentialTestResult> {\n\t\t\t\tconst credentials = credential.data as ICredentialDataDecryptedObject;\n\t\t\t\ttry {\n\t\t\t\t\tconst pool = configurePool(credentials);\n\t\t\t\t\tawait pool.connect();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tstatus: 'Error',\n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'OK',\n\t\t\t\t\tmessage: 'Connection successful!',\n\t\t\t\t};\n\t\t\t},\n\t\t},\n\t};\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst credentials = await this.getCredentials('microsoftSql');\n\n\t\tlet responseData: IDataObject | IDataObject[] = [];\n\t\tlet returnData: INodeExecutionData[] = [];\n\t\tconst items = this.getInputData();\n\t\tconst pairedItem = generatePairedItemData(items.length);\n\n\t\tconst pool = configurePool(credentials);\n\t\ttry {\n\t\t\tawait pool.connect();\n\t\t} catch (error) {\n\t\t\tvoid pool.close();\n\n\t\t\tif (this.continueOnFail()) {\n\t\t\t\treturn [[{ json: { error: error.message }, pairedItem }]];\n\t\t\t} else {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst operation = this.getNodeParameter('operation', 0);\n\t\tconst nodeVersion = this.getNode().typeVersion;\n\n\t\tif (operation === 'executeQuery' && nodeVersion >= 1.1) {\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\tlet rawQuery = this.getNodeParameter('query', i) as string;\n\n\t\t\t\t\tfor (const resolvable of getResolvables(rawQuery)) {\n\t\t\t\t\t\trawQuery = rawQuery.replace(\n\t\t\t\t\t\t\tresolvable,\n\t\t\t\t\t\t\tthis.evaluateExpression(resolvable, i) as string,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst results = await executeSqlQueryAndPrepareResults(pool, rawQuery, i);\n\t\t\t\t\treturnData = returnData.concat(results);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (this.continueOnFail()) {\n\t\t\t\t\t\treturnData.push({\n\t\t\t\t\t\t\tjson: { error: error.message },\n\t\t\t\t\t\t\tpairedItem: [{ item: i }],\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tawait pool.close();\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait pool.close();\n\t\t\treturn [returnData];\n\t\t}\n\t\ttry {\n\t\t\tif (operation === 'executeQuery') {\n\t\t\t\tlet rawQuery = this.getNodeParameter('query', 0) as string;\n\n\t\t\t\tfor (const resolvable of getResolvables(rawQuery)) {\n\t\t\t\t\trawQuery = rawQuery.replace(resolvable, this.evaluateExpression(resolvable, 0) as string);\n\t\t\t\t}\n\n\t\t\t\tconst { recordsets }: IResult<any[]> = await pool.request().query(rawQuery);\n\n\t\t\t\tconst result = recordsets.length > 1 ? flatten(recordsets) : recordsets[0];\n\n\t\t\t\tresponseData = result;\n\t\t\t}\n\n\t\t\tif (operation === 'insert') {\n\t\t\t\tconst tables = createTableStruct(this.getNodeParameter, items);\n\n\t\t\t\tawait insertOperation(tables, pool);\n\n\t\t\t\tresponseData = items;\n\t\t\t}\n\n\t\t\tif (operation === 'update') {\n\t\t\t\tconst updateKeys = items.map(\n\t\t\t\t\t(_, index) => this.getNodeParameter('updateKey', index) as string,\n\t\t\t\t);\n\n\t\t\t\tconst tables = createTableStruct(\n\t\t\t\t\tthis.getNodeParameter,\n\t\t\t\t\titems,\n\t\t\t\t\t['updateKey'].concat(updateKeys),\n\t\t\t\t\t'updateKey',\n\t\t\t\t);\n\n\t\t\t\tawait updateOperation(tables, pool);\n\n\t\t\t\tresponseData = items;\n\t\t\t}\n\n\t\t\tif (operation === 'delete') {\n\t\t\t\tconst tables = items.reduce((acc, item, index) => {\n\t\t\t\t\tconst table = this.getNodeParameter('table', index) as string;\n\t\t\t\t\tconst deleteKey = this.getNodeParameter('deleteKey', index) as string;\n\t\t\t\t\tif (acc[table] === undefined) {\n\t\t\t\t\t\tacc[table] = {};\n\t\t\t\t\t}\n\t\t\t\t\tif (acc[table][deleteKey] === undefined) {\n\t\t\t\t\t\tacc[table][deleteKey] = [];\n\t\t\t\t\t}\n\t\t\t\t\tacc[table][deleteKey].push(item);\n\t\t\t\t\treturn acc;\n\t\t\t\t}, {} as ITables);\n\n\t\t\t\tresponseData = await deleteOperation(tables, pool);\n\t\t\t}\n\n\t\t\tconst itemData = generatePairedItemData(items.length);\n\n\t\t\treturnData = this.helpers.constructExecutionMetaData(\n\t\t\t\tthis.helpers.returnJsonArray(responseData),\n\t\t\t\t{ itemData },\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (this.continueOnFail()) {\n\t\t\t\tresponseData = items;\n\t\t\t} else {\n\t\t\t\tawait pool.close();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\t// shuts down the connection pool associated with the db object to allow the process to finish\n\t\tawait pool.close();\n\n\t\treturn [returnData];\n\t}\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"connection": {
|
|
5
|
+
"type": "string"
|
|
6
|
+
},
|
|
7
|
+
"contentCrc64": {
|
|
8
|
+
"type": "string"
|
|
9
|
+
},
|
|
10
|
+
"contentLength": {
|
|
11
|
+
"type": "integer"
|
|
12
|
+
},
|
|
13
|
+
"contentMd5": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"date": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"etag": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"lastModified": {
|
|
23
|
+
"type": "string"
|
|
24
|
+
},
|
|
25
|
+
"requestId": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
"requestServerEncrypted": {
|
|
29
|
+
"type": "boolean"
|
|
30
|
+
},
|
|
31
|
+
"server": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"version": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"version": 1
|
|
39
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"properties": {
|
|
4
|
+
"name": {
|
|
5
|
+
"type": "string"
|
|
6
|
+
},
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"blobType": {
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"contentLength": {
|
|
14
|
+
"type": "integer"
|
|
15
|
+
},
|
|
16
|
+
"contentMd5": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"contentType": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"creationTime": {
|
|
23
|
+
"type": "string"
|
|
24
|
+
},
|
|
25
|
+
"etag": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
"lastModified": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"leaseState": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"leaseStatus": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
},
|
|
37
|
+
"serverEncrypted": {
|
|
38
|
+
"type": "boolean"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"version": 1
|
|
44
|
+
}
|
|
@@ -15,31 +15,15 @@
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
-
"
|
|
19
|
-
"type": "
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"type": "string"
|
|
23
|
-
},
|
|
24
|
-
"timeZone": {
|
|
25
|
-
"type": "string"
|
|
26
|
-
}
|
|
18
|
+
"categories": {
|
|
19
|
+
"type": "array",
|
|
20
|
+
"items": {
|
|
21
|
+
"type": "string"
|
|
27
22
|
}
|
|
28
23
|
},
|
|
29
24
|
"createdDateTime": {
|
|
30
25
|
"type": "string"
|
|
31
26
|
},
|
|
32
|
-
"dueDateTime": {
|
|
33
|
-
"type": "object",
|
|
34
|
-
"properties": {
|
|
35
|
-
"dateTime": {
|
|
36
|
-
"type": "string"
|
|
37
|
-
},
|
|
38
|
-
"timeZone": {
|
|
39
|
-
"type": "string"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
27
|
"hasAttachments": {
|
|
44
28
|
"type": "boolean"
|
|
45
29
|
},
|
|
@@ -62,5 +46,5 @@
|
|
|
62
46
|
"type": "string"
|
|
63
47
|
}
|
|
64
48
|
},
|
|
65
|
-
"version":
|
|
49
|
+
"version": 3
|
|
66
50
|
}
|
|
@@ -254,6 +254,46 @@ const getAllOperation = [
|
|
|
254
254
|
},
|
|
255
255
|
description: "Include only workflows with these tags",
|
|
256
256
|
hint: "Comma separated list of tags (empty value is ignored)"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
displayName: "Name",
|
|
260
|
+
name: "name",
|
|
261
|
+
type: "string",
|
|
262
|
+
default: "",
|
|
263
|
+
routing: {
|
|
264
|
+
request: {
|
|
265
|
+
qs: {
|
|
266
|
+
name: "={{ $value }}"
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
displayName: "Project ID",
|
|
273
|
+
name: "projectId",
|
|
274
|
+
type: "string",
|
|
275
|
+
default: "",
|
|
276
|
+
routing: {
|
|
277
|
+
request: {
|
|
278
|
+
qs: {
|
|
279
|
+
projectId: "={{ $value }}"
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
displayName: "Exclude Pinned Data",
|
|
286
|
+
name: "excludePinnedData",
|
|
287
|
+
description: "Whether to exclude pinned data from the response",
|
|
288
|
+
type: "boolean",
|
|
289
|
+
default: false,
|
|
290
|
+
routing: {
|
|
291
|
+
request: {
|
|
292
|
+
qs: {
|
|
293
|
+
excludePinnedData: "={{ $value }}"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
257
297
|
}
|
|
258
298
|
]
|
|
259
299
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../nodes/N8n/WorkflowDescription.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\n\nimport {\n\tgetCursorPaginator,\n\tparseAndSetBodyJson,\n\tprepareWorkflowCreateBody,\n\tprepareWorkflowUpdateBody,\n} from './GenericFunctions';\nimport { workflowIdLocator } from './WorkflowLocator';\n\nexport const workflowOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdefault: 'getAll',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Activate',\n\t\t\t\tvalue: 'activate',\n\t\t\t\taction: 'Activate a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Create',\n\t\t\t\tvalue: 'create',\n\t\t\t\taction: 'Create a workflow',\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: '/workflows',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Deactivate',\n\t\t\t\tvalue: 'deactivate',\n\t\t\t\taction: 'Deactivate a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Delete',\n\t\t\t\tvalue: 'delete',\n\t\t\t\taction: 'Delete a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get',\n\t\t\t\tvalue: 'get',\n\t\t\t\taction: 'Get a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get Many',\n\t\t\t\tvalue: 'getAll',\n\t\t\t\taction: 'Get many workflows',\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\turl: '/workflows',\n\t\t\t\t\t},\n\t\t\t\t\tsend: {\n\t\t\t\t\t\tpaginate: true,\n\t\t\t\t\t},\n\t\t\t\t\toperations: {\n\t\t\t\t\t\tpagination: getCursorPaginator(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Update',\n\t\t\t\tvalue: 'update',\n\t\t\t\taction: 'Update a workflow',\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst activateOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['activate'],\n\t\t\t},\n\t\t},\n\t\t// The routing for resourceLocator-enabled properties currently needs to\n\t\t// happen in the property block where the property itself is defined, or\n\t\t// extractValue won't work when used with $parameter in routing.request.url.\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: '=/workflows/{{ $value }}/activate',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst createOperation: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Workflow Object',\n\t\tname: 'workflowObject',\n\t\ttype: 'json',\n\t\tdefault: '{ \"name\": \"My workflow\", \"nodes\": [], \"connections\": {}, \"settings\": {} }',\n\t\tplaceholder:\n\t\t\t'{\\n \"name\": \"My workflow\",\\n \"nodes\": [],\\n \"connections\": {},\\n \"settings\": {}\\n}',\n\t\trequired: true,\n\t\ttypeOptions: {\n\t\t\talwaysOpenEditWindow: true,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\tsend: {\n\t\t\t\tpreSend: [parseAndSetBodyJson('workflowObject'), prepareWorkflowCreateBody],\n\t\t\t},\n\t\t},\n\t\tdescription:\n\t\t\t\"A valid JSON object with required fields: 'name', 'nodes', 'connections' and 'settings'. More information can be found in the <a href=\\\"https://docs.n8n.io/api/api-reference/#tag/Workflow/paths/~1workflows/post\\\">documentation</a>.\",\n\t},\n];\n\nconst deactivateOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['deactivate'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: '=/workflows/{{ $value }}/deactivate',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst deleteOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['delete'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\turl: '=/workflows/{{ $value }}',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst getAllOperation: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Return All',\n\t\tname: 'returnAll',\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdescription: 'Whether to return all results or only up to a given limit',\n\t},\n\t{\n\t\tdisplayName: 'Limit',\n\t\tname: 'limit',\n\t\ttype: 'number',\n\t\tdefault: 100,\n\t\ttypeOptions: {\n\t\t\tminValue: 1,\n\t\t\tmaxValue: 250,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t\treturnAll: [false],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tqs: {\n\t\t\t\t\tlimit: '={{ $value }}',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tdescription: 'Max number of results to return',\n\t},\n\t{\n\t\tdisplayName: 'Filters',\n\t\tname: 'filters',\n\t\ttype: 'collection',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Return Only Active Workflows',\n\t\t\t\tname: 'activeWorkflows',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: true,\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tqs: {\n\t\t\t\t\t\t\tactive: '={{ $value }}',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Tags',\n\t\t\t\tname: 'tags',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\trouting: {\n\t\t\t\t\t// Only include the 'tags' query parameter if it's non-empty\n\t\t\t\t\tsend: {\n\t\t\t\t\t\ttype: 'query',\n\t\t\t\t\t\tproperty: 'tags',\n\t\t\t\t\t\tvalue: '={{ $value !== \"\" ? $value : undefined }}',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdescription: 'Include only workflows with these tags',\n\t\t\t\thint: 'Comma separated list of tags (empty value is ignored)',\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst getOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['get'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: '=/workflows/{{ $value }}',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst updateOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: '=/workflows/{{ $value }}',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tdisplayName: 'Workflow Object',\n\t\tname: 'workflowObject',\n\t\ttype: 'json',\n\t\tdefault: '',\n\t\tplaceholder:\n\t\t\t'{\\n \"name\": \"My workflow\",\\n \"nodes\": [],\\n \"connections\": {},\\n \"settings\": {}\\n}',\n\t\trequired: true,\n\t\ttypeOptions: {\n\t\t\talwaysOpenEditWindow: true,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\tsend: {\n\t\t\t\tpreSend: [parseAndSetBodyJson('workflowObject'), prepareWorkflowUpdateBody],\n\t\t\t},\n\t\t},\n\t\tdescription:\n\t\t\t\"A valid JSON object with required fields: 'name', 'nodes', 'connections' and 'settings'. More information can be found in the <a href=\\\"https://docs.n8n.io/api/api-reference/#tag/Workflow/paths/~1workflows~1%7Bid%7D/put\\\">documentation</a>.\",\n\t},\n];\n\nexport const workflowFields: INodeProperties[] = [\n\t...activateOperation,\n\t...createOperation,\n\t...deactivateOperation,\n\t...deleteOperation,\n\t...getAllOperation,\n\t...getOperation,\n\t...updateOperation,\n];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../nodes/N8n/WorkflowDescription.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\n\nimport {\n\tgetCursorPaginator,\n\tparseAndSetBodyJson,\n\tprepareWorkflowCreateBody,\n\tprepareWorkflowUpdateBody,\n} from './GenericFunctions';\nimport { workflowIdLocator } from './WorkflowLocator';\n\nexport const workflowOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdefault: 'getAll',\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Activate',\n\t\t\t\tvalue: 'activate',\n\t\t\t\taction: 'Activate a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Create',\n\t\t\t\tvalue: 'create',\n\t\t\t\taction: 'Create a workflow',\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\turl: '/workflows',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Deactivate',\n\t\t\t\tvalue: 'deactivate',\n\t\t\t\taction: 'Deactivate a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Delete',\n\t\t\t\tvalue: 'delete',\n\t\t\t\taction: 'Delete a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get',\n\t\t\t\tvalue: 'get',\n\t\t\t\taction: 'Get a workflow',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get Many',\n\t\t\t\tvalue: 'getAll',\n\t\t\t\taction: 'Get many workflows',\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\turl: '/workflows',\n\t\t\t\t\t},\n\t\t\t\t\tsend: {\n\t\t\t\t\t\tpaginate: true,\n\t\t\t\t\t},\n\t\t\t\t\toperations: {\n\t\t\t\t\t\tpagination: getCursorPaginator(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Update',\n\t\t\t\tvalue: 'update',\n\t\t\t\taction: 'Update a workflow',\n\t\t\t},\n\t\t],\n\t},\n];\n\nconst activateOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['activate'],\n\t\t\t},\n\t\t},\n\t\t// The routing for resourceLocator-enabled properties currently needs to\n\t\t// happen in the property block where the property itself is defined, or\n\t\t// extractValue won't work when used with $parameter in routing.request.url.\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: '=/workflows/{{ $value }}/activate',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst createOperation: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Workflow Object',\n\t\tname: 'workflowObject',\n\t\ttype: 'json',\n\t\tdefault: '{ \"name\": \"My workflow\", \"nodes\": [], \"connections\": {}, \"settings\": {} }',\n\t\tplaceholder:\n\t\t\t'{\\n \"name\": \"My workflow\",\\n \"nodes\": [],\\n \"connections\": {},\\n \"settings\": {}\\n}',\n\t\trequired: true,\n\t\ttypeOptions: {\n\t\t\talwaysOpenEditWindow: true,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\tsend: {\n\t\t\t\tpreSend: [parseAndSetBodyJson('workflowObject'), prepareWorkflowCreateBody],\n\t\t\t},\n\t\t},\n\t\tdescription:\n\t\t\t\"A valid JSON object with required fields: 'name', 'nodes', 'connections' and 'settings'. More information can be found in the <a href=\\\"https://docs.n8n.io/api/api-reference/#tag/Workflow/paths/~1workflows/post\\\">documentation</a>.\",\n\t},\n];\n\nconst deactivateOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['deactivate'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: '=/workflows/{{ $value }}/deactivate',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst deleteOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['delete'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\turl: '=/workflows/{{ $value }}',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst getAllOperation: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Return All',\n\t\tname: 'returnAll',\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdescription: 'Whether to return all results or only up to a given limit',\n\t},\n\t{\n\t\tdisplayName: 'Limit',\n\t\tname: 'limit',\n\t\ttype: 'number',\n\t\tdefault: 100,\n\t\ttypeOptions: {\n\t\t\tminValue: 1,\n\t\t\tmaxValue: 250,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t\treturnAll: [false],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tqs: {\n\t\t\t\t\tlimit: '={{ $value }}',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tdescription: 'Max number of results to return',\n\t},\n\t{\n\t\tdisplayName: 'Filters',\n\t\tname: 'filters',\n\t\ttype: 'collection',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Return Only Active Workflows',\n\t\t\t\tname: 'activeWorkflows',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: true,\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tqs: {\n\t\t\t\t\t\t\tactive: '={{ $value }}',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Tags',\n\t\t\t\tname: 'tags',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\trouting: {\n\t\t\t\t\t// Only include the 'tags' query parameter if it's non-empty\n\t\t\t\t\tsend: {\n\t\t\t\t\t\ttype: 'query',\n\t\t\t\t\t\tproperty: 'tags',\n\t\t\t\t\t\tvalue: '={{ $value !== \"\" ? $value : undefined }}',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tdescription: 'Include only workflows with these tags',\n\t\t\t\thint: 'Comma separated list of tags (empty value is ignored)',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Name',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tqs: {\n\t\t\t\t\t\t\tname: '={{ $value }}',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Project ID',\n\t\t\t\tname: 'projectId',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tqs: {\n\t\t\t\t\t\t\tprojectId: '={{ $value }}',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Exclude Pinned Data',\n\t\t\t\tname: 'excludePinnedData',\n\t\t\t\tdescription: 'Whether to exclude pinned data from the response',\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t\trouting: {\n\t\t\t\t\trequest: {\n\t\t\t\t\t\tqs: {\n\t\t\t\t\t\t\texcludePinnedData: '={{ $value }}',\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\nconst getOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['get'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: '=/workflows/{{ $value }}',\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst updateOperation: INodeProperties[] = [\n\t{\n\t\t...workflowIdLocator,\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\trequest: {\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: '=/workflows/{{ $value }}',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tdisplayName: 'Workflow Object',\n\t\tname: 'workflowObject',\n\t\ttype: 'json',\n\t\tdefault: '',\n\t\tplaceholder:\n\t\t\t'{\\n \"name\": \"My workflow\",\\n \"nodes\": [],\\n \"connections\": {},\\n \"settings\": {}\\n}',\n\t\trequired: true,\n\t\ttypeOptions: {\n\t\t\talwaysOpenEditWindow: true,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['workflow'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\trouting: {\n\t\t\tsend: {\n\t\t\t\tpreSend: [parseAndSetBodyJson('workflowObject'), prepareWorkflowUpdateBody],\n\t\t\t},\n\t\t},\n\t\tdescription:\n\t\t\t\"A valid JSON object with required fields: 'name', 'nodes', 'connections' and 'settings'. More information can be found in the <a href=\\\"https://docs.n8n.io/api/api-reference/#tag/Workflow/paths/~1workflows~1%7Bid%7D/put\\\">documentation</a>.\",\n\t},\n];\n\nexport const workflowFields: INodeProperties[] = [\n\t...activateOperation,\n\t...createOperation,\n\t...deactivateOperation,\n\t...deleteOperation,\n\t...getAllOperation,\n\t...getOperation,\n\t...updateOperation,\n];\n"],"mappings":"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","names":[]}
|