n8n-mcp 2.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +79 -0
- package/LICENSE +21 -0
- package/README.md +670 -0
- package/data/nodes.db +0 -0
- package/dist/config/n8n-api.d.ts +9 -0
- package/dist/config/n8n-api.d.ts.map +1 -0
- package/dist/config/n8n-api.js +41 -0
- package/dist/config/n8n-api.js.map +1 -0
- package/dist/database/database-adapter.d.ts +32 -0
- package/dist/database/database-adapter.d.ts.map +1 -0
- package/dist/database/database-adapter.js +328 -0
- package/dist/database/database-adapter.js.map +1 -0
- package/dist/database/node-repository.d.ts +11 -0
- package/dist/database/node-repository.d.ts.map +1 -0
- package/dist/database/node-repository.js +67 -0
- package/dist/database/node-repository.js.map +1 -0
- package/dist/http-server-single-session.d.ts +21 -0
- package/dist/http-server-single-session.d.ts.map +1 -0
- package/dist/http-server-single-session.js +279 -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 +342 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -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 +6 -0
- package/dist/mappers/docs-mapper.d.ts.map +1 -0
- package/dist/mappers/docs-mapper.js +59 -0
- package/dist/mappers/docs-mapper.js.map +1 -0
- package/dist/mcp/absolute-minimal.d.ts +4 -0
- package/dist/mcp/absolute-minimal.d.ts.map +1 -0
- package/dist/mcp/absolute-minimal.js +34 -0
- package/dist/mcp/absolute-minimal.js.map +1 -0
- package/dist/mcp/fixed-protocol.d.ts +17 -0
- package/dist/mcp/fixed-protocol.d.ts.map +1 -0
- package/dist/mcp/fixed-protocol.js +162 -0
- package/dist/mcp/fixed-protocol.js.map +1 -0
- package/dist/mcp/handlers-documentation.d.ts +18 -0
- package/dist/mcp/handlers-documentation.d.ts.map +1 -0
- package/dist/mcp/handlers-documentation.js +113 -0
- package/dist/mcp/handlers-documentation.js.map +1 -0
- package/dist/mcp/handlers-n8n-manager.d.ts +21 -0
- package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -0
- package/dist/mcp/handlers-n8n-manager.js +827 -0
- package/dist/mcp/handlers-n8n-manager.js.map +1 -0
- package/dist/mcp/handlers-workflow-diff.d.ts +3 -0
- package/dist/mcp/handlers-workflow-diff.d.ts.map +1 -0
- package/dist/mcp/handlers-workflow-diff.js +125 -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 +106 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/minimal-test.d.ts +3 -0
- package/dist/mcp/minimal-test.d.ts.map +1 -0
- package/dist/mcp/minimal-test.js +83 -0
- package/dist/mcp/minimal-test.js.map +1 -0
- package/dist/mcp/server.d.ts +42 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +1258 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/stderr-test.d.ts +2 -0
- package/dist/mcp/stderr-test.d.ts.map +1 -0
- package/dist/mcp/stderr-test.js +32 -0
- package/dist/mcp/stderr-test.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 +52 -0
- package/dist/mcp/stdio-wrapper.js.map +1 -0
- package/dist/mcp/tools-documentation.d.ts +34 -0
- package/dist/mcp/tools-documentation.d.ts.map +1 -0
- package/dist/mcp/tools-documentation.js +609 -0
- package/dist/mcp/tools-documentation.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 +496 -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 +405 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/ultra-minimal.d.ts +8 -0
- package/dist/mcp/ultra-minimal.d.ts.map +1 -0
- package/dist/mcp/ultra-minimal.js +93 -0
- package/dist/mcp/ultra-minimal.js.map +1 -0
- package/dist/mcp/working-test.d.ts +3 -0
- package/dist/mcp/working-test.d.ts.map +1 -0
- package/dist/mcp/working-test.js +48 -0
- package/dist/mcp/working-test.js.map +1 -0
- package/dist/mcp/wrapper.sh +28 -0
- package/dist/mcp-engine.d.ts +32 -0
- package/dist/mcp-engine.d.ts.map +1 -0
- package/dist/mcp-engine.js +63 -0
- package/dist/mcp-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 +30 -0
- package/dist/parsers/node-parser.d.ts.map +1 -0
- package/dist/parsers/node-parser.js +152 -0
- package/dist/parsers/node-parser.js.map +1 -0
- package/dist/parsers/property-extractor.d.ts +10 -0
- package/dist/parsers/property-extractor.d.ts.map +1 -0
- package/dist/parsers/property-extractor.js +155 -0
- package/dist/parsers/property-extractor.js.map +1 -0
- package/dist/parsers/simple-parser.d.ts +24 -0
- package/dist/parsers/simple-parser.d.ts.map +1 -0
- package/dist/parsers/simple-parser.js +160 -0
- package/dist/parsers/simple-parser.js.map +1 -0
- package/dist/scripts/debug-n8n-auth.d.ts +3 -0
- package/dist/scripts/debug-n8n-auth.d.ts.map +1 -0
- package/dist/scripts/debug-n8n-auth.js +97 -0
- package/dist/scripts/debug-n8n-auth.js.map +1 -0
- package/dist/scripts/debug-node.d.ts +3 -0
- package/dist/scripts/debug-node.d.ts.map +1 -0
- package/dist/scripts/debug-node.js +59 -0
- package/dist/scripts/debug-node.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-templates-robust.d.ts +4 -0
- package/dist/scripts/fetch-templates-robust.d.ts.map +1 -0
- package/dist/scripts/fetch-templates-robust.js +126 -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 +94 -0
- package/dist/scripts/fetch-templates.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 +163 -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 +56 -0
- package/dist/scripts/sanitize-templates.js.map +1 -0
- package/dist/scripts/test-ai-workflow-validation.d.ts +3 -0
- package/dist/scripts/test-ai-workflow-validation.d.ts.map +1 -0
- package/dist/scripts/test-ai-workflow-validation.js +191 -0
- package/dist/scripts/test-ai-workflow-validation.js.map +1 -0
- package/dist/scripts/test-api-headers.d.ts +3 -0
- package/dist/scripts/test-api-headers.d.ts.map +1 -0
- package/dist/scripts/test-api-headers.js +35 -0
- package/dist/scripts/test-api-headers.js.map +1 -0
- package/dist/scripts/test-docker-config-simulation.d.ts +3 -0
- package/dist/scripts/test-docker-config-simulation.d.ts.map +1 -0
- package/dist/scripts/test-docker-config-simulation.js +74 -0
- package/dist/scripts/test-docker-config-simulation.js.map +1 -0
- package/dist/scripts/test-enhanced-validation.d.ts +3 -0
- package/dist/scripts/test-enhanced-validation.d.ts.map +1 -0
- package/dist/scripts/test-enhanced-validation.js +117 -0
- package/dist/scripts/test-enhanced-validation.js.map +1 -0
- package/dist/scripts/test-lazy-config.d.ts +3 -0
- package/dist/scripts/test-lazy-config.d.ts.map +1 -0
- package/dist/scripts/test-lazy-config.js +60 -0
- package/dist/scripts/test-lazy-config.js.map +1 -0
- package/dist/scripts/test-limited-results.d.ts +3 -0
- package/dist/scripts/test-limited-results.d.ts.map +1 -0
- package/dist/scripts/test-limited-results.js +76 -0
- package/dist/scripts/test-limited-results.js.map +1 -0
- package/dist/scripts/test-mcp-n8n-update-partial.d.ts +3 -0
- package/dist/scripts/test-mcp-n8n-update-partial.d.ts.map +1 -0
- package/dist/scripts/test-mcp-n8n-update-partial.js +138 -0
- package/dist/scripts/test-mcp-n8n-update-partial.js.map +1 -0
- package/dist/scripts/test-mcp-tools.d.ts +3 -0
- package/dist/scripts/test-mcp-tools.d.ts.map +1 -0
- package/dist/scripts/test-mcp-tools.js +36 -0
- package/dist/scripts/test-mcp-tools.js.map +1 -0
- package/dist/scripts/test-n8n-manager-integration.d.ts +3 -0
- package/dist/scripts/test-n8n-manager-integration.d.ts.map +1 -0
- package/dist/scripts/test-n8n-manager-integration.js +122 -0
- package/dist/scripts/test-n8n-manager-integration.js.map +1 -0
- package/dist/scripts/test-n8n-validate-workflow.d.ts +3 -0
- package/dist/scripts/test-n8n-validate-workflow.d.ts.map +1 -0
- package/dist/scripts/test-n8n-validate-workflow.js +125 -0
- package/dist/scripts/test-n8n-validate-workflow.js.map +1 -0
- package/dist/scripts/test-nodes.d.ts +3 -0
- package/dist/scripts/test-nodes.d.ts.map +1 -0
- package/dist/scripts/test-nodes.js +91 -0
- package/dist/scripts/test-nodes.js.map +1 -0
- package/dist/scripts/test-single-workflow.d.ts +3 -0
- package/dist/scripts/test-single-workflow.d.ts.map +1 -0
- package/dist/scripts/test-single-workflow.js +112 -0
- package/dist/scripts/test-single-workflow.js.map +1 -0
- package/dist/scripts/test-template-validation.d.ts +3 -0
- package/dist/scripts/test-template-validation.d.ts.map +1 -0
- package/dist/scripts/test-template-validation.js +142 -0
- package/dist/scripts/test-template-validation.js.map +1 -0
- package/dist/scripts/test-templates.d.ts +4 -0
- package/dist/scripts/test-templates.d.ts.map +1 -0
- package/dist/scripts/test-templates.js +99 -0
- package/dist/scripts/test-templates.js.map +1 -0
- package/dist/scripts/test-transactional-diff.d.ts +2 -0
- package/dist/scripts/test-transactional-diff.d.ts.map +1 -0
- package/dist/scripts/test-transactional-diff.js +240 -0
- package/dist/scripts/test-transactional-diff.js.map +1 -0
- package/dist/scripts/test-update-partial-debug.d.ts +3 -0
- package/dist/scripts/test-update-partial-debug.d.ts.map +1 -0
- package/dist/scripts/test-update-partial-debug.js +92 -0
- package/dist/scripts/test-update-partial-debug.js.map +1 -0
- package/dist/scripts/test-version-extraction.d.ts +2 -0
- package/dist/scripts/test-version-extraction.d.ts.map +1 -0
- package/dist/scripts/test-version-extraction.js +74 -0
- package/dist/scripts/test-version-extraction.js.map +1 -0
- package/dist/scripts/test-workflow-diff.d.ts +3 -0
- package/dist/scripts/test-workflow-diff.d.ts.map +1 -0
- package/dist/scripts/test-workflow-diff.js +328 -0
- package/dist/scripts/test-workflow-diff.js.map +1 -0
- package/dist/scripts/test-workflow-validation.d.ts +3 -0
- package/dist/scripts/test-workflow-validation.d.ts.map +1 -0
- package/dist/scripts/test-workflow-validation.js +238 -0
- package/dist/scripts/test-workflow-validation.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/config-validator.d.ts +39 -0
- package/dist/services/config-validator.d.ts.map +1 -0
- package/dist/services/config-validator.js +376 -0
- package/dist/services/config-validator.js.map +1 -0
- package/dist/services/enhanced-config-validator.d.ts +38 -0
- package/dist/services/enhanced-config-validator.d.ts.map +1 -0
- package/dist/services/enhanced-config-validator.js +300 -0
- package/dist/services/enhanced-config-validator.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 +556 -0
- package/dist/services/example-generator.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 +163 -0
- package/dist/services/expression-validator.js.map +1 -0
- package/dist/services/n8n-api-client.d.ts +39 -0
- package/dist/services/n8n-api-client.d.ts.map +1 -0
- package/dist/services/n8n-api-client.js +326 -0
- package/dist/services/n8n-api-client.js.map +1 -0
- package/dist/services/n8n-validation.d.ts +127 -0
- package/dist/services/n8n-validation.d.ts.map +1 -0
- package/dist/services/n8n-validation.js +238 -0
- package/dist/services/n8n-validation.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-specific-validators.d.ts +28 -0
- package/dist/services/node-specific-validators.d.ts.map +1 -0
- package/dist/services/node-specific-validators.js +666 -0
- package/dist/services/node-specific-validators.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 +39 -0
- package/dist/services/property-filter.d.ts.map +1 -0
- package/dist/services/property-filter.js +362 -0
- package/dist/services/property-filter.js.map +1 -0
- package/dist/services/task-templates.d.ts +26 -0
- package/dist/services/task-templates.d.ts.map +1 -0
- package/dist/services/task-templates.js +555 -0
- package/dist/services/task-templates.js.map +1 -0
- package/dist/services/workflow-diff-engine.d.ts +31 -0
- package/dist/services/workflow-diff-engine.d.ts.map +1 -0
- package/dist/services/workflow-diff-engine.js +478 -0
- package/dist/services/workflow-diff-engine.js.map +1 -0
- package/dist/services/workflow-validator.d.ts +87 -0
- package/dist/services/workflow-validator.d.ts.map +1 -0
- package/dist/services/workflow-validator.js +656 -0
- package/dist/services/workflow-validator.js.map +1 -0
- package/dist/templates/template-fetcher.d.ts +41 -0
- package/dist/templates/template-fetcher.d.ts.map +1 -0
- package/dist/templates/template-fetcher.js +94 -0
- package/dist/templates/template-fetcher.js.map +1 -0
- package/dist/templates/template-repository.d.ts +34 -0
- package/dist/templates/template-repository.d.ts.map +1 -0
- package/dist/templates/template-repository.js +121 -0
- package/dist/templates/template-repository.js.map +1 -0
- package/dist/templates/template-service.d.ts +31 -0
- package/dist/templates/template-service.d.ts.map +1 -0
- package/dist/templates/template-service.js +131 -0
- package/dist/templates/template-service.js.map +1 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/n8n-api.d.ts +241 -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/workflow-diff.d.ts +113 -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 +12 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +66 -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/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 +73 -0
- package/dist/utils/enhanced-documentation-fetcher.d.ts.map +1 -0
- package/dist/utils/enhanced-documentation-fetcher.js +397 -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/logger.d.ts +32 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +97 -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 +25 -0
- package/dist/utils/n8n-errors.d.ts.map +1 -0
- package/dist/utils/n8n-errors.js +129 -0
- package/dist/utils/n8n-errors.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/simple-cache.d.ts +8 -0
- package/dist/utils/simple-cache.d.ts.map +1 -0
- package/dist/utils/simple-cache.js +34 -0
- package/dist/utils/simple-cache.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 +108 -0
- package/dist/utils/template-sanitizer.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 +100 -0
- package/package.runtime.json +19 -0
|
@@ -0,0 +1,518 @@
|
|
|
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.NodeDocumentationService = void 0;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const logger_1 = require("../utils/logger");
|
|
10
|
+
const node_source_extractor_1 = require("../utils/node-source-extractor");
|
|
11
|
+
const enhanced_documentation_fetcher_1 = require("../utils/enhanced-documentation-fetcher");
|
|
12
|
+
const example_generator_1 = require("../utils/example-generator");
|
|
13
|
+
const database_adapter_1 = require("../database/database-adapter");
|
|
14
|
+
class NodeDocumentationService {
|
|
15
|
+
constructor(dbPath) {
|
|
16
|
+
this.db = null;
|
|
17
|
+
this.dbPath = dbPath || process.env.NODE_DB_PATH || this.findDatabasePath();
|
|
18
|
+
const dbDir = path_1.default.dirname(this.dbPath);
|
|
19
|
+
if (!require('fs').existsSync(dbDir)) {
|
|
20
|
+
require('fs').mkdirSync(dbDir, { recursive: true });
|
|
21
|
+
}
|
|
22
|
+
this.extractor = new node_source_extractor_1.NodeSourceExtractor();
|
|
23
|
+
this.docsFetcher = new enhanced_documentation_fetcher_1.EnhancedDocumentationFetcher();
|
|
24
|
+
this.initialized = this.initializeAsync();
|
|
25
|
+
}
|
|
26
|
+
findDatabasePath() {
|
|
27
|
+
const fs = require('fs');
|
|
28
|
+
const localPath = path_1.default.join(process.cwd(), 'data', 'nodes.db');
|
|
29
|
+
if (fs.existsSync(localPath)) {
|
|
30
|
+
return localPath;
|
|
31
|
+
}
|
|
32
|
+
const packagePath = path_1.default.join(__dirname, '..', '..', 'data', 'nodes.db');
|
|
33
|
+
if (fs.existsSync(packagePath)) {
|
|
34
|
+
return packagePath;
|
|
35
|
+
}
|
|
36
|
+
const globalPath = path_1.default.join(__dirname, '..', '..', '..', 'data', 'nodes.db');
|
|
37
|
+
if (fs.existsSync(globalPath)) {
|
|
38
|
+
return globalPath;
|
|
39
|
+
}
|
|
40
|
+
return localPath;
|
|
41
|
+
}
|
|
42
|
+
async initializeAsync() {
|
|
43
|
+
try {
|
|
44
|
+
this.db = await (0, database_adapter_1.createDatabaseAdapter)(this.dbPath);
|
|
45
|
+
this.initializeDatabase();
|
|
46
|
+
logger_1.logger.info('Node Documentation Service initialized');
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
logger_1.logger.error('Failed to initialize database adapter', error);
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async ensureInitialized() {
|
|
54
|
+
await this.initialized;
|
|
55
|
+
if (!this.db) {
|
|
56
|
+
throw new Error('Database not initialized');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
initializeDatabase() {
|
|
60
|
+
if (!this.db)
|
|
61
|
+
throw new Error('Database not initialized');
|
|
62
|
+
const schema = `
|
|
63
|
+
-- Main nodes table with documentation and examples
|
|
64
|
+
CREATE TABLE IF NOT EXISTS nodes (
|
|
65
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
66
|
+
node_type TEXT UNIQUE NOT NULL,
|
|
67
|
+
name TEXT NOT NULL,
|
|
68
|
+
display_name TEXT,
|
|
69
|
+
description TEXT,
|
|
70
|
+
category TEXT,
|
|
71
|
+
subcategory TEXT,
|
|
72
|
+
icon TEXT,
|
|
73
|
+
|
|
74
|
+
-- Source code
|
|
75
|
+
source_code TEXT NOT NULL,
|
|
76
|
+
credential_code TEXT,
|
|
77
|
+
code_hash TEXT NOT NULL,
|
|
78
|
+
code_length INTEGER NOT NULL,
|
|
79
|
+
|
|
80
|
+
-- Documentation
|
|
81
|
+
documentation_markdown TEXT,
|
|
82
|
+
documentation_url TEXT,
|
|
83
|
+
documentation_title TEXT,
|
|
84
|
+
|
|
85
|
+
-- Enhanced documentation fields (stored as JSON)
|
|
86
|
+
operations TEXT,
|
|
87
|
+
api_methods TEXT,
|
|
88
|
+
documentation_examples TEXT,
|
|
89
|
+
templates TEXT,
|
|
90
|
+
related_resources TEXT,
|
|
91
|
+
required_scopes TEXT,
|
|
92
|
+
|
|
93
|
+
-- Example usage
|
|
94
|
+
example_workflow TEXT,
|
|
95
|
+
example_parameters TEXT,
|
|
96
|
+
properties_schema TEXT,
|
|
97
|
+
|
|
98
|
+
-- Metadata
|
|
99
|
+
package_name TEXT NOT NULL,
|
|
100
|
+
version TEXT,
|
|
101
|
+
codex_data TEXT,
|
|
102
|
+
aliases TEXT,
|
|
103
|
+
|
|
104
|
+
-- Flags
|
|
105
|
+
has_credentials INTEGER DEFAULT 0,
|
|
106
|
+
is_trigger INTEGER DEFAULT 0,
|
|
107
|
+
is_webhook INTEGER DEFAULT 0,
|
|
108
|
+
|
|
109
|
+
-- Timestamps
|
|
110
|
+
extracted_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
111
|
+
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
-- Indexes
|
|
115
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_package_name ON nodes(package_name);
|
|
116
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_category ON nodes(category);
|
|
117
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_code_hash ON nodes(code_hash);
|
|
118
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_name ON nodes(name);
|
|
119
|
+
CREATE INDEX IF NOT EXISTS idx_nodes_is_trigger ON nodes(is_trigger);
|
|
120
|
+
|
|
121
|
+
-- Full Text Search
|
|
122
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5(
|
|
123
|
+
node_type,
|
|
124
|
+
name,
|
|
125
|
+
display_name,
|
|
126
|
+
description,
|
|
127
|
+
category,
|
|
128
|
+
documentation_markdown,
|
|
129
|
+
aliases,
|
|
130
|
+
content=nodes,
|
|
131
|
+
content_rowid=id
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
-- Triggers for FTS
|
|
135
|
+
CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes
|
|
136
|
+
BEGIN
|
|
137
|
+
INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, category, documentation_markdown, aliases)
|
|
138
|
+
VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.category, new.documentation_markdown, new.aliases);
|
|
139
|
+
END;
|
|
140
|
+
|
|
141
|
+
CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes
|
|
142
|
+
BEGIN
|
|
143
|
+
DELETE FROM nodes_fts WHERE rowid = old.id;
|
|
144
|
+
END;
|
|
145
|
+
|
|
146
|
+
CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes
|
|
147
|
+
BEGIN
|
|
148
|
+
DELETE FROM nodes_fts WHERE rowid = old.id;
|
|
149
|
+
INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, category, documentation_markdown, aliases)
|
|
150
|
+
VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.category, new.documentation_markdown, new.aliases);
|
|
151
|
+
END;
|
|
152
|
+
|
|
153
|
+
-- Documentation sources table
|
|
154
|
+
CREATE TABLE IF NOT EXISTS documentation_sources (
|
|
155
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
156
|
+
source TEXT NOT NULL,
|
|
157
|
+
commit_hash TEXT,
|
|
158
|
+
fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
-- Statistics table
|
|
162
|
+
CREATE TABLE IF NOT EXISTS extraction_stats (
|
|
163
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
164
|
+
total_nodes INTEGER NOT NULL,
|
|
165
|
+
nodes_with_docs INTEGER NOT NULL,
|
|
166
|
+
nodes_with_examples INTEGER NOT NULL,
|
|
167
|
+
total_code_size INTEGER NOT NULL,
|
|
168
|
+
total_docs_size INTEGER NOT NULL,
|
|
169
|
+
extraction_date DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
170
|
+
);
|
|
171
|
+
`;
|
|
172
|
+
this.db.exec(schema);
|
|
173
|
+
}
|
|
174
|
+
async storeNode(nodeInfo) {
|
|
175
|
+
await this.ensureInitialized();
|
|
176
|
+
const hash = this.generateHash(nodeInfo.sourceCode);
|
|
177
|
+
const stmt = this.db.prepare(`
|
|
178
|
+
INSERT OR REPLACE INTO nodes (
|
|
179
|
+
node_type, name, display_name, description, category, subcategory, icon,
|
|
180
|
+
source_code, credential_code, code_hash, code_length,
|
|
181
|
+
documentation_markdown, documentation_url, documentation_title,
|
|
182
|
+
operations, api_methods, documentation_examples, templates, related_resources, required_scopes,
|
|
183
|
+
example_workflow, example_parameters, properties_schema,
|
|
184
|
+
package_name, version, codex_data, aliases,
|
|
185
|
+
has_credentials, is_trigger, is_webhook
|
|
186
|
+
) VALUES (
|
|
187
|
+
@nodeType, @name, @displayName, @description, @category, @subcategory, @icon,
|
|
188
|
+
@sourceCode, @credentialCode, @hash, @codeLength,
|
|
189
|
+
@documentation, @documentationUrl, @documentationTitle,
|
|
190
|
+
@operations, @apiMethods, @documentationExamples, @templates, @relatedResources, @requiredScopes,
|
|
191
|
+
@exampleWorkflow, @exampleParameters, @propertiesSchema,
|
|
192
|
+
@packageName, @version, @codexData, @aliases,
|
|
193
|
+
@hasCredentials, @isTrigger, @isWebhook
|
|
194
|
+
)
|
|
195
|
+
`);
|
|
196
|
+
stmt.run({
|
|
197
|
+
nodeType: nodeInfo.nodeType,
|
|
198
|
+
name: nodeInfo.name,
|
|
199
|
+
displayName: nodeInfo.displayName || nodeInfo.name,
|
|
200
|
+
description: nodeInfo.description || '',
|
|
201
|
+
category: nodeInfo.category || 'Other',
|
|
202
|
+
subcategory: nodeInfo.subcategory || null,
|
|
203
|
+
icon: nodeInfo.icon || null,
|
|
204
|
+
sourceCode: nodeInfo.sourceCode,
|
|
205
|
+
credentialCode: nodeInfo.credentialCode || null,
|
|
206
|
+
hash,
|
|
207
|
+
codeLength: nodeInfo.sourceCode.length,
|
|
208
|
+
documentation: nodeInfo.documentationMarkdown || null,
|
|
209
|
+
documentationUrl: nodeInfo.documentationUrl || null,
|
|
210
|
+
documentationTitle: nodeInfo.documentationTitle || null,
|
|
211
|
+
operations: nodeInfo.operations ? JSON.stringify(nodeInfo.operations) : null,
|
|
212
|
+
apiMethods: nodeInfo.apiMethods ? JSON.stringify(nodeInfo.apiMethods) : null,
|
|
213
|
+
documentationExamples: nodeInfo.documentationExamples ? JSON.stringify(nodeInfo.documentationExamples) : null,
|
|
214
|
+
templates: nodeInfo.templates ? JSON.stringify(nodeInfo.templates) : null,
|
|
215
|
+
relatedResources: nodeInfo.relatedResources ? JSON.stringify(nodeInfo.relatedResources) : null,
|
|
216
|
+
requiredScopes: nodeInfo.requiredScopes ? JSON.stringify(nodeInfo.requiredScopes) : null,
|
|
217
|
+
exampleWorkflow: nodeInfo.exampleWorkflow ? JSON.stringify(nodeInfo.exampleWorkflow) : null,
|
|
218
|
+
exampleParameters: nodeInfo.exampleParameters ? JSON.stringify(nodeInfo.exampleParameters) : null,
|
|
219
|
+
propertiesSchema: nodeInfo.propertiesSchema ? JSON.stringify(nodeInfo.propertiesSchema) : null,
|
|
220
|
+
packageName: nodeInfo.packageName,
|
|
221
|
+
version: nodeInfo.version || null,
|
|
222
|
+
codexData: nodeInfo.codexData ? JSON.stringify(nodeInfo.codexData) : null,
|
|
223
|
+
aliases: nodeInfo.aliases ? JSON.stringify(nodeInfo.aliases) : null,
|
|
224
|
+
hasCredentials: nodeInfo.hasCredentials ? 1 : 0,
|
|
225
|
+
isTrigger: nodeInfo.isTrigger ? 1 : 0,
|
|
226
|
+
isWebhook: nodeInfo.isWebhook ? 1 : 0
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
async getNodeInfo(nodeType) {
|
|
230
|
+
await this.ensureInitialized();
|
|
231
|
+
const stmt = this.db.prepare(`
|
|
232
|
+
SELECT * FROM nodes WHERE node_type = ? OR name = ? COLLATE NOCASE
|
|
233
|
+
`);
|
|
234
|
+
const row = stmt.get(nodeType, nodeType);
|
|
235
|
+
if (!row)
|
|
236
|
+
return null;
|
|
237
|
+
return this.rowToNodeInfo(row);
|
|
238
|
+
}
|
|
239
|
+
async searchNodes(options) {
|
|
240
|
+
await this.ensureInitialized();
|
|
241
|
+
let query = 'SELECT * FROM nodes WHERE 1=1';
|
|
242
|
+
const params = {};
|
|
243
|
+
if (options.query) {
|
|
244
|
+
query += ` AND id IN (
|
|
245
|
+
SELECT rowid FROM nodes_fts
|
|
246
|
+
WHERE nodes_fts MATCH @query
|
|
247
|
+
)`;
|
|
248
|
+
params.query = options.query;
|
|
249
|
+
}
|
|
250
|
+
if (options.nodeType) {
|
|
251
|
+
query += ' AND node_type LIKE @nodeType';
|
|
252
|
+
params.nodeType = `%${options.nodeType}%`;
|
|
253
|
+
}
|
|
254
|
+
if (options.packageName) {
|
|
255
|
+
query += ' AND package_name = @packageName';
|
|
256
|
+
params.packageName = options.packageName;
|
|
257
|
+
}
|
|
258
|
+
if (options.category) {
|
|
259
|
+
query += ' AND category = @category';
|
|
260
|
+
params.category = options.category;
|
|
261
|
+
}
|
|
262
|
+
if (options.hasCredentials !== undefined) {
|
|
263
|
+
query += ' AND has_credentials = @hasCredentials';
|
|
264
|
+
params.hasCredentials = options.hasCredentials ? 1 : 0;
|
|
265
|
+
}
|
|
266
|
+
if (options.isTrigger !== undefined) {
|
|
267
|
+
query += ' AND is_trigger = @isTrigger';
|
|
268
|
+
params.isTrigger = options.isTrigger ? 1 : 0;
|
|
269
|
+
}
|
|
270
|
+
query += ' ORDER BY name LIMIT @limit';
|
|
271
|
+
params.limit = options.limit || 20;
|
|
272
|
+
const stmt = this.db.prepare(query);
|
|
273
|
+
const rows = stmt.all(params);
|
|
274
|
+
return rows.map(row => this.rowToNodeInfo(row));
|
|
275
|
+
}
|
|
276
|
+
async listNodes() {
|
|
277
|
+
await this.ensureInitialized();
|
|
278
|
+
const stmt = this.db.prepare('SELECT * FROM nodes ORDER BY name');
|
|
279
|
+
const rows = stmt.all();
|
|
280
|
+
return rows.map(row => this.rowToNodeInfo(row));
|
|
281
|
+
}
|
|
282
|
+
async rebuildDatabase() {
|
|
283
|
+
await this.ensureInitialized();
|
|
284
|
+
logger_1.logger.info('Starting complete database rebuild...');
|
|
285
|
+
this.db.exec('DELETE FROM nodes');
|
|
286
|
+
this.db.exec('DELETE FROM extraction_stats');
|
|
287
|
+
await this.docsFetcher.ensureDocsRepository();
|
|
288
|
+
const stats = {
|
|
289
|
+
total: 0,
|
|
290
|
+
successful: 0,
|
|
291
|
+
failed: 0,
|
|
292
|
+
errors: []
|
|
293
|
+
};
|
|
294
|
+
try {
|
|
295
|
+
const availableNodes = await this.extractor.listAvailableNodes();
|
|
296
|
+
stats.total = availableNodes.length;
|
|
297
|
+
logger_1.logger.info(`Found ${stats.total} nodes to process`);
|
|
298
|
+
const batchSize = 10;
|
|
299
|
+
for (let i = 0; i < availableNodes.length; i += batchSize) {
|
|
300
|
+
const batch = availableNodes.slice(i, i + batchSize);
|
|
301
|
+
await Promise.all(batch.map(async (node) => {
|
|
302
|
+
try {
|
|
303
|
+
const nodeType = `n8n-nodes-base.${node.name}`;
|
|
304
|
+
const nodeData = await this.extractor.extractNodeSource(nodeType);
|
|
305
|
+
if (!nodeData || !nodeData.sourceCode) {
|
|
306
|
+
throw new Error('Failed to extract node source');
|
|
307
|
+
}
|
|
308
|
+
const nodeDefinition = this.parseNodeDefinition(nodeData.sourceCode);
|
|
309
|
+
const enhancedDocs = await this.docsFetcher.getEnhancedNodeDocumentation(nodeType);
|
|
310
|
+
const example = example_generator_1.ExampleGenerator.generateFromNodeDefinition(nodeDefinition);
|
|
311
|
+
const nodeInfo = {
|
|
312
|
+
nodeType: nodeType,
|
|
313
|
+
name: node.name,
|
|
314
|
+
displayName: nodeDefinition.displayName || node.displayName || node.name,
|
|
315
|
+
description: nodeDefinition.description || node.description || '',
|
|
316
|
+
category: nodeDefinition.category || 'Other',
|
|
317
|
+
subcategory: nodeDefinition.subcategory,
|
|
318
|
+
icon: nodeDefinition.icon,
|
|
319
|
+
sourceCode: nodeData.sourceCode,
|
|
320
|
+
credentialCode: nodeData.credentialCode,
|
|
321
|
+
documentationMarkdown: enhancedDocs?.markdown,
|
|
322
|
+
documentationUrl: enhancedDocs?.url,
|
|
323
|
+
documentationTitle: enhancedDocs?.title,
|
|
324
|
+
operations: enhancedDocs?.operations,
|
|
325
|
+
apiMethods: enhancedDocs?.apiMethods,
|
|
326
|
+
documentationExamples: enhancedDocs?.examples,
|
|
327
|
+
templates: enhancedDocs?.templates,
|
|
328
|
+
relatedResources: enhancedDocs?.relatedResources,
|
|
329
|
+
requiredScopes: enhancedDocs?.requiredScopes,
|
|
330
|
+
exampleWorkflow: example,
|
|
331
|
+
exampleParameters: example.nodes[0]?.parameters,
|
|
332
|
+
propertiesSchema: nodeDefinition.properties,
|
|
333
|
+
packageName: nodeData.packageInfo?.name || 'n8n-nodes-base',
|
|
334
|
+
version: nodeDefinition.version,
|
|
335
|
+
codexData: nodeDefinition.codex,
|
|
336
|
+
aliases: nodeDefinition.alias,
|
|
337
|
+
hasCredentials: !!nodeData.credentialCode,
|
|
338
|
+
isTrigger: node.name.toLowerCase().includes('trigger'),
|
|
339
|
+
isWebhook: node.name.toLowerCase().includes('webhook')
|
|
340
|
+
};
|
|
341
|
+
await this.storeNode(nodeInfo);
|
|
342
|
+
stats.successful++;
|
|
343
|
+
logger_1.logger.debug(`Processed node: ${nodeType}`);
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
stats.failed++;
|
|
347
|
+
const errorMsg = `Failed to process ${node.name}: ${error instanceof Error ? error.message : String(error)}`;
|
|
348
|
+
stats.errors.push(errorMsg);
|
|
349
|
+
logger_1.logger.error(errorMsg);
|
|
350
|
+
}
|
|
351
|
+
}));
|
|
352
|
+
logger_1.logger.info(`Progress: ${Math.min(i + batchSize, availableNodes.length)}/${stats.total} nodes processed`);
|
|
353
|
+
}
|
|
354
|
+
this.storeStatistics(stats);
|
|
355
|
+
logger_1.logger.info(`Database rebuild complete: ${stats.successful} successful, ${stats.failed} failed`);
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
logger_1.logger.error('Database rebuild failed:', error);
|
|
359
|
+
throw error;
|
|
360
|
+
}
|
|
361
|
+
return stats;
|
|
362
|
+
}
|
|
363
|
+
parseNodeDefinition(sourceCode) {
|
|
364
|
+
const result = {
|
|
365
|
+
displayName: '',
|
|
366
|
+
description: '',
|
|
367
|
+
properties: [],
|
|
368
|
+
category: null,
|
|
369
|
+
subcategory: null,
|
|
370
|
+
icon: null,
|
|
371
|
+
version: null,
|
|
372
|
+
codex: null,
|
|
373
|
+
alias: null
|
|
374
|
+
};
|
|
375
|
+
try {
|
|
376
|
+
const displayNameMatch = sourceCode.match(/displayName\s*[:=]\s*['"`]([^'"`]+)['"`]/);
|
|
377
|
+
if (displayNameMatch) {
|
|
378
|
+
result.displayName = displayNameMatch[1];
|
|
379
|
+
}
|
|
380
|
+
const descriptionMatch = sourceCode.match(/description\s*[:=]\s*['"`]([^'"`]+)['"`]/);
|
|
381
|
+
if (descriptionMatch) {
|
|
382
|
+
result.description = descriptionMatch[1];
|
|
383
|
+
}
|
|
384
|
+
const iconMatch = sourceCode.match(/icon\s*[:=]\s*['"`]([^'"`]+)['"`]/);
|
|
385
|
+
if (iconMatch) {
|
|
386
|
+
result.icon = iconMatch[1];
|
|
387
|
+
}
|
|
388
|
+
const groupMatch = sourceCode.match(/group\s*[:=]\s*\[['"`]([^'"`]+)['"`]\]/);
|
|
389
|
+
if (groupMatch) {
|
|
390
|
+
result.category = groupMatch[1];
|
|
391
|
+
}
|
|
392
|
+
const versionMatch = sourceCode.match(/version\s*[:=]\s*(\d+)/);
|
|
393
|
+
if (versionMatch) {
|
|
394
|
+
result.version = parseInt(versionMatch[1]);
|
|
395
|
+
}
|
|
396
|
+
const subtitleMatch = sourceCode.match(/subtitle\s*[:=]\s*['"`]([^'"`]+)['"`]/);
|
|
397
|
+
if (subtitleMatch) {
|
|
398
|
+
result.subtitle = subtitleMatch[1];
|
|
399
|
+
}
|
|
400
|
+
const propsMatch = sourceCode.match(/properties\s*[:=]\s*(\[[\s\S]*?\])\s*[,}]/);
|
|
401
|
+
if (propsMatch) {
|
|
402
|
+
try {
|
|
403
|
+
result.properties = [];
|
|
404
|
+
}
|
|
405
|
+
catch (e) {
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
if (sourceCode.includes('implements.*ITrigger') ||
|
|
409
|
+
sourceCode.includes('polling:.*true') ||
|
|
410
|
+
sourceCode.includes('webhook:.*true') ||
|
|
411
|
+
result.displayName.toLowerCase().includes('trigger')) {
|
|
412
|
+
result.isTrigger = true;
|
|
413
|
+
}
|
|
414
|
+
if (sourceCode.includes('webhooks:') ||
|
|
415
|
+
sourceCode.includes('webhook:.*true') ||
|
|
416
|
+
result.displayName.toLowerCase().includes('webhook')) {
|
|
417
|
+
result.isWebhook = true;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
logger_1.logger.debug('Error parsing node definition:', error);
|
|
422
|
+
}
|
|
423
|
+
return result;
|
|
424
|
+
}
|
|
425
|
+
rowToNodeInfo(row) {
|
|
426
|
+
return {
|
|
427
|
+
nodeType: row.node_type,
|
|
428
|
+
name: row.name,
|
|
429
|
+
displayName: row.display_name,
|
|
430
|
+
description: row.description,
|
|
431
|
+
category: row.category,
|
|
432
|
+
subcategory: row.subcategory,
|
|
433
|
+
icon: row.icon,
|
|
434
|
+
sourceCode: row.source_code,
|
|
435
|
+
credentialCode: row.credential_code,
|
|
436
|
+
documentationMarkdown: row.documentation_markdown,
|
|
437
|
+
documentationUrl: row.documentation_url,
|
|
438
|
+
documentationTitle: row.documentation_title,
|
|
439
|
+
operations: row.operations ? JSON.parse(row.operations) : null,
|
|
440
|
+
apiMethods: row.api_methods ? JSON.parse(row.api_methods) : null,
|
|
441
|
+
documentationExamples: row.documentation_examples ? JSON.parse(row.documentation_examples) : null,
|
|
442
|
+
templates: row.templates ? JSON.parse(row.templates) : null,
|
|
443
|
+
relatedResources: row.related_resources ? JSON.parse(row.related_resources) : null,
|
|
444
|
+
requiredScopes: row.required_scopes ? JSON.parse(row.required_scopes) : null,
|
|
445
|
+
exampleWorkflow: row.example_workflow ? JSON.parse(row.example_workflow) : null,
|
|
446
|
+
exampleParameters: row.example_parameters ? JSON.parse(row.example_parameters) : null,
|
|
447
|
+
propertiesSchema: row.properties_schema ? JSON.parse(row.properties_schema) : null,
|
|
448
|
+
packageName: row.package_name,
|
|
449
|
+
version: row.version,
|
|
450
|
+
codexData: row.codex_data ? JSON.parse(row.codex_data) : null,
|
|
451
|
+
aliases: row.aliases ? JSON.parse(row.aliases) : null,
|
|
452
|
+
hasCredentials: row.has_credentials === 1,
|
|
453
|
+
isTrigger: row.is_trigger === 1,
|
|
454
|
+
isWebhook: row.is_webhook === 1
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
generateHash(content) {
|
|
458
|
+
return (0, crypto_1.createHash)('sha256').update(content).digest('hex');
|
|
459
|
+
}
|
|
460
|
+
storeStatistics(stats) {
|
|
461
|
+
if (!this.db)
|
|
462
|
+
throw new Error('Database not initialized');
|
|
463
|
+
const stmt = this.db.prepare(`
|
|
464
|
+
INSERT INTO extraction_stats (
|
|
465
|
+
total_nodes, nodes_with_docs, nodes_with_examples,
|
|
466
|
+
total_code_size, total_docs_size
|
|
467
|
+
) VALUES (?, ?, ?, ?, ?)
|
|
468
|
+
`);
|
|
469
|
+
const sizeStats = this.db.prepare(`
|
|
470
|
+
SELECT
|
|
471
|
+
COUNT(*) as total,
|
|
472
|
+
SUM(CASE WHEN documentation_markdown IS NOT NULL THEN 1 ELSE 0 END) as with_docs,
|
|
473
|
+
SUM(CASE WHEN example_workflow IS NOT NULL THEN 1 ELSE 0 END) as with_examples,
|
|
474
|
+
SUM(code_length) as code_size,
|
|
475
|
+
SUM(LENGTH(documentation_markdown)) as docs_size
|
|
476
|
+
FROM nodes
|
|
477
|
+
`).get();
|
|
478
|
+
stmt.run(stats.successful, sizeStats?.with_docs || 0, sizeStats?.with_examples || 0, sizeStats?.code_size || 0, sizeStats?.docs_size || 0);
|
|
479
|
+
}
|
|
480
|
+
async getStatistics() {
|
|
481
|
+
await this.ensureInitialized();
|
|
482
|
+
const stats = this.db.prepare(`
|
|
483
|
+
SELECT
|
|
484
|
+
COUNT(*) as totalNodes,
|
|
485
|
+
COUNT(DISTINCT package_name) as totalPackages,
|
|
486
|
+
SUM(code_length) as totalCodeSize,
|
|
487
|
+
SUM(CASE WHEN documentation_markdown IS NOT NULL THEN 1 ELSE 0 END) as nodesWithDocs,
|
|
488
|
+
SUM(CASE WHEN example_workflow IS NOT NULL THEN 1 ELSE 0 END) as nodesWithExamples,
|
|
489
|
+
SUM(has_credentials) as nodesWithCredentials,
|
|
490
|
+
SUM(is_trigger) as triggerNodes,
|
|
491
|
+
SUM(is_webhook) as webhookNodes
|
|
492
|
+
FROM nodes
|
|
493
|
+
`).get();
|
|
494
|
+
const packages = this.db.prepare(`
|
|
495
|
+
SELECT package_name as package, COUNT(*) as count
|
|
496
|
+
FROM nodes
|
|
497
|
+
GROUP BY package_name
|
|
498
|
+
ORDER BY count DESC
|
|
499
|
+
`).all();
|
|
500
|
+
return {
|
|
501
|
+
totalNodes: stats?.totalNodes || 0,
|
|
502
|
+
totalPackages: stats?.totalPackages || 0,
|
|
503
|
+
totalCodeSize: stats?.totalCodeSize || 0,
|
|
504
|
+
nodesWithDocs: stats?.nodesWithDocs || 0,
|
|
505
|
+
nodesWithExamples: stats?.nodesWithExamples || 0,
|
|
506
|
+
nodesWithCredentials: stats?.nodesWithCredentials || 0,
|
|
507
|
+
triggerNodes: stats?.triggerNodes || 0,
|
|
508
|
+
webhookNodes: stats?.webhookNodes || 0,
|
|
509
|
+
packageDistribution: packages
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
async close() {
|
|
513
|
+
await this.ensureInitialized();
|
|
514
|
+
this.db.close();
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
exports.NodeDocumentationService = NodeDocumentationService;
|
|
518
|
+
//# sourceMappingURL=node-documentation-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-documentation-service.js","sourceRoot":"","sources":["../../src/services/node-documentation-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ValidationError, ValidationWarning } from './config-validator';
|
|
2
|
+
export interface NodeValidationContext {
|
|
3
|
+
config: Record<string, any>;
|
|
4
|
+
errors: ValidationError[];
|
|
5
|
+
warnings: ValidationWarning[];
|
|
6
|
+
suggestions: string[];
|
|
7
|
+
autofix: Record<string, any>;
|
|
8
|
+
}
|
|
9
|
+
export declare class NodeSpecificValidators {
|
|
10
|
+
static validateSlack(context: NodeValidationContext): void;
|
|
11
|
+
private static validateSlackSendMessage;
|
|
12
|
+
private static validateSlackUpdateMessage;
|
|
13
|
+
private static validateSlackDeleteMessage;
|
|
14
|
+
private static validateSlackCreateChannel;
|
|
15
|
+
static validateGoogleSheets(context: NodeValidationContext): void;
|
|
16
|
+
private static validateGoogleSheetsAppend;
|
|
17
|
+
private static validateGoogleSheetsRead;
|
|
18
|
+
private static validateGoogleSheetsUpdate;
|
|
19
|
+
private static validateGoogleSheetsDelete;
|
|
20
|
+
private static validateGoogleSheetsRange;
|
|
21
|
+
static validateOpenAI(context: NodeValidationContext): void;
|
|
22
|
+
static validateMongoDB(context: NodeValidationContext): void;
|
|
23
|
+
static validateWebhook(context: NodeValidationContext): void;
|
|
24
|
+
static validatePostgres(context: NodeValidationContext): void;
|
|
25
|
+
static validateMySQL(context: NodeValidationContext): void;
|
|
26
|
+
private static validateSQLQuery;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=node-specific-validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-specific-validators.d.ts","sourceRoot":"","sources":["../../src/services/node-specific-validators.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,qBAAa,sBAAsB;IAIjC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA6C1D,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAkDvC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAsBzC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA4BzC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA2CzC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAoCjE,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAwBzC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAkBvC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAsBzC,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA4BzC,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAwCxC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA+D3D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAoE5D,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAoF5D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA4F7D,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA0E1D,OAAO,CAAC,MAAM,CAAC,gBAAgB;CA8EhC"}
|