n8n-nodes-base 1.95.1 → 1.96.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.
Files changed (131) hide show
  1. package/dist/credentials/PerplexityApi.credentials.js +1 -1
  2. package/dist/credentials/PerplexityApi.credentials.js.map +1 -1
  3. package/dist/nodes/Adalo/__schema__/v1.0.0/collection/getAll.json +21 -0
  4. package/dist/nodes/Airtable/test/v2/node/helpers.js +12 -2
  5. package/dist/nodes/Airtable/test/v2/node/helpers.js.map +1 -1
  6. package/dist/nodes/Airtop/__schema__/v1.0.0/extraction/query.json +7 -1
  7. package/dist/nodes/Airtop/__schema__/v1.0.0/session/create.json +9 -0
  8. package/dist/nodes/Airtop/__schema__/v1.0.0/window/create.json +40 -0
  9. package/dist/nodes/Airtop/test/node/helpers.js +12 -2
  10. package/dist/nodes/Airtop/test/node/helpers.js.map +1 -1
  11. package/dist/nodes/Asana/__schema__/v1.0.0/subtask/getAll.json +4 -1
  12. package/dist/nodes/Aws/S3/__schema__/v2.0.0/file/getAll.json +7 -1
  13. package/dist/nodes/Aws/S3/__schema__/v2.0.0/folder/getAll.json +7 -1
  14. package/dist/nodes/BambooHr/__schema__/v1.0.0/employee/getAll.json +1 -4
  15. package/dist/nodes/ClickUp/__schema__/v1.0.0/list/customFields.json +23 -1
  16. package/dist/nodes/Code/Pyodide.js +24 -0
  17. package/dist/nodes/Code/Pyodide.js.map +1 -1
  18. package/dist/nodes/CompareDatasets/GenericFunctions.js +5 -5
  19. package/dist/nodes/CompareDatasets/GenericFunctions.js.map +1 -1
  20. package/dist/nodes/Discord/__schema__/v2.0.0/message/sendAndWait.json +14 -0
  21. package/dist/nodes/Discord/v2/helpers/utils.js +2 -2
  22. package/dist/nodes/Discord/v2/helpers/utils.js.map +1 -1
  23. package/dist/nodes/Dropbox/__schema__/v1.0.0/file/download.json +31 -1
  24. package/dist/nodes/Dropcontact/__schema__/v1.0.0/contact/enrich.json +15 -1
  25. package/dist/nodes/Dropcontact/__schema__/v1.0.0/contact/fetchRequest.json +50 -0
  26. package/dist/nodes/EmailReadImap/v2/utils.js +16 -3
  27. package/dist/nodes/EmailReadImap/v2/utils.js.map +1 -1
  28. package/dist/nodes/EmailSend/__schema__/v2.1.0/email/send.json +1 -7
  29. package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +1 -1
  30. package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -1
  31. package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js +2 -2
  32. package/dist/nodes/ExecuteWorkflow/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js.map +1 -1
  33. package/dist/nodes/Freshservice/GenericFunctions.js +12 -2
  34. package/dist/nodes/Freshservice/GenericFunctions.js.map +1 -1
  35. package/dist/nodes/Google/Ads/__schema__/v1.0.0/campaign/getAll.json +13 -1
  36. package/dist/nodes/Google/Analytics/__schema__/v2.0.0/report/get.json +1 -4
  37. package/dist/nodes/Google/Calendar/__schema__/v1.3.0/event/getAll.json +1 -4
  38. package/dist/nodes/Google/Chat/__schema__/v1.0.0/message/create.json +30 -1
  39. package/dist/nodes/Google/Drive/__schema__/v3.0.0/file/upload.json +4 -1
  40. package/dist/nodes/Google/Drive/test/v2/node/helpers.js +12 -2
  41. package/dist/nodes/Google/Drive/test/v2/node/helpers.js.map +1 -1
  42. package/dist/nodes/Google/Firebase/CloudFirestore/__schema__/v1.1.0/document/query.json +1 -7
  43. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/addLabels.json +13 -1
  44. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/get.json +1 -7
  45. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/message/markAsRead.json +13 -1
  46. package/dist/nodes/Google/Gmail/__schema__/v2.1.0/thread/addLabels.json +16 -1
  47. package/dist/nodes/Google/Sheet/v2/actions/sheet/update.operation.js +10 -4
  48. package/dist/nodes/Google/Sheet/v2/actions/sheet/update.operation.js.map +1 -1
  49. package/dist/nodes/HaloPSA/__schema__/v1.0.0/ticket/getAll.json +1 -268
  50. package/dist/nodes/HttpRequest/shared/optimizeResponse.js +5 -3
  51. package/dist/nodes/HttpRequest/shared/optimizeResponse.js.map +1 -1
  52. package/dist/nodes/Hubspot/__schema__/v2.1.0/company/getAll.json +1 -4
  53. package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/getAll.json +64 -1
  54. package/dist/nodes/Hubspot/__schema__/v2.1.0/deal/search.json +1 -4
  55. package/dist/nodes/Hubspot/__schema__/v2.1.0/ticket/get.json +1 -61
  56. package/dist/nodes/JinaAI/__schema__/v1.0.0/reader/read.json +26 -0
  57. package/dist/nodes/Jira/__schema__/v1.0.0/issue/get.json +604 -7
  58. package/dist/nodes/Jira/__schema__/v1.0.0/issue/getAll.json +1 -110
  59. package/dist/nodes/Lemlist/__schema__/v2.0.0/lead/create.json +1 -4
  60. package/dist/nodes/Lemlist/__schema__/v2.0.0/lead/get.json +30 -0
  61. package/dist/nodes/Line/__schema__/v1.0.0/notification/send.json +4 -7
  62. package/dist/nodes/Linear/__schema__/v1.0.0/issue/getAll.json +12 -1
  63. package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js +23 -3
  64. package/dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js.map +1 -1
  65. package/dist/nodes/Microsoft/Entra/__schema__/v1.0.0/user/getAll.json +1 -7
  66. package/dist/nodes/Microsoft/Entra/descriptions/GroupDescription.js +12 -2
  67. package/dist/nodes/Microsoft/Entra/descriptions/GroupDescription.js.map +1 -1
  68. package/dist/nodes/Microsoft/Entra/descriptions/UserDescription.js +13 -3
  69. package/dist/nodes/Microsoft/Entra/descriptions/UserDescription.js.map +1 -1
  70. package/dist/nodes/Microsoft/OneDrive/__schema__/v1.0.0/file/download.json +23 -10
  71. package/dist/nodes/Microsoft/OneDrive/__schema__/v1.0.0/folder/create.json +1 -15
  72. package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/event/getAll.json +1 -4
  73. package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/folderMessage/getAll.json +124 -1
  74. package/dist/nodes/Microsoft/Outlook/__schema__/v2.0.0/message/getAll.json +1 -56
  75. package/dist/nodes/Microsoft/Sql/MicrosoftSql.node.js +12 -2
  76. package/dist/nodes/Microsoft/Sql/MicrosoftSql.node.js.map +1 -1
  77. package/dist/nodes/Microsoft/Storage/__schema__/v1.0.0/blob/create.json +39 -0
  78. package/dist/nodes/Microsoft/Storage/__schema__/v1.0.0/blob/get.json +44 -0
  79. package/dist/nodes/Microsoft/ToDo/__schema__/v1.0.0/task/getAll.json +5 -21
  80. package/dist/nodes/N8n/WorkflowDescription.js +40 -0
  81. package/dist/nodes/N8n/WorkflowDescription.js.map +1 -1
  82. package/dist/nodes/Nasa/__schema__/v1.0.0/donkiSolarFlare/get.json +1 -4
  83. package/dist/nodes/Notion/__schema__/v2.2.0/database/get.json +2 -149
  84. package/dist/nodes/Odoo/__schema__/v1.0.0/contact/get.json +1 -4
  85. package/dist/nodes/Odoo/__schema__/v1.0.0/contact/getAll.json +1 -10
  86. package/dist/nodes/Odoo/__schema__/v1.0.0/opportunity/getAll.json +1 -40
  87. package/dist/nodes/OpenAi/__schema__/v1.1.0/chat/complete.json +29 -1
  88. package/dist/nodes/Pipedrive/__schema__/v1.0.0/person/search.json +7 -1
  89. package/dist/nodes/QuickBase/__schema__/v1.0.0/record/getAll.json +9 -0
  90. package/dist/nodes/QuickBooks/__schema__/v1.0.0/transaction/getReport.json +4 -1
  91. package/dist/nodes/RssFeedRead/RssFeedRead.node.js +9 -3
  92. package/dist/nodes/RssFeedRead/RssFeedRead.node.js.map +1 -1
  93. package/dist/nodes/S3/__schema__/v1.0.0/file/download.json +21 -0
  94. package/dist/nodes/Salesforce/__schema__/v1.0.0/customObject/getAll.json +1 -4
  95. package/dist/nodes/Salesforce/__schema__/v1.0.0/lead/getAll.json +1 -4
  96. package/dist/nodes/Salesforce/__schema__/v1.0.0/opportunity/getAll.json +1 -4
  97. package/dist/nodes/Salesforce/__schema__/v1.0.0/search/query.json +1 -4
  98. package/dist/nodes/Shopify/__schema__/v1.0.0/order/getAll.json +250 -3
  99. package/dist/nodes/Slack/__schema__/v2.3.0/channel/history.json +1 -50
  100. package/dist/nodes/Slack/__schema__/v2.3.0/channel/member.json +168 -2
  101. package/dist/nodes/Slack/__schema__/v2.3.0/message/post.json +1 -4
  102. package/dist/nodes/Sms77/__schema__/v1.0.0/sms/send.json +1 -10
  103. package/dist/nodes/Strapi/__schema__/v1.0.0/entry/getAll.json +10 -1
  104. package/dist/nodes/Telegram/__schema__/v1.2.0/chat/member.json +1 -4
  105. package/dist/nodes/Telegram/__schema__/v1.2.0/message/editMessageText.json +4 -1
  106. package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendAndWait.json +14 -0
  107. package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendMessage.json +4 -21
  108. package/dist/nodes/Telegram/__schema__/v1.2.0/message/sendPhoto.json +1 -7
  109. package/dist/nodes/Telegram/tests/Helpers.js +12 -2
  110. package/dist/nodes/Telegram/tests/Helpers.js.map +1 -1
  111. package/dist/nodes/Transform/RemoveDuplicates/utils.js +8 -6
  112. package/dist/nodes/Transform/RemoveDuplicates/utils.js.map +1 -1
  113. package/dist/nodes/Trello/__schema__/v1.0.0/list/getAll.json +1 -4
  114. package/dist/nodes/Trello/__schema__/v1.0.0/list/getCards.json +1 -4
  115. package/dist/nodes/Twitter/__schema__/v2.0.0/tweet/search.json +7 -1
  116. package/dist/nodes/Wordpress/__schema__/v1.0.0/post/get.json +1 -7
  117. package/dist/nodes/Zoho/__schema__/v1.0.0/contact/getAll.json +1 -4
  118. package/dist/nodes/Zoho/__schema__/v1.0.0/lead/getAll.json +99 -1
  119. package/dist/test/nodes/Helpers.js +12 -2
  120. package/dist/test/nodes/Helpers.js.map +1 -1
  121. package/dist/types/credentials.json +1 -1
  122. package/dist/types/nodes.json +13 -13
  123. package/dist/utils/binary.js +12 -9
  124. package/dist/utils/binary.js.map +1 -1
  125. package/dist/utils/sendAndWait/utils.js +20 -5
  126. package/dist/utils/sendAndWait/utils.js.map +1 -1
  127. package/dist/utils/utilities.js +31 -16
  128. package/dist/utils/utilities.js.map +1 -1
  129. package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js +2 -2
  130. package/dist/utils/workflowInputsResourceMapping/GenericFunctions.js.map +1 -1
  131. package/package.json +8 -8
@@ -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": 3
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": 3
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
- "completedDateTime": {
19
- "type": "object",
20
- "properties": {
21
- "dateTime": {
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": 2
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":[]}
@@ -1,9 +1,6 @@
1
1
  {
2
2
  "type": "object",
3
3
  "properties": {
4
- "activeRegionNum": {
5
- "type": "integer"
6
- },
7
4
  "beginTime": {
8
5
  "type": "string"
9
6
  },
@@ -49,5 +46,5 @@
49
46
  "type": "integer"
50
47
  }
51
48
  },
52
- "version": 2
49
+ "version": 3
53
50
  }