scip-query 0.10.8 → 0.10.10

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 (227) hide show
  1. package/README.md +3 -1
  2. package/dist/{chunk-E2CCBFLR.js → chunk-2UYQLFVC.js} +2 -2
  3. package/dist/chunk-2VM46FC5.js +8 -0
  4. package/dist/{chunk-24S6MYOC.js → chunk-3DGD6NKW.js} +2 -2
  5. package/dist/chunk-3Q77KKEY.js +2 -0
  6. package/dist/chunk-3VD3JMK2.js +2 -0
  7. package/dist/{chunk-RSKOYTSY.js → chunk-4KTOV4QN.js} +2 -2
  8. package/dist/chunk-4N4WONI4.js +102 -0
  9. package/dist/{chunk-EBIQY3RK.js → chunk-56P7PDST.js} +2 -2
  10. package/dist/{chunk-BWL2ECGQ.js → chunk-5NVUWIAN.js} +2 -2
  11. package/dist/{chunk-BEUQVBE3.js → chunk-5VG7RKEF.js} +2 -2
  12. package/dist/{chunk-C6BYNIH4.js → chunk-65AU3HFZ.js} +2 -2
  13. package/dist/{chunk-NWFSC356.js → chunk-6LNQOOTB.js} +2 -2
  14. package/dist/{chunk-6TDOT7B3.js → chunk-72KY2ZFO.js} +2 -2
  15. package/dist/{chunk-7KJBH4IP.js → chunk-736BLPHR.js} +2 -2
  16. package/dist/chunk-7JRRXGVZ.js +2 -0
  17. package/dist/{chunk-RHKMQNFI.js → chunk-7UQWUVRG.js} +2 -2
  18. package/dist/chunk-A6IDHNMC.js +4 -0
  19. package/dist/chunk-A6TANQNV.js +2 -0
  20. package/dist/{chunk-X3Z4MLVL.js → chunk-AW2QHPLL.js} +2 -2
  21. package/dist/chunk-BSN22NRK.js +9 -0
  22. package/dist/{chunk-ZDR4VTOP.js → chunk-BVRS7RKQ.js} +2 -2
  23. package/dist/{chunk-ANIOISCE.js → chunk-C5CTSJ6X.js} +2 -2
  24. package/dist/{chunk-MEKSFV6H.js → chunk-CCKPYPDI.js} +2 -2
  25. package/dist/chunk-CZ425R2B.js +18 -0
  26. package/dist/{chunk-QDGKE5HN.js → chunk-DQVKIG3D.js} +2 -2
  27. package/dist/chunk-F6ICF7HL.js +40 -0
  28. package/dist/chunk-FAYI6KZ5.js +2 -0
  29. package/dist/{chunk-ZL52RLDK.js → chunk-FDEQIPPK.js} +2 -2
  30. package/dist/chunk-FRPEPTYJ.js +5 -0
  31. package/dist/chunk-GBEYTDY5.js +2 -0
  32. package/dist/{chunk-VFLHKRTW.js → chunk-GRJY65YT.js} +2 -2
  33. package/dist/chunk-HF25DFSC.js +3 -0
  34. package/dist/chunk-HHN2B5KA.js +2 -0
  35. package/dist/{chunk-FKUCFCLU.js → chunk-I46WR7MT.js} +2 -2
  36. package/dist/{chunk-5SMUKUV5.js → chunk-IPQTC36U.js} +2 -2
  37. package/dist/{chunk-FGTHPJON.js → chunk-J7RWXLUL.js} +2 -2
  38. package/dist/{chunk-63MSELOP.js → chunk-KX5PLFZ5.js} +2 -2
  39. package/dist/{chunk-VMPB52FG.js → chunk-LPL4MA6R.js} +2 -2
  40. package/dist/chunk-LZHUWKGD.js +2 -0
  41. package/dist/{chunk-BJWNO6BU.js → chunk-MMLZEGMS.js} +2 -2
  42. package/dist/{chunk-5G5VI7J4.js → chunk-NZ4UDB5N.js} +2 -2
  43. package/dist/{chunk-3LQFMQPY.js → chunk-OBGRLXWF.js} +2 -2
  44. package/dist/chunk-P5RYBRIO.js +4 -0
  45. package/dist/chunk-PKMZCDQD.js +4 -0
  46. package/dist/{chunk-T633QLYF.js → chunk-PTQVNJ4Q.js} +2 -2
  47. package/dist/{chunk-FHWEEQVO.js → chunk-QPU7EXAW.js} +2 -2
  48. package/dist/chunk-QVI3NR7E.js +7 -0
  49. package/dist/{chunk-6EO3E3IP.js → chunk-QX7LLCGB.js} +2 -2
  50. package/dist/{chunk-AA7L7GKI.js → chunk-QYB5P7GL.js} +2 -2
  51. package/dist/chunk-RVWSAMTT.js +2 -0
  52. package/dist/{chunk-SHM5D3DQ.js → chunk-RXRLZFUL.js} +2 -2
  53. package/dist/{chunk-LGX2Y4BA.js → chunk-RYXW3KRC.js} +2 -2
  54. package/dist/{chunk-B4EHYG6M.js → chunk-SGLLBSCV.js} +2 -2
  55. package/dist/{chunk-ZMU6IWDK.js → chunk-SULEXAHO.js} +2 -2
  56. package/dist/{chunk-KZYHFI2X.js → chunk-TH2N6QHW.js} +2 -2
  57. package/dist/{chunk-JRUKS66S.js → chunk-TL6QPNF5.js} +2 -2
  58. package/dist/{chunk-JUIAOOK7.js → chunk-UDGXK2WA.js} +2 -2
  59. package/dist/{chunk-Q34NWRPP.js → chunk-UFX7EPBA.js} +2 -2
  60. package/dist/chunk-UQLFQLAF.js +2 -0
  61. package/dist/{chunk-VXT7WVIN.js → chunk-UWYJDBDW.js} +2 -2
  62. package/dist/{chunk-GZQID3FS.js → chunk-UYD7FJ3K.js} +2 -2
  63. package/dist/{chunk-2YI45TNM.js → chunk-VUKC6F77.js} +2 -2
  64. package/dist/{chunk-L4QKEQ4S.js → chunk-WG6KRH5F.js} +2 -2
  65. package/dist/{chunk-LWTML2AN.js → chunk-XIVO4SDZ.js} +2 -2
  66. package/dist/{chunk-N7F5UM6J.js → chunk-XSNRACLV.js} +2 -2
  67. package/dist/chunk-XUGQU7PM.js +41 -0
  68. package/dist/{chunk-BJG67TCR.js → chunk-XXZXDXTD.js} +2 -2
  69. package/dist/chunk-Y6E3JHC4.js +2 -0
  70. package/dist/{chunk-6BNOACLT.js → chunk-YBEEVDJQ.js} +2 -2
  71. package/dist/chunk-YGHUVQLR.js +2 -0
  72. package/dist/chunk-YWDVDAD7.js +2 -0
  73. package/dist/{chunk-6N6QTGSD.js → chunk-Z4I7BVIU.js} +2 -2
  74. package/dist/{chunk-3FYGJ2GY.js → chunk-ZQO43G2T.js} +2 -2
  75. package/dist/{chunk-JYSAYZNX.js → chunk-ZU6PROUY.js} +2 -2
  76. package/dist/cli.js +256 -205
  77. package/dist/{db-BAVwb4Pb.d.ts → db-Djj3Nqrb.d.ts} +2 -0
  78. package/dist/{health-B17sVFYf.d.ts → health-D5J42g4D.d.ts} +1 -1
  79. package/dist/index.d.ts +3 -2
  80. package/dist/index.js +3 -3
  81. package/dist/queries/affected.d.ts +1 -1
  82. package/dist/queries/affected.js +1 -1
  83. package/dist/queries/bottlenecks.d.ts +1 -1
  84. package/dist/queries/bottlenecks.js +1 -1
  85. package/dist/queries/by-kind.d.ts +1 -1
  86. package/dist/queries/by-kind.js +1 -1
  87. package/dist/queries/call-graph.d.ts +1 -1
  88. package/dist/queries/call-graph.js +1 -1
  89. package/dist/queries/change-surface.d.ts +1 -1
  90. package/dist/queries/change-surface.js +1 -1
  91. package/dist/queries/cleanup-plan.d.ts +1 -1
  92. package/dist/queries/cleanup-plan.js +1 -1
  93. package/dist/queries/co-change.d.ts +1 -1
  94. package/dist/queries/co-change.js +1 -1
  95. package/dist/queries/code.d.ts +1 -1
  96. package/dist/queries/code.js +1 -1
  97. package/dist/queries/complexity-hotspots.d.ts +1 -1
  98. package/dist/queries/complexity-hotspots.js +1 -1
  99. package/dist/queries/complexity.d.ts +1 -1
  100. package/dist/queries/complexity.js +1 -1
  101. package/dist/queries/convergence.d.ts +1 -1
  102. package/dist/queries/convergence.js +1 -1
  103. package/dist/queries/coupling.d.ts +1 -1
  104. package/dist/queries/coupling.js +1 -1
  105. package/dist/queries/cycles.d.ts +1 -1
  106. package/dist/queries/cycles.js +1 -1
  107. package/dist/queries/dataflow.d.ts +1 -1
  108. package/dist/queries/dataflow.js +1 -1
  109. package/dist/queries/dead.d.ts +1 -1
  110. package/dist/queries/dead.js +1 -1
  111. package/dist/queries/deep-chains.d.ts +1 -1
  112. package/dist/queries/deep-chains.js +1 -1
  113. package/dist/queries/deps.d.ts +1 -1
  114. package/dist/queries/deps.js +1 -1
  115. package/dist/queries/diff-gate.d.ts +1 -1
  116. package/dist/queries/diff-gate.js +1 -1
  117. package/dist/queries/diff-impact.d.ts +1 -1
  118. package/dist/queries/diff-impact.js +1 -1
  119. package/dist/queries/doc-drift.d.ts +1 -1
  120. package/dist/queries/doc-drift.js +1 -1
  121. package/dist/queries/drift.d.ts +2 -1
  122. package/dist/queries/drift.js +1 -1
  123. package/dist/queries/extract-candidates.d.ts +1 -1
  124. package/dist/queries/extract-candidates.js +1 -1
  125. package/dist/queries/fan.d.ts +1 -1
  126. package/dist/queries/fan.js +1 -1
  127. package/dist/queries/files.d.ts +1 -1
  128. package/dist/queries/health.d.ts +2 -2
  129. package/dist/queries/health.js +1 -1
  130. package/dist/queries/hierarchy.d.ts +1 -1
  131. package/dist/queries/hierarchy.js +1 -1
  132. package/dist/queries/hotspots.d.ts +1 -1
  133. package/dist/queries/hotspots.js +1 -1
  134. package/dist/queries/imports.d.ts +1 -1
  135. package/dist/queries/imports.js +1 -1
  136. package/dist/queries/incomplete-migration.d.ts +1 -1
  137. package/dist/queries/incomplete-migration.js +1 -1
  138. package/dist/queries/index.d.ts +2 -2
  139. package/dist/queries/index.js +1 -1
  140. package/dist/queries/isolated.d.ts +1 -1
  141. package/dist/queries/isolated.js +1 -1
  142. package/dist/queries/locality-candidates.d.ts +1 -1
  143. package/dist/queries/locality-candidates.js +1 -1
  144. package/dist/queries/members.d.ts +1 -1
  145. package/dist/queries/members.js +1 -1
  146. package/dist/queries/methods.d.ts +1 -1
  147. package/dist/queries/methods.js +1 -1
  148. package/dist/queries/outline.d.ts +1 -1
  149. package/dist/queries/outline.js +1 -1
  150. package/dist/queries/passthrough-candidates.d.ts +1 -1
  151. package/dist/queries/passthrough-candidates.js +1 -1
  152. package/dist/queries/plan-context.d.ts +1 -1
  153. package/dist/queries/plan-context.js +1 -1
  154. package/dist/queries/react-component-duplicates.d.ts +2 -1
  155. package/dist/queries/react-component-duplicates.js +1 -1
  156. package/dist/queries/react-hook-candidates.d.ts +2 -1
  157. package/dist/queries/react-hook-candidates.js +1 -1
  158. package/dist/queries/react-large-component-pressure.d.ts +1 -1
  159. package/dist/queries/react-large-component-pressure.js +1 -1
  160. package/dist/queries/recent-duplicates.d.ts +1 -1
  161. package/dist/queries/recent-duplicates.js +1 -1
  162. package/dist/queries/redundant-reexports.d.ts +1 -1
  163. package/dist/queries/redundant-reexports.js +1 -1
  164. package/dist/queries/refs.d.ts +1 -1
  165. package/dist/queries/refs.js +1 -1
  166. package/dist/queries/self-audit.d.ts +1 -1
  167. package/dist/queries/self-audit.js +1 -1
  168. package/dist/queries/similar-chains.d.ts +1 -1
  169. package/dist/queries/similar-chains.js +1 -1
  170. package/dist/queries/similar-files.d.ts +1 -1
  171. package/dist/queries/similar-files.js +1 -1
  172. package/dist/queries/similar-signatures.d.ts +1 -1
  173. package/dist/queries/similar-signatures.js +1 -1
  174. package/dist/queries/similar.d.ts +2 -1
  175. package/dist/queries/similar.js +1 -1
  176. package/dist/queries/slice.d.ts +1 -1
  177. package/dist/queries/slice.js +1 -1
  178. package/dist/queries/stale-abstractions.d.ts +1 -1
  179. package/dist/queries/stale-abstractions.js +1 -1
  180. package/dist/queries/stats.d.ts +1 -1
  181. package/dist/queries/surface.d.ts +1 -1
  182. package/dist/queries/surface.js +1 -1
  183. package/dist/queries/symbols.d.ts +1 -1
  184. package/dist/queries/symbols.js +1 -1
  185. package/dist/queries/system.d.ts +1 -1
  186. package/dist/queries/system.js +1 -1
  187. package/dist/queries/trace.d.ts +1 -1
  188. package/dist/queries/trace.js +1 -1
  189. package/dist/queries/unused-imports.d.ts +1 -1
  190. package/dist/queries/unused-imports.js +1 -1
  191. package/dist/queries/unused-params.d.ts +1 -1
  192. package/dist/queries/unused-params.js +1 -1
  193. package/dist/queries/vue-component-duplicates.d.ts +2 -1
  194. package/dist/queries/vue-component-duplicates.js +1 -1
  195. package/dist/queries/vue-composable-candidates.d.ts +2 -1
  196. package/dist/queries/vue-composable-candidates.js +1 -1
  197. package/dist/queries/vue-large-view-pressure.d.ts +1 -1
  198. package/dist/queries/wrapper-candidates.d.ts +1 -1
  199. package/dist/queries/wrapper-candidates.js +1 -1
  200. package/docs/analyzer-inventory.md +29 -0
  201. package/docs/analyzer-validation-ledger.md +32 -1
  202. package/package.json +1 -1
  203. package/dist/chunk-2H57MJLI.js +0 -2
  204. package/dist/chunk-4TMJDHC6.js +0 -5
  205. package/dist/chunk-5GVOJOBL.js +0 -2
  206. package/dist/chunk-7XWXGANX.js +0 -4
  207. package/dist/chunk-AETMKBZR.js +0 -40
  208. package/dist/chunk-BTCASU5J.js +0 -3
  209. package/dist/chunk-C6ROZBJA.js +0 -32
  210. package/dist/chunk-COUFCH64.js +0 -2
  211. package/dist/chunk-EKECQP6Z.js +0 -2
  212. package/dist/chunk-FVA3NH4P.js +0 -2
  213. package/dist/chunk-I274B3B3.js +0 -7
  214. package/dist/chunk-J6ADQKQA.js +0 -2
  215. package/dist/chunk-K7VBTWNR.js +0 -2
  216. package/dist/chunk-KLXVEBVC.js +0 -2
  217. package/dist/chunk-KRGBLZT2.js +0 -7
  218. package/dist/chunk-P3K7LX7M.js +0 -4
  219. package/dist/chunk-PVZMPG5I.js +0 -2
  220. package/dist/chunk-RY7CAOJF.js +0 -4
  221. package/dist/chunk-S7YOLFLX.js +0 -2
  222. package/dist/chunk-SOGKYB5I.js +0 -8
  223. package/dist/chunk-VAXDTQHE.js +0 -18
  224. package/dist/chunk-X3BJUFSN.js +0 -62
  225. package/dist/chunk-XPOZO76D.js +0 -2
  226. package/dist/chunk-XWC67C3Q.js +0 -2
  227. package/dist/chunk-YNSVAJR6.js +0 -2
