n8n-nodes-base 0.212.1 → 0.213.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 (144) hide show
  1. package/dist/nodes/ActiveCampaign/ActiveCampaign.node.js +1 -1
  2. package/dist/nodes/ActiveCampaign/ActiveCampaign.node.js.map +1 -1
  3. package/dist/nodes/Code/test/Code.node.test.d.ts +1 -0
  4. package/dist/nodes/Code/test/Code.node.test.js +6 -0
  5. package/dist/nodes/Code/test/Code.node.test.js.map +1 -0
  6. package/dist/nodes/Code/test/Code.workflow.json +116 -0
  7. package/dist/nodes/CompareDatasets/test/node/CompareDatasets.test.d.ts +1 -0
  8. package/dist/nodes/CompareDatasets/test/node/CompareDatasets.test.js +6 -0
  9. package/dist/nodes/CompareDatasets/test/node/CompareDatasets.test.js.map +1 -0
  10. package/dist/nodes/CompareDatasets/test/node/workflow.compareDatasets.fuzzy.json +1054 -0
  11. package/dist/nodes/CompareDatasets/test/node/workflow.compareDatasets.json +879 -0
  12. package/dist/nodes/Compression/test/node/Compression.test.d.ts +1 -0
  13. package/dist/nodes/Compression/test/node/Compression.test.js +67 -0
  14. package/dist/nodes/Compression/test/node/Compression.test.js.map +1 -0
  15. package/dist/nodes/Compression/test/node/workflow.compression.json +87 -0
  16. package/dist/nodes/Crypto/test/Crypto.test.d.ts +1 -0
  17. package/dist/nodes/Crypto/test/Crypto.test.js +6 -0
  18. package/dist/nodes/Crypto/test/Crypto.test.js.map +1 -0
  19. package/dist/nodes/Crypto/test/CryptoTest.workflow.json +238 -0
  20. package/dist/nodes/DateTime/test/node/DateTime.test.d.ts +1 -0
  21. package/dist/nodes/DateTime/test/node/DateTime.test.js +15 -0
  22. package/dist/nodes/DateTime/test/node/DateTime.test.js.map +1 -0
  23. package/dist/nodes/DateTime/test/node/DateTimeWorklfow.test.json +331 -0
  24. package/dist/nodes/EditImage/EditImage.node.js +4 -0
  25. package/dist/nodes/EditImage/EditImage.node.js.map +1 -1
  26. package/dist/nodes/ExecuteCommand/test/ExecuteCommand.node.test.d.ts +1 -0
  27. package/dist/nodes/ExecuteCommand/test/ExecuteCommand.node.test.js +6 -0
  28. package/dist/nodes/ExecuteCommand/test/ExecuteCommand.node.test.js.map +1 -0
  29. package/dist/nodes/ExecuteCommand/test/workflow.json +142 -0
  30. package/dist/nodes/Google/Sheet/v2/actions/sheet/commonDescription.js +8 -8
  31. package/dist/nodes/Google/Sheet/v2/actions/sheet/commonDescription.js.map +1 -1
  32. package/dist/nodes/HttpRequest/test/node/HttpRequest.test.d.ts +1 -0
  33. package/dist/nodes/HttpRequest/test/node/HttpRequest.test.js +114 -0
  34. package/dist/nodes/HttpRequest/test/node/HttpRequest.test.js.map +1 -0
  35. package/dist/nodes/HttpRequest/test/node/workflow.delete.json +60 -0
  36. package/dist/nodes/HttpRequest/test/node/workflow.get.json +144 -0
  37. package/dist/nodes/HttpRequest/test/node/workflow.patch.json +73 -0
  38. package/dist/nodes/HttpRequest/test/node/workflow.post.json +105 -0
  39. package/dist/nodes/HttpRequest/test/node/workflow.put.json +73 -0
  40. package/dist/nodes/Hubspot/HubspotTrigger.node.js +25 -0
  41. package/dist/nodes/Hubspot/HubspotTrigger.node.js.map +1 -1
  42. package/dist/nodes/ICalendar/test/node/ICalendar.test.d.ts +1 -0
  43. package/dist/nodes/ICalendar/test/node/ICalendar.test.js +54 -0
  44. package/dist/nodes/ICalendar/test/node/ICalendar.test.js.map +1 -0
  45. package/dist/nodes/ICalendar/test/node/workflow.iCalendar.json +59 -0
  46. package/dist/nodes/If/test/IF.boolean.json +306 -0
  47. package/dist/nodes/If/test/IF.date-time.json +221 -0
  48. package/dist/nodes/If/test/IF.number.json +616 -0
  49. package/dist/nodes/If/test/IF.string.json +976 -0
  50. package/dist/nodes/If/test/If.node.test.d.ts +1 -0
  51. package/dist/nodes/If/test/If.node.test.js +6 -0
  52. package/dist/nodes/If/test/If.node.test.js.map +1 -0
  53. package/dist/nodes/ItemLists/test/node/ItemLists.test.d.ts +1 -0
  54. package/dist/nodes/ItemLists/test/node/ItemLists.test.js +6 -0
  55. package/dist/nodes/ItemLists/test/node/ItemLists.test.js.map +1 -0
  56. package/dist/nodes/ItemLists/test/node/workflow.aggregateItems.json +223 -0
  57. package/dist/nodes/ItemLists/test/node/workflow.limit.json +97 -0
  58. package/dist/nodes/ItemLists/test/node/workflow.removeDuplicates.json +177 -0
  59. package/dist/nodes/ItemLists/test/node/workflow.sort.json +216 -0
  60. package/dist/nodes/ItemLists/test/node/workflow.splitOutItems.json +360 -0
  61. package/dist/nodes/ItemLists/test/node/workflow.summarize.json +299 -0
  62. package/dist/nodes/Linear/Linear.node.js +26 -0
  63. package/dist/nodes/Linear/Linear.node.js.map +1 -1
  64. package/dist/nodes/Linear/Queries.d.ts +1 -0
  65. package/dist/nodes/Linear/Queries.js +13 -4
  66. package/dist/nodes/Linear/Queries.js.map +1 -1
  67. package/dist/nodes/Markdown/test/node/Markdown.test.d.ts +1 -0
  68. package/dist/nodes/Markdown/test/node/Markdown.test.js +6 -0
  69. package/dist/nodes/Markdown/test/node/Markdown.test.js.map +1 -0
  70. package/dist/nodes/Markdown/test/node/workflow.markdown.json +181 -0
  71. package/dist/nodes/Merge/test/node/Merge.test.d.ts +1 -0
  72. package/dist/nodes/Merge/test/node/Merge.test.js +6 -0
  73. package/dist/nodes/Merge/test/node/Merge.test.js.map +1 -0
  74. package/dist/nodes/Merge/test/node/workflow.append.json +123 -0
  75. package/dist/nodes/Merge/test/node/workflow.chooseBranch.json +174 -0
  76. package/dist/nodes/Merge/test/node/workflow.combine.mergeByFields.json +486 -0
  77. package/dist/nodes/Merge/test/node/workflow.combine.mergeByPosition.json +219 -0
  78. package/dist/nodes/Merge/test/node/workflow.combine.multiplex.json +259 -0
  79. package/dist/nodes/MoveBinaryData/test/MoveBinaryData.test.d.ts +1 -0
  80. package/dist/nodes/MoveBinaryData/test/MoveBinaryData.test.js +146 -0
  81. package/dist/nodes/MoveBinaryData/test/MoveBinaryData.test.js.map +1 -0
  82. package/dist/nodes/MoveBinaryData/test/MoveBinaryData.workflow.json +171 -0
  83. package/dist/nodes/MoveBinaryData/test/data/sample.json +5 -0
  84. package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.test.d.ts +1 -0
  85. package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.test.js +79 -0
  86. package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.test.js.map +1 -0
  87. package/dist/nodes/ReadBinaryFile/test/ReadBinaryFile.workflow.json +51 -0
  88. package/dist/nodes/ReadPdf/test/ReadPDF.test.d.ts +1 -0
  89. package/dist/nodes/ReadPdf/test/ReadPDF.test.js +79 -0
  90. package/dist/nodes/ReadPdf/test/ReadPDF.test.js.map +1 -0
  91. package/dist/nodes/ReadPdf/test/ReadPDF.workflow.json +64 -0
  92. package/dist/nodes/RenameKeys/test/RenameKeys.test.d.ts +1 -0
  93. package/dist/nodes/RenameKeys/test/RenameKeys.test.js +6 -0
  94. package/dist/nodes/RenameKeys/test/RenameKeys.test.js.map +1 -0
  95. package/dist/nodes/RenameKeys/test/RenameKeys.workflow.json +302 -0
  96. package/dist/nodes/RssFeedRead/test/node/RssFeedRead.test.d.ts +1 -0
  97. package/dist/nodes/RssFeedRead/test/node/RssFeedRead.test.js +24 -0
  98. package/dist/nodes/RssFeedRead/test/node/RssFeedRead.test.js.map +1 -0
  99. package/dist/nodes/RssFeedRead/test/node/workflow.rss.json +87 -0
  100. package/dist/nodes/Set/test/Set.node.test.d.ts +1 -0
  101. package/dist/nodes/Set/test/Set.node.test.js +6 -0
  102. package/dist/nodes/Set/test/Set.node.test.js.map +1 -0
  103. package/dist/nodes/Set/test/Set.workflow.json +320 -0
  104. package/dist/nodes/SplitInBatches/test/SplitInBatches.node.test.d.ts +1 -0
  105. package/dist/nodes/SplitInBatches/test/SplitInBatches.node.test.js +6 -0
  106. package/dist/nodes/SplitInBatches/test/SplitInBatches.node.test.js.map +1 -0
  107. package/dist/nodes/SplitInBatches/test/SplitInBatches.workflow.json +178 -0
  108. package/dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js +1 -1
  109. package/dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js.map +1 -1
  110. package/dist/nodes/SpreadsheetFile/SpreadsheetFile.node.json +1 -1
  111. package/dist/nodes/SpreadsheetFile/test/SpreadsheetFile.test.d.ts +1 -0
  112. package/dist/nodes/SpreadsheetFile/test/SpreadsheetFile.test.js +183 -0
  113. package/dist/nodes/SpreadsheetFile/test/SpreadsheetFile.test.js.map +1 -0
  114. package/dist/nodes/SpreadsheetFile/test/workflow.json +253 -0
  115. package/dist/nodes/StopAndError/test/node/StopAndError.test.d.ts +1 -0
  116. package/dist/nodes/StopAndError/test/node/StopAndError.test.js +111 -0
  117. package/dist/nodes/StopAndError/test/node/StopAndError.test.js.map +1 -0
  118. package/dist/nodes/Switch/test/switch.expression.workflow.json +225 -0
  119. package/dist/nodes/Switch/test/switch.node.test.d.ts +1 -0
  120. package/dist/nodes/Switch/test/switch.node.test.js +6 -0
  121. package/dist/nodes/Switch/test/switch.node.test.js.map +1 -0
  122. package/dist/nodes/Switch/test/switch.rules.workflow.json +242 -0
  123. package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.test.d.ts +1 -0
  124. package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.test.js +85 -0
  125. package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.test.js.map +1 -0
  126. package/dist/nodes/WriteBinaryFile/test/WriteBinaryFile.workflow.json +76 -0
  127. package/dist/nodes/Xml/Xml.node.js.map +1 -1
  128. package/dist/nodes/Xml/test/node/Xml.test.d.ts +1 -0
  129. package/dist/nodes/Xml/test/node/Xml.test.js +6 -0
  130. package/dist/nodes/Xml/test/node/Xml.test.js.map +1 -0
  131. package/dist/nodes/Xml/test/node/workflow.xml.json +148 -0
  132. package/dist/test/nodes/ExecuteWorkflow.d.ts +7 -0
  133. package/dist/test/nodes/ExecuteWorkflow.js +48 -0
  134. package/dist/test/nodes/ExecuteWorkflow.js.map +1 -0
  135. package/dist/test/nodes/Helpers.d.ts +32 -0
  136. package/dist/test/nodes/Helpers.js +234 -0
  137. package/dist/test/nodes/Helpers.js.map +1 -0
  138. package/dist/test/nodes/types.d.ts +16 -0
  139. package/dist/test/nodes/types.js +3 -0
  140. package/dist/test/nodes/types.js.map +1 -0
  141. package/dist/tsconfig.tsbuildinfo +1 -1
  142. package/dist/types/credentials.json +4 -4
  143. package/dist/types/nodes.json +346 -346
  144. package/package.json +7 -7
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Helpers_1 = require("../../../../test/nodes/Helpers");
4
+ const workflows = (0, Helpers_1.getWorkflowFilenames)(__dirname);
5
+ describe('Test XML Node', () => (0, Helpers_1.testWorkflows)(workflows));
6
+ //# sourceMappingURL=Xml.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Xml.test.js","sourceRoot":"","sources":["../../../../../nodes/Xml/test/node/Xml.test.ts"],"names":[],"mappings":";;AAAA,4DAAqF;AAErF,MAAM,SAAS,GAAG,IAAA,8BAAoB,EAAC,SAAS,CAAC,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAC,CAAC"}
@@ -0,0 +1,148 @@
1
+ {
2
+ "name": "xml tests",
3
+ "nodes": [
4
+ {
5
+ "parameters": {},
6
+ "id": "745d1191-f221-4eda-9d09-611233f97edd",
7
+ "name": "When clicking \"Execute Workflow\"",
8
+ "type": "n8n-nodes-base.manualTrigger",
9
+ "typeVersion": 1,
10
+ "position": [460, 520]
11
+ },
12
+ {
13
+ "parameters": {
14
+ "mode": "jsonToxml",
15
+ "options": {}
16
+ },
17
+ "id": "fb48ca4c-5ae2-4c57-9ca9-2080d06dbf65",
18
+ "name": "XML",
19
+ "type": "n8n-nodes-base.xml",
20
+ "typeVersion": 1,
21
+ "position": [960, 280]
22
+ },
23
+ {
24
+ "parameters": {
25
+ "jsCode": "return {\n data: {\n id: 1,\n firstName: 'Adam',\n secondName: 'Smith',\n fullName: 'Adam Smith',\n }\n}"
26
+ },
27
+ "id": "6a04ca32-c9cc-4cb1-a6b9-3a505b1c2dd5",
28
+ "name": "Code",
29
+ "type": "n8n-nodes-base.code",
30
+ "typeVersion": 1,
31
+ "position": [700, 400]
32
+ },
33
+ {
34
+ "parameters": {
35
+ "mode": "jsonToxml",
36
+ "options": {
37
+ "headless": true
38
+ }
39
+ },
40
+ "id": "cd740e65-5117-4bec-a3b3-6863ba25f232",
41
+ "name": "XML1",
42
+ "type": "n8n-nodes-base.xml",
43
+ "typeVersion": 1,
44
+ "position": [960, 500]
45
+ },
46
+ {
47
+ "parameters": {
48
+ "jsCode": "return {\n\"data\":\n'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> <data> <id>1</id> <firstName>Adam</firstName> <secondName>Smith</secondName> <fullName>Adam Smith</fullName> </data>'\n}"
49
+ },
50
+ "id": "817afbf7-9342-403f-8dc0-c4a3905fde4d",
51
+ "name": "Code1",
52
+ "type": "n8n-nodes-base.code",
53
+ "typeVersion": 1,
54
+ "position": [680, 640]
55
+ },
56
+ {
57
+ "parameters": {
58
+ "options": {}
59
+ },
60
+ "id": "f0f37a8f-9136-42e8-be34-f32b77e4aa88",
61
+ "name": "XML2",
62
+ "type": "n8n-nodes-base.xml",
63
+ "typeVersion": 1,
64
+ "position": [940, 700]
65
+ }
66
+ ],
67
+ "pinData": {
68
+ "XML": [
69
+ {
70
+ "json": {
71
+ "data": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<data>\n <id>1</id>\n <firstName>Adam</firstName>\n <secondName>Smith</secondName>\n <fullName>Adam Smith</fullName>\n</data>"
72
+ }
73
+ }
74
+ ],
75
+ "XML1": [
76
+ {
77
+ "json": {
78
+ "data": "<data>\n <id>1</id>\n <firstName>Adam</firstName>\n <secondName>Smith</secondName>\n <fullName>Adam Smith</fullName>\n</data>"
79
+ }
80
+ }
81
+ ],
82
+ "XML2": [
83
+ {
84
+ "json": {
85
+ "data": {
86
+ "id": "1",
87
+ "firstName": "Adam",
88
+ "secondName": "Smith",
89
+ "fullName": "Adam Smith"
90
+ }
91
+ }
92
+ }
93
+ ]
94
+ },
95
+ "connections": {
96
+ "When clicking \"Execute Workflow\"": {
97
+ "main": [
98
+ [
99
+ {
100
+ "node": "Code",
101
+ "type": "main",
102
+ "index": 0
103
+ },
104
+ {
105
+ "node": "Code1",
106
+ "type": "main",
107
+ "index": 0
108
+ }
109
+ ]
110
+ ]
111
+ },
112
+ "Code": {
113
+ "main": [
114
+ [
115
+ {
116
+ "node": "XML",
117
+ "type": "main",
118
+ "index": 0
119
+ },
120
+ {
121
+ "node": "XML1",
122
+ "type": "main",
123
+ "index": 0
124
+ }
125
+ ]
126
+ ]
127
+ },
128
+ "Code1": {
129
+ "main": [
130
+ [
131
+ {
132
+ "node": "XML2",
133
+ "type": "main",
134
+ "index": 0
135
+ }
136
+ ]
137
+ ]
138
+ }
139
+ },
140
+ "active": false,
141
+ "settings": {},
142
+ "versionId": "c1fde9d5-f27c-4e62-bc5c-8be787dcc227",
143
+ "id": "109",
144
+ "meta": {
145
+ "instanceId": "36203ea1ce3cef713fa25999bd9874ae26b9e4c2c3a90a365f2882a154d031d0"
146
+ },
147
+ "tags": []
148
+ }
@@ -0,0 +1,7 @@
1
+ import { INodeTypes, IRun } from 'n8n-workflow';
2
+ import type { WorkflowTestData } from './types';
3
+ export declare function executeWorkflow(testData: WorkflowTestData, nodeTypes: INodeTypes): Promise<{
4
+ executionData: IRun;
5
+ result: IRun;
6
+ nodeExecutionOrder: string[];
7
+ }>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.executeWorkflow = void 0;
27
+ const n8n_core_1 = require("n8n-core");
28
+ const n8n_workflow_1 = require("n8n-workflow");
29
+ const Helpers = __importStar(require("./Helpers"));
30
+ async function executeWorkflow(testData, nodeTypes) {
31
+ const executionMode = 'manual';
32
+ const workflowInstance = new n8n_workflow_1.Workflow({
33
+ id: 'test',
34
+ nodes: testData.input.workflowData.nodes,
35
+ connections: testData.input.workflowData.connections,
36
+ active: false,
37
+ nodeTypes,
38
+ });
39
+ const waitPromise = await (0, n8n_workflow_1.createDeferredPromise)();
40
+ const nodeExecutionOrder = [];
41
+ const additionalData = Helpers.WorkflowExecuteAdditionalData(waitPromise, nodeExecutionOrder);
42
+ const workflowExecute = new n8n_core_1.WorkflowExecute(additionalData, executionMode);
43
+ const executionData = await workflowExecute.run(workflowInstance);
44
+ const result = await waitPromise.promise();
45
+ return { executionData, result, nodeExecutionOrder };
46
+ }
47
+ exports.executeWorkflow = executeWorkflow;
48
+ //# sourceMappingURL=ExecuteWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecuteWorkflow.js","sourceRoot":"","sources":["../../../test/nodes/ExecuteWorkflow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA2C;AAC3C,+CAAiF;AACjF,mDAAqC;AAG9B,KAAK,UAAU,eAAe,CAAC,QAA0B,EAAE,SAAqB;IACtF,MAAM,aAAa,GAAG,QAAQ,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,uBAAQ,CAAC;QACrC,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK;QACxC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW;QACpD,MAAM,EAAE,KAAK;QACb,SAAS;KACT,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,IAAA,oCAAqB,GAAQ,CAAC;IACxD,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,6BAA6B,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAE9F,MAAM,eAAe,GAAG,IAAI,0BAAe,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAE3E,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AACtD,CAAC;AAnBD,0CAmBC"}
@@ -0,0 +1,32 @@
1
+ import { Credentials } from 'n8n-core';
2
+ import { ICredentialDataDecryptedObject, ICredentialsHelper, IDeferredPromise, IHttpRequestHelper, IHttpRequestOptions, INode, INodeCredentialsDetails, INodeType, INodeTypeData, INodeTypes, IRun, IVersionedNodeType, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
3
+ import { WorkflowTestData } from './types';
4
+ export declare class CredentialsHelper extends ICredentialsHelper {
5
+ authenticate(credentials: ICredentialDataDecryptedObject, typeName: string, requestParams: IHttpRequestOptions): Promise<IHttpRequestOptions>;
6
+ preAuthentication(helpers: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject, typeName: string, node: INode, credentialsExpired: boolean): Promise<ICredentialDataDecryptedObject | undefined>;
7
+ getParentTypes(name: string): string[];
8
+ getDecrypted(nodeCredentials: INodeCredentialsDetails, type: string): Promise<ICredentialDataDecryptedObject>;
9
+ getCredentials(nodeCredentials: INodeCredentialsDetails, type: string): Promise<Credentials>;
10
+ updateCredentials(nodeCredentials: INodeCredentialsDetails, type: string, data: ICredentialDataDecryptedObject): Promise<void>;
11
+ }
12
+ export declare function WorkflowExecuteAdditionalData(waitPromise: IDeferredPromise<IRun>, nodeExecutionOrder: string[]): IWorkflowExecuteAdditionalData;
13
+ declare class NodeTypesClass implements INodeTypes {
14
+ nodeTypes: INodeTypeData;
15
+ getByName(nodeType: string): INodeType | IVersionedNodeType;
16
+ addNode(nodeTypeName: string, nodeType: INodeType | IVersionedNodeType): void;
17
+ getByNameAndVersion(nodeType: string, version?: number): INodeType;
18
+ }
19
+ export declare function NodeTypes(): NodeTypesClass;
20
+ export declare function createTemporaryDir(prefix?: string): string;
21
+ export declare function initBinaryDataManager(mode?: 'default' | 'filesystem'): Promise<string>;
22
+ export declare function setup(testData: Array<WorkflowTestData> | WorkflowTestData): NodeTypesClass;
23
+ export declare function getResultNodeData(result: IRun, testData: WorkflowTestData): {
24
+ nodeName: string;
25
+ resultData: (import("n8n-workflow").INodeExecutionData[] | null)[];
26
+ }[];
27
+ export declare function readJsonFileSync(path: string): any;
28
+ export declare const equalityTest: (testData: WorkflowTestData, types: INodeTypes) => Promise<void>;
29
+ export declare const workflowToTests: (workflowFiles: string[]) => WorkflowTestData[];
30
+ export declare const testWorkflows: (workflows: string[]) => void;
31
+ export declare const getWorkflowFilenames: (dirname: string) => string[];
32
+ export {};
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getWorkflowFilenames = exports.testWorkflows = exports.workflowToTests = exports.equalityTest = exports.readJsonFileSync = exports.getResultNodeData = exports.setup = exports.initBinaryDataManager = exports.createTemporaryDir = exports.NodeTypes = exports.WorkflowExecuteAdditionalData = exports.CredentialsHelper = void 0;
7
+ const fs_1 = require("fs");
8
+ const n8n_core_1 = require("n8n-core");
9
+ const n8n_workflow_1 = require("n8n-workflow");
10
+ const ExecuteWorkflow_1 = require("./ExecuteWorkflow");
11
+ const path_1 = __importDefault(require("path"));
12
+ const os_1 = require("os");
13
+ const lodash_1 = require("lodash");
14
+ class CredentialsHelper extends n8n_workflow_1.ICredentialsHelper {
15
+ async authenticate(credentials, typeName, requestParams) {
16
+ return requestParams;
17
+ }
18
+ async preAuthentication(helpers, credentials, typeName, node, credentialsExpired) {
19
+ return undefined;
20
+ }
21
+ getParentTypes(name) {
22
+ return [];
23
+ }
24
+ async getDecrypted(nodeCredentials, type) {
25
+ return {};
26
+ }
27
+ async getCredentials(nodeCredentials, type) {
28
+ return new n8n_core_1.Credentials({ id: null, name: '' }, '', [], '');
29
+ }
30
+ async updateCredentials(nodeCredentials, type, data) { }
31
+ }
32
+ exports.CredentialsHelper = CredentialsHelper;
33
+ function WorkflowExecuteAdditionalData(waitPromise, nodeExecutionOrder) {
34
+ const hookFunctions = {
35
+ nodeExecuteAfter: [
36
+ async (nodeName, data) => {
37
+ nodeExecutionOrder.push(nodeName);
38
+ },
39
+ ],
40
+ workflowExecuteAfter: [
41
+ async (fullRunData) => {
42
+ waitPromise.resolve(fullRunData);
43
+ },
44
+ ],
45
+ };
46
+ const workflowData = {
47
+ name: '',
48
+ createdAt: new Date(),
49
+ updatedAt: new Date(),
50
+ active: true,
51
+ nodes: [],
52
+ connections: {},
53
+ };
54
+ return {
55
+ credentialsHelper: new CredentialsHelper(''),
56
+ hooks: new n8n_workflow_1.WorkflowHooks(hookFunctions, 'trigger', '1', workflowData),
57
+ executeWorkflow: async (workflowInfo) => { },
58
+ sendMessageToUI: (message) => { },
59
+ restApiUrl: '',
60
+ encryptionKey: 'test',
61
+ timezone: 'America/New_York',
62
+ webhookBaseUrl: 'webhook',
63
+ webhookWaitingBaseUrl: 'webhook-waiting',
64
+ webhookTestBaseUrl: 'webhook-test',
65
+ userId: '123',
66
+ };
67
+ }
68
+ exports.WorkflowExecuteAdditionalData = WorkflowExecuteAdditionalData;
69
+ class NodeTypesClass {
70
+ constructor() {
71
+ this.nodeTypes = {};
72
+ }
73
+ getByName(nodeType) {
74
+ return this.nodeTypes[nodeType].type;
75
+ }
76
+ addNode(nodeTypeName, nodeType) {
77
+ const loadedNode = {
78
+ [nodeTypeName]: {
79
+ sourcePath: '',
80
+ type: nodeType,
81
+ },
82
+ };
83
+ this.nodeTypes = {
84
+ ...this.nodeTypes,
85
+ ...loadedNode,
86
+ };
87
+ }
88
+ getByNameAndVersion(nodeType, version) {
89
+ return n8n_workflow_1.NodeHelpers.getVersionedNodeType(this.nodeTypes[nodeType].type, version);
90
+ }
91
+ }
92
+ let nodeTypesInstance;
93
+ function NodeTypes() {
94
+ if (nodeTypesInstance === undefined) {
95
+ nodeTypesInstance = new NodeTypesClass();
96
+ }
97
+ return nodeTypesInstance;
98
+ }
99
+ exports.NodeTypes = NodeTypes;
100
+ let knownNodes = null;
101
+ const loadKnownNodes = () => {
102
+ if (knownNodes === null) {
103
+ knownNodes = JSON.parse((0, fs_1.readFileSync)('dist/known/nodes.json').toString());
104
+ }
105
+ return knownNodes;
106
+ };
107
+ function createTemporaryDir(prefix = 'n8n') {
108
+ return (0, fs_1.mkdtempSync)(path_1.default.join((0, os_1.tmpdir)(), prefix));
109
+ }
110
+ exports.createTemporaryDir = createTemporaryDir;
111
+ async function initBinaryDataManager(mode = 'default') {
112
+ const temporaryDir = createTemporaryDir();
113
+ await n8n_core_1.BinaryDataManager.init({
114
+ mode,
115
+ availableModes: mode,
116
+ localStoragePath: temporaryDir,
117
+ binaryDataTTL: 1,
118
+ persistedBinaryDataTTL: 1,
119
+ });
120
+ return temporaryDir;
121
+ }
122
+ exports.initBinaryDataManager = initBinaryDataManager;
123
+ function setup(testData) {
124
+ if (!Array.isArray(testData)) {
125
+ testData = [testData];
126
+ }
127
+ const knownNodes = loadKnownNodes();
128
+ const nodeTypes = NodeTypes();
129
+ const nodeNames = Array.from(new Set(testData.flatMap((data) => data.input.workflowData.nodes.map((n) => n.type))));
130
+ for (const nodeName of nodeNames) {
131
+ if (!nodeName.startsWith('n8n-nodes-base.')) {
132
+ throw new Error(`Unknown node type: ${nodeName}`);
133
+ }
134
+ const loadInfo = knownNodes[nodeName.replace('n8n-nodes-base.', '')];
135
+ if (!loadInfo) {
136
+ throw new Error(`Unknown node type: ${nodeName}`);
137
+ }
138
+ const node = (0, n8n_core_1.loadClassInIsolation)(path_1.default.join(process.cwd(), loadInfo.sourcePath), loadInfo.className);
139
+ nodeTypes.addNode(nodeName, node);
140
+ }
141
+ const fakeLogger = {
142
+ log: () => { },
143
+ debug: () => { },
144
+ verbose: () => { },
145
+ info: () => { },
146
+ warn: () => { },
147
+ error: () => { },
148
+ };
149
+ n8n_workflow_1.LoggerProxy.init(fakeLogger);
150
+ return nodeTypes;
151
+ }
152
+ exports.setup = setup;
153
+ function getResultNodeData(result, testData) {
154
+ return Object.keys(testData.output.nodeData).map((nodeName) => {
155
+ if (result.data.resultData.runData[nodeName] === undefined) {
156
+ throw new Error(`Data for node "${nodeName}" is missing!`);
157
+ }
158
+ const resultData = result.data.resultData.runData[nodeName].map((nodeData) => {
159
+ if (nodeData.data === undefined) {
160
+ return null;
161
+ }
162
+ return nodeData.data.main[0].map((entry) => {
163
+ if (entry.binary && (0, lodash_1.isEmpty)(entry.binary))
164
+ delete entry.binary;
165
+ delete entry.pairedItem;
166
+ return entry;
167
+ });
168
+ });
169
+ return {
170
+ nodeName,
171
+ resultData,
172
+ };
173
+ });
174
+ }
175
+ exports.getResultNodeData = getResultNodeData;
176
+ function readJsonFileSync(path) {
177
+ return JSON.parse((0, fs_1.readFileSync)(path, 'utf-8'));
178
+ }
179
+ exports.readJsonFileSync = readJsonFileSync;
180
+ const equalityTest = async (testData, types) => {
181
+ const { result } = await (0, ExecuteWorkflow_1.executeWorkflow)(testData, types);
182
+ const resultNodeData = getResultNodeData(result, testData);
183
+ resultNodeData.forEach(({ nodeName, resultData }) => {
184
+ return expect(resultData).toEqual(testData.output.nodeData[nodeName]);
185
+ });
186
+ expect(result.finished).toEqual(true);
187
+ };
188
+ exports.equalityTest = equalityTest;
189
+ const preparePinData = (pinData) => {
190
+ const returnData = Object.keys(pinData).reduce((acc, key) => {
191
+ const data = pinData[key];
192
+ acc[key] = [data];
193
+ return acc;
194
+ }, {});
195
+ return returnData;
196
+ };
197
+ const workflowToTests = (workflowFiles) => {
198
+ const testCases = [];
199
+ for (const filePath of workflowFiles) {
200
+ const description = filePath.replace('.json', '');
201
+ const workflowData = readJsonFileSync(filePath);
202
+ if (workflowData.pinData === undefined) {
203
+ throw new Error('Workflow data does not contain pinData');
204
+ }
205
+ const nodeData = preparePinData(workflowData.pinData);
206
+ delete workflowData.pinData;
207
+ const input = { workflowData };
208
+ const output = { nodeData };
209
+ testCases.push({ description, input, output });
210
+ }
211
+ return testCases;
212
+ };
213
+ exports.workflowToTests = workflowToTests;
214
+ const testWorkflows = (workflows) => {
215
+ const tests = (0, exports.workflowToTests)(workflows);
216
+ const nodeTypes = setup(tests);
217
+ for (const testData of tests) {
218
+ test(testData.description, async () => (0, exports.equalityTest)(testData, nodeTypes));
219
+ }
220
+ };
221
+ exports.testWorkflows = testWorkflows;
222
+ const getWorkflowFilenames = (dirname) => {
223
+ const workflows = [];
224
+ const filenames = (0, fs_1.readdirSync)(dirname);
225
+ const testFolder = dirname.split(`${path_1.default.sep}nodes-base${path_1.default.sep}`)[1];
226
+ filenames.forEach((file) => {
227
+ if (file.includes('.json')) {
228
+ workflows.push(path_1.default.join(testFolder, file));
229
+ }
230
+ });
231
+ return workflows;
232
+ };
233
+ exports.getWorkflowFilenames = getWorkflowFilenames;
234
+ //# sourceMappingURL=Helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../../test/nodes/Helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { INode, IConnections } from 'n8n-workflow';
2
+ export interface WorkflowTestData {
3
+ description: string;
4
+ input: {
5
+ workflowData: {
6
+ nodes: INode[];
7
+ connections: IConnections;
8
+ };
9
+ };
10
+ output: {
11
+ nodeExecutionOrder?: string[];
12
+ nodeData: {
13
+ [key: string]: any[][];
14
+ };
15
+ };
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../test/nodes/types.ts"],"names":[],"mappings":""}