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
@@ -16,14 +16,8 @@
16
16
  "id": {
17
17
  "type": "integer"
18
18
  },
19
- "last_name": {
20
- "type": "string"
21
- },
22
19
  "type": {
23
20
  "type": "string"
24
- },
25
- "username": {
26
- "type": "string"
27
21
  }
28
22
  }
29
23
  },
@@ -76,5 +70,5 @@
76
70
  }
77
71
  }
78
72
  },
79
- "version": 2
73
+ "version": 3
80
74
  }
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var Helpers_exports = {};
20
30
  __export(Helpers_exports, {
@@ -22,7 +32,7 @@ __export(Helpers_exports, {
22
32
  telegramNode: () => telegramNode
23
33
  });
24
34
  module.exports = __toCommonJS(Helpers_exports);
25
- var import_lodash = require("lodash");
35
+ var import_get = __toESM(require("lodash/get"));
26
36
  const telegramNode = {
27
37
  id: "b3039263-29ad-4476-9894-51dfcc5a706d",
28
38
  name: "Telegram node",
@@ -41,7 +51,7 @@ const createMockExecuteFunction = (nodeParameters) => {
41
51
  },
42
52
  getNodeParameter(parameterName, _itemIndex, fallbackValue, options) {
43
53
  const parameter = options?.extractValue ? `${parameterName}.value` : parameterName;
44
- return (0, import_lodash.get)(nodeParameters, parameter, fallbackValue);
54
+ return (0, import_get.default)(nodeParameters, parameter, fallbackValue);
45
55
  },
46
56
  getNode() {
47
57
  return telegramNode;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../nodes/Telegram/tests/Helpers.ts"],"sourcesContent":["import { get } from 'lodash';\nimport type { IDataObject, IExecuteFunctions, IGetNodeParameterOptions, INode } from 'n8n-workflow';\n\nexport const telegramNode: INode = {\n\tid: 'b3039263-29ad-4476-9894-51dfcc5a706d',\n\tname: 'Telegram node',\n\ttypeVersion: 1.2,\n\ttype: 'n8n-nodes-base.telegram',\n\tposition: [0, 0],\n\tparameters: {\n\t\tresource: 'callback',\n\t\toperation: 'answerQuery',\n\t},\n};\n\nexport const createMockExecuteFunction = (nodeParameters: IDataObject) => {\n\tconst fakeExecuteFunction = {\n\t\tgetInputData() {\n\t\t\treturn [{ json: {} }];\n\t\t},\n\t\tgetNodeParameter(\n\t\t\tparameterName: string,\n\t\t\t_itemIndex: number,\n\t\t\tfallbackValue?: IDataObject | undefined,\n\t\t\toptions?: IGetNodeParameterOptions | undefined,\n\t\t) {\n\t\t\tconst parameter = options?.extractValue ? `${parameterName}.value` : parameterName;\n\t\t\treturn get(nodeParameters, parameter, fallbackValue);\n\t\t},\n\t\tgetNode() {\n\t\t\treturn telegramNode;\n\t\t},\n\t\thelpers: {},\n\t\tcontinueOnFail: () => false,\n\t} as unknown as IExecuteFunctions;\n\treturn fakeExecuteFunction;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAoB;AAGb,MAAM,eAAsB;AAAA,EAClC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU,CAAC,GAAG,CAAC;AAAA,EACf,YAAY;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACZ;AACD;AAEO,MAAM,4BAA4B,CAAC,mBAAgC;AACzE,QAAM,sBAAsB;AAAA,IAC3B,eAAe;AACd,aAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;AAAA,IACrB;AAAA,IACA,iBACC,eACA,YACA,eACA,SACC;AACD,YAAM,YAAY,SAAS,eAAe,GAAG,aAAa,WAAW;AACrE,iBAAO,mBAAI,gBAAgB,WAAW,aAAa;AAAA,IACpD;AAAA,IACA,UAAU;AACT,aAAO;AAAA,IACR;AAAA,IACA,SAAS,CAAC;AAAA,IACV,gBAAgB,MAAM;AAAA,EACvB;AACA,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../../../nodes/Telegram/tests/Helpers.ts"],"sourcesContent":["import get from 'lodash/get';\nimport type { IDataObject, IExecuteFunctions, IGetNodeParameterOptions, INode } from 'n8n-workflow';\n\nexport const telegramNode: INode = {\n\tid: 'b3039263-29ad-4476-9894-51dfcc5a706d',\n\tname: 'Telegram node',\n\ttypeVersion: 1.2,\n\ttype: 'n8n-nodes-base.telegram',\n\tposition: [0, 0],\n\tparameters: {\n\t\tresource: 'callback',\n\t\toperation: 'answerQuery',\n\t},\n};\n\nexport const createMockExecuteFunction = (nodeParameters: IDataObject) => {\n\tconst fakeExecuteFunction = {\n\t\tgetInputData() {\n\t\t\treturn [{ json: {} }];\n\t\t},\n\t\tgetNodeParameter(\n\t\t\tparameterName: string,\n\t\t\t_itemIndex: number,\n\t\t\tfallbackValue?: IDataObject | undefined,\n\t\t\toptions?: IGetNodeParameterOptions | undefined,\n\t\t) {\n\t\t\tconst parameter = options?.extractValue ? `${parameterName}.value` : parameterName;\n\t\t\treturn get(nodeParameters, parameter, fallbackValue);\n\t\t},\n\t\tgetNode() {\n\t\t\treturn telegramNode;\n\t\t},\n\t\thelpers: {},\n\t\tcontinueOnFail: () => false,\n\t} as unknown as IExecuteFunctions;\n\treturn fakeExecuteFunction;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgB;AAGT,MAAM,eAAsB;AAAA,EAClC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU,CAAC,GAAG,CAAC;AAAA,EACf,YAAY;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACZ;AACD;AAEO,MAAM,4BAA4B,CAAC,mBAAgC;AACzE,QAAM,sBAAsB;AAAA,IAC3B,eAAe;AACd,aAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;AAAA,IACrB;AAAA,IACA,iBACC,eACA,YACA,eACA,SACC;AACD,YAAM,YAAY,SAAS,eAAe,GAAG,aAAa,WAAW;AACrE,iBAAO,WAAAA,SAAI,gBAAgB,WAAW,aAAa;AAAA,IACpD;AAAA,IACA,UAAU;AACT,aAAO;AAAA,IACR;AAAA,IACA,SAAS,CAAC;AAAA,IACV,gBAAgB,MAAM;AAAA,EACvB;AACA,SAAO;AACR;","names":["get"]}
@@ -32,8 +32,10 @@ __export(utils_exports, {
32
32
  validateInputData: () => validateInputData
33
33
  });
34
34
  module.exports = __toCommonJS(utils_exports);
35
- var import_lodash = require("lodash");
36
35
  var import_get = __toESM(require("lodash/get"));
36
+ var import_isEqual = __toESM(require("lodash/isEqual"));
37
+ var import_lt = __toESM(require("lodash/lt"));
38
+ var import_pick = __toESM(require("lodash/pick"));
37
39
  var import_n8n_workflow = require("n8n-workflow");
38
40
  var import_utilities = require("../../../utils/utilities");
39
41
  var import_utils = require("../utils/utils");
@@ -128,16 +130,16 @@ function removeDuplicateInputItems(context, items) {
128
130
  for (const key of keys) {
129
131
  let equal;
130
132
  if (!disableDotNotation) {
131
- equal = (0, import_lodash.isEqual)((0, import_get.default)(a.json, key), (0, import_get.default)(b.json, key));
133
+ equal = (0, import_isEqual.default)((0, import_get.default)(a.json, key), (0, import_get.default)(b.json, key));
132
134
  } else {
133
- equal = (0, import_lodash.isEqual)(a.json[key], b.json[key]);
135
+ equal = (0, import_isEqual.default)(a.json[key], b.json[key]);
134
136
  }
135
137
  if (!equal) {
136
138
  let lessThan;
137
139
  if (!disableDotNotation) {
138
- lessThan = (0, import_lodash.lt)((0, import_get.default)(a.json, key), (0, import_get.default)(b.json, key));
140
+ lessThan = (0, import_lt.default)((0, import_get.default)(a.json, key), (0, import_get.default)(b.json, key));
139
141
  } else {
140
- lessThan = (0, import_lodash.lt)(a.json[key], b.json[key]);
142
+ lessThan = (0, import_lt.default)(a.json[key], b.json[key]);
141
143
  }
142
144
  result = lessThan ? -1 : 1;
143
145
  break;
@@ -160,7 +162,7 @@ function removeDuplicateInputItems(context, items) {
160
162
  );
161
163
  if (removeOtherFields) {
162
164
  updatedItems = updatedItems.map((item, index) => ({
163
- json: (0, import_lodash.pick)(item.json, ...keys),
165
+ json: (0, import_pick.default)(item.json, ...keys),
164
166
  pairedItem: { item: index }
165
167
  }));
166
168
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../nodes/Transform/RemoveDuplicates/utils.ts"],"sourcesContent":["import { isEqual, lt, pick } from 'lodash';\nimport get from 'lodash/get';\nimport { NodeOperationError } from 'n8n-workflow';\nimport type { IExecuteFunctions, INode, INodeExecutionData } from 'n8n-workflow';\n\nimport { compareItems, flattenKeys } from '@utils/utilities';\n\nimport { prepareFieldsArray } from '../utils/utils';\n\nexport const validateInputData = (\n\tnode: INode,\n\titems: INodeExecutionData[],\n\tkeysToCompare: string[],\n\tdisableDotNotation: boolean,\n) => {\n\tfor (const key of keysToCompare) {\n\t\tlet type: any = undefined;\n\t\tfor (const [i, item] of items.entries()) {\n\t\t\tif (key === '') {\n\t\t\t\tthrow new NodeOperationError(node, 'Name of field to compare is blank');\n\t\t\t}\n\t\t\tconst value = !disableDotNotation ? get(item.json, key) : item.json[key];\n\t\t\tif (value === null && node.typeVersion > 1) continue;\n\n\t\t\tif (value === undefined && disableDotNotation && key.includes('.')) {\n\t\t\t\tthrow new NodeOperationError(node, `'${key}' field is missing from some input items`, {\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"If you're trying to use a nested field, make sure you turn off 'disable dot notation' in the node options\",\n\t\t\t\t});\n\t\t\t} else if (value === undefined) {\n\t\t\t\tthrow new NodeOperationError(node, `'${key}' field is missing from some input items`);\n\t\t\t}\n\t\t\tif (type !== undefined && value !== undefined && type !== typeof value) {\n\t\t\t\tconst description =\n\t\t\t\t\t'The type of this field varies between items' +\n\t\t\t\t\t(node.typeVersion > 1\n\t\t\t\t\t\t? `, in item [${i - 1}] it's a ${type} and in item [${i}] it's a ${typeof value} `\n\t\t\t\t\t\t: '');\n\t\t\t\tthrow new NodeOperationError(node, `'${key}' isn't always the same type`, {\n\t\t\t\t\tdescription,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttype = typeof value;\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport function removeDuplicateInputItems(context: IExecuteFunctions, items: INodeExecutionData[]) {\n\tconst compare = context.getNodeParameter('compare', 0) as string;\n\tconst disableDotNotation = context.getNodeParameter(\n\t\t'options.disableDotNotation',\n\t\t0,\n\t\tfalse,\n\t) as boolean;\n\tconst removeOtherFields = context.getNodeParameter(\n\t\t'options.removeOtherFields',\n\t\t0,\n\t\tfalse,\n\t) as boolean;\n\n\tlet keys = disableDotNotation\n\t\t? Object.keys(items[0].json)\n\t\t: Object.keys(flattenKeys(items[0].json));\n\n\tfor (const item of items) {\n\t\tconst itemKeys = disableDotNotation\n\t\t\t? Object.keys(item.json)\n\t\t\t: Object.keys(flattenKeys(item.json));\n\t\tfor (const key of itemKeys) {\n\t\t\tif (!keys.includes(key)) {\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (compare === 'allFieldsExcept') {\n\t\tconst fieldsToExclude = prepareFieldsArray(\n\t\t\tcontext.getNodeParameter('fieldsToExclude', 0, '') as string,\n\t\t\t'Fields To Exclude',\n\t\t);\n\n\t\tif (!fieldsToExclude.length) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tcontext.getNode(),\n\t\t\t\t'No fields specified. Please add a field to exclude from comparison',\n\t\t\t);\n\t\t}\n\t\tif (!disableDotNotation) {\n\t\t\tkeys = Object.keys(flattenKeys(items[0].json));\n\t\t}\n\t\tkeys = keys.filter((key) => !fieldsToExclude.includes(key));\n\t}\n\tif (compare === 'selectedFields') {\n\t\tconst fieldsToCompare = prepareFieldsArray(\n\t\t\tcontext.getNodeParameter('fieldsToCompare', 0, '') as string,\n\t\t\t'Fields To Compare',\n\t\t);\n\t\tif (!fieldsToCompare.length) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tcontext.getNode(),\n\t\t\t\t'No fields specified. Please add a field to compare on',\n\t\t\t);\n\t\t}\n\t\tif (!disableDotNotation) {\n\t\t\tkeys = Object.keys(flattenKeys(items[0].json));\n\t\t}\n\t\tkeys = fieldsToCompare.map((key) => key.trim());\n\t}\n\n\t// This solution is O(nlogn)\n\t// add original index to the items\n\tconst newItems = items.map(\n\t\t(item, index) =>\n\t\t\t({\n\t\t\t\tjson: { ...item.json, __INDEX: index },\n\t\t\t\tpairedItem: { item: index },\n\t\t\t}) as INodeExecutionData,\n\t);\n\t//sort items using the compare keys\n\tnewItems.sort((a, b) => {\n\t\tlet result = 0;\n\n\t\tfor (const key of keys) {\n\t\t\tlet equal;\n\t\t\tif (!disableDotNotation) {\n\t\t\t\tequal = isEqual(get(a.json, key), get(b.json, key));\n\t\t\t} else {\n\t\t\t\tequal = isEqual(a.json[key], b.json[key]);\n\t\t\t}\n\t\t\tif (!equal) {\n\t\t\t\tlet lessThan;\n\t\t\t\tif (!disableDotNotation) {\n\t\t\t\t\tlessThan = lt(get(a.json, key), get(b.json, key));\n\t\t\t\t} else {\n\t\t\t\t\tlessThan = lt(a.json[key], b.json[key]);\n\t\t\t\t}\n\t\t\t\tresult = lessThan ? -1 : 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t});\n\n\tvalidateInputData(context.getNode(), newItems, keys, disableDotNotation);\n\n\t// collect the original indexes of items to be removed\n\tconst removedIndexes: number[] = [];\n\tlet temp = newItems[0];\n\tfor (let index = 1; index < newItems.length; index++) {\n\t\tif (compareItems(newItems[index], temp, keys, disableDotNotation)) {\n\t\t\tremovedIndexes.push(newItems[index].json.__INDEX as unknown as number);\n\t\t} else {\n\t\t\ttemp = newItems[index];\n\t\t}\n\t}\n\tlet updatedItems: INodeExecutionData[] = items.filter(\n\t\t(_, index) => !removedIndexes.includes(index),\n\t);\n\n\tif (removeOtherFields) {\n\t\tupdatedItems = updatedItems.map((item, index) => ({\n\t\t\tjson: pick(item.json, ...keys),\n\t\t\tpairedItem: { item: index },\n\t\t}));\n\t}\n\treturn [updatedItems];\n}\n"],"mappings":"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","names":["get"]}
1
+ {"version":3,"sources":["../../../../nodes/Transform/RemoveDuplicates/utils.ts"],"sourcesContent":["import get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport lt from 'lodash/lt';\nimport pick from 'lodash/pick';\nimport { NodeOperationError } from 'n8n-workflow';\nimport type { IExecuteFunctions, INode, INodeExecutionData } from 'n8n-workflow';\n\nimport { compareItems, flattenKeys } from '@utils/utilities';\n\nimport { prepareFieldsArray } from '../utils/utils';\n\nexport const validateInputData = (\n\tnode: INode,\n\titems: INodeExecutionData[],\n\tkeysToCompare: string[],\n\tdisableDotNotation: boolean,\n) => {\n\tfor (const key of keysToCompare) {\n\t\tlet type: any = undefined;\n\t\tfor (const [i, item] of items.entries()) {\n\t\t\tif (key === '') {\n\t\t\t\tthrow new NodeOperationError(node, 'Name of field to compare is blank');\n\t\t\t}\n\t\t\tconst value = !disableDotNotation ? get(item.json, key) : item.json[key];\n\t\t\tif (value === null && node.typeVersion > 1) continue;\n\n\t\t\tif (value === undefined && disableDotNotation && key.includes('.')) {\n\t\t\t\tthrow new NodeOperationError(node, `'${key}' field is missing from some input items`, {\n\t\t\t\t\tdescription:\n\t\t\t\t\t\t\"If you're trying to use a nested field, make sure you turn off 'disable dot notation' in the node options\",\n\t\t\t\t});\n\t\t\t} else if (value === undefined) {\n\t\t\t\tthrow new NodeOperationError(node, `'${key}' field is missing from some input items`);\n\t\t\t}\n\t\t\tif (type !== undefined && value !== undefined && type !== typeof value) {\n\t\t\t\tconst description =\n\t\t\t\t\t'The type of this field varies between items' +\n\t\t\t\t\t(node.typeVersion > 1\n\t\t\t\t\t\t? `, in item [${i - 1}] it's a ${type} and in item [${i}] it's a ${typeof value} `\n\t\t\t\t\t\t: '');\n\t\t\t\tthrow new NodeOperationError(node, `'${key}' isn't always the same type`, {\n\t\t\t\t\tdescription,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttype = typeof value;\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport function removeDuplicateInputItems(context: IExecuteFunctions, items: INodeExecutionData[]) {\n\tconst compare = context.getNodeParameter('compare', 0) as string;\n\tconst disableDotNotation = context.getNodeParameter(\n\t\t'options.disableDotNotation',\n\t\t0,\n\t\tfalse,\n\t) as boolean;\n\tconst removeOtherFields = context.getNodeParameter(\n\t\t'options.removeOtherFields',\n\t\t0,\n\t\tfalse,\n\t) as boolean;\n\n\tlet keys = disableDotNotation\n\t\t? Object.keys(items[0].json)\n\t\t: Object.keys(flattenKeys(items[0].json));\n\n\tfor (const item of items) {\n\t\tconst itemKeys = disableDotNotation\n\t\t\t? Object.keys(item.json)\n\t\t\t: Object.keys(flattenKeys(item.json));\n\t\tfor (const key of itemKeys) {\n\t\t\tif (!keys.includes(key)) {\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (compare === 'allFieldsExcept') {\n\t\tconst fieldsToExclude = prepareFieldsArray(\n\t\t\tcontext.getNodeParameter('fieldsToExclude', 0, '') as string,\n\t\t\t'Fields To Exclude',\n\t\t);\n\n\t\tif (!fieldsToExclude.length) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tcontext.getNode(),\n\t\t\t\t'No fields specified. Please add a field to exclude from comparison',\n\t\t\t);\n\t\t}\n\t\tif (!disableDotNotation) {\n\t\t\tkeys = Object.keys(flattenKeys(items[0].json));\n\t\t}\n\t\tkeys = keys.filter((key) => !fieldsToExclude.includes(key));\n\t}\n\tif (compare === 'selectedFields') {\n\t\tconst fieldsToCompare = prepareFieldsArray(\n\t\t\tcontext.getNodeParameter('fieldsToCompare', 0, '') as string,\n\t\t\t'Fields To Compare',\n\t\t);\n\t\tif (!fieldsToCompare.length) {\n\t\t\tthrow new NodeOperationError(\n\t\t\t\tcontext.getNode(),\n\t\t\t\t'No fields specified. Please add a field to compare on',\n\t\t\t);\n\t\t}\n\t\tif (!disableDotNotation) {\n\t\t\tkeys = Object.keys(flattenKeys(items[0].json));\n\t\t}\n\t\tkeys = fieldsToCompare.map((key) => key.trim());\n\t}\n\n\t// This solution is O(nlogn)\n\t// add original index to the items\n\tconst newItems = items.map(\n\t\t(item, index) =>\n\t\t\t({\n\t\t\t\tjson: { ...item.json, __INDEX: index },\n\t\t\t\tpairedItem: { item: index },\n\t\t\t}) as INodeExecutionData,\n\t);\n\t//sort items using the compare keys\n\tnewItems.sort((a, b) => {\n\t\tlet result = 0;\n\n\t\tfor (const key of keys) {\n\t\t\tlet equal;\n\t\t\tif (!disableDotNotation) {\n\t\t\t\tequal = isEqual(get(a.json, key), get(b.json, key));\n\t\t\t} else {\n\t\t\t\tequal = isEqual(a.json[key], b.json[key]);\n\t\t\t}\n\t\t\tif (!equal) {\n\t\t\t\tlet lessThan;\n\t\t\t\tif (!disableDotNotation) {\n\t\t\t\t\tlessThan = lt(get(a.json, key), get(b.json, key));\n\t\t\t\t} else {\n\t\t\t\t\tlessThan = lt(a.json[key], b.json[key]);\n\t\t\t\t}\n\t\t\t\tresult = lessThan ? -1 : 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t});\n\n\tvalidateInputData(context.getNode(), newItems, keys, disableDotNotation);\n\n\t// collect the original indexes of items to be removed\n\tconst removedIndexes: number[] = [];\n\tlet temp = newItems[0];\n\tfor (let index = 1; index < newItems.length; index++) {\n\t\tif (compareItems(newItems[index], temp, keys, disableDotNotation)) {\n\t\t\tremovedIndexes.push(newItems[index].json.__INDEX as unknown as number);\n\t\t} else {\n\t\t\ttemp = newItems[index];\n\t\t}\n\t}\n\tlet updatedItems: INodeExecutionData[] = items.filter(\n\t\t(_, index) => !removedIndexes.includes(index),\n\t);\n\n\tif (removeOtherFields) {\n\t\tupdatedItems = updatedItems.map((item, index) => ({\n\t\t\tjson: pick(item.json, ...keys),\n\t\t\tpairedItem: { item: index },\n\t\t}));\n\t}\n\treturn [updatedItems];\n}\n"],"mappings":"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","names":["get","isEqual","lt","pick"]}
@@ -4,9 +4,6 @@
4
4
  "closed": {
5
5
  "type": "boolean"
6
6
  },
7
- "color": {
8
- "type": "null"
9
- },
10
7
  "datasource": {
11
8
  "type": "object",
12
9
  "properties": {
@@ -34,5 +31,5 @@
34
31
  "type": "null"
35
32
  }
36
33
  },
37
- "version": 3
34
+ "version": 4
38
35
  }
@@ -64,9 +64,6 @@
64
64
  }
65
65
  }
66
66
  },
67
- "cardRole": {
68
- "type": "null"
69
- },
70
67
  "checkItemStates": {
71
68
  "type": "array",
72
69
  "items": {
@@ -203,5 +200,5 @@
203
200
  "type": "string"
204
201
  }
205
202
  },
206
- "version": 3
203
+ "version": 4
207
204
  }
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "type": "object",
3
3
  "properties": {
4
+ "author_id": {
5
+ "type": "string"
6
+ },
7
+ "conversation_id": {
8
+ "type": "string"
9
+ },
4
10
  "edit_history_tweet_ids": {
5
11
  "type": "array",
6
12
  "items": {
@@ -14,5 +20,5 @@
14
20
  "type": "string"
15
21
  }
16
22
  },
17
- "version": 2
23
+ "version": 3
18
24
  }
@@ -174,12 +174,6 @@
174
174
  "type": "integer"
175
175
  }
176
176
  },
177
- "class_list": {
178
- "type": "array",
179
- "items": {
180
- "type": "string"
181
- }
182
- },
183
177
  "comment_status": {
184
178
  "type": "string"
185
179
  },
@@ -278,5 +272,5 @@
278
272
  "type": "string"
279
273
  }
280
274
  },
281
- "version": 2
275
+ "version": 3
282
276
  }
@@ -155,10 +155,7 @@
155
155
  }
156
156
  }
157
157
  }
158
- },
159
- "Vendor_Name": {
160
- "type": "null"
161
158
  }
