n8n-mcp 2.22.5 → 2.22.7

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 (203) hide show
  1. package/data/nodes.db +0 -0
  2. package/dist/mcp/index.js +0 -0
  3. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts.map +1 -1
  4. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +127 -4
  5. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js.map +1 -1
  6. package/package.json +10 -1
  7. package/dist/mcp/absolute-minimal.d.ts +0 -4
  8. package/dist/mcp/absolute-minimal.d.ts.map +0 -1
  9. package/dist/mcp/absolute-minimal.js +0 -34
  10. package/dist/mcp/absolute-minimal.js.map +0 -1
  11. package/dist/mcp/fixed-protocol.d.ts +0 -17
  12. package/dist/mcp/fixed-protocol.d.ts.map +0 -1
  13. package/dist/mcp/fixed-protocol.js +0 -162
  14. package/dist/mcp/fixed-protocol.js.map +0 -1
  15. package/dist/mcp/handlers-documentation.d.ts +0 -18
  16. package/dist/mcp/handlers-documentation.d.ts.map +0 -1
  17. package/dist/mcp/handlers-documentation.js +0 -113
  18. package/dist/mcp/handlers-documentation.js.map +0 -1
  19. package/dist/mcp/minimal-test.d.ts +0 -3
  20. package/dist/mcp/minimal-test.d.ts.map +0 -1
  21. package/dist/mcp/minimal-test.js +0 -83
  22. package/dist/mcp/minimal-test.js.map +0 -1
  23. package/dist/mcp/stderr-test.d.ts +0 -2
  24. package/dist/mcp/stderr-test.d.ts.map +0 -1
  25. package/dist/mcp/stderr-test.js +0 -32
  26. package/dist/mcp/stderr-test.js.map +0 -1
  27. package/dist/mcp/tool-docs/special/code-node-guide.d.ts +0 -3
  28. package/dist/mcp/tool-docs/special/code-node-guide.d.ts.map +0 -1
  29. package/dist/mcp/tool-docs/special/code-node-guide.js +0 -61
  30. package/dist/mcp/tool-docs/special/code-node-guide.js.map +0 -1
  31. package/dist/mcp/tool-docs/special/index.d.ts +0 -2
  32. package/dist/mcp/tool-docs/special/index.d.ts.map +0 -1
  33. package/dist/mcp/tool-docs/special/index.js +0 -6
  34. package/dist/mcp/tool-docs/special/index.js.map +0 -1
  35. package/dist/mcp/tool-docs/templates/get-node-for-task.d.ts +0 -3
  36. package/dist/mcp/tool-docs/templates/get-node-for-task.d.ts.map +0 -1
  37. package/dist/mcp/tool-docs/templates/get-node-for-task.js +0 -50
  38. package/dist/mcp/tool-docs/templates/get-node-for-task.js.map +0 -1
  39. package/dist/mcp/tools-documentation-new.d.ts +0 -6
  40. package/dist/mcp/tools-documentation-new.d.ts.map +0 -1
  41. package/dist/mcp/tools-documentation-new.js +0 -163
  42. package/dist/mcp/tools-documentation-new.js.map +0 -1
  43. package/dist/mcp/ultra-minimal.d.ts +0 -8
  44. package/dist/mcp/ultra-minimal.d.ts.map +0 -1
  45. package/dist/mcp/ultra-minimal.js +0 -93
  46. package/dist/mcp/ultra-minimal.js.map +0 -1
  47. package/dist/mcp/working-test.d.ts +0 -3
  48. package/dist/mcp/working-test.d.ts.map +0 -1
  49. package/dist/mcp/working-test.js +0 -48
  50. package/dist/mcp/working-test.js.map +0 -1
  51. package/dist/mcp/wrapper.sh +0 -28
  52. package/dist/scripts/debug-n8n-auth.d.ts +0 -3
  53. package/dist/scripts/debug-n8n-auth.d.ts.map +0 -1
  54. package/dist/scripts/debug-n8n-auth.js +0 -97
  55. package/dist/scripts/debug-n8n-auth.js.map +0 -1
  56. package/dist/scripts/debug-node.d.ts +0 -3
  57. package/dist/scripts/debug-node.d.ts.map +0 -1
  58. package/dist/scripts/debug-node.js +0 -59
  59. package/dist/scripts/debug-node.js.map +0 -1
  60. package/dist/scripts/generate-metadata-only.d.ts +0 -3
  61. package/dist/scripts/generate-metadata-only.d.ts.map +0 -1
  62. package/dist/scripts/generate-metadata-only.js +0 -146
  63. package/dist/scripts/generate-metadata-only.js.map +0 -1
  64. package/dist/scripts/generate-metadata-sync.d.ts +0 -3
  65. package/dist/scripts/generate-metadata-sync.d.ts.map +0 -1
  66. package/dist/scripts/generate-metadata-sync.js +0 -136
  67. package/dist/scripts/generate-metadata-sync.js.map +0 -1
  68. package/dist/scripts/test-ai-workflow-validation.d.ts +0 -3
  69. package/dist/scripts/test-ai-workflow-validation.d.ts.map +0 -1
  70. package/dist/scripts/test-ai-workflow-validation.js +0 -191
  71. package/dist/scripts/test-ai-workflow-validation.js.map +0 -1
  72. package/dist/scripts/test-api-headers.d.ts +0 -3
  73. package/dist/scripts/test-api-headers.d.ts.map +0 -1
  74. package/dist/scripts/test-api-headers.js +0 -35
  75. package/dist/scripts/test-api-headers.js.map +0 -1
  76. package/dist/scripts/test-batch-processing.d.ts +0 -3
  77. package/dist/scripts/test-batch-processing.d.ts.map +0 -1
  78. package/dist/scripts/test-batch-processing.js +0 -144
  79. package/dist/scripts/test-batch-processing.js.map +0 -1
  80. package/dist/scripts/test-docker-config-simulation.d.ts +0 -3
  81. package/dist/scripts/test-docker-config-simulation.d.ts.map +0 -1
  82. package/dist/scripts/test-docker-config-simulation.js +0 -74
  83. package/dist/scripts/test-docker-config-simulation.js.map +0 -1
  84. package/dist/scripts/test-enhanced-validation.d.ts +0 -3
  85. package/dist/scripts/test-enhanced-validation.d.ts.map +0 -1
  86. package/dist/scripts/test-enhanced-validation.js +0 -117
  87. package/dist/scripts/test-enhanced-validation.js.map +0 -1
  88. package/dist/scripts/test-error-handling-validation.d.ts +0 -3
  89. package/dist/scripts/test-error-handling-validation.d.ts.map +0 -1
  90. package/dist/scripts/test-error-handling-validation.js +0 -340
  91. package/dist/scripts/test-error-handling-validation.js.map +0 -1
  92. package/dist/scripts/test-issue-45-fix.d.ts +0 -3
  93. package/dist/scripts/test-issue-45-fix.d.ts.map +0 -1
  94. package/dist/scripts/test-issue-45-fix.js +0 -136
  95. package/dist/scripts/test-issue-45-fix.js.map +0 -1
  96. package/dist/scripts/test-issue-74.d.ts +0 -3
  97. package/dist/scripts/test-issue-74.d.ts.map +0 -1
  98. package/dist/scripts/test-issue-74.js +0 -112
  99. package/dist/scripts/test-issue-74.js.map +0 -1
  100. package/dist/scripts/test-lazy-config.d.ts +0 -3
  101. package/dist/scripts/test-lazy-config.d.ts.map +0 -1
  102. package/dist/scripts/test-lazy-config.js +0 -60
  103. package/dist/scripts/test-lazy-config.js.map +0 -1
  104. package/dist/scripts/test-limited-results.d.ts +0 -3
  105. package/dist/scripts/test-limited-results.d.ts.map +0 -1
  106. package/dist/scripts/test-limited-results.js +0 -76
  107. package/dist/scripts/test-limited-results.js.map +0 -1
  108. package/dist/scripts/test-mcp-n8n-update-partial.d.ts +0 -3
  109. package/dist/scripts/test-mcp-n8n-update-partial.d.ts.map +0 -1
  110. package/dist/scripts/test-mcp-n8n-update-partial.js +0 -138
  111. package/dist/scripts/test-mcp-n8n-update-partial.js.map +0 -1
  112. package/dist/scripts/test-mcp-tools.d.ts +0 -3
  113. package/dist/scripts/test-mcp-tools.d.ts.map +0 -1
  114. package/dist/scripts/test-mcp-tools.js +0 -36
  115. package/dist/scripts/test-mcp-tools.js.map +0 -1
  116. package/dist/scripts/test-metadata-generation.d.ts +0 -3
  117. package/dist/scripts/test-metadata-generation.d.ts.map +0 -1
  118. package/dist/scripts/test-metadata-generation.js +0 -96
  119. package/dist/scripts/test-metadata-generation.js.map +0 -1
  120. package/dist/scripts/test-n8n-manager-integration.d.ts +0 -3
  121. package/dist/scripts/test-n8n-manager-integration.d.ts.map +0 -1
  122. package/dist/scripts/test-n8n-manager-integration.js +0 -122
  123. package/dist/scripts/test-n8n-manager-integration.js.map +0 -1
  124. package/dist/scripts/test-n8n-validate-workflow.d.ts +0 -3
  125. package/dist/scripts/test-n8n-validate-workflow.d.ts.map +0 -1
  126. package/dist/scripts/test-n8n-validate-workflow.js +0 -125
  127. package/dist/scripts/test-n8n-validate-workflow.js.map +0 -1
  128. package/dist/scripts/test-node-level-properties.d.ts +0 -3
  129. package/dist/scripts/test-node-level-properties.d.ts.map +0 -1
  130. package/dist/scripts/test-node-level-properties.js +0 -196
  131. package/dist/scripts/test-node-level-properties.js.map +0 -1
  132. package/dist/scripts/test-nodes.d.ts +0 -3
  133. package/dist/scripts/test-nodes.d.ts.map +0 -1
  134. package/dist/scripts/test-nodes.js +0 -91
  135. package/dist/scripts/test-nodes.js.map +0 -1
  136. package/dist/scripts/test-single-workflow.d.ts +0 -3
  137. package/dist/scripts/test-single-workflow.d.ts.map +0 -1
  138. package/dist/scripts/test-single-workflow.js +0 -112
  139. package/dist/scripts/test-single-workflow.js.map +0 -1
  140. package/dist/scripts/test-template-validation.d.ts +0 -3
  141. package/dist/scripts/test-template-validation.d.ts.map +0 -1
  142. package/dist/scripts/test-template-validation.js +0 -142
  143. package/dist/scripts/test-template-validation.js.map +0 -1
  144. package/dist/scripts/test-templates.d.ts +0 -4
  145. package/dist/scripts/test-templates.d.ts.map +0 -1
  146. package/dist/scripts/test-templates.js +0 -99
  147. package/dist/scripts/test-templates.js.map +0 -1
  148. package/dist/scripts/test-tools-documentation.d.ts +0 -2
  149. package/dist/scripts/test-tools-documentation.d.ts.map +0 -1
  150. package/dist/scripts/test-tools-documentation.js +0 -41
  151. package/dist/scripts/test-tools-documentation.js.map +0 -1
  152. package/dist/scripts/test-transactional-diff.d.ts +0 -2
  153. package/dist/scripts/test-transactional-diff.d.ts.map +0 -1
  154. package/dist/scripts/test-transactional-diff.js +0 -240
  155. package/dist/scripts/test-transactional-diff.js.map +0 -1
  156. package/dist/scripts/test-update-partial-debug.d.ts +0 -3
  157. package/dist/scripts/test-update-partial-debug.d.ts.map +0 -1
  158. package/dist/scripts/test-update-partial-debug.js +0 -92
  159. package/dist/scripts/test-update-partial-debug.js.map +0 -1
  160. package/dist/scripts/test-updatenode-null-fix.d.ts +0 -3
  161. package/dist/scripts/test-updatenode-null-fix.d.ts.map +0 -1
  162. package/dist/scripts/test-updatenode-null-fix.js +0 -156
  163. package/dist/scripts/test-updatenode-null-fix.js.map +0 -1
  164. package/dist/scripts/test-validation-parity.d.ts +0 -2
  165. package/dist/scripts/test-validation-parity.d.ts.map +0 -1
  166. package/dist/scripts/test-validation-parity.js +0 -153
  167. package/dist/scripts/test-validation-parity.js.map +0 -1
  168. package/dist/scripts/test-version-extraction.d.ts +0 -2
  169. package/dist/scripts/test-version-extraction.d.ts.map +0 -1
  170. package/dist/scripts/test-version-extraction.js +0 -74
  171. package/dist/scripts/test-version-extraction.js.map +0 -1
  172. package/dist/scripts/test-workflow-diff.d.ts +0 -3
  173. package/dist/scripts/test-workflow-diff.d.ts.map +0 -1
  174. package/dist/scripts/test-workflow-diff.js +0 -328
  175. package/dist/scripts/test-workflow-diff.js.map +0 -1
  176. package/dist/scripts/test-workflow-validation.d.ts +0 -3
  177. package/dist/scripts/test-workflow-validation.d.ts.map +0 -1
  178. package/dist/scripts/test-workflow-validation.js +0 -238
  179. package/dist/scripts/test-workflow-validation.js.map +0 -1
  180. package/dist/services/workflow-ownership.d.ts +0 -35
  181. package/dist/services/workflow-ownership.d.ts.map +0 -1
  182. package/dist/services/workflow-ownership.js +0 -195
  183. package/dist/services/workflow-ownership.js.map +0 -1
  184. package/dist/sse-server.d.ts +0 -8
  185. package/dist/sse-server.d.ts.map +0 -1
  186. package/dist/sse-server.js +0 -652
  187. package/dist/sse-server.js.map +0 -1
  188. package/dist/types/session-restoration.d.ts +0 -25
  189. package/dist/types/session-restoration.d.ts.map +0 -1
  190. package/dist/types/session-restoration.js +0 -3
  191. package/dist/types/session-restoration.js.map +0 -1
  192. package/dist/types/sse.d.ts +0 -42
  193. package/dist/types/sse.d.ts.map +0 -1
  194. package/dist/types/sse.js +0 -3
  195. package/dist/types/sse.js.map +0 -1
  196. package/dist/utils/sse-session-manager.d.ts +0 -23
  197. package/dist/utils/sse-session-manager.d.ts.map +0 -1
  198. package/dist/utils/sse-session-manager.js +0 -178
  199. package/dist/utils/sse-session-manager.js.map +0 -1
  200. package/dist/utils/version-utils.d.ts +0 -16
  201. package/dist/utils/version-utils.d.ts.map +0 -1
  202. package/dist/utils/version-utils.js +0 -129
  203. package/dist/utils/version-utils.js.map +0 -1
