scip-query 0.6.5 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +63 -7
  2. package/dist/augment-vue-worker.js +1 -1
  3. package/dist/chunk-2AUZ3PLO.js +2 -0
  4. package/dist/{chunk-EB5IVUNU.js → chunk-2CC7RA6B.js} +2 -2
  5. package/dist/{chunk-OQZF2DQJ.js → chunk-2R7OKZE5.js} +2 -2
  6. package/dist/{chunk-YDKWDTAW.js → chunk-2YA36CXK.js} +2 -2
  7. package/dist/chunk-3A2M7AF3.js +4 -0
  8. package/dist/chunk-3EJRPTTB.js +2 -0
  9. package/dist/chunk-3SWWYJPB.js +6 -0
  10. package/dist/chunk-4M4FEWBL.js +7 -0
  11. package/dist/{chunk-QFCK6WV2.js → chunk-4Y6KUJDO.js} +2 -2
  12. package/dist/{chunk-MO65UK5V.js → chunk-55ZJ2FCW.js} +2 -2
  13. package/dist/chunk-6FLGPRBR.js +5 -0
  14. package/dist/chunk-6XRB6ATD.js +16 -0
  15. package/dist/{chunk-WIIZF5FP.js → chunk-7EQ4J66C.js} +2 -2
  16. package/dist/{chunk-Z5CTXSWT.js → chunk-7TGEXAN5.js} +2 -2
  17. package/dist/chunk-ABLXPGAZ.js +2 -0
  18. package/dist/{chunk-F4KR22Z2.js → chunk-BG7YU4DJ.js} +2 -2
  19. package/dist/chunk-D2R6IIEO.js +2 -0
  20. package/dist/{chunk-LT2CPEQ4.js → chunk-E47WMJ5F.js} +2 -2
  21. package/dist/chunk-EEA3R37V.js +11 -0
  22. package/dist/chunk-FAN2CVZT.js +2 -0
  23. package/dist/{chunk-PFMGJ4BR.js → chunk-FYO3FPFH.js} +2 -2
  24. package/dist/chunk-G47V5V3U.js +90 -0
  25. package/dist/chunk-GS55K4WJ.js +85 -0
  26. package/dist/{chunk-BNCTPTVX.js → chunk-HADDFTMU.js} +2 -2
  27. package/dist/chunk-HTJ5BOYP.js +10 -0
  28. package/dist/chunk-IARIBTCL.js +2 -0
  29. package/dist/{chunk-5YYMKE3G.js → chunk-IBWYWAWE.js} +2 -2
  30. package/dist/{chunk-URUVLDM7.js → chunk-ILQSK2KJ.js} +2 -2
  31. package/dist/{chunk-DRLWW74T.js → chunk-JVMXNDRU.js} +2 -2
  32. package/dist/{chunk-YDNCX5PF.js → chunk-K345WFTU.js} +2 -2
  33. package/dist/{chunk-FHSD5RKF.js → chunk-K6ULLR7M.js} +2 -2
  34. package/dist/chunk-KCC3GMCX.js +2 -0
  35. package/dist/{chunk-7LSCW7NF.js → chunk-KQWFRAQI.js} +2 -2
  36. package/dist/chunk-KRVRD6KZ.js +5 -0
  37. package/dist/{chunk-QFZE73XF.js → chunk-KYGNCIJ6.js} +8 -8
  38. package/dist/chunk-LHLXHH43.js +2 -0
  39. package/dist/{chunk-RT5PV5JQ.js → chunk-M7GBLQG4.js} +2 -2
  40. package/dist/{chunk-5LQ6CVX3.js → chunk-MEVK6R7N.js} +2 -2
  41. package/dist/{chunk-Q2ALKKSE.js → chunk-OCQN6WF4.js} +2 -2
  42. package/dist/{chunk-ERRUE5G4.js → chunk-PQTGBYXV.js} +2 -2
  43. package/dist/{chunk-ZHHMG4UC.js → chunk-QYWGC7JV.js} +2 -2
  44. package/dist/{chunk-TLRA5TR6.js → chunk-R373SHXM.js} +2 -2
  45. package/dist/{chunk-MXWC53GJ.js → chunk-RRWPHKZA.js} +2 -2
  46. package/dist/{chunk-C5BFS23M.js → chunk-RUAJV3TN.js} +2 -2
  47. package/dist/{chunk-MKFH7QJG.js → chunk-S57GUI2T.js} +2 -2
  48. package/dist/chunk-SVUVC5VS.js +2 -0
  49. package/dist/{chunk-MO32JMOD.js → chunk-T426XELO.js} +2 -2
  50. package/dist/{chunk-HUASU3AD.js → chunk-TBJDUS4E.js} +7 -7
  51. package/dist/chunk-TX7BHRMT.js +2 -0
  52. package/dist/{chunk-PK4U6NWP.js → chunk-TYRPQE6R.js} +2 -2
  53. package/dist/chunk-WPY46NIL.js +5 -0
  54. package/dist/{chunk-U5MVUPOO.js → chunk-X3Z4KZNX.js} +2 -2
  55. package/dist/{chunk-7X7FLQC5.js → chunk-ZNNCDAYX.js} +2 -2
  56. package/dist/cli.js +159 -148
  57. package/dist/{db-BZPa7dzJ.d.ts → db-DdlToIC-.d.ts} +1 -0
  58. package/dist/index.d.ts +12 -9
  59. package/dist/index.js +11 -11
  60. package/dist/queries/affected.d.ts +1 -1
  61. package/dist/queries/affected.js +1 -1
  62. package/dist/queries/bottlenecks.d.ts +1 -1
  63. package/dist/queries/bottlenecks.js +1 -1
  64. package/dist/queries/by-kind.d.ts +1 -1
  65. package/dist/queries/by-kind.js +1 -1
  66. package/dist/queries/call-graph.d.ts +1 -1
  67. package/dist/queries/call-graph.js +1 -1
  68. package/dist/queries/change-surface.d.ts +1 -1
  69. package/dist/queries/change-surface.js +1 -1
  70. package/dist/queries/code.d.ts +1 -1
  71. package/dist/queries/code.js +1 -1
  72. package/dist/queries/complexity-hotspots.d.ts +2 -1
  73. package/dist/queries/complexity-hotspots.js +1 -1
  74. package/dist/queries/complexity.d.ts +1 -1
  75. package/dist/queries/complexity.js +1 -1
  76. package/dist/queries/convergence.d.ts +1 -1
  77. package/dist/queries/convergence.js +1 -1
  78. package/dist/queries/coupling.d.ts +1 -1
  79. package/dist/queries/coupling.js +1 -1
  80. package/dist/queries/cycles.d.ts +1 -1
  81. package/dist/queries/cycles.js +1 -1
  82. package/dist/queries/dataflow.d.ts +1 -1
  83. package/dist/queries/dataflow.js +1 -1
  84. package/dist/queries/dead.d.ts +1 -1
  85. package/dist/queries/dead.js +1 -1
  86. package/dist/queries/deep-chains.d.ts +1 -1
  87. package/dist/queries/deep-chains.js +1 -1
  88. package/dist/queries/deps.d.ts +1 -1
  89. package/dist/queries/deps.js +1 -1
  90. package/dist/queries/diff-impact.d.ts +20 -2
  91. package/dist/queries/diff-impact.js +1 -1
  92. package/dist/queries/drift.d.ts +1 -1
  93. package/dist/queries/drift.js +1 -1
  94. package/dist/queries/extract-candidates.d.ts +2 -1
  95. package/dist/queries/extract-candidates.js +1 -1
  96. package/dist/queries/fan.d.ts +1 -1
  97. package/dist/queries/fan.js +1 -1
  98. package/dist/queries/files.d.ts +1 -1
  99. package/dist/queries/health-cache-control.d.ts +15 -0
  100. package/dist/queries/health-cache-control.js +2 -0
  101. package/dist/queries/health.d.ts +66 -2
  102. package/dist/queries/health.js +1 -1
  103. package/dist/queries/hierarchy.d.ts +1 -1
  104. package/dist/queries/hierarchy.js +1 -1
  105. package/dist/queries/hotspots.d.ts +1 -1
  106. package/dist/queries/hotspots.js +1 -1
  107. package/dist/queries/imports.d.ts +1 -1
  108. package/dist/queries/imports.js +1 -1
  109. package/dist/queries/index.d.ts +3 -3
  110. package/dist/queries/index.js +1 -1
  111. package/dist/queries/isolated.d.ts +1 -1
  112. package/dist/queries/isolated.js +1 -1
  113. package/dist/queries/members.d.ts +1 -1
  114. package/dist/queries/members.js +1 -1
  115. package/dist/queries/methods.d.ts +1 -1
  116. package/dist/queries/methods.js +1 -1
  117. package/dist/queries/outline.d.ts +1 -1
  118. package/dist/queries/outline.js +1 -1
  119. package/dist/queries/passthrough-candidates.d.ts +2 -1
  120. package/dist/queries/passthrough-candidates.js +1 -1
  121. package/dist/queries/redundant-reexports.d.ts +1 -1
  122. package/dist/queries/redundant-reexports.js +1 -1
  123. package/dist/queries/refs.d.ts +1 -1
  124. package/dist/queries/refs.js +1 -1
  125. package/dist/queries/similar-chains.d.ts +1 -1
  126. package/dist/queries/similar-chains.js +1 -1
  127. package/dist/queries/similar-files.d.ts +1 -1
  128. package/dist/queries/similar-files.js +1 -1
  129. package/dist/queries/similar-signatures.d.ts +1 -1
  130. package/dist/queries/similar-signatures.js +1 -1
  131. package/dist/queries/similar.d.ts +2 -1
  132. package/dist/queries/similar.js +1 -1
  133. package/dist/queries/slice.d.ts +1 -1
  134. package/dist/queries/slice.js +1 -1
  135. package/dist/queries/stale-abstractions.d.ts +4 -2
  136. package/dist/queries/stale-abstractions.js +1 -1
  137. package/dist/queries/stats.d.ts +1 -1
  138. package/dist/queries/surface.d.ts +1 -1
  139. package/dist/queries/surface.js +1 -1
  140. package/dist/queries/symbols.d.ts +1 -1
  141. package/dist/queries/symbols.js +1 -1
  142. package/dist/queries/system.d.ts +1 -1
  143. package/dist/queries/system.js +1 -1
  144. package/dist/queries/trace.d.ts +1 -1
  145. package/dist/queries/trace.js +1 -1
  146. package/dist/queries/wrapper-candidates.d.ts +2 -1
  147. package/dist/queries/wrapper-candidates.js +1 -1
  148. package/dist/reindex-worker.js +1 -1
  149. package/package.json +2 -2
  150. package/dist/chunk-2ZGHRI2A.js +0 -5
  151. package/dist/chunk-32R4VYYA.js +0 -2
  152. package/dist/chunk-3UB2DPLP.js +0 -2
  153. package/dist/chunk-4X7C236P.js +0 -84
  154. package/dist/chunk-A5UNS4DR.js +0 -4
  155. package/dist/chunk-FG6A6ZUP.js +0 -2
  156. package/dist/chunk-FVVEIGP3.js +0 -5
  157. package/dist/chunk-GBDZY73J.js +0 -2
  158. package/dist/chunk-IJWIYZO5.js +0 -2
  159. package/dist/chunk-K6H3XJQW.js +0 -7
  160. package/dist/chunk-KTCODJNQ.js +0 -5
  161. package/dist/chunk-M5QTG55L.js +0 -2
  162. package/dist/chunk-MTK3JAJT.js +0 -2
  163. package/dist/chunk-PBFMZKXE.js +0 -6
  164. package/dist/chunk-ROWAEEOD.js +0 -2
  165. package/dist/chunk-WHGCGENP.js +0 -16
  166. package/dist/chunk-WNMAH3P7.js +0 -2
  167. package/dist/chunk-XV3XUZ3X.js +0 -11
  168. package/dist/chunk-YU25IHJX.js +0 -90
  169. package/dist/chunk-ZFCQQ4B5.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{a as b,e as A}from"./chunk-TYRPQE6R.js";import{a as m,b as O,d as E}from"./chunk-7EQ4J66C.js";import{c as q}from"./chunk-WPY46NIL.js";import{b as F,c as L,f as D,i as M,m as v,o as N}from"./chunk-GS55K4WJ.js";import{C as P,E as T,f as p,g,h,n as R,t as C,u as I,w as x,x as k}from"./chunk-KYGNCIJ6.js";function V(i,e,o){let c=e.identifierResolution==="strict"?m:O;for(let t of e.paths){let l=g(t);if(!l&&!(e.includeVueSfc&&h(t))||i.isIgnored(t)||e.skipPath?.(t))continue;let u=D(i,t);for(let[n,s]of u)for(let f of c(i,t,n))o({sourceFile:t,name:n,target:f,occurrences:s.length,kind:"identifier"});if(e.includeCrossLanguageDispatchNames)for(let n of L(i,t))for(let s of m(i,t,n))o({sourceFile:t,name:n,target:s,occurrences:1,kind:"cross-language-dispatch"});if(e.includeRustAttributeNames&&l==="rust")for(let n of F(i,t))for(let s of c(i,t,n))o({sourceFile:t,name:n,target:s,occurrences:1,kind:"rust-attribute"})}}var G=class{constructor(e){this.db=e}db;scopedDefinitions(e){return T(this.db,e)}definitionsForFile(e){return P(this.db,e)}productionCallableDefinitions(e={}){let{scope:o,minLoc:c=1,maxLoc:t=Number.POSITIVE_INFINITY,excludeSymbol:l,excludeEntrySurfaces:u=!1,excludeTypesFiles:n=!1,requireFunctionLikeSymbol:s=!1,requireCallableSymbol:f=!1,excludeRustTraitImplMembers:K=!1,includeSuppressed:j=!1,sortByLocDesc:B=!1}=e,d=[];for(let r of this.scopedDefinitions(o)){let a=r.relativePath;if(this.db.isIgnored(a)||u&&A(this.db,a)||!H(r,{requireFunctionLikeSymbol:s,requireCallableSymbol:f})||l!==void 0&&r.symbol===l)continue;let S=y(r);S<c||S>t||n&&Y(a)||K&&x(r.symbol)||b(a)!=="test"&&(k(r.symbol)||!j&&p(this.db,a,r.startLine)||d.push(r))}return B?d.sort((r,a)=>y(a)-y(r)):d}calleeMap(e,o={}){return v(this.db,e,o)}crossFileCallerMap(e){return N(this.db,e)}sourceFallbackCallerFiles(e){return E(this.db,e)}fileDependencyGraph(e){return M(this.db,e)}fileKind(e){return b(e)}hasSuppressionComment(e){return p(this.db,e.relativePath,e.startLine)}sourceFiles(){return q(this.db)}scanSourceReferences(e,o){V(this.db,e,o)}callableSignature(e){return R(this.db,e.relativePath,e.startLine,e.endLine)}};function y(i){return i.endLine-i.startLine+1}function H(i,e){return e.requireCallableSymbol?C(i.symbol):e.requireFunctionLikeSymbol?I(i.symbol):i.isFunctionLike}function Y(i){return(i.split("/").pop()??"").includes("types")}export{G as a};
