milens 0.6.5 → 0.6.7
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/.agents/skills/adapters/SKILL.md +14 -14
- package/.agents/skills/analyzer/SKILL.md +26 -24
- package/.agents/skills/apps/SKILL.md +10 -8
- package/.agents/skills/docs/SKILL.md +14 -8
- package/.agents/skills/milens/SKILL.md +164 -43
- package/.agents/skills/milens-security-review/SKILL.md +224 -224
- package/.agents/skills/orchestrator/SKILL.md +3 -1
- package/.agents/skills/parser/SKILL.md +16 -15
- package/.agents/skills/root/SKILL.md +20 -20
- package/.agents/skills/security/SKILL.md +1 -0
- package/.agents/skills/server/SKILL.md +13 -12
- package/.agents/skills/store/SKILL.md +12 -12
- package/.agents/skills/test/SKILL.md +57 -26
- package/README.md +170 -171
- package/adapters/claude-code/CLAUDE.md +36 -15
- package/adapters/codex/.codex/codex.md +38 -23
- package/adapters/copilot/.github/copilot-instructions.md +29 -22
- package/adapters/gemini/.gemini/context.md +33 -10
- package/adapters/opencode/AGENTS.md +36 -15
- package/dist/agents-md.d.ts.map +1 -1
- package/dist/agents-md.js +51 -2
- package/dist/agents-md.js.map +1 -1
- package/dist/analyzer/engine.d.ts +3 -0
- package/dist/analyzer/engine.d.ts.map +1 -1
- package/dist/analyzer/engine.js +342 -8
- package/dist/analyzer/engine.js.map +1 -1
- package/dist/analyzer/resolver.d.ts +2 -0
- package/dist/analyzer/resolver.d.ts.map +1 -1
- package/dist/analyzer/resolver.js +187 -9
- package/dist/analyzer/resolver.js.map +1 -1
- package/dist/analyzer/review.d.ts.map +1 -1
- package/dist/analyzer/review.js +254 -32
- package/dist/analyzer/review.js.map +1 -1
- package/dist/analyzer/scope-resolver.d.ts +42 -0
- package/dist/analyzer/scope-resolver.d.ts.map +1 -0
- package/dist/analyzer/scope-resolver.js +687 -0
- package/dist/analyzer/scope-resolver.js.map +1 -0
- package/dist/cli.js +294 -1
- package/dist/cli.js.map +1 -1
- package/dist/parser/extract.d.ts +6 -1
- package/dist/parser/extract.d.ts.map +1 -1
- package/dist/parser/extract.js +14 -2
- package/dist/parser/extract.js.map +1 -1
- package/dist/parser/lang-css.d.ts.map +1 -1
- package/dist/parser/lang-css.js +7 -1
- package/dist/parser/lang-css.js.map +1 -1
- package/dist/parser/lang-go.d.ts.map +1 -1
- package/dist/parser/lang-go.js +16 -0
- package/dist/parser/lang-go.js.map +1 -1
- package/dist/parser/lang-html.d.ts +4 -0
- package/dist/parser/lang-html.d.ts.map +1 -1
- package/dist/parser/lang-html.js +40 -1
- package/dist/parser/lang-html.js.map +1 -1
- package/dist/parser/lang-java.d.ts.map +1 -1
- package/dist/parser/lang-java.js +12 -0
- package/dist/parser/lang-java.js.map +1 -1
- package/dist/parser/lang-js.d.ts.map +1 -1
- package/dist/parser/lang-js.js +3 -0
- package/dist/parser/lang-js.js.map +1 -1
- package/dist/parser/lang-php.d.ts.map +1 -1
- package/dist/parser/lang-php.js +11 -0
- package/dist/parser/lang-php.js.map +1 -1
- package/dist/parser/lang-py.d.ts.map +1 -1
- package/dist/parser/lang-py.js +14 -0
- package/dist/parser/lang-py.js.map +1 -1
- package/dist/parser/lang-ruby.d.ts.map +1 -1
- package/dist/parser/lang-ruby.js +20 -0
- package/dist/parser/lang-ruby.js.map +1 -1
- package/dist/parser/lang-rust.d.ts.map +1 -1
- package/dist/parser/lang-rust.js +27 -4
- package/dist/parser/lang-rust.js.map +1 -1
- package/dist/parser/lang-ts.d.ts.map +1 -1
- package/dist/parser/lang-ts.js +3 -0
- package/dist/parser/lang-ts.js.map +1 -1
- package/dist/parser/lang-vue.d.ts +17 -1
- package/dist/parser/lang-vue.d.ts.map +1 -1
- package/dist/parser/lang-vue.js +177 -0
- package/dist/parser/lang-vue.js.map +1 -1
- package/dist/parser/language-provider.d.ts +27 -0
- package/dist/parser/language-provider.d.ts.map +1 -0
- package/dist/parser/language-provider.js +2 -0
- package/dist/parser/language-provider.js.map +1 -0
- package/dist/server/mcp.d.ts.map +1 -1
- package/dist/server/mcp.js +224 -50
- package/dist/server/mcp.js.map +1 -1
- package/dist/server/watcher.d.ts +8 -0
- package/dist/server/watcher.d.ts.map +1 -1
- package/dist/server/watcher.js +10 -8
- package/dist/server/watcher.js.map +1 -1
- package/dist/skills.js +163 -42
- package/dist/skills.js.map +1 -1
- package/dist/store/schema.sql +1 -1
- package/dist/ui/progress.d.ts +28 -0
- package/dist/ui/progress.d.ts.map +1 -0
- package/dist/ui/progress.js +100 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/uninstall.d.ts +54 -0
- package/dist/uninstall.d.ts.map +1 -0
- package/dist/uninstall.js +795 -0
- package/dist/uninstall.js.map +1 -0
- package/docs/README.md +4 -1
- package/package.json +1 -1
package/dist/parser/lang-html.js
CHANGED
|
@@ -4,7 +4,12 @@ const spec = {
|
|
|
4
4
|
id: 'html',
|
|
5
5
|
extensions: ['.html', '.htm'],
|
|
6
6
|
wasmName: 'tree-sitter-html',
|
|
7
|
-
queries: {
|
|
7
|
+
queries: {
|
|
8
|
+
calls: `(element
|
|
9
|
+
(start_tag
|
|
10
|
+
(attribute (attribute_name) (quoted_attribute_value (attribute_value) @callee)))
|
|
11
|
+
) @def`,
|
|
12
|
+
},
|
|
8
13
|
resolveImport(raw, fromFile, root, aliases) {
|
|
9
14
|
// Check aliases first
|
|
10
15
|
let aliased = false;
|
|
@@ -79,5 +84,39 @@ export function extractHtmlRefs(source, filePath) {
|
|
|
79
84
|
}
|
|
80
85
|
return imports;
|
|
81
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Extract form actions, anchor hrefs, img/src/source assets, and link icons.
|
|
89
|
+
*/
|
|
90
|
+
export function extractHtmlLinks(source, filePath) {
|
|
91
|
+
const imports = [];
|
|
92
|
+
const lines = source.split('\n');
|
|
93
|
+
for (let i = 0; i < lines.length; i++) {
|
|
94
|
+
const line = lines[i];
|
|
95
|
+
// Match any attribute value prefixed by common tag+attribute patterns
|
|
96
|
+
const patterns = [
|
|
97
|
+
/<a\b[^>]*\bhref\s*=\s*["']([^"']+)["']/i,
|
|
98
|
+
/<form\b[^>]*\baction\s*=\s*["']([^"']+)["']/i,
|
|
99
|
+
/<img\b[^>]*\bsrc\s*=\s*["']([^"']+)["']/i,
|
|
100
|
+
/<source\b[^>]*\bsrc\s*=\s*["']([^"']+)["']/i,
|
|
101
|
+
/<link\b[^>]*\brel\s*=\s*["'](?:icon|shortcut icon|apple-touch-icon)["'][^>]*\bhref\s*=\s*["']([^"']+)["']/i,
|
|
102
|
+
/<link\b[^>]*\bhref\s*=\s*["']([^"']+)["'][^>]*\brel\s*=\s*["'](?:icon|shortcut icon|apple-touch-icon)["']/i,
|
|
103
|
+
];
|
|
104
|
+
for (const re of patterns) {
|
|
105
|
+
const m = line.match(re);
|
|
106
|
+
if (m && !m[1].startsWith('#') && !m[1].startsWith('javascript:')) {
|
|
107
|
+
imports.push({
|
|
108
|
+
filePath,
|
|
109
|
+
modulePath: m[1],
|
|
110
|
+
names: [],
|
|
111
|
+
isDefault: false,
|
|
112
|
+
isWildcard: true,
|
|
113
|
+
line: i + 1,
|
|
114
|
+
});
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return imports;
|
|
120
|
+
}
|
|
82
121
|
export default spec;
|
|
83
122
|
//# sourceMappingURL=lang-html.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-html.js","sourceRoot":"","sources":["../../src/parser/lang-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-html.js","sourceRoot":"","sources":["../../src/parser/lang-html.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-java.d.ts","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-java.d.ts","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAmEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-java.js
CHANGED
|
@@ -4,6 +4,9 @@ const spec = {
|
|
|
4
4
|
id: 'java',
|
|
5
5
|
extensions: ['.java'],
|
|
6
6
|
wasmName: 'tree-sitter-java',
|
|
7
|
+
mroStrategy: 'first-wins',
|
|
8
|
+
importSemantics: 'named',
|
|
9
|
+
isExported: () => false, // handled by exports query (public keyword)
|
|
7
10
|
queries: {
|
|
8
11
|
classes: `[
|
|
9
12
|
(class_declaration name: (identifier) @name) @def
|
|
@@ -41,6 +44,15 @@ const spec = {
|
|
|
41
44
|
name: (identifier) @child
|
|
42
45
|
(super_interfaces (type_list (type_identifier) @parent))
|
|
43
46
|
) @def
|
|
47
|
+
]`,
|
|
48
|
+
exports: `[
|
|
49
|
+
(class_declaration (modifiers "public") name: (identifier) @name)
|
|
50
|
+
(class_declaration (modifiers "public" "static") name: (identifier) @name)
|
|
51
|
+
(class_declaration (modifiers "public" "abstract") name: (identifier) @name)
|
|
52
|
+
(interface_declaration (modifiers "public") name: (identifier) @name)
|
|
53
|
+
(enum_declaration (modifiers "public") name: (identifier) @name)
|
|
54
|
+
(record_declaration (modifiers "public") name: (identifier) @name)
|
|
55
|
+
(method_declaration (modifiers "public") name: (identifier) @name)
|
|
44
56
|
]`,
|
|
45
57
|
},
|
|
46
58
|
resolveImport(raw, _fromFile, root, _aliases) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-java.js","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,OAAO,EAAE;;;MAGP;QACF,UAAU,EAAE,uDAAuD;QACnE,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE,kDAAkD;QACzD,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE;;;;;;;;;;;MAWL;QACF,SAAS,EAAE,qFAAqF;QAChG,QAAQ,EAAE;;;;;;;;;MASR;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,+CAA+C;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;QACjD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,6CAA6C;QAC7C,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YACjD,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"lang-java.js","sourceRoot":"","sources":["../../src/parser/lang-java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,4CAA4C;IACrE,OAAO,EAAE;QACP,OAAO,EAAE;;;MAGP;QACF,UAAU,EAAE,uDAAuD;QACnE,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE,kDAAkD;QACzD,OAAO,EAAE;;;MAGP;QACF,KAAK,EAAE;;;;;;;;;;;MAWL;QACF,SAAS,EAAE,qFAAqF;QAChG,QAAQ,EAAE;;;;;;;;;MASR;QACF,OAAO,EAAE;;;;;;;;MAQP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,+CAA+C;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;QACjD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,6CAA6C;QAC7C,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC;YACjD,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-js.d.ts","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-js.d.ts","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QA4KX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-js.js
CHANGED
|
@@ -4,6 +4,9 @@ const spec = {
|
|
|
4
4
|
id: 'javascript',
|
|
5
5
|
extensions: ['.js', '.jsx', '.mjs', '.cjs'],
|
|
6
6
|
wasmName: 'tree-sitter-javascript',
|
|
7
|
+
mroStrategy: 'first-wins',
|
|
8
|
+
importSemantics: 'named',
|
|
9
|
+
isExported: () => false, // handled by exports query (export keyword)
|
|
7
10
|
queries: {
|
|
8
11
|
functions: `[
|
|
9
12
|
(function_declaration name: (identifier) @name) @def
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-js.js","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lang-js.js","sourceRoot":"","sources":["../../src/parser/lang-js.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-php.d.ts","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-php.d.ts","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAgFX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-php.js
CHANGED
|
@@ -4,6 +4,9 @@ const spec = {
|
|
|
4
4
|
id: 'php',
|
|
5
5
|
extensions: ['.php'],
|
|
6
6
|
wasmName: 'tree-sitter-php',
|
|
7
|
+
mroStrategy: 'first-wins',
|
|
8
|
+
importSemantics: 'wildcard-leaf',
|
|
9
|
+
isExported: () => false, // handled by exports query (public keyword)
|
|
7
10
|
queries: {
|
|
8
11
|
functions: `[
|
|
9
12
|
(function_definition name: (name) @name) @def
|
|
@@ -51,6 +54,14 @@ const spec = {
|
|
|
51
54
|
(use_declaration (name) @parent)
|
|
52
55
|
)
|
|
53
56
|
) @def
|
|
57
|
+
]`,
|
|
58
|
+
exports: `[
|
|
59
|
+
(method_declaration (visibility_modifier) name: (name) @name)
|
|
60
|
+
(class_declaration name: (name) @name)
|
|
61
|
+
(interface_declaration name: (name) @name)
|
|
62
|
+
(trait_declaration name: (name) @name)
|
|
63
|
+
(function_definition name: (name) @name)
|
|
64
|
+
(const_declaration (const_element (name) @name))
|
|
54
65
|
]`,
|
|
55
66
|
},
|
|
56
67
|
resolveImport(raw, _fromFile, root, aliases) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-php.js","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE;QACP,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,iDAAiD;QAC7D,MAAM,EAAE,6CAA6C;QACrD,KAAK,EAAE,4CAA4C;QACnD,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE;;;;;;;MAOP;QACF,KAAK,EAAE;;;;;;;;;;;;;MAaL;QACF,QAAQ,EAAE;;;;;;;;;;;;;;;MAeR;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO;QACzC,4EAA4E;QAC5E,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;gBACjD,IAAI,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"lang-php.js","sourceRoot":"","sources":["../../src/parser/lang-php.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,KAAK;IACT,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB;IAC3B,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,4CAA4C;IACrE,OAAO,EAAE;QACP,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,iDAAiD;QAC7D,MAAM,EAAE,6CAA6C;QACrD,KAAK,EAAE,4CAA4C;QACnD,OAAO,EAAE,8CAA8C;QACvD,OAAO,EAAE;;;;;;;MAOP;QACF,KAAK,EAAE;;;;;;;;;;;;;MAaL;QACF,QAAQ,EAAE;;;;;;;;;;;;;;;MAeR;QACF,OAAO,EAAE;;;;;;;MAOP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO;QACzC,4EAA4E;QAC5E,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC;gBACjD,IAAI,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-py.d.ts","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-py.d.ts","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAmGX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-py.js
CHANGED
|
@@ -5,6 +5,9 @@ const spec = {
|
|
|
5
5
|
extensions: ['.py'],
|
|
6
6
|
wasmName: 'tree-sitter-python',
|
|
7
7
|
allTopLevelExported: true,
|
|
8
|
+
mroStrategy: 'c3',
|
|
9
|
+
importSemantics: 'namespace',
|
|
10
|
+
isExported: (sym) => !sym.name.startsWith('_') && sym.kind !== 'module',
|
|
8
11
|
queries: {
|
|
9
12
|
functions: `[
|
|
10
13
|
(module (function_definition name: (identifier) @name) @def)
|
|
@@ -48,6 +51,17 @@ const spec = {
|
|
|
48
51
|
name: (identifier) @child
|
|
49
52
|
superclasses: (argument_list (identifier) @parent)
|
|
50
53
|
) @def`,
|
|
54
|
+
typeBindings: `[
|
|
55
|
+
(assignment left: (identifier) @var type: (type (identifier) @type))
|
|
56
|
+
(typed_parameter (identifier) @var type: (type (identifier) @type))
|
|
57
|
+
(typed_default_parameter name: (identifier) @var type: (type (identifier) @type))
|
|
58
|
+
(function_definition parameters: (parameters (typed_parameter (identifier) @var type: (type (identifier) @type))))
|
|
59
|
+
(function_definition parameters: (parameters (typed_default_parameter name: (identifier) @var type: (type (identifier) @type))))
|
|
60
|
+
]`,
|
|
61
|
+
returnTypes: `[
|
|
62
|
+
(function_definition name: (identifier) @name return_type: (type (identifier) @returnType))
|
|
63
|
+
(decorated_definition definition: (function_definition name: (identifier) @name return_type: (type (identifier) @returnType)))
|
|
64
|
+
]`,
|
|
51
65
|
},
|
|
52
66
|
resolveImport(raw, fromFile, root, _aliases) {
|
|
53
67
|
// Handle relative imports: leading dots
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-py.js","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,QAAQ;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,oBAAoB;IAC9B,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE;QACP,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;MAGP;QACF,SAAS,EAAE,4EAA4E;QACvF,OAAO,EAAE;;;MAGP;QACF,OAAO,EAAE;;;;;;;;;;MAUP;QACF,OAAO,EAAE;;;;;;;MAOP;QACF,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;WAGH;
|
|
1
|
+
{"version":3,"file":"lang-py.js","sourceRoot":"","sources":["../../src/parser/lang-py.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-ruby.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-ruby.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAkEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-ruby.js
CHANGED
|
@@ -5,12 +5,21 @@ const spec = {
|
|
|
5
5
|
extensions: ['.rb', '.rake'],
|
|
6
6
|
wasmName: 'tree-sitter-ruby',
|
|
7
7
|
allTopLevelExported: true,
|
|
8
|
+
mroStrategy: 'ruby-mixin',
|
|
9
|
+
importSemantics: 'wildcard-leaf',
|
|
10
|
+
isExported: (sym) => !sym.name.startsWith('_'),
|
|
8
11
|
queries: {
|
|
9
12
|
classes: `(class name: (constant) @name) @def`,
|
|
10
13
|
modules: `(module name: (constant) @name) @def`,
|
|
14
|
+
constants: `(assignment left: (constant) @name) @def`,
|
|
15
|
+
variables: `[
|
|
16
|
+
(assignment left: (instance_variable) @name) @def
|
|
17
|
+
(assignment left: (class_variable) @name) @def
|
|
18
|
+
]`,
|
|
11
19
|
methods: `[
|
|
12
20
|
(method name: (identifier) @name) @def
|
|
13
21
|
(singleton_method name: (identifier) @name) @def
|
|
22
|
+
(call method: (identifier) @_attr arguments: (argument_list (simple_symbol (identifier) @name))) @def
|
|
14
23
|
]`,
|
|
15
24
|
imports: `(call
|
|
16
25
|
method: (identifier) @_req
|
|
@@ -25,6 +34,17 @@ const spec = {
|
|
|
25
34
|
(class name: (constant) @child superclass: (superclass (scope_resolution name: (constant) @parent))) @def
|
|
26
35
|
(class name: (constant) @child body: (body_statement (call method: (identifier) @_inc arguments: (argument_list (constant) @parent)))) @def
|
|
27
36
|
(class name: (constant) @child body: (body_statement (call method: (identifier) @_inc arguments: (argument_list (scope_resolution name: (constant) @parent))))) @def
|
|
37
|
+
]`,
|
|
38
|
+
typeBindings: `[
|
|
39
|
+
(assignment
|
|
40
|
+
left: (identifier) @var
|
|
41
|
+
right: (call receiver: (constant) @type method: (identifier)))
|
|
42
|
+
(assignment
|
|
43
|
+
left: (instance_variable) @var
|
|
44
|
+
right: (call receiver: (constant) @type method: (identifier)))
|
|
45
|
+
(assignment
|
|
46
|
+
left: (identifier) @var
|
|
47
|
+
right: (call receiver: (scope_resolution name: (constant) @type) method: (identifier)))
|
|
28
48
|
]`,
|
|
29
49
|
},
|
|
30
50
|
resolveImport(raw, fromFile, root, _aliases) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-ruby.js","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAE;QACP,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,sCAAsC;QAC/C,
|
|
1
|
+
{"version":3,"file":"lang-ruby.js","sourceRoot":"","sources":["../../src/parser/lang-ruby.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,mBAAmB,EAAE,IAAI;IACzB,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAC9C,OAAO,EAAE;QACP,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,0CAA0C;QACrD,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;WAGF;QACP,KAAK,EAAE;;;MAGL;QACF,QAAQ,EAAE;;;;;MAKR;QACF,YAAY,EAAE;;;;;;;;;;MAUZ;KACH;IACD,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;QACzC,oCAAoC;QACpC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YACzC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,oDAAoD;QACpD,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK;YACvB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;YAC9B,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK;SAC/B,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-rust.d.ts","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-rust.d.ts","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAsFX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-rust.js
CHANGED
|
@@ -4,6 +4,9 @@ const spec = {
|
|
|
4
4
|
id: 'rust',
|
|
5
5
|
extensions: ['.rs'],
|
|
6
6
|
wasmName: 'tree-sitter-rust',
|
|
7
|
+
mroStrategy: 'none',
|
|
8
|
+
importSemantics: 'named',
|
|
9
|
+
isExported: () => false, // handled by exports query (pub keyword)
|
|
7
10
|
queries: {
|
|
8
11
|
functions: `(function_item name: (identifier) @name) @def`,
|
|
9
12
|
structs: `(struct_item name: (type_identifier) @name) @def`,
|
|
@@ -33,10 +36,30 @@ const spec = {
|
|
|
33
36
|
(call_expression function: (field_expression value: (_) @receiver field: (field_identifier) @callee)) @def
|
|
34
37
|
(macro_invocation macro: (identifier) @callee) @def
|
|
35
38
|
]`,
|
|
36
|
-
heritage: `
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
heritage: `[
|
|
40
|
+
(impl_item
|
|
41
|
+
trait: (type_identifier) @parent
|
|
42
|
+
type: (type_identifier) @child
|
|
43
|
+
) @def
|
|
44
|
+
(impl_item
|
|
45
|
+
type: (type_identifier) @child
|
|
46
|
+
body: (declaration_list
|
|
47
|
+
(function_item name: (identifier) @name)
|
|
48
|
+
)
|
|
49
|
+
)
|
|
50
|
+
]`,
|
|
51
|
+
typeBindings: `[
|
|
52
|
+
(let_declaration pattern: (identifier) @var type: (type_identifier) @type)
|
|
53
|
+
(let_declaration pattern: (identifier) @var value: (call_expression function: (identifier) @callee))
|
|
54
|
+
(parameter_declaration pattern: (identifier) @var type: (type_identifier) @type)
|
|
55
|
+
(const_item name: (identifier) @var type: (type_identifier) @type)
|
|
56
|
+
(static_item name: (identifier) @var type: (type_identifier) @type)
|
|
57
|
+
(field_declaration name: (field_identifier) @var type: (type_identifier) @type)
|
|
58
|
+
]`,
|
|
59
|
+
returnTypes: `[
|
|
60
|
+
(function_item name: (identifier) @name return_type: (type_identifier) @returnType)
|
|
61
|
+
(function_item name: (identifier) @name return_type: (generic_type type: (type_identifier) @returnType))
|
|
62
|
+
]`,
|
|
40
63
|
exports: `[
|
|
41
64
|
(function_item (visibility_modifier) name: (identifier) @name) @_def
|
|
42
65
|
(struct_item (visibility_modifier) name: (type_identifier) @name) @_def
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-rust.js","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAW,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE;QACP,SAAS,EAAE,+CAA+C;QAC1D,OAAO,EAAE,kDAAkD;QAC3D,KAAK,EAAE,gDAAgD;QACvD,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE,0CAA0C;QACnD,KAAK,EAAE,gDAAgD;QACvD,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;;;;WAMF;QACP,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;
|
|
1
|
+
{"version":3,"file":"lang-rust.js","sourceRoot":"","sources":["../../src/parser/lang-rust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAW,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,IAAI,GAAa;IACrB,EAAE,EAAE,MAAM;IACV,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,yCAAyC;IAClE,OAAO,EAAE;QACP,SAAS,EAAE,+CAA+C;QAC1D,OAAO,EAAE,kDAAkD;QAC3D,KAAK,EAAE,gDAAgD;QACvD,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE,0CAA0C;QACnD,KAAK,EAAE,gDAAgD;QACvD,SAAS,EAAE;;;MAGT;QACF,OAAO,EAAE;;;;MAIP;QACF,OAAO,EAAE;;;;;;WAMF;QACP,KAAK,EAAE;;;;;MAKL;QACF,QAAQ,EAAE;;;;;;;;;;;MAWR;QACF,YAAY,EAAE;;;;;;;MAOZ;QACF,WAAW,EAAE;;;MAGX;QACF,OAAO,EAAE;;;;;;;;;MASP;KACH;IACD,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;QAC1C,qEAAqE;QACrE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,8CAA8C;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK;YACnC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,QAAQ,CAAC;SACtC,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-ts.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"lang-ts.d.ts","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,QAAA,MAAM,IAAI,EAAE,QAiRX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-ts.js
CHANGED
|
@@ -4,6 +4,9 @@ const spec = {
|
|
|
4
4
|
id: 'typescript',
|
|
5
5
|
extensions: ['.ts', '.tsx'],
|
|
6
6
|
wasmName: 'tree-sitter-tsx',
|
|
7
|
+
mroStrategy: 'first-wins',
|
|
8
|
+
importSemantics: 'named',
|
|
9
|
+
isExported: () => false, // handled by exports query (export keyword)
|
|
7
10
|
queries: {
|
|
8
11
|
functions: `[
|
|
9
12
|
(function_declaration name: (identifier) @name) @def
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-ts.js","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lang-ts.js","sourceRoot":"","sources":["../../src/parser/lang-ts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { LangSpec } from './extract.js';
|
|
2
|
-
import type { RawCall } from '../types.js';
|
|
2
|
+
import type { RawCall, CodeSymbol } from '../types.js';
|
|
3
|
+
import type Parser from 'web-tree-sitter';
|
|
3
4
|
declare const spec: LangSpec;
|
|
4
5
|
/**
|
|
5
6
|
* Extract the <script> or <script setup> block content from a Vue SFC.
|
|
@@ -14,5 +15,20 @@ export declare function extractVueScript(source: string): {
|
|
|
14
15
|
* Captures: component tags, event handlers, v-bind/v-model/v-if directives, interpolations.
|
|
15
16
|
*/
|
|
16
17
|
export declare function extractVueTemplateRefs(source: string, filePath: string): RawCall[];
|
|
18
|
+
/**
|
|
19
|
+
* AST-based extraction of references from Vue <template> block using tree-sitter-html.
|
|
20
|
+
* Handles multi-line attributes, nested components, class attributes for CSS linking,
|
|
21
|
+
* ref attributes for template ref symbols, and all directive/event/interpolation patterns.
|
|
22
|
+
*/
|
|
23
|
+
export declare function extractVueTemplateAst(parser: Parser, source: string, filePath: string): {
|
|
24
|
+
calls: RawCall[];
|
|
25
|
+
symbols: CodeSymbol[];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Extract Composition API symbols from <script setup> content.
|
|
29
|
+
* Captures defineProps prop children and defineEmits event names.
|
|
30
|
+
* Parent variable symbols (props, emit) are already captured by the TS variables query.
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractVueCompositionApi(scriptContent: string, filePath: string, lineOffset: number): CodeSymbol[];
|
|
17
33
|
export default spec;
|
|
18
34
|
//# sourceMappingURL=lang-vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang-vue.d.ts","sourceRoot":"","sources":["../../src/parser/lang-vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"lang-vue.d.ts","sourceRoot":"","sources":["../../src/parser/lang-vue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAI1C,QAAA,MAAM,IAAI,EAAE,QAMX,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa/F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CA6ClF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CA8H7C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,UAAU,EAAE,CAyDd;AAED,eAAe,IAAI,CAAC"}
|
package/dist/parser/lang-vue.js
CHANGED
|
@@ -68,5 +68,182 @@ export function extractVueTemplateRefs(source, filePath) {
|
|
|
68
68
|
}
|
|
69
69
|
return calls;
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* AST-based extraction of references from Vue <template> block using tree-sitter-html.
|
|
73
|
+
* Handles multi-line attributes, nested components, class attributes for CSS linking,
|
|
74
|
+
* ref attributes for template ref symbols, and all directive/event/interpolation patterns.
|
|
75
|
+
*/
|
|
76
|
+
export function extractVueTemplateAst(parser, source, filePath) {
|
|
77
|
+
const calls = [];
|
|
78
|
+
const symbols = [];
|
|
79
|
+
const templateMatch = source.match(/<template[^>]*>([\s\S]*?)<\/template>/i);
|
|
80
|
+
if (!templateMatch)
|
|
81
|
+
return { calls, symbols };
|
|
82
|
+
const templateStart = source.indexOf(templateMatch[0]);
|
|
83
|
+
const tagEnd = templateMatch[0].indexOf('>') + 1;
|
|
84
|
+
const contentStart = templateStart + tagEnd;
|
|
85
|
+
const lineOffset = source.slice(0, contentStart).split('\n').length;
|
|
86
|
+
const templateContent = templateMatch[1];
|
|
87
|
+
const moduleId = `${filePath}#module:_top:0`;
|
|
88
|
+
const tree = parser.parse(templateContent);
|
|
89
|
+
const seenCalls = new Set();
|
|
90
|
+
function walk(node) {
|
|
91
|
+
if (node.type === 'start_tag' || node.type === 'self_closing_tag') {
|
|
92
|
+
const tagNameNode = node.childForFieldName?.('name') ?? node.firstNamedChild;
|
|
93
|
+
const tagName = tagNameNode?.text;
|
|
94
|
+
const line = lineOffset + node.startPosition.row;
|
|
95
|
+
// Component tags: PascalCase or kebab-case with hyphen
|
|
96
|
+
if (tagName && (/^[A-Z]/.test(tagName) || tagName.includes('-'))) {
|
|
97
|
+
const dedupKey = `tag:${tagName}:${line}`;
|
|
98
|
+
if (!seenCalls.has(dedupKey)) {
|
|
99
|
+
seenCalls.add(dedupKey);
|
|
100
|
+
calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: tagName, line });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Process attributes
|
|
104
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
105
|
+
const child = node.namedChild(i);
|
|
106
|
+
if (child?.type !== 'attribute')
|
|
107
|
+
continue;
|
|
108
|
+
const attrNameChild = child.firstNamedChild;
|
|
109
|
+
const attrName = attrNameChild?.text || '';
|
|
110
|
+
const valueNode = child.namedChild(1);
|
|
111
|
+
const rawValue = valueNode?.text || '';
|
|
112
|
+
const value = rawValue.replace(/^["']|["']$/g, '');
|
|
113
|
+
const attrLine = lineOffset + child.startPosition.row;
|
|
114
|
+
// class="container main" → calls with . prefix for CSS linking
|
|
115
|
+
if (attrName === 'class' && value) {
|
|
116
|
+
const classes = value.split(/\s+/).filter(Boolean);
|
|
117
|
+
for (const cls of classes) {
|
|
118
|
+
const dedupKey = `class:${cls}:${attrLine}`;
|
|
119
|
+
if (!seenCalls.has(dedupKey)) {
|
|
120
|
+
seenCalls.add(dedupKey);
|
|
121
|
+
calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: `.${cls}`, line: attrLine });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
// ref="inputEl" → template ref symbol
|
|
127
|
+
if (attrName === 'ref' && value) {
|
|
128
|
+
const dedupKey = `ref:${value}:${attrLine}`;
|
|
129
|
+
if (!seenCalls.has(dedupKey)) {
|
|
130
|
+
seenCalls.add(dedupKey);
|
|
131
|
+
symbols.push({
|
|
132
|
+
id: `${filePath}#variable:${value}:${attrLine}`,
|
|
133
|
+
name: value,
|
|
134
|
+
kind: 'variable',
|
|
135
|
+
filePath,
|
|
136
|
+
startLine: attrLine,
|
|
137
|
+
endLine: attrLine,
|
|
138
|
+
exported: false,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
// Event handlers: @click="handler", v-on:click="handler"
|
|
144
|
+
if ((attrName.startsWith('@') || attrName.startsWith('v-on:')) && value) {
|
|
145
|
+
const handler = value.match(/^([a-zA-Z_$][\w$]*)/)?.[1];
|
|
146
|
+
if (handler) {
|
|
147
|
+
const dedupKey = `event:${handler}:${attrLine}`;
|
|
148
|
+
if (!seenCalls.has(dedupKey)) {
|
|
149
|
+
seenCalls.add(dedupKey);
|
|
150
|
+
calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: handler, line: attrLine });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
// Directives: v-if="expr", v-show="expr", v-model="expr", :prop="expr"
|
|
156
|
+
if (/^(v-(?:if|else-if|show|model|for|html|text|bind)|:)/.test(attrName) && value) {
|
|
157
|
+
const expr = value.match(/^([a-zA-Z_$][\w$.]*)/)?.[1];
|
|
158
|
+
if (expr) {
|
|
159
|
+
const dedupKey = `dir:${expr}:${attrLine}`;
|
|
160
|
+
if (!seenCalls.has(dedupKey)) {
|
|
161
|
+
seenCalls.add(dedupKey);
|
|
162
|
+
calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: expr, line: attrLine });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Interpolations: {{ expression }}
|
|
170
|
+
if (node.type === 'interpolation') {
|
|
171
|
+
const text = node.text.slice(2, -2).trim(); // strip {{ }}
|
|
172
|
+
const expr = text.match(/^([a-zA-Z_$][\w$.]*)/)?.[1];
|
|
173
|
+
if (expr) {
|
|
174
|
+
const line = lineOffset + node.startPosition.row;
|
|
175
|
+
const dedupKey = `interp:${expr}:${line}`;
|
|
176
|
+
if (!seenCalls.has(dedupKey)) {
|
|
177
|
+
seenCalls.add(dedupKey);
|
|
178
|
+
calls.push({ filePath, enclosingSymbolId: moduleId, calleeName: expr, line });
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// Recurse
|
|
183
|
+
for (let i = 0; i < node.namedChildCount; i++) {
|
|
184
|
+
walk(node.namedChild(i));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const htmlTree = parser.parse(templateContent);
|
|
188
|
+
walk(htmlTree.rootNode);
|
|
189
|
+
return { calls, symbols };
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Extract Composition API symbols from <script setup> content.
|
|
193
|
+
* Captures defineProps prop children and defineEmits event names.
|
|
194
|
+
* Parent variable symbols (props, emit) are already captured by the TS variables query.
|
|
195
|
+
*/
|
|
196
|
+
export function extractVueCompositionApi(scriptContent, filePath, lineOffset) {
|
|
197
|
+
const symbols = [];
|
|
198
|
+
const lines = scriptContent.split('\n');
|
|
199
|
+
for (let i = 0; i < lines.length; i++) {
|
|
200
|
+
const line = lines[i];
|
|
201
|
+
const absLine = lineOffset + i + 1;
|
|
202
|
+
// defineProps<{ name: string; age?: number }>()
|
|
203
|
+
const propsMatch = line.match(/const\s+(\w+)\s*=\s*defineProps\s*<\s*\{\s*([^}]*)\s*\}\s*>/);
|
|
204
|
+
if (propsMatch) {
|
|
205
|
+
const varName = propsMatch[1];
|
|
206
|
+
const typeBody = propsMatch[2];
|
|
207
|
+
const parentId = `${filePath}#variable:${varName}:${absLine}`;
|
|
208
|
+
const propRe = /(\w+)\s*\??\s*:\s*(?:string|number|boolean|any|void|never|unknown|[A-Z]\w*|[\w\[\]<>|&,'"]+)/g;
|
|
209
|
+
let pm;
|
|
210
|
+
while ((pm = propRe.exec(typeBody)) !== null) {
|
|
211
|
+
const propName = pm[1];
|
|
212
|
+
symbols.push({
|
|
213
|
+
id: `${filePath}#variable:${propName}:${absLine}`,
|
|
214
|
+
name: propName,
|
|
215
|
+
kind: 'variable',
|
|
216
|
+
filePath,
|
|
217
|
+
startLine: absLine,
|
|
218
|
+
endLine: absLine,
|
|
219
|
+
exported: true,
|
|
220
|
+
parentId,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// defineEmits(['update', 'delete']) — runtime declaration
|
|
225
|
+
const emitsArrMatch = line.match(/const\s+(\w+)\s*=\s*defineEmits\s*\(\s*\[\s*([^\]]*)\s*\]/);
|
|
226
|
+
if (emitsArrMatch) {
|
|
227
|
+
const varName = emitsArrMatch[1];
|
|
228
|
+
const eventsStr = emitsArrMatch[2];
|
|
229
|
+
const parentId = `${filePath}#variable:${varName}:${absLine}`;
|
|
230
|
+
const eventRe = /'([\w][\w:.-]*)'/g;
|
|
231
|
+
let em;
|
|
232
|
+
while ((em = eventRe.exec(line)) !== null) {
|
|
233
|
+
symbols.push({
|
|
234
|
+
id: `${filePath}#variable:${em[1]}:${absLine}`,
|
|
235
|
+
name: em[1],
|
|
236
|
+
kind: 'variable',
|
|
237
|
+
filePath,
|
|
238
|
+
startLine: absLine,
|
|
239
|
+
endLine: absLine,
|
|
240
|
+
exported: true,
|
|
241
|
+
parentId,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return symbols;
|
|
247
|
+
}
|
|
71
248
|
export default spec;
|
|
72
249
|
//# sourceMappingURL=lang-vue.js.map
|