gitnexus 1.6.2-rc.2 → 1.6.2-rc.21
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/_shared/lbug/schema-constants.d.ts +1 -1
- package/dist/_shared/lbug/schema-constants.d.ts.map +1 -1
- package/dist/_shared/lbug/schema-constants.js +1 -0
- package/dist/_shared/lbug/schema-constants.js.map +1 -1
- package/dist/cli/analyze.js +3 -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 +234 -0
- package/dist/core/embeddings/embedder.js +5 -0
- package/dist/core/embeddings/embedding-pipeline.d.ts +29 -24
- package/dist/core/embeddings/embedding-pipeline.js +244 -125
- 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 +20 -13
- package/dist/core/embeddings/text-generator.js +151 -119
- package/dist/core/embeddings/types.d.ts +81 -3
- package/dist/core/embeddings/types.js +105 -3
- package/dist/core/group/extractors/http-patterns/node.js +130 -0
- package/dist/core/group/extractors/manifest-extractor.js +20 -5
- package/dist/core/group/sync.js +49 -1
- 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 +1 -3
- package/dist/core/ingestion/call-processor.js +49 -47
- package/dist/core/ingestion/call-types.d.ts +60 -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/field-types.d.ts +1 -1
- 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/{dart.js → configs/dart.js} +26 -16
- 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/{swift.js → configs/swift.js} +10 -5
- 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 +4 -5
- package/dist/core/ingestion/import-resolvers/csharp.js +4 -20
- package/dist/core/ingestion/import-resolvers/go.d.ts +4 -5
- package/dist/core/ingestion/import-resolvers/go.js +4 -19
- package/dist/core/ingestion/import-resolvers/jvm.d.ts +5 -10
- package/dist/core/ingestion/import-resolvers/jvm.js +5 -58
- package/dist/core/ingestion/import-resolvers/php.d.ts +4 -5
- package/dist/core/ingestion/import-resolvers/php.js +4 -7
- package/dist/core/ingestion/import-resolvers/python.d.ts +3 -6
- package/dist/core/ingestion/import-resolvers/python.js +3 -18
- 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 +4 -5
- package/dist/core/ingestion/import-resolvers/ruby.js +4 -7
- package/dist/core/ingestion/import-resolvers/rust.d.ts +4 -5
- package/dist/core/ingestion/import-resolvers/rust.js +4 -47
- package/dist/core/ingestion/import-resolvers/standard.d.ts +3 -9
- package/dist/core/ingestion/import-resolvers/standard.js +7 -8
- package/dist/core/ingestion/import-resolvers/types.d.ts +24 -0
- package/dist/core/ingestion/language-provider.d.ts +12 -0
- package/dist/core/ingestion/languages/c-cpp.js +15 -12
- package/dist/core/ingestion/languages/csharp.js +11 -21
- package/dist/core/ingestion/languages/dart.js +11 -7
- package/dist/core/ingestion/languages/go.js +11 -20
- package/dist/core/ingestion/languages/java.js +11 -18
- package/dist/core/ingestion/languages/kotlin.js +11 -13
- package/dist/core/ingestion/languages/php.js +11 -7
- package/dist/core/ingestion/languages/python.js +11 -7
- package/dist/core/ingestion/languages/ruby.js +11 -7
- package/dist/core/ingestion/languages/rust.js +11 -7
- package/dist/core/ingestion/languages/swift.js +11 -18
- package/dist/core/ingestion/languages/typescript.js +15 -23
- package/dist/core/ingestion/languages/vue.js +11 -17
- package/dist/core/ingestion/model/index.d.ts +2 -2
- package/dist/core/ingestion/model/index.js +1 -1
- package/dist/core/ingestion/model/resolve.d.ts +3 -0
- package/dist/core/ingestion/model/resolve.js +6 -2
- package/dist/core/ingestion/parsing-processor.d.ts +1 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +81 -0
- package/dist/core/ingestion/type-env.d.ts +1 -1
- package/dist/core/ingestion/utils/ast-helpers.d.ts +1 -1
- package/dist/core/ingestion/utils/ast-helpers.js +3 -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/workers/parse-worker.js +196 -166
- package/dist/core/ingestion/workers/worker-pool.js +3 -0
- package/dist/core/lbug/csv-generator.js +1 -0
- package/dist/core/lbug/lbug-adapter.d.ts +13 -4
- package/dist/core/lbug/lbug-adapter.js +166 -81
- package/dist/core/lbug/schema.d.ts +9 -1
- package/dist/core/lbug/schema.js +19 -2
- package/dist/core/run-analyze.js +17 -4
- package/dist/core/tree-sitter/parser-loader.d.ts +3 -0
- package/dist/core/tree-sitter/parser-loader.js +17 -8
- package/dist/mcp/core/embedder.js +5 -0
- package/dist/mcp/local/local-backend.js +29 -19
- package/dist/server/api.js +10 -21
- package/package.json +5 -3
- package/scripts/build-tree-sitter-proto.cjs +82 -0
- package/vendor/node_modules/node-addon-api/node_addon_api.Makefile +6 -0
- package/vendor/node_modules/node-addon-api/node_addon_api.target.mk +104 -0
- package/vendor/node_modules/node-addon-api/node_addon_api_except.target.mk +108 -0
- package/vendor/node_modules/node-addon-api/node_addon_api_except_all.target.mk +104 -0
- package/vendor/node_modules/node-addon-api/node_addon_api_maybe.target.mk +104 -0
- package/vendor/tree-sitter-proto/package.json +1 -7
- package/dist/core/ingestion/call-sites/extract-language-call-site.d.ts +0 -10
- package/dist/core/ingestion/call-sites/extract-language-call-site.js +0 -22
- package/dist/core/ingestion/call-sites/java.d.ts +0 -9
- package/dist/core/ingestion/call-sites/java.js +0 -30
- package/dist/core/ingestion/import-resolvers/dart.d.ts +0 -7
- package/dist/core/ingestion/import-resolvers/swift.d.ts +0 -7
- package/dist/core/ingestion/import-resolvers/vue.d.ts +0 -8
- package/dist/core/ingestion/import-resolvers/vue.js +0 -9
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
9
9
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
10
|
+
import { phpClassConfig } from '../class-extractors/configs/php.js';
|
|
10
11
|
import { defineLanguage } from '../language-provider.js';
|
|
11
12
|
import { typeConfig as phpConfig } from '../type-extractors/php.js';
|
|
12
13
|
import { phpExportChecker } from '../export-detection.js';
|
|
13
|
-
import {
|
|
14
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
15
|
+
import { phpImportConfig } from '../import-resolvers/configs/php.js';
|
|
14
16
|
import { extractPhpNamedBindings } from '../named-bindings/php.js';
|
|
15
17
|
import { PHP_QUERIES } from '../tree-sitter-queries.js';
|
|
16
18
|
import { findDescendant, extractStringContent } from '../utils/ast-helpers.js';
|
|
@@ -18,6 +20,10 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
18
20
|
import { phpConfig as phpFieldConfig } from '../field-extractors/configs/php.js';
|
|
19
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
20
22
|
import { phpMethodConfig } from '../method-extractors/configs/php.js';
|
|
23
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
24
|
+
import { phpVariableConfig } from '../variable-extractors/configs/php.js';
|
|
25
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
|
+
import { phpCallConfig } from '../call-extractors/configs/php.js';
|
|
21
27
|
const BUILT_INS = new Set([
|
|
22
28
|
'echo',
|
|
23
29
|
'isset',
|
|
@@ -219,15 +225,13 @@ export const phpProvider = defineLanguage({
|
|
|
219
225
|
treeSitterQueries: PHP_QUERIES,
|
|
220
226
|
typeConfig: phpConfig,
|
|
221
227
|
exportChecker: phpExportChecker,
|
|
222
|
-
importResolver:
|
|
228
|
+
importResolver: createImportResolver(phpImportConfig),
|
|
223
229
|
namedBindingExtractor: extractPhpNamedBindings,
|
|
230
|
+
callExtractor: createCallExtractor(phpCallConfig),
|
|
224
231
|
fieldExtractor: createFieldExtractor(phpFieldConfig),
|
|
225
232
|
methodExtractor: createMethodExtractor(phpMethodConfig),
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
typeDeclarationNodes: ['class_declaration', 'interface_declaration', 'enum_declaration'],
|
|
229
|
-
ancestorScopeNodeTypes: ['namespace_definition'],
|
|
230
|
-
}),
|
|
233
|
+
variableExtractor: createVariableExtractor(phpVariableConfig),
|
|
234
|
+
classExtractor: createClassExtractor(phpClassConfig),
|
|
231
235
|
descriptionExtractor: phpDescriptionExtractor,
|
|
232
236
|
isRouteFile: isPhpRouteFile,
|
|
233
237
|
builtInNames: BUILT_INS,
|
|
@@ -11,16 +11,22 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
13
13
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
14
|
+
import { pythonClassConfig } from '../class-extractors/configs/python.js';
|
|
14
15
|
import { defineLanguage } from '../language-provider.js';
|
|
15
16
|
import { typeConfig as pythonConfig } from '../type-extractors/python.js';
|
|
16
17
|
import { pythonExportChecker } from '../export-detection.js';
|
|
17
|
-
import {
|
|
18
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
19
|
+
import { pythonImportConfig } from '../import-resolvers/configs/python.js';
|
|
18
20
|
import { extractPythonNamedBindings } from '../named-bindings/python.js';
|
|
19
21
|
import { PYTHON_QUERIES } from '../tree-sitter-queries.js';
|
|
20
22
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
21
23
|
import { pythonConfig as pythonFieldConfig } from '../field-extractors/configs/python.js';
|
|
22
24
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
25
|
import { pythonMethodConfig } from '../method-extractors/configs/python.js';
|
|
26
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
27
|
+
import { pythonVariableConfig } from '../variable-extractors/configs/python.js';
|
|
28
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
29
|
+
import { pythonCallConfig } from '../call-extractors/configs/python.js';
|
|
24
30
|
const BUILT_INS = new Set([
|
|
25
31
|
'print',
|
|
26
32
|
'len',
|
|
@@ -56,16 +62,14 @@ export const pythonProvider = defineLanguage({
|
|
|
56
62
|
treeSitterQueries: PYTHON_QUERIES,
|
|
57
63
|
typeConfig: pythonConfig,
|
|
58
64
|
exportChecker: pythonExportChecker,
|
|
59
|
-
importResolver:
|
|
65
|
+
importResolver: createImportResolver(pythonImportConfig),
|
|
60
66
|
namedBindingExtractor: extractPythonNamedBindings,
|
|
61
67
|
importSemantics: 'namespace',
|
|
62
68
|
mroStrategy: 'c3',
|
|
69
|
+
callExtractor: createCallExtractor(pythonCallConfig),
|
|
63
70
|
fieldExtractor: createFieldExtractor(pythonFieldConfig),
|
|
64
71
|
methodExtractor: createMethodExtractor(pythonMethodConfig),
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
typeDeclarationNodes: ['class_definition'],
|
|
68
|
-
ancestorScopeNodeTypes: ['class_definition'],
|
|
69
|
-
}),
|
|
72
|
+
variableExtractor: createVariableExtractor(pythonVariableConfig),
|
|
73
|
+
classExtractor: createClassExtractor(pythonClassConfig),
|
|
70
74
|
builtInNames: BUILT_INS,
|
|
71
75
|
});
|
|
@@ -8,16 +8,22 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
10
10
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
11
|
+
import { rubyClassConfig } from '../class-extractors/configs/ruby.js';
|
|
11
12
|
import { defineLanguage } from '../language-provider.js';
|
|
12
13
|
import { typeConfig as rubyConfig } from '../type-extractors/ruby.js';
|
|
13
14
|
import { routeRubyCall } from '../call-routing.js';
|
|
14
15
|
import { rubyExportChecker } from '../export-detection.js';
|
|
15
|
-
import {
|
|
16
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
17
|
+
import { rubyImportConfig } from '../import-resolvers/configs/ruby.js';
|
|
16
18
|
import { RUBY_QUERIES } from '../tree-sitter-queries.js';
|
|
17
19
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
18
20
|
import { rubyConfig as rubyFieldConfig } from '../field-extractors/configs/ruby.js';
|
|
19
21
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
20
22
|
import { rubyMethodConfig } from '../method-extractors/configs/ruby.js';
|
|
23
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
24
|
+
import { rubyVariableConfig } from '../variable-extractors/configs/ruby.js';
|
|
25
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
26
|
+
import { rubyCallConfig } from '../call-extractors/configs/ruby.js';
|
|
21
27
|
/** Ruby method/singleton_method: extract name from 'name' field, label as Method. */
|
|
22
28
|
const rubyExtractFunctionName = (node) => {
|
|
23
29
|
if (node.type !== 'method' && node.type !== 'singleton_method')
|
|
@@ -97,9 +103,10 @@ export const rubyProvider = defineLanguage({
|
|
|
97
103
|
treeSitterQueries: RUBY_QUERIES,
|
|
98
104
|
typeConfig: rubyConfig,
|
|
99
105
|
exportChecker: rubyExportChecker,
|
|
100
|
-
importResolver:
|
|
106
|
+
importResolver: createImportResolver(rubyImportConfig),
|
|
101
107
|
callRouter: routeRubyCall,
|
|
102
108
|
importSemantics: 'wildcard-leaf',
|
|
109
|
+
callExtractor: createCallExtractor(rubyCallConfig),
|
|
103
110
|
resolveEnclosingOwner(node) {
|
|
104
111
|
// Ruby singleton_class (class << self) should resolve to the enclosing
|
|
105
112
|
// class or module for owner/container resolution (HAS_METHOD edges, class IDs).
|
|
@@ -120,10 +127,7 @@ export const rubyProvider = defineLanguage({
|
|
|
120
127
|
...rubyMethodConfig,
|
|
121
128
|
extractFunctionName: rubyExtractFunctionName,
|
|
122
129
|
}),
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
typeDeclarationNodes: ['class'],
|
|
126
|
-
ancestorScopeNodeTypes: ['module', 'class'],
|
|
127
|
-
}),
|
|
130
|
+
variableExtractor: createVariableExtractor(rubyVariableConfig),
|
|
131
|
+
classExtractor: createClassExtractor(rubyClassConfig),
|
|
128
132
|
builtInNames: BUILT_INS,
|
|
129
133
|
});
|
|
@@ -11,16 +11,22 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
13
13
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
14
|
+
import { rustClassConfig } from '../class-extractors/configs/rust.js';
|
|
14
15
|
import { defineLanguage } from '../language-provider.js';
|
|
15
16
|
import { typeConfig as rustConfig } from '../type-extractors/rust.js';
|
|
16
17
|
import { rustExportChecker } from '../export-detection.js';
|
|
17
|
-
import {
|
|
18
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
19
|
+
import { rustImportConfig } from '../import-resolvers/configs/rust.js';
|
|
18
20
|
import { extractRustNamedBindings } from '../named-bindings/rust.js';
|
|
19
21
|
import { RUST_QUERIES } from '../tree-sitter-queries.js';
|
|
20
22
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
21
23
|
import { rustConfig as rustFieldConfig } from '../field-extractors/configs/rust.js';
|
|
22
24
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
23
25
|
import { rustMethodConfig } from '../method-extractors/configs/rust.js';
|
|
26
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
27
|
+
import { rustVariableConfig } from '../variable-extractors/configs/rust.js';
|
|
28
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
29
|
+
import { rustCallConfig } from '../call-extractors/configs/rust.js';
|
|
24
30
|
/** Rust impl_item: find the function_item child and extract its name as a Method. */
|
|
25
31
|
const rustExtractFunctionName = (node) => {
|
|
26
32
|
if (node.type !== 'impl_item')
|
|
@@ -109,18 +115,16 @@ export const rustProvider = defineLanguage({
|
|
|
109
115
|
treeSitterQueries: RUST_QUERIES,
|
|
110
116
|
typeConfig: rustConfig,
|
|
111
117
|
exportChecker: rustExportChecker,
|
|
112
|
-
importResolver:
|
|
118
|
+
importResolver: createImportResolver(rustImportConfig),
|
|
113
119
|
namedBindingExtractor: extractRustNamedBindings,
|
|
114
120
|
mroStrategy: 'qualified-syntax',
|
|
121
|
+
callExtractor: createCallExtractor(rustCallConfig),
|
|
115
122
|
fieldExtractor: createFieldExtractor(rustFieldConfig),
|
|
116
123
|
methodExtractor: createMethodExtractor({
|
|
117
124
|
...rustMethodConfig,
|
|
118
125
|
extractFunctionName: rustExtractFunctionName,
|
|
119
126
|
}),
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
typeDeclarationNodes: ['struct_item', 'enum_item'],
|
|
123
|
-
ancestorScopeNodeTypes: ['mod_item', 'struct_item', 'enum_item'],
|
|
124
|
-
}),
|
|
127
|
+
variableExtractor: createVariableExtractor(rustVariableConfig),
|
|
128
|
+
classExtractor: createClassExtractor(rustClassConfig),
|
|
125
129
|
builtInNames: BUILT_INS,
|
|
126
130
|
});
|
|
@@ -11,15 +11,21 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
13
13
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
14
|
+
import { swiftClassConfig } from '../class-extractors/configs/swift.js';
|
|
14
15
|
import { defineLanguage } from '../language-provider.js';
|
|
15
16
|
import { typeConfig as swiftConfig } from '../type-extractors/swift.js';
|
|
16
17
|
import { swiftExportChecker } from '../export-detection.js';
|
|
17
|
-
import {
|
|
18
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
19
|
+
import { swiftImportConfig } from '../import-resolvers/configs/swift.js';
|
|
18
20
|
import { SWIFT_QUERIES } from '../tree-sitter-queries.js';
|
|
19
21
|
import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
20
22
|
import { swiftConfig as swiftFieldConfig } from '../field-extractors/configs/swift.js';
|
|
21
23
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
22
24
|
import { swiftMethodConfig } from '../method-extractors/configs/swift.js';
|
|
25
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
26
|
+
import { swiftVariableConfig } from '../variable-extractors/configs/swift.js';
|
|
27
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
28
|
+
import { swiftCallConfig } from '../call-extractors/configs/swift.js';
|
|
23
29
|
/**
|
|
24
30
|
* Group Swift files by SPM target for implicit module visibility.
|
|
25
31
|
* If SwiftPackageConfig is available, use target -> directory mappings.
|
|
@@ -220,30 +226,17 @@ export const swiftProvider = defineLanguage({
|
|
|
220
226
|
treeSitterQueries: SWIFT_QUERIES,
|
|
221
227
|
typeConfig: swiftConfig,
|
|
222
228
|
exportChecker: swiftExportChecker,
|
|
223
|
-
importResolver:
|
|
229
|
+
importResolver: createImportResolver(swiftImportConfig),
|
|
224
230
|
importSemantics: 'wildcard-leaf',
|
|
225
231
|
heritageDefaultEdge: 'IMPLEMENTS',
|
|
232
|
+
callExtractor: createCallExtractor(swiftCallConfig),
|
|
226
233
|
fieldExtractor: createFieldExtractor(swiftFieldConfig),
|
|
227
234
|
methodExtractor: createMethodExtractor({
|
|
228
235
|
...swiftMethodConfig,
|
|
229
236
|
extractFunctionName: swiftExtractFunctionName,
|
|
230
237
|
}),
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
typeDeclarationNodes: ['class_declaration', 'protocol_declaration'],
|
|
234
|
-
ancestorScopeNodeTypes: ['class_declaration', 'protocol_declaration'],
|
|
235
|
-
extractType(node) {
|
|
236
|
-
if (node.type === 'protocol_declaration')
|
|
237
|
-
return 'Interface';
|
|
238
|
-
if (node.type !== 'class_declaration')
|
|
239
|
-
return undefined;
|
|
240
|
-
if (node.children.some((child) => child?.text === 'struct'))
|
|
241
|
-
return 'Struct';
|
|
242
|
-
if (node.children.some((child) => child?.text === 'enum'))
|
|
243
|
-
return 'Enum';
|
|
244
|
-
return 'Class';
|
|
245
|
-
},
|
|
246
|
-
}),
|
|
238
|
+
variableExtractor: createVariableExtractor(swiftVariableConfig),
|
|
239
|
+
classExtractor: createClassExtractor(swiftClassConfig),
|
|
247
240
|
implicitImportWirer: wireSwiftImplicitImports,
|
|
248
241
|
builtInNames: BUILT_INS,
|
|
249
242
|
});
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
10
10
|
import { defineLanguage } from '../language-provider.js';
|
|
11
11
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
12
|
+
import { typescriptClassConfig, javascriptClassConfig, } from '../class-extractors/configs/typescript-javascript.js';
|
|
12
13
|
import { typeConfig as typescriptConfig } from '../type-extractors/typescript.js';
|
|
13
14
|
import { tsExportChecker } from '../export-detection.js';
|
|
14
|
-
import {
|
|
15
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
16
|
+
import { typescriptImportConfig, javascriptImportConfig, } from '../import-resolvers/configs/typescript-javascript.js';
|
|
15
17
|
import { extractTsNamedBindings } from '../named-bindings/typescript.js';
|
|
16
18
|
import { TYPESCRIPT_QUERIES, JAVASCRIPT_QUERIES } from '../tree-sitter-queries.js';
|
|
17
19
|
import { typescriptFieldExtractor } from '../field-extractors/typescript.js';
|
|
@@ -19,6 +21,10 @@ import { createFieldExtractor } from '../field-extractors/generic.js';
|
|
|
19
21
|
import { javascriptConfig } from '../field-extractors/configs/typescript-javascript.js';
|
|
20
22
|
import { createMethodExtractor } from '../method-extractors/generic.js';
|
|
21
23
|
import { typescriptMethodConfig, javascriptMethodConfig, } from '../method-extractors/configs/typescript-javascript.js';
|
|
24
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
25
|
+
import { typescriptVariableConfig, javascriptVariableConfig, } from '../variable-extractors/configs/typescript-javascript.js';
|
|
26
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
27
|
+
import { typescriptCallConfig, javascriptCallConfig, } from '../call-extractors/configs/typescript-javascript.js';
|
|
22
28
|
/**
|
|
23
29
|
* TypeScript/JavaScript: arrow_function and function_expression get their name
|
|
24
30
|
* from the parent variable_declarator (e.g. `const foo = () => {}`).
|
|
@@ -137,35 +143,22 @@ export const BUILT_INS = new Set([
|
|
|
137
143
|
'toString',
|
|
138
144
|
'valueOf',
|
|
139
145
|
]);
|
|
140
|
-
const tsJsClassConfig = {
|
|
141
|
-
language: SupportedLanguages.TypeScript,
|
|
142
|
-
typeDeclarationNodes: [
|
|
143
|
-
'class_declaration',
|
|
144
|
-
'abstract_class_declaration',
|
|
145
|
-
'interface_declaration',
|
|
146
|
-
'enum_declaration',
|
|
147
|
-
],
|
|
148
|
-
ancestorScopeNodeTypes: [
|
|
149
|
-
'class_declaration',
|
|
150
|
-
'abstract_class_declaration',
|
|
151
|
-
'interface_declaration',
|
|
152
|
-
'enum_declaration',
|
|
153
|
-
],
|
|
154
|
-
};
|
|
155
146
|
export const typescriptProvider = defineLanguage({
|
|
156
147
|
id: SupportedLanguages.TypeScript,
|
|
157
148
|
extensions: ['.ts', '.tsx'],
|
|
158
149
|
treeSitterQueries: TYPESCRIPT_QUERIES,
|
|
159
150
|
typeConfig: typescriptConfig,
|
|
160
151
|
exportChecker: tsExportChecker,
|
|
161
|
-
importResolver:
|
|
152
|
+
importResolver: createImportResolver(typescriptImportConfig),
|
|
162
153
|
namedBindingExtractor: extractTsNamedBindings,
|
|
154
|
+
callExtractor: createCallExtractor(typescriptCallConfig),
|
|
163
155
|
fieldExtractor: typescriptFieldExtractor,
|
|
164
156
|
methodExtractor: createMethodExtractor({
|
|
165
157
|
...typescriptMethodConfig,
|
|
166
158
|
extractFunctionName: tsExtractFunctionName,
|
|
167
159
|
}),
|
|
168
|
-
|
|
160
|
+
variableExtractor: createVariableExtractor(typescriptVariableConfig),
|
|
161
|
+
classExtractor: createClassExtractor(typescriptClassConfig),
|
|
169
162
|
builtInNames: BUILT_INS,
|
|
170
163
|
});
|
|
171
164
|
export const javascriptProvider = defineLanguage({
|
|
@@ -174,16 +167,15 @@ export const javascriptProvider = defineLanguage({
|
|
|
174
167
|
treeSitterQueries: JAVASCRIPT_QUERIES,
|
|
175
168
|
typeConfig: typescriptConfig,
|
|
176
169
|
exportChecker: tsExportChecker,
|
|
177
|
-
importResolver:
|
|
170
|
+
importResolver: createImportResolver(javascriptImportConfig),
|
|
178
171
|
namedBindingExtractor: extractTsNamedBindings,
|
|
172
|
+
callExtractor: createCallExtractor(javascriptCallConfig),
|
|
179
173
|
fieldExtractor: createFieldExtractor(javascriptConfig),
|
|
180
174
|
methodExtractor: createMethodExtractor({
|
|
181
175
|
...javascriptMethodConfig,
|
|
182
176
|
extractFunctionName: tsExtractFunctionName,
|
|
183
177
|
}),
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
language: SupportedLanguages.JavaScript,
|
|
187
|
-
}),
|
|
178
|
+
variableExtractor: createVariableExtractor(javascriptVariableConfig),
|
|
179
|
+
classExtractor: createClassExtractor(javascriptClassConfig),
|
|
188
180
|
builtInNames: BUILT_INS,
|
|
189
181
|
});
|
|
@@ -12,14 +12,20 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { SupportedLanguages } from '../../../_shared/index.js';
|
|
14
14
|
import { createClassExtractor } from '../class-extractors/generic.js';
|
|
15
|
+
import { vueClassConfig } from '../class-extractors/configs/typescript-javascript.js';
|
|
15
16
|
import { defineLanguage } from '../language-provider.js';
|
|
16
17
|
import { typeConfig as typescriptConfig } from '../type-extractors/typescript.js';
|
|
17
18
|
import { tsExportChecker } from '../export-detection.js';
|
|
18
|
-
import {
|
|
19
|
+
import { createImportResolver } from '../import-resolvers/resolver-factory.js';
|
|
20
|
+
import { vueImportConfig } from '../import-resolvers/configs/typescript-javascript.js';
|
|
19
21
|
import { extractTsNamedBindings } from '../named-bindings/typescript.js';
|
|
20
22
|
import { TYPESCRIPT_QUERIES } from '../tree-sitter-queries.js';
|
|
21
23
|
import { typescriptFieldExtractor } from '../field-extractors/typescript.js';
|
|
22
24
|
import { BUILT_INS as TS_BUILT_INS } from './typescript.js';
|
|
25
|
+
import { createVariableExtractor } from '../variable-extractors/generic.js';
|
|
26
|
+
import { typescriptVariableConfig } from '../variable-extractors/configs/typescript-javascript.js';
|
|
27
|
+
import { createCallExtractor } from '../call-extractors/generic.js';
|
|
28
|
+
import { typescriptCallConfig } from '../call-extractors/configs/typescript-javascript.js';
|
|
23
29
|
const VUE_SPECIFIC_BUILT_INS = [
|
|
24
30
|
'ref',
|
|
25
31
|
'reactive',
|
|
@@ -52,30 +58,18 @@ const VUE_SPECIFIC_BUILT_INS = [
|
|
|
52
58
|
'useAttrs',
|
|
53
59
|
];
|
|
54
60
|
const VUE_BUILT_INS = new Set([...TS_BUILT_INS, ...VUE_SPECIFIC_BUILT_INS]);
|
|
55
|
-
const vueClassExtractor = createClassExtractor(
|
|
56
|
-
language: SupportedLanguages.Vue,
|
|
57
|
-
typeDeclarationNodes: [
|
|
58
|
-
'class_declaration',
|
|
59
|
-
'abstract_class_declaration',
|
|
60
|
-
'interface_declaration',
|
|
61
|
-
'enum_declaration',
|
|
62
|
-
],
|
|
63
|
-
ancestorScopeNodeTypes: [
|
|
64
|
-
'class_declaration',
|
|
65
|
-
'abstract_class_declaration',
|
|
66
|
-
'interface_declaration',
|
|
67
|
-
'enum_declaration',
|
|
68
|
-
],
|
|
69
|
-
});
|
|
61
|
+
const vueClassExtractor = createClassExtractor(vueClassConfig);
|
|
70
62
|
export const vueProvider = defineLanguage({
|
|
71
63
|
id: SupportedLanguages.Vue,
|
|
72
64
|
extensions: ['.vue'],
|
|
73
65
|
treeSitterQueries: TYPESCRIPT_QUERIES,
|
|
74
66
|
typeConfig: typescriptConfig,
|
|
75
67
|
exportChecker: tsExportChecker,
|
|
76
|
-
importResolver:
|
|
68
|
+
importResolver: createImportResolver(vueImportConfig),
|
|
77
69
|
namedBindingExtractor: extractTsNamedBindings,
|
|
70
|
+
callExtractor: createCallExtractor(typescriptCallConfig),
|
|
78
71
|
fieldExtractor: typescriptFieldExtractor,
|
|
72
|
+
variableExtractor: createVariableExtractor(typescriptVariableConfig),
|
|
79
73
|
classExtractor: vueClassExtractor,
|
|
80
74
|
builtInNames: VUE_BUILT_INS,
|
|
81
75
|
});
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
* `SymbolTable` by design.
|
|
11
11
|
*/
|
|
12
12
|
export { type SemanticModel, type MutableSemanticModel, createSemanticModel, } from './semantic-model.js';
|
|
13
|
-
export { type SymbolTableReader, type SymbolTableWriter, createSymbolTable, } from './symbol-table.js';
|
|
13
|
+
export { type SymbolTableReader, type SymbolTableWriter, createSymbolTable, type SymbolDefinition, type AddMetadata, CLASS_TYPES, CLASS_TYPES_TUPLE, type ClassLikeLabel, FREE_CALLABLE_TYPES, FREE_CALLABLE_TUPLE, type FreeCallableLabel, CALL_TARGET_TYPES, } from './symbol-table.js';
|
|
14
14
|
export { type TypeRegistry, type MutableTypeRegistry, createTypeRegistry, } from './type-registry.js';
|
|
15
15
|
export { type MethodRegistry, type MutableMethodRegistry, createMethodRegistry, } from './method-registry.js';
|
|
16
16
|
export { type FieldRegistry, type MutableFieldRegistry, createFieldRegistry, } from './field-registry.js';
|
|
17
17
|
export { lookupMethodByOwnerWithMRO } from './resolve.js';
|
|
18
18
|
export { type NamedImportBinding, type NamedImportMap, isFileInPackageDir, } from './resolution-context.js';
|
|
19
|
-
export { type ExtractedHeritage, type HeritageResolutionStrategy, type HeritageStrategyLookup, } from './heritage-map.js';
|
|
19
|
+
export { type ExtractedHeritage, type HeritageMap, type HeritageResolutionStrategy, type HeritageStrategyLookup, } from './heritage-map.js';
|
|
20
20
|
export { CALLABLE_ONLY_LABELS, INERT_LABELS, DISPATCH_LABELS, ALL_NODE_LABELS, type LabelBehavior, } from './registration-table.js';
|
|
@@ -16,7 +16,7 @@ export { createSemanticModel, } from './semantic-model.js';
|
|
|
16
16
|
// SymbolTable is exclusively owned by SemanticModel. Re-exported here
|
|
17
17
|
// for the rare caller that needs the file/callable interface in
|
|
18
18
|
// isolation (e.g. tests).
|
|
19
|
-
export { createSymbolTable, } from './symbol-table.js';
|
|
19
|
+
export { createSymbolTable, CLASS_TYPES, CLASS_TYPES_TUPLE, FREE_CALLABLE_TYPES, FREE_CALLABLE_TUPLE, CALL_TARGET_TYPES, } from './symbol-table.js';
|
|
20
20
|
// Type registry (classes, structs, interfaces, enums, records, impls)
|
|
21
21
|
export { createTypeRegistry, } from './type-registry.js';
|
|
22
22
|
// Method registry (owner-scoped methods with arity-aware overload lookup)
|
|
@@ -12,6 +12,9 @@ import type { MroStrategy } from '../../../_shared/index.js';
|
|
|
12
12
|
/**
|
|
13
13
|
* Gather all ancestor IDs in BFS / topological order.
|
|
14
14
|
* Returns the linearized list of ancestor IDs (excluding the class itself).
|
|
15
|
+
*
|
|
16
|
+
* Uses a head-pointer BFS (`queue[head++]`) instead of `Array.shift()` to
|
|
17
|
+
* avoid O(n) per-dequeue re-indexing — matching `buildParentMapFromHeritage`.
|
|
15
18
|
*/
|
|
16
19
|
declare function gatherAncestors(classId: string, parentMap: Map<string, string[]>): string[];
|
|
17
20
|
/**
|
|
@@ -15,13 +15,17 @@
|
|
|
15
15
|
/**
|
|
16
16
|
* Gather all ancestor IDs in BFS / topological order.
|
|
17
17
|
* Returns the linearized list of ancestor IDs (excluding the class itself).
|
|
18
|
+
*
|
|
19
|
+
* Uses a head-pointer BFS (`queue[head++]`) instead of `Array.shift()` to
|
|
20
|
+
* avoid O(n) per-dequeue re-indexing — matching `buildParentMapFromHeritage`.
|
|
18
21
|
*/
|
|
19
22
|
function gatherAncestors(classId, parentMap) {
|
|
20
23
|
const visited = new Set();
|
|
21
24
|
const order = [];
|
|
22
25
|
const queue = [...(parentMap.get(classId) ?? [])];
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
let head = 0;
|
|
27
|
+
while (head < queue.length) {
|
|
28
|
+
const id = queue[head++];
|
|
25
29
|
if (visited.has(id))
|
|
26
30
|
continue;
|
|
27
31
|
visited.add(id);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { KnowledgeGraph } from '../graph/types.js';
|
|
2
|
-
import type { SymbolTableWriter } from './model/
|
|
2
|
+
import type { SymbolTableWriter, ExtractedHeritage } from './model/index.js';
|
|
3
3
|
import { ASTCache } from './ast-cache.js';
|
|
4
4
|
import { WorkerPool } from './workers/worker-pool.js';
|
|
5
5
|
import type { ExtractedImport, ExtractedCall, ExtractedAssignment, ExtractedRoute, ExtractedFetchCall, ExtractedDecoratorRoute, ExtractedToolDef, FileConstructorBindings, FileScopeBindings, ExtractedORMQuery } from './workers/parse-worker.js';
|
|
6
|
-
import type { ExtractedHeritage } from './model/heritage-map.js';
|
|
7
6
|
export type FileProgressCallback = (current: number, total: number, filePath: string) => void;
|
|
8
7
|
export interface WorkerExtractedData {
|
|
9
8
|
imports: ExtractedImport[];
|