scip-query 0.2.0 → 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.
Files changed (330) hide show
  1. package/README.md +16 -43
  2. package/dist/chunk-26DOJ63W.js +161 -0
  3. package/dist/chunk-2UELLEBI.js +1 -0
  4. package/dist/{chunk-4PDAL6IL.js → chunk-4JCSOF2O.js} +3 -3
  5. package/dist/{chunk-6SXADWLW.js → chunk-5OMVSV6E.js} +13 -5
  6. package/dist/{chunk-KPPHZCZJ.js → chunk-7HK5ZLOE.js} +28 -46
  7. package/dist/{chunk-7RLE5EWE.js → chunk-7KIMF5PV.js} +34 -13
  8. package/dist/chunk-AXQKUYKF.js +1442 -0
  9. package/dist/chunk-C7H5WBTJ.js +46 -0
  10. package/dist/{chunk-NHBZIL2J.js → chunk-CHDJXYBG.js} +3 -28
  11. package/dist/{chunk-KCBMVQL5.js → chunk-CPVAQJEC.js} +13 -5
  12. package/dist/{chunk-ZQIIPFD7.js → chunk-DH7G3DDV.js} +2 -2
  13. package/dist/{chunk-BOVXCR46.js → chunk-EOROMIFO.js} +14 -6
  14. package/dist/{chunk-2CKGIR6G.js → chunk-EPWLXXBL.js} +3 -3
  15. package/dist/{chunk-5RMYT5WH.js → chunk-F7XU27LU.js} +2 -2
  16. package/dist/{chunk-63G7IQTD.js → chunk-FYYOWQXK.js} +20 -40
  17. package/dist/chunk-GEXE2T6I.js +87 -0
  18. package/dist/{chunk-DGUPQSOR.js → chunk-GJDHTTR2.js} +11 -4
  19. package/dist/chunk-GSH2FPKV.js +87 -0
  20. package/dist/{chunk-NUZ4OMU3.js → chunk-GU2H5QRN.js} +2 -2
  21. package/dist/{chunk-Z6YZJ36C.js → chunk-HJZUSUPU.js} +8 -4
  22. package/dist/{chunk-LAWMH22O.js → chunk-HLKAFWWJ.js} +82 -3
  23. package/dist/{chunk-HPFZLISB.js → chunk-HLUS2HEB.js} +2 -2
  24. package/dist/{chunk-H2MDONBU.js → chunk-J3JSOSUO.js} +9 -6
  25. package/dist/{chunk-7PBOG4YE.js → chunk-KBOQX573.js} +2 -2
  26. package/dist/{chunk-HDSRORNV.js → chunk-KKCHYLVI.js} +17 -11
  27. package/dist/{chunk-HMLMH7VZ.js → chunk-LFJQVJYJ.js} +2 -2
  28. package/dist/{chunk-4EXL2CUA.js → chunk-LQJUPXQY.js} +16 -8
  29. package/dist/{chunk-ITZ3DDOG.js → chunk-MPGIHELS.js} +18 -3
  30. package/dist/chunk-NFS5W3PP.js +37 -0
  31. package/dist/chunk-NG5F43OU.js +200 -0
  32. package/dist/{chunk-DCKMSTJ4.js → chunk-O7Q7FDUJ.js} +22 -14
  33. package/dist/{chunk-UJQN5N3I.js → chunk-OIDHN6GD.js} +6 -3
  34. package/dist/{chunk-Z4GHE2HD.js → chunk-P3E6L7KW.js} +6 -2
  35. package/dist/{chunk-BNN2RKD2.js → chunk-P4WO3BBW.js} +3 -3
  36. package/dist/{chunk-QOV2R2WT.js → chunk-QIXNAB5K.js} +42 -2
  37. package/dist/{chunk-NWCE4CIC.js → chunk-SMDCNPMK.js} +11 -28
  38. package/dist/{chunk-SEFSL2GF.js → chunk-TOIEB3LG.js} +2 -2
  39. package/dist/{chunk-4XHWPRAX.js → chunk-UGQKAVCD.js} +3 -3
  40. package/dist/{chunk-OVPLOMPY.js → chunk-UQEQ6AHX.js} +7 -4
  41. package/dist/{chunk-ZK6GXM3J.js → chunk-VIYSWZCO.js} +3 -3
  42. package/dist/chunk-VJJKSGIX.js +121 -0
  43. package/dist/{chunk-N5KEREIA.js → chunk-VT4JBH6L.js} +19 -7
  44. package/dist/{chunk-7LLPRPR5.js → chunk-WGAD3GNR.js} +2 -2
  45. package/dist/chunk-YDBXNPYU.js +69 -0
  46. package/dist/chunk-YY4QGUQ5.js +84 -0
  47. package/dist/{chunk-FGXRVW7G.js → chunk-YZ6L7GFO.js} +2 -2
  48. package/dist/{chunk-W4ALF422.js → chunk-ZEUCXQBN.js} +3 -3
  49. package/dist/cli.js +2697 -1054
  50. package/dist/{db-BNVVZSfP.d.ts → db-ShvwGDKf.d.ts} +12 -19
  51. package/dist/index.d.ts +15 -15
  52. package/dist/index.js +263 -234
  53. package/dist/postinstall.js +5 -76
  54. package/dist/queries/affected.d.ts +1 -1
  55. package/dist/queries/affected.js +3 -3
  56. package/dist/queries/bottlenecks.d.ts +1 -1
  57. package/dist/queries/bottlenecks.js +2 -2
  58. package/dist/queries/by-kind.d.ts +1 -1
  59. package/dist/queries/by-kind.js +2 -2
  60. package/dist/queries/call-graph.d.ts +1 -1
  61. package/dist/queries/call-graph.js +3 -3
  62. package/dist/queries/change-surface.d.ts +2 -2
  63. package/dist/queries/change-surface.js +3 -3
  64. package/dist/queries/code.d.ts +1 -1
  65. package/dist/queries/code.js +3 -3
  66. package/dist/queries/complexity-hotspots.d.ts +1 -1
  67. package/dist/queries/complexity-hotspots.js +3 -3
  68. package/dist/queries/complexity.d.ts +1 -1
  69. package/dist/queries/complexity.js +3 -3
  70. package/dist/queries/convergence.d.ts +1 -1
  71. package/dist/queries/convergence.js +3 -3
  72. package/dist/queries/coupling.d.ts +1 -1
  73. package/dist/queries/coupling.js +3 -1
  74. package/dist/queries/cycles.d.ts +1 -1
  75. package/dist/queries/cycles.js +3 -2
  76. package/dist/queries/dataflow.d.ts +1 -1
  77. package/dist/queries/dataflow.js +3 -3
  78. package/dist/queries/dead.d.ts +1 -1
  79. package/dist/queries/dead.js +4 -3
  80. package/dist/queries/deep-chains.d.ts +1 -1
  81. package/dist/queries/deep-chains.js +3 -2
  82. package/dist/queries/deps.d.ts +1 -1
  83. package/dist/queries/deps.js +3 -1
  84. package/dist/queries/diff-impact.d.ts +2 -2
  85. package/dist/queries/diff-impact.js +2 -3
  86. package/dist/queries/doc-coverage.d.ts +1 -1
  87. package/dist/queries/doc-coverage.js +2 -2
  88. package/dist/queries/drift.d.ts +1 -1
  89. package/dist/queries/drift.js +3 -2
  90. package/dist/queries/extract-candidates.d.ts +1 -1
  91. package/dist/queries/extract-candidates.js +3 -3
  92. package/dist/queries/fan.d.ts +1 -1
  93. package/dist/queries/fan.js +3 -2
  94. package/dist/queries/files.d.ts +1 -1
  95. package/dist/queries/health.d.ts +1 -1
  96. package/dist/queries/health.js +14 -14
  97. package/dist/queries/hierarchy.d.ts +1 -1
  98. package/dist/queries/hierarchy.js +3 -2
  99. package/dist/queries/hotspots.d.ts +1 -1
  100. package/dist/queries/hotspots.js +2 -2
  101. package/dist/queries/imports.d.ts +1 -1
  102. package/dist/queries/imports.js +3 -2
  103. package/dist/queries/index.d.ts +1 -2
  104. package/dist/queries/index.js +46 -51
  105. package/dist/queries/isolated.d.ts +1 -1
  106. package/dist/queries/isolated.js +4 -3
  107. package/dist/queries/members.d.ts +2 -2
  108. package/dist/queries/members.js +3 -2
  109. package/dist/queries/methods.d.ts +1 -1
  110. package/dist/queries/methods.js +2 -2
  111. package/dist/queries/outline.d.ts +1 -1
  112. package/dist/queries/outline.js +3 -2
  113. package/dist/queries/passthrough-candidates.d.ts +1 -1
  114. package/dist/queries/passthrough-candidates.js +3 -3
  115. package/dist/queries/redundant-reexports.d.ts +1 -1
  116. package/dist/queries/redundant-reexports.js +4 -2
  117. package/dist/queries/refs.d.ts +1 -1
  118. package/dist/queries/refs.js +3 -1
  119. package/dist/queries/similar-chains.d.ts +1 -1
  120. package/dist/queries/similar-chains.js +3 -2
  121. package/dist/queries/similar-files.d.ts +1 -1
  122. package/dist/queries/similar-files.js +3 -2
  123. package/dist/queries/similar-signatures.d.ts +1 -1
  124. package/dist/queries/similar-signatures.js +2 -2
  125. package/dist/queries/similar.d.ts +1 -1
  126. package/dist/queries/similar.js +3 -3
  127. package/dist/queries/slice.d.ts +2 -2
  128. package/dist/queries/slice.js +3 -3
  129. package/dist/queries/stale-abstractions.d.ts +1 -1
  130. package/dist/queries/stale-abstractions.js +3 -3
  131. package/dist/queries/stats.d.ts +1 -1
  132. package/dist/queries/surface.d.ts +1 -1
  133. package/dist/queries/surface.js +3 -2
  134. package/dist/queries/symbols.d.ts +1 -1
  135. package/dist/queries/symbols.js +3 -2
  136. package/dist/queries/system.d.ts +1 -1
  137. package/dist/queries/system.js +3 -2
  138. package/dist/queries/trace.d.ts +1 -1
  139. package/dist/queries/trace.js +3 -1
  140. package/dist/queries/wrapper-candidates.d.ts +1 -1
  141. package/dist/queries/wrapper-candidates.js +3 -3
  142. package/dist/reindex-worker.js +24 -12
  143. package/package.json +6 -1
  144. package/IMPROVEMENTS.md +0 -143
  145. package/PLAN.md +0 -320
  146. package/dist/chunk-2CKGIR6G.js.map +0 -1
  147. package/dist/chunk-3UOUTZQT.js +0 -45
  148. package/dist/chunk-3UOUTZQT.js.map +0 -1
  149. package/dist/chunk-4EXL2CUA.js.map +0 -1
  150. package/dist/chunk-4PDAL6IL.js.map +0 -1
  151. package/dist/chunk-4TYLS5XX.js.map +0 -1
  152. package/dist/chunk-4XHWPRAX.js.map +0 -1
  153. package/dist/chunk-5RMYT5WH.js.map +0 -1
  154. package/dist/chunk-63G7IQTD.js.map +0 -1
  155. package/dist/chunk-6SXADWLW.js.map +0 -1
  156. package/dist/chunk-74RFWB5T.js.map +0 -1
  157. package/dist/chunk-7LLPRPR5.js.map +0 -1
  158. package/dist/chunk-7PBOG4YE.js.map +0 -1
  159. package/dist/chunk-7RLE5EWE.js.map +0 -1
  160. package/dist/chunk-7UCKSQRS.js +0 -55
  161. package/dist/chunk-7UCKSQRS.js.map +0 -1
  162. package/dist/chunk-BNN2RKD2.js.map +0 -1
  163. package/dist/chunk-BOVXCR46.js.map +0 -1
  164. package/dist/chunk-D567NFIF.js +0 -65
  165. package/dist/chunk-D567NFIF.js.map +0 -1
  166. package/dist/chunk-DCKMSTJ4.js.map +0 -1
  167. package/dist/chunk-DEZKCZXD.js +0 -40
  168. package/dist/chunk-DEZKCZXD.js.map +0 -1
  169. package/dist/chunk-DGUPQSOR.js.map +0 -1
  170. package/dist/chunk-DVWGWHFW.js +0 -99
  171. package/dist/chunk-DVWGWHFW.js.map +0 -1
  172. package/dist/chunk-EQYLEQCW.js +0 -46
  173. package/dist/chunk-EQYLEQCW.js.map +0 -1
  174. package/dist/chunk-FGXRVW7G.js.map +0 -1
  175. package/dist/chunk-H2MDONBU.js.map +0 -1
  176. package/dist/chunk-HB7MRLLL.js +0 -76
  177. package/dist/chunk-HB7MRLLL.js.map +0 -1
  178. package/dist/chunk-HDSRORNV.js.map +0 -1
  179. package/dist/chunk-HMLMH7VZ.js.map +0 -1
  180. package/dist/chunk-HPFZLISB.js.map +0 -1
  181. package/dist/chunk-HZBC7PPD.js +0 -88
  182. package/dist/chunk-HZBC7PPD.js.map +0 -1
  183. package/dist/chunk-ITZ3DDOG.js.map +0 -1
  184. package/dist/chunk-JJP7KQND.js +0 -1
  185. package/dist/chunk-JJP7KQND.js.map +0 -1
  186. package/dist/chunk-KCBMVQL5.js.map +0 -1
  187. package/dist/chunk-KPPHZCZJ.js.map +0 -1
  188. package/dist/chunk-LAWMH22O.js.map +0 -1
  189. package/dist/chunk-MCUX5LA7.js +0 -103
  190. package/dist/chunk-MCUX5LA7.js.map +0 -1
  191. package/dist/chunk-MGNMHKX3.js.map +0 -1
  192. package/dist/chunk-N5KEREIA.js.map +0 -1
  193. package/dist/chunk-NHBZIL2J.js.map +0 -1
  194. package/dist/chunk-NUZ4OMU3.js.map +0 -1
  195. package/dist/chunk-NWCE4CIC.js.map +0 -1
  196. package/dist/chunk-OVPLOMPY.js.map +0 -1
  197. package/dist/chunk-QOV2R2WT.js.map +0 -1
  198. package/dist/chunk-SEFSL2GF.js.map +0 -1
  199. package/dist/chunk-UJQN5N3I.js.map +0 -1
  200. package/dist/chunk-W4ALF422.js.map +0 -1
  201. package/dist/chunk-Z4GHE2HD.js.map +0 -1
  202. package/dist/chunk-Z6YZJ36C.js.map +0 -1
  203. package/dist/chunk-ZK6GXM3J.js.map +0 -1
  204. package/dist/chunk-ZOGY2V3N.js +0 -158
  205. package/dist/chunk-ZOGY2V3N.js.map +0 -1
  206. package/dist/chunk-ZQIIPFD7.js.map +0 -1
  207. package/dist/cli.js.map +0 -1
  208. package/dist/index.js.map +0 -1
  209. package/dist/postinstall.js.map +0 -1
  210. package/dist/queries/affected.js.map +0 -1
  211. package/dist/queries/bottlenecks.js.map +0 -1
  212. package/dist/queries/by-kind.js.map +0 -1
  213. package/dist/queries/call-graph.js.map +0 -1
  214. package/dist/queries/change-surface.js.map +0 -1
  215. package/dist/queries/clean-signature.js.map +0 -1
  216. package/dist/queries/code.js.map +0 -1
  217. package/dist/queries/complexity-hotspots.js.map +0 -1
  218. package/dist/queries/complexity.js.map +0 -1
  219. package/dist/queries/convergence.js.map +0 -1
  220. package/dist/queries/coupling.js.map +0 -1
  221. package/dist/queries/cycles.js.map +0 -1
  222. package/dist/queries/dataflow.js.map +0 -1
  223. package/dist/queries/dead.js.map +0 -1
  224. package/dist/queries/deep-chains.js.map +0 -1
  225. package/dist/queries/deps.js.map +0 -1
  226. package/dist/queries/diff-impact.js.map +0 -1
  227. package/dist/queries/doc-coverage.js.map +0 -1
  228. package/dist/queries/drift.js.map +0 -1
  229. package/dist/queries/extract-candidates.js.map +0 -1
  230. package/dist/queries/fan.js.map +0 -1
  231. package/dist/queries/files.js.map +0 -1
  232. package/dist/queries/health.js.map +0 -1
  233. package/dist/queries/hierarchy.js.map +0 -1
  234. package/dist/queries/hotspots.js.map +0 -1
  235. package/dist/queries/imports.js.map +0 -1
  236. package/dist/queries/index.js.map +0 -1
  237. package/dist/queries/isolated.js.map +0 -1
  238. package/dist/queries/members.js.map +0 -1
  239. package/dist/queries/methods.js.map +0 -1
  240. package/dist/queries/outline.js.map +0 -1
  241. package/dist/queries/passthrough-candidates.js.map +0 -1
  242. package/dist/queries/redundant-reexports.js.map +0 -1
  243. package/dist/queries/refs.js.map +0 -1
  244. package/dist/queries/similar-chains.js.map +0 -1
  245. package/dist/queries/similar-files.js.map +0 -1
  246. package/dist/queries/similar-signatures.js.map +0 -1
  247. package/dist/queries/similar.js.map +0 -1
  248. package/dist/queries/slice.js.map +0 -1
  249. package/dist/queries/stale-abstractions.js.map +0 -1
  250. package/dist/queries/stats.js.map +0 -1
  251. package/dist/queries/surface.js.map +0 -1
  252. package/dist/queries/symbols.js.map +0 -1
  253. package/dist/queries/system.js.map +0 -1
  254. package/dist/queries/test-coverage.d.ts +0 -22
  255. package/dist/queries/test-coverage.js +0 -11
  256. package/dist/queries/test-coverage.js.map +0 -1
  257. package/dist/queries/trace.js.map +0 -1
  258. package/dist/queries/wrapper-candidates.js.map +0 -1
  259. package/dist/reindex-worker.js.map +0 -1
  260. package/docs/AGENT_GUIDE.md +0 -359
  261. package/reports/debloat/2026-04-10-scip-query-self-audit.md +0 -161
  262. package/src/cli.ts +0 -1480
  263. package/src/config.ts +0 -117
  264. package/src/db.ts +0 -127
  265. package/src/gitignore-filter.ts +0 -143
  266. package/src/index.ts +0 -11
  267. package/src/postinstall.ts +0 -8
  268. package/src/queries/affected.ts +0 -86
  269. package/src/queries/bottlenecks.ts +0 -67
  270. package/src/queries/by-kind.ts +0 -204
  271. package/src/queries/call-graph.ts +0 -66
  272. package/src/queries/change-surface.ts +0 -110
  273. package/src/queries/clean-signature.ts +0 -22
  274. package/src/queries/code.ts +0 -101
  275. package/src/queries/complexity-hotspots.ts +0 -119
  276. package/src/queries/complexity.ts +0 -152
  277. package/src/queries/convergence.ts +0 -82
  278. package/src/queries/coupling.ts +0 -99
  279. package/src/queries/cycles.ts +0 -78
  280. package/src/queries/dataflow.ts +0 -128
  281. package/src/queries/dead.ts +0 -122
  282. package/src/queries/deep-chains.ts +0 -59
  283. package/src/queries/deps.ts +0 -46
  284. package/src/queries/diff-impact.ts +0 -204
  285. package/src/queries/doc-coverage.ts +0 -86
  286. package/src/queries/drift.ts +0 -224
  287. package/src/queries/extract-candidates.ts +0 -167
  288. package/src/queries/fan.ts +0 -148
  289. package/src/queries/files.ts +0 -16
  290. package/src/queries/health.ts +0 -324
  291. package/src/queries/hierarchy.ts +0 -49
  292. package/src/queries/hotspots.ts +0 -53
  293. package/src/queries/imports.ts +0 -95
  294. package/src/queries/index.ts +0 -45
  295. package/src/queries/isolated.ts +0 -67
  296. package/src/queries/members.ts +0 -54
  297. package/src/queries/methods.ts +0 -27
  298. package/src/queries/outline.ts +0 -52
  299. package/src/queries/passthrough-candidates.ts +0 -94
  300. package/src/queries/redundant-reexports.ts +0 -170
  301. package/src/queries/refs.ts +0 -27
  302. package/src/queries/similar-chains.ts +0 -314
  303. package/src/queries/similar-files.ts +0 -140
  304. package/src/queries/similar-signatures.ts +0 -151
  305. package/src/queries/similar.ts +0 -305
  306. package/src/queries/slice.ts +0 -154
  307. package/src/queries/stale-abstractions.ts +0 -82
  308. package/src/queries/stats.ts +0 -22
  309. package/src/queries/surface.ts +0 -34
  310. package/src/queries/symbols.ts +0 -39
  311. package/src/queries/system.ts +0 -86
  312. package/src/queries/test-coverage.ts +0 -106
  313. package/src/queries/trace.ts +0 -55
  314. package/src/queries/wrapper-candidates.ts +0 -112
  315. package/src/query-support.ts +0 -226
  316. package/src/reindex/detect.ts +0 -58
  317. package/src/reindex/index.ts +0 -153
  318. package/src/reindex/indexers.ts +0 -220
  319. package/src/reindex/install.ts +0 -125
  320. package/src/reindex-worker.ts +0 -35
  321. package/src/setup.ts +0 -202
  322. package/src/symbol-parser.ts +0 -278
  323. package/src/types.ts +0 -654
  324. package/src/watch.ts +0 -274
  325. package/tests/gitignore-filter.test.ts +0 -48
  326. package/tests/queries.test.ts +0 -300
  327. package/tests/symbol-parser.test.ts +0 -157
  328. package/tsconfig.json +0 -20
  329. package/tsup.config.ts +0 -40
  330. package/vitest.config.ts +0 -7
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  findFirstSymbolMatch,
3
3
  getCalleeRowsForSymbol
