scip-query 0.2.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-26DOJ63W.js +161 -0
- package/dist/{chunk-PMJKOXOT.js → chunk-4JCSOF2O.js} +2 -2
- package/dist/{chunk-AKMBBKWV.js → chunk-5OMVSV6E.js} +12 -4
- package/dist/{chunk-R56FJU3E.js → chunk-7KIMF5PV.js} +2 -2
- package/dist/chunk-AXQKUYKF.js +1442 -0
- package/dist/chunk-C7H5WBTJ.js +46 -0
- package/dist/{chunk-AMNISGYR.js → chunk-CHDJXYBG.js} +2 -27
- package/dist/{chunk-GPJVPT3U.js → chunk-CPVAQJEC.js} +12 -4
- package/dist/{chunk-75RQSBTK.js → chunk-DH7G3DDV.js} +2 -2
- package/dist/{chunk-LTJC5ZQL.js → chunk-EOROMIFO.js} +13 -5
- package/dist/{chunk-BFLULBEU.js → chunk-EPWLXXBL.js} +2 -2
- package/dist/{chunk-MVH45PYK.js → chunk-FYYOWQXK.js} +12 -12
- package/dist/chunk-GEXE2T6I.js +87 -0
- package/dist/{chunk-IXPHLF6K.js → chunk-GJDHTTR2.js} +10 -3
- package/dist/chunk-GSH2FPKV.js +87 -0
- package/dist/{chunk-4ACRRQC4.js → chunk-HJZUSUPU.js} +2 -2
- package/dist/{chunk-M3NPW3FC.js → chunk-HLKAFWWJ.js} +81 -2
- package/dist/{chunk-CU62ZDHI.js → chunk-HLUS2HEB.js} +2 -2
- package/dist/{chunk-RFMT7UAZ.js → chunk-J3JSOSUO.js} +8 -5
- package/dist/{chunk-HDSRORNV.js → chunk-KKCHYLVI.js} +17 -11
- package/dist/{chunk-Y3M323OX.js → chunk-LFJQVJYJ.js} +2 -2
- package/dist/{chunk-6WVR5K46.js → chunk-LQJUPXQY.js} +3 -3
- package/dist/{chunk-ITZ3DDOG.js → chunk-MPGIHELS.js} +18 -3
- package/dist/{chunk-N4C3H7LH.js → chunk-NFS5W3PP.js} +2 -2
- package/dist/{chunk-Y4JFVQ7C.js → chunk-O7Q7FDUJ.js} +21 -13
- package/dist/{chunk-H6WCPKCX.js → chunk-OIDHN6GD.js} +2 -2
- package/dist/{chunk-4BQFSNFI.js → chunk-P3E6L7KW.js} +2 -2
- package/dist/{chunk-ORINICIZ.js → chunk-P4WO3BBW.js} +2 -2
- package/dist/{chunk-M4QGEKKD.js → chunk-SMDCNPMK.js} +8 -3
- package/dist/{chunk-6QSHLFSL.js → chunk-UGQKAVCD.js} +2 -2
- package/dist/{chunk-HMYJJ3HY.js → chunk-UQEQ6AHX.js} +3 -3
- package/dist/{chunk-WVK7AASK.js → chunk-VIYSWZCO.js} +2 -2
- package/dist/chunk-VJJKSGIX.js +121 -0
- package/dist/{chunk-N5KEREIA.js → chunk-VT4JBH6L.js} +19 -7
- package/dist/{chunk-R2I3M5B4.js → chunk-WGAD3GNR.js} +2 -2
- package/dist/{chunk-IJKLB2JW.js → chunk-YDBXNPYU.js} +2 -2
- package/dist/{chunk-VO4QI3LS.js → chunk-YY4QGUQ5.js} +2 -2
- package/dist/{chunk-3566TKJ5.js → chunk-ZEUCXQBN.js} +2 -2
- package/dist/cli.js +2310 -1351
- package/dist/{db-BHYam4BK.d.ts → db-ShvwGDKf.d.ts} +6 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +38 -38
- package/dist/queries/affected.d.ts +1 -1
- package/dist/queries/affected.js +2 -2
- package/dist/queries/bottlenecks.d.ts +1 -1
- package/dist/queries/by-kind.d.ts +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +1 -1
- package/dist/queries/call-graph.js +2 -2
- package/dist/queries/change-surface.d.ts +1 -1
- package/dist/queries/change-surface.js +2 -1
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +2 -2
- package/dist/queries/complexity-hotspots.d.ts +1 -1
- package/dist/queries/complexity-hotspots.js +2 -2
- package/dist/queries/complexity.d.ts +1 -1
- package/dist/queries/complexity.js +2 -2
- package/dist/queries/convergence.d.ts +1 -1
- package/dist/queries/convergence.js +2 -2
- package/dist/queries/coupling.d.ts +1 -1
- package/dist/queries/coupling.js +3 -1
- package/dist/queries/cycles.d.ts +1 -1
- package/dist/queries/cycles.js +2 -2
- package/dist/queries/dataflow.d.ts +1 -1
- package/dist/queries/dataflow.js +2 -2
- package/dist/queries/dead.d.ts +1 -1
- package/dist/queries/dead.js +3 -3
- package/dist/queries/deep-chains.d.ts +1 -1
- package/dist/queries/deep-chains.js +2 -2
- package/dist/queries/deps.d.ts +1 -1
- package/dist/queries/deps.js +3 -1
- package/dist/queries/diff-impact.d.ts +1 -1
- package/dist/queries/doc-coverage.d.ts +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +2 -2
- package/dist/queries/extract-candidates.d.ts +1 -1
- package/dist/queries/extract-candidates.js +2 -2
- package/dist/queries/fan.d.ts +1 -1
- package/dist/queries/fan.js +2 -1
- package/dist/queries/files.d.ts +1 -1
- package/dist/queries/health.d.ts +1 -1
- package/dist/queries/health.js +13 -13
- package/dist/queries/hierarchy.d.ts +1 -1
- package/dist/queries/hierarchy.js +2 -2
- package/dist/queries/hotspots.d.ts +1 -1
- package/dist/queries/imports.d.ts +1 -1
- package/dist/queries/imports.js +2 -2
- package/dist/queries/index.d.ts +1 -1
- package/dist/queries/index.js +38 -38
- package/dist/queries/isolated.d.ts +1 -1
- package/dist/queries/isolated.js +3 -3
- package/dist/queries/members.d.ts +1 -1
- package/dist/queries/members.js +2 -2
- package/dist/queries/methods.d.ts +1 -1
- package/dist/queries/outline.d.ts +1 -1
- package/dist/queries/outline.js +2 -1
- package/dist/queries/passthrough-candidates.d.ts +1 -1
- package/dist/queries/passthrough-candidates.js +2 -2
- package/dist/queries/redundant-reexports.d.ts +1 -1
- package/dist/queries/redundant-reexports.js +3 -3
- package/dist/queries/refs.d.ts +1 -1
- package/dist/queries/refs.js +3 -1
- package/dist/queries/similar-chains.d.ts +1 -1
- package/dist/queries/similar-chains.js +2 -2
- package/dist/queries/similar-files.d.ts +1 -1
- package/dist/queries/similar-files.js +2 -2
- package/dist/queries/similar-signatures.d.ts +1 -1
- package/dist/queries/similar.d.ts +1 -1
- package/dist/queries/similar.js +2 -2
- package/dist/queries/slice.d.ts +2 -2
- package/dist/queries/slice.js +2 -2
- package/dist/queries/stale-abstractions.d.ts +1 -1
- package/dist/queries/stale-abstractions.js +2 -2
- package/dist/queries/stats.d.ts +1 -1
- package/dist/queries/surface.d.ts +1 -1
- package/dist/queries/surface.js +2 -1
- package/dist/queries/symbols.d.ts +1 -1
- package/dist/queries/symbols.js +2 -1
- package/dist/queries/system.d.ts +1 -1
- package/dist/queries/system.js +2 -1
- package/dist/queries/trace.d.ts +1 -1
- package/dist/queries/trace.js +2 -2
- package/dist/queries/wrapper-candidates.d.ts +1 -1
- package/dist/queries/wrapper-candidates.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-34JPTNRN.js +0 -601
- package/dist/chunk-7JFZSOJ7.js +0 -103
- package/dist/chunk-DY4AFG2W.js +0 -48
- package/dist/chunk-LLMPAG56.js +0 -221
- package/dist/chunk-NVIIM34O.js +0 -65
- package/dist/chunk-YAFWL3RA.js +0 -55
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import {
|
|
2
|
+
findFirstSymbolMatch,
|
|
3
|
+
getSourceImports,
|
|
4
|
+
resolveIndexedFile
|
|
5
|
+
} from "./chunk-AXQKUYKF.js";
|
|
6
|
+
import {
|
|
7
|
+
isModuleLikeSymbol,
|
|
8
|
+
leafName,
|
|
9
|
+
shortenSymbol
|
|
10
|
+
} from "./chunk-QIXNAB5K.js";
|
|
11
|
+
|
|
12
|
+
// src/queries/imports.ts
|
|
13
|
+
function imports(db, filePattern) {
|
|
14
|
+
const importer = resolveIndexedFile(db, filePattern);
|
|
15
|
+
if (!importer) return [];
|
|
16
|
+
const rows = db.all(
|
|
17
|
+
`SELECT DISTINCT gs.symbol, def_d.relative_path AS from_file, imp_d.relative_path AS importer
|
|
18
|
+
FROM mentions m
|
|
19
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
20
|
+
JOIN documents imp_d ON c.document_id = imp_d.id
|
|
21
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
22
|
+
LEFT JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
23
|
+
LEFT JOIN documents def_d ON der.document_id = def_d.id
|
|
24
|
+
WHERE imp_d.relative_path = ?
|
|
25
|
+
AND m.role = 2
|
|
26
|
+
ORDER BY def_d.relative_path, gs.symbol`,
|
|
27
|
+
importer
|
|
28
|
+
);
|
|
29
|
+
const indexedResults = rows.filter((row) => !db.isIgnored(row.importer)).map((r) => ({
|
|
30
|
+
symbol: r.symbol,
|
|
31
|
+
shortName: shortenSymbol(r.symbol),
|
|
32
|
+
fromFile: r.from_file ?? "(external)"
|
|
33
|
+
}));
|
|
34
|
+
if (indexedResults.length > 0) {
|
|
35
|
+
return indexedResults;
|
|
36
|
+
}
|
|
37
|
+
return getSourceImports(db, importer).map((entry) => ({
|
|
38
|
+
symbol: renderImportSymbol(entry.importedName, entry.localName, entry.kind),
|
|
39
|
+
shortName: renderImportSymbol(entry.importedName, entry.localName, entry.kind),
|
|
40
|
+
fromFile: entry.sourcePath ?? "(external)"
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
function importedBy(db, symbolPattern) {
|
|
44
|
+
const rows = db.all(
|
|
45
|
+
`SELECT DISTINCT gs.symbol, d.relative_path AS importer
|
|
46
|
+
FROM mentions m
|
|
47
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
48
|
+
JOIN documents d ON c.document_id = d.id
|
|
49
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
50
|
+
WHERE gs.symbol LIKE ?
|
|
51
|
+
AND m.role = 2
|
|
52
|
+
ORDER BY d.relative_path`,
|
|
53
|
+
`%${symbolPattern}%`
|
|
54
|
+
);
|
|
55
|
+
const indexedResults = rows.filter((r) => !db.isIgnored(r.importer)).map((r) => ({
|
|
56
|
+
symbol: r.symbol,
|
|
57
|
+
shortName: shortenSymbol(r.symbol),
|
|
58
|
+
fromFile: r.importer
|
|
59
|
+
}));
|
|
60
|
+
if (indexedResults.length > 0) {
|
|
61
|
+
return indexedResults;
|
|
62
|
+
}
|
|
63
|
+
const target = findFirstSymbolMatch(db, symbolPattern);
|
|
64
|
+
const targetFile = target?.relativePath ?? null;
|
|
65
|
+
const targetLeaf = target ? leafName(target.symbol) : symbolPattern.replace(/\(\)$/, "");
|
|
66
|
+
const targetIsModule = target ? isModuleLikeSymbol(target.symbol) : false;
|
|
67
|
+
const files = db.all(
|
|
68
|
+
`SELECT relative_path
|
|
69
|
+
FROM documents
|
|
70
|
+
WHERE 1 = 1
|
|
71
|
+
${db.pathExclusionsFor("documents")}
|
|
72
|
+
ORDER BY relative_path`
|
|
73
|
+
);
|
|
74
|
+
const importers = /* @__PURE__ */ new Set();
|
|
75
|
+
for (const row of files) {
|
|
76
|
+
if (db.isIgnored(row.relative_path)) continue;
|
|
77
|
+
for (const entry of getSourceImports(db, row.relative_path)) {
|
|
78
|
+
if (!entry.sourcePath) continue;
|
|
79
|
+
if (targetFile && normalizePath(entry.sourcePath) !== normalizePath(targetFile)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (targetIsModule) {
|
|
83
|
+
importers.add(row.relative_path);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (entry.kind === "named" && entry.importedName === targetLeaf) {
|
|
87
|
+
importers.add(row.relative_path);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (entry.kind === "namespace" && entry.usedMembers.includes(targetLeaf)) {
|
|
91
|
+
importers.add(row.relative_path);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return [...importers].sort().map((importer) => ({
|
|
96
|
+
symbol: target?.symbol ?? targetLeaf,
|
|
97
|
+
shortName: target ? shortenSymbol(target.symbol) : targetLeaf,
|
|
98
|
+
fromFile: importer
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
function unusedImports(db, filePattern) {
|
|
102
|
+
const importer = resolveIndexedFile(db, filePattern);
|
|
103
|
+
if (!importer) return [];
|
|
104
|
+
const rows = db.all(
|
|
105
|
+
`SELECT gs.symbol, d.relative_path AS imported_in, d.relative_path AS importer
|
|
106
|
+
FROM mentions m
|
|
107
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
108
|
+
JOIN documents d ON c.document_id = d.id
|
|
109
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
110
|
+
WHERE d.relative_path = ?
|
|
111
|
+
AND m.role = 2
|
|
112
|
+
AND NOT EXISTS (
|
|
113
|
+
SELECT 1
|
|
114
|
+
FROM mentions ref_m
|
|
115
|
+
JOIN chunks ref_c ON ref_m.chunk_id = ref_c.id
|
|
116
|
+
WHERE ref_m.symbol_id = gs.id
|
|
117
|
+
AND ref_m.role != 1
|
|
118
|
+
AND ref_c.document_id = d.id
|
|
119
|
+
)
|
|
120
|
+
ORDER BY d.relative_path, gs.symbol`,
|
|
121
|
+
importer
|
|
122
|
+
);
|
|
123
|
+
const indexedResults = rows.filter((row) => !db.isIgnored(row.importer)).map((r) => ({
|
|
124
|
+
symbol: r.symbol,
|
|
125
|
+
shortName: shortenSymbol(r.symbol),
|
|
126
|
+
importedIn: r.imported_in
|
|
127
|
+
}));
|
|
128
|
+
if (indexedResults.length > 0) {
|
|
129
|
+
return indexedResults;
|
|
130
|
+
}
|
|
131
|
+
return getSourceImports(db, importer).filter((entry) => entry.kind !== "side-effect" && !entry.used).map((entry) => ({
|
|
132
|
+
symbol: renderImportSymbol(entry.importedName, entry.localName, entry.kind),
|
|
133
|
+
shortName: renderImportSymbol(entry.importedName, entry.localName, entry.kind),
|
|
134
|
+
importedIn: importer
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
function renderImportSymbol(importedName, localName, kind) {
|
|
138
|
+
if (kind === "namespace" && importedName === "*" && localName) {
|
|
139
|
+
return `* as ${localName}`;
|
|
140
|
+
}
|
|
141
|
+
if (kind === "default" && localName) {
|
|
142
|
+
return `default as ${localName}`;
|
|
143
|
+
}
|
|
144
|
+
if (kind === "side-effect") {
|
|
145
|
+
return "(side effect import)";
|
|
146
|
+
}
|
|
147
|
+
if (localName && localName !== importedName) {
|
|
148
|
+
return `${importedName} as ${localName}`;
|
|
149
|
+
}
|
|
150
|
+
return importedName;
|
|
151
|
+
}
|
|
152
|
+
function normalizePath(path) {
|
|
153
|
+
return path.replace(/\\/g, "/");
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export {
|
|
157
|
+
imports,
|
|
158
|
+
importedBy,
|
|
159
|
+
unusedImports
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=chunk-26DOJ63W.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
testFileExclusionSql
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AXQKUYKF.js";
|
|
4
4
|
import {
|
|
5
5
|
shortenSymbol
|
|
6
6
|
} from "./chunk-QIXNAB5K.js";
|
|
@@ -94,4 +94,4 @@ function wrapperCandidates(db, opts) {
|
|
|
94
94
|
export {
|
|
95
95
|
wrapperCandidates
|
|
96
96
|
};
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-4JCSOF2O.js.map
|
|
@@ -1,18 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveIndexedPaths
|
|
3
|
+
} from "./chunk-AXQKUYKF.js";
|
|
1
4
|
import {
|
|
2
5
|
shortenSymbol
|
|
3
6
|
} from "./chunk-QIXNAB5K.js";
|
|
4
7
|
|
|
5
8
|
// src/queries/outline.ts
|
|
6
9
|
function outline(db, filePattern) {
|
|
10
|
+
const resolvedPaths = resolveIndexedPaths(db, filePattern);
|
|
11
|
+
if (resolvedPaths.length === 0) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
const placeholders = resolvedPaths.map(() => "?").join(", ");
|
|
7
15
|
const rows = db.all(
|
|
8
16
|
`SELECT gs.symbol, gs.enclosing_symbol, der.start_line, der.end_line
|
|
9
17
|
FROM defn_enclosing_ranges der
|
|
10
18
|
JOIN global_symbols gs ON der.symbol_id = gs.id
|
|
11
19
|
JOIN documents d ON der.document_id = d.id
|
|
12
|
-
WHERE d.relative_path
|
|
20
|
+
WHERE d.relative_path IN (${placeholders})
|
|
13
21
|
${db.symbolNoise}
|
|
14
|
-
ORDER BY der.start_line`,
|
|
15
|
-
|
|
22
|
+
ORDER BY d.relative_path, der.start_line`,
|
|
23
|
+
...resolvedPaths
|
|
16
24
|
);
|
|
17
25
|
const nodeMap = /* @__PURE__ */ new Map();
|
|
18
26
|
const roots = [];
|
|
@@ -40,4 +48,4 @@ function outline(db, filePattern) {
|
|
|
40
48
|
export {
|
|
41
49
|
outline
|
|
42
50
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-5OMVSV6E.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildFileDepGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AXQKUYKF.js";
|
|
4
4
|
|
|
5
5
|
// src/queries/drift.ts
|
|
6
6
|
import path from "path";
|
|
@@ -162,4 +162,4 @@ function isTestLikePath(filePath) {
|
|
|
162
162
|
export {
|
|
163
163
|
drift
|
|
164
164
|
};
|
|
165
|
-
//# sourceMappingURL=chunk-
|
|
165
|
+
//# sourceMappingURL=chunk-7KIMF5PV.js.map
|