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,644 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.TemplateRepository = void 0;
37
+ const logger_1 = require("../utils/logger");
38
+ const template_sanitizer_1 = require("../utils/template-sanitizer");
39
+ const zlib = __importStar(require("zlib"));
40
+ const template_node_resolver_1 = require("../utils/template-node-resolver");
41
+ class TemplateRepository {
42
+ constructor(db) {
43
+ this.db = db;
44
+ this.hasFTS5Support = false;
45
+ this.sanitizer = new template_sanitizer_1.TemplateSanitizer();
46
+ this.initializeFTS5();
47
+ }
48
+ initializeFTS5() {
49
+ this.hasFTS5Support = this.db.checkFTS5Support();
50
+ if (this.hasFTS5Support) {
51
+ try {
52
+ const ftsExists = this.db.prepare(`
53
+ SELECT name FROM sqlite_master
54
+ WHERE type='table' AND name='templates_fts'
55
+ `).get();
56
+ if (ftsExists) {
57
+ logger_1.logger.info('FTS5 table already exists for templates');
58
+ try {
59
+ const testCount = this.db.prepare('SELECT COUNT(*) as count FROM templates_fts').get();
60
+ logger_1.logger.info(`FTS5 enabled with ${testCount.count} indexed entries`);
61
+ }
62
+ catch (testError) {
63
+ logger_1.logger.warn('FTS5 table exists but query failed:', testError);
64
+ this.hasFTS5Support = false;
65
+ return;
66
+ }
67
+ }
68
+ else {
69
+ logger_1.logger.info('Creating FTS5 virtual table for templates...');
70
+ this.db.exec(`
71
+ CREATE VIRTUAL TABLE IF NOT EXISTS templates_fts USING fts5(
72
+ name, description, content=templates
73
+ );
74
+ `);
75
+ this.db.exec(`
76
+ CREATE TRIGGER IF NOT EXISTS templates_ai AFTER INSERT ON templates BEGIN
77
+ INSERT INTO templates_fts(rowid, name, description)
78
+ VALUES (new.id, new.name, new.description);
79
+ END;
80
+ `);
81
+ this.db.exec(`
82
+ CREATE TRIGGER IF NOT EXISTS templates_au AFTER UPDATE ON templates BEGIN
83
+ UPDATE templates_fts SET name = new.name, description = new.description
84
+ WHERE rowid = new.id;
85
+ END;
86
+ `);
87
+ this.db.exec(`
88
+ CREATE TRIGGER IF NOT EXISTS templates_ad AFTER DELETE ON templates BEGIN
89
+ DELETE FROM templates_fts WHERE rowid = old.id;
90
+ END;
91
+ `);
92
+ logger_1.logger.info('FTS5 support enabled for template search');
93
+ }
94
+ }
95
+ catch (error) {
96
+ logger_1.logger.warn('Failed to initialize FTS5 for templates:', {
97
+ message: error.message,
98
+ code: error.code,
99
+ stack: error.stack
100
+ });
101
+ this.hasFTS5Support = false;
102
+ }
103
+ }
104
+ else {
105
+ logger_1.logger.info('FTS5 not available, using LIKE search for templates');
106
+ }
107
+ }
108
+ saveTemplate(workflow, detail, categories = []) {
109
+ if ((workflow.totalViews || 0) <= 10) {
110
+ logger_1.logger.debug(`Skipping template ${workflow.id}: ${workflow.name} (only ${workflow.totalViews} views)`);
111
+ return;
112
+ }
113
+ const stmt = this.db.prepare(`
114
+ INSERT OR REPLACE INTO templates (
115
+ id, workflow_id, name, description, author_name, author_username,
116
+ author_verified, nodes_used, workflow_json_compressed, categories, views,
117
+ created_at, updated_at, url
118
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
119
+ `);
120
+ const nodeTypes = detail.workflow.nodes.map(n => n.type);
121
+ const url = `https://n8n.io/workflows/${workflow.id}`;
122
+ const { sanitized: sanitizedWorkflow, wasModified } = this.sanitizer.sanitizeWorkflow(detail.workflow);
123
+ if (wasModified) {
124
+ const detectedTokens = this.sanitizer.detectTokens(detail.workflow);
125
+ logger_1.logger.warn(`Sanitized API tokens in template ${workflow.id}: ${workflow.name}`, {
126
+ templateId: workflow.id,
127
+ templateName: workflow.name,
128
+ tokensFound: detectedTokens.length,
129
+ tokenPreviews: detectedTokens.map(t => t.substring(0, 20) + '...')
130
+ });
131
+ }
132
+ const workflowJsonStr = JSON.stringify(sanitizedWorkflow);
133
+ const compressed = zlib.gzipSync(workflowJsonStr);
134
+ const compressedBase64 = compressed.toString('base64');
135
+ const originalSize = Buffer.byteLength(workflowJsonStr);
136
+ const compressedSize = compressed.length;
137
+ const ratio = Math.round((1 - compressedSize / originalSize) * 100);
138
+ logger_1.logger.debug(`Template ${workflow.id} compression: ${originalSize} → ${compressedSize} bytes (${ratio}% reduction)`);
139
+ stmt.run(workflow.id, workflow.id, workflow.name, workflow.description || '', workflow.user.name, workflow.user.username, workflow.user.verified ? 1 : 0, JSON.stringify(nodeTypes), compressedBase64, JSON.stringify(categories), workflow.totalViews || 0, workflow.createdAt, workflow.createdAt, url);
140
+ }
141
+ getTemplatesByNodes(nodeTypes, limit = 10, offset = 0) {
142
+ const resolvedTypes = (0, template_node_resolver_1.resolveTemplateNodeTypes)(nodeTypes);
143
+ if (resolvedTypes.length === 0) {
144
+ logger_1.logger.debug('No resolved types for template search', { input: nodeTypes });
145
+ return [];
146
+ }
147
+ const conditions = resolvedTypes.map(() => "nodes_used LIKE ?").join(" OR ");
148
+ const query = `
149
+ SELECT * FROM templates
150
+ WHERE ${conditions}
151
+ ORDER BY views DESC, created_at DESC
152
+ LIMIT ? OFFSET ?
153
+ `;
154
+ const params = [...resolvedTypes.map(n => `%"${n}"%`), limit, offset];
155
+ const results = this.db.prepare(query).all(...params);
156
+ logger_1.logger.debug(`Template search found ${results.length} results`, {
157
+ input: nodeTypes,
158
+ resolved: resolvedTypes,
159
+ found: results.length
160
+ });
161
+ return results.map(t => this.decompressWorkflow(t));
162
+ }
163
+ getTemplate(templateId) {
164
+ const row = this.db.prepare(`
165
+ SELECT * FROM templates WHERE id = ?
166
+ `).get(templateId);
167
+ if (!row)
168
+ return null;
169
+ if (row.workflow_json_compressed && !row.workflow_json) {
170
+ try {
171
+ const compressed = Buffer.from(row.workflow_json_compressed, 'base64');
172
+ const decompressed = zlib.gunzipSync(compressed);
173
+ row.workflow_json = decompressed.toString();
174
+ }
175
+ catch (error) {
176
+ logger_1.logger.error(`Failed to decompress workflow for template ${templateId}:`, error);
177
+ return null;
178
+ }
179
+ }
180
+ return row;
181
+ }
182
+ decompressWorkflow(template) {
183
+ if (template.workflow_json_compressed && !template.workflow_json) {
184
+ try {
185
+ const compressed = Buffer.from(template.workflow_json_compressed, 'base64');
186
+ const decompressed = zlib.gunzipSync(compressed);
187
+ template.workflow_json = decompressed.toString();
188
+ }
189
+ catch (error) {
190
+ logger_1.logger.error(`Failed to decompress workflow for template ${template.id}:`, error);
191
+ }
192
+ }
193
+ return template;
194
+ }
195
+ searchTemplates(query, limit = 20, offset = 0) {
196
+ logger_1.logger.debug(`Searching templates for: "${query}" (FTS5: ${this.hasFTS5Support})`);
197
+ if (!this.hasFTS5Support) {
198
+ logger_1.logger.debug('Using LIKE search (FTS5 not available)');
199
+ return this.searchTemplatesLIKE(query, limit, offset);
200
+ }
201
+ try {
202
+ const ftsQuery = query.split(' ').map(term => {
203
+ const escaped = term.replace(/"/g, '""');
204
+ return `"${escaped}"`;
205
+ }).join(' OR ');
206
+ logger_1.logger.debug(`FTS5 query: ${ftsQuery}`);
207
+ const results = this.db.prepare(`
208
+ SELECT t.* FROM templates t
209
+ JOIN templates_fts ON t.id = templates_fts.rowid
210
+ WHERE templates_fts MATCH ?
211
+ ORDER BY rank, t.views DESC
212
+ LIMIT ? OFFSET ?
213
+ `).all(ftsQuery, limit, offset);
214
+ logger_1.logger.debug(`FTS5 search returned ${results.length} results`);
215
+ return results.map(t => this.decompressWorkflow(t));
216
+ }
217
+ catch (error) {
218
+ logger_1.logger.warn('FTS5 template search failed, using LIKE fallback:', {
219
+ message: error.message,
220
+ query: query,
221
+ ftsQuery: query.split(' ').map(term => `"${term}"`).join(' OR ')
222
+ });
223
+ return this.searchTemplatesLIKE(query, limit, offset);
224
+ }
225
+ }
226
+ searchTemplatesLIKE(query, limit = 20, offset = 0) {
227
+ const likeQuery = `%${query}%`;
228
+ logger_1.logger.debug(`Using LIKE search with pattern: ${likeQuery}`);
229
+ const results = this.db.prepare(`
230
+ SELECT * FROM templates
231
+ WHERE name LIKE ? OR description LIKE ?
232
+ ORDER BY views DESC, created_at DESC
233
+ LIMIT ? OFFSET ?
234
+ `).all(likeQuery, likeQuery, limit, offset);
235
+ logger_1.logger.debug(`LIKE search returned ${results.length} results`);
236
+ return results.map(t => this.decompressWorkflow(t));
237
+ }
238
+ getTemplatesForTask(task, limit = 10, offset = 0) {
239
+ const taskNodeMap = {
240
+ 'ai_automation': ['@n8n/n8n-nodes-langchain.openAi', '@n8n/n8n-nodes-langchain.agent', 'n8n-nodes-base.openAi'],
241
+ 'data_sync': ['n8n-nodes-base.googleSheets', 'n8n-nodes-base.postgres', 'n8n-nodes-base.mysql'],
242
+ 'webhook_processing': ['n8n-nodes-base.webhook', 'n8n-nodes-base.httpRequest'],
243
+ 'email_automation': ['n8n-nodes-base.gmail', 'n8n-nodes-base.emailSend', 'n8n-nodes-base.emailReadImap'],
244
+ 'slack_integration': ['n8n-nodes-base.slack', 'n8n-nodes-base.slackTrigger'],
245
+ 'data_transformation': ['n8n-nodes-base.code', 'n8n-nodes-base.set', 'n8n-nodes-base.merge'],
246
+ 'file_processing': ['n8n-nodes-base.readBinaryFile', 'n8n-nodes-base.writeBinaryFile', 'n8n-nodes-base.googleDrive'],
247
+ 'scheduling': ['n8n-nodes-base.scheduleTrigger', 'n8n-nodes-base.cron'],
248
+ 'api_integration': ['n8n-nodes-base.httpRequest', 'n8n-nodes-base.graphql'],
249
+ 'database_operations': ['n8n-nodes-base.postgres', 'n8n-nodes-base.mysql', 'n8n-nodes-base.mongodb']
250
+ };
251
+ const nodes = taskNodeMap[task];
252
+ if (!nodes) {
253
+ return [];
254
+ }
255
+ return this.getTemplatesByNodes(nodes, limit, offset);
256
+ }
257
+ getAllTemplates(limit = 10, offset = 0, sortBy = 'views') {
258
+ const orderClause = sortBy === 'name' ? 'name ASC' :
259
+ sortBy === 'created_at' ? 'created_at DESC' :
260
+ 'views DESC, created_at DESC';
261
+ const results = this.db.prepare(`
262
+ SELECT * FROM templates
263
+ ORDER BY ${orderClause}
264
+ LIMIT ? OFFSET ?
265
+ `).all(limit, offset);
266
+ return results.map(t => this.decompressWorkflow(t));
267
+ }
268
+ getTemplateCount() {
269
+ const result = this.db.prepare('SELECT COUNT(*) as count FROM templates').get();
270
+ return result.count;
271
+ }
272
+ getSearchCount(query) {
273
+ if (!this.hasFTS5Support) {
274
+ const likeQuery = `%${query}%`;
275
+ const result = this.db.prepare(`
276
+ SELECT COUNT(*) as count FROM templates
277
+ WHERE name LIKE ? OR description LIKE ?
278
+ `).get(likeQuery, likeQuery);
279
+ return result.count;
280
+ }
281
+ try {
282
+ const ftsQuery = query.split(' ').map(term => {
283
+ const escaped = term.replace(/"/g, '""');
284
+ return `"${escaped}"`;
285
+ }).join(' OR ');
286
+ const result = this.db.prepare(`
287
+ SELECT COUNT(*) as count FROM templates t
288
+ JOIN templates_fts ON t.id = templates_fts.rowid
289
+ WHERE templates_fts MATCH ?
290
+ `).get(ftsQuery);
291
+ return result.count;
292
+ }
293
+ catch {
294
+ const likeQuery = `%${query}%`;
295
+ const result = this.db.prepare(`
296
+ SELECT COUNT(*) as count FROM templates
297
+ WHERE name LIKE ? OR description LIKE ?
298
+ `).get(likeQuery, likeQuery);
299
+ return result.count;
300
+ }
301
+ }
302
+ getNodeTemplatesCount(nodeTypes) {
303
+ const resolvedTypes = (0, template_node_resolver_1.resolveTemplateNodeTypes)(nodeTypes);
304
+ if (resolvedTypes.length === 0) {
305
+ return 0;
306
+ }
307
+ const conditions = resolvedTypes.map(() => "nodes_used LIKE ?").join(" OR ");
308
+ const query = `SELECT COUNT(*) as count FROM templates WHERE ${conditions}`;
309
+ const params = resolvedTypes.map(n => `%"${n}"%`);
310
+ const result = this.db.prepare(query).get(...params);
311
+ return result.count;
312
+ }
313
+ getTaskTemplatesCount(task) {
314
+ const taskNodeMap = {
315
+ 'ai_automation': ['@n8n/n8n-nodes-langchain.openAi', '@n8n/n8n-nodes-langchain.agent', 'n8n-nodes-base.openAi'],
316
+ 'data_sync': ['n8n-nodes-base.googleSheets', 'n8n-nodes-base.postgres', 'n8n-nodes-base.mysql'],
317
+ 'webhook_processing': ['n8n-nodes-base.webhook', 'n8n-nodes-base.httpRequest'],
318
+ 'email_automation': ['n8n-nodes-base.gmail', 'n8n-nodes-base.emailSend', 'n8n-nodes-base.emailReadImap'],
319
+ 'slack_integration': ['n8n-nodes-base.slack', 'n8n-nodes-base.slackTrigger'],
320
+ 'data_transformation': ['n8n-nodes-base.code', 'n8n-nodes-base.set', 'n8n-nodes-base.merge'],
321
+ 'file_processing': ['n8n-nodes-base.readBinaryFile', 'n8n-nodes-base.writeBinaryFile', 'n8n-nodes-base.googleDrive'],
322
+ 'scheduling': ['n8n-nodes-base.scheduleTrigger', 'n8n-nodes-base.cron'],
323
+ 'api_integration': ['n8n-nodes-base.httpRequest', 'n8n-nodes-base.graphql'],
324
+ 'database_operations': ['n8n-nodes-base.postgres', 'n8n-nodes-base.mysql', 'n8n-nodes-base.mongodb']
325
+ };
326
+ const nodes = taskNodeMap[task];
327
+ if (!nodes) {
328
+ return 0;
329
+ }
330
+ return this.getNodeTemplatesCount(nodes);
331
+ }
332
+ getExistingTemplateIds() {
333
+ const rows = this.db.prepare('SELECT id FROM templates').all();
334
+ return new Set(rows.map(r => r.id));
335
+ }
336
+ getMostRecentTemplateDate() {
337
+ const result = this.db.prepare('SELECT MAX(created_at) as max_date FROM templates').get();
338
+ if (!result || !result.max_date) {
339
+ return null;
340
+ }
341
+ return new Date(result.max_date);
342
+ }
343
+ hasTemplate(templateId) {
344
+ const result = this.db.prepare('SELECT 1 FROM templates WHERE id = ?').get(templateId);
345
+ return result !== undefined;
346
+ }
347
+ getTemplateMetadata() {
348
+ const rows = this.db.prepare('SELECT id, name, updated_at FROM templates').all();
349
+ const metadata = new Map();
350
+ for (const row of rows) {
351
+ metadata.set(row.id, { name: row.name, updated_at: row.updated_at });
352
+ }
353
+ return metadata;
354
+ }
355
+ getTemplateStats() {
356
+ const count = this.getTemplateCount();
357
+ const avgViews = this.db.prepare('SELECT AVG(views) as avg FROM templates').get();
358
+ const topNodes = this.db.prepare(`
359
+ SELECT nodes_used FROM templates
360
+ ORDER BY views DESC
361
+ LIMIT 100
362
+ `).all();
363
+ const nodeCount = {};
364
+ topNodes.forEach(t => {
365
+ if (!t.nodes_used)
366
+ return;
367
+ try {
368
+ const nodes = JSON.parse(t.nodes_used);
369
+ if (Array.isArray(nodes)) {
370
+ nodes.forEach((n) => {
371
+ nodeCount[n] = (nodeCount[n] || 0) + 1;
372
+ });
373
+ }
374
+ }
375
+ catch (error) {
376
+ logger_1.logger.warn(`Failed to parse nodes_used for template stats:`, error);
377
+ }
378
+ });
379
+ const topUsedNodes = Object.entries(nodeCount)
380
+ .sort(([, a], [, b]) => b - a)
381
+ .slice(0, 10)
382
+ .map(([node, count]) => ({ node, count }));
383
+ return {
384
+ totalTemplates: count,
385
+ averageViews: Math.round(avgViews.avg || 0),
386
+ topUsedNodes
387
+ };
388
+ }
389
+ clearTemplates() {
390
+ this.db.exec('DELETE FROM templates');
391
+ logger_1.logger.info('Cleared all templates from database');
392
+ }
393
+ rebuildTemplateFTS() {
394
+ if (!this.hasFTS5Support) {
395
+ return;
396
+ }
397
+ try {
398
+ this.db.exec('DELETE FROM templates_fts');
399
+ this.db.exec(`
400
+ INSERT INTO templates_fts(rowid, name, description)
401
+ SELECT id, name, description FROM templates
402
+ `);
403
+ const count = this.getTemplateCount();
404
+ logger_1.logger.info(`Rebuilt FTS5 index for ${count} templates`);
405
+ }
406
+ catch (error) {
407
+ logger_1.logger.warn('Failed to rebuild template FTS5 index:', error);
408
+ }
409
+ }
410
+ updateTemplateMetadata(templateId, metadata) {
411
+ const stmt = this.db.prepare(`
412
+ UPDATE templates
413
+ SET metadata_json = ?, metadata_generated_at = CURRENT_TIMESTAMP
414
+ WHERE id = ?
415
+ `);
416
+ stmt.run(JSON.stringify(metadata), templateId);
417
+ logger_1.logger.debug(`Updated metadata for template ${templateId}`);
418
+ }
419
+ batchUpdateMetadata(metadataMap) {
420
+ const stmt = this.db.prepare(`
421
+ UPDATE templates
422
+ SET metadata_json = ?, metadata_generated_at = CURRENT_TIMESTAMP
423
+ WHERE id = ?
424
+ `);
425
+ for (const [templateId, metadata] of metadataMap.entries()) {
426
+ stmt.run(JSON.stringify(metadata), templateId);
427
+ }
428
+ logger_1.logger.info(`Updated metadata for ${metadataMap.size} templates`);
429
+ }
430
+ getTemplatesWithoutMetadata(limit = 100) {
431
+ const stmt = this.db.prepare(`
432
+ SELECT * FROM templates
433
+ WHERE metadata_json IS NULL OR metadata_generated_at IS NULL
434
+ ORDER BY views DESC
435
+ LIMIT ?
436
+ `);
437
+ return stmt.all(limit);
438
+ }
439
+ getTemplatesWithOutdatedMetadata(daysOld = 30, limit = 100) {
440
+ const stmt = this.db.prepare(`
441
+ SELECT * FROM templates
442
+ WHERE metadata_generated_at < datetime('now', '-' || ? || ' days')
443
+ ORDER BY views DESC
444
+ LIMIT ?
445
+ `);
446
+ return stmt.all(daysOld, limit);
447
+ }
448
+ getMetadataStats() {
449
+ const total = this.getTemplateCount();
450
+ const withMetadata = this.db.prepare(`
451
+ SELECT COUNT(*) as count FROM templates
452
+ WHERE metadata_json IS NOT NULL
453
+ `).get().count;
454
+ const withoutMetadata = total - withMetadata;
455
+ const outdated = this.db.prepare(`
456
+ SELECT COUNT(*) as count FROM templates
457
+ WHERE metadata_generated_at < datetime('now', '-30 days')
458
+ `).get().count;
459
+ return { total, withMetadata, withoutMetadata, outdated };
460
+ }
461
+ buildMetadataFilterConditions(filters) {
462
+ const conditions = ['metadata_json IS NOT NULL'];
463
+ const params = [];
464
+ if (filters.category !== undefined) {
465
+ conditions.push("json_extract(metadata_json, '$.categories') LIKE '%' || ? || '%'");
466
+ const sanitizedCategory = JSON.stringify(filters.category).slice(1, -1);
467
+ params.push(sanitizedCategory);
468
+ }
469
+ if (filters.complexity) {
470
+ conditions.push("json_extract(metadata_json, '$.complexity') = ?");
471
+ params.push(filters.complexity);
472
+ }
473
+ if (filters.maxSetupMinutes !== undefined) {
474
+ conditions.push("CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) <= ?");
475
+ params.push(filters.maxSetupMinutes);
476
+ }
477
+ if (filters.minSetupMinutes !== undefined) {
478
+ conditions.push("CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) >= ?");
479
+ params.push(filters.minSetupMinutes);
480
+ }
481
+ if (filters.requiredService !== undefined) {
482
+ conditions.push("json_extract(metadata_json, '$.required_services') LIKE '%' || ? || '%'");
483
+ const sanitizedService = JSON.stringify(filters.requiredService).slice(1, -1);
484
+ params.push(sanitizedService);
485
+ }
486
+ if (filters.targetAudience !== undefined) {
487
+ conditions.push("json_extract(metadata_json, '$.target_audience') LIKE '%' || ? || '%'");
488
+ const sanitizedAudience = JSON.stringify(filters.targetAudience).slice(1, -1);
489
+ params.push(sanitizedAudience);
490
+ }
491
+ return { conditions, params };
492
+ }
493
+ searchTemplatesByMetadata(filters, limit = 20, offset = 0) {
494
+ const startTime = Date.now();
495
+ const { conditions, params } = this.buildMetadataFilterConditions(filters);
496
+ const idsQuery = `
497
+ SELECT id FROM templates
498
+ WHERE ${conditions.join(' AND ')}
499
+ ORDER BY views DESC, created_at DESC, id ASC
500
+ LIMIT ? OFFSET ?
501
+ `;
502
+ params.push(limit, offset);
503
+ const ids = this.db.prepare(idsQuery).all(...params);
504
+ const phase1Time = Date.now() - startTime;
505
+ if (ids.length === 0) {
506
+ logger_1.logger.debug('Metadata search found 0 results', { filters, phase1Ms: phase1Time });
507
+ return [];
508
+ }
509
+ const idValues = ids.map(r => r.id).filter(id => typeof id === 'number' && id > 0 && Number.isInteger(id));
510
+ if (idValues.length === 0) {
511
+ logger_1.logger.warn('No valid IDs after filtering', { filters, originalCount: ids.length });
512
+ return [];
513
+ }
514
+ if (idValues.length !== ids.length) {
515
+ logger_1.logger.warn('Some IDs were filtered out as invalid', {
516
+ original: ids.length,
517
+ valid: idValues.length,
518
+ filtered: ids.length - idValues.length
519
+ });
520
+ }
521
+ const phase2Start = Date.now();
522
+ const orderedQuery = `
523
+ WITH ordered_ids(id, sort_order) AS (
524
+ VALUES ${idValues.map((id, idx) => `(${id}, ${idx})`).join(', ')}
525
+ )
526
+ SELECT t.* FROM templates t
527
+ INNER JOIN ordered_ids o ON t.id = o.id
528
+ ORDER BY o.sort_order
529
+ `;
530
+ const results = this.db.prepare(orderedQuery).all();
531
+ const phase2Time = Date.now() - phase2Start;
532
+ logger_1.logger.debug(`Metadata search found ${results.length} results`, {
533
+ filters,
534
+ count: results.length,
535
+ phase1Ms: phase1Time,
536
+ phase2Ms: phase2Time,
537
+ totalMs: Date.now() - startTime,
538
+ optimization: 'two-phase-with-ordering'
539
+ });
540
+ return results.map(t => this.decompressWorkflow(t));
541
+ }
542
+ getMetadataSearchCount(filters) {
543
+ const { conditions, params } = this.buildMetadataFilterConditions(filters);
544
+ const query = `SELECT COUNT(*) as count FROM templates WHERE ${conditions.join(' AND ')}`;
545
+ const result = this.db.prepare(query).get(...params);
546
+ return result.count;
547
+ }
548
+ getAvailableCategories() {
549
+ const results = this.db.prepare(`
550
+ SELECT DISTINCT json_extract(value, '$') as category
551
+ FROM templates, json_each(json_extract(metadata_json, '$.categories'))
552
+ WHERE metadata_json IS NOT NULL
553
+ ORDER BY category
554
+ `).all();
555
+ return results.map(r => r.category);
556
+ }
557
+ getAvailableTargetAudiences() {
558
+ const results = this.db.prepare(`
559
+ SELECT DISTINCT json_extract(value, '$') as audience
560
+ FROM templates, json_each(json_extract(metadata_json, '$.target_audience'))
561
+ WHERE metadata_json IS NOT NULL
562
+ ORDER BY audience
563
+ `).all();
564
+ return results.map(r => r.audience);
565
+ }
566
+ getTemplatesByCategory(category, limit = 10, offset = 0) {
567
+ const query = `
568
+ SELECT * FROM templates
569
+ WHERE metadata_json IS NOT NULL
570
+ AND json_extract(metadata_json, '$.categories') LIKE '%' || ? || '%'
571
+ ORDER BY views DESC, created_at DESC
572
+ LIMIT ? OFFSET ?
573
+ `;
574
+ const sanitizedCategory = JSON.stringify(category).slice(1, -1);
575
+ const results = this.db.prepare(query).all(sanitizedCategory, limit, offset);
576
+ return results.map(t => this.decompressWorkflow(t));
577
+ }
578
+ getTemplatesByComplexity(complexity, limit = 10, offset = 0) {
579
+ const query = `
580
+ SELECT * FROM templates
581
+ WHERE metadata_json IS NOT NULL
582
+ AND json_extract(metadata_json, '$.complexity') = ?
583
+ ORDER BY views DESC, created_at DESC
584
+ LIMIT ? OFFSET ?
585
+ `;
586
+ const results = this.db.prepare(query).all(complexity, limit, offset);
587
+ return results.map(t => this.decompressWorkflow(t));
588
+ }
589
+ getSearchTemplatesByMetadataCount(filters) {
590
+ let sql = `
591
+ SELECT COUNT(*) as count FROM templates
592
+ WHERE metadata_json IS NOT NULL
593
+ `;
594
+ const params = [];
595
+ if (filters.category) {
596
+ sql += ` AND json_extract(metadata_json, '$.categories') LIKE ?`;
597
+ params.push(`%"${filters.category}"%`);
598
+ }
599
+ if (filters.complexity) {
600
+ sql += ` AND json_extract(metadata_json, '$.complexity') = ?`;
601
+ params.push(filters.complexity);
602
+ }
603
+ if (filters.maxSetupMinutes !== undefined) {
604
+ sql += ` AND CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) <= ?`;
605
+ params.push(filters.maxSetupMinutes);
606
+ }
607
+ if (filters.minSetupMinutes !== undefined) {
608
+ sql += ` AND CAST(json_extract(metadata_json, '$.estimated_setup_minutes') AS INTEGER) >= ?`;
609
+ params.push(filters.minSetupMinutes);
610
+ }
611
+ if (filters.requiredService) {
612
+ sql += ` AND json_extract(metadata_json, '$.required_services') LIKE ?`;
613
+ params.push(`%"${filters.requiredService}"%`);
614
+ }
615
+ if (filters.targetAudience) {
616
+ sql += ` AND json_extract(metadata_json, '$.target_audience') LIKE ?`;
617
+ params.push(`%"${filters.targetAudience}"%`);
618
+ }
619
+ const result = this.db.prepare(sql).get(...params);
620
+ return result?.count || 0;
621
+ }
622
+ getUniqueCategories() {
623
+ const sql = `
624
+ SELECT DISTINCT value as category
625
+ FROM templates, json_each(metadata_json, '$.categories')
626
+ WHERE metadata_json IS NOT NULL
627
+ ORDER BY category
628
+ `;
629
+ const results = this.db.prepare(sql).all();
630
+ return results.map(r => r.category);
631
+ }
632
+ getUniqueTargetAudiences() {
633
+ const sql = `
634
+ SELECT DISTINCT value as audience
635
+ FROM templates, json_each(metadata_json, '$.target_audience')
636
+ WHERE metadata_json IS NOT NULL
637
+ ORDER BY audience
638
+ `;
639
+ const results = this.db.prepare(sql).all();
640
+ return results.map(r => r.audience);
641
+ }
642
+ }
643
+ exports.TemplateRepository = TemplateRepository;
644
+ //# sourceMappingURL=template-repository.js.map