4
- } from "./chunk-ZOGY2V3N.js";
4
+ } from "./chunk-AXQKUYKF.js";
5
5
  import {
6
+ isFunctionLikeSymbol,
6
7
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
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-UJQN5N3I.js.map
198
+ //# sourceMappingURL=chunk-OIDHN6GD.js.map
@@ -1,6 +1,9 @@
1
+ import {
2
+ isLiveBarrel
3
+ } from "./chunk-YY4QGUQ5.js";
1
4
  import {
2
5
  shortenSymbol
3
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
4
7
 
5
8
  // src/queries/redundant-reexports.ts
6
9
  function redundantReexports(db, opts = {}) {
@@ -36,6 +39,7 @@ function redundantReexports(db, opts = {}) {
36
39
  const results = [];
37
40
  for (const row of reexportRows) {
38
41
  if (db.isIgnored(row.barrel_path) || db.isIgnored(row.original_path)) continue;
42
+ if (isLiveBarrel(db, row.barrel_path)) continue;
39
43
  const consumerCounts = db.get(
40
44
  `SELECT
41
45
  SUM(CASE WHEN uses_barrel = 1 THEN 1 ELSE 0 END) AS barrel_consumers,
@@ -98,4 +102,4 @@ function redundantReexports(db, opts = {}) {
98
102
  export {
99
103
  redundantReexports
100
104
  };
101
- //# sourceMappingURL=chunk-Z4GHE2HD.js.map
105
+ //# sourceMappingURL=chunk-P3E6L7KW.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  testFileExclusionSql
3
- } from "./chunk-ZOGY2V3N.js";
3
+ } from "./chunk-AXQKUYKF.js";
4
4
  import {
5
5
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
7
7
 
8
8
  // src/queries/stale-abstractions.ts
9
9
  function staleAbstractions(db, opts) {
@@ -61,4 +61,4 @@ function staleAbstractions(db, opts) {
61
61
  export {
62
62
  staleAbstractions
63
63
  };
64
- //# sourceMappingURL=chunk-BNN2RKD2.js.map
64
+ //# sourceMappingURL=chunk-P4WO3BBW.js.map
@@ -161,10 +161,50 @@ function leafName(raw) {
161
161
  const last = sym.descriptors[sym.descriptors.length - 1];
162
162
  return last.name;
163
163
  }
164
+ function leafSuffix(raw) {
165
+ const parsed = parseSymbol(raw);
166
+ if ("kind" in parsed && parsed.kind === "local") {
167
+ return null;
168
+ }
169
+ const sym = parsed;
170
+ const last = sym.descriptors[sym.descriptors.length - 1];
171
+ return last?.suffix ?? null;
172
+ }
173
+ function isFunctionLikeSymbol(raw) {
174
+ const suffix = leafSuffix(raw);
175
+ return suffix === "method" || suffix === "term";
176
+ }
177
+ function isModuleLikeSymbol(raw) {
178
+ return leafSuffix(raw) === "namespace";
179
+ }
180
+ function isDirectChildSymbol(parentRaw, candidateRaw) {
181
+ const parent = parseSymbol(parentRaw);
182
+ const candidate = parseSymbol(candidateRaw);
183
+ if ("kind" in parent || "kind" in candidate) {
184
+ return false;
185
+ }
186
+ const parentDescriptors = parent.descriptors;
187
+ const candidateDescriptors = candidate.descriptors;
188
+ if (candidateDescriptors.length !== parentDescriptors.length + 1) {
189
+ return false;
190
+ }
191
+ for (let i = 0; i < parentDescriptors.length; i++) {
192
+ const parentDesc = parentDescriptors[i];
193
+ const candidateDesc = candidateDescriptors[i];
194
+ if (parentDesc.name !== candidateDesc.name || parentDesc.suffix !== candidateDesc.suffix) {
195
+ return false;
196
+ }
197
+ }
198
+ return true;
199
+ }
164
200
 
165
201
  export {
166
202
  parseSymbol,
167
203
  shortenSymbol,
168
- leafName
204
+ leafName,
205
+ leafSuffix,
206
+ isFunctionLikeSymbol,
207
+ isModuleLikeSymbol,
208
+ isDirectChildSymbol
169
209
  };
170
- //# sourceMappingURL=chunk-QOV2R2WT.js.map
210
+ //# sourceMappingURL=chunk-QIXNAB5K.js.map
@@ -1,19 +1,20 @@
1
1
  import {
2
- TEST_FILE_PATTERNS,
3
- testFileMatchSql
4
- } from "./chunk-ZOGY2V3N.js";
2
+ resolveIndexedFile
3
+ } from "./chunk-AXQKUYKF.js";
5
4
  import {
6
5
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
8
7
 
9
8
  // src/queries/change-surface.ts
10
9
  function changeSurface(db, filePattern) {
10
+ const resolvedFile = resolveIndexedFile(db, filePattern);
11
+ if (!resolvedFile) return null;
11
12
  const doc = db.get(
12
13
  `SELECT id, relative_path FROM documents
13
- WHERE relative_path LIKE ?
14
+ WHERE relative_path = ?
14
15
  ${db.pathExclusionsFor("documents")}
15
16
  LIMIT 1`,
16
- `%${filePattern}%`
17
+ resolvedFile
17
18
  );
18
19
  if (!doc || db.isIgnored(doc.relative_path)) return null;
19
20
  const syms = db.all(
@@ -25,10 +26,8 @@ function changeSurface(db, filePattern) {
25
26
  ORDER BY der.start_line`,
26
27
  doc.id
27
28
  );
28
- const testPatternSql = testFileMatchSql("ref_d", TEST_FILE_PATTERNS);
29
29
  const symbols = [];
30
30
  let totalExternalConsumers = 0;
31
- let coveredCount = 0;
32
31
  for (const sym of syms) {
33
32
  const consumerRow = db.get(
34
33
  `SELECT COUNT(DISTINCT c.document_id) AS consumer_count
@@ -41,23 +40,10 @@ function changeSurface(db, filePattern) {
41
40
  doc.id
42
41
  );
43
42
  const externalConsumers = consumerRow?.consumer_count ?? 0;
44
- const testFiles = db.all(
45
- `SELECT DISTINCT ref_d.relative_path
46
- FROM mentions m
47
- JOIN chunks c ON m.chunk_id = c.id
48
- JOIN documents ref_d ON c.document_id = ref_d.id
49
- WHERE m.symbol_id = ?
50
- AND m.role != 1
51
- AND (${testPatternSql})
52
- ORDER BY ref_d.relative_path`,
53
- sym.symbol_id
54
- ).map((r) => r.relative_path);
55
- const hasTests = testFiles.length > 0;
56
- if (hasTests) coveredCount++;
57
43
  let riskLevel;
58
- if (externalConsumers > 10 && !hasTests) {
44
+ if (externalConsumers > 10) {
59
45
  riskLevel = "high";
60
- } else if (externalConsumers > 5 || !hasTests) {
46
+ } else if (externalConsumers > 0) {
61
47
  riskLevel = "medium";
62
48
  } else {
63
49
  riskLevel = "low";
@@ -69,20 +55,17 @@ function changeSurface(db, filePattern) {
69
55
  startLine: sym.start_line,
70
56
  endLine: sym.end_line,
71
57
  externalConsumers,
72
- testFiles,
73
58
  riskLevel
74
59
  });
75
60
  }
76
- const testCoveragePercent = symbols.length > 0 ? Math.round(coveredCount / symbols.length * 100) : 0;
77
61
  return {
78
62
  file: doc.relative_path,
79
63
  symbols,
80
- totalExternalConsumers,
81
- testCoveragePercent
64
+ totalExternalConsumers
82
65
  };
83
66
  }
84
67
 
85
68
  export {
86
69
  changeSurface
87
70
  };
88
- //# sourceMappingURL=chunk-NWCE4CIC.js.map
71
+ //# sourceMappingURL=chunk-SMDCNPMK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shortenSymbol
3
- } from "./chunk-QOV2R2WT.js";
3
+ } from "./chunk-QIXNAB5K.js";
4
4
 
5
5
  // src/queries/similar-signatures.ts
6
6
  function similarSignatures(db, opts = {}) {
@@ -75,4 +75,4 @@ function normalizeSignature(raw) {
75
75
  export {
76
76
  similarSignatures
77
77
  };
78
- //# sourceMappingURL=chunk-SEFSL2GF.js.map
78
+ //# sourceMappingURL=chunk-TOIEB3LG.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  findFirstSymbolMatch,
3
3
  getCalleeRowsForSymbol
4
- } from "./chunk-ZOGY2V3N.js";
4
+ } from "./chunk-AXQKUYKF.js";
5
5
  import {
6
6
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
7
+ } from "./chunk-QIXNAB5K.js";
8
8
 
9
9
  // src/queries/complexity.ts
10
10
  import { readFileSync } from "fs";
@@ -107,4 +107,4 @@ function stripCommentsAndStrings(source) {
107
107
  export {
108
108
  complexity
109
109
  };
110
- //# sourceMappingURL=chunk-4XHWPRAX.js.map
110
+ //# sourceMappingURL=chunk-UGQKAVCD.js.map
@@ -1,9 +1,12 @@
1
+ import {
2
+ isEntrySurface
3
+ } from "./chunk-YY4QGUQ5.js";
1
4
  import {
2
5
  testFileExclusionSql
3
- } from "./chunk-ZOGY2V3N.js";
6
+ } from "./chunk-AXQKUYKF.js";
4
7
  import {
5
8
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
9
+ } from "./chunk-QIXNAB5K.js";
7
10
 
8
11
  // src/queries/isolated.ts
9
12
  function isolated(db, opts = {}) {
@@ -41,7 +44,7 @@ function isolated(db, opts = {}) {
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-OVPLOMPY.js.map
60
+ //# sourceMappingURL=chunk-UQEQ6AHX.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  testFileExclusionSql
3
- } from "./chunk-ZOGY2V3N.js";
3
+ } from "./chunk-AXQKUYKF.js";
4
4
  import {
5
5
  shortenSymbol
6
- } from "./chunk-QOV2R2WT.js";
6
+ } from "./chunk-QIXNAB5K.js";
7
7
 
8
8
  // src/queries/complexity-hotspots.ts
9
9
  function complexityHotspots(db, opts) {
@@ -99,4 +99,4 @@ function complexityHotspots(db, opts) {
99
99
  export {
100
100
  complexityHotspots
101
101
  };
102
- //# sourceMappingURL=chunk-ZK6GXM3J.js.map
102
+ //# sourceMappingURL=chunk-VIYSWZCO.js.map
@@ -0,0 +1,121 @@
1
+ import {
2
+ findExactSymbolMatch,
3
+ findFirstSymbolMatch,
4
+ getSourceReferenceSites
5
+ } from "./chunk-AXQKUYKF.js";
6
+ import {
7
+ shortenSymbol
8
+ } from "./chunk-QIXNAB5K.js";
9
+
10
+ // src/queries/affected.ts
11
+ function affected(db, symbolPattern, opts = {}) {
12
+ const { maxDepth = 5, scope } = opts;
13
+ const target = findFirstSymbolMatch(db, symbolPattern);
14
+ if (!target) return [];
15
+ const results = [];
16
+ const visited = /* @__PURE__ */ new Set([target.symbolId]);
17
+ const seenResults = /* @__PURE__ */ new Set();
18
+ let frontier = [target];
19
+ for (let depth = 1; depth <= maxDepth; depth++) {
20
+ if (frontier.length === 0) break;
21
+ const nextFrontier = [];
22
+ for (const current of frontier) {
23
+ for (const row of getDirectAffectedRows(db, current, scope)) {
24
+ const resultKey = `${row.file}|${row.shortName}`;
25
+ if (row.symbolId !== null) {
26
+ if (visited.has(row.symbolId)) continue;
27
+ visited.add(row.symbolId);
28
+ } else if (seenResults.has(resultKey)) {
29
+ continue;
30
+ }
31
+ seenResults.add(resultKey);
32
+ results.push({
33
+ symbol: row.symbol,
34
+ shortName: row.shortName,
35
+ file: row.file,
36
+ depth
37
+ });
38
+ if (row.symbolId !== null && row.symbolMatch) {
39
+ nextFrontier.push(row.symbolMatch);
40
+ }
41
+ }
42
+ }
43
+ frontier = nextFrontier;
44
+ }
45
+ results.sort((a, b) => a.depth - b.depth || a.file.localeCompare(b.file));
46
+ return results;
47
+ }
48
+ function getDirectAffectedRows(db, target, scope) {
49
+ const sourceSites = getSourceReferenceSites(db, target).filter((site) => !db.isIgnored(site.file)).filter((site) => !scope || site.file.includes(scope));
50
+ if (sourceSites.length > 0) {
51
+ const rows2 = [];
52
+ const seen = /* @__PURE__ */ new Set();
53
+ for (const site of sourceSites) {
54
+ if (!site.enclosingSymbol || site.enclosingSymbol === target.symbol) {
55
+ const key2 = `${site.file}|(top-level)`;
56
+ if (seen.has(key2)) continue;
57
+ seen.add(key2);
58
+ rows2.push({
59
+ symbolId: null,
60
+ symbol: site.file,
61
+ shortName: "(top-level)",
62
+ file: site.file,
63
+ symbolMatch: null
64
+ });
65
+ continue;
66
+ }
67
+ const enclosing = findExactSymbolMatch(db, site.enclosingSymbol);
68
+ if (!enclosing || enclosing.symbolId === target.symbolId || db.isIgnored(enclosing.relativePath)) {
69
+ continue;
70
+ }
71
+ const key = `${enclosing.symbolId}|${enclosing.relativePath}`;
72
+ if (seen.has(key)) continue;
73
+ seen.add(key);
74
+ rows2.push({
75
+ symbolId: enclosing.symbolId,
76
+ symbol: enclosing.symbol,
77
+ shortName: shortenSymbol(enclosing.symbol),
78
+ file: enclosing.relativePath,
79
+ symbolMatch: enclosing
80
+ });
81
+ }
82
+ return rows2;
83
+ }
84
+ const rows = db.all(
85
+ `SELECT DISTINCT
86
+ enc_gs.id AS symbol_id,
87
+ enc_gs.symbol AS symbol,
88
+ enc_d.relative_path AS relative_path
89
+ FROM mentions m
90
+ JOIN chunks c ON m.chunk_id = c.id
91
+ JOIN documents ref_d ON c.document_id = ref_d.id
92
+ JOIN defn_enclosing_ranges enc_der
93
+ ON enc_der.document_id = ref_d.id
94
+ AND c.start_line >= enc_der.start_line
95
+ AND c.end_line <= enc_der.end_line
96
+ JOIN global_symbols enc_gs ON enc_der.symbol_id = enc_gs.id
97
+ JOIN documents enc_d ON enc_der.document_id = enc_d.id
98
+ WHERE m.symbol_id = ?
99
+ AND m.role != 1
100
+ AND enc_gs.id != ?
101
+ ${db.symbolNoiseFor("enc_gs")}
102
+ ${db.pathExclusionsFor("enc_d")}
103
+ ${scope ? `AND enc_d.relative_path LIKE '%${scope}%'` : ""}
104
+ ORDER BY enc_d.relative_path
105
+ LIMIT 1`,
106
+ target.symbolId,
107
+ target.symbolId
108
+ );
109
+ return rows.filter((row) => !db.isIgnored(row.relative_path)).map((row) => ({
110
+ symbolId: row.symbol_id,
111
+ symbol: row.symbol,
112
+ shortName: shortenSymbol(row.symbol),
113
+ file: row.relative_path,
114
+ symbolMatch: findExactSymbolMatch(db, row.symbol)
115
+ }));
116
+ }
117
+
118
+ export {
119
+ affected
120
+ };
121
+ //# sourceMappingURL=chunk-VJJKSGIX.js.map
@@ -1,5 +1,13 @@
1
+ import {
2
+ resolveIndexedFile
3
+ } from "./chunk-AXQKUYKF.js";
4
+
1
5
  // src/queries/deps.ts
2
6
  function deps(db, filePattern) {
7
+ const resolvedFile = resolveIndexedFile(db, filePattern);
8
+ if (!resolvedFile) {
9
+ return [];
10
+ }
3
11
  const rows = db.all(
4
12
  `SELECT DISTINCT d2.relative_path
5
13
  FROM mentions m
@@ -8,15 +16,19 @@ function deps(db, filePattern) {
8
16
  JOIN global_symbols gs ON m.symbol_id = gs.id
9
17
  JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
10
18
  JOIN documents d2 ON der.document_id = d2.id
11
- WHERE d1.relative_path LIKE ?
19
+ WHERE d1.relative_path = ?
12
20
  AND d2.relative_path <> d1.relative_path
13
21
  AND ${db.localSymbolPredicate}
14
22
  ORDER BY d2.relative_path`,
15
- `%${filePattern}%`
23
+ resolvedFile
16
24
  );
17
25
  return rows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => ({ relativePath: r.relative_path }));
18
26
  }
19
27
  function rdeps(db, filePattern) {
28
+ const resolvedFile = resolveIndexedFile(db, filePattern);
29
+ if (!resolvedFile) {
30
+ return [];
31
+ }
20
32
  const rows = db.all(
21
33
  `SELECT DISTINCT d1.relative_path
22
34
  FROM mentions m
@@ -25,11 +37,11 @@ function rdeps(db, filePattern) {
25
37
  JOIN global_symbols gs ON m.symbol_id = gs.id
26
38
  JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
27
39
  JOIN documents d2 ON der.document_id = d2.id
28
- WHERE d2.relative_path LIKE ?
29
- AND d1.relative_path NOT LIKE ?
40
+ WHERE d2.relative_path = ?
41
+ AND d1.relative_path != ?
30
42
  ORDER BY d1.relative_path`,
31
- `%${filePattern}%`,
32
- `%${filePattern}%`
43
+ resolvedFile,
44
+ resolvedFile
33
45
  );
34
46
  return rows.filter((r) => !db.isIgnored(r.relative_path)).map((r) => ({ relativePath: r.relative_path }));
35
47
  }
@@ -38,4 +50,4 @@ export {
38
50
  deps,
39
51
  rdeps
40
52
  };
41
- //# sourceMappingURL=chunk-N5KEREIA.js.map
53
+ //# sourceMappingURL=chunk-VT4JBH6L.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildFileDepGraph
3
- } from "./chunk-ZOGY2V3N.js";
3
+ } from "./chunk-AXQKUYKF.js";
4
4
 
5
5
  // src/queries/similar-chains.ts
6
6
  function similarChains(db, opts = {}) {
@@ -210,4 +210,4 @@ function isSubChain(sub, full) {
210
210
  export {
211
211
  similarChains
212
212
  };
213
- //# sourceMappingURL=chunk-7LLPRPR5.js.map
213
+ //# sourceMappingURL=chunk-WGAD3GNR.js.map
@@ -0,0 +1,69 @@
1
+ import {
2
+ findFirstSymbolMatch
3
+ } from "./chunk-AXQKUYKF.js";
4
+ import {
5
+ parseSymbol,
6
+ shortenSymbol
7
+ } from "./chunk-QIXNAB5K.js";
8
+
9
+ // src/queries/hierarchy.ts
10
+ function hierarchy(db, symbolPattern) {
11
+ const match = findFirstSymbolMatch(db, symbolPattern);
12
+ if (!match) return [];
13
+ const sym = db.get(
14
+ `SELECT symbol, enclosing_symbol FROM global_symbols
15
+ WHERE id = ? LIMIT 1`,
16
+ match.symbolId
17
+ );
18
+ if (!sym) return [];
19
+ const chain = [
20
+ { symbol: sym.symbol, shortName: shortenSymbol(sym.symbol), depth: 0 }
21
+ ];
22
+ let current = sym.enclosing_symbol;
23
+ let depth = 1;
24
+ const seen = /* @__PURE__ */ new Set([sym.symbol]);
25
+ while (current && !seen.has(current) && depth < 20) {
26
+ seen.add(current);
27
+ const parent = db.get(
28
+ `SELECT symbol, enclosing_symbol FROM global_symbols WHERE symbol = ?`,
29
+ current
30
+ );
31
+ if (!parent) break;
32
+ chain.push({
33
+ symbol: parent.symbol,
34
+ shortName: shortenSymbol(parent.symbol),
35
+ depth
36
+ });
37
+ current = parent.enclosing_symbol;
38
+ depth++;
39
+ }
40
+ if (chain.length > 1) {
41
+ return chain;
42
+ }
43
+ const parsed = parseSymbol(sym.symbol);
44
+ if ("kind" in parsed) {
45
+ return chain;
46
+ }
47
+ const descriptors = parsed.descriptors;
48
+ if (descriptors.length <= 1) {
49
+ return chain;
50
+ }
51
+ const syntheticChain = [chain[0]];
52
+ for (let i = descriptors.length - 2, syntheticDepth = 1; i >= 0; i--, syntheticDepth++) {
53
+ const partial = descriptors.slice(0, i + 1);
54
+ const shortName = partial.map(
55
+ (descriptor) => descriptor.suffix === "method" ? `${descriptor.name}()` : descriptor.name.replace(/\.(ts|tsx|js|jsx|mjs|cjs|py|pyi|rs|java|scala|kt|kts|rb|go|cs|vb|dart|php|c|cc|cpp|cxx|h|hpp)$/, "")
56
+ ).join(":");
57
+ syntheticChain.push({
58
+ symbol: shortName,
59
+ shortName,
60
+ depth: syntheticDepth
61
+ });
62
+ }
63
+ return syntheticChain;
64
+ }
65
+
66
+ export {
67
+ hierarchy
68
+ };
69
+ //# sourceMappingURL=chunk-YDBXNPYU.js.map
@@ -0,0 +1,84 @@
1
+ import {
2
+ buildFileDepGraph
3
+ } from "./chunk-AXQKUYKF.js";
4
+
5
+ // src/entry-surfaces.ts
6
+ var liveBarrelCache = /* @__PURE__ */ new WeakMap();
7
+ function normalizePath(path) {
8
+ return path.replace(/\\/g, "/");
9
+ }
10
+ function isBarrelFile(path) {
11
+ const normalized = normalizePath(path);
12
+ return normalized === "index.ts" || normalized === "index.js" || normalized.endsWith("/index.ts") || normalized.endsWith("/index.js") || normalized.endsWith("/mod.rs") || normalized.endsWith("/__init__.py");
13
+ }
14
+ function isWorkerEntrySurface(path) {
15
+ const normalized = normalizePath(path);
16
+ return /(^|\/)[^/]*worker\.(ts|js|mjs|cjs|rs|py|go)$/.test(normalized);
17
+ }
18
+ function isStructuralEntrySurface(path) {
19
+ const normalized = normalizePath(path);
20
+ const segments = normalized.split("/");
21
+ const basename = segments[segments.length - 1] ?? normalized;
22
+ if (basename === "cli.ts" || basename === "cli.js" || basename === "postinstall.ts" || basename === "postinstall.js" || basename === "main.ts" || basename === "main.js" || basename === "main.rs" || basename === "main.go" || basename === "main.py") {
23
+ return true;
24
+ }
25
+ if (basename === "index.ts" || basename === "index.js") {
26
+ return segments.length <= 2;
27
+ }
28
+ return normalized.endsWith("/mod.rs") || normalized.endsWith("/__init__.py");
29
+ }
30
+ function getIndexedPaths(db) {
31
+ return db.all(
32
+ `SELECT d.relative_path
33
+ FROM documents d
34
+ WHERE 1 = 1
35
+ ${db.pathExclusionsFor("d")}
36
+ ORDER BY d.relative_path`
37
+ ).map((row) => row.relative_path).filter((path) => !db.isIgnored(path));
38
+ }
39
+ function getLiveBarrelPaths(db) {
40
+ const cached = liveBarrelCache.get(db);
41
+ if (cached) {
42
+ return cached;
43
+ }
44
+ const graph = buildFileDepGraph(db);
45
+ const queue = getIndexedPaths(db).filter(
46
+ (path) => isStructuralEntrySurface(path) || isWorkerEntrySurface(path)
47
+ );
48
+ const visited = /* @__PURE__ */ new Set();
49
+ const liveBarrels = /* @__PURE__ */ new Set();
50
+ while (queue.length > 0) {
51
+ const current = queue.shift();
52
+ if (visited.has(current)) {
53
+ continue;
54
+ }
55
+ visited.add(current);
56
+ if (isBarrelFile(current)) {
57
+ liveBarrels.add(current);
58
+ }
59
+ for (const dep of graph.get(current) ?? []) {
60
+ if (!visited.has(dep)) {
61
+ queue.push(dep);
62
+ }
63
+ }
64
+ }
65
+ liveBarrelCache.set(db, liveBarrels);
66
+ return liveBarrels;
67
+ }
68
+ function isLiveBarrel(db, path) {
69
+ return getLiveBarrelPaths(db).has(normalizePath(path));
70
+ }
71
+ function isEntrySurface(db, path) {
72
+ return isStructuralEntrySurface(path) || isWorkerEntrySurface(path) || isLiveBarrel(db, path);
73
+ }
74
+ function getInactiveBarrelPaths(db) {
75
+ const liveBarrels = getLiveBarrelPaths(db);
76
+ return getIndexedPaths(db).filter((path) => isBarrelFile(path)).filter((path) => !liveBarrels.has(path));
77
+ }
78
+
79
+ export {
80
+ isLiveBarrel,
81
+ isEntrySurface,
82
+ getInactiveBarrelPaths
83
+ };
84
+ //# sourceMappingURL=chunk-YY4QGUQ5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shortenSymbol
3
- } from "./chunk-QOV2R2WT.js";
3
+ } from "./chunk-QIXNAB5K.js";
4
4
 
5
5
  // src/queries/doc-coverage.ts
6
6
  function docCoverage(db, opts = {}) {
@@ -70,4 +70,4 @@ function docCoverage(db, opts = {}) {
70
70
  export {
71
71
  docCoverage
72
72
  };
73
- //# sourceMappingURL=chunk-FGXRVW7G.js.map
73
+ //# sourceMappingURL=chunk-YZ6L7GFO.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  getCalleeRowsForSymbol,
3
3
  testFileExclusionSql
4
- } from "./chunk-ZOGY2V3N.js";
4
+ } from "./chunk-AXQKUYKF.js";
5
5
  import {
6
6
  shortenSymbol
7
- } from "./chunk-QOV2R2WT.js";
7
+ } from "./chunk-QIXNAB5K.js";
8
8
 
9
9
  // src/queries/passthrough-candidates.ts
10
10
  function passthroughCandidates(db, opts) {
@@ -68,4 +68,4 @@ function passthroughCandidates(db, opts) {
68
68
  export {
69
69
  passthroughCandidates
70
70
  };
71
- //# sourceMappingURL=chunk-W4ALF422.js.map
71
+ //# sourceMappingURL=chunk-ZEUCXQBN.js.map