n8n-mcp 2.21.1 → 2.22.5

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 (273) hide show
  1. package/README.md +1 -0
  2. package/data/nodes.db +0 -0
  3. package/dist/database/node-repository.d.ts +62 -0
  4. package/dist/database/node-repository.d.ts.map +1 -1
  5. package/dist/database/node-repository.js +276 -0
  6. package/dist/database/node-repository.js.map +1 -1
  7. package/dist/mcp/absolute-minimal.d.ts +4 -0
  8. package/dist/mcp/absolute-minimal.d.ts.map +1 -0
  9. package/dist/mcp/absolute-minimal.js +34 -0
  10. package/dist/mcp/absolute-minimal.js.map +1 -0
  11. package/dist/mcp/fixed-protocol.d.ts +17 -0
  12. package/dist/mcp/fixed-protocol.d.ts.map +1 -0
  13. package/dist/mcp/fixed-protocol.js +162 -0
  14. package/dist/mcp/fixed-protocol.js.map +1 -0
  15. package/dist/mcp/handlers-documentation.d.ts +18 -0
  16. package/dist/mcp/handlers-documentation.d.ts.map +1 -0
  17. package/dist/mcp/handlers-documentation.js +113 -0
  18. package/dist/mcp/handlers-documentation.js.map +1 -0
  19. package/dist/mcp/handlers-n8n-manager.d.ts +2 -1
  20. package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -1
  21. package/dist/mcp/handlers-n8n-manager.js +193 -5
  22. package/dist/mcp/handlers-n8n-manager.js.map +1 -1
  23. package/dist/mcp/handlers-workflow-diff.d.ts +2 -1
  24. package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -1
  25. package/dist/mcp/handlers-workflow-diff.js +30 -2
  26. package/dist/mcp/handlers-workflow-diff.js.map +1 -1
  27. package/dist/mcp/index.js +0 -0
  28. package/dist/mcp/minimal-test.d.ts +3 -0
  29. package/dist/mcp/minimal-test.d.ts.map +1 -0
  30. package/dist/mcp/minimal-test.js +83 -0
  31. package/dist/mcp/minimal-test.js.map +1 -0
  32. package/dist/mcp/server.d.ts.map +1 -1
  33. package/dist/mcp/server.js +5 -2
  34. package/dist/mcp/server.js.map +1 -1
  35. package/dist/mcp/stderr-test.d.ts +2 -0
  36. package/dist/mcp/stderr-test.d.ts.map +1 -0
  37. package/dist/mcp/stderr-test.js +32 -0
  38. package/dist/mcp/stderr-test.js.map +1 -0
  39. package/dist/mcp/tool-docs/special/code-node-guide.d.ts +3 -0
  40. package/dist/mcp/tool-docs/special/code-node-guide.d.ts.map +1 -0
  41. package/dist/mcp/tool-docs/special/code-node-guide.js +61 -0
  42. package/dist/mcp/tool-docs/special/code-node-guide.js.map +1 -0
  43. package/dist/mcp/tool-docs/special/index.d.ts +2 -0
  44. package/dist/mcp/tool-docs/special/index.d.ts.map +1 -0
  45. package/dist/mcp/tool-docs/special/index.js +6 -0
  46. package/dist/mcp/tool-docs/special/index.js.map +1 -0
  47. package/dist/mcp/tool-docs/templates/get-node-for-task.d.ts +3 -0
  48. package/dist/mcp/tool-docs/templates/get-node-for-task.d.ts.map +1 -0
  49. package/dist/mcp/tool-docs/templates/get-node-for-task.js +50 -0
  50. package/dist/mcp/tool-docs/templates/get-node-for-task.js.map +1 -0
  51. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts.map +1 -1
  52. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js +47 -11
  53. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js.map +1 -1
  54. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts.map +1 -1
  55. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +2 -0
  56. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js.map +1 -1
  57. package/dist/mcp/tools-documentation-new.d.ts +6 -0
  58. package/dist/mcp/tools-documentation-new.d.ts.map +1 -0
  59. package/dist/mcp/tools-documentation-new.js +163 -0
  60. package/dist/mcp/tools-documentation-new.js.map +1 -0
  61. package/dist/mcp/tools-n8n-manager.d.ts.map +1 -1
  62. package/dist/mcp/tools-n8n-manager.js +55 -1
  63. package/dist/mcp/tools-n8n-manager.js.map +1 -1
  64. package/dist/mcp/ultra-minimal.d.ts +8 -0
  65. package/dist/mcp/ultra-minimal.d.ts.map +1 -0
  66. package/dist/mcp/ultra-minimal.js +93 -0
  67. package/dist/mcp/ultra-minimal.js.map +1 -0
  68. package/dist/mcp/working-test.d.ts +3 -0
  69. package/dist/mcp/working-test.d.ts.map +1 -0
  70. package/dist/mcp/working-test.js +48 -0
  71. package/dist/mcp/working-test.js.map +1 -0
  72. package/dist/mcp/wrapper.sh +28 -0
  73. package/dist/scripts/debug-n8n-auth.d.ts +3 -0
  74. package/dist/scripts/debug-n8n-auth.d.ts.map +1 -0
  75. package/dist/scripts/debug-n8n-auth.js +97 -0
  76. package/dist/scripts/debug-n8n-auth.js.map +1 -0
  77. package/dist/scripts/debug-node.d.ts +3 -0
  78. package/dist/scripts/debug-node.d.ts.map +1 -0
  79. package/dist/scripts/debug-node.js +59 -0
  80. package/dist/scripts/debug-node.js.map +1 -0
  81. package/dist/scripts/generate-metadata-only.d.ts +3 -0
  82. package/dist/scripts/generate-metadata-only.d.ts.map +1 -0
  83. package/dist/scripts/generate-metadata-only.js +146 -0
  84. package/dist/scripts/generate-metadata-only.js.map +1 -0
  85. package/dist/scripts/generate-metadata-sync.d.ts +3 -0
  86. package/dist/scripts/generate-metadata-sync.d.ts.map +1 -0
  87. package/dist/scripts/generate-metadata-sync.js +136 -0
  88. package/dist/scripts/generate-metadata-sync.js.map +1 -0
  89. package/dist/scripts/test-ai-workflow-validation.d.ts +3 -0
  90. package/dist/scripts/test-ai-workflow-validation.d.ts.map +1 -0
  91. package/dist/scripts/test-ai-workflow-validation.js +191 -0
  92. package/dist/scripts/test-ai-workflow-validation.js.map +1 -0
  93. package/dist/scripts/test-api-headers.d.ts +3 -0
  94. package/dist/scripts/test-api-headers.d.ts.map +1 -0
  95. package/dist/scripts/test-api-headers.js +35 -0
  96. package/dist/scripts/test-api-headers.js.map +1 -0
  97. package/dist/scripts/test-autofix-workflow.js +3 -3
  98. package/dist/scripts/test-autofix-workflow.js.map +1 -1
  99. package/dist/scripts/test-batch-processing.d.ts +3 -0
  100. package/dist/scripts/test-batch-processing.d.ts.map +1 -0
  101. package/dist/scripts/test-batch-processing.js +144 -0
  102. package/dist/scripts/test-batch-processing.js.map +1 -0
  103. package/dist/scripts/test-docker-config-simulation.d.ts +3 -0
  104. package/dist/scripts/test-docker-config-simulation.d.ts.map +1 -0
  105. package/dist/scripts/test-docker-config-simulation.js +74 -0
  106. package/dist/scripts/test-docker-config-simulation.js.map +1 -0
  107. package/dist/scripts/test-enhanced-validation.d.ts +3 -0
  108. package/dist/scripts/test-enhanced-validation.d.ts.map +1 -0
  109. package/dist/scripts/test-enhanced-validation.js +117 -0
  110. package/dist/scripts/test-enhanced-validation.js.map +1 -0
  111. package/dist/scripts/test-error-handling-validation.d.ts +3 -0
  112. package/dist/scripts/test-error-handling-validation.d.ts.map +1 -0
  113. package/dist/scripts/test-error-handling-validation.js +340 -0
  114. package/dist/scripts/test-error-handling-validation.js.map +1 -0
  115. package/dist/scripts/test-issue-45-fix.d.ts +3 -0
  116. package/dist/scripts/test-issue-45-fix.d.ts.map +1 -0
  117. package/dist/scripts/test-issue-45-fix.js +136 -0
  118. package/dist/scripts/test-issue-45-fix.js.map +1 -0
  119. package/dist/scripts/test-issue-74.d.ts +3 -0
  120. package/dist/scripts/test-issue-74.d.ts.map +1 -0
  121. package/dist/scripts/test-issue-74.js +112 -0
  122. package/dist/scripts/test-issue-74.js.map +1 -0
  123. package/dist/scripts/test-lazy-config.d.ts +3 -0
  124. package/dist/scripts/test-lazy-config.d.ts.map +1 -0
  125. package/dist/scripts/test-lazy-config.js +60 -0
  126. package/dist/scripts/test-lazy-config.js.map +1 -0
  127. package/dist/scripts/test-limited-results.d.ts +3 -0
  128. package/dist/scripts/test-limited-results.d.ts.map +1 -0
  129. package/dist/scripts/test-limited-results.js +76 -0
  130. package/dist/scripts/test-limited-results.js.map +1 -0
  131. package/dist/scripts/test-mcp-n8n-update-partial.d.ts +3 -0
  132. package/dist/scripts/test-mcp-n8n-update-partial.d.ts.map +1 -0
  133. package/dist/scripts/test-mcp-n8n-update-partial.js +138 -0
  134. package/dist/scripts/test-mcp-n8n-update-partial.js.map +1 -0
  135. package/dist/scripts/test-mcp-tools.d.ts +3 -0
  136. package/dist/scripts/test-mcp-tools.d.ts.map +1 -0
  137. package/dist/scripts/test-mcp-tools.js +36 -0
  138. package/dist/scripts/test-mcp-tools.js.map +1 -0
  139. package/dist/scripts/test-metadata-generation.d.ts +3 -0
  140. package/dist/scripts/test-metadata-generation.d.ts.map +1 -0
  141. package/dist/scripts/test-metadata-generation.js +96 -0
  142. package/dist/scripts/test-metadata-generation.js.map +1 -0
  143. package/dist/scripts/test-n8n-manager-integration.d.ts +3 -0
  144. package/dist/scripts/test-n8n-manager-integration.d.ts.map +1 -0
  145. package/dist/scripts/test-n8n-manager-integration.js +122 -0
  146. package/dist/scripts/test-n8n-manager-integration.js.map +1 -0
  147. package/dist/scripts/test-n8n-validate-workflow.d.ts +3 -0
  148. package/dist/scripts/test-n8n-validate-workflow.d.ts.map +1 -0
  149. package/dist/scripts/test-n8n-validate-workflow.js +125 -0
  150. package/dist/scripts/test-n8n-validate-workflow.js.map +1 -0
  151. package/dist/scripts/test-node-level-properties.d.ts +3 -0
  152. package/dist/scripts/test-node-level-properties.d.ts.map +1 -0
  153. package/dist/scripts/test-node-level-properties.js +196 -0
  154. package/dist/scripts/test-node-level-properties.js.map +1 -0
  155. package/dist/scripts/test-node-suggestions.js +1 -1
  156. package/dist/scripts/test-node-suggestions.js.map +1 -1
  157. package/dist/scripts/test-nodes.d.ts +3 -0
  158. package/dist/scripts/test-nodes.d.ts.map +1 -0
  159. package/dist/scripts/test-nodes.js +91 -0
  160. package/dist/scripts/test-nodes.js.map +1 -0
  161. package/dist/scripts/test-single-workflow.d.ts +3 -0
  162. package/dist/scripts/test-single-workflow.d.ts.map +1 -0
  163. package/dist/scripts/test-single-workflow.js +112 -0
  164. package/dist/scripts/test-single-workflow.js.map +1 -0
  165. package/dist/scripts/test-template-validation.d.ts +3 -0
  166. package/dist/scripts/test-template-validation.d.ts.map +1 -0
  167. package/dist/scripts/test-template-validation.js +142 -0
  168. package/dist/scripts/test-template-validation.js.map +1 -0
  169. package/dist/scripts/test-templates.d.ts +4 -0
  170. package/dist/scripts/test-templates.d.ts.map +1 -0
  171. package/dist/scripts/test-templates.js +99 -0
  172. package/dist/scripts/test-templates.js.map +1 -0
  173. package/dist/scripts/test-tools-documentation.d.ts +2 -0
  174. package/dist/scripts/test-tools-documentation.d.ts.map +1 -0
  175. package/dist/scripts/test-tools-documentation.js +41 -0
  176. package/dist/scripts/test-tools-documentation.js.map +1 -0
  177. package/dist/scripts/test-transactional-diff.d.ts +2 -0
  178. package/dist/scripts/test-transactional-diff.d.ts.map +1 -0
  179. package/dist/scripts/test-transactional-diff.js +240 -0
  180. package/dist/scripts/test-transactional-diff.js.map +1 -0
  181. package/dist/scripts/test-update-partial-debug.d.ts +3 -0
  182. package/dist/scripts/test-update-partial-debug.d.ts.map +1 -0
  183. package/dist/scripts/test-update-partial-debug.js +92 -0
  184. package/dist/scripts/test-update-partial-debug.js.map +1 -0
  185. package/dist/scripts/test-updatenode-null-fix.d.ts +3 -0
  186. package/dist/scripts/test-updatenode-null-fix.d.ts.map +1 -0
  187. package/dist/scripts/test-updatenode-null-fix.js +156 -0
  188. package/dist/scripts/test-updatenode-null-fix.js.map +1 -0
  189. package/dist/scripts/test-validation-parity.d.ts +2 -0
  190. package/dist/scripts/test-validation-parity.d.ts.map +1 -0
  191. package/dist/scripts/test-validation-parity.js +153 -0
  192. package/dist/scripts/test-validation-parity.js.map +1 -0
  193. package/dist/scripts/test-version-extraction.d.ts +2 -0
  194. package/dist/scripts/test-version-extraction.d.ts.map +1 -0
  195. package/dist/scripts/test-version-extraction.js +74 -0
  196. package/dist/scripts/test-version-extraction.js.map +1 -0
  197. package/dist/scripts/test-webhook-autofix.js +1 -1
  198. package/dist/scripts/test-webhook-autofix.js.map +1 -1
  199. package/dist/scripts/test-workflow-diff.d.ts +3 -0
  200. package/dist/scripts/test-workflow-diff.d.ts.map +1 -0
  201. package/dist/scripts/test-workflow-diff.js +328 -0
  202. package/dist/scripts/test-workflow-diff.js.map +1 -0
  203. package/dist/scripts/test-workflow-validation.d.ts +3 -0
  204. package/dist/scripts/test-workflow-validation.d.ts.map +1 -0
  205. package/dist/scripts/test-workflow-validation.js +238 -0
  206. package/dist/scripts/test-workflow-validation.js.map +1 -0
  207. package/dist/services/breaking-change-detector.d.ts +38 -0
  208. package/dist/services/breaking-change-detector.d.ts.map +1 -0
  209. package/dist/services/breaking-change-detector.js +184 -0
  210. package/dist/services/breaking-change-detector.js.map +1 -0
  211. package/dist/services/breaking-changes-registry.d.ts +28 -0
  212. package/dist/services/breaking-changes-registry.d.ts.map +1 -0
  213. package/dist/services/breaking-changes-registry.js +200 -0
  214. package/dist/services/breaking-changes-registry.js.map +1 -0
  215. package/dist/services/enhanced-config-validator.d.ts.map +1 -1
  216. package/dist/services/enhanced-config-validator.js +32 -0
  217. package/dist/services/enhanced-config-validator.js.map +1 -1
  218. package/dist/services/n8n-api-client.d.ts +1 -0
  219. package/dist/services/n8n-api-client.d.ts.map +1 -1
  220. package/dist/services/n8n-api-client.js +26 -4
  221. package/dist/services/n8n-api-client.js.map +1 -1
  222. package/dist/services/node-migration-service.d.ts +44 -0
  223. package/dist/services/node-migration-service.d.ts.map +1 -0
  224. package/dist/services/node-migration-service.js +231 -0
  225. package/dist/services/node-migration-service.js.map +1 -0
  226. package/dist/services/node-version-service.d.ts +63 -0
  227. package/dist/services/node-version-service.d.ts.map +1 -0
  228. package/dist/services/node-version-service.js +215 -0
  229. package/dist/services/node-version-service.js.map +1 -0
  230. package/dist/services/post-update-validator.d.ts +59 -0
  231. package/dist/services/post-update-validator.d.ts.map +1 -0
  232. package/dist/services/post-update-validator.js +231 -0
  233. package/dist/services/post-update-validator.js.map +1 -0
  234. package/dist/services/workflow-auto-fixer.d.ts +10 -2
  235. package/dist/services/workflow-auto-fixer.d.ts.map +1 -1
  236. package/dist/services/workflow-auto-fixer.js +124 -3
  237. package/dist/services/workflow-auto-fixer.js.map +1 -1
  238. package/dist/services/workflow-diff-engine.d.ts +1 -0
  239. package/dist/services/workflow-diff-engine.d.ts.map +1 -1
  240. package/dist/services/workflow-diff-engine.js +23 -1
  241. package/dist/services/workflow-diff-engine.js.map +1 -1
  242. package/dist/services/workflow-ownership.d.ts +35 -0
  243. package/dist/services/workflow-ownership.d.ts.map +1 -0
  244. package/dist/services/workflow-ownership.js +195 -0
  245. package/dist/services/workflow-ownership.js.map +1 -0
  246. package/dist/services/workflow-versioning-service.d.ts +102 -0
  247. package/dist/services/workflow-versioning-service.d.ts.map +1 -0
  248. package/dist/services/workflow-versioning-service.js +264 -0
  249. package/dist/services/workflow-versioning-service.js.map +1 -0
  250. package/dist/sse-server.d.ts +8 -0
  251. package/dist/sse-server.d.ts.map +1 -0
  252. package/dist/sse-server.js +652 -0
  253. package/dist/sse-server.js.map +1 -0
  254. package/dist/types/session-restoration.d.ts +25 -0
  255. package/dist/types/session-restoration.d.ts.map +1 -0
  256. package/dist/types/session-restoration.js +3 -0
  257. package/dist/types/session-restoration.js.map +1 -0
  258. package/dist/types/sse.d.ts +42 -0
  259. package/dist/types/sse.d.ts.map +1 -0
  260. package/dist/types/sse.js +3 -0
  261. package/dist/types/sse.js.map +1 -0
  262. package/dist/types/workflow-diff.d.ts +1 -0
  263. package/dist/types/workflow-diff.d.ts.map +1 -1
  264. package/dist/types/workflow-diff.js.map +1 -1
  265. package/dist/utils/sse-session-manager.d.ts +23 -0
  266. package/dist/utils/sse-session-manager.d.ts.map +1 -0
  267. package/dist/utils/sse-session-manager.js +178 -0
  268. package/dist/utils/sse-session-manager.js.map +1 -0
  269. package/dist/utils/version-utils.d.ts +16 -0
  270. package/dist/utils/version-utils.d.ts.map +1 -0
  271. package/dist/utils/version-utils.js +129 -0
  272. package/dist/utils/version-utils.js.map +1 -0
  273. package/package.json +1 -10
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const database_adapter_1 = require("../database/database-adapter");
5
+ const node_repository_1 = require("../database/node-repository");
6
+ const workflow_validator_1 = require("../services/workflow-validator");
7
+ const logger_1 = require("../utils/logger");
8
+ const enhanced_config_validator_1 = require("../services/enhanced-config-validator");
9
+ const logger = new logger_1.Logger({ prefix: '[TestAIWorkflow]' });
10
+ const aiWorkflow = {
11
+ name: 'AI Agent with Tools',
12
+ nodes: [
13
+ {
14
+ id: '1',
15
+ name: 'Webhook',
16
+ type: 'n8n-nodes-base.webhook',
17
+ position: [100, 100],
18
+ parameters: {
19
+ path: 'ai-webhook',
20
+ httpMethod: 'POST'
21
+ }
22
+ },
23
+ {
24
+ id: '2',
25
+ name: 'AI Agent',
26
+ type: '@n8n/n8n-nodes-langchain.agent',
27
+ position: [300, 100],
28
+ parameters: {
29
+ text: '={{ $json.query }}',
30
+ systemMessage: 'You are a helpful assistant with access to tools'
31
+ }
32
+ },
33
+ {
34
+ id: '3',
35
+ name: 'Google Sheets Tool',
36
+ type: 'n8n-nodes-base.googleSheets',
37
+ position: [300, 250],
38
+ parameters: {
39
+ operation: 'append',
40
+ sheetId: '={{ $fromAI("sheetId", "Sheet ID") }}',
41
+ range: 'A:Z'
42
+ }
43
+ },
44
+ {
45
+ id: '4',
46
+ name: 'Slack Tool',
47
+ type: 'n8n-nodes-base.slack',
48
+ position: [300, 350],
49
+ parameters: {
50
+ resource: 'message',
51
+ operation: 'post',
52
+ channel: '={{ $fromAI("channel", "Channel name") }}',
53
+ text: '={{ $fromAI("message", "Message text") }}'
54
+ }
55
+ },
56
+ {
57
+ id: '5',
58
+ name: 'Response',
59
+ type: 'n8n-nodes-base.respondToWebhook',
60
+ position: [500, 100],
61
+ parameters: {
62
+ responseCode: 200
63
+ }
64
+ }
65
+ ],
66
+ connections: {
67
+ 'Webhook': {
68
+ main: [[{ node: 'AI Agent', type: 'main', index: 0 }]]
69
+ },
70
+ 'AI Agent': {
71
+ main: [[{ node: 'Response', type: 'main', index: 0 }]],
72
+ ai_tool: [
73
+ [
74
+ { node: 'Google Sheets Tool', type: 'ai_tool', index: 0 },
75
+ { node: 'Slack Tool', type: 'ai_tool', index: 0 }
76
+ ]
77
+ ]
78
+ }
79
+ }
80
+ };
81
+ const aiWorkflowNoTools = {
82
+ name: 'AI Agent without Tools',
83
+ nodes: [
84
+ {
85
+ id: '1',
86
+ name: 'Manual',
87
+ type: 'n8n-nodes-base.manualTrigger',
88
+ position: [100, 100],
89
+ parameters: {}
90
+ },
91
+ {
92
+ id: '2',
93
+ name: 'AI Agent',
94
+ type: '@n8n/n8n-nodes-langchain.agent',
95
+ position: [300, 100],
96
+ parameters: {
97
+ text: 'Hello AI'
98
+ }
99
+ }
100
+ ],
101
+ connections: {
102
+ 'Manual': {
103
+ main: [[{ node: 'AI Agent', type: 'main', index: 0 }]]
104
+ }
105
+ }
106
+ };
107
+ const unknownToolWorkflow = {
108
+ name: 'Unknown Tool Test',
109
+ nodes: [
110
+ {
111
+ id: '1',
112
+ name: 'Agent',
113
+ type: 'nodes-langchain.agent',
114
+ position: [100, 100],
115
+ parameters: {}
116
+ },
117
+ {
118
+ id: '2',
119
+ name: 'Sheets Tool',
120
+ type: 'googleSheetsTool',
121
+ position: [300, 100],
122
+ parameters: {}
123
+ }
124
+ ],
125
+ connections: {
126
+ 'Agent': {
127
+ ai_tool: [[{ node: 'Sheets Tool', type: 'ai_tool', index: 0 }]]
128
+ }
129
+ }
130
+ };
131
+ async function testWorkflow(name, workflow) {
132
+ console.log(`\n🧪 Testing: ${name}`);
133
+ console.log('='.repeat(50));
134
+ const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
135
+ const repository = new node_repository_1.NodeRepository(db);
136
+ const validator = new workflow_validator_1.WorkflowValidator(repository, enhanced_config_validator_1.EnhancedConfigValidator);
137
+ try {
138
+ const result = await validator.validateWorkflow(workflow);
139
+ console.log(`\n📊 Validation Results:`);
140
+ console.log(`Valid: ${result.valid ? '✅' : '❌'}`);
141
+ if (result.errors.length > 0) {
142
+ console.log('\n❌ Errors:');
143
+ result.errors.forEach((err) => {
144
+ if (typeof err === 'string') {
145
+ console.log(` - ${err}`);
146
+ }
147
+ else if (err.message) {
148
+ const nodeInfo = err.nodeName ? ` [${err.nodeName}]` : '';
149
+ console.log(` - ${err.message}${nodeInfo}`);
150
+ }
151
+ else {
152
+ console.log(` - ${JSON.stringify(err, null, 2)}`);
153
+ }
154
+ });
155
+ }
156
+ if (result.warnings.length > 0) {
157
+ console.log('\n⚠️ Warnings:');
158
+ result.warnings.forEach((warn) => {
159
+ const msg = warn.message || warn;
160
+ const nodeInfo = warn.nodeName ? ` [${warn.nodeName}]` : '';
161
+ console.log(` - ${msg}${nodeInfo}`);
162
+ });
163
+ }
164
+ if (result.suggestions.length > 0) {
165
+ console.log('\n💡 Suggestions:');
166
+ result.suggestions.forEach((sug) => console.log(` - ${sug}`));
167
+ }
168
+ console.log('\n📈 Statistics:');
169
+ console.log(` - Total nodes: ${result.statistics.totalNodes}`);
170
+ console.log(` - Valid connections: ${result.statistics.validConnections}`);
171
+ console.log(` - Invalid connections: ${result.statistics.invalidConnections}`);
172
+ console.log(` - Expressions validated: ${result.statistics.expressionsValidated}`);
173
+ }
174
+ catch (error) {
175
+ console.error('Validation error:', error);
176
+ }
177
+ finally {
178
+ db.close();
179
+ }
180
+ }
181
+ async function main() {
182
+ console.log('🤖 Testing AI Workflow Validation Enhancements');
183
+ await testWorkflow('AI Agent with Multiple Tools', aiWorkflow);
184
+ await testWorkflow('AI Agent without Tools', aiWorkflowNoTools);
185
+ await testWorkflow('Unknown Tool Type', unknownToolWorkflow);
186
+ console.log('\n✅ All tests completed!');
187
+ }
188
+ if (require.main === module) {
189
+ main().catch(console.error);
190
+ }
191
+ //# sourceMappingURL=test-ai-workflow-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-ai-workflow-validation.js","sourceRoot":"","sources":["../../src/scripts/test-ai-workflow-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-api-headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-api-headers.d.ts","sourceRoot":"","sources":["../../src/scripts/test-api-headers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const n8n_api_client_1 = require("../services/n8n-api-client");
5
+ const dotenv_1 = require("dotenv");
6
+ (0, dotenv_1.config)();
7
+ process.env.LOG_LEVEL = 'debug';
8
+ async function testApiHeaders() {
9
+ const apiUrl = process.env.N8N_API_URL || 'https://n8n.energyhouse.com.pl';
10
+ const apiKey = process.env.N8N_API_KEY || 'n8n_api_f94c0b3fb3bf1a3a690f37bb0c5c0de43c7b690c0a33c88b6baaa37ae896dc96';
11
+ console.log('Testing N8nApiClient headers...');
12
+ console.log('API URL:', apiUrl);
13
+ console.log('API Key:', apiKey.substring(0, 20) + '...\n');
14
+ console.log('LOG_LEVEL:', process.env.LOG_LEVEL);
15
+ try {
16
+ const client = new n8n_api_client_1.N8nApiClient({
17
+ baseUrl: apiUrl,
18
+ apiKey: apiKey
19
+ });
20
+ console.log('\nDefault headers on axios instance:');
21
+ console.log(JSON.stringify(client['client'].defaults.headers, null, 2));
22
+ console.log('\nCalling listWorkflows...');
23
+ const workflows = await client.listWorkflows({ limit: 1 });
24
+ console.log('\nResult: Found', workflows.data.length, 'workflows');
25
+ }
26
+ catch (error) {
27
+ console.error('Error:', error.message);
28
+ if (error.response) {
29
+ console.error('Response status:', error.response.status);
30
+ console.error('Response data:', error.response.data);
31
+ }
32
+ }
33
+ }
34
+ testApiHeaders().catch(console.error);
35
+ //# sourceMappingURL=test-api-headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-api-headers.js","sourceRoot":"","sources":["../../src/scripts/test-api-headers.ts"],"names":[],"mappings":";;;AAEA,+DAA0D;AAC1D,mCAAgC;AAGhC,IAAA,eAAM,GAAE,CAAC;AAGT,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;AAEhC,KAAK,UAAU,cAAc;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,gCAAgC,CAAC;IAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,0EAA0E,CAAC;IAErH,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,6BAAY,CAAC;YAC9B,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAGH,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAGxE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAErE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -166,7 +166,7 @@ async function testAutofix() {
166
166
  }
