scip-query 0.1.0 → 0.2.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/README.md +16 -43
- package/dist/chunk-2UELLEBI.js +1 -0
- package/dist/chunk-34JPTNRN.js +601 -0
- package/dist/{chunk-NDSQYIWT.js → chunk-3566TKJ5.js} +3 -3
- package/dist/{chunk-LB7OS35Q.js → chunk-4ACRRQC4.js} +8 -4
- package/dist/{chunk-3E2X7RIE.js → chunk-4BQFSNFI.js} +10 -6
- package/dist/{chunk-BP2ATLK2.js → chunk-6QSHLFSL.js} +4 -4
- package/dist/{chunk-5FGUEU7N.js → chunk-6WVR5K46.js} +18 -10
- package/dist/{chunk-XFXDXEUN.js → chunk-74RFWB5T.js} +2 -2
- package/dist/{chunk-MBVNHJVN.js → chunk-75RQSBTK.js} +2 -2
- package/dist/{chunk-YZAA4LYG.js → chunk-7HK5ZLOE.js} +30 -48
- package/dist/{chunk-T6ARFSBZ.js → chunk-7JFZSOJ7.js} +7 -7
- package/dist/{chunk-6SXADWLW.js → chunk-AKMBBKWV.js} +2 -2
- package/dist/{chunk-ZJRYBOEE.js → chunk-AMNISGYR.js} +5 -5
- package/dist/{chunk-CM454WL3.js → chunk-BFLULBEU.js} +3 -3
- package/dist/{chunk-Z73NYSBZ.js → chunk-CU62ZDHI.js} +2 -2
- package/dist/{chunk-TBP6BICL.js → chunk-DY4AFG2W.js} +13 -11
- package/dist/{chunk-2QZ23IBN.js → chunk-F7XU27LU.js} +4 -4
- package/dist/{chunk-KCBMVQL5.js → chunk-GPJVPT3U.js} +2 -2
- package/dist/{chunk-NUZ4OMU3.js → chunk-GU2H5QRN.js} +2 -2
- package/dist/{chunk-TSPZOMHC.js → chunk-H6WCPKCX.js} +6 -3
- package/dist/{chunk-KVSW5KYP.js → chunk-HDSRORNV.js} +4 -4
- package/dist/{chunk-LUSIFBXO.js → chunk-HMYJJ3HY.js} +9 -6
- package/dist/chunk-IJKLB2JW.js +69 -0
- package/dist/{chunk-6NBLIDF4.js → chunk-ITZ3DDOG.js} +2 -2
- package/dist/{chunk-GTILYBH6.js → chunk-IXPHLF6K.js} +6 -6
- package/dist/{chunk-BFSCMC22.js → chunk-KBOQX573.js} +3 -3
- package/dist/{chunk-FUHJCHS4.js → chunk-LLMPAG56.js} +95 -32
- package/dist/{chunk-FFSWWE5O.js → chunk-LTJC5ZQL.js} +3 -3
- package/dist/{chunk-LAWMH22O.js → chunk-M3NPW3FC.js} +2 -2
- package/dist/{chunk-VRUJH4BO.js → chunk-M4QGEKKD.js} +6 -28
- package/dist/{chunk-7OZPA5OO.js → chunk-MVH45PYK.js} +21 -41
- package/dist/chunk-N4C3H7LH.js +37 -0
- package/dist/chunk-NG5F43OU.js +200 -0
- package/dist/{chunk-6VJ6Q7IE.js → chunk-NVIIM34O.js} +4 -4
- package/dist/{chunk-GJFURBEW.js → chunk-ORINICIZ.js} +4 -4
- package/dist/{chunk-TDNNOR6D.js → chunk-PMJKOXOT.js} +7 -7
- package/dist/{chunk-QOV2R2WT.js → chunk-QIXNAB5K.js} +42 -2
- package/dist/{chunk-JKP5GH6T.js → chunk-R2I3M5B4.js} +2 -2
- package/dist/{chunk-36OMT7ZJ.js → chunk-R56FJU3E.js} +35 -14
- package/dist/{chunk-VZ7AMAFL.js → chunk-RFMT7UAZ.js} +3 -3
- package/dist/{chunk-SEFSL2GF.js → chunk-TOIEB3LG.js} +2 -2
- package/dist/chunk-VO4QI3LS.js +84 -0
- package/dist/{chunk-EMDQWNYR.js → chunk-WVK7AASK.js} +8 -8
- package/dist/{chunk-5WTJAXY2.js → chunk-Y3M323OX.js} +2 -2
- package/dist/{chunk-DCKMSTJ4.js → chunk-Y4JFVQ7C.js} +2 -2
- package/dist/{chunk-UNTPVD36.js → chunk-YAFWL3RA.js} +4 -4
- package/dist/{chunk-FGXRVW7G.js → chunk-YZ6L7GFO.js} +2 -2
- package/dist/cli.js +1401 -717
- package/dist/{db-BxaevAyc.d.ts → db-BHYam4BK.d.ts} +7 -19
- package/dist/index.d.ts +15 -15
- package/dist/index.js +263 -234
- package/dist/postinstall.js +5 -76
- package/dist/queries/affected.d.ts +1 -1
- package/dist/queries/affected.js +3 -3
- package/dist/queries/bottlenecks.d.ts +1 -1
- package/dist/queries/bottlenecks.js +2 -2
- package/dist/queries/by-kind.d.ts +1 -1
- package/dist/queries/by-kind.js +2 -2
- package/dist/queries/call-graph.d.ts +1 -1
- package/dist/queries/call-graph.js +3 -3
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +2 -3
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +3 -3
- package/dist/queries/complexity-hotspots.d.ts +1 -1
- package/dist/queries/complexity-hotspots.js +3 -3
- package/dist/queries/complexity.d.ts +1 -1
- package/dist/queries/complexity.js +3 -3
- package/dist/queries/convergence.d.ts +1 -1
- package/dist/queries/convergence.js +3 -3
- package/dist/queries/coupling.d.ts +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +1 -1
- package/dist/queries/cycles.js +3 -2
- package/dist/queries/dataflow.d.ts +1 -1
- package/dist/queries/dataflow.js +3 -3
- package/dist/queries/dead.d.ts +1 -1
- package/dist/queries/dead.js +4 -3
- package/dist/queries/deep-chains.d.ts +1 -1
- package/dist/queries/deep-chains.js +3 -2
- package/dist/queries/deps.d.ts +1 -1
- package/dist/queries/diff-impact.d.ts +2 -2
- package/dist/queries/diff-impact.js +2 -3
- package/dist/queries/doc-coverage.d.ts +1 -1
- package/dist/queries/doc-coverage.js +2 -2
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +3 -2
- package/dist/queries/extract-candidates.d.ts +1 -1
- package/dist/queries/extract-candidates.js +3 -3
- package/dist/queries/fan.d.ts +1 -1
- package/dist/queries/fan.js +2 -2
- package/dist/queries/files.d.ts +1 -1
- package/dist/queries/health.d.ts +1 -1
- package/dist/queries/health.js +15 -15
- package/dist/queries/hierarchy.d.ts +1 -1
- package/dist/queries/hierarchy.js +3 -2
- package/dist/queries/hotspots.d.ts +1 -1
- package/dist/queries/hotspots.js +2 -2
- package/dist/queries/imports.d.ts +1 -1
- package/dist/queries/imports.js +3 -2
- package/dist/queries/index.d.ts +1 -2
- package/dist/queries/index.js +46 -51
- package/dist/queries/isolated.d.ts +1 -1
- package/dist/queries/isolated.js +4 -3
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +3 -2
- package/dist/queries/methods.d.ts +1 -1
- package/dist/queries/methods.js +2 -2
- package/dist/queries/outline.d.ts +1 -1
- package/dist/queries/outline.js +2 -2
- package/dist/queries/passthrough-candidates.d.ts +1 -1
- package/dist/queries/passthrough-candidates.js +3 -3
- package/dist/queries/redundant-reexports.d.ts +1 -1
- package/dist/queries/redundant-reexports.js +4 -2
- package/dist/queries/refs.d.ts +1 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/similar-chains.d.ts +1 -1
- package/dist/queries/similar-chains.js +3 -2
- package/dist/queries/similar-files.d.ts +1 -1
- package/dist/queries/similar-files.js +3 -2
- package/dist/queries/similar-signatures.d.ts +1 -1
- package/dist/queries/similar-signatures.js +2 -2
- package/dist/queries/similar.d.ts +1 -1
- package/dist/queries/similar.js +3 -3
- package/dist/queries/slice.d.ts +1 -1
- package/dist/queries/slice.js +3 -3
- package/dist/queries/stale-abstractions.d.ts +1 -1
- package/dist/queries/stale-abstractions.js +3 -3
- package/dist/queries/stats.d.ts +1 -1
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.d.ts +1 -1
- package/dist/queries/surface.js +2 -2
- package/dist/queries/symbols.d.ts +1 -1
- package/dist/queries/symbols.js +2 -2
- package/dist/queries/system.d.ts +1 -1
- package/dist/queries/system.js +2 -2
- package/dist/queries/trace.d.ts +1 -1
- package/dist/queries/trace.js +3 -1
- package/dist/queries/wrapper-candidates.d.ts +1 -1
- package/dist/queries/wrapper-candidates.js +3 -3
- package/dist/reindex-worker.js +24 -12
- package/package.json +6 -1
- package/IMPROVEMENTS.md +0 -143
- package/PLAN.md +0 -320
- package/dist/chunk-2QZ23IBN.js.map +0 -1
- package/dist/chunk-36OMT7ZJ.js.map +0 -1
- package/dist/chunk-3E2X7RIE.js.map +0 -1
- package/dist/chunk-3UOUTZQT.js +0 -45
- package/dist/chunk-3UOUTZQT.js.map +0 -1
- package/dist/chunk-3ZZJVBIO.js +0 -88
- package/dist/chunk-3ZZJVBIO.js.map +0 -1
- package/dist/chunk-4TYLS5XX.js.map +0 -1
- package/dist/chunk-5FGUEU7N.js.map +0 -1
- package/dist/chunk-5WTJAXY2.js.map +0 -1
- package/dist/chunk-6NBLIDF4.js.map +0 -1
- package/dist/chunk-6SXADWLW.js.map +0 -1
- package/dist/chunk-6VJ6Q7IE.js.map +0 -1
- package/dist/chunk-7OZPA5OO.js.map +0 -1
- package/dist/chunk-BEPIEVLR.js +0 -76
- package/dist/chunk-BEPIEVLR.js.map +0 -1
- package/dist/chunk-BFSCMC22.js.map +0 -1
- package/dist/chunk-BP2ATLK2.js.map +0 -1
- package/dist/chunk-CM454WL3.js.map +0 -1
- package/dist/chunk-DCKMSTJ4.js.map +0 -1
- package/dist/chunk-DEZKCZXD.js +0 -40
- package/dist/chunk-DEZKCZXD.js.map +0 -1
- package/dist/chunk-DVWGWHFW.js +0 -99
- package/dist/chunk-DVWGWHFW.js.map +0 -1
- package/dist/chunk-EMDQWNYR.js.map +0 -1
- package/dist/chunk-FFSWWE5O.js.map +0 -1
- package/dist/chunk-FGXRVW7G.js.map +0 -1
- package/dist/chunk-FUHJCHS4.js.map +0 -1
- package/dist/chunk-GJFURBEW.js.map +0 -1
- package/dist/chunk-GTILYBH6.js.map +0 -1
- package/dist/chunk-JJP7KQND.js +0 -1
- package/dist/chunk-JJP7KQND.js.map +0 -1
- package/dist/chunk-JKP5GH6T.js.map +0 -1
- package/dist/chunk-KCBMVQL5.js.map +0 -1
- package/dist/chunk-KVSW5KYP.js.map +0 -1
- package/dist/chunk-LAWMH22O.js.map +0 -1
- package/dist/chunk-LB7OS35Q.js.map +0 -1
- package/dist/chunk-LUSIFBXO.js.map +0 -1
- package/dist/chunk-MBVNHJVN.js.map +0 -1
- package/dist/chunk-MGNMHKX3.js.map +0 -1
- package/dist/chunk-N5KEREIA.js.map +0 -1
- package/dist/chunk-NDSQYIWT.js.map +0 -1
- package/dist/chunk-NUZ4OMU3.js.map +0 -1
- package/dist/chunk-QOV2R2WT.js.map +0 -1
- package/dist/chunk-SEFSL2GF.js.map +0 -1
- package/dist/chunk-T6ARFSBZ.js.map +0 -1
- package/dist/chunk-TBP6BICL.js.map +0 -1
- package/dist/chunk-TDNNOR6D.js.map +0 -1
- package/dist/chunk-TSPZOMHC.js.map +0 -1
- package/dist/chunk-UNTPVD36.js.map +0 -1
- package/dist/chunk-VRUJH4BO.js.map +0 -1
- package/dist/chunk-VZ7AMAFL.js.map +0 -1
- package/dist/chunk-XFXDXEUN.js.map +0 -1
- package/dist/chunk-YZAA4LYG.js.map +0 -1
- package/dist/chunk-Z73NYSBZ.js.map +0 -1
- package/dist/chunk-ZJRYBOEE.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/postinstall.js.map +0 -1
- package/dist/queries/affected.js.map +0 -1
- package/dist/queries/bottlenecks.js.map +0 -1
- package/dist/queries/by-kind.js.map +0 -1
- package/dist/queries/call-graph.js.map +0 -1
- package/dist/queries/change-surface.js.map +0 -1
- package/dist/queries/clean-signature.js.map +0 -1
- package/dist/queries/code.js.map +0 -1
- package/dist/queries/complexity-hotspots.js.map +0 -1
- package/dist/queries/complexity.js.map +0 -1
- package/dist/queries/convergence.js.map +0 -1
- package/dist/queries/coupling.js.map +0 -1
- package/dist/queries/cycles.js.map +0 -1
- package/dist/queries/dataflow.js.map +0 -1
- package/dist/queries/dead.js.map +0 -1
- package/dist/queries/deep-chains.js.map +0 -1
- package/dist/queries/deps.js.map +0 -1
- package/dist/queries/diff-impact.js.map +0 -1
- package/dist/queries/doc-coverage.js.map +0 -1
- package/dist/queries/drift.js.map +0 -1
- package/dist/queries/extract-candidates.js.map +0 -1
- package/dist/queries/fan.js.map +0 -1
- package/dist/queries/files.js.map +0 -1
- package/dist/queries/health.js.map +0 -1
- package/dist/queries/hierarchy.js.map +0 -1
- package/dist/queries/hotspots.js.map +0 -1
- package/dist/queries/imports.js.map +0 -1
- package/dist/queries/index.js.map +0 -1
- package/dist/queries/isolated.js.map +0 -1
- package/dist/queries/members.js.map +0 -1
- package/dist/queries/methods.js.map +0 -1
- package/dist/queries/outline.js.map +0 -1
- package/dist/queries/passthrough-candidates.js.map +0 -1
- package/dist/queries/redundant-reexports.js.map +0 -1
- package/dist/queries/refs.js.map +0 -1
- package/dist/queries/similar-chains.js.map +0 -1
- package/dist/queries/similar-files.js.map +0 -1
- package/dist/queries/similar-signatures.js.map +0 -1
- package/dist/queries/similar.js.map +0 -1
- package/dist/queries/slice.js.map +0 -1
- package/dist/queries/stale-abstractions.js.map +0 -1
- package/dist/queries/stats.js.map +0 -1
- package/dist/queries/surface.js.map +0 -1
- package/dist/queries/symbols.js.map +0 -1
- package/dist/queries/system.js.map +0 -1
- package/dist/queries/test-coverage.d.ts +0 -22
- package/dist/queries/test-coverage.js +0 -11
- package/dist/queries/test-coverage.js.map +0 -1
- package/dist/queries/trace.js.map +0 -1
- package/dist/queries/wrapper-candidates.js.map +0 -1
- package/dist/reindex-worker.js.map +0 -1
- package/docs/AGENT_GUIDE.md +0 -359
- package/reports/debloat/2026-04-10-scip-query-self-audit.md +0 -161
- package/src/cli.ts +0 -1480
- package/src/config.ts +0 -117
- package/src/db.ts +0 -127
- package/src/gitignore-filter.ts +0 -143
- package/src/index.ts +0 -11
- package/src/postinstall.ts +0 -8
- package/src/queries/affected.ts +0 -86
- package/src/queries/bottlenecks.ts +0 -67
- package/src/queries/by-kind.ts +0 -204
- package/src/queries/call-graph.ts +0 -66
- package/src/queries/change-surface.ts +0 -110
- package/src/queries/clean-signature.ts +0 -22
- package/src/queries/code.ts +0 -101
- package/src/queries/complexity-hotspots.ts +0 -119
- package/src/queries/complexity.ts +0 -152
- package/src/queries/convergence.ts +0 -82
- package/src/queries/coupling.ts +0 -99
- package/src/queries/cycles.ts +0 -78
- package/src/queries/dataflow.ts +0 -128
- package/src/queries/dead.ts +0 -122
- package/src/queries/deep-chains.ts +0 -59
- package/src/queries/deps.ts +0 -46
- package/src/queries/diff-impact.ts +0 -204
- package/src/queries/doc-coverage.ts +0 -86
- package/src/queries/drift.ts +0 -224
- package/src/queries/extract-candidates.ts +0 -167
- package/src/queries/fan.ts +0 -148
- package/src/queries/files.ts +0 -16
- package/src/queries/health.ts +0 -324
- package/src/queries/hierarchy.ts +0 -49
- package/src/queries/hotspots.ts +0 -53
- package/src/queries/imports.ts +0 -95
- package/src/queries/index.ts +0 -45
- package/src/queries/isolated.ts +0 -67
- package/src/queries/members.ts +0 -54
- package/src/queries/methods.ts +0 -27
- package/src/queries/outline.ts +0 -52
- package/src/queries/passthrough-candidates.ts +0 -94
- package/src/queries/redundant-reexports.ts +0 -170
- package/src/queries/refs.ts +0 -27
- package/src/queries/similar-chains.ts +0 -314
- package/src/queries/similar-files.ts +0 -140
- package/src/queries/similar-signatures.ts +0 -151
- package/src/queries/similar.ts +0 -305
- package/src/queries/slice.ts +0 -154
- package/src/queries/stale-abstractions.ts +0 -82
- package/src/queries/stats.ts +0 -22
- package/src/queries/surface.ts +0 -34
- package/src/queries/symbols.ts +0 -39
- package/src/queries/system.ts +0 -86
- package/src/queries/test-coverage.ts +0 -106
- package/src/queries/trace.ts +0 -55
- package/src/queries/wrapper-candidates.ts +0 -112
- package/src/query-support.ts +0 -226
- package/src/reindex/detect.ts +0 -58
- package/src/reindex/index.ts +0 -153
- package/src/reindex/indexers.ts +0 -220
- package/src/reindex/install.ts +0 -125
- package/src/reindex-worker.ts +0 -35
- package/src/setup.ts +0 -202
- package/src/symbol-parser.ts +0 -278
- package/src/types.ts +0 -654
- package/src/watch.ts +0 -274
- package/tests/gitignore-filter.test.ts +0 -48
- package/tests/queries.test.ts +0 -300
- package/tests/symbol-parser.test.ts +0 -157
- package/tsconfig.json +0 -20
- package/tsup.config.ts +0 -40
- package/vitest.config.ts +0 -7
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findFirstSymbolMatch,
|
|
3
3
|
getCalleeRowsForSymbol
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LLMPAG56.js";
|
|
5
5
|
import {
|
|
6
6
|
shortenSymbol
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QIXNAB5K.js";
|
|
8
8
|
|
|
9
9
|
// src/queries/complexity.ts
|
|
10
10
|
import { readFileSync } from "fs";
|
|
@@ -32,7 +32,7 @@ function complexity(db, symbolPattern) {
|
|
|
32
32
|
`SELECT COUNT(DISTINCT c.document_id) AS c
|
|
33
33
|
FROM mentions m
|
|
34
34
|
JOIN chunks c ON m.chunk_id = c.id
|
|
35
|
-
WHERE m.symbol_id = ? AND m.role
|
|
35
|
+
WHERE m.symbol_id = ? AND m.role != 1`,
|
|
36
36
|
match.symbolId
|
|
37
37
|
);
|
|
38
38
|
const fanOut = new Set(
|
|
@@ -107,4 +107,4 @@ function stripCommentsAndStrings(source) {
|
|
|
107
107
|
export {
|
|
108
108
|
complexity
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-6QSHLFSL.js.map
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getInactiveBarrelPaths,
|
|
3
|
+
isEntrySurface
|
|
4
|
+
} from "./chunk-VO4QI3LS.js";
|
|
1
5
|
import {
|
|
2
6
|
TEST_SUPPORT_PATH_PATTERNS,
|
|
3
7
|
testFileExclusionSql
|
|
4
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-LLMPAG56.js";
|
|
5
9
|
import {
|
|
6
10
|
shortenSymbol
|
|
7
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QIXNAB5K.js";
|
|
8
12
|
|
|
9
13
|
// src/queries/dead.ts
|
|
10
14
|
function dead(db, opts = {}) {
|
|
@@ -18,6 +22,7 @@ function dead(db, opts = {}) {
|
|
|
18
22
|
const params = [minLoc];
|
|
19
23
|
let testFileExclusions = "";
|
|
20
24
|
let memberExclusion = "";
|
|
25
|
+
let barrelExclusions = "";
|
|
21
26
|
if (scope) {
|
|
22
27
|
params.push(`%${scope}%`);
|
|
23
28
|
}
|
|
@@ -29,10 +34,13 @@ function dead(db, opts = {}) {
|
|
|
29
34
|
if (!includeMembers) {
|
|
30
35
|
memberExclusion = `AND gs.symbol NOT LIKE '%#%'`;
|
|
31
36
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
if (skipBarrels) {
|
|
38
|
+
const inactiveBarrelPaths = getInactiveBarrelPaths(db);
|
|
39
|
+
if (inactiveBarrelPaths.length > 0) {
|
|
40
|
+
barrelExclusions = `AND ref_d.relative_path NOT IN (${inactiveBarrelPaths.map(() => "?").join(", ")})`;
|
|
41
|
+
params.push(...inactiveBarrelPaths);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
36
44
|
const sql = `
|
|
37
45
|
SELECT
|
|
38
46
|
d.relative_path,
|
|
@@ -42,7 +50,7 @@ function dead(db, opts = {}) {
|
|
|
42
50
|
gs.symbol,
|
|
43
51
|
(SELECT COUNT(*) FROM mentions m2
|
|
44
52
|
JOIN chunks c2 ON m2.chunk_id = c2.id
|
|
45
|
-
WHERE m2.symbol_id = gs.id AND m2.role
|
|
53
|
+
WHERE m2.symbol_id = gs.id AND m2.role != 1 AND c2.document_id = d.id
|
|
46
54
|
) AS same_file_refs
|
|
47
55
|
FROM global_symbols gs
|
|
48
56
|
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
@@ -60,7 +68,7 @@ function dead(db, opts = {}) {
|
|
|
60
68
|
JOIN chunks ref_c ON ref_m.chunk_id = ref_c.id
|
|
61
69
|
JOIN documents ref_d ON ref_c.document_id = ref_d.id
|
|
62
70
|
WHERE ref_m.symbol_id = gs.id
|
|
63
|
-
AND ref_m.role
|
|
71
|
+
AND ref_m.role != 1
|
|
64
72
|
AND ref_d.id != d.id
|
|
65
73
|
${barrelExclusions}
|
|
66
74
|
)
|
|
@@ -70,7 +78,7 @@ function dead(db, opts = {}) {
|
|
|
70
78
|
let deadCodeCount = 0;
|
|
71
79
|
let fileInternalCount = 0;
|
|
72
80
|
let totalLoc = 0;
|
|
73
|
-
const symbols = rows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => {
|
|
81
|
+
const symbols = rows.filter((r) => !db.isIgnored(r.relative_path)).filter((r) => !isEntrySurface(db, r.relative_path)).map((r) => {
|
|
74
82
|
const kind = r.same_file_refs === 0 ? "dead-code" : "file-internal";
|
|
75
83
|
if (kind === "dead-code") deadCodeCount++;
|
|
76
84
|
else fileInternalCount++;
|
|
@@ -98,4 +106,4 @@ function dead(db, opts = {}) {
|
|
|
98
106
|
export {
|
|
99
107
|
dead
|
|
100
108
|
};
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-6WVR5K46.js.map
|
|
@@ -6,7 +6,7 @@ function stats(db) {
|
|
|
6
6
|
"SELECT COUNT(*) as c FROM mentions WHERE role = 1"
|
|
7
7
|
).c;
|
|
8
8
|
const references = db.get(
|
|
9
|
-
"SELECT COUNT(*) as c FROM mentions WHERE role
|
|
9
|
+
"SELECT COUNT(*) as c FROM mentions WHERE role != 1"
|
|
10
10
|
).c;
|
|
11
11
|
return {
|
|
12
12
|
documents,
|
|
@@ -21,4 +21,4 @@ function stats(db) {
|
|
|
21
21
|
export {
|
|
22
22
|
stats
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-74RFWB5T.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildFileDepGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LLMPAG56.js";
|
|
4
4
|
|
|
5
5
|
// src/queries/deep-chains.ts
|
|
6
6
|
function deepChains(db, opts = {}) {
|
|
@@ -41,4 +41,4 @@ function deepChains(db, opts = {}) {
|
|
|
41
41
|
export {
|
|
42
42
|
deepChains
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
44
|
+
//# sourceMappingURL=chunk-75RQSBTK.js.map
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
TEST_FILE_PATTERNS,
|
|
3
|
-
testFileMatchSql
|
|
4
|
-
} from "./chunk-FUHJCHS4.js";
|
|
5
1
|
import {
|
|
6
2
|
shortenSymbol
|
|
7
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QIXNAB5K.js";
|
|
8
4
|
|
|
9
5
|
// src/queries/diff-impact.ts
|
|
10
6
|
import { execFileSync } from "child_process";
|
|
@@ -12,23 +8,17 @@ function diffImpact(db, opts = {}) {
|
|
|
12
8
|
const { base = "HEAD" } = opts;
|
|
13
9
|
let changedFileLines;
|
|
14
10
|
try {
|
|
15
|
-
|
|
16
|
-
encoding: "utf-8",
|
|
17
|
-
cwd: db.config.projectRoot,
|
|
18
|
-
timeout: 1e4
|
|
19
|
-
});
|
|
20
|
-
changedFileLines = stdout.split("\n").map((l) => l.trim()).filter((l) => l.length > 0);
|
|
11
|
+
changedFileLines = getChangedFiles(db.config.projectRoot, base);
|
|
21
12
|
} catch {
|
|
22
13
|
return {
|
|
23
14
|
changedFiles: [],
|
|
24
15
|
changedSymbols: [],
|
|
25
16
|
affectedConsumers: [],
|
|
26
|
-
uncoveredSymbols: [],
|
|
27
17
|
summary: {
|
|
28
18
|
totalChangedFiles: 0,
|
|
29
19
|
totalChangedSymbols: 0,
|
|
30
20
|
totalAffectedFiles: 0,
|
|
31
|
-
|
|
21
|
+
note: "Unable to compute git diff."
|
|
32
22
|
}
|
|
33
23
|
};
|
|
34
24
|
}
|
|
@@ -37,12 +27,11 @@ function diffImpact(db, opts = {}) {
|
|
|
37
27
|
changedFiles: [],
|
|
38
28
|
changedSymbols: [],
|
|
39
29
|
affectedConsumers: [],
|
|
40
|
-
uncoveredSymbols: [],
|
|
41
30
|
summary: {
|
|
42
31
|
totalChangedFiles: 0,
|
|
43
32
|
totalChangedSymbols: 0,
|
|
44
33
|
totalAffectedFiles: 0,
|
|
45
|
-
|
|
34
|
+
note: "No changed files found."
|
|
46
35
|
}
|
|
47
36
|
};
|
|
48
37
|
}
|
|
@@ -65,12 +54,11 @@ function diffImpact(db, opts = {}) {
|
|
|
65
54
|
changedFiles: changedFileLines,
|
|
66
55
|
changedSymbols: [],
|
|
67
56
|
affectedConsumers: [],
|
|
68
|
-
uncoveredSymbols: [],
|
|
69
57
|
summary: {
|
|
70
58
|
totalChangedFiles: changedFileLines.length,
|
|
71
59
|
totalChangedSymbols: 0,
|
|
72
60
|
totalAffectedFiles: 0,
|
|
73
|
-
|
|
61
|
+
note: "Changed files are not present in the current SCIP index."
|
|
74
62
|
}
|
|
75
63
|
};
|
|
76
64
|
}
|
|
@@ -85,18 +73,15 @@ function diffImpact(db, opts = {}) {
|
|
|
85
73
|
ORDER BY d.relative_path`,
|
|
86
74
|
...changedDocIds
|
|
87
75
|
);
|
|
88
|
-
const testPatternSql = testFileMatchSql("ref_d", TEST_FILE_PATTERNS);
|
|
89
76
|
const changedSymbols = [];
|
|
90
77
|
const consumerMap = /* @__PURE__ */ new Map();
|
|
91
|
-
const uncoveredSymbols = [];
|
|
92
|
-
let coveredCount = 0;
|
|
93
78
|
for (const sym of syms) {
|
|
94
79
|
const fanInRow = db.get(
|
|
95
80
|
`SELECT COUNT(DISTINCT c.document_id) AS fan_in
|
|
96
81
|
FROM mentions m
|
|
97
82
|
JOIN chunks c ON m.chunk_id = c.id
|
|
98
83
|
WHERE m.symbol_id = ?
|
|
99
|
-
AND m.role
|
|
84
|
+
AND m.role != 1`,
|
|
100
85
|
sym.symbol_id
|
|
101
86
|
);
|
|
102
87
|
const fanIn = fanInRow?.fan_in ?? 0;
|
|
@@ -113,7 +98,7 @@ function diffImpact(db, opts = {}) {
|
|
|
113
98
|
JOIN chunks c ON m.chunk_id = c.id
|
|
114
99
|
JOIN documents ref_d ON c.document_id = ref_d.id
|
|
115
100
|
WHERE m.symbol_id = ?
|
|
116
|
-
AND m.role
|
|
101
|
+
AND m.role != 1
|
|
117
102
|
AND ref_d.relative_path NOT IN (${changedFiles.map(() => "?").join(",")})
|
|
118
103
|
${db.pathExclusionsFor("ref_d")}`,
|
|
119
104
|
sym.symbol_id,
|
|
@@ -126,44 +111,41 @@ function diffImpact(db, opts = {}) {
|
|
|
126
111
|
}
|
|
127
112
|
consumerMap.get(consumer.relative_path).add(shortName);
|
|
128
113
|
}
|
|
129
|
-
const hasTest = db.get(
|
|
130
|
-
`SELECT COUNT(*) AS c
|
|
131
|
-
FROM mentions m
|
|
132
|
-
JOIN chunks c ON m.chunk_id = c.id
|
|
133
|
-
JOIN documents ref_d ON c.document_id = ref_d.id
|
|
134
|
-
WHERE m.symbol_id = ?
|
|
135
|
-
AND m.role = 0
|
|
136
|
-
AND (${testPatternSql})`,
|
|
137
|
-
sym.symbol_id
|
|
138
|
-
);
|
|
139
|
-
if (hasTest && hasTest.c > 0) {
|
|
140
|
-
coveredCount++;
|
|
141
|
-
} else {
|
|
142
|
-
uncoveredSymbols.push({
|
|
143
|
-
symbol: sym.symbol,
|
|
144
|
-
shortName,
|
|
145
|
-
file: sym.relative_path
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
114
|
}
|
|
149
115
|
const affectedConsumers = [...consumerMap.entries()].map(([file, symbols]) => ({ file, consumedSymbols: symbols.size })).sort((a, b) => b.consumedSymbols - a.consumedSymbols);
|
|
150
|
-
const totalSymbols = changedSymbols.length;
|
|
151
|
-
const testCoveragePercent = totalSymbols > 0 ? Math.round(coveredCount / totalSymbols * 100) : 0;
|
|
152
116
|
return {
|
|
153
117
|
changedFiles,
|
|
154
118
|
changedSymbols,
|
|
155
119
|
affectedConsumers,
|
|
156
|
-
uncoveredSymbols,
|
|
157
120
|
summary: {
|
|
158
121
|
totalChangedFiles: changedFiles.length,
|
|
159
|
-
totalChangedSymbols:
|
|
160
|
-
totalAffectedFiles: affectedConsumers.length
|
|
161
|
-
testCoveragePercent
|
|
122
|
+
totalChangedSymbols: changedSymbols.length,
|
|
123
|
+
totalAffectedFiles: affectedConsumers.length
|
|
162
124
|
}
|
|
163
125
|
};
|
|
164
126
|
}
|
|
127
|
+
function getChangedFiles(projectRoot, base) {
|
|
128
|
+
const diff = execFileSync("git", ["diff", "--name-only", base], {
|
|
129
|
+
encoding: "utf-8",
|
|
130
|
+
cwd: projectRoot,
|
|
131
|
+
timeout: 1e4
|
|
132
|
+
});
|
|
133
|
+
const staged = execFileSync("git", ["diff", "--name-only", "--cached", base], {
|
|
134
|
+
encoding: "utf-8",
|
|
135
|
+
cwd: projectRoot,
|
|
136
|
+
timeout: 1e4
|
|
137
|
+
});
|
|
138
|
+
const untracked = execFileSync("git", ["ls-files", "--others", "--exclude-standard"], {
|
|
139
|
+
encoding: "utf-8",
|
|
140
|
+
cwd: projectRoot,
|
|
141
|
+
timeout: 1e4
|
|
142
|
+
});
|
|
143
|
+
return [...new Set(
|
|
144
|
+
[diff, staged, untracked].flatMap((chunk) => chunk.split("\n")).map((line) => line.trim()).filter((line) => line.length > 0)
|
|
145
|
+
)];
|
|
146
|
+
}
|
|
165
147
|
|
|
166
148
|
export {
|
|
167
149
|
diffImpact
|
|
168
150
|
};
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
151
|
+
//# sourceMappingURL=chunk-7HK5ZLOE.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findFirstSymbolMatch
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LLMPAG56.js";
|
|
4
4
|
import {
|
|
5
5
|
shortenSymbol
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QIXNAB5K.js";
|
|
7
7
|
|
|
8
8
|
// src/queries/dataflow.ts
|
|
9
9
|
function dataflow(db, symbolPattern) {
|
|
@@ -32,7 +32,7 @@ function dataflow(db, symbolPattern) {
|
|
|
32
32
|
FROM mentions m
|
|
33
33
|
JOIN chunks c ON m.chunk_id = c.id
|
|
34
34
|
JOIN documents d ON c.document_id = d.id
|
|
35
|
-
WHERE m.symbol_id = ? AND m.role
|
|
35
|
+
WHERE m.symbol_id = ? AND m.role != 1
|
|
36
36
|
${db.pathExclusionsFor("d")}
|
|
37
37
|
ORDER BY d.relative_path, c.start_line`,
|
|
38
38
|
match.symbolId
|
|
@@ -46,7 +46,7 @@ function dataflow(db, symbolPattern) {
|
|
|
46
46
|
JOIN documents other_d ON other_der.document_id = other_d.id
|
|
47
47
|
WHERE other_c.document_id = ?
|
|
48
48
|
AND other_c.start_line >= ? AND other_c.end_line <= ?
|
|
49
|
-
AND other_m.role
|
|
49
|
+
AND other_m.role != 1
|
|
50
50
|
AND other_gs.id != ?
|
|
51
51
|
${db.symbolNoiseFor("other_gs")}
|
|
52
52
|
${db.pathExclusionsFor("other_d")}
|
|
@@ -69,11 +69,11 @@ function dataflow(db, symbolPattern) {
|
|
|
69
69
|
AND enc_der.end_line >= ref_c.end_line
|
|
70
70
|
JOIN global_symbols enc_gs ON enc_der.symbol_id = enc_gs.id
|
|
71
71
|
-- Find other symbols defined by that enclosing function's file
|
|
72
|
-
JOIN mentions consumer_m ON consumer_m.symbol_id = enc_gs.id AND consumer_m.role
|
|
72
|
+
JOIN mentions consumer_m ON consumer_m.symbol_id = enc_gs.id AND consumer_m.role != 1
|
|
73
73
|
JOIN chunks consumer_c ON consumer_m.chunk_id = consumer_c.id
|
|
74
74
|
JOIN documents consumer_d ON consumer_c.document_id = consumer_d.id
|
|
75
75
|
JOIN global_symbols consumer_gs ON consumer_m.symbol_id = consumer_gs.id
|
|
76
|
-
WHERE ref_m.symbol_id = ? AND ref_m.role
|
|
76
|
+
WHERE ref_m.symbol_id = ? AND ref_m.role != 1
|
|
77
77
|
AND consumer_d.id != ref_d.id
|
|
78
78
|
${db.symbolNoiseFor("consumer_gs")}
|
|
79
79
|
${db.pathExclusionsFor("consumer_d")}
|
|
@@ -100,4 +100,4 @@ function dataflow(db, symbolPattern) {
|
|
|
100
100
|
export {
|
|
101
101
|
dataflow
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
103
|
+
//# sourceMappingURL=chunk-7JFZSOJ7.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
shortenSymbol
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QIXNAB5K.js";
|
|
4
4
|
|
|
5
5
|
// src/queries/outline.ts
|
|
6
6
|
function outline(db, filePattern) {
|
|
@@ -40,4 +40,4 @@ function outline(db, filePattern) {
|
|
|
40
40
|
export {
|
|
41
41
|
outline
|
|
42
42
|
};
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-AKMBBKWV.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findFirstSymbolMatch,
|
|
3
3
|
getCalleeRowsForSymbol
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LLMPAG56.js";
|
|
5
5
|
import {
|
|
6
6
|
shortenSymbol
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QIXNAB5K.js";
|
|
8
8
|
|
|
9
9
|
// src/queries/slice.ts
|
|
10
10
|
function slice(db, symbolPattern, opts = {}) {
|
|
@@ -81,7 +81,7 @@ function forwardSlice(db, match) {
|
|
|
81
81
|
JOIN global_symbols enc_gs ON enc_der.symbol_id = enc_gs.id
|
|
82
82
|
JOIN documents enc_d ON enc_der.document_id = enc_d.id
|
|
83
83
|
-- Find other symbols referenced within that enclosing function
|
|
84
|
-
JOIN mentions out_m ON out_m.role
|
|
84
|
+
JOIN mentions out_m ON out_m.role != 1
|
|
85
85
|
JOIN chunks out_c ON out_m.chunk_id = out_c.id
|
|
86
86
|
AND out_c.document_id = enc_der.document_id
|
|
87
87
|
AND out_c.start_line >= enc_der.start_line
|
|
@@ -89,7 +89,7 @@ function forwardSlice(db, match) {
|
|
|
89
89
|
JOIN global_symbols out_gs ON out_m.symbol_id = out_gs.id
|
|
90
90
|
JOIN defn_enclosing_ranges out_der ON out_gs.id = out_der.symbol_id
|
|
91
91
|
JOIN documents out_d ON out_der.document_id = out_d.id
|
|
92
|
-
WHERE ref_m.symbol_id = ? AND ref_m.role
|
|
92
|
+
WHERE ref_m.symbol_id = ? AND ref_m.role != 1
|
|
93
93
|
AND out_gs.id != ? AND out_gs.id != enc_gs.id
|
|
94
94
|
AND out_d.id != ref_d.id
|
|
95
95
|
${db.symbolNoiseFor("out_gs")}
|
|
@@ -122,4 +122,4 @@ function forwardSlice(db, match) {
|
|
|
122
122
|
export {
|
|
123
123
|
slice
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-AMNISGYR.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getCalleeRowsForSymbol
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LLMPAG56.js";
|
|
4
4
|
import {
|
|
5
5
|
shortenSymbol
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QIXNAB5K.js";
|
|
7
7
|
|
|
8
8
|
// src/queries/extract-candidates.ts
|
|
9
9
|
function extractCandidates(db, opts = {}) {
|
|
@@ -111,4 +111,4 @@ function extractCandidates(db, opts = {}) {
|
|
|
111
111
|
export {
|
|
112
112
|
extractCandidates
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-BFLULBEU.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildFileDepGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LLMPAG56.js";
|
|
4
4
|
|
|
5
5
|
// src/queries/similar-files.ts
|
|
6
6
|
function similarFiles(db, opts = {}) {
|
|
@@ -89,4 +89,4 @@ function compareProfiles(a, b, minSimilarity) {
|
|
|
89
89
|
export {
|
|
90
90
|
similarFiles
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
//# sourceMappingURL=chunk-CU62ZDHI.js.map
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
cleanSignature
|
|
3
3
|
} from "./chunk-4TYLS5XX.js";
|
|
4
|
+
import {
|
|
5
|
+
findFirstSymbolMatch
|
|
6
|
+
} from "./chunk-LLMPAG56.js";
|
|
4
7
|
|
|
5
8
|
// src/queries/trace.ts
|
|
6
9
|
function trace(db, symbolPattern) {
|
|
10
|
+
const match = findFirstSymbolMatch(db, symbolPattern);
|
|
11
|
+
if (!match) {
|
|
12
|
+
return { definitions: [], referencedBy: [] };
|
|
13
|
+
}
|
|
7
14
|
const defRows = db.all(
|
|
8
15
|
`SELECT d.relative_path, der.start_line, der.end_line,
|
|
9
16
|
REPLACE(SUBSTR(gs.documentation, INSTR(gs.documentation, '|') + 1), char(10), ' ') AS sig
|
|
10
17
|
FROM global_symbols gs
|
|
11
18
|
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
12
19
|
JOIN documents d ON der.document_id = d.id
|
|
13
|
-
WHERE gs.
|
|
14
|
-
AND ${db.localSymbolPredicate}
|
|
15
|
-
${db.symbolNoise}
|
|
20
|
+
WHERE gs.id = ?
|
|
16
21
|
ORDER BY d.relative_path, der.start_line
|
|
17
22
|
LIMIT 10`,
|
|
18
|
-
|
|
23
|
+
match.symbolId
|
|
19
24
|
);
|
|
20
25
|
const definitions = defRows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => ({
|
|
21
26
|
relativePath: r.relative_path,
|
|
@@ -28,13 +33,10 @@ function trace(db, symbolPattern) {
|
|
|
28
33
|
FROM mentions m
|
|
29
34
|
JOIN chunks c ON m.chunk_id = c.id
|
|
30
35
|
JOIN documents d ON c.document_id = d.id
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
AND ${db.localSymbolPredicate}
|
|
34
|
-
${db.symbolNoise}
|
|
35
|
-
AND m.role = 0
|
|
36
|
+
WHERE m.symbol_id = ?
|
|
37
|
+
AND m.role != 1
|
|
36
38
|
ORDER BY d.relative_path`,
|
|
37
|
-
|
|
39
|
+
match.symbolId
|
|
38
40
|
);
|
|
39
41
|
const referencedBy = refRows.map((r) => r.relative_path).filter((p) => !db.isIgnored(p));
|
|
40
42
|
return { definitions, referencedBy };
|
|
@@ -43,4 +45,4 @@ function trace(db, symbolPattern) {
|
|
|
43
45
|
export {
|
|
44
46
|
trace
|
|
45
47
|
};
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
48
|
+
//# sourceMappingURL=chunk-DY4AFG2W.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
shortenSymbol
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QIXNAB5K.js";
|
|
4
4
|
|
|
5
5
|
// src/queries/bottlenecks.ts
|
|
6
6
|
function bottlenecks(db, opts = {}) {
|
|
@@ -14,7 +14,7 @@ function bottlenecks(db, opts = {}) {
|
|
|
14
14
|
(SELECT COUNT(DISTINCT ref_c.document_id)
|
|
15
15
|
FROM mentions ref_m
|
|
16
16
|
JOIN chunks ref_c ON ref_m.chunk_id = ref_c.id
|
|
17
|
-
WHERE ref_m.symbol_id = gs.id AND ref_m.role
|
|
17
|
+
WHERE ref_m.symbol_id = gs.id AND ref_m.role != 1
|
|
18
18
|
) AS fan_in,
|
|
19
19
|
(SELECT COUNT(DISTINCT ref_gs.id)
|
|
20
20
|
FROM mentions ref_m
|
|
@@ -22,7 +22,7 @@ function bottlenecks(db, opts = {}) {
|
|
|
22
22
|
JOIN global_symbols ref_gs ON ref_m.symbol_id = ref_gs.id
|
|
23
23
|
JOIN defn_enclosing_ranges ref_der ON ref_gs.id = ref_der.symbol_id
|
|
24
24
|
WHERE ref_c.document_id = def_d.id
|
|
25
|
-
AND ref_m.role
|
|
25
|
+
AND ref_m.role != 1
|
|
26
26
|
AND ref_der.document_id != def_d.id
|
|
27
27
|
) AS fan_out
|
|
28
28
|
FROM global_symbols gs
|
|
@@ -52,4 +52,4 @@ function bottlenecks(db, opts = {}) {
|
|
|
52
52
|
export {
|
|
53
53
|
bottlenecks
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-F7XU27LU.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-4TYLS5XX.js";
|
|
4
4
|
import {
|
|
5
5
|
shortenSymbol
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QIXNAB5K.js";
|
|
7
7
|
|
|
8
8
|
// src/queries/symbols.ts
|
|
9
9
|
function symbols(db, filePattern) {
|
|
@@ -35,4 +35,4 @@ function symbols(db, filePattern) {
|
|
|
35
35
|
export {
|
|
36
36
|
symbols
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=chunk-
|
|
38
|
+
//# sourceMappingURL=chunk-GPJVPT3U.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
leafName
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QIXNAB5K.js";
|
|
4
4
|
|
|
5
5
|
// src/queries/methods.ts
|
|
6
6
|
function methods(db, className) {
|
|
@@ -25,4 +25,4 @@ function methods(db, className) {
|
|
|
25
25
|
export {
|
|
26
26
|
methods
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-GU2H5QRN.js.map
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findFirstSymbolMatch,
|
|
3
3
|
getCalleeRowsForSymbol
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LLMPAG56.js";
|
|
5
5
|
import {
|
|
6
|
+
isFunctionLikeSymbol,
|
|
6
7
|
shortenSymbol
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-QIXNAB5K.js";
|
|
8
9
|
|
|
9
10
|
// src/queries/similar.ts
|
|
10
11
|
function similar(db, symbolPattern, opts = {}) {
|
|
11
12
|
const { minSimilarity = 0.4, limit = 20 } = opts;
|
|
12
13
|
const target = findCallees(db, symbolPattern);
|
|
13
14
|
if (!target || target.callees.size === 0) return [];
|
|
15
|
+
if (!isFunctionLikeSymbol(target.symbol)) return [];
|
|
14
16
|
const candidates = getAllCalleeFingerprints(db, {
|
|
15
17
|
minCallees: 3,
|
|
16
18
|
excludeSymbol: target.symbol
|
|
@@ -160,6 +162,7 @@ function getAllCalleeFingerprints(db, opts) {
|
|
|
160
162
|
const fingerprints = [];
|
|
161
163
|
for (const sym of symbols) {
|
|
162
164
|
if (db.isIgnored(sym.relative_path)) continue;
|
|
165
|
+
if (!isFunctionLikeSymbol(sym.symbol)) continue;
|
|
163
166
|
const calleeRows = getCalleeRowsForSymbol(db, {
|
|
164
167
|
documentId: sym.document_id,
|
|
165
168
|
startLine: sym.start_line,
|
|
@@ -192,4 +195,4 @@ export {
|
|
|
192
195
|
similar,
|
|
193
196
|
similarAll
|
|
194
197
|
};
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
198
|
+
//# sourceMappingURL=chunk-H6WCPKCX.js.map
|
|
@@ -14,7 +14,7 @@ function coupling(db, file1, file2) {
|
|
|
14
14
|
SELECT 1 FROM mentions m
|
|
15
15
|
JOIN chunks c ON m.chunk_id = c.id
|
|
16
16
|
JOIN documents d ON c.document_id = d.id
|
|
17
|
-
WHERE m.symbol_id = gs.id AND m.role
|
|
17
|
+
WHERE m.symbol_id = gs.id AND m.role != 1 AND d.relative_path LIKE ?
|
|
18
18
|
)
|
|
19
19
|
) OR (
|
|
20
20
|
-- Defined in file2, referenced in file1
|
|
@@ -27,7 +27,7 @@ function coupling(db, file1, file2) {
|
|
|
27
27
|
SELECT 1 FROM mentions m
|
|
28
28
|
JOIN chunks c ON m.chunk_id = c.id
|
|
29
29
|
JOIN documents d ON c.document_id = d.id
|
|
30
|
-
WHERE m.symbol_id = gs.id AND m.role
|
|
30
|
+
WHERE m.symbol_id = gs.id AND m.role != 1 AND d.relative_path LIKE ?
|
|
31
31
|
)
|
|
32
32
|
)`,
|
|
33
33
|
`%${file1}%`,
|
|
@@ -55,7 +55,7 @@ function topCoupling(db, opts = {}) {
|
|
|
55
55
|
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
56
56
|
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
57
57
|
JOIN documents def_d ON der.document_id = def_d.id
|
|
58
|
-
WHERE m.role
|
|
58
|
+
WHERE m.role != 1
|
|
59
59
|
AND def_d.id != ref_d.id
|
|
60
60
|
${db.pathExclusionsFor("def_d", "ref_d")}
|
|
61
61
|
${scopeFilter}
|
|
@@ -75,4 +75,4 @@ export {
|
|
|
75
75
|
coupling,
|
|
76
76
|
topCoupling
|
|
77
77
|
};
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
78
|
+
//# sourceMappingURL=chunk-HDSRORNV.js.map
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isEntrySurface
|
|
3
|
+
} from "./chunk-VO4QI3LS.js";
|
|
1
4
|
import {
|
|
2
5
|
testFileExclusionSql
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LLMPAG56.js";
|
|
4
7
|
import {
|
|
5
8
|
shortenSymbol
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QIXNAB5K.js";
|
|
7
10
|
|
|
8
11
|
// src/queries/isolated.ts
|
|
9
12
|
function isolated(db, opts = {}) {
|
|
@@ -30,18 +33,18 @@ function isolated(db, opts = {}) {
|
|
|
30
33
|
AND NOT EXISTS (
|
|
31
34
|
SELECT 1 FROM mentions m
|
|
32
35
|
JOIN chunks c ON m.chunk_id = c.id
|
|
33
|
-
WHERE m.symbol_id = gs.id AND m.role
|
|
36
|
+
WHERE m.symbol_id = gs.id AND m.role != 1 AND c.document_id != d.id
|
|
34
37
|
)
|
|
35
38
|
-- No same-file references either
|
|
36
39
|
AND NOT EXISTS (
|
|
37
40
|
SELECT 1 FROM mentions m
|
|
38
41
|
JOIN chunks c ON m.chunk_id = c.id
|
|
39
|
-
WHERE m.symbol_id = gs.id AND m.role
|
|
42
|
+
WHERE m.symbol_id = gs.id AND m.role != 1 AND c.document_id = d.id
|
|
40
43
|
)
|
|
41
44
|
ORDER BY loc DESC, d.relative_path`,
|
|
42
45
|
minLoc
|
|
43
46
|
);
|
|
44
|
-
return rows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => ({
|
|
47
|
+
return rows.filter((r) => !db.isIgnored(r.relative_path)).filter((r) => !isEntrySurface(db, r.relative_path)).map((r) => ({
|
|
45
48
|
symbol: r.symbol,
|
|
46
49
|
shortName: shortenSymbol(r.symbol),
|
|
47
50
|
relativePath: r.relative_path,
|
|
@@ -54,4 +57,4 @@ function isolated(db, opts = {}) {
|
|
|
54
57
|
export {
|
|
55
58
|
isolated
|
|
56
59
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
60
|
+
//# sourceMappingURL=chunk-HMYJJ3HY.js.map
|