n8n-mcp 2.7.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 (375) hide show
  1. package/.env.example +79 -0
  2. package/LICENSE +21 -0
  3. package/README.md +670 -0
  4. package/data/nodes.db +0 -0
  5. package/dist/config/n8n-api.d.ts +9 -0
  6. package/dist/config/n8n-api.d.ts.map +1 -0
  7. package/dist/config/n8n-api.js +41 -0
  8. package/dist/config/n8n-api.js.map +1 -0
  9. package/dist/database/database-adapter.d.ts +32 -0
  10. package/dist/database/database-adapter.d.ts.map +1 -0
  11. package/dist/database/database-adapter.js +328 -0
  12. package/dist/database/database-adapter.js.map +1 -0
  13. package/dist/database/node-repository.d.ts +11 -0
  14. package/dist/database/node-repository.d.ts.map +1 -0
  15. package/dist/database/node-repository.js +67 -0
  16. package/dist/database/node-repository.js.map +1 -0
  17. package/dist/http-server-single-session.d.ts +21 -0
  18. package/dist/http-server-single-session.d.ts.map +1 -0
  19. package/dist/http-server-single-session.js +279 -0
  20. package/dist/http-server-single-session.js.map +1 -0
  21. package/dist/http-server.d.ts +9 -0
  22. package/dist/http-server.d.ts.map +1 -0
  23. package/dist/http-server.js +342 -0
  24. package/dist/http-server.js.map +1 -0
  25. package/dist/index.d.ts +7 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +17 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/loaders/node-loader.d.ts +11 -0
  30. package/dist/loaders/node-loader.d.ts.map +1 -0
  31. package/dist/loaders/node-loader.js +79 -0
  32. package/dist/loaders/node-loader.js.map +1 -0
  33. package/dist/mappers/docs-mapper.d.ts +6 -0
  34. package/dist/mappers/docs-mapper.d.ts.map +1 -0
  35. package/dist/mappers/docs-mapper.js +59 -0
  36. package/dist/mappers/docs-mapper.js.map +1 -0
  37. package/dist/mcp/absolute-minimal.d.ts +4 -0
  38. package/dist/mcp/absolute-minimal.d.ts.map +1 -0
  39. package/dist/mcp/absolute-minimal.js +34 -0
  40. package/dist/mcp/absolute-minimal.js.map +1 -0
  41. package/dist/mcp/fixed-protocol.d.ts +17 -0
  42. package/dist/mcp/fixed-protocol.d.ts.map +1 -0
  43. package/dist/mcp/fixed-protocol.js +162 -0
  44. package/dist/mcp/fixed-protocol.js.map +1 -0
  45. package/dist/mcp/handlers-documentation.d.ts +18 -0
  46. package/dist/mcp/handlers-documentation.d.ts.map +1 -0
  47. package/dist/mcp/handlers-documentation.js +113 -0
  48. package/dist/mcp/handlers-documentation.js.map +1 -0
  49. package/dist/mcp/handlers-n8n-manager.d.ts +21 -0
  50. package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -0
  51. package/dist/mcp/handlers-n8n-manager.js +827 -0
  52. package/dist/mcp/handlers-n8n-manager.js.map +1 -0
  53. package/dist/mcp/handlers-workflow-diff.d.ts +3 -0
  54. package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -0
  55. package/dist/mcp/handlers-workflow-diff.js +125 -0
  56. package/dist/mcp/handlers-workflow-diff.js.map +1 -0
  57. package/dist/mcp/index.d.ts +3 -0
  58. package/dist/mcp/index.d.ts.map +1 -0
  59. package/dist/mcp/index.js +106 -0
  60. package/dist/mcp/index.js.map +1 -0
  61. package/dist/mcp/minimal-test.d.ts +3 -0
  62. package/dist/mcp/minimal-test.d.ts.map +1 -0
  63. package/dist/mcp/minimal-test.js +83 -0
  64. package/dist/mcp/minimal-test.js.map +1 -0
  65. package/dist/mcp/server.d.ts +42 -0
  66. package/dist/mcp/server.d.ts.map +1 -0
  67. package/dist/mcp/server.js +1258 -0
  68. package/dist/mcp/server.js.map +1 -0
  69. package/dist/mcp/stderr-test.d.ts +2 -0
  70. package/dist/mcp/stderr-test.d.ts.map +1 -0
  71. package/dist/mcp/stderr-test.js +32 -0
  72. package/dist/mcp/stderr-test.js.map +1 -0
  73. package/dist/mcp/stdio-wrapper.d.ts +3 -0
  74. package/dist/mcp/stdio-wrapper.d.ts.map +1 -0
  75. package/dist/mcp/stdio-wrapper.js +52 -0
  76. package/dist/mcp/stdio-wrapper.js.map +1 -0
  77. package/dist/mcp/tools-documentation.d.ts +34 -0
  78. package/dist/mcp/tools-documentation.d.ts.map +1 -0
  79. package/dist/mcp/tools-documentation.js +609 -0
  80. package/dist/mcp/tools-documentation.js.map +1 -0
  81. package/dist/mcp/tools-n8n-manager.d.ts +3 -0
  82. package/dist/mcp/tools-n8n-manager.d.ts.map +1 -0
  83. package/dist/mcp/tools-n8n-manager.js +496 -0
  84. package/dist/mcp/tools-n8n-manager.js.map +1 -0
  85. package/dist/mcp/tools.d.ts +3 -0
  86. package/dist/mcp/tools.d.ts.map +1 -0
  87. package/dist/mcp/tools.js +405 -0
  88. package/dist/mcp/tools.js.map +1 -0
  89. package/dist/mcp/ultra-minimal.d.ts +8 -0
  90. package/dist/mcp/ultra-minimal.d.ts.map +1 -0
  91. package/dist/mcp/ultra-minimal.js +93 -0
  92. package/dist/mcp/ultra-minimal.js.map +1 -0
  93. package/dist/mcp/working-test.d.ts +3 -0
  94. package/dist/mcp/working-test.d.ts.map +1 -0
  95. package/dist/mcp/working-test.js +48 -0
  96. package/dist/mcp/working-test.js.map +1 -0
  97. package/dist/mcp/wrapper.sh +28 -0
  98. package/dist/mcp-engine.d.ts +32 -0
  99. package/dist/mcp-engine.d.ts.map +1 -0
  100. package/dist/mcp-engine.js +63 -0
  101. package/dist/mcp-engine.js.map +1 -0
  102. package/dist/n8n/MCPApi.credentials.d.ts +8 -0
  103. package/dist/n8n/MCPApi.credentials.d.ts.map +1 -0
  104. package/dist/n8n/MCPApi.credentials.js +53 -0
  105. package/dist/n8n/MCPApi.credentials.js.map +1 -0
  106. package/dist/n8n/MCPNode.node.d.ts +13 -0
  107. package/dist/n8n/MCPNode.node.d.ts.map +1 -0
  108. package/dist/n8n/MCPNode.node.js +260 -0
  109. package/dist/n8n/MCPNode.node.js.map +1 -0
  110. package/dist/parsers/node-parser.d.ts +30 -0
  111. package/dist/parsers/node-parser.d.ts.map +1 -0
  112. package/dist/parsers/node-parser.js +152 -0
  113. package/dist/parsers/node-parser.js.map +1 -0
  114. package/dist/parsers/property-extractor.d.ts +10 -0
  115. package/dist/parsers/property-extractor.d.ts.map +1 -0
  116. package/dist/parsers/property-extractor.js +155 -0
  117. package/dist/parsers/property-extractor.js.map +1 -0
  118. package/dist/parsers/simple-parser.d.ts +24 -0
  119. package/dist/parsers/simple-parser.d.ts.map +1 -0
  120. package/dist/parsers/simple-parser.js +160 -0
  121. package/dist/parsers/simple-parser.js.map +1 -0
  122. package/dist/scripts/debug-n8n-auth.d.ts +3 -0
  123. package/dist/scripts/debug-n8n-auth.d.ts.map +1 -0
  124. package/dist/scripts/debug-n8n-auth.js +97 -0
  125. package/dist/scripts/debug-n8n-auth.js.map +1 -0
  126. package/dist/scripts/debug-node.d.ts +3 -0
  127. package/dist/scripts/debug-node.d.ts.map +1 -0
  128. package/dist/scripts/debug-node.js +59 -0
  129. package/dist/scripts/debug-node.js.map +1 -0
  130. package/dist/scripts/extract-from-docker.d.ts +3 -0
  131. package/dist/scripts/extract-from-docker.d.ts.map +1 -0
  132. package/dist/scripts/extract-from-docker.js +210 -0
  133. package/dist/scripts/extract-from-docker.js.map +1 -0
  134. package/dist/scripts/fetch-templates-robust.d.ts +4 -0
  135. package/dist/scripts/fetch-templates-robust.d.ts.map +1 -0
  136. package/dist/scripts/fetch-templates-robust.js +126 -0
  137. package/dist/scripts/fetch-templates-robust.js.map +1 -0
  138. package/dist/scripts/fetch-templates.d.ts +4 -0
  139. package/dist/scripts/fetch-templates.d.ts.map +1 -0
  140. package/dist/scripts/fetch-templates.js +94 -0
  141. package/dist/scripts/fetch-templates.js.map +1 -0
  142. package/dist/scripts/rebuild-database.d.ts +4 -0
  143. package/dist/scripts/rebuild-database.d.ts.map +1 -0
  144. package/dist/scripts/rebuild-database.js +95 -0
  145. package/dist/scripts/rebuild-database.js.map +1 -0
  146. package/dist/scripts/rebuild-optimized.d.ts +3 -0
  147. package/dist/scripts/rebuild-optimized.d.ts.map +1 -0
  148. package/dist/scripts/rebuild-optimized.js +198 -0
  149. package/dist/scripts/rebuild-optimized.js.map +1 -0
  150. package/dist/scripts/rebuild.d.ts +3 -0
  151. package/dist/scripts/rebuild.d.ts.map +1 -0
  152. package/dist/scripts/rebuild.js +163 -0
  153. package/dist/scripts/rebuild.js.map +1 -0
  154. package/dist/scripts/sanitize-templates.d.ts +3 -0
  155. package/dist/scripts/sanitize-templates.d.ts.map +1 -0
  156. package/dist/scripts/sanitize-templates.js +56 -0
  157. package/dist/scripts/sanitize-templates.js.map +1 -0
  158. package/dist/scripts/test-ai-workflow-validation.d.ts +3 -0
  159. package/dist/scripts/test-ai-workflow-validation.d.ts.map +1 -0
  160. package/dist/scripts/test-ai-workflow-validation.js +191 -0
  161. package/dist/scripts/test-ai-workflow-validation.js.map +1 -0
  162. package/dist/scripts/test-api-headers.d.ts +3 -0
  163. package/dist/scripts/test-api-headers.d.ts.map +1 -0
  164. package/dist/scripts/test-api-headers.js +35 -0
  165. package/dist/scripts/test-api-headers.js.map +1 -0
  166. package/dist/scripts/test-docker-config-simulation.d.ts +3 -0
  167. package/dist/scripts/test-docker-config-simulation.d.ts.map +1 -0
  168. package/dist/scripts/test-docker-config-simulation.js +74 -0
  169. package/dist/scripts/test-docker-config-simulation.js.map +1 -0
  170. package/dist/scripts/test-enhanced-validation.d.ts +3 -0
  171. package/dist/scripts/test-enhanced-validation.d.ts.map +1 -0
  172. package/dist/scripts/test-enhanced-validation.js +117 -0
  173. package/dist/scripts/test-enhanced-validation.js.map +1 -0
  174. package/dist/scripts/test-lazy-config.d.ts +3 -0
  175. package/dist/scripts/test-lazy-config.d.ts.map +1 -0
  176. package/dist/scripts/test-lazy-config.js +60 -0
  177. package/dist/scripts/test-lazy-config.js.map +1 -0
  178. package/dist/scripts/test-limited-results.d.ts +3 -0
  179. package/dist/scripts/test-limited-results.d.ts.map +1 -0
  180. package/dist/scripts/test-limited-results.js +76 -0
  181. package/dist/scripts/test-limited-results.js.map +1 -0
  182. package/dist/scripts/test-mcp-n8n-update-partial.d.ts +3 -0
  183. package/dist/scripts/test-mcp-n8n-update-partial.d.ts.map +1 -0
  184. package/dist/scripts/test-mcp-n8n-update-partial.js +138 -0
  185. package/dist/scripts/test-mcp-n8n-update-partial.js.map +1 -0
  186. package/dist/scripts/test-mcp-tools.d.ts +3 -0
  187. package/dist/scripts/test-mcp-tools.d.ts.map +1 -0
  188. package/dist/scripts/test-mcp-tools.js +36 -0
  189. package/dist/scripts/test-mcp-tools.js.map +1 -0
  190. package/dist/scripts/test-n8n-manager-integration.d.ts +3 -0
  191. package/dist/scripts/test-n8n-manager-integration.d.ts.map +1 -0
  192. package/dist/scripts/test-n8n-manager-integration.js +122 -0
  193. package/dist/scripts/test-n8n-manager-integration.js.map +1 -0
  194. package/dist/scripts/test-n8n-validate-workflow.d.ts +3 -0
  195. package/dist/scripts/test-n8n-validate-workflow.d.ts.map +1 -0
  196. package/dist/scripts/test-n8n-validate-workflow.js +125 -0
  197. package/dist/scripts/test-n8n-validate-workflow.js.map +1 -0
  198. package/dist/scripts/test-nodes.d.ts +3 -0
  199. package/dist/scripts/test-nodes.d.ts.map +1 -0
  200. package/dist/scripts/test-nodes.js +91 -0
  201. package/dist/scripts/test-nodes.js.map +1 -0
  202. package/dist/scripts/test-single-workflow.d.ts +3 -0
  203. package/dist/scripts/test-single-workflow.d.ts.map +1 -0
  204. package/dist/scripts/test-single-workflow.js +112 -0
  205. package/dist/scripts/test-single-workflow.js.map +1 -0
  206. package/dist/scripts/test-template-validation.d.ts +3 -0
  207. package/dist/scripts/test-template-validation.d.ts.map +1 -0
  208. package/dist/scripts/test-template-validation.js +142 -0
  209. package/dist/scripts/test-template-validation.js.map +1 -0
  210. package/dist/scripts/test-templates.d.ts +4 -0
  211. package/dist/scripts/test-templates.d.ts.map +1 -0
  212. package/dist/scripts/test-templates.js +99 -0
  213. package/dist/scripts/test-templates.js.map +1 -0
  214. package/dist/scripts/test-transactional-diff.d.ts +2 -0
  215. package/dist/scripts/test-transactional-diff.d.ts.map +1 -0
  216. package/dist/scripts/test-transactional-diff.js +240 -0
  217. package/dist/scripts/test-transactional-diff.js.map +1 -0
  218. package/dist/scripts/test-update-partial-debug.d.ts +3 -0
  219. package/dist/scripts/test-update-partial-debug.d.ts.map +1 -0
  220. package/dist/scripts/test-update-partial-debug.js +92 -0
  221. package/dist/scripts/test-update-partial-debug.js.map +1 -0
  222. package/dist/scripts/test-version-extraction.d.ts +2 -0
  223. package/dist/scripts/test-version-extraction.d.ts.map +1 -0
  224. package/dist/scripts/test-version-extraction.js +74 -0
  225. package/dist/scripts/test-version-extraction.js.map +1 -0
  226. package/dist/scripts/test-workflow-diff.d.ts +3 -0
  227. package/dist/scripts/test-workflow-diff.d.ts.map +1 -0
  228. package/dist/scripts/test-workflow-diff.js +328 -0
  229. package/dist/scripts/test-workflow-diff.js.map +1 -0
  230. package/dist/scripts/test-workflow-validation.d.ts +3 -0
  231. package/dist/scripts/test-workflow-validation.d.ts.map +1 -0
  232. package/dist/scripts/test-workflow-validation.js +238 -0
  233. package/dist/scripts/test-workflow-validation.js.map +1 -0
  234. package/dist/scripts/validate.d.ts +3 -0
  235. package/dist/scripts/validate.d.ts.map +1 -0
  236. package/dist/scripts/validate.js +121 -0
  237. package/dist/scripts/validate.js.map +1 -0
  238. package/dist/scripts/validation-summary.d.ts +3 -0
  239. package/dist/scripts/validation-summary.d.ts.map +1 -0
  240. package/dist/scripts/validation-summary.js +135 -0
  241. package/dist/scripts/validation-summary.js.map +1 -0
  242. package/dist/services/config-validator.d.ts +39 -0
  243. package/dist/services/config-validator.d.ts.map +1 -0
  244. package/dist/services/config-validator.js +376 -0
  245. package/dist/services/config-validator.js.map +1 -0
  246. package/dist/services/enhanced-config-validator.d.ts +38 -0
  247. package/dist/services/enhanced-config-validator.d.ts.map +1 -0
  248. package/dist/services/enhanced-config-validator.js +300 -0
  249. package/dist/services/enhanced-config-validator.js.map +1 -0
  250. package/dist/services/example-generator.d.ts +14 -0
  251. package/dist/services/example-generator.d.ts.map +1 -0
  252. package/dist/services/example-generator.js +556 -0
  253. package/dist/services/example-generator.js.map +1 -0
  254. package/dist/services/expression-validator.d.ts +27 -0
  255. package/dist/services/expression-validator.d.ts.map +1 -0
  256. package/dist/services/expression-validator.js +163 -0
  257. package/dist/services/expression-validator.js.map +1 -0
  258. package/dist/services/n8n-api-client.d.ts +39 -0
  259. package/dist/services/n8n-api-client.d.ts.map +1 -0
  260. package/dist/services/n8n-api-client.js +326 -0
  261. package/dist/services/n8n-api-client.js.map +1 -0
  262. package/dist/services/n8n-validation.d.ts +127 -0
  263. package/dist/services/n8n-validation.d.ts.map +1 -0
  264. package/dist/services/n8n-validation.js +238 -0
  265. package/dist/services/n8n-validation.js.map +1 -0
  266. package/dist/services/node-documentation-service.d.ts +70 -0
  267. package/dist/services/node-documentation-service.d.ts.map +1 -0
  268. package/dist/services/node-documentation-service.js +518 -0
  269. package/dist/services/node-documentation-service.js.map +1 -0
  270. package/dist/services/node-specific-validators.d.ts +28 -0
  271. package/dist/services/node-specific-validators.d.ts.map +1 -0
  272. package/dist/services/node-specific-validators.js +666 -0
  273. package/dist/services/node-specific-validators.js.map +1 -0
  274. package/dist/services/property-dependencies.d.ts +36 -0
  275. package/dist/services/property-dependencies.d.ts.map +1 -0
  276. package/dist/services/property-dependencies.js +168 -0
  277. package/dist/services/property-dependencies.js.map +1 -0
  278. package/dist/services/property-filter.d.ts +39 -0
  279. package/dist/services/property-filter.d.ts.map +1 -0
  280. package/dist/services/property-filter.js +362 -0
  281. package/dist/services/property-filter.js.map +1 -0
  282. package/dist/services/task-templates.d.ts +26 -0
  283. package/dist/services/task-templates.d.ts.map +1 -0
  284. package/dist/services/task-templates.js +555 -0
  285. package/dist/services/task-templates.js.map +1 -0
  286. package/dist/services/workflow-diff-engine.d.ts +31 -0
  287. package/dist/services/workflow-diff-engine.d.ts.map +1 -0
  288. package/dist/services/workflow-diff-engine.js +478 -0
  289. package/dist/services/workflow-diff-engine.js.map +1 -0
  290. package/dist/services/workflow-validator.d.ts +87 -0
  291. package/dist/services/workflow-validator.d.ts.map +1 -0
  292. package/dist/services/workflow-validator.js +656 -0
  293. package/dist/services/workflow-validator.js.map +1 -0
  294. package/dist/templates/template-fetcher.d.ts +41 -0
  295. package/dist/templates/template-fetcher.d.ts.map +1 -0
  296. package/dist/templates/template-fetcher.js +94 -0
  297. package/dist/templates/template-fetcher.js.map +1 -0
  298. package/dist/templates/template-repository.d.ts +34 -0
  299. package/dist/templates/template-repository.d.ts.map +1 -0
  300. package/dist/templates/template-repository.js +121 -0
  301. package/dist/templates/template-repository.js.map +1 -0
  302. package/dist/templates/template-service.d.ts +31 -0
  303. package/dist/templates/template-service.d.ts.map +1 -0
  304. package/dist/templates/template-service.js +131 -0
  305. package/dist/templates/template-service.js.map +1 -0
  306. package/dist/types/index.d.ts +31 -0
  307. package/dist/types/index.d.ts.map +1 -0
  308. package/dist/types/index.js +3 -0
  309. package/dist/types/index.js.map +1 -0
  310. package/dist/types/n8n-api.d.ts +241 -0
  311. package/dist/types/n8n-api.d.ts.map +1 -0
  312. package/dist/types/n8n-api.js +10 -0
  313. package/dist/types/n8n-api.js.map +1 -0
  314. package/dist/types/workflow-diff.d.ts +113 -0
  315. package/dist/types/workflow-diff.d.ts.map +1 -0
  316. package/dist/types/workflow-diff.js +15 -0
  317. package/dist/types/workflow-diff.js.map +1 -0
  318. package/dist/utils/auth.d.ts +12 -0
  319. package/dist/utils/auth.d.ts.map +1 -0
  320. package/dist/utils/auth.js +66 -0
  321. package/dist/utils/auth.js.map +1 -0
  322. package/dist/utils/bridge.d.ts +12 -0
  323. package/dist/utils/bridge.d.ts.map +1 -0
  324. package/dist/utils/bridge.js +127 -0
  325. package/dist/utils/bridge.js.map +1 -0
  326. package/dist/utils/console-manager.d.ts +10 -0
  327. package/dist/utils/console-manager.d.ts.map +1 -0
  328. package/dist/utils/console-manager.js +63 -0
  329. package/dist/utils/console-manager.js.map +1 -0
  330. package/dist/utils/documentation-fetcher.d.ts +2 -0
  331. package/dist/utils/documentation-fetcher.d.ts.map +1 -0
  332. package/dist/utils/documentation-fetcher.js +18 -0
  333. package/dist/utils/documentation-fetcher.js.map +1 -0
  334. package/dist/utils/enhanced-documentation-fetcher.d.ts +73 -0
  335. package/dist/utils/enhanced-documentation-fetcher.d.ts.map +1 -0
  336. package/dist/utils/enhanced-documentation-fetcher.js +397 -0
  337. package/dist/utils/enhanced-documentation-fetcher.js.map +1 -0
  338. package/dist/utils/error-handler.d.ts +24 -0
  339. package/dist/utils/error-handler.d.ts.map +1 -0
  340. package/dist/utils/error-handler.js +84 -0
  341. package/dist/utils/error-handler.js.map +1 -0
  342. package/dist/utils/example-generator.d.ts +8 -0
  343. package/dist/utils/example-generator.d.ts.map +1 -0
  344. package/dist/utils/example-generator.js +106 -0
  345. package/dist/utils/example-generator.js.map +1 -0
  346. package/dist/utils/logger.d.ts +32 -0
  347. package/dist/utils/logger.d.ts.map +1 -0
  348. package/dist/utils/logger.js +97 -0
  349. package/dist/utils/logger.js.map +1 -0
  350. package/dist/utils/mcp-client.d.ts +21 -0
  351. package/dist/utils/mcp-client.d.ts.map +1 -0
  352. package/dist/utils/mcp-client.js +96 -0
  353. package/dist/utils/mcp-client.js.map +1 -0
  354. package/dist/utils/n8n-errors.d.ts +25 -0
  355. package/dist/utils/n8n-errors.d.ts.map +1 -0
  356. package/dist/utils/n8n-errors.js +129 -0
  357. package/dist/utils/n8n-errors.js.map +1 -0
  358. package/dist/utils/node-source-extractor.d.ts +21 -0
  359. package/dist/utils/node-source-extractor.d.ts.map +1 -0
  360. package/dist/utils/node-source-extractor.js +377 -0
  361. package/dist/utils/node-source-extractor.js.map +1 -0
  362. package/dist/utils/simple-cache.d.ts +8 -0
  363. package/dist/utils/simple-cache.d.ts.map +1 -0
  364. package/dist/utils/simple-cache.js +34 -0
  365. package/dist/utils/simple-cache.js.map +1 -0
  366. package/dist/utils/template-sanitizer.d.ts +21 -0
  367. package/dist/utils/template-sanitizer.d.ts.map +1 -0
  368. package/dist/utils/template-sanitizer.js +108 -0
  369. package/dist/utils/template-sanitizer.js.map +1 -0
  370. package/dist/utils/version.d.ts +2 -0
  371. package/dist/utils/version.d.ts.map +1 -0
  372. package/dist/utils/version.js +18 -0
  373. package/dist/utils/version.js.map +1 -0
  374. package/package.json +100 -0
  375. package/package.runtime.json +19 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceNotFoundError = exports.ToolNotFoundError = exports.ValidationError = exports.AuthenticationError = exports.N8NConnectionError = exports.MCPError = void 0;
