@machina.ai/openapi-contract-tester 2.1.0
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 +91 -0
- package/README.md +472 -0
- package/dist/ai-engine/assertion-generator.d.ts +48 -0
- package/dist/ai-engine/assertion-generator.d.ts.map +1 -0
- package/dist/ai-engine/assertion-generator.js +166 -0
- package/dist/ai-engine/assertion-generator.js.map +1 -0
- package/dist/ai-engine/context-data-generator.d.ts +38 -0
- package/dist/ai-engine/context-data-generator.d.ts.map +1 -0
- package/dist/ai-engine/context-data-generator.js +146 -0
- package/dist/ai-engine/context-data-generator.js.map +1 -0
- package/dist/ai-engine/dataflow-detector.d.ts +53 -0
- package/dist/ai-engine/dataflow-detector.d.ts.map +1 -0
- package/dist/ai-engine/dataflow-detector.js +217 -0
- package/dist/ai-engine/dataflow-detector.js.map +1 -0
- package/dist/ai-engine/dependency-detector.d.ts +52 -0
- package/dist/ai-engine/dependency-detector.d.ts.map +1 -0
- package/dist/ai-engine/dependency-detector.js +241 -0
- package/dist/ai-engine/dependency-detector.js.map +1 -0
- package/dist/ai-engine/edge-case-suggester.d.ts +63 -0
- package/dist/ai-engine/edge-case-suggester.d.ts.map +1 -0
- package/dist/ai-engine/edge-case-suggester.js +177 -0
- package/dist/ai-engine/edge-case-suggester.js.map +1 -0
- package/dist/ai-engine/index.d.ts +13 -0
- package/dist/ai-engine/index.d.ts.map +1 -0
- package/dist/ai-engine/index.js +13 -0
- package/dist/ai-engine/index.js.map +1 -0
- package/dist/analyzers/ai-failure-analyzer.d.ts +41 -0
- package/dist/analyzers/ai-failure-analyzer.d.ts.map +1 -0
- package/dist/analyzers/ai-failure-analyzer.js +220 -0
- package/dist/analyzers/ai-failure-analyzer.js.map +1 -0
- package/dist/analyzers/comparison-utils.d.ts +31 -0
- package/dist/analyzers/comparison-utils.d.ts.map +1 -0
- package/dist/analyzers/comparison-utils.js +85 -0
- package/dist/analyzers/comparison-utils.js.map +1 -0
- package/dist/analyzers/context-analyzer.d.ts +49 -0
- package/dist/analyzers/context-analyzer.d.ts.map +1 -0
- package/dist/analyzers/context-analyzer.js +292 -0
- package/dist/analyzers/context-analyzer.js.map +1 -0
- package/dist/analyzers/dependency-analyzer.d.ts +44 -0
- package/dist/analyzers/dependency-analyzer.d.ts.map +1 -0
- package/dist/analyzers/dependency-analyzer.js +313 -0
- package/dist/analyzers/dependency-analyzer.js.map +1 -0
- package/dist/analyzers/failure-analyzer.d.ts +122 -0
- package/dist/analyzers/failure-analyzer.d.ts.map +1 -0
- package/dist/analyzers/failure-analyzer.js +140 -0
- package/dist/analyzers/failure-analyzer.js.map +1 -0
- package/dist/analyzers/failure-detectors/index.d.ts +33 -0
- package/dist/analyzers/failure-detectors/index.d.ts.map +1 -0
- package/dist/analyzers/failure-detectors/index.js +164 -0
- package/dist/analyzers/failure-detectors/index.js.map +1 -0
- package/dist/analyzers/failure-discrepancy-correlator.d.ts +111 -0
- package/dist/analyzers/failure-discrepancy-correlator.d.ts.map +1 -0
- package/dist/analyzers/failure-discrepancy-correlator.js +202 -0
- package/dist/analyzers/failure-discrepancy-correlator.js.map +1 -0
- package/dist/analyzers/index.d.ts +10 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +10 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/semantic-matcher.d.ts +123 -0
- package/dist/analyzers/semantic-matcher.d.ts.map +1 -0
- package/dist/analyzers/semantic-matcher.js +297 -0
- package/dist/analyzers/semantic-matcher.js.map +1 -0
- package/dist/analyzers/source-comparator.d.ts +177 -0
- package/dist/analyzers/source-comparator.d.ts.map +1 -0
- package/dist/analyzers/source-comparator.js +225 -0
- package/dist/analyzers/source-comparator.js.map +1 -0
- package/dist/business-rules/business-rules-analyzer.d.ts +44 -0
- package/dist/business-rules/business-rules-analyzer.d.ts.map +1 -0
- package/dist/business-rules/business-rules-analyzer.js +363 -0
- package/dist/business-rules/business-rules-analyzer.js.map +1 -0
- package/dist/business-rules/business-rules-generator.d.ts +78 -0
- package/dist/business-rules/business-rules-generator.d.ts.map +1 -0
- package/dist/business-rules/business-rules-generator.js +357 -0
- package/dist/business-rules/business-rules-generator.js.map +1 -0
- package/dist/business-rules/extractors/rule-extractors.d.ts +50 -0
- package/dist/business-rules/extractors/rule-extractors.d.ts.map +1 -0
- package/dist/business-rules/extractors/rule-extractors.js +189 -0
- package/dist/business-rules/extractors/rule-extractors.js.map +1 -0
- package/dist/business-rules/value-generators.d.ts +70 -0
- package/dist/business-rules/value-generators.d.ts.map +1 -0
- package/dist/business-rules/value-generators.js +142 -0
- package/dist/business-rules/value-generators.js.map +1 -0
- package/dist/executor/auth-providers/auth-header-builder.d.ts +16 -0
- package/dist/executor/auth-providers/auth-header-builder.d.ts.map +1 -0
- package/dist/executor/auth-providers/auth-header-builder.js +47 -0
- package/dist/executor/auth-providers/auth-header-builder.js.map +1 -0
- package/dist/executor/auth-providers/oauth2-provider.d.ts +19 -0
- package/dist/executor/auth-providers/oauth2-provider.d.ts.map +1 -0
- package/dist/executor/auth-providers/oauth2-provider.js +114 -0
- package/dist/executor/auth-providers/oauth2-provider.js.map +1 -0
- package/dist/executor/http-client.d.ts +133 -0
- package/dist/executor/http-client.d.ts.map +1 -0
- package/dist/executor/http-client.js +172 -0
- package/dist/executor/http-client.js.map +1 -0
- package/dist/executor/http-request-builder.d.ts +69 -0
- package/dist/executor/http-request-builder.d.ts.map +1 -0
- package/dist/executor/http-request-builder.js +140 -0
- package/dist/executor/http-request-builder.js.map +1 -0
- package/dist/executor/http-response-parser.d.ts +28 -0
- package/dist/executor/http-response-parser.d.ts.map +1 -0
- package/dist/executor/http-response-parser.js +74 -0
- package/dist/executor/http-response-parser.js.map +1 -0
- package/dist/executor/response-handler.d.ts +66 -0
- package/dist/executor/response-handler.d.ts.map +1 -0
- package/dist/executor/response-handler.js +135 -0
- package/dist/executor/response-handler.js.map +1 -0
- package/dist/executor/result-processor.d.ts +27 -0
- package/dist/executor/result-processor.d.ts.map +1 -0
- package/dist/executor/result-processor.js +140 -0
- package/dist/executor/result-processor.js.map +1 -0
- package/dist/executor/result-utils.d.ts +21 -0
- package/dist/executor/result-utils.d.ts.map +1 -0
- package/dist/executor/result-utils.js +29 -0
- package/dist/executor/result-utils.js.map +1 -0
- package/dist/executor/test-executor.d.ts +49 -0
- package/dist/executor/test-executor.d.ts.map +1 -0
- package/dist/executor/test-executor.js +226 -0
- package/dist/executor/test-executor.js.map +1 -0
- package/dist/executor/test-runner.d.ts +85 -0
- package/dist/executor/test-runner.d.ts.map +1 -0
- package/dist/executor/test-runner.js +177 -0
- package/dist/executor/test-runner.js.map +1 -0
- package/dist/executor/token-detector/index.d.ts +7 -0
- package/dist/executor/token-detector/index.d.ts.map +1 -0
- package/dist/executor/token-detector/index.js +7 -0
- package/dist/executor/token-detector/index.js.map +1 -0
- package/dist/executor/token-detector/token-detector.d.ts +64 -0
- package/dist/executor/token-detector/token-detector.d.ts.map +1 -0
- package/dist/executor/token-detector/token-detector.js +140 -0
- package/dist/executor/token-detector/token-detector.js.map +1 -0
- package/dist/generators/business-rule-from-stories-generator.d.ts +30 -0
- package/dist/generators/business-rule-from-stories-generator.d.ts.map +1 -0
- package/dist/generators/business-rule-from-stories-generator.js +227 -0
- package/dist/generators/business-rule-from-stories-generator.js.map +1 -0
- package/dist/generators/data/ai-data-generator.d.ts +23 -0
- package/dist/generators/data/ai-data-generator.d.ts.map +1 -0
- package/dist/generators/data/ai-data-generator.js +41 -0
- package/dist/generators/data/ai-data-generator.js.map +1 -0
- package/dist/generators/data/base-generator.d.ts +121 -0
- package/dist/generators/data/base-generator.d.ts.map +1 -0
- package/dist/generators/data/base-generator.js +200 -0
- package/dist/generators/data/base-generator.js.map +1 -0
- package/dist/generators/data/heuristic-data-generator.d.ts +28 -0
- package/dist/generators/data/heuristic-data-generator.d.ts.map +1 -0
- package/dist/generators/data/heuristic-data-generator.js +49 -0
- package/dist/generators/data/heuristic-data-generator.js.map +1 -0
- package/dist/generators/data/index.d.ts +48 -0
- package/dist/generators/data/index.d.ts.map +1 -0
- package/dist/generators/data/index.js +201 -0
- package/dist/generators/data/index.js.map +1 -0
- package/dist/generators/data/schema-walker.d.ts +45 -0
- package/dist/generators/data/schema-walker.d.ts.map +1 -0
- package/dist/generators/data/schema-walker.js +103 -0
- package/dist/generators/data/schema-walker.js.map +1 -0
- package/dist/generators/data/type-strategies.d.ts +79 -0
- package/dist/generators/data/type-strategies.d.ts.map +1 -0
- package/dist/generators/data/type-strategies.js +394 -0
- package/dist/generators/data/type-strategies.js.map +1 -0
- package/dist/generators/data-generator.d.ts +11 -0
- package/dist/generators/data-generator.d.ts.map +1 -0
- package/dist/generators/data-generator.js +11 -0
- package/dist/generators/data-generator.js.map +1 -0
- package/dist/generators/edge-case-generator.d.ts +55 -0
- package/dist/generators/edge-case-generator.d.ts.map +1 -0
- package/dist/generators/edge-case-generator.js +327 -0
- package/dist/generators/edge-case-generator.js.map +1 -0
- package/dist/generators/edge-cases/boundary-analyzer.d.ts +26 -0
- package/dist/generators/edge-cases/boundary-analyzer.d.ts.map +1 -0
- package/dist/generators/edge-cases/boundary-analyzer.js +95 -0
- package/dist/generators/edge-cases/boundary-analyzer.js.map +1 -0
- package/dist/generators/error-case-generator.d.ts +11 -0
- package/dist/generators/error-case-generator.d.ts.map +1 -0
- package/dist/generators/error-case-generator.js +11 -0
- package/dist/generators/error-case-generator.js.map +1 -0
- package/dist/generators/errors/auth-error-strategy.d.ts +36 -0
- package/dist/generators/errors/auth-error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/auth-error-strategy.js +118 -0
- package/dist/generators/errors/auth-error-strategy.js.map +1 -0
- package/dist/generators/errors/business-error-strategy.d.ts +44 -0
- package/dist/generators/errors/business-error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/business-error-strategy.js +152 -0
- package/dist/generators/errors/business-error-strategy.js.map +1 -0
- package/dist/generators/errors/error-strategy-factory.d.ts +27 -0
- package/dist/generators/errors/error-strategy-factory.d.ts.map +1 -0
- package/dist/generators/errors/error-strategy-factory.js +47 -0
- package/dist/generators/errors/error-strategy-factory.js.map +1 -0
- package/dist/generators/errors/error-strategy.d.ts +62 -0
- package/dist/generators/errors/error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/error-strategy.js +69 -0
- package/dist/generators/errors/error-strategy.js.map +1 -0
- package/dist/generators/errors/index.d.ts +23 -0
- package/dist/generators/errors/index.d.ts.map +1 -0
- package/dist/generators/errors/index.js +73 -0
- package/dist/generators/errors/index.js.map +1 -0
- package/dist/generators/errors/validation-error-strategy.d.ts +25 -0
- package/dist/generators/errors/validation-error-strategy.d.ts.map +1 -0
- package/dist/generators/errors/validation-error-strategy.js +214 -0
- package/dist/generators/errors/validation-error-strategy.js.map +1 -0
- package/dist/generators/happy-path-generator.d.ts +93 -0
- package/dist/generators/happy-path-generator.d.ts.map +1 -0
- package/dist/generators/happy-path-generator.js +275 -0
- package/dist/generators/happy-path-generator.js.map +1 -0
- package/dist/generators/test-enricher.d.ts +44 -0
- package/dist/generators/test-enricher.d.ts.map +1 -0
- package/dist/generators/test-enricher.js +109 -0
- package/dist/generators/test-enricher.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/ai-cache.d.ts +123 -0
- package/dist/llm/ai-cache.d.ts.map +1 -0
- package/dist/llm/ai-cache.js +220 -0
- package/dist/llm/ai-cache.js.map +1 -0
- package/dist/llm/ai-client.d.ts +92 -0
- package/dist/llm/ai-client.d.ts.map +1 -0
- package/dist/llm/ai-client.js +386 -0
- package/dist/llm/ai-client.js.map +1 -0
- package/dist/llm/data-generator-ai.d.ts +84 -0
- package/dist/llm/data-generator-ai.d.ts.map +1 -0
- package/dist/llm/data-generator-ai.js +284 -0
- package/dist/llm/data-generator-ai.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/mcp/handlers/base-handler.d.ts +72 -0
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -0
- package/dist/mcp/handlers/base-handler.js +86 -0
- package/dist/mcp/handlers/base-handler.js.map +1 -0
- package/dist/mcp/handlers/compare-sources.d.ts +91 -0
- package/dist/mcp/handlers/compare-sources.d.ts.map +1 -0
- package/dist/mcp/handlers/compare-sources.js +182 -0
- package/dist/mcp/handlers/compare-sources.js.map +1 -0
- package/dist/mcp/handlers/export-results.d.ts +53 -0
- package/dist/mcp/handlers/export-results.d.ts.map +1 -0
- package/dist/mcp/handlers/export-results.js +132 -0
- package/dist/mcp/handlers/export-results.js.map +1 -0
- package/dist/mcp/handlers/export-to-postman.d.ts +65 -0
- package/dist/mcp/handlers/export-to-postman.d.ts.map +1 -0
- package/dist/mcp/handlers/export-to-postman.js +128 -0
- package/dist/mcp/handlers/export-to-postman.js.map +1 -0
- package/dist/mcp/handlers/generate-tests.d.ts +74 -0
- package/dist/mcp/handlers/generate-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/generate-tests.js +519 -0
- package/dist/mcp/handlers/generate-tests.js.map +1 -0
- package/dist/mcp/handlers/index.d.ts +13 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -0
- package/dist/mcp/handlers/index.js +12 -0
- package/dist/mcp/handlers/index.js.map +1 -0
- package/dist/mcp/handlers/run-tests.d.ts +89 -0
- package/dist/mcp/handlers/run-tests.d.ts.map +1 -0
- package/dist/mcp/handlers/run-tests.js +233 -0
- package/dist/mcp/handlers/run-tests.js.map +1 -0
- package/dist/mcp/handlers/types.d.ts +61 -0
- package/dist/mcp/handlers/types.d.ts.map +1 -0
- package/dist/mcp/handlers/types.js +9 -0
- package/dist/mcp/handlers/types.js.map +1 -0
- package/dist/mcp/server.d.ts +64 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +200 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/services/file-service.d.ts +66 -0
- package/dist/mcp/services/file-service.d.ts.map +1 -0
- package/dist/mcp/services/file-service.js +143 -0
- package/dist/mcp/services/file-service.js.map +1 -0
- package/dist/mcp/services/llm-service.d.ts +70 -0
- package/dist/mcp/services/llm-service.d.ts.map +1 -0
- package/dist/mcp/services/llm-service.js +189 -0
- package/dist/mcp/services/llm-service.js.map +1 -0
- package/dist/mcp/services/postman-service.d.ts +128 -0
- package/dist/mcp/services/postman-service.d.ts.map +1 -0
- package/dist/mcp/services/postman-service.js +266 -0
- package/dist/mcp/services/postman-service.js.map +1 -0
- package/dist/mcp/services/report-service.d.ts +81 -0
- package/dist/mcp/services/report-service.d.ts.map +1 -0
- package/dist/mcp/services/report-service.js +210 -0
- package/dist/mcp/services/report-service.js.map +1 -0
- package/dist/mcp/services/spec-service.d.ts +58 -0
- package/dist/mcp/services/spec-service.d.ts.map +1 -0
- package/dist/mcp/services/spec-service.js +140 -0
- package/dist/mcp/services/spec-service.js.map +1 -0
- package/dist/parsers/endpoint-extractor.d.ts +32 -0
- package/dist/parsers/endpoint-extractor.d.ts.map +1 -0
- package/dist/parsers/endpoint-extractor.js +160 -0
- package/dist/parsers/endpoint-extractor.js.map +1 -0
- package/dist/parsers/openapi-parser.d.ts +120 -0
- package/dist/parsers/openapi-parser.d.ts.map +1 -0
- package/dist/parsers/openapi-parser.js +257 -0
- package/dist/parsers/openapi-parser.js.map +1 -0
- package/dist/parsers/visitors/auth-visitor.d.ts +28 -0
- package/dist/parsers/visitors/auth-visitor.d.ts.map +1 -0
- package/dist/parsers/visitors/auth-visitor.js +116 -0
- package/dist/parsers/visitors/auth-visitor.js.map +1 -0
- package/dist/prd/index.d.ts +10 -0
- package/dist/prd/index.d.ts.map +1 -0
- package/dist/prd/index.js +10 -0
- package/dist/prd/index.js.map +1 -0
- package/dist/prd/prd-reader.d.ts +124 -0
- package/dist/prd/prd-reader.d.ts.map +1 -0
- package/dist/prd/prd-reader.js +308 -0
- package/dist/prd/prd-reader.js.map +1 -0
- package/dist/prd/prd-storage.d.ts +232 -0
- package/dist/prd/prd-storage.d.ts.map +1 -0
- package/dist/prd/prd-storage.js +129 -0
- package/dist/prd/prd-storage.js.map +1 -0
- package/dist/repairers/test-auto-repairer.d.ts +61 -0
- package/dist/repairers/test-auto-repairer.d.ts.map +1 -0
- package/dist/repairers/test-auto-repairer.js +213 -0
- package/dist/repairers/test-auto-repairer.js.map +1 -0
- package/dist/reporters/comparison-report-generator.d.ts +58 -0
- package/dist/reporters/comparison-report-generator.d.ts.map +1 -0
- package/dist/reporters/comparison-report-generator.js +369 -0
- package/dist/reporters/comparison-report-generator.js.map +1 -0
- package/dist/reporters/gherkin-formatter.d.ts +34 -0
- package/dist/reporters/gherkin-formatter.d.ts.map +1 -0
- package/dist/reporters/gherkin-formatter.js +231 -0
- package/dist/reporters/gherkin-formatter.js.map +1 -0
- package/dist/reporters/html-report-generator.d.ts +174 -0
- package/dist/reporters/html-report-generator.d.ts.map +1 -0
- package/dist/reporters/html-report-generator.js +194 -0
- package/dist/reporters/html-report-generator.js.map +1 -0
- package/dist/reporters/report-charts.d.ts +23 -0
- package/dist/reporters/report-charts.d.ts.map +1 -0
- package/dist/reporters/report-charts.js +182 -0
- package/dist/reporters/report-charts.js.map +1 -0
- package/dist/reporters/report-sections.d.ts +34 -0
- package/dist/reporters/report-sections.d.ts.map +1 -0
- package/dist/reporters/report-sections.js +481 -0
- package/dist/reporters/report-sections.js.map +1 -0
- package/dist/reporters/report-styles.d.ts +12 -0
- package/dist/reporters/report-styles.d.ts.map +1 -0
- package/dist/reporters/report-styles.js +412 -0
- package/dist/reporters/report-styles.js.map +1 -0
- package/dist/reporters/report-test-details.d.ts +56 -0
- package/dist/reporters/report-test-details.d.ts.map +1 -0
- package/dist/reporters/report-test-details.js +328 -0
- package/dist/reporters/report-test-details.js.map +1 -0
- package/dist/reporters/report-utils.d.ts +40 -0
- package/dist/reporters/report-utils.d.ts.map +1 -0
- package/dist/reporters/report-utils.js +163 -0
- package/dist/reporters/report-utils.js.map +1 -0
- package/dist/types/ai-config.d.ts +63 -0
- package/dist/types/ai-config.d.ts.map +1 -0
- package/dist/types/ai-config.js +79 -0
- package/dist/types/ai-config.js.map +1 -0
- package/dist/types/business-rules.d.ts +235 -0
- package/dist/types/business-rules.d.ts.map +1 -0
- package/dist/types/business-rules.js +6 -0
- package/dist/types/business-rules.js.map +1 -0
- package/dist/types/config.d.ts +106 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/core.d.ts +72 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +6 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/openapi.d.ts +139 -0
- package/dist/types/openapi.d.ts.map +1 -0
- package/dist/types/openapi.js +6 -0
- package/dist/types/openapi.js.map +1 -0
- package/dist/types/pact.d.ts +101 -0
- package/dist/types/pact.d.ts.map +1 -0
- package/dist/types/pact.js +6 -0
- package/dist/types/pact.js.map +1 -0
- package/dist/types/reporting.d.ts +93 -0
- package/dist/types/reporting.d.ts.map +1 -0
- package/dist/types/reporting.js +6 -0
- package/dist/types/reporting.js.map +1 -0
- package/dist/types/test-case.d.ts +233 -0
- package/dist/types/test-case.d.ts.map +1 -0
- package/dist/types/test-case.js +6 -0
- package/dist/types/test-case.js.map +1 -0
- package/dist/types/test-execution.d.ts +80 -0
- package/dist/types/test-execution.d.ts.map +1 -0
- package/dist/types/test-execution.js +6 -0
- package/dist/types/test-execution.js.map +1 -0
- package/dist/utils/auth-generator.d.ts +30 -0
- package/dist/utils/auth-generator.d.ts.map +1 -0
- package/dist/utils/auth-generator.js +68 -0
- package/dist/utils/auth-generator.js.map +1 -0
- package/dist/utils/config.d.ts +181 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +141 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/coverage-calculator.d.ts +81 -0
- package/dist/utils/coverage-calculator.d.ts.map +1 -0
- package/dist/utils/coverage-calculator.js +134 -0
- package/dist/utils/coverage-calculator.js.map +1 -0
- package/dist/utils/data-loader.d.ts +52 -0
- package/dist/utils/data-loader.d.ts.map +1 -0
- package/dist/utils/data-loader.js +192 -0
- package/dist/utils/data-loader.js.map +1 -0
- package/dist/utils/errors.d.ts +167 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +257 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +220 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +325 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/openapi-discovery.d.ts +31 -0
- package/dist/utils/openapi-discovery.d.ts.map +1 -0
- package/dist/utils/openapi-discovery.js +322 -0
- package/dist/utils/openapi-discovery.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +101 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +167 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/dist/utils/resilience.d.ts +181 -0
- package/dist/utils/resilience.d.ts.map +1 -0
- package/dist/utils/resilience.js +269 -0
- package/dist/utils/resilience.js.map +1 -0
- package/dist/validators/openapi-validator.d.ts +198 -0
- package/dist/validators/openapi-validator.d.ts.map +1 -0
- package/dist/validators/openapi-validator.js +349 -0
- package/dist/validators/openapi-validator.js.map +1 -0
- package/dist/validators/response-matcher.d.ts +84 -0
- package/dist/validators/response-matcher.d.ts.map +1 -0
- package/dist/validators/response-matcher.js +234 -0
- package/dist/validators/response-matcher.js.map +1 -0
- package/dist/validators/schema-validator.d.ts +174 -0
- package/dist/validators/schema-validator.d.ts.map +1 -0
- package/dist/validators/schema-validator.js +340 -0
- package/dist/validators/schema-validator.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparison Report Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates professional HTML reports for source comparison results
|
|
5
|
+
* with visual matrix showing endpoints vs sources (OpenAPI/Code/PRD)
|
|
6
|
+
*
|
|
7
|
+
* @module reporters/comparison-report-generator
|
|
8
|
+
*/
|
|
9
|
+
import type { ComparisonResult } from '../analyzers/source-comparator.js';
|
|
10
|
+
/**
|
|
11
|
+
* Generates professional HTML report for source comparison
|
|
12
|
+
*
|
|
13
|
+
* Features:
|
|
14
|
+
* - Matrix table: Endpoints vs Sources
|
|
15
|
+
* - Color-coded discrepancies by priority
|
|
16
|
+
* - Summary statistics
|
|
17
|
+
* - Semantic analysis (AI-powered) section
|
|
18
|
+
* - Tailwind CSS styling
|
|
19
|
+
*
|
|
20
|
+
* @param comparison - Comparison result (may include semanticAnalysis)
|
|
21
|
+
* @returns HTML string
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateComparisonHtmlReport(comparison: ComparisonResult & {
|
|
24
|
+
semanticAnalysis?: {
|
|
25
|
+
semanticMatches: Array<{
|
|
26
|
+
openApiEndpoint: {
|
|
27
|
+
method: string;
|
|
28
|
+
path: string;
|
|
29
|
+
};
|
|
30
|
+
codeEndpoint: {
|
|
31
|
+
method: string;
|
|
32
|
+
path: string;
|
|
33
|
+
};
|
|
34
|
+
similarity: number;
|
|
35
|
+
explanation: string;
|
|
36
|
+
confidence: string;
|
|
37
|
+
reasons: string[];
|
|
38
|
+
}>;
|
|
39
|
+
semanticMismatches: Array<{
|
|
40
|
+
type: string;
|
|
41
|
+
endpoint: {
|
|
42
|
+
method: string;
|
|
43
|
+
path: string;
|
|
44
|
+
};
|
|
45
|
+
description: string;
|
|
46
|
+
expected: string;
|
|
47
|
+
actual: string;
|
|
48
|
+
severity: string;
|
|
49
|
+
suggestion: string;
|
|
50
|
+
}>;
|
|
51
|
+
businessRuleMappings: Array<{
|
|
52
|
+
rule: string;
|
|
53
|
+
mappedTo: string[];
|
|
54
|
+
confidence: number;
|
|
55
|
+
}>;
|
|
56
|
+
};
|
|
57
|
+
}): string;
|
|
58
|
+
//# sourceMappingURL=comparison-report-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-report-generator.d.ts","sourceRoot":"","sources":["../../src/reporters/comparison-report-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAA+B,MAAM,mCAAmC,CAAC;AAEvG;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,gBAAgB,GAAG;IAC1E,gBAAgB,CAAC,EAAE;QACjB,eAAe,EAAE,KAAK,CAAC;YACrB,eAAe,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAClD,YAAY,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAC/C,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,kBAAkB,EAAE,KAAK,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3C,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC,CAAC;QACH,oBAAoB,EAAE,KAAK,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC,CAAC;KACJ,CAAC;CACH,GAAG,MAAM,CAsOT"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparison Report Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates professional HTML reports for source comparison results
|
|
5
|
+
* with visual matrix showing endpoints vs sources (OpenAPI/Code/PRD)
|
|
6
|
+
*
|
|
7
|
+
* @module reporters/comparison-report-generator
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Generates professional HTML report for source comparison
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - Matrix table: Endpoints vs Sources
|
|
14
|
+
* - Color-coded discrepancies by priority
|
|
15
|
+
* - Summary statistics
|
|
16
|
+
* - Semantic analysis (AI-powered) section
|
|
17
|
+
* - Tailwind CSS styling
|
|
18
|
+
*
|
|
19
|
+
* @param comparison - Comparison result (may include semanticAnalysis)
|
|
20
|
+
* @returns HTML string
|
|
21
|
+
*/
|
|
22
|
+
export function generateComparisonHtmlReport(comparison) {
|
|
23
|
+
const { summary, allEndpoints, discrepancies, timestamp, semanticAnalysis } = comparison;
|
|
24
|
+
return `<!DOCTYPE html>
|
|
25
|
+
<html lang="es">
|
|
26
|
+
<head>
|
|
27
|
+
<meta charset="UTF-8">
|
|
28
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
29
|
+
<title>Source Comparison Report</title>
|
|
30
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
31
|
+
</head>
|
|
32
|
+
<body class="bg-gradient-to-br from-gray-50 to-gray-100 min-h-screen py-8">
|
|
33
|
+
<!-- Header -->
|
|
34
|
+
<header class="mb-8">
|
|
35
|
+
<div class="max-w-7xl mx-auto px-4">
|
|
36
|
+
<h1 class="text-4xl font-bold text-gray-900 mb-2">🔍 Source Comparison Report</h1>
|
|
37
|
+
<p class="text-gray-600">Generated on ${new Date(timestamp).toLocaleString()}</p>
|
|
38
|
+
</div>
|
|
39
|
+
</header>
|
|
40
|
+
|
|
41
|
+
<!-- Summary Cards -->
|
|
42
|
+
<section class="max-w-7xl mx-auto px-4 mb-8">
|
|
43
|
+
<div class="grid grid-cols-1 md:grid-cols-4 gap-4">
|
|
44
|
+
<!-- Total Endpoints Card -->
|
|
45
|
+
<div class="bg-white rounded-lg shadow p-6">
|
|
46
|
+
<div class="text-sm font-medium text-gray-600 mb-2">Total Endpoints</div>
|
|
47
|
+
<div class="text-3xl font-bold text-blue-600">${summary.totalEndpointsInSpec + summary.totalEndpointsInCode}</div>
|
|
48
|
+
<div class="text-xs text-gray-500 mt-2">
|
|
49
|
+
Spec: ${summary.totalEndpointsInSpec} | Code: ${summary.totalEndpointsInCode}
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<!-- Matching Card -->
|
|
54
|
+
<div class="bg-white rounded-lg shadow p-6">
|
|
55
|
+
<div class="text-sm font-medium text-gray-600 mb-2">Aligned</div>
|
|
56
|
+
<div class="text-3xl font-bold text-green-600">${summary.matchingEndpoints}</div>
|
|
57
|
+
<div class="text-xs text-gray-500 mt-2">
|
|
58
|
+
${((summary.matchingEndpoints / (summary.totalEndpointsInSpec || 1)) * 100).toFixed(0)}% coverage
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<!-- Discrepancies Card -->
|
|
63
|
+
<div class="bg-white rounded-lg shadow p-6">
|
|
64
|
+
<div class="text-sm font-medium text-gray-600 mb-2">Discrepancies</div>
|
|
65
|
+
<div class="text-3xl font-bold text-red-600">${summary.discrepanciesFound}</div>
|
|
66
|
+
<div class="text-xs text-gray-500 mt-2">
|
|
67
|
+
Errors: ${summary.errors} | Warnings: ${summary.warnings}
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<!-- Priority Card -->
|
|
72
|
+
<div class="bg-white rounded-lg shadow p-6">
|
|
73
|
+
<div class="text-sm font-medium text-gray-600 mb-2">Priority Breakdown</div>
|
|
74
|
+
<div class="flex items-center gap-2 mt-2">
|
|
75
|
+
<span class="px-2 py-1 text-xs font-bold bg-red-600 text-white rounded">${summary.critical}</span>
|
|
76
|
+
<span class="px-2 py-1 text-xs font-bold bg-orange-500 text-white rounded">${summary.high}</span>
|
|
77
|
+
<span class="px-2 py-1 text-xs font-bold bg-yellow-500 text-white rounded">${summary.medium}</span>
|
|
78
|
+
<span class="px-2 py-1 text-xs font-bold bg-blue-500 text-white rounded">${summary.low}</span>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="text-xs text-gray-500 mt-2">Critical | High | Medium | Low</div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</section>
|
|
84
|
+
|
|
85
|
+
<!-- Endpoints Matrix -->
|
|
86
|
+
<section class="max-w-7xl mx-auto px-4 mb-8">
|
|
87
|
+
<div class="bg-white rounded-lg shadow overflow-hidden">
|
|
88
|
+
<div class="px-6 py-4 bg-gray-50 border-b border-gray-200">
|
|
89
|
+
<h2 class="text-xl font-bold text-gray-900">📊 Endpoints Matrix</h2>
|
|
90
|
+
<p class="text-sm text-gray-600 mt-1">Coverage across sources (OpenAPI, Code, PRD)</p>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="overflow-x-auto">
|
|
93
|
+
<table class="min-w-full divide-y divide-gray-200">
|
|
94
|
+
<thead class="bg-gray-50">
|
|
95
|
+
<tr>
|
|
96
|
+
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Endpoint</th>
|
|
97
|
+
<th class="px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">OpenAPI</th>
|
|
98
|
+
<th class="px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">Code</th>
|
|
99
|
+
<th class="px-6 py-3 text-center text-xs font-medium text-gray-500 uppercase tracking-wider">PRD</th>
|
|
100
|
+
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th>
|
|
101
|
+
</tr>
|
|
102
|
+
</thead>
|
|
103
|
+
<tbody class="bg-white divide-y divide-gray-200">
|
|
104
|
+
${allEndpoints.map(endpoint => generateEndpointRow(endpoint, discrepancies)).join('')}
|
|
105
|
+
</tbody>
|
|
106
|
+
</table>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
</section>
|
|
110
|
+
|
|
111
|
+
<!-- Discrepancies List -->
|
|
112
|
+
${discrepancies.length > 0 ? `
|
|
113
|
+
<section class="max-w-7xl mx-auto px-4 mb-8">
|
|
114
|
+
<div class="bg-white rounded-lg shadow overflow-hidden">
|
|
115
|
+
<div class="px-6 py-4 bg-gray-50 border-b border-gray-200">
|
|
116
|
+
<h2 class="text-xl font-bold text-gray-900">⚠️ Discrepancies (${discrepancies.length})</h2>
|
|
117
|
+
<p class="text-sm text-gray-600 mt-1">Ordered by priority (critical first)</p>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="divide-y divide-gray-200">
|
|
120
|
+
${discrepancies.map(disc => generateDiscrepancyItem(disc)).join('')}
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</section>
|
|
124
|
+
` : ''}
|
|
125
|
+
|
|
126
|
+
${semanticAnalysis && (semanticAnalysis.semanticMatches.length > 0 || semanticAnalysis.semanticMismatches.length > 0 || semanticAnalysis.businessRuleMappings.length > 0) ? `
|
|
127
|
+
<!-- Semantic Analysis Section (AI-Powered) -->
|
|
128
|
+
<section class="max-w-7xl mx-auto px-4 mb-8">
|
|
129
|
+
<div class="bg-gradient-to-r from-purple-50 to-indigo-50 rounded-lg shadow overflow-hidden border-2 border-purple-200">
|
|
130
|
+
<div class="px-6 py-4 bg-gradient-to-r from-purple-600 to-indigo-600">
|
|
131
|
+
<h2 class="text-xl font-bold text-white flex items-center gap-2">
|
|
132
|
+
<span>🧠</span> AI-Powered Semantic Analysis
|
|
133
|
+
</h2>
|
|
134
|
+
<p class="text-sm text-purple-100 mt-1">Advanced pattern matching beyond simple string comparison</p>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
${semanticAnalysis.semanticMatches.length > 0 ? `
|
|
138
|
+
<!-- Semantic Matches -->
|
|
139
|
+
<div class="px-6 py-4 border-b border-purple-200">
|
|
140
|
+
<h3 class="text-lg font-bold text-gray-900 mb-3 flex items-center gap-2">
|
|
141
|
+
<span>🎯</span> Semantic Endpoint Matches (${semanticAnalysis.semanticMatches.length})
|
|
142
|
+
</h3>
|
|
143
|
+
<p class="text-sm text-gray-600 mb-4">These endpoints don't match syntactically but are semantically equivalent:</p>
|
|
144
|
+
<div class="space-y-3">
|
|
145
|
+
${semanticAnalysis.semanticMatches.map(match => `
|
|
146
|
+
<div class="bg-white border-l-4 border-purple-500 rounded-r-lg p-4 shadow-sm">
|
|
147
|
+
<div class="flex items-center justify-between mb-2">
|
|
148
|
+
<div class="flex items-center gap-2">
|
|
149
|
+
<span class="px-2 py-1 text-xs font-bold rounded ${getMethodColorClass(match.openApiEndpoint.method)}">${match.openApiEndpoint.method}</span>
|
|
150
|
+
<span class="text-sm font-mono text-gray-700">${match.openApiEndpoint.path}</span>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="flex items-center gap-2">
|
|
153
|
+
<span class="text-2xl">≈</span>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="flex items-center gap-2">
|
|
156
|
+
<span class="px-2 py-1 text-xs font-bold rounded ${getMethodColorClass(match.codeEndpoint.method)}">${match.codeEndpoint.method}</span>
|
|
157
|
+
<span class="text-sm font-mono text-gray-700">${match.codeEndpoint.path}</span>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
<div class="flex items-center gap-2 mb-2">
|
|
161
|
+
<span class="px-2 py-1 text-xs font-semibold rounded ${match.confidence === 'high' ? 'bg-green-100 text-green-800' : match.confidence === 'medium' ? 'bg-yellow-100 text-yellow-800' : 'bg-gray-100 text-gray-800'}">
|
|
162
|
+
${match.confidence.toUpperCase()} Confidence
|
|
163
|
+
</span>
|
|
164
|
+
<span class="text-xs text-gray-600">Similarity: ${(match.similarity * 100).toFixed(0)}%</span>
|
|
165
|
+
</div>
|
|
166
|
+
<p class="text-sm text-gray-700 mb-2"><strong>💡 Explanation:</strong> ${match.explanation}</p>
|
|
167
|
+
${match.reasons && match.reasons.length > 0 ? `
|
|
168
|
+
<div class="mt-2">
|
|
169
|
+
<p class="text-xs font-semibold text-gray-600 mb-1">Reasons:</p>
|
|
170
|
+
<ul class="list-disc list-inside text-xs text-gray-600">
|
|
171
|
+
${match.reasons.map(reason => `<li>${reason}</li>`).join('')}
|
|
172
|
+
</ul>
|
|
173
|
+
</div>
|
|
174
|
+
` : ''}
|
|
175
|
+
</div>
|
|
176
|
+
`).join('')}
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
` : ''}
|
|
180
|
+
|
|
181
|
+
${semanticAnalysis.semanticMismatches.length > 0 ? `
|
|
182
|
+
<!-- Semantic Mismatches -->
|
|
183
|
+
<div class="px-6 py-4 border-b border-purple-200">
|
|
184
|
+
<h3 class="text-lg font-bold text-gray-900 mb-3 flex items-center gap-2">
|
|
185
|
+
<span>⚙️</span> Semantic Parameter Mismatches (${semanticAnalysis.semanticMismatches.length})
|
|
186
|
+
</h3>
|
|
187
|
+
<p class="text-sm text-gray-600 mb-4">Parameter naming inconsistencies detected by AI:</p>
|
|
188
|
+
<div class="space-y-3">
|
|
189
|
+
${semanticAnalysis.semanticMismatches.map(mismatch => `
|
|
190
|
+
<div class="bg-white border-l-4 border-orange-500 rounded-r-lg p-4 shadow-sm">
|
|
191
|
+
<div class="flex items-center gap-2 mb-2">
|
|
192
|
+
<span class="px-2 py-1 text-xs font-bold rounded ${getMethodColorClass(mismatch.endpoint.method)}">${mismatch.endpoint.method}</span>
|
|
193
|
+
<span class="text-sm font-mono text-gray-700">${mismatch.endpoint.path}</span>
|
|
194
|
+
<span class="px-2 py-1 text-xs font-semibold rounded ${mismatch.severity === 'error' ? 'bg-red-100 text-red-800' : 'bg-yellow-100 text-yellow-800'}">${mismatch.severity.toUpperCase()}</span>
|
|
195
|
+
</div>
|
|
196
|
+
<p class="text-sm text-gray-700 mb-2">${mismatch.description}</p>
|
|
197
|
+
<div class="flex items-center gap-2 mb-2 text-xs">
|
|
198
|
+
<span class="font-semibold text-gray-600">Expected:</span>
|
|
199
|
+
<code class="px-2 py-1 bg-gray-100 rounded">${mismatch.expected}</code>
|
|
200
|
+
<span class="text-gray-400">→</span>
|
|
201
|
+
<span class="font-semibold text-gray-600">Actual:</span>
|
|
202
|
+
<code class="px-2 py-1 bg-gray-100 rounded">${mismatch.actual}</code>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="bg-blue-50 border-l-4 border-blue-400 p-3 mt-2">
|
|
205
|
+
<p class="text-sm text-blue-800"><strong>💡 Suggestion:</strong> ${mismatch.suggestion}</p>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
`).join('')}
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
` : ''}
|
|
212
|
+
|
|
213
|
+
${semanticAnalysis.businessRuleMappings.length > 0 ? `
|
|
214
|
+
<!-- Business Rule Mappings -->
|
|
215
|
+
<div class="px-6 py-4">
|
|
216
|
+
<h3 class="text-lg font-bold text-gray-900 mb-3 flex items-center gap-2">
|
|
217
|
+
<span>📋</span> Business Rule Mappings (${semanticAnalysis.businessRuleMappings.length})
|
|
218
|
+
</h3>
|
|
219
|
+
<p class="text-sm text-gray-600 mb-4">AI-detected connections between PRD rules and code implementation:</p>
|
|
220
|
+
<div class="space-y-3">
|
|
221
|
+
${semanticAnalysis.businessRuleMappings.map(mapping => `
|
|
222
|
+
<div class="bg-white border-l-4 border-green-500 rounded-r-lg p-4 shadow-sm">
|
|
223
|
+
<div class="flex items-center justify-between mb-2">
|
|
224
|
+
<p class="font-semibold text-gray-900">${mapping.rule}</p>
|
|
225
|
+
<span class="px-2 py-1 text-xs font-semibold rounded ${mapping.confidence >= 0.7 ? 'bg-green-100 text-green-800' : 'bg-yellow-100 text-yellow-800'}">
|
|
226
|
+
${(mapping.confidence * 100).toFixed(0)}% Confidence
|
|
227
|
+
</span>
|
|
228
|
+
</div>
|
|
229
|
+
<p class="text-sm text-gray-600 mb-2">Mapped to ${mapping.mappedTo.length} endpoint(s):</p>
|
|
230
|
+
<div class="flex flex-wrap gap-2">
|
|
231
|
+
${mapping.mappedTo.map(endpoint => `
|
|
232
|
+
<span class="px-2 py-1 text-xs font-mono bg-gray-100 text-gray-700 rounded">${endpoint}</span>
|
|
233
|
+
`).join('')}
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
`).join('')}
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
` : ''}
|
|
240
|
+
</div>
|
|
241
|
+
</section>
|
|
242
|
+
` : ''}
|
|
243
|
+
|
|
244
|
+
<!-- Footer -->
|
|
245
|
+
<footer class="max-w-7xl mx-auto px-4 mt-12 text-center text-sm text-gray-600">
|
|
246
|
+
<p>Generated by OpenAPI Contract Tester MCP</p>
|
|
247
|
+
<p class="mt-1">Professional deliverable for stakeholders and technical teams</p>
|
|
248
|
+
</footer>
|
|
249
|
+
</body>
|
|
250
|
+
</html>`;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Generates a table row for an endpoint
|
|
254
|
+
*/
|
|
255
|
+
function generateEndpointRow(endpoint, discrepancies) {
|
|
256
|
+
const { method, path, inOpenApi, inCode, inPrd } = endpoint;
|
|
257
|
+
// Find related discrepancies
|
|
258
|
+
const relatedDisc = discrepancies.find(d => d.endpoint?.method === method && d.endpoint?.path === path);
|
|
259
|
+
// Determine status
|
|
260
|
+
let statusHtml;
|
|
261
|
+
let statusBg;
|
|
262
|
+
if (inOpenApi && inCode && inPrd) {
|
|
263
|
+
statusHtml = '✅ Fully Aligned';
|
|
264
|
+
statusBg = 'bg-green-100 text-green-800';
|
|
265
|
+
}
|
|
266
|
+
else if (inOpenApi && inCode) {
|
|
267
|
+
statusHtml = '✓ Aligned';
|
|
268
|
+
statusBg = 'bg-green-100 text-green-800';
|
|
269
|
+
}
|
|
270
|
+
else if (!inCode && inOpenApi) {
|
|
271
|
+
statusHtml = '⚠ Not Implemented';
|
|
272
|
+
statusBg = 'bg-red-100 text-red-800';
|
|
273
|
+
}
|
|
274
|
+
else if (!inOpenApi && inCode) {
|
|
275
|
+
statusHtml = '⚠ Not Documented';
|
|
276
|
+
statusBg = 'bg-yellow-100 text-yellow-800';
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
statusHtml = '❓ Partial';
|
|
280
|
+
statusBg = 'bg-gray-100 text-gray-800';
|
|
281
|
+
}
|
|
282
|
+
return `
|
|
283
|
+
<tr class="hover:bg-gray-50">
|
|
284
|
+
<td class="px-6 py-4 whitespace-nowrap">
|
|
285
|
+
<div class="flex items-center gap-2">
|
|
286
|
+
<span class="px-2 py-1 text-xs font-semibold rounded ${getMethodColorClass(method)}">${method}</span>
|
|
287
|
+
<span class="text-sm font-mono text-gray-700">${path}</span>
|
|
288
|
+
${relatedDisc ? `<span class="ml-2 px-2 py-1 text-xs font-bold rounded ${getPriorityBadgeClass(relatedDisc.priority)}">${relatedDisc.priority}</span>` : ''}
|
|
289
|
+
</div>
|
|
290
|
+
</td>
|
|
291
|
+
<td class="px-6 py-4 whitespace-nowrap text-center">
|
|
292
|
+
${inOpenApi ? '<span class="text-2xl">✅</span>' : '<span class="text-2xl text-gray-300">—</span>'}
|
|
293
|
+
</td>
|
|
294
|
+
<td class="px-6 py-4 whitespace-nowrap text-center">
|
|
295
|
+
${inCode ? '<span class="text-2xl">✅</span>' : '<span class="text-2xl text-gray-300">—</span>'}
|
|
296
|
+
</td>
|
|
297
|
+
<td class="px-6 py-4 whitespace-nowrap text-center">
|
|
298
|
+
${inPrd ? '<span class="text-2xl">✅</span>' : '<span class="text-2xl text-gray-300">—</span>'}
|
|
299
|
+
</td>
|
|
300
|
+
<td class="px-6 py-4 whitespace-nowrap">
|
|
301
|
+
<span class="px-3 py-1 inline-flex text-xs leading-5 font-semibold rounded-full ${statusBg}">${statusHtml}</span>
|
|
302
|
+
</td>
|
|
303
|
+
</tr>
|
|
304
|
+
`;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Generates a discrepancy item
|
|
308
|
+
*/
|
|
309
|
+
function generateDiscrepancyItem(disc) {
|
|
310
|
+
const priorityBadge = getPriorityBadgeClass(disc.priority);
|
|
311
|
+
const severityIcon = disc.severity === 'error' ? '🔴' : disc.severity === 'warning' ? '🟡' : 'ℹ️';
|
|
312
|
+
return `
|
|
313
|
+
<div class="px-6 py-4">
|
|
314
|
+
<div class="flex items-start gap-3">
|
|
315
|
+
<div class="flex-shrink-0 text-2xl">${severityIcon}</div>
|
|
316
|
+
<div class="flex-grow">
|
|
317
|
+
<div class="flex items-center gap-2 mb-2">
|
|
318
|
+
<span class="px-2 py-1 text-xs font-bold rounded ${priorityBadge}">${disc.priority.toUpperCase()}</span>
|
|
319
|
+
<span class="text-sm font-semibold text-gray-600">${disc.type.replace(/_/g, ' ').toUpperCase()}</span>
|
|
320
|
+
${disc.endpoint ? `<span class="text-sm font-mono text-gray-700">${disc.endpoint.method} ${disc.endpoint.path}</span>` : ''}
|
|
321
|
+
</div>
|
|
322
|
+
<p class="text-gray-800 mb-2">${disc.description}</p>
|
|
323
|
+
${disc.suggestion ? `
|
|
324
|
+
<div class="bg-blue-50 border-l-4 border-blue-400 p-3 mt-2">
|
|
325
|
+
<p class="text-sm text-blue-800"><strong>💡 Suggestion:</strong> ${disc.suggestion}</p>
|
|
326
|
+
</div>
|
|
327
|
+
` : ''}
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
</div>
|
|
331
|
+
`;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Get Tailwind CSS color classes for HTTP method badges
|
|
335
|
+
*/
|
|
336
|
+
function getMethodColorClass(method) {
|
|
337
|
+
switch (method.toUpperCase()) {
|
|
338
|
+
case 'GET':
|
|
339
|
+
return 'bg-blue-100 text-blue-800';
|
|
340
|
+
case 'POST':
|
|
341
|
+
return 'bg-green-100 text-green-800';
|
|
342
|
+
case 'PUT':
|
|
343
|
+
return 'bg-yellow-100 text-yellow-800';
|
|
344
|
+
case 'PATCH':
|
|
345
|
+
return 'bg-orange-100 text-orange-800';
|
|
346
|
+
case 'DELETE':
|
|
347
|
+
return 'bg-red-100 text-red-800';
|
|
348
|
+
default:
|
|
349
|
+
return 'bg-gray-100 text-gray-800';
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Get Tailwind CSS classes for priority badges
|
|
354
|
+
*/
|
|
355
|
+
function getPriorityBadgeClass(priority) {
|
|
356
|
+
switch (priority.toLowerCase()) {
|
|
357
|
+
case 'critical':
|
|
358
|
+
return 'bg-red-600 text-white';
|
|
359
|
+
case 'high':
|
|
360
|
+
return 'bg-orange-500 text-white';
|
|
361
|
+
case 'medium':
|
|
362
|
+
return 'bg-yellow-500 text-white';
|
|
363
|
+
case 'low':
|
|
364
|
+
return 'bg-blue-500 text-white';
|
|
365
|
+
default:
|
|
366
|
+
return 'bg-gray-500 text-white';
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=comparison-report-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-report-generator.js","sourceRoot":"","sources":["../../src/reporters/comparison-report-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gherkin Formatter - Converts test cases to BDD Gherkin format
|
|
3
|
+
*
|
|
4
|
+
* Generates human-readable Given/When/Then scenarios from test cases
|
|
5
|
+
* for stakeholder-friendly reporting.
|
|
6
|
+
*
|
|
7
|
+
* @module reporters/gherkin-formatter
|
|
8
|
+
*/
|
|
9
|
+
import type { TestResult } from './html-report-generator.js';
|
|
10
|
+
export interface GherkinScenario {
|
|
11
|
+
title: string;
|
|
12
|
+
steps: GherkinStep[];
|
|
13
|
+
status: 'passed' | 'failed' | 'skipped';
|
|
14
|
+
tags: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface GherkinStep {
|
|
17
|
+
keyword: 'Given' | 'When' | 'Then' | 'And' | 'But';
|
|
18
|
+
text: string;
|
|
19
|
+
dataTable?: Array<{
|
|
20
|
+
key: string;
|
|
21
|
+
value: string;
|
|
22
|
+
}>;
|
|
23
|
+
status?: 'passed' | 'failed' | 'skipped';
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Converts a test result to Gherkin scenario format
|
|
28
|
+
*/
|
|
29
|
+
export declare function toGherkinScenario(test: TestResult): GherkinScenario;
|
|
30
|
+
/**
|
|
31
|
+
* Renders a Gherkin scenario as HTML
|
|
32
|
+
*/
|
|
33
|
+
export declare function renderGherkinScenarioHTML(scenario: GherkinScenario): string;
|
|
34
|
+
//# sourceMappingURL=gherkin-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gherkin-formatter.d.ts","sourceRoot":"","sources":["../../src/reporters/gherkin-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CA8BnE;AA6ID;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAoB3E"}
|