scip-query 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -0
- package/README.md +255 -884
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-CI3O6PQG.js +2 -0
- package/dist/call-graph-6QTUTXH7.js +2 -0
- package/dist/call-graph-evidence-lZa2dwQA.d.ts +11 -0
- package/dist/change-analysis-types-CCtoCHbC.d.ts +9 -0
- package/dist/chunk-26CT72HM.js +2 -0
- package/dist/{chunk-7PIO7NKH.js → chunk-2COFMIVK.js} +2 -2
- package/dist/chunk-2H4IAJHO.js +2 -0
- package/dist/chunk-2I3RSUWX.js +16 -0
- package/dist/chunk-2RP27XLR.js +2 -0
- package/dist/chunk-2ZBMOQGG.js +3 -0
- package/dist/{chunk-HX4GQPZP.js → chunk-32A42O5B.js} +3 -3
- package/dist/chunk-35ELD3RM.js +2 -0
- package/dist/chunk-35IW3P4H.js +2 -0
- package/dist/{chunk-DQGFVPUV.js → chunk-3653GTR7.js} +3 -3
- package/dist/chunk-3EX7DNBC.js +2 -0
- package/dist/chunk-3FQ3KMCD.js +2 -0
- package/dist/{chunk-5E4WNAVD.js → chunk-3PII3JI5.js} +2 -2
- package/dist/chunk-3TNRNKAT.js +2 -0
- package/dist/chunk-3VLJ2DCA.js +2 -0
- package/dist/{chunk-XSRF6Q77.js → chunk-46JLFIGA.js} +2 -2
- package/dist/chunk-4DCKBY6T.js +5 -0
- package/dist/chunk-4EXFZP6H.js +2 -0
- package/dist/chunk-4IIMPWMR.js +29 -0
- package/dist/chunk-4ILHWBYF.js +2 -0
- package/dist/chunk-4N6QSEMZ.js +10 -0
- package/dist/chunk-4OE2JO6I.js +2 -0
- package/dist/{chunk-7BAVHKMJ.js → chunk-4S4DF62J.js} +9 -9
- package/dist/chunk-4UUCUASK.js +554 -0
- package/dist/chunk-5236NQV3.js +2 -0
- package/dist/chunk-54EOGFBR.js +2 -0
- package/dist/{chunk-LY4WC4AD.js → chunk-5H7IWVXJ.js} +2 -2
- package/dist/chunk-5IZTXSOL.js +117 -0
- package/dist/{chunk-AZJQQKDD.js → chunk-5SE323LF.js} +2 -2
- package/dist/chunk-5ZJH6DDE.js +2 -0
- package/dist/chunk-63MBA7EG.js +3 -0
- package/dist/chunk-6BJ7SOY7.js +2 -0
- package/dist/chunk-6GJAP4OE.js +2 -0
- package/dist/chunk-6IEVHGWG.js +26 -0
- package/dist/chunk-6SWA6B24.js +7 -0
- package/dist/chunk-6T7H2AFY.js +3 -0
- package/dist/chunk-73Z33VFI.js +4 -0
- package/dist/chunk-7COHFNJK.js +38 -0
- package/dist/chunk-7HU2IJ2T.js +3 -0
- package/dist/chunk-7IOAZRVL.js +60 -0
- package/dist/chunk-7KCZELVM.js +2 -0
- package/dist/chunk-7PPYXENX.js +2 -0
- package/dist/chunk-7TWP3MCP.js +2 -0
- package/dist/chunk-AA7K3XLM.js +21 -0
- package/dist/chunk-AJVMVE7X.js +7 -0
- package/dist/chunk-ANWGXPPN.js +4 -0
- package/dist/chunk-APLKXICZ.js +3 -0
- package/dist/{chunk-JDOEX4E6.js → chunk-AQDWTCDC.js} +2 -2
- package/dist/chunk-AUP6YI5M.js +2 -0
- package/dist/chunk-B7ECWJAZ.js +2 -0
- package/dist/{chunk-ZHXX42OH.js → chunk-BATIVRU2.js} +4 -4
- package/dist/chunk-BBEDPVPB.js +4 -0
- package/dist/chunk-BBWPOMGU.js +2 -0
- package/dist/chunk-BD6CV7PN.js +2 -0
- package/dist/{chunk-XKWKXZKW.js → chunk-BHE44MHT.js} +2 -2
- package/dist/chunk-BOJ5SVE2.js +2 -0
- package/dist/chunk-BZYSGZRK.js +2 -0
- package/dist/chunk-CA5RE6H7.js +2 -0
- package/dist/chunk-CKDOY6JA.js +2 -0
- package/dist/chunk-CN2WGM7D.js +2 -0
- package/dist/chunk-COTMS5KM.js +3 -0
- package/dist/chunk-CSDDOUA4.js +3 -0
- package/dist/chunk-CT5SI2I4.js +2 -0
- package/dist/chunk-D5EKVZPI.js +2 -0
- package/dist/{chunk-FKSELJQF.js → chunk-D5W4UZY5.js} +2 -2
- package/dist/{chunk-RUJURYSV.js → chunk-DEUGHURX.js} +2 -2
- package/dist/chunk-DHKBIOXF.js +7 -0
- package/dist/chunk-DMQ7ZKJG.js +81 -0
- package/dist/chunk-DMUGTKMD.js +2 -0
- package/dist/chunk-DOPCR5BY.js +2 -0
- package/dist/chunk-DRENNWRG.js +2 -0
- package/dist/chunk-E4EJBGDZ.js +2 -0
- package/dist/chunk-E7BJXRNV.js +2 -0
- package/dist/chunk-EA4SH4U5.js +5 -0
- package/dist/{chunk-L7AW2QB5.js → chunk-EKZRF57O.js} +2 -2
- package/dist/chunk-ELNRLMC5.js +29 -0
- package/dist/chunk-F4FNK44D.js +2 -0
- package/dist/chunk-F7WQ337U.js +308 -0
- package/dist/chunk-FEQIQ26E.js +2 -0
- package/dist/chunk-FGB567HK.js +23 -0
- package/dist/chunk-FHV7NMFU.js +29 -0
- package/dist/chunk-FN6EJM6Q.js +2 -0
- package/dist/chunk-FTSQNONX.js +2 -0
- package/dist/chunk-FUG6RPYY.js +6 -0
- package/dist/chunk-G2F6T5BV.js +2 -0
- package/dist/chunk-G6OGPXJW.js +9 -0
- package/dist/chunk-GFLTPNWV.js +3 -0
- package/dist/chunk-GTDP2SKQ.js +2 -0
- package/dist/chunk-H46QMB7E.js +2 -0
- package/dist/chunk-H5EXS3HM.js +2 -0
- package/dist/chunk-HEOMG7IM.js +8 -0
- package/dist/chunk-HG5YI7PV.js +2 -0
- package/dist/{chunk-7SQQWSY3.js → chunk-HGKEAP7F.js} +2 -2
- package/dist/chunk-HUZNZ3H2.js +2 -0
- package/dist/chunk-HWLCBKFE.js +2 -0
- package/dist/chunk-I3U2FN2T.js +13 -0
- package/dist/{chunk-JAYYFEQY.js → chunk-I7PFL5P3.js} +2 -2
- package/dist/{chunk-2HPVVXM5.js → chunk-ICHBVITH.js} +2 -2
- package/dist/chunk-ICUQONOG.js +38 -0
- package/dist/chunk-IDPLC3FI.js +5 -0
- package/dist/{chunk-A73XVBCR.js → chunk-IGKKTHJR.js} +2 -2
- package/dist/chunk-IOKWFRFQ.js +4 -0
- package/dist/chunk-IPAL6DP2.js +3 -0
- package/dist/chunk-IUJ3ZFEE.js +7 -0
- package/dist/chunk-IXJ26KJJ.js +16 -0
- package/dist/chunk-IYV2YBHM.js +2 -0
- package/dist/chunk-JVZNWJBH.js +2 -0
- package/dist/chunk-K5MZYZV7.js +3 -0
- package/dist/{chunk-3G66UZBH.js → chunk-KFK7GF5C.js} +2 -2
- package/dist/chunk-KTRGJLY7.js +18 -0
- package/dist/chunk-KW6B5OL4.js +2 -0
- package/dist/chunk-KWARB5FZ.js +2 -0
- package/dist/chunk-LHTT5C3Z.js +2 -0
- package/dist/chunk-LPGDO2XA.js +3 -0
- package/dist/chunk-LXLD46LH.js +21 -0
- package/dist/chunk-MEI3PTUK.js +2 -0
- package/dist/chunk-MJNV7OCG.js +5 -0
- package/dist/chunk-MO226P4Q.js +4 -0
- package/dist/{chunk-3CLX5EOX.js → chunk-MOBF2GH6.js} +2 -2
- package/dist/chunk-MXNGIEPU.js +3 -0
- package/dist/chunk-MYUKI5VN.js +4 -0
- package/dist/{chunk-TFRAYKN6.js → chunk-N5C65OFK.js} +2 -2
- package/dist/{chunk-PXY7F6Y4.js → chunk-O2RM7E7L.js} +5 -5
- package/dist/chunk-OFUBXBYX.js +3 -0
- package/dist/chunk-OFY4HTMI.js +2 -0
- package/dist/chunk-OIRWZIYL.js +38 -0
- package/dist/chunk-OIVZ7PW6.js +438 -0
- package/dist/chunk-ORBKAUCH.js +4 -0
- package/dist/chunk-OUB4J26T.js +2 -0
- package/dist/chunk-OVPS2ILI.js +20 -0
- package/dist/chunk-PHSPBQM6.js +5 -0
- package/dist/{chunk-JVYA47YU.js → chunk-PIZY2GX6.js} +2 -2
- package/dist/chunk-PNISDVYC.js +3 -0
- package/dist/chunk-PQOL42AW.js +2 -0
- package/dist/chunk-PUVZNFVY.js +11 -0
- package/dist/chunk-PZEI2TVL.js +4 -0
- package/dist/{chunk-ZK26BAQL.js → chunk-Q2J2VZZT.js} +2 -2
- package/dist/chunk-Q7HB7BFJ.js +2 -0
- package/dist/{chunk-ZTETIQ35.js → chunk-QBANU5BQ.js} +2 -2
- package/dist/chunk-QD7IFBCR.js +10 -0
- package/dist/chunk-QDCCHMVZ.js +2 -0
- package/dist/chunk-QLQBZOJH.js +3 -0
- package/dist/{chunk-PQCI4SQX.js → chunk-QXR5QPSF.js} +2 -2
- package/dist/chunk-R2MOKIVO.js +2 -0
- package/dist/{chunk-EN3O7VJA.js → chunk-RFWAUHVW.js} +2 -2
- package/dist/chunk-RGCJ4646.js +16 -0
- package/dist/{chunk-BPAPWKP6.js → chunk-S3RTPPLQ.js} +8 -8
- package/dist/chunk-S73HBCGI.js +11 -0
- package/dist/chunk-SDPA5DKN.js +210 -0
- package/dist/chunk-SEUJVWT2.js +3 -0
- package/dist/chunk-SF7X6QNW.js +2 -0
- package/dist/chunk-SKUMCCC5.js +2 -0
- package/dist/chunk-SSSJO4RG.js +2 -0
- package/dist/chunk-SWFAFA4G.js +49 -0
- package/dist/chunk-SYUNTKO2.js +2 -0
- package/dist/chunk-T6FRID7Y.js +3 -0
- package/dist/chunk-TGWNNMPF.js +3 -0
- package/dist/chunk-TM5XEDDR.js +4 -0
- package/dist/chunk-TNOHGHZQ.js +2 -0
- package/dist/chunk-U2GPTA5U.js +3 -0
- package/dist/{chunk-SXP2MBJH.js → chunk-U7DR7MJD.js} +2 -2
- package/dist/chunk-U7LRSQG6.js +3 -0
- package/dist/chunk-UL4VJUMD.js +2 -0
- package/dist/chunk-UNORWZIJ.js +16 -0
- package/dist/chunk-UQ7XPRWU.js +2 -0
- package/dist/{chunk-6SHPK5ZE.js → chunk-URMZLV2N.js} +2 -2
- package/dist/chunk-URTX2BEA.js +6 -0
- package/dist/chunk-UZFCZ7SJ.js +2 -0
- package/dist/{chunk-KMKTIO2G.js → chunk-V7LQZTTZ.js} +2 -2
- package/dist/chunk-VETXXOYU.js +3 -0
- package/dist/chunk-VGRUM7JI.js +3 -0
- package/dist/{chunk-WXZLAAWK.js → chunk-VNKYRJKN.js} +2 -2
- package/dist/chunk-VWLIOEEF.js +11 -0
- package/dist/chunk-WB6LGCFB.js +6 -0
- package/dist/{chunk-W4ETQAXM.js → chunk-WK4FD4PG.js} +2 -2
- package/dist/{chunk-O64IZ6UX.js → chunk-WKPZCQLI.js} +2 -2
- package/dist/chunk-WSG3DK5H.js +2 -0
- package/dist/chunk-WULAPQUD.js +38 -0
- package/dist/chunk-WZQFY5S7.js +4 -0
- package/dist/chunk-X434XZAI.js +2 -0
- package/dist/chunk-X7PJJYKX.js +29 -0
- package/dist/chunk-XDAUYDFT.js +2 -0
- package/dist/chunk-XITQLISP.js +2 -0
- package/dist/chunk-XRXCANFQ.js +4 -0
- package/dist/chunk-XVDMJMES.js +3 -0
- package/dist/chunk-XXJ7WL3F.js +35 -0
- package/dist/chunk-Y4XQ7LES.js +9 -0
- package/dist/chunk-YIEFEPG6.js +16 -0
- package/dist/chunk-YRVERHJR.js +49 -0
- package/dist/{chunk-CJST5ETY.js → chunk-YUFWLWIC.js} +2 -2
- package/dist/chunk-YUKYB54I.js +1 -0
- package/dist/chunk-Z3GCK3PD.js +3 -0
- package/dist/chunk-ZBNL3QCY.js +4 -0
- package/dist/chunk-ZD3Z54IW.js +2 -0
- package/dist/chunk-ZDVDSDFG.js +4 -0
- package/dist/{chunk-32LVLCLN.js → chunk-ZHSARYVS.js} +3 -3
- package/dist/{chunk-BDCC2NPY.js → chunk-ZW44MCJM.js} +2 -2
- package/dist/{chunk-N5W4YZMK.js → chunk-ZYREOING.js} +2 -2
- package/dist/cli-main.js +8 -0
- package/dist/cli.js +1 -3
- package/dist/code-CczEvHui.d.ts +121 -0
- package/dist/code-EQL6ZBLH.js +2 -0
- package/dist/code-result-json-6E4J6LGZ.js +2 -0
- package/dist/command-descriptors-QH3G2OVD.js +346 -0
- package/dist/{config-types-jVM3D7MA.d.ts → config-types-Cm-VSEBb.d.ts} +189 -23
- package/dist/dataflow-2BLMUZBP.js +2 -0
- package/dist/{db-B5PM5yNk.d.ts → db-LKJXAlNS.d.ts} +1 -1
- package/dist/dependence-slice-MGAJDZXB.js +2 -0
- package/dist/deps-GQMUYVKW.js +2 -0
- package/dist/direct-navigation-6RUJKLAV.js +3 -0
- package/dist/entry-map-V2NQP5JU.js +2 -0
- package/dist/exploration-topology-BG4v30HZ.d.ts +256 -0
- package/dist/file-dep-graph-Bqg3t3Px.d.ts +4 -0
- package/dist/file-kind-BKCVMNUf.d.ts +10 -0
- package/dist/files-VM53I4IU.js +2 -0
- package/dist/graph-evidence-CbUPCSKV.d.ts +126 -0
- package/dist/graph-exploration-contract-CqDsnPQL.d.ts +7 -0
- package/dist/{health-Do5TKSJI.d.ts → health-Wl5G_LRt.d.ts} +33 -34
- package/dist/hierarchy-D553WRSZ.js +2 -0
- package/dist/imports-DOZAJWLW.js +2 -0
- package/dist/index.d.ts +4 -31
- package/dist/index.js +1 -1
- package/dist/members-HE67475K.js +2 -0
- package/dist/methods-K5JK4PPH.js +2 -0
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +90 -0
- package/dist/output-continuation-command-LKBUTNRL.js +3 -0
- package/dist/output-pagination-VAWOGX4R.js +19 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-4ARU6QCM.js +3 -0
- package/dist/queries/affected.d.ts +22 -4
- package/dist/queries/affected.js +1 -1
- package/dist/queries/anchors.d.ts +123 -0
- package/dist/queries/anchors.js +2 -0
- package/dist/queries/architecture.d.ts +3 -2
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.d.ts +26 -7
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.d.ts +2 -2
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +17 -3
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +2 -2
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +2 -2
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +2 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +5 -26
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity-hotspots.d.ts +2 -2
- package/dist/queries/complexity-hotspots.js +1 -1
- package/dist/queries/complexity.d.ts +2 -2
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +145 -0
- package/dist/queries/context.js +2 -0
- package/dist/queries/convergence.d.ts +2 -2
- package/dist/queries/convergence.js +1 -1
- package/dist/queries/coupling.d.ts +8 -3
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.d.ts +34 -7
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dataflow.d.ts +40 -14
- package/dist/queries/dataflow.js +1 -1
- package/dist/queries/dead.d.ts +2 -2
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.d.ts +3 -3
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/deep-chains.d.ts +4 -38
- package/dist/queries/deep-chains.js +1 -1
- package/dist/queries/dependence-slice.d.ts +47 -0
- package/dist/queries/dependence-slice.js +2 -0
- package/dist/queries/dependency-depth.d.ts +49 -0
- package/dist/queries/dependency-depth.js +2 -0
- package/dist/queries/deps.d.ts +4 -2
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -3
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.d.ts +4 -4
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +2 -2
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +2 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +121 -0
- package/dist/queries/entry-map.js +2 -0
- package/dist/queries/evidence.d.ts +70 -0
- package/dist/queries/evidence.js +2 -0
- package/dist/queries/extract-candidates.d.ts +2 -2
- package/dist/queries/extract-candidates.js +1 -1
- package/dist/queries/fan.d.ts +18 -5
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.d.ts +2 -2
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +4 -3
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +5 -3
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +11 -5
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +2 -2
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +4 -4
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +56 -136
- package/dist/queries/index.js +1 -1
- package/dist/queries/isolated.d.ts +2 -2
- package/dist/queries/isolated.js +1 -1
- package/dist/queries/locality-candidates.d.ts +2 -2
- package/dist/queries/locality-candidates.js +1 -1
- package/dist/queries/members.d.ts +2 -2
- package/dist/queries/members.js +1 -1
- package/dist/queries/methods.d.ts +2 -2
- package/dist/queries/methods.js +1 -1
- package/dist/queries/not-implemented.d.ts +3 -3
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.d.ts +2 -2
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +5 -9
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/plan-context.d.ts +27 -64
- package/dist/queries/plan-context.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +2 -2
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +2 -2
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +2 -2
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.d.ts +2 -2
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +2 -2
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/reference-neighborhood.d.ts +4 -0
- package/dist/queries/reference-neighborhood.js +2 -0
- package/dist/queries/reference-reachability.d.ts +48 -0
- package/dist/queries/reference-reachability.js +2 -0
- package/dist/queries/refs.d.ts +2 -2
- package/dist/queries/refs.js +1 -1
- package/dist/queries/self-audit.d.ts +2 -2
- package/dist/queries/self-audit.js +1 -1
- package/dist/queries/similar-chains.d.ts +2 -2
- package/dist/queries/similar-chains.js +1 -1
- package/dist/queries/similar-files.d.ts +2 -2
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.d.ts +2 -2
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +2 -2
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice.d.ts +3 -36
- package/dist/queries/slice.js +1 -1
- package/dist/queries/source-inspection.d.ts +209 -0
- package/dist/queries/source-inspection.js +2 -0
- package/dist/queries/source-search.d.ts +13 -0
- package/dist/queries/source-search.js +2 -0
- package/dist/queries/stale-abstractions.d.ts +2 -2
- package/dist/queries/stale-abstractions.js +1 -1
- package/dist/queries/stats.d.ts +2 -2
- package/dist/queries/surface.d.ts +13 -4
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.d.ts +2 -2
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system-map.d.ts +449 -0
- package/dist/queries/system-map.js +2 -0
- package/dist/queries/system.d.ts +5 -3
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +2 -2
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/trace.d.ts +47 -3
- package/dist/queries/trace.js +1 -1
- package/dist/queries/twin-ab.d.ts +3 -3
- package/dist/queries/twin-ab.js +1 -1
- package/dist/queries/twin-drift.d.ts +3 -3
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.d.ts +2 -2
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +2 -2
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/value-flow.d.ts +43 -0
- package/dist/queries/value-flow.js +2 -0
- package/dist/queries/vue-component-duplicates.d.ts +2 -2
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.d.ts +2 -2
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.d.ts +2 -2
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/queries/wrapper-candidates.d.ts +2 -2
- package/dist/queries/wrapper-candidates.js +1 -1
- package/dist/query-service-fastpath.js +6 -0
- package/dist/query-service-server.js +5 -0
- package/dist/refs-NBHKL4UQ.js +2 -0
- package/dist/refs-pagination-BBVTIHMH.js +2 -0
- package/dist/reindex-worker.js +27 -45
- package/dist/reindex.d.ts +62 -42
- package/dist/reindex.js +32 -33
- package/dist/repository-text-C0Q8VYdN.d.ts +19 -0
- package/dist/runtime.d.ts +286 -7
- package/dist/runtime.js +4 -3
- package/dist/rust-semantic-session-server.js +1 -1
- package/dist/rust-semantic-session-worker.js +1 -1
- package/dist/rust-semantic-worker.js +1 -1
- package/dist/{scip-cli-BnEwZRLJ.d.ts → scip-cli-CppzF5MK.d.ts} +33 -2
- package/dist/slice-U6S6LBSB.js +2 -0
- package/dist/source-search-types-Dwz8KeuW.d.ts +79 -0
- package/dist/source-snippet-_wrcgmZc.d.ts +15 -0
- package/dist/stats-OOJ74B32.js +2 -0
- package/dist/surface-C7SS5CDQ.js +2 -0
- package/dist/symbol-resolution-3FVEKDTJ.js +2 -0
- package/dist/system-6K2NOO5C.js +2 -0
- package/dist/trace-II5K2TMH.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/value-flow-MKFUUE5B.js +2 -0
- package/dist/watch-server.js +3 -2
- package/docs/AGENT_GUIDE.md +133 -476
- package/docs/AI_FAILURE_MODES.md +30 -301
- package/docs/API.md +1 -1
- package/docs/API_EVOLUTION.md +6 -0
- package/docs/CLI_JSON_OUTPUT.md +207 -29
- package/docs/COMMAND_REFERENCE.md +255 -154
- package/docs/CONFIGURATION_WRITE_SAFETY.md +14 -13
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +84 -0
- package/docs/DETECTOR_GUIDE.md +46 -138
- package/docs/DURABILITY.md +7 -1
- package/docs/INDEX_GENERATIONS.md +6 -0
- package/docs/LOCK_PROTOCOL.md +8 -0
- package/docs/REINDEX_METADATA_COMPATIBILITY.md +13 -3
- package/docs/SECURITY_MODEL.md +39 -42
- package/docs/accuracy-audit-checklist.md +4 -0
- package/docs/accuracy-hardening-goal.md +9 -2
- package/docs/analyzer-inventory.md +59 -264
- package/docs/analyzer-validation-protocol.md +62 -170
- package/docs/architecture-coherence-vision.md +18 -12
- package/docs/locality-analyzer-design.md +1 -1
- package/docs/schemas/cli-json-envelope.schema.json +212 -27
- package/docs/schemas/cli-json-export-receipt.schema.json +25 -0
- package/docs/schemas/cli-output-page.schema.json +1 -1
- package/docs/schemas/observation-receipt.schema.json +164 -0
- package/docs/schemas/project-config.schema.json +27 -45
- package/docs/schemas/suppression-record.schema.json +1 -34
- package/package.json +65 -8
- package/skills/concrete-plan/SKILL.md +8 -0
- package/skills/concrete-plan/agents/openai.yaml +4 -0
- package/skills/scip-explore/SKILL.md +3 -85
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-integrity-audit/SKILL.md +185 -0
- package/skills/scip-integrity-audit/agents/openai.yaml +4 -0
- package/skills/scip-plan/SKILL.md +67 -49
- package/skills/scip-plan/agents/openai.yaml +3 -3
- package/skills/scip-query/SKILL.md +77 -77
- package/skills/scip-query/agents/openai.yaml +3 -3
- package/skills/scip-setup/SKILL.md +10 -102
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/chunk-26QA6FAI.js +0 -8
- package/dist/chunk-2KAZEZ6M.js +0 -2
- package/dist/chunk-3ORVDL3H.js +0 -2
- package/dist/chunk-46XGSFNI.js +0 -2
- package/dist/chunk-4MAK2HOY.js +0 -6
- package/dist/chunk-4TURLRL5.js +0 -16
- package/dist/chunk-4UQVNCQE.js +0 -2
- package/dist/chunk-55Q3WLZX.js +0 -2
- package/dist/chunk-5I5G2QOX.js +0 -3
- package/dist/chunk-6LDJQXAH.js +0 -2
- package/dist/chunk-6O5TICIZ.js +0 -3
- package/dist/chunk-7O5IKBTZ.js +0 -16
- package/dist/chunk-7S5E7KWT.js +0 -2
- package/dist/chunk-7WPLAODU.js +0 -5
- package/dist/chunk-AFHORGLH.js +0 -42
- package/dist/chunk-AIE7TFJW.js +0 -9
- package/dist/chunk-AQOFWNQJ.js +0 -1
- package/dist/chunk-B2PX5I6M.js +0 -2
- package/dist/chunk-B75HZHUP.js +0 -2
- package/dist/chunk-B7PBSLZN.js +0 -2
- package/dist/chunk-BBW6JFHN.js +0 -2
- package/dist/chunk-BNXCIFVY.js +0 -2
- package/dist/chunk-BS2NMXQZ.js +0 -4
- package/dist/chunk-C3KV2II6.js +0 -2
- package/dist/chunk-C43RDDP4.js +0 -20
- package/dist/chunk-DAFAHMNB.js +0 -42
- package/dist/chunk-DQLPXMH6.js +0 -8
- package/dist/chunk-EKZTZXHZ.js +0 -117
- package/dist/chunk-EW2NTSFA.js +0 -18
- package/dist/chunk-F3Z4OUDS.js +0 -8
- package/dist/chunk-FJH2NW7J.js +0 -66
- package/dist/chunk-FTFP6O3L.js +0 -11
- package/dist/chunk-FYLK2DEJ.js +0 -2
- package/dist/chunk-GH74ASD6.js +0 -11
- package/dist/chunk-GMXWZP2B.js +0 -2
- package/dist/chunk-GOUBFH5O.js +0 -3
- package/dist/chunk-HLF2TX6R.js +0 -2
- package/dist/chunk-HX7M4BDI.js +0 -30
- package/dist/chunk-HZ72SESS.js +0 -128
- package/dist/chunk-IB2N4FIY.js +0 -10
- package/dist/chunk-IZYYAFN5.js +0 -2
- package/dist/chunk-JFGGXWQF.js +0 -947
- package/dist/chunk-JN4NMBEX.js +0 -8
- package/dist/chunk-JW56N3KI.js +0 -4
- package/dist/chunk-JZ2OXNWB.js +0 -2
- package/dist/chunk-KFZNKUNT.js +0 -2
- package/dist/chunk-L5GJNV2T.js +0 -8
- package/dist/chunk-L7JDSCDF.js +0 -4
- package/dist/chunk-LU47HG23.js +0 -14
- package/dist/chunk-LVY7NPF7.js +0 -2
- package/dist/chunk-MKCDWWGV.js +0 -4
- package/dist/chunk-MNE7YG56.js +0 -2
- package/dist/chunk-MRXBEXSY.js +0 -26
- package/dist/chunk-MV7OWDUX.js +0 -2
- package/dist/chunk-NGEXCJJW.js +0 -11
- package/dist/chunk-NIW6JDC5.js +0 -29
- package/dist/chunk-PBUQFCNB.js +0 -16
- package/dist/chunk-POAVPHH7.js +0 -2
- package/dist/chunk-QZ4JVECJ.js +0 -2
- package/dist/chunk-RDO52JGY.js +0 -2
- package/dist/chunk-RJT3TUUZ.js +0 -2
- package/dist/chunk-RVLDN63O.js +0 -4
- package/dist/chunk-RXOXSKY3.js +0 -2
- package/dist/chunk-S7OYBOCK.js +0 -2
- package/dist/chunk-SMNXQT5Z.js +0 -3
- package/dist/chunk-SRAFT254.js +0 -2
- package/dist/chunk-T7YQSHPQ.js +0 -3
- package/dist/chunk-UJCOIXDY.js +0 -2
- package/dist/chunk-UJPRPGCO.js +0 -13
- package/dist/chunk-WCCFZ7V7.js +0 -113
- package/dist/chunk-WUPW3UN3.js +0 -3
- package/dist/chunk-X54AGLVX.js +0 -2
- package/dist/chunk-Y2MVPNKY.js +0 -5
- package/dist/chunk-YKUU5AIC.js +0 -3
- package/dist/chunk-YLCJLTPL.js +0 -2
- package/dist/chunk-YTQVETEO.js +0 -2
- package/dist/chunk-Z4N3MZYA.js +0 -38
- package/dist/chunk-ZJOOT3BG.js +0 -2
- package/dist/command-descriptors-DSS46KXI.js +0 -642
- package/dist/diff-gate-types-B0QYpDv1.d.ts +0 -11
- package/dist/direct-navigation-6YHV6IB5.js +0 -3
- package/dist/queries/diff-gate.d.ts +0 -253
- package/dist/queries/diff-gate.js +0 -2
- package/docs/COMMITTED_RECORD_COMPATIBILITY.md +0 -154
- package/docs/analyzer-validation-ledger.md +0 -516
- package/docs/schemas/outcome-event-record.schema.json +0 -95
- package/skills/_shared/SKILL.md +0 -101
- package/skills/_shared/agents/openai.yaml +0 -4
- package/skills/_shared/references/agent-contract-catalog.md +0 -105
- package/skills/_shared/references/command-catalog.md +0 -118
- package/skills/_shared/references/detector-precision-and-diffgate.md +0 -59
- package/skills/_shared/references/evidence-and-dead-code.md +0 -25
- package/skills/scip-audit/SKILL.md +0 -77
- package/skills/scip-audit/agents/openai.yaml +0 -4
- package/skills/scip-audit/references/claims.md +0 -98
- package/skills/scip-audit/references/cleanup.md +0 -100
- package/skills/scip-audit/references/directory.md +0 -222
- package/skills/scip-audit/references/frontend.md +0 -130
- package/skills/scip-audit/references/integrity.md +0 -154
- package/skills/scip-audit/references/maintainability.md +0 -162
- package/skills/scip-audit/references/twin-drift.md +0 -104
- package/skills/scip-diagnose/SKILL.md +0 -52
- package/skills/scip-diagnose/agents/openai.yaml +0 -4
- package/skills/scip-diagnose/references/debug.md +0 -117
- package/skills/scip-diagnose/references/probe-reachability.md +0 -77
- package/skills/scip-diagnose/references/root-cause.md +0 -145
- package/skills/scip-diagnose/references/triage.md +0 -119
- package/skills/scip-explore/references/diagrams.md +0 -40
- package/skills/scip-explore/references/language-playbook.md +0 -49
- package/skills/scip-improve/SKILL.md +0 -56
- package/skills/scip-improve/agents/openai.yaml +0 -4
- package/skills/scip-improve/references/cleanup-batches.md +0 -53
- package/skills/scip-improve/references/directory-moves.md +0 -53
- package/skills/scip-improve/references/doc-reconcile.md +0 -30
- package/skills/scip-improve/references/frontend-extraction.md +0 -39
- package/skills/scip-improve/references/maintainability-mechanism.md +0 -43
- package/skills/scip-improve/references/twin-drift.md +0 -35
- package/skills/scip-plan/references/api-impact.md +0 -19
- package/skills/scip-plan/references/conductor.md +0 -41
- package/skills/scip-plan/references/high-assurance.md +0 -43
- package/skills/scip-plan/references/hyper-optimization.md +0 -50
- package/skills/scip-plan/references/tla-model.md +0 -88
- package/skills/scip-setup/references/bootstrap-workflow.md +0 -119
- package/skills/scip-setup/references/language-verification.md +0 -61
- package/skills/scip-setup/references/lifecycle-commands.md +0 -119
- package/skills/scip-setup/references/per-repo-triage.md +0 -24
- package/skills/scip-verify/SKILL.md +0 -229
- package/skills/scip-verify/agents/openai.yaml +0 -4
- package/skills/scip-verify/references/calibrate-detectors.md +0 -170
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as a}from"./chunk-BOJ5SVE2.js";import{a as m}from"./chunk-6BJ7SOY7.js";import{a as b,b as S}from"./chunk-ICUQONOG.js";import{o as y}from"./chunk-RGCJ4646.js";import{a as f}from"./chunk-LPGDO2XA.js";import{d as r}from"./chunk-5IZTXSOL.js";function u(o,l,t={}){let i=f(o,l);if(!i)return null;let g=[{file:i.relativePath,line:i.startLine}],s=y(o,i,{semantic:t.semantic,semanticEvidence:m}).map(e=>({file:e.file,line:e.line,enclosingSymbol:e.enclosingSymbol??"(top-level)",enclosingShort:e.enclosingSymbol?r(e.enclosingSymbol):"(top-level)"})),{outgoingCalls:c,incomingCalls:n}=h(o,i,s,{semantic:t.semantic!==!1});return{symbol:i.symbol,shortName:r(i.symbol),relativePath:i.relativePath,definitionSites:g.filter(e=>!o.isIgnored(e.file)),referenceSites:s,outgoingCalls:c.filter(e=>!o.isIgnored(e.file)).map(e=>({symbol:e.symbol,shortName:r(e.symbol),file:e.file})),incomingCalls:n.filter(e=>!o.isIgnored(e.file)).map(e=>({symbol:e.symbol,shortName:e.symbol===e.file?"(top-level)":r(e.symbol),file:e.file}))}}function A(o,l,t={}){let i=u(o,l,t);return i?{symbol:i.symbol,shortName:i.shortName,relativePath:i.relativePath,definitionSites:i.definitionSites,usageSites:i.referenceSites,producers:i.outgoingCalls,consumers:i.incomingCalls}:null}function h(o,l,t,i){let g=a(b(o,l,{limit:30,semantic:i.semantic,semanticEvidence:m}).map(n=>({symbol:n.symbol,file:n.file}))),s=a(S(o,l,{limit:30,semantic:i.semantic,semanticEvidence:m})),c=s.length>0?s:a(t.map(n=>({symbol:n.enclosingSymbol==="(top-level)"?n.file:n.enclosingSymbol,file:n.file})));return{outgoingCalls:g,incomingCalls:c}}export{u as a,A as b};
|
|
2
|
+
//# sourceMappingURL=chunk-5236NQV3.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as f,c as g}from"./chunk-F4FNK44D.js";import{$ as p,aa as x,h as d}from"./chunk-4DCKBY6T.js";function U(n){if(!n)return;let e=Number(n);return Number.isInteger(e)&&e>0?e:void 0}import{execFileSync as b}from"child_process";import{createHash as v}from"crypto";import{existsSync as s,statSync as j}from"fs";import{createRequire as B}from"module";import{platform as N}from"os";import{dirname as m,join as a}from"path";var S=B(import.meta.url),G={language:"rust",indexerBinary:"rust-analyzer",installUrl:"https://github.com/rust-lang/rust-analyzer"};function l(n){return[n.indexerBinary,...n.binaryAliases??[]]}function k(n){let e=l(n);return e.length===1?e[0]:e.join(" or ")}function u(n){for(let e of l(n)){let r=g(e);if(r)return r}return O(n)}function W(n){return u(n)!==null||L(n)}function L(n){return I(n)!==null}function O(n){let e=I(n);if(!e)return null;let t=JSON.parse(d(e,"indexer package manifest")).bin;if(!t)return null;if(typeof t=="string")return a(m(e),t);for(let o of l(n)){let i=t[o];if(i)return a(m(e),i)}return null}function I(n){if(!n.bundledNpmPackage)return null;try{return S.resolve(`${n.bundledNpmPackage}/package.json`)}catch{return null}}function E(n,e){for(let r of n.projectLocalBinaries??[]){let t=a(e,r);if(s(t))return t}return null}function w(n,e){for(let r of n.projectLocalBinaries??[]){let t=a(e,r);if(s(t))return T(e,r,t)}return null}function Y(n,e){let r=D(n,e);if(!r||r.canonicalPath!==e.canonicalPath||r.sha256!==e.sha256||r.size!==e.size||r.mtimeMs!==e.mtimeMs||r.device!==e.device||r.inode!==e.inode||r.executable!==e.executable)throw new Error(`refusing changed project-local indexer ${e.relativePath}; review the current file and rerun with --trust-project-tools`)}function D(n,e){try{return T(n,e.relativePath,e.configuredPath)}catch{return null}}function T(n,e,r){let t={maxBytes:268435456,inputKind:"project-local indexer"},o=p(n,e,t),i=x(n,e,t),h=j(o.absolutePath);return{configuredPath:r,canonicalPath:o.absolutePath,relativePath:e,sha256:v("sha256").update(i).digest("hex"),size:o.size,mtimeMs:o.mtimeMs,device:o.device,inode:o.inode,executable:(h.mode&73)!==0}}function R(n,e,r={}){return(r.trustProjectTools?w(n,e)?.canonicalPath:null)??u(n)}function Z(n,e=process.env,r=n.indexerBinary){if(n.indexerBinary!=="scip-dotnet"||c(r,e))return e;let t=P(r,e);return t?{...e,DOTNET_ROOT:t}:e}function Q(n,e,r={}){let t=k(n),o=e?R(n,e,r):u(n);if(!o)return{language:n.language,binaryLabel:t,installed:!1,runnable:!1,resolvedBinary:null,installUrl:n.installUrl,...e&&E(n,e)?{note:"project-local indexer available only with --trust-project-tools"}:{}};if(n.indexerBinary!=="scip-dotnet")return{language:n.language,binaryLabel:t,installed:!0,runnable:!0,resolvedBinary:o};let i=J(o);return{language:n.language,binaryLabel:t,installed:!0,runnable:i.runnable,resolvedBinary:o,installUrl:n.installUrl,note:i.note}}function J(n){if(c(n,process.env))return{runnable:!0};let e=P(n,process.env);if(e)return{runnable:!0,note:`using .NET 9 runtime from ${e}`};let r=y(process.env);return{runnable:!1,note:r.length>0?`.NET 9 runtime still unavailable after checking ${r.join(", ")}`:"binary is present, but scip-dotnet still needs a .NET 9 runtime"}}function P(n,e){for(let r of y(e))if(c(n,{...e,DOTNET_ROOT:r}))return r;return null}function y(n){let e=[],r=n.DOTNET_ROOT;if(r&&s(r)&&e.push(r),N()==="darwin"&&f("brew"))try{let t=b("brew",["--prefix","dotnet@9"],{stdio:"pipe",env:n,timeout:1e4,killSignal:"SIGKILL"}).toString().trim(),o=a(t,"libexec");s(o)&&!e.includes(o)&&e.push(o)}catch{}return e}function c(n,e){try{return b(n,["--version"],{stdio:"pipe",env:e,timeout:1e4,killSignal:"SIGKILL"}),!0}catch{return!1}}export{G as a,k as b,u as c,W as d,E as e,w as f,Y as g,Z as h,Q as i,U as j};
|
|
2
|
+
//# sourceMappingURL=chunk-54EOGFBR.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as f}from"./chunk-
|
|
1
|
+
import{c as f}from"./chunk-JVZNWJBH.js";import{a as b,d as g}from"./chunk-HEOMG7IM.js";import{d as m}from"./chunk-5IZTXSOL.js";import{v as u,w as _,y as a}from"./chunk-I3U2FN2T.js";import{a as l}from"./chunk-AA7K3XLM.js";import{x as p}from"./chunk-DMQ7ZKJG.js";function B(e,t={}){let{scope:o,limit:r}=t,i=new f(e),s=T([...x(e,o),...y(e,i,o)]);return F(s),r?s.slice(0,r):s}function x(e,t){let o=[];for(let r of N(e,t)){if(e.isIgnored(r.barrel_path)||e.isIgnored(r.original_path)||g(e,r.barrel_path)||p(e,r.barrel_path)&&a(e,r.barrel_path).length===0)continue;let i=I(e,r),s=i?.barrel_consumers??0,n=i?.direct_consumers??0;s!==0||n!==0||o.push({barrelFile:r.barrel_path,symbol:r.symbol,shortName:m(r.symbol),originalFile:r.original_path,barrelConsumers:s,directConsumers:n,...h(e,r.barrel_path)})}return o}function N(e,t){let o=t?"AND barrel_d.relative_path LIKE ?":"",r=t?[`%${t}%`]:[];return e.all(`WITH barrel_refs AS MATERIALIZED (
|
|
2
2
|
SELECT DISTINCT
|
|
3
3
|
barrel_d.id AS barrel_doc_id,
|
|
4
4
|
barrel_d.relative_path AS barrel_path,
|
|
@@ -71,4 +71,4 @@ import{c as f}from"./chunk-UJCOIXDY.js";import{a as b,e as g}from"./chunk-26QA6F
|
|
|
71
71
|
${e.pathExclusionsFor("consumer_d")}
|
|
72
72
|
GROUP BY consumer_d.id
|
|
73
73
|
)`,t.barrel_doc_id,t.symbol_id,t.barrel_doc_id,t.original_doc_id)}function y(e,t,o){let r=[],i=C(e);for(let s of O(e,o))E(i,s,s)>0||r.push(...D(e,t,s,i));return r}function O(e,t){return l(e,{scope:t,includeIgnored:!1}).filter(o=>a(e,o).length>0||u(e,o).length>0)}function D(e,t,o,r){let i=a(e,o).filter(n=>n.sourcePath&&!e.isIgnored(n.sourcePath)).flatMap(n=>R(e,t,o,n.sourcePath,r,[A(n.specifier)])),s=u(e,o).filter(n=>n.sourcePath&&!e.isIgnored(n.sourcePath)).flatMap(n=>R(e,t,o,n.sourcePath,r,n.kind==="named"&&n.names.length>0?n.names:[n.kind==="star"?`* from ${n.sourcePath}`:`* namespace from ${n.sourcePath}`]));return[...i,...s]}function R(e,t,o,r,i,s){let n=t.definitionsForFile(r);return s.map(c=>{let d=n.find(S=>S.leaf===c);return{barrelFile:o,symbol:d?.symbol??`source-reexport:${o}:${c}`,shortName:d?m(d.symbol):c,originalFile:r,barrelConsumers:0,directConsumers:E(i,r,o),...h(e,o)}})}function A(e){return e.split("::").at(-1)?.split("/").at(-1)?.replace(/\.[^.]+$/,"")??e}function h(e,t){return b(e,t)?{actionTier:"signal",surfaceEvidence:["barrel file is declared on the package public surface"],recommendation:"Review the package API before removing this re-export; local consumers are zero, but external consumers may import through the public barrel."}:{actionTier:"direct",surfaceEvidence:[],recommendation:"Remove this unused re-export when the barrel is not part of an external API surface."}}function C(e){let t=new Map;for(let o of l(e,{includeIgnored:!1}))for(let r of _(e,o)){if(!r.sourcePath)continue;let i=t.get(r.sourcePath)??new Set;i.add(o),t.set(r.sourcePath,i)}return t}function E(e,t,o){let r=e.get(t);return r?r.size-(r.has(o)?1:0):0}function T(e){let t=new Set,o=[];for(let r of e){let i=`${r.barrelFile}|${r.symbol}|${r.originalFile}`;t.has(i)||(t.add(i),o.push(r))}return o}function F(e){e.sort((t,o)=>o.directConsumers-t.directConsumers||t.barrelFile.localeCompare(o.barrelFile)||t.shortName.localeCompare(o.shortName))}export{B as a};
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
74
|
+
//# sourceMappingURL=chunk-5H7IWVXJ.js.map
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import{a as I,m as A,p as v,v as P,w as Q}from"./chunk-I3U2FN2T.js";import{C as w,a as D}from"./chunk-AA7K3XLM.js";import{c as S,d as N,h,i as x,n as _,u as C,w as O,x as T,z as $}from"./chunk-DMQ7ZKJG.js";var te={"/":"namespace","#":"type",".":"term","[":"type-param",":":"meta","!":"macro"};function u(e){if(e.startsWith("local "))return{kind:"local",id:e.slice(6),raw:e};let n=e.split(" ");if(n.length<4)return{scheme:n[0]??"",manager:n[1]??"",packageName:n[2]??"",version:"",descriptors:[],raw:e};let t=n[0],i=n[1],r=e.slice(t.length+1+i.length+1),s;if(r.startsWith("`")){let l=r.indexOf("`",1);l===-1?(s=r.slice(1),r=""):(s=r.slice(1,l),r=r.slice(l+2))}else{let l=r.indexOf(" ");l===-1?(s=r,r=""):(s=r.slice(0,l),r=r.slice(l+1))}let o,a=r.indexOf(" ");a===-1?(o=r,r=""):(o=r.slice(0,a),r=r.slice(a+1));let c=ie(r);return{scheme:t,manager:i,packageName:s,version:o,descriptors:c,raw:e}}function p(e){let n=u(e);if("kind"in n)return null;for(let t=n.descriptors.length-2;t>=0;t--){let i=n.descriptors[t];if(i?.suffix==="type")return i.name}return null}function ie(e){let n=[],t=0;for(;t<e.length;){if(e[t]==="["){let s=e.indexOf("]",t+1);if(s===-1){n.push({name:e.slice(t+1),suffix:"type-param"});break}n.push({name:e.slice(t+1,s),suffix:"type-param"}),t=s+1;continue}if(e[t]==="("&&(n.length===0||t===0||j(e[t-1]))){let s=e.indexOf(")",t+1);if(s!==-1&&e[s+1]!=="."){n.push({name:e.slice(t+1,s),suffix:"parameter"}),t=s+1;continue}}let i;if(e[t]==="`"){let s=e.indexOf("`",t+1);if(s===-1){i=e.slice(t+1),n.push({name:i,suffix:"term"});break}i=e.slice(t+1,s),t=s+1}else{let s=t;for(;t<e.length&&!j(e[t]);)t++;i=e.slice(s,t)}if(t>=e.length){i&&n.push({name:i,suffix:"term"});break}let r=e[t];if(r==="("){let s=e.indexOf(")",t+1);s!==-1&&e[s+1]==="."?(n.push({name:i,suffix:"method"}),t=s+2):s!==-1?(n.push({name:i,suffix:"method"}),t=s+1):(n.push({name:i,suffix:"term"}),t++)}else{let s=te[r];s&&n.push({name:i,suffix:s}),t+=1}}return n}function j(e){return e==="/"||e==="#"||e==="."||e==="("||e==="["||e===":"||e==="!"}function B(e){let n=u(e);if("kind"in n&&n.kind==="local")return`local:${n.id}`;let t=n;if(t.descriptors.length===0)return t.raw;let i=[];for(let r of t.descriptors){let s=re(r);s&&i.push(s)}return i.join(":")}function re(e){let n=e.suffix==="namespace"?se(e.name):e.name;return n?e.suffix==="method"?`${n}()`:n:""}function se(e){return e.replace(/\.(ts|tsx|js|jsx|mjs|cjs)$/,"").replace(/\.(py|pyi)$/,"").replace(/\.(rs)$/,"").replace(/\.(java|scala|kt|kts)$/,"").replace(/\.(rb)$/,"").replace(/\.(go)$/,"").replace(/\.(cs|vb)$/,"").replace(/\.(dart)$/,"").replace(/\.(php)$/,"").replace(/\.(c|cc|cpp|cxx|h|hpp)$/,"")}function W(e){let n=u(e);if("kind"in n&&n.kind==="local")return n.id;let t=n;return t.descriptors.length===0?"":t.descriptors[t.descriptors.length-1].name}function g(e){let n=u(e);if("kind"in n&&n.kind==="local")return null;let t=n;return t.descriptors[t.descriptors.length-1]?.suffix??null}function je(e){return e.endsWith("().")||g(e)==="method"}function L(e){let n=g(e);return n==="method"?!0:n!=="term"?!1:e.endsWith("().")?!0:e.startsWith("rust-analyzer ")&&e.includes("#")?!1:e.startsWith("scip-typescript ")?!/#[A-Za-z0-9_$]+\.$/.test(e):!0}function Be(e){return g(e)==="namespace"}var oe=/^rust-analyzer\b.*[\s/]impl#\[[^\]]+\]\[[^\]]+\]/;function We(e){return oe.test(e)}var ae=new Set(["test","tests","_tests"]);function Je(e){let n=u(e);if("kind"in n)return!1;for(let t=0;t<n.descriptors.length-1;t+=1){let i=n.descriptors[t];if(i?.suffix==="namespace"&&i.name&&ae.has(i.name))return!0}return!1}function ze(e,n){let t=u(e),i=u(n);if("kind"in t||"kind"in i)return!1;let r=t.descriptors,s=i.descriptors;if(s.length!==r.length+1)return!1;for(let o=0;o<r.length;o++){let a=r[o],c=s[o];if(a.name!==c.name||a.suffix!==c.suffix)return!1}return!0}function He(e,n){let t=u(e),i=u(n);if("kind"in t||"kind"in i)return!1;let r=t.descriptors,s=i.descriptors;if(s.length<=r.length)return!1;for(let o=0;o<r.length;o++){let a=r[o],c=s[o];if(a.name!==c.name||a.suffix!==c.suffix)return!1}return!0}function Ue(e,n){return e.all(`SELECT gs.id, gs.symbol, der.document_id, der.start_line, der.start_char, der.end_line, der.end_char, 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
|
+
${z(n.orderBy)}
|
|
8
|
+
${H(n.limit)}`,...n.params??[])}function Ke(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
|
+
0 AS start_char,
|
|
14
|
+
MAX(c.end_line) AS end_line,
|
|
15
|
+
0 AS end_char,
|
|
16
|
+
d.relative_path,
|
|
17
|
+
gs.display_name,
|
|
18
|
+
gs.documentation
|
|
19
|
+
FROM global_symbols gs
|
|
20
|
+
JOIN mentions m ON m.symbol_id = gs.id
|
|
21
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
22
|
+
JOIN documents d ON c.document_id = d.id
|
|
23
|
+
WHERE m.role = 1
|
|
24
|
+
AND ${n.where}
|
|
25
|
+
${e.pathExclusionsFor("d")}
|
|
26
|
+
GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path, gs.display_name, gs.documentation
|
|
27
|
+
${z(n.orderBy)}
|
|
28
|
+
${H(n.limit)}`,...n.params??[])}function z(e){return e?`ORDER BY ${e}`:""}function H(e){return typeof e=="number"?`LIMIT ${e}`:""}function G(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 U(e){if(!e)return null;let n=J(e);if(n)return n.replace(/\n/g," ");let t=e.indexOf("|");if(t===-1)return e.replace(/\n/g," ");let i=e.slice(t+1);return(J(i)??i).replace(/\n/g," ")}function J(e){return/^```(?:\w+)?\s*\n?([\s\S]*?)\n?```/.exec(e.trimStart())?.[1]?.trim()||null}function b(e){return{forFile(n,t){return K(e,n,t)},forFiles(n,t){let i=new Map;for(let r of n)i.set(r,K(e,r,t));return i}}}function K(e,n,t){let i={file:n},r=t.facts||t.identifiers;if(t.text&&(i.text=T(e,n)),t.lines&&(i.lines=$(e,n)),t.ast&&(i.ast=w(e,n)),t.imports&&(i.imports=Q(e,n)),t.reexports&&(i.reexports=P(e,n)),r){let s=A(e,n),o=s.facts;t.facts&&(i.facts=o),s.unavailable&&(i.sourceFactsUnavailable=s.unavailable),t.identifiers&&o&&(i.identifiers=o.fileIdentifiers,i.identifierLineMap=o.identifierLineMap)}return i}function le(e,n={}){if(p(e.symbol)!==null)return n.includeClassMemberFallbacks===!0;let r=(e.documentation??"").replace(/^```\w*\s*/,"").replace(/\s*```$/,"").trim();return/^(?:var|let|const|function|class|interface|type|enum)\b/.test(r)}function F(e,n,t={}){let i=new Map;for(let s of n)e.length>0&&!le(s,{includeClassMemberFallbacks:t.includeClassMemberFallbacks})||i.set(s.id,s);for(let s of e)i.set(s.id,s);let r=[...i.values()];return t.sort?r.sort((s,o)=>s.start_line-o.start_line||s.end_line-o.end_line||s.symbol.localeCompare(o.symbol)):r}function gn(e){let n=new Map;for(let t of e){if(!t.leaf)continue;let i=n.get(t.leaf)??[];i.push(t),n.set(t.leaf,i)}return n}var ce=S("file-definitions",{clearGroups:["definition-catalog"]}),de=N("scoped-matched-definitions",{clearGroups:["definition-catalog"]}),ue=S("file-function-like-definitions",{clearGroups:["definition-catalog"]}),Y=new WeakMap;function E(e,n,t={},i){return t.includeClassMemberFallbacks?R(e,n,void 0,{includeClassMemberFallbacks:!0},i):ce.get(e,n,()=>{let r=m(i,"evidence-read",()=>V(e,n));if(r)return r;let s=R(e,n,void 0,t,i);return m(i,"evidence-write",()=>{let o=x(e),a=b(e).forFile(n,{text:!0}).text;o&&a&&q.write(e,n,h(e,n,a),{projectFingerprint:o,definitions:s.map(c=>({...c}))})}),s})}function fe(e,n){return ue.get(e,n,()=>{let t=V(e,n);return t?t.filter(i=>i.isFunctionLike):R(e,n,i=>i.isFunctionLike)})}var q=C({kind:"file-definitions",invalidation:O("file-definitions"),serialize:me,deserialize:pe});function V(e,n){let t=x(e);if(!t)return null;let i=b(e).forFile(n,{text:!0}).text;if(!i)return null;let r=q.read(e,n,h(e,n,i));return r?ge(r,t,n):null}function me(e){return JSON.stringify(e)}function pe(e){try{let n=JSON.parse(e);return!_(n)||typeof n.projectFingerprint!="string"||!Array.isArray(n.definitions)?null:{projectFingerprint:n.projectFingerprint,definitions:n.definitions}}catch{return null}}function ge(e,n,t){if(e.projectFingerprint!==n)return null;let i=[];for(let r of e.definitions){let s=be(r,t);if(!s)return null;i.push(s)}return i}function be(e,n){return!_(e)||typeof e.symbolId!="number"||typeof e.symbol!="string"||typeof e.documentId!="number"||typeof e.startLine!="number"||typeof e.startChar!="number"&&e.startChar!==void 0||typeof e.endLine!="number"||typeof e.endChar!="number"&&e.endChar!==void 0||e.relativePath!==n||typeof e.leaf!="string"||typeof e.parentTypeName!="string"&&e.parentTypeName!==null||typeof e.isFunctionLike!="boolean"||typeof e.isTypeLike!="boolean"||typeof e.kind!="number"&&e.kind!==null||typeof e.documentation!="string"&&e.documentation!==null||typeof e.enclosingSymbol!="string"&&e.enclosingSymbol!==null?null:{symbolId:e.symbolId,symbol:e.symbol,documentId:e.documentId,startLine:e.startLine,startChar:e.startChar,endLine:e.endLine,endChar:e.endChar,relativePath:e.relativePath,leaf:e.leaf,parentTypeName:e.parentTypeName,isFunctionLike:e.isFunctionLike,isTypeLike:e.isTypeLike,kind:e.kind,documentation:e.documentation,enclosingSymbol:e.enclosingSymbol}}function R(e,n,t,i={},r){let s=m(r,"primary-rows",()=>ye(e,n)),o=m(r,"fallback-rows",()=>Se(e,n)),a=m(r,"merge-rows",()=>F(s,o,{sort:!0,includeClassMemberFallbacks:i.includeClassMemberFallbacks}).map(k));return t&&(a=a.filter(t)),m(r,"range-correction",()=>M(e,n,a,r,i.rangeCorrectionEvidence))}function m(e,n,t){return e?e(n,t):t()}function ye(e,n){return e.all(`SELECT
|
|
29
|
+
gs.id,
|
|
30
|
+
gs.symbol,
|
|
31
|
+
der.document_id,
|
|
32
|
+
der.start_line,
|
|
33
|
+
der.start_char,
|
|
34
|
+
der.end_line,
|
|
35
|
+
der.end_char,
|
|
36
|
+
d.relative_path,
|
|
37
|
+
gs.display_name,
|
|
38
|
+
gs.kind,
|
|
39
|
+
gs.documentation,
|
|
40
|
+
gs.enclosing_symbol
|
|
41
|
+
FROM global_symbols gs
|
|
42
|
+
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
43
|
+
JOIN documents d ON der.document_id = d.id
|
|
44
|
+
WHERE d.relative_path = ?
|
|
45
|
+
${e.symbolNoiseFor("gs")}
|
|
46
|
+
ORDER BY der.start_line, der.end_line`,n)}function Se(e,n){return e.all(`SELECT
|
|
47
|
+
gs.id,
|
|
48
|
+
gs.symbol,
|
|
49
|
+
c.document_id,
|
|
50
|
+
MIN(c.start_line) AS start_line,
|
|
51
|
+
0 AS start_char,
|
|
52
|
+
MAX(c.end_line) AS end_line,
|
|
53
|
+
0 AS end_char,
|
|
54
|
+
d.relative_path,
|
|
55
|
+
gs.display_name,
|
|
56
|
+
gs.kind,
|
|
57
|
+
gs.documentation,
|
|
58
|
+
gs.enclosing_symbol
|
|
59
|
+
FROM global_symbols gs
|
|
60
|
+
JOIN mentions m ON m.symbol_id = gs.id
|
|
61
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
62
|
+
JOIN documents d ON c.document_id = d.id
|
|
63
|
+
WHERE d.relative_path = ?
|
|
64
|
+
AND m.role = 1
|
|
65
|
+
${e.symbolNoiseFor("gs")}
|
|
66
|
+
GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path
|
|
67
|
+
ORDER BY start_line, end_line`,n)}function k(e){return{symbolId:e.id,symbol:e.symbol,documentId:e.document_id,startLine:e.start_line,startChar:e.start_char??0,endLine:e.end_line,endChar:e.end_char??0,relativePath:e.relative_path,leaf:W(e.symbol),parentTypeName:p(e.symbol),isFunctionLike:L(e.symbol),isTypeLike:g(e.symbol)==="type",kind:e.kind??null,documentation:e.documentation??null,enclosingSymbol:e.enclosing_symbol??null}}function bn(e,n={}){return he(e,n.scope)}function he(e,n){return D(e,{scope:n,includeIgnored:!1}).flatMap(t=>E(e,t)).filter(t=>!e.isIgnored(t.relativePath))}function yn(e,n){return D(e,{scope:n,includeIgnored:!1}).flatMap(t=>fe(e,t)).filter(t=>!e.isIgnored(t.relativePath))}function Sn(e,n){let t=de.get(e,()=>new WeakMap),i=t.get(n.symbolMatches);i||(i=new Map,t.set(n.symbolMatches,i));let r=JSON.stringify({scope:n.scope??null,sqlPrefilter:n.sqlPrefilter??null}),s=i.get(r);if(s)return[...s];let o=X(xe(e,n.scope,n.sqlPrefilter)),a=X(De(e,n.scope,n.sqlPrefilter)),c=new Set([...o.keys(),...a.keys()]),l=[];for(let d of[...c].sort()){if(e.isIgnored(d))continue;let f=F(o.get(d)??[],a.get(d)??[],{sort:!0}).filter(ne=>n.symbolMatches(ne.symbol));f.length!==0&&l.push(...M(e,d,f.map(k)))}return i.set(r,l),[...l]}function xe(e,n,t){let i=n?"AND d.relative_path LIKE ?":"",r=t?`AND ${ee("gs",t)}`:"",s=n?[`%${n}%`]:[];return e.all(`SELECT
|
|
68
|
+
gs.id,
|
|
69
|
+
gs.symbol,
|
|
70
|
+
der.document_id,
|
|
71
|
+
der.start_line,
|
|
72
|
+
der.start_char,
|
|
73
|
+
der.end_line,
|
|
74
|
+
der.end_char,
|
|
75
|
+
d.relative_path,
|
|
76
|
+
gs.display_name,
|
|
77
|
+
gs.kind,
|
|
78
|
+
gs.documentation,
|
|
79
|
+
gs.enclosing_symbol
|
|
80
|
+
FROM global_symbols gs
|
|
81
|
+
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
82
|
+
JOIN documents d ON der.document_id = d.id
|
|
83
|
+
WHERE 1 = 1
|
|
84
|
+
${e.pathExclusionsFor("d")}
|
|
85
|
+
${i}
|
|
86
|
+
${r}
|
|
87
|
+
${e.symbolNoiseFor("gs")}
|
|
88
|
+
ORDER BY d.relative_path, der.start_line, der.end_line`,...s)}function De(e,n,t){let i=n?"AND d.relative_path LIKE ?":"",r=t?`AND ${ee("gs",t)}`:"",s=n?[`%${n}%`]:[];return e.all(`SELECT
|
|
89
|
+
gs.id,
|
|
90
|
+
gs.symbol,
|
|
91
|
+
c.document_id,
|
|
92
|
+
MIN(c.start_line) AS start_line,
|
|
93
|
+
0 AS start_char,
|
|
94
|
+
MAX(c.end_line) AS end_line,
|
|
95
|
+
0 AS end_char,
|
|
96
|
+
d.relative_path,
|
|
97
|
+
gs.display_name,
|
|
98
|
+
gs.kind,
|
|
99
|
+
gs.documentation,
|
|
100
|
+
gs.enclosing_symbol
|
|
101
|
+
FROM global_symbols gs
|
|
102
|
+
JOIN mentions m ON m.symbol_id = gs.id
|
|
103
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
104
|
+
JOIN documents d ON c.document_id = d.id
|
|
105
|
+
WHERE m.role = 1
|
|
106
|
+
AND NOT EXISTS (
|
|
107
|
+
SELECT 1
|
|
108
|
+
FROM defn_enclosing_ranges existing_der
|
|
109
|
+
WHERE existing_der.symbol_id = gs.id
|
|
110
|
+
)
|
|
111
|
+
${e.pathExclusionsFor("d")}
|
|
112
|
+
${i}
|
|
113
|
+
${r}
|
|
114
|
+
${e.symbolNoiseFor("gs")}
|
|
115
|
+
GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path
|
|
116
|
+
ORDER BY d.relative_path, start_line, end_line`,...s)}function _e(e){return`(${e}.symbol LIKE '%().' OR ${e}.symbol LIKE '%()')`}function ee(e,n){return n==="callable"?_e(e):Ie(e)}function Ie(e){return`(${e}.symbol LIKE '%.' OR ${e}.symbol LIKE '%()')`}function X(e){let n=new Map;for(let t of e){let i=n.get(t.relative_path);i?i.push(t):n.set(t.relative_path,[t])}return n}function hn(e,n,t={}){if(n.length===0)return[];let i=n.flatMap(r=>E(e,r)).filter(r=>!e.isIgnored(r.relativePath));return t.onlyDocumented&&(i=i.filter(r=>r.documentation!==null&&r.documentation!=="")),t.sort&&(i=i.sort((r,s)=>r.relativePath.localeCompare(s.relativePath)||r.startLine-s.startLine||r.endLine-s.endLine)),i.map(r=>({startLine:r.startLine,endLine:r.endLine,symbol:r.symbol,shortName:B(r.symbol),signature:G(U(r.documentation)),relativePath:r.relativePath,enclosingSymbol:r.enclosingSymbol}))}function Le(e){let n=new Map,t=e.map((i,r)=>({definition:i,index:r,span:i.endLine-i.startLine})).sort((i,r)=>i.span-r.span||i.index-r.index);for(let{definition:i}of t)for(let r=i.startLine;r<=i.endLine;r+=1)n.has(r)||n.set(r,i);return n}function xn(e,n){let t=Y.get(e);return t||(t=Le(e),Y.set(e,t)),t.get(n)??null}function Dn(e,n){let t=E(e,n.relative_path).find(i=>i.symbolId===n.id)??(p(n.symbol)===null||!L(n.symbol)?void 0:M(e,n.relative_path,[k(n)])[0]);return t?{symbolId:t.symbolId,symbol:t.symbol,documentId:t.documentId,startLine:t.startLine,startChar:t.startChar,endLine:t.endLine,endChar:t.endChar,relativePath:t.relativePath}:{symbolId:n.id,symbol:n.symbol,documentId:n.document_id,startLine:n.start_line,startChar:n.start_char??0,endLine:n.end_line,endChar:n.end_char??0,relativePath:n.relative_path}}function M(e,n,t,i,r){let s=m(i,"range-correction.source-text",()=>r?r.source:b(e).forFile(n,{text:!0}).text),o=m(i,"range-correction.callable-sites",()=>r?r.callables:v(e,n));return o?m(i,"range-correction.ast-correction",()=>Ne(t,o,s)):s?m(i,"range-correction.regex-fallback",()=>Fe(t,s)):t}function Fe(e,n){let t=n.split(/\r?\n/),i=Re(e,t),r=Ee(e,i),s=ke(r,t);return Me(e,s)}function Re(e,n){let t=e.some(r=>y(r.symbol))?ve(n):null,i=new Map;for(let r of e)i.set(r.symbolId,Ae(n,t,r));return i}function Ee(e,n){return e.filter(t=>y(t.symbol)).map(t=>({definition:t,startLine:n.get(t.symbolId)??t.startLine})).sort((t,i)=>t.startLine-i.startLine||t.definition.startLine-i.definition.startLine||t.definition.symbol.localeCompare(i.definition.symbol))}function ke(e,n){let t=new Map;for(let i=0;i<e.length;i+=1){let r=e[i],s=e[i+1],o=s?Math.max(r.startLine,s.startLine-1):n.length-1;t.set(r.definition.symbolId,{startLine:r.startLine,endLine:Pe(n,r.definition,r.startLine,o)})}return t}function Me(e,n){return e.map(t=>{let i=n.get(t.symbolId);return i?{...t,startLine:i.startLine,endLine:i.endLine}:t})}function Ne(e,n,t=null){let i=new Map;for(let r of n){let s=i.get(r.name);s?s.push(r):i.set(r.name,[r])}return e.map(r=>{if(!we(r)||!r.leaf)return Z(r,t);let s=i.get(r.leaf);if(!s||s.length===0)return Z(r,t);let o=t?Ce(r,s,t):null;if(o)return{...r,startLine:o.startLine,endLine:o.endLine};let a=s[0],c=Math.abs(a.startLine-r.startLine);for(let l=1;l<s.length;l+=1){let d=s[l],f=Math.abs(d.startLine-r.startLine);f<c&&(a=d,c=f)}return{...r,startLine:a.startLine,endLine:a.endLine}})}function Ce(e,n,t){let i=Oe(e.symbol);if(!i)return null;let r=t.split(/\r?\n/),s=new RegExp(`\\b${I(i)}\\b`);for(let o of n){let a=Te(r,o.startLine);if(a&&s.test(a))return o}return null}function Oe(e){return e.match(/\/impl#\[([^\]]+)\]/)?.[1]??null}function Te(e,n){for(let t=n;t>=0;t-=1){let i=e[t]?.trim()??"";if(i){if(/^impl\b/.test(i))return $e(e,t,n);if(/^(?:struct|enum|trait|mod)\b/.test(i))return null}}return null}function $e(e,n,t){let i=[];for(let r=n;r<=t;r+=1){let s=e[r]??"";if(i.push(s),s.includes("{"))break}return i.join(" ")}function we(e){return y(e.symbol)?!0:g(e.symbol)==="term"&&p(e.symbol)===null}function Z(e,n){if(!n||!e.leaf||g(e.symbol)!=="term"||p(e.symbol)!==null)return e;let t=I(e.leaf),i=new RegExp(`\\b(?:export\\s+)?(?:const|let|var)\\s+${t}\\b`),s=n.split(/\r?\n/).findIndex(o=>i.test(o));return s>=0?{...e,startLine:s,endLine:s}:e}function Ae(e,n,t){if(!y(t.symbol))return t.startLine;let i=Math.max(0,Math.min(t.startLine,e.length-1));if(!n)return i;let r=n.get(t.leaf);if(!r||r.length===0)return i;let s=null;for(let o of r){let a=Math.abs(o-t.startLine);(!s||a<s.distance)&&(s={line:o,distance:a})}return s?.line??i}function ve(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,i=/^\s*(?:(?:export|public|private|protected|static|readonly|async|abstract|get|set)\s+)*([A-Za-z_$][\w$]*)\s*(?:<[^(]*>)?\s*\(/,r=/\b([A-Za-z_$][\w$]*)\s*\(/g,s=new Map,o=(a,c)=>{let l=s.get(a);if(!l){s.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]&&o(d[1],a);for(let d of c.matchAll(t))d[1]&&o(d[1],a);let l=c.match(i);l?.[1]&&o(l[1],a);for(let d of c.matchAll(r))d[1]&&o(d[1],a)}return s}function Pe(e,n,t,i){let r=Math.max(t,Math.min(e.length-1,i)),s=Math.max(t,Math.min(r,n.endLine)),o=0,a=0,c=!1;for(let l=t;l<=r;l+=1){let d=Qe(e[l]??"");for(let f of d)f==="{"?(o+=1,c=!0):f==="}"?o=Math.max(0,o-1):f==="("?a+=1:f===")"&&(a=Math.max(0,a-1));if(c&&o===0||!c&&a===0&&l>=s)return l}return s}function Qe(e){let n="",t=null,i=!1;for(let r=0;r<e.length;r+=1){let s=e[r],o=e[r+1];if(!t&&s==="/"&&o==="/"){n+=" ".repeat(e.length-r);break}if(t){if(i){i=!1,n+=" ";continue}if(s==="\\"){i=!0,n+=" ";continue}s===t&&(t=null),n+=" ";continue}if(s==='"'||s==="'"||s==="`"){t=s,n+=" ";continue}n+=s}return n}function y(e){return e.includes("().")}function _n(e){let n=u(e);if("kind"in n)return[];let t=[];for(let i=n.descriptors.length-2;i>=0;i-=1){let r=n.descriptors[i];r?.suffix==="type"&&r.name&&t.push(r.name)}return t}export{b as a,u as b,p as c,B as d,W as e,g as f,je as g,L as h,Be as i,We as j,Je as k,ze as l,He as m,Ue as n,Ke as o,G as p,U as q,F as r,gn as s,E as t,bn as u,he as v,yn as w,Sn as x,hn as y,Le as z,xn as A,Dn as B,_n as C};
|
|
117
|
+
//# sourceMappingURL=chunk-5IZTXSOL.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{r as u}from"./chunk-DMQ7ZKJG.js";function x(e,i){let l=new Map;return e.forEach((t,f)=>{let o=new Set;for(let r of i(t)){if(o.has(r))continue;o.add(r);let n=l.get(r);n?n.push(f):l.set(r,[f])}}),{candidatesFor:(t,f)=>{let o=new Set;for(let r of i(t)){let n=l.get(r);if(n)for(let a of n)a!==f&&o.add(a)}return[...o].sort((r,n)=>r-n)}}}function R(e){let i=c(e.profile?.name),l=()=>{let t=[];i=c(e.profile?.name,e);let f=(r,n)=>{let a=e.profiles[r],s=e.profiles[n];i.candidatePairs+=1,i.comparedPairs+=1;let d=e.compare(a,s);d&&t.push(d)};if(e.filePattern){let r=e.profiles.findIndex(n=>n.file.includes(e.filePattern));if(r>=0){let n=e.profiles[r];for(let a of m(e,r)){let s=e.profiles[a];e.focusFiles&&!e.focusFiles.has(n.file)&&!e.focusFiles.has(s.file)||f(r,a)}}}else if(e.focusFiles?.size!==0){let r=typeof e.overrunFactor=="number"&&Number.isFinite(e.limit)?e.limit*e.overrunFactor:Number.POSITIVE_INFINITY;for(let n=0;n<e.profiles.length;n+=1){let a=e.profiles[n],s=e.focusFiles?.has(a.file)??!1;for(let d of p(e,n))e.focusFiles&&!s&&!e.focusFiles.has(e.profiles[d].file)||f(n,d);if(t.length>r){i.overrunApplied=!0;break}}}t.sort(e.sort??((r,n)=>n.similarity-r.similarity)),i.matchedResults=t.length;let o=t.slice(0,e.limit);return i.emittedResults=o.length,e.onProfile?.({...i}),o};return e.profile?u(`pairwise-profile:${e.profile.name}`,l,()=>({...b(e.profile?.metadata),...i})):l()}function m(e,i){if(e.candidateIndex)return P(e,i,-1);let l=[];for(let t=0;t<e.profiles.length;t+=1)t!==i&&l.push(t);return l}function p(e,i){if(e.candidateIndex)return P(e,i,i);let l=[];for(let t=i+1;t<e.profiles.length;t+=1)l.push(t);return l}function P(e,i,l){let t=e.profiles[i],f=new Set;for(let o of e.candidateIndex?.candidatesFor(t,i,e.profiles)??[])o<=l||o!==i&&(o<0||o>=e.profiles.length||f.add(o));return[...f].sort((o,r)=>o-r)}function c(e,i){return{pipeline:e,profileCount:i?.profiles.length??0,focusedProfileCount:i?.focusFiles?i.profiles.filter(l=>i.focusFiles.has(l.file)).length:0,candidatePairs:0,comparedPairs:0,matchedResults:0,emittedResults:0,candidateIndexApplied:i?.candidateIndex!==void 0,focusApplied:i?.focusFiles!==void 0,filePatternApplied:i?.filePattern!==void 0,overrunApplied:!1}}function b(e){return typeof e=="function"?e():e??{}}export{x as a,R as b};
|
|
2
|
+
//# sourceMappingURL=chunk-5SE323LF.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as D,f as k}from"./chunk-DOPCR5BY.js";import{k as v,l as A,m as C,n as T,o as N}from"./chunk-G6OGPXJW.js";import{c as M,d as F}from"./chunk-3VLJ2DCA.js";import{h}from"./chunk-4DCKBY6T.js";import{createHash as G}from"crypto";import{dirname as X,join as O}from"path";var g=4,Y=3,H=2,K="typescript-index";function de(t){let e=O(t,K),i=A(e);return{...i,requestDir:i.legacyRequestDir}}function J(t){let e=JSON.parse(t),i=e.protocolVersion,r=i===H,n=i===Y;if(!r&&!n&&i!==g||typeof e.id!="string"||!e.id||typeof e.baseGeneration!="string"||!e.baseGeneration||typeof e.deadlineAtMs!="number"||!Number.isFinite(e.deadlineAtMs)||!W(e.request)||!r&&(e.mailboxVersion!==v||typeof e.operationKey!="string"||!/^[a-f0-9]{64}$/.test(e.operationKey)||e.id!==N(e.operationKey)||typeof e.clientId!="string"||!e.clientId||typeof e.enqueuedAtMs!="number"||!Number.isFinite(e.enqueuedAtMs)||e.deadlineAtMs<e.enqueuedAtMs))throw new Error("TypeScript index service received an invalid mailbox request.");if(!r){let s=e,a=T(n?"typescript-index-v3":"typescript-index-v4",{baseGeneration:s.baseGeneration,request:s.request});if(s.operationKey!==a)throw new Error("TypeScript index service received a mismatched mailbox operation identity.");return{...s,protocolVersion:g}}let o=T("typescript-index-v2",{id:e.id,baseGeneration:e.baseGeneration,request:e.request});return{protocolVersion:g,mailboxVersion:v,id:e.id,operationKey:o,clientId:"legacy-v2",enqueuedAtMs:e.deadlineAtMs,deadlineAtMs:e.deadlineAtMs,baseGeneration:e.baseGeneration,request:e.request}}function ye(t){try{let e=k(D(h(O(X(t),"meta.json"),"reindex metadata")));return e?G("sha256").update(e).digest("hex"):null}catch{return null}}function W(t){if(!t||typeof t!="object")return!1;let e=t,i=B(e.modifiedFiles)?e.modifiedFiles:null,r=B(e.affectedFiles)?e.affectedFiles:null;return e.kind==="emit-documents"&&typeof e.tsconfigPath=="string"&&!!e.tsconfigPath&&typeof e.projectArgument=="string"&&!!e.projectArgument&&typeof e.projectIdentity=="string"&&!!e.projectIdentity&&typeof e.producerIdentity=="string"&&!!e.producerIdentity&&i!==null&&i.length>0&&new Set(i).size===i.length&&r!==null&&r.length>0&&new Set(r).size===r.length}function B(t){return Array.isArray(t)&&t.every(e=>typeof e=="string"&&e.length>0)}import{randomUUID as oe}from"crypto";import{getHeapStatistics as se}from"v8";import{resolve as ae}from"path";import{createRequire as Q}from"module";import{dirname as E,isAbsolute as Z,relative as q,resolve as d,sep as I}from"path";var m=Q(import.meta.url),ee=1,_="0.4.0";function te(){try{let t=j();if(!t.available)return t;let{packageRoot:e}=t,i=m.resolve("typescript",{paths:[e]}),r=m(i),{FileIndexer:n}=m(d(e,"dist/src/FileIndexer.js")),{Input:o}=m(d(e,"dist/src/Input.js")),{Packages:s}=m(d(e,"dist/src/Packages.js")),a=m(d(e,"dist/src/scip.js"));if(!n||!o||!s||!a.scip?.Document||!a.scip.Index)return{available:!1,reason:"scip-typescript document runtime has an unsupported module shape"};let c={packageVersion:t.packageVersion,typescript:r,Document:a.scip.Document,Index:a.scip.Index,FileIndexer:n,Input:o,Packages:s};return{available:!0,runtime:c,producerIdentity:P(c)}}catch(t){return{available:!1,reason:`scip-typescript document runtime unavailable: ${t instanceof Error?t.message:String(t)}`}}}function be(){let t=j();return t.available?{available:!0,packageVersion:t.packageVersion,typescriptVersion:t.typescriptVersion,producerIdentity:t.producerIdentity}:t}function j(){try{let t=m.resolve("@sourcegraph/scip-typescript/package.json"),e=JSON.parse(h(t,"scip-typescript package manifest"));if(e.version!==_)return{available:!1,reason:`unsupported scip-typescript version ${String(e.version??"unknown")}; expected ${_}`};let i=E(t),r=m.resolve("typescript/package.json",{paths:[i]}),n=JSON.parse(h(r,"TypeScript package manifest"));return typeof n.version!="string"||!n.version?{available:!1,reason:"scip-typescript TypeScript compiler version is unavailable"}:{available:!0,packageRoot:i,packageVersion:e.version,typescriptVersion:n.version,producerIdentity:U(e.version,n.version)}}catch(t){return{available:!1,reason:`scip-typescript document producer unavailable: ${t instanceof Error?t.message:String(t)}`}}}function z(t){let e=t.runtime===void 0?te():t.runtime===null?{available:!1,reason:"scip-typescript document runtime unavailable"}:{available:!0,runtime:t.runtime,producerIdentity:P(t.runtime)};return e.available?{available:!0,emitter:new w(t,e.runtime)}:e}var w=class{producerIdentity;workspaceRoot;tsconfigPath;projectRoot;maxFileByteSize;runtime;host;config=null;includedFiles=new Set;program=null;checker=null;symbolTable=new Map;constructorTable=new Map;packages;fragments=new Map;stats={initializations:0,programUpdates:0,documentsEmitted:0,documentsRemoved:0,sourceNodesReused:0,sourceNodesReplaced:0,symbolEntriesPruned:0};constructor(e,i){this.workspaceRoot=d(e.workspaceRoot),this.tsconfigPath=d(this.workspaceRoot,e.tsconfigPath),this.projectRoot=e.projectRoot??ie(this.workspaceRoot,E(this.tsconfigPath)),this.maxFileByteSize=e.maxFileByteSize??1024*1024,this.runtime=i,this.producerIdentity=P(i);let r=x(i.typescript,this.tsconfigPath);this.config=r,this.host=new R(i.typescript,r.options,this.workspaceRoot),this.packages=new i.Packages(this.projectRoot)}initialize(){let e=performance.now();this.initializeProgram();let i=[];for(let r of this.program.getSourceFiles())this.includedFiles.has(f(r.fileName))&&i.push(this.emitSourceFile(r));return this.result(i,e)}advance(e){if(!this.program||!this.checker||!this.config)return this.initializeAndAdvance(e);let i=performance.now(),r=S(e.modifiedFiles),n=S(e.affectedFiles),o=x(this.runtime.typescript,this.tsconfigPath);this.config=o,this.includedFiles=new Set(o.fileNames.map(f));let s=this.program,a=new Map;for(let l of r){let u=y(this.workspaceRoot,l),p=s.getSourceFile(u);p&&(a.set(l,p),this.stats.symbolEntriesPruned+=L(this.symbolTable,p),this.stats.symbolEntriesPruned+=L(this.constructorTable,p)),this.host.invalidate(u)}this.program=this.runtime.typescript.createProgram(o.fileNames,o.options,this.host.compilerHost,s),this.checker=this.program.getTypeChecker(),this.stats.programUpdates+=1,this.validateIncrementalPaths(r,n);for(let[l,u]of a)this.program.getSourceFile(y(this.workspaceRoot,l))===u?this.stats.sourceNodesReused+=1:this.stats.sourceNodesReplaced+=1;let c=n.map(l=>{let u=y(this.workspaceRoot,l),p=this.program.getSourceFile(u);if(!p)throw new Error(`affected TypeScript source is unavailable: ${l}`);return this.emitSourceFile(p)});return this.result(c,i)}fragment(e){return this.fragments.get(b(e))??null}snapshotStats(){return{...this.stats}}initializeAndAdvance(e){let i=performance.now();this.initializeProgram();let r=S(e.modifiedFiles),n=S(e.affectedFiles);this.validateIncrementalPaths(r,n);let o=n.map(s=>{let a=this.program.getSourceFile(y(this.workspaceRoot,s));if(!a)throw new Error(`affected TypeScript source is unavailable: ${s}`);return this.emitSourceFile(a)});return this.result(o,i)}initializeProgram(){let e=this.config??x(this.runtime.typescript,this.tsconfigPath);this.includedFiles=new Set(e.fileNames.map(f)),this.program=this.runtime.typescript.createProgram(e.fileNames,e.options,this.host.compilerHost),this.checker=this.program.getTypeChecker(),this.stats.initializations+=1}validateIncrementalPaths(e,i){if(e.length===0)throw new Error("incremental TypeScript document update requires a modified file");if(i.length===0)throw new Error("incremental TypeScript document update requires an affected file");for(let r of e){let n=y(this.workspaceRoot,r);if(!this.program?.getSourceFile(n))throw new Error(`modified TypeScript dependency is unavailable to the configured project: ${r}`)}for(let r of i){let n=y(this.workspaceRoot,r);if(!this.includedFiles.has(f(n)))throw new Error(`affected TypeScript file is outside the configured project: ${r}`)}}emitSourceFile(e){if(!this.checker)throw new Error("TypeScript document emitter is not initialized");let i=b(q(this.workspaceRoot,e.fileName)),r=new this.runtime.Document({relative_path:i,occurrences:[]});if(new this.runtime.FileIndexer(this.checker,{cwd:this.workspaceRoot,projectRoot:this.projectRoot,projectDisplayName:this.projectRoot,maxFileByteSizeNumber:this.maxFileByteSize},new this.runtime.Input(e.fileName,e.getText()),r,this.symbolTable,this.constructorTable,this.packages,e).index(),this.stats.documentsEmitted+=1,r.occurrences.length===0)return this.fragments.delete(i),this.stats.documentsRemoved+=1,{relativePath:i,bytes:null,occurrences:0,symbols:r.symbols.length,referenceFragments:[]};let o=r.serializeBinary();return this.fragments.set(i,o),{relativePath:i,bytes:o,occurrences:r.occurrences.length,symbols:r.symbols.length,referenceFragments:re(i,r)}}result(e,i){return{producerIdentity:this.producerIdentity,fragments:e,durationMs:performance.now()-i,stats:this.snapshotStats()}}};function re(t,e){let i=new Map;for(let r of e.occurrences){if(!r.symbol||(r.symbol_roles&1)!==0||r.range.length<3)continue;let n=r.range[0],o=r.range[1];if(!Number.isInteger(n)||!Number.isInteger(o))continue;let s={targetSymbol:r.symbol,location:{file:t,line:n,column:o}};i.set(`${r.symbol}\0${n}\0${o}`,s)}return[...i.values()].sort((r,n)=>r.targetSymbol.localeCompare(n.targetSymbol)||r.location.line-n.location.line||r.location.column-n.location.column)}var R=class{compilerHost;sourceFiles=new Map;constructor(e,i,r){let n=e.createCompilerHost(i),o=n.getSourceFile.bind(n);this.compilerHost={...n,getCurrentDirectory:()=>r,getSourceFile:(s,a,c,l)=>{let u=f(s);if(this.sourceFiles.has(u))return this.sourceFiles.get(u);let p=o(s,a,c,l);return this.sourceFiles.set(u,p),p}}}invalidate(e){this.sourceFiles.delete(f(e))}};function x(t,e){let i=t.readConfigFile(e,t.sys.readFile);if(i.error)throw new Error(t.formatDiagnostics([i.error],t.createCompilerHost({})));let r=t.parseJsonConfigFileContent(i.config,t.sys,E(e)),n=r.errors.filter(o=>o.code!==18003);if(n.length>0)throw new Error(t.formatDiagnostics(n,t.createCompilerHost({})));return r}function P(t){return U(t.packageVersion,t.typescript.version)}function U(t,e){return`scip-typescript:${t}:typescript:${e}:document-adapter:${ee}`}function ie(t,e){return b(q(t,e))||"."}function y(t,e){if(Z(e))throw new Error(`expected a project-relative path: ${e}`);let i=d(t,e),r=t.endsWith(I)?t:`${t}${I}`;if(i!==t&&!i.startsWith(r))throw new Error(`path escapes the project root: ${e}`);return i}function S(t){return[...new Set(t.map(b))].sort()}function b(t){return t.split(I).join("/").replace(/^\.\//,"")}function f(t){return d(t)}function L(t,e){let i=0;for(let r of t.keys())if(ne(r)){try{if(r.getSourceFile()!==e)continue}catch{continue}t.delete(r),i+=1}return i}function ne(t){return!!(t&&typeof t=="object"&&"kind"in t&&"getSourceFile"in t)}var V=class{projectRoot;currentGeneration;createEmitter;wallNow;monotonicNow;maxActiveSessions;softMemoryLimitBytes;memoryUsage;active=new Map;requests=0;sessionsCreated=0;sessionsReplaced=0;sessionsEvicted=0;lastRequestAtMs=null;lastDurationMs=null;lastError=null;unavailable=!1;constructor(e){if(this.projectRoot=ae(e.projectRoot),this.currentGeneration=e.currentGeneration,this.createEmitter=e.createEmitter??z,this.wallNow=e.wallNow??e.now??Date.now,this.monotonicNow=e.monotonicNow??e.now??F,e.maxActiveSessions!==void 0&&(!Number.isInteger(e.maxActiveSessions)||e.maxActiveSessions<1))throw new Error("TypeScript index maxActiveSessions must be a positive integer.");if(this.maxActiveSessions=e.maxActiveSessions??8,e.softMemoryLimitMb!==void 0&&(!Number.isInteger(e.softMemoryLimitMb)||e.softMemoryLimitMb<1))throw new Error("TypeScript index softMemoryLimitMb must be a positive integer.");this.softMemoryLimitBytes=e.softMemoryLimitMb===void 0?null:e.softMemoryLimitMb*1024*1024,this.memoryUsage=e.memoryUsage??(()=>({heapUsedBytes:process.memoryUsage().heapUsed,heapLimitBytes:se().heap_size_limit}))}handle(e,i){let r=this.monotonicNow();try{if(this.currentGeneration()!==e)throw new Error("TypeScript index request does not match the currently published generation.");let n=this.emitterFor(i);if(n.emitter.producerIdentity!==i.producerIdentity)throw new Error("TypeScript index producer identity changed.");let o=n.emitter.snapshotStats(),s=n.emitter.advance({modifiedFiles:i.modifiedFiles,affectedFiles:i.affectedFiles}),a=this.monotonicNow()-r;return this.requests+=1,this.lastRequestAtMs=this.wallNow(),this.lastDurationMs=a,this.lastError=null,this.unavailable=!1,{producerIdentity:s.producerIdentity,cold:s.stats.initializations>o.initializations,durationMs:a,fragments:s.fragments.map(c=>({relativePath:c.relativePath,bytesBase64:c.bytes===null?null:Buffer.from(c.bytes).toString("base64"),occurrences:c.occurrences,symbols:c.symbols,referenceFragments:c.referenceFragments}))}}catch(n){throw this.lastError=n instanceof Error?n.message:String(n),n}}status(e){let i=[...this.active.values()].map(s=>s.emitter.snapshotStats()),r=s=>i.reduce((a,c)=>a+c[s],0),n=this.memoryUsage(),o=this.softMemoryLimitBytes!==null&&n.heapUsedBytes>=this.softMemoryLimitBytes;return{protocolVersion:g,state:this.unavailable?"unavailable":this.lastError?"error":this.active.size>0?"ready":"idle",requests:this.requests,sessionsCreated:this.sessionsCreated,sessionsReplaced:this.sessionsReplaced,sessionsEvicted:this.sessionsEvicted,activeSessions:this.active.size,maxActiveSessions:this.maxActiveSessions,heapUsedBytes:n.heapUsedBytes,heapLimitBytes:n.heapLimitBytes,...this.softMemoryLimitBytes===null?{}:{softMemoryLimitBytes:this.softMemoryLimitBytes},retireRequested:o,initializations:r("initializations"),programUpdates:r("programUpdates"),documentsEmitted:r("documentsEmitted"),documentsRemoved:r("documentsRemoved"),...this.lastRequestAtMs===null?{}:{lastRequestAt:new Date(this.lastRequestAtMs).toISOString()},...this.lastDurationMs===null?{}:{lastDurationMs:this.lastDurationMs},...this.lastError?{lastError:this.lastError}:{},...e?{mailbox:e}:{}}}close(){this.active.clear()}emitterFor(e){let i=`${e.tsconfigPath}\0${e.projectArgument}`,r=this.active.get(i);if(r?.projectIdentity===e.projectIdentity)return this.active.delete(i),this.active.set(i,r),r;if(r)this.active.delete(i);else if(this.active.size>=this.maxActiveSessions){let s=this.active.keys().next().value;s!==void 0&&(this.active.delete(s),this.sessionsEvicted+=1)}let n=this.createEmitter({workspaceRoot:this.projectRoot,tsconfigPath:e.tsconfigPath,projectRoot:e.projectArgument});if(!n.available)throw this.unavailable=!0,new Error(n.reason);r&&(this.sessionsReplaced+=1);let o={projectIdentity:e.projectIdentity,emitter:n.emitter};return this.active.set(i,o),this.sessionsCreated+=1,o}};function Ce(t){C(t)}var Ne=`typescript-index-${process.pid}-${oe()}`,$=M(process.pid),Be={pid:process.pid,...$?{processIdentity:$}:{}};export{be as a,g as b,de as c,J as d,ye as e,V as f,Ce as g};
|
|
2
|
+
//# sourceMappingURL=chunk-5ZJH6DDE.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as X}from"./chunk-P5XHIJHI.js";import{B as mn,C as yn,a as It,i as Mt,j as me,k as $,l as Le,m as Z,n as ee,o as Oe,q as Dt,r as pn,s as Ue,t as ne,u as xt,v as Ct,w as Be,x as Tt,z as dn}from"./chunk-ZDVDSDFG.js";import{d as ht}from"./chunk-ELNRLMC5.js";import{K as vt,a as xe,b as Ce,c as we,d as Pe,e as q}from"./chunk-MYUKI5VN.js";import{b as Rt,e as V,f as Ne,h as bt,j as de,t as z,u as _e}from"./chunk-5IZTXSOL.js";import{a as pe,l as Fe,u as St,w as gt}from"./chunk-I3U2FN2T.js";import{C as yt,a as Ee,c as at,d as ct,q as ln,z as mt}from"./chunk-AA7K3XLM.js";import{a as tt,c as rt,d as it,g as an,i as cn,k as ot,m as st,p as _,q as lt,r as w,t as Ae,u as un,v as fn,w as ue}from"./chunk-DMQ7ZKJG.js";import{d as ft,h as pt,i as fe,l as dt}from"./chunk-7HU2IJ2T.js";import{$ as ut,A as et,B as H,C as Te,F as ke,G as B,H as nt,L as sn,l as le,o as N}from"./chunk-MO226P4Q.js";function kt(n){let e=new Map,t=ti(n),r=new Map;return i=>{let o=ni(i),s=r.get(o);if(s!==void 0)return s;if(!t.has(i.file))return r.set(o,i.symbol),i.symbol;let a=e.get(i.file);a||(a=ri(z(n,i.file)),e.set(i.file,a));let l=ii(a,i);return r.set(o,l),l}}function ni(n){return`${n.file}\0${n.symbol}\0${n.line}`}function ti(n){return new Set(n.all("SELECT relative_path FROM documents").map(e=>e.relative_path))}function ri(n){let e=new Map,t=new Map;for(let r of n){let i=e.get(r.leaf);i?i.push(r):e.set(r.leaf,[r]);let o=t.get(r.startLine);o?o.push(r):t.set(r.startLine,[r])}return{definitions:n,byLeaf:e,byStartLine:t}}function ii(n,e){if(n.definitions.length===0)return e.symbol;let t=ai(e.symbol),r=oi(n.byLeaf,t),i=si(r,e.line);if(i)return i.symbol;let o=n.byStartLine.get(e.line)??[];return o.length===1?o[0].symbol:e.symbol}function oi(n,e){let t=[],r=new Set;for(let i of e)for(let o of n.get(i)??[])r.has(o.symbolId)||(r.add(o.symbolId),t.push(o));return t}function si(n,e){let t=null;for(let r of n)if(!(r.startLine>e||r.endLine<e)){if(r.startLine===e)return r;(!t||r.endLine-r.startLine<t.endLine-t.startLine)&&(t=r)}return t}function ai(n){let e=new Set([n]),r=n.split(/::|\.|#/).filter(Boolean).at(-1);return r&&e.add(r),e}function wt(n,e){let r=gt(n,e).map(i=>li(e,i));return{usage:r,positions:ui(n,e,r)}}function Pt(n,e){return{importUsage(t){let r=n.importUsageFacts(t);if(!e||r.positions.length===0)return r.usage;let i=e.importDefinitionsForFile(t,r.positions);return i.available?ci(r.usage,i.sourcePaths):r.usage}}}function ci(n,e){return n.map((t,r)=>{let i=e.get(String(r));return i?{...t,sourcePath:i}:t})}function li(n,e){let t=e.isTypeOnly===!0,r=e.kind==="side-effect"||t||e.used;return{importer:n,sourcePath:e.sourcePath,importedName:e.importedName,localName:e.localName,kind:e.kind,isTypeOnly:t,isUsed:r,isTypeUsed:t,isValueUsed:e.kind==="side-effect"||!t&&e.used,references:[]}}function ui(n,e,t){let r=yt(n,e);if(!r)return[];let i=fi(r.rootNode),o=new Map;for(let a of i){let l=o.get(gn(a.importedName,a.localName));l?l.push(a.position):o.set(gn(a.importedName,a.localName),[a.position])}let s=[];return t.forEach((a,l)=>{let u=o.get(gn(a.importedName,a.localName??a.importedName))?.shift();u&&s.push({...u,id:String(l),file:e})}),s}function fi(n){let e=[];for(let t of n.descendantsOfType("use_declaration")){let r=t.namedChildren.find(i=>i.type!=="visibility_modifier");r&&e.push(...qe(r,""))}return e.filter(t=>t.importedName!=="*")}function qe(n,e){switch(n.type){case"identifier":case"super":case"self":case"crate":return[{importedName:n.text,localName:n.text,position:Sn(n,n.text)}];case"scoped_identifier":{let t=n.text.split("::").pop()??n.text;return[{importedName:t,localName:t,position:Sn(n,t)}]}case"scoped_use_list":{let t=n.namedChild(0),r=n.namedChild(1);if(!t||!r)return[];let i=St(e,t.text);return r.namedChildren.flatMap(o=>qe(o,i))}case"use_list":return n.namedChildren.flatMap(t=>qe(t,e));case"use_as_clause":{let t=n.namedChild(0),r=n.namedChild(1);return!t||!r?[]:qe(t,e).map(i=>({...i,localName:r.text}))}case"use_wildcard":{let t=n.namedChild(0),r="*";return[{importedName:r,localName:r,position:Sn(t??n,r)}]}default:return[]}}function Sn(n,e){let t=Math.max(0,n.text.lastIndexOf(e));return{id:"",file:"",line:n.startPosition.row,column:n.startPosition.column+t+pi(e)}}function pi(n){return Math.max(0,Math.min(n.length-1,1))}function gn(n,e){return`${n}\0${e}`}import{spawnSync as kn}from"child_process";import{existsSync as wn}from"fs";import{fileURLToPath as yo}from"url";function je(n){let e=Mt(It,n),t=e.runnable;return t?{available:!0,dependencyAvailable:t,resolvedBinary:e.resolvedBinary??void 0,note:"rust-analyzer semantic reference queries are enabled."}:{available:!1,dependencyAvailable:t,resolvedBinary:e.resolvedBinary??void 0,reason:"rust-analyzer is not runnable; Rust semantic checks will use SCIP/source evidence only."}}import{existsSync as Qi,mkdtempSync as er,rmSync as vn}from"fs";import{tmpdir as nr}from"os";import{join as Dn}from"path";import{fileURLToPath as Ye,pathToFileURL as Xi}from"url";import{SHARE_ENV as Zi,Worker as eo}from"worker_threads";function K(n,e,t=new Set){let r=new Map;for(let i of n)t.has(i.symbolId)||r.set(i.symbolId,e.get(i.symbolId)??[]);return r}function Y(n,e,t){let r=X(process.env.SCIP_RUST_SEMANTIC_BATCH_TIMEOUT_MS)??0;if(r>0)return r;let i=Math.max(1,Math.ceil(n/Math.max(1,t)));return Math.max(12e4,3e4+i*e)}import{spawn as Ei}from"child_process";import{createHash as Ai,randomUUID as Fi}from"crypto";import{existsSync as Ht,realpathSync as Ni,rmSync as _i}from"fs";import{tmpdir as Li}from"os";import{resolve as re}from"path";import{execFileSync as hi}from"child_process";import{existsSync as di}from"fs";import{deserializeSCIP as mi,SymbolRole as yi}from"@c4312/scip";import{realpathSync as $s}from"fs";import{basename as Js,dirname as Gs,join as Qs,relative as Xs,sep as Zs}from"path";import{fileURLToPath as na,pathToFileURL as ta}from"url";function We(n){let e=new Map;for(let t of n)e.set(`${t.file}\0${t.line}\0${t.column}`,t);return[...e.values()].sort((t,r)=>{let i=t.file.localeCompare(r.file);return i!==0?i:t.line!==r.line?t.line-r.line:t.column-r.column})}var Rn=new WeakMap,Si="SCIP_RUST_SCIP_OCCURRENCE_REFERENCE_MODE";function Et(n,e){let t=new Map,r=ze(),i=e.filter(s=>Nt(s,r));if(i.length===0)return t;let o=_t(n);if(!o)return t;for(let s of i){let a=Ft(o,s);a!==null&&t.set(s.symbolId,a)}return t}function At(n,e){if(!Nt(e,ze()))return null;let t=_t(n);return t?Ft(t,e):null}function Ft(n,e){return n.referencesBySymbol.get(e.symbol)??[]}function Nt(n,e="safe"){if(!n.symbol.startsWith("rust-analyzer ")||!n.relativePath.endsWith(".rs")||de(n.symbol)||/impl#\[[^\]]+\]\[Default\]default\(\)\.$/.test(n.symbol))return!1;if(e==="all")return!0;let t=Ne(n.symbol);if(t==="method")return!0;if(t!=="term")return!1;let r=Rt(n.symbol);return"kind"in r?!1:!gi(r)}function gi(n){for(let e=0;e<n.descriptors.length-1;e+=1)if(n.descriptors[e]?.suffix==="type")return!0;return!1}function _t(n){if(Rn.has(n))return Rn.get(n)??null;let e=Ri(n);return Rn.set(n,e),e}function Ri(n){if(!n.generation.indexPath||!di(n.generation.indexPath))return null;try{let e=mi(ke(n.generation.indexPath,{inputKind:"SCIP occurrence-reference index",maxBytes:Te})),t=new Map;for(let r of e.documents??[]){let i=r.relativePath;if(!(!i||n.isIgnored(i)))for(let o of r.occurrences??[]){if(!o.symbol||(o.symbolRoles&yi.Definition)!==0)continue;let s=bi(i,o.range);if(!s)continue;let a=t.get(o.symbol)??[];a.push(s),t.set(o.symbol,a)}}for(let[r,i]of t)t.set(r,We(i));return{referencesBySymbol:t}}catch{return null}}function bi(n,e){if(e.length<3)return null;let t=e[0],r=e[1];return!Number.isInteger(t)||!Number.isInteger(r)?null:{file:n,line:t,column:r}}function ze(){return process.env[Si]==="all"?"all":"safe"}var Lt=new Map;function bn(n){let t=je(n).resolvedBinary??null;return{engine:"rust-analyzer",resolvedBinary:t,version:t?Ii(n,t):"unavailable"}}function hn(n){return{...bn(n),scipOccurrenceReferenceMode:ze()}}function Ii(n,e){let t=`${n}\0${e}`,r=Lt.get(t);if(r)return r;let i;try{i=hi(e,["--version"],{cwd:n,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:2e3}).trim()}catch{i="unknown"}return Lt.set(t,i),i}import{createHash as Mi}from"crypto";var vi=new Set(["Cargo.lock","Cargo.toml","rust-project.json","rust-toolchain","rust-toolchain.toml"]);function Ot(n){let e=dt(n,{includePath:Di});return Mi("sha256").update(JSON.stringify(e)).digest("hex")}function Di(n){let e=n.replaceAll("\\","/"),t=e.split("/").at(-1)??e;return e.endsWith(".rs")||vi.has(t)?!0:e===".cargo/config"||e===".cargo/config.toml"||e.endsWith("/.cargo/config")||e.endsWith("/.cargo/config.toml")}import{createHash as xi}from"crypto";import{resolve as Ci}from"path";var te=3;function Mn(n){return xi("sha256").update(me({kind:"scip-query-durable-rust-mailbox",protocolVersion:te,sessionDir:Ci(n)})).digest("hex")}function qt(n,e){return le(n)?n.protocolVersion!==te?Bt(n.protocolVersion===void 0?"helper wrote a prior uncorrelated response protocol":`helper wrote unsupported response protocol ${String(n.protocolVersion)}`):n.mailboxVersion!==$||n.id!==e.requestId||n.operationKey!==e.operationKey||n.sessionIdentity!==e.sessionIdentity||n.deadlineAtMs!==e.deadlineAtMs?Bt("helper wrote an incompatible response identity"):typeof n.completedAtMs!="number"||!Number.isFinite(n.completedAtMs)||n.completedAtMs>e.deadlineAtMs||e.nowMs>e.deadlineAtMs?{ok:!1,code:"expired-request",error:"helper response arrived after the durable request deadline"}:n.ok===!1?typeof n.error!="string"||!Pi(n.errorCode)?In("helper wrote an invalid rejection response"):{ok:!1,code:n.errorCode,error:n.error}:n.ok!==!0||n.session!=="created"&&n.session!=="reused"&&n.session!=="invalidated"||!Ti(n.response,e.requestKind)?In("helper wrote an invalid success response"):{ok:!0,session:n.session,response:n.response}:In("helper wrote an invalid response object")}function Ti(n,e){return!le(n)||typeof n.available!="boolean"||n.available===!1&&(typeof n.reason!="string"||n.reason.length===0)||n.available===!0&&n.reason!==void 0?!1:e==="import-definitions"?Array.isArray(n.sourcePaths)&&n.sourcePaths.every(t=>Array.isArray(t)&&t.length===2&&typeof t[0]=="string"&&(t[1]===null||typeof t[1]=="string")):Ut(n.references,ki)&&(n.incompleteReferenceSymbolIds===void 0||Array.isArray(n.incompleteReferenceSymbolIds)&&n.incompleteReferenceSymbolIds.every(t=>Number.isSafeInteger(t)))&&(n.callees===void 0||Ut(n.callees,wi))&&(n.signatures===void 0||Array.isArray(n.signatures)&&n.signatures.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&(t[1]===null||typeof t[1]=="string")))}function Ut(n,e){return Array.isArray(n)&&n.every(t=>Array.isArray(t)&&t.length===2&&Number.isSafeInteger(t[0])&&Array.isArray(t[1])&&t[1].every(e))}function ki(n){return le(n)&&typeof n.file=="string"&&N(n.line)&&N(n.column)}function wi(n){return le(n)&&typeof n.symbol=="string"&&typeof n.file=="string"&&N(n.line)&&(n.callsiteLine===void 0||N(n.callsiteLine))}function Pi(n){return n==="unsupported-protocol"||n==="malformed-request"||n==="expired-request"||n==="handler-error"}function In(n){return{ok:!1,code:"malformed-response",error:n}}function Bt(n){return{ok:!1,code:"incompatible-response",error:n}}var Oi=5e3,Vt=10,Ui=3e4;function jt(n,e,t,r=Qt){let i=r.engineIdentity(n),o={protocolVersion:te,projectRoot:r.canonicalProjectRoot(n),projectFingerprint:r.projectFingerprint(n),engine:{engine:i.engine,resolvedBinary:i.resolvedBinary,version:i.version},workerFingerprint:r.fileFingerprint(e),environment:Yt(r.environment())};return{key:Xt(me(o)),...o}}function Ke(n,e,t,r){if(n.protocolVersion!==te||!t(n.pid))return!1;if(!n.processIdentity)return!0;let i=r?.(n.pid);return i!=null&&Ce(n.processIdentity,i)}function $t(n,e,t){let r;try{r=sn(e,{maxBytes:H,inputKind:"Rust semantic engine artifact"})}catch{r="missing"}let i=Xt(me({projectRoot:re(n),serverPath:re(e),serverFingerprint:r})).slice(0,20);return re(t,`scip-query-rust-session-${i}`)}function Wt(n){let e=n===void 0?Number.NaN:Number(n);return Number.isInteger(e)&&e>=0?e:0}function Yt(n){return Object.fromEntries(Object.entries(n).filter(([e])=>Gt(e)).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,t??null]))}function Jt(n,e){let t=e.runtime??Ki,r=e.identityRuntime??Qt,i=$t(n,e.serverPath,e.tempRoot??Li()),o=!1,s=(a,l)=>{if(o)throw new Error("Durable Rust semantic session was already disposed.");return qi(i,e.serverPath,e.semanticWorkerPath,a,l,t,e.mailboxLimits)};return{requestSemantic(a,l){let u=jt(n,e.semanticWorkerPath,a,r),{readinessDeadlineMs:f,...c}=a;return s({kind:"semantic",identityKey:u.key,workerEnvironment:Kt(),request:{...c,referenceRetryTimeoutMs:Bi(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,a.referenceRetryTimeoutMs),settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Wt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:l},l)},requestImportDefinitions(a,l){let u=jt(n,e.semanticWorkerPath,a,r),{readinessDeadlineMs:f,...c}=a;return s({kind:"import-definitions",identityKey:u.key,workerEnvironment:Kt(),request:{...c,settleDelayMs:process.env.SCIP_RUST_SEMANTIC_SETTLE_MS===void 0?a.settleDelayMs:Wt(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS)},timeoutMs:l},l)},shutdown(){o=!0}}}function Bi(n,e){return e!==void 0?e:n===void 0?Ui:void 0}function qi(n,e,t,r,i,o,s={}){let a=o.now(),l=a+i,u=(o.monotonicNow??q)(),f=u+i,c=Z("rust-semantic-v3",r),p=ee(c),d=Le(n),y=Mn(n),R=Oe(d,{mailboxVersion:$,protocolVersion:te,id:p,operationKey:c,clientId:o.randomId(),enqueuedAtMs:a,deadlineAtMs:l,sessionIdentity:y,request:r},{nowMs:a,limits:s});for(zt(n,e,t,f,o);(o.monotonicNow??q)()<=f;){if(Ht(R.responsePath)){let S=ji(B(R.responsePath,{maxBytes:s.maxItemBytes??H,inputKind:"durable Rust semantic mailbox response"}),{requestId:p,operationKey:c,sessionIdentity:y,deadlineAtMs:R.authoritativeDeadlineAtMs,requestKind:r.kind,nowMs:o.now()});if(!S.ok)throw new Error(S.error);return _()&&Ae({type:"span",name:"rust.semantic.durable-session.request",durationMs:(o.monotonicNow??q)()-u,ok:!0,session:S.session,kind:r.kind}),S.response}let b=He(n);(!b||!Ke(b,o.now(),o.isProcessAlive,o.readProcessIdentity))&&zt(n,e,t,f,o),o.sleep(Vt)}throw new Error(`Durable Rust semantic session timed out after ${(i/1e3).toFixed(0)}s.`)}function zt(n,e,t,r,i){let o=He(n);if(o&&Ke(o,i.now(),i.isProcessAlive,i.readProcessIdentity))return;_i(re(n,"server.json"),{force:!0}),i.spawnServer(e,n,t);let s=i.monotonicNow??q,a=Math.min(r,s()+Oi);for(;s()<=a;){let l=He(n);if(l&&Ke(l,i.now(),i.isProcessAlive,i.readProcessIdentity))return;i.sleep(Vt)}throw new Error("Durable Rust semantic session helper did not become ready within 5s.")}function He(n){try{let e=JSON.parse(B(re(n,"server.json"),{maxBytes:et,inputKind:"durable Rust session state"}));if(typeof e.protocolVersion!="number"||e.sessionIdentity!==void 0&&(typeof e.sessionIdentity!="string"||e.sessionIdentity!==Mn(n))||typeof e.pid!="number"||typeof e.heartbeatAtMs!="number"||e.busyUntilMs!==void 0&&typeof e.busyUntilMs!="number"||e.mailbox!==void 0&&!Wi(e.mailbox))return null;let t=e.processIdentity===void 0?null:xe(e.processIdentity);return e.processIdentity!==void 0&&(!t||t.pid!==e.pid)?null:{protocolVersion:e.protocolVersion,...e.sessionIdentity===void 0?{}:{sessionIdentity:e.sessionIdentity},pid:e.pid,...t?{processIdentity:t}:{},heartbeatAtMs:e.heartbeatAtMs,...e.busyUntilMs===void 0?{}:{busyUntilMs:e.busyUntilMs},...e.mailbox===void 0?{}:{mailbox:e.mailbox}}}catch{return null}}function ji(n,e){try{return qt(JSON.parse(n),e)}catch(t){return{ok:!1,code:"malformed-response",error:`helper wrote malformed JSON: ${t instanceof Error?t.message:String(t)}`}}}function Wi(n){if(!n||typeof n!="object")return!1;let e=n;return N(e.pending)&&N(e.inflight)&&N(e.responses)&&N(e.deadLetters)&&N(e.invalid)&&N(e.totalItems)&&typeof e.totalBytes=="number"&&Number.isFinite(e.totalBytes)&&e.totalBytes>=0&&(e.oldestPendingAt===void 0||Number.isFinite(Date.parse(e.oldestPendingAt)))}function Kt(){return Object.fromEntries(Object.entries(process.env).filter(([n])=>zi(n)).sort(([n],[e])=>n.localeCompare(e)).map(([n,e])=>[n,e??null]))}function Gt(n){return n==="HOME"||n==="PATH"||n.startsWith("CARGO_")||n.startsWith("RA_")||n.startsWith("RUST")}function zi(n){return Gt(n)||n.startsWith("SCIP_RUST_")||n==="SCIP_QUERY_PROFILE"||n==="SCIP_QUERY_PROFILE_CACHE_STATE"||n==="SCIP_QUERY_PROFILE_COMMAND"||n==="SCIP_QUERY_PROFILE_OUT"||n==="SCIP_QUERY_PROFILE_RUN_ID"||n==="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY"||n==="SCIP_QUERY_PROFILE_WORKLOAD_IDENTITY_KIND"||n==="SCIP_QUERY_PROFILE_MIN_MS"}var Qt={canonicalProjectRoot(n){try{return Ni(n)}catch{return re(n)}},projectFingerprint(n){return Ot(n)},engineIdentity:bn,fileFingerprint(n){return sn(n,{maxBytes:H,inputKind:"Rust semantic engine artifact"})},environment(){return Yt(process.env)}},Ki={now:Date.now,monotonicNow:q,randomId:Fi,isProcessAlive:Pe,readProcessIdentity:we,spawnServer(n,e,t){if(!Ht(n))throw new Error(`Durable Rust semantic session helper was not found at ${n}. Run npm run build first.`);Ei(process.execPath,[n,e,t],{detached:!0,stdio:"ignore"}).unref()},sleep(n){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,n)}};function Xt(n){return Ai("sha256").update(n).digest("hex")}import{randomUUID as Va}from"crypto";import{readdirSync as Hi,rmSync as Ya,writeFileSync as Ja}from"fs";import{join as Vi}from"path";var $i="rust-analyzer-owner-",Yi=".json",Ji=16*1024;async function Zt(n,e){if(!n)return[];let t;try{t=Hi(n)}catch{return[]}let r=t.filter(s=>s.startsWith($i)&&s.endsWith(Yi)).map(s=>Vi(n,s)),i=[],o=[];for(let s of r){let a=Gi(s);a?o.push(a):i.push({reaped:!1,reason:"identity-unavailable",detail:`Rust analyzer ownership record ${s} could not be validated.`})}return i.push(...await Promise.all(o.map(s=>vt(s,e)))),i}function Gi(n){try{let e=B(n,{maxBytes:Ji,inputKind:"rust-analyzer process ownership record"}),t=JSON.parse(e),r=xe(t.rootIdentity);return t.version!==1||!r||typeof t.ownsProcessGroup!="boolean"?null:{rootPid:r.pid,rootIdentity:r,ownsProcessGroup:t.ownsProcessGroup,knownMembers:new Map([[r.pid,r]])}}catch{return null}}var tr=15e3,rr=8,or=5e3,no=64,to=96,Cn=class{constructor(e,t,r={}){this.projectRoot=e;this.status=t;this.opts=r;this.requester=r.requester??so(e,process.env.SCIP_RUST_SEMANTIC_DURABLE_SESSION)}projectRoot;status;opts;requester;referencesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),references:ge(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,references:K(e,new Map(r.references),new Set(r.incompleteReferenceSymbolIds??[]))}}catch(r){return this.opts.fallbackReferenceResolver?.referencesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),references:ge(e)}}}calleesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),callees:Re(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!1,includeCallees:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,callees:xn(e,new Map(r.callees??[]))}}catch(r){return this.opts.fallbackCalleeResolver?.calleesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),callees:Re(e)}}}referencesAndCalleesForDefinitions(e,t){let r=this.status(this.projectRoot);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),references:ge(e),callees:Re(t)};let i=[...e,...t];try{let o=this.requestSession(r.resolvedBinary,i,{includeReferences:e.length>0,includeCallees:t.length>0,referenceDefinitions:e,calleeDefinitions:t});return{...ye(o),resolvedBinary:r.resolvedBinary,references:K(e,new Map(o.references),new Set(o.incompleteReferenceSymbolIds??[])),callees:xn(t,new Map(o.callees??[]))}}catch(o){return this.fallbackReferencesAndCallees(r,e,t,o)}}signaturesForDefinitions(e){let t=this.status(this.projectRoot);if(!t.available||!t.resolvedBinary)return{available:!1,resolvedBinary:t.resolvedBinary,reason:Se(t),signatures:ir(e)};try{let r=this.requestSession(t.resolvedBinary,e,{includeReferences:!1,includeCallees:!1,includeSignatures:!0});return{...ye(r),resolvedBinary:t.resolvedBinary,signatures:fo(e,new Map(r.signatures??[]))}}catch(r){return this.opts.fallbackSignatureResolver?.signaturesForDefinitions(e)??{available:!1,resolvedBinary:t.resolvedBinary,reason:r instanceof Error?r.message:String(r),signatures:ir(e)}}}importDefinitionsForFile(e,t){let r=this.status(this.projectRoot);if(t.length===0)return r.available?{available:!0,resolvedBinary:r.resolvedBinary,sourcePaths:new Map}:{available:!1,reason:r.reason,resolvedBinary:r.resolvedBinary,sourcePaths:new Map};if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Se(r),sourcePaths:new Map(t.map(i=>[i.id,null]))};try{let i=this.requestImportDefinitions(r.resolvedBinary,e,t);return{...ye(i),resolvedBinary:r.resolvedBinary,sourcePaths:new Map(i.sourcePaths)}}catch(i){return{available:!1,resolvedBinary:r.resolvedBinary,reason:i instanceof Error?i.message:String(i),sourcePaths:new Map(t.map(o=>[o.id,null]))}}}dispose(){this.requester.shutdown()}requestSession(e,t,r){let i=Ve(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,tr),o=$e(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),s=Ve(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,rr),a=$e(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),l=r.referenceDefinitions?[...r.referenceDefinitions]:void 0,u=r.calleeDefinitions?[...r.calleeDefinitions]:void 0,f=r.signatureDefinitions?[...r.signatureDefinitions]:void 0,c=be(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,...r}),p={projectRoot:this.projectRoot,rustAnalyzerBinary:e,definitions:[...t],...l?{referenceDefinitions:l}:{},...u?{calleeDefinitions:u}:{},...f?{signatureDefinitions:f}:{},requestTimeoutMs:i,...r.includeReferences!==!1&&o>0?{referenceRetryTimeoutMs:o}:{},diagnosticsTimeoutMs:a,settleDelayMs:c,concurrency:s,includeReferences:r.includeReferences,includeCallees:r.includeCallees,includeSignatures:r.includeSignatures},d=po(p);return w("rust.semantic.session.request",()=>this.requester.requestSemantic(p,Y(d,Tn(i,p.referenceRetryTimeoutMs),s)),()=>({definitions:t.length,operationDefinitions:d,referenceDefinitions:p.referenceDefinitions?.length,calleeDefinitions:p.calleeDefinitions?.length,signatureDefinitions:p.signatureDefinitions?.length,references:p.includeReferences!==!1,callees:p.includeCallees===!0,signatures:p.includeSignatures===!0,referenceRetryTimeoutMs:p.referenceRetryTimeoutMs}))}fallbackReferencesAndCallees(e,t,r,i){let o=t.length===0?{available:!0,resolvedBinary:e.resolvedBinary,references:ge(t)}:this.opts.fallbackReferenceResolver?.referencesForDefinitions(t),s=r.length===0?{available:!0,resolvedBinary:e.resolvedBinary,callees:Re(r)}:this.opts.fallbackCalleeResolver?.calleesForDefinitions(r);if(o&&s){let a={resolvedBinary:o.resolvedBinary??s.resolvedBinary??e.resolvedBinary,references:K(t,o.references),callees:xn(r,s.callees)};return o.available&&s.available?{available:!0,...a}:{available:!1,reason:(o.available?void 0:o.reason)??(s.available?void 0:s.reason)??"Rust semantic fallback was unavailable.",...a}}return{available:!1,resolvedBinary:e.resolvedBinary,reason:i instanceof Error?i.message:String(i),references:ge(t),callees:Re(r)}}requestImportDefinitions(e,t,r){let i=Ve(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,tr),o=Ve(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,rr),s=$e(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(i,1e4)),a=$e(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,or),l={projectRoot:this.projectRoot,rustAnalyzerBinary:e,file:t,positions:[...r],requestTimeoutMs:i,diagnosticsTimeoutMs:s,settleDelayMs:a,concurrency:o};return w("rust.semantic.import-definitions.session.request",()=>this.requester.requestImportDefinitions(l,Y(r.length,i,o)),()=>({file:t,positions:r.length}))}};function ye(n){return n.available?{available:!0}:{available:!1,reason:n.reason}}function Se(n){return n.available?"rust-analyzer binary path is unavailable.":n.reason}function sr(n,e,t={}){return new Cn(n,e,t)}function be(n,e){let t=cr(n);if(t!==null)return t;let r=e.includeReferences!==!1;return r&&e.includeCallees!==!0&&e.includeSignatures!==!0&&e.definitionCount<=no||r&&e.includeCallees===!0&&e.includeSignatures!==!0&&e.definitionCount<=to?0:or}function ro(n){let e=n?.trim().toLowerCase(),t=e==="0"||e==="false"||e==="off"||e==="worker",r=e==="1"||e==="true"||e==="on"||e==="durable",i=e===void 0||e==="";return{transport:t||!i&&!r?"worker":"durable",source:i?"default":"environment",fallback:"worker",valid:i||t||r,optOut:"SCIP_RUST_SEMANTIC_DURABLE_SESSION=0"}}function io(n){return ro(n).transport}function oo(n,e){let t=null,r=!1,i=!1,o=!1,s=()=>t??=e(),a=()=>{i||(n.shutdown(),i=!0)},l=(f,c,p)=>{let d=uo(f);r=!0;try{a()}catch{}_()&&Ae({type:"span",name:"rust.semantic.durable-session.request",durationMs:p,ok:!1,kind:c,session:"worker-fallback",reason:d})},u=(f,c,p)=>{if(o)throw new Error("Rust semantic failover session was already disposed.");if(r)return p(s());let d=performance.now();try{return c(n)}catch(y){l(y,f,performance.now()-d)}return p(s())};return{requestSemantic(f,c){return u("semantic",p=>p.requestSemantic(f,c),p=>p.requestSemantic(f,c))},requestImportDefinitions(f,c){return u("import-definitions",p=>p.requestImportDefinitions(f,c),p=>p.requestImportDefinitions(f,c))},shutdown(){if(o)return;o=!0;let f=[];try{a()}catch(c){f.push(c)}try{t?.shutdown()}catch(c){f.push(c)}if(f.length>0)throw f[0]}}}function so(n,e,t={worker:()=>ao(),durable:()=>Jt(n,{serverPath:Ye(mo()),semanticWorkerPath:Ye(ar())})}){return io(e)==="durable"?oo(t.durable(),t.worker):t.worker()}function ao(n={}){let e=null,t=null,r=1,i=!1,o=null,s=null,a=c=>{c&&vn(c,{recursive:!0,force:!0})},l=()=>{if(o)return;let c=e,p=t;e=null,t=null;let d=c?c.terminate():Promise.resolve(0);o=Promise.allSettled([d,Zt(p,{gracefulMs:1e3,forceMs:1e3})]).then(([y,R])=>{let S=(R.status==="fulfilled"?R.value:[{reaped:!1,detail:String(R.reason)}]).filter(M=>!M.reaped);if(y.status==="rejected"||S.length>0){s=new Error(`Rust semantic worker cleanup did not complete; ownership evidence remains at ${p??"unknown"}.`);return}a(p)}).finally(()=>{o=null})},u=()=>{if(e)return e;if(o)throw new Error("The previous Rust semantic session worker is still terminating; retry the request.");if(s)throw s;let c=n.semanticWorkerPath?Xi(n.semanticWorkerPath):ar();if(!Qi(Ye(c)))throw new Error(`Rust semantic session worker was not found at ${Ye(c)}. Run npm run build before using built semantic Rust queries.`);return t=er(Dn(nr(),"scip-query-rust-session-")),e=new eo(c,n.shareEnvironment?{env:Zi}:void 0),e.unref(),e},f=()=>{let c=t??er(Dn(nr(),"scip-query-rust-session-"));return t=c,Dn(c,`${r++}.json`)};return{requestSemantic(c,p){if(i)throw new Error("Rust semantic session was already disposed.");let d=u(),y=f(),R=new SharedArrayBuffer(4),b=new Int32Array(R);if(d.postMessage({kind:"semantic",request:c,responsePath:y,sharedBuffer:R}),Atomics.wait(b,0,0,p)==="timed-out")throw l(),new Error(`Rust semantic session worker timed out after ${(p/1e3).toFixed(0)}s`);try{let M=co(B(y,{maxBytes:H,inputKind:"Rust semantic worker response"}));if(!M.ok)throw new Error(M.error);return M.response}finally{vn(y,{force:!0})}},requestImportDefinitions(c,p){if(i)throw new Error("Rust semantic session was already disposed.");let d=u(),y=f(),R=new SharedArrayBuffer(4),b=new Int32Array(R);if(d.postMessage({kind:"import-definitions",request:c,responsePath:y,sharedBuffer:R}),Atomics.wait(b,0,0,p)==="timed-out")throw l(),new Error(`Rust semantic import-definition session worker timed out after ${(p/1e3).toFixed(0)}s`);try{let M=lo(B(y,{maxBytes:H,inputKind:"Rust import-definition worker response"}));if(!M.ok)throw new Error(M.error);return M.response}finally{vn(y,{force:!0})}},shutdown(){if(i)return;if(i=!0,!e){a(t),t=null;return}let c=f(),p=new SharedArrayBuffer(4),d=new Int32Array(p);e.postMessage({kind:"shutdown",responsePath:c,sharedBuffer:p}),Atomics.wait(d,0,0,5e3),l()}}}function co(n){let e=JSON.parse(n);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=e;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function lo(n){let e=JSON.parse(n);if(!e||typeof e!="object")return{ok:!1,error:"Rust semantic session worker wrote a non-object response."};let t=e;return t.ok===!0&&"response"in t?{ok:!0,response:t.response}:{ok:!1,error:typeof e.error=="string"?e.error:"Rust semantic session worker failed."}}function uo(n){let e=n instanceof Error?`${n.name} ${n.message}`.toLowerCase():String(n).toLowerCase();return e.includes("readiness")?"readiness":e.includes("timeout")||e.includes("timed out")?"timeout":e.includes("helper")?"helper":"request"}function ge(n){return new Map(n.map(e=>[e.symbolId,[]]))}function Re(n){return new Map(n.map(e=>[e.symbolId,[]]))}function ir(n){return new Map(n.map(e=>[e.symbolId,null]))}function xn(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??[]]))}function fo(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??null]))}function po(n){let e=0;return n.includeReferences!==!1&&(e+=(n.referenceDefinitions??n.definitions).length),n.includeCallees===!0&&(e+=(n.calleeDefinitions??n.definitions).length),n.includeSignatures===!0&&(e+=(n.signatureDefinitions??n.definitions).length),Math.max(1,e)}function Tn(n,e){return e&&e>0?Math.max(n,e):n}function ar(){return new URL("./rust-semantic-session-worker.js",import.meta.url)}function mo(){return new URL("./rust-semantic-session-server.js",import.meta.url)}function Ve(n,e){return X(n)??e}function $e(n,e){return cr(n)??e}function cr(n){if(!n)return null;let e=Number(n);return Number.isInteger(e)&&e>=0?e:null}var Pn=15e3,En=8;function pr(n,e={}){let t=e.status??je,r=Ro(n,t),i=bo(n,t),o=ho(n,t),s=e.referenceResolver||e.calleeResolver||e.signatureResolver||!So(e)?null:sr(n,t,{fallbackReferenceResolver:r,fallbackCalleeResolver:i,fallbackSignatureResolver:o}),a=e.referenceResolver??s??r,l=e.calleeResolver??s??i,u=e.signatureResolver??s??o,f=e.importUsageResolver??Pt(e.sourceImportUsageResolver??go(),e.importDefinitionResolver??s),c=e.calleeSymbolResolver,p=e.sourceZeroCalleeOracle,d=e.scipOccurrenceCalleeOracle,y=new Map,R=new Map,b=null,S=null,M=()=>(b??=t(n),b),P=()=>{let g=M();return g.dependencyAvailable?S??g:g},h=g=>{if(g.length===0)return new Map;let m=Ie(g);try{let I=a.referencesForDefinitions(m),T=M();return S=Je(T,I),I.available?new Map(I.references):K(m,I.references)}catch(I){let T=M();return S=he(T,I),J(m)}},C=g=>{if(g.length===0)return new Map;let m=Ie(g),I=m.filter(lr);if(I.length===0)return G(m);let T=new Map,W=fr(I,d),F=[];for(let k of I)R.has(k.symbolId)?T.set(k.symbolId,R.get(k.symbolId)??[]):W.has(k.symbolId)?T.set(k.symbolId,W.get(k.symbolId)??[]):ur(k,p)?T.set(k.symbolId,[]):F.push(k);if(F.length===0)return ie(m,T,void 0);try{let k=l.calleesForDefinitions(F),O=M();S=Je(O,k);let E=ie(F,k.callees,c);for(let[ce,tn]of E)T.set(ce,tn);return ie(m,T,void 0)}catch(k){let O=M();return S=he(O,k),G(m)}},x=(g,m)=>{let I=Ie(g),T=Ie(m),W=T.filter(lr),F=new Map,k=fr(W,d),O=[];for(let E of W)k.has(E.symbolId)?F.set(E.symbolId,k.get(E.symbolId)??[]):ur(E,p)?F.set(E.symbolId,[]):O.push(E);if(I.length===0&&O.length===0)return{references:J(I),callees:ie(T,F,void 0)};try{let E=s?s.referencesAndCalleesForDefinitions(I,O):Do(a,l,{referenceDefinitions:I,calleeDefinitions:O}),ce=M();S=Je(ce,E);let tn=E.available?new Map(E.references):K(I,E.references);for(let[rn,on]of E.callees)F.set(rn,on);let Zn=ie(T,F,c);for(let[rn,on]of Zn)R.set(rn,on);return{references:tn,callees:Zn}}catch(E){let ce=M();return S=he(ce,E),{references:J(I),callees:G(T)}}},v=g=>{if(g.length===0)return new Map;let m=Ie(g);try{let I=u.signaturesForDefinitions(m),T=M();return S=Je(T,I),dr(m,I.signatures)}catch(I){let T=M();return S=he(T,I),Ge(m)}};return{language:"rust",availability:P,dispose:()=>{s?.dispose()},importUsage:g=>{let m=y.get(g);if(m)return m;try{let I=f.importUsage(g);return y.set(g,I),I}catch(I){let T=M();return S=he(T,I),[]}},referencesFor:g=>h([g]).get(g.symbolId)??[],referencesForDefinitions:h,referencesAndCalleesForDefinitions:x,calleesFor:g=>C([g]).get(g.symbolId)??[],calleesForDefinitions:C,signatureFor:g=>v([g]).get(g.symbolId)??null}}function Je(n,e){let t={dependencyAvailable:n.dependencyAvailable,resolvedBinary:e.resolvedBinary??n.resolvedBinary,...n.note?{note:n.note}:{}};return e.available?{available:!0,...t}:{available:!1,reason:e.reason,...t}}function he(n,e){return{available:!1,dependencyAvailable:n.dependencyAvailable,resolvedBinary:n.resolvedBinary,...n.note?{note:n.note}:{},reason:e instanceof Error?e.message:String(e)}}function So(n){if(n.usePersistentSession!==void 0)return n.usePersistentSession;let e=process.env.SCIP_RUST_SEMANTIC_SESSION;return e!=="0"&&e!=="false"}function go(){return{importUsageFacts:()=>({usage:[],positions:[]})}}function Ie(n){return n.map(e=>{let t=e;return{...e,leaf:typeof t.leaf=="string"?t.leaf:V(e.symbol),parentTypeName:t.parentTypeName??null,isFunctionLike:typeof t.isFunctionLike=="boolean"?t.isFunctionLike:bt(e.symbol),isTypeLike:t.isTypeLike??!1,kind:t.kind??null,documentation:t.documentation??null,enclosingSymbol:t.enclosingSymbol??null}})}function lr(n){return n.isFunctionLike}function ur(n,e){if(!e)return!1;try{return e(n)}catch{return!1}}function fr(n,e){if(!e||n.length===0)return new Map;try{return e(n)}catch{return new Map}}function Ro(n,e){return{referencesForDefinitions:t=>Io(n,e,t)}}function bo(n,e){return{calleesForDefinitions:t=>Mo(n,e,t)}}function ho(n,e){return{signaturesForDefinitions:t=>vo(n,e,t)}}function Io(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),references:J(t)};let i=An();if(!wn(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,references:J(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=Qe(process.env.SCIP_RUST_SEMANTIC_REFERENCE_RETRY_TIMEOUT_MS,0),a=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),l=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),u=be(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!0}),f={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,...s>0?{referenceRetryTimeoutMs:s}:{},diagnosticsTimeoutMs:l,settleDelayMs:u,concurrency:a},c=kn(process.execPath,[i],{cwd:n,input:JSON.stringify(f),encoding:"utf8",maxBuffer:50*1024*1024,timeout:Y(t.length,Tn(o,f.referenceRetryTimeoutMs),a)}),p=_n(c.stdout);if(p)return{...Fn(p),resolvedBinary:r.resolvedBinary,references:K(t,new Map(p.references),new Set(p.incompleteReferenceSymbolIds??[]))};let d=c.error instanceof Error?c.error.message:c.stderr.trim()||`Rust semantic worker exited with status ${c.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:d,references:J(t)}}function Mo(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),callees:G(t)};let i=An();if(!wn(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,callees:G(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),a=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),l=be(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!1,includeCallees:!0}),u={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:s,includeReferences:!1,includeCallees:!0},f=kn(process.execPath,[i],{cwd:n,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,timeout:Y(t.length,o,s)}),c=_n(f.stdout);if(c)return{...Fn(c),resolvedBinary:r.resolvedBinary,callees:ie(t,new Map(c.callees??[]),void 0)};let p=f.error instanceof Error?f.error.message:f.stderr.trim()||`Rust semantic worker exited with status ${f.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:p,callees:G(t)}}function vo(n,e,t){let r=e(n);if(!r.available||!r.resolvedBinary)return{available:!1,resolvedBinary:r.resolvedBinary,reason:Nn(r),signatures:Ge(t)};let i=An();if(!wn(i))return{available:!1,resolvedBinary:r.resolvedBinary,reason:`Rust semantic worker was not found at ${i}. Run npm run build before using built semantic Rust queries.`,signatures:Ge(t)};let o=oe(process.env.SCIP_RUST_SEMANTIC_REQUEST_TIMEOUT_MS,Pn),s=oe(process.env.SCIP_RUST_SEMANTIC_CONCURRENCY,En),a=Qe(process.env.SCIP_RUST_SEMANTIC_DIAGNOSTICS_TIMEOUT_MS,Math.min(o,1e4)),l=be(process.env.SCIP_RUST_SEMANTIC_SETTLE_MS,{definitionCount:t.length,includeReferences:!1,includeCallees:!1,includeSignatures:!0}),u={projectRoot:n,rustAnalyzerBinary:r.resolvedBinary,definitions:[...t],requestTimeoutMs:o,diagnosticsTimeoutMs:a,settleDelayMs:l,concurrency:s,includeReferences:!1,includeCallees:!1,includeSignatures:!0},f=kn(process.execPath,[i],{cwd:n,input:JSON.stringify(u),encoding:"utf8",maxBuffer:50*1024*1024,timeout:Y(t.length,o,s)}),c=_n(f.stdout);if(c)return{...Fn(c),resolvedBinary:r.resolvedBinary,signatures:dr(t,new Map(c.signatures??[]))};let p=f.error instanceof Error?f.error.message:f.stderr.trim()||`Rust semantic worker exited with status ${f.status??"unknown"}.`;return{available:!1,resolvedBinary:r.resolvedBinary,reason:p,signatures:Ge(t)}}function Do(n,e,t){let r=t.referenceDefinitions.length>0?n.referencesForDefinitions(t.referenceDefinitions):{available:!0,references:J(t.referenceDefinitions)},i=t.calleeDefinitions.length>0?e.calleesForDefinitions(t.calleeDefinitions):{available:!0,callees:G(t.calleeDefinitions)},o={resolvedBinary:r.resolvedBinary??i.resolvedBinary,references:r.references,callees:i.callees};return r.available&&i.available?{available:!0,...o}:{available:!1,reason:(r.available?void 0:r.reason)??(i.available?void 0:i.reason)??"Rust semantic resolution was unavailable.",...o}}function J(n){return new Map(n.map(e=>[e.symbolId,[]]))}function G(n){return new Map(n.map(e=>[e.symbolId,[]]))}function Ge(n){return new Map(n.map(e=>[e.symbolId,null]))}function ie(n,e,t){let r=0,i=0;return w("rust.semantic.callees.complete-map",()=>{let o=new Map;for(let s of n){let a=e.get(s.symbolId)??[];a.length>0&&(r+=1),i+=a.length,o.set(s.symbolId,a.map(l=>({...l,symbol:t?t(l):l.symbol})))}return o},()=>({definitions:n.length,rows:r,callees:i,resolveSymbols:!!t}))}function dr(n,e){return new Map(n.map(t=>[t.symbolId,e.get(t.symbolId)??null]))}function An(){return yo(new URL("./rust-semantic-worker.js",import.meta.url))}function Fn(n){return n.available?{available:!0}:{available:!1,reason:n.reason}}function Nn(n){return n.available?"rust-analyzer binary path is unavailable.":n.reason}function _n(n){try{let e=JSON.parse(n);if(!e||typeof e!="object")return null;let t=e;if(typeof t.available!="boolean"||!Array.isArray(t.references)||t.available===!1&&typeof t.reason!="string"||t.available===!0&&t.reason!==void 0)return null;let r={references:t.references,incompleteReferenceSymbolIds:Array.isArray(t.incompleteReferenceSymbolIds)?t.incompleteReferenceSymbolIds.filter(i=>typeof i=="number"):void 0,callees:Array.isArray(t.callees)?t.callees:void 0,signatures:Array.isArray(t.signatures)?t.signatures:void 0};return t.available===!0?{available:!0,...r}:{available:!1,reason:String(t.reason),...r}}catch{return null}}function oe(n,e){return X(n)??e}function Qe(n,e){if(!n)return e;let t=Number(n);return Number.isInteger(t)&&t>=0?t:e}import{existsSync as xo}from"fs";import{deserializeSCIP as Co,SymbolRole as To}from"@c4312/scip";var Ln=new WeakMap;function yr(n,e){let t=e.filter(ko);if(t.length===0)return new Map;let r=!1,i=0,o=0;return w("rust.scip-occurrence.callees",()=>{let s=Eo(n);if(r=!!s,!s)return new Map;let a=new Map;for(let l of t){let u=wo(n,s,l);u!==null&&(a.set(l.symbolId,u),i+=1,o+=u.length)}return a},()=>({definitions:e.length,candidates:t.length,indexAvailable:r,resolvedDefinitions:i,resolvedCallees:o}))}function ko(n){return!(!n.symbol.startsWith("rust-analyzer ")||!n.relativePath.endsWith(".rs")||!n.isFunctionLike||n.leaf==="main"||de(n.symbol))}function wo(n,e,t){let r=Fe(n,t.relativePath);if(!r||r.language!=="rust")return null;let i=r.callables.find(u=>u.startLine!==t.startLine||u.endLine!==t.endLine?!1:u.name===t.leaf||t.leaf.endsWith(u.name)||u.name.endsWith(t.leaf));if(!i)return null;let o=r.callSites.filter(u=>u.line>=i.startLine&&u.line<=i.endLine);if(o.length===0)return null;let s=(e.occurrencesByFile.get(t.relativePath)??[]).filter(u=>u.line>=i.startLine&&u.line<=i.endLine&&u.callee.symbol!==t.symbol);if(s.some(u=>u.traitImplMember)||!Po(o,s))return null;let a=[],l=new Set;for(let u of s){let f=`${u.callee.symbol}\0${u.callee.file}\0${u.callee.line}`;l.has(f)||(l.add(f),a.push(u.callee))}return a}function Po(n,e){let t=mr(n),r=mr(e);if(t.size!==r.size)return!1;for(let[i,o]of t)if(r.get(i)!==o)return!1;return!0}function mr(n){let e=new Map;for(let t of n){let r=t.calleeLeaf??t.leaf;if(!r)continue;let i=`${t.line}\0${r}`;e.set(i,(e.get(i)??0)+1)}return e}function Eo(n){if(Ln.has(n))return Ln.get(n)??null;let e=Ao(n);return Ln.set(n,e),e}function Ao(n){if(!n.generation.indexPath||!xo(n.generation.indexPath))return null;try{let e=_e(n).filter(o=>o.symbol.startsWith("rust-analyzer ")&&o.relativePath.endsWith(".rs")&&o.isFunctionLike),t=new Map(e.map(o=>[o.symbol,o])),r=Co(ke(n.generation.indexPath,{inputKind:"SCIP occurrence-callee index",maxBytes:Te})),i=new Map;for(let o of r.documents??[]){let s=o.relativePath;if(!s||!s.endsWith(".rs")||n.isIgnored(s))continue;let a=[];for(let l of o.occurrences??[]){if(!l.symbol||(l.symbolRoles&To.Definition)!==0)continue;let u=t.get(l.symbol);if(!u)continue;let f=l.range?.[0];Number.isInteger(f)&&a.push({line:f,leaf:u.leaf,traitImplMember:de(u.symbol),callee:{symbol:u.symbol,file:u.relativePath,line:u.startLine,callsiteLine:f}})}i.set(s,a)}return{occurrencesByFile:i}}catch{return null}}var Xe=class{sessions=new WeakMap;getOrCreate(e,t,r){let i=Fo(e,t),o=this.sessions.get(e);o||(o=new Map,this.sessions.set(e,o));let s=o.get(i);if(s)return s.hits+=1,s.lastUsedAtMs=Date.now(),s.provider;let a=Date.now(),l=r();return o.set(i,{key:i,language:t,projectRoot:e.config.projectRoot,provider:l,createdAtMs:a,lastUsedAtMs:a,hits:1}),l}sessionsFor(e){return[...this.sessions.get(e)?.values()??[]]}clear(e){let t=this.sessions.get(e);if(t)for(let r of t.values())r.provider.dispose?.();this.sessions.delete(e)}};function Fo(n,e){return`${n.config.projectRoot}:${e}-workspace`}import{randomUUID as os}from"crypto";import{existsSync as ss}from"fs";import{dirname as as}from"path";function Sr(n){if(!n||typeof n!="object"||Array.isArray(n))return null;let e=n;if(typeof e.available!="boolean"||e.dependencyAvailable!==void 0&&typeof e.dependencyAvailable!="boolean"||e.tsconfigPath!==void 0&&typeof e.tsconfigPath!="string"||e.tsconfigPaths!==void 0&&(!Array.isArray(e.tsconfigPaths)||!e.tsconfigPaths.every(t=>typeof t=="string"))||e.resolvedBinary!==void 0&&typeof e.resolvedBinary!="string"||e.note!==void 0&&typeof e.note!="string")return null;if(e.available===!0){if(e.reason!==void 0)return null}else if(typeof e.reason!="string"||e.reason.length===0)return null;return e}import{performance as D}from"perf_hooks";function L(n,e,t){if(n.has(e))return n.get(e);let r=t();return n.set(e,r),r}import br from"path";import{realpathSync as gr}from"fs";function No(n,e){return n.getReferences().map(t=>{let r=t.getNode();return Ze(r,e)})}function _o(n){let e=n;return typeof e.findReferences=="function"?e.findReferences():[]}function hr(n,e,t,r){let i=[];for(let o of _o(n))for(let s of No(o,r))s.file===e.relativePath&&s.line>=e.startLine&&s.line<=e.endLine||i.push(s);for(let o of t)i.push(o);return se(i)}function Ir(n,e,t,r){let i=[],o=t?.getStart();for(let s of n.getReferences()){let a=s.getNode();ae(r,a.getSourceFile().getFilePath())===e&&(o!==void 0&&a.getStart()===o||i.push({location:Ze(a,r),node:a}))}return i}function Ze(n,e){let t=n.getSourceFile(),r=t.getLineAndColumnAtPos(n.getStart());return{file:ae(e,t.getFilePath())??t.getBaseName(),line:r.line-1,column:r.column-1}}function Mr(n,e,t){let r=n.getSourceFile(),i=Un(r,n),o=n.getText(),s=new RegExp(`\\b${pe(o)}\\b`,"g"),a=r.getFullText().split(`
|
|
2
|
+
`),l=[];for(let u=0;u<a.length;u++){if(u===i)continue;let f=a[u]??"";s.lastIndex=0;let c;for(;(c=s.exec(f))!==null;)l.push({file:e,line:u,column:c.index})}return se(l.filter(u=>ae(t,br.join(t,u.file))===e))}function On(n){for(let e=n;e;e=e.getParent()){let t=e.getKindName();if(t.includes("Type")||t==="InterfaceDeclaration"||t==="TypeAliasDeclaration")return!0;if(t==="CallExpression"||t==="NewExpression"||t==="ExpressionStatement")return!1}return!1}function Un(n,e){return n.getLineAndColumnAtPos(e.getStart()).line-1}function se(n){let e=new Set,t=[];for(let r of n){let i=`${r.file}:${r.line}:${r.column}`;e.has(i)||(e.add(i),t.push(r))}return t}function ae(n,e){let t=n||process.cwd(),r=Rr(t,e);if(r)return r;try{return Rr(gr(t),gr(e))}catch{return null}}function Rr(n,e){let t=br.relative(n,e).replace(/\\/g,"/");return!t||t===".."||t.startsWith("../")?null:t}function vr(n,e,t,r){let i=Lo(e,r);return i.size===0?new Map:Oo(n,t,i)}function Lo(n,e){let t=new Map;for(let r of z(n,e)){let i=V(r.symbol)??r.leaf;if(!i)continue;let o=t.get(i);o||(o=[],t.set(i,o)),o.push(r)}return t}function Oo(n,e,t){let r=new Map,i=new Map;return e.forEachDescendant(o=>{for(let s of Uo(n,o)){let a=t.get(s);if(!a)continue;let l=Un(e,o);for(let u of a){if(l<u.startLine-1||l>u.endLine+1)continue;let f=Math.abs(l-u.startLine),c=i.get(u.symbolId);c!==void 0&&c<=f||(i.set(u.symbolId,f),r.set(u.symbolId,o))}}}),r}function Uo(n,e){let t=[],r=i=>{i&&!t.includes(i)&&t.push(i)};if("getNameNode"in e&&typeof e.getNameNode=="function"){let i=e.getNameNode();r(i?.getText())}if("getName"in e&&typeof e.getName=="function"){let i=e.getName();r(i)}return n.Node.isIdentifier(e)&&r(e.getText()),t}var Bo=rt("ts-definition-leaf-candidates",{clearGroups:["definition-catalog"]});function Dr(n,e,t,r){let i=jn(n,e),o=Bn(i.get(r)??[],t);if(o)return o;let s=[];for(let a of i.values())for(let l of a)((l.leaf||V(l.symbol)||"").includes(r)||l.symbol.includes(r))&&s.push(l);return Bn(s,t)}function qn(n,e,t,r){return Bn(jn(n,e).get(r)??[],t)}function xr(n,e){let t=new Map;for(let[r,i]of jn(n,e)){let o=i[0];o&&t.set(r,o)}return t}function jn(n,e){return Bo.get(n,e,()=>{let t=new Map;for(let r of z(n,e)){let i=r.leaf||V(r.symbol);if(!i)continue;let o=t.get(i);o||(o=[],t.set(i,o)),o.push({...r,leaf:i})}for(let r of t.values())r.sort((i,o)=>i.startLine-o.startLine||i.endLine-o.endLine||i.symbolId-o.symbolId);return t})}function Bn(n,e){let t=null,r=Number.POSITIVE_INFINITY;for(let i of n){let o=Math.abs(i.startLine-e);(o<r||o===r&&t&&i.startLine<t.startLine)&&(t=i,r=o)}return t}import qo from"path";import{realpathSync as jo}from"fs";function Cr(n,e){let t=new Map,r=null,i=null,o=()=>(i??=Ee(n,{extensions:Ue}),i),s=()=>(r??=w("typescript.source-file-index",()=>Wo(n.config.projectRoot,e,o()),()=>({projects:e.length,indexedDocuments:o().length})),r),a=l=>ne(l)?L(t,l,()=>{let u=Tr(n.config.projectRoot,l);if(!u)return null;for(let{project:f,sourceFiles:c}of s()){let p=c.get(u)??null;if(p||(p=f.addSourceFileAtPathIfExists(u)??null,p&&Wn(c,p)),p)return{project:f,sourceFile:p}}return null}):null;return{sourceFile:l=>a(l)?.sourceFile??null,sourceFileMatch:a,indexedTypeScriptLikeDocuments:o}}function Wo(n,e,t){let r=e.map(({project:i})=>{let o=new Map;for(let s of i.getSourceFiles())Wn(o,s);return{project:i,sourceFiles:o}});for(let i of t){let o=Tr(n,i);if(o)for(let s of r){if(s.sourceFiles.has(o))break;let a=s.project.addSourceFileAtPathIfExists(o)??null;if(a){Wn(s.sourceFiles,a);break}}}return r}function Wn(n,e){let t=zn(e.getFilePath());n.set(t,e);try{n.set(zn(jo(t)),e)}catch(r){if(!fe(r))throw r}}function Tr(n,e){try{return zn(ft(n,e,{inputKind:"indexed TypeScript source file"}).absolutePath)}catch(t){if(!fe(t))throw t;return null}}function zn(n){return qo.resolve(n)}function Kn(n,e){for(let t of n)if(e===t.name||e.startsWith(`${t.name}/`))return t.name;return null}function kr(n){let e=`${n.relativeDir}/src`;return[`${e}/index.ts`,`${e}/index.tsx`,`${e}/index.mts`,`${e}/index.cts`]}import{existsSync as Me}from"fs";import A from"path";var Hn=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"];function Vn(n,e){let r=e?A.dirname(A.join(n,e)):n,i=A.resolve(n);for(;r.startsWith(i);){for(let s of Hn){let a=A.join(r,s);if(Me(a))return a}let o=A.dirname(r);if(o===r)break;r=o}for(let o of Hn){let s=A.join(n,o);if(Me(s))return s}return null}function wr(n){let e=n.config.projectRoot,t=new Set(zo(e,n.config.semantic?.typescript?.tsconfigs)),r=Ee(n,{includeIgnored:!1,extensions:Ue});for(let i of r){let o=Vn(e,i);o&&t.add(A.resolve(o))}if(t.size===0){let i=Vn(e);i&&t.add(A.resolve(i))}return[...t].filter(i=>!Pr(e,i)).sort((i,o)=>i.localeCompare(o))}function zo(n,e=[]){let t=new Set;for(let r of e){let i=A.isAbsolute(r)?r:A.join(n,r);Me(i)&&t.add(A.resolve(i))}for(let r of Ko(n))for(let i of Hn){let o=A.join(r,i);Me(o)&&t.add(A.resolve(o))}if(t.size===0){let r=Vn(n);r&&t.add(A.resolve(r))}return[...t].filter(r=>!Pr(n,r)).sort((r,i)=>r.localeCompare(i))}function Ko(n){let e=A.join(n,"package.json");if(!Me(e))return[];let t;try{t=JSON.parse(nt(e,"project package manifest"))}catch{return[]}return(Array.isArray(t.workspaces)?t.workspaces:t.workspaces?.packages??[]).flatMap(i=>ct(n,i))}function Pr(n,e){let t=A.relative(n,e).replace(/\\/g,"/");return t.startsWith("..")||t.includes("/node_modules/")||t.startsWith("node_modules/")||t.includes("/dist/")||t.startsWith("dist/")}var Ho=32;function Lr(n,e){let t=w("typescript.provider.load",()=>xt());if(!t)return Be("ts-morph is not installed");let r=w("typescript.provider.tsconfig-discovery",()=>wr(n));if(r.length===0)return Be("no tsconfig found");try{let i=w("typescript.provider.project-bundles",()=>Ct(t,r),()=>({tsconfigs:r.length}));return Vo(n,t,i)}catch(i){return Be(i instanceof Error?i.message:String(i),r[0],r)}}function Vo(n,e,t,r={}){return w("typescript.provider.construct",()=>new $n(n,e,t),()=>({tsconfigs:t.length,reusedProjects:r.reusedProjects===!0}))}var $n=class{constructor(e,t,r){this.db=e;this.tsMorph=t;this.projects=r;this.workspacePackages=at(e.config.projectRoot),this.sourceFiles=Cr(e,r)}db;tsMorph;projects;language="typescript";importUsageCache=new Map;referencesCache=new Map;calleesCache=new Map;fileCalleesCache=new Map;signatureCache=new Map;definitionNodeCache=new Map;fileDefinitionNodeCache=new Map;indexedDefinitionLeafCache=new Map;compilerCheckerCache=new WeakMap;packageImportReferenceIndex=null;packageExportIndex=null;workspacePackages;sourceFiles;availability(){return{available:!0,tsconfigPath:this.projects[0]?.tsconfigPath,tsconfigPaths:this.projects.map(e=>e.tsconfigPath)}}importUsage(e){return L(this.importUsageCache,e,()=>{let t=this.sourceFiles.sourceFile(e);if(!t)return[];let r=Yo();return w("typescript.import-usage.file",()=>this.importUsageForSourceFile(e,t,r),()=>({file:e,...r}))})}referencesFor(e){return L(this.referencesCache,e.symbolId,()=>{let t=this.nodeForDefinition(e);return this.referencesForDefinitionNode(e,t)})}referencesForDefinitions(e,t={}){let r=new Map,i=_(),o=[];for(let f of e){let c=this.referencesCache.get(f.symbolId);c?r.set(f.symbolId,c):o.push(f)}if(o.length===0)return r;let s=o,a=t.exact?[]:o.filter(f=>!Ar(f));if(a.length>=Ho){let f=this.referencesForDefinitionsBySymbolScan(a);for(let c of a){let p=f.get(c.symbolId)??[];this.referencesCache.set(c.symbolId,p),r.set(c.symbolId,p)}if(s=o.filter(c=>Ar(c)),s.length===0)return r}let l=new Map;for(let f of s){let c=l.get(f.relativePath);c?c.push(f):l.set(f.relativePath,[f])}let u=[];for(let[f,c]of l){let p=Fr();w("typescript.references-map.file",()=>{let d=this.definitionNodesForFile(f);for(let y of c){i&&(p.cacheMisses+=1);let R=d.get(y.symbolId)??null;i&&(R?p.nodeHits+=1:p.nodeMisses+=1);try{let b=this.referencesForDefinitionNode(y,R,i?p:void 0);this.referencesCache.set(y.symbolId,b),r.set(y.symbolId,b)}catch{p.preciseSearchFailures+=1,u.push(y)}}},()=>({relativePath:f,definitions:c.length,...Nr(p)}))}if(u.length>0){let f=this.referencesForDefinitionsBySymbolScan(u);for(let c of u){let p=f.get(c.symbolId)??[];this.referencesCache.set(c.symbolId,p),r.set(c.symbolId,p)}}return r}referenceFragmentsForFiles(e){let t=_e(this.db).filter(o=>ne(o.relativePath)),r=e.filter(o=>this.sourceFiles.sourceFile(o)!==null),i=this.referencesForDefinitionsBySymbolScan(t,r);return Tt(t,i,r)}referencesForDefinitionsBySymbolScan(e,t){let r=_(),i=Fr(),o=new Map,s=new Set(e.map(l=>l.symbolId)),a=new Map(e.map(l=>[l.symbolId,l]));for(let l of e)o.set(l.symbolId,[]);return w("typescript.references-map.inverted-scan",()=>{let l=r?D.now():0,u=t?this.packageImportReferencesForFiles(t):this.packageImportReferences();for(let b of e){let S=u.get(b.symbolId)??[];if(S.length>0){let M=o.get(b.symbolId)??[];M.push(...S),o.set(b.symbolId,M)}r&&(i.packageReferenceCount+=S.length)}r&&(i.packageRefsMs+=D.now()-l);let f=new Map,c=new Map,p=this.hierarchyTargetsForDefinitions(e),d=new Set(e.map(b=>b.leaf).filter(Boolean)),y=r?D.now():0;for(let b of t??this.sourceFiles.indexedTypeScriptLikeDocuments()){if(this.db.isIgnored(b))continue;let S=this.sourceFiles.sourceFile(b);S&&(r&&(i.scanFiles+=1),this.addReferencesFromSourceFileScan(S,b,s,a,p,d,f,c,o,r?i:void 0))}r&&(i.scanMs+=D.now()-y);let R=r?D.now():0;this.addHierarchyMemberReferences(e,o,r?i:void 0),r&&(i.hierarchyMs+=D.now()-R);for(let[b,S]of o){let M=se(S);o.set(b,M),r&&(i.referenceCount+=M.length)}},()=>({definitions:e.length,...Nr(i)})),o}addReferencesFromSourceFileScan(e,t,r,i,o,s,a,l,u,f){let c=this.compilerCheckerForSourceFile(e),p=e.compilerNode,d=Qo(e),y=R=>{if(this.tsMorph.ts.isIdentifier(R)){if(f&&(f.identifiers+=1),!s.has(R.text)&&!d.has(R.text)){this.tsMorph.ts.forEachChild(R,y);return}let b=this.compilerReferenceSymbol(c,R,f);if(b){let S;a.has(b)?S=a.get(b)??null:(S=this.referenceDefinitionFromCompilerSymbol(b),a.set(b,S)),f&&(S?f.targetHits+=1:f.targetMisses+=1);let M=L(l,b,()=>this.compilerSymbolKeys(b)),P=null,h=null,C=S&&r.has(S.symbolId)?i.get(S.symbolId):void 0;if(C&&(P=en(p,R),!Er(C,t,P))){let x=p.getLineAndCharacterOfPosition(R.getStart(p));h={file:t,line:x.line,column:x.character};let v=u.get(C.symbolId)??[];v.push(h),u.set(C.symbolId,v),f&&(f.requestedHits+=1)}for(let x of M)for(let v of o.get(x)?.values()??[]){if(P??=en(p,R),Er(v,t,P))continue;if(!h){let m=p.getLineAndCharacterOfPosition(R.getStart(p));h={file:t,line:m.line,column:m.character}}let g=u.get(v.symbolId)??[];g.push(h),u.set(v.symbolId,g),f&&(f.requestedHits+=1)}}}this.tsMorph.ts.forEachChild(R,y)};y(p)}hierarchyTargetsForDefinitions(e){let t=new Map;for(let r of e){let i=this.nodeForDefinition(r),o=i?.compilerNode;if(!o||!this.isHierarchyMethod(o))continue;let s=o.parent;if(!this.isHierarchyContainer(s))continue;let a=this.compilerCheckerForSourceFile(i.getSourceFile()),l=a.getSymbolAtLocation(o.name);if(l)for(let u of this.hierarchyMemberSymbols(a,s,l))for(let f of this.compilerSymbolKeys(u)){let c=t.get(f)??new Map;c.set(r.symbolId,r),t.set(f,c)}}return t}hierarchyMemberSymbols(e,t,r){let i=new Set,o=new Set,s=(a,l,u)=>{if(!o.has(a)){o.add(a),i.add(l);for(let f of u){let c=f.getProperty(r.name);c&&s(f,c,this.hierarchyAncestorTypesForType(e,f))}}};return s(e.getTypeAtLocation(t),r,this.hierarchyAncestorTypes(e,t)),i}addHierarchyMemberReferences(e,t,r){let i=new Map;for(let o of e){let s=this.nodeForDefinition(o),a=s?.compilerNode;if(!a||!this.isHierarchyMethod(a))continue;let l=a.parent;if(!this.isHierarchyContainer(l))continue;let u=this.compilerCheckerForSourceFile(s.getSourceFile()),f=u.getSymbolAtLocation(a.name);if(!f)continue;let c=a.getSourceFile(),p=c.getLineAndCharacterOfPosition(a.name.getStart(c)),d={definition:o,location:{file:o.relativePath,line:p.line,column:p.character}},y=t.get(o.symbolId)??[];for(let b of this.hierarchyMemberSymbols(u,l,f))if(b!==f)for(let S of this.compilerSymbolLocations(b))y.push(S),r&&(r.hierarchyReferences+=1);t.set(o.symbolId,y);let R=this.hierarchyRootMemberSymbols(u,l,f);for(let b of R){let S=i.get(b)??new Map;S.set(o.symbolId,d),i.set(b,S)}r&&(r.hierarchyDefinitions+=1)}for(let o of i.values())if(!(o.size<2)){r&&(r.hierarchyFamilies+=1);for(let{definition:s}of o.values()){let a=t.get(s.symbolId)??[];for(let l of o.values())l.definition.symbolId!==s.symbolId&&(a.push(l.location),r&&(r.hierarchyReferences+=1));t.set(s.symbolId,a)}}}hierarchyRootMemberSymbols(e,t,r){let i=new Set,o=new Set,s=(a,l,u)=>{if(o.has(a))return;o.add(a);let f=!1;for(let c of u){let p=c.getProperty(r.name);p&&(f=!0,s(c,p,this.hierarchyAncestorTypesForType(e,c)))}if(!f)for(let c of this.compilerSymbolKeys(l))i.add(c)};return s(e.getTypeAtLocation(t),r,this.hierarchyAncestorTypes(e,t)),i}compilerSymbolKeys(e){return(e.declarations??[]).map(t=>{let r=t.getSourceFile();return`${r.fileName}\0${t.getStart(r)}\0${e.name}`})}compilerSymbolLocations(e){let t=[];for(let r of e.declarations??[]){let i=r.getSourceFile(),o=ae(this.db.config.projectRoot,i.fileName);if(!o)continue;let s=r.name,a=i.getLineAndCharacterOfPosition((s??r).getStart(i));t.push({file:o,line:a.line,column:a.character})}return t}baseTypes(e,t){try{return e.getBaseTypes(t)??[]}catch{return[]}}hierarchyAncestorTypes(e,t){let r=new Set(this.hierarchyAncestorTypesForType(e,e.getTypeAtLocation(t)));for(let i of t.heritageClauses??[])for(let o of i.types)r.add(e.getTypeAtLocation(o));return[...r]}hierarchyAncestorTypesForType(e,t){let r=new Set(this.baseTypes(e,t));for(let i of t.getSymbol()?.declarations??[])if(this.isHierarchyContainer(i))for(let o of i.heritageClauses??[])for(let s of o.types)r.add(e.getTypeAtLocation(s));return[...r]}isHierarchyMethod(e){return this.tsMorph.ts.isMethodDeclaration(e)||this.tsMorph.ts.isMethodSignature(e)}isHierarchyContainer(e){return this.tsMorph.ts.isClassDeclaration(e)||this.tsMorph.ts.isClassExpression(e)||this.tsMorph.ts.isInterfaceDeclaration(e)}compilerReferenceSymbol(e,t,r){r&&(r.symbolLookups+=1);let i=e.getSymbolAtLocation(t);if(i){if((i.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return i;try{return r&&(r.aliasResolutions+=1),e.getAliasedSymbol(i)}catch{return i}}}calleesFor(e){return L(this.calleesCache,e.symbolId,()=>L(this.fileCalleesCache,e.relativePath,()=>this.calleeMapForFile(e.relativePath)).get(e.symbolId)??[])}calleesForDefinitions(e){let t=new Map,r=new Map;for(let i of e){let o=r.get(i.relativePath);o?o.push(i):r.set(i.relativePath,[i])}for(let[i,o]of r){let s=this.fileCalleesCache.get(i),a=new Set(o.map(u=>u.symbolId)),l=s??this.calleeMapForFile(i,a);for(let u of o){let f=l.get(u.symbolId)??[];this.calleesCache.set(u.symbolId,f),t.set(u.symbolId,f)}}return t}referencesForDefinitionNode(e,t,r){let i=r?D.now():0,o=this.packageImportReferencesForDefinition(e);if(r&&(r.packageRefsMs+=D.now()-i,r.packageReferenceCount+=o.length),!t)return o;let s=r?D.now():0,a=hr(t,e,o,this.db.config.projectRoot);return r&&(r.semanticRefsMs+=D.now()-s,r.referenceCount+=a.length),a}signatureFor(e){return L(this.signatureCache,e.symbolId,()=>{let t=this.nodeForDefinition(e);if(!t||!this.tsMorph.Node.isFunctionDeclaration(t)&&!this.tsMorph.Node.isMethodDeclaration(t)&&!this.tsMorph.Node.isArrowFunction(t)&&!this.tsMorph.Node.isFunctionExpression(t)&&!this.tsMorph.Node.isConstructorDeclaration(t))return null;let r=t.getType().getCallSignatures()[0];if(!r)return null;let i=r.getParameters().map(s=>{let a=s.getDeclarations()[0],l=a?s.getTypeAtLocation(a).getText(a):s.getValueDeclaration()?.getType().getText()??"unknown";return _r(l)}),o=r.getReturnType().getText(t);return`(${i.join(",")})=>${_r(o)}`})}importUsageForSourceFile(e,t,r){let i=[],o=new Map;for(let s of t.getImportDeclarations()){r.declarations+=1;let a=ln(this.db,e,s.getModuleSpecifierValue()),l=s.getImportClause()?.isTypeOnly()??!1;for(let u of Yn(s)){r.entries+=1;let f=l?null:u.identifier?.getSymbol()?.compilerSymbol??null;!l&&u.identifier&&(f?r.bindingSymbols+=1:r.missingBindingSymbols+=1);let c={sourcePath:a,entry:u,typeOnlyDeclaration:l,bindingSymbol:f,references:[]};if(i.push(c),l||!u.localName||!f)continue;let p=o.get(u.localName);p?p.push(c):o.set(u.localName,[c])}}return o.size>0&&t.forEachDescendant(s=>{if(s.getKindName()!=="Identifier")return;let a=o.get(s.getText());if(!a||Jo(s))return;r.scannedIdentifiers+=1;let l=s.getSymbol()?.compilerSymbol;if(r.symbolLookups+=1,!!l){for(let u of a)if(u.bindingSymbol===l){u.references.push({location:Ze(s,this.db.config.projectRoot),node:s}),r.matchedReferences+=1;break}}}),i.map(s=>s.typeOnlyDeclaration?$o(e,s.sourcePath,s.entry):s.entry.identifier&&!s.bindingSymbol?(r.fallbackEntries+=1,this.valueImportUsageForEntry(e,s.sourcePath,s.entry)):this.valueImportUsageFromLocations(e,s.sourcePath,s.entry,s.references))}valueImportUsageForEntry(e,t,r){let i=r.identifier?r.identifier.findReferences():[],o=[];for(let s of i)for(let a of Ir(s,e,r.identifier,this.db.config.projectRoot))o.push(a);return this.valueImportUsageFromLocations(e,t,r,o)}valueImportUsageFromLocations(e,t,r,i){let o=i.some(l=>!On(l.node)),s=i.some(l=>On(l.node)),a=r.isTypeOnly;return{importer:e,sourcePath:t,importedName:r.importedName,localName:r.localName,kind:r.kind,isTypeOnly:a,isUsed:a||i.length>0,isTypeUsed:a||s,isValueUsed:o,references:i.map(l=>l.location)}}packageImportReferencesForDefinition(e){return this.packageImportReferences().get(e.symbolId)??[]}packageImportReferencesForFiles(e){let t=new Map,r=new Set;for(let o of e){let s=this.sourceFiles.sourceFile(o);if(s)for(let a of s.getImportDeclarations()){let l=Kn(this.workspacePackages,a.getModuleSpecifierValue());l&&r.add(l)}}if(r.size===0)return t;let i=this.packageExportsForNames(r);for(let o of e)this.addPackageImportReferencesForDocument(t,i,o);for(let[o,s]of t)t.set(o,se(s));return t}packageImportReferences(){if(this.packageImportReferenceIndex)return this.packageImportReferenceIndex;let e=new Map,t=this.packageExports();for(let r of this.sourceFiles.indexedTypeScriptLikeDocuments())this.addPackageImportReferencesForDocument(e,t,r);for(let[r,i]of e)e.set(r,se(i));return this.packageImportReferenceIndex=e,e}addPackageImportReferencesForDocument(e,t,r){if(this.db.isIgnored(r))return;let i=this.sourceFiles.sourceFileMatch(r);if(i)for(let o of i.sourceFile.getImportDeclarations())this.addPackageImportReferencesForDeclaration(e,t,r,o)}addPackageImportReferencesForDeclaration(e,t,r,i){let o=Kn(this.workspacePackages,i.getModuleSpecifierValue());if(!o)return;let s=t.get(o);if(s)for(let a of Yn(i)){if(a.kind!=="named"||!a.identifier)continue;let l=s.get(a.importedName);if(!l||l.size===0)continue;let u=Mr(a.identifier,r,this.db.config.projectRoot);u.length>0&&ns(e,l,u)}}packageExports(){return this.packageExportIndex?this.packageExportIndex:(this.packageExportIndex=this.packageExportsForNames(new Set(this.workspacePackages.map(e=>e.name))),this.packageExportIndex)}packageExportsForNames(e){let t=new Map;for(let r of this.workspacePackages){if(!e.has(r.name))continue;let i=new Map;for(let o of kr(r))this.collectPackageExports(r,o,i,new Set);i.size>0&&t.set(r.name,i)}return t}collectPackageExports(e,t,r,i){if(i.has(t))return;i.add(t);let o=this.sourceFiles.sourceFile(t);if(o)for(let s of o.getExportDeclarations()){let a=s.getModuleSpecifierValue(),l=a?ln(this.db,t,a):t;if(!l||!l.startsWith(`${e.relativeDir}/src/`))continue;let u=s.getNamedExports();if(u.length===0){if(s.isNamespaceExport())continue;this.collectPackageExports(e,l,r,i);continue}for(let f of u){let c=f.getNameNode().getText(),p=f.getAliasNode()?.getText()??c,d=this.indexedDefinitionByLeaf(l,c);if(!d)continue;let y=r.get(p);y||(y=new Set,r.set(p,y)),y.add(d.symbolId)}}}indexedDefinitionByLeaf(e,t){return L(this.indexedDefinitionLeafCache,e,()=>xr(this.db,e)).get(t)??null}nodeForDefinition(e){return L(this.definitionNodeCache,e.symbolId,()=>this.definitionNodesForFile(e.relativePath).get(e.symbolId)??null)}definitionNodesForFile(e){return L(this.fileDefinitionNodeCache,e,()=>{let t=this.sourceFiles.sourceFile(e);return t?vr(this.tsMorph,this.db,t,e):new Map})}referenceDefinitionFromCompilerSymbol(e){return this.definitionFromCompilerSymbol(e,void 0,!0)}definitionFromCompilerSymbol(e,t,r=!1){let i=e.name,o=t?D.now():0,s=e.declarations??[];t&&(t.declarationsMs+=D.now()-o,t.declarationChecks+=s.length);for(let a of s){let l=t?D.now():0,u=a.getSourceFile(),f=ae(this.db.config.projectRoot,u.fileName),c=u.getLineAndCharacterOfPosition(a.getStart(u)).line;if(t&&(t.declarationLocationMs+=D.now()-l),!f||this.db.isIgnored(f))continue;let p=t?D.now():0,d=this.compilerDeclarationName(a),y=r?qn(this.db,f,c,i)??(d&&d!==i?qn(this.db,f,c,d):null):Dr(this.db,f,c,i);if(t&&(t.indexedLookupMs+=D.now()-p),y)return{symbolId:y.symbolId,symbol:y.symbol,file:y.relativePath,line:y.startLine}}return null}compilerDeclarationName(e){let t=e.name;return t&&this.tsMorph.ts.isIdentifier(t)?t.text:null}calleeMapForFile(e,t){let r=_(),i=0,o=0,s=0,a=0,l=0,u=0,f=0,c=0,p=r?Zo():void 0;return w("typescript.callee-map.file",()=>{let d=r?D.now():0,y=this.sourceFiles.sourceFile(e);if(r&&(l=Math.round(D.now()-d)),!y)return new Map;let R=r?D.now():0,b=z(this.db,e).sort((g,m)=>g.startLine-m.startLine||m.endLine-g.endLine);if(r&&(u=Math.round(D.now()-R)),i=b.length,b.length===0)return new Map;let S=new Map,M=r?D.now():0,P=this.compilerCheckerForSourceFile(y),h=y.compilerNode;r&&(f=Math.round(D.now()-M));let C=new Map,x=g=>{if(this.tsMorph.ts.isCallExpression(g)||this.tsMorph.ts.isNewExpression(g)){r&&(o+=1);let m=this.semanticCalleeForCallNode(P,h,b,g,C,t,p);m&&(r&&(s+=1),Go(S,m.callerId,m.target))}this.tsMorph.ts.forEachChild(g,x)},v=r?D.now():0;x(h),r&&(c=Math.round(D.now()-v));for(let[g,m]of S)S.set(g,ts(m));return a=S.size,S},()=>({relativePath:e,definitions:i,callNodes:o,resolvedCallees:s,outputRows:a,requestedDefinitions:t?.size??i,sourceFileLookupMs:l,definitionsLoadMs:u,checkerLookupMs:f,traversalMs:c,...p?es(p):{}}))}semanticCalleeForCallNode(e,t,r,i,o,s,a){let l=a?D.now():0,u=Xo(r,en(t,i));if(a&&(a.callerLookupMs+=D.now()-l),!u)return null;if(s&&!s.has(u.symbolId))return a&&(a.skippedUnrequestedCallers+=1),null;let f=i.expression,c=this.compilerSymbolForExpression(e,f,a),p=null;if(c)if(a&&(a.targetSymbolHits+=1),o.has(c))a&&(a.compilerSymbolCacheHits+=1),p=o.get(c)??null;else{a&&(a.compilerSymbolCacheMisses+=1);let d=a?D.now():0;p=this.definitionFromCompilerSymbol(c,a),a&&(a.targetLookupMs+=D.now()-d),o.set(c,p)}else a&&(a.targetMisses+=1);return p?{callerId:u.symbolId,target:{symbol:p.symbol,file:p.file,line:p.line,callsiteLine:en(t,i)}}:null}compilerSymbolForExpression(e,t,r){let i=r?D.now():0,o=e.getSymbolAtLocation(t);if(r&&(r.expressionSymbolMs+=D.now()-i),o)return o;r&&(r.typeFallbacks+=1);let s=r?D.now():0,a=e.getTypeAtLocation(t).getSymbol();return r&&(r.typeSymbolMs+=D.now()-s),a}compilerCheckerForSourceFile(e){let t=e.getProject(),r=this.compilerCheckerCache.get(t);return r||(r=t.getTypeChecker().compilerObject,this.compilerCheckerCache.set(t,r)),r}};function Yn(n){let e=[],t=n.getDefaultImport();t&&e.push({identifier:t,importedName:"default",localName:t.getText(),kind:"default",isTypeOnly:n.getImportClause()?.isTypeOnly()??!1});let r=n.getNamespaceImport();r&&e.push({identifier:r,importedName:"*",localName:r.getText(),kind:"namespace",isTypeOnly:n.getImportClause()?.isTypeOnly()??!1});for(let i of n.getNamedImports()){let o=i.getNameNode(),a=i.getAliasNode()??(o.getKindName()==="Identifier"?o:null);e.push({identifier:a,importedName:o.getText(),localName:a?.getText()??o.getText(),kind:"named",isTypeOnly:i.isTypeOnly()||(n.getImportClause()?.isTypeOnly()??!1)})}return e.length===0&&e.push({identifier:null,importedName:"*",localName:null,kind:"side-effect",isTypeOnly:!1}),e}function $o(n,e,t){return{importer:n,sourcePath:e,importedName:t.importedName,localName:t.localName,kind:t.kind,isTypeOnly:!0,isUsed:!0,isTypeUsed:!0,isValueUsed:!1,references:[]}}function Yo(){return{declarations:0,entries:0,bindingSymbols:0,missingBindingSymbols:0,scannedIdentifiers:0,symbolLookups:0,matchedReferences:0,fallbackEntries:0}}function Jo(n){for(let e=n;e;e=e.getParent())if(e.getKindName()==="ImportDeclaration")return!0;return!1}function Go(n,e,t){let r=n.get(e);r||(r=[],n.set(e,r)),r.push(t)}function Qo(n){let e=new Set;for(let t of n.getImportDeclarations())for(let r of Yn(t))r.localName&&e.add(r.localName);return e}function Xo(n,e){let t=null;for(let r of n)e<r.startLine||e>r.endLine||(!t||r.startLine>=t.startLine)&&(t=r);return t}function en(n,e){return n.getLineAndCharacterOfPosition(e.getStart(n)).line}function Er(n,e,t){return e===n.relativePath&&t>=n.startLine&&t<=n.endLine}function Ar(n){return n.symbol.includes("#")?Ne(n.symbol)==="type"&&n.relativePath.endsWith(".d.ts"):!1}function Zo(){return{callerLookupMs:0,expressionSymbolMs:0,typeSymbolMs:0,targetLookupMs:0,declarationsMs:0,declarationLocationMs:0,indexedLookupMs:0,compilerSymbolCacheHits:0,compilerSymbolCacheMisses:0,targetSymbolHits:0,targetMisses:0,typeFallbacks:0,declarationChecks:0,skippedUnrequestedCallers:0}}function es(n){return{...n,callerLookupMs:Math.round(n.callerLookupMs),expressionSymbolMs:Math.round(n.expressionSymbolMs),typeSymbolMs:Math.round(n.typeSymbolMs),targetLookupMs:Math.round(n.targetLookupMs),declarationsMs:Math.round(n.declarationsMs),declarationLocationMs:Math.round(n.declarationLocationMs),indexedLookupMs:Math.round(n.indexedLookupMs)}}function Fr(){return{cacheHits:0,cacheMisses:0,nodeHits:0,nodeMisses:0,scanFiles:0,identifiers:0,symbolLookups:0,aliasResolutions:0,targetHits:0,targetMisses:0,requestedHits:0,scanMs:0,packageRefsMs:0,semanticRefsMs:0,packageReferenceCount:0,referenceCount:0,preciseSearchFailures:0,hierarchyDefinitions:0,hierarchyFamilies:0,hierarchyReferences:0,hierarchyMs:0}}function Nr(n){return{...n,scanMs:Math.round(n.scanMs),packageRefsMs:Math.round(n.packageRefsMs),semanticRefsMs:Math.round(n.semanticRefsMs),hierarchyMs:Math.round(n.hierarchyMs)}}function ns(n,e,t){for(let r of e){let i=n.get(r)??[];i.push(...t),n.set(r,i)}}function ts(n){let e=new Set,t=[];for(let r of n){let i=`${r.symbol}|${r.file}|${r.line}|${r.callsiteLine??""}`;e.has(i)||(e.add(i),t.push(r))}return t}function _r(n){return n.replace(/\s+/g," ").replace(/\bimport\("[^"]+"\)\./g,"").trim()}import{join as rs}from"path";var nn=3;var is="typescript-semantic";function Or(n){let e=rs(n,is),t=Le(e);return{...t,requestDir:t.legacyRequestDir}}var cs=12e4,ls=5;function qr(n,e,t={}){let r=new Jn(n,t),i=null,o=null,s=process.env.SCIP_QUERY_SKIP_WATCH_SERVICE==="1",a=()=>(i??=Lr(n,e),i),l=(c,p,d)=>{if(s)return d();try{return p(r.request(c))}catch{return s=!0,d()}},u=(c,p)=>l({kind:"references",definitions:[...c],...p?.exact?{exact:!0}:{}},d=>Br(d),()=>a().referencesForDefinitions?.(c,p)??new Map(c.map(d=>[d.symbolId,a().referencesFor(d)]))),f=c=>l({kind:"callees",definitions:[...c]},p=>Br(p),()=>a().calleesForDefinitions?.(c)??new Map(c.map(p=>[p.symbolId,a().calleesFor(p)])));return{language:"typescript",availability:()=>(o??=l({kind:"availability"},ps,()=>a().availability()),o),importUsage:c=>l({kind:"import-usage",file:c},p=>p,()=>a().importUsage(c)),referencesFor:c=>u([c]).get(c.symbolId)??[],referencesForDefinitions:u,referenceFragmentsForFiles:c=>l({kind:"reference-fragments",files:[...c]},p=>fs(p),()=>a().referenceFragmentsForFiles?.(c)??new Map),calleesFor:c=>f([c]).get(c.symbolId)??[],calleesForDefinitions:f,signatureFor:c=>l({kind:"signature",definition:c},ds,()=>a().signatureFor(c)),dispose:()=>i?.dispose?.()}}var Jn=class{constructor(e,t={}){this.db=e;this.runtime=t.runtime??ys,this.timeoutMs=t.timeoutMs??ms(),this.mailboxLimits=t.mailboxLimits??{},this.cacheDir=as(e.config.dbPath),this.projectRoot=ut(e.config.projectRoot)}db;runtime;timeoutMs;cacheDir;projectRoot;mailboxLimits;request(e){let t=Dt(this.cacheDir),r=Or(this.cacheDir),i=pn(t.statePath);if(!Ur(i,this.projectRoot,this.runtime))throw new Error("Compatible TypeScript semantic service is not running.");let o=this.db.generation.identity;if(!o)throw new Error("Published TypeScript generation identity is unavailable.");let s=this.runtime.now(),a=s+this.timeoutMs,l=(this.runtime.monotonicNow??q)()+this.timeoutMs,u=lt(),f=Z("typescript-semantic-v3",{generation:o,profileEnvironment:u,request:e}),c=ee(f),p=Oe(r,{mailboxVersion:$,operationKey:f,clientId:this.runtime.randomId(),enqueuedAtMs:s,deadlineAtMs:a,protocolVersion:nn,id:c,generation:o,profileEnvironment:u,request:e},{nowMs:s,limits:this.mailboxLimits});for(;(this.runtime.monotonicNow??q)()<=l;){if(ss(p.responsePath))return us(B(p.responsePath,{maxBytes:this.mailboxLimits.maxItemBytes??64*1024*1024,inputKind:"TypeScript semantic mailbox response"}),c,o,f);let d=pn(t.statePath);if(!Ur(d,this.projectRoot,this.runtime))throw new Error("TypeScript semantic service stopped while processing a request.");this.runtime.sleep(ls)}throw new Error(`TypeScript semantic service timed out after ${this.timeoutMs}ms.`)}};function Ur(n,e,t){let r=n?.processIdentity?t.readProcessIdentity?.(n.pid):null;return n!==null&&n.projectRoot===e&&n.typescriptSemantic?.protocolVersion===nn&&t.isProcessAlive(n.pid)&&(!n.processIdentity||r!=null&&Ce(n.processIdentity,r))}function us(n,e,t,r){let i=JSON.parse(n);if(i.protocolVersion!==nn||i.id!==e||i.operationKey!==r||i.ok===!0&&i.generation!==t)throw new Error("TypeScript semantic service wrote an incompatible response.");if(i.ok===!0)return i.response;throw new Error(typeof i.error=="string"?i.error:"TypeScript semantic service request failed.")}function Br(n){if(!Array.isArray(n))throw new Error("TypeScript semantic service wrote an invalid numeric map.");return new Map(n)}function fs(n){if(!Array.isArray(n))throw new Error("TypeScript semantic service wrote an invalid string map.");return new Map(n)}function ps(n){let e=Sr(n);if(!e)throw new Error("TypeScript semantic service wrote invalid availability.");return e}function ds(n){if(n!==null&&typeof n!="string")throw new Error("TypeScript semantic service wrote an invalid signature.");return n}function ms(){let n=Number(process.env.SCIP_TYPESCRIPT_SEMANTIC_TIMEOUT_MS);return Number.isInteger(n)&&n>0?n:cs}var ys={now:Date.now,monotonicNow:q,randomId:os,sleep(n){let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,n)},isProcessAlive:Pe,readProcessIdentity:we};var jr=new Xe;tt({name:"semantic-provider",groups:["semantic-provider"],clearAll:n=>jr.clear(n)});function Q(n,e){let t=U(e)??"typescript";return jr.getOrCreate(n,t,()=>t==="rust"?pr(n.config.projectRoot,{sourceImportUsageResolver:{importUsageFacts:r=>wt(n,r)},calleeSymbolResolver:kt(n),sourceZeroCalleeOracle:r=>Ss(n,r),scipOccurrenceCalleeOracle:r=>yr(n,r)}):qr(n,e))}function U(n){return n?mt(n)==="rust"?"rust":ne(n)?"typescript":null:"typescript"}function Ss(n,e){let t=Fe(n,e.relativePath);if(!t||t.language!=="rust")return!1;let r=t.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine&&i.name===e.leaf)??t.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine);return r?!t.callSites.some(i=>i.line>=r.startLine&&i.line<=r.endLine):!1}var gs=/^[A-Za-z_][A-Za-z0-9_]*$/,Wr=/\bDefault::default\b/g,Rs=/^\.\.\s*Default::default\b/;function zr(n,e){let t=new Map,r=new Map;for(let i of e){let o=Gn(n,i,r);o!==null&&t.set(i.symbolId,o)}return t}function Gn(n,e,t=new Map){let r=hs(e.symbol);if(!r)return null;let i=ht(n,[e.symbolId]);if(i.length===0)return null;let o=new RegExp(`(^|[^A-Za-z0-9_])${pe(r)}::default\\b`,"g"),s=new RegExp(`(^|[^A-Za-z0-9_])${pe(r)}\\s*$`),a=bs(n,e.symbolId),l=[];for(let u of i){let f=Is(n,u.relative_path,t);if(f===null)return null;let c=f.split(/\r?\n/),p=0,d=[],y=0;for(let R=u.chunk_start;R<=u.chunk_end&&R<c.length;R+=1){let S=c[R]??"",M=new Set;o.lastIndex=0;let P;for(;P=o.exec(S);)l.push({file:u.relative_path,line:R,column:P.index+P[1].length+r.length+2}),y+=1;for(let h=0;h<S.length;h+=1){let C=Rs.exec(S.slice(h));if(C){if(a&&d.includes(p)){let v=h+C[0].lastIndexOf("default");l.push({file:u.relative_path,line:R,column:v}),M.add(v),y+=1}h+=C[0].length-1;continue}let x=S[h];if(x==="{"){let v=s.test(S.slice(0,h));p+=1,v&&d.push(p);continue}if(x==="}")for(p=Math.max(0,p-1);d.length>0&&d[d.length-1]>p;)d.pop()}for(Wr.lastIndex=0;P=Wr.exec(S);){let h=P.index+9;if(!M.has(h))return null}}if(y===0)return null}return We(l)}function bs(n,e){return n.get("SELECT 1 AS present FROM mentions WHERE symbol_id = ? AND role = 1 LIMIT 1",e)?.present===1}function hs(n){let e=/impl#\[([^\]]+)\]\[Default\]default\(\)\./.exec(n)?.[1]??null;return!e||!gs.test(e)?null:e}function Is(n,e,t){if(t.has(e))return t.get(e)??null;let r=n.get("SELECT text FROM documents WHERE relative_path = ?",e),i=typeof r?.text=="string"?r.text:Ms(n,e);return t.set(e,i),i}function Ms(n,e){try{return pt(n.config.projectRoot,e,{inputKind:"indexed Rust source file"})}catch(t){if(!fe(t))throw t;return null}}function Kr(n){let e=new Map;for(let t of n){let r=e.get(t.relativePath)??[];r.push(t),e.set(t.relativePath,r)}return e}var vs="typescript-import-usage-v1",Ds="typescript-signatures-v1",Qn=it("semantic-prefetched-callees",{clearGroups:["whole-project","source-file","semantic-provider"]}),Hr=fn({kind:"semantic-import-usage",invalidation:ue("semantic-import-usage"),serialize:n=>JSON.stringify(n),deserialize:Zr}),Vr=fn({kind:"semantic-signatures",invalidation:ue("semantic-signatures"),serialize:n=>JSON.stringify(n),deserialize:Ns}),$r=un({kind:"typescript-import-usage",invalidation:ue("typescript-import-usage"),serialize:n=>JSON.stringify(n),deserialize:Zr}),Yr=un({kind:"typescript-signatures",invalidation:ue("typescript-signatures"),serialize:n=>JSON.stringify(n),deserialize:_s});function De(n){let e=new Map,t=new Set;return{capability:(r,i)=>ei(n,r,i),importUsage:r=>Cs(n,r),references:r=>Gr(n,r),materializeReferences:(r,i)=>Qr(n,r,e,t,i),callerMap:r=>Ts(n,r,e,t),calleeMap:r=>Es(n,r),signature:r=>As(n,r)}}function xs(n,e){if(e.size===0)return;let t=Qn.get(n,()=>new Map);for(let[r,i]of e)t.set(r,[...i])}function Ru(n,e){if(!Qn.has(n))return{hits:[],misses:[...e]};let t=Qn.get(n,()=>new Map),r=[],i=[];for(let o of e)t.has(o.symbolId)?r.push({definition:o,callees:t.get(o.symbolId)??[]}):i.push(o);return{hits:r,misses:i}}function bu(n,e){return De(n).importUsage(e)}function Cs(n,e){if(U(e)==="typescript"){let o="fallback",s=0,a=0,l=0,u=0;return w("typescript.import-usage.materialize",()=>{let f=dn(n,e,vs);if(f?.key){s=1;let p=$r.read(n,e,f.key);if(p)return o="hit",a=1,p;l=1;let d=j(n,e);if(!d)return o="unavailable",[];let y=d.importUsage(e);return $r.write(n,e,f.key,y),o="computed",y}u=1;let c=j(n,e);return c?(o="direct-fallback",c.importUsage(e)):(o="unavailable",[])},()=>({state:o,eligible:s,cacheHits:a,cacheMisses:l,fallbacks:u}))}let t=Xr(n,"semantic-import-usage",e);if(t){let o=Hr.read(n,e,t);if(o)return o}let r=j(n,e);if(!r)return[];let i=r.importUsage(e);return t&&Hr.write(n,e,t,i),i}function hu(n,e){return De(n).references(e)}function Gr(n,e){let t=Gn(n,e);if(t)return t;let r=At(n,e);if(r)return r;let i=j(n,e.relativePath);return i?i.referencesFor(e):[]}function Iu(n,e){return De(n).callerMap(e)}function Mu(n,e){let t=new Map,r=new Map;for(let i of e){if(U(i.relativePath)==="typescript"){let o=j(n,i.relativePath);if(!o)continue;let s=r.get(o)??[];s.push(i),r.set(o,s);continue}Xn(n,t,i,Gr(n,i))}for(let[i,o]of r){let s=yn(n,o,l=>Q(n,l)),a=s?.references??(i.referencesForDefinitions?i.referencesForDefinitions(o,{exact:!0}):new Map(o.map(l=>[l.symbolId,i.referencesFor(l)])));!s&&_()&&mn(n,o,a,l=>Q(n,l));for(let l of o)Xn(n,t,l,a.get(l.symbolId)??[])}return t}function Ts(n,e,t=new Map,r=new Set){let i=new Map,o=Qr(n,e,t,r),s=0;return w("semantic.callers.from-references",()=>{for(let a of e)s+=Xn(n,i,a,t.get(a.symbolId)??[])},()=>({definitions:e.length,materialized:o.definitions,inMemoryHits:o.inMemoryHits,incompleteInMemoryHits:o.incompleteInMemoryHits,resultRows:i.size,callerFiles:s})),i}function Qr(n,e,t,r,i={}){let o=cn(n),s=[],a=[],l=[],u=0,f=0,c=0,p=0,d=0,y=0,R=0,b=0,S=0,M=0,P=0,h=0,C=[],x=new Map,v=e.filter(m=>U(m.relativePath)==="typescript"&&!t.has(m.symbolId)&&!r.has(m.symbolId)),g=yn(n,v,m=>Q(n,m));if(g){S=v.length,M=g.cacheHits,P=g.cacheMisses,h=g.computedFiles;for(let m of v)t.set(m.symbolId,g.references.get(m.symbolId)??[])}if(w("semantic.references.cache-scan",()=>{for(let[m,I]of Kr(e)){let T=[];for(let k of I)t.has(k.symbolId)?f+=1:r.has(k.symbolId)?b+=1:T.push(k);if(T.length===0){R+=1;continue}let W=ks(n,o,m);if(!W){for(let k of T)U(k.relativePath)||(u+=1),l.push(k);continue}y+=1;let F=ot(n,m,W);for(let k of T){let O=F.get(k.symbol)??null;if(O!==null){let E=Ps(O);if(E){c+=1,t.set(k.symbolId,E);continue}p+=1}a.push({definition:k,cacheFingerprint:W})}}},()=>({definitions:e.length,skippedUnsupportedLanguage:u,cacheHits:c,parseFailures:p,misses:a.length,unkeyed:l.length,inMemoryHits:f,incompleteInMemoryHits:b,fullyInMemoryFiles:R,cacheReadFiles:y})),a.length>0||l.length>0){C=[...l,...a.map(m=>m.definition)],x=w("semantic.references.compute-misses",()=>{let m=ws(n,C,i);return d=m.size,m},()=>({definitions:C.length,misses:a.length,unkeyed:l.length,rows:d}));for(let m of C)x.has(m.symbolId)?(t.set(m.symbolId,x.get(m.symbolId)??[]),r.delete(m.symbolId)):r.add(m.symbolId);for(let{definition:m,cacheFingerprint:I}of a)x.has(m.symbolId)&&ei(n,"semantic-references",m.relativePath).available&&s.push({relativePath:m.relativePath,symbol:m.symbol,projectFingerprint:I,payload:JSON.stringify(x.get(m.symbolId)??[])})}return s.length>0&&w("semantic.references.cache-write",()=>st(n,s),()=>({entries:s.length})),x.size>0&&mn(n,C,x,m=>Q(n,m)),{definitions:e.length,inMemoryHits:f,incompleteInMemoryHits:b,cacheHits:c,misses:a.length,unkeyed:l.length,skippedUnsupportedLanguage:u,parseFailures:p,computed:d,incomplete:r.size,cacheWrites:s.length,fragmentDefinitions:S,fragmentCacheHits:M,fragmentCacheMisses:P,fragmentComputedFiles:h}}function ks(n,e,t){if(!e)return null;let r=U(t);return r==="typescript"?e:r==="rust"?an(JSON.stringify({kind:"semantic-references",language:r,engine:hn(n.config.projectRoot),projectFingerprint:e})):null}function ws(n,e,t={}){let r=_(),i=new Map,o=0,s=0,a=0,l=0,u=0,f=0,c=0,p=0,d=0;return w("semantic.references.provider-loop",()=>{let y=zr(n,e),R=Et(n,e),b=new Map,S=t.prefetchCallees?new Map:null,M=[];for(let h of e){let C,x=()=>(C??=j(n,h.relativePath),C);if(S){let I=x();if(I?.referencesAndCalleesForDefinitions){let T=S.get(I);T?T.push(h):S.set(I,[h]),d+=1}}let v=y.get(h.symbolId);if(v){a+=1,l+=v.length,ve(i,h.symbolId,v,r,I=>{c+=1,p+=I});continue}let g=R.get(h.symbolId);if(g){u+=1,f+=g.length,ve(i,h.symbolId,g,r,I=>{c+=1,p+=I});continue}let m=x();if(!m){r&&(s+=1);continue}if(r&&(o+=1),m.referencesForDefinitions){let I=b.get(m);I?I.push(h):b.set(m,[h])}else M.push({provider:m,definition:h})}let P=new Set;if(S)for(let[h,C]of S){if(!h.referencesAndCalleesForDefinitions)continue;let x=b.get(h)??[],v=h.referencesAndCalleesForDefinitions(x,C);P.add(h),xs(n,v.callees);for(let g of x){if(!v.references.has(g.symbolId))continue;let m=v.references.get(g.symbolId)??[];ve(i,g.symbolId,m,r,I=>{c+=1,p+=I})}}for(let[h,C]of b){if(P.has(h))continue;let x=h.referencesForDefinitions(C);for(let v of C){if(!x.has(v.symbolId))continue;let g=x.get(v.symbolId)??[];ve(i,v.symbolId,g,r,m=>{c+=1,p+=m})}}for(let{provider:h,definition:C}of M){let x=h.referencesFor(C);ve(i,C.symbolId,x,r,v=>{c+=1,p+=v})}return i},()=>({definitions:e.length,providerHits:o,providerMisses:s,rustDefaultFastPathRows:a,rustDefaultFastPathReferences:l,rustScipOccurrenceFastPathRows:u,rustScipOccurrenceFastPathReferences:f,prefetchCalleeDefinitions:d,definitionsWithReferences:c,referenceCount:p,rows:i.size}))}function ve(n,e,t,r,i){n.set(e,t),r&&t.length>0&&i(t.length)}function Xn(n,e,t,r){let i=0;for(let o of r){if(o.file===t.relativePath||n.isIgnored(o.file))continue;let s=e.get(t.symbolId);s||(s=new Set,e.set(t.symbolId,s));let a=s.size;s.add(o.file),s.size!==a&&(i+=1)}return i}function Ps(n){try{return JSON.parse(n)}catch{return null}}function vu(n,e){return De(n).calleeMap(e)}function Es(n,e){let t=_(),r=new Map,i=0,o=0,s=0,a=0;return w("semantic.callees.provider-loop",()=>{let l=new Map,u=[];for(let f of e){let c=j(n,f.relativePath);if(!c){t&&(o+=1);continue}t&&(i+=1);let p=f;if(c.calleesForDefinitions){let d=l.get(c);d?d.push(p):l.set(c,[p])}else u.push({provider:c,definition:p})}for(let[f,c]of l){let p=f.calleesForDefinitions(c);for(let d of c){let y=p.get(d.symbolId)??[];Jr(r,d.symbolId,y,t,R=>{s+=1,a+=R})}}for(let{provider:f,definition:c}of u){let p=f.calleesFor(c);Jr(r,c.symbolId,p,t,d=>{s+=1,a+=d})}return r},()=>({definitions:e.length,providerHits:i,providerMisses:o,definitionsWithCallees:s,calleeCount:a,rows:r.size}))}function Jr(n,e,t,r,i){t.length>0&&(n.set(e,t),r&&i(t.length))}function Du(n,e){return De(n).signature(e)}function As(n,e){if(U(e.relativePath)==="typescript"){let s="fallback",a=0,l=0,u=0,f=0;return w("typescript.signature.materialize",()=>{let c=dn(n,e.relativePath,Ds);if(c?.key){a=1;let d=Yr.read(n,e.relativePath,c.key)??{};if(Object.prototype.hasOwnProperty.call(d,e.symbol))return s="hit",l=1,d[e.symbol]??null;u=1;let y=j(n,e.relativePath);if(!y)return s="unavailable",null;let R=y.signatureFor(e);return Yr.write(n,e.relativePath,c.key,{...d,[e.symbol]:R}),s="computed",R}f=1;let p=j(n,e.relativePath);return p?(s="direct-fallback",p.signatureFor(e)):(s="unavailable",null)},()=>({state:s,eligible:a,cacheHits:l,cacheMisses:u,fallbacks:f}))}let t=Xr(n,"semantic-signatures",e.relativePath),r=Fs(e);if(t){let s=Vr.read(n,r,t);if(s)return s.signature}let i=j(n,e.relativePath);if(!i)return null;let o=i.signatureFor(e);return t&&Vr.write(n,r,t,{signature:o}),o}function Xr(n,e,t){let r=cn(n);if(!r)return null;let i=U(t);return i!=="rust"?null:an(JSON.stringify({kind:e,language:i,engine:hn(n.config.projectRoot),projectFingerprint:r}))}function Fs(n){return`${n.relativePath}\0${n.symbol}`}function Zr(n){try{let e=JSON.parse(n);return Array.isArray(e)?e:null}catch{return null}}function Ns(n){try{let e=JSON.parse(n);if(!e||typeof e!="object")return null;let t=e.signature;return t!==null&&typeof t!="string"?null:{signature:t}}catch{return null}}function _s(n){try{let e=JSON.parse(n);if(!e||typeof e!="object"||Array.isArray(e))return null;for(let t of Object.values(e))if(t!==null&&typeof t!="string")return null;return e}catch{return null}}function ei(n,e,t){let r=U(t);if(!r)return{slot:e,language:"typescript",available:!1,reason:"semantic evidence is only available for TypeScript or Rust files"};try{return{slot:e,language:r,...Q(n,t).availability()}}catch(i){return{slot:e,language:r,available:!1,reason:i instanceof Error?i.message:String(i)}}}function j(n,e){if(!U(e))return null;let t=Q(n,e);return t.availability().available?t:null}export{Kr as a,hn as b,U as c,De as d,Ru as e,bu as f,hu as g,Iu as h,Mu as i,ws as j,vu as k,Du as l};
|
|
3
|
+
//# sourceMappingURL=chunk-63MBA7EG.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as J,b as N,c as y,d as b,e as T,g as _,j as z,k as G}from"./chunk-63MBA7EG.js";import{z as O}from"./chunk-ZDVDSDFG.js";import{b as B}from"./chunk-7COHFNJK.js";import{c as j,g as v,h as g,j as A,l as P,p as U,r as m,x as d}from"./chunk-DMQ7ZKJG.js";var ce={references:_,referenceMap:z,callerMap:(e,s)=>b(e).callerMap(s),calleeMap:q};function q(e,s){let a=U(),i=new Map,o=T(e,s),l=[],n=[],h=0,c=0,p=0,f=0,E=0,H=0,I=0;for(let{definition:t,callees:r}of o.hits)E+=1,r.length>0&&(H+=1,I+=r.length,i.set(t.symbolId,r));let u=K(e,o.hits);if(u.entries.length>0&&m("semantic.callees.prefetch-cache-write",()=>P(e,u.entries),()=>({entries:u.entries.length,sourceMissing:u.sourceMissing,skippedUnsupportedLanguage:u.skippedUnsupportedLanguage})),m("semantic.callees.cache-scan",()=>{for(let[t,r]of J(o.misses)){if(!y(t)){a&&(h+=r.length);continue}let R=d(e,t);if(!R){a&&(c+=r.length),n.push(...r);continue}let x=g(e,t,R),C=$(e,t);if(!C){n.push(...r);continue}let Y=A(e,t,x,C);for(let D of r){let L=Y.get(D.symbol)??null;if(L!==null){let M=V(L);if(M){a&&(p+=1),M.length>0&&i.set(D.symbolId,M);continue}a&&(f+=1)}l.push({def:D,contentHash:x,depsDigest:C})}}},()=>({definitions:s.length,skippedUnsupportedLanguage:h,sourceMissing:c,cacheHits:p,parseFailures:f,misses:l.length,unkeyed:n.length,inMemoryHits:E,inMemoryRows:H,inMemoryCalleeCount:I,resultRows:i.size})),l.length===0&&n.length===0)return i;let k=[...n,...l.map(t=>t.def)],w=0,F=m("semantic.callees.compute-misses",()=>{let t=G(e,k);return w=t.size,t},()=>({definitions:k.length,misses:l.length,unkeyed:n.length,rows:w}));for(let[t,r]of F)i.set(t,r);let S=l.filter(t=>b(e).capability("semantic-callees",t.def.relativePath).available).map(t=>({relativePath:t.def.relativePath,symbol:t.def.symbol,contentHash:t.contentHash,depsDigest:t.depsDigest,payload:JSON.stringify(F.get(t.def.symbolId)??[])}));return S.length>0?m("semantic.callees.cache-write",()=>P(e,S),()=>({entries:S.length})):m("semantic.callees.cache-write-skip",()=>{},()=>({reason:"provider-unavailable",misses:l.length})),i}function K(e,s){let a=[],i=new Map,o=0,l=0;for(let{definition:n,callees:h}of s){if(!y(n.relativePath)){l+=1;continue}if(!i.has(n.relativePath)){let p=d(e,n.relativePath),f=p?$(e,n.relativePath):null;i.set(n.relativePath,p&&f?{contentHash:g(e,n.relativePath,p),depsDigest:f}:null)}let c=i.get(n.relativePath);if(!c){o+=1;continue}a.push({relativePath:n.relativePath,symbol:n.symbol,contentHash:c.contentHash,depsDigest:c.depsDigest,payload:JSON.stringify(h)})}return{entries:a,sourceMissing:o,skippedUnsupportedLanguage:l}}var Q="typescript-callees-v2-callsite-line";function $(e,s){let a=y(s);if(a==="typescript")return O(e,s,Q)?.key??null;let i=X(e,s);return a==="rust"?v(JSON.stringify({kind:"semantic-callees",language:a,engine:N(e.config.projectRoot),positionMapping:"nearby-leaf-v2-callsite-line",depsDigest:i})):i}function V(e){try{return JSON.parse(e)}catch{return null}}var W=j("semantic-deps-digest",{clearGroups:["whole-project","source-file"]});function X(e,s){return W.get(e,s,()=>{let i=[...B(e).get(s)??[]].sort().map(o=>`${o}:${g(e,o,d(e,o))}`);return v(i.join("|"))})}export{ce as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6BJ7SOY7.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as m}from"./chunk-LXLD46LH.js";var v=/:\d+(?:-\d+)?$/u;function D(d,t,c={}){let p=c.direction??"backward",n=c.maxDepth??3;if(!Number.isSafeInteger(n)||n<0)throw new RangeError(`Dependence-slice depth must be a non-negative safe integer; received ${n}.`);let r=v.test(t),o=m(d,r?{locations:[t]}:{symbols:[t]},{families:["execution","runtime","dataflow","ownership"],maxDepth:n+1,maxEdges:c.maxEdges??200}),f=new Set(o.targets.flatMap(e=>e.nodeIds)),a=new Set(f),l=new Map;u(o.edges,a,l,0);for(let e=1;e<=n;e+=1){let s=[];for(let i of o.edges)if(p==="backward"?a.has(i.to.id):a.has(i.from.id)){let g=p==="backward"?i.from.id:i.to.id;if(a.has(g))continue;s.push(g),l.set(i.id,e)}if(s.length===0)break;for(let i of s)a.add(i);u(o.edges,a,l,e)}let h=o.edges.filter(e=>a.has(e.from.id)&&a.has(e.to.id)).filter(e=>l.has(e.id)||e.family==="ownership").map(e=>({...e,traversalDepth:l.get(e.id)??0,supporting:e.family!=="dataflow"&&!y(e)})).sort((e,s)=>e.traversalDepth-s.traversalDepth||e.family.localeCompare(s.family)||e.from.label.localeCompare(s.from.label)||e.to.label.localeCompare(s.to.label));return{kind:"dependence-slice",direction:p,criterion:t,targets:o.targets,nodeIds:[...a].sort(),edges:h,coverage:{status:o.coverage.status,criterionKind:r?"source-location-summary":"symbol-summary",basis:"partial-system-dependence-graph",analysisBasis:"typescript-cfg-reaching-definitions-plus-system-edges",providers:["typescript-local-dependence","bounded-static-value-flow"],graph:o.coverage,unsupportedRelations:["general heap alias and cross-instance field points-to flow","exceptional control and value flow","closure invocation order","downstream local definition-use after a call result","unresolved dynamic dispatch"]}}}function u(d,t,c,p){let n=!0;for(;n;){n=!1;for(let r of d)r.family!=="ownership"||!t.has(r.from.id)||t.has(r.to.id)||(t.add(r.to.id),c.set(r.id,p),n=!0)}}function y(d){return d.semanticFamily==="control"&&d.sourceKind==="control-dependence"}export{D as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6GJAP4OE.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import{a as d}from"./chunk-6BJ7SOY7.js";import{b as l}from"./chunk-ICUQONOG.js";import{d as r,u as m}from"./chunk-5IZTXSOL.js";function u(o,t={}){let{limit:i=30,scope:e}=t,n=e?"AND def_d.relative_path LIKE ?":"",f=e?[`%${e}%`]:[],c=o.all(`SELECT
|
|
2
|
+
gs.symbol,
|
|
3
|
+
COUNT(*) AS ref_count,
|
|
4
|
+
COUNT(DISTINCT ref_d.id) AS file_count,
|
|
5
|
+
def_d.relative_path AS defined_in
|
|
6
|
+
FROM mentions m
|
|
7
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
8
|
+
JOIN documents ref_d ON c.document_id = ref_d.id
|
|
9
|
+
JOIN global_symbols gs ON m.symbol_id = gs.id
|
|
10
|
+
JOIN (
|
|
11
|
+
SELECT m2.symbol_id, c2.document_id
|
|
12
|
+
FROM mentions m2
|
|
13
|
+
JOIN chunks c2 ON m2.chunk_id = c2.id
|
|
14
|
+
WHERE m2.role = 1
|
|
15
|
+
GROUP BY m2.symbol_id
|
|
16
|
+
) sym_def ON sym_def.symbol_id = gs.id
|
|
17
|
+
JOIN documents def_d ON sym_def.document_id = def_d.id
|
|
18
|
+
WHERE m.role != 1
|
|
19
|
+
AND def_d.id != ref_d.id
|
|
20
|
+
${o.pathExclusionsFor("def_d")}
|
|
21
|
+
${o.symbolNoiseFor("gs")}
|
|
22
|
+
${n}
|
|
23
|
+
GROUP BY gs.id
|
|
24
|
+
ORDER BY ref_count DESC
|
|
25
|
+
LIMIT ?`,...f,i).filter(s=>!o.isIgnored(s.defined_in)).map(s=>({symbol:s.symbol,shortName:r(s.symbol),refCount:s.ref_count,fileCount:s.file_count,definedIn:s.defined_in,basis:"scip-cross-file-mentions",countUnit:"reference-occurrences"}));return c.length>0?c:a(o,e,i)}function C(o,t={}){return u(o,t)}function a(o,t,i){return m(o,{scope:t}).filter(e=>!o.isIgnored(e.relativePath)).map(e=>p(o,e)).filter(e=>e.refCount>0).sort((e,n)=>n.refCount-e.refCount||n.fileCount-e.fileCount).slice(0,i)}function p(o,t){let e=l(o,t,{limit:500,semanticEvidence:d}).filter(n=>n.file!==t.relativePath);return{symbol:t.symbol,shortName:r(t.symbol),refCount:e.length,fileCount:new Set(e.map(n=>n.file)).size,definedIn:t.relativePath,basis:"source-backed-incoming-evidence",countUnit:"distinct-incoming-evidence-rows"}}export{u as a,C as b};
|
|
26
|
+
//# sourceMappingURL=chunk-6IEVHGWG.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{d as j}from"./chunk-FUG6RPYY.js";import{a as k}from"./chunk-KW6B5OL4.js";import{a as _}from"./chunk-VETXXOYU.js";import{b as C}from"./chunk-TNOHGHZQ.js";import{a as T}from"./chunk-7TWP3MCP.js";import{d as S}from"./chunk-ICUQONOG.js";import{a as O,b as w,e as $}from"./chunk-LPGDO2XA.js";import{d as L,e as I,t as g}from"./chunk-5IZTXSOL.js";import{l as B,w as M}from"./chunk-I3U2FN2T.js";import{z as P}from"./chunk-DMQ7ZKJG.js";import{a as F}from"./chunk-MO226P4Q.js";import{basename as le,extname as U}from"path";var ee=12,ne=280;function y(n,e,t,o){let i=te(n,e,t,o);if(i.size===0)return se();let r=[],s=new Set,l=(a,d,c,f)=>{if(d===e&&c<=o&&f>=t)return;let b=`${d}:${c}:${f}:${a}`;s.has(b)||(s.add(b),r.push({name:a,relativePath:d,startLine:c,endLine:f}))};for(let a of g(n,e))i.has(a.leaf)&&l(a.leaf,a.relativePath,a.startLine,a.endLine);for(let a of M(n,e)){let d=a.localName;if(!d||!i.has(d)||!a.sourcePath||a.kind==="namespace")continue;let c=a.importedName==="default"?d:a.importedName;for(let f of T(n,a.sourcePath,c,{maxReexportDepth:3}))l(d,f.relativePath,f.startLine,f.endLine)}r.sort(W);let u=r.map(a=>{let d=ie(n,a);return d?{...a,source:d}:null}).filter(a=>a!==null).slice(0,ee);return D(u)}function A(n,e=[]){return D(re(n.flatMap(t=>t?.inline??[]),e))}function Ne(n){return n?n.inline.reduce((e,t)=>e+t.name.length+t.source.length+32,0):0}function te(n,e,t,o){let i=B(n,e),r=new Set;if(!i)return r;for(let s=t;s<=o;s+=1)for(let l of i.identifiersByLine[s]??[])r.add(l);return r}function ie(n,e){if(e.startLine!==e.endLine)return null;let t=(P(n,e.relativePath)[e.startLine]??"").trim();if(!t||t.length>ne)return null;let o=t.indexOf("=");if(o<0||t[o+1]===">")return null;let i=t.slice(o+1).replace(/(?:\/\/|#).*$/u,"").trim();if(!i||i.includes("${")||/\b(?:function|class|struct|interface|trait|enum|lambda)\b/u.test(i))return null;let s=i.replace(/(['"`])(?:\\.|(?!\1).)*\1/gu,"").replace(/\b(?:0[xX][\dA-Fa-f_]+|0[bB][01_]+|0[oO][0-7_]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[eE][+-]?\d+)?)n?\b/gu,""),l=new Set(["true","false","null","undefined","None","True","False"]);return(s.match(/[A-Za-z_][A-Za-z0-9_]*/gu)??[]).some(a=>!l.has(a))?null:t}function re(n,e){let t=new Map;for(let o of n){if(oe(o,e))continue;let i=`${o.relativePath}:${o.startLine}:${o.endLine}:${o.name}`;t.has(i)||t.set(i,{...o})}return[...t.values()].sort(W)}function oe(n,e){return e.some(t=>t.relativePath===n.relativePath&&t.startLine<=n.startLine&&t.endLine>=n.endLine)}function W(n,e){return n.relativePath.localeCompare(e.relativePath)||n.startLine-e.startLine||n.name.localeCompare(e.name)}function D(n){return{coverage:"indexed-project-literal-values",inline:n}}function se(){return D([])}function Ae(n,e,t={}){let{context:o=0}=t,i=Y(e);if(i)return q(n,i.filePath,i.startLine,i.endLine,o);let r=Q(n,e);if(r)return K(n,r);let s=O(n,e);return s?p(n,s,o):null}function We(n,e,t={}){if(e.length===0)throw new RangeError("code requires at least one selector.");if(e.length>24)throw new RangeError(`code accepts at most ${24} selectors per complete packet; received ${e.length}.`);let o=t.context??0,i=t.members??"exported",r=e.map(u=>ue(n,u,o,i)),s=r.flatMap(u=>u.results),l=s.map(u=>({relativePath:u.relativePath,startLine:u.startLine,endLine:u.endLine}));return{requested:e.length,matched:r.filter(u=>u.status==="matched").length,ambiguous:r.filter(u=>u.status==="ambiguous").length,missing:r.filter(u=>u.status==="missing").length,entries:r,bindingClosure:A(s.map(u=>u.bindingClosure),l)}}function ue(n,e,t,o){let i=Y(e);if(i){let d=q(n,i.filePath,i.startLine,i.endLine,t);return d?de(n,e,d,t):x(n,e,"definition-source-unreadable")}let r=Q(n,e);if(r)return fe(n,e,r,t,o);let s=w(n,e);if(!s.match)return x(n,e,"definition-not-found");let l=Le(n,s),u=l.map(V);if(s.total>1){let d=s.total<=4&&l.length===s.total;return{selector:e,status:"ambiguous",kind:"source",totalCandidates:s.total,results:d?l.flatMap(c=>{let f=p(n,c,t);return f?[f]:[]}):[],definitions:[],candidates:u,omittedCandidates:Math.max(0,s.total-u.length),suggestions:[]}}let a=p(n,s.match,t);return a?ve(e,a):x(n,e,"definition-source-unreadable")}function de(n,e,t,o){let i=g(n,t.relativePath).filter(a=>!X(a,t.relativePath)),r=ce(n,t,i),s=G(r.map(a=>p(n,a,o)).filter(a=>a!==null)).filter(a=>!J(t,a)),l=new Set(s.map(a=>a.symbol)),u=r.filter(a=>!l.has(a.symbol)&&!(t.startLine<=a.startLine&&t.endLine>=a.endLine)).map(V);return{selector:e,status:"matched",kind:"source",totalCandidates:1,results:[t,...s],definitions:[],candidates:[],omittedCandidates:0,suggestions:[],rangeCoverage:{basis:"requested-range-and-same-file-call-closure",referencedDefinitions:r.length,returnedDefinitions:r.length-u.length,returnedBodies:s.length,omittedDefinitions:u.length,omittedLedger:u}}}function ce(n,e,t){if(!h(e.freshness))return[];if(t.length===0)return[];let o=S(n,t,{additive:!1,semantic:!1}),i=new Map;for(let s of t){let l=i.get(s.symbol)??[];l.push(s),i.set(s.symbol,l)}let r=new Map;for(let s of t)if(!(s.endLine<e.startLine||s.startLine>e.endLine)){for(let l of o.get(s.symbolId)??[])if(l.file===e.relativePath&&!(l.source==="ast-callsite"&&(l.chunkId<e.startLine||l.chunkId>e.endLine)))for(let u of i.get(l.symbol)??[])r.set(u.symbolId,u)}return H(n,[...r.values()],t)}function fe(n,e,t,o,i){let r=t.relativePath,s=ge(n,r),l=h(t.freshness)?g(n,r).filter(m=>!X(m,r)):[],u=l.filter(m=>_(n,m)),a=u.length>0?u:me(s,l),d=i==="all"?[]:H(n,a,l),c=i==="all"||l.length===0?[K(n,t)]:G(d.map(m=>p(n,m,o)).filter(m=>m!==null)),f=he(s,c),b=be(r,s,c),N=Ce(s);return{selector:e,status:"matched",kind:"file-source",totalCandidates:1,results:c,definitions:[],candidates:[],omittedCandidates:0,suggestions:[],fileCoverage:{members:i,basis:i==="all"||l.length===0?"complete-file-source":u.length>0?"explicit-exports-and-same-file-reference-closure":"top-level-and-same-file-reference-closure",totalDefinitions:N,returnedDefinitions:f,returnedBodies:c.length,omittedDefinitions:Math.max(0,N-f),omittedLedger:b}}}function me(n,e){let t=new Set(n.map(o=>o.symbol));return e.filter(o=>t.has(o.symbol))}function ge(n,e){return k(n,e).flatMap(t=>pe(t,e)?t.children:[t])}function X(n,e){return z(e).has(n.leaf)}function pe(n,e){return z(e).has(I(n.symbol))}function z(n){let e=le(n);return new Set([e,e.slice(0,Math.max(0,e.length-U(e).length))])}function H(n,e,t){if(e.length===0)return[];let o=S(n,t,{additive:!0,semantic:!1}),i=new Map;for(let l of t){let u=i.get(l.symbol)??[];u.push(l),i.set(l.symbol,u)}let r=new Map,s=[...e];for(;s.length>0;){let l=s.shift();if(!r.has(l.symbolId)){r.set(l.symbolId,l);for(let u of o.get(l.symbolId)??[])for(let a of i.get(u.symbol)??[])r.has(a.symbolId)||s.push(a)}}return[...r.values()].sort(ye)}function G(n){let e=[...n].sort((o,i)=>o.relativePath.localeCompare(i.relativePath)||o.startLine-i.startLine||i.endLine-o.endLine),t=[];for(let o of e)t.some(i=>J(i,o))||t.push(o);return t}function K(n,e){let t=e.text.split(`
|
|
2
|
+
`);return{symbol:e.relativePath,shortName:e.relativePath,relativePath:e.relativePath,startLine:0,endLine:Math.max(0,t.length-1),language:n.get("SELECT language FROM documents WHERE relative_path = ?",e.relativePath)?.language??E(e.relativePath),source:e.text,freshness:e.freshness,...h(e.freshness)?{bindingClosure:y(n,e.relativePath,0,Math.max(0,t.length-1))}:{}}}function he(n,e){return v(n).filter(t=>e.some(o=>R(t,o))).length}function be(n,e,t){let o=[];return Z(o,n,e,t,0),o}function Z(n,e,t,o,i){for(let r of t){if(o.some(l=>R(r,l)))continue;let s=v(r.children).filter(l=>!o.some(u=>R(l,u))).length;n.push({symbol:r.symbol,shortName:r.shortName,relativePath:e,startLine:r.startLine,endLine:r.endLine,signature:r.signature,depth:i,nestedDefinitions:s}),Z(n,e,r.children,o,i+1)}}function v(n){return n.flatMap(e=>[e,...v(e.children)])}function Ce(n){return v(n).length}function R(n,e){return e.startLine<=n.startLine&&e.endLine>=n.endLine}function J(n,e){return n.relativePath===e.relativePath&&n.startLine<=e.startLine&&n.endLine>=e.endLine}function ye(n,e){return n.startLine-e.startLine||e.endLine-n.endLine||n.symbol.localeCompare(e.symbol)}function ve(n,e){return{selector:n,status:"matched",kind:"source",totalCandidates:1,results:[e],definitions:[],candidates:[],omittedCandidates:0,suggestions:[]}}function x(n,e,t){return{selector:e,status:"missing",kind:"source",totalCandidates:0,results:[],definitions:[],candidates:[],omittedCandidates:0,suggestions:$(n,e,5),reason:t}}function Q(n,e){try{return C(n,e)}catch(t){if(t instanceof F)return null;throw t}}function Le(n,e){if(!e.match)return[];let t=[e.match];for(let i of e.candidates){let r=g(n,i.relativePath).find(s=>s.symbol===i.symbol&&s.startLine===i.startLine);r&&t.push(r)}let o=new Set;return t.filter(i=>{let r=`${i.relativePath}:${i.startLine}:${i.endLine}:${i.symbol}`;return o.has(r)?!1:(o.add(r),!0)})}function V(n){return{symbol:n.symbol,shortName:L(n.symbol),relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine}}function Y(n){let e=n.match(/^(.+):(\d+)-(\d+)$/);if(!e)return null;let t=Number(e[2]),o=Number(e[3]);if(!Number.isSafeInteger(t)||t<1)throw new RangeError(`Source range start line must be a positive integer, got "${e[2]}".`);if(!Number.isSafeInteger(o)||o<t)throw new RangeError(`Source range end line must be an integer at or after ${t}, got "${e[3]}".`);return{filePath:e[1],startLine:t,endLine:o}}function p(n,e,t){let o=n.get("SELECT language FROM documents WHERE relative_path = ?",e.relativePath),i=C(n,e.relativePath);if(!i)return null;let s=i.text.split(`
|
|
3
|
+
`),l=e.endLine<=e.startLine?j(n,e.relativePath,e.startLine,Number.MAX_SAFE_INTEGER):null,u=l?.unitType?l.unitStartLine:e.startLine,a=l?.unitType?l.unitEndLine:e.endLine,d=Math.max(0,u-t),c=Math.min(s.length-1,a+t),f=s.slice(d,c+1).join(`
|
|
4
|
+
`);return{symbol:e.symbol,shortName:L(e.symbol),relativePath:e.relativePath,startLine:d,endLine:c,language:o?.language??E(e.relativePath),source:f,freshness:i.freshness,...h(i.freshness)?{bindingClosure:y(n,e.relativePath,d,c)}:{}}}function q(n,e,t,o,i){let r=C(n,e);if(!r)return null;let s=n.get("SELECT language FROM documents WHERE relative_path = ?",r.relativePath),u=r.text.split(`
|
|
5
|
+
`);if(t>u.length)return null;let a=Math.max(0,t-1-i),d=Math.min(u.length-1,o-1+i),c=u.slice(a,d+1).join(`
|
|
6
|
+
`);return{symbol:`${r.relativePath}:${t}-${o}`,shortName:`${r.relativePath}:${t}-${o}`,relativePath:r.relativePath,startLine:a,endLine:d,language:s?.language??E(r.relativePath),source:c,freshness:r.freshness,...h(r.freshness)?{bindingClosure:y(n,r.relativePath,a,d)}:{}}}function h(n){return!!(n&&n.semantic.state!=="stale"&&n.semantic.basis!=="no-compiler-document")}function E(n){switch(U(n).toLowerCase()){case".ts":case".tsx":case".mts":case".cts":return"typescript";case".js":case".jsx":case".mjs":case".cjs":return"javascript";case".py":case".pyi":return"python";case".rs":return"rust";case".go":return"go";case".java":return"java";case".kt":case".kts":return"kotlin";case".scala":return"scala";case".rb":return"ruby";case".php":return"php";case".cs":return"csharp";case".vb":return"vb";case".dart":return"dart";case".c":case".h":return"c";case".cc":case".cpp":case".cxx":case".hpp":case".hh":case".hxx":return"cpp";case".vue":return"vue";default:return null}}export{y as a,A as b,Ne as c,Ae as d,We as e};
|
|
7
|
+
//# sourceMappingURL=chunk-6SWA6B24.js.map
|