4
+ exports.handleError = handleError;
5
+ exports.withErrorHandling = withErrorHandling;
6
+ const logger_1 = require("./logger");
7
+ class MCPError extends Error {
8
+ constructor(message, code, statusCode, data) {
9
+ super(message);
10
+ this.name = 'MCPError';
11
+ this.code = code;
12
+ this.statusCode = statusCode;
13
+ this.data = data;
14
+ }
15
+ }
16
+ exports.MCPError = MCPError;
17
+ class N8NConnectionError extends MCPError {
18
+ constructor(message, data) {
19
+ super(message, 'N8N_CONNECTION_ERROR', 503, data);
20
+ this.name = 'N8NConnectionError';
21
+ }
22
+ }
23
+ exports.N8NConnectionError = N8NConnectionError;
24
+ class AuthenticationError extends MCPError {
25
+ constructor(message = 'Authentication failed') {
26
+ super(message, 'AUTH_ERROR', 401);
27
+ this.name = 'AuthenticationError';
28
+ }
29
+ }
30
+ exports.AuthenticationError = AuthenticationError;
31
+ class ValidationError extends MCPError {
32
+ constructor(message, data) {
33
+ super(message, 'VALIDATION_ERROR', 400, data);
34
+ this.name = 'ValidationError';
35
+ }
36
+ }
37
+ exports.ValidationError = ValidationError;
38
+ class ToolNotFoundError extends MCPError {
39
+ constructor(toolName) {
40
+ super(`Tool '${toolName}' not found`, 'TOOL_NOT_FOUND', 404);
41
+ this.name = 'ToolNotFoundError';
42
+ }
43
+ }
44
+ exports.ToolNotFoundError = ToolNotFoundError;
45
+ class ResourceNotFoundError extends MCPError {
46
+ constructor(resourceUri) {
47
+ super(`Resource '${resourceUri}' not found`, 'RESOURCE_NOT_FOUND', 404);
48
+ this.name = 'ResourceNotFoundError';
49
+ }
50
+ }
51
+ exports.ResourceNotFoundError = ResourceNotFoundError;
52
+ function handleError(error) {
53
+ if (error instanceof MCPError) {
54
+ return error;
55
+ }
56
+ if (error.response) {
57
+ const status = error.response.status;
58
+ const message = error.response.data?.message || error.message;
59
+ if (status === 401) {
60
+ return new AuthenticationError(message);
61
+ }
62
+ else if (status === 404) {
63
+ return new MCPError(message, 'NOT_FOUND', 404);
64
+ }
65
+ else if (status >= 500) {
66
+ return new N8NConnectionError(message);
67
+ }
68
+ return new MCPError(message, 'API_ERROR', status);
69
+ }
70
+ if (error.code === 'ECONNREFUSED') {
71
+ return new N8NConnectionError('Cannot connect to n8n API');
72
+ }
73
+ return new MCPError(error.message || 'An unexpected error occurred', 'UNKNOWN_ERROR', 500);
74
+ }
75
+ async function withErrorHandling(operation, context) {
76
+ try {
77
+ return await operation();
78
+ }
79
+ catch (error) {
80
+ logger_1.logger.error(`Error in ${context}:`, error);
81
+ throw handleError(error);
82
+ }
83
+ }
84
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare class ExampleGenerator {
2
+ static generateFromNodeDefinition(nodeDefinition: any): any;
3
+ static generateExampleParameters(nodeDefinition: any): any;
4
+ private static generateExampleValue;
5
+ private static generateNodeId;
6
+ static generateFromOperations(operations: any[]): any;
7
+ }
8
+ //# sourceMappingURL=example-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-generator.d.ts","sourceRoot":"","sources":["../../src/utils/example-generator.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAgB;IAI3B,MAAM,CAAC,0BAA0B,CAAC,cAAc,EAAE,GAAG,GAAG,GAAG;IA0B3D,MAAM,CAAC,yBAAyB,CAAC,cAAc,EAAE,GAAG,GAAG,GAAG;IA6B1D,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsCnC,OAAO,CAAC,MAAM,CAAC,cAAc;IAQ7B,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG;CA+BtD"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExampleGenerator = void 0;
4
+ class ExampleGenerator {
5
+ static generateFromNodeDefinition(nodeDefinition) {
6
+ const nodeName = nodeDefinition.displayName || 'Example Node';
7
+ const nodeType = nodeDefinition.name || 'n8n-nodes-base.exampleNode';
8
+ return {
9
+ name: `${nodeName} Example Workflow`,
10
+ nodes: [
11
+ {
12
+ parameters: this.generateExampleParameters(nodeDefinition),
13
+ id: this.generateNodeId(),
14
+ name: nodeName,
15
+ type: nodeType,
16
+ typeVersion: nodeDefinition.version || 1,
17
+ position: [250, 300],
18
+ },
19
+ ],
20
+ connections: {},
21
+ active: false,
22
+ settings: {},
23
+ tags: ['example', 'generated'],
24
+ };
25
+ }
26
+ static generateExampleParameters(nodeDefinition) {
27
+ const params = {};
28
+ if (Array.isArray(nodeDefinition.properties)) {
29
+ for (const prop of nodeDefinition.properties) {
30
+ if (prop.name && prop.type) {
31
+ params[prop.name] = this.generateExampleValue(prop);
32
+ }
33
+ }
34
+ }
35
+ if (nodeDefinition.displayName?.toLowerCase().includes('trigger')) {
36
+ params.pollTimes = {
37
+ item: [
38
+ {
39
+ mode: 'everyMinute',
40
+ },
41
+ ],
42
+ };
43
+ }
44
+ return params;
45
+ }
46
+ static generateExampleValue(property) {
47
+ switch (property.type) {
48
+ case 'string':
49
+ if (property.name.toLowerCase().includes('url')) {
50
+ return 'https://example.com';
51
+ }
52
+ if (property.name.toLowerCase().includes('email')) {
53
+ return 'user@example.com';
54
+ }
55
+ if (property.name.toLowerCase().includes('name')) {
56
+ return 'Example Name';
57
+ }
58
+ return property.default || 'example-value';
59
+ case 'number':
60
+ return property.default || 10;
61
+ case 'boolean':
62
+ return property.default !== undefined ? property.default : true;
63
+ case 'options':
64
+ if (property.options && property.options.length > 0) {
65
+ return property.options[0].value;
66
+ }
67
+ return property.default || '';
68
+ case 'collection':
69
+ case 'fixedCollection':
70
+ return {};
71
+ default:
72
+ return property.default || null;
73
+ }
74
+ }
75
+ static generateNodeId() {
76
+ return Math.random().toString(36).substring(2, 15) +
77
+ Math.random().toString(36).substring(2, 15);
78
+ }
79
+ static generateFromOperations(operations) {
80
+ const examples = [];
81
+ if (!operations || operations.length === 0) {
82
+ return examples;
83
+ }
84
+ const resourceMap = new Map();
85
+ for (const op of operations) {
86
+ if (!resourceMap.has(op.resource)) {
87
+ resourceMap.set(op.resource, []);
88
+ }
89
+ resourceMap.get(op.resource).push(op);
90
+ }
91
+ for (const [resource, ops] of resourceMap) {
92
+ examples.push({
93
+ resource,
94
+ operation: ops[0].operation,
95
+ description: `Example: ${ops[0].description}`,
96
+ parameters: {
97
+ resource,
98
+ operation: ops[0].operation,
99
+ },
100
+ });
101
+ }
102
+ return examples;
103
+ }
104
+ }
105
+ exports.ExampleGenerator = ExampleGenerator;
106
+ //# sourceMappingURL=example-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-generator.js","sourceRoot":"","sources":["../../src/utils/example-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export declare enum LogLevel {
2
+ ERROR = 0,
3
+ WARN = 1,
4
+ INFO = 2,
5
+ DEBUG = 3
6
+ }
7
+ export interface LoggerConfig {
8
+ level: LogLevel;
9
+ prefix?: string;
10
+ timestamp?: boolean;
11
+ }
12
+ export declare class Logger {
13
+ private config;
14
+ private static instance;
15
+ private useFileLogging;
16
+ private fileStream;
17
+ private readonly isStdio;
18
+ private readonly isDisabled;
19
+ private readonly isHttp;
20
+ constructor(config?: Partial<LoggerConfig>);
21
+ static getInstance(config?: Partial<LoggerConfig>): Logger;
22
+ private formatMessage;
23
+ private log;
24
+ error(message: string, ...args: any[]): void;
25
+ warn(message: string, ...args: any[]): void;
26
+ info(message: string, ...args: any[]): void;
27
+ debug(message: string, ...args: any[]): void;
28
+ setLevel(level: LogLevel): void;
29
+ static parseLogLevel(level: string): LogLevel;
30
+ }
31
+ export declare const logger: Logger;
32
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiD;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE9C,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAS1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM;IAO1D,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,GAAG;IA+BX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;CAa9C;AAGD,eAAO,MAAM,MAAM,QAEjB,CAAC"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = exports.Logger = exports.LogLevel = void 0;
4
+ var LogLevel;
5
+ (function (LogLevel) {
6
+ LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
7
+ LogLevel[LogLevel["WARN"] = 1] = "WARN";
8
+ LogLevel[LogLevel["INFO"] = 2] = "INFO";
9
+ LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
10
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
11
+ class Logger {
12
+ constructor(config) {
13
+ this.useFileLogging = false;
14
+ this.fileStream = null;
15
+ this.isStdio = process.env.MCP_MODE === 'stdio';
16
+ this.isDisabled = process.env.DISABLE_CONSOLE_OUTPUT === 'true';
17
+ this.isHttp = process.env.MCP_MODE === 'http';
18
+ this.config = {
19
+ level: LogLevel.INFO,
20
+ prefix: 'n8n-mcp',
21
+ timestamp: true,
22
+ ...config,
23
+ };
24
+ }
25
+ static getInstance(config) {
26
+ if (!Logger.instance) {
27
+ Logger.instance = new Logger(config);
28
+ }
29
+ return Logger.instance;
30
+ }
31
+ formatMessage(level, message) {
32
+ const parts = [];
33
+ if (this.config.timestamp) {
34
+ parts.push(`[${new Date().toISOString()}]`);
35
+ }
36
+ if (this.config.prefix) {
37
+ parts.push(`[${this.config.prefix}]`);
38
+ }
39
+ parts.push(`[${level}]`);
40
+ parts.push(message);
41
+ return parts.join(' ');
42
+ }
43
+ log(level, levelName, message, ...args) {
44
+ if (this.isStdio || this.isDisabled) {
45
+ return;
46
+ }
47
+ if (level <= this.config.level) {
48
+ const formattedMessage = this.formatMessage(levelName, message);
49
+ if (this.isHttp && process.env.MCP_REQUEST_ACTIVE === 'true') {
50
+ return;
51
+ }
52
+ switch (level) {
53
+ case LogLevel.ERROR:
54
+ console.error(formattedMessage, ...args);
55
+ break;
56
+ case LogLevel.WARN:
57
+ console.warn(formattedMessage, ...args);
58
+ break;
59
+ default:
60
+ console.log(formattedMessage, ...args);
61
+ }
62
+ }
63
+ }
64
+ error(message, ...args) {
65
+ this.log(LogLevel.ERROR, 'ERROR', message, ...args);
66
+ }
67
+ warn(message, ...args) {
68
+ this.log(LogLevel.WARN, 'WARN', message, ...args);
69
+ }
70
+ info(message, ...args) {
71
+ this.log(LogLevel.INFO, 'INFO', message, ...args);
72
+ }
73
+ debug(message, ...args) {
74
+ this.log(LogLevel.DEBUG, 'DEBUG', message, ...args);
75
+ }
76
+ setLevel(level) {
77
+ this.config.level = level;
78
+ }
79
+ static parseLogLevel(level) {
80
+ switch (level.toLowerCase()) {
81
+ case 'error':
82
+ return LogLevel.ERROR;
83
+ case 'warn':
84
+ return LogLevel.WARN;
85
+ case 'debug':
86
+ return LogLevel.DEBUG;
87
+ case 'info':
88
+ default:
89
+ return LogLevel.INFO;
90
+ }
91
+ }
92
+ }
93
+ exports.Logger = Logger;
94
+ exports.logger = Logger.getInstance({
95
+ level: Logger.parseLogLevel(process.env.LOG_LEVEL || 'info'),
96
+ });
97
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface MCPClientConfig {
2
+ serverUrl: string;
3
+ authToken?: string;
4
+ connectionType: 'http' | 'websocket' | 'stdio';
5
+ }
6
+ export declare class MCPClient {
7
+ private client;
8
+ private config;
9
+ private connected;
10
+ constructor(config: MCPClientConfig);
11
+ connect(): Promise<void>;
12
+ disconnect(): Promise<void>;
13
+ listTools(): Promise<any>;
14
+ callTool(name: string, args: any): Promise<any>;
15
+ listResources(): Promise<any>;
16
+ readResource(uri: string): Promise<any>;
17
+ listPrompts(): Promise<any>;
18
+ getPrompt(name: string, args?: any): Promise<any>;
19
+ private ensureConnected;
20
+ }
21
+ //# sourceMappingURL=mcp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-client.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;CAChD;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,MAAM,EAAE,eAAe;IAa7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAQzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAc/C,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAQ7B,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAavC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAQ3B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YAczC,eAAe;CAK9B"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCPClient = void 0;
4
+ const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
5
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
6
+ const websocket_js_1 = require("@modelcontextprotocol/sdk/client/websocket.js");
7
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
8
+ class MCPClient {
9
+ constructor(config) {
10
+ this.connected = false;
11
+ this.config = config;
12
+ this.client = new index_js_1.Client({
13
+ name: 'n8n-mcp-client',
14
+ version: '1.0.0',
15
+ }, {
16
+ capabilities: {},
17
+ });
18
+ }
19
+ async connect() {
20
+ if (this.connected) {
21
+ return;
22
+ }
23
+ let transport;
24
+ switch (this.config.connectionType) {
25
+ case 'websocket':
26
+ const wsUrl = this.config.serverUrl.replace(/^http/, 'ws');
27
+ transport = new websocket_js_1.WebSocketClientTransport(new URL(wsUrl));
28
+ break;
29
+ case 'stdio':
30
+ const [command, ...args] = this.config.serverUrl.split(' ');
31
+ transport = new stdio_js_1.StdioClientTransport({
32
+ command,
33
+ args,
34
+ });
35
+ break;
36
+ default:
37
+ throw new Error(`HTTP transport is not yet supported for MCP clients`);
38
+ }
39
+ await this.client.connect(transport);
40
+ this.connected = true;
41
+ }
42
+ async disconnect() {
43
+ if (this.connected) {
44
+ await this.client.close();
45
+ this.connected = false;
46
+ }
47
+ }
48
+ async listTools() {
49
+ await this.ensureConnected();
50
+ return await this.client.request({ method: 'tools/list' }, types_js_1.ListToolsResultSchema);
51
+ }
52
+ async callTool(name, args) {
53
+ await this.ensureConnected();
54
+ return await this.client.request({
55
+ method: 'tools/call',
56
+ params: {
57
+ name,
58
+ arguments: args,
59
+ },
60
+ }, types_js_1.CallToolResultSchema);
61
+ }
62
+ async listResources() {
63
+ await this.ensureConnected();
64
+ return await this.client.request({ method: 'resources/list' }, types_js_1.ListResourcesResultSchema);
65
+ }
66
+ async readResource(uri) {
67
+ await this.ensureConnected();
68
+ return await this.client.request({
69
+ method: 'resources/read',
70
+ params: {
71
+ uri,
72
+ },
73
+ }, types_js_1.ReadResourceResultSchema);
74
+ }
75
+ async listPrompts() {
76
+ await this.ensureConnected();
77
+ return await this.client.request({ method: 'prompts/list' }, types_js_1.ListPromptsResultSchema);
78
+ }
79
+ async getPrompt(name, args) {
80
+ await this.ensureConnected();
81
+ return await this.client.request({
82
+ method: 'prompts/get',
83
+ params: {
84
+ name,
85
+ arguments: args,
86
+ },
87
+ }, types_js_1.GetPromptResultSchema);
88
+ }
89
+ async ensureConnected() {
90
+ if (!this.connected) {
91
+ await this.connect();
92
+ }
93
+ }
94
+ }
95
+ exports.MCPClient = MCPClient;
96
+ //# sourceMappingURL=mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/utils/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare class N8nApiError extends Error {
2
+ statusCode?: number | undefined;
3
+ code?: string | undefined;
4
+ details?: unknown | undefined;
5
+ constructor(message: string, statusCode?: number | undefined, code?: string | undefined, details?: unknown | undefined);
6
+ }
7
+ export declare class N8nAuthenticationError extends N8nApiError {
8
+ constructor(message?: string);
9
+ }
10
+ export declare class N8nNotFoundError extends N8nApiError {
11
+ constructor(resource: string, id?: string);
12
+ }
13
+ export declare class N8nValidationError extends N8nApiError {
14
+ constructor(message: string, details?: unknown);
15
+ }
16
+ export declare class N8nRateLimitError extends N8nApiError {
17
+ constructor(retryAfter?: number);
18
+ }
19
+ export declare class N8nServerError extends N8nApiError {
20
+ constructor(message?: string, statusCode?: number);
21
+ }
22
+ export declare function handleN8nApiError(error: unknown): N8nApiError;
23
+ export declare function getUserFriendlyErrorMessage(error: N8nApiError): string;
24
+ export declare function logN8nError(error: N8nApiError, context?: string): void;
25
+ //# sourceMappingURL=n8n-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-errors.d.ts","sourceRoot":"","sources":["../../src/utils/n8n-errors.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAY,SAAQ,KAAK;IAG3B,UAAU,CAAC,EAAE,MAAM;IACnB,IAAI,CAAC,EAAE,MAAM;IACb,OAAO,CAAC,EAAE,OAAO;gBAHxB,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,OAAO,YAAA;CAK3B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;gBACzC,OAAO,SAA0B;CAI9C;AAED,qBAAa,gBAAiB,SAAQ,WAAW;gBACnC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;CAK1C;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAI/C;AAED,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,UAAU,CAAC,EAAE,MAAM;CAOhC;AAED,qBAAa,cAAe,SAAQ,WAAW;gBACjC,OAAO,SAA0B,EAAE,UAAU,SAAM;CAIhE;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAuC7D;AAGD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAiBtE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAiBtE"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.N8nServerError = exports.N8nRateLimitError = exports.N8nValidationError = exports.N8nNotFoundError = exports.N8nAuthenticationError = exports.N8nApiError = void 0;
4
+ exports.handleN8nApiError = handleN8nApiError;
5
+ exports.getUserFriendlyErrorMessage = getUserFriendlyErrorMessage;
6
+ exports.logN8nError = logN8nError;
7
+ const logger_1 = require("./logger");
8
+ class N8nApiError extends Error {
9
+ constructor(message, statusCode, code, details) {
10
+ super(message);
11
+ this.statusCode = statusCode;
12
+ this.code = code;
13
+ this.details = details;
14
+ this.name = 'N8nApiError';
15
+ }
16
+ }
17
+ exports.N8nApiError = N8nApiError;
18
+ class N8nAuthenticationError extends N8nApiError {
19
+ constructor(message = 'Authentication failed') {
20
+ super(message, 401, 'AUTHENTICATION_ERROR');
21
+ this.name = 'N8nAuthenticationError';
22
+ }
23
+ }
24
+ exports.N8nAuthenticationError = N8nAuthenticationError;
25
+ class N8nNotFoundError extends N8nApiError {
26
+ constructor(resource, id) {
27
+ const message = id ? `${resource} with ID ${id} not found` : `${resource} not found`;
28
+ super(message, 404, 'NOT_FOUND');
29
+ this.name = 'N8nNotFoundError';
30
+ }
31
+ }
32
+ exports.N8nNotFoundError = N8nNotFoundError;
33
+ class N8nValidationError extends N8nApiError {
34
+ constructor(message, details) {
35
+ super(message, 400, 'VALIDATION_ERROR', details);
36
+ this.name = 'N8nValidationError';
37
+ }
38
+ }
39
+ exports.N8nValidationError = N8nValidationError;
40
+ class N8nRateLimitError extends N8nApiError {
41
+ constructor(retryAfter) {
42
+ const message = retryAfter
43
+ ? `Rate limit exceeded. Retry after ${retryAfter} seconds`
44
+ : 'Rate limit exceeded';
45
+ super(message, 429, 'RATE_LIMIT_ERROR', { retryAfter });
46
+ this.name = 'N8nRateLimitError';
47
+ }
48
+ }
49
+ exports.N8nRateLimitError = N8nRateLimitError;
50
+ class N8nServerError extends N8nApiError {
51
+ constructor(message = 'Internal server error', statusCode = 500) {
52
+ super(message, statusCode, 'SERVER_ERROR');
53
+ this.name = 'N8nServerError';
54
+ }
55
+ }
56
+ exports.N8nServerError = N8nServerError;
57
+ function handleN8nApiError(error) {
58
+ if (error instanceof N8nApiError) {
59
+ return error;
60
+ }
61
+ if (error instanceof Error) {
62
+ const axiosError = error;
63
+ if (axiosError.response) {
64
+ const { status, data } = axiosError.response;
65
+ const message = data?.message || axiosError.message;
66
+ switch (status) {
67
+ case 401:
68
+ return new N8nAuthenticationError(message);
69
+ case 404:
70
+ return new N8nNotFoundError('Resource', message);
71
+ case 400:
72
+ return new N8nValidationError(message, data);
73
+ case 429:
74
+ const retryAfter = axiosError.response.headers['retry-after'];
75
+ return new N8nRateLimitError(retryAfter ? parseInt(retryAfter) : undefined);
76
+ default:
77
+ if (status >= 500) {
78
+ return new N8nServerError(message, status);
79
+ }
80
+ return new N8nApiError(message, status, 'API_ERROR', data);
81
+ }
82
+ }
83
+ else if (axiosError.request) {
84
+ return new N8nApiError('No response from n8n server', undefined, 'NO_RESPONSE');
85
+ }
86
+ else {
87
+ return new N8nApiError(axiosError.message, undefined, 'REQUEST_ERROR');
88
+ }
89
+ }
90
+ return new N8nApiError('Unknown error occurred', undefined, 'UNKNOWN_ERROR', error);
91
+ }
92
+ function getUserFriendlyErrorMessage(error) {
93
+ switch (error.code) {
94
+ case 'AUTHENTICATION_ERROR':
95
+ return 'Failed to authenticate with n8n. Please check your API key.';
96
+ case 'NOT_FOUND':
97
+ return error.message;
98
+ case 'VALIDATION_ERROR':
99
+ return `Invalid request: ${error.message}`;
100
+ case 'RATE_LIMIT_ERROR':
101
+ return 'Too many requests. Please wait a moment and try again.';
102
+ case 'NO_RESPONSE':
103
+ return 'Unable to connect to n8n. Please check the server URL and ensure n8n is running.';
104
+ case 'SERVER_ERROR':
105
+ return 'n8n server error. Please try again later or contact support.';
106
+ default:
107
+ return error.message || 'An unexpected error occurred';
108
+ }
109
+ }
110
+ function logN8nError(error, context) {
111
+ const errorInfo = {
112
+ name: error.name,
113
+ message: error.message,
114
+ code: error.code,
115
+ statusCode: error.statusCode,
116
+ details: error.details,
117
+ context,
118
+ };
119
+ if (error.statusCode && error.statusCode >= 500) {
120
+ logger_1.logger.error('n8n API server error', errorInfo);
121
+ }
122
+ else if (error.statusCode && error.statusCode >= 400) {
123
+ logger_1.logger.warn('n8n API client error', errorInfo);
124
+ }
125
+ else {
126
+ logger_1.logger.error('n8n API error', errorInfo);
127
+ }
128
+ }
129
+ //# sourceMappingURL=n8n-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-errors.js","sourceRoot":"","sources":["../../src/utils/n8n-errors.ts"],"names":[],"mappings":";;;AAwDA,8CAuCC;AAGD,kEAiBC;AAGD,kCAiBC;AAvID,qCAAkC;AAIlC,MAAa,WAAY,SAAQ,KAAK;IACpC,YACE,OAAe,EACR,UAAmB,EACnB,IAAa,EACb,OAAiB;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,eAAU,GAAV,UAAU,CAAS;QACnB,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAAU;QAGxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAVD,kCAUC;AAED,MAAa,sBAAuB,SAAQ,WAAW;IACrD,YAAY,OAAO,GAAG,uBAAuB;QAC3C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AALD,wDAKC;AAED,MAAa,gBAAiB,SAAQ,WAAW;IAC/C,YAAY,QAAgB,EAAE,EAAW;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,QAAQ,YAAY,CAAC;QACrF,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAND,4CAMC;AAED,MAAa,kBAAmB,SAAQ,WAAW;IACjD,YAAY,OAAe,EAAE,OAAiB;QAC5C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED,MAAa,iBAAkB,SAAQ,WAAW;IAChD,YAAY,UAAmB;QAC7B,MAAM,OAAO,GAAG,UAAU;YACxB,CAAC,CAAC,oCAAoC,UAAU,UAAU;YAC1D,CAAC,CAAC,qBAAqB,CAAC;QAC1B,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AARD,8CAQC;AAED,MAAa,cAAe,SAAQ,WAAW;IAC7C,YAAY,OAAO,GAAG,uBAAuB,EAAE,UAAU,GAAG,GAAG;QAC7D,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AALD,wCAKC;AAGD,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAE3B,MAAM,UAAU,GAAG,KAAY,CAAC;QAChC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC;YAEpD,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,GAAG;oBACN,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAC7C,KAAK,GAAG;oBACN,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACnD,KAAK,GAAG;oBACN,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC/C,KAAK,GAAG;oBACN,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;oBAC9D,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC9E;oBACE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;wBAClB,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7C,CAAC;oBACD,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAE9B,OAAO,IAAI,WAAW,CAAC,6BAA6B,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YAEN,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAGD,OAAO,IAAI,WAAW,CAAC,wBAAwB,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtF,CAAC;AAGD,SAAgB,2BAA2B,CAAC,KAAkB;IAC5D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,sBAAsB;YACzB,OAAO,6DAA6D,CAAC;QACvE,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,KAAK,kBAAkB;YACrB,OAAO,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7C,KAAK,kBAAkB;YACrB,OAAO,wDAAwD,CAAC;QAClE,KAAK,aAAa;YAChB,OAAO,kFAAkF,CAAC;QAC5F,KAAK,cAAc;YACjB,OAAO,8DAA8D,CAAC;QACxE;YACE,OAAO,KAAK,CAAC,OAAO,IAAI,8BAA8B,CAAC;IAC3D,CAAC;AACH,CAAC;AAGD,SAAgB,WAAW,CAAC,KAAkB,EAAE,OAAgB;IAC9D,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;KACR,CAAC;IAEF,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;QAChD,eAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;QACvD,eAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,eAAM,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}