@codragraph/cli 1.6.2
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/README.md +341 -0
- package/dist/_shared/graph/types.d.ts +81 -0
- package/dist/_shared/graph/types.d.ts.map +1 -0
- package/dist/_shared/graph/types.js +8 -0
- package/dist/_shared/graph/types.js.map +1 -0
- package/dist/_shared/index.d.ts +55 -0
- package/dist/_shared/index.d.ts.map +1 -0
- package/dist/_shared/index.js +39 -0
- package/dist/_shared/index.js.map +1 -0
- package/dist/_shared/language-detection.d.ts +23 -0
- package/dist/_shared/language-detection.d.ts.map +1 -0
- package/dist/_shared/language-detection.js +139 -0
- package/dist/_shared/language-detection.js.map +1 -0
- package/dist/_shared/languages.d.ts +26 -0
- package/dist/_shared/languages.d.ts.map +1 -0
- package/dist/_shared/languages.js +27 -0
- package/dist/_shared/languages.js.map +1 -0
- package/dist/_shared/lbug/schema-constants.d.ts +16 -0
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -0
- package/dist/_shared/lbug/schema-constants.js +67 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -0
- package/dist/_shared/mro-strategy.d.ts +41 -0
- package/dist/_shared/mro-strategy.d.ts.map +1 -0
- package/dist/_shared/mro-strategy.js +2 -0
- package/dist/_shared/mro-strategy.js.map +1 -0
- package/dist/_shared/pipeline.d.ts +16 -0
- package/dist/_shared/pipeline.d.ts.map +1 -0
- package/dist/_shared/pipeline.js +5 -0
- package/dist/_shared/pipeline.js.map +1 -0
- package/dist/_shared/scope-resolution/def-index.d.ts +36 -0
- package/dist/_shared/scope-resolution/def-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/def-index.js +51 -0
- package/dist/_shared/scope-resolution/def-index.js.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts +69 -0
- package/dist/_shared/scope-resolution/evidence-weights.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/evidence-weights.js +84 -0
- package/dist/_shared/scope-resolution/evidence-weights.js.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts +139 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js +479 -0
- package/dist/_shared/scope-resolution/finalize-algorithm.js.map +1 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts +26 -0
- package/dist/_shared/scope-resolution/language-classification.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/language-classification.js +44 -0
- package/dist/_shared/scope-resolution/language-classification.js.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts +80 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js +79 -0
- package/dist/_shared/scope-resolution/method-dispatch-index.js.map +1 -0
- package/dist/_shared/scope-resolution/module-scope-index.d.ts +46 -0
- package/dist/_shared/scope-resolution/module-scope-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/module-scope-index.js +58 -0
- package/dist/_shared/scope-resolution/module-scope-index.js.map +1 -0
- package/dist/_shared/scope-resolution/origin-priority.d.ts +14 -0
- package/dist/_shared/scope-resolution/origin-priority.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/origin-priority.js +21 -0
- package/dist/_shared/scope-resolution/origin-priority.js.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts +76 -0
- package/dist/_shared/scope-resolution/parsed-file.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/parsed-file.js +54 -0
- package/dist/_shared/scope-resolution/parsed-file.js.map +1 -0
- package/dist/_shared/scope-resolution/position-index.d.ts +62 -0
- package/dist/_shared/scope-resolution/position-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/position-index.js +134 -0
- package/dist/_shared/scope-resolution/position-index.js.map +1 -0
- package/dist/_shared/scope-resolution/qualified-name-index.d.ts +44 -0
- package/dist/_shared/scope-resolution/qualified-name-index.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/qualified-name-index.js +75 -0
- package/dist/_shared/scope-resolution/qualified-name-index.js.map +1 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts +75 -0
- package/dist/_shared/scope-resolution/reference-site.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/reference-site.js +24 -0
- package/dist/_shared/scope-resolution/reference-site.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/class-registry.d.ts +27 -0
- package/dist/_shared/scope-resolution/registries/class-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/class-registry.js +30 -0
- package/dist/_shared/scope-resolution/registries/class-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts +69 -0
- package/dist/_shared/scope-resolution/registries/context.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/context.js +44 -0
- package/dist/_shared/scope-resolution/registries/context.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/evidence.d.ts +56 -0
- package/dist/_shared/scope-resolution/registries/evidence.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/evidence.js +150 -0
- package/dist/_shared/scope-resolution/registries/evidence.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/field-registry.d.ts +26 -0
- package/dist/_shared/scope-resolution/registries/field-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/field-registry.js +31 -0
- package/dist/_shared/scope-resolution/registries/field-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts +81 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.js +332 -0
- package/dist/_shared/scope-resolution/registries/lookup-core.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.d.ts +33 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.js +56 -0
- package/dist/_shared/scope-resolution/registries/lookup-qualified.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/method-registry.d.ts +36 -0
- package/dist/_shared/scope-resolution/registries/method-registry.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/method-registry.js +32 -0
- package/dist/_shared/scope-resolution/registries/method-registry.js.map +1 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.d.ts +43 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.js +60 -0
- package/dist/_shared/scope-resolution/registries/tie-breaks.js.map +1 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.d.ts +53 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.js +126 -0
- package/dist/_shared/scope-resolution/resolve-type-ref.js.map +1 -0
- package/dist/_shared/scope-resolution/scope-id.d.ts +43 -0
- package/dist/_shared/scope-resolution/scope-id.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-id.js +46 -0
- package/dist/_shared/scope-resolution/scope-id.js.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts +61 -0
- package/dist/_shared/scope-resolution/scope-tree.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/scope-tree.js +186 -0
- package/dist/_shared/scope-resolution/scope-tree.js.map +1 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts +63 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.js +122 -0
- package/dist/_shared/scope-resolution/shadow/aggregate.js.map +1 -0
- package/dist/_shared/scope-resolution/shadow/diff.d.ts +59 -0
- package/dist/_shared/scope-resolution/shadow/diff.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/shadow/diff.js +79 -0
- package/dist/_shared/scope-resolution/shadow/diff.js.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts +34 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/_shared/scope-resolution/symbol-definition.js.map +1 -0
- package/dist/_shared/scope-resolution/types.d.ts +356 -0
- package/dist/_shared/scope-resolution/types.d.ts.map +1 -0
- package/dist/_shared/scope-resolution/types.js +17 -0
- package/dist/_shared/scope-resolution/types.js.map +1 -0
- package/dist/cli/ai-context.d.ts +27 -0
- package/dist/cli/ai-context.js +270 -0
- package/dist/cli/analyze.d.ts +43 -0
- package/dist/cli/analyze.js +312 -0
- package/dist/cli/augment.d.ts +13 -0
- package/dist/cli/augment.js +33 -0
- package/dist/cli/clean.d.ts +10 -0
- package/dist/cli/clean.js +78 -0
- package/dist/cli/config.d.ts +27 -0
- package/dist/cli/config.js +106 -0
- package/dist/cli/eval-server.d.ts +37 -0
- package/dist/cli/eval-server.js +398 -0
- package/dist/cli/graphstore.d.ts +40 -0
- package/dist/cli/graphstore.js +639 -0
- package/dist/cli/group.d.ts +2 -0
- package/dist/cli/group.js +306 -0
- package/dist/cli/index-repo.d.ts +15 -0
- package/dist/cli/index-repo.js +120 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +236 -0
- package/dist/cli/lazy-action.d.ts +6 -0
- package/dist/cli/lazy-action.js +18 -0
- package/dist/cli/list.d.ts +6 -0
- package/dist/cli/list.js +40 -0
- package/dist/cli/mcp.d.ts +8 -0
- package/dist/cli/mcp.js +36 -0
- package/dist/cli/remove.d.ts +30 -0
- package/dist/cli/remove.js +99 -0
- package/dist/cli/serve.d.ts +4 -0
- package/dist/cli/serve.js +37 -0
- package/dist/cli/setup.d.ts +8 -0
- package/dist/cli/setup.js +543 -0
- package/dist/cli/skill-gen.d.ts +26 -0
- package/dist/cli/skill-gen.js +555 -0
- package/dist/cli/status.d.ts +6 -0
- package/dist/cli/status.js +36 -0
- package/dist/cli/tool.d.ts +43 -0
- package/dist/cli/tool.js +168 -0
- package/dist/cli/wiki.d.ts +21 -0
- package/dist/cli/wiki.js +579 -0
- package/dist/config/ignore-service.d.ts +35 -0
- package/dist/config/ignore-service.js +436 -0
- package/dist/config/supported-languages.d.ts +13 -0
- package/dist/config/supported-languages.js +13 -0
- package/dist/core/augmentation/engine.d.ts +26 -0
- package/dist/core/augmentation/engine.js +252 -0
- package/dist/core/embeddings/ast-utils.d.ts +22 -0
- package/dist/core/embeddings/ast-utils.js +105 -0
- package/dist/core/embeddings/character-chunk.d.ts +12 -0
- package/dist/core/embeddings/character-chunk.js +43 -0
- package/dist/core/embeddings/chunker.d.ts +14 -0
- package/dist/core/embeddings/chunker.js +239 -0
- package/dist/core/embeddings/embedder.d.ts +65 -0
- package/dist/core/embeddings/embedder.js +320 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +62 -0
- package/dist/core/embeddings/embedding-pipeline.js +486 -0
- package/dist/core/embeddings/http-client.d.ts +31 -0
- package/dist/core/embeddings/http-client.js +179 -0
- package/dist/core/embeddings/index.d.ts +10 -0
- package/dist/core/embeddings/index.js +10 -0
- package/dist/core/embeddings/line-index.d.ts +7 -0
- package/dist/core/embeddings/line-index.js +42 -0
- package/dist/core/embeddings/server-mapping.d.ts +15 -0
- package/dist/core/embeddings/server-mapping.js +33 -0
- package/dist/core/embeddings/structural-extractor.d.ts +15 -0
- package/dist/core/embeddings/structural-extractor.js +58 -0
- package/dist/core/embeddings/text-generator.d.ts +31 -0
- package/dist/core/embeddings/text-generator.js +208 -0
- package/dist/core/embeddings/types.d.ts +207 -0
- package/dist/core/embeddings/types.js +200 -0
- package/dist/core/git-staleness.d.ts +31 -0
- package/dist/core/git-staleness.js +137 -0
- package/dist/core/graph/graph.d.ts +2 -0
- package/dist/core/graph/graph.js +173 -0
- package/dist/core/graph/types.d.ts +36 -0
- package/dist/core/graph/types.js +1 -0
- package/dist/core/graphstore/index.d.ts +46 -0
- package/dist/core/graphstore/index.js +80 -0
- package/dist/core/graphstore/lbug-row-source.d.ts +19 -0
- package/dist/core/graphstore/lbug-row-source.js +141 -0
- package/dist/core/group/bridge-db.d.ts +82 -0
- package/dist/core/group/bridge-db.js +460 -0
- package/dist/core/group/bridge-schema.d.ts +27 -0
- package/dist/core/group/bridge-schema.js +55 -0
- package/dist/core/group/config-parser.d.ts +7 -0
- package/dist/core/group/config-parser.js +100 -0
- package/dist/core/group/contract-extractor.d.ts +7 -0
- package/dist/core/group/contract-extractor.js +1 -0
- package/dist/core/group/cross-impact.d.ts +41 -0
- package/dist/core/group/cross-impact.js +441 -0
- package/dist/core/group/extractors/fs-utils.d.ts +10 -0
- package/dist/core/group/extractors/fs-utils.js +24 -0
- package/dist/core/group/extractors/grpc-extractor.d.ts +25 -0
- package/dist/core/group/extractors/grpc-extractor.js +401 -0
- package/dist/core/group/extractors/grpc-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/go.js +97 -0
- package/dist/core/group/extractors/grpc-patterns/index.d.ts +19 -0
- package/dist/core/group/extractors/grpc-patterns/index.js +46 -0
- package/dist/core/group/extractors/grpc-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/java.js +173 -0
- package/dist/core/group/extractors/grpc-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/grpc-patterns/node.js +290 -0
- package/dist/core/group/extractors/grpc-patterns/proto.d.ts +9 -0
- package/dist/core/group/extractors/grpc-patterns/proto.js +134 -0
- package/dist/core/group/extractors/grpc-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/grpc-patterns/python.js +67 -0
- package/dist/core/group/extractors/grpc-patterns/types.d.ts +50 -0
- package/dist/core/group/extractors/grpc-patterns/types.js +1 -0
- package/dist/core/group/extractors/http-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/go.js +215 -0
- package/dist/core/group/extractors/http-patterns/index.d.ts +17 -0
- package/dist/core/group/extractors/http-patterns/index.js +44 -0
- package/dist/core/group/extractors/http-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/java.js +253 -0
- package/dist/core/group/extractors/http-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/http-patterns/node.js +484 -0
- package/dist/core/group/extractors/http-patterns/php.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/php.js +178 -0
- package/dist/core/group/extractors/http-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/http-patterns/python.js +133 -0
- package/dist/core/group/extractors/http-patterns/types.d.ts +61 -0
- package/dist/core/group/extractors/http-patterns/types.js +1 -0
- package/dist/core/group/extractors/http-route-extractor.d.ts +21 -0
- package/dist/core/group/extractors/http-route-extractor.js +421 -0
- package/dist/core/group/extractors/manifest-extractor.d.ts +54 -0
- package/dist/core/group/extractors/manifest-extractor.js +292 -0
- package/dist/core/group/extractors/topic-extractor.d.ts +8 -0
- package/dist/core/group/extractors/topic-extractor.js +97 -0
- package/dist/core/group/extractors/topic-patterns/go.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/go.js +120 -0
- package/dist/core/group/extractors/topic-patterns/index.d.ts +14 -0
- package/dist/core/group/extractors/topic-patterns/index.js +38 -0
- package/dist/core/group/extractors/topic-patterns/java.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/java.js +80 -0
- package/dist/core/group/extractors/topic-patterns/node.d.ts +4 -0
- package/dist/core/group/extractors/topic-patterns/node.js +155 -0
- package/dist/core/group/extractors/topic-patterns/python.d.ts +2 -0
- package/dist/core/group/extractors/topic-patterns/python.js +116 -0
- package/dist/core/group/extractors/topic-patterns/types.d.ts +25 -0
- package/dist/core/group/extractors/topic-patterns/types.js +10 -0
- package/dist/core/group/extractors/tree-sitter-scanner.d.ts +113 -0
- package/dist/core/group/extractors/tree-sitter-scanner.js +94 -0
- package/dist/core/group/group-path-utils.d.ts +17 -0
- package/dist/core/group/group-path-utils.js +40 -0
- package/dist/core/group/matching.d.ts +13 -0
- package/dist/core/group/matching.js +198 -0
- package/dist/core/group/normalization.d.ts +3 -0
- package/dist/core/group/normalization.js +115 -0
- package/dist/core/group/resolve-at-member.d.ts +10 -0
- package/dist/core/group/resolve-at-member.js +31 -0
- package/dist/core/group/service-boundary-detector.d.ts +8 -0
- package/dist/core/group/service-boundary-detector.js +155 -0
- package/dist/core/group/service.d.ts +55 -0
- package/dist/core/group/service.js +394 -0
- package/dist/core/group/storage.d.ts +9 -0
- package/dist/core/group/storage.js +91 -0
- package/dist/core/group/sync.d.ts +21 -0
- package/dist/core/group/sync.js +196 -0
- package/dist/core/group/types.d.ts +160 -0
- package/dist/core/group/types.js +1 -0
- package/dist/core/ingestion/ast-cache.d.ts +26 -0
- package/dist/core/ingestion/ast-cache.js +47 -0
- package/dist/core/ingestion/binding-accumulator.d.ts +212 -0
- package/dist/core/ingestion/binding-accumulator.js +336 -0
- package/dist/core/ingestion/call-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/c-cpp.js +8 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/csharp.js +6 -0
- package/dist/core/ingestion/call-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/dart.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/go.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/jvm.js +51 -0
- package/dist/core/ingestion/call-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/php.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/python.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/ruby.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/rust.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/call-extractors/configs/swift.js +5 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/call-extractors/configs/typescript-javascript.js +8 -0
- package/dist/core/ingestion/call-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/call-extractors/generic.js +59 -0
- package/dist/core/ingestion/call-processor.d.ts +235 -0
- package/dist/core/ingestion/call-processor.js +2639 -0
- package/dist/core/ingestion/call-routing.d.ts +55 -0
- package/dist/core/ingestion/call-routing.js +95 -0
- package/dist/core/ingestion/call-types.d.ts +135 -0
- package/dist/core/ingestion/call-types.js +2 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +11 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/csharp.js +21 -0
- package/dist/core/ingestion/class-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/dart.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/class-extractors/configs/jvm.js +35 -0
- package/dist/core/ingestion/class-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/php.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/python.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/ruby.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/rust.js +7 -0
- package/dist/core/ingestion/class-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/configs/swift.js +18 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.d.ts +4 -0
- package/dist/core/ingestion/class-extractors/configs/typescript-javascript.js +28 -0
- package/dist/core/ingestion/class-extractors/generic.d.ts +2 -0
- package/dist/core/ingestion/class-extractors/generic.js +135 -0
- package/dist/core/ingestion/class-types.d.ts +34 -0
- package/dist/core/ingestion/class-types.js +1 -0
- package/dist/core/ingestion/cluster-enricher.d.ts +38 -0
- package/dist/core/ingestion/cluster-enricher.js +168 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.d.ts +57 -0
- package/dist/core/ingestion/cobol/cobol-copy-expander.js +392 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.d.ts +210 -0
- package/dist/core/ingestion/cobol/cobol-preprocessor.js +1715 -0
- package/dist/core/ingestion/cobol/jcl-parser.d.ts +68 -0
- package/dist/core/ingestion/cobol/jcl-parser.js +217 -0
- package/dist/core/ingestion/cobol/jcl-processor.d.ts +33 -0
- package/dist/core/ingestion/cobol/jcl-processor.js +229 -0
- package/dist/core/ingestion/cobol-processor.d.ts +54 -0
- package/dist/core/ingestion/cobol-processor.js +1232 -0
- package/dist/core/ingestion/community-processor.d.ts +39 -0
- package/dist/core/ingestion/community-processor.js +318 -0
- package/dist/core/ingestion/constants.d.ts +16 -0
- package/dist/core/ingestion/constants.js +16 -0
- package/dist/core/ingestion/emit-references.d.ts +88 -0
- package/dist/core/ingestion/emit-references.js +229 -0
- package/dist/core/ingestion/entry-point-scoring.d.ts +58 -0
- package/dist/core/ingestion/entry-point-scoring.js +380 -0
- package/dist/core/ingestion/export-detection.d.ts +57 -0
- package/dist/core/ingestion/export-detection.js +233 -0
- package/dist/core/ingestion/field-extractor.d.ts +29 -0
- package/dist/core/ingestion/field-extractor.js +25 -0
- package/dist/core/ingestion/field-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/c-cpp.js +104 -0
- package/dist/core/ingestion/field-extractors/configs/csharp.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/csharp.js +116 -0
- package/dist/core/ingestion/field-extractors/configs/dart.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/dart.js +78 -0
- package/dist/core/ingestion/field-extractors/configs/go.d.ts +11 -0
- package/dist/core/ingestion/field-extractors/configs/go.js +60 -0
- package/dist/core/ingestion/field-extractors/configs/helpers.d.ts +53 -0
- package/dist/core/ingestion/field-extractors/configs/helpers.js +158 -0
- package/dist/core/ingestion/field-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/jvm.js +118 -0
- package/dist/core/ingestion/field-extractors/configs/php.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/php.js +65 -0
- package/dist/core/ingestion/field-extractors/configs/python.d.ts +12 -0
- package/dist/core/ingestion/field-extractors/configs/python.js +91 -0
- package/dist/core/ingestion/field-extractors/configs/ruby.d.ts +16 -0
- package/dist/core/ingestion/field-extractors/configs/ruby.js +76 -0
- package/dist/core/ingestion/field-extractors/configs/rust.d.ts +9 -0
- package/dist/core/ingestion/field-extractors/configs/rust.js +52 -0
- package/dist/core/ingestion/field-extractors/configs/swift.d.ts +8 -0
- package/dist/core/ingestion/field-extractors/configs/swift.js +65 -0
- package/dist/core/ingestion/field-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/field-extractors/configs/typescript-javascript.js +56 -0
- package/dist/core/ingestion/field-extractors/generic.d.ts +49 -0
- package/dist/core/ingestion/field-extractors/generic.js +117 -0
- package/dist/core/ingestion/field-extractors/typescript.d.ts +77 -0
- package/dist/core/ingestion/field-extractors/typescript.js +291 -0
- package/dist/core/ingestion/field-types.d.ts +61 -0
- package/dist/core/ingestion/field-types.js +2 -0
- package/dist/core/ingestion/filesystem-walker.d.ts +28 -0
- package/dist/core/ingestion/filesystem-walker.js +91 -0
- package/dist/core/ingestion/finalize-orchestrator.d.ts +63 -0
- package/dist/core/ingestion/finalize-orchestrator.js +139 -0
- package/dist/core/ingestion/framework-detection.d.ts +150 -0
- package/dist/core/ingestion/framework-detection.js +786 -0
- package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +13 -0
- package/dist/core/ingestion/heritage-extractors/configs/go.js +20 -0
- package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +18 -0
- package/dist/core/ingestion/heritage-extractors/configs/ruby.js +65 -0
- package/dist/core/ingestion/heritage-extractors/generic.d.ts +23 -0
- package/dist/core/ingestion/heritage-extractors/generic.js +47 -0
- package/dist/core/ingestion/heritage-processor.d.ts +54 -0
- package/dist/core/ingestion/heritage-processor.js +360 -0
- package/dist/core/ingestion/heritage-types.d.ts +73 -0
- package/dist/core/ingestion/heritage-types.js +2 -0
- package/dist/core/ingestion/import-processor.d.ts +23 -0
- package/dist/core/ingestion/import-processor.js +373 -0
- package/dist/core/ingestion/import-resolvers/configs/c-cpp.d.ts +7 -0
- package/dist/core/ingestion/import-resolvers/configs/c-cpp.js +14 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/csharp.js +27 -0
- package/dist/core/ingestion/import-resolvers/configs/dart.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/configs/dart.js +54 -0
- package/dist/core/ingestion/import-resolvers/configs/go.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/go.js +26 -0
- package/dist/core/ingestion/import-resolvers/configs/jvm.d.ts +13 -0
- package/dist/core/ingestion/import-resolvers/configs/jvm.js +68 -0
- package/dist/core/ingestion/import-resolvers/configs/php.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/php.js +15 -0
- package/dist/core/ingestion/import-resolvers/configs/python.d.ts +12 -0
- package/dist/core/ingestion/import-resolvers/configs/python.js +41 -0
- package/dist/core/ingestion/import-resolvers/configs/ruby.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/ruby.js +16 -0
- package/dist/core/ingestion/import-resolvers/configs/rust.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/rust.js +54 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.d.ts +8 -0
- package/dist/core/ingestion/import-resolvers/configs/swift.js +29 -0
- package/dist/core/ingestion/import-resolvers/configs/typescript-javascript.d.ts +9 -0
- package/dist/core/ingestion/import-resolvers/configs/typescript-javascript.js +23 -0
- package/dist/core/ingestion/import-resolvers/csharp.d.ts +18 -0
- package/dist/core/ingestion/import-resolvers/csharp.js +115 -0
- package/dist/core/ingestion/import-resolvers/go.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/go.js +46 -0
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +27 -0
- package/dist/core/ingestion/import-resolvers/jvm.js +106 -0
- package/dist/core/ingestion/import-resolvers/php.d.ts +24 -0
- package/dist/core/ingestion/import-resolvers/php.js +77 -0
- package/dist/core/ingestion/import-resolvers/python.d.ts +22 -0
- package/dist/core/ingestion/import-resolvers/python.js +72 -0
- package/dist/core/ingestion/import-resolvers/resolver-factory.d.ts +24 -0
- package/dist/core/ingestion/import-resolvers/resolver-factory.js +33 -0
- package/dist/core/ingestion/import-resolvers/ruby.d.ts +14 -0
- package/dist/core/ingestion/import-resolvers/ruby.js +17 -0
- package/dist/core/ingestion/import-resolvers/rust.d.ts +17 -0
- package/dist/core/ingestion/import-resolvers/rust.js +75 -0
- package/dist/core/ingestion/import-resolvers/standard.d.ts +30 -0
- package/dist/core/ingestion/import-resolvers/standard.js +142 -0
- package/dist/core/ingestion/import-resolvers/types.d.ts +68 -0
- package/dist/core/ingestion/import-resolvers/types.js +6 -0
- package/dist/core/ingestion/import-resolvers/utils.d.ts +35 -0
- package/dist/core/ingestion/import-resolvers/utils.js +149 -0
- package/dist/core/ingestion/import-target-adapter.d.ts +73 -0
- package/dist/core/ingestion/import-target-adapter.js +95 -0
- package/dist/core/ingestion/language-config.d.ts +52 -0
- package/dist/core/ingestion/language-config.js +181 -0
- package/dist/core/ingestion/language-provider.d.ts +410 -0
- package/dist/core/ingestion/language-provider.js +24 -0
- package/dist/core/ingestion/languages/c-cpp.d.ts +12 -0
- package/dist/core/ingestion/languages/c-cpp.js +329 -0
- package/dist/core/ingestion/languages/cobol.d.ts +1 -0
- package/dist/core/ingestion/languages/cobol.js +26 -0
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.d.ts +21 -0
- package/dist/core/ingestion/languages/csharp/accessor-unwrap.js +56 -0
- package/dist/core/ingestion/languages/csharp/arity-metadata.d.ts +26 -0
- package/dist/core/ingestion/languages/csharp/arity-metadata.js +46 -0
- package/dist/core/ingestion/languages/csharp/arity.d.ts +23 -0
- package/dist/core/ingestion/languages/csharp/arity.js +37 -0
- package/dist/core/ingestion/languages/csharp/cache-stats.d.ts +15 -0
- package/dist/core/ingestion/languages/csharp/cache-stats.js +26 -0
- package/dist/core/ingestion/languages/csharp/captures.d.ts +19 -0
- package/dist/core/ingestion/languages/csharp/captures.js +249 -0
- package/dist/core/ingestion/languages/csharp/import-decomposer.d.ts +19 -0
- package/dist/core/ingestion/languages/csharp/import-decomposer.js +93 -0
- package/dist/core/ingestion/languages/csharp/import-target.d.ts +25 -0
- package/dist/core/ingestion/languages/csharp/import-target.js +123 -0
- package/dist/core/ingestion/languages/csharp/index.d.ts +82 -0
- package/dist/core/ingestion/languages/csharp/index.js +82 -0
- package/dist/core/ingestion/languages/csharp/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/csharp/interpret.js +132 -0
- package/dist/core/ingestion/languages/csharp/merge-bindings.d.ts +27 -0
- package/dist/core/ingestion/languages/csharp/merge-bindings.js +55 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.d.ts +50 -0
- package/dist/core/ingestion/languages/csharp/namespace-siblings.js +374 -0
- package/dist/core/ingestion/languages/csharp/query.d.ts +35 -0
- package/dist/core/ingestion/languages/csharp/query.js +515 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.d.ts +31 -0
- package/dist/core/ingestion/languages/csharp/receiver-binding.js +135 -0
- package/dist/core/ingestion/languages/csharp/scope-resolver.d.ts +10 -0
- package/dist/core/ingestion/languages/csharp/scope-resolver.js +63 -0
- package/dist/core/ingestion/languages/csharp/simple-hooks.d.ts +53 -0
- package/dist/core/ingestion/languages/csharp/simple-hooks.js +76 -0
- package/dist/core/ingestion/languages/csharp.d.ts +8 -0
- package/dist/core/ingestion/languages/csharp.js +152 -0
- package/dist/core/ingestion/languages/dart.d.ts +12 -0
- package/dist/core/ingestion/languages/dart.js +102 -0
- package/dist/core/ingestion/languages/go.d.ts +11 -0
- package/dist/core/ingestion/languages/go.js +44 -0
- package/dist/core/ingestion/languages/index.d.ts +39 -0
- package/dist/core/ingestion/languages/index.js +64 -0
- package/dist/core/ingestion/languages/java.d.ts +9 -0
- package/dist/core/ingestion/languages/java.js +44 -0
- package/dist/core/ingestion/languages/kotlin.d.ts +9 -0
- package/dist/core/ingestion/languages/kotlin.js +123 -0
- package/dist/core/ingestion/languages/php.d.ts +8 -0
- package/dist/core/ingestion/languages/php.js +240 -0
- package/dist/core/ingestion/languages/python/arity-metadata.d.ts +24 -0
- package/dist/core/ingestion/languages/python/arity-metadata.js +45 -0
- package/dist/core/ingestion/languages/python/arity.d.ts +22 -0
- package/dist/core/ingestion/languages/python/arity.js +38 -0
- package/dist/core/ingestion/languages/python/cache-stats.d.ts +17 -0
- package/dist/core/ingestion/languages/python/cache-stats.js +28 -0
- package/dist/core/ingestion/languages/python/captures.d.ts +19 -0
- package/dist/core/ingestion/languages/python/captures.js +106 -0
- package/dist/core/ingestion/languages/python/import-decomposer.d.ts +15 -0
- package/dist/core/ingestion/languages/python/import-decomposer.js +112 -0
- package/dist/core/ingestion/languages/python/import-target.d.ts +21 -0
- package/dist/core/ingestion/languages/python/import-target.js +99 -0
- package/dist/core/ingestion/languages/python/index.d.ts +80 -0
- package/dist/core/ingestion/languages/python/index.js +80 -0
- package/dist/core/ingestion/languages/python/interpret.d.ts +15 -0
- package/dist/core/ingestion/languages/python/interpret.js +191 -0
- package/dist/core/ingestion/languages/python/merge-bindings.d.ts +16 -0
- package/dist/core/ingestion/languages/python/merge-bindings.js +44 -0
- package/dist/core/ingestion/languages/python/query.d.ts +9 -0
- package/dist/core/ingestion/languages/python/query.js +267 -0
- package/dist/core/ingestion/languages/python/receiver-binding.d.ts +21 -0
- package/dist/core/ingestion/languages/python/receiver-binding.js +116 -0
- package/dist/core/ingestion/languages/python/scope-resolver.d.ts +16 -0
- package/dist/core/ingestion/languages/python/scope-resolver.js +53 -0
- package/dist/core/ingestion/languages/python/simple-hooks.d.ts +23 -0
- package/dist/core/ingestion/languages/python/simple-hooks.js +35 -0
- package/dist/core/ingestion/languages/python.d.ts +12 -0
- package/dist/core/ingestion/languages/python.js +91 -0
- package/dist/core/ingestion/languages/ruby.d.ts +9 -0
- package/dist/core/ingestion/languages/ruby.js +210 -0
- package/dist/core/ingestion/languages/rust.d.ts +12 -0
- package/dist/core/ingestion/languages/rust.js +132 -0
- package/dist/core/ingestion/languages/swift.d.ts +12 -0
- package/dist/core/ingestion/languages/swift.js +244 -0
- package/dist/core/ingestion/languages/typescript.d.ts +11 -0
- package/dist/core/ingestion/languages/typescript.js +184 -0
- package/dist/core/ingestion/languages/vue.d.ts +13 -0
- package/dist/core/ingestion/languages/vue.js +77 -0
- package/dist/core/ingestion/markdown-processor.d.ts +17 -0
- package/dist/core/ingestion/markdown-processor.js +124 -0
- package/dist/core/ingestion/method-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/ingestion/method-extractors/configs/csharp.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/csharp.js +287 -0
- package/dist/core/ingestion/method-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/dart.js +376 -0
- package/dist/core/ingestion/method-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/go.js +176 -0
- package/dist/core/ingestion/method-extractors/configs/jvm.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/jvm.js +336 -0
- package/dist/core/ingestion/method-extractors/configs/php.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/php.js +304 -0
- package/dist/core/ingestion/method-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/python.js +309 -0
- package/dist/core/ingestion/method-extractors/configs/ruby.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/ruby.js +286 -0
- package/dist/core/ingestion/method-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/rust.js +195 -0
- package/dist/core/ingestion/method-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/method-extractors/configs/swift.js +277 -0
- package/dist/core/ingestion/method-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/method-extractors/configs/typescript-javascript.js +338 -0
- package/dist/core/ingestion/method-extractors/generic.d.ts +11 -0
- package/dist/core/ingestion/method-extractors/generic.js +204 -0
- package/dist/core/ingestion/method-types.d.ts +90 -0
- package/dist/core/ingestion/method-types.js +2 -0
- package/dist/core/ingestion/model/field-registry.d.ts +18 -0
- package/dist/core/ingestion/model/field-registry.js +22 -0
- package/dist/core/ingestion/model/heritage-map.d.ts +105 -0
- package/dist/core/ingestion/model/heritage-map.js +260 -0
- package/dist/core/ingestion/model/index.d.ts +20 -0
- package/dist/core/ingestion/model/index.js +43 -0
- package/dist/core/ingestion/model/method-registry.d.ts +71 -0
- package/dist/core/ingestion/model/method-registry.js +134 -0
- package/dist/core/ingestion/model/registration-table.d.ts +138 -0
- package/dist/core/ingestion/model/registration-table.js +224 -0
- package/dist/core/ingestion/model/resolution-context.d.ts +93 -0
- package/dist/core/ingestion/model/resolution-context.js +337 -0
- package/dist/core/ingestion/model/resolve.d.ts +61 -0
- package/dist/core/ingestion/model/resolve.js +381 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.d.ts +59 -0
- package/dist/core/ingestion/model/scope-resolution-indexes.js +42 -0
- package/dist/core/ingestion/model/semantic-model.d.ts +150 -0
- package/dist/core/ingestion/model/semantic-model.js +175 -0
- package/dist/core/ingestion/model/symbol-table.d.ts +200 -0
- package/dist/core/ingestion/model/symbol-table.js +206 -0
- package/dist/core/ingestion/model/type-registry.d.ts +39 -0
- package/dist/core/ingestion/model/type-registry.js +62 -0
- package/dist/core/ingestion/mro-processor.d.ts +46 -0
- package/dist/core/ingestion/mro-processor.js +597 -0
- package/dist/core/ingestion/named-bindings/csharp.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/csharp.js +37 -0
- package/dist/core/ingestion/named-bindings/java.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/java.js +29 -0
- package/dist/core/ingestion/named-bindings/kotlin.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/kotlin.js +36 -0
- package/dist/core/ingestion/named-bindings/php.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/php.js +61 -0
- package/dist/core/ingestion/named-bindings/python.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/python.js +49 -0
- package/dist/core/ingestion/named-bindings/rust.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/rust.js +66 -0
- package/dist/core/ingestion/named-bindings/types.d.ts +16 -0
- package/dist/core/ingestion/named-bindings/types.js +6 -0
- package/dist/core/ingestion/named-bindings/typescript.d.ts +3 -0
- package/dist/core/ingestion/named-bindings/typescript.js +58 -0
- package/dist/core/ingestion/parsing-processor.d.ts +40 -0
- package/dist/core/ingestion/parsing-processor.js +576 -0
- package/dist/core/ingestion/pipeline-phases/cobol.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/cobol.js +45 -0
- package/dist/core/ingestion/pipeline-phases/communities.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/communities.js +62 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +156 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +37 -0
- package/dist/core/ingestion/pipeline-phases/cross-file.js +63 -0
- package/dist/core/ingestion/pipeline-phases/index.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/index.js +23 -0
- package/dist/core/ingestion/pipeline-phases/markdown.d.ts +17 -0
- package/dist/core/ingestion/pipeline-phases/markdown.js +33 -0
- package/dist/core/ingestion/pipeline-phases/mro.d.ts +18 -0
- package/dist/core/ingestion/pipeline-phases/mro.js +36 -0
- package/dist/core/ingestion/pipeline-phases/orm-extraction.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/orm-extraction.js +92 -0
- package/dist/core/ingestion/pipeline-phases/orm.d.ts +15 -0
- package/dist/core/ingestion/pipeline-phases/orm.js +74 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.d.ts +58 -0
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +458 -0
- package/dist/core/ingestion/pipeline-phases/parse.d.ts +74 -0
- package/dist/core/ingestion/pipeline-phases/parse.js +33 -0
- package/dist/core/ingestion/pipeline-phases/processes.d.ts +16 -0
- package/dist/core/ingestion/pipeline-phases/processes.js +143 -0
- package/dist/core/ingestion/pipeline-phases/routes.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/routes.js +243 -0
- package/dist/core/ingestion/pipeline-phases/runner.d.ts +22 -0
- package/dist/core/ingestion/pipeline-phases/runner.js +203 -0
- package/dist/core/ingestion/pipeline-phases/scan.d.ts +21 -0
- package/dist/core/ingestion/pipeline-phases/scan.js +46 -0
- package/dist/core/ingestion/pipeline-phases/structure.d.ts +27 -0
- package/dist/core/ingestion/pipeline-phases/structure.js +35 -0
- package/dist/core/ingestion/pipeline-phases/tools.d.ts +20 -0
- package/dist/core/ingestion/pipeline-phases/tools.js +79 -0
- package/dist/core/ingestion/pipeline-phases/types.d.ts +79 -0
- package/dist/core/ingestion/pipeline-phases/types.js +37 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.d.ts +70 -0
- package/dist/core/ingestion/pipeline-phases/wildcard-synthesis.js +312 -0
- package/dist/core/ingestion/pipeline.d.ts +36 -0
- package/dist/core/ingestion/pipeline.js +89 -0
- package/dist/core/ingestion/process-processor.d.ts +51 -0
- package/dist/core/ingestion/process-processor.js +317 -0
- package/dist/core/ingestion/registry-primary-flag.d.ts +86 -0
- package/dist/core/ingestion/registry-primary-flag.js +111 -0
- package/dist/core/ingestion/resolve-references.d.ts +63 -0
- package/dist/core/ingestion/resolve-references.js +175 -0
- package/dist/core/ingestion/route-extractors/expo.d.ts +1 -0
- package/dist/core/ingestion/route-extractors/expo.js +36 -0
- package/dist/core/ingestion/route-extractors/middleware.d.ts +47 -0
- package/dist/core/ingestion/route-extractors/middleware.js +167 -0
- package/dist/core/ingestion/route-extractors/nextjs.d.ts +3 -0
- package/dist/core/ingestion/route-extractors/nextjs.js +76 -0
- package/dist/core/ingestion/route-extractors/php.d.ts +7 -0
- package/dist/core/ingestion/route-extractors/php.js +22 -0
- package/dist/core/ingestion/route-extractors/response-shapes.d.ts +20 -0
- package/dist/core/ingestion/route-extractors/response-shapes.js +294 -0
- package/dist/core/ingestion/scope-extractor-bridge.d.ts +32 -0
- package/dist/core/ingestion/scope-extractor-bridge.js +44 -0
- package/dist/core/ingestion/scope-extractor.d.ts +86 -0
- package/dist/core/ingestion/scope-extractor.js +758 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +372 -0
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +212 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.d.ts +43 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/edges.js +79 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +57 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.js +112 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.d.ts +17 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +46 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/method-dispatch.d.ts +19 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +30 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.d.ts +37 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +113 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.d.ts +38 -0
- package/dist/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +73 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/compound-receiver.js +198 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.d.ts +27 -0
- package/dist/core/ingestion/scope-resolution/passes/free-call-fallback.js +131 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.d.ts +48 -0
- package/dist/core/ingestion/scope-resolution/passes/imported-return-types.js +130 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.d.ts +42 -0
- package/dist/core/ingestion/scope-resolution/passes/mro.js +99 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.d.ts +26 -0
- package/dist/core/ingestion/scope-resolution/passes/overload-narrowing.js +61 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.d.ts +46 -0
- package/dist/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +327 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +47 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +130 -0
- package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.d.ts +68 -0
- package/dist/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +125 -0
- package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +17 -0
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +21 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.d.ts +66 -0
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +157 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.d.ts +36 -0
- package/dist/core/ingestion/scope-resolution/scope/namespace-targets.js +52 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.d.ts +127 -0
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +349 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.d.ts +52 -0
- package/dist/core/ingestion/scope-resolution/workspace-index.js +61 -0
- package/dist/core/ingestion/shadow-harness.d.ts +113 -0
- package/dist/core/ingestion/shadow-harness.js +148 -0
- package/dist/core/ingestion/structure-processor.d.ts +2 -0
- package/dist/core/ingestion/structure-processor.js +36 -0
- package/dist/core/ingestion/tree-sitter-queries.d.ts +16 -0
- package/dist/core/ingestion/tree-sitter-queries.js +1338 -0
- package/dist/core/ingestion/type-env.d.ts +86 -0
- package/dist/core/ingestion/type-env.js +1128 -0
- package/dist/core/ingestion/type-extractors/c-cpp.d.ts +7 -0
- package/dist/core/ingestion/type-extractors/c-cpp.js +532 -0
- package/dist/core/ingestion/type-extractors/csharp.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/csharp.js +583 -0
- package/dist/core/ingestion/type-extractors/dart.d.ts +15 -0
- package/dist/core/ingestion/type-extractors/dart.js +369 -0
- package/dist/core/ingestion/type-extractors/go.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/go.js +513 -0
- package/dist/core/ingestion/type-extractors/jvm.d.ts +3 -0
- package/dist/core/ingestion/type-extractors/jvm.js +856 -0
- package/dist/core/ingestion/type-extractors/php.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/php.js +534 -0
- package/dist/core/ingestion/type-extractors/python.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/python.js +474 -0
- package/dist/core/ingestion/type-extractors/ruby.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/ruby.js +377 -0
- package/dist/core/ingestion/type-extractors/rust.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/rust.js +515 -0
- package/dist/core/ingestion/type-extractors/shared.d.ts +131 -0
- package/dist/core/ingestion/type-extractors/shared.js +796 -0
- package/dist/core/ingestion/type-extractors/swift.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/swift.js +484 -0
- package/dist/core/ingestion/type-extractors/types.d.ts +172 -0
- package/dist/core/ingestion/type-extractors/types.js +1 -0
- package/dist/core/ingestion/type-extractors/typescript.d.ts +2 -0
- package/dist/core/ingestion/type-extractors/typescript.js +661 -0
- package/dist/core/ingestion/utils/ast-helpers.d.ts +89 -0
- package/dist/core/ingestion/utils/ast-helpers.js +535 -0
- package/dist/core/ingestion/utils/call-analysis.d.ts +75 -0
- package/dist/core/ingestion/utils/call-analysis.js +574 -0
- package/dist/core/ingestion/utils/env.d.ts +10 -0
- package/dist/core/ingestion/utils/env.js +10 -0
- package/dist/core/ingestion/utils/event-loop.d.ts +5 -0
- package/dist/core/ingestion/utils/event-loop.js +5 -0
- package/dist/core/ingestion/utils/graph-sort.d.ts +58 -0
- package/dist/core/ingestion/utils/graph-sort.js +100 -0
- package/dist/core/ingestion/utils/max-file-size.d.ts +20 -0
- package/dist/core/ingestion/utils/max-file-size.js +52 -0
- package/dist/core/ingestion/utils/method-props.d.ts +32 -0
- package/dist/core/ingestion/utils/method-props.js +147 -0
- package/dist/core/ingestion/utils/ruby-self-call.d.ts +52 -0
- package/dist/core/ingestion/utils/ruby-self-call.js +59 -0
- package/dist/core/ingestion/utils/verbose.d.ts +1 -0
- package/dist/core/ingestion/utils/verbose.js +7 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/c-cpp.js +81 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.d.ts +9 -0
- package/dist/core/ingestion/variable-extractors/configs/csharp.js +63 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/dart.js +94 -0
- package/dist/core/ingestion/variable-extractors/configs/go.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/go.js +83 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.d.ts +18 -0
- package/dist/core/ingestion/variable-extractors/configs/jvm.js +115 -0
- package/dist/core/ingestion/variable-extractors/configs/php.d.ts +14 -0
- package/dist/core/ingestion/variable-extractors/configs/php.js +58 -0
- package/dist/core/ingestion/variable-extractors/configs/python.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/python.js +101 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.d.ts +11 -0
- package/dist/core/ingestion/variable-extractors/configs/ruby.js +52 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/rust.js +76 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.d.ts +2 -0
- package/dist/core/ingestion/variable-extractors/configs/swift.js +88 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.d.ts +3 -0
- package/dist/core/ingestion/variable-extractors/configs/typescript-javascript.js +83 -0
- package/dist/core/ingestion/variable-extractors/generic.d.ts +5 -0
- package/dist/core/ingestion/variable-extractors/generic.js +80 -0
- package/dist/core/ingestion/variable-types.d.ts +82 -0
- package/dist/core/ingestion/variable-types.js +2 -0
- package/dist/core/ingestion/vue-sfc-extractor.d.ts +44 -0
- package/dist/core/ingestion/vue-sfc-extractor.js +94 -0
- package/dist/core/ingestion/workers/parse-worker.d.ts +198 -0
- package/dist/core/ingestion/workers/parse-worker.js +1928 -0
- package/dist/core/ingestion/workers/worker-pool.d.ts +16 -0
- package/dist/core/ingestion/workers/worker-pool.js +126 -0
- package/dist/core/lbug/csv-generator.d.ts +33 -0
- package/dist/core/lbug/csv-generator.js +459 -0
- package/dist/core/lbug/lbug-adapter.d.ts +173 -0
- package/dist/core/lbug/lbug-adapter.js +1188 -0
- package/dist/core/lbug/pool-adapter.d.ts +93 -0
- package/dist/core/lbug/pool-adapter.js +543 -0
- package/dist/core/lbug/schema.d.ts +62 -0
- package/dist/core/lbug/schema.js +484 -0
- package/dist/core/run-analyze.d.ts +72 -0
- package/dist/core/run-analyze.js +315 -0
- package/dist/core/search/bm25-index.d.ts +41 -0
- package/dist/core/search/bm25-index.js +209 -0
- package/dist/core/search/hybrid-search.d.ts +49 -0
- package/dist/core/search/hybrid-search.js +118 -0
- package/dist/core/search/phase-timer.d.ts +72 -0
- package/dist/core/search/phase-timer.js +106 -0
- package/dist/core/tree-sitter/parser-loader.d.ts +8 -0
- package/dist/core/tree-sitter/parser-loader.js +84 -0
- package/dist/core/wiki/cursor-client.d.ts +31 -0
- package/dist/core/wiki/cursor-client.js +122 -0
- package/dist/core/wiki/generator.d.ts +129 -0
- package/dist/core/wiki/generator.js +898 -0
- package/dist/core/wiki/graph-queries.d.ts +84 -0
- package/dist/core/wiki/graph-queries.js +244 -0
- package/dist/core/wiki/html-viewer.d.ts +10 -0
- package/dist/core/wiki/html-viewer.js +303 -0
- package/dist/core/wiki/llm-client.d.ts +63 -0
- package/dist/core/wiki/llm-client.js +234 -0
- package/dist/core/wiki/prompts.d.ts +53 -0
- package/dist/core/wiki/prompts.js +181 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/mcp/compatible-stdio-transport.d.ts +25 -0
- package/dist/mcp/compatible-stdio-transport.js +200 -0
- package/dist/mcp/core/embedder.d.ts +27 -0
- package/dist/mcp/core/embedder.js +122 -0
- package/dist/mcp/core/lbug-adapter.d.ts +5 -0
- package/dist/mcp/core/lbug-adapter.js +5 -0
- package/dist/mcp/local/graphstore-handler.d.ts +214 -0
- package/dist/mcp/local/graphstore-handler.js +272 -0
- package/dist/mcp/local/local-backend.d.ts +347 -0
- package/dist/mcp/local/local-backend.js +3218 -0
- package/dist/mcp/resources.d.ts +62 -0
- package/dist/mcp/resources.js +696 -0
- package/dist/mcp/server.d.ts +23 -0
- package/dist/mcp/server.js +533 -0
- package/dist/mcp/staleness.d.ts +5 -0
- package/dist/mcp/staleness.js +4 -0
- package/dist/mcp/tools.d.ts +27 -0
- package/dist/mcp/tools.js +823 -0
- package/dist/server/analyze-job.d.ts +55 -0
- package/dist/server/analyze-job.js +150 -0
- package/dist/server/analyze-worker.d.ts +13 -0
- package/dist/server/analyze-worker.js +59 -0
- package/dist/server/api.d.ts +47 -0
- package/dist/server/api.js +1727 -0
- package/dist/server/git-clone.d.ts +26 -0
- package/dist/server/git-clone.js +184 -0
- package/dist/server/mcp-http.d.ts +13 -0
- package/dist/server/mcp-http.js +100 -0
- package/dist/storage/git.d.ts +80 -0
- package/dist/storage/git.js +190 -0
- package/dist/storage/repo-manager.d.ts +458 -0
- package/dist/storage/repo-manager.js +766 -0
- package/dist/types/pipeline.d.ts +18 -0
- package/dist/types/pipeline.js +1 -0
- package/hooks/claude/codragraph-hook.cjs +268 -0
- package/hooks/claude/pre-tool-use.sh +79 -0
- package/hooks/claude/session-start.sh +42 -0
- package/package.json +127 -0
- package/scripts/bench-scope-resolution.ts +134 -0
- package/scripts/build-tree-sitter-proto.cjs +82 -0
- package/scripts/build.js +90 -0
- package/scripts/ci-list-migrated-languages.ts +24 -0
- package/scripts/patch-tree-sitter-swift.cjs +78 -0
- package/skills/codragraph-cli.md +82 -0
- package/skills/codragraph-debugging.md +89 -0
- package/skills/codragraph-exploring.md +78 -0
- package/skills/codragraph-guide.md +64 -0
- package/skills/codragraph-impact-analysis.md +97 -0
- package/skills/codragraph-pr-review.md +163 -0
- package/skills/codragraph-refactoring.md +121 -0
- package/vendor/leiden/index.cjs +355 -0
- package/vendor/leiden/utils.cjs +392 -0
- package/vendor/tree-sitter-proto/binding.gyp +30 -0
- package/vendor/tree-sitter-proto/bindings/node/binding.cc +20 -0
- package/vendor/tree-sitter-proto/bindings/node/index.d.ts +28 -0
- package/vendor/tree-sitter-proto/bindings/node/index.js +7 -0
- package/vendor/tree-sitter-proto/package.json +12 -0
- package/vendor/tree-sitter-proto/src/node-types.json +1145 -0
- package/vendor/tree-sitter-proto/src/parser.c +10149 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/alloc.h +54 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/array.h +291 -0
- package/vendor/tree-sitter-proto/src/tree_sitter/parser.h +266 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `resolveReferenceSites` — drain `ReferenceSite[]` from a finalized
|
|
3
|
+
* `ScopeResolutionIndexes` into a `ReferenceIndex` by routing each site
|
|
4
|
+
* through the appropriate scope-aware `Registry.lookup` (RFC §3.2 Phase 4).
|
|
5
|
+
*
|
|
6
|
+
* This is the missing producer that `emit-references.ts` (#925) was
|
|
7
|
+
* waiting on. The two together form the registry-primary resolution
|
|
8
|
+
* pipeline:
|
|
9
|
+
*
|
|
10
|
+
* ScopeResolutionIndexes.referenceSites
|
|
11
|
+
* │ resolveReferenceSites
|
|
12
|
+
* ▼
|
|
13
|
+
* ReferenceIndex
|
|
14
|
+
* │ emitReferencesToGraph
|
|
15
|
+
* ▼
|
|
16
|
+
* graph: CALLS / ACCESSES / INHERITS / USES edges
|
|
17
|
+
*
|
|
18
|
+
* ## What this module does
|
|
19
|
+
*
|
|
20
|
+
* - For each `ReferenceSite`, picks the registry by `kind`:
|
|
21
|
+
* · `call` / `inherits` → MethodRegistry / ClassRegistry (call-form aware)
|
|
22
|
+
* · `read` / `write` → FieldRegistry (falls through to MethodRegistry for free names)
|
|
23
|
+
* · `type-reference` → ClassRegistry
|
|
24
|
+
* · `import-use` → all three (best-effort name-lookup)
|
|
25
|
+
* - Calls `Registry.lookup` with the site's `inScope`, optional
|
|
26
|
+
* explicit receiver, and arity.
|
|
27
|
+
* - Takes the top-ranked `Resolution` (best by confidence + tie-break
|
|
28
|
+
* cascade); folds it into a `Reference` record and bins by source scope.
|
|
29
|
+
*
|
|
30
|
+
* ## What this module does NOT do
|
|
31
|
+
*
|
|
32
|
+
* - No AST walks. The `ReferenceSite[]` is already extracted.
|
|
33
|
+
* - No language switches. Per-language behavior flows through
|
|
34
|
+
* `RegistryProviders.arityCompatibility` (see `RegistryContext`).
|
|
35
|
+
* - No multi-candidate fan-out. We pick `[0]` per RFC §4.3 ("one-shot
|
|
36
|
+
* answer"). The full ranked list is preserved in the per-site
|
|
37
|
+
* resolution but not emitted as multiple edges; callers that want
|
|
38
|
+
* branch-on-ambiguity behavior should consume the registries directly.
|
|
39
|
+
*/
|
|
40
|
+
import { buildClassRegistry, buildFieldRegistry, buildMethodRegistry, CLASS_KINDS, FIELD_KINDS, METHOD_KINDS, } from '../../_shared/index.js';
|
|
41
|
+
/**
|
|
42
|
+
* Resolve every `ReferenceSite` in `scopes.referenceSites` against the
|
|
43
|
+
* matching registry and produce a `ReferenceIndex` keyed by source scope
|
|
44
|
+
* + target def.
|
|
45
|
+
*/
|
|
46
|
+
export function resolveReferenceSites(input) {
|
|
47
|
+
const { scopes } = input;
|
|
48
|
+
const providers = input.providers ?? {};
|
|
49
|
+
const ctx = {
|
|
50
|
+
scopes: scopes.scopeTree,
|
|
51
|
+
defs: scopes.defs,
|
|
52
|
+
qualifiedNames: scopes.qualifiedNames,
|
|
53
|
+
moduleScopes: scopes.moduleScopes,
|
|
54
|
+
methodDispatch: scopes.methodDispatch,
|
|
55
|
+
providers,
|
|
56
|
+
};
|
|
57
|
+
const classRegistry = buildClassRegistry(ctx);
|
|
58
|
+
const methodRegistry = buildMethodRegistry(ctx);
|
|
59
|
+
const fieldRegistry = buildFieldRegistry(ctx);
|
|
60
|
+
// bySourceScope is the canonical index; byTargetDef is derived from it.
|
|
61
|
+
const bySourceScope = new Map();
|
|
62
|
+
const byTargetDef = new Map();
|
|
63
|
+
let sitesProcessed = 0;
|
|
64
|
+
let referencesEmitted = 0;
|
|
65
|
+
let unresolved = 0;
|
|
66
|
+
for (const site of scopes.referenceSites) {
|
|
67
|
+
sitesProcessed++;
|
|
68
|
+
const resolutions = lookupForSite(site, classRegistry, methodRegistry, fieldRegistry);
|
|
69
|
+
if (resolutions.length === 0) {
|
|
70
|
+
unresolved++;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const top = resolutions[0];
|
|
74
|
+
const ref = buildReference(site, top);
|
|
75
|
+
referencesEmitted++;
|
|
76
|
+
let bySource = bySourceScope.get(site.inScope);
|
|
77
|
+
if (bySource === undefined) {
|
|
78
|
+
bySource = [];
|
|
79
|
+
bySourceScope.set(site.inScope, bySource);
|
|
80
|
+
}
|
|
81
|
+
bySource.push(ref);
|
|
82
|
+
let byTarget = byTargetDef.get(top.def.nodeId);
|
|
83
|
+
if (byTarget === undefined) {
|
|
84
|
+
byTarget = [];
|
|
85
|
+
byTargetDef.set(top.def.nodeId, byTarget);
|
|
86
|
+
}
|
|
87
|
+
byTarget.push(ref);
|
|
88
|
+
}
|
|
89
|
+
// Freeze inner arrays so consumers don't accidentally mutate.
|
|
90
|
+
const frozenBySource = new Map();
|
|
91
|
+
for (const [k, v] of bySourceScope)
|
|
92
|
+
frozenBySource.set(k, Object.freeze([...v]));
|
|
93
|
+
const frozenByTarget = new Map();
|
|
94
|
+
for (const [k, v] of byTargetDef)
|
|
95
|
+
frozenByTarget.set(k, Object.freeze([...v]));
|
|
96
|
+
return {
|
|
97
|
+
referenceIndex: { bySourceScope: frozenBySource, byTargetDef: frozenByTarget },
|
|
98
|
+
stats: { sitesProcessed, referencesEmitted, unresolved },
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// ─── Internal ───────────────────────────────────────────────────────────────
|
|
102
|
+
/**
|
|
103
|
+
* Pick the right registry for the site's `kind` and call `lookup`.
|
|
104
|
+
*
|
|
105
|
+
* The kind→registry mapping mirrors `mapKindToType` in `emit-references.ts`:
|
|
106
|
+
*
|
|
107
|
+
* | site.kind | primary registry | acceptedKinds source |
|
|
108
|
+
* |------------------|-------------------|------------------------------|
|
|
109
|
+
* | `call` | MethodRegistry | METHOD_KINDS (Method/Func/Ctor)
|
|
110
|
+
* | `inherits` | ClassRegistry | CLASS_KINDS |
|
|
111
|
+
* | `type-reference` | ClassRegistry | CLASS_KINDS |
|
|
112
|
+
* | `read`/`write` | FieldRegistry | FIELD_KINDS |
|
|
113
|
+
* | `import-use` | tiered fallback | METHOD ∪ CLASS ∪ FIELD |
|
|
114
|
+
*
|
|
115
|
+
* `import-use` doesn't have a single registry — the imported name might
|
|
116
|
+
* be a class, a function, or a constant. Try each in priority order and
|
|
117
|
+
* return the first non-empty result. Provenance still flows through the
|
|
118
|
+
* scope's `bindings` (Step 1 lexical hit), so the lookup is correct
|
|
119
|
+
* regardless of which registry surfaces the def.
|
|
120
|
+
*/
|
|
121
|
+
function lookupForSite(site, classRegistry, methodRegistry, fieldRegistry) {
|
|
122
|
+
switch (site.kind) {
|
|
123
|
+
case 'call': {
|
|
124
|
+
const opts = {
|
|
125
|
+
...(site.arity !== undefined ? { callsite: { arity: site.arity } } : {}),
|
|
126
|
+
...(site.explicitReceiver !== undefined ? { explicitReceiver: site.explicitReceiver } : {}),
|
|
127
|
+
};
|
|
128
|
+
return methodRegistry.lookup(site.name, site.inScope, opts);
|
|
129
|
+
}
|
|
130
|
+
case 'inherits':
|
|
131
|
+
case 'type-reference': {
|
|
132
|
+
return classRegistry.lookup(site.name, site.inScope);
|
|
133
|
+
}
|
|
134
|
+
case 'read':
|
|
135
|
+
case 'write': {
|
|
136
|
+
// Try field first; fall through to method then class so bare-name
|
|
137
|
+
// reads of a function (e.g. `cb = save`) still resolve.
|
|
138
|
+
const fieldHits = fieldRegistry.lookup(site.name, site.inScope);
|
|
139
|
+
if (fieldHits.length > 0)
|
|
140
|
+
return fieldHits;
|
|
141
|
+
const methodHits = methodRegistry.lookup(site.name, site.inScope);
|
|
142
|
+
if (methodHits.length > 0)
|
|
143
|
+
return methodHits;
|
|
144
|
+
return classRegistry.lookup(site.name, site.inScope);
|
|
145
|
+
}
|
|
146
|
+
case 'import-use': {
|
|
147
|
+
// Try class, method, then field. The lexical-hit Step 1 in
|
|
148
|
+
// `lookupCore` handles the actual binding lookup; the choice of
|
|
149
|
+
// registry only narrows `acceptedKinds`.
|
|
150
|
+
const classHits = classRegistry.lookup(site.name, site.inScope);
|
|
151
|
+
if (classHits.length > 0)
|
|
152
|
+
return classHits;
|
|
153
|
+
const methodHits = methodRegistry.lookup(site.name, site.inScope);
|
|
154
|
+
if (methodHits.length > 0)
|
|
155
|
+
return methodHits;
|
|
156
|
+
return fieldRegistry.lookup(site.name, site.inScope);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/** Compose a `Reference` record from a site + its top resolution. */
|
|
161
|
+
function buildReference(site, top) {
|
|
162
|
+
return {
|
|
163
|
+
fromScope: site.inScope,
|
|
164
|
+
toDef: top.def.nodeId,
|
|
165
|
+
atRange: site.atRange,
|
|
166
|
+
kind: site.kind,
|
|
167
|
+
confidence: top.confidence,
|
|
168
|
+
evidence: top.evidence,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
// Re-export the kind sets so consumers don't have to import them
|
|
172
|
+
// separately when constructing custom resolution flows. The mappings
|
|
173
|
+
// stay in `@codragraph/shared` (single source of truth); this is a
|
|
174
|
+
// convenience pass-through only.
|
|
175
|
+
export { CLASS_KINDS, METHOD_KINDS, FIELD_KINDS };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function expoFileToRouteURL(filePath: string): string | null;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Expo Router route extraction utilities.
|
|
2
|
+
export function expoFileToRouteURL(filePath) {
|
|
3
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
4
|
+
// Skip TypeScript declaration files
|
|
5
|
+
if (/\.d\.tsx?$/.test(normalized))
|
|
6
|
+
return null;
|
|
7
|
+
// Must be inside an app/ directory
|
|
8
|
+
const appMatch = normalized.match(/app\/(.+)\.(tsx?|jsx?)$/);
|
|
9
|
+
if (!appMatch)
|
|
10
|
+
return null;
|
|
11
|
+
const segments = appMatch[1];
|
|
12
|
+
const fileName = segments.split('/').pop() || '';
|
|
13
|
+
// Skip layout files (_layout.tsx)
|
|
14
|
+
if (fileName.startsWith('_'))
|
|
15
|
+
return null;
|
|
16
|
+
// Skip special Expo files (+not-found.tsx, +html.tsx) — but NOT +api files
|
|
17
|
+
if (fileName.startsWith('+') && !fileName.startsWith('+api'))
|
|
18
|
+
return null;
|
|
19
|
+
// Handle Expo API routes: users+api.ts → /users
|
|
20
|
+
if (fileName.endsWith('+api')) {
|
|
21
|
+
const apiSegments = segments.replace(/\+api$/, '');
|
|
22
|
+
const route = '/' + stripRouteGroups(apiSegments);
|
|
23
|
+
return stripIndex(route);
|
|
24
|
+
}
|
|
25
|
+
// Regular screen route
|
|
26
|
+
const route = '/' + stripRouteGroups(segments);
|
|
27
|
+
return stripIndex(route);
|
|
28
|
+
}
|
|
29
|
+
function stripRouteGroups(path) {
|
|
30
|
+
return path.replace(/\([^)]+\)\/?/g, '');
|
|
31
|
+
}
|
|
32
|
+
function stripIndex(route) {
|
|
33
|
+
if (route === '/index')
|
|
34
|
+
return '/';
|
|
35
|
+
return route.replace(/\/index$/, '') || '/';
|
|
36
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware chain extraction from route handler file content.
|
|
3
|
+
* Detects wrapper patterns like: export const POST = withA(withB(withC(handler)))
|
|
4
|
+
*/
|
|
5
|
+
/** Keywords that terminate middleware chain walking (not wrapper function names) */
|
|
6
|
+
export declare const MIDDLEWARE_STOP_KEYWORDS: Set<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Extract middleware wrapper chain from a route handler file.
|
|
9
|
+
* Detects patterns like: export const POST = withA(withB(withC(handler)))
|
|
10
|
+
* Returns an object with the wrapper function names (outermost-first) and the
|
|
11
|
+
* HTTP method they were captured from, or undefined if no chain found.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractMiddlewareChain(content: string): {
|
|
14
|
+
chain: string[];
|
|
15
|
+
method: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
export interface NextjsMiddlewareConfig {
|
|
18
|
+
matchers: string[];
|
|
19
|
+
exportedName: string;
|
|
20
|
+
wrappedFunctions: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parse a Next.js project-level middleware.ts file and extract:
|
|
24
|
+
* - config.matcher patterns (string or string[])
|
|
25
|
+
* - the exported middleware function name
|
|
26
|
+
* - wrapper composition (e.g. chain([withAuth, withI18n]))
|
|
27
|
+
*/
|
|
28
|
+
export declare function extractNextjsMiddlewareConfig(content: string): NextjsMiddlewareConfig | undefined;
|
|
29
|
+
/** Pre-compiled matcher for efficient per-route testing. */
|
|
30
|
+
export type CompiledMatcher = {
|
|
31
|
+
type: 'prefix';
|
|
32
|
+
prefix: string;
|
|
33
|
+
} | {
|
|
34
|
+
type: 'regex';
|
|
35
|
+
re: RegExp;
|
|
36
|
+
} | {
|
|
37
|
+
type: 'exact';
|
|
38
|
+
value: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Compile a Next.js middleware matcher pattern into a reusable matcher.
|
|
42
|
+
* Call once per pattern, then use compiledMatcherMatchesRoute per route.
|
|
43
|
+
*/
|
|
44
|
+
export declare function compileMatcher(matcher: string): CompiledMatcher | null;
|
|
45
|
+
/** Test a route URL against a pre-compiled matcher. */
|
|
46
|
+
export declare function compiledMatcherMatchesRoute(cm: CompiledMatcher, routeURL: string): boolean;
|
|
47
|
+
export declare function middlewareMatcherMatchesRoute(matcher: string, routeURL: string): boolean;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware chain extraction from route handler file content.
|
|
3
|
+
* Detects wrapper patterns like: export const POST = withA(withB(withC(handler)))
|
|
4
|
+
*/
|
|
5
|
+
/** Keywords that terminate middleware chain walking (not wrapper function names) */
|
|
6
|
+
/** Names that are composition wrappers, not middleware functions themselves. */
|
|
7
|
+
const COMPOSER_NAMES = new Set(['middleware', 'default', 'chain', 'compose']);
|
|
8
|
+
/** Keywords that terminate middleware chain walking (not wrapper function names) */
|
|
9
|
+
export const MIDDLEWARE_STOP_KEYWORDS = new Set([
|
|
10
|
+
'async',
|
|
11
|
+
'await',
|
|
12
|
+
'function',
|
|
13
|
+
'new',
|
|
14
|
+
'return',
|
|
15
|
+
'if',
|
|
16
|
+
'for',
|
|
17
|
+
'while',
|
|
18
|
+
'switch',
|
|
19
|
+
'class',
|
|
20
|
+
'const',
|
|
21
|
+
'let',
|
|
22
|
+
'var',
|
|
23
|
+
'req',
|
|
24
|
+
'res',
|
|
25
|
+
'request',
|
|
26
|
+
'response',
|
|
27
|
+
'event',
|
|
28
|
+
'ctx',
|
|
29
|
+
'context',
|
|
30
|
+
'next',
|
|
31
|
+
]);
|
|
32
|
+
/** Walk nested wrapper calls starting at `pos` in `content`, returning function names. */
|
|
33
|
+
function walkNestedWrappers(content, pos) {
|
|
34
|
+
const names = [];
|
|
35
|
+
const nestedRe = /^\s*(\w+)\s*\(/;
|
|
36
|
+
let remaining = content.slice(pos);
|
|
37
|
+
let nested;
|
|
38
|
+
while ((nested = nestedRe.exec(remaining)) !== null) {
|
|
39
|
+
if (MIDDLEWARE_STOP_KEYWORDS.has(nested[1]))
|
|
40
|
+
break;
|
|
41
|
+
names.push(nested[1]);
|
|
42
|
+
pos += nested[0].length;
|
|
43
|
+
remaining = content.slice(pos);
|
|
44
|
+
}
|
|
45
|
+
return names;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Extract middleware wrapper chain from a route handler file.
|
|
49
|
+
* Detects patterns like: export const POST = withA(withB(withC(handler)))
|
|
50
|
+
* Returns an object with the wrapper function names (outermost-first) and the
|
|
51
|
+
* HTTP method they were captured from, or undefined if no chain found.
|
|
52
|
+
*/
|
|
53
|
+
export function extractMiddlewareChain(content) {
|
|
54
|
+
const mwPattern = /export\s+(?:const\s+(POST|GET|PUT|DELETE|PATCH|HEAD|OPTIONS)\s*=|default)\s+(\w+)\s*\(/g;
|
|
55
|
+
let mwMatch;
|
|
56
|
+
while ((mwMatch = mwPattern.exec(content)) !== null) {
|
|
57
|
+
const method = mwMatch[1] ?? 'default';
|
|
58
|
+
const firstWrapper = mwMatch[2];
|
|
59
|
+
const chain = [firstWrapper];
|
|
60
|
+
chain.push(...walkNestedWrappers(content, mwMatch.index + mwMatch[0].length));
|
|
61
|
+
if (chain.length >= 2 || (chain.length === 1 && /^with[A-Z]/.test(chain[0]))) {
|
|
62
|
+
return { chain, method };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parse a Next.js project-level middleware.ts file and extract:
|
|
69
|
+
* - config.matcher patterns (string or string[])
|
|
70
|
+
* - the exported middleware function name
|
|
71
|
+
* - wrapper composition (e.g. chain([withAuth, withI18n]))
|
|
72
|
+
*/
|
|
73
|
+
export function extractNextjsMiddlewareConfig(content) {
|
|
74
|
+
const matchers = [];
|
|
75
|
+
const matcherArrayRe = /config\s*=\s*\{[^}]*matcher\s*:\s*\[([^\]]*)\]/s;
|
|
76
|
+
const matcherStringRe = /config\s*=\s*\{[^}]*matcher\s*:\s*(['"`])([^'"`]+)\1/s;
|
|
77
|
+
const arrMatch = matcherArrayRe.exec(content);
|
|
78
|
+
if (arrMatch) {
|
|
79
|
+
const items = arrMatch[1];
|
|
80
|
+
const strRe = /(['"`])((?:[^'"`\\\\]|\\\\.)*)\1/g;
|
|
81
|
+
let m;
|
|
82
|
+
while ((m = strRe.exec(items)) !== null) {
|
|
83
|
+
matchers.push(m[2]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const strMatch = matcherStringRe.exec(content);
|
|
88
|
+
if (strMatch) {
|
|
89
|
+
matchers.push(strMatch[2]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
let exportedName = 'middleware';
|
|
93
|
+
const isNamedMw = /export\s+(?:async\s+)?function\s+middleware\b/.test(content);
|
|
94
|
+
const isConstMw = /export\s+const\s+middleware\s*=/.test(content);
|
|
95
|
+
const defaultFunctionMatch = /export\s+default\s+(?:async\s+)?function(?:\s+(\w+))?/.exec(content);
|
|
96
|
+
const defaultIdentifierMatch = /export\s+default\s+(?!function\b)(\w+)/.exec(content);
|
|
97
|
+
if (!isNamedMw && !isConstMw) {
|
|
98
|
+
if (defaultFunctionMatch) {
|
|
99
|
+
exportedName = defaultFunctionMatch[1] ?? 'middleware';
|
|
100
|
+
}
|
|
101
|
+
else if (defaultIdentifierMatch) {
|
|
102
|
+
exportedName = defaultIdentifierMatch[1];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// --- wrapper composition ---
|
|
106
|
+
const wrappedFunctions = [];
|
|
107
|
+
// Pattern: chain([fn1, fn2]) or compose(fn1, fn2)
|
|
108
|
+
const chainRe = /(?:chain|compose)\s*\(\s*\[([^\]]+)\]/;
|
|
109
|
+
const chainMatch = chainRe.exec(content);
|
|
110
|
+
if (chainMatch) {
|
|
111
|
+
const fns = chainMatch[1]
|
|
112
|
+
.split(',')
|
|
113
|
+
.map((s) => s.trim())
|
|
114
|
+
.filter(Boolean);
|
|
115
|
+
wrappedFunctions.push(...fns);
|
|
116
|
+
}
|
|
117
|
+
// Pattern: export default withA(withB(handler))
|
|
118
|
+
const wrapperRe = /export\s+default\s+(\w+)\s*\(/;
|
|
119
|
+
const wrapperMatch = wrapperRe.exec(content);
|
|
120
|
+
if (wrapperMatch && wrappedFunctions.length === 0) {
|
|
121
|
+
const name = wrapperMatch[1];
|
|
122
|
+
if (name !== 'function' && name !== 'async') {
|
|
123
|
+
wrappedFunctions.push(name);
|
|
124
|
+
wrappedFunctions.push(...walkNestedWrappers(content, wrapperMatch.index + wrapperMatch[0].length));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (!COMPOSER_NAMES.has(exportedName) && !wrappedFunctions.includes(exportedName)) {
|
|
128
|
+
wrappedFunctions.unshift(exportedName);
|
|
129
|
+
}
|
|
130
|
+
const hasExport = isNamedMw || isConstMw || !!defaultFunctionMatch || !!defaultIdentifierMatch;
|
|
131
|
+
if (!hasExport && matchers.length === 0 && wrappedFunctions.length === 0)
|
|
132
|
+
return undefined;
|
|
133
|
+
return { matchers, exportedName, wrappedFunctions };
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Compile a Next.js middleware matcher pattern into a reusable matcher.
|
|
137
|
+
* Call once per pattern, then use compiledMatcherMatchesRoute per route.
|
|
138
|
+
*/
|
|
139
|
+
export function compileMatcher(matcher) {
|
|
140
|
+
const paramWild = matcher.replace(/\/:path\*$/, '');
|
|
141
|
+
if (paramWild !== matcher)
|
|
142
|
+
return { type: 'prefix', prefix: paramWild };
|
|
143
|
+
if (matcher.includes('(')) {
|
|
144
|
+
try {
|
|
145
|
+
return { type: 'regex', re: new RegExp('^' + matcher + '$') };
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return { type: 'exact', value: matcher };
|
|
152
|
+
}
|
|
153
|
+
/** Test a route URL against a pre-compiled matcher. */
|
|
154
|
+
export function compiledMatcherMatchesRoute(cm, routeURL) {
|
|
155
|
+
switch (cm.type) {
|
|
156
|
+
case 'prefix':
|
|
157
|
+
return routeURL === cm.prefix || routeURL.startsWith(cm.prefix + '/');
|
|
158
|
+
case 'regex':
|
|
159
|
+
return cm.re.test(routeURL);
|
|
160
|
+
case 'exact':
|
|
161
|
+
return routeURL === cm.value;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
export function middlewareMatcherMatchesRoute(matcher, routeURL) {
|
|
165
|
+
const cm = compileMatcher(matcher);
|
|
166
|
+
return cm ? compiledMatcherMatchesRoute(cm, routeURL) : false;
|
|
167
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// Next.js route extraction utilities.
|
|
2
|
+
//
|
|
3
|
+
// Converts file paths to route URLs, extracts HTTP methods from App Router
|
|
4
|
+
// route handlers, normalises fetch URLs, and matches fetch calls to routes.
|
|
5
|
+
// Convert a Next.js file path to its API route URL.
|
|
6
|
+
// Supports both App Router (app/**/route.ts) and Pages Router
|
|
7
|
+
// (pages/api/**/*.ts) conventions.
|
|
8
|
+
// Returns the route URL (e.g. /api/grants) or null if the path is not a
|
|
9
|
+
// recognised route handler.
|
|
10
|
+
export function nextjsFileToRouteURL(filePath) {
|
|
11
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
12
|
+
// App Router: app/**/api/**/route.ts (restrict to API routes to avoid noise
|
|
13
|
+
// from page-level route handlers that fetch() calls won't match anyway).
|
|
14
|
+
// Route groups like (admin) may appear before api/.
|
|
15
|
+
const appMatch = normalized.match(/app\/(.+?)\/route\.(ts|js|tsx|jsx)$/);
|
|
16
|
+
if (appMatch) {
|
|
17
|
+
// Strip route groups: (admin), (marketing) etc. are not URL segments
|
|
18
|
+
const stripped = appMatch[1].replace(/\([^)]+\)\/?/g, '');
|
|
19
|
+
// Only match if the path contains an api/ segment
|
|
20
|
+
if (!stripped.startsWith('api/') && stripped !== 'api')
|
|
21
|
+
return null;
|
|
22
|
+
return '/' + stripped;
|
|
23
|
+
}
|
|
24
|
+
// Pages Router: pages/api/**/*.ts
|
|
25
|
+
const pagesMatch = normalized.match(/pages\/(api\/.+?)\.(ts|js|tsx|jsx)$/);
|
|
26
|
+
if (pagesMatch) {
|
|
27
|
+
let route = '/' + pagesMatch[1];
|
|
28
|
+
route = route.replace(/\/index$/, '');
|
|
29
|
+
return route;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
// Normalise a fetch URL so it can be matched against route patterns.
|
|
34
|
+
// - Strips query strings (?page=1)
|
|
35
|
+
// - Replaces template-literal expressions (${slug}) with [param]
|
|
36
|
+
// - Returns null for URLs that cannot be statically resolved (string
|
|
37
|
+
// concatenation, function calls, non-API paths).
|
|
38
|
+
export function normalizeFetchURL(rawURL) {
|
|
39
|
+
let url = rawURL.split('?')[0];
|
|
40
|
+
url = url.replace(/\$\{[^}]+\}/g, '[param]');
|
|
41
|
+
url = url.replace(/^`|`$/g, '');
|
|
42
|
+
// Strip file extensions from URLs (PHP projects use /api/upload.php but routes are /api/upload)
|
|
43
|
+
url = url.replace(/\.(php|asp|aspx|jsp|cgi)$/, '');
|
|
44
|
+
if (url.includes('+') || url.includes('('))
|
|
45
|
+
return null;
|
|
46
|
+
// Must be an absolute path
|
|
47
|
+
if (!url.startsWith('/'))
|
|
48
|
+
return null;
|
|
49
|
+
return url;
|
|
50
|
+
}
|
|
51
|
+
// Check whether a (normalised) fetch URL matches a Next.js route pattern.
|
|
52
|
+
// Dynamic segments on either side (e.g. [param], [slug]) are treated as
|
|
53
|
+
// wildcards that match any single path segment.
|
|
54
|
+
export function routeMatches(fetchURL, routeURL) {
|
|
55
|
+
const fetchParts = fetchURL.split('/').filter(Boolean);
|
|
56
|
+
const routeParts = routeURL.split('/').filter(Boolean);
|
|
57
|
+
// Check for catch-all route: [...param] or optional catch-all [[...param]]
|
|
58
|
+
const lastRoutePart = routeParts[routeParts.length - 1];
|
|
59
|
+
if (lastRoutePart?.startsWith('[...') || lastRoutePart?.startsWith('[[...')) {
|
|
60
|
+
// Catch-all: match if fetch has at least as many segments as route (minus catch-all)
|
|
61
|
+
if (fetchParts.length < routeParts.length - 1)
|
|
62
|
+
return false;
|
|
63
|
+
return routeParts.slice(0, -1).every((part, i) => {
|
|
64
|
+
if (part.startsWith('[') || fetchParts[i].startsWith('['))
|
|
65
|
+
return true;
|
|
66
|
+
return part === fetchParts[i];
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (fetchParts.length !== routeParts.length)
|
|
70
|
+
return false;
|
|
71
|
+
return fetchParts.every((part, i) => {
|
|
72
|
+
if (part.startsWith('[') || routeParts[i].startsWith('['))
|
|
73
|
+
return true;
|
|
74
|
+
return part === routeParts[i];
|
|
75
|
+
});
|
|
76
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a PHP file path to its route URL.
|
|
3
|
+
* Handles direct file-based routing (no framework).
|
|
4
|
+
* api/upload.php → /api/upload
|
|
5
|
+
* api/next_sign.php → /api/next_sign
|
|
6
|
+
*/
|
|
7
|
+
export function phpFileToRouteURL(filePath) {
|
|
8
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
9
|
+
// Only match files in api/ directory
|
|
10
|
+
const apiMatch = normalized.match(/^(api\/.+?)\.php$/);
|
|
11
|
+
if (apiMatch) {
|
|
12
|
+
const fileName = normalized.split('/').pop().replace('.php', '');
|
|
13
|
+
// Skip non-handler files — use word-boundary matching to avoid false negatives
|
|
14
|
+
// on names like "contest", "attestation", "base64_encode"
|
|
15
|
+
if (fileName.startsWith('_') ||
|
|
16
|
+
/(?:^|_)(helper|config|test|fixture|mock|setup|bootstrap)(?:_|$)/.test(fileName)) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return '/' + apiMatch[1];
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response shape extraction from route handler file content.
|
|
3
|
+
* Detects .json() calls (JS/TS) and json_encode() calls (PHP),
|
|
4
|
+
* extracts top-level keys, and classifies by HTTP status code.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Detect an HTTP status code associated with a .json() call.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectStatusCode(content: string, jsonMatchPos: number, closingBracePos: number): number | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Extract response shapes from JS/TS handler file content.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractResponseShapes(content: string): {
|
|
14
|
+
responseKeys?: string[];
|
|
15
|
+
errorKeys?: string[];
|
|
16
|
+
};
|
|
17
|
+
export declare function extractPHPResponseShapes(content: string): {
|
|
18
|
+
responseKeys?: string[];
|
|
19
|
+
errorKeys?: string[];
|
|
20
|
+
};
|