@@ -1,92 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const dotenv_1 = require("dotenv");
5
- const logger_1 = require("../utils/logger");
6
- const n8n_api_1 = require("../config/n8n-api");
7
- const handlers_workflow_diff_1 = require("../mcp/handlers-workflow-diff");
8
- const handlers_n8n_manager_1 = require("../mcp/handlers-n8n-manager");
9
- (0, dotenv_1.config)();
10
- async function testUpdatePartialDebug() {
11
- logger_1.logger.info('Debug test for n8n_update_partial_workflow...');
12
- if (!(0, n8n_api_1.isN8nApiConfigured)()) {
13
- logger_1.logger.warn('n8n API not configured. This test requires a real n8n instance.');
14
- logger_1.logger.info('Set N8N_API_URL and N8N_API_KEY to test.');
15
- return;
16
- }
17
- const client = (0, handlers_n8n_manager_1.getN8nApiClient)();
18
- if (!client) {
19
- logger_1.logger.error('Failed to create n8n API client');
20
- return;
21
- }
22
- try {
23
- logger_1.logger.info('\n=== Creating test workflow ===');
24
- const testWorkflow = {
25
- name: `Test Partial Update ${Date.now()}`,
26
- nodes: [
27
- {
28
- id: '1',
29
- name: 'Start',
30
- type: 'n8n-nodes-base.start',
31
- typeVersion: 1,
32
- position: [250, 300],
33
- parameters: {}
34
- },
35
- {
36
- id: '2',
37
- name: 'Set',
38
- type: 'n8n-nodes-base.set',
39
- typeVersion: 3,
40
- position: [450, 300],
41
- parameters: {
42
- mode: 'manual',
43
- fields: {
44
- values: [
45
- { name: 'message', value: 'Initial value' }
46
- ]
47
- }
48
- }
49
- }
50
- ],
51
- connections: {
52
- 'Start': {
53
- main: [[{ node: 'Set', type: 'main', index: 0 }]]
54
- }
55
- },
56
- settings: {
57
- executionOrder: 'v1'
58
- }
59
- };
60
- const createdWorkflow = await client.createWorkflow(testWorkflow);
61
- logger_1.logger.info('Created workflow:', {
62
- id: createdWorkflow.id,
63
- name: createdWorkflow.name
64
- });
65
- logger_1.logger.info('\n=== Testing partial update (NO validateOnly) ===');
66
- const updateRequest = {
67
- id: createdWorkflow.id,
68
- operations: [
69
- {
70
- type: 'updateName',
71
- name: 'Updated via Partial Update'
72
- }
73
- ]
74
- };
75
- logger_1.logger.info('Update request:', JSON.stringify(updateRequest, null, 2));
76
- const result = await (0, handlers_workflow_diff_1.handleUpdatePartialWorkflow)(updateRequest);
77
- logger_1.logger.info('Update result:', JSON.stringify(result, null, 2));
78
- if (createdWorkflow.id) {
79
- logger_1.logger.info('\n=== Cleanup ===');
80
- await client.deleteWorkflow(createdWorkflow.id);
81
- logger_1.logger.info('Deleted test workflow');
82
- }
83
- }
84
- catch (error) {
85
- logger_1.logger.error('Test failed:', error);
86
- }
87
- }
88
- testUpdatePartialDebug().catch(error => {
89
- logger_1.logger.error('Unhandled error:', error);
90
- process.exit(1);
91
- });
92
- //# sourceMappingURL=test-update-partial-debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-update-partial-debug.js","sourceRoot":"","sources":["../../src/scripts/test-update-partial-debug.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=test-updatenode-null-fix.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-updatenode-null-fix.d.ts","sourceRoot":"","sources":["../../src/scripts/test-updatenode-null-fix.ts"],"names":[],"mappings":""}
@@ -1,156 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const workflow_diff_engine_1 = require("../services/workflow-diff-engine");
5
- const testWorkflow = {
6
- id: 'test-workflow-null',
7
- name: 'Test Null Handling',
8
- nodes: [
9
- {
10
- id: 'http_1',
11
- name: 'HTTP Request',
12
- type: 'n8n-nodes-base.httpRequest',
13
- typeVersion: 4,
14
- position: [200, 200],
15
- parameters: {
16
- url: 'https://api.example.com',
17
- method: 'GET',
18
- authentication: null,
19
- options: {
20
- timeout: 5000
21
- }
22
- }
23
- },
24
- {
25
- id: 'set_1',
26
- name: 'Set',
27
- type: 'n8n-nodes-base.set',
28
- typeVersion: 3,
29
- position: [400, 200],
30
- parameters: {
31
- mode: 'manual',
32
- fields: null
33
- }
34
- }
35
- ],
36
- connections: {}
37
- };
38
- async function testUpdateNodeWithNullValues() {
39
- console.log('🧪 Testing updateNode operation with null/undefined handling...\n');
40
- const engine = new workflow_diff_engine_1.WorkflowDiffEngine();
41
- console.log('Test 1: Updating authentication.type where authentication is null');
42
- let result = await engine.applyDiff(testWorkflow, {
43
- id: 'test-workflow-null',
44
- operations: [{
45
- type: 'updateNode',
46
- nodeName: 'HTTP Request',
47
- changes: {
48
- 'parameters.authentication.type': 'headerAuth',
49
- 'parameters.authentication.properties.headerAuth.name': 'Authorization',
50
- 'parameters.authentication.properties.headerAuth.value': 'Bearer token123'
51
- }
52
- }]
53
- });
54
- if (result.success) {
55
- const node = result.workflow.nodes.find((n) => n.name === 'HTTP Request');
56
- console.log('✅ Success! Authentication updated:');
57
- console.log(' - Type:', node.parameters.authentication?.type);
58
- console.log(' - Header name:', node.parameters.authentication?.properties?.headerAuth?.name);
59
- console.log(' - Header value:', node.parameters.authentication?.properties?.headerAuth?.value);
60
- }
61
- else {
62
- console.error('❌ Failed:', result.errors);
63
- }
64
- console.log('\nTest 2: Updating options.headers.Accept where headers is undefined');
65
- result = await engine.applyDiff(testWorkflow, {
66
- id: 'test-workflow-null',
67
- operations: [{
68
- type: 'updateNode',
69
- nodeName: 'HTTP Request',
70
- changes: {
71
- 'parameters.options.headers.Accept': 'application/json',
72
- 'parameters.options.headers.Content-Type': 'application/json'
73
- }
74
- }]
75
- });
76
- if (result.success) {
77
- const node = result.workflow.nodes.find((n) => n.name === 'HTTP Request');
78
- console.log('✅ Success! Headers updated:');
79
- console.log(' - Accept:', node.parameters.options?.headers?.Accept);
80
- console.log(' - Content-Type:', node.parameters.options?.headers?.['Content-Type']);
81
- }
82
- else {
83
- console.error('❌ Failed:', result.errors);
84
- }
85
- console.log('\nTest 3: Updating fields.values where fields is null');
86
- result = await engine.applyDiff(testWorkflow, {
87
- id: 'test-workflow-null',
88
- operations: [{
89
- type: 'updateNode',
90
- nodeName: 'Set',
91
- changes: {
92
- 'parameters.fields.values': [
93
- { name: 'field1', value: 'value1' },
94
- { name: 'field2', value: 'value2' }
95
- ]
96
- }
97
- }]
98
- });
99
- if (result.success) {
100
- const node = result.workflow.nodes.find((n) => n.name === 'Set');
101
- console.log('✅ Success! Fields updated:');
102
- console.log(' - Values:', JSON.stringify(node.parameters.fields?.values, null, 2));
103
- }
104
- else {
105
- console.error('❌ Failed:', result.errors);
106
- }
107
- console.log('\nTest 4: Multiple operations with mixed null/existing values');
108
- result = await engine.applyDiff(testWorkflow, {
109
- id: 'test-workflow-null',
110
- operations: [
111
- {
112
- type: 'updateNode',
113
- nodeName: 'HTTP Request',
114
- changes: {
115
- 'parameters.url': 'https://new-api.example.com',
116
- 'parameters.authentication.type': 'oauth2',
117
- 'parameters.options.proxy.host': 'proxy.example.com',
118
- 'parameters.options.proxy.port': 8080
119
- }
120
- },
121
- {
122
- type: 'updateNode',
123
- nodeName: 'Set',
124
- changes: {
125
- 'parameters.mode': 'json',
126
- 'parameters.fields.schema': { type: 'object' }
127
- }
128
- }
129
- ]
130
- });
131
- if (result.success) {
132
- console.log('✅ Success! All operations applied:');
133
- console.log(' - Operations applied:', result.operationsApplied);
134
- console.log(' - Message:', result.message);
135
- const httpNode = result.workflow.nodes.find((n) => n.name === 'HTTP Request');
136
- const setNode = result.workflow.nodes.find((n) => n.name === 'Set');
137
- console.log('\n HTTP Request node:');
138
- console.log(' - URL:', httpNode.parameters.url);
139
- console.log(' - Auth type:', httpNode.parameters.authentication?.type);
140
- console.log(' - Proxy:', httpNode.parameters.options?.proxy);
141
- console.log('\n Set node:');
142
- console.log(' - Mode:', setNode.parameters.mode);
143
- console.log(' - Schema:', setNode.parameters.fields?.schema);
144
- }
145
- else {
146
- console.error('❌ Failed:', result.errors);
147
- }
148
- console.log('\n✅ All null/undefined handling tests completed!');
149
- }
150
- if (require.main === module) {
151
- testUpdateNodeWithNullValues().catch(error => {
152
- console.error('❌ Test failed with error:', error);
153
- process.exit(1);
154
- });
155
- }
156
- //# sourceMappingURL=test-updatenode-null-fix.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-updatenode-null-fix.js","sourceRoot":"","sources":["../../src/scripts/test-updatenode-null-fix.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test-validation-parity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-validation-parity.d.ts","sourceRoot":"","sources":["../../src/scripts/test-validation-parity.ts"],"names":[],"mappings":""}
@@ -1,153 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const mcp_engine_1 = require("../mcp-engine");
4
- const logger_1 = require("../utils/logger");
5
- const logger = new logger_1.Logger({ prefix: '[ValidationParity]' });
6
- async function testValidationParity() {
7
- const engine = new mcp_engine_1.N8NMCPEngine();
8
- await engine.initialize();
9
- const testWorkflow = {
10
- name: 'Test Validation Parity',
11
- nodes: [
12
- {
13
- id: 'webhook_1',
14
- name: 'Webhook',
15
- type: 'n8n-nodes-base.webhook',
16
- typeVersion: 1.1,
17
- position: [250, 300],
18
- parameters: {
19
- httpMethod: 'GET',
20
- path: 'test-webhook',
21
- responseMode: 'onReceived',
22
- responseData: 'firstEntryJson'
23
- }
24
- },
25
- {
26
- id: 'http_1',
27
- name: 'HTTP Request',
28
- type: 'n8n-nodes-base.httpRequest',
29
- typeVersion: 5.0,
30
- position: [450, 300],
31
- parameters: {
32
- method: 'GET',
33
- url: '{{ $json.webhookUrl }}',
34
- sendHeaders: true,
35
- headerParameters: {
36
- parameters: [
37
- {
38
- name: 'Authorization',
39
- value: '{{ $json.token }}'
40
- }
41
- ]
42
- }
43
- },
44
- onError: 'continueErrorOutput'
45
- },
46
- {
47
- id: 'respond_1',
48
- name: 'Respond to Webhook',
49
- type: 'n8n-nodes-base.respondToWebhook',
50
- typeVersion: 1.1,
51
- position: [650, 300],
52
- parameters: {
53
- respondWith: 'json',
54
- responseBody: '={{ $json }}'
55
- }
56
- }
57
- ],
58
- connections: {
59
- 'Webhook': {
60
- main: [
61
- [
62
- {
63
- node: 'HTTP Request',
64
- type: 'main',
65
- index: 0
66
- }
67
- ]
68
- ]
69
- },
70
- 'HTTP Request': {
71
- main: [
72
- [
73
- {
74
- node: 'Respond to Webhook',
75
- type: 'main',
76
- index: 0
77
- }
78
- ]
79
- ]
80
- }
81
- }
82
- };
83
- logger.info('Testing validate_workflow tool...');
84
- const baseValidation = await engine.callTool('validate_workflow', {
85
- workflow: testWorkflow
86
- });
87
- logger.info('Base validation result:', {
88
- valid: baseValidation.valid,
89
- errorCount: baseValidation.summary?.errorCount || 0,
90
- warningCount: baseValidation.summary?.warningCount || 0
91
- });
92
- if (baseValidation.errors?.length > 0) {
93
- logger.info('Errors found in validate_workflow:');
94
- for (const error of baseValidation.errors) {
95
- if (error.message.includes('missing prefix') ||
96
- error.message.includes('expression format') ||
97
- error.message.includes('onError') ||
98
- error.message.includes('error output')) {
99
- logger.info(`✓ Found expected error: ${error.message.substring(0, 100)}...`);
100
- }
101
- }
102
- }
103
- if (baseValidation.warnings?.length > 0) {
104
- logger.info('Warnings found in validate_workflow:');
105
- for (const warning of baseValidation.warnings) {
106
- if (warning.message.includes('missing prefix') ||
107
- warning.message.includes('expression format')) {
108
- logger.info(`✓ Found expected warning: ${warning.message.substring(0, 100)}...`);
109
- }
110
- }
111
- }
112
- const capabilities = {
113
- detectsMissingExpressionPrefix: false,
114
- detectsErrorOutputMismatch: false,
115
- detectsIncorrectErrorConfig: false
116
- };
117
- const allMessages = [
118
- ...(baseValidation.errors || []).map((e) => e.message),
119
- ...(baseValidation.warnings || []).map((w) => w.message)
120
- ];
121
- for (const message of allMessages) {
122
- if (message.includes('missing prefix') || message.includes('expression format')) {
123
- capabilities.detectsMissingExpressionPrefix = true;
124
- }
125
- if (message.includes('onError') && message.includes('error output')) {
126
- capabilities.detectsErrorOutputMismatch = true;
127
- }
128
- if (message.includes('error output configuration')) {
129
- capabilities.detectsIncorrectErrorConfig = true;
130
- }
131
- }
132
- logger.info('\nValidation Capabilities Detected:', capabilities);
133
- const allCapabilitiesPresent = Object.values(capabilities).every(cap => cap === true);
134
- if (allCapabilitiesPresent) {
135
- logger.info('\n✅ All validation capabilities are present in validate_workflow!');
136
- }
137
- else {
138
- logger.error('\n❌ Some validation capabilities are missing:');
139
- for (const [key, value] of Object.entries(capabilities)) {
140
- if (!value) {
141
- logger.error(` - ${key}`);
142
- }
143
- }
144
- }
145
- logger.info('\n📝 Note: n8n_validate_workflow uses the same WorkflowValidator class');
146
- logger.info(' and EnhancedConfigValidator, so it has identical capabilities.');
147
- await engine.shutdown();
148
- }
149
- testValidationParity().catch(error => {
150
- logger.error('Test failed:', error);
151
- process.exit(1);
152
- });
153
- //# sourceMappingURL=test-validation-parity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-validation-parity.js","sourceRoot":"","sources":["../../src/scripts/test-validation-parity.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test-version-extraction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-version-extraction.d.ts","sourceRoot":"","sources":["../../src/scripts/test-version-extraction.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const node_parser_1 = require("../parsers/node-parser");
4
- async function testVersionExtraction() {
5
- console.log('Testing version extraction from different node types...\n');
6
- const parser = new node_parser_1.NodeParser();
7
- const testCases = [
8
- {
9
- name: 'Gmail Trigger (version array)',
10
- nodeType: 'nodes-base.gmailTrigger',
11
- expectedVersion: '1.2',
12
- expectedVersioned: true
13
- },
14
- {
15
- name: 'HTTP Request (VersionedNodeType)',
16
- nodeType: 'nodes-base.httpRequest',
17
- expectedVersion: '4.2',
18
- expectedVersioned: true
19
- },
20
- {
21
- name: 'Code (version array)',
22
- nodeType: 'nodes-base.code',
23
- expectedVersion: '2',
24
- expectedVersioned: true
25
- }
26
- ];
27
- const basePackagePath = process.cwd() + '/node_modules/n8n/node_modules/n8n-nodes-base';
28
- for (const testCase of testCases) {
29
- console.log(`\nTesting: ${testCase.name}`);
30
- console.log(`Node Type: ${testCase.nodeType}`);
31
- try {
32
- const nodeName = testCase.nodeType.split('.')[1];
33
- const possiblePaths = [
34
- `${basePackagePath}/dist/nodes/${nodeName}.node.js`,
35
- `${basePackagePath}/dist/nodes/Google/Gmail/GmailTrigger.node.js`,
36
- `${basePackagePath}/dist/nodes/HttpRequest/HttpRequest.node.js`,
37
- `${basePackagePath}/dist/nodes/Code/Code.node.js`
38
- ];
39
- let nodeClass = null;
40
- for (const path of possiblePaths) {
41
- try {
42
- const module = require(path);
43
- nodeClass = module[Object.keys(module)[0]];
44
- if (nodeClass)
45
- break;
46
- }
47
- catch (e) {
48
- }
49
- }
50
- if (!nodeClass) {
51
- console.log('❌ Could not load node');
52
- continue;
53
- }
54
- const parsed = parser.parse(nodeClass, 'n8n-nodes-base');
55
- console.log(`Loaded node: ${parsed.displayName} (${parsed.nodeType})`);
56
- console.log(`Extracted version: ${parsed.version}`);
57
- console.log(`Is versioned: ${parsed.isVersioned}`);
58
- console.log(`Expected version: ${testCase.expectedVersion}`);
59
- console.log(`Expected versioned: ${testCase.expectedVersioned}`);
60
- if (parsed.version === testCase.expectedVersion &&
61
- parsed.isVersioned === testCase.expectedVersioned) {
62
- console.log('✅ PASS');
63
- }
64
- else {
65
- console.log('❌ FAIL');
66
- }
67
- }
68
- catch (error) {
69
- console.log(`❌ Error: ${error instanceof Error ? error.message : String(error)}`);
70
- }
71
- }
72
- }
73
- testVersionExtraction().catch(console.error);
74
- //# sourceMappingURL=test-version-extraction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-version-extraction.js","sourceRoot":"","sources":["../../src/scripts/test-version-extraction.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=test-workflow-diff.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-workflow-diff.d.ts","sourceRoot":"","sources":["../../src/scripts/test-workflow-diff.ts"],"names":[],"mappings":""}