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.
- package/.env.example +220 -0
- package/LICENSE +21 -0
- package/README.md +78 -0
- package/data/nodes.db +0 -0
- package/dist/community/community-node-fetcher.d.ts +118 -0
- package/dist/community/community-node-fetcher.d.ts.map +1 -0
- package/dist/community/community-node-fetcher.js +239 -0
- package/dist/community/community-node-fetcher.js.map +1 -0
- package/dist/community/community-node-service.d.ts +42 -0
- package/dist/community/community-node-service.d.ts.map +1 -0
- package/dist/community/community-node-service.js +210 -0
- package/dist/community/community-node-service.js.map +1 -0
- package/dist/community/documentation-batch-processor.d.ts +33 -0
- package/dist/community/documentation-batch-processor.d.ts.map +1 -0
- package/dist/community/documentation-batch-processor.js +156 -0
- package/dist/community/documentation-batch-processor.js.map +1 -0
- package/dist/community/documentation-generator.d.ts +65 -0
- package/dist/community/documentation-generator.d.ts.map +1 -0
- package/dist/community/documentation-generator.js +220 -0
- package/dist/community/documentation-generator.js.map +1 -0
- package/dist/community/index.d.ts +5 -0
- package/dist/community/index.d.ts.map +1 -0
- package/dist/community/index.js +14 -0
- package/dist/community/index.js.map +1 -0
- package/dist/config/n8n-api.d.ts +15 -0
- package/dist/config/n8n-api.d.ts.map +1 -0
- package/dist/config/n8n-api.js +53 -0
- package/dist/config/n8n-api.js.map +1 -0
- package/dist/constants/type-structures.d.ts +123 -0
- package/dist/constants/type-structures.d.ts.map +1 -0
- package/dist/constants/type-structures.js +654 -0
- package/dist/constants/type-structures.js.map +1 -0
- package/dist/database/database-adapter.d.ts +33 -0
- package/dist/database/database-adapter.d.ts.map +1 -0
- package/dist/database/database-adapter.js +420 -0
- package/dist/database/database-adapter.js.map +1 -0
- package/dist/database/node-repository.d.ts +152 -0
- package/dist/database/node-repository.d.ts.map +1 -0
- package/dist/database/node-repository.js +791 -0
- package/dist/database/node-repository.js.map +1 -0
- package/dist/errors/validation-service-error.d.ts +10 -0
- package/dist/errors/validation-service-error.d.ts.map +1 -0
- package/dist/errors/validation-service-error.js +26 -0
- package/dist/errors/validation-service-error.js.map +1 -0
- package/dist/http-server-single-session.d.ts +52 -0
- package/dist/http-server-single-session.d.ts.map +1 -0
- package/dist/http-server-single-session.js +1180 -0
- package/dist/http-server-single-session.js.map +1 -0
- package/dist/http-server.d.ts +9 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +481 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/loaders/node-loader.d.ts +11 -0
- package/dist/loaders/node-loader.d.ts.map +1 -0
- package/dist/loaders/node-loader.js +79 -0
- package/dist/loaders/node-loader.js.map +1 -0
- package/dist/mappers/docs-mapper.d.ts +7 -0
- package/dist/mappers/docs-mapper.d.ts.map +1 -0
- package/dist/mappers/docs-mapper.js +106 -0
- package/dist/mappers/docs-mapper.js.map +1 -0
- package/dist/mcp/handlers-n8n-manager.d.ts +58 -0
- package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -0
- package/dist/mcp/handlers-n8n-manager.js +3299 -0
- package/dist/mcp/handlers-n8n-manager.js.map +1 -0
- package/dist/mcp/handlers-workflow-diff.d.ts +5 -0
- package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -0
- package/dist/mcp/handlers-workflow-diff.js +461 -0
- package/dist/mcp/handlers-workflow-diff.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +228 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +82 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +3006 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/stdio-wrapper.d.ts +3 -0
- package/dist/mcp/stdio-wrapper.d.ts.map +1 -0
- package/dist/mcp/stdio-wrapper.js +81 -0
- package/dist/mcp/stdio-wrapper.js.map +1 -0
- package/dist/mcp/tool-docs/configuration/get-node.d.ts +3 -0
- package/dist/mcp/tool-docs/configuration/get-node.d.ts.map +1 -0
- package/dist/mcp/tool-docs/configuration/get-node.js +90 -0
- package/dist/mcp/tool-docs/configuration/get-node.js.map +1 -0
- package/dist/mcp/tool-docs/configuration/index.d.ts +2 -0
- package/dist/mcp/tool-docs/configuration/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/configuration/index.js +6 -0
- package/dist/mcp/tool-docs/configuration/index.js.map +1 -0
- package/dist/mcp/tool-docs/discovery/index.d.ts +2 -0
- package/dist/mcp/tool-docs/discovery/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/discovery/index.js +6 -0
- package/dist/mcp/tool-docs/discovery/index.js.map +1 -0
- package/dist/mcp/tool-docs/discovery/search-nodes.d.ts +3 -0
- package/dist/mcp/tool-docs/discovery/search-nodes.d.ts.map +1 -0
- package/dist/mcp/tool-docs/discovery/search-nodes.js +70 -0
- package/dist/mcp/tool-docs/discovery/search-nodes.js.map +1 -0
- package/dist/mcp/tool-docs/guides/ai-agents-guide.d.ts +3 -0
- package/dist/mcp/tool-docs/guides/ai-agents-guide.d.ts.map +1 -0
- package/dist/mcp/tool-docs/guides/ai-agents-guide.js +739 -0
- package/dist/mcp/tool-docs/guides/ai-agents-guide.js.map +1 -0
- package/dist/mcp/tool-docs/guides/index.d.ts +2 -0
- package/dist/mcp/tool-docs/guides/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/guides/index.js +6 -0
- package/dist/mcp/tool-docs/guides/index.js.map +1 -0
- package/dist/mcp/tool-docs/index.d.ts +4 -0
- package/dist/mcp/tool-docs/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/index.js +34 -0
- package/dist/mcp/tool-docs/index.js.map +1 -0
- package/dist/mcp/tool-docs/system/index.d.ts +3 -0
- package/dist/mcp/tool-docs/system/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/system/index.js +8 -0
- package/dist/mcp/tool-docs/system/index.js.map +1 -0
- package/dist/mcp/tool-docs/system/n8n-diagnostic.d.ts +3 -0
- package/dist/mcp/tool-docs/system/n8n-diagnostic.d.ts.map +1 -0
- package/dist/mcp/tool-docs/system/n8n-diagnostic.js +99 -0
- package/dist/mcp/tool-docs/system/n8n-diagnostic.js.map +1 -0
- package/dist/mcp/tool-docs/system/n8n-health-check.d.ts +3 -0
- package/dist/mcp/tool-docs/system/n8n-health-check.d.ts.map +1 -0
- package/dist/mcp/tool-docs/system/n8n-health-check.js +102 -0
- package/dist/mcp/tool-docs/system/n8n-health-check.js.map +1 -0
- package/dist/mcp/tool-docs/system/n8n-list-available-tools.d.ts +3 -0
- package/dist/mcp/tool-docs/system/n8n-list-available-tools.d.ts.map +1 -0
- package/dist/mcp/tool-docs/system/n8n-list-available-tools.js +75 -0
- package/dist/mcp/tool-docs/system/n8n-list-available-tools.js.map +1 -0
- package/dist/mcp/tool-docs/system/tools-documentation.d.ts +3 -0
- package/dist/mcp/tool-docs/system/tools-documentation.d.ts.map +1 -0
- package/dist/mcp/tool-docs/system/tools-documentation.js +65 -0
- package/dist/mcp/tool-docs/system/tools-documentation.js.map +1 -0
- package/dist/mcp/tool-docs/templates/get-template.d.ts +3 -0
- package/dist/mcp/tool-docs/templates/get-template.d.ts.map +1 -0
- package/dist/mcp/tool-docs/templates/get-template.js +84 -0
- package/dist/mcp/tool-docs/templates/get-template.js.map +1 -0
- package/dist/mcp/tool-docs/templates/index.d.ts +3 -0
- package/dist/mcp/tool-docs/templates/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/templates/index.js +8 -0
- package/dist/mcp/tool-docs/templates/index.js.map +1 -0
- package/dist/mcp/tool-docs/templates/search-templates.d.ts +3 -0
- package/dist/mcp/tool-docs/templates/search-templates.d.ts.map +1 -0
- package/dist/mcp/tool-docs/templates/search-templates.js +143 -0
- package/dist/mcp/tool-docs/templates/search-templates.js.map +1 -0
- package/dist/mcp/tool-docs/types.d.ts +32 -0
- package/dist/mcp/tool-docs/types.d.ts.map +1 -0
- package/dist/mcp/tool-docs/types.js +3 -0
- package/dist/mcp/tool-docs/types.js.map +1 -0
- package/dist/mcp/tool-docs/validation/index.d.ts +3 -0
- package/dist/mcp/tool-docs/validation/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/validation/index.js +8 -0
- package/dist/mcp/tool-docs/validation/index.js.map +1 -0
- package/dist/mcp/tool-docs/validation/validate-node.d.ts +3 -0
- package/dist/mcp/tool-docs/validation/validate-node.d.ts.map +1 -0
- package/dist/mcp/tool-docs/validation/validate-node.js +82 -0
- package/dist/mcp/tool-docs/validation/validate-node.js.map +1 -0
- package/dist/mcp/tool-docs/validation/validate-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/validation/validate-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/validation/validate-workflow.js +86 -0
- package/dist/mcp/tool-docs/validation/validate-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/index.d.ts +13 -0
- package/dist/mcp/tool-docs/workflow_management/index.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/index.js +28 -0
- package/dist/mcp/tool-docs/workflow_management/index.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js +162 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-autofix-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.js +102 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-create-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.js +52 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-delete-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.js +73 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-deploy-template.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-executions.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-executions.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-executions.js +109 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-executions.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.js +68 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-get-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.js +57 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-list-workflows.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.js +140 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-test-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js +61 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-full-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js +420 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-update-partial-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.js +73 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.js.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.d.ts +3 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.d.ts.map +1 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.js +170 -0
- package/dist/mcp/tool-docs/workflow_management/n8n-workflow-versions.js.map +1 -0
- package/dist/mcp/tools-documentation.d.ts +6 -0
- package/dist/mcp/tools-documentation.d.ts.map +1 -0
- package/dist/mcp/tools-documentation.js +682 -0
- package/dist/mcp/tools-documentation.js.map +1 -0
- package/dist/mcp/tools-file-operations.d.ts +154 -0
- package/dist/mcp/tools-file-operations.d.ts.map +1 -0
- package/dist/mcp/tools-file-operations.js +213 -0
- package/dist/mcp/tools-file-operations.js.map +1 -0
- package/dist/mcp/tools-n8n-friendly.d.ts +6 -0
- package/dist/mcp/tools-n8n-friendly.d.ts.map +1 -0
- package/dist/mcp/tools-n8n-friendly.js +89 -0
- package/dist/mcp/tools-n8n-friendly.js.map +1 -0
- package/dist/mcp/tools-n8n-manager.d.ts +3 -0
- package/dist/mcp/tools-n8n-manager.d.ts.map +1 -0
- package/dist/mcp/tools-n8n-manager.js +1320 -0
- package/dist/mcp/tools-n8n-manager.js.map +1 -0
- package/dist/mcp/tools.d.ts +3 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +424 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/workflow-examples.d.ts +76 -0
- package/dist/mcp/workflow-examples.d.ts.map +1 -0
- package/dist/mcp/workflow-examples.js +111 -0
- package/dist/mcp/workflow-examples.js.map +1 -0
- package/dist/mcp-engine.d.ts +36 -0
- package/dist/mcp-engine.d.ts.map +1 -0
- package/dist/mcp-engine.js +77 -0
- package/dist/mcp-engine.js.map +1 -0
- package/dist/mcp-tools-engine.d.ts +47 -0
- package/dist/mcp-tools-engine.d.ts.map +1 -0
- package/dist/mcp-tools-engine.js +89 -0
- package/dist/mcp-tools-engine.js.map +1 -0
- package/dist/n8n/MCPApi.credentials.d.ts +8 -0
- package/dist/n8n/MCPApi.credentials.d.ts.map +1 -0
- package/dist/n8n/MCPApi.credentials.js +53 -0
- package/dist/n8n/MCPApi.credentials.js.map +1 -0
- package/dist/n8n/MCPNode.node.d.ts +13 -0
- package/dist/n8n/MCPNode.node.d.ts.map +1 -0
- package/dist/n8n/MCPNode.node.js +260 -0
- package/dist/n8n/MCPNode.node.js.map +1 -0
- package/dist/parsers/node-parser.d.ts +38 -0
- package/dist/parsers/node-parser.d.ts.map +1 -0
- package/dist/parsers/node-parser.js +250 -0
- package/dist/parsers/node-parser.js.map +1 -0
- package/dist/parsers/property-extractor.d.ts +11 -0
- package/dist/parsers/property-extractor.d.ts.map +1 -0
- package/dist/parsers/property-extractor.js +172 -0
- package/dist/parsers/property-extractor.js.map +1 -0
- package/dist/parsers/simple-parser.d.ts +25 -0
- package/dist/parsers/simple-parser.d.ts.map +1 -0
- package/dist/parsers/simple-parser.js +212 -0
- package/dist/parsers/simple-parser.js.map +1 -0
- package/dist/scripts/debug-http-search.d.ts +3 -0
- package/dist/scripts/debug-http-search.d.ts.map +1 -0
- package/dist/scripts/debug-http-search.js +57 -0
- package/dist/scripts/debug-http-search.js.map +1 -0
- package/dist/scripts/extract-from-docker.d.ts +3 -0
- package/dist/scripts/extract-from-docker.d.ts.map +1 -0
- package/dist/scripts/extract-from-docker.js +210 -0
- package/dist/scripts/extract-from-docker.js.map +1 -0
- package/dist/scripts/fetch-community-nodes.d.ts +3 -0
- package/dist/scripts/fetch-community-nodes.d.ts.map +1 -0
- package/dist/scripts/fetch-community-nodes.js +114 -0
- package/dist/scripts/fetch-community-nodes.js.map +1 -0
- package/dist/scripts/fetch-templates-robust.d.ts +4 -0
- package/dist/scripts/fetch-templates-robust.d.ts.map +1 -0
- package/dist/scripts/fetch-templates-robust.js +132 -0
- package/dist/scripts/fetch-templates-robust.js.map +1 -0
- package/dist/scripts/fetch-templates.d.ts +4 -0
- package/dist/scripts/fetch-templates.d.ts.map +1 -0
- package/dist/scripts/fetch-templates.js +411 -0
- package/dist/scripts/fetch-templates.js.map +1 -0
- package/dist/scripts/generate-community-docs.d.ts +3 -0
- package/dist/scripts/generate-community-docs.d.ts.map +1 -0
- package/dist/scripts/generate-community-docs.js +183 -0
- package/dist/scripts/generate-community-docs.js.map +1 -0
- package/dist/scripts/migrate-readme-columns.d.ts +2 -0
- package/dist/scripts/migrate-readme-columns.d.ts.map +1 -0
- package/dist/scripts/migrate-readme-columns.js +62 -0
- package/dist/scripts/migrate-readme-columns.js.map +1 -0
- package/dist/scripts/rebuild-database.d.ts +4 -0
- package/dist/scripts/rebuild-database.d.ts.map +1 -0
- package/dist/scripts/rebuild-database.js +95 -0
- package/dist/scripts/rebuild-database.js.map +1 -0
- package/dist/scripts/rebuild-optimized.d.ts +3 -0
- package/dist/scripts/rebuild-optimized.d.ts.map +1 -0
- package/dist/scripts/rebuild-optimized.js +198 -0
- package/dist/scripts/rebuild-optimized.js.map +1 -0
- package/dist/scripts/rebuild.d.ts +3 -0
- package/dist/scripts/rebuild.d.ts.map +1 -0
- package/dist/scripts/rebuild.js +258 -0
- package/dist/scripts/rebuild.js.map +1 -0
- package/dist/scripts/sanitize-templates.d.ts +3 -0
- package/dist/scripts/sanitize-templates.d.ts.map +1 -0
- package/dist/scripts/sanitize-templates.js +88 -0
- package/dist/scripts/sanitize-templates.js.map +1 -0
- package/dist/scripts/seed-canonical-ai-examples.d.ts +4 -0
- package/dist/scripts/seed-canonical-ai-examples.d.ts.map +1 -0
- package/dist/scripts/seed-canonical-ai-examples.js +121 -0
- package/dist/scripts/seed-canonical-ai-examples.js.map +1 -0
- package/dist/scripts/test-autofix-documentation.d.ts +3 -0
- package/dist/scripts/test-autofix-documentation.d.ts.map +1 -0
- package/dist/scripts/test-autofix-documentation.js +103 -0
- package/dist/scripts/test-autofix-documentation.js.map +1 -0
- package/dist/scripts/test-autofix-workflow.d.ts +2 -0
- package/dist/scripts/test-autofix-workflow.d.ts.map +1 -0
- package/dist/scripts/test-autofix-workflow.js +223 -0
- package/dist/scripts/test-autofix-workflow.js.map +1 -0
- package/dist/scripts/test-execution-filtering.d.ts +3 -0
- package/dist/scripts/test-execution-filtering.d.ts.map +1 -0
- package/dist/scripts/test-execution-filtering.js +206 -0
- package/dist/scripts/test-execution-filtering.js.map +1 -0
- package/dist/scripts/test-node-suggestions.d.ts +3 -0
- package/dist/scripts/test-node-suggestions.d.ts.map +1 -0
- package/dist/scripts/test-node-suggestions.js +165 -0
- package/dist/scripts/test-node-suggestions.js.map +1 -0
- package/dist/scripts/test-protocol-negotiation.d.ts +3 -0
- package/dist/scripts/test-protocol-negotiation.d.ts.map +1 -0
- package/dist/scripts/test-protocol-negotiation.js +154 -0
- package/dist/scripts/test-protocol-negotiation.js.map +1 -0
- package/dist/scripts/test-summary.d.ts +3 -0
- package/dist/scripts/test-summary.d.ts.map +1 -0
- package/dist/scripts/test-summary.js +77 -0
- package/dist/scripts/test-summary.js.map +1 -0
- package/dist/scripts/test-telemetry-mutations-verbose.d.ts +2 -0
- package/dist/scripts/test-telemetry-mutations-verbose.d.ts.map +1 -0
- package/dist/scripts/test-telemetry-mutations-verbose.js +133 -0
- package/dist/scripts/test-telemetry-mutations-verbose.js.map +1 -0
- package/dist/scripts/test-telemetry-mutations.d.ts +2 -0
- package/dist/scripts/test-telemetry-mutations.d.ts.map +1 -0
- package/dist/scripts/test-telemetry-mutations.js +129 -0
- package/dist/scripts/test-telemetry-mutations.js.map +1 -0
- package/dist/scripts/test-webhook-autofix.d.ts +3 -0
- package/dist/scripts/test-webhook-autofix.d.ts.map +1 -0
- package/dist/scripts/test-webhook-autofix.js +117 -0
- package/dist/scripts/test-webhook-autofix.js.map +1 -0
- package/dist/scripts/validate.d.ts +3 -0
- package/dist/scripts/validate.d.ts.map +1 -0
- package/dist/scripts/validate.js +121 -0
- package/dist/scripts/validate.js.map +1 -0
- package/dist/scripts/validation-summary.d.ts +3 -0
- package/dist/scripts/validation-summary.d.ts.map +1 -0
- package/dist/scripts/validation-summary.js +135 -0
- package/dist/scripts/validation-summary.js.map +1 -0
- package/dist/services/ai-node-validator.d.ts +12 -0
- package/dist/services/ai-node-validator.d.ts.map +1 -0
- package/dist/services/ai-node-validator.js +429 -0
- package/dist/services/ai-node-validator.js.map +1 -0
- package/dist/services/ai-tool-validators.d.ts +58 -0
- package/dist/services/ai-tool-validators.d.ts.map +1 -0
- package/dist/services/ai-tool-validators.js +438 -0
- package/dist/services/ai-tool-validators.js.map +1 -0
- package/dist/services/breaking-change-detector.d.ts +38 -0
- package/dist/services/breaking-change-detector.d.ts.map +1 -0
- package/dist/services/breaking-change-detector.js +184 -0
- package/dist/services/breaking-change-detector.js.map +1 -0
- package/dist/services/breaking-changes-registry.d.ts +28 -0
- package/dist/services/breaking-changes-registry.d.ts.map +1 -0
- package/dist/services/breaking-changes-registry.js +200 -0
- package/dist/services/breaking-changes-registry.js.map +1 -0
- package/dist/services/community-package-service.d.ts +69 -0
- package/dist/services/community-package-service.d.ts.map +1 -0
- package/dist/services/community-package-service.js +202 -0
- package/dist/services/community-package-service.js.map +1 -0
- package/dist/services/confidence-scorer.d.ts +24 -0
- package/dist/services/confidence-scorer.d.ts.map +1 -0
- package/dist/services/confidence-scorer.js +139 -0
- package/dist/services/confidence-scorer.js.map +1 -0
- package/dist/services/config-validator.d.ts +49 -0
- package/dist/services/config-validator.d.ts.map +1 -0
- package/dist/services/config-validator.js +724 -0
- package/dist/services/config-validator.js.map +1 -0
- package/dist/services/enhanced-config-validator.d.ts +54 -0
- package/dist/services/enhanced-config-validator.d.ts.map +1 -0
- package/dist/services/enhanced-config-validator.js +789 -0
- package/dist/services/enhanced-config-validator.js.map +1 -0
- package/dist/services/error-execution-processor.d.ts +9 -0
- package/dist/services/error-execution-processor.d.ts.map +1 -0
- package/dist/services/error-execution-processor.js +380 -0
- package/dist/services/error-execution-processor.js.map +1 -0
- package/dist/services/example-generator.d.ts +14 -0
- package/dist/services/example-generator.d.ts.map +1 -0
- package/dist/services/example-generator.js +970 -0
- package/dist/services/example-generator.js.map +1 -0
- package/dist/services/execution-processor.d.ts +8 -0
- package/dist/services/execution-processor.d.ts.map +1 -0
- package/dist/services/execution-processor.js +381 -0
- package/dist/services/execution-processor.js.map +1 -0
- package/dist/services/expression-format-validator.d.ts +33 -0
- package/dist/services/expression-format-validator.d.ts.map +1 -0
- package/dist/services/expression-format-validator.js +209 -0
- package/dist/services/expression-format-validator.js.map +1 -0
- package/dist/services/expression-validator.d.ts +27 -0
- package/dist/services/expression-validator.d.ts.map +1 -0
- package/dist/services/expression-validator.js +187 -0
- package/dist/services/expression-validator.js.map +1 -0
- package/dist/services/installed-node-sync-service.d.ts +32 -0
- package/dist/services/installed-node-sync-service.d.ts.map +1 -0
- package/dist/services/installed-node-sync-service.js +190 -0
- package/dist/services/installed-node-sync-service.js.map +1 -0
- package/dist/services/n8n-api-client.d.ts +48 -0
- package/dist/services/n8n-api-client.d.ts.map +1 -0
- package/dist/services/n8n-api-client.js +458 -0
- package/dist/services/n8n-api-client.js.map +1 -0
- package/dist/services/n8n-file-format.d.ts +58 -0
- package/dist/services/n8n-file-format.d.ts.map +1 -0
- package/dist/services/n8n-file-format.js +203 -0
- package/dist/services/n8n-file-format.js.map +1 -0
- package/dist/services/n8n-validation.d.ts +273 -0
- package/dist/services/n8n-validation.d.ts.map +1 -0
- package/dist/services/n8n-validation.js +491 -0
- package/dist/services/n8n-validation.js.map +1 -0
- package/dist/services/n8n-version.d.ts +23 -0
- package/dist/services/n8n-version.d.ts.map +1 -0
- package/dist/services/n8n-version.js +151 -0
- package/dist/services/n8n-version.js.map +1 -0
- package/dist/services/node-documentation-service.d.ts +70 -0
- package/dist/services/node-documentation-service.d.ts.map +1 -0
- package/dist/services/node-documentation-service.js +518 -0
- package/dist/services/node-documentation-service.js.map +1 -0
- package/dist/services/node-migration-service.d.ts +44 -0
- package/dist/services/node-migration-service.d.ts.map +1 -0
- package/dist/services/node-migration-service.js +231 -0
- package/dist/services/node-migration-service.js.map +1 -0
- package/dist/services/node-sanitizer.d.ts +5 -0
- package/dist/services/node-sanitizer.d.ts.map +1 -0
- package/dist/services/node-sanitizer.js +225 -0
- package/dist/services/node-sanitizer.js.map +1 -0
- package/dist/services/node-similarity-service.d.ts +51 -0
- package/dist/services/node-similarity-service.d.ts.map +1 -0
- package/dist/services/node-similarity-service.js +352 -0
- package/dist/services/node-similarity-service.js.map +1 -0
- package/dist/services/node-specific-validators.d.ts +37 -0
- package/dist/services/node-specific-validators.d.ts.map +1 -0
- package/dist/services/node-specific-validators.js +1331 -0
- package/dist/services/node-specific-validators.js.map +1 -0
- package/dist/services/node-version-service.d.ts +63 -0
- package/dist/services/node-version-service.d.ts.map +1 -0
- package/dist/services/node-version-service.js +215 -0
- package/dist/services/node-version-service.js.map +1 -0
- package/dist/services/operation-similarity-service.d.ts +32 -0
- package/dist/services/operation-similarity-service.d.ts.map +1 -0
- package/dist/services/operation-similarity-service.js +341 -0
- package/dist/services/operation-similarity-service.js.map +1 -0
- package/dist/services/post-update-validator.d.ts +59 -0
- package/dist/services/post-update-validator.d.ts.map +1 -0
- package/dist/services/post-update-validator.js +231 -0
- package/dist/services/post-update-validator.js.map +1 -0
- package/dist/services/property-dependencies.d.ts +36 -0
- package/dist/services/property-dependencies.d.ts.map +1 -0
- package/dist/services/property-dependencies.js +168 -0
- package/dist/services/property-dependencies.js.map +1 -0
- package/dist/services/property-filter.d.ts +44 -0
- package/dist/services/property-filter.d.ts.map +1 -0
- package/dist/services/property-filter.js +395 -0
- package/dist/services/property-filter.js.map +1 -0
- package/dist/services/resource-similarity-service.d.ts +33 -0
- package/dist/services/resource-similarity-service.d.ts.map +1 -0
- package/dist/services/resource-similarity-service.js +358 -0
- package/dist/services/resource-similarity-service.js.map +1 -0
- package/dist/services/sqlite-storage-service.d.ts +11 -0
- package/dist/services/sqlite-storage-service.d.ts.map +1 -0
- package/dist/services/sqlite-storage-service.js +74 -0
- package/dist/services/sqlite-storage-service.js.map +1 -0
- package/dist/services/task-templates.d.ts +27 -0
- package/dist/services/task-templates.d.ts.map +1 -0
- package/dist/services/task-templates.js +1397 -0
- package/dist/services/task-templates.js.map +1 -0
- package/dist/services/tool-variant-generator.d.ts +10 -0
- package/dist/services/tool-variant-generator.d.ts.map +1 -0
- package/dist/services/tool-variant-generator.js +93 -0
- package/dist/services/tool-variant-generator.js.map +1 -0
- package/dist/services/type-structure-service.d.ts +23 -0
- package/dist/services/type-structure-service.d.ts.map +1 -0
- package/dist/services/type-structure-service.js +109 -0
- package/dist/services/type-structure-service.js.map +1 -0
- package/dist/services/universal-expression-validator.d.ts +20 -0
- package/dist/services/universal-expression-validator.d.ts.map +1 -0
- package/dist/services/universal-expression-validator.js +192 -0
- package/dist/services/universal-expression-validator.js.map +1 -0
- package/dist/services/workflow-analytics-service.d.ts +34 -0
- package/dist/services/workflow-analytics-service.d.ts.map +1 -0
- package/dist/services/workflow-analytics-service.js +144 -0
- package/dist/services/workflow-analytics-service.js.map +1 -0
- package/dist/services/workflow-auto-fixer.d.ts +74 -0
- package/dist/services/workflow-auto-fixer.d.ts.map +1 -0
- package/dist/services/workflow-auto-fixer.js +557 -0
- package/dist/services/workflow-auto-fixer.js.map +1 -0
- package/dist/services/workflow-comparison.d.ts +13 -0
- package/dist/services/workflow-comparison.d.ts.map +1 -0
- package/dist/services/workflow-comparison.js +306 -0
- package/dist/services/workflow-comparison.js.map +1 -0
- package/dist/services/workflow-debugging-service.d.ts +62 -0
- package/dist/services/workflow-debugging-service.d.ts.map +1 -0
- package/dist/services/workflow-debugging-service.js +153 -0
- package/dist/services/workflow-debugging-service.js.map +1 -0
- package/dist/services/workflow-diff-engine.d.ts +45 -0
- package/dist/services/workflow-diff-engine.d.ts.map +1 -0
- package/dist/services/workflow-diff-engine.js +830 -0
- package/dist/services/workflow-diff-engine.js.map +1 -0
- package/dist/services/workflow-validator.d.ts +112 -0
- package/dist/services/workflow-validator.d.ts.map +1 -0
- package/dist/services/workflow-validator.js +1328 -0
- package/dist/services/workflow-validator.js.map +1 -0
- package/dist/services/workflow-versioning-service.d.ts +102 -0
- package/dist/services/workflow-versioning-service.d.ts.map +1 -0
- package/dist/services/workflow-versioning-service.js +264 -0
- package/dist/services/workflow-versioning-service.js.map +1 -0
- package/dist/telemetry/batch-processor.d.ts +34 -0
- package/dist/telemetry/batch-processor.d.ts.map +1 -0
- package/dist/telemetry/batch-processor.js +337 -0
- package/dist/telemetry/batch-processor.js.map +1 -0
- package/dist/telemetry/config-manager.d.ts +32 -0
- package/dist/telemetry/config-manager.d.ts.map +1 -0
- package/dist/telemetry/config-manager.js +289 -0
- package/dist/telemetry/config-manager.js.map +1 -0
- package/dist/telemetry/early-error-logger.d.ts +26 -0
- package/dist/telemetry/early-error-logger.d.ts.map +1 -0
- package/dist/telemetry/early-error-logger.js +187 -0
- package/dist/telemetry/early-error-logger.js.map +1 -0
- package/dist/telemetry/error-sanitization-utils.d.ts +2 -0
- package/dist/telemetry/error-sanitization-utils.d.ts.map +1 -0
- package/dist/telemetry/error-sanitization-utils.js +37 -0
- package/dist/telemetry/error-sanitization-utils.js.map +1 -0
- package/dist/telemetry/error-sanitizer.d.ts +4 -0
- package/dist/telemetry/error-sanitizer.d.ts.map +1 -0
- package/dist/telemetry/error-sanitizer.js +45 -0
- package/dist/telemetry/error-sanitizer.js.map +1 -0
- package/dist/telemetry/event-tracker.d.ts +71 -0
- package/dist/telemetry/event-tracker.d.ts.map +1 -0
- package/dist/telemetry/event-tracker.js +356 -0
- package/dist/telemetry/event-tracker.js.map +1 -0
- package/dist/telemetry/event-validator.d.ts +78 -0
- package/dist/telemetry/event-validator.d.ts.map +1 -0
- package/dist/telemetry/event-validator.js +227 -0
- package/dist/telemetry/event-validator.js.map +1 -0
- package/dist/telemetry/index.d.ts +5 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +11 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/intent-classifier.d.ts +11 -0
- package/dist/telemetry/intent-classifier.d.ts.map +1 -0
- package/dist/telemetry/intent-classifier.js +141 -0
- package/dist/telemetry/intent-classifier.js.map +1 -0
- package/dist/telemetry/intent-sanitizer.d.ts +9 -0
- package/dist/telemetry/intent-sanitizer.d.ts.map +1 -0
- package/dist/telemetry/intent-sanitizer.js +103 -0
- package/dist/telemetry/intent-sanitizer.js.map +1 -0
- package/dist/telemetry/mutation-tracker.d.ts +15 -0
- package/dist/telemetry/mutation-tracker.d.ts.map +1 -0
- package/dist/telemetry/mutation-tracker.js +177 -0
- package/dist/telemetry/mutation-tracker.js.map +1 -0
- package/dist/telemetry/mutation-types.d.ts +106 -0
- package/dist/telemetry/mutation-types.d.ts.map +1 -0
- package/dist/telemetry/mutation-types.js +18 -0
- package/dist/telemetry/mutation-types.js.map +1 -0
- package/dist/telemetry/mutation-validator.d.ts +20 -0
- package/dist/telemetry/mutation-validator.d.ts.map +1 -0
- package/dist/telemetry/mutation-validator.js +144 -0
- package/dist/telemetry/mutation-validator.js.map +1 -0
- package/dist/telemetry/performance-monitor.d.ts +113 -0
- package/dist/telemetry/performance-monitor.d.ts.map +1 -0
- package/dist/telemetry/performance-monitor.js +208 -0
- package/dist/telemetry/performance-monitor.js.map +1 -0
- package/dist/telemetry/rate-limiter.d.ts +30 -0
- package/dist/telemetry/rate-limiter.d.ts.map +1 -0
- package/dist/telemetry/rate-limiter.js +103 -0
- package/dist/telemetry/rate-limiter.js.map +1 -0
- package/dist/telemetry/startup-checkpoints.d.ts +26 -0
- package/dist/telemetry/startup-checkpoints.d.ts.map +1 -0
- package/dist/telemetry/startup-checkpoints.js +65 -0
- package/dist/telemetry/startup-checkpoints.js.map +1 -0
- package/dist/telemetry/telemetry-error.d.ts +44 -0
- package/dist/telemetry/telemetry-error.d.ts.map +1 -0
- package/dist/telemetry/telemetry-error.js +153 -0
- package/dist/telemetry/telemetry-error.js.map +1 -0
- package/dist/telemetry/telemetry-manager.d.ts +130 -0
- package/dist/telemetry/telemetry-manager.d.ts.map +1 -0
- package/dist/telemetry/telemetry-manager.js +257 -0
- package/dist/telemetry/telemetry-manager.js.map +1 -0
- package/dist/telemetry/telemetry-types.d.ts +103 -0
- package/dist/telemetry/telemetry-types.d.ts.map +1 -0
- package/dist/telemetry/telemetry-types.js +29 -0
- package/dist/telemetry/telemetry-types.js.map +1 -0
- package/dist/telemetry/workflow-sanitizer.d.ts +34 -0
- package/dist/telemetry/workflow-sanitizer.d.ts.map +1 -0
- package/dist/telemetry/workflow-sanitizer.js +242 -0
- package/dist/telemetry/workflow-sanitizer.js.map +1 -0
- package/dist/templates/batch-processor.d.ts +35 -0
- package/dist/templates/batch-processor.d.ts.map +1 -0
- package/dist/templates/batch-processor.js +320 -0
- package/dist/templates/batch-processor.js.map +1 -0
- package/dist/templates/metadata-generator.d.ts +52 -0
- package/dist/templates/metadata-generator.d.ts.map +1 -0
- package/dist/templates/metadata-generator.js +252 -0
- package/dist/templates/metadata-generator.js.map +1 -0
- package/dist/templates/template-fetcher.d.ts +45 -0
- package/dist/templates/template-fetcher.d.ts.map +1 -0
- package/dist/templates/template-fetcher.js +122 -0
- package/dist/templates/template-fetcher.js.map +1 -0
- package/dist/templates/template-repository.d.ts +93 -0
- package/dist/templates/template-repository.d.ts.map +1 -0
- package/dist/templates/template-repository.js +644 -0
- package/dist/templates/template-repository.js.map +1 -0
- package/dist/templates/template-service.d.ts +79 -0
- package/dist/templates/template-service.d.ts.map +1 -0
- package/dist/templates/template-service.js +300 -0
- package/dist/templates/template-service.js.map +1 -0
- package/dist/triggers/handlers/base-handler.d.ts +21 -0
- package/dist/triggers/handlers/base-handler.d.ts.map +1 -0
- package/dist/triggers/handlers/base-handler.js +60 -0
- package/dist/triggers/handlers/base-handler.js.map +1 -0
- package/dist/triggers/handlers/chat-handler.d.ts +38 -0
- package/dist/triggers/handlers/chat-handler.d.ts.map +1 -0
- package/dist/triggers/handlers/chat-handler.js +129 -0
- package/dist/triggers/handlers/chat-handler.js.map +1 -0
- package/dist/triggers/handlers/form-handler.d.ts +35 -0
- package/dist/triggers/handlers/form-handler.d.ts.map +1 -0
- package/dist/triggers/handlers/form-handler.js +362 -0
- package/dist/triggers/handlers/form-handler.js.map +1 -0
- package/dist/triggers/handlers/webhook-handler.d.ts +38 -0
- package/dist/triggers/handlers/webhook-handler.d.ts.map +1 -0
- package/dist/triggers/handlers/webhook-handler.js +115 -0
- package/dist/triggers/handlers/webhook-handler.js.map +1 -0
- package/dist/triggers/index.d.ts +5 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +14 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/trigger-detector.d.ts +6 -0
- package/dist/triggers/trigger-detector.d.ts.map +1 -0
- package/dist/triggers/trigger-detector.js +201 -0
- package/dist/triggers/trigger-detector.js.map +1 -0
- package/dist/triggers/trigger-registry.d.ts +18 -0
- package/dist/triggers/trigger-registry.d.ts.map +1 -0
- package/dist/triggers/trigger-registry.js +87 -0
- package/dist/triggers/trigger-registry.js.map +1 -0
- package/dist/triggers/types.d.ts +76 -0
- package/dist/triggers/types.d.ts.map +1 -0
- package/dist/triggers/types.js +3 -0
- package/dist/triggers/types.js.map +1 -0
- package/dist/types/index.d.ts +49 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instance-context.d.ts +20 -0
- package/dist/types/instance-context.d.ts.map +1 -0
- package/dist/types/instance-context.js +153 -0
- package/dist/types/instance-context.js.map +1 -0
- package/dist/types/n8n-api.d.ts +376 -0
- package/dist/types/n8n-api.d.ts.map +1 -0
- package/dist/types/n8n-api.js +10 -0
- package/dist/types/n8n-api.js.map +1 -0
- package/dist/types/node-types.d.ts +19 -0
- package/dist/types/node-types.d.ts.map +1 -0
- package/dist/types/node-types.js +62 -0
- package/dist/types/node-types.js.map +1 -0
- package/dist/types/session-state.d.ts +15 -0
- package/dist/types/session-state.d.ts.map +1 -0
- package/dist/types/session-state.js +3 -0
- package/dist/types/session-state.js.map +1 -0
- package/dist/types/type-structures.d.ts +42 -0
- package/dist/types/type-structures.d.ts.map +1 -0
- package/dist/types/type-structures.js +32 -0
- package/dist/types/type-structures.js.map +1 -0
- package/dist/types/workflow-comparison.d.ts +51 -0
- package/dist/types/workflow-comparison.d.ts.map +1 -0
- package/dist/types/workflow-comparison.js +3 -0
- package/dist/types/workflow-comparison.js.map +1 -0
- package/dist/types/workflow-diff.d.ts +148 -0
- package/dist/types/workflow-diff.d.ts.map +1 -0
- package/dist/types/workflow-diff.js +15 -0
- package/dist/types/workflow-diff.js.map +1 -0
- package/dist/utils/auth.d.ts +13 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +82 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/bridge.d.ts +12 -0
- package/dist/utils/bridge.d.ts.map +1 -0
- package/dist/utils/bridge.js +127 -0
- package/dist/utils/bridge.js.map +1 -0
- package/dist/utils/cache-utils.d.ts +58 -0
- package/dist/utils/cache-utils.d.ts.map +1 -0
- package/dist/utils/cache-utils.js +243 -0
- package/dist/utils/cache-utils.js.map +1 -0
- package/dist/utils/console-manager.d.ts +10 -0
- package/dist/utils/console-manager.d.ts.map +1 -0
- package/dist/utils/console-manager.js +63 -0
- package/dist/utils/console-manager.js.map +1 -0
- package/dist/utils/documentation-fetcher.d.ts +2 -0
- package/dist/utils/documentation-fetcher.d.ts.map +1 -0
- package/dist/utils/documentation-fetcher.js +18 -0
- package/dist/utils/documentation-fetcher.js.map +1 -0
- package/dist/utils/enhanced-documentation-fetcher.d.ts +74 -0
- package/dist/utils/enhanced-documentation-fetcher.d.ts.map +1 -0
- package/dist/utils/enhanced-documentation-fetcher.js +521 -0
- package/dist/utils/enhanced-documentation-fetcher.js.map +1 -0
- package/dist/utils/error-handler.d.ts +24 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +84 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/example-generator.d.ts +8 -0
- package/dist/utils/example-generator.d.ts.map +1 -0
- package/dist/utils/example-generator.js +106 -0
- package/dist/utils/example-generator.js.map +1 -0
- package/dist/utils/expression-utils.d.ts +6 -0
- package/dist/utils/expression-utils.d.ts.map +1 -0
- package/dist/utils/expression-utils.js +47 -0
- package/dist/utils/expression-utils.js.map +1 -0
- package/dist/utils/fixed-collection-validator.d.ts +35 -0
- package/dist/utils/fixed-collection-validator.d.ts.map +1 -0
- package/dist/utils/fixed-collection-validator.js +358 -0
- package/dist/utils/fixed-collection-validator.js.map +1 -0
- package/dist/utils/logger.d.ts +33 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +101 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mcp-client.d.ts +21 -0
- package/dist/utils/mcp-client.d.ts.map +1 -0
- package/dist/utils/mcp-client.js +96 -0
- package/dist/utils/mcp-client.js.map +1 -0
- package/dist/utils/n8n-errors.d.ts +27 -0
- package/dist/utils/n8n-errors.d.ts.map +1 -0
- package/dist/utils/n8n-errors.js +138 -0
- package/dist/utils/n8n-errors.js.map +1 -0
- package/dist/utils/node-classification.d.ts +5 -0
- package/dist/utils/node-classification.d.ts.map +1 -0
- package/dist/utils/node-classification.js +31 -0
- package/dist/utils/node-classification.js.map +1 -0
- package/dist/utils/node-source-extractor.d.ts +21 -0
- package/dist/utils/node-source-extractor.d.ts.map +1 -0
- package/dist/utils/node-source-extractor.js +377 -0
- package/dist/utils/node-source-extractor.js.map +1 -0
- package/dist/utils/node-type-normalizer.d.ts +17 -0
- package/dist/utils/node-type-normalizer.d.ts.map +1 -0
- package/dist/utils/node-type-normalizer.js +87 -0
- package/dist/utils/node-type-normalizer.js.map +1 -0
- package/dist/utils/node-type-utils.d.ts +12 -0
- package/dist/utils/node-type-utils.d.ts.map +1 -0
- package/dist/utils/node-type-utils.js +126 -0
- package/dist/utils/node-type-utils.js.map +1 -0
- package/dist/utils/node-utils.d.ts +4 -0
- package/dist/utils/node-utils.d.ts.map +1 -0
- package/dist/utils/node-utils.js +81 -0
- package/dist/utils/node-utils.js.map +1 -0
- package/dist/utils/npm-version-checker.d.ts +14 -0
- package/dist/utils/npm-version-checker.d.ts.map +1 -0
- package/dist/utils/npm-version-checker.js +125 -0
- package/dist/utils/npm-version-checker.js.map +1 -0
- package/dist/utils/protocol-version.d.ts +19 -0
- package/dist/utils/protocol-version.d.ts.map +1 -0
- package/dist/utils/protocol-version.js +95 -0
- package/dist/utils/protocol-version.js.map +1 -0
- package/dist/utils/simple-cache.d.ts +10 -0
- package/dist/utils/simple-cache.d.ts.map +1 -0
- package/dist/utils/simple-cache.js +42 -0
- package/dist/utils/simple-cache.js.map +1 -0
- package/dist/utils/ssrf-protection.d.ts +7 -0
- package/dist/utils/ssrf-protection.d.ts.map +1 -0
- package/dist/utils/ssrf-protection.js +118 -0
- package/dist/utils/ssrf-protection.js.map +1 -0
- package/dist/utils/template-node-resolver.d.ts +2 -0
- package/dist/utils/template-node-resolver.d.ts.map +1 -0
- package/dist/utils/template-node-resolver.js +161 -0
- package/dist/utils/template-node-resolver.js.map +1 -0
- package/dist/utils/template-sanitizer.d.ts +21 -0
- package/dist/utils/template-sanitizer.d.ts.map +1 -0
- package/dist/utils/template-sanitizer.js +126 -0
- package/dist/utils/template-sanitizer.js.map +1 -0
- package/dist/utils/url-detector.d.ts +9 -0
- package/dist/utils/url-detector.d.ts.map +1 -0
- package/dist/utils/url-detector.js +79 -0
- package/dist/utils/url-detector.js.map +1 -0
- package/dist/utils/validation-schemas.d.ts +32 -0
- package/dist/utils/validation-schemas.d.ts.map +1 -0
- package/dist/utils/validation-schemas.js +219 -0
- package/dist/utils/validation-schemas.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +18 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +178 -0
- package/package.runtime.json +24 -0
package/.env.example
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# n8n Documentation MCP Server Configuration
|
|
2
|
+
|
|
3
|
+
# ====================
|
|
4
|
+
# COMMON CONFIGURATION
|
|
5
|
+
# ====================
|
|
6
|
+
|
|
7
|
+
# Database Configuration
|
|
8
|
+
# For local development: ./data/nodes.db
|
|
9
|
+
# For Docker: /app/data/nodes.db
|
|
10
|
+
# Custom paths supported in v2.7.16+ (must end with .db)
|
|
11
|
+
NODE_DB_PATH=./data/nodes.db
|
|
12
|
+
|
|
13
|
+
# Logging Level (debug, info, warn, error)
|
|
14
|
+
MCP_LOG_LEVEL=info
|
|
15
|
+
|
|
16
|
+
# Node Environment (development, production)
|
|
17
|
+
NODE_ENV=development
|
|
18
|
+
|
|
19
|
+
# Rebuild database on startup (true/false)
|
|
20
|
+
REBUILD_ON_START=false
|
|
21
|
+
|
|
22
|
+
# =========================
|
|
23
|
+
# LOCAL MODE CONFIGURATION
|
|
24
|
+
# =========================
|
|
25
|
+
# Used when running: npm run start:v2 or npm run dev:v2
|
|
26
|
+
|
|
27
|
+
# Local MCP Server Configuration
|
|
28
|
+
MCP_SERVER_PORT=3000
|
|
29
|
+
MCP_SERVER_HOST=localhost
|
|
30
|
+
# MCP_AUTH_TOKEN=optional-for-local-development
|
|
31
|
+
|
|
32
|
+
# =========================
|
|
33
|
+
# SIMPLE HTTP MODE
|
|
34
|
+
# =========================
|
|
35
|
+
# Used for private single-user deployments
|
|
36
|
+
|
|
37
|
+
# Server mode: stdio (local) or http (remote)
|
|
38
|
+
MCP_MODE=stdio
|
|
39
|
+
|
|
40
|
+
# DEPRECATED: USE_FIXED_HTTP is deprecated as of v2.31.8
|
|
41
|
+
# The fixed HTTP implementation does not support SSE streaming required by
|
|
42
|
+
# clients like OpenAI Codex. Use the default SingleSessionHTTPServer instead.
|
|
43
|
+
# See: https://github.com/tungkl197/n8n-atom-mcp/issues/524
|
|
44
|
+
# USE_FIXED_HTTP=true # DO NOT USE - deprecated
|
|
45
|
+
|
|
46
|
+
# HTTP Server Configuration (only used when MCP_MODE=http)
|
|
47
|
+
PORT=3000
|
|
48
|
+
HOST=0.0.0.0
|
|
49
|
+
|
|
50
|
+
# Base URL Configuration (optional)
|
|
51
|
+
# Set this when running behind a proxy or when the server is accessed via a different URL
|
|
52
|
+
# than what it binds to. If not set, URLs will be auto-detected from proxy headers (if TRUST_PROXY is set)
|
|
53
|
+
# or constructed from HOST and PORT.
|
|
54
|
+
# Examples:
|
|
55
|
+
# BASE_URL=https://n8n-atom-mcp.example.com
|
|
56
|
+
# BASE_URL=https://your-domain.com:8443
|
|
57
|
+
# PUBLIC_URL=https://n8n-atom-mcp.mydomain.com (alternative to BASE_URL)
|
|
58
|
+
|
|
59
|
+
# Authentication token for HTTP mode (REQUIRED)
|
|
60
|
+
# Generate with: openssl rand -base64 32
|
|
61
|
+
AUTH_TOKEN=your-secure-token-here
|
|
62
|
+
|
|
63
|
+
# CORS origin for HTTP mode (optional)
|
|
64
|
+
# Default: * (allow all origins)
|
|
65
|
+
# For production, set to your specific domain
|
|
66
|
+
# CORS_ORIGIN=https://your-client-domain.com
|
|
67
|
+
|
|
68
|
+
# Trust proxy configuration for correct IP logging (0=disabled, 1=trust first proxy)
|
|
69
|
+
# Set to 1 when running behind a reverse proxy (Nginx, Traefik, etc.)
|
|
70
|
+
# Set to the number of proxy hops if behind multiple proxies
|
|
71
|
+
# Default: 0 (disabled)
|
|
72
|
+
# TRUST_PROXY=0
|
|
73
|
+
|
|
74
|
+
# =========================
|
|
75
|
+
# SECURITY CONFIGURATION
|
|
76
|
+
# =========================
|
|
77
|
+
|
|
78
|
+
# Rate Limiting Configuration
|
|
79
|
+
# Protects authentication endpoint from brute force attacks
|
|
80
|
+
# Window: Time period in milliseconds (default: 900000 = 15 minutes)
|
|
81
|
+
# Max: Maximum authentication attempts per IP within window (default: 20)
|
|
82
|
+
# AUTH_RATE_LIMIT_WINDOW=900000
|
|
83
|
+
# AUTH_RATE_LIMIT_MAX=20
|
|
84
|
+
|
|
85
|
+
# SSRF Protection Mode
|
|
86
|
+
# Prevents webhooks from accessing internal networks and cloud metadata
|
|
87
|
+
#
|
|
88
|
+
# Modes:
|
|
89
|
+
# - strict (default): Block localhost + private IPs + cloud metadata
|
|
90
|
+
# Use for: Production deployments, cloud environments
|
|
91
|
+
# Security: Maximum
|
|
92
|
+
#
|
|
93
|
+
# - moderate: Allow localhost, block private IPs + cloud metadata
|
|
94
|
+
# Use for: Local development with local n8n instance
|
|
95
|
+
# Security: Good balance
|
|
96
|
+
# Example: n8n running on http://localhost:5678 or http://host.docker.internal:5678
|
|
97
|
+
#
|
|
98
|
+
# - permissive: Allow localhost + private IPs, block cloud metadata
|
|
99
|
+
# Use for: Internal network testing, private cloud (NOT for production)
|
|
100
|
+
# Security: Minimal - use with caution
|
|
101
|
+
#
|
|
102
|
+
# Default: strict
|
|
103
|
+
# WEBHOOK_SECURITY_MODE=strict
|
|
104
|
+
#
|
|
105
|
+
# For local development with local n8n:
|
|
106
|
+
# WEBHOOK_SECURITY_MODE=moderate
|
|
107
|
+
|
|
108
|
+
# Disabled Tools Configuration
|
|
109
|
+
# Filter specific tools from registration at startup
|
|
110
|
+
# Useful for multi-tenant deployments, security hardening, or feature flags
|
|
111
|
+
#
|
|
112
|
+
# Format: Comma-separated list of tool names
|
|
113
|
+
# Example: DISABLED_TOOLS=n8n_diagnostic,n8n_health_check,custom_tool
|
|
114
|
+
#
|
|
115
|
+
# Common use cases:
|
|
116
|
+
# - Multi-tenant: Hide tools that check env vars instead of instance context
|
|
117
|
+
# Example: DISABLED_TOOLS=n8n_diagnostic,n8n_health_check
|
|
118
|
+
# - Security: Disable management tools in production for certain users
|
|
119
|
+
# - Feature flags: Gradually roll out new tools
|
|
120
|
+
# - Deployment-specific: Different tool sets for cloud vs self-hosted
|
|
121
|
+
#
|
|
122
|
+
# Default: (empty - all tools enabled)
|
|
123
|
+
# DISABLED_TOOLS=
|
|
124
|
+
|
|
125
|
+
# =========================
|
|
126
|
+
# MULTI-TENANT CONFIGURATION
|
|
127
|
+
# =========================
|
|
128
|
+
# Enable multi-tenant mode for dynamic instance support
|
|
129
|
+
# When enabled, n8n API tools will be available for all sessions,
|
|
130
|
+
# and instance configuration will be determined from HTTP headers
|
|
131
|
+
# Default: false (single-tenant mode using environment variables)
|
|
132
|
+
ENABLE_MULTI_TENANT=false
|
|
133
|
+
|
|
134
|
+
# Session isolation strategy for multi-tenant mode
|
|
135
|
+
# - "instance": Create separate sessions per instance ID (recommended)
|
|
136
|
+
# - "shared": Share sessions but switch contexts (advanced)
|
|
137
|
+
# Default: instance
|
|
138
|
+
# MULTI_TENANT_SESSION_STRATEGY=instance
|
|
139
|
+
|
|
140
|
+
# =========================
|
|
141
|
+
# N8N API CONFIGURATION
|
|
142
|
+
# =========================
|
|
143
|
+
# Optional: Enable n8n management tools by providing API credentials
|
|
144
|
+
# These tools allow creating, updating, and executing workflows
|
|
145
|
+
|
|
146
|
+
# n8n instance API URL (without /api/v1 suffix)
|
|
147
|
+
# Example: https://your-n8n-instance.com
|
|
148
|
+
# N8N_API_URL=
|
|
149
|
+
|
|
150
|
+
# n8n API Key (get from Settings > API in your n8n instance)
|
|
151
|
+
# N8N_API_KEY=
|
|
152
|
+
|
|
153
|
+
# n8n API request timeout in milliseconds (default: 30000)
|
|
154
|
+
# N8N_API_TIMEOUT=30000
|
|
155
|
+
|
|
156
|
+
# Maximum number of API request retries (default: 3)
|
|
157
|
+
# N8N_API_MAX_RETRIES=3
|
|
158
|
+
|
|
159
|
+
# =========================
|
|
160
|
+
# CACHE CONFIGURATION
|
|
161
|
+
# =========================
|
|
162
|
+
# Optional: Configure instance cache settings for flexible instance support
|
|
163
|
+
|
|
164
|
+
# Maximum number of cached instances (default: 100, min: 1, max: 10000)
|
|
165
|
+
# INSTANCE_CACHE_MAX=100
|
|
166
|
+
|
|
167
|
+
# Cache TTL in minutes (default: 30, min: 1, max: 1440/24 hours)
|
|
168
|
+
# INSTANCE_CACHE_TTL_MINUTES=30
|
|
169
|
+
|
|
170
|
+
# =========================
|
|
171
|
+
# OPENAI API CONFIGURATION
|
|
172
|
+
# =========================
|
|
173
|
+
# Optional: Enable AI-powered template metadata generation
|
|
174
|
+
# Provides structured metadata for improved template discovery
|
|
175
|
+
|
|
176
|
+
# OpenAI API Key (get from https://platform.openai.com/api-keys)
|
|
177
|
+
# OPENAI_API_KEY=
|
|
178
|
+
|
|
179
|
+
# OpenAI Model for metadata generation (default: gpt-4o-mini)
|
|
180
|
+
# OPENAI_MODEL=gpt-4o-mini
|
|
181
|
+
|
|
182
|
+
# Batch size for metadata generation (default: 100)
|
|
183
|
+
# Templates are processed in batches using OpenAI's Batch API for 50% cost savings
|
|
184
|
+
# OPENAI_BATCH_SIZE=100
|
|
185
|
+
|
|
186
|
+
# Enable metadata generation during template fetch (default: false)
|
|
187
|
+
# Set to true to automatically generate metadata when running fetch:templates
|
|
188
|
+
# METADATA_GENERATION_ENABLED=false
|
|
189
|
+
|
|
190
|
+
# ========================================
|
|
191
|
+
# INTEGRATION TESTING CONFIGURATION
|
|
192
|
+
# ========================================
|
|
193
|
+
# Configuration for integration tests that call real n8n instance API
|
|
194
|
+
|
|
195
|
+
# n8n API Configuration for Integration Tests
|
|
196
|
+
# For local development: Use your local n8n instance
|
|
197
|
+
# For CI: These will be provided by GitHub secrets
|
|
198
|
+
# N8N_API_URL=http://localhost:5678
|
|
199
|
+
# N8N_API_KEY=
|
|
200
|
+
|
|
201
|
+
# Pre-activated Webhook Workflows for Testing
|
|
202
|
+
# These workflows must be created manually in n8n and activated
|
|
203
|
+
# because n8n API doesn't support workflow activation.
|
|
204
|
+
#
|
|
205
|
+
# Setup Instructions:
|
|
206
|
+
# 1. Create 4 workflows in n8n UI (one for each HTTP method)
|
|
207
|
+
# 2. Each workflow should have a single Webhook node
|
|
208
|
+
# 3. Configure webhook paths: mcp-test-get, mcp-test-post, mcp-test-put, mcp-test-delete
|
|
209
|
+
# 4. ACTIVATE each workflow in n8n UI
|
|
210
|
+
# 5. Copy the workflow IDs here
|
|
211
|
+
#
|
|
212
|
+
# N8N_TEST_WEBHOOK_GET_ID= # Workflow ID for GET method webhook
|
|
213
|
+
# N8N_TEST_WEBHOOK_POST_ID= # Workflow ID for POST method webhook
|
|
214
|
+
# N8N_TEST_WEBHOOK_PUT_ID= # Workflow ID for PUT method webhook
|
|
215
|
+
# N8N_TEST_WEBHOOK_DELETE_ID= # Workflow ID for DELETE method webhook
|
|
216
|
+
|
|
217
|
+
# Test Configuration
|
|
218
|
+
N8N_TEST_CLEANUP_ENABLED=true # Enable automatic cleanup of test workflows
|
|
219
|
+
N8N_TEST_TAG=mcp-integration-test # Tag applied to all test workflows
|
|
220
|
+
N8N_TEST_NAME_PREFIX=[MCP-TEST] # Name prefix for test workflows
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Romuald Czlonkowski @ www.aiadvisors.pl/en
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# n8n-atom-MCP
|
|
2
|
+
|
|
3
|
+
> Based on [n8n-mcp by czlonkowski](https://github.com/czlonkowski/n8n-mcp)
|
|
4
|
+
|
|
5
|
+
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations.
|
|
6
|
+
|
|
7
|
+
## 🚀 Quick Start
|
|
8
|
+
|
|
9
|
+
### npx (Recommended)
|
|
10
|
+
|
|
11
|
+
**Prerequisites:** [Node.js](https://nodejs.org/) installed
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx n8n-atom-mcp
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Claude Desktop Configuration
|
|
18
|
+
|
|
19
|
+
**Basic configuration (documentation tools only):**
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"mcpServers": {
|
|
23
|
+
"n8n-atom-mcp": {
|
|
24
|
+
"command": "npx",
|
|
25
|
+
"args": ["n8n-atom-mcp"],
|
|
26
|
+
"env": {
|
|
27
|
+
"MCP_MODE": "stdio",
|
|
28
|
+
"LOG_LEVEL": "error",
|
|
29
|
+
"DISABLE_CONSOLE_OUTPUT": "true"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Full configuration (with n8n management tools):**
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"mcpServers": {
|
|
40
|
+
"n8n-atom-mcp": {
|
|
41
|
+
"command": "npx",
|
|
42
|
+
"args": ["n8n-atom-mcp"],
|
|
43
|
+
"env": {
|
|
44
|
+
"MCP_MODE": "stdio",
|
|
45
|
+
"LOG_LEVEL": "error",
|
|
46
|
+
"DISABLE_CONSOLE_OUTPUT": "true",
|
|
47
|
+
"N8N_API_URL": "https://your-n8n-instance.com",
|
|
48
|
+
"N8N_API_KEY": "your-api-key"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> ⚠️ **Important**: `MCP_MODE: "stdio"` is **required** for Claude Desktop.
|
|
56
|
+
|
|
57
|
+
**Configuration file locations:**
|
|
58
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
59
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
60
|
+
- **Linux**: `~/.config/Claude/claude_desktop_config.json`
|
|
61
|
+
|
|
62
|
+
## 🔧 Local Development
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
git clone https://github.com/tungkl197/n8n-atom-mcp.git
|
|
66
|
+
cd n8n-atom-mcp
|
|
67
|
+
npm install
|
|
68
|
+
npm run build
|
|
69
|
+
npm start
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 📄 License
|
|
73
|
+
|
|
74
|
+
MIT
|
|
75
|
+
|
|
76
|
+
## 🙏 Credits
|
|
77
|
+
|
|
78
|
+
This project is based on [n8n-mcp](https://github.com/czlonkowski/n8n-mcp) by [czlonkowski](https://github.com/czlonkowski).
|
package/data/nodes.db
ADDED
|
Binary file
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
export interface StrapiCommunityNodeAttributes {
|
|
2
|
+
name: string;
|
|
3
|
+
displayName: string;
|
|
4
|
+
description: string;
|
|
5
|
+
packageName: string;
|
|
6
|
+
authorName: string;
|
|
7
|
+
authorGithubUrl?: string;
|
|
8
|
+
npmVersion: string;
|
|
9
|
+
numberOfDownloads: number;
|
|
10
|
+
numberOfStars: number;
|
|
11
|
+
isOfficialNode: boolean;
|
|
12
|
+
isPublished: boolean;
|
|
13
|
+
nodeDescription: any;
|
|
14
|
+
nodeVersions?: any[];
|
|
15
|
+
checksum?: string;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
updatedAt: string;
|
|
18
|
+
}
|
|
19
|
+
export interface StrapiCommunityNode {
|
|
20
|
+
id: number;
|
|
21
|
+
attributes: StrapiCommunityNodeAttributes;
|
|
22
|
+
}
|
|
23
|
+
export interface StrapiPaginatedResponse<T> {
|
|
24
|
+
data: Array<{
|
|
25
|
+
id: number;
|
|
26
|
+
attributes: T;
|
|
27
|
+
}>;
|
|
28
|
+
meta: {
|
|
29
|
+
pagination: {
|
|
30
|
+
page: number;
|
|
31
|
+
pageSize: number;
|
|
32
|
+
pageCount: number;
|
|
33
|
+
total: number;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface NpmPackageInfo {
|
|
38
|
+
name: string;
|
|
39
|
+
version: string;
|
|
40
|
+
description: string;
|
|
41
|
+
keywords: string[];
|
|
42
|
+
date: string;
|
|
43
|
+
links: {
|
|
44
|
+
npm: string;
|
|
45
|
+
homepage?: string;
|
|
46
|
+
repository?: string;
|
|
47
|
+
};
|
|
48
|
+
author?: {
|
|
49
|
+
name?: string;
|
|
50
|
+
email?: string;
|
|
51
|
+
username?: string;
|
|
52
|
+
};
|
|
53
|
+
publisher?: {
|
|
54
|
+
username: string;
|
|
55
|
+
email: string;
|
|
56
|
+
};
|
|
57
|
+
maintainers: Array<{
|
|
58
|
+
username: string;
|
|
59
|
+
email: string;
|
|
60
|
+
}>;
|
|
61
|
+
}
|
|
62
|
+
export interface NpmSearchResult {
|
|
63
|
+
package: NpmPackageInfo;
|
|
64
|
+
score: {
|
|
65
|
+
final: number;
|
|
66
|
+
detail: {
|
|
67
|
+
quality: number;
|
|
68
|
+
popularity: number;
|
|
69
|
+
maintenance: number;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
searchScore: number;
|
|
73
|
+
}
|
|
74
|
+
export interface NpmSearchResponse {
|
|
75
|
+
objects: NpmSearchResult[];
|
|
76
|
+
total: number;
|
|
77
|
+
time: string;
|
|
78
|
+
}
|
|
79
|
+
export interface NpmPackageWithReadme {
|
|
80
|
+
name: string;
|
|
81
|
+
version: string;
|
|
82
|
+
description?: string;
|
|
83
|
+
readme?: string;
|
|
84
|
+
readmeFilename?: string;
|
|
85
|
+
homepage?: string;
|
|
86
|
+
repository?: {
|
|
87
|
+
type?: string;
|
|
88
|
+
url?: string;
|
|
89
|
+
};
|
|
90
|
+
keywords?: string[];
|
|
91
|
+
license?: string;
|
|
92
|
+
'dist-tags'?: {
|
|
93
|
+
latest?: string;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export declare class CommunityNodeFetcher {
|
|
97
|
+
private readonly strapiBaseUrl;
|
|
98
|
+
private readonly npmSearchUrl;
|
|
99
|
+
private readonly npmRegistryUrl;
|
|
100
|
+
private readonly maxRetries;
|
|
101
|
+
private readonly retryDelay;
|
|
102
|
+
private readonly strapiPageSize;
|
|
103
|
+
private readonly npmPageSize;
|
|
104
|
+
private readonly npmPackageNameRegex;
|
|
105
|
+
constructor(environment?: 'production' | 'staging');
|
|
106
|
+
private validatePackageName;
|
|
107
|
+
private isRateLimitError;
|
|
108
|
+
private retryWithBackoff;
|
|
109
|
+
fetchVerifiedNodes(progressCallback?: (message: string, current: number, total: number) => void): Promise<StrapiCommunityNode[]>;
|
|
110
|
+
fetchNpmPackages(limit?: number, progressCallback?: (message: string, current: number, total: number) => void): Promise<NpmSearchResult[]>;
|
|
111
|
+
fetchPackageJson(packageName: string, version?: string): Promise<any | null>;
|
|
112
|
+
getPackageTarballUrl(packageName: string, version?: string): Promise<string | null>;
|
|
113
|
+
fetchPackageWithReadme(packageName: string): Promise<NpmPackageWithReadme | null>;
|
|
114
|
+
fetchReadmesBatch(packageNames: string[], progressCallback?: (message: string, current: number, total: number) => void, concurrency?: number): Promise<Map<string, string | null>>;
|
|
115
|
+
getPackageDownloads(packageName: string, period?: 'last-week' | 'last-month'): Promise<number | null>;
|
|
116
|
+
private sleep;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=community-node-fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-node-fetcher.d.ts","sourceRoot":"","sources":["../../src/community/community-node-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CommunityNodeFetcher = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const logger_1 = require("../utils/logger");
|
|
9
|
+
const FETCH_CONFIG = {
|
|
10
|
+
STRAPI_TIMEOUT: 30000,
|
|
11
|
+
NPM_REGISTRY_TIMEOUT: 15000,
|
|
12
|
+
NPM_DOWNLOADS_TIMEOUT: 10000,
|
|
13
|
+
RETRY_DELAY: 1000,
|
|
14
|
+
MAX_RETRIES: 3,
|
|
15
|
+
RATE_LIMIT_DELAY: 300,
|
|
16
|
+
RATE_LIMIT_429_DELAY: 60000,
|
|
17
|
+
};
|
|
18
|
+
class CommunityNodeFetcher {
|
|
19
|
+
constructor(environment = 'production') {
|
|
20
|
+
this.npmSearchUrl = 'https://registry.npmjs.org/-/v1/search';
|
|
21
|
+
this.npmRegistryUrl = 'https://registry.npmjs.org';
|
|
22
|
+
this.maxRetries = FETCH_CONFIG.MAX_RETRIES;
|
|
23
|
+
this.retryDelay = FETCH_CONFIG.RETRY_DELAY;
|
|
24
|
+
this.strapiPageSize = 25;
|
|
25
|
+
this.npmPageSize = 250;
|
|
26
|
+
this.npmPackageNameRegex = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
|
|
27
|
+
this.strapiBaseUrl =
|
|
28
|
+
environment === 'production'
|
|
29
|
+
? 'https://api.n8n.io/api/community-nodes'
|
|
30
|
+
: 'https://api-staging.n8n.io/api/community-nodes';
|
|
31
|
+
}
|
|
32
|
+
validatePackageName(packageName) {
|
|
33
|
+
if (!packageName || typeof packageName !== 'string') {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if (packageName.length > 214) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if (!this.npmPackageNameRegex.test(packageName)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (packageName.includes('..') || packageName.includes('//')) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
isRateLimitError(error) {
|
|
48
|
+
return axios_1.default.isAxiosError(error) && error.response?.status === 429;
|
|
49
|
+
}
|
|
50
|
+
async retryWithBackoff(fn, context, maxRetries = this.maxRetries) {
|
|
51
|
+
let lastError;
|
|
52
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
53
|
+
try {
|
|
54
|
+
return await fn();
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
lastError = error;
|
|
58
|
+
if (attempt < maxRetries) {
|
|
59
|
+
if (this.isRateLimitError(error)) {
|
|
60
|
+
const delay = FETCH_CONFIG.RATE_LIMIT_429_DELAY;
|
|
61
|
+
logger_1.logger.warn(`${context} - Rate limited (429), waiting ${delay / 1000}s before retry...`);
|
|
62
|
+
await this.sleep(delay);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const delay = this.retryDelay * attempt;
|
|
66
|
+
logger_1.logger.warn(`${context} - Attempt ${attempt}/${maxRetries} failed, retrying in ${delay}ms...`);
|
|
67
|
+
await this.sleep(delay);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
logger_1.logger.error(`${context} - All ${maxRetries} attempts failed, skipping`, lastError);
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
async fetchVerifiedNodes(progressCallback) {
|
|
76
|
+
const allNodes = [];
|
|
77
|
+
let page = 1;
|
|
78
|
+
let hasMore = true;
|
|
79
|
+
let total = 0;
|
|
80
|
+
logger_1.logger.info('Fetching verified community nodes from n8n Strapi API...');
|
|
81
|
+
while (hasMore) {
|
|
82
|
+
const result = await this.retryWithBackoff(async () => {
|
|
83
|
+
const response = await axios_1.default.get(this.strapiBaseUrl, {
|
|
84
|
+
params: {
|
|
85
|
+
'pagination[page]': page,
|
|
86
|
+
'pagination[pageSize]': this.strapiPageSize,
|
|
87
|
+
},
|
|
88
|
+
timeout: FETCH_CONFIG.STRAPI_TIMEOUT,
|
|
89
|
+
});
|
|
90
|
+
return response.data;
|
|
91
|
+
}, `Fetching verified nodes page ${page}`);
|
|
92
|
+
if (result === null) {
|
|
93
|
+
logger_1.logger.warn(`Skipping page ${page} after failed attempts`);
|
|
94
|
+
page++;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const nodes = result.data.map((item) => ({
|
|
98
|
+
id: item.id,
|
|
99
|
+
attributes: item.attributes,
|
|
100
|
+
}));
|
|
101
|
+
allNodes.push(...nodes);
|
|
102
|
+
total = result.meta.pagination.total;
|
|
103
|
+
if (progressCallback) {
|
|
104
|
+
progressCallback(`Fetching verified nodes`, allNodes.length, total);
|
|
105
|
+
}
|
|
106
|
+
logger_1.logger.debug(`Fetched page ${page}/${result.meta.pagination.pageCount}: ${nodes.length} nodes (total: ${allNodes.length}/${total})`);
|
|
107
|
+
if (page >= result.meta.pagination.pageCount) {
|
|
108
|
+
hasMore = false;
|
|
109
|
+
}
|
|
110
|
+
page++;
|
|
111
|
+
if (hasMore) {
|
|
112
|
+
await this.sleep(FETCH_CONFIG.RATE_LIMIT_DELAY);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
logger_1.logger.info(`Fetched ${allNodes.length} verified community nodes from Strapi API`);
|
|
116
|
+
return allNodes;
|
|
117
|
+
}
|
|
118
|
+
async fetchNpmPackages(limit = 100, progressCallback) {
|
|
119
|
+
const allPackages = [];
|
|
120
|
+
let offset = 0;
|
|
121
|
+
const targetLimit = Math.min(limit, 1000);
|
|
122
|
+
logger_1.logger.info(`Fetching top ${targetLimit} community node packages from npm registry...`);
|
|
123
|
+
while (allPackages.length < targetLimit) {
|
|
124
|
+
const remaining = targetLimit - allPackages.length;
|
|
125
|
+
const size = Math.min(this.npmPageSize, remaining);
|
|
126
|
+
const result = await this.retryWithBackoff(async () => {
|
|
127
|
+
const response = await axios_1.default.get(this.npmSearchUrl, {
|
|
128
|
+
params: {
|
|
129
|
+
text: 'keywords:n8n-community-node-package',
|
|
130
|
+
size,
|
|
131
|
+
from: offset,
|
|
132
|
+
quality: 0,
|
|
133
|
+
popularity: 1,
|
|
134
|
+
maintenance: 0,
|
|
135
|
+
},
|
|
136
|
+
timeout: FETCH_CONFIG.STRAPI_TIMEOUT,
|
|
137
|
+
});
|
|
138
|
+
return response.data;
|
|
139
|
+
}, `Fetching npm packages (offset ${offset})`);
|
|
140
|
+
if (result === null) {
|
|
141
|
+
logger_1.logger.warn(`Skipping npm fetch at offset ${offset} after failed attempts`);
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
if (result.objects.length === 0) {
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
allPackages.push(...result.objects);
|
|
148
|
+
if (progressCallback) {
|
|
149
|
+
progressCallback(`Fetching npm packages`, allPackages.length, Math.min(result.total, targetLimit));
|
|
150
|
+
}
|
|
151
|
+
logger_1.logger.debug(`Fetched ${result.objects.length} packages (total: ${allPackages.length}/${Math.min(result.total, targetLimit)})`);
|
|
152
|
+
offset += size;
|
|
153
|
+
await this.sleep(FETCH_CONFIG.RATE_LIMIT_DELAY);
|
|
154
|
+
}
|
|
155
|
+
allPackages.sort((a, b) => b.score.detail.popularity - a.score.detail.popularity);
|
|
156
|
+
logger_1.logger.info(`Fetched ${allPackages.length} community node packages from npm`);
|
|
157
|
+
return allPackages.slice(0, limit);
|
|
158
|
+
}
|
|
159
|
+
async fetchPackageJson(packageName, version) {
|
|
160
|
+
if (!this.validatePackageName(packageName)) {
|
|
161
|
+
logger_1.logger.warn(`Invalid package name rejected: ${packageName}`);
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
const url = version
|
|
165
|
+
? `${this.npmRegistryUrl}/${encodeURIComponent(packageName)}/${encodeURIComponent(version)}`
|
|
166
|
+
: `${this.npmRegistryUrl}/${encodeURIComponent(packageName)}/latest`;
|
|
167
|
+
return this.retryWithBackoff(async () => {
|
|
168
|
+
const response = await axios_1.default.get(url, { timeout: FETCH_CONFIG.NPM_REGISTRY_TIMEOUT });
|
|
169
|
+
return response.data;
|
|
170
|
+
}, `Fetching package.json for ${packageName}${version ? `@${version}` : ''}`);
|
|
171
|
+
}
|
|
172
|
+
async getPackageTarballUrl(packageName, version) {
|
|
173
|
+
const packageJson = await this.fetchPackageJson(packageName, version);
|
|
174
|
+
if (!packageJson) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
if (packageJson.dist?.tarball) {
|
|
178
|
+
return packageJson.dist.tarball;
|
|
179
|
+
}
|
|
180
|
+
const latestVersion = packageJson['dist-tags']?.latest;
|
|
181
|
+
if (latestVersion && packageJson.versions?.[latestVersion]?.dist?.tarball) {
|
|
182
|
+
return packageJson.versions[latestVersion].dist.tarball;
|
|
183
|
+
}
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
async fetchPackageWithReadme(packageName) {
|
|
187
|
+
if (!this.validatePackageName(packageName)) {
|
|
188
|
+
logger_1.logger.warn(`Invalid package name rejected for README fetch: ${packageName}`);
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
const url = `${this.npmRegistryUrl}/${encodeURIComponent(packageName)}`;
|
|
192
|
+
return this.retryWithBackoff(async () => {
|
|
193
|
+
const response = await axios_1.default.get(url, {
|
|
194
|
+
timeout: FETCH_CONFIG.NPM_REGISTRY_TIMEOUT,
|
|
195
|
+
});
|
|
196
|
+
return response.data;
|
|
197
|
+
}, `Fetching package with README for ${packageName}`);
|
|
198
|
+
}
|
|
199
|
+
async fetchReadmesBatch(packageNames, progressCallback, concurrency = 1) {
|
|
200
|
+
const results = new Map();
|
|
201
|
+
const total = packageNames.length;
|
|
202
|
+
logger_1.logger.info(`Fetching READMEs for ${total} packages (concurrency: ${concurrency})...`);
|
|
203
|
+
for (let i = 0; i < packageNames.length; i += concurrency) {
|
|
204
|
+
const batch = packageNames.slice(i, i + concurrency);
|
|
205
|
+
const batchPromises = batch.map(async (packageName) => {
|
|
206
|
+
const data = await this.fetchPackageWithReadme(packageName);
|
|
207
|
+
return { packageName, readme: data?.readme || null };
|
|
208
|
+
});
|
|
209
|
+
const batchResults = await Promise.all(batchPromises);
|
|
210
|
+
for (const { packageName, readme } of batchResults) {
|
|
211
|
+
results.set(packageName, readme);
|
|
212
|
+
}
|
|
213
|
+
if (progressCallback) {
|
|
214
|
+
progressCallback('Fetching READMEs', Math.min(i + concurrency, total), total);
|
|
215
|
+
}
|
|
216
|
+
if (i + concurrency < packageNames.length) {
|
|
217
|
+
await this.sleep(FETCH_CONFIG.RATE_LIMIT_DELAY);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
const foundCount = Array.from(results.values()).filter((v) => v !== null).length;
|
|
221
|
+
logger_1.logger.info(`Fetched ${foundCount}/${total} READMEs successfully`);
|
|
222
|
+
return results;
|
|
223
|
+
}
|
|
224
|
+
async getPackageDownloads(packageName, period = 'last-week') {
|
|
225
|
+
if (!this.validatePackageName(packageName)) {
|
|
226
|
+
logger_1.logger.warn(`Invalid package name rejected for downloads: ${packageName}`);
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
return this.retryWithBackoff(async () => {
|
|
230
|
+
const response = await axios_1.default.get(`https://api.npmjs.org/downloads/point/${period}/${encodeURIComponent(packageName)}`, { timeout: FETCH_CONFIG.NPM_DOWNLOADS_TIMEOUT });
|
|
231
|
+
return response.data.downloads;
|
|
232
|
+
}, `Fetching downloads for ${packageName}`);
|
|
233
|
+
}
|
|
234
|
+
sleep(ms) {
|
|
235
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.CommunityNodeFetcher = CommunityNodeFetcher;
|
|
239
|
+
//# sourceMappingURL=community-node-fetcher.js.map
|