n8n-atom-mcp 0.0.1

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 (794) hide show
  1. package/.env.example +220 -0
  2. package/LICENSE +21 -0
  3. package/README.md +78 -0
  4. package/data/nodes.db +0 -0
  5. package/dist/community/community-node-fetcher.d.ts +118 -0
  6. package/dist/community/community-node-fetcher.d.ts.map +1 -0
  7. package/dist/community/community-node-fetcher.js +239 -0
  8. package/dist/community/community-node-fetcher.js.map +1 -0
  9. package/dist/community/community-node-service.d.ts +42 -0
  10. package/dist/community/community-node-service.d.ts.map +1 -0
  11. package/dist/community/community-node-service.js +210 -0
  12. package/dist/community/community-node-service.js.map +1 -0
  13. package/dist/community/documentation-batch-processor.d.ts +33 -0
  14. package/dist/community/documentation-batch-processor.d.ts.map +1 -0
  15. package/dist/community/documentation-batch-processor.js +156 -0
  16. package/dist/community/documentation-batch-processor.js.map +1 -0
  17. package/dist/community/documentation-generator.d.ts +65 -0
  18. package/dist/community/documentation-generator.d.ts.map +1 -0
  19. package/dist/community/documentation-generator.js +220 -0
  20. package/dist/community/documentation-generator.js.map +1 -0
  21. package/dist/community/index.d.ts +5 -0
  22. package/dist/community/index.d.ts.map +1 -0
  23. package/dist/community/index.js +14 -0
  24. package/dist/community/index.js.map +1 -0
  25. package/dist/config/n8n-api.d.ts +15 -0
  26. package/dist/config/n8n-api.d.ts.map +1 -0
  27. package/dist/config/n8n-api.js +53 -0
  28. package/dist/config/n8n-api.js.map +1 -0
  29. package/dist/constants/type-structures.d.ts +123 -0
  30. package/dist/constants/type-structures.d.ts.map +1 -0
  31. package/dist/constants/type-structures.js +654 -0
  32. package/dist/constants/type-structures.js.map +1 -0
  33. package/dist/database/database-adapter.d.ts +33 -0
  34. package/dist/database/database-adapter.d.ts.map +1 -0
  35. package/dist/database/database-adapter.js +420 -0
  36. package/dist/database/database-adapter.js.map +1 -0
  37. package/dist/database/node-repository.d.ts +152 -0
  38. package/dist/database/node-repository.d.ts.map +1 -0
  39. package/dist/database/node-repository.js +791 -0
  40. package/dist/database/node-repository.js.map +1 -0
  41. package/dist/errors/validation-service-error.d.ts +10 -0
  42. package/dist/errors/validation-service-error.d.ts.map +1 -0
  43. package/dist/errors/validation-service-error.js +26 -0
  44. package/dist/errors/validation-service-error.js.map +1 -0
  45. package/dist/http-server-single-session.d.ts +52 -0
  46. package/dist/http-server-single-session.d.ts.map +1 -0
  47. package/dist/http-server-single-session.js +1180 -0
  48. package/dist/http-server-single-session.js.map +1 -0
  49. package/dist/http-server.d.ts +9 -0
  50. package/dist/http-server.d.ts.map +1 -0
  51. package/dist/http-server.js +481 -0
  52. package/dist/http-server.js.map +1 -0
  53. package/dist/index.d.ts +11 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +20 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/loaders/node-loader.d.ts +11 -0
  58. package/dist/loaders/node-loader.d.ts.map +1 -0
  59. package/dist/loaders/node-loader.js +79 -0
  60. package/dist/loaders/node-loader.js.map +1 -0
  61. package/dist/mappers/docs-mapper.d.ts +7 -0
  62. package/dist/mappers/docs-mapper.d.ts.map +1 -0
  63. package/dist/mappers/docs-mapper.js +106 -0
  64. package/dist/mappers/docs-mapper.js.map +1 -0
  65. package/dist/mcp/handlers-n8n-manager.d.ts +58 -0
  66. package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -0
  67. package/dist/mcp/handlers-n8n-manager.js +3299 -0
  68. package/dist/mcp/handlers-n8n-manager.js.map +1 -0
  69. package/dist/mcp/handlers-workflow-diff.d.ts +5 -0
  70. package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -0
  71. package/dist/mcp/handlers-workflow-diff.js +461 -0
  72. package/dist/mcp/handlers-workflow-diff.js.map +1 -0
  73. package/dist/mcp/index.d.ts +3 -0
  74. package/dist/mcp/index.d.ts.map +1 -0
  75. package/dist/mcp/index.js +228 -0
  76. package/dist/mcp/index.js.map +1 -0
  77. package/dist/mcp/server.d.ts +82 -0
  78. package/dist/mcp/server.d.ts.map +1 -0
  79. package/dist/mcp/server.js +3006 -0
  80. package/dist/mcp/server.js.map +1 -0
  81. package/dist/mcp/stdio-wrapper.d.ts +3 -0
  82. package/dist/mcp/stdio-wrapper.d.ts.map +1 -0
  83. package/dist/mcp/stdio-wrapper.js +81 -0
  84. package/dist/mcp/stdio-wrapper.js.map +1 -0
  85. package/dist/mcp/tool-docs/configuration/get-node.d.ts +3 -0
  86. package/dist/mcp/tool-docs/configuration/get-node.d.ts.map +1 -0
  87. package/dist/mcp/tool-docs/configuration/get-node.js +90 -0
  88. package/dist/mcp/tool-docs/configuration/get-node.js.map +1 -0
  89. package/dist/mcp/tool-docs/configuration/index.d.ts +2 -0
  90. package/dist/mcp/tool-docs/configuration/index.d.ts.map +1 -0
  91. package/dist/mcp/tool-docs/configuration/index.js +6 -0
  92. package/dist/mcp/tool-docs/configuration/index.js.map +1 -0
  93. package/dist/mcp/tool-docs/discovery/index.d.ts +2 -0
  94. package/dist/mcp/tool-docs/discovery/index.d.ts.map +1 -0
  95. package/dist/mcp/tool-docs/discovery/index.js +6 -0
  96. package/dist/mcp/tool-docs/discovery/index.js.map +1 -0
  97. package/dist/mcp/tool-docs/discovery/search-nodes.d.ts +3 -0
  98. package/dist/mcp/tool-docs/discovery/search-nodes.d.ts.map +1 -0
  99. package/dist/mcp/tool-docs/discovery/search-nodes.js +70 -0
  100. package/dist/mcp/tool-docs/discovery/search-nodes.js.map +1 -0
  101. package/dist/mcp/tool-docs/guides/ai-agents-guide.d.ts +3 -0
  102. package/dist/mcp/tool-docs/guides/ai-agents-guide.d.ts.map +1 -0
  103. package/dist/mcp/tool-docs/guides/ai-agents-guide.js +739 -0
  104. package/dist/mcp/tool-docs/guides/ai-agents-guide.js.map +1 -0
  105. package/dist/mcp/tool-docs/guides/index.d.ts +2 -0
  106. package/dist/mcp/tool-docs/guides/index.d.ts.map +1 -0
  107. package/dist/mcp/tool-docs/guides/index.js +6 -0
  108. package/dist/mcp/tool-docs/guides/index.js.map +1 -0
  109. package/dist/mcp/tool-docs/index.d.ts +4 -0
  110. package/dist/mcp/tool-docs/index.d.ts.map +1 -0
  111. package/dist/mcp/tool-docs/index.js +34 -0
  112. package/dist/mcp/tool-docs/index.js.map +1 -0
  113. package/dist/mcp/tool-docs/system/index.d.ts +3 -0
  114. package/dist/mcp/tool-docs/system/index.d.ts.map +1 -0
  115. package/dist/mcp/tool-docs/system/index.js +8 -0
  116. package/dist/mcp/tool-docs/system/index.js.map +1 -0
  117. package/dist/mcp/tool-docs/system/n8n-diagnostic.d.ts +3 -0
  118. package/dist/mcp/tool-docs/system/n8n-diagnostic.d.ts.map +1 -0
  119. package/dist/mcp/tool-docs/system/n8n-diagnostic.js +99 -0
  120. package/dist/mcp/tool-docs/system/n8n-diagnostic.js.map +1 -0
  121. package/dist/mcp/tool-docs/system/n8n-health-check.d.ts +3 -0
  122. package/dist/mcp/tool-docs/system/n8n-health-check.d.ts.map +1 -0
  123. package/dist/mcp/tool-docs/system/n8n-health-check.js +102 -0
  124. package/dist/mcp/tool-docs/system/n8n-health-check.js.map +1 -0
  125. package/dist/mcp/tool-docs/system/n8n-list-available-tools.d.ts +3 -0
  126. package/dist/mcp/tool-docs/system/n8n-list-available-tools.d.ts.map +1 -0
  127. package/dist/mcp/tool-docs/system/n8n-list-available-tools.js +75 -0
  128. package/dist/mcp/tool-docs/system/n8n-list-available-tools.js.map +1 -0
  129. package/dist/mcp/tool-docs/system/tools-documentation.d.ts +3 -0
  130. package/dist/mcp/tool-docs/system/tools-documentation.d.ts.map +1 -0
  131. package/dist/mcp/tool-docs/system/tools-documentation.js +65 -0
  132. package/dist/mcp/tool-docs/system/tools-documentation.js.map +1 -0
  133. package/dist/mcp/tool-docs/templates/get-template.d.ts +3 -0
  134. package/dist/mcp/tool-docs/templates/get-template.d.ts.map +1 -0
  135. package/dist/mcp/tool-docs/templates/get-template.js +84 -0
  136. package/dist/mcp/tool-docs/templates/get-template.js.map +1 -0
  137. package/dist/mcp/tool-docs/templates/index.d.ts +3 -0
  138. package/dist/mcp/tool-docs/templates/index.d.ts.map +1 -0
  139. package/dist/mcp/tool-docs/templates/index.js +8 -0
  140. package/dist/mcp/tool-docs/templates/index.js.map +1 -0
  141. package/dist/mcp/tool-docs/templates/search-templates.d.ts +3 -0
  142. package/dist/mcp/tool-docs/templates/search-templates.d.ts.map +1 -0
  143. package/dist/mcp/tool-docs/templates/search-templates.js +143 -0
  144. package/dist/mcp/tool-docs/templates/search-templates.js.map +1 -0
  145. package/dist/mcp/tool-docs/types.d.ts +32 -0
  146. package/dist/mcp/tool-docs/types.d.ts.map +1 -0
  147. package/dist/mcp/tool-docs/types.js +3 -0
  148. package/dist/mcp/tool-docs/types.js.map +1 -0
  149. package/dist/mcp/tool-docs/validation/index.d.ts +3 -0
  150. package/dist/mcp/tool-docs/validation/index.d.ts.map +1 -0
  151. package/dist/mcp/tool-docs/validation/index.js +8 -0
  152. package/dist/mcp/tool-docs/validation/index.js.map +1 -0
  153. package/dist/mcp/tool-docs/validation/validate-node.d.ts +3 -0
  154. package/dist/mcp/tool-docs/validation/validate-node.d.ts.map +1 -0
  155. package/dist/mcp/tool-docs/validation/validate-node.js +82 -0
  156. package/dist/mcp/tool-docs/validation/validate-node.js.map +1 -0
  157. package/dist/mcp/tool-docs/validation/validate-workflow.d.ts +3 -0
  158. package/dist/mcp/tool-docs/validation/validate-workflow.d.ts.map +1 -0
  159. package/dist/mcp/tool-docs/validation/validate-workflow.js +86 -0
  160. package/dist/mcp/tool-docs/validation/validate-workflow.js.map +1 -0
  161. package/dist/mcp/tool-docs/workflow_management/index.d.ts +13 -0
  162. package/dist/mcp/tool-docs/workflow_management/index.d.ts.map +1 -0
  163. package/dist/mcp/tool-docs/workflow_management/index.js +28 -0
  164. package/dist/mcp/tool-docs/workflow_management/index.js.map +1 -0
  165. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts +3 -0
  166. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts.map +1 -0
  167. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js +162 -0
  168. package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js.map +1 -0
  169. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.d.ts +3 -0
  170. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.d.ts.map +1 -0
  171. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.js +102 -0
  172. package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.js.map +1 -0
  173. package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.d.ts +3 -0
  174. package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.d.ts.map +1 -0
  175. package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.js +52 -0
  176. package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.js.map +1 -0
  177. package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.d.ts +3 -0
  178. package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.d.ts.map +1 -0
  179. package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.js +73 -0
  180. package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.js.map +1 -0
  181. package/dist/mcp/tool-docs/workflow_management/n8n-executions.d.ts +3 -0
  182. package/dist/mcp/tool-docs/workflow_management/n8n-executions.d.ts.map +1 -0
  183. package/dist/mcp/tool-docs/workflow_management/n8n-executions.js +109 -0
  184. package/dist/mcp/tool-docs/workflow_management/n8n-executions.js.map +1 -0
  185. package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.d.ts +3 -0
  186. package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.d.ts.map +1 -0
  187. package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.js +68 -0
  188. package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.js.map +1 -0
  189. package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.d.ts +3 -0
  190. package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.d.ts.map +1 -0
  191. package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.js +57 -0
  192. package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.js.map +1 -0
  193. package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.d.ts +3 -0
  194. package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.d.ts.map +1 -0
  195. package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.js +140 -0
  196. package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.js.map +1 -0
  197. package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.d.ts +3 -0
  198. package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.d.ts.map +1 -0
  199. package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js +61 -0
  200. package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js.map +1 -0
  201. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts +3 -0
  202. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts.map +1 -0
  203. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +420 -0
  204. package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js.map +1 -0
  205. package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.d.ts +3 -0
  206. package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.d.ts.map +1 -0
  207. package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.js +73 -0
  208. package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.js.map +1 -0
  209. package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.d.ts +3 -0
  210. package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.d.ts.map +1 -0
  211. package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.js +170 -0
  212. package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.js.map +1 -0
  213. package/dist/mcp/tools-documentation.d.ts +6 -0
  214. package/dist/mcp/tools-documentation.d.ts.map +1 -0
  215. package/dist/mcp/tools-documentation.js +682 -0
  216. package/dist/mcp/tools-documentation.js.map +1 -0
  217. package/dist/mcp/tools-file-operations.d.ts +154 -0
  218. package/dist/mcp/tools-file-operations.d.ts.map +1 -0
  219. package/dist/mcp/tools-file-operations.js +213 -0
  220. package/dist/mcp/tools-file-operations.js.map +1 -0
  221. package/dist/mcp/tools-n8n-friendly.d.ts +6 -0
  222. package/dist/mcp/tools-n8n-friendly.d.ts.map +1 -0
  223. package/dist/mcp/tools-n8n-friendly.js +89 -0
  224. package/dist/mcp/tools-n8n-friendly.js.map +1 -0
  225. package/dist/mcp/tools-n8n-manager.d.ts +3 -0
  226. package/dist/mcp/tools-n8n-manager.d.ts.map +1 -0
  227. package/dist/mcp/tools-n8n-manager.js +1320 -0
  228. package/dist/mcp/tools-n8n-manager.js.map +1 -0
  229. package/dist/mcp/tools.d.ts +3 -0
  230. package/dist/mcp/tools.d.ts.map +1 -0
  231. package/dist/mcp/tools.js +424 -0
  232. package/dist/mcp/tools.js.map +1 -0
  233. package/dist/mcp/workflow-examples.d.ts +76 -0
  234. package/dist/mcp/workflow-examples.d.ts.map +1 -0
  235. package/dist/mcp/workflow-examples.js +111 -0
  236. package/dist/mcp/workflow-examples.js.map +1 -0
  237. package/dist/mcp-engine.d.ts +36 -0
  238. package/dist/mcp-engine.d.ts.map +1 -0
  239. package/dist/mcp-engine.js +77 -0
  240. package/dist/mcp-engine.js.map +1 -0
  241. package/dist/mcp-tools-engine.d.ts +47 -0
  242. package/dist/mcp-tools-engine.d.ts.map +1 -0
  243. package/dist/mcp-tools-engine.js +89 -0
  244. package/dist/mcp-tools-engine.js.map +1 -0
  245. package/dist/n8n/MCPApi.credentials.d.ts +8 -0
  246. package/dist/n8n/MCPApi.credentials.d.ts.map +1 -0
  247. package/dist/n8n/MCPApi.credentials.js +53 -0
  248. package/dist/n8n/MCPApi.credentials.js.map +1 -0
  249. package/dist/n8n/MCPNode.node.d.ts +13 -0
  250. package/dist/n8n/MCPNode.node.d.ts.map +1 -0
  251. package/dist/n8n/MCPNode.node.js +260 -0
  252. package/dist/n8n/MCPNode.node.js.map +1 -0
  253. package/dist/parsers/node-parser.d.ts +38 -0
  254. package/dist/parsers/node-parser.d.ts.map +1 -0
  255. package/dist/parsers/node-parser.js +250 -0
  256. package/dist/parsers/node-parser.js.map +1 -0
  257. package/dist/parsers/property-extractor.d.ts +11 -0
  258. package/dist/parsers/property-extractor.d.ts.map +1 -0
  259. package/dist/parsers/property-extractor.js +172 -0
  260. package/dist/parsers/property-extractor.js.map +1 -0
  261. package/dist/parsers/simple-parser.d.ts +25 -0
  262. package/dist/parsers/simple-parser.d.ts.map +1 -0
  263. package/dist/parsers/simple-parser.js +212 -0
  264. package/dist/parsers/simple-parser.js.map +1 -0
  265. package/dist/scripts/debug-http-search.d.ts +3 -0
  266. package/dist/scripts/debug-http-search.d.ts.map +1 -0
  267. package/dist/scripts/debug-http-search.js +57 -0
  268. package/dist/scripts/debug-http-search.js.map +1 -0
  269. package/dist/scripts/extract-from-docker.d.ts +3 -0
  270. package/dist/scripts/extract-from-docker.d.ts.map +1 -0
  271. package/dist/scripts/extract-from-docker.js +210 -0
  272. package/dist/scripts/extract-from-docker.js.map +1 -0
  273. package/dist/scripts/fetch-community-nodes.d.ts +3 -0
  274. package/dist/scripts/fetch-community-nodes.d.ts.map +1 -0
  275. package/dist/scripts/fetch-community-nodes.js +114 -0
  276. package/dist/scripts/fetch-community-nodes.js.map +1 -0
  277. package/dist/scripts/fetch-templates-robust.d.ts +4 -0
  278. package/dist/scripts/fetch-templates-robust.d.ts.map +1 -0
  279. package/dist/scripts/fetch-templates-robust.js +132 -0
  280. package/dist/scripts/fetch-templates-robust.js.map +1 -0
  281. package/dist/scripts/fetch-templates.d.ts +4 -0
  282. package/dist/scripts/fetch-templates.d.ts.map +1 -0
  283. package/dist/scripts/fetch-templates.js +411 -0
  284. package/dist/scripts/fetch-templates.js.map +1 -0
  285. package/dist/scripts/generate-community-docs.d.ts +3 -0
  286. package/dist/scripts/generate-community-docs.d.ts.map +1 -0
  287. package/dist/scripts/generate-community-docs.js +183 -0
  288. package/dist/scripts/generate-community-docs.js.map +1 -0
  289. package/dist/scripts/migrate-readme-columns.d.ts +2 -0
  290. package/dist/scripts/migrate-readme-columns.d.ts.map +1 -0
  291. package/dist/scripts/migrate-readme-columns.js +62 -0
  292. package/dist/scripts/migrate-readme-columns.js.map +1 -0
  293. package/dist/scripts/rebuild-database.d.ts +4 -0
  294. package/dist/scripts/rebuild-database.d.ts.map +1 -0
  295. package/dist/scripts/rebuild-database.js +95 -0
  296. package/dist/scripts/rebuild-database.js.map +1 -0
  297. package/dist/scripts/rebuild-optimized.d.ts +3 -0
  298. package/dist/scripts/rebuild-optimized.d.ts.map +1 -0
  299. package/dist/scripts/rebuild-optimized.js +198 -0
  300. package/dist/scripts/rebuild-optimized.js.map +1 -0
  301. package/dist/scripts/rebuild.d.ts +3 -0
  302. package/dist/scripts/rebuild.d.ts.map +1 -0
  303. package/dist/scripts/rebuild.js +258 -0
  304. package/dist/scripts/rebuild.js.map +1 -0
  305. package/dist/scripts/sanitize-templates.d.ts +3 -0
  306. package/dist/scripts/sanitize-templates.d.ts.map +1 -0
  307. package/dist/scripts/sanitize-templates.js +88 -0
  308. package/dist/scripts/sanitize-templates.js.map +1 -0
  309. package/dist/scripts/seed-canonical-ai-examples.d.ts +4 -0
  310. package/dist/scripts/seed-canonical-ai-examples.d.ts.map +1 -0
  311. package/dist/scripts/seed-canonical-ai-examples.js +121 -0
  312. package/dist/scripts/seed-canonical-ai-examples.js.map +1 -0
  313. package/dist/scripts/test-autofix-documentation.d.ts +3 -0
  314. package/dist/scripts/test-autofix-documentation.d.ts.map +1 -0
  315. package/dist/scripts/test-autofix-documentation.js +103 -0
  316. package/dist/scripts/test-autofix-documentation.js.map +1 -0
  317. package/dist/scripts/test-autofix-workflow.d.ts +2 -0
  318. package/dist/scripts/test-autofix-workflow.d.ts.map +1 -0
  319. package/dist/scripts/test-autofix-workflow.js +223 -0
  320. package/dist/scripts/test-autofix-workflow.js.map +1 -0
  321. package/dist/scripts/test-execution-filtering.d.ts +3 -0
  322. package/dist/scripts/test-execution-filtering.d.ts.map +1 -0
  323. package/dist/scripts/test-execution-filtering.js +206 -0
  324. package/dist/scripts/test-execution-filtering.js.map +1 -0
  325. package/dist/scripts/test-node-suggestions.d.ts +3 -0
  326. package/dist/scripts/test-node-suggestions.d.ts.map +1 -0
  327. package/dist/scripts/test-node-suggestions.js +165 -0
  328. package/dist/scripts/test-node-suggestions.js.map +1 -0
  329. package/dist/scripts/test-protocol-negotiation.d.ts +3 -0
  330. package/dist/scripts/test-protocol-negotiation.d.ts.map +1 -0
  331. package/dist/scripts/test-protocol-negotiation.js +154 -0
  332. package/dist/scripts/test-protocol-negotiation.js.map +1 -0
  333. package/dist/scripts/test-summary.d.ts +3 -0
  334. package/dist/scripts/test-summary.d.ts.map +1 -0
  335. package/dist/scripts/test-summary.js +77 -0
  336. package/dist/scripts/test-summary.js.map +1 -0
  337. package/dist/scripts/test-telemetry-mutations-verbose.d.ts +2 -0
  338. package/dist/scripts/test-telemetry-mutations-verbose.d.ts.map +1 -0
  339. package/dist/scripts/test-telemetry-mutations-verbose.js +133 -0
  340. package/dist/scripts/test-telemetry-mutations-verbose.js.map +1 -0
  341. package/dist/scripts/test-telemetry-mutations.d.ts +2 -0
  342. package/dist/scripts/test-telemetry-mutations.d.ts.map +1 -0
  343. package/dist/scripts/test-telemetry-mutations.js +129 -0
  344. package/dist/scripts/test-telemetry-mutations.js.map +1 -0
  345. package/dist/scripts/test-webhook-autofix.d.ts +3 -0
  346. package/dist/scripts/test-webhook-autofix.d.ts.map +1 -0
  347. package/dist/scripts/test-webhook-autofix.js +117 -0
  348. package/dist/scripts/test-webhook-autofix.js.map +1 -0
  349. package/dist/scripts/validate.d.ts +3 -0
  350. package/dist/scripts/validate.d.ts.map +1 -0
  351. package/dist/scripts/validate.js +121 -0
  352. package/dist/scripts/validate.js.map +1 -0
  353. package/dist/scripts/validation-summary.d.ts +3 -0
  354. package/dist/scripts/validation-summary.d.ts.map +1 -0
  355. package/dist/scripts/validation-summary.js +135 -0
  356. package/dist/scripts/validation-summary.js.map +1 -0
  357. package/dist/services/ai-node-validator.d.ts +12 -0
  358. package/dist/services/ai-node-validator.d.ts.map +1 -0
  359. package/dist/services/ai-node-validator.js +429 -0
  360. package/dist/services/ai-node-validator.js.map +1 -0
  361. package/dist/services/ai-tool-validators.d.ts +58 -0
  362. package/dist/services/ai-tool-validators.d.ts.map +1 -0
  363. package/dist/services/ai-tool-validators.js +438 -0
  364. package/dist/services/ai-tool-validators.js.map +1 -0
  365. package/dist/services/breaking-change-detector.d.ts +38 -0
  366. package/dist/services/breaking-change-detector.d.ts.map +1 -0
  367. package/dist/services/breaking-change-detector.js +184 -0
  368. package/dist/services/breaking-change-detector.js.map +1 -0
  369. package/dist/services/breaking-changes-registry.d.ts +28 -0
  370. package/dist/services/breaking-changes-registry.d.ts.map +1 -0
  371. package/dist/services/breaking-changes-registry.js +200 -0
  372. package/dist/services/breaking-changes-registry.js.map +1 -0
  373. package/dist/services/community-package-service.d.ts +69 -0
  374. package/dist/services/community-package-service.d.ts.map +1 -0
  375. package/dist/services/community-package-service.js +202 -0
  376. package/dist/services/community-package-service.js.map +1 -0
  377. package/dist/services/confidence-scorer.d.ts +24 -0
  378. package/dist/services/confidence-scorer.d.ts.map +1 -0
  379. package/dist/services/confidence-scorer.js +139 -0
  380. package/dist/services/confidence-scorer.js.map +1 -0
  381. package/dist/services/config-validator.d.ts +49 -0
  382. package/dist/services/config-validator.d.ts.map +1 -0
  383. package/dist/services/config-validator.js +724 -0
  384. package/dist/services/config-validator.js.map +1 -0
  385. package/dist/services/enhanced-config-validator.d.ts +54 -0
  386. package/dist/services/enhanced-config-validator.d.ts.map +1 -0
  387. package/dist/services/enhanced-config-validator.js +789 -0
  388. package/dist/services/enhanced-config-validator.js.map +1 -0
  389. package/dist/services/error-execution-processor.d.ts +9 -0
  390. package/dist/services/error-execution-processor.d.ts.map +1 -0
  391. package/dist/services/error-execution-processor.js +380 -0
  392. package/dist/services/error-execution-processor.js.map +1 -0
  393. package/dist/services/example-generator.d.ts +14 -0
  394. package/dist/services/example-generator.d.ts.map +1 -0
  395. package/dist/services/example-generator.js +970 -0
  396. package/dist/services/example-generator.js.map +1 -0
  397. package/dist/services/execution-processor.d.ts +8 -0
  398. package/dist/services/execution-processor.d.ts.map +1 -0
  399. package/dist/services/execution-processor.js +381 -0
  400. package/dist/services/execution-processor.js.map +1 -0
  401. package/dist/services/expression-format-validator.d.ts +33 -0
  402. package/dist/services/expression-format-validator.d.ts.map +1 -0
  403. package/dist/services/expression-format-validator.js +209 -0
  404. package/dist/services/expression-format-validator.js.map +1 -0
  405. package/dist/services/expression-validator.d.ts +27 -0
  406. package/dist/services/expression-validator.d.ts.map +1 -0
  407. package/dist/services/expression-validator.js +187 -0
  408. package/dist/services/expression-validator.js.map +1 -0
  409. package/dist/services/installed-node-sync-service.d.ts +32 -0
  410. package/dist/services/installed-node-sync-service.d.ts.map +1 -0
  411. package/dist/services/installed-node-sync-service.js +190 -0
  412. package/dist/services/installed-node-sync-service.js.map +1 -0
  413. package/dist/services/n8n-api-client.d.ts +48 -0
  414. package/dist/services/n8n-api-client.d.ts.map +1 -0
  415. package/dist/services/n8n-api-client.js +458 -0
  416. package/dist/services/n8n-api-client.js.map +1 -0
  417. package/dist/services/n8n-file-format.d.ts +58 -0
  418. package/dist/services/n8n-file-format.d.ts.map +1 -0
  419. package/dist/services/n8n-file-format.js +203 -0
  420. package/dist/services/n8n-file-format.js.map +1 -0
  421. package/dist/services/n8n-validation.d.ts +273 -0
  422. package/dist/services/n8n-validation.d.ts.map +1 -0
  423. package/dist/services/n8n-validation.js +491 -0
  424. package/dist/services/n8n-validation.js.map +1 -0
  425. package/dist/services/n8n-version.d.ts +23 -0
  426. package/dist/services/n8n-version.d.ts.map +1 -0
  427. package/dist/services/n8n-version.js +151 -0
  428. package/dist/services/n8n-version.js.map +1 -0
  429. package/dist/services/node-documentation-service.d.ts +70 -0
  430. package/dist/services/node-documentation-service.d.ts.map +1 -0
  431. package/dist/services/node-documentation-service.js +518 -0
  432. package/dist/services/node-documentation-service.js.map +1 -0
  433. package/dist/services/node-migration-service.d.ts +44 -0
  434. package/dist/services/node-migration-service.d.ts.map +1 -0
  435. package/dist/services/node-migration-service.js +231 -0
  436. package/dist/services/node-migration-service.js.map +1 -0
  437. package/dist/services/node-sanitizer.d.ts +5 -0
  438. package/dist/services/node-sanitizer.d.ts.map +1 -0
  439. package/dist/services/node-sanitizer.js +225 -0
  440. package/dist/services/node-sanitizer.js.map +1 -0
  441. package/dist/services/node-similarity-service.d.ts +51 -0
  442. package/dist/services/node-similarity-service.d.ts.map +1 -0
  443. package/dist/services/node-similarity-service.js +352 -0
  444. package/dist/services/node-similarity-service.js.map +1 -0
  445. package/dist/services/node-specific-validators.d.ts +37 -0
  446. package/dist/services/node-specific-validators.d.ts.map +1 -0
  447. package/dist/services/node-specific-validators.js +1331 -0
  448. package/dist/services/node-specific-validators.js.map +1 -0
  449. package/dist/services/node-version-service.d.ts +63 -0
  450. package/dist/services/node-version-service.d.ts.map +1 -0
  451. package/dist/services/node-version-service.js +215 -0
  452. package/dist/services/node-version-service.js.map +1 -0
  453. package/dist/services/operation-similarity-service.d.ts +32 -0
  454. package/dist/services/operation-similarity-service.d.ts.map +1 -0
  455. package/dist/services/operation-similarity-service.js +341 -0
  456. package/dist/services/operation-similarity-service.js.map +1 -0
  457. package/dist/services/post-update-validator.d.ts +59 -0
  458. package/dist/services/post-update-validator.d.ts.map +1 -0
  459. package/dist/services/post-update-validator.js +231 -0
  460. package/dist/services/post-update-validator.js.map +1 -0
  461. package/dist/services/property-dependencies.d.ts +36 -0
  462. package/dist/services/property-dependencies.d.ts.map +1 -0
  463. package/dist/services/property-dependencies.js +168 -0
  464. package/dist/services/property-dependencies.js.map +1 -0
  465. package/dist/services/property-filter.d.ts +44 -0
  466. package/dist/services/property-filter.d.ts.map +1 -0
  467. package/dist/services/property-filter.js +395 -0
  468. package/dist/services/property-filter.js.map +1 -0
  469. package/dist/services/resource-similarity-service.d.ts +33 -0
  470. package/dist/services/resource-similarity-service.d.ts.map +1 -0
  471. package/dist/services/resource-similarity-service.js +358 -0
  472. package/dist/services/resource-similarity-service.js.map +1 -0
  473. package/dist/services/sqlite-storage-service.d.ts +11 -0
  474. package/dist/services/sqlite-storage-service.d.ts.map +1 -0
  475. package/dist/services/sqlite-storage-service.js +74 -0
  476. package/dist/services/sqlite-storage-service.js.map +1 -0
  477. package/dist/services/task-templates.d.ts +27 -0
  478. package/dist/services/task-templates.d.ts.map +1 -0
  479. package/dist/services/task-templates.js +1397 -0
  480. package/dist/services/task-templates.js.map +1 -0
  481. package/dist/services/tool-variant-generator.d.ts +10 -0
  482. package/dist/services/tool-variant-generator.d.ts.map +1 -0
  483. package/dist/services/tool-variant-generator.js +93 -0
  484. package/dist/services/tool-variant-generator.js.map +1 -0
  485. package/dist/services/type-structure-service.d.ts +23 -0
  486. package/dist/services/type-structure-service.d.ts.map +1 -0
  487. package/dist/services/type-structure-service.js +109 -0
  488. package/dist/services/type-structure-service.js.map +1 -0
  489. package/dist/services/universal-expression-validator.d.ts +20 -0
  490. package/dist/services/universal-expression-validator.d.ts.map +1 -0
  491. package/dist/services/universal-expression-validator.js +192 -0
  492. package/dist/services/universal-expression-validator.js.map +1 -0
  493. package/dist/services/workflow-analytics-service.d.ts +34 -0
  494. package/dist/services/workflow-analytics-service.d.ts.map +1 -0
  495. package/dist/services/workflow-analytics-service.js +144 -0
  496. package/dist/services/workflow-analytics-service.js.map +1 -0
  497. package/dist/services/workflow-auto-fixer.d.ts +74 -0
  498. package/dist/services/workflow-auto-fixer.d.ts.map +1 -0
  499. package/dist/services/workflow-auto-fixer.js +557 -0
  500. package/dist/services/workflow-auto-fixer.js.map +1 -0
  501. package/dist/services/workflow-comparison.d.ts +13 -0
  502. package/dist/services/workflow-comparison.d.ts.map +1 -0
  503. package/dist/services/workflow-comparison.js +306 -0
  504. package/dist/services/workflow-comparison.js.map +1 -0
  505. package/dist/services/workflow-debugging-service.d.ts +62 -0
  506. package/dist/services/workflow-debugging-service.d.ts.map +1 -0
  507. package/dist/services/workflow-debugging-service.js +153 -0
  508. package/dist/services/workflow-debugging-service.js.map +1 -0
  509. package/dist/services/workflow-diff-engine.d.ts +45 -0
  510. package/dist/services/workflow-diff-engine.d.ts.map +1 -0
  511. package/dist/services/workflow-diff-engine.js +830 -0
  512. package/dist/services/workflow-diff-engine.js.map +1 -0
  513. package/dist/services/workflow-validator.d.ts +112 -0
  514. package/dist/services/workflow-validator.d.ts.map +1 -0
  515. package/dist/services/workflow-validator.js +1328 -0
  516. package/dist/services/workflow-validator.js.map +1 -0
  517. package/dist/services/workflow-versioning-service.d.ts +102 -0
  518. package/dist/services/workflow-versioning-service.d.ts.map +1 -0
  519. package/dist/services/workflow-versioning-service.js +264 -0
  520. package/dist/services/workflow-versioning-service.js.map +1 -0
  521. package/dist/telemetry/batch-processor.d.ts +34 -0
  522. package/dist/telemetry/batch-processor.d.ts.map +1 -0
  523. package/dist/telemetry/batch-processor.js +337 -0
  524. package/dist/telemetry/batch-processor.js.map +1 -0
  525. package/dist/telemetry/config-manager.d.ts +32 -0
  526. package/dist/telemetry/config-manager.d.ts.map +1 -0
  527. package/dist/telemetry/config-manager.js +289 -0
  528. package/dist/telemetry/config-manager.js.map +1 -0
  529. package/dist/telemetry/early-error-logger.d.ts +26 -0
  530. package/dist/telemetry/early-error-logger.d.ts.map +1 -0
  531. package/dist/telemetry/early-error-logger.js +187 -0
  532. package/dist/telemetry/early-error-logger.js.map +1 -0
  533. package/dist/telemetry/error-sanitization-utils.d.ts +2 -0
  534. package/dist/telemetry/error-sanitization-utils.d.ts.map +1 -0
  535. package/dist/telemetry/error-sanitization-utils.js +37 -0
  536. package/dist/telemetry/error-sanitization-utils.js.map +1 -0
  537. package/dist/telemetry/error-sanitizer.d.ts +4 -0
  538. package/dist/telemetry/error-sanitizer.d.ts.map +1 -0
  539. package/dist/telemetry/error-sanitizer.js +45 -0
  540. package/dist/telemetry/error-sanitizer.js.map +1 -0
  541. package/dist/telemetry/event-tracker.d.ts +71 -0
  542. package/dist/telemetry/event-tracker.d.ts.map +1 -0
  543. package/dist/telemetry/event-tracker.js +356 -0
  544. package/dist/telemetry/event-tracker.js.map +1 -0
  545. package/dist/telemetry/event-validator.d.ts +78 -0
  546. package/dist/telemetry/event-validator.d.ts.map +1 -0
  547. package/dist/telemetry/event-validator.js +227 -0
  548. package/dist/telemetry/event-validator.js.map +1 -0
  549. package/dist/telemetry/index.d.ts +5 -0
  550. package/dist/telemetry/index.d.ts.map +1 -0
  551. package/dist/telemetry/index.js +11 -0
  552. package/dist/telemetry/index.js.map +1 -0
  553. package/dist/telemetry/intent-classifier.d.ts +11 -0
  554. package/dist/telemetry/intent-classifier.d.ts.map +1 -0
  555. package/dist/telemetry/intent-classifier.js +141 -0
  556. package/dist/telemetry/intent-classifier.js.map +1 -0
  557. package/dist/telemetry/intent-sanitizer.d.ts +9 -0
  558. package/dist/telemetry/intent-sanitizer.d.ts.map +1 -0
  559. package/dist/telemetry/intent-sanitizer.js +103 -0
  560. package/dist/telemetry/intent-sanitizer.js.map +1 -0
  561. package/dist/telemetry/mutation-tracker.d.ts +15 -0
  562. package/dist/telemetry/mutation-tracker.d.ts.map +1 -0
  563. package/dist/telemetry/mutation-tracker.js +177 -0
  564. package/dist/telemetry/mutation-tracker.js.map +1 -0
  565. package/dist/telemetry/mutation-types.d.ts +106 -0
  566. package/dist/telemetry/mutation-types.d.ts.map +1 -0
  567. package/dist/telemetry/mutation-types.js +18 -0
  568. package/dist/telemetry/mutation-types.js.map +1 -0
  569. package/dist/telemetry/mutation-validator.d.ts +20 -0
  570. package/dist/telemetry/mutation-validator.d.ts.map +1 -0
  571. package/dist/telemetry/mutation-validator.js +144 -0
  572. package/dist/telemetry/mutation-validator.js.map +1 -0
  573. package/dist/telemetry/performance-monitor.d.ts +113 -0
  574. package/dist/telemetry/performance-monitor.d.ts.map +1 -0
  575. package/dist/telemetry/performance-monitor.js +208 -0
  576. package/dist/telemetry/performance-monitor.js.map +1 -0
  577. package/dist/telemetry/rate-limiter.d.ts +30 -0
  578. package/dist/telemetry/rate-limiter.d.ts.map +1 -0
  579. package/dist/telemetry/rate-limiter.js +103 -0
  580. package/dist/telemetry/rate-limiter.js.map +1 -0
  581. package/dist/telemetry/startup-checkpoints.d.ts +26 -0
  582. package/dist/telemetry/startup-checkpoints.d.ts.map +1 -0
  583. package/dist/telemetry/startup-checkpoints.js +65 -0
  584. package/dist/telemetry/startup-checkpoints.js.map +1 -0
  585. package/dist/telemetry/telemetry-error.d.ts +44 -0
  586. package/dist/telemetry/telemetry-error.d.ts.map +1 -0
  587. package/dist/telemetry/telemetry-error.js +153 -0
  588. package/dist/telemetry/telemetry-error.js.map +1 -0
  589. package/dist/telemetry/telemetry-manager.d.ts +130 -0
  590. package/dist/telemetry/telemetry-manager.d.ts.map +1 -0
  591. package/dist/telemetry/telemetry-manager.js +257 -0
  592. package/dist/telemetry/telemetry-manager.js.map +1 -0
  593. package/dist/telemetry/telemetry-types.d.ts +103 -0
  594. package/dist/telemetry/telemetry-types.d.ts.map +1 -0
  595. package/dist/telemetry/telemetry-types.js +29 -0
  596. package/dist/telemetry/telemetry-types.js.map +1 -0
  597. package/dist/telemetry/workflow-sanitizer.d.ts +34 -0
  598. package/dist/telemetry/workflow-sanitizer.d.ts.map +1 -0
  599. package/dist/telemetry/workflow-sanitizer.js +242 -0
  600. package/dist/telemetry/workflow-sanitizer.js.map +1 -0
  601. package/dist/templates/batch-processor.d.ts +35 -0
  602. package/dist/templates/batch-processor.d.ts.map +1 -0
  603. package/dist/templates/batch-processor.js +320 -0
  604. package/dist/templates/batch-processor.js.map +1 -0
  605. package/dist/templates/metadata-generator.d.ts +52 -0
  606. package/dist/templates/metadata-generator.d.ts.map +1 -0
  607. package/dist/templates/metadata-generator.js +252 -0
  608. package/dist/templates/metadata-generator.js.map +1 -0
  609. package/dist/templates/template-fetcher.d.ts +45 -0
  610. package/dist/templates/template-fetcher.d.ts.map +1 -0
  611. package/dist/templates/template-fetcher.js +122 -0
  612. package/dist/templates/template-fetcher.js.map +1 -0
  613. package/dist/templates/template-repository.d.ts +93 -0
  614. package/dist/templates/template-repository.d.ts.map +1 -0
  615. package/dist/templates/template-repository.js +644 -0
  616. package/dist/templates/template-repository.js.map +1 -0
  617. package/dist/templates/template-service.d.ts +79 -0
  618. package/dist/templates/template-service.d.ts.map +1 -0
  619. package/dist/templates/template-service.js +300 -0
  620. package/dist/templates/template-service.js.map +1 -0
  621. package/dist/triggers/handlers/base-handler.d.ts +21 -0
  622. package/dist/triggers/handlers/base-handler.d.ts.map +1 -0
  623. package/dist/triggers/handlers/base-handler.js +60 -0
  624. package/dist/triggers/handlers/base-handler.js.map +1 -0
  625. package/dist/triggers/handlers/chat-handler.d.ts +38 -0
  626. package/dist/triggers/handlers/chat-handler.d.ts.map +1 -0
  627. package/dist/triggers/handlers/chat-handler.js +129 -0
  628. package/dist/triggers/handlers/chat-handler.js.map +1 -0
  629. package/dist/triggers/handlers/form-handler.d.ts +35 -0
  630. package/dist/triggers/handlers/form-handler.d.ts.map +1 -0
  631. package/dist/triggers/handlers/form-handler.js +362 -0
  632. package/dist/triggers/handlers/form-handler.js.map +1 -0
  633. package/dist/triggers/handlers/webhook-handler.d.ts +38 -0
  634. package/dist/triggers/handlers/webhook-handler.d.ts.map +1 -0
  635. package/dist/triggers/handlers/webhook-handler.js +115 -0
  636. package/dist/triggers/handlers/webhook-handler.js.map +1 -0
  637. package/dist/triggers/index.d.ts +5 -0
  638. package/dist/triggers/index.d.ts.map +1 -0
  639. package/dist/triggers/index.js +14 -0
  640. package/dist/triggers/index.js.map +1 -0
  641. package/dist/triggers/trigger-detector.d.ts +6 -0
  642. package/dist/triggers/trigger-detector.d.ts.map +1 -0
  643. package/dist/triggers/trigger-detector.js +201 -0
  644. package/dist/triggers/trigger-detector.js.map +1 -0
  645. package/dist/triggers/trigger-registry.d.ts +18 -0
  646. package/dist/triggers/trigger-registry.d.ts.map +1 -0
  647. package/dist/triggers/trigger-registry.js +87 -0
  648. package/dist/triggers/trigger-registry.js.map +1 -0
  649. package/dist/triggers/types.d.ts +76 -0
  650. package/dist/triggers/types.d.ts.map +1 -0
  651. package/dist/triggers/types.js +3 -0
  652. package/dist/triggers/types.js.map +1 -0
  653. package/dist/types/index.d.ts +49 -0
  654. package/dist/types/index.d.ts.map +1 -0
  655. package/dist/types/index.js +21 -0
  656. package/dist/types/index.js.map +1 -0
  657. package/dist/types/instance-context.d.ts +20 -0
  658. package/dist/types/instance-context.d.ts.map +1 -0
  659. package/dist/types/instance-context.js +153 -0
  660. package/dist/types/instance-context.js.map +1 -0
  661. package/dist/types/n8n-api.d.ts +376 -0
  662. package/dist/types/n8n-api.d.ts.map +1 -0
  663. package/dist/types/n8n-api.js +10 -0
  664. package/dist/types/n8n-api.js.map +1 -0
  665. package/dist/types/node-types.d.ts +19 -0
  666. package/dist/types/node-types.d.ts.map +1 -0
  667. package/dist/types/node-types.js +62 -0
  668. package/dist/types/node-types.js.map +1 -0
  669. package/dist/types/session-state.d.ts +15 -0
  670. package/dist/types/session-state.d.ts.map +1 -0
  671. package/dist/types/session-state.js +3 -0
  672. package/dist/types/session-state.js.map +1 -0
  673. package/dist/types/type-structures.d.ts +42 -0
  674. package/dist/types/type-structures.d.ts.map +1 -0
  675. package/dist/types/type-structures.js +32 -0
  676. package/dist/types/type-structures.js.map +1 -0
  677. package/dist/types/workflow-comparison.d.ts +51 -0
  678. package/dist/types/workflow-comparison.d.ts.map +1 -0
  679. package/dist/types/workflow-comparison.js +3 -0
  680. package/dist/types/workflow-comparison.js.map +1 -0
  681. package/dist/types/workflow-diff.d.ts +148 -0
  682. package/dist/types/workflow-diff.d.ts.map +1 -0
  683. package/dist/types/workflow-diff.js +15 -0
  684. package/dist/types/workflow-diff.js.map +1 -0
  685. package/dist/utils/auth.d.ts +13 -0
  686. package/dist/utils/auth.d.ts.map +1 -0
  687. package/dist/utils/auth.js +82 -0
  688. package/dist/utils/auth.js.map +1 -0
  689. package/dist/utils/bridge.d.ts +12 -0
  690. package/dist/utils/bridge.d.ts.map +1 -0
  691. package/dist/utils/bridge.js +127 -0
  692. package/dist/utils/bridge.js.map +1 -0
  693. package/dist/utils/cache-utils.d.ts +58 -0
  694. package/dist/utils/cache-utils.d.ts.map +1 -0
  695. package/dist/utils/cache-utils.js +243 -0
  696. package/dist/utils/cache-utils.js.map +1 -0
  697. package/dist/utils/console-manager.d.ts +10 -0
  698. package/dist/utils/console-manager.d.ts.map +1 -0
  699. package/dist/utils/console-manager.js +63 -0
  700. package/dist/utils/console-manager.js.map +1 -0
  701. package/dist/utils/documentation-fetcher.d.ts +2 -0
  702. package/dist/utils/documentation-fetcher.d.ts.map +1 -0
  703. package/dist/utils/documentation-fetcher.js +18 -0
  704. package/dist/utils/documentation-fetcher.js.map +1 -0
  705. package/dist/utils/enhanced-documentation-fetcher.d.ts +74 -0
  706. package/dist/utils/enhanced-documentation-fetcher.d.ts.map +1 -0
  707. package/dist/utils/enhanced-documentation-fetcher.js +521 -0
  708. package/dist/utils/enhanced-documentation-fetcher.js.map +1 -0
  709. package/dist/utils/error-handler.d.ts +24 -0
  710. package/dist/utils/error-handler.d.ts.map +1 -0
  711. package/dist/utils/error-handler.js +84 -0
  712. package/dist/utils/error-handler.js.map +1 -0
  713. package/dist/utils/example-generator.d.ts +8 -0
  714. package/dist/utils/example-generator.d.ts.map +1 -0
  715. package/dist/utils/example-generator.js +106 -0
  716. package/dist/utils/example-generator.js.map +1 -0
  717. package/dist/utils/expression-utils.d.ts +6 -0
  718. package/dist/utils/expression-utils.d.ts.map +1 -0
  719. package/dist/utils/expression-utils.js +47 -0
  720. package/dist/utils/expression-utils.js.map +1 -0
  721. package/dist/utils/fixed-collection-validator.d.ts +35 -0
  722. package/dist/utils/fixed-collection-validator.d.ts.map +1 -0
  723. package/dist/utils/fixed-collection-validator.js +358 -0
  724. package/dist/utils/fixed-collection-validator.js.map +1 -0
  725. package/dist/utils/logger.d.ts +33 -0
  726. package/dist/utils/logger.d.ts.map +1 -0
  727. package/dist/utils/logger.js +101 -0
  728. package/dist/utils/logger.js.map +1 -0
  729. package/dist/utils/mcp-client.d.ts +21 -0
  730. package/dist/utils/mcp-client.d.ts.map +1 -0
  731. package/dist/utils/mcp-client.js +96 -0
  732. package/dist/utils/mcp-client.js.map +1 -0
  733. package/dist/utils/n8n-errors.d.ts +27 -0
  734. package/dist/utils/n8n-errors.d.ts.map +1 -0
  735. package/dist/utils/n8n-errors.js +138 -0
  736. package/dist/utils/n8n-errors.js.map +1 -0
  737. package/dist/utils/node-classification.d.ts +5 -0
  738. package/dist/utils/node-classification.d.ts.map +1 -0
  739. package/dist/utils/node-classification.js +31 -0
  740. package/dist/utils/node-classification.js.map +1 -0
  741. package/dist/utils/node-source-extractor.d.ts +21 -0
  742. package/dist/utils/node-source-extractor.d.ts.map +1 -0
  743. package/dist/utils/node-source-extractor.js +377 -0
  744. package/dist/utils/node-source-extractor.js.map +1 -0
  745. package/dist/utils/node-type-normalizer.d.ts +17 -0
  746. package/dist/utils/node-type-normalizer.d.ts.map +1 -0
  747. package/dist/utils/node-type-normalizer.js +87 -0
  748. package/dist/utils/node-type-normalizer.js.map +1 -0
  749. package/dist/utils/node-type-utils.d.ts +12 -0
  750. package/dist/utils/node-type-utils.d.ts.map +1 -0
  751. package/dist/utils/node-type-utils.js +126 -0
  752. package/dist/utils/node-type-utils.js.map +1 -0
  753. package/dist/utils/node-utils.d.ts +4 -0
  754. package/dist/utils/node-utils.d.ts.map +1 -0
  755. package/dist/utils/node-utils.js +81 -0
  756. package/dist/utils/node-utils.js.map +1 -0
  757. package/dist/utils/npm-version-checker.d.ts +14 -0
  758. package/dist/utils/npm-version-checker.d.ts.map +1 -0
  759. package/dist/utils/npm-version-checker.js +125 -0
  760. package/dist/utils/npm-version-checker.js.map +1 -0
  761. package/dist/utils/protocol-version.d.ts +19 -0
  762. package/dist/utils/protocol-version.d.ts.map +1 -0
  763. package/dist/utils/protocol-version.js +95 -0
  764. package/dist/utils/protocol-version.js.map +1 -0
  765. package/dist/utils/simple-cache.d.ts +10 -0
  766. package/dist/utils/simple-cache.d.ts.map +1 -0
  767. package/dist/utils/simple-cache.js +42 -0
  768. package/dist/utils/simple-cache.js.map +1 -0
  769. package/dist/utils/ssrf-protection.d.ts +7 -0
  770. package/dist/utils/ssrf-protection.d.ts.map +1 -0
  771. package/dist/utils/ssrf-protection.js +118 -0
  772. package/dist/utils/ssrf-protection.js.map +1 -0
  773. package/dist/utils/template-node-resolver.d.ts +2 -0
  774. package/dist/utils/template-node-resolver.d.ts.map +1 -0
  775. package/dist/utils/template-node-resolver.js +161 -0
  776. package/dist/utils/template-node-resolver.js.map +1 -0
  777. package/dist/utils/template-sanitizer.d.ts +21 -0
  778. package/dist/utils/template-sanitizer.d.ts.map +1 -0
  779. package/dist/utils/template-sanitizer.js +126 -0
  780. package/dist/utils/template-sanitizer.js.map +1 -0
  781. package/dist/utils/url-detector.d.ts +9 -0
  782. package/dist/utils/url-detector.d.ts.map +1 -0
  783. package/dist/utils/url-detector.js +79 -0
  784. package/dist/utils/url-detector.js.map +1 -0
  785. package/dist/utils/validation-schemas.d.ts +32 -0
  786. package/dist/utils/validation-schemas.d.ts.map +1 -0
  787. package/dist/utils/validation-schemas.js +219 -0
  788. package/dist/utils/validation-schemas.js.map +1 -0
  789. package/dist/utils/version.d.ts +2 -0
  790. package/dist/utils/version.d.ts.map +1 -0
  791. package/dist/utils/version.js +18 -0
  792. package/dist/utils/version.js.map +1 -0
  793. package/package.json +178 -0
  794. package/package.runtime.json +24 -0