162
159
  },
163
- "version": 3
160
+ "version": 4
164
161
  }
@@ -1,6 +1,87 @@
1
1
  {
2
2
  "type": "object",
3
3
  "properties": {
4
+ "$approval": {
5
+ "type": "object",
6
+ "properties": {
7
+ "approve": {
8
+ "type": "boolean"
9
+ },
10
+ "delegate": {
11
+ "type": "boolean"
12
+ },
13
+ "reject": {
14
+ "type": "boolean"
15
+ },
16
+ "resubmit": {
17
+ "type": "boolean"
18
+ },
19
+ "takeover": {
20
+ "type": "boolean"
21
+ }
22
+ }
23
+ },
24
+ "$approval_state": {
25
+ "type": "string"
26
+ },
27
+ "$approved": {
28
+ "type": "boolean"
29
+ },
30
+ "$converted": {
31
+ "type": "boolean"
32
+ },
33
+ "$currency_symbol": {
34
+ "type": "string"
35
+ },
36
+ "$editable": {
37
+ "type": "boolean"
38
+ },
39
+ "$field_states": {
40
+ "type": "null"
41
+ },
42
+ "$in_merge": {
43
+ "type": "boolean"
44
+ },
45
+ "$layout_id": {
46
+ "type": "object",
47
+ "properties": {
48
+ "id": {
49
+ "type": "string"
50
+ },
51
+ "name": {
52
+ "type": "string"
53
+ }
54
+ }
55
+ },
56
+ "$locked_for_me": {
57
+ "type": "boolean"
58
+ },
59
+ "$process_flow": {
60
+ "type": "boolean"
61
+ },
62
+ "$review": {
63
+ "type": "null"
64
+ },
65
+ "$review_process": {
66
+ "type": "object",
67
+ "properties": {
68
+ "approve": {
69
+ "type": "boolean"
70
+ },
71
+ "reject": {
72
+ "type": "boolean"
73
+ },
74
+ "resubmit": {
75
+ "type": "boolean"
76
+ }
77
+ }
78
+ },
79
+ "$state": {
80
+ "type": "string"
81
+ },
82
+ "Created_Time": {
83
+ "type": "string"
84
+ },
4
85
  "Full_Name": {
5
86
  "type": "string"
6
87
  },
@@ -10,6 +91,9 @@
10
91
  "Last_Name": {
11
92
  "type": "string"
12
93
  },
94
+ "Locked__s": {
95
+ "type": "boolean"
96
+ },
13
97
  "Owner": {
14
98
  "type": "object",
15
99
  "properties": {
@@ -23,7 +107,21 @@
23
107
  "type": "string"
24
108
  }
25
109
  }
110
+ },
111
+ "Tag": {
112
+ "type": "array",
113
+ "items": {
114
+ "type": "object",
115
+ "properties": {
116
+ "id": {
117
+ "type": "string"
118
+ },
119
+ "name": {
120
+ "type": "string"
121
+ }
122
+ }
123
+ }
26
124
  }
27
125
  },