167
167
  logger.info('\nStep 3: Generating fixes (preview mode)...');
168
168
  const autoFixer = new workflow_auto_fixer_1.WorkflowAutoFixer();
169
- const previewResult = autoFixer.generateFixes(testWorkflow, validationResult, allFormatIssues, {
169
+ const previewResult = await autoFixer.generateFixes(testWorkflow, validationResult, allFormatIssues, {
170
170
  applyFixes: false,
171
171
  confidenceThreshold: 'medium'
172
172
  });
@@ -198,7 +198,7 @@ async function testAutofix() {
198
198
  }
199
199
  logger.info('\n\n=== Testing Different Confidence Thresholds ===');
200
200
  for (const threshold of ['high', 'medium', 'low']) {
201
- const result = autoFixer.generateFixes(testWorkflow, validationResult, allFormatIssues, {
201
+ const result = await autoFixer.generateFixes(testWorkflow, validationResult, allFormatIssues, {
202
202
  applyFixes: false,
203
203
  confidenceThreshold: threshold
204
204
  });
@@ -207,7 +207,7 @@ async function testAutofix() {
207
207
  logger.info('\n\n=== Testing Specific Fix Types ===');
208
208
  const fixTypes = ['expression-format', 'typeversion-correction', 'error-output-config'];
209
209
  for (const fixType of fixTypes) {
210
- const result = autoFixer.generateFixes(testWorkflow, validationResult, allFormatIssues, {
210
+ const result = await autoFixer.generateFixes(testWorkflow, validationResult, allFormatIssues, {
211
211
  applyFixes: false,
212
212
  fixTypes: [fixType]
213
213
  });
@@ -1 +1 @@
1
- {"version":3,"file":"test-autofix-workflow.js","sourceRoot":"","sources":["../../src/scripts/test-autofix-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-autofix-workflow.js","sourceRoot":"","sources":["../../src/scripts/test-autofix-workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-batch-processing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-batch-processing.d.ts","sourceRoot":"","sources":["../../src/scripts/test-batch-processing.ts"],"names":[],"mappings":""}
@@ -0,0 +1,144 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const dotenv = __importStar(require("dotenv"));
38
+ const database_adapter_1 = require("../database/database-adapter");
39
+ const template_repository_1 = require("../templates/template-repository");
40
+ const batch_processor_1 = require("../templates/batch-processor");
41
+ dotenv.config();
42
+ async function testBatchProcessing() {
43
+ console.log('🧪 Testing full batch processing with OpenAI Batch API...\n');
44
+ if (!process.env.OPENAI_API_KEY) {
45
+ console.error('❌ OPENAI_API_KEY not set in environment');
46
+ process.exit(1);
47
+ }
48
+ try {
49
+ const db = await (0, database_adapter_1.createDatabaseAdapter)('./data/nodes.db');
50
+ const repository = new template_repository_1.TemplateRepository(db);
51
+ const batchSize = parseInt(process.env.TEST_BATCH_SIZE || '10');
52
+ const templates = repository.getTemplatesWithoutMetadata(batchSize);
53
+ if (templates.length === 0) {
54
+ console.log('✅ All templates already have metadata');
55
+ return;
56
+ }
57
+ console.log(`📊 Found ${templates.length} templates to process in batch\n`);
58
+ const processor = new batch_processor_1.BatchProcessor({
59
+ apiKey: process.env.OPENAI_API_KEY,
60
+ model: process.env.OPENAI_MODEL || 'gpt-4o-mini',
61
+ batchSize: parseInt(process.env.OPENAI_BATCH_SIZE || '100'),
62
+ outputDir: './temp/batch'
63
+ });
64
+ const requests = templates.map(t => {
65
+ let workflow = null;
66
+ try {
67
+ if (t.workflow_json_compressed) {
68
+ const decompressed = Buffer.from(t.workflow_json_compressed, 'base64');
69
+ workflow = JSON.parse(require('zlib').gunzipSync(decompressed).toString());
70
+ }
71
+ else if (t.workflow_json) {
72
+ workflow = JSON.parse(t.workflow_json);
73
+ }
74
+ }
75
+ catch (e) {
76
+ console.warn(`Failed to parse workflow for template ${t.id}`);
77
+ }
78
+ return {
79
+ templateId: t.id,
80
+ name: t.name,
81
+ description: t.description,
82
+ nodes: JSON.parse(t.nodes_used),
83
+ workflow
84
+ };
85
+ });
86
+ console.log('📤 Submitting batch to OpenAI...');
87
+ console.log(' Note: Batch processing can take 2-24 hours to complete\n');
88
+ const results = await processor.processTemplates(requests, (message, current, total) => {
89
+ process.stdout.write(`\r📊 ${message}: ${current}/${total}`);
90
+ });
91
+ console.log('\n\n✅ Batch processing complete!\n');
92
+ const metadataMap = new Map();
93
+ let successCount = 0;
94
+ let errorCount = 0;
95
+ for (const [templateId, result] of results) {
96
+ if (!result.error) {
97
+ metadataMap.set(templateId, result.metadata);
98
+ successCount++;
99
+ }
100
+ else {
101
+ console.warn(` ⚠️ Template ${templateId}: ${result.error}`);
102
+ errorCount++;
103
+ }
104
+ }
105
+ if (metadataMap.size > 0) {
106
+ repository.batchUpdateMetadata(metadataMap);
107
+ console.log(`💾 Updated metadata for ${metadataMap.size} templates`);
108
+ }
109
+ console.log('\n📈 Batch Processing Results:');
110
+ console.log(` - Templates processed: ${templates.length}`);
111
+ console.log(` - Successful: ${successCount}`);
112
+ console.log(` - Errors: ${errorCount}`);
113
+ const stats = repository.getMetadataStats();
114
+ console.log('\n📊 Overall Metadata Statistics:');
115
+ console.log(` - Total templates: ${stats.total}`);
116
+ console.log(` - With metadata: ${stats.withMetadata}`);
117
+ console.log(` - Without metadata: ${stats.withoutMetadata}`);
118
+ console.log(` - Progress: ${Math.round((stats.withMetadata / stats.total) * 100)}%`);
119
+ if ('close' in db && typeof db.close === 'function') {
120
+ db.close();
121
+ }
122
+ }
123
+ catch (error) {
124
+ console.error('\n❌ Error:', error);
125
+ process.exit(1);
126
+ }
127
+ }
128
+ console.log('═══════════════════════════════════════════════════════════════');
129
+ console.log(' OpenAI Batch API Test ');
130
+ console.log('═══════════════════════════════════════════════════════════════');
131
+ console.log();
132
+ console.log('This test will:');
133
+ console.log('1. Create a batch request file (JSONL format)');
134
+ console.log('2. Upload it to OpenAI');
135
+ console.log('3. Create a batch job');
136
+ console.log('4. Monitor the job until completion');
137
+ console.log('5. Retrieve and save results to database');
138
+ console.log();
139
+ console.log('⚠️ Note: Batch jobs can take 2-24 hours to complete');
140
+ console.log(' but typically finish much faster for small batches');
141
+ console.log();
142
+ console.log('═══════════════════════════════════════════════════════════════\n');
143
+ testBatchProcessing().catch(console.error);
144
+ //# sourceMappingURL=test-batch-processing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-batch-processing.js","sourceRoot":"","sources":["../../src/scripts/test-batch-processing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=test-docker-config-simulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-docker-config-simulation.d.ts","sourceRoot":"","sources":["../../src/scripts/test-docker-config-simulation.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const testScript = `
8
+ import { isN8nApiConfigured, getN8nApiConfig } from '../config/n8n-api';
9
+ import { n8nDocumentationToolsFinal } from '../mcp/tools';
10
+ import { n8nManagementTools } from '../mcp/tools-n8n-manager';
11
+
12
+ console.log('\\n=== Simulating Docker Container Startup ===\\n');
13
+
14
+ // Simulate initial module load (before env vars are available)
15
+ console.log('1. Initial module load (no env vars):');
16
+ console.log(' Is configured:', isN8nApiConfigured());
17
+ console.log(' Config:', getN8nApiConfig());
18
+
19
+ // Simulate environment variables becoming available later
20
+ // (This happens in Docker when env vars are injected after module load)
21
+ console.log('\\n2. Setting environment variables (simulating Docker env injection):');
22
+ process.env.N8N_API_URL = 'https://docker-test.n8n.cloud';
23
+ process.env.N8N_API_KEY = 'docker-test-api-key';
24
+
25
+ // Wait a bit then check again
26
+ setTimeout(() => {
27
+ console.log('\\n3. After env vars are set (with cache expired):');
28
+ console.log(' Is configured:', isN8nApiConfigured());
29
+ const config = getN8nApiConfig();
30
+ console.log(' Config URL:', config?.baseUrl || 'null');
31
+
32
+ // Simulate MCP tool listing
33
+ console.log('\\n4. Tool registration check:');
34
+ const tools = [...n8nDocumentationToolsFinal];
35
+
36
+ if (isN8nApiConfigured()) {
37
+ tools.push(...n8nManagementTools);
38
+ console.log(' ✓ Management tools would be registered');
39
+ } else {
40
+ console.log(' ✗ Management tools would NOT be registered');
41
+ }
42
+
43
+ console.log(' Total tools available:', tools.length);
44
+ console.log(' Documentation tools:', n8nDocumentationToolsFinal.length);
45
+ console.log(' Management tools:', isN8nApiConfigured() ? n8nManagementTools.length : 0);
46
+
47
+ console.log('\\n=== Test Complete ===\\n');
48
+ process.exit(0);
49
+ }, 5500); // Wait longer than cache duration
50
+ `;
51
+ const testFilePath = (0, path_1.join)(__dirname, 'temp-docker-test.js');
52
+ (0, fs_1.writeFileSync)(testFilePath, testScript);
53
+ console.log('Running Docker configuration simulation...');
54
+ console.log('This test runs in a clean environment without pre-existing env vars.\n');
55
+ const child = (0, child_process_1.spawn)('node', [testFilePath], {
56
+ cwd: (0, path_1.join)(__dirname, '..', '..', 'dist', 'scripts'),
57
+ env: {
58
+ PATH: process.env.PATH,
59
+ NODE_ENV: 'test'
60
+ },
61
+ stdio: 'inherit'
62
+ });
63
+ child.on('exit', (code) => {
64
+ try {
65
+ (0, fs_1.unlinkSync)(testFilePath);
66
+ }
67
+ catch (e) {
68
+ }
69
+ if (code !== 0) {
70
+ console.error(`Test failed with exit code ${code}`);
71
+ process.exit(code);
72
+ }
73
+ });
74
+ //# sourceMappingURL=test-docker-config-simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-docker-config-simulation.js","sourceRoot":"","sources":["../../src/scripts/test-docker-config-simulation.ts"],"names":[],"mappings":";;;AAQA,iDAAsC;AACtC,2BAA+C;AAC/C,+BAA4B;AAG5B,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ClB,CAAC;AAGF,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAC5D,IAAA,kBAAa,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAExC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC1D,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;AAGtF,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE;IAC1C,GAAG,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;IACnD,GAAG,EAAE;QAEH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;QACtB,QAAQ,EAAE,MAAM;KACjB;IACD,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC;AAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;IAExB,IAAI,CAAC;QACH,IAAA,eAAU,EAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;IAEb,CAAC;IAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ //# sourceMappingURL=test-enhanced-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-enhanced-validation.d.ts","sourceRoot":"","sources":["../../src/scripts/test-enhanced-validation.ts"],"names":[],"mappings":""}