@@ -0,0 +1,789 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnhancedConfigValidator = void 0;
4
+ const config_validator_1 = require("./config-validator");
5
+ const node_specific_validators_1 = require("./node-specific-validators");
6
+ const fixed_collection_validator_1 = require("../utils/fixed-collection-validator");
7
+ const operation_similarity_service_1 = require("./operation-similarity-service");
8
+ const resource_similarity_service_1 = require("./resource-similarity-service");
9
+ const node_type_normalizer_1 = require("../utils/node-type-normalizer");
10
+ const type_structure_service_1 = require("./type-structure-service");
11
+ class EnhancedConfigValidator extends config_validator_1.ConfigValidator {
12
+ static initializeSimilarityServices(repository) {
13
+ this.nodeRepository = repository;
14
+ this.operationSimilarityService = new operation_similarity_service_1.OperationSimilarityService(repository);
15
+ this.resourceSimilarityService = new resource_similarity_service_1.ResourceSimilarityService(repository);
16
+ }
17
+ static validateWithMode(nodeType, config, properties, mode = 'operation', profile = 'ai-friendly') {
18
+ if (typeof nodeType !== 'string') {
19
+ throw new Error(`Invalid nodeType: expected string, got ${typeof nodeType}`);
20
+ }
21
+ if (!config || typeof config !== 'object') {
22
+ throw new Error(`Invalid config: expected object, got ${typeof config}`);
23
+ }
24
+ if (!Array.isArray(properties)) {
25
+ throw new Error(`Invalid properties: expected array, got ${typeof properties}`);
26
+ }
27
+ const operationContext = this.extractOperationContext(config);
28
+ const userProvidedKeys = new Set(Object.keys(config));
29
+ const { properties: filteredProperties, configWithDefaults } = this.filterPropertiesByMode(properties, config, mode, operationContext);
30
+ const baseResult = super.validate(nodeType, configWithDefaults, filteredProperties, userProvidedKeys);
31
+ const enhancedResult = {
32
+ ...baseResult,
33
+ mode,
34
+ profile,
35
+ operation: operationContext,
36
+ examples: [],
37
+ nextSteps: [],
38
+ errors: baseResult.errors || [],
39
+ warnings: baseResult.warnings || [],
40
+ suggestions: baseResult.suggestions || []
41
+ };
42
+ this.applyProfileFilters(enhancedResult, profile);
43
+ this.addOperationSpecificEnhancements(nodeType, config, filteredProperties, enhancedResult);
44
+ enhancedResult.errors = this.deduplicateErrors(enhancedResult.errors);
45
+ enhancedResult.nextSteps = this.generateNextSteps(enhancedResult);
46
+ enhancedResult.valid = enhancedResult.errors.length === 0;
47
+ return enhancedResult;
48
+ }
49
+ static extractOperationContext(config) {
50
+ return {
51
+ resource: config.resource,
52
+ operation: config.operation,
53
+ action: config.action,
54
+ mode: config.mode
55
+ };
56
+ }
57
+ static filterPropertiesByMode(properties, config, mode, operation) {
58
+ const configWithDefaults = this.applyNodeDefaults(properties, config);
59
+ let filteredProperties;
60
+ switch (mode) {
61
+ case 'minimal':
62
+ filteredProperties = properties.filter(prop => prop.required && this.isPropertyVisible(prop, configWithDefaults));
63
+ break;
64
+ case 'operation':
65
+ filteredProperties = properties.filter(prop => this.isPropertyRelevantToOperation(prop, configWithDefaults, operation));
66
+ break;
67
+ case 'full':
68
+ default:
69
+ filteredProperties = properties;
70
+ break;
71
+ }
72
+ return { properties: filteredProperties, configWithDefaults };
73
+ }
74
+ static applyNodeDefaults(properties, config) {
75
+ const result = { ...config };
76
+ for (const prop of properties) {
77
+ if (prop.name && prop.default !== undefined && result[prop.name] === undefined) {
78
+ result[prop.name] = prop.default;
79
+ }
80
+ }
81
+ return result;
82
+ }
83
+ static isPropertyRelevantToOperation(prop, config, operation) {
84
+ if (!this.isPropertyVisible(prop, config)) {
85
+ return false;
86
+ }
87
+ if (!operation.resource && !operation.operation && !operation.action) {
88
+ return true;
89
+ }
90
+ if (prop.displayOptions?.show) {
91
+ const show = prop.displayOptions.show;
92
+ if (operation.resource && show.resource) {
93
+ const expectedResources = Array.isArray(show.resource) ? show.resource : [show.resource];
94
+ if (!expectedResources.includes(operation.resource)) {
95
+ return false;
96
+ }
97
+ }
98
+ if (operation.operation && show.operation) {
99
+ const expectedOps = Array.isArray(show.operation) ? show.operation : [show.operation];
100
+ if (!expectedOps.includes(operation.operation)) {
101
+ return false;
102
+ }
103
+ }
104
+ if (operation.action && show.action) {
105
+ const expectedActions = Array.isArray(show.action) ? show.action : [show.action];
106
+ if (!expectedActions.includes(operation.action)) {
107
+ return false;
108
+ }
109
+ }
110
+ }
111
+ return true;
112
+ }
113
+ static addOperationSpecificEnhancements(nodeType, config, properties, result) {
114
+ if (typeof nodeType !== 'string') {
115
+ result.errors.push({
116
+ type: 'invalid_type',
117
+ property: 'nodeType',
118
+ message: `Invalid nodeType: expected string, got ${typeof nodeType}`,
119
+ fix: 'Provide a valid node type string (e.g., "nodes-base.webhook")'
120
+ });
121
+ return;
122
+ }
123
+ this.validateResourceAndOperation(nodeType, config, result);
124
+ this.validateSpecialTypeStructures(config, properties, result);
125
+ this.validateFixedCollectionStructures(nodeType, config, result);
126
+ const context = {
127
+ config,
128
+ errors: result.errors,
129
+ warnings: result.warnings,
130
+ suggestions: result.suggestions,
131
+ autofix: result.autofix || {}
132
+ };
133
+ const normalizedNodeType = nodeType.replace('n8n-nodes-base.', 'nodes-base.');
134
+ switch (normalizedNodeType) {
135
+ case 'nodes-base.slack':
136
+ node_specific_validators_1.NodeSpecificValidators.validateSlack(context);
137
+ this.enhanceSlackValidation(config, result);
138
+ break;
139
+ case 'nodes-base.googleSheets':
140
+ node_specific_validators_1.NodeSpecificValidators.validateGoogleSheets(context);
141
+ this.enhanceGoogleSheetsValidation(config, result);
142
+ break;
143
+ case 'nodes-base.httpRequest':
144
+ this.enhanceHttpRequestValidation(config, result);
145
+ break;
146
+ case 'nodes-base.code':
147
+ node_specific_validators_1.NodeSpecificValidators.validateCode(context);
148
+ break;
149
+ case 'nodes-base.openAi':
150
+ node_specific_validators_1.NodeSpecificValidators.validateOpenAI(context);
151
+ break;
152
+ case 'nodes-base.mongoDb':
153
+ node_specific_validators_1.NodeSpecificValidators.validateMongoDB(context);
154
+ break;
155
+ case 'nodes-base.webhook':
156
+ node_specific_validators_1.NodeSpecificValidators.validateWebhook(context);
157
+ break;
158
+ case 'nodes-base.postgres':
159
+ node_specific_validators_1.NodeSpecificValidators.validatePostgres(context);
160
+ break;
161
+ case 'nodes-base.mysql':
162
+ node_specific_validators_1.NodeSpecificValidators.validateMySQL(context);
163
+ break;
164
+ case 'nodes-langchain.agent':
165
+ node_specific_validators_1.NodeSpecificValidators.validateAIAgent(context);
166
+ break;
167
+ case 'nodes-base.set':
168
+ node_specific_validators_1.NodeSpecificValidators.validateSet(context);
169
+ break;
170
+ case 'nodes-base.switch':
171
+ this.validateSwitchNodeStructure(config, result);
172
+ break;
173
+ case 'nodes-base.if':
174
+ this.validateIfNodeStructure(config, result);
175
+ break;
176
+ case 'nodes-base.filter':
177
+ this.validateFilterNodeStructure(config, result);
178
+ break;
179
+ }
180
+ if (Object.keys(context.autofix).length > 0) {
181
+ result.autofix = context.autofix;
182
+ }
183
+ }
184
+ static enhanceSlackValidation(config, result) {
185
+ const { resource, operation } = result.operation || {};
186
+ if (resource === 'message' && operation === 'send') {
187
+ if (!config.channel && !config.channelId) {
188
+ const channelError = result.errors.find(e => e.property === 'channel' || e.property === 'channelId');
189
+ if (channelError) {
190
+ channelError.message = 'To send a Slack message, specify either a channel name (e.g., "#general") or channel ID';
191
+ channelError.fix = 'Add channel: "#general" or use a channel ID like "C1234567890"';
192
+ }
193
+ }
194
+ }
195
+ }
196
+ static enhanceGoogleSheetsValidation(config, result) {
197
+ const { operation } = result.operation || {};
198
+ if (operation === 'append') {
199
+ if (config.range && !config.range.includes('!')) {
200
+ result.warnings.push({
201
+ type: 'inefficient',
202
+ property: 'range',
203
+ message: 'Range should include sheet name (e.g., "Sheet1!A:B")',
204
+ suggestion: 'Format: "SheetName!A1:B10" or "SheetName!A:B" for entire columns'
205
+ });
206
+ }
207
+ }
208
+ }
209
+ static enhanceHttpRequestValidation(config, result) {
210
+ const url = String(config.url || '');
211
+ const options = config.options || {};
212
+ if (!result.suggestions.some(s => typeof s === 'string' && s.includes('alwaysOutputData'))) {
213
+ result.suggestions.push('Consider adding alwaysOutputData: true at node level (not in parameters) for better error handling. ' +
214
+ 'This ensures the node produces output even when HTTP requests fail, allowing downstream error handling.');
215
+ }
216
+ const lowerUrl = url.toLowerCase();
217
+ const isApiEndpoint = /^https?:\/\/api\./i.test(url) ||
218
+ /\/api[\/\?]|\/api$/i.test(url) ||
219
+ /\/rest[\/\?]|\/rest$/i.test(url) ||
220
+ lowerUrl.includes('supabase.co') ||
221
+ lowerUrl.includes('firebase') ||
222
+ lowerUrl.includes('googleapis.com') ||
223
+ /\.com\/v\d+/i.test(url);
224
+ if (isApiEndpoint && !options.response?.response?.responseFormat) {
225
+ result.suggestions.push('API endpoints should explicitly set options.response.response.responseFormat to "json" or "text" ' +
226
+ 'to prevent confusion about response parsing. Example: ' +
227
+ '{ "options": { "response": { "response": { "responseFormat": "json" } } } }');
228
+ }
229
+ if (url && url.startsWith('=')) {
230
+ const expressionContent = url.slice(1);
231
+ const lowerExpression = expressionContent.toLowerCase();
232
+ if (expressionContent.startsWith('www.') ||
233
+ (expressionContent.includes('{{') && !lowerExpression.includes('http'))) {
234
+ result.warnings.push({
235
+ type: 'invalid_value',
236
+ property: 'url',
237
+ message: 'URL expression appears to be missing http:// or https:// protocol',
238
+ suggestion: 'Include protocol in your expression. Example: ={{ "https://" + $json.domain + ".com" }}'
239
+ });
240
+ }
241
+ }
242
+ }
243
+ static generateNextSteps(result) {
244
+ const steps = [];
245
+ const requiredErrors = result.errors.filter(e => e.type === 'missing_required');
246
+ const typeErrors = result.errors.filter(e => e.type === 'invalid_type');
247
+ const valueErrors = result.errors.filter(e => e.type === 'invalid_value');
248
+ if (requiredErrors.length > 0) {
249
+ steps.push(`Add required fields: ${requiredErrors.map(e => e.property).join(', ')}`);
250
+ }
251
+ if (typeErrors.length > 0) {
252
+ steps.push(`Fix type mismatches: ${typeErrors.map(e => `${e.property} should be ${e.fix}`).join(', ')}`);
253
+ }
254
+ if (valueErrors.length > 0) {
255
+ steps.push(`Correct invalid values: ${valueErrors.map(e => e.property).join(', ')}`);
256
+ }
257
+ if (result.warnings.length > 0 && result.errors.length === 0) {
258
+ steps.push('Consider addressing warnings for better reliability');
259
+ }
260
+ if (result.errors.length > 0) {
261
+ steps.push('Fix the errors above following the provided suggestions');
262
+ }
263
+ return steps;
264
+ }
265
+ static deduplicateErrors(errors) {
266
+ const seen = new Map();
267
+ for (const error of errors) {
268
+ const key = `${error.property}-${error.type}`;
269
+ const existing = seen.get(key);
270
+ if (!existing) {
271
+ seen.set(key, error);
272
+ }
273
+ else {
274
+ const existingLength = (existing.message?.length || 0) + (existing.fix?.length || 0);
275
+ const newLength = (error.message?.length || 0) + (error.fix?.length || 0);
276
+ if (newLength > existingLength) {
277
+ seen.set(key, error);
278
+ }
279
+ }
280
+ }
281
+ return Array.from(seen.values());
282
+ }
283
+ static shouldFilterCredentialWarning(warning) {
284
+ return warning.type === 'security' &&
285
+ warning.message !== undefined &&
286
+ warning.message.includes('Hardcoded nodeCredentialType');
287
+ }
288
+ static applyProfileFilters(result, profile) {
289
+ switch (profile) {
290
+ case 'minimal':
291
+ result.errors = result.errors.filter(e => e.type === 'missing_required');
292
+ result.warnings = result.warnings.filter(w => {
293
+ if (this.shouldFilterCredentialWarning(w)) {
294
+ return false;
295
+ }
296
+ return w.type === 'security' || w.type === 'deprecated';
297
+ });
298
+ result.suggestions = [];
299
+ break;
300
+ case 'runtime':
301
+ result.errors = result.errors.filter(e => e.type === 'missing_required' ||
302
+ e.type === 'invalid_value' ||
303
+ (e.type === 'invalid_type' && e.message.includes('undefined')));
304
+ result.warnings = result.warnings.filter(w => {
305
+ if (this.shouldFilterCredentialWarning(w)) {
306
+ return false;
307
+ }
308
+ if (w.type === 'security' || w.type === 'deprecated')
309
+ return true;
310
+ if (w.type === 'inefficient' && w.message && w.message.includes('not visible')) {
311
+ return false;
312
+ }
313
+ return false;
314
+ });
315
+ result.suggestions = [];
316
+ break;
317
+ case 'strict':
318
+ if (result.warnings.length === 0 && result.errors.length === 0) {
319
+ result.suggestions.push('Consider adding error handling with onError property and timeout configuration');
320
+ result.suggestions.push('Add authentication if connecting to external services');
321
+ }
322
+ this.enforceErrorHandlingForProfile(result, profile);
323
+ break;
324
+ case 'ai-friendly':
325
+ default:
326
+ result.warnings = result.warnings.filter(w => {
327
+ if (this.shouldFilterCredentialWarning(w)) {
328
+ return false;
329
+ }
330
+ if (w.type === 'security' || w.type === 'deprecated')
331
+ return true;
332
+ if (w.type === 'missing_common')
333
+ return true;
334
+ if (w.type === 'best_practice')
335
+ return true;
336
+ if (w.type === 'inefficient' && w.message && w.message.includes('not visible')) {
337
+ return false;
338
+ }
339
+ if (w.type === 'inefficient' && w.property?.startsWith('_')) {
340
+ return false;
341
+ }
342
+ return true;
343
+ });
344
+ this.addErrorHandlingSuggestions(result);
345
+ break;
346
+ }
347
+ }
348
+ static enforceErrorHandlingForProfile(result, profile) {
349
+ if (profile !== 'strict')
350
+ return;
351
+ const nodeType = result.operation?.resource || '';
352
+ const errorProneTypes = ['httpRequest', 'webhook', 'database', 'api', 'slack', 'email', 'openai'];
353
+ if (errorProneTypes.some(type => nodeType.toLowerCase().includes(type))) {
354
+ result.warnings.push({
355
+ type: 'best_practice',
356
+ property: 'errorHandling',
357
+ message: 'External service nodes should have error handling configured',
358
+ suggestion: 'Add onError: "continueRegularOutput" or "stopWorkflow" with retryOnFail: true for resilience'
359
+ });
360
+ }
361
+ }
362
+ static addErrorHandlingSuggestions(result) {
363
+ const hasNetworkErrors = result.errors.some(e => e.message.toLowerCase().includes('url') ||
364
+ e.message.toLowerCase().includes('endpoint') ||
365
+ e.message.toLowerCase().includes('api'));
366
+ if (hasNetworkErrors) {
367
+ result.suggestions.push('For API calls, consider adding onError: "continueRegularOutput" with retryOnFail: true and maxTries: 3');
368
+ }
369
+ const isWebhook = result.operation?.resource === 'webhook' ||
370
+ result.errors.some(e => e.message.toLowerCase().includes('webhook'));
371
+ if (isWebhook) {
372
+ result.suggestions.push('Webhooks should use onError: "continueRegularOutput" to ensure responses are always sent');
373
+ }
374
+ }
375
+ static validateFixedCollectionStructures(nodeType, config, result) {
376
+ const validationResult = fixed_collection_validator_1.FixedCollectionValidator.validate(nodeType, config);
377
+ if (!validationResult.isValid) {
378
+ for (const error of validationResult.errors) {
379
+ result.errors.push({
380
+ type: 'invalid_value',
381
+ property: error.pattern.split('.')[0],
382
+ message: error.message,
383
+ fix: error.fix
384
+ });
385
+ }
386
+ if (validationResult.autofix) {
387
+ if (typeof validationResult.autofix === 'object' && !Array.isArray(validationResult.autofix)) {
388
+ result.autofix = {
389
+ ...result.autofix,
390
+ ...validationResult.autofix
391
+ };
392
+ }
393
+ else {
394
+ const firstError = validationResult.errors[0];
395
+ if (firstError) {
396
+ const rootProperty = firstError.pattern.split('.')[0];
397
+ result.autofix = {
398
+ ...result.autofix,
399
+ [rootProperty]: validationResult.autofix
400
+ };
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+ static validateSwitchNodeStructure(config, result) {
407
+ if (!config.rules)
408
+ return;
409
+ const hasFixedCollectionError = result.errors.some(e => e.property === 'rules' && e.message.includes('propertyValues[itemName] is not iterable'));
410
+ if (hasFixedCollectionError)
411
+ return;
412
+ if (config.rules.values && Array.isArray(config.rules.values)) {
413
+ config.rules.values.forEach((rule, index) => {
414
+ if (!rule.conditions) {
415
+ result.warnings.push({
416
+ type: 'missing_common',
417
+ property: 'rules',
418
+ message: `Switch rule ${index + 1} is missing "conditions" property`,
419
+ suggestion: 'Each rule in the values array should have a "conditions" property'
420
+ });
421
+ }
422
+ if (!rule.outputKey && rule.renameOutput !== false) {
423
+ result.warnings.push({
424
+ type: 'missing_common',
425
+ property: 'rules',
426
+ message: `Switch rule ${index + 1} is missing "outputKey" property`,
427
+ suggestion: 'Add "outputKey" to specify which output to use when this rule matches'
428
+ });
429
+ }
430
+ });
431
+ }
432
+ }
433
+ static validateIfNodeStructure(config, result) {
434
+ if (!config.conditions)
435
+ return;
436
+ const hasFixedCollectionError = result.errors.some(e => e.property === 'conditions' && e.message.includes('propertyValues[itemName] is not iterable'));
437
+ if (hasFixedCollectionError)
438
+ return;
439
+ }
440
+ static validateFilterNodeStructure(config, result) {
441
+ if (!config.conditions)
442
+ return;
443
+ const hasFixedCollectionError = result.errors.some(e => e.property === 'conditions' && e.message.includes('propertyValues[itemName] is not iterable'));
444
+ if (hasFixedCollectionError)
445
+ return;
446
+ }
447
+ static validateResourceAndOperation(nodeType, config, result) {
448
+ if (!this.operationSimilarityService || !this.resourceSimilarityService || !this.nodeRepository) {
449
+ return;
450
+ }
451
+ const normalizedNodeType = node_type_normalizer_1.NodeTypeNormalizer.normalizeToFullForm(nodeType);
452
+ const configWithDefaults = { ...config };
453
+ if (configWithDefaults.operation === undefined && configWithDefaults.resource !== undefined) {
454
+ const defaultOperation = this.nodeRepository.getDefaultOperationForResource(normalizedNodeType, configWithDefaults.resource);
455
+ if (defaultOperation !== undefined) {
456
+ configWithDefaults.operation = defaultOperation;
457
+ }
458
+ }
459
+ if (config.resource !== undefined) {
460
+ result.errors = result.errors.filter(e => e.property !== 'resource');
461
+ const validResources = this.nodeRepository.getNodeResources(normalizedNodeType);
462
+ const resourceIsValid = validResources.some(r => {
463
+ const resourceValue = typeof r === 'string' ? r : r.value;
464
+ return resourceValue === config.resource;
465
+ });
466
+ if (!resourceIsValid && config.resource !== '') {
467
+ let suggestions = [];
468
+ try {
469
+ suggestions = this.resourceSimilarityService.findSimilarResources(normalizedNodeType, config.resource, 3);
470
+ }
471
+ catch (error) {
472
+ console.error('Resource similarity service error:', error);
473
+ }
474
+ let errorMessage = `Invalid resource "${config.resource}" for node ${nodeType}.`;
475
+ let fix = '';
476
+ if (suggestions.length > 0) {
477
+ const topSuggestion = suggestions[0];
478
+ errorMessage += ` Did you mean "${topSuggestion.value}"?`;
479
+ if (topSuggestion.confidence >= 0.8) {
480
+ fix = `Change resource to "${topSuggestion.value}". ${topSuggestion.reason}`;
481
+ }
482
+ else {
483
+ fix = `Valid resources: ${validResources.slice(0, 5).map(r => {
484
+ const val = typeof r === 'string' ? r : r.value;
485
+ return `"${val}"`;
486
+ }).join(', ')}${validResources.length > 5 ? '...' : ''}`;
487
+ }
488
+ }
489
+ else {
490
+ fix = `Valid resources: ${validResources.slice(0, 5).map(r => {
491
+ const val = typeof r === 'string' ? r : r.value;
492
+ return `"${val}"`;
493
+ }).join(', ')}${validResources.length > 5 ? '...' : ''}`;
494
+ }
495
+ const error = {
496
+ type: 'invalid_value',
497
+ property: 'resource',
498
+ message: errorMessage,
499
+ fix
500
+ };
501
+ if (suggestions.length > 0 && suggestions[0].confidence >= 0.5) {
502
+ error.suggestion = `Did you mean "${suggestions[0].value}"? ${suggestions[0].reason}`;
503
+ }
504
+ result.errors.push(error);
505
+ if (suggestions.length > 0) {
506
+ for (const suggestion of suggestions) {
507
+ result.suggestions.push(`Resource "${config.resource}" not found. Did you mean "${suggestion.value}"? ${suggestion.reason}`);
508
+ }
509
+ }
510
+ }
511
+ }
512
+ if (config.operation !== undefined || configWithDefaults.operation !== undefined) {
513
+ result.errors = result.errors.filter(e => e.property !== 'operation');
514
+ const operationToValidate = configWithDefaults.operation || config.operation;
515
+ const validOperations = this.nodeRepository.getNodeOperations(normalizedNodeType, config.resource);
516
+ const operationIsValid = validOperations.some(op => {
517
+ const opValue = op.operation || op.value || op;
518
+ return opValue === operationToValidate;
519
+ });
520
+ if (!operationIsValid && config.operation !== undefined && config.operation !== '') {
521
+ let suggestions = [];
522
+ try {
523
+ suggestions = this.operationSimilarityService.findSimilarOperations(normalizedNodeType, config.operation, config.resource, 3);
524
+ }
525
+ catch (error) {
526
+ console.error('Operation similarity service error:', error);
527
+ }
528
+ let errorMessage = `Invalid operation "${config.operation}" for node ${nodeType}`;
529
+ if (config.resource) {
530
+ errorMessage += ` with resource "${config.resource}"`;
531
+ }
532
+ errorMessage += '.';
533
+ let fix = '';
534
+ if (suggestions.length > 0) {
535
+ const topSuggestion = suggestions[0];
536
+ if (topSuggestion.confidence >= 0.8) {
537
+ errorMessage += ` Did you mean "${topSuggestion.value}"?`;
538
+ fix = `Change operation to "${topSuggestion.value}". ${topSuggestion.reason}`;
539
+ }
540
+ else {
541
+ errorMessage += ` Similar operations: ${suggestions.map(s => `"${s.value}"`).join(', ')}`;
542
+ fix = `Valid operations${config.resource ? ` for resource "${config.resource}"` : ''}: ${validOperations.slice(0, 5).map(op => {
543
+ const val = op.operation || op.value || op;
544
+ return `"${val}"`;
545
+ }).join(', ')}${validOperations.length > 5 ? '...' : ''}`;
546
+ }
547
+ }
548
+ else {
549
+ fix = `Valid operations${config.resource ? ` for resource "${config.resource}"` : ''}: ${validOperations.slice(0, 5).map(op => {
550
+ const val = op.operation || op.value || op;
551
+ return `"${val}"`;
552
+ }).join(', ')}${validOperations.length > 5 ? '...' : ''}`;
553
+ }
554
+ const error = {
555
+ type: 'invalid_value',
556
+ property: 'operation',
557
+ message: errorMessage,
558
+ fix
559
+ };
560
+ if (suggestions.length > 0 && suggestions[0].confidence >= 0.5) {
561
+ error.suggestion = `Did you mean "${suggestions[0].value}"? ${suggestions[0].reason}`;
562
+ }
563
+ result.errors.push(error);
564
+ if (suggestions.length > 0) {
565
+ for (const suggestion of suggestions) {
566
+ result.suggestions.push(`Operation "${config.operation}" not found. Did you mean "${suggestion.value}"? ${suggestion.reason}`);
567
+ }
568
+ }
569
+ }
570
+ }
571
+ }
572
+ static validateSpecialTypeStructures(config, properties, result) {
573
+ for (const [key, value] of Object.entries(config)) {
574
+ if (value === undefined || value === null)
575
+ continue;
576
+ const propDef = properties.find(p => p.name === key);
577
+ if (!propDef)
578
+ continue;
579
+ let structureType = null;
580
+ if (propDef.type === 'filter') {
581
+ structureType = 'filter';
582
+ }
583
+ else if (propDef.type === 'resourceMapper') {
584
+ structureType = 'resourceMapper';
585
+ }
586
+ else if (propDef.type === 'assignmentCollection') {
587
+ structureType = 'assignmentCollection';
588
+ }
589
+ else if (propDef.type === 'resourceLocator') {
590
+ structureType = 'resourceLocator';
591
+ }
592
+ if (!structureType)
593
+ continue;
594
+ const structure = type_structure_service_1.TypeStructureService.getStructure(structureType);
595
+ if (!structure) {
596
+ console.warn(`No structure definition found for type: ${structureType}`);
597
+ continue;
598
+ }
599
+ const validationResult = type_structure_service_1.TypeStructureService.validateTypeCompatibility(value, structureType);
600
+ if (!validationResult.valid) {
601
+ for (const error of validationResult.errors) {
602
+ result.errors.push({
603
+ type: 'invalid_configuration',
604
+ property: key,
605
+ message: error,
606
+ fix: `Ensure ${key} follows the expected structure for ${structureType} type. Example: ${JSON.stringify(structure.example)}`
607
+ });
608
+ }
609
+ }
610
+ for (const warning of validationResult.warnings) {
611
+ result.warnings.push({
612
+ type: 'best_practice',
613
+ property: key,
614
+ message: warning
615
+ });
616
+ }
617
+ if (typeof value === 'object' && value !== null) {
618
+ this.validateComplexTypeStructure(key, value, structureType, structure, result);
619
+ }
620
+ if (structureType === 'filter' && value.conditions) {
621
+ this.validateFilterOperations(value.conditions, key, result);
622
+ }
623
+ }
624
+ }
625
+ static validateComplexTypeStructure(propertyName, value, type, structure, result) {
626
+ switch (type) {
627
+ case 'filter':
628
+ if (!value.combinator) {
629
+ result.errors.push({
630
+ type: 'invalid_configuration',
631
+ property: `${propertyName}.combinator`,
632
+ message: 'Filter must have a combinator field',
633
+ fix: 'Add combinator: "and" or combinator: "or" to the filter configuration'
634
+ });
635
+ }
636
+ else if (value.combinator !== 'and' && value.combinator !== 'or') {
637
+ result.errors.push({
638
+ type: 'invalid_configuration',
639
+ property: `${propertyName}.combinator`,
640
+ message: `Invalid combinator value: ${value.combinator}. Must be "and" or "or"`,
641
+ fix: 'Set combinator to either "and" or "or"'
642
+ });
643
+ }
644
+ if (!value.conditions) {
645
+ result.errors.push({
646
+ type: 'invalid_configuration',
647
+ property: `${propertyName}.conditions`,
648
+ message: 'Filter must have a conditions field',
649
+ fix: 'Add conditions array to the filter configuration'
650
+ });
651
+ }
652
+ else if (!Array.isArray(value.conditions)) {
653
+ result.errors.push({
654
+ type: 'invalid_configuration',
655
+ property: `${propertyName}.conditions`,
656
+ message: 'Filter conditions must be an array',
657
+ fix: 'Ensure conditions is an array of condition objects'
658
+ });
659
+ }
660
+ break;
661
+ case 'resourceLocator':
662
+ if (!value.mode) {
663
+ result.errors.push({
664
+ type: 'invalid_configuration',
665
+ property: `${propertyName}.mode`,
666
+ message: 'ResourceLocator must have a mode field',
667
+ fix: 'Add mode: "id", mode: "url", or mode: "list" to the resourceLocator configuration'
668
+ });
669
+ }
670
+ else if (!['id', 'url', 'list', 'name'].includes(value.mode)) {
671
+ result.errors.push({
672
+ type: 'invalid_configuration',
673
+ property: `${propertyName}.mode`,
674
+ message: `Invalid mode value: ${value.mode}. Must be "id", "url", "list", or "name"`,
675
+ fix: 'Set mode to one of: "id", "url", "list", "name"'
676
+ });
677
+ }
678
+ if (!value.hasOwnProperty('value')) {
679
+ result.errors.push({
680
+ type: 'invalid_configuration',
681
+ property: `${propertyName}.value`,
682
+ message: 'ResourceLocator must have a value field',
683
+ fix: 'Add value field to the resourceLocator configuration'
684
+ });
685
+ }
686
+ break;
687
+ case 'assignmentCollection':
688
+ if (!value.assignments) {
689
+ result.errors.push({
690
+ type: 'invalid_configuration',
691
+ property: `${propertyName}.assignments`,
692
+ message: 'AssignmentCollection must have an assignments field',
693
+ fix: 'Add assignments array to the assignmentCollection configuration'
694
+ });
695
+ }
696
+ else if (!Array.isArray(value.assignments)) {
697
+ result.errors.push({
698
+ type: 'invalid_configuration',
699
+ property: `${propertyName}.assignments`,
700
+ message: 'AssignmentCollection assignments must be an array',
701
+ fix: 'Ensure assignments is an array of assignment objects'
702
+ });
703
+ }
704
+ break;
705
+ case 'resourceMapper':
706
+ if (!value.mappingMode) {
707
+ result.errors.push({
708
+ type: 'invalid_configuration',
709
+ property: `${propertyName}.mappingMode`,
710
+ message: 'ResourceMapper must have a mappingMode field',
711
+ fix: 'Add mappingMode: "defineBelow" or mappingMode: "autoMapInputData"'
712
+ });
713
+ }
714
+ else if (!['defineBelow', 'autoMapInputData'].includes(value.mappingMode)) {
715
+ result.errors.push({
716
+ type: 'invalid_configuration',
717
+ property: `${propertyName}.mappingMode`,
718
+ message: `Invalid mappingMode: ${value.mappingMode}. Must be "defineBelow" or "autoMapInputData"`,
719
+ fix: 'Set mappingMode to either "defineBelow" or "autoMapInputData"'
720
+ });
721
+ }
722
+ break;
723
+ }
724
+ }
725
+ static validateFilterOperations(conditions, propertyName, result) {
726
+ if (!Array.isArray(conditions))
727
+ return;
728
+ const VALID_OPERATIONS_BY_TYPE = {
729
+ string: [
730
+ 'empty', 'notEmpty', 'equals', 'notEquals',
731
+ 'contains', 'notContains', 'startsWith', 'notStartsWith',
732
+ 'endsWith', 'notEndsWith', 'regex', 'notRegex',
733
+ 'exists', 'notExists', 'isNotEmpty'
734
+ ],
735
+ number: [
736
+ 'empty', 'notEmpty', 'equals', 'notEquals', 'gt', 'lt', 'gte', 'lte',
737
+ 'exists', 'notExists', 'isNotEmpty'
738
+ ],
739
+ dateTime: [
740
+ 'empty', 'notEmpty', 'equals', 'notEquals', 'after', 'before', 'afterOrEquals', 'beforeOrEquals',
741
+ 'exists', 'notExists', 'isNotEmpty'
742
+ ],
743
+ boolean: [
744
+ 'empty', 'notEmpty', 'true', 'false', 'equals', 'notEquals',
745
+ 'exists', 'notExists', 'isNotEmpty'
746
+ ],
747
+ array: [
748
+ 'contains', 'notContains', 'lengthEquals', 'lengthNotEquals',
749
+ 'lengthGt', 'lengthLt', 'lengthGte', 'lengthLte', 'empty', 'notEmpty',
750
+ 'exists', 'notExists', 'isNotEmpty'
751
+ ],
752
+ object: [
753
+ 'empty', 'notEmpty',
754
+ 'exists', 'notExists', 'isNotEmpty'
755
+ ],
756
+ any: ['exists', 'notExists', 'isNotEmpty']
757
+ };
758
+ for (let i = 0; i < conditions.length; i++) {
759
+ const condition = conditions[i];
760
+ if (!condition.operator || typeof condition.operator !== 'object')
761
+ continue;
762
+ const { type, operation } = condition.operator;
763
+ if (!type || !operation)
764
+ continue;
765
+ const validOperations = VALID_OPERATIONS_BY_TYPE[type];
766
+ if (!validOperations) {
767
+ result.warnings.push({
768
+ type: 'best_practice',
769
+ property: `${propertyName}.conditions[${i}].operator.type`,
770
+ message: `Unknown operator type: ${type}`
771
+ });
772
+ continue;
773
+ }
774
+ if (!validOperations.includes(operation)) {
775
+ result.errors.push({
776
+ type: 'invalid_value',
777
+ property: `${propertyName}.conditions[${i}].operator.operation`,
778
+ message: `Operation '${operation}' is not valid for type '${type}'`,
779
+ fix: `Use one of the valid operations for ${type}: ${validOperations.join(', ')}`
780
+ });
781
+ }
782
+ }
783
+ }
784
+ }
785
+ exports.EnhancedConfigValidator = EnhancedConfigValidator;
786
+ EnhancedConfigValidator.operationSimilarityService = null;
787
+ EnhancedConfigValidator.resourceSimilarityService = null;
788
+ EnhancedConfigValidator.nodeRepository = null;
789
+ //# sourceMappingURL=enhanced-config-validator.js.map