@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,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python standard library modules that don't need registry verification.
|
|
3
|
+
*
|
|
4
|
+
* These are modules shipped with CPython and should never be
|
|
5
|
+
* flagged as hallucinated packages.
|
|
6
|
+
*
|
|
7
|
+
* @since 0.4.0 (V4)
|
|
8
|
+
*/
|
|
9
|
+
export const PYTHON_BUILTINS = new Set([
|
|
10
|
+
// Core
|
|
11
|
+
'os', 'sys', 're', 'json', 'math', 'random', 'datetime', 'time',
|
|
12
|
+
'pathlib', 'typing', 'collections', 'functools', 'itertools', 'io',
|
|
13
|
+
// System
|
|
14
|
+
'subprocess', 'shutil', 'tempfile', 'logging', 'unittest', 'argparse',
|
|
15
|
+
'signal', 'ctypes', 'platform',
|
|
16
|
+
// Crypto / encoding
|
|
17
|
+
'hashlib', 'hmac', 'secrets', 'base64',
|
|
18
|
+
// Network
|
|
19
|
+
'urllib', 'http', 'socket', 'ssl', 'email',
|
|
20
|
+
// Data formats
|
|
21
|
+
'csv', 'sqlite3', 'xml', 'html', 'configparser',
|
|
22
|
+
// OOP / patterns
|
|
23
|
+
'abc', 'enum', 'dataclasses', 'contextlib',
|
|
24
|
+
// Concurrency
|
|
25
|
+
'asyncio', 'concurrent', 'multiprocessing', 'threading', 'queue',
|
|
26
|
+
// Data manipulation
|
|
27
|
+
'struct', 'pickle', 'copy', 'pprint',
|
|
28
|
+
// Introspection / meta
|
|
29
|
+
'warnings', 'traceback', 'inspect', 'ast', 'importlib',
|
|
30
|
+
// Archive / compression
|
|
31
|
+
'zipfile', 'tarfile', 'gzip',
|
|
32
|
+
// Text
|
|
33
|
+
'string', 'textwrap',
|
|
34
|
+
// Compiler / parser
|
|
35
|
+
'dis', 'token', 'tokenize',
|
|
36
|
+
// Additional common stdlib modules
|
|
37
|
+
'types', 'array', 'bisect', 'heapq', 'operator', 'decimal',
|
|
38
|
+
'fractions', 'statistics', 'cmath', 'glob', 'fnmatch', 'linecache',
|
|
39
|
+
'codecs', 'unicodedata', 'locale', 'gettext', 'difflib',
|
|
40
|
+
'weakref', 'shelve', 'dbm', 'lzma', 'bz2', 'zlib',
|
|
41
|
+
'select', 'selectors', 'mmap', 'atexit', 'sched',
|
|
42
|
+
]);
|
|
43
|
+
//# sourceMappingURL=python-builtins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-builtins.js","sourceRoot":"","sources":["../../../src/registry/builtins/python-builtins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IACrC,OAAO;IACP,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAC/D,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI;IAElE,SAAS;IACT,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;IACrE,QAAQ,EAAE,QAAQ,EAAE,UAAU;IAE9B,oBAAoB;IACpB,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ;IAEtC,UAAU;IACV,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;IAE1C,eAAe;IACf,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc;IAE/C,iBAAiB;IACjB,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY;IAE1C,cAAc;IACd,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO;IAEhE,oBAAoB;IACpB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IAEpC,uBAAuB;IACvB,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW;IAEtD,wBAAwB;IACxB,SAAS,EAAE,SAAS,EAAE,MAAM;IAE5B,OAAO;IACP,QAAQ,EAAE,UAAU;IAEpB,oBAAoB;IACpB,KAAK,EAAE,OAAO,EAAE,UAAU;IAE1B,mCAAmC;IACnC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS;IAC1D,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;IAClE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;IACvD,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IACjD,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;CACjD,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry Cache
|
|
3
|
+
*
|
|
4
|
+
* File-based cache for registry lookup results.
|
|
5
|
+
* Stored at ~/.ocr/registry-cache.json by default.
|
|
6
|
+
*
|
|
7
|
+
* Cache structure:
|
|
8
|
+
* {
|
|
9
|
+
* "npm:express": { "result": {...}, "timestamp": 1710000000, "ttl": 86400 },
|
|
10
|
+
* "pypi:requests": { "result": {...}, "timestamp": 1710000000, "ttl": 86400 }
|
|
11
|
+
* }
|
|
12
|
+
*
|
|
13
|
+
* @since 0.4.0 (V4)
|
|
14
|
+
*/
|
|
15
|
+
import type { PackageVerifyResult } from './types.js';
|
|
16
|
+
export declare class RegistryCache {
|
|
17
|
+
private cacheDir;
|
|
18
|
+
private cacheFile;
|
|
19
|
+
private cache;
|
|
20
|
+
private hits;
|
|
21
|
+
private misses;
|
|
22
|
+
private loaded;
|
|
23
|
+
constructor(cacheDir?: string);
|
|
24
|
+
/**
|
|
25
|
+
* Get a cached result by key. Returns null on miss or expired entry.
|
|
26
|
+
*/
|
|
27
|
+
get(key: string): Promise<PackageVerifyResult | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Store a result in the cache.
|
|
30
|
+
*/
|
|
31
|
+
set(key: string, result: PackageVerifyResult, ttlSeconds: number): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Load cache from disk.
|
|
34
|
+
*/
|
|
35
|
+
load(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Persist cache to disk.
|
|
38
|
+
*/
|
|
39
|
+
save(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Clear all cached entries.
|
|
42
|
+
*/
|
|
43
|
+
clear(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Get cache statistics.
|
|
46
|
+
*/
|
|
47
|
+
stats(): {
|
|
48
|
+
entries: number;
|
|
49
|
+
hitRate: number;
|
|
50
|
+
sizeBytes: number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/registry/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAc,MAAM,YAAY,CAAC;AAElE,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,QAAQ,CAAC,EAAE,MAAM;IAK7B;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAuB3D;;OAEG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtF;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACH,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAqBjE"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry Cache
|
|
3
|
+
*
|
|
4
|
+
* File-based cache for registry lookup results.
|
|
5
|
+
* Stored at ~/.ocr/registry-cache.json by default.
|
|
6
|
+
*
|
|
7
|
+
* Cache structure:
|
|
8
|
+
* {
|
|
9
|
+
* "npm:express": { "result": {...}, "timestamp": 1710000000, "ttl": 86400 },
|
|
10
|
+
* "pypi:requests": { "result": {...}, "timestamp": 1710000000, "ttl": 86400 }
|
|
11
|
+
* }
|
|
12
|
+
*
|
|
13
|
+
* @since 0.4.0 (V4)
|
|
14
|
+
*/
|
|
15
|
+
import * as fs from 'node:fs';
|
|
16
|
+
import * as path from 'node:path';
|
|
17
|
+
import * as os from 'node:os';
|
|
18
|
+
export class RegistryCache {
|
|
19
|
+
cacheDir;
|
|
20
|
+
cacheFile;
|
|
21
|
+
cache = new Map();
|
|
22
|
+
hits = 0;
|
|
23
|
+
misses = 0;
|
|
24
|
+
loaded = false;
|
|
25
|
+
constructor(cacheDir) {
|
|
26
|
+
this.cacheDir = cacheDir || path.join(os.homedir(), '.ocr');
|
|
27
|
+
this.cacheFile = path.join(this.cacheDir, 'registry-cache.json');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get a cached result by key. Returns null on miss or expired entry.
|
|
31
|
+
*/
|
|
32
|
+
async get(key) {
|
|
33
|
+
if (!this.loaded) {
|
|
34
|
+
await this.load();
|
|
35
|
+
}
|
|
36
|
+
const entry = this.cache.get(key);
|
|
37
|
+
if (!entry) {
|
|
38
|
+
this.misses++;
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const now = Math.floor(Date.now() / 1000);
|
|
42
|
+
if (now - entry.timestamp > entry.ttl) {
|
|
43
|
+
// Expired
|
|
44
|
+
this.cache.delete(key);
|
|
45
|
+
this.misses++;
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
this.hits++;
|
|
49
|
+
return { ...entry.result, source: 'cache' };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Store a result in the cache.
|
|
53
|
+
*/
|
|
54
|
+
async set(key, result, ttlSeconds) {
|
|
55
|
+
if (!this.loaded) {
|
|
56
|
+
await this.load();
|
|
57
|
+
}
|
|
58
|
+
this.cache.set(key, {
|
|
59
|
+
result: { ...result },
|
|
60
|
+
timestamp: Math.floor(Date.now() / 1000),
|
|
61
|
+
ttl: ttlSeconds,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Load cache from disk.
|
|
66
|
+
*/
|
|
67
|
+
async load() {
|
|
68
|
+
this.loaded = true;
|
|
69
|
+
try {
|
|
70
|
+
if (!fs.existsSync(this.cacheFile)) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const data = fs.readFileSync(this.cacheFile, 'utf-8');
|
|
74
|
+
const parsed = JSON.parse(data);
|
|
75
|
+
this.cache = new Map(Object.entries(parsed));
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// If cache file is corrupted, start fresh
|
|
79
|
+
this.cache = new Map();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Persist cache to disk.
|
|
84
|
+
*/
|
|
85
|
+
async save() {
|
|
86
|
+
try {
|
|
87
|
+
if (!fs.existsSync(this.cacheDir)) {
|
|
88
|
+
fs.mkdirSync(this.cacheDir, { recursive: true });
|
|
89
|
+
}
|
|
90
|
+
// Prune expired entries before saving
|
|
91
|
+
const now = Math.floor(Date.now() / 1000);
|
|
92
|
+
for (const [key, entry] of this.cache) {
|
|
93
|
+
if (now - entry.timestamp > entry.ttl) {
|
|
94
|
+
this.cache.delete(key);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const obj = {};
|
|
98
|
+
for (const [key, entry] of this.cache) {
|
|
99
|
+
obj[key] = entry;
|
|
100
|
+
}
|
|
101
|
+
fs.writeFileSync(this.cacheFile, JSON.stringify(obj, null, 2), 'utf-8');
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// Cache persistence failure is non-fatal
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Clear all cached entries.
|
|
109
|
+
*/
|
|
110
|
+
async clear() {
|
|
111
|
+
this.cache = new Map();
|
|
112
|
+
this.hits = 0;
|
|
113
|
+
this.misses = 0;
|
|
114
|
+
try {
|
|
115
|
+
if (fs.existsSync(this.cacheFile)) {
|
|
116
|
+
fs.unlinkSync(this.cacheFile);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Non-fatal
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get cache statistics.
|
|
125
|
+
*/
|
|
126
|
+
stats() {
|
|
127
|
+
const total = this.hits + this.misses;
|
|
128
|
+
const hitRate = total > 0 ? this.hits / total : 0;
|
|
129
|
+
// Estimate size
|
|
130
|
+
let sizeBytes = 0;
|
|
131
|
+
try {
|
|
132
|
+
if (fs.existsSync(this.cacheFile)) {
|
|
133
|
+
sizeBytes = fs.statSync(this.cacheFile).size;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
// Estimate from in-memory data
|
|
138
|
+
sizeBytes = JSON.stringify(Object.fromEntries(this.cache)).length;
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
entries: this.cache.size,
|
|
142
|
+
hitRate,
|
|
143
|
+
sizeBytes,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/registry/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Proxy Registry — module verification against the Go module proxy.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Standard Go modules (e.g. 'github.com/gin-gonic/gin')
|
|
6
|
+
* - Go standard library detection (no proxy needed)
|
|
7
|
+
* - Custom proxy URLs (e.g. GOPROXY)
|
|
8
|
+
*
|
|
9
|
+
* @since 0.4.0 (V4)
|
|
10
|
+
*/
|
|
11
|
+
import type { PackageRegistry, PackageVerifyResult, DeprecationInfo, RegistryConfig } from './types.js';
|
|
12
|
+
import { RegistryCache } from './cache.js';
|
|
13
|
+
export declare class GoProxyRegistry implements PackageRegistry {
|
|
14
|
+
readonly name = "go";
|
|
15
|
+
readonly language = "go";
|
|
16
|
+
private baseUrl;
|
|
17
|
+
private token?;
|
|
18
|
+
private timeout;
|
|
19
|
+
private cacheTtl;
|
|
20
|
+
private cache;
|
|
21
|
+
constructor(config?: RegistryConfig, cache?: RegistryCache);
|
|
22
|
+
/**
|
|
23
|
+
* Check if an import path is a Go standard library package.
|
|
24
|
+
* Go stdlib packages don't have dots in the first path segment.
|
|
25
|
+
* Additionally, check against the known stdlib set for top-level packages.
|
|
26
|
+
*/
|
|
27
|
+
private isStdlib;
|
|
28
|
+
/**
|
|
29
|
+
* Verify if a Go module exists.
|
|
30
|
+
*
|
|
31
|
+
* 1. Check if it's a Go standard library package
|
|
32
|
+
* 2. Check cache
|
|
33
|
+
* 3. Query Go module proxy: GET {proxy}/{module}/@v/list
|
|
34
|
+
* - 200 with version list → exists
|
|
35
|
+
* - 404 or 410 → does not exist
|
|
36
|
+
* - error → assume exists (conservative)
|
|
37
|
+
*/
|
|
38
|
+
verify(packageName: string): Promise<PackageVerifyResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Encode a module path for the Go proxy.
|
|
41
|
+
* Upper case letters are encoded as !{lowercase}.
|
|
42
|
+
* e.g., "github.com/Azure/azure-sdk" → "github.com/!azure/azure-sdk"
|
|
43
|
+
*/
|
|
44
|
+
private encodeModulePath;
|
|
45
|
+
/**
|
|
46
|
+
* Check if a Go module is deprecated.
|
|
47
|
+
* The Go module proxy doesn't directly expose deprecation info.
|
|
48
|
+
* Future: could check go.mod for "Deprecated:" comments.
|
|
49
|
+
*/
|
|
50
|
+
checkDeprecated(_packageName: string, _version?: string): Promise<DeprecationInfo | null>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=go-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-registry.d.ts","sourceRoot":"","sources":["../../src/registry/go-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,qBAAa,eAAgB,YAAW,eAAe;IACrD,QAAQ,CAAC,IAAI,QAAQ;IACrB,QAAQ,CAAC,QAAQ,QAAQ;IAEzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAgB;gBAEjB,MAAM,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa;IAQ1D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAchB;;;;;;;;;OASG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmF/D;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAKhG"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go Proxy Registry — module verification against the Go module proxy.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Standard Go modules (e.g. 'github.com/gin-gonic/gin')
|
|
6
|
+
* - Go standard library detection (no proxy needed)
|
|
7
|
+
* - Custom proxy URLs (e.g. GOPROXY)
|
|
8
|
+
*
|
|
9
|
+
* @since 0.4.0 (V4)
|
|
10
|
+
*/
|
|
11
|
+
import { RegistryCache } from './cache.js';
|
|
12
|
+
import { GO_BUILTINS } from './builtins/go-builtins.js';
|
|
13
|
+
export class GoProxyRegistry {
|
|
14
|
+
name = 'go';
|
|
15
|
+
language = 'go';
|
|
16
|
+
baseUrl;
|
|
17
|
+
token;
|
|
18
|
+
timeout;
|
|
19
|
+
cacheTtl;
|
|
20
|
+
cache;
|
|
21
|
+
constructor(config, cache) {
|
|
22
|
+
this.baseUrl = config?.url || 'https://proxy.golang.org';
|
|
23
|
+
this.token = config?.token;
|
|
24
|
+
this.timeout = config?.timeoutMs || 5000;
|
|
25
|
+
this.cacheTtl = config?.cacheTtlSeconds || 86400;
|
|
26
|
+
this.cache = cache || new RegistryCache();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if an import path is a Go standard library package.
|
|
30
|
+
* Go stdlib packages don't have dots in the first path segment.
|
|
31
|
+
* Additionally, check against the known stdlib set for top-level packages.
|
|
32
|
+
*/
|
|
33
|
+
isStdlib(modulePath) {
|
|
34
|
+
const topLevel = modulePath.split('/')[0];
|
|
35
|
+
// Go stdlib packages don't contain dots in the first path segment
|
|
36
|
+
// e.g., "fmt", "net/http", "crypto/tls" are stdlib
|
|
37
|
+
// e.g., "github.com/foo/bar" is not stdlib
|
|
38
|
+
if (!topLevel.includes('.')) {
|
|
39
|
+
// Additionally verify against our known stdlib set
|
|
40
|
+
return GO_BUILTINS.has(topLevel);
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Verify if a Go module exists.
|
|
46
|
+
*
|
|
47
|
+
* 1. Check if it's a Go standard library package
|
|
48
|
+
* 2. Check cache
|
|
49
|
+
* 3. Query Go module proxy: GET {proxy}/{module}/@v/list
|
|
50
|
+
* - 200 with version list → exists
|
|
51
|
+
* - 404 or 410 → does not exist
|
|
52
|
+
* - error → assume exists (conservative)
|
|
53
|
+
*/
|
|
54
|
+
async verify(packageName) {
|
|
55
|
+
const start = Date.now();
|
|
56
|
+
// Check standard library first
|
|
57
|
+
if (this.isStdlib(packageName)) {
|
|
58
|
+
return {
|
|
59
|
+
exists: true,
|
|
60
|
+
name: packageName,
|
|
61
|
+
source: 'builtin',
|
|
62
|
+
latencyMs: Date.now() - start,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// Check cache
|
|
66
|
+
const cacheKey = `go:${packageName}`;
|
|
67
|
+
const cached = await this.cache.get(cacheKey);
|
|
68
|
+
if (cached) {
|
|
69
|
+
return { ...cached, name: packageName, latencyMs: Date.now() - start };
|
|
70
|
+
}
|
|
71
|
+
// Query Go module proxy
|
|
72
|
+
try {
|
|
73
|
+
// Module paths are case-sensitive in Go, but proxied with case-encoding
|
|
74
|
+
// Upper case letters are encoded as !{lowercase}
|
|
75
|
+
const encodedModule = this.encodeModulePath(packageName);
|
|
76
|
+
const url = `${this.baseUrl}/${encodedModule}/@v/list`;
|
|
77
|
+
const headers = {};
|
|
78
|
+
if (this.token) {
|
|
79
|
+
headers['Authorization'] = `Bearer ${this.token}`;
|
|
80
|
+
}
|
|
81
|
+
const response = await fetch(url, {
|
|
82
|
+
method: 'GET',
|
|
83
|
+
headers,
|
|
84
|
+
signal: AbortSignal.timeout(this.timeout),
|
|
85
|
+
});
|
|
86
|
+
const latencyMs = Date.now() - start;
|
|
87
|
+
if (response.status === 404 || response.status === 410) {
|
|
88
|
+
const result = {
|
|
89
|
+
exists: false,
|
|
90
|
+
name: packageName,
|
|
91
|
+
source: 'registry',
|
|
92
|
+
latencyMs,
|
|
93
|
+
};
|
|
94
|
+
await this.cache.set(cacheKey, result, this.cacheTtl);
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
// Parse version list — last line is latest
|
|
98
|
+
let version;
|
|
99
|
+
try {
|
|
100
|
+
const text = await response.text();
|
|
101
|
+
const versions = text.trim().split('\n').filter(Boolean);
|
|
102
|
+
if (versions.length > 0) {
|
|
103
|
+
version = versions[versions.length - 1];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Could not parse versions
|
|
108
|
+
}
|
|
109
|
+
const result = {
|
|
110
|
+
exists: true,
|
|
111
|
+
name: packageName,
|
|
112
|
+
version,
|
|
113
|
+
source: 'registry',
|
|
114
|
+
latencyMs,
|
|
115
|
+
};
|
|
116
|
+
await this.cache.set(cacheKey, result, this.cacheTtl);
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Network error → assume exists (conservative)
|
|
121
|
+
return {
|
|
122
|
+
exists: true,
|
|
123
|
+
name: packageName,
|
|
124
|
+
source: 'registry',
|
|
125
|
+
latencyMs: Date.now() - start,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Encode a module path for the Go proxy.
|
|
131
|
+
* Upper case letters are encoded as !{lowercase}.
|
|
132
|
+
* e.g., "github.com/Azure/azure-sdk" → "github.com/!azure/azure-sdk"
|
|
133
|
+
*/
|
|
134
|
+
encodeModulePath(modulePath) {
|
|
135
|
+
return modulePath.replace(/[A-Z]/g, (c) => `!${c.toLowerCase()}`);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Check if a Go module is deprecated.
|
|
139
|
+
* The Go module proxy doesn't directly expose deprecation info.
|
|
140
|
+
* Future: could check go.mod for "Deprecated:" comments.
|
|
141
|
+
*/
|
|
142
|
+
async checkDeprecated(_packageName, _version) {
|
|
143
|
+
// Go module proxy does not provide deprecation info via API.
|
|
144
|
+
// Deprecation is indicated in go.mod with a "Deprecated:" comment.
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=go-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-registry.js","sourceRoot":"","sources":["../../src/registry/go-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry module — Dynamic package verification.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0 (V4)
|
|
5
|
+
*/
|
|
6
|
+
export type { PackageRegistry, PackageVerifyResult, DeprecationInfo, RegistryConfig, RegistryOptions, CacheEntry, } from './types.js';
|
|
7
|
+
export { RegistryCache } from './cache.js';
|
|
8
|
+
export { NpmRegistry } from './npm-registry.js';
|
|
9
|
+
export { PyPIRegistry } from './pypi-registry.js';
|
|
10
|
+
export { MavenRegistry } from './maven-registry.js';
|
|
11
|
+
export { GoProxyRegistry } from './go-registry.js';
|
|
12
|
+
export { RegistryManager } from './registry-manager.js';
|
|
13
|
+
export { NODE_BUILTINS } from './builtins/node-builtins.js';
|
|
14
|
+
export { PYTHON_BUILTINS } from './builtins/python-builtins.js';
|
|
15
|
+
export { JAVA_BUILTINS } from './builtins/java-builtins.js';
|
|
16
|
+
export { GO_BUILTINS } from './builtins/go-builtins.js';
|
|
17
|
+
export { KOTLIN_BUILTINS } from './builtins/kotlin-builtins.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry module — Dynamic package verification.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4.0 (V4)
|
|
5
|
+
*/
|
|
6
|
+
// Cache
|
|
7
|
+
export { RegistryCache } from './cache.js';
|
|
8
|
+
// Registry implementations
|
|
9
|
+
export { NpmRegistry } from './npm-registry.js';
|
|
10
|
+
export { PyPIRegistry } from './pypi-registry.js';
|
|
11
|
+
export { MavenRegistry } from './maven-registry.js';
|
|
12
|
+
export { GoProxyRegistry } from './go-registry.js';
|
|
13
|
+
// Manager
|
|
14
|
+
export { RegistryManager } from './registry-manager.js';
|
|
15
|
+
// Built-in module lists
|
|
16
|
+
export { NODE_BUILTINS } from './builtins/node-builtins.js';
|
|
17
|
+
export { PYTHON_BUILTINS } from './builtins/python-builtins.js';
|
|
18
|
+
export { JAVA_BUILTINS } from './builtins/java-builtins.js';
|
|
19
|
+
export { GO_BUILTINS } from './builtins/go-builtins.js';
|
|
20
|
+
export { KOTLIN_BUILTINS } from './builtins/kotlin-builtins.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,wBAAwB;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maven Registry — package verification against Maven Central.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - groupId:artifactId format (e.g. 'org.springframework.boot:spring-boot')
|
|
6
|
+
* - Java package name lookup (e.g. 'org.springframework.boot')
|
|
7
|
+
* - Custom Nexus/Artifactory URLs
|
|
8
|
+
*
|
|
9
|
+
* Used for both Java and Kotlin packages.
|
|
10
|
+
*
|
|
11
|
+
* @since 0.4.0 (V4)
|
|
12
|
+
*/
|
|
13
|
+
import type { PackageRegistry, PackageVerifyResult, DeprecationInfo, RegistryConfig } from './types.js';
|
|
14
|
+
import { RegistryCache } from './cache.js';
|
|
15
|
+
export declare class MavenRegistry implements PackageRegistry {
|
|
16
|
+
readonly name = "maven";
|
|
17
|
+
readonly language = "java";
|
|
18
|
+
private baseUrl;
|
|
19
|
+
private token?;
|
|
20
|
+
private timeout;
|
|
21
|
+
private cacheTtl;
|
|
22
|
+
private cache;
|
|
23
|
+
constructor(config?: RegistryConfig, cache?: RegistryCache);
|
|
24
|
+
/**
|
|
25
|
+
* Check if a Java/Kotlin import is a standard library package.
|
|
26
|
+
* Matches against top-level prefixes (e.g. 'java.util' matches 'java.util.List').
|
|
27
|
+
*/
|
|
28
|
+
private isBuiltin;
|
|
29
|
+
/**
|
|
30
|
+
* Extract groupId from a package name or groupId:artifactId format.
|
|
31
|
+
*
|
|
32
|
+
* Formats:
|
|
33
|
+
* - "org.springframework.boot:spring-boot" → groupId: "org.springframework.boot"
|
|
34
|
+
* - "org.springframework.boot" → groupId: "org.springframework.boot"
|
|
35
|
+
* - "com.google.guava" → groupId: "com.google.guava"
|
|
36
|
+
*/
|
|
37
|
+
private extractGroupId;
|
|
38
|
+
/**
|
|
39
|
+
* Verify if a Maven package/group exists.
|
|
40
|
+
*
|
|
41
|
+
* 1. Check if it's a Java/Kotlin standard library package
|
|
42
|
+
* 2. Check cache
|
|
43
|
+
* 3. Query Maven Central Search API:
|
|
44
|
+
* GET {baseUrl}/solrsearch/select?q=g:{groupId}&rows=1&wt=json
|
|
45
|
+
* - response.numFound > 0 → exists
|
|
46
|
+
* - response.numFound === 0 → does not exist
|
|
47
|
+
* - error → assume exists (conservative)
|
|
48
|
+
*/
|
|
49
|
+
verify(packageName: string): Promise<PackageVerifyResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a Maven package is deprecated.
|
|
52
|
+
* Maven Central doesn't have a native deprecation field.
|
|
53
|
+
* This is a best-effort check — returns null in most cases.
|
|
54
|
+
*/
|
|
55
|
+
checkDeprecated(_packageName: string, _version?: string): Promise<DeprecationInfo | null>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=maven-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maven-registry.d.ts","sourceRoot":"","sources":["../../src/registry/maven-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,QAAQ,UAAU;IAE3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAgB;gBAEjB,MAAM,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa;IAQ1D;;;OAGG;IACH,OAAO,CAAC,SAAS;IASjB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;;;;;;OAUG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6F/D;;;;OAIG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAKhG"}
|