@opencodereview/core 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/anthropic-provider.d.ts +41 -0
- package/dist/ai/anthropic-provider.d.ts.map +1 -0
- package/dist/ai/anthropic-provider.js +139 -0
- package/dist/ai/anthropic-provider.js.map +1 -0
- package/dist/ai/index.d.ts +39 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +41 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/ollama-provider.d.ts +46 -0
- package/dist/ai/ollama-provider.d.ts.map +1 -0
- package/dist/ai/ollama-provider.js +149 -0
- package/dist/ai/ollama-provider.js.map +1 -0
- package/dist/ai/openai-provider.d.ts +44 -0
- package/dist/ai/openai-provider.d.ts.map +1 -0
- package/dist/ai/openai-provider.js +137 -0
- package/dist/ai/openai-provider.js.map +1 -0
- package/dist/ai/orchestrator.d.ts +60 -0
- package/dist/ai/orchestrator.d.ts.map +1 -0
- package/dist/ai/orchestrator.js +188 -0
- package/dist/ai/orchestrator.js.map +1 -0
- package/dist/ai/prompts.d.ts +27 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +112 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/types.d.ts +75 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +10 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/v4/embedding/index.d.ts +10 -0
- package/dist/ai/v4/embedding/index.d.ts.map +1 -0
- package/dist/ai/v4/embedding/index.js +10 -0
- package/dist/ai/v4/embedding/index.js.map +1 -0
- package/dist/ai/v4/embedding/local.d.ts +68 -0
- package/dist/ai/v4/embedding/local.d.ts.map +1 -0
- package/dist/ai/v4/embedding/local.js +167 -0
- package/dist/ai/v4/embedding/local.js.map +1 -0
- package/dist/ai/v4/embedding/ollama.d.ts +58 -0
- package/dist/ai/v4/embedding/ollama.d.ts.map +1 -0
- package/dist/ai/v4/embedding/ollama.js +101 -0
- package/dist/ai/v4/embedding/ollama.js.map +1 -0
- package/dist/ai/v4/embedding/openai.d.ts +36 -0
- package/dist/ai/v4/embedding/openai.d.ts.map +1 -0
- package/dist/ai/v4/embedding/openai.js +76 -0
- package/dist/ai/v4/embedding/openai.js.map +1 -0
- package/dist/ai/v4/embedding/similarity.d.ts +36 -0
- package/dist/ai/v4/embedding/similarity.d.ts.map +1 -0
- package/dist/ai/v4/embedding/similarity.js +60 -0
- package/dist/ai/v4/embedding/similarity.js.map +1 -0
- package/dist/ai/v4/index.d.ts +51 -0
- package/dist/ai/v4/index.d.ts.map +1 -0
- package/dist/ai/v4/index.js +54 -0
- package/dist/ai/v4/index.js.map +1 -0
- package/dist/ai/v4/llm/anthropic.d.ts +38 -0
- package/dist/ai/v4/llm/anthropic.d.ts.map +1 -0
- package/dist/ai/v4/llm/anthropic.js +86 -0
- package/dist/ai/v4/llm/anthropic.js.map +1 -0
- package/dist/ai/v4/llm/index.d.ts +9 -0
- package/dist/ai/v4/llm/index.d.ts.map +1 -0
- package/dist/ai/v4/llm/index.js +9 -0
- package/dist/ai/v4/llm/index.js.map +1 -0
- package/dist/ai/v4/llm/ollama.d.ts +39 -0
- package/dist/ai/v4/llm/ollama.d.ts.map +1 -0
- package/dist/ai/v4/llm/ollama.js +95 -0
- package/dist/ai/v4/llm/ollama.js.map +1 -0
- package/dist/ai/v4/llm/openai.d.ts +38 -0
- package/dist/ai/v4/llm/openai.d.ts.map +1 -0
- package/dist/ai/v4/llm/openai.js +88 -0
- package/dist/ai/v4/llm/openai.js.map +1 -0
- package/dist/ai/v4/patterns/defect-patterns.d.ts +57 -0
- package/dist/ai/v4/patterns/defect-patterns.d.ts.map +1 -0
- package/dist/ai/v4/patterns/defect-patterns.js +331 -0
- package/dist/ai/v4/patterns/defect-patterns.js.map +1 -0
- package/dist/ai/v4/patterns/index.d.ts +8 -0
- package/dist/ai/v4/patterns/index.d.ts.map +1 -0
- package/dist/ai/v4/patterns/index.js +7 -0
- package/dist/ai/v4/patterns/index.js.map +1 -0
- package/dist/ai/v4/pipeline.d.ts +74 -0
- package/dist/ai/v4/pipeline.d.ts.map +1 -0
- package/dist/ai/v4/pipeline.js +381 -0
- package/dist/ai/v4/pipeline.js.map +1 -0
- package/dist/ai/v4/sla.d.ts +62 -0
- package/dist/ai/v4/sla.d.ts.map +1 -0
- package/dist/ai/v4/sla.js +136 -0
- package/dist/ai/v4/sla.js.map +1 -0
- package/dist/ai/v4/types.d.ts +117 -0
- package/dist/ai/v4/types.d.ts.map +1 -0
- package/dist/ai/v4/types.js +16 -0
- package/dist/ai/v4/types.js.map +1 -0
- package/dist/ai-healer/prompt-builder.d.ts +33 -0
- package/dist/ai-healer/prompt-builder.d.ts.map +1 -0
- package/dist/ai-healer/prompt-builder.js +89 -0
- package/dist/ai-healer/prompt-builder.js.map +1 -0
- package/dist/config/defaults.d.ts +14 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +57 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +33 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +245 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +58 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +7 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/v4-config.d.ts +77 -0
- package/dist/config/v4-config.d.ts.map +1 -0
- package/dist/config/v4-config.js +336 -0
- package/dist/config/v4-config.js.map +1 -0
- package/dist/detectors/ai-detector.d.ts +38 -0
- package/dist/detectors/ai-detector.d.ts.map +1 -0
- package/dist/detectors/ai-detector.js +62 -0
- package/dist/detectors/ai-detector.js.map +1 -0
- package/dist/detectors/context-break.d.ts +57 -0
- package/dist/detectors/context-break.d.ts.map +1 -0
- package/dist/detectors/context-break.js +199 -0
- package/dist/detectors/context-break.js.map +1 -0
- package/dist/detectors/deep-hallucination.d.ts +42 -0
- package/dist/detectors/deep-hallucination.d.ts.map +1 -0
- package/dist/detectors/deep-hallucination.js +297 -0
- package/dist/detectors/deep-hallucination.js.map +1 -0
- package/dist/detectors/duplication.d.ts +61 -0
- package/dist/detectors/duplication.d.ts.map +1 -0
- package/dist/detectors/duplication.js +204 -0
- package/dist/detectors/duplication.js.map +1 -0
- package/dist/detectors/hallucination.d.ts +80 -0
- package/dist/detectors/hallucination.d.ts.map +1 -0
- package/dist/detectors/hallucination.js +350 -0
- package/dist/detectors/hallucination.js.map +1 -0
- package/dist/detectors/index.d.ts +35 -0
- package/dist/detectors/index.d.ts.map +1 -0
- package/dist/detectors/index.js +33 -0
- package/dist/detectors/index.js.map +1 -0
- package/dist/detectors/logic-gap.d.ts +58 -0
- package/dist/detectors/logic-gap.d.ts.map +1 -0
- package/dist/detectors/logic-gap.js +284 -0
- package/dist/detectors/logic-gap.js.map +1 -0
- package/dist/detectors/over-engineering.d.ts +44 -0
- package/dist/detectors/over-engineering.d.ts.map +1 -0
- package/dist/detectors/over-engineering.js +257 -0
- package/dist/detectors/over-engineering.js.map +1 -0
- package/dist/detectors/security-pattern.d.ts +43 -0
- package/dist/detectors/security-pattern.d.ts.map +1 -0
- package/dist/detectors/security-pattern.js +235 -0
- package/dist/detectors/security-pattern.js.map +1 -0
- package/dist/detectors/stale-api.d.ts +44 -0
- package/dist/detectors/stale-api.d.ts.map +1 -0
- package/dist/detectors/stale-api.js +160 -0
- package/dist/detectors/stale-api.js.map +1 -0
- package/dist/detectors/type-safety.d.ts +41 -0
- package/dist/detectors/type-safety.d.ts.map +1 -0
- package/dist/detectors/type-safety.js +306 -0
- package/dist/detectors/type-safety.js.map +1 -0
- package/dist/detectors/v4/context-coherence.d.ts +67 -0
- package/dist/detectors/v4/context-coherence.d.ts.map +1 -0
- package/dist/detectors/v4/context-coherence.js +319 -0
- package/dist/detectors/v4/context-coherence.js.map +1 -0
- package/dist/detectors/v4/hallucinated-import.d.ts +52 -0
- package/dist/detectors/v4/hallucinated-import.d.ts.map +1 -0
- package/dist/detectors/v4/hallucinated-import.js +206 -0
- package/dist/detectors/v4/hallucinated-import.js.map +1 -0
- package/dist/detectors/v4/index.d.ts +28 -0
- package/dist/detectors/v4/index.d.ts.map +1 -0
- package/dist/detectors/v4/index.js +40 -0
- package/dist/detectors/v4/index.js.map +1 -0
- package/dist/detectors/v4/over-engineering.d.ts +69 -0
- package/dist/detectors/v4/over-engineering.d.ts.map +1 -0
- package/dist/detectors/v4/over-engineering.js +234 -0
- package/dist/detectors/v4/over-engineering.js.map +1 -0
- package/dist/detectors/v4/security-pattern.d.ts +46 -0
- package/dist/detectors/v4/security-pattern.d.ts.map +1 -0
- package/dist/detectors/v4/security-pattern.js +233 -0
- package/dist/detectors/v4/security-pattern.js.map +1 -0
- package/dist/detectors/v4/stale-api.d.ts +59 -0
- package/dist/detectors/v4/stale-api.d.ts.map +1 -0
- package/dist/detectors/v4/stale-api.js +470 -0
- package/dist/detectors/v4/stale-api.js.map +1 -0
- package/dist/detectors/v4/types.d.ts +74 -0
- package/dist/detectors/v4/types.d.ts.map +1 -0
- package/dist/detectors/v4/types.js +10 -0
- package/dist/detectors/v4/types.js.map +1 -0
- package/dist/diff/filter.d.ts +35 -0
- package/dist/diff/filter.d.ts.map +1 -0
- package/dist/diff/filter.js +65 -0
- package/dist/diff/filter.js.map +1 -0
- package/dist/diff/index.d.ts +9 -0
- package/dist/diff/index.d.ts.map +1 -0
- package/dist/diff/index.js +8 -0
- package/dist/diff/index.js.map +1 -0
- package/dist/diff/parser.d.ts +61 -0
- package/dist/diff/parser.d.ts.map +1 -0
- package/dist/diff/parser.js +203 -0
- package/dist/diff/parser.js.map +1 -0
- package/dist/i18n/en.d.ts +18 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +83 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +14 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/provider.d.ts +54 -0
- package/dist/i18n/provider.d.ts.map +1 -0
- package/dist/i18n/provider.js +88 -0
- package/dist/i18n/provider.js.map +1 -0
- package/dist/i18n/types.d.ts +37 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +10 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/i18n/zh.d.ts +14 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +83 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/index.d.ts +113 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/index.d.ts +10 -0
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +9 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/types.d.ts +126 -0
- package/dist/ir/types.d.ts.map +1 -0
- package/dist/ir/types.js +33 -0
- package/dist/ir/types.js.map +1 -0
- package/dist/languages/go/index.d.ts +7 -0
- package/dist/languages/go/index.d.ts.map +1 -0
- package/dist/languages/go/index.js +7 -0
- package/dist/languages/go/index.js.map +1 -0
- package/dist/languages/go/parser.d.ts +89 -0
- package/dist/languages/go/parser.d.ts.map +1 -0
- package/dist/languages/go/parser.js +509 -0
- package/dist/languages/go/parser.js.map +1 -0
- package/dist/languages/index.d.ts +13 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +14 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/java/index.d.ts +7 -0
- package/dist/languages/java/index.d.ts.map +1 -0
- package/dist/languages/java/index.js +7 -0
- package/dist/languages/java/index.js.map +1 -0
- package/dist/languages/java/parser.d.ts +82 -0
- package/dist/languages/java/parser.d.ts.map +1 -0
- package/dist/languages/java/parser.js +492 -0
- package/dist/languages/java/parser.js.map +1 -0
- package/dist/languages/kotlin/index.d.ts +7 -0
- package/dist/languages/kotlin/index.d.ts.map +1 -0
- package/dist/languages/kotlin/index.js +7 -0
- package/dist/languages/kotlin/index.js.map +1 -0
- package/dist/languages/kotlin/parser.d.ts +84 -0
- package/dist/languages/kotlin/parser.d.ts.map +1 -0
- package/dist/languages/kotlin/parser.js +507 -0
- package/dist/languages/kotlin/parser.js.map +1 -0
- package/dist/languages/python/index.d.ts +7 -0
- package/dist/languages/python/index.d.ts.map +1 -0
- package/dist/languages/python/index.js +7 -0
- package/dist/languages/python/index.js.map +1 -0
- package/dist/languages/python/parser.d.ts +91 -0
- package/dist/languages/python/parser.d.ts.map +1 -0
- package/dist/languages/python/parser.js +375 -0
- package/dist/languages/python/parser.js.map +1 -0
- package/dist/languages/registry.d.ts +81 -0
- package/dist/languages/registry.d.ts.map +1 -0
- package/dist/languages/registry.js +150 -0
- package/dist/languages/registry.js.map +1 -0
- package/dist/languages/types.d.ts +137 -0
- package/dist/languages/types.d.ts.map +1 -0
- package/dist/languages/types.js +10 -0
- package/dist/languages/types.js.map +1 -0
- package/dist/languages/typescript/index.d.ts +7 -0
- package/dist/languages/typescript/index.d.ts.map +1 -0
- package/dist/languages/typescript/index.js +7 -0
- package/dist/languages/typescript/index.js.map +1 -0
- package/dist/languages/typescript/parser.d.ts +51 -0
- package/dist/languages/typescript/parser.d.ts.map +1 -0
- package/dist/languages/typescript/parser.js +286 -0
- package/dist/languages/typescript/parser.js.map +1 -0
- package/dist/license/generator.d.ts +43 -0
- package/dist/license/generator.d.ts.map +1 -0
- package/dist/license/generator.js +72 -0
- package/dist/license/generator.js.map +1 -0
- package/dist/license/index.d.ts +11 -0
- package/dist/license/index.d.ts.map +1 -0
- package/dist/license/index.js +12 -0
- package/dist/license/index.js.map +1 -0
- package/dist/license/types.d.ts +85 -0
- package/dist/license/types.d.ts.map +1 -0
- package/dist/license/types.js +10 -0
- package/dist/license/types.js.map +1 -0
- package/dist/license/validator.d.ts +77 -0
- package/dist/license/validator.d.ts.map +1 -0
- package/dist/license/validator.js +275 -0
- package/dist/license/validator.js.map +1 -0
- package/dist/parser/extractor.d.ts +31 -0
- package/dist/parser/extractor.d.ts.map +1 -0
- package/dist/parser/extractor.js +10 -0
- package/dist/parser/extractor.js.map +1 -0
- package/dist/parser/extractors/go.d.ts +21 -0
- package/dist/parser/extractors/go.d.ts.map +1 -0
- package/dist/parser/extractors/go.js +569 -0
- package/dist/parser/extractors/go.js.map +1 -0
- package/dist/parser/extractors/index.d.ts +13 -0
- package/dist/parser/extractors/index.d.ts.map +1 -0
- package/dist/parser/extractors/index.js +13 -0
- package/dist/parser/extractors/index.js.map +1 -0
- package/dist/parser/extractors/java.d.ts +24 -0
- package/dist/parser/extractors/java.d.ts.map +1 -0
- package/dist/parser/extractors/java.js +611 -0
- package/dist/parser/extractors/java.js.map +1 -0
- package/dist/parser/extractors/kotlin.d.ts +25 -0
- package/dist/parser/extractors/kotlin.d.ts.map +1 -0
- package/dist/parser/extractors/kotlin.js +665 -0
- package/dist/parser/extractors/kotlin.js.map +1 -0
- package/dist/parser/extractors/python.d.ts +21 -0
- package/dist/parser/extractors/python.d.ts.map +1 -0
- package/dist/parser/extractors/python.js +514 -0
- package/dist/parser/extractors/python.js.map +1 -0
- package/dist/parser/extractors/typescript.d.ts +23 -0
- package/dist/parser/extractors/typescript.d.ts.map +1 -0
- package/dist/parser/extractors/typescript.js +664 -0
- package/dist/parser/extractors/typescript.js.map +1 -0
- package/dist/parser/index.d.ts +15 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +14 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/manager.d.ts +50 -0
- package/dist/parser/manager.d.ts.map +1 -0
- package/dist/parser/manager.js +159 -0
- package/dist/parser/manager.js.map +1 -0
- package/dist/registry/builtins/go-builtins.d.ts +13 -0
- package/dist/registry/builtins/go-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/go-builtins.js +63 -0
- package/dist/registry/builtins/go-builtins.js.map +1 -0
- package/dist/registry/builtins/java-builtins.d.ts +10 -0
- package/dist/registry/builtins/java-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/java-builtins.js +59 -0
- package/dist/registry/builtins/java-builtins.js.map +1 -0
- package/dist/registry/builtins/kotlin-builtins.d.ts +10 -0
- package/dist/registry/builtins/kotlin-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/kotlin-builtins.js +38 -0
- package/dist/registry/builtins/kotlin-builtins.js.map +1 -0
- package/dist/registry/builtins/node-builtins.d.ts +10 -0
- package/dist/registry/builtins/node-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/node-builtins.js +36 -0
- package/dist/registry/builtins/node-builtins.js.map +1 -0
- package/dist/registry/builtins/python-builtins.d.ts +10 -0
- package/dist/registry/builtins/python-builtins.d.ts.map +1 -0
- package/dist/registry/builtins/python-builtins.js +43 -0
- package/dist/registry/builtins/python-builtins.js.map +1 -0
- package/dist/registry/cache.d.ts +53 -0
- package/dist/registry/cache.d.ts.map +1 -0
- package/dist/registry/cache.js +147 -0
- package/dist/registry/cache.js.map +1 -0
- package/dist/registry/go-registry.d.ts +52 -0
- package/dist/registry/go-registry.d.ts.map +1 -0
- package/dist/registry/go-registry.js +148 -0
- package/dist/registry/go-registry.js.map +1 -0
- package/dist/registry/index.d.ts +18 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +21 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/maven-registry.d.ts +57 -0
- package/dist/registry/maven-registry.d.ts.map +1 -0
- package/dist/registry/maven-registry.js +155 -0
- package/dist/registry/maven-registry.js.map +1 -0
- package/dist/registry/npm-registry.d.ts +40 -0
- package/dist/registry/npm-registry.d.ts.map +1 -0
- package/dist/registry/npm-registry.js +155 -0
- package/dist/registry/npm-registry.js.map +1 -0
- package/dist/registry/pypi-registry.d.ts +49 -0
- package/dist/registry/pypi-registry.d.ts.map +1 -0
- package/dist/registry/pypi-registry.js +175 -0
- package/dist/registry/pypi-registry.js.map +1 -0
- package/dist/registry/registry-manager.d.ts +45 -0
- package/dist/registry/registry-manager.d.ts.map +1 -0
- package/dist/registry/registry-manager.js +107 -0
- package/dist/registry/registry-manager.js.map +1 -0
- package/dist/registry/types.d.ts +83 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +12 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/reporter/html-reporter.d.ts +20 -0
- package/dist/reporter/html-reporter.d.ts.map +1 -0
- package/dist/reporter/html-reporter.js +612 -0
- package/dist/reporter/html-reporter.js.map +1 -0
- package/dist/reporter/index.d.ts +28 -0
- package/dist/reporter/index.d.ts.map +1 -0
- package/dist/reporter/index.js +48 -0
- package/dist/reporter/index.js.map +1 -0
- package/dist/reporter/markdown-reporter.d.ts +16 -0
- package/dist/reporter/markdown-reporter.d.ts.map +1 -0
- package/dist/reporter/markdown-reporter.js +182 -0
- package/dist/reporter/markdown-reporter.js.map +1 -0
- package/dist/reporter/sarif-reporter.d.ts +67 -0
- package/dist/reporter/sarif-reporter.d.ts.map +1 -0
- package/dist/reporter/sarif-reporter.js +73 -0
- package/dist/reporter/sarif-reporter.js.map +1 -0
- package/dist/reporter/terminal-reporter.d.ts +14 -0
- package/dist/reporter/terminal-reporter.d.ts.map +1 -0
- package/dist/reporter/terminal-reporter.js +126 -0
- package/dist/reporter/terminal-reporter.js.map +1 -0
- package/dist/reporter/types.d.ts +43 -0
- package/dist/reporter/types.d.ts.map +1 -0
- package/dist/reporter/types.js +10 -0
- package/dist/reporter/types.js.map +1 -0
- package/dist/reporter/v4-html.d.ts +24 -0
- package/dist/reporter/v4-html.d.ts.map +1 -0
- package/dist/reporter/v4-html.js +359 -0
- package/dist/reporter/v4-html.js.map +1 -0
- package/dist/reporter/v4-terminal.d.ts +55 -0
- package/dist/reporter/v4-terminal.d.ts.map +1 -0
- package/dist/reporter/v4-terminal.js +199 -0
- package/dist/reporter/v4-terminal.js.map +1 -0
- package/dist/scanner/index.d.ts +9 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +9 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/v4-scanner.d.ts +162 -0
- package/dist/scanner/v4-scanner.d.ts.map +1 -0
- package/dist/scanner/v4-scanner.js +327 -0
- package/dist/scanner/v4-scanner.js.map +1 -0
- package/dist/scorer/report.d.ts +52 -0
- package/dist/scorer/report.d.ts.map +1 -0
- package/dist/scorer/report.js +347 -0
- package/dist/scorer/report.js.map +1 -0
- package/dist/scorer/scoring-engine.d.ts +170 -0
- package/dist/scorer/scoring-engine.d.ts.map +1 -0
- package/dist/scorer/scoring-engine.js +308 -0
- package/dist/scorer/scoring-engine.js.map +1 -0
- package/dist/scorer/v4-adapter.d.ts +87 -0
- package/dist/scorer/v4-adapter.d.ts.map +1 -0
- package/dist/scorer/v4-adapter.js +145 -0
- package/dist/scorer/v4-adapter.js.map +1 -0
- package/dist/sla/index.d.ts +7 -0
- package/dist/sla/index.d.ts.map +1 -0
- package/dist/sla/index.js +6 -0
- package/dist/sla/index.js.map +1 -0
- package/dist/sla/tracker.d.ts +70 -0
- package/dist/sla/tracker.d.ts.map +1 -0
- package/dist/sla/tracker.js +151 -0
- package/dist/sla/tracker.js.map +1 -0
- package/dist/sla/types.d.ts +67 -0
- package/dist/sla/types.d.ts.map +1 -0
- package/dist/sla/types.js +42 -0
- package/dist/sla/types.js.map +1 -0
- package/dist/types.d.ts +172 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +69 -0
- package/dist/types.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Filter β Filter scan results to only include issues in changed lines.
|
|
3
|
+
*
|
|
4
|
+
* Used in diff-only scanning mode to restrict reported issues to the
|
|
5
|
+
* lines actually modified in a PR/MR.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
import type { DetectorResult } from '../detectors/v4/types.js';
|
|
10
|
+
import type { DiffResult } from './parser.js';
|
|
11
|
+
/**
|
|
12
|
+
* Filter V4 DetectorResults to only include issues in changed lines.
|
|
13
|
+
*
|
|
14
|
+
* Logic:
|
|
15
|
+
* - If the issue's file is not in the diff, exclude it
|
|
16
|
+
* - If the file was newly added, include all issues (all lines are new)
|
|
17
|
+
* - If the file was modified/renamed, only include issues on changed lines
|
|
18
|
+
* - Deleted files are excluded (nothing to scan)
|
|
19
|
+
*
|
|
20
|
+
* @param issues - All detected issues
|
|
21
|
+
* @param diff - Parsed diff result
|
|
22
|
+
* @returns Filtered issues that are on changed lines
|
|
23
|
+
*/
|
|
24
|
+
export declare function filterByDiff(issues: DetectorResult[], diff: DiffResult): DetectorResult[];
|
|
25
|
+
/**
|
|
26
|
+
* Get the list of scannable file paths from a diff result.
|
|
27
|
+
*
|
|
28
|
+
* Filters out deleted files and files with unsupported extensions.
|
|
29
|
+
*
|
|
30
|
+
* @param diff - Parsed diff result
|
|
31
|
+
* @param supportedExtensions - Extensions to include (e.g. ['.ts', '.js', '.py'])
|
|
32
|
+
* @returns Array of file paths to scan
|
|
33
|
+
*/
|
|
34
|
+
export declare function getScannableFiles(diff: DiffResult, supportedExtensions?: string[]): string[];
|
|
35
|
+
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/diff/filter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,CA6BzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,mBAAmB,GAAE,MAAM,EAAyE,GACnG,MAAM,EAAE,CAQV"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Filter β Filter scan results to only include issues in changed lines.
|
|
3
|
+
*
|
|
4
|
+
* Used in diff-only scanning mode to restrict reported issues to the
|
|
5
|
+
* lines actually modified in a PR/MR.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Filter V4 DetectorResults to only include issues in changed lines.
|
|
11
|
+
*
|
|
12
|
+
* Logic:
|
|
13
|
+
* - If the issue's file is not in the diff, exclude it
|
|
14
|
+
* - If the file was newly added, include all issues (all lines are new)
|
|
15
|
+
* - If the file was modified/renamed, only include issues on changed lines
|
|
16
|
+
* - Deleted files are excluded (nothing to scan)
|
|
17
|
+
*
|
|
18
|
+
* @param issues - All detected issues
|
|
19
|
+
* @param diff - Parsed diff result
|
|
20
|
+
* @returns Filtered issues that are on changed lines
|
|
21
|
+
*/
|
|
22
|
+
export function filterByDiff(issues, diff) {
|
|
23
|
+
return issues.filter(issue => {
|
|
24
|
+
// Find matching diff file β match by exact path or suffix
|
|
25
|
+
const diffFile = diff.files.find(f => f.path === issue.file ||
|
|
26
|
+
issue.file.endsWith(f.path) ||
|
|
27
|
+
f.path.endsWith(issue.file));
|
|
28
|
+
// If the file is not in the diff, exclude the issue
|
|
29
|
+
if (!diffFile)
|
|
30
|
+
return false;
|
|
31
|
+
// Deleted files have no issues to report
|
|
32
|
+
if (diffFile.status === 'deleted')
|
|
33
|
+
return false;
|
|
34
|
+
// New files: all lines are considered changed
|
|
35
|
+
if (diffFile.status === 'added')
|
|
36
|
+
return true;
|
|
37
|
+
// Modified/renamed files: check if the issue line is in changed lines
|
|
38
|
+
// If changedLines is empty (e.g. from name-status parse), include all issues
|
|
39
|
+
if (diffFile.changedLines.length === 0)
|
|
40
|
+
return true;
|
|
41
|
+
// Check if the issue line falls within changed lines
|
|
42
|
+
// Also consider a small window around changed lines for context
|
|
43
|
+
return diffFile.changedLines.includes(issue.line) ||
|
|
44
|
+
(issue.endLine !== undefined && diffFile.changedLines.some(cl => cl >= issue.line && cl <= issue.endLine));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the list of scannable file paths from a diff result.
|
|
49
|
+
*
|
|
50
|
+
* Filters out deleted files and files with unsupported extensions.
|
|
51
|
+
*
|
|
52
|
+
* @param diff - Parsed diff result
|
|
53
|
+
* @param supportedExtensions - Extensions to include (e.g. ['.ts', '.js', '.py'])
|
|
54
|
+
* @returns Array of file paths to scan
|
|
55
|
+
*/
|
|
56
|
+
export function getScannableFiles(diff, supportedExtensions = ['.ts', '.tsx', '.js', '.jsx', '.py', '.java', '.go', '.kt', '.kts']) {
|
|
57
|
+
return diff.files
|
|
58
|
+
.filter(f => f.status !== 'deleted')
|
|
59
|
+
.filter(f => {
|
|
60
|
+
const ext = '.' + f.path.split('.').pop()?.toLowerCase();
|
|
61
|
+
return supportedExtensions.includes(ext);
|
|
62
|
+
})
|
|
63
|
+
.map(f => f.path);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/diff/filter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,MAAwB,EAAE,IAAgB;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC3B,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAC5B,CAAC;QAEF,oDAAoD;QACpD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE5B,yCAAyC;QACzC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEhD,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7C,sEAAsE;QACtE,6EAA6E;QAC7E,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpD,qDAAqD;QACrD,gEAAgE;QAChE,OAAO,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/C,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CACxD,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,OAAQ,CAC/C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAgB,EAChB,sBAAgC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAEpG,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE;QACV,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;QACzD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Module β Parse and filter diffs for PR/MR scanning.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0
|
|
5
|
+
*/
|
|
6
|
+
export { parseDiff, parseNameStatus } from './parser.js';
|
|
7
|
+
export type { DiffFile, DiffResult } from './parser.js';
|
|
8
|
+
export { filterByDiff, getScannableFiles } from './filter.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diff/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Parser β Parse unified diff format and git name-status output.
|
|
3
|
+
*
|
|
4
|
+
* Extracts changed files and line ranges from unified diffs,
|
|
5
|
+
* used for diff-only scanning in PR/MR workflows.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Represents a single file in a diff.
|
|
11
|
+
*/
|
|
12
|
+
export interface DiffFile {
|
|
13
|
+
/** File path (relative to project root) */
|
|
14
|
+
path: string;
|
|
15
|
+
/** Change status */
|
|
16
|
+
status: 'added' | 'modified' | 'deleted' | 'renamed';
|
|
17
|
+
/** Number of added lines */
|
|
18
|
+
additions: number;
|
|
19
|
+
/** Number of deleted lines */
|
|
20
|
+
deletions: number;
|
|
21
|
+
/** Changed line numbers (in the new version of the file) */
|
|
22
|
+
changedLines: number[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parsed diff result containing all changed files.
|
|
26
|
+
*/
|
|
27
|
+
export interface DiffResult {
|
|
28
|
+
/** All changed files */
|
|
29
|
+
files: DiffFile[];
|
|
30
|
+
/** Total additions across all files */
|
|
31
|
+
totalAdditions: number;
|
|
32
|
+
/** Total deletions across all files */
|
|
33
|
+
totalDeletions: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse unified diff text (output of `git diff`) into structured DiffResult.
|
|
37
|
+
*
|
|
38
|
+
* Handles standard unified diff format with `---`, `+++`, `@@` hunk headers,
|
|
39
|
+
* and `+`/`-` line markers.
|
|
40
|
+
*
|
|
41
|
+
* @param diffText - Raw unified diff text
|
|
42
|
+
* @returns Parsed DiffResult
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseDiff(diffText: string): DiffResult;
|
|
45
|
+
/**
|
|
46
|
+
* Parse `git diff --name-status` output into DiffFile array.
|
|
47
|
+
*
|
|
48
|
+
* Each line is in format: `STATUS\tFILENAME` or `STATUS\tOLD\tNEW` (for renames).
|
|
49
|
+
*
|
|
50
|
+
* Status codes:
|
|
51
|
+
* - A: Added
|
|
52
|
+
* - M: Modified
|
|
53
|
+
* - D: Deleted
|
|
54
|
+
* - R: Renamed (with similarity percentage, e.g. R100)
|
|
55
|
+
* - C: Copied
|
|
56
|
+
*
|
|
57
|
+
* @param output - Raw `git diff --name-status` output
|
|
58
|
+
* @returns Array of DiffFile (without line-level info)
|
|
59
|
+
*/
|
|
60
|
+
export declare function parseNameStatus(output: string): DiffFile[];
|
|
61
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/diff/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAmItD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CA0D1D"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Parser β Parse unified diff format and git name-status output.
|
|
3
|
+
*
|
|
4
|
+
* Extracts changed files and line ranges from unified diffs,
|
|
5
|
+
* used for diff-only scanning in PR/MR workflows.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
// βββ Unified Diff Parser ββββββββββββββββββββββββββββββββββββββββββ
|
|
10
|
+
/**
|
|
11
|
+
* Parse unified diff text (output of `git diff`) into structured DiffResult.
|
|
12
|
+
*
|
|
13
|
+
* Handles standard unified diff format with `---`, `+++`, `@@` hunk headers,
|
|
14
|
+
* and `+`/`-` line markers.
|
|
15
|
+
*
|
|
16
|
+
* @param diffText - Raw unified diff text
|
|
17
|
+
* @returns Parsed DiffResult
|
|
18
|
+
*/
|
|
19
|
+
export function parseDiff(diffText) {
|
|
20
|
+
const files = [];
|
|
21
|
+
let totalAdditions = 0;
|
|
22
|
+
let totalDeletions = 0;
|
|
23
|
+
if (!diffText || !diffText.trim()) {
|
|
24
|
+
return { files, totalAdditions, totalDeletions };
|
|
25
|
+
}
|
|
26
|
+
const lines = diffText.split('\n');
|
|
27
|
+
let currentFile = null;
|
|
28
|
+
let newLineNum = 0;
|
|
29
|
+
let oldLineNum = 0;
|
|
30
|
+
let inHunk = false;
|
|
31
|
+
for (let i = 0; i < lines.length; i++) {
|
|
32
|
+
const line = lines[i];
|
|
33
|
+
// New file diff header: diff --git a/path b/path
|
|
34
|
+
if (line.startsWith('diff --git ')) {
|
|
35
|
+
// Save previous file
|
|
36
|
+
if (currentFile) {
|
|
37
|
+
files.push(currentFile);
|
|
38
|
+
}
|
|
39
|
+
// Reset hunk tracking
|
|
40
|
+
inHunk = false;
|
|
41
|
+
newLineNum = 0;
|
|
42
|
+
oldLineNum = 0;
|
|
43
|
+
// Extract file path from "diff --git a/path b/path"
|
|
44
|
+
const match = line.match(/^diff --git a\/(.+?) b\/(.+)$/);
|
|
45
|
+
if (match) {
|
|
46
|
+
const oldPath = match[1];
|
|
47
|
+
const newPath = match[2];
|
|
48
|
+
currentFile = {
|
|
49
|
+
path: newPath,
|
|
50
|
+
status: oldPath !== newPath ? 'renamed' : 'modified',
|
|
51
|
+
additions: 0,
|
|
52
|
+
deletions: 0,
|
|
53
|
+
changedLines: [],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// Detect new file: "new file mode"
|
|
59
|
+
if (line.startsWith('new file mode') && currentFile) {
|
|
60
|
+
currentFile.status = 'added';
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
// Detect deleted file: "deleted file mode"
|
|
64
|
+
if (line.startsWith('deleted file mode') && currentFile) {
|
|
65
|
+
currentFile.status = 'deleted';
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// Detect rename: "rename from" / "rename to"
|
|
69
|
+
if (line.startsWith('rename from') && currentFile) {
|
|
70
|
+
currentFile.status = 'renamed';
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (line.startsWith('rename to') && currentFile) {
|
|
74
|
+
const match = line.match(/^rename to (.+)$/);
|
|
75
|
+
if (match) {
|
|
76
|
+
currentFile.path = match[1];
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Hunk header: @@ -oldStart,oldCount +newStart,newCount @@
|
|
81
|
+
if (line.startsWith('@@') && currentFile) {
|
|
82
|
+
const hunkMatch = line.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);
|
|
83
|
+
if (hunkMatch) {
|
|
84
|
+
oldLineNum = parseInt(hunkMatch[1], 10);
|
|
85
|
+
newLineNum = parseInt(hunkMatch[2], 10);
|
|
86
|
+
inHunk = true;
|
|
87
|
+
}
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Skip --- and +++ header lines
|
|
91
|
+
if (line.startsWith('---') || line.startsWith('+++')) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (!inHunk || !currentFile)
|
|
95
|
+
continue;
|
|
96
|
+
// Added line
|
|
97
|
+
if (line.startsWith('+')) {
|
|
98
|
+
currentFile.additions++;
|
|
99
|
+
if (newLineNum > 0) {
|
|
100
|
+
currentFile.changedLines.push(newLineNum);
|
|
101
|
+
}
|
|
102
|
+
totalAdditions++;
|
|
103
|
+
newLineNum++;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
// Deleted line
|
|
107
|
+
if (line.startsWith('-')) {
|
|
108
|
+
currentFile.deletions++;
|
|
109
|
+
totalDeletions++;
|
|
110
|
+
// Track the position in the new file for filtering context
|
|
111
|
+
if (newLineNum > 0) {
|
|
112
|
+
currentFile.changedLines.push(newLineNum);
|
|
113
|
+
}
|
|
114
|
+
oldLineNum++;
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
// Context line (space prefix)
|
|
118
|
+
if (line.startsWith(' ') || line === '') {
|
|
119
|
+
newLineNum++;
|
|
120
|
+
oldLineNum++;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Save last file
|
|
125
|
+
if (currentFile) {
|
|
126
|
+
files.push(currentFile);
|
|
127
|
+
}
|
|
128
|
+
// Deduplicate changedLines for each file
|
|
129
|
+
for (const file of files) {
|
|
130
|
+
file.changedLines = [...new Set(file.changedLines)].sort((a, b) => a - b);
|
|
131
|
+
}
|
|
132
|
+
return { files, totalAdditions, totalDeletions };
|
|
133
|
+
}
|
|
134
|
+
// βββ Name-Status Parser ββββββββββββββββββββββββββββββββββββββββββββ
|
|
135
|
+
/**
|
|
136
|
+
* Parse `git diff --name-status` output into DiffFile array.
|
|
137
|
+
*
|
|
138
|
+
* Each line is in format: `STATUS\tFILENAME` or `STATUS\tOLD\tNEW` (for renames).
|
|
139
|
+
*
|
|
140
|
+
* Status codes:
|
|
141
|
+
* - A: Added
|
|
142
|
+
* - M: Modified
|
|
143
|
+
* - D: Deleted
|
|
144
|
+
* - R: Renamed (with similarity percentage, e.g. R100)
|
|
145
|
+
* - C: Copied
|
|
146
|
+
*
|
|
147
|
+
* @param output - Raw `git diff --name-status` output
|
|
148
|
+
* @returns Array of DiffFile (without line-level info)
|
|
149
|
+
*/
|
|
150
|
+
export function parseNameStatus(output) {
|
|
151
|
+
const files = [];
|
|
152
|
+
if (!output || !output.trim()) {
|
|
153
|
+
return files;
|
|
154
|
+
}
|
|
155
|
+
const lines = output.trim().split('\n');
|
|
156
|
+
for (const line of lines) {
|
|
157
|
+
const trimmed = line.trim();
|
|
158
|
+
if (!trimmed)
|
|
159
|
+
continue;
|
|
160
|
+
// Split by tab
|
|
161
|
+
const parts = trimmed.split('\t');
|
|
162
|
+
if (parts.length < 2)
|
|
163
|
+
continue;
|
|
164
|
+
const statusCode = parts[0].charAt(0).toUpperCase();
|
|
165
|
+
let path;
|
|
166
|
+
let status;
|
|
167
|
+
switch (statusCode) {
|
|
168
|
+
case 'A':
|
|
169
|
+
status = 'added';
|
|
170
|
+
path = parts[1];
|
|
171
|
+
break;
|
|
172
|
+
case 'M':
|
|
173
|
+
status = 'modified';
|
|
174
|
+
path = parts[1];
|
|
175
|
+
break;
|
|
176
|
+
case 'D':
|
|
177
|
+
status = 'deleted';
|
|
178
|
+
path = parts[1];
|
|
179
|
+
break;
|
|
180
|
+
case 'R':
|
|
181
|
+
status = 'renamed';
|
|
182
|
+
path = parts.length >= 3 ? parts[2] : parts[1]; // new path
|
|
183
|
+
break;
|
|
184
|
+
case 'C':
|
|
185
|
+
status = 'added'; // Treat copies as additions
|
|
186
|
+
path = parts.length >= 3 ? parts[2] : parts[1];
|
|
187
|
+
break;
|
|
188
|
+
default:
|
|
189
|
+
// Unknown status, treat as modified
|
|
190
|
+
status = 'modified';
|
|
191
|
+
path = parts[1];
|
|
192
|
+
}
|
|
193
|
+
files.push({
|
|
194
|
+
path,
|
|
195
|
+
status,
|
|
196
|
+
additions: 0,
|
|
197
|
+
deletions: 0,
|
|
198
|
+
changedLines: [], // Not available from name-status
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return files;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/diff/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English Message Catalog
|
|
3
|
+
*
|
|
4
|
+
* All user-visible strings in English.
|
|
5
|
+
*
|
|
6
|
+
* @since 0.4.0
|
|
7
|
+
*/
|
|
8
|
+
import type { Locale } from './types.js';
|
|
9
|
+
export declare const EN_MESSAGES: Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Type for the message catalog.
|
|
12
|
+
*/
|
|
13
|
+
export type MessageCatalog = typeof EN_MESSAGES;
|
|
14
|
+
/**
|
|
15
|
+
* Get the locale identifier for English.
|
|
16
|
+
*/
|
|
17
|
+
export declare const EN_LOCALE: Locale;
|
|
18
|
+
//# sourceMappingURL=en.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmF9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,WAAW,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAa,CAAC"}
|
package/dist/i18n/en.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English Message Catalog
|
|
3
|
+
*
|
|
4
|
+
* All user-visible strings in English.
|
|
5
|
+
*
|
|
6
|
+
* @since 0.4.0
|
|
7
|
+
*/
|
|
8
|
+
export const EN_MESSAGES = {
|
|
9
|
+
// βββ Scan Messages ββββββββββββββββββββββββββββββββββββββββββββ
|
|
10
|
+
'scan.start': 'Scanning {count} files...',
|
|
11
|
+
'scan.complete': 'Scan complete in {duration}ms',
|
|
12
|
+
'scan.noFiles': 'No files to scan',
|
|
13
|
+
// βββ Detector Messages ββββββββββββββββββββββββββββββββββββββββ
|
|
14
|
+
'detector.hallucinated-import': 'Hallucinated import: package "{package}" does not exist in {registry}',
|
|
15
|
+
'detector.hallucinated-import.offline': 'Cannot verify import "{package}" (offline mode)',
|
|
16
|
+
'detector.hallucinated-import.phantom-function': 'Function "{name}" is called but not declared or imported in this file',
|
|
17
|
+
'detector.stale-api': 'Deprecated API: "{api}" β use "{replacement}" instead',
|
|
18
|
+
'detector.stale-api.since': 'Deprecated since {since}: "{api}" β use "{replacement}" instead',
|
|
19
|
+
'detector.context-coherence.unused': 'Unused non-exported {kind} "{name}" (possible AI context loss)',
|
|
20
|
+
'detector.context-coherence.duplicate': 'Duplicate {kind} name "{name}" in same scope',
|
|
21
|
+
'detector.context-coherence.inconsistent-import': 'Inconsistent imports: "{module1}" and "{module2}" serve similar purpose',
|
|
22
|
+
'detector.context-coherence.undefined-ref': 'Reference to undefined symbol "{name}"',
|
|
23
|
+
'detector.over-engineering.params': 'Function "{name}" has {count} parameters (max recommended: {max})',
|
|
24
|
+
'detector.over-engineering.nesting': 'Nesting depth {depth} exceeds maximum {max}',
|
|
25
|
+
'detector.over-engineering.loc': 'Function "{name}" has {lines} lines (max recommended: {max})',
|
|
26
|
+
'detector.over-engineering.complexity': 'Cyclomatic complexity {value} exceeds maximum {max}',
|
|
27
|
+
'detector.security.hardcoded-secret': 'Possible hardcoded secret: {pattern}',
|
|
28
|
+
'detector.security.eval': 'Dangerous eval/exec usage',
|
|
29
|
+
'detector.security.weak-crypto': 'Weak cryptographic algorithm: {algo}',
|
|
30
|
+
'detector.security.sql-injection': 'Possible SQL injection via string concatenation',
|
|
31
|
+
'detector.incomplete.empty-catch': 'Empty catch block β potential error swallowing',
|
|
32
|
+
'detector.incomplete.stub': 'Stub implementation found: {indicator}',
|
|
33
|
+
// βββ Scoring ββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
34
|
+
'score.grade.excellent': 'Excellent',
|
|
35
|
+
'score.grade.good': 'Good',
|
|
36
|
+
'score.grade.fair': 'Fair',
|
|
37
|
+
'score.grade.poor': 'Poor',
|
|
38
|
+
'score.grade.fail': 'Fail',
|
|
39
|
+
'score.dimension.faithfulness': 'AI Faithfulness',
|
|
40
|
+
'score.dimension.freshness': 'Code Freshness',
|
|
41
|
+
'score.dimension.coherence': 'Context Coherence',
|
|
42
|
+
'score.dimension.quality': 'Implementation Quality',
|
|
43
|
+
// βββ SLA ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
44
|
+
'sla.L1': 'L1 Fast β Structural analysis only',
|
|
45
|
+
'sla.L2': 'L2 Standard β Structural + Embedding + Local AI',
|
|
46
|
+
'sla.L3': 'L3 Deep β Structural + Embedding + Remote AI',
|
|
47
|
+
// βββ Report βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
48
|
+
'report.title': 'Open Code Review Report',
|
|
49
|
+
'report.summary': '{total} issues found in {files} files',
|
|
50
|
+
'report.noIssues': 'No issues found',
|
|
51
|
+
'report.generated': 'Generated by Open Code Review v{version}',
|
|
52
|
+
'report.project': 'Project: {name}',
|
|
53
|
+
'report.date': 'Date: {date}',
|
|
54
|
+
'report.score': 'Overall Score: {score}/100',
|
|
55
|
+
'report.grade': 'Grade: {grade}',
|
|
56
|
+
'report.filesScanned': 'Files Scanned: {count}',
|
|
57
|
+
'report.passed': 'Passed: {count}',
|
|
58
|
+
'report.failed': 'Failed: {count}',
|
|
59
|
+
'report.threshold': 'Threshold: {threshold}',
|
|
60
|
+
'report.status.passed': 'PASSED',
|
|
61
|
+
'report.status.failed': 'FAILED',
|
|
62
|
+
'report.duration': 'Duration: {duration}',
|
|
63
|
+
'report.languages': 'Languages: {languages}',
|
|
64
|
+
'report.dimensions': 'Scoring Dimensions',
|
|
65
|
+
'report.issues': 'Issues',
|
|
66
|
+
'report.issues.found': '{count} issues found',
|
|
67
|
+
'report.more': '... and {count} more',
|
|
68
|
+
// βββ CLI ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
69
|
+
'cli.scanning': 'Scanning...',
|
|
70
|
+
'cli.done': 'Done!',
|
|
71
|
+
'cli.error': 'Error: {message}',
|
|
72
|
+
'cli.noFiles': 'No files matched the scan patterns',
|
|
73
|
+
'cli.offline': 'Registry verification unavailable (offline). Package existence checks skipped.',
|
|
74
|
+
// βββ Errors βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
75
|
+
'error.parser.init': 'Failed to initialize parser: {message}',
|
|
76
|
+
'error.registry.verify': 'Failed to verify package "{package}": {message}',
|
|
77
|
+
'error.config.load': 'Failed to load configuration: {message}',
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Get the locale identifier for English.
|
|
81
|
+
*/
|
|
82
|
+
export const EN_LOCALE = 'en';
|
|
83
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,iEAAiE;IAEjE,YAAY,EAAE,2BAA2B;IACzC,eAAe,EAAE,+BAA+B;IAChD,cAAc,EAAE,kBAAkB;IAElC,iEAAiE;IAEjE,8BAA8B,EAAE,uEAAuE;IACvG,sCAAsC,EAAE,iDAAiD;IACzF,+CAA+C,EAAE,uEAAuE;IACxH,oBAAoB,EAAE,uDAAuD;IAC7E,0BAA0B,EAAE,iEAAiE;IAC7F,mCAAmC,EAAE,gEAAgE;IACrG,sCAAsC,EAAE,8CAA8C;IACtF,gDAAgD,EAAE,yEAAyE;IAC3H,0CAA0C,EAAE,wCAAwC;IACpF,kCAAkC,EAAE,mEAAmE;IACvG,mCAAmC,EAAE,6CAA6C;IAClF,+BAA+B,EAAE,8DAA8D;IAC/F,sCAAsC,EAAE,qDAAqD;IAC7F,oCAAoC,EAAE,sCAAsC;IAC5E,wBAAwB,EAAE,2BAA2B;IACrD,+BAA+B,EAAE,sCAAsC;IACvE,iCAAiC,EAAE,iDAAiD;IACpF,iCAAiC,EAAE,gDAAgD;IACnF,0BAA0B,EAAE,wCAAwC;IAEpE,iEAAiE;IAEjE,uBAAuB,EAAE,WAAW;IACpC,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,MAAM;IAC1B,kBAAkB,EAAE,MAAM;IAC1B,8BAA8B,EAAE,iBAAiB;IACjD,2BAA2B,EAAE,gBAAgB;IAC7C,2BAA2B,EAAE,mBAAmB;IAChD,yBAAyB,EAAE,wBAAwB;IAEnD,iEAAiE;IAEjE,QAAQ,EAAE,oCAAoC;IAC9C,QAAQ,EAAE,iDAAiD;IAC3D,QAAQ,EAAE,8CAA8C;IAExD,iEAAiE;IAEjE,cAAc,EAAE,yBAAyB;IACzC,gBAAgB,EAAE,uCAAuC;IACzD,iBAAiB,EAAE,iBAAiB;IACpC,kBAAkB,EAAE,0CAA0C;IAC9D,gBAAgB,EAAE,iBAAiB;IACnC,aAAa,EAAE,cAAc;IAC7B,cAAc,EAAE,4BAA4B;IAC5C,cAAc,EAAE,gBAAgB;IAChC,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,wBAAwB;IAC5C,sBAAsB,EAAE,QAAQ;IAChC,sBAAsB,EAAE,QAAQ;IAChC,iBAAiB,EAAE,sBAAsB;IACzC,kBAAkB,EAAE,wBAAwB;IAC5C,mBAAmB,EAAE,oBAAoB;IACzC,eAAe,EAAE,QAAQ;IACzB,qBAAqB,EAAE,sBAAsB;IAC7C,aAAa,EAAE,sBAAsB;IAErC,iEAAiE;IAEjE,cAAc,EAAE,aAAa;IAC7B,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,kBAAkB;IAC/B,aAAa,EAAE,oCAAoC;IACnD,aAAa,EAAE,gFAAgF;IAE/F,iEAAiE;IAEjE,mBAAmB,EAAE,wCAAwC;IAC7D,uBAAuB,EAAE,iDAAiD;IAC1E,mBAAmB,EAAE,yCAAyC;CAC/D,CAAC;AAOF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAW,IAAI,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n Module β Internationalization Framework
|
|
3
|
+
*
|
|
4
|
+
* Provides translation services for all user-visible strings.
|
|
5
|
+
* Supports English (en) and Chinese (zh) locales.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
export type { Locale, I18nProvider } from './types.js';
|
|
10
|
+
export { DefaultI18nProvider, createI18n } from './provider.js';
|
|
11
|
+
export { EN_MESSAGES, EN_LOCALE } from './en.js';
|
|
12
|
+
export { ZH_MESSAGES, ZH_LOCALE } from './zh.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* i18n Module β Internationalization Framework
|
|
3
|
+
*
|
|
4
|
+
* Provides translation services for all user-visible strings.
|
|
5
|
+
* Supports English (en) and Chinese (zh) locales.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
// Provider
|
|
10
|
+
export { DefaultI18nProvider, createI18n } from './provider.js';
|
|
11
|
+
// Message catalogs (for testing or direct access)
|
|
12
|
+
export { EN_MESSAGES, EN_LOCALE } from './en.js';
|
|
13
|
+
export { ZH_MESSAGES, ZH_LOCALE } from './zh.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,WAAW;AACX,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE,kDAAkD;AAClD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default i18n Provider Implementation
|
|
3
|
+
*
|
|
4
|
+
* Provides translation services with parameter interpolation.
|
|
5
|
+
* Supports English (en) and Chinese (zh) locales.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0
|
|
8
|
+
*/
|
|
9
|
+
import type { Locale, I18nProvider } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default I18n Provider
|
|
12
|
+
*
|
|
13
|
+
* Provides translation with the following features:
|
|
14
|
+
* - English and Chinese locales
|
|
15
|
+
* - Parameter interpolation with {param} syntax
|
|
16
|
+
* - Fallback to key if translation not found
|
|
17
|
+
* - Locale switching at runtime
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* const i18n = new DefaultI18nProvider('en');
|
|
22
|
+
* console.log(i18n.t('scan.start', { count: 5 }));
|
|
23
|
+
* // Output: "Scanning 5 files..."
|
|
24
|
+
*
|
|
25
|
+
* i18n.setLocale('zh');
|
|
26
|
+
* console.log(i18n.t('scan.start', { count: 5 }));
|
|
27
|
+
* // Output: "ζ£ε¨ζ«ζ 5 δΈͺζδ»Ά..."
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare class DefaultI18nProvider implements I18nProvider {
|
|
31
|
+
private _locale;
|
|
32
|
+
private catalogs;
|
|
33
|
+
constructor(locale?: Locale);
|
|
34
|
+
get locale(): Locale;
|
|
35
|
+
setLocale(locale: Locale): void;
|
|
36
|
+
t(key: string, params?: Record<string, string | number>): string;
|
|
37
|
+
/**
|
|
38
|
+
* Check if a key exists in the current locale's catalog.
|
|
39
|
+
*/
|
|
40
|
+
has(key: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get all keys available in the current locale.
|
|
43
|
+
*/
|
|
44
|
+
keys(): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Get a raw message without interpolation.
|
|
47
|
+
*/
|
|
48
|
+
raw(key: string): string | undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a new I18n provider with the specified locale.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createI18n(locale?: Locale): I18nProvider;
|
|
54
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAsC;gBAE1C,MAAM,CAAC,EAAE,MAAM;IAU3B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM;IAgBhE;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzB;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAKhB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAIrC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAExD"}
|