scip-query 0.4.3 → 0.6.0

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.
Files changed (199) hide show
  1. package/dist/chunk-2DSS2NGF.js +10 -0
  2. package/dist/chunk-2RLP74AO.js +2 -0
  3. package/dist/chunk-4QJ7LVW5.js +2 -0
  4. package/dist/chunk-4TYGGOLO.js +5 -0
  5. package/dist/chunk-5IADAU5B.js +7 -0
  6. package/dist/chunk-7754WFFV.js +18 -0
  7. package/dist/chunk-7VOF4ZG6.js +2 -0
  8. package/dist/chunk-7Z4COVMC.js +2 -0
  9. package/dist/chunk-AJ5PWKD4.js +2 -0
  10. package/dist/chunk-BDBRZPX3.js +7 -0
  11. package/dist/chunk-BE6EQIWY.js +2 -0
  12. package/dist/chunk-BQ3INTYT.js +8 -0
  13. package/dist/chunk-D7KLLMPB.js +2 -0
  14. package/dist/chunk-D7YBWSON.js +29 -0
  15. package/dist/chunk-DE5ZBHMK.js +39 -0
  16. package/dist/chunk-DHYIJHXZ.js +33 -0
  17. package/dist/chunk-EEF3YEHW.js +2 -0
  18. package/dist/chunk-F2LLHRRZ.js +2 -0
  19. package/dist/chunk-FCC3XJTI.js +2 -0
  20. package/dist/chunk-GNXRLK5G.js +2 -0
  21. package/dist/chunk-GXVB36TG.js +62 -0
  22. package/dist/chunk-HMKJTAZD.js +2 -0
  23. package/dist/chunk-IBGBI3VU.js +2 -0
  24. package/dist/chunk-IYFZS4PV.js +84 -0
  25. package/dist/chunk-JH3A7HTU.js +2 -0
  26. package/dist/chunk-JS2RNIC7.js +2 -0
  27. package/dist/chunk-K5FQFCSN.js +41 -0
  28. package/dist/chunk-K6GBKEQE.js +6 -0
  29. package/dist/chunk-KO7YJRWP.js +12 -0
  30. package/dist/chunk-KYT47WU2.js +4 -0
  31. package/dist/chunk-LORWXBOO.js +2 -0
  32. package/dist/chunk-LX4H4LLG.js +89 -0
  33. package/dist/chunk-N3Z2SJCR.js +2 -0
  34. package/dist/chunk-NTDA4A2D.js +25 -0
  35. package/dist/chunk-NXMYYHDO.js +24 -0
  36. package/dist/chunk-PZ6ESKRH.js +7 -0
  37. package/dist/chunk-QXE6EDY2.js +6 -0
  38. package/dist/chunk-RJ7SPBJ5.js +5 -0
  39. package/dist/chunk-RWE6FHG3.js +3 -0
  40. package/dist/chunk-SDX6MDBL.js +2 -0
  41. package/dist/chunk-SG35Y7J2.js +2 -0
  42. package/dist/chunk-STOGKRJH.js +4 -0
  43. package/dist/chunk-TINPMWJK.js +2 -0
  44. package/dist/chunk-UJB62HV3.js +2 -0
  45. package/dist/chunk-VEUMRDHW.js +2 -0
  46. package/dist/chunk-WCDXJGYT.js +65 -0
  47. package/dist/chunk-WTSTDJZ7.js +6 -0
  48. package/dist/chunk-XAZTIDST.js +2 -0
  49. package/dist/chunk-XVDASCN7.js +35 -0
  50. package/dist/chunk-Y7H6D2EV.js +2 -0
  51. package/dist/chunk-Y7LOQSWY.js +2 -0
  52. package/dist/chunk-YIPCV7M7.js +70 -0
  53. package/dist/chunk-ZSRXMNMK.js +5 -0
  54. package/dist/chunk-ZXKURFVB.js +56 -0
  55. package/dist/cli.js +509 -8938
  56. package/dist/{db-6F9R9e_t.d.ts → db-BSTtBG_H.d.ts} +146 -1
  57. package/dist/index.d.ts +11 -2
  58. package/dist/index.js +13 -1616
  59. package/dist/postinstall.js +4 -100
  60. package/dist/queries/affected.d.ts +1 -1
  61. package/dist/queries/affected.js +1 -8
  62. package/dist/queries/bottlenecks.d.ts +1 -1
  63. package/dist/queries/bottlenecks.js +1 -8
  64. package/dist/queries/by-kind.d.ts +1 -4
  65. package/dist/queries/by-kind.js +1 -10
  66. package/dist/queries/call-graph.d.ts +1 -1
  67. package/dist/queries/call-graph.js +1 -8
  68. package/dist/queries/change-surface.d.ts +4 -1
  69. package/dist/queries/change-surface.js +1 -8
  70. package/dist/queries/code.d.ts +1 -1
  71. package/dist/queries/code.js +1 -8
  72. package/dist/queries/complexity-hotspots.d.ts +5 -3
  73. package/dist/queries/complexity-hotspots.js +1 -8
  74. package/dist/queries/complexity.d.ts +1 -1
  75. package/dist/queries/complexity.js +1 -8
  76. package/dist/queries/convergence.d.ts +1 -1
  77. package/dist/queries/convergence.js +1 -8
  78. package/dist/queries/coupling.d.ts +1 -1
  79. package/dist/queries/coupling.js +1 -10
  80. package/dist/queries/cycles.d.ts +1 -1
  81. package/dist/queries/cycles.js +1 -8
  82. package/dist/queries/dataflow.d.ts +1 -1
  83. package/dist/queries/dataflow.js +1 -8
  84. package/dist/queries/dead.d.ts +1 -1
  85. package/dist/queries/dead.js +1 -9
  86. package/dist/queries/deep-chains.d.ts +9 -1
  87. package/dist/queries/deep-chains.js +1 -8
  88. package/dist/queries/deps.d.ts +1 -1
  89. package/dist/queries/deps.js +1 -10
  90. package/dist/queries/diff-impact.d.ts +1 -1
  91. package/dist/queries/diff-impact.js +1 -7
  92. package/dist/queries/drift.d.ts +1 -1
  93. package/dist/queries/drift.js +1 -8
  94. package/dist/queries/extract-candidates.d.ts +1 -1
  95. package/dist/queries/extract-candidates.js +1 -8
  96. package/dist/queries/fan.d.ts +1 -1
  97. package/dist/queries/fan.js +1 -14
  98. package/dist/queries/files.d.ts +1 -1
  99. package/dist/queries/files.js +1 -6
  100. package/dist/queries/health.d.ts +1 -1
  101. package/dist/queries/health.js +1 -20
  102. package/dist/queries/hierarchy.d.ts +1 -1
  103. package/dist/queries/hierarchy.js +1 -8
  104. package/dist/queries/hotspots.d.ts +1 -1
  105. package/dist/queries/hotspots.js +1 -8
  106. package/dist/queries/imports.d.ts +1 -1
  107. package/dist/queries/imports.js +1 -12
  108. package/dist/queries/index.d.ts +1 -1
  109. package/dist/queries/index.js +1 -197
  110. package/dist/queries/isolated.d.ts +1 -1
  111. package/dist/queries/isolated.js +1 -9
  112. package/dist/queries/members.d.ts +4 -1
  113. package/dist/queries/members.js +1 -8
  114. package/dist/queries/methods.d.ts +1 -1
  115. package/dist/queries/methods.js +1 -8
  116. package/dist/queries/outline.d.ts +4 -1
  117. package/dist/queries/outline.js +1 -8
  118. package/dist/queries/passthrough-candidates.d.ts +1 -1
  119. package/dist/queries/passthrough-candidates.js +1 -8
  120. package/dist/queries/redundant-reexports.d.ts +1 -1
  121. package/dist/queries/redundant-reexports.js +1 -9
  122. package/dist/queries/refs.d.ts +1 -1
  123. package/dist/queries/refs.js +1 -8
  124. package/dist/queries/similar-chains.d.ts +1 -1
  125. package/dist/queries/similar-chains.js +1 -8
  126. package/dist/queries/similar-files.d.ts +1 -1
  127. package/dist/queries/similar-files.js +1 -8
  128. package/dist/queries/similar-signatures.d.ts +1 -1
  129. package/dist/queries/similar-signatures.js +1 -8
  130. package/dist/queries/similar.d.ts +1 -1
  131. package/dist/queries/similar.js +1 -10
  132. package/dist/queries/slice.d.ts +1 -1
  133. package/dist/queries/slice.js +1 -8
  134. package/dist/queries/stale-abstractions.d.ts +15 -5
  135. package/dist/queries/stale-abstractions.js +1 -8
  136. package/dist/queries/stats.d.ts +1 -1
  137. package/dist/queries/stats.js +1 -6
  138. package/dist/queries/surface.d.ts +1 -1
  139. package/dist/queries/surface.js +1 -8
  140. package/dist/queries/symbols.d.ts +1 -1
  141. package/dist/queries/symbols.js +1 -9
  142. package/dist/queries/system.d.ts +6 -2
  143. package/dist/queries/system.js +1 -9
  144. package/dist/queries/trace.d.ts +1 -1
  145. package/dist/queries/trace.js +1 -9
  146. package/dist/queries/wrapper-candidates.d.ts +1 -1
  147. package/dist/queries/wrapper-candidates.js +1 -8
  148. package/dist/reindex-worker.js +7 -672
  149. package/package.json +20 -2
  150. package/dist/chunk-334PCFO3.js +0 -221
  151. package/dist/chunk-46ZTW4AI.js +0 -61
  152. package/dist/chunk-4TYLS5XX.js +0 -10
  153. package/dist/chunk-4YN3PE57.js +0 -124
  154. package/dist/chunk-5YB6UXQ3.js +0 -101
  155. package/dist/chunk-6PVHJ332.js +0 -44
  156. package/dist/chunk-74RFWB5T.js +0 -24
  157. package/dist/chunk-7KGTWDAX.js +0 -87
  158. package/dist/chunk-7OGXSMLY.js +0 -105
  159. package/dist/chunk-AEBM56CO.js +0 -69
  160. package/dist/chunk-B747RITP.js +0 -38
  161. package/dist/chunk-B7LDMCUS.js +0 -110
  162. package/dist/chunk-C2VSV54P.js +0 -110
  163. package/dist/chunk-DIYEUFVP.js +0 -81
  164. package/dist/chunk-E74RY6AQ.js +0 -93
  165. package/dist/chunk-FIMTTUGE.js +0 -165
  166. package/dist/chunk-FMAYH7GS.js +0 -2542
  167. package/dist/chunk-FO2CBB7U.js +0 -23
  168. package/dist/chunk-HESWGDIV.js +0 -162
  169. package/dist/chunk-HL2LXSBW.js +0 -34
  170. package/dist/chunk-HW76DVE4.js +0 -216
  171. package/dist/chunk-IC5NTO47.js +0 -53
  172. package/dist/chunk-J34HAAEQ.js +0 -59
  173. package/dist/chunk-JSXGC2EH.js +0 -151
  174. package/dist/chunk-LQXBFCP2.js +0 -87
  175. package/dist/chunk-NML6M5AS.js +0 -37
  176. package/dist/chunk-NNFP4ZRF.js +0 -72
  177. package/dist/chunk-NWXTQGUE.js +0 -49
  178. package/dist/chunk-NYZ6INK3.js +0 -95
  179. package/dist/chunk-OMVF3BHY.js +0 -84
  180. package/dist/chunk-P3VCDYMJ.js +0 -269
  181. package/dist/chunk-PGQXIAJF.js +0 -79
  182. package/dist/chunk-PKDFXASW.js +0 -76
  183. package/dist/chunk-PSK5BPFE.js +0 -82
  184. package/dist/chunk-QZ4FRB65.js +0 -341
  185. package/dist/chunk-R2QBMQQN.js +0 -185
  186. package/dist/chunk-T3ALCNCP.js +0 -113
  187. package/dist/chunk-T6UVM534.js +0 -213
  188. package/dist/chunk-U74VYTLX.js +0 -46
  189. package/dist/chunk-UIRCHPOU.js +0 -34
  190. package/dist/chunk-UNS6ZQVX.js +0 -71
  191. package/dist/chunk-VJMTX3OR.js +0 -115
  192. package/dist/chunk-XJSPWHNT.js +0 -64
  193. package/dist/chunk-XMZAC2VU.js +0 -84
  194. package/dist/chunk-Y7FKURZG.js +0 -130
  195. package/dist/chunk-YMSJCSRG.js +0 -213
  196. package/dist/chunk-YQIWS5V6.js +0 -172
  197. package/dist/chunk-ZPEI7DRJ.js +0 -66
  198. package/dist/queries/clean-signature.d.ts +0 -9
  199. package/dist/queries/clean-signature.js +0 -7