28
- "version": 2
126
+ "version": 3
29
127
  }
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,18 +17,26 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var Helpers_exports = {};
20
30
  __export(Helpers_exports, {
21
31
  createMockExecuteFunction: () => createMockExecuteFunction
22
32
  });
23
33
  module.exports = __toCommonJS(Helpers_exports);
24
- var import_lodash = require("lodash");
34
+ var import_get = __toESM(require("lodash/get"));
25
35
  var import_n8n_core = require("n8n-core");
26
36
  const createMockExecuteFunction = (nodeParameters, nodeMock, continueBool = false) => ({
27
37
  getNodeParameter(parameterName, _itemIndex, fallbackValue, options) {
28
38
  const parameter = options?.extractValue ? `${parameterName}.value` : parameterName;
29
- return (0, import_lodash.get)(nodeParameters, parameter, fallbackValue);
39
+ return (0, import_get.default)(nodeParameters, parameter, fallbackValue);
30
40
  },
31
41
  getNode() {
32
42
  return nodeMock;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../test/nodes/Helpers.ts"],"sourcesContent":["import { get } from 'lodash';\nimport { constructExecutionMetaData } from 'n8n-core';\nimport type { IDataObject, IExecuteFunctions, IGetNodeParameterOptions, INode } from 'n8n-workflow';\n\nexport const createMockExecuteFunction = <T = IExecuteFunctions>(\n\tnodeParameters: IDataObject,\n\tnodeMock: INode,\n\tcontinueBool = false,\n) =>\n\t({\n\t\tgetNodeParameter(\n\t\t\tparameterName: string,\n\t\t\t_itemIndex: number,\n\t\t\tfallbackValue?: IDataObject | undefined,\n\t\t\toptions?: IGetNodeParameterOptions | undefined,\n\t\t) {\n\t\t\tconst parameter = options?.extractValue ? `${parameterName}.value` : parameterName;\n\t\t\treturn get(nodeParameters, parameter, fallbackValue);\n\t\t},\n\t\tgetNode() {\n\t\t\treturn nodeMock;\n\t\t},\n\t\tcontinueOnFail() {\n\t\t\treturn continueBool;\n\t\t},\n\t\thelpers: {\n\t\t\tconstructExecutionMetaData,\n\t\t},\n\t}) as unknown as T;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAoB;AACpB,sBAA2C;AAGpC,MAAM,4BAA4B,CACxC,gBACA,UACA,eAAe,WAEd;AAAA,EACA,iBACC,eACA,YACA,eACA,SACC;AACD,UAAM,YAAY,SAAS,eAAe,GAAG,aAAa,WAAW;AACrE,eAAO,mBAAI,gBAAgB,WAAW,aAAa;AAAA,EACpD;AAAA,EACA,UAAU;AACT,WAAO;AAAA,EACR;AAAA,EACA,iBAAiB;AAChB,WAAO;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACR;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../test/nodes/Helpers.ts"],"sourcesContent":["import get from 'lodash/get';\nimport { constructExecutionMetaData } from 'n8n-core';\nimport type { IDataObject, IExecuteFunctions, IGetNodeParameterOptions, INode } from 'n8n-workflow';\n\nexport const createMockExecuteFunction = <T = IExecuteFunctions>(\n\tnodeParameters: IDataObject,\n\tnodeMock: INode,\n\tcontinueBool = false,\n) =>\n\t({\n\t\tgetNodeParameter(\n\t\t\tparameterName: string,\n\t\t\t_itemIndex: number,\n\t\t\tfallbackValue?: IDataObject | undefined,\n\t\t\toptions?: IGetNodeParameterOptions | undefined,\n\t\t) {\n\t\t\tconst parameter = options?.extractValue ? `${parameterName}.value` : parameterName;\n\t\t\treturn get(nodeParameters, parameter, fallbackValue);\n\t\t},\n\t\tgetNode() {\n\t\t\treturn nodeMock;\n\t\t},\n\t\tcontinueOnFail() {\n\t\t\treturn continueBool;\n\t\t},\n\t\thelpers: {\n\t\t\tconstructExecutionMetaData,\n\t\t},\n\t}) as unknown as T;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAgB;AAChB,sBAA2C;AAGpC,MAAM,4BAA4B,CACxC,gBACA,UACA,eAAe,WAEd;AAAA,EACA,iBACC,eACA,YACA,eACA,SACC;AACD,UAAM,YAAY,SAAS,eAAe,GAAG,aAAa,WAAW;AACrE,eAAO,WAAAA,SAAI,gBAAgB,WAAW,aAAa;AAAA,EACpD;AAAA,EACA,UAAU;AACT,WAAO;AAAA,EACR;AAAA,EACA,iBAAiB;AAChB,WAAO;AAAA,EACR;AAAA,EACA,SAAS;AAAA,IACR;AAAA,EACD;AACD;","names":["get"]}
@@ -256,7 +256,7 @@
256
256
  {"name":"pagerDutyOAuth2Api","extends":["oAuth2Api"],"displayName":"PagerDuty OAuth2 API","documentationUrl":"pagerDuty","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://app.pagerduty.com/oauth/authorize"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://app.pagerduty.com/oauth/token"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":""},{"displayName":"Scope","name":"scope","type":"hidden","default":"write"},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"header"}],"supportedNodes":["pagerDuty"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/PagerDuty/pagerDuty.svg"},
257
257
  {"name":"payPalApi","displayName":"PayPal API","documentationUrl":"payPal","properties":[{"displayName":"Client ID","name":"clientId","type":"string","default":""},{"displayName":"Secret","name":"secret","type":"string","typeOptions":{"password":true},"default":""},{"displayName":"Environment","name":"env","type":"options","default":"live","options":[{"name":"Sandbox","value":"sanbox"},{"name":"Live","value":"live"}]}],"supportedNodes":["payPal","payPalTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/PayPal/paypal.svg"},
258
258
  {"name":"peekalinkApi","displayName":"Peekalink API","documentationUrl":"peekalink","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"supportedNodes":["peekalink"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Peekalink/peekalink.png"},
259
- {"name":"perplexityApi","displayName":"Perplexity API","documentationUrl":"https://docs.perplexity.ai","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"required":true,"default":"","description":"Your Perplexity API key. Get it from your Perplexity account."}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"https://api.perplexity.ai","url":"/chat/completions","method":"POST","body":{"model":"r1-1776","messages":[{"role":"user","content":"test"}]},"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}","Content-Type":"application/json"},"json":true}},"supportedNodes":["perplexity"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Perplexity/perplexity.svg","dark":"icons/n8n-nodes-base/dist/nodes/Perplexity/perplexity.dark.svg"}},
259
+ {"name":"perplexityApi","displayName":"Perplexity API","documentationUrl":"perplexity","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"required":true,"default":"","description":"Your Perplexity API key. Get it from your Perplexity account."}],"authenticate":{"type":"generic","properties":{"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"https://api.perplexity.ai","url":"/chat/completions","method":"POST","body":{"model":"r1-1776","messages":[{"role":"user","content":"test"}]},"headers":{"Authorization":"=Bearer {{$credentials.apiKey}}","Content-Type":"application/json"},"json":true}},"supportedNodes":["perplexity"],"iconUrl":{"light":"icons/n8n-nodes-base/dist/nodes/Perplexity/perplexity.svg","dark":"icons/n8n-nodes-base/dist/nodes/Perplexity/perplexity.dark.svg"}},
260
260
  {"name":"phantombusterApi","displayName":"Phantombuster API","documentationUrl":"phantombuster","properties":[{"displayName":"API Key","name":"apiKey","type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"headers":{"X-Phantombuster-Key":"={{$credentials.apiKey}}"}}},"test":{"request":{"baseURL":"https://api.phantombuster.com/api/v2","url":"/agents/fetch-all"}},"supportedNodes":["phantombuster"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Phantombuster/phantombuster.png"},
261
261
  {"name":"philipsHueOAuth2Api","extends":["oAuth2Api"],"displayName":"PhilipHue OAuth2 API","documentationUrl":"philipsHue","properties":[{"displayName":"Grant Type","name":"grantType","type":"hidden","default":"authorizationCode"},{"displayName":"APP ID","name":"appId","type":"string","default":""},{"displayName":"Authorization URL","name":"authUrl","type":"hidden","default":"https://api.meethue.com/v2/oauth2/authorize"},{"displayName":"Access Token URL","name":"accessTokenUrl","type":"hidden","default":"https://api.meethue.com/v2/oauth2/token"},{"displayName":"Auth URI Query Parameters","name":"authQueryParameters","type":"hidden","default":"={{\"appid=\"+$self[\"appId\"]}}"},{"displayName":"Scope","name":"scope","type":"hidden","default":""},{"displayName":"Authentication","name":"authentication","type":"hidden","default":"header"}],"supportedNodes":["philipsHue"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/PhilipsHue/philipshue.png"},
262
262
  {"name":"pipedriveApi","displayName":"Pipedrive API","documentationUrl":"pipedrive","properties":[{"displayName":"API Token","name":"apiToken","type":"string","typeOptions":{"password":true},"default":""}],"authenticate":{"type":"generic","properties":{"qs":{"api_token":"={{$credentials.apiToken}}"}}},"supportedNodes":["pipedrive","pipedriveTrigger"],"iconUrl":"icons/n8n-nodes-base/dist/nodes/Pipedrive/pipedrive.svg"},