2
+ //# sourceMappingURL=chunk-SVUVC5VS.js.map
@@ -1,4 +1,4 @@
1
- import{a as P}from"./chunk-32R4VYYA.js";import{d as R,e as v,f as D,g as F,h as L}from"./chunk-PK4U6NWP.js";import{a as m,i as S}from"./chunk-4X7C236P.js";import{e as f}from"./chunk-2ZGHRI2A.js";import{B as h,H as c,o as d,r as p,s as g,t as b,u as y,v as _}from"./chunk-QFZE73XF.js";function Q(e,n={}){let{scope:r,minLoc:t=1,includeTests:s=!1,skipBarrels:a=!1,includeMembers:i=!1}=n,l=a?new Set(R(e)):new Set,o=w(e,l);k(e,o,l);let u=x(e,{scope:r,minLoc:t,includeTests:s,includeMembers:i});return H(e,u,o,{includeTests:s,inactiveBarrelPaths:l}),M(e,E(u,o))}function w(e,n){let r=e.all(`SELECT
1
+ import{a as P}from"./chunk-SVUVC5VS.js";import{d as R,e as v,f as D,g as F,h as L}from"./chunk-TYRPQE6R.js";import{a as m,k as S}from"./chunk-GS55K4WJ.js";import{f}from"./chunk-6FLGPRBR.js";import{D as h,J as c,q as d,t as p,u as g,v as b,w as y,x as _}from"./chunk-KYGNCIJ6.js";function Q(e,n={}){let{scope:r,minLoc:t=1,includeTests:s=!1,skipBarrels:a=!1,includeMembers:i=!1}=n,l=a?new Set(R(e)):new Set,o=w(e,l);k(e,o,l);let u=x(e,{scope:r,minLoc:t,includeTests:s,includeMembers:i});return H(e,u,o,{includeTests:s,inactiveBarrelPaths:l}),M(e,E(u,o))}function w(e,n){let r=e.all(`SELECT
2
2
  m.symbol_id,
3
3
  d.relative_path,
4
4
  COUNT(*) AS ref_count
@@ -9,4 +9,4 @@ import{a as P}from"./chunk-32R4VYYA.js";import{d as R,e as v,f as D,g as F,h as
9
9
  ${e.pathExclusionsFor("d")}
10
10
  GROUP BY m.symbol_id, d.relative_path`),t=new Map;for(let s of r){if(e.isIgnored(s.relative_path)||n.has(s.relative_path))continue;let a=t.get(s.symbol_id);a||(a=new Map,t.set(s.symbol_id,a)),a.set(s.relative_path,s.ref_count)}return t}function x(e,n){let r=U(e);return h(e,{scope:n.scope}).filter(t=>!e.isIgnored(t.relativePath)).filter(t=>!b(t.symbol)).filter(t=>T(t.symbol)).filter(t=>t.isFunctionLike||!t.enclosingSymbol||!T(t.enclosingSymbol)).filter(t=>n.includeTests||C(t.relativePath)).filter(t=>n.includeTests||!r(t.relativePath,t.startLine,t.symbol,t.parentTypeName)).filter(t=>!y(t.symbol)).filter(t=>!_(t.symbol)).filter(t=>n.includeMembers||j(t)).filter(t=>t.endLine-t.startLine+1>=n.minLoc)}function E(e,n){return e.map(r=>I(r,n)).filter(r=>r.cross_file_refs===0).sort((r,t)=>t.loc-r.loc||r.relative_path.localeCompare(t.relative_path)||r.start_line-t.start_line)}function I(e,n){let r=n.get(e.symbolId)??new Map,t=r.get(e.relativePath)??0,s=0;for(let[a,i]of r)a!==e.relativePath&&(s+=i);return{relative_path:e.relativePath,start_line:e.startLine,end_line:e.endLine,loc:e.endLine-e.startLine+1,symbol:e.symbol,same_file_refs:t,cross_file_refs:s}}function M(e,n){let r=[],t=0,s=0,a=0;for(let i of n){if(e.isIgnored(i.relative_path)||v(e,i.relative_path)||D(e,i.symbol,i.relative_path))continue;let l=i.same_file_refs===0?"dead-code":"file-internal";l==="dead-code"?t++:s++,a+=i.loc,r.push({relativePath:i.relative_path,startLine:i.start_line,endLine:i.end_line,loc:i.loc,symbol:i.symbol,shortName:d(i.symbol),sameFileRefs:i.same_file_refs,kind:l})}return{symbols:r,totalCount:r.length,deadCodeCount:t,fileInternalCount:s,totalLoc:a}}function k(e,n,r){let t=new P(e),s=new Set(t.sourceFiles());for(let a of N(e))s.add(a);t.scanSourceReferences({paths:s,includeVueSfc:!0,includeCrossLanguageDispatchNames:!0,includeRustAttributeNames:!0,identifierResolution:"permissive",skipPath:a=>r.has(a)},a=>{O(e,a)||B(n,a.target.symbolId,a.sourceFile,A(a))})}function N(e){let n=e.all(`SELECT relative_path FROM documents
11
11
  WHERE 1 = 1 ${e.pathExclusionsFor("documents")}`);return new Set(n.map(r=>r.relative_path))}function O(e,n){return n.kind==="cross-language-dispatch"&&n.target.relativePath===n.sourceFile?!0:n.kind==="identifier"&&$(e,n)}function A(e){return e.kind==="identifier"&&e.target.relativePath===e.sourceFile?Math.max(0,e.occurrences-1):e.occurrences}function B(e,n,r,t){if(t<=0)return;let s=e.get(n);s||(s=new Map,e.set(n,s)),s.set(r,(s.get(r)??0)+t)}function $(e,n){return n.occurrences>1?!1:f(e,n.sourceFile).some(r=>r.used||r.sourcePath!==n.target.relativePath?!1:r.importedName===n.name||r.localName===n.name)}function H(e,n,r,t){for(let s of n){let a=S(e,s);if(a.length===0)continue;let i=r.get(s.symbolId);i||(i=new Map,r.set(s.symbolId,i));for(let l of a){let o=l.file;o===s.relativePath||e.isIgnored(o)||t.inactiveBarrelPaths.has(o)||!t.includeTests&&!C(o)||i.set(o,Math.max(1,i.get(o)??0))}}}function U(e){let n=new Map,r=t=>{let s=n.get(t);if(s)return s;let a=m(e,t);return s={ranges:a.map(i=>({startLine:i.startLine,endLine:i.endLine})),containers:new Set(a.map(i=>i.containerName).filter(i=>!!i))},n.set(t,s),s};return(t,s,a,i)=>{let l=r(t);for(let o of l.ranges)if(s>=o.startLine&&s<=o.endLine)return!0;if(i&&l.containers.has(i))return!0;for(let o of c(a))if(l.containers.has(o))return!0;return!1}}function C(e){return[...new Set([...F,...L])].every(r=>!W(e,r))}function W(e,n){return new RegExp(`^${n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".")}$`).test(e)}function T(e){return g(e)||e.endsWith("().")||e.endsWith(".")}function j(e){return p(e.symbol)||c(e.symbol).length===0}export{Q as a};
12
- //# sourceMappingURL=chunk-MO32JMOD.js.map
12
+ //# sourceMappingURL=chunk-T426XELO.js.map
@@ -1,4 +1,4 @@
1
- import se from"better-sqlite3";import{createRequire as ae}from"module";import{existsSync as ue,mkdtempSync as pn,readFileSync as v,rmSync as hn,statSync as bn,writeFileSync as Sn}from"fs";import{cpus as vn,tmpdir as Rn}from"os";import{dirname as F,extname as ce,join as O,relative as le,resolve as ge}from"path";import{pathToFileURL as fe}from"url";import{Worker as wn}from"worker_threads";import H from"better-sqlite3";import{execFileSync as G}from"child_process";import{existsSync as K,readdirSync as B,readFileSync as J}from"fs";import{extname as m,join as I}from"path";import _ from"ignore";import{readFileSync as A,existsSync as h}from"fs";import{dirname as b,isAbsolute as R,join as S,relative as P,resolve as j}from"path";function V(e){let n=_(),r=!1,t=W(e);for(let o of t)try{let i=A(o,"utf-8");n.add(i),r=!0}catch{}return r||n.add($),{isIgnored:o=>k(n,e,o),filter:o=>o.filter(i=>!k(n,e,i))}}function W(e){let n=[],r=S(e,".gitignore");h(r)&&n.push(r);let t=b(e),o=0;for(;t!==b(t)&&o<5;){let i=S(t,".gitignore");if(h(i)&&n.push(i),h(S(t,".git")))break;t=b(t),o++}return n}var $=`
1
+ import ue from"better-sqlite3";import{createRequire as ce}from"module";import{existsSync as le,mkdtempSync as Sn,readFileSync as v,rmSync as yn,statSync as vn,writeFileSync as Rn}from"fs";import{cpus as Vn,tmpdir as xn}from"os";import{dirname as F,extname as ge,join as O,relative as fe,resolve as de}from"path";import{pathToFileURL as me}from"url";import{Worker as In}from"worker_threads";import K from"better-sqlite3";import{execFileSync as B}from"child_process";import{existsSync as J,readdirSync as z,readFileSync as X}from"fs";import{extname as m,join as E}from"path";import M from"ignore";import{readFileSync as A,existsSync as h}from"fs";import{dirname as b,isAbsolute as R,join as S,relative as P,resolve as j}from"path";function V(e){let n=M(),r=!1,t=W(e);for(let o of t)try{let i=A(o,"utf-8");n.add(i),r=!0}catch{}return r||n.add($),{isIgnored:o=>k(n,e,o),filter:o=>o.filter(i=>!k(n,e,i))}}function W(e){let n=[],r=S(e,".gitignore");h(r)&&n.push(r);let t=b(e),o=0;for(;t!==b(t)&&o<5;){let i=S(t,".gitignore");if(h(i)&&n.push(i),h(S(t,".git")))break;t=b(t),o++}return n}var $=`
2
2
  # Dependencies
3
3
  node_modules/
4
4
  vendor/
@@ -55,10 +55,10 @@ Thumbs.db
55
55
 
56
56
  # Type definitions (often noise in queries)
57
57
  *.d.ts
58
- `;function k(e,n,r){let t=U(n,r);if(!t)return!1;try{return e.ignores(t)}catch{return!1}}function U(e,n){if(!n||n===".")return null;if(!R(n)&&!n.startsWith(".."))return n.replaceAll("\\","/");let r=R(n)?n:j(e,n),t=P(e,r).replaceAll("\\","/");return!t||t==="."||t.startsWith("..")?null:t}import{readdirSync as Ge}from"fs";import{extname as Be,join as Je}from"path";function x(e){let n=new WeakMap,r=t=>{let o=n.get(t);return o||(o=new Map,n.set(t,o)),o};return{get(t,o,i){let s=r(t);if(s.has(o))return s.get(o);let a=i();return s.set(o,a),a},invalidate(t,o){n.get(t)?.delete(o)},invalidateAll(t){n.delete(t)},size(t){return n.get(t)?.size??0}}}var w=[".vue"],T=new Set(["node_modules",".git","target","dist","build",".next",".nuxt",".cache",".turbo","out","coverage",".scipquery-cache","__pycache__",".venv","venv",".idea",".vscode"]);var qe=x("source-files");function rn(e){let n=new Set((e.extensions??w).map(i=>i.toLowerCase()));if(n.size===0)return{scanned:0,inserted:0,existing:0};if(!K(e.dbPath))throw new Error(`SCIP SQLite database not found at ${e.dbPath}`);let r=V(e.projectRoot),t=z(e.projectRoot,n).filter(i=>!r.isIgnored(i)),o=new H(e.dbPath);try{let i=X(o,t),s=o.prepare(`INSERT OR IGNORE INTO documents (language, relative_path, position_encoding, text)
59
- VALUES (?, ?, NULL, ?)`),u=o.transaction(l=>{let d=0;for(let g of l){if(i.has(g))continue;let f=J(I(e.projectRoot,g),"utf-8"),M=s.run(Y(g),g,f);d+=Number(M.changes)}return d})(t),c={scanned:t.length,inserted:u,existing:t.length-u};return e.onStatus?.(`Augmented SQLite documents with ${u} auxiliary source file${u===1?"":"s"} (${c.existing} already present).`),c}finally{o.close()}}function z(e,n){let r=q(e,n);if(r)return r;let t=[],o=i=>{let s=i?I(e,i):e,a;try{a=B(s,{withFileTypes:!0})}catch{return}for(let u of a){if(T.has(u.name))continue;let c=i?`${i}/${u.name}`:u.name;if(u.isDirectory()){o(c);continue}n.has(m(u.name).toLowerCase())&&t.push(c)}};return o(""),t.sort()}function q(e,n){try{return G("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:26214400,stdio:["ignore","pipe","ignore"]}).split(`
60
- `).filter(t=>t&&n.has(m(t).toLowerCase())).sort()}catch{return null}}function X(e,n){let r=new Set,t=500;for(let o=0;o<n.length;o+=t){let i=n.slice(o,o+t),s=e.prepare(`SELECT relative_path FROM documents WHERE relative_path IN (${i.map(()=>"?").join(",")})`).all(...i);for(let a of s)r.add(a.relative_path)}return r}function Y(e){return m(e).toLowerCase()===".vue"?"vue":m(e).replace(/^\./,"").toLowerCase()||"source"}import{execFileSync as Q}from"child_process";import{createHash as Z}from"crypto";import{readdirSync as ee,readFileSync as ne}from"fs";import{join as C}from"path";function te(e){return(re(e)??oe(e)).filter(n=>n&&!E(n)).sort()}function ln(e){return te(e).map(n=>{let r=C(e,n);try{let t=ne(r);return{path:n,size:t.byteLength,hash:Z("sha256").update(t).digest("hex")}}catch{return{path:n,size:-1,hash:"unreadable"}}})}function re(e){try{return Q("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:50*1024*1024,stdio:["ignore","pipe","ignore"]}).split(`
61
- `).filter(Boolean)}catch{return null}}function oe(e){let n=[],r=[""];for(;r.length>0;){let t=r.pop(),o=t?C(e,t):e,i;try{i=ee(o,{withFileTypes:!0})}catch{continue}for(let s of i){let a=t?`${t}/${s.name}`:s.name;if(s.isDirectory()){E(a)||r.push(a);continue}n.push(a)}}return n}function E(e){return e.split("/").some(r=>ie.has(r))||e.endsWith(".db")||e.endsWith(".db-wal")||e.endsWith(".db-shm")||e.endsWith(".scip")}var ie=new Set([".git","node_modules",".scipquery-cache",".stryker-tmp","dist","build","coverage",".next",".nuxt","target"]);function Tn(e){let n=ge(e.projectRoot,e.tsconfig),r=ve(e.projectRoot,n),t=new se(e.dbPath,{readonly:!0});try{let o=Ne();return de({projectRoot:e.projectRoot,vueFiles:e.vueFiles??[],tasks:e.tasks,context:r,symbolLookup:we(t,e.projectRoot,o),vueSymbolLookup:Ce(t,e.projectRoot),sourceCache:o})}finally{t.close()}}function de(e){let n=[],r=0,t=e.tasks??e.vueFiles.map(o=>({fileName:o,startOffset:0,endOffset:Number.POSITIVE_INFINITY,countFileSkip:!0}));for(let o of t){let i=me(e,o);n.push(...i.occurrences),r+=i.skippedReferences}return{occurrences:n,skippedReferences:r}}function me(e,n){let r=e.context.language.scripts.get(n.fileName),t=r?.generated?.languagePlugin.typescript?.getServiceScript(r.generated.root)?.code;if(!r||!t)return{occurrences:[],skippedReferences:n.countFileSkip?1:0};let o=e.sourceCache(n.fileName);if(!o)return{occurrences:[],skippedReferences:n.countFileSkip?1:0};let i=e.context.language.maps.get(t,r),s=p(e.projectRoot,n.fileName),a=[...Fe(o.text)],u={tokens:a.filter(c=>c.start>=n.startOffset&&c.start<n.endOffset),tokenByStart:new Map(a.map(c=>[c.start,c])),tokenTextCounts:be(a),processedStarts:new Set};return pe({...e,fileName:n.fileName,sourceInfo:o,sourceFile:s,map:i,tokenContext:u})}function pe(e){let n=[],r=0;for(let t of e.tokenContext.tokens){if(e.tokenContext.processedStarts.has(t.start))continue;let o=Oe(e.map,t.start);if(o===null)continue;let s=(e.context.languageService.getDefinitionAtPosition(e.fileName,o+1)??[]).find(u=>!Le(e.projectRoot,u.fileName));if(!s){r++;continue}let a=Ee(s,e.symbolLookup,e.vueSymbolLookup,e.context,e.projectRoot);if(a===null){r++;continue}L(n,e.sourceInfo,e.sourceFile,t,a),e.tokenContext.processedStarts.add(t.start),he(n,e,t,o,a)}return{occurrences:n,skippedReferences:r}}function he(e,n,r,t,o){if(!((n.tokenContext.tokenTextCounts.get(r.text)??0)<=1))for(let i of Se(n.context.languageService,n.fileName,t+1,n.map,r,n.tokenContext.tokenByStart)){if(n.tokenContext.processedStarts.has(i))continue;let s=n.tokenContext.tokenByStart.get(i);s&&(L(e,n.sourceInfo,n.sourceFile,s,o),n.tokenContext.processedStarts.add(i))}}function L(e,n,r,t,o){let i=N(n,t.start);e.push({sourceFile:r,sourceLine:i.line,sourceStartChar:i.character,sourceEndChar:i.character+t.text.length,symbolId:o})}function be(e){let n=new Map;for(let r of e)n.set(r.text,(n.get(r.text)??0)+1);return n}function Se(e,n,r,t,o,i){let s=e.getDocumentHighlights?.(n,r,[n])??[],a=[];for(let u of s)if(u.fileName===n)for(let c of u.highlightSpans){let l=ye(t,c.textSpan.start,i,o.text);l!==null&&a.push(l)}return a}function ye(e,n,r,t){let o=r.get(n);if(o?.text===t)return o.start;let i=D(e,n);if(i===null)return null;let s=r.get(i);return s?.text===t?s.start:null}function ve(e,n){let{vueCore:r,ts:t,volarTs:o}=Re(e),{parsed:i,vueOptions:s}=ke(r,t,n),a=F(n),u=r.createVueLanguagePlugin(t,i.options,s,f=>f),c=Ve(r,t,u),l=xe(a,i),{languageServiceHost:d}=o.createLanguageServiceHost(t,t.sys,c,f=>f,l),g=t.createLanguageService(d);return{ts:t,language:c,languageService:g,fileNames:i.fileNames,configDir:a}}function Re(e){let n=ae(fe(O(e,"package.json")).href);return{vueCore:y(n,"@vue/language-core",e),ts:y(n,"typescript",e),volarTs:y(n,"@volar/typescript",e)}}function ke(e,n,r){let t=n.readConfigFile(r,n.sys.readFile);if(t.error||!t.config)throw new Error(`Failed to read ${r}`);let i=e.createParsedCommandLine(n,n.sys,r).vueOptions;return typeof e.createGlobalTypesWriter=="function"&&(i.globalTypesPath=e.createGlobalTypesWriter(i,n.sys.writeFile)),{parsed:n.parseJsonConfigFileContent(t.config,n.sys,F(r),void 0,r,void 0,e.getAllExtensions(i).map(s=>({extension:s.slice(1),isMixedContent:!0,scriptKind:n.ScriptKind.Deferred}))),vueOptions:i}}function Ve(e,n,r){let t={},o=e.createLanguage([r],new Map,i=>{if(!ue(i))return;let s=v(i,"utf-8");t.current?.scripts.set(i,n.ScriptSnapshot.fromString(s),r.getLanguageId(i)??De(i))});return t.current=o,o}function xe(e,n){return{getCurrentDirectory:()=>e,getCompilationSettings:()=>n.options,getScriptFileNames:()=>n.fileNames,getProjectReferences:()=>n.projectReferences,getProjectVersion:()=>"0"}}function y(e,n,r){try{return e(n)}catch(t){throw(typeof t=="object"&&t!==null&&"code"in t?t.code:null)==="MODULE_NOT_FOUND"?new Error(`Vue augmentation requires ${n} to be installed in ${r}. Install Vue/Volar dependencies for that project, then rerun augment-vue.`,{cause:t}):t}}function we(e,n,r){let t=Te(e);return o=>{let i=p(n,o.fileName),s=r(o.fileName);if(!s)return null;let a=N(s,o.textSpan.start),u=t.get(i);if(!u)return null;let c=u.containingByLine.get(a.line);return c!==void 0?c:Ie(u.starts,a.line,2)}}function Te(e){let n=e.prepare(`
58
+ `;function k(e,n,r){let t=U(n,r);if(!t)return!1;try{return e.ignores(t)}catch{return!1}}function U(e,n){if(!n||n===".")return null;if(!R(n)&&!n.startsWith(".."))return n.replaceAll("\\","/");let r=R(n)?n:j(e,n),t=P(e,r).replaceAll("\\","/");return!t||t==="."||t.startsWith("..")?null:t}import{readdirSync as Be}from"fs";import{extname as ze,join as Xe}from"path";function x(e){let n=new WeakMap,r=t=>{let o=n.get(t);return o||(o=new Map,n.set(t,o)),o};return{get(t,o,i){let s=r(t);if(s.has(o))return s.get(o);let a=i();return s.set(o,a),a},invalidate(t,o){n.get(t)?.delete(o)},invalidateAll(t){n.delete(t)},size(t){return n.get(t)?.size??0}}}var H=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".rs",".py",".pyi",".java",".kt",".kts",".scala",".sc",".rb",".c",".h",".cc",".cpp",".cxx",".hpp",".hh",".hxx",".cs",".vb",".php",".dart"],w=[".vue"],G=new Set(H.map(e=>e.toLowerCase())),qe=[...G].sort().join(","),T=new Set(["node_modules",".git","target","dist","build",".next",".nuxt",".cache",".turbo","out","coverage",".scipquery-cache","__pycache__",".venv","venv",".idea",".vscode"]);var Qe=x("source-files");function an(e){let n=new Set((e.extensions??w).map(i=>i.toLowerCase()));if(n.size===0)return{scanned:0,inserted:0,existing:0};if(!J(e.dbPath))throw new Error(`SCIP SQLite database not found at ${e.dbPath}`);let r=V(e.projectRoot),t=Y(e.projectRoot,n).filter(i=>!r.isIgnored(i)),o=new K(e.dbPath);try{let i=Q(o,t),s=o.prepare(`INSERT OR IGNORE INTO documents (language, relative_path, position_encoding, text)
59
+ VALUES (?, ?, NULL, ?)`),u=o.transaction(l=>{let d=0;for(let g of l){if(i.has(g))continue;let f=X(E(e.projectRoot,g),"utf-8"),_=s.run(Z(g),g,f);d+=Number(_.changes)}return d})(t),c={scanned:t.length,inserted:u,existing:t.length-u};return e.onStatus?.(`Augmented SQLite documents with ${u} auxiliary source file${u===1?"":"s"} (${c.existing} already present).`),c}finally{o.close()}}function Y(e,n){let r=q(e,n);if(r)return r;let t=[],o=i=>{let s=i?E(e,i):e,a;try{a=z(s,{withFileTypes:!0})}catch{return}for(let u of a){if(T.has(u.name))continue;let c=i?`${i}/${u.name}`:u.name;if(u.isDirectory()){o(c);continue}n.has(m(u.name).toLowerCase())&&t.push(c)}};return o(""),t.sort()}function q(e,n){try{return B("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:26214400,stdio:["ignore","pipe","ignore"]}).split(`
60
+ `).filter(t=>t&&n.has(m(t).toLowerCase())).sort()}catch{return null}}function Q(e,n){let r=new Set,t=500;for(let o=0;o<n.length;o+=t){let i=n.slice(o,o+t),s=e.prepare(`SELECT relative_path FROM documents WHERE relative_path IN (${i.map(()=>"?").join(",")})`).all(...i);for(let a of s)r.add(a.relative_path)}return r}function Z(e){return m(e).toLowerCase()===".vue"?"vue":m(e).replace(/^\./,"").toLowerCase()||"source"}import{execFileSync as ee}from"child_process";import{createHash as ne}from"crypto";import{readdirSync as te,readFileSync as re}from"fs";import{join as I}from"path";function oe(e){return(ie(e)??se(e)).filter(n=>n&&!C(n)).sort()}function dn(e){return oe(e).map(n=>{let r=I(e,n);try{let t=re(r);return{path:n,size:t.byteLength,hash:ne("sha256").update(t).digest("hex")}}catch{return{path:n,size:-1,hash:"unreadable"}}})}function ie(e){try{return ee("git",["-C",e,"ls-files","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:50*1024*1024,stdio:["ignore","pipe","ignore"]}).split(`
61
+ `).filter(Boolean)}catch{return null}}function se(e){let n=[],r=[""];for(;r.length>0;){let t=r.pop(),o=t?I(e,t):e,i;try{i=te(o,{withFileTypes:!0})}catch{continue}for(let s of i){let a=t?`${t}/${s.name}`:s.name;if(s.isDirectory()){C(a)||r.push(a);continue}n.push(a)}}return n}function C(e){return e.split("/").some(r=>ae.has(r))||e.endsWith(".db")||e.endsWith(".db-wal")||e.endsWith(".db-shm")||e.endsWith(".scip")}var ae=new Set([".git","node_modules",".scipquery-cache",".stryker-tmp","dist","build","coverage",".next",".nuxt","target"]);function Cn(e){let n=de(e.projectRoot,e.tsconfig),r=ke(e.projectRoot,n),t=new ue(e.dbPath,{readonly:!0});try{let o=Me();return pe({projectRoot:e.projectRoot,vueFiles:e.vueFiles??[],tasks:e.tasks,context:r,symbolLookup:Ee(t,e.projectRoot,o),vueSymbolLookup:Fe(t,e.projectRoot),sourceCache:o})}finally{t.close()}}function pe(e){let n=[],r=0,t=e.tasks??e.vueFiles.map(o=>({fileName:o,startOffset:0,endOffset:Number.POSITIVE_INFINITY,countFileSkip:!0}));for(let o of t){let i=he(e,o);n.push(...i.occurrences),r+=i.skippedReferences}return{occurrences:n,skippedReferences:r}}function he(e,n){let r=e.context.language.scripts.get(n.fileName),t=r?.generated?.languagePlugin.typescript?.getServiceScript(r.generated.root)?.code;if(!r||!t)return{occurrences:[],skippedReferences:n.countFileSkip?1:0};let o=e.sourceCache(n.fileName);if(!o)return{occurrences:[],skippedReferences:n.countFileSkip?1:0};let i=e.context.language.maps.get(t,r),s=p(e.projectRoot,n.fileName),a=[...Le(o.text)],u={tokens:a.filter(c=>c.start>=n.startOffset&&c.start<n.endOffset),tokenByStart:new Map(a.map(c=>[c.start,c])),tokenTextCounts:ye(a),processedStarts:new Set};return be({...e,fileName:n.fileName,sourceInfo:o,sourceFile:s,map:i,tokenContext:u})}function be(e){let n=[],r=0;for(let t of e.tokenContext.tokens){if(e.tokenContext.processedStarts.has(t.start))continue;let o=De(e.map,t.start);if(o===null)continue;let s=(e.context.languageService.getDefinitionAtPosition(e.fileName,o+1)??[]).find(u=>!Ne(e.projectRoot,u.fileName));if(!s){r++;continue}let a=Oe(s,e.symbolLookup,e.vueSymbolLookup,e.context,e.projectRoot);if(a===null){r++;continue}L(n,e.sourceInfo,e.sourceFile,t,a),e.tokenContext.processedStarts.add(t.start),Se(n,e,t,o,a)}return{occurrences:n,skippedReferences:r}}function Se(e,n,r,t,o){if(!((n.tokenContext.tokenTextCounts.get(r.text)??0)<=1))for(let i of ve(n.context.languageService,n.fileName,t+1,n.map,r,n.tokenContext.tokenByStart)){if(n.tokenContext.processedStarts.has(i))continue;let s=n.tokenContext.tokenByStart.get(i);s&&(L(e,n.sourceInfo,n.sourceFile,s,o),n.tokenContext.processedStarts.add(i))}}function L(e,n,r,t,o){let i=N(n,t.start);e.push({sourceFile:r,sourceLine:i.line,sourceStartChar:i.character,sourceEndChar:i.character+t.text.length,symbolId:o})}function ye(e){let n=new Map;for(let r of e)n.set(r.text,(n.get(r.text)??0)+1);return n}function ve(e,n,r,t,o,i){let s=e.getDocumentHighlights?.(n,r,[n])??[],a=[];for(let u of s)if(u.fileName===n)for(let c of u.highlightSpans){let l=Re(t,c.textSpan.start,i,o.text);l!==null&&a.push(l)}return a}function Re(e,n,r,t){let o=r.get(n);if(o?.text===t)return o.start;let i=D(e,n);if(i===null)return null;let s=r.get(i);return s?.text===t?s.start:null}function ke(e,n){let{vueCore:r,ts:t,volarTs:o}=Ve(e),{parsed:i,vueOptions:s}=xe(r,t,n),a=F(n),u=r.createVueLanguagePlugin(t,i.options,s,f=>f),c=we(r,t,u),l=Te(a,i),{languageServiceHost:d}=o.createLanguageServiceHost(t,t.sys,c,f=>f,l),g=t.createLanguageService(d);return{ts:t,language:c,languageService:g,fileNames:i.fileNames,configDir:a}}function Ve(e){let n=ce(me(O(e,"package.json")).href);return{vueCore:y(n,"@vue/language-core",e),ts:y(n,"typescript",e),volarTs:y(n,"@volar/typescript",e)}}function xe(e,n,r){let t=n.readConfigFile(r,n.sys.readFile);if(t.error||!t.config)throw new Error(`Failed to read ${r}`);let i=e.createParsedCommandLine(n,n.sys,r).vueOptions;return typeof e.createGlobalTypesWriter=="function"&&(i.globalTypesPath=e.createGlobalTypesWriter(i,n.sys.writeFile)),{parsed:n.parseJsonConfigFileContent(t.config,n.sys,F(r),void 0,r,void 0,e.getAllExtensions(i).map(s=>({extension:s.slice(1),isMixedContent:!0,scriptKind:n.ScriptKind.Deferred}))),vueOptions:i}}function we(e,n,r){let t={},o=e.createLanguage([r],new Map,i=>{if(!le(i))return;let s=v(i,"utf-8");t.current?.scripts.set(i,n.ScriptSnapshot.fromString(s),r.getLanguageId(i)??_e(i))});return t.current=o,o}function Te(e,n){return{getCurrentDirectory:()=>e,getCompilationSettings:()=>n.options,getScriptFileNames:()=>n.fileNames,getProjectReferences:()=>n.projectReferences,getProjectVersion:()=>"0"}}function y(e,n,r){try{return e(n)}catch(t){throw(typeof t=="object"&&t!==null&&"code"in t?t.code:null)==="MODULE_NOT_FOUND"?new Error(`Vue augmentation requires ${n} to be installed in ${r}. Install Vue/Volar dependencies for that project, then rerun augment-vue.`,{cause:t}):t}}function Ee(e,n,r){let t=Ie(e);return o=>{let i=p(n,o.fileName),s=r(o.fileName);if(!s)return null;let a=N(s,o.textSpan.start),u=t.get(i);if(!u)return null;let c=u.containingByLine.get(a.line);return c!==void 0?c:Ce(u.starts,a.line,2)}}function Ie(e){let n=e.prepare(`
62
62
  SELECT
63
63
  d.relative_path AS relativePath,
64
64
  der.start_line AS startLine,
@@ -67,5 +67,5 @@ Thumbs.db
67
67
  FROM defn_enclosing_ranges der
68
68
  JOIN documents d ON d.id = der.document_id
69
69
  ORDER BY d.relative_path, (der.end_line - der.start_line) DESC
70
- `).all(),r=new Map;for(let t of n){let o=r.get(t.relativePath);o||(o={containingByLine:new Map,starts:[]},r.set(t.relativePath,o)),o.starts.push({line:t.startLine,symbolId:t.symbolId});for(let i=t.startLine;i<=t.endLine;i++)o.containingByLine.set(i,t.symbolId)}for(let t of r.values())t.starts.sort((o,i)=>o.line-i.line);return r}function Ie(e,n,r){let t=0,o=e.length-1;for(;t<=o;){let s=Math.floor((t+o)/2);e[s].line<n?t=s+1:o=s-1}let i=null;for(let s of[o,t]){let a=e[s];if(!a)continue;let u=Math.abs(a.line-n);u>r||(!i||u<i.distance)&&(i={distance:u,symbolId:a.symbolId})}return i?.symbolId??null}function Ce(e,n){let r=_e(n),t=e.prepare("SELECT id FROM global_symbols WHERE symbol = ?"),o=new Map;return{get(i){if(o.has(i))return o.get(i)??null;let s=p(n,i),a=Ae(r.name,r.version,s),c=t.get(a)?.id??null;return o.set(i,c),c}}}function Ee(e,n,r,t,o){if(e.fileName.endsWith(".vue")){let i=t.language.scripts.get(e.fileName),s=i?.generated?.languagePlugin.typescript?.getServiceScript(i.generated.root)?.code;if(i&&s){let a=t.language.maps.get(s,i);if(D(a,e.textSpan.start)!==null)return r.get(e.fileName)}return e.fileName.startsWith(o)?r.get(e.fileName):null}return n(e)}function*Fe(e){let n=/\b[A-Za-z_$][A-Za-z0-9_$]*\b/g,r=new Set(["script","setup","template","style","lang","scoped","true","false","null","undefined","const","let","var","import","from","export","return","if","else","for","while","function","class","type","interface","as","await","async"]),t;for(;t=n.exec(e);){let o=t[0];r.has(o)||(yield{text:o,start:t.index,end:t.index+o.length})}}function Oe(e,n){for(let[r]of e.toGeneratedLocation(n,t=>!!t.navigation))return r;return null}function D(e,n){let r=e;for(let[t]of r.toSourceLocation(n,o=>!!o.navigation))return t;return null}function N(e,n){let r=0,t=e.lineStarts.length-1;for(;r<=t;){let i=Math.floor((r+t)/2);e.lineStarts[i]<=n?r=i+1:t=i-1}let o=Math.max(0,t);return{line:o,character:n-e.lineStarts[o]}}function Le(e,n){return p(e,n).startsWith("node_modules/")}function p(e,n){return le(e,n).replaceAll("\\","/")}function De(e){switch(ce(e)){case".vue":return"vue";case".tsx":return"typescriptreact";case".ts":case".mts":case".cts":return"typescript";case".jsx":return"javascriptreact";case".js":case".mjs":case".cjs":return"javascript";case".json":return"json";default:return"typescript"}}function Ne(){let e=new Map;return n=>{if(e.has(n))return e.get(n)??null;try{let r=v(n,"utf-8"),t={text:r,lineStarts:Me(r)};return e.set(n,t),t}catch{return e.set(n,null),null}}}function Me(e){let n=[0];for(let r=0;r<e.length;r++)e.charCodeAt(r)===10&&n.push(r+1);return n}function _e(e){try{let n=JSON.parse(v(O(e,"package.json"),"utf-8"));return{name:n.name??"workspace",version:n.version??"0.0.0"}}catch{return{name:"workspace",version:"0.0.0"}}}function Ae(e,n,r){let t=r.split("/").map(o=>`\`${o.replaceAll("`","")}\``).join("/");return`scip-vue npm ${e} ${n} ${t}/default.`}export{rn as a,ln as b,Tn as c};
71
- //# sourceMappingURL=chunk-HUASU3AD.js.map
70
+ `).all(),r=new Map;for(let t of n){let o=r.get(t.relativePath);o||(o={containingByLine:new Map,starts:[]},r.set(t.relativePath,o)),o.starts.push({line:t.startLine,symbolId:t.symbolId});for(let i=t.startLine;i<=t.endLine;i++)o.containingByLine.set(i,t.symbolId)}for(let t of r.values())t.starts.sort((o,i)=>o.line-i.line);return r}function Ce(e,n,r){let t=0,o=e.length-1;for(;t<=o;){let s=Math.floor((t+o)/2);e[s].line<n?t=s+1:o=s-1}let i=null;for(let s of[o,t]){let a=e[s];if(!a)continue;let u=Math.abs(a.line-n);u>r||(!i||u<i.distance)&&(i={distance:u,symbolId:a.symbolId})}return i?.symbolId??null}function Fe(e,n){let r=Pe(n),t=e.prepare("SELECT id FROM global_symbols WHERE symbol = ?"),o=new Map;return{get(i){if(o.has(i))return o.get(i)??null;let s=p(n,i),a=je(r.name,r.version,s),c=t.get(a)?.id??null;return o.set(i,c),c}}}function Oe(e,n,r,t,o){if(e.fileName.endsWith(".vue")){let i=t.language.scripts.get(e.fileName),s=i?.generated?.languagePlugin.typescript?.getServiceScript(i.generated.root)?.code;if(i&&s){let a=t.language.maps.get(s,i);if(D(a,e.textSpan.start)!==null)return r.get(e.fileName)}return e.fileName.startsWith(o)?r.get(e.fileName):null}return n(e)}function*Le(e){let n=/\b[A-Za-z_$][A-Za-z0-9_$]*\b/g,r=new Set(["script","setup","template","style","lang","scoped","true","false","null","undefined","const","let","var","import","from","export","return","if","else","for","while","function","class","type","interface","as","await","async"]),t;for(;t=n.exec(e);){let o=t[0];r.has(o)||(yield{text:o,start:t.index,end:t.index+o.length})}}function De(e,n){for(let[r]of e.toGeneratedLocation(n,t=>!!t.navigation))return r;return null}function D(e,n){let r=e;for(let[t]of r.toSourceLocation(n,o=>!!o.navigation))return t;return null}function N(e,n){let r=0,t=e.lineStarts.length-1;for(;r<=t;){let i=Math.floor((r+t)/2);e.lineStarts[i]<=n?r=i+1:t=i-1}let o=Math.max(0,t);return{line:o,character:n-e.lineStarts[o]}}function Ne(e,n){return p(e,n).startsWith("node_modules/")}function p(e,n){return fe(e,n).replaceAll("\\","/")}function _e(e){switch(ge(e)){case".vue":return"vue";case".tsx":return"typescriptreact";case".ts":case".mts":case".cts":return"typescript";case".jsx":return"javascriptreact";case".js":case".mjs":case".cjs":return"javascript";case".json":return"json";default:return"typescript"}}function Me(){let e=new Map;return n=>{if(e.has(n))return e.get(n)??null;try{let r=v(n,"utf-8"),t={text:r,lineStarts:Ae(r)};return e.set(n,t),t}catch{return e.set(n,null),null}}}function Ae(e){let n=[0];for(let r=0;r<e.length;r++)e.charCodeAt(r)===10&&n.push(r+1);return n}function Pe(e){try{let n=JSON.parse(v(O(e,"package.json"),"utf-8"));return{name:n.name??"workspace",version:n.version??"0.0.0"}}catch{return{name:"workspace",version:"0.0.0"}}}function je(e,n,r){let t=r.split("/").map(o=>`\`${o.replaceAll("`","")}\``).join("/");return`scip-vue npm ${e} ${n} ${t}/default.`}export{an as a,dn as b,Cn as c};
71
+ //# sourceMappingURL=chunk-TBJDUS4E.js.map
@@ -0,0 +1,2 @@
1
+ import{a as R,b as L}from"./chunk-KRVRD6KZ.js";import{a as f}from"./chunk-QRYEOK3M.js";import{a as w}from"./chunk-4M4FEWBL.js";import{a as b}from"./chunk-FAN2CVZT.js";import{b as C}from"./chunk-3SWWYJPB.js";import{a as y}from"./chunk-IARIBTCL.js";import{a as x}from"./chunk-K6ULLR7M.js";import{a as S}from"./chunk-D2R6IIEO.js";import{a as m,b as h}from"./chunk-2AUZ3PLO.js";import{a as H}from"./chunk-2CC7RA6B.js";import{a as g}from"./chunk-T426XELO.js";import{a as P}from"./chunk-ABLXPGAZ.js";import{e as l,f as d}from"./chunk-TYRPQE6R.js";var O=50,j=75e3,W=5e3,A=2500,gt=["overview","dead","isolated","cycles","similar","extract-candidates","wrapper-candidates","passthrough-candidates","stale-abstractions","drift","complexity-hotspots"],q={overview:(t,e,a,r)=>({phase:"overview",statsResult:r,warnings:a.warnings}),dead:(t,e,a)=>({phase:"dead",dead:D(t,e,a)}),isolated:(t,e,a)=>({phase:"isolated",isolated:T(t,e,a)}),cycles:(t,e,a)=>({phase:"cycles",realCycleCount:B(t,e,a)}),similar:(t,e,a)=>({phase:"similar",similarCount:M(t,e,a)}),"extract-candidates":(t,e,a)=>({phase:"extract-candidates",extractCount:_(t,e,a)}),"wrapper-candidates":(t,e,a)=>({phase:"wrapper-candidates",wrappers:I(t,e,a)}),"passthrough-candidates":(t,e,a)=>({phase:"passthrough-candidates",passthroughs:$(t,e,a)}),"stale-abstractions":(t,e,a)=>({phase:"stale-abstractions",stale:z(t,e,a)}),drift:(t,e,a)=>({phase:"drift",drift:k(t,e,a)}),"complexity-hotspots":(t,e,a)=>({phase:"complexity-hotspots",complexity:N(t,e,a)})};function Ht(t,e={}){return E(t,e.full===!0,(a,r)=>{let i=F(t,e.scope,a,r);return v(i)})}function yt(t,e,a={}){return E(t,a.full===!0,(r,i)=>q[e](t,a.scope,i,r))}function E(t,e,a){let r=f(t),i=K(r,e);try{return a(r,i)}finally{m(t,{semanticProvider:!0}),h()}}function Ct(t){let e=o(t,"overview"),a={statsResult:e.statsResult,warnings:e.warnings,dead:o(t,"dead").dead,isolated:o(t,"isolated").isolated,realCycleCount:o(t,"cycles").realCycleCount,similarCount:o(t,"similar").similarCount,extractCount:o(t,"extract-candidates").extractCount,wrappers:o(t,"wrapper-candidates").wrappers,passthroughs:o(t,"passthrough-candidates").passthroughs,stale:o(t,"stale-abstractions").stale,drift:o(t,"drift").drift,complexity:o(t,"complexity-hotspots").complexity};return v(a)}function o(t,e){let a=t.find(r=>r.phase===e);if(!a)throw new Error(`Missing health phase result: ${e}`);return a}function v(t){let e=Q(t);return{score:J(t),overview:{documents:t.statsResult.documents,symbols:t.statsResult.symbols,indexSizeBytes:t.statsResult.indexSizeBytes},findings:{deadSymbols:t.dead.count,deadLoc:t.dead.loc,isolatedSymbols:t.isolated.count,isolatedLoc:t.isolated.loc,cycles:t.realCycleCount,similarPairs:t.similarCount,extractionCandidates:t.extractCount,wrappers:t.wrappers.count,passthroughs:t.passthroughs.count,staleTypes:t.stale.count,driftedFiles:t.drift.count,complexityHotspotCount:t.complexity.extremeCount},actions:e,topComplexity:t.complexity.top,warnings:t.warnings.length>0?t.warnings:void 0}}function F(t,e,a,r){let i=G(t,e,r),n=Y(t,e,r),c=X(t,e,r);return{statsResult:a,warnings:r.warnings,...i,...n,...c}}function G(t,e,a){return{dead:D(t,e,a),isolated:T(t,e,a),realCycleCount:B(t,e,a)}}function Y(t,e,a){return{similarCount:M(t,e,a),extractCount:_(t,e,a),wrappers:I(t,e,a),passthroughs:$(t,e,a),stale:z(t,e,a)}}function X(t,e,a){return{drift:k(t,e,a),complexity:N(t,e,a)}}function D(t,e,a){return s(t,a,"dead",()=>{let r=g(t,{scope:e,minLoc:3,skipBarrels:!0});return u(et(t,r.symbols))})}function T(t,e,a){return s(t,a,"isolated",()=>{let r=y(t,{scope:e,minLoc:3});return u(at(t,r))})}function B(t,e,a){return s(t,a,"cycles",()=>H(t,{scope:e}).filter(i=>i.kind==="real").length)}function M(t,e,a){return s(t,a,"similar",()=>C(t,{scope:e,minSimilarity:.6,limit:50,minCallees:4,scanLimit:a.candidateScanLimit}).length)}function _(t,e,a){return s(t,a,"extract-candidates",()=>S(t,{scope:e,minLoc:15,minCallees:5,limit:50,scanLimit:a.candidateScanLimit}).length)}function I(t,e,a){return s(t,a,"wrapper-candidates",()=>u(w(t,{scope:e,maxLoc:15,limit:50,scanLimit:a.candidateScanLimit})))}function $(t,e,a){return s(t,a,"passthrough-candidates",()=>u(b(t,{scope:e,maxLoc:15,limit:50,scanLimit:a.candidateScanLimit})))}function z(t,e,a){return s(t,a,"stale-abstractions",()=>{let r=R(t,{scope:e,minLoc:3,limit:50,scanLimit:a.candidateScanLimit}),i=r.filter(n=>n.consumers===0).length;return{count:r.length,loc:r.reduce((n,c)=>n+c.loc,0),unused:i,singleUse:r.length-i}})}function k(t,e,a){return s(t,a,"drift",()=>{let r=x(t,{scope:e});return{count:r.unusedImports+r.layerViolations,unusedImports:r.unusedImports,layerViolations:r.layerViolations}})}function N(t,e,a){return s(t,a,"complexity-hotspots",()=>{let r=P(t,{scope:e,minLoc:10,limit:10,scanLimit:a.candidateScanLimit});return{top:r.slice(0,5).map(i=>({symbol:i.shortName,score:i.score})),extremeCount:r.filter(i=>i.score>O).length}})}function Q(t){let e=[];if(t.dead.count>0&&e.push({category:"Dead code",description:`${t.dead.count} symbols with zero references anywhere \u2014 safe to delete`,effort:"low",impact:"high",count:t.dead.count,locRecoverable:t.dead.loc}),t.isolated.count>0&&e.push({category:"Isolated symbols",description:`${t.isolated.count} symbols completely disconnected from the codebase graph`,effort:"low",impact:"medium",count:t.isolated.count,locRecoverable:t.isolated.loc}),t.realCycleCount>0&&e.push({category:"Circular dependencies",description:`${t.realCycleCount} cycle(s) \u2014 break with dependency inversion or module restructuring`,effort:"medium",impact:"high",count:t.realCycleCount,locRecoverable:0}),t.similarCount>0&&e.push({category:"Similar functions",description:`${t.similarCount} pairs with real logic overlap (beyond shared imports) \u2014 consolidation candidates`,effort:"medium",impact:"medium",count:t.similarCount,locRecoverable:0}),t.extractCount>0&&e.push({category:"Extraction candidates",description:`${t.extractCount} large functions with isolated callee clusters \u2014 extract method opportunities`,effort:"medium",impact:"medium",count:t.extractCount,locRecoverable:0}),t.wrappers.count>0&&e.push({category:"Wrapper functions",description:`${t.wrappers.count} single-consumer symbols that could be inlined`,effort:"low",impact:"low",count:t.wrappers.count,locRecoverable:t.wrappers.loc}),t.passthroughs.count>0&&e.push({category:"Passthrough functions",description:`${t.passthroughs.count} functions that just forward to one callee \u2014 unnecessary indirection`,effort:"low",impact:"low",count:t.passthroughs.count,locRecoverable:t.passthroughs.loc}),t.stale.count>0){let i=[];t.stale.unused>0&&i.push(`${t.stale.unused} unused`),t.stale.singleUse>0&&i.push(`${t.stale.singleUse} single-consumer (not in types file)`),e.push({category:"Stale abstractions",description:`${i.join(", ")} \u2014 premature abstraction`,effort:"low",impact:"medium",count:t.stale.count,locRecoverable:t.stale.loc})}if(t.drift.count>0){let i=[];t.drift.unusedImports>0&&i.push(`${t.drift.unusedImports} unused imports`),t.drift.layerViolations>0&&i.push(`${t.drift.layerViolations} layer violations`),e.push({category:"Structural drift",description:i.join(", "),effort:t.drift.layerViolations>0?"medium":"low",impact:t.drift.layerViolations>0?"medium":"low",count:t.drift.count,locRecoverable:0})}let a={high:3,medium:2,low:1},r={low:3,medium:2,high:1};return e.sort((i,n)=>{let c=a[i.impact]*r[i.effort];return a[n.impact]*r[n.effort]-c}),e}function J(t){let e=Math.max(t.statsResult.documents,1),a=Math.max(t.statsResult.symbols,1),r=100,i=t.dead.count/a;r-=Math.min(20,Math.round(i*200));let n=t.isolated.count/a;r-=Math.min(10,Math.round(n*200)),r-=Math.min(15,t.realCycleCount*5);let c=t.similarCount/a*1e3;r-=Math.min(10,Math.round(c));let p=t.extractCount/a*1e3;r-=Math.min(5,Math.round(p/2)),r-=Math.min(3,t.wrappers.count),r-=Math.min(3,t.passthroughs.count);let U=t.stale.count/Math.max(a*.1,1);r-=Math.min(8,Math.round(U*10));let V=t.drift.count/e;return r-=Math.min(5,Math.round(V*50)),r-=Math.min(5,t.complexity.extremeCount*2),Math.max(0,Math.min(100,r))}function K(t,e){return t.symbols>=j||t.documents>=W?e?{candidateScanLimit:void 0,releaseCachesBetweenPhases:!0,warnings:["Large index detected; running unbounded health analyses because --full was supplied."]}:{candidateScanLimit:A,releaseCachesBetweenPhases:!0,warnings:[`Large index detected; candidate-style health checks scanned their highest-priority ${A} symbols. Run "scip-query health --full" for unbounded candidate counts.`]}:{candidateScanLimit:void 0,releaseCachesBetweenPhases:!0,warnings:[]}}function Z(t,e){e.releaseCachesBetweenPhases&&(L(t),m(t),h())}function s(t,e,a,r){tt(a);try{return r()}finally{Z(t,e)}}function tt(t){process.env.SCIP_QUERY_HEALTH_TRACE==="1"&&console.error(`[health] ${t}`)}function et(t,e){return e.filter(a=>!l(t,a.relativePath)&&!d(t,a.symbol,a.relativePath)&&a.kind==="dead-code")}function at(t,e){return e.filter(a=>!l(t,a.relativePath)&&!d(t,a.symbol,a.relativePath))}function u(t){return{count:t.length,loc:t.reduce((e,a)=>e+a.loc,0)}}export{gt as a,Ht as b,yt as c,Ct as d};
2
+ //# sourceMappingURL=chunk-TX7BHRMT.js.map
@@ -1,2 +1,2 @@
1
- import{c as a}from"./chunk-KTCODJNQ.js";import{g as p}from"./chunk-4X7C236P.js";import{b as f}from"./chunk-QFZE73XF.js";function c(t){let r=o(t);return x(r)?"test":S(r)?"worker":y(r)?"entry":P(r)?"barrel":"source"}function _(t){return c(t)==="barrel"}function g(t){return h.get(t,()=>{let r=p(t),e=a(t).filter(s=>{let u=c(s);return u==="entry"||u==="worker"}),n=new Set,i=new Set;for(;e.length>0;){let s=e.shift();if(!n.has(s)){n.add(s),c(s)==="barrel"&&i.add(s);for(let u of r.get(s)??[])n.has(u)||e.push(u)}}return i})}var h=f("live-barrels");function b(t,r){return g(t).has(o(r))}function w(t){let r=g(t);return a(t).filter(e=>_(e)&&!r.has(e))}function D(t,r){let e=c(r);return e==="entry"||e==="worker"||b(t,r)}function E(t,r,e){let n=t.config.entryRoots;if(!n)return!1;let i=o(e);return!!(n.files?.some(s=>o(s)===i)||n.pathPrefixes?.some(s=>i.startsWith(o(s)))||n.qualifiedVars?.some(s=>$(r,s))||n.symbolPatterns?.some(s=>{try{return new RegExp(s).test(r)}catch{return!1}}))}var v=["%/__tests__/%","%.test.%","%.spec.%","%/test/%","%/tests/%","%_test.%","%_spec.%","%/test_%.%","%/spec_%.%"],B=["%/test-utils/%"];function x(t){return!!(/\.(?:test|spec)\.[a-z0-9]+$/i.test(t)||/(?:^|\/)(?:_)?test_[^/]+$/i.test(t)||/(?:^|\/)spec_[^/]+$/i.test(t)||/(?:^|\/)[^/]+_test\.[a-z0-9]+$/i.test(t)||/(?:^|\/)[^/]+_tests\.rs$/i.test(t)||/(?:^|\/)tests\.rs$/i.test(t)||/(?:^|\/)[^/]+_spec\.[a-z0-9]+$/i.test(t)||/(?:^|\/)__tests__\//i.test(t)||/(?:^|\/)test\//i.test(t)||/(?:^|\/)tests\//i.test(t)||/(?:^|\/)__fixtures__\//i.test(t)||/(?:^|\/)__mocks__\//i.test(t)||/(?:^|\/)test-support\//i.test(t)||/(?:^|\/)test-utils\//i.test(t)||/(?:^|\/)testing\//i.test(t))}function S(t){return/(?:^|\/)[^/]*worker\.(?:ts|tsx|js|mjs|cjs|rs|py|go)$/.test(t)}function y(t){let r=t.split("/"),e=r[r.length-1]??t;return e==="cli.ts"||e==="cli.js"||e==="postinstall.ts"||e==="postinstall.js"||e==="main.ts"||e==="main.js"||e==="main.rs"||e==="main.go"||e==="main.py"||e==="build.rs"||e==="lib.rs"||/\bsrc\/bin\/[^/]+\.rs$/.test(t)||/(?:^|\/)examples\/[^/]+\.rs$/.test(t)||/(?:^|\/)tests\/[^/]+\.rs$/.test(t)||/(?:^|\/)benches\/[^/]+\.rs$/.test(t)?!0:e==="index.ts"||e==="index.js"?/(?:^|\/)(?:apps|services)\/[^/]+\/src\/index\.(?:ts|js)$/.test(t)?!0:r.length<=2:!1}function P(t){return t==="index.ts"||t==="index.js"||t.endsWith("/index.ts")||t.endsWith("/index.js")||t.endsWith("/mod.rs")||t.endsWith("/__init__.py")}function o(t){return t.replace(/\\/g,"/")}function $(t,r){let e=r.lastIndexOf("/");if(e<0)return!1;let n=r.slice(0,e),i=r.slice(e+1);return t.includes(l(n)+"/")&&t.includes(l(i)+".")}function l(t){return/^[A-Za-z0-9_$+-]+$/.test(t)?t:"`"+t.replace(/`/g,"``")+"`"}export{c as a,_ as b,b as c,w as d,D as e,E as f,v as g,B as h};
2
- //# sourceMappingURL=chunk-PK4U6NWP.js.map
1
+ import{c as a}from"./chunk-WPY46NIL.js";import{i as p}from"./chunk-GS55K4WJ.js";import{b as f}from"./chunk-KYGNCIJ6.js";function c(t){let r=o(t);return x(r)?"test":S(r)?"worker":y(r)?"entry":P(r)?"barrel":"source"}function _(t){return c(t)==="barrel"}function g(t){return h.get(t,()=>{let r=p(t),e=a(t).filter(s=>{let u=c(s);return u==="entry"||u==="worker"}),n=new Set,i=new Set;for(;e.length>0;){let s=e.shift();if(!n.has(s)){n.add(s),c(s)==="barrel"&&i.add(s);for(let u of r.get(s)??[])n.has(u)||e.push(u)}}return i})}var h=f("live-barrels");function b(t,r){return g(t).has(o(r))}function w(t){let r=g(t);return a(t).filter(e=>_(e)&&!r.has(e))}function D(t,r){let e=c(r);return e==="entry"||e==="worker"||b(t,r)}function E(t,r,e){let n=t.config.entryRoots;if(!n)return!1;let i=o(e);return!!(n.files?.some(s=>o(s)===i)||n.pathPrefixes?.some(s=>i.startsWith(o(s)))||n.qualifiedVars?.some(s=>$(r,s))||n.symbolPatterns?.some(s=>{try{return new RegExp(s).test(r)}catch{return!1}}))}var v=["%/__tests__/%","%.test.%","%.spec.%","%/test/%","%/tests/%","%_test.%","%_spec.%","%/test_%.%","%/spec_%.%"],B=["%/test-utils/%"];function x(t){return!!(/\.(?:test|spec)\.[a-z0-9]+$/i.test(t)||/(?:^|\/)(?:_)?test_[^/]+$/i.test(t)||/(?:^|\/)spec_[^/]+$/i.test(t)||/(?:^|\/)[^/]+_test\.[a-z0-9]+$/i.test(t)||/(?:^|\/)[^/]+_tests\.rs$/i.test(t)||/(?:^|\/)tests\.rs$/i.test(t)||/(?:^|\/)[^/]+_spec\.[a-z0-9]+$/i.test(t)||/(?:^|\/)__tests__\//i.test(t)||/(?:^|\/)test\//i.test(t)||/(?:^|\/)tests\//i.test(t)||/(?:^|\/)__fixtures__\//i.test(t)||/(?:^|\/)__mocks__\//i.test(t)||/(?:^|\/)test-support\//i.test(t)||/(?:^|\/)test-utils\//i.test(t)||/(?:^|\/)testing\//i.test(t))}function S(t){return/(?:^|\/)[^/]*worker\.(?:ts|tsx|js|mjs|cjs|rs|py|go)$/.test(t)}function y(t){let r=t.split("/"),e=r[r.length-1]??t;return e==="cli.ts"||e==="cli.js"||e==="postinstall.ts"||e==="postinstall.js"||e==="main.ts"||e==="main.js"||e==="main.rs"||e==="main.go"||e==="main.py"||e==="build.rs"||e==="lib.rs"||/\bsrc\/bin\/[^/]+\.rs$/.test(t)||/(?:^|\/)examples\/[^/]+\.rs$/.test(t)||/(?:^|\/)tests\/[^/]+\.rs$/.test(t)||/(?:^|\/)benches\/[^/]+\.rs$/.test(t)?!0:e==="index.ts"||e==="index.js"?/(?:^|\/)(?:apps|services)\/[^/]+\/src\/index\.(?:ts|js)$/.test(t)?!0:r.length<=2:!1}function P(t){return t==="index.ts"||t==="index.js"||t.endsWith("/index.ts")||t.endsWith("/index.js")||t.endsWith("/mod.rs")||t.endsWith("/__init__.py")}function o(t){return t.replace(/\\/g,"/")}function $(t,r){let e=r.lastIndexOf("/");if(e<0)return!1;let n=r.slice(0,e),i=r.slice(e+1);return t.includes(l(n)+"/")&&t.includes(l(i)+".")}function l(t){return/^[A-Za-z0-9_$+-]+$/.test(t)?t:"`"+t.replace(/`/g,"``")+"`"}export{c as a,_ as b,b as c,w as d,D as e,E as f,v as g,B as h};
2
+ //# sourceMappingURL=chunk-TYRPQE6R.js.map
@@ -0,0 +1,5 @@
1
+ import{a as l}from"./chunk-KYGNCIJ6.js";import{readdirSync as x}from"fs";import{extname as p,join as g}from"path";var f=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs",".vue",".rs",".py",".pyi",".java",".kt",".kts",".scala",".sc",".rb",".c",".h",".cc",".cpp",".cxx",".hpp",".hh",".hxx",".cs",".vb",".php",".dart"],w=[".vue"],S=new Set(f.map(e=>e.toLowerCase())),m=[...S].sort().join(","),E=new Set(["node_modules",".git","target","dist","build",".next",".nuxt",".cache",".turbo","out","coverage",".scipquery-cache","__pycache__",".venv","venv",".idea",".vscode"]);function C(e,o={}){let s=o.includeIndexed??!0,i=o.includeAuxiliary??!0,t=o.extensions?.map(c=>c.toLowerCase()),r=t?new Set(t):S,a=t?[...r].sort().join(","):m,n=`${s?"1":"0"}|${i?"1":"0"}|${a}`;return h.get(e,n,()=>{let c=new Set;if(s){let u=e.all(`SELECT relative_path
2
+ FROM documents
3
+ WHERE 1 = 1
4
+ ${e.pathExclusionsFor("documents")}`);for(let d of u)e.isIgnored(d.relative_path)||r.has(p(d.relative_path).toLowerCase())&&c.add(d.relative_path)}if(i)for(let u of y(e.config.projectRoot,r))e.isIgnored(u)||c.add(u);return[...c].sort()})}var h=l("source-files");function y(e,o){let s=new Set,i=t=>{let r=t?g(e,t):e,a;try{a=x(r,{withFileTypes:!0})}catch{return}for(let n of a)if(!E.has(n.name)){if(n.isDirectory()){i(t?`${t}/${n.name}`:n.name);continue}o.has(p(n.name).toLowerCase())&&s.add(t?`${t}/${n.name}`:n.name)}};return i(""),s}export{w as a,E as b,C as c};
5
+ //# sourceMappingURL=chunk-WPY46NIL.js.map
@@ -1,2 +1,2 @@
1
- import{h as g}from"./chunk-4X7C236P.js";import{a as m}from"./chunk-ZHHMG4UC.js";import{o as r}from"./chunk-QFZE73XF.js";function w(i,f,p){let s=m(i,f),n=m(i,p);if(!s||!n)return null;let c=new Set(g(i,s).map(e=>e.symbol)),h=new Set(g(i,n).map(e=>e.symbol)),l=[];for(let e of c)h.has(e)&&l.push(e);let o=[];for(let e of c)h.has(e)||o.push(e);let a=[];for(let e of h)c.has(e)||a.push(e);let u=new Set([...c,...h]),d=u.size>0?l.length/u.size:0,t;u.size===0?t="Neither function calls other tracked symbols. There is no callee-pattern evidence for consolidation; inspect the source bodies directly.":l.length===0?t="These functions do not share any callees. They are not a callee-based consolidation candidate.":o.length===0&&a.length===0?t="These functions have identical tracked callee sets. They are a strong structural match, but identical callees do not prove interchangeable semantics; inspect signatures, control flow, and return values before consolidating.":o.length===0?t="A's tracked callees are a subset of B's. B may subsume part of A's structure, but verify signatures, guards, and non-call logic before replacing A with B.":a.length===0?t="B's tracked callees are a subset of A's. A may subsume part of B's structure, but verify signatures, guards, and non-call logic before replacing B with A.":o.length<=2&&a.length<=2?t=`Create a shared function with the ${l.length} common callees. Pass the ${o.length+a.length} divergent callees as parameters or strategy callbacks.`:t=`Extract the ${l.length} shared callees into a common helper. Each function calls the helper plus its own unique logic (${o.length} callees in A, ${a.length} in B).`;let y=s.endLine-s.startLine+1,b=n.endLine-n.startLine+1;return{symbolA:{symbol:s.symbol,shortName:r(s.symbol),file:s.relativePath,loc:y},symbolB:{symbol:n.symbol,shortName:r(n.symbol),file:n.relativePath,loc:b},similarity:d,sharedCallees:l.map(r),uniqueToA:o.map(r),uniqueToB:a.map(r),consolidationStrategy:t}}export{w as a};
2
- //# sourceMappingURL=chunk-U5MVUPOO.js.map
1
+ import{j as g}from"./chunk-GS55K4WJ.js";import{a as m}from"./chunk-QYWGC7JV.js";import{q as r}from"./chunk-KYGNCIJ6.js";function w(i,f,p){let s=m(i,f),n=m(i,p);if(!s||!n)return null;let c=new Set(g(i,s).map(e=>e.symbol)),h=new Set(g(i,n).map(e=>e.symbol)),l=[];for(let e of c)h.has(e)&&l.push(e);let o=[];for(let e of c)h.has(e)||o.push(e);let a=[];for(let e of h)c.has(e)||a.push(e);let u=new Set([...c,...h]),d=u.size>0?l.length/u.size:0,t;u.size===0?t="Neither function calls other tracked symbols. There is no callee-pattern evidence for consolidation; inspect the source bodies directly.":l.length===0?t="These functions do not share any callees. They are not a callee-based consolidation candidate.":o.length===0&&a.length===0?t="These functions have identical tracked callee sets. They are a strong structural match, but identical callees do not prove interchangeable semantics; inspect signatures, control flow, and return values before consolidating.":o.length===0?t="A's tracked callees are a subset of B's. B may subsume part of A's structure, but verify signatures, guards, and non-call logic before replacing A with B.":a.length===0?t="B's tracked callees are a subset of A's. A may subsume part of B's structure, but verify signatures, guards, and non-call logic before replacing B with A.":o.length<=2&&a.length<=2?t=`Create a shared function with the ${l.length} common callees. Pass the ${o.length+a.length} divergent callees as parameters or strategy callbacks.`:t=`Extract the ${l.length} shared callees into a common helper. Each function calls the helper plus its own unique logic (${o.length} callees in A, ${a.length} in B).`;let y=s.endLine-s.startLine+1,b=n.endLine-n.startLine+1;return{symbolA:{symbol:s.symbol,shortName:r(s.symbol),file:s.relativePath,loc:y},symbolB:{symbol:n.symbol,shortName:r(n.symbol),file:n.relativePath,loc:b},similarity:d,sharedCallees:l.map(r),uniqueToA:o.map(r),uniqueToB:a.map(r),consolidationStrategy:t}}export{w as a};
2
+ //# sourceMappingURL=chunk-X3Z4KZNX.js.map
@@ -1,2 +1,2 @@
1
- import{B as p,n as d,o as f,q as u}from"./chunk-QFZE73XF.js";var m={0:"UnspecifiedKind",1:"AbstractMethod",2:"Accessor",3:"Array",4:"Assertion",5:"AssociatedType",6:"Attribute",7:"Axiom",8:"Boolean",9:"Class",10:"Constant",11:"Constructor",12:"Contract",13:"DataFamily",14:"DefinitionMacro",15:"Delegate",16:"Enum",17:"EnumMember",18:"Error",19:"Event",20:"Fact",21:"Field",22:"File",23:"Function",24:"Getter",25:"Grammar",26:"Instance",27:"Interface",28:"Key",29:"Lang",30:"Lemma",31:"Library",32:"Macro",33:"Method",34:"MethodAlias",35:"MethodReceiver",36:"MethodSpecification",37:"Message",38:"Modifier",39:"Module",40:"Namespace",41:"Null",42:"Number",43:"Object",44:"Operator",45:"Package",46:"PackageObject",47:"Parameter",48:"ParameterLabel",49:"Pattern",50:"Predicate",51:"Property",52:"Protocol",53:"ProtocolMethod",54:"PureVirtualMethod",55:"Quasiquoter",56:"SelfParameter",57:"Setter",58:"Signature",59:"SingletonClass",60:"SingletonMethod",61:"StaticDataMember",62:"StaticEvent",63:"StaticField",64:"StaticMethod",65:"StaticProperty",66:"StaticVariable",67:"String",68:"Struct",69:"Subscript",70:"Tactic",71:"Theorem",72:"ThisParameter",73:"Trait",74:"TraitMethod",75:"Type",76:"TypeAlias",77:"TypeClass",78:"TypeClassMethod",79:"TypeFamily",80:"TypeParameter",81:"Union",82:"Value",83:"Variable"},c=new Map;for(let[e,i]of Object.entries(m))c.set(i.toLowerCase(),Number(e));function g(e){let i=parseInt(e,10);if(!isNaN(i))return i;let s=e.toLowerCase(),n=c.get(s);if(n!==void 0)return n;for(let[r,o]of c)if(r.includes(s))return o;return null}function N(e,i,s={}){let{scope:n,limit:r=100}=s,o=g(i);return o===null?[]:b(e,n).map(t=>({row:t,resolvedKind:y(t)})).filter(t=>t.resolvedKind===o).slice(0,r).map(({row:t,resolvedKind:l})=>({symbol:t.symbol,shortName:f(t.symbol),kind:l,kindName:m[l]??"Unknown",relativePath:t.relative_path,startLine:t.start_line,endLine:t.end_line}))}function P(e,i={}){let s=new Map;for(let n of b(e,i.scope)){let r=y(n);r===null||r===0||s.set(r,(s.get(r)??0)+1)}return[...s.entries()].sort((n,r)=>r[1]-n[1]||n[0]-r[0]).map(([n,r])=>({kind:n,kindName:m[n]??"Unknown",count:r}))}function b(e,i){return p(e,{scope:i}).map(S)}function S(e){return{symbol:e.symbol,kind:e.kind,documentation:e.documentation,enclosing_symbol:e.enclosingSymbol,relative_path:e.relativePath,start_line:e.startLine,end_line:e.endLine}}function y(e){return e.kind!==null&&e.kind!==0?h(e.kind,e.symbol,e.documentation):M(e.symbol,e.documentation,e.enclosing_symbol)}function h(e,i,s){let n=(s??"").toLowerCase();if(u(i)==="type"){if(n.includes("type "))return 76;if(n.includes("interface "))return 27;if(n.includes("struct "))return 68;if(n.includes("trait "))return 73;if(n.includes("class "))return 9}return e}function M(e,i,s){let n=d(e);if("kind"in n)return null;let r=n.descriptors,o=r[r.length-2]??null,a=u(e),t=(i??"").toLowerCase();return a==="type"?t.includes("type ")?76:t.includes("interface ")?27:t.includes("struct ")?68:t.includes("trait ")?73:(t.includes("class "),9):a==="method"?o?.suffix==="type"?33:23:a==="namespace"?39:a!=="term"?null:t.includes("async def ")||t.includes("def ")?23:(s?u(s):o?.suffix??null)==="type"?21:83}export{N as a,P as b};
2
- //# sourceMappingURL=chunk-7X7FLQC5.js.map
1
+ import{D as p,p as d,q as f,s as u}from"./chunk-KYGNCIJ6.js";var m={0:"UnspecifiedKind",1:"AbstractMethod",2:"Accessor",3:"Array",4:"Assertion",5:"AssociatedType",6:"Attribute",7:"Axiom",8:"Boolean",9:"Class",10:"Constant",11:"Constructor",12:"Contract",13:"DataFamily",14:"DefinitionMacro",15:"Delegate",16:"Enum",17:"EnumMember",18:"Error",19:"Event",20:"Fact",21:"Field",22:"File",23:"Function",24:"Getter",25:"Grammar",26:"Instance",27:"Interface",28:"Key",29:"Lang",30:"Lemma",31:"Library",32:"Macro",33:"Method",34:"MethodAlias",35:"MethodReceiver",36:"MethodSpecification",37:"Message",38:"Modifier",39:"Module",40:"Namespace",41:"Null",42:"Number",43:"Object",44:"Operator",45:"Package",46:"PackageObject",47:"Parameter",48:"ParameterLabel",49:"Pattern",50:"Predicate",51:"Property",52:"Protocol",53:"ProtocolMethod",54:"PureVirtualMethod",55:"Quasiquoter",56:"SelfParameter",57:"Setter",58:"Signature",59:"SingletonClass",60:"SingletonMethod",61:"StaticDataMember",62:"StaticEvent",63:"StaticField",64:"StaticMethod",65:"StaticProperty",66:"StaticVariable",67:"String",68:"Struct",69:"Subscript",70:"Tactic",71:"Theorem",72:"ThisParameter",73:"Trait",74:"TraitMethod",75:"Type",76:"TypeAlias",77:"TypeClass",78:"TypeClassMethod",79:"TypeFamily",80:"TypeParameter",81:"Union",82:"Value",83:"Variable"},c=new Map;for(let[e,i]of Object.entries(m))c.set(i.toLowerCase(),Number(e));function g(e){let i=parseInt(e,10);if(!isNaN(i))return i;let s=e.toLowerCase(),n=c.get(s);if(n!==void 0)return n;for(let[r,o]of c)if(r.includes(s))return o;return null}function N(e,i,s={}){let{scope:n,limit:r=100}=s,o=g(i);return o===null?[]:b(e,n).map(t=>({row:t,resolvedKind:y(t)})).filter(t=>t.resolvedKind===o).slice(0,r).map(({row:t,resolvedKind:l})=>({symbol:t.symbol,shortName:f(t.symbol),kind:l,kindName:m[l]??"Unknown",relativePath:t.relative_path,startLine:t.start_line,endLine:t.end_line}))}function P(e,i={}){let s=new Map;for(let n of b(e,i.scope)){let r=y(n);r===null||r===0||s.set(r,(s.get(r)??0)+1)}return[...s.entries()].sort((n,r)=>r[1]-n[1]||n[0]-r[0]).map(([n,r])=>({kind:n,kindName:m[n]??"Unknown",count:r}))}function b(e,i){return p(e,{scope:i}).map(S)}function S(e){return{symbol:e.symbol,kind:e.kind,documentation:e.documentation,enclosing_symbol:e.enclosingSymbol,relative_path:e.relativePath,start_line:e.startLine,end_line:e.endLine}}function y(e){return e.kind!==null&&e.kind!==0?h(e.kind,e.symbol,e.documentation):M(e.symbol,e.documentation,e.enclosing_symbol)}function h(e,i,s){let n=(s??"").toLowerCase();if(u(i)==="type"){if(n.includes("type "))return 76;if(n.includes("interface "))return 27;if(n.includes("struct "))return 68;if(n.includes("trait "))return 73;if(n.includes("class "))return 9}return e}function M(e,i,s){let n=d(e);if("kind"in n)return null;let r=n.descriptors,o=r[r.length-2]??null,a=u(e),t=(i??"").toLowerCase();return a==="type"?t.includes("type ")?76:t.includes("interface ")?27:t.includes("struct ")?68:t.includes("trait ")?73:(t.includes("class "),9):a==="method"?o?.suffix==="type"?33:23:a==="namespace"?39:a!=="term"?null:t.includes("async def ")||t.includes("def ")?23:(s?u(s):o?.suffix??null)==="type"?21:83}export{N as a,P as b};
2
+ //# sourceMappingURL=chunk-ZNNCDAYX.js.map