@@ -1,165 +0,0 @@
1
- import {
2
- buildFileDepGraph
3
- } from "./chunk-FMAYH7GS.js";
4
-
5
- // src/queries/drift.ts
6
- import path from "path";
7
- function drift(db, opts) {
8
- const { scope } = opts ?? {};
9
- const depGraph = buildFileDepGraph(db, scope);
10
- const symbolRefs = buildSymbolRefGraph(db, scope);
11
- const results = [];
12
- for (const [file, deps] of depGraph) {
13
- if (shouldSkipDriftFile(file)) continue;
14
- const referencedFiles = symbolRefs.get(file) ?? /* @__PURE__ */ new Set();
15
- for (const dep of deps) {
16
- if (shouldSkipDriftFile(dep)) continue;
17
- if (!referencedFiles.has(dep)) {
18
- if (isLikelyTypeOnlyDep(dep)) continue;
19
- results.push({
20
- file,
21
- kind: "unused-import",
22
- description: `Depends on ${dep} but references none of its symbols`,
23
- dep
24
- });
25
- }
26
- }
27
- }
28
- const layerRules = inferLayerRules(depGraph);
29
- for (const [file, deps] of depGraph) {
30
- if (shouldSkipDriftFile(file)) continue;
31
- const fileLayer = getArchitecturalLayer(file);
32
- for (const dep of deps) {
33
- if (shouldSkipDriftFile(dep)) continue;
34
- const depLayer = getArchitecturalLayer(dep);
35
- if (fileLayer === depLayer) continue;
36
- const violation = layerRules.get(`${fileLayer}->${depLayer}`);
37
- if (violation === "violation") {
38
- results.push({
39
- file,
40
- kind: "layer-violation",
41
- description: `Imports from ${depLayer}/ (${dep}) \u2014 may cross architectural boundary`,
42
- dep,
43
- detail: `${fileLayer}/ should not depend on ${depLayer}/`
44
- });
45
- }
46
- }
47
- }
48
- const dirToFiles = /* @__PURE__ */ new Map();
49
- for (const file of depGraph.keys()) {
50
- const dir = path.dirname(file);
51
- if (!dirToFiles.has(dir)) dirToFiles.set(dir, []);
52
- dirToFiles.get(dir).push(file);
53
- }
54
- for (const [dir, files] of dirToFiles) {
55
- if (files.length < 3) continue;
56
- const depFreq = /* @__PURE__ */ new Map();
57
- for (const file of files) {
58
- if (shouldSkipDriftFile(file)) continue;
59
- for (const dep of depGraph.get(file) ?? []) {
60
- if (shouldSkipDriftFile(dep)) continue;
61
- depFreq.set(dep, (depFreq.get(dep) ?? 0) + 1);
62
- }
63
- }
64
- for (const file of files) {
65
- if (shouldSkipDriftFile(file)) continue;
66
- for (const dep of depGraph.get(file) ?? []) {
67
- if (shouldSkipDriftFile(dep)) continue;
68
- if ((depFreq.get(dep) ?? 0) === 1) {
69
- if (path.dirname(dep) === dir) continue;
70
- results.push({
71
- file,
72
- kind: "pattern-deviation",
73
- description: `Only file in ${dir}/ that depends on ${dep}`,
74
- dep
75
- });
76
- }
77
- }
78
- }
79
- }
80
- return {
81
- results,
82
- unusedImports: results.filter((r) => r.kind === "unused-import").length,
83
- layerViolations: results.filter((r) => r.kind === "layer-violation").length,
84
- patternDeviations: results.filter((r) => r.kind === "pattern-deviation").length
85
- };
86
- }
87
- function buildSymbolRefGraph(db, scope) {
88
- const scopeFilter = scope ? `AND d1.relative_path LIKE '%${scope}%'` : "";
89
- const rows = db.all(
90
- `SELECT DISTINCT d1.relative_path AS from_file, d2.relative_path AS to_file
91
- FROM mentions m
92
- JOIN chunks c ON m.chunk_id = c.id
93
- JOIN documents d1 ON c.document_id = d1.id
94
- JOIN global_symbols gs ON m.symbol_id = gs.id
95
- JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
96
- JOIN documents d2 ON der.document_id = d2.id
97
- WHERE d1.id != d2.id
98
- AND m.role != 1
99
- ${db.pathExclusionsFor("d1", "d2")}
100
- ${scopeFilter}`
101
- );
102
- const graph = /* @__PURE__ */ new Map();
103
- for (const r of rows) {
104
- if (db.isIgnored(r.from_file) || db.isIgnored(r.to_file)) continue;
105
- if (!graph.has(r.from_file)) graph.set(r.from_file, /* @__PURE__ */ new Set());
106
- graph.get(r.from_file).add(r.to_file);
107
- }
108
- return graph;
109
- }
110
- function inferLayerRules(depGraph) {
111
- const layerEdges = /* @__PURE__ */ new Map();
112
- const layerSet = /* @__PURE__ */ new Set();
113
- for (const [file, deps] of depGraph) {
114
- if (shouldSkipDriftFile(file)) continue;
115
- const fromLayer = getArchitecturalLayer(file);
116
- layerSet.add(fromLayer);
117
- for (const dep of deps) {
118
- if (shouldSkipDriftFile(dep)) continue;
119
- const toLayer = getArchitecturalLayer(dep);
120
- if (fromLayer === toLayer) continue;
121
- layerSet.add(toLayer);
122
- const key = `${fromLayer}->${toLayer}`;
123
- layerEdges.set(key, (layerEdges.get(key) ?? 0) + 1);
124
- }
125
- }
126
- const rules = /* @__PURE__ */ new Map();
127
- for (const [edge, count] of layerEdges) {
128
- rules.set(edge, count <= 2 ? "violation" : "ok");
129
- }
130
- return rules;
131
- }
132
- function getArchitecturalLayer(filePath) {
133
- const normalized = filePath.replace(/\\/g, "/");
134
- const parts = normalized.split("/").filter(Boolean);
135
- if (parts.length <= 1) {
136
- return "(root)";
137
- }
138
- if (parts.length >= 3 && ["src", "lib", "app", "server", "client"].includes(parts[0])) {
139
- return `${parts[0]}/${parts[1]}`;
140
- }
141
- return parts[0];
142
- }
143
- function isLikelyTypeOnlyDep(dep) {
144
- return dep.includes("types") || dep.endsWith(".d.ts");
145
- }
146
- function shouldSkipDriftFile(filePath) {
147
- return isStructuralRole(path.basename(filePath)) || isTestLikePath(filePath);
148
- }
149
- function isStructuralRole(basename) {
150
- if (basename === "index.ts" || basename === "index.js") return true;
151
- if (basename === "cli.ts" || basename === "main.ts" || basename === "main.rs") return true;
152
- if (basename.includes("worker.") || basename.includes("postinstall.")) return true;
153
- if (basename === "health.ts" || basename === "health.js") return true;
154
- return false;
155
- }
156
- function isTestLikePath(filePath) {
157
- const normalized = filePath.replace(/\\/g, "/");
158
- const basename = path.basename(normalized);
159
- return normalized.includes("/__tests__/") || normalized.includes("/tests/") || normalized.includes("/test/") || /\.(test|spec)\.[A-Za-z0-9]+$/.test(basename) || /_(test|spec)\.[A-Za-z0-9]+$/.test(basename) || /^test[_-]/.test(basename) || /^test\./.test(basename);
160
- }
161
-
162
- export {
163
- drift
164
- };
165
- //# sourceMappingURL=chunk-FIMTTUGE.js.map