@@ -1,8 +0,0 @@
1
- import{f as D,i as H}from"./chunk-4TMJDHC6.js";import{d as L}from"./chunk-YWOOQ4FF.js";import{b as w,d as _,h as T,i as E}from"./chunk-QDGKE5HN.js";import{a as N}from"./chunk-XPOZO76D.js";import{c as b,d as F}from"./chunk-JM72FNGA.js";var q=5;function te(e,t={}){let{base:a="HEAD",minContainment:o=.7,minCallees:r=3,minSiteCoverage:n=.4,maxHelpers:c=Number.POSITIVE_INFINITY,limit:m=20,scanLimit:g}=t,f=t.semantic!==!1,s=t.diffPlan??_(e,{base:a}),l={available:s.note!==w,base:a,changedFiles:s.changedFiles,helpersChecked:0,skipped:[],findings:[]};if(!l.available||s.changedFiles.length===0)return l;let x=new N(e),k=new Set(s.changedFiles),A=new Map(s.renamedFiles.map(i=>[i.to,i.from])),$=t.baseContentAt??T(e.config.projectRoot,a,E(s)),h=U(x,k,A,$);if(h.length===0)return l;let R=h.slice(0,c);h.length>c&&(l.note=`helper scoring capped at ${c} of ${h.length} new symbols`);let M=D(e,{minCallees:Math.min(3,r),scanLimit:g,semantic:f}),z=x.calleeMap(R,{semantic:f}),j=R.map(i=>({def:i,callees:H((z.get(i.symbolId)??[]).map(p=>p.symbol))}));for(let{def:i,callees:p}of j){let u=b(i.symbol);if(p.size<r){l.skipped.push({helperShortName:u,helperFile:i.relativePath,reason:`fewer than ${r} meaningful callees \u2014 too small to score`});continue}let P=K(p,M);if(P===0){l.skipped.push({helperShortName:u,helperFile:i.relativePath,reason:"helper callee pattern is all project-wide infrastructure \u2014 too generic to score"});continue}let C=W(e,i.symbolId);if(C.length===0){l.skipped.push({helperShortName:u,helperFile:i.relativePath,reason:"no references yet \u2014 covered by the new-dead check"});continue}l.helpersChecked+=1;let I=B({candidateIndex:M,changed:k,helperCallees:p,helperFile:i.relativePath,helperSymbol:i.symbol,minContainment:o,minSiteCoverage:n,migratedFiles:C});I.length!==0&&(I.sort((d,S)=>O(S.migrationScope)-O(d.migrationScope)||S.containment-d.containment||S.siteCoverage-d.siteCoverage||d.file.localeCompare(S.file)),l.findings.push({helperSymbol:i.symbol,helperShortName:u,helperFile:i.relativePath,helperShape:"specific-callee-cluster",helperCalleeCount:p.size,specificHelperCalleeCount:P,migratedFiles:C.sort(),leftovers:I.slice(0,q)}))}return l.findings.sort((i,p)=>(p.leftovers[0]?.containment??0)-(i.leftovers[0]?.containment??0)||i.helperFile.localeCompare(p.helperFile)),l.findings=l.findings.slice(0,m),l}function B(e){let t=[],a=V(e.helperSymbol,e.helperFile,e.migratedFiles),o=new Set;for(let r of e.helperCallees)for(let n of e.candidateIndex.candidateIndexesByCallee.get(r)??[])o.add(n);for(let r of o){let n=e.candidateIndex.corpus[r];if(n.symbol===e.helperSymbol||e.changed.has(n.file)||n.callees.has(e.helperSymbol))continue;let c=L(e.helperCallees,n.callees);if(c<e.minContainment)continue;let m=[...e.helperCallees].filter(s=>n.callees.has(s)),g=n.callees.size===0?0:m.length/n.callees.size;if(g<e.minSiteCoverage||!m.some(s=>(e.candidateIndex.docFreq.get(s)??0)<=e.candidateIndex.ubiquityThreshold))continue;let f=G(a,n.symbol,n.file);t.push({symbol:n.symbol,shortName:b(n.symbol),file:n.file,...f,containment:c,siteCoverage:g,uniqueSiteCalleeCount:Math.max(0,n.callees.size-m.length),sharedCallees:m.map(b).sort()})}return t}function O(e){return e==="same-scope"?2:e==="unknown"?1:0}function V(e,t,a){let o=new Set([...y(t),...v(F(e))]);for(let r of a)for(let n of y(r))o.add(n);return o}function G(e,t,a){let o=new Set([...y(a),...v(F(t))]);if(e.size===0||o.size===0)return{migrationScope:"unknown",migrationScopeReasons:["insufficient path/name tokens to infer migration scope"]};let r=[...o].filter(n=>e.has(n)).sort();return r.length>0?{migrationScope:"same-scope",migrationScopeReasons:[`shares migration-scope token(s): ${r.slice(0,5).join(", ")}`]}:{migrationScope:"possible-subtype",migrationScopeReasons:["no path/name tokens shared with the helper or already migrated files"]}}var J=new Set(["app","apps","common","component","components","helper","helpers","index","lib","package","packages","page","pages","route","routes","service","services","shared","spec","src","test","tests","util","utils"]);function y(e){return v(e.replace(/\.[^.]+$/,""))}function v(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-z0-9]+/).filter(t=>t.length>1&&!J.has(t))}function K(e,t){let a=0;for(let o of e)(t.docFreq.get(o)??0)<=t.ubiquityThreshold&&(a+=1);return a}function U(e,t,a,o){return e.productionCallableDefinitions({requireFunctionLikeSymbol:!0}).filter(r=>{if(!t.has(r.relativePath))return!1;let n=a.get(r.relativePath)??r.relativePath,c=o(n);return c===null||!new RegExp(`\\b${X(r.leaf)}\\b`).test(c)})}function W(e,t){return e.all(`SELECT DISTINCT ref_d.relative_path
2
- FROM mentions m
3
- JOIN chunks c ON m.chunk_id = c.id
4
- JOIN documents ref_d ON c.document_id = ref_d.id
5
- WHERE m.symbol_id = ?
6
- AND m.role != 1
7
- ${e.pathExclusionsFor("ref_d")}`,t).map(o=>o.relative_path)}function X(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{te as a};
8
- //# sourceMappingURL=chunk-SOGKYB5I.js.map
@@ -1,18 +0,0 @@
1
- import{a as m}from"./chunk-XPOZO76D.js";import{b as h}from"./chunk-ANIOISCE.js";import{c as b}from"./chunk-RSKOYTSY.js";import{b as g}from"./chunk-RY7CAOJF.js";import{a as S}from"./chunk-64MNV6AB.js";import d from"path";function u(e){let t=e.replace(/\\/g,"/").split("/").filter(Boolean);return t.length<=1?"(root)":t.length>=3&&["src","lib","app","server","client"].includes(t[0])?`${t[0]}/${t[1]}`:t[0]}function y(e,n){if(e===n)return"ok";let t=p(e),i=p(n);return t&&i?R(t,i)?"ok":"violation":k(e,n)}function D(e,n){let t=p(u(e)),i=p(u(n));return!!t&&!!i}function p(e){return/^src\/([^/]+)$/.exec(e)?.[1]??null}function R(e,n){return n==="domain"?!0:e==="domain"?!1:{analysis:new Set(["domain","source","storage","symbols"]),core:new Set(["analysis","domain","resolution","source","storage","symbols"]),"language-parsers":new Set(["domain","resolution","source","storage"]),queries:new Set(["analysis","core","domain","language-parsers","resolution","semantic","source","storage","symbols"]),reindex:new Set(["domain","language-parsers","resolution","runtime","semantic","source","storage","symbols"]),resolution:new Set(["domain","source","storage","symbols"]),runtime:new Set(["domain","queries","reindex","resolution","semantic","source","storage","symbols"]),semantic:new Set(["domain","resolution","storage","symbols"]),source:new Set(["domain","storage"]),storage:new Set(["domain","source"]),symbols:new Set(["analysis","domain","language-parsers","resolution","semantic","source","storage"])}[e]?.has(n)??!1}function k(e,n){if(n==="shared")return"ok";let t={app:new Set(["core","shared","ui"]),core:new Set(["shared"]),infra:new Set(["core","shared"]),ui:new Set(["core","shared"])};return t[e]?t[e].has(n)?"ok":"violation":null}function X(e,n){let{scope:t,minDeviation:i=5}=n??{},r=n?.semantic!==!1,c=new m(e).fileDependencyGraph(t),a=O(e,t);return _([...x(e,c,a,{semantic:r}),...$(c),...I(c,i)])}function x(e,n,t,i){let r=[];for(let[s,c]of n){if(l(s))continue;let a=t.get(s)??new Set;for(let o of c)if(!l(o)&&!a.has(o)){if(i.semantic&&A(e,s,o)||j(e,s,o)||B(e,s,o)||L(o)||q(e,s,o)||V(o))continue;r.push({file:s,kind:"unused-import",description:`Depends on ${o} but references none of its symbols`,dep:o,actionTier:"direct",evidenceReasons:[`dependency edge exists from ${s} to ${o}`,"no semantic, source, type-only, side-effect, or Vue-template usage survived the conservative skip gates"],recommendation:"Remove the unused import or dependency edge after running the project checks."})}}return r}function $(e){let n=[],t=F(e);for(let[i,r]of e){if(l(i))continue;let s=u(i);for(let c of r){if(l(c))continue;let a=u(c);if(s===a)continue;let o=y(s,a),f=o?"explicit":"inferred";if((o??t.get(`${s}->${a}`))==="violation"){let w=f==="explicit"?"direct":"signal";n.push({file:i,kind:"layer-violation",description:`Imports from ${a}/ (${c}) \u2014 may cross architectural boundary`,dep:c,detail:`${s}/ should not depend on ${a}/`,actionTier:w,policyBasis:f,evidenceReasons:[`dependency edge exists from ${i} to ${c}`,f==="explicit"?`explicit layer policy rejects ${s}/ -> ${a}/`:`rare cross-layer edge ${s}/ -> ${a}/ is inferred as a violation`],recommendation:f==="explicit"?"Move the dependency behind an allowed layer boundary or document a policy change.":"Review whether this is a real boundary break or an intentional exception before moving code."})}}}return n}function I(e,n){let t=[];for(let[i,r]of M(e)){let s=r.filter(a=>!l(a));if(s.length<n)continue;let c=P(e,s);for(let a of s)for(let o of e.get(a)??[])l(o)||(c.get(o)??0)===1&&d.dirname(o)!==i&&d.dirname(o)!==d.dirname(i)&&(D(a,o)||t.push({file:a,kind:"pattern-deviation",description:`Only file in ${i}/ that depends on ${o}`,dep:o,actionTier:"signal",evidenceReasons:[`${s.length} sibling file(s) in ${i}/ were compared`,`${a} is the only non-skipped sibling depending on ${o}`],recommendation:"Review sibling ownership before changing this import; unique dependency shape can be intentional specialization."}))}return t}function _(e){return{results:e,unusedImports:e.filter(n=>n.kind==="unused-import").length,layerViolations:e.filter(n=>n.kind==="layer-violation").length,patternDeviations:e.filter(n=>n.kind==="pattern-deviation").length}}function M(e){let n=new Map;for(let t of e.keys()){let i=d.dirname(t),r=n.get(i);r||(r=[],n.set(i,r)),r.push(t)}return n}function P(e,n){let t=new Map;for(let i of n)for(let r of e.get(i)??[])l(r)||t.set(r,(t.get(r)??0)+1);return t}function O(e,n){let t=new Map;return E(e,t,n),T(e,t),t}function E(e,n,t){for(let i of N(e,t))v(e,n,i.from_file,i.to_file)}function N(e,n){let t=n?`AND d1.relative_path LIKE '%${n}%'`:"";return e.all(`SELECT DISTINCT d1.relative_path AS from_file, d2.relative_path AS to_file
2
- FROM mentions m
3
- JOIN chunks c ON m.chunk_id = c.id
4
- JOIN documents d1 ON c.document_id = d1.id
5
- JOIN global_symbols gs ON m.symbol_id = gs.id
6
- JOIN (
7
- SELECT m2.symbol_id, c2.document_id
8
- FROM mentions m2
9
- JOIN chunks c2 ON m2.chunk_id = c2.id
10
- WHERE m2.role = 1
11
- GROUP BY m2.symbol_id
12
- ) sym_def ON sym_def.symbol_id = gs.id
13
- JOIN documents d2 ON sym_def.document_id = d2.id
14
- WHERE d1.id != d2.id
15
- AND m.role != 1
16
- ${e.pathExclusionsFor("d1","d2")}
17
- ${t}`)}function T(e,n){new m(e).scanSourceReferences({paths:S(e,{includeIgnored:!1}),includeRustAttributeNames:!0,identifierResolution:"permissive"},i=>{i.target.relativePath!==i.sourceFile&&(e.isIgnored(i.target.relativePath)||v(e,n,i.sourceFile,i.target.relativePath))})}function v(e,n,t,i){if(e.isIgnored(t)||e.isIgnored(i))return;let r=n.get(t);r||(r=new Set,n.set(t,r)),r.add(i)}function F(e){let n=new Map;for(let[i,r]of e){if(l(i))continue;let s=u(i);for(let c of r){if(l(c))continue;let a=u(c);if(s===a||y(s,a))continue;let o=`${s}->${a}`;n.set(o,(n.get(o)??0)+1)}}let t=new Map;for(let[i,r]of n)t.set(i,r<=2?"violation":"ok");return t}function L(e){return e.includes("types")||e.endsWith(".d.ts")}function A(e,n,t){let i=b(e,n).filter(r=>r.sourcePath===t);return i.length>0&&i.some(r=>r.isUsed)}function j(e,n,t){let i=g(e,n).filter(r=>r.sourcePath===t);return i.length>0&&i.some(r=>r.used)}function B(e,n,t){let i=g(e,n).filter(r=>r.sourcePath===t);return i.length>0&&i.every(r=>r.isTypeOnly===!0)}function V(e){return e.endsWith(".vue")}function q(e,n,t){let i=g(e,n).filter(r=>r.sourcePath===t);return i.length===0?!1:i.every(r=>r.kind==="side-effect"||r.kind==="namespace"&&r.usedMembers.length===0&&!r.used)}function l(e){let n=h(e);return!!(n==="entry"||n==="barrel"||n==="test"||n==="worker"||J(d.basename(e)))}function J(e){return!!(e==="index.ts"||e==="index.js"||e==="cli.ts"||e==="main.ts"||e==="main.rs"||e.includes("worker.")||e.includes("postinstall.")||e==="health.ts"||e==="health.js")}export{X as a};
18
- //# sourceMappingURL=chunk-VAXDTQHE.js.map
@@ -1,62 +0,0 @@
1
- import{a as _,b as m,c as h,d as D,e as f,g as S}from"./chunk-JM72FNGA.js";import{c as L}from"./chunk-6TDOT7B3.js";import{a as x}from"./chunk-DS6QEB3G.js";import{a as y}from"./chunk-64MNV6AB.js";import{c as g}from"./chunk-7S5E7KWT.js";function K(e,n){return e.all(`SELECT gs.id, gs.symbol, der.document_id, der.start_line, der.end_line, d.relative_path, gs.display_name, gs.documentation
2
- FROM global_symbols gs
3
- JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
4
- JOIN documents d ON der.document_id = d.id
5
- WHERE ${n.where}
6
- ${e.pathExclusionsFor("d")}
7
- ${R(n.orderBy)}
8
- ${M(n.limit)}`,...n.params??[])}function V(e,n){return e.all(`SELECT
9
- gs.id,
10
- gs.symbol,
11
- c.document_id,
12
- MIN(c.start_line) AS start_line,
13
- MAX(c.end_line) AS end_line,
14
- d.relative_path,
15
- gs.display_name,
16
- gs.documentation
17
- FROM global_symbols gs
18
- JOIN mentions m ON m.symbol_id = gs.id
19
- JOIN chunks c ON m.chunk_id = c.id
20
- JOIN documents d ON c.document_id = d.id
21
- WHERE m.role = 1
22
- AND ${n.where}
23
- ${e.pathExclusionsFor("d")}
24
- GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path, gs.display_name, gs.documentation
25
- ${R(n.orderBy)}
26
- ${M(n.limit)}`,...n.params??[])}function R(e){return e?`ORDER BY ${e}`:""}function M(e){return typeof e=="number"?`LIMIT ${e}`:""}function N(e){return!e||!e.trim()?null:e.replace(/^```\w*\s*/,"").replace(/\s*```$/,"").replace(/^\(method\)\s*/,"").replace(/^\(property\)\s*/,"").replace(/^\(function\)\s*/,"").replace(/^\(class\)\s*/,"").replace(/^\(interface\)\s*/,"").replace(/^\(enum\)\s*/,"").replace(/^\(type alias\)\s*/,"").replace(/^\(const\)\s*/,"").replace(/^\(var\)\s*/,"").trim()||null}function w(e){if(!e)return null;let n=I(e);if(n)return n.replace(/\n/g," ");let t=e.indexOf("|");if(t===-1)return e.replace(/\n/g," ");let r=e.slice(t+1);return(I(r)??r).replace(/\n/g," ")}function I(e){return/^```(?:\w+)?\s*\n?([\s\S]*?)\n?```/.exec(e.trimStart())?.[1]?.trim()||null}function F(e){if(m(e.symbol)!==null)return!1;let t=(e.documentation??"").replace(/^```\w*\s*/,"").replace(/\s*```$/,"").trim();return/^(?:var|let|const|function|class|interface|type|enum)\b/.test(t)}function E(e,n,t={}){let r=new Map;for(let o of n)e.length>0&&!F(o)||r.set(o.id,o);for(let o of e)r.set(o.id,o);let i=[...r.values()];return t.sort?i.sort((o,s)=>o.start_line-s.start_line||o.end_line-s.end_line||o.symbol.localeCompare(s.symbol)):i}var v=g("file-definitions",{clearGroups:["definition-catalog"]}),O=new WeakMap;function p(e,n){return v.get(e,n,()=>{let t=E(k(e,n),$(e,n),{sort:!0});return P(e,n,t.map(A))})}function k(e,n){return e.all(`SELECT
27
- gs.id,
28
- gs.symbol,
29
- der.document_id,
30
- der.start_line,
31
- der.end_line,
32
- d.relative_path,
33
- gs.display_name,
34
- gs.kind,
35
- gs.documentation,
36
- gs.enclosing_symbol
37
- FROM global_symbols gs
38
- JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
39
- JOIN documents d ON der.document_id = d.id
40
- WHERE d.relative_path = ?
41
- ${e.symbolNoiseFor("gs")}
42
- ORDER BY der.start_line, der.end_line`,n)}function $(e,n){return e.all(`SELECT
43
- gs.id,
44
- gs.symbol,
45
- c.document_id,
46
- MIN(c.start_line) AS start_line,
47
- MAX(c.end_line) AS end_line,
48
- d.relative_path,
49
- gs.display_name,
50
- gs.kind,
51
- gs.documentation,
52
- gs.enclosing_symbol
53
- FROM global_symbols gs
54
- JOIN mentions m ON m.symbol_id = gs.id
55
- JOIN chunks c ON m.chunk_id = c.id
56
- JOIN documents d ON c.document_id = d.id
57
- WHERE d.relative_path = ?
58
- AND m.role = 1
59
- ${e.symbolNoiseFor("gs")}
60
- GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path
61
- ORDER BY start_line, end_line`,n)}function A(e){return{symbolId:e.id,symbol:e.symbol,documentId:e.document_id,startLine:e.start_line,endLine:e.end_line,relativePath:e.relative_path,leaf:D(e.symbol),parentTypeName:m(e.symbol),isFunctionLike:S(e.symbol),isTypeLike:f(e.symbol)==="type",kind:e.kind??null,documentation:e.documentation??null,enclosingSymbol:e.enclosing_symbol??null}}function ce(e,n={}){return Q(e,n.scope)}function Q(e,n){return y(e,{scope:n,includeIgnored:!1}).flatMap(t=>p(e,t)).filter(t=>!e.isIgnored(t.relativePath))}function de(e,n,t={}){if(n.length===0)return[];let r=n.flatMap(i=>p(e,i)).filter(i=>!e.isIgnored(i.relativePath));return t.onlyDocumented&&(r=r.filter(i=>i.documentation!==null&&i.documentation!=="")),t.sort&&(r=r.sort((i,o)=>i.relativePath.localeCompare(o.relativePath)||i.startLine-o.startLine||i.endLine-o.endLine)),r.map(i=>({startLine:i.startLine,endLine:i.endLine,symbol:i.symbol,shortName:h(i.symbol),signature:N(w(i.documentation)),relativePath:i.relativePath,enclosingSymbol:i.enclosingSymbol}))}function T(e){let n=new Map,t=e.map((r,i)=>({definition:r,index:i,span:r.endLine-r.startLine})).sort((r,i)=>r.span-i.span||r.index-i.index);for(let{definition:r}of t)for(let i=r.startLine;i<=r.endLine;i+=1)n.has(i)||n.set(i,r);return n}function me(e,n){let t=O.get(e);return t||(t=T(e),O.set(e,t)),t.get(n)??null}function ue(e,n){let t=p(e,n.relative_path).find(r=>r.symbolId===n.id);return t?{symbolId:t.symbolId,symbol:t.symbol,documentId:t.documentId,startLine:t.startLine,endLine:t.endLine,relativePath:t.relativePath}:{symbolId:n.id,symbol:n.symbol,documentId:n.document_id,startLine:n.start_line,endLine:n.end_line,relativePath:n.relative_path}}function P(e,n,t){let r=x(e,n),i=L(e,n);return i?j(t,i,r):r?B(t,r):t}function B(e,n){let t=n.split(/\r?\n/),r=J(e,t),i=H(e,r),o=W(i,t);return Y(e,o)}function J(e,n){let t=e.some(i=>b(i.symbol))?Z(n):null,r=new Map;for(let i of e)r.set(i.symbolId,G(n,t,i));return r}function H(e,n){return e.filter(t=>b(t.symbol)).map(t=>({definition:t,startLine:n.get(t.symbolId)??t.startLine})).sort((t,r)=>t.startLine-r.startLine||t.definition.startLine-r.definition.startLine||t.definition.symbol.localeCompare(r.definition.symbol))}function W(e,n){let t=new Map;for(let r=0;r<e.length;r+=1){let i=e[r],o=e[r+1],s=o?Math.max(i.startLine,o.startLine-1):n.length-1;t.set(i.definition.symbolId,{startLine:i.startLine,endLine:U(n,i.definition,i.startLine,s)})}return t}function Y(e,n){return e.map(t=>{let r=n.get(t.symbolId);return r?{...t,startLine:r.startLine,endLine:r.endLine}:t})}function j(e,n,t=null){let r=new Map;for(let i of n){let o=r.get(i.name);o?o.push(i):r.set(i.name,[i])}return e.map(i=>{if(!z(i)||!i.leaf)return C(i,t);let o=r.get(i.leaf);if(!o||o.length===0)return C(i,t);let s=o[0],a=Math.abs(s.startLine-i.startLine);for(let c=1;c<o.length;c+=1){let l=o[c],d=Math.abs(l.startLine-i.startLine);d<a&&(s=l,a=d)}return{...i,startLine:s.startLine,endLine:s.endLine}})}function z(e){return b(e.symbol)?!0:f(e.symbol)==="term"&&m(e.symbol)===null}function C(e,n){if(!n||!e.leaf||f(e.symbol)!=="term"||m(e.symbol)!==null)return e;let t=e.leaf.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`\\b(?:export\\s+)?(?:const|let|var)\\s+${t}\\b`),o=n.split(/\r?\n/).findIndex(s=>r.test(s));return o>=0?{...e,startLine:o,endLine:o}:e}function G(e,n,t){if(!b(t.symbol))return t.startLine;let r=Math.max(0,Math.min(t.startLine,e.length-1));if(!n)return r;let i=n.get(t.leaf);if(!i||i.length===0)return r;let o=null;for(let s of i){let a=Math.abs(s-t.startLine);(!o||a<o.distance)&&(o={line:s,distance:a})}return o?.line??r}function Z(e){let n=/\b(?:function|def|fn)\s+([A-Za-z_$][\w$]*)/g,t=/\b([A-Za-z_$][\w$]*)\s*[:=]\s*(?:async\s*)?(?:function\b|\()/g,r=/^\s*(?:(?:export|public|private|protected|static|readonly|async|abstract|get|set)\s+)*([A-Za-z_$][\w$]*)\s*(?:<[^(]*>)?\s*\(/,i=/\b([A-Za-z_$][\w$]*)\s*\(/g,o=new Map,s=(a,c)=>{let l=o.get(a);if(!l){o.set(a,[c]);return}l[l.length-1]!==c&&l.push(c)};for(let a=0;a<e.length;a+=1){let c=e[a]??"";for(let d of c.matchAll(n))d[1]&&s(d[1],a);for(let d of c.matchAll(t))d[1]&&s(d[1],a);let l=c.match(r);l?.[1]&&s(l[1],a);for(let d of c.matchAll(i))d[1]&&s(d[1],a)}return o}function U(e,n,t,r){let i=Math.max(t,Math.min(e.length-1,r)),o=Math.max(t,Math.min(i,n.endLine)),s=0,a=0,c=!1;for(let l=t;l<=i;l+=1){let d=X(e[l]??"");for(let u of d)u==="{"?(s+=1,c=!0):u==="}"?s=Math.max(0,s-1):u==="("?a+=1:u===")"&&(a=Math.max(0,a-1));if(c&&s===0||!c&&a===0&&l>=o)return l}return o}function X(e){let n="",t=null,r=!1;for(let i=0;i<e.length;i+=1){let o=e[i],s=e[i+1];if(!t&&o==="/"&&s==="/"){n+=" ".repeat(e.length-i);break}if(t){if(r){r=!1,n+=" ";continue}if(o==="\\"){r=!0,n+=" ";continue}o===t&&(t=null),n+=" ";continue}if(o==='"'||o==="'"||o==="`"){t=o,n+=" ";continue}n+=o}return n}function b(e){return e.includes("().")}function fe(e){let n=_(e);if("kind"in n)return[];let t=[];for(let r=n.descriptors.length-2;r>=0;r-=1){let i=n.descriptors[r];i?.suffix==="type"&&i.name&&t.push(i.name)}return t}export{K as a,V as b,N as c,w as d,E as e,p as f,ce as g,Q as h,de as i,T as j,me as k,ue as l,fe as m};
62
- //# sourceMappingURL=chunk-X3BJUFSN.js.map
@@ -1,2 +0,0 @@
1
- import{b as g,f as E,g as q}from"./chunk-ANIOISCE.js";import{a as R}from"./chunk-BGBBVSH4.js";import{b as H,c as W,d as Y}from"./chunk-YNSVAJR6.js";import{c as O}from"./chunk-ZMU6IWDK.js";import{a as j,j as B,k as V,m as F,n as G}from"./chunk-AETMKBZR.js";import{a as k}from"./chunk-2YI45TNM.js";import{f as K,h}from"./chunk-X3BJUFSN.js";import{f as N,g as P,i as A,j as w}from"./chunk-JM72FNGA.js";import{a as M,f as S}from"./chunk-6TDOT7B3.js";import{a as y,b as L}from"./chunk-BTCASU5J.js";import{a as v,d as p}from"./chunk-DS6QEB3G.js";import{c as T}from"./chunk-A536TEU4.js";import{a as C}from"./chunk-64MNV6AB.js";function _(n,e,r){let a=e.identifierResolution==="strict"?F:G,o=e.candidateNames?B(e.candidateNames):null;for(let t of e.paths)if(!(!y(t)&&!(e.includeVueSfc&&L(t)))&&!n.isIgnored(t)&&!e.skipPath?.(t))try{if(o&&!V(v(n,t),o))continue;let f=(i,l,D,b)=>{if(e.candidateNames&&!e.candidateNames.has(i))return;let I=e.resolveTargets?e.resolveTargets({sourceFile:t,name:i,kind:l,defaultTargets:b}):b();for(let d of I)r({sourceFile:t,name:i,target:d,occurrences:D,kind:l})},m=j(n,t);for(let[i,l]of m)f(i,"identifier",l.length,()=>a(n,t,i));for(let i of S(n,t,{includeCrossLanguageDispatchNames:e.includeCrossLanguageDispatchNames,includeRustAttributeNames:e.includeRustAttributeNames})){let l=i.kind==="cross-language-dispatch"?()=>F(n,t,i.name):()=>a(n,t,i.name);f(i.name,i.kind,i.occurrences,l)}}finally{e.afterPath?.(t)}}function z(n,e={}){let{scope:r,minLoc:a=1,maxLoc:o=Number.POSITIVE_INFINITY,excludeSymbol:t,excludeEntrySurfaces:u=!1,excludeTypesFiles:f=!1,excludeRootedSymbols:m=!1,requireFunctionLikeSymbol:i=!1,requireCallableSymbol:l=!1,excludeRustTraitImplMembers:D=!1,includeSuppressed:b=!1,sortByLocDesc:I=!1}=e,d=[];for(let s of h(n,r)){let c=s.relativePath;if(n.isIgnored(c)||u&&E(n,c)||!Q(s,{requireFunctionLikeSymbol:i,requireCallableSymbol:l})||t!==void 0&&s.symbol===t)continue;let x=R(s);x<a||x>o||f&&U(c)||m&&q(n,s.symbol,c)||D&&A(s.symbol)||g(c)!=="test"&&(w(s.symbol)||!b&&p(n,c,s.startLine)||d.push(s))}return I?d.sort((s,c)=>R(c)-R(s)):d}function Q(n,e){return e.requireCallableSymbol?N(n.symbol):e.requireFunctionLikeSymbol?P(n.symbol):n.isFunctionLike}function U(n){return(n.split("/").pop()??"").includes("types")}var J=class{constructor(e){this.db=e}db;scopedDefinitions(e){return h(this.db,e)}definitionsForFile(e){return K(this.db,e)}productionCallableDefinitions(e={}){return z(this.db,e)}calleeMap(e,r={}){return O(this.db,e,r)}crossFileCallerMap(e,r={}){return H(this.db,e,r)}sourceFallbackCallerFiles(e){return W(this.db,e)}callerFileMap(e,r={}){return Y(this.db,e,r)}frameworkReferencedSymbolIds(e){let r=new Map;for(let o of e){if(!o.leaf)continue;let t=r.get(o.leaf)??[];t.push(o.symbolId),r.set(o.leaf,t)}let a=new Set;for(let o of C(this.db,{includeIgnored:!1}))if(y(o)==="rust")for(let{name:t}of S(this.db,o,{includeRustAttributeNames:!0}))for(let u of r.get(t)??[])a.add(u);return a}symbolsWithNonSelfCallees(e,r={}){if(e.length===0)return new Set;let a=new Map(e.map(t=>[t.symbolId,t.symbol])),o=this.calleeMap(e,r);return new Set([...o.entries()].filter(([t,u])=>{let f=a.get(t);return u.some(m=>m.symbol!==f)}).map(([t])=>t))}fileDependencyGraph(e){return k(this.db,e)}fileKind(e){return g(e)}hasSuppressionComment(e){return p(this.db,e.relativePath,e.startLine)}sourceFiles(){return T(this.db)}scanSourceReferences(e,r){_(this.db,e,r)}callableSignature(e){let r=M(this.db,e.relativePath)?.callables.find(a=>a.startLine===e.startLine&&a.endLine===e.endLine);return r?{paramCount:r.paramCount}:null}};export{J as a};
2
- //# sourceMappingURL=chunk-XPOZO76D.js.map
@@ -1,2 +0,0 @@
1
- import{c as s,d as l}from"./chunk-BZ53S4ZN.js";import{a as u}from"./chunk-PVZMPG5I.js";import{a as p,b as m,c as f}from"./chunk-YWOOQ4FF.js";import{e as c}from"./chunk-BTCASU5J.js";function A(i,t={}){let{minSimilarity:r=.62,minTokens:e=8,limit:a=20,scope:d,scanLimit:g,filePattern:h}=t,k=c(i,{scope:d,minJsxTokens:e,scanLimit:g}).filter(n=>n.kind==="component").map(n=>({file:n.file,component:n.name,tokens:n.jsxTokens,profile:n}));return u({profiles:k,limit:a,filePattern:h,compare:(n,o)=>P(n,o,r),sort:(n,o)=>o.similarity-n.similarity||n.fileA.localeCompare(o.fileA)||n.componentA.localeCompare(o.componentA)||n.fileB.localeCompare(o.fileB)||n.componentB.localeCompare(o.componentB)})}function P(i,t,r){let e=p(i.tokens,t.tokens);if(e.size<6||!B(e))return null;let a=f(i.tokens,t.tokens);return a<r?null:{fileA:i.file,componentA:i.component,fileB:t.file,componentB:t.component,similarity:a,sharedTokens:l(e),sharedComponents:s(e,"component:"),sharedNativeTags:s(e,"native:"),sharedProps:s(e,"prop:"),sharedEvents:s(e,"event:"),sharedBindings:s(e,"binding:"),uniqueToA:l(m(i.tokens,t.tokens)).slice(0,25),uniqueToB:l(m(t.tokens,i.tokens)).slice(0,25),locA:i.profile.loc,locB:t.profile.loc}}function B(i){let t=0,r=0;for(let e of i)e.startsWith("component:")&&(t+=1),(e.startsWith("prop:")||e.startsWith("event:")||e.startsWith("native:")||e.startsWith("jsx:"))&&(r+=1);return t>=1||r>=4}export{A as a};
2
- //# sourceMappingURL=chunk-XWC67C3Q.js.map
@@ -1,2 +0,0 @@
1
- import{b as h}from"./chunk-ZMU6IWDK.js";import{e as y,g as S,h as g,i as M,o as C}from"./chunk-AETMKBZR.js";import{e as R}from"./chunk-RSKOYTSY.js";import{g as b}from"./chunk-X3BJUFSN.js";import{d as m,f as p}from"./chunk-6TDOT7B3.js";import{a as f}from"./chunk-BTCASU5J.js";import{a as u}from"./chunk-64MNV6AB.js";function D(e,n,t={}){let o=new Map;if(n&&n.length===0)return o;let i=u(e,{includeIgnored:!1}),a=M(e),r=n??b(e),l=new Set(r.map(s=>s.symbolId));return k(e,o,i,a,l),I(e,o,r,l),x(e,o,i,a,l),t.semantic!==!1&&_(o,R(e,A(r))),o}function k(e,n,t,o,i){for(let a of t){if(!f(a))continue;let r=m(e,a);if(r)for(let l of r){let s=S(a,o.get(l.calleeLeaf)??[]);if(!s||s.length===0)continue;let c=g(e,a,s,l.memberAccess);c&&i.has(c.symbolId)&&c.file!==a&&d(n,c.symbolId,a)}}}function I(e,n,t,o){let i=v(t);for(let a of L(e,o))e.isIgnored(a.relative_path)||w(a,i.get(a.symbol_id))||d(n,a.symbol_id,a.relative_path)}function L(e,n){return y(e,n?[...n]:void 0)}function v(e){let n=new Map;for(let t of e)n.set(t.symbolId,{docId:t.documentId,startLine:t.startLine,endLine:t.endLine});return n}function w(e,n){return!!n&&n.docId===e.document_id&&e.chunk_start>=n.startLine&&e.chunk_end<=n.endLine}function x(e,n,t,o,i){for(let a of t){if(f(a)!=="rust")continue;let r=p(e,a,{includeRustAttributeNames:!0});if(r.length!==0)for(let{name:l}of r){let s=o.get(l);if(s)for(let c of s)i.has(c.symbolId)&&c.file!==a&&d(n,c.symbolId,a)}}}function d(e,n,t){let o=e.get(n);o||(o=new Set,e.set(n,o)),o.add(t)}function A(e){return e.filter(n=>"relativePath"in n&&"symbol"in n&&"leaf"in n)}function _(e,n){for(let[t,o]of n){let i=e.get(t);i||(i=new Set,e.set(t,i));for(let a of o)i.add(a)}}function O(e,n,t={}){return h(e,n,t)}function F(e,n,t={}){return D(e,n,t)}function j(e,n){return C(e,n)}function Q(e,n,t={}){let o=F(e,n,{semantic:t.semantic});return t.sourceFallback===!1?o:V(o,j(e,n))}function V(e,n){let t=new Map;for(let[o,i]of e)t.set(o,new Set(i));for(let[o,i]of n){let a=t.get(o)??new Set;for(let r of i)a.add(r);t.set(o,a)}return t}export{O as a,F as b,j as c,Q as d,V as e};
2
- //# sourceMappingURL=chunk-YNSVAJR6.js.map