scip-query 0.23.0 → 0.26.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 +491 -2
- package/README.md +111 -122
- package/dist/augment-vue-worker.js +1 -1
- package/dist/by-kind-PRVFAGTQ.js +2 -0
- package/dist/call-graph-DVPAQV2F.js +2 -0
- package/dist/call-graph-evidence-CUtj8V2I.d.ts +19 -0
- package/dist/chunk-2FSBGL5P.js +2 -0
- package/dist/chunk-2HLAFUCY.js +2 -0
- package/dist/chunk-2IWUT6CJ.js +3 -0
- package/dist/chunk-2KNN7GTQ.js +2 -0
- package/dist/chunk-2LHXRE2B.js +8 -0
- package/dist/{chunk-EG2CPZMJ.js → chunk-2YXE77TJ.js} +2 -2
- package/dist/chunk-36SGVCGX.js +2 -0
- package/dist/chunk-3ABBFPTP.js +2 -0
- package/dist/chunk-3IVFU4FD.js +3 -0
- package/dist/chunk-3JIQS44J.js +7 -0
- package/dist/chunk-3ZRB6DNK.js +7 -0
- package/dist/{chunk-6YTSKJJ3.js → chunk-42EOW5VI.js} +1 -1
- package/dist/{chunk-6I6L7Z62.js → chunk-4BHGBMNO.js} +2 -2
- package/dist/chunk-4BP3UBDG.js +2 -0
- package/dist/chunk-4D6RO7G4.js +2 -0
- package/dist/chunk-4FEWQ6RH.js +2 -0
- package/dist/chunk-4IGEOBG7.js +2 -0
- package/dist/chunk-4QZXBUKC.js +2 -0
- package/dist/chunk-4WBDEVX2.js +4 -0
- package/dist/chunk-4WCUBZU3.js +8 -0
- package/dist/chunk-4WTUBQ36.js +40 -0
- package/dist/chunk-4XQ4O6IM.js +3 -0
- package/dist/chunk-55UQAMZO.js +4 -0
- package/dist/chunk-5D2LVK7O.js +125 -0
- package/dist/chunk-5IYJ56TT.js +2 -0
- package/dist/chunk-5PLMJC7Q.js +2 -0
- package/dist/chunk-5TNQJUR2.js +5 -0
- package/dist/chunk-62BDNPMI.js +2 -0
- package/dist/chunk-64DZ5TXR.js +7 -0
- package/dist/chunk-65245JCM.js +2 -0
- package/dist/chunk-6FFVZZL4.js +2 -0
- package/dist/chunk-6KO5JHAR.js +2 -0
- package/dist/chunk-6LRXOOSX.js +2 -0
- package/dist/chunk-6LSEIIF7.js +2 -0
- package/dist/chunk-6YMNWD3H.js +6 -0
- package/dist/chunk-72AD6ZRR.js +5 -0
- package/dist/chunk-73AAKPUC.js +4 -0
- package/dist/chunk-76CZ77DF.js +2 -0
- package/dist/chunk-7VPEEAAG.js +2 -0
- package/dist/chunk-7WTPQ4NX.js +14 -0
- package/dist/chunk-7Y5T6XDP.js +2 -0
- package/dist/chunk-A2IIGFMJ.js +5 -0
- package/dist/chunk-AB5KCTEV.js +2 -0
- package/dist/chunk-AC566WBP.js +6 -0
- package/dist/chunk-AGWFSTXC.js +3 -0
- package/dist/chunk-AOSIYPTA.js +2 -0
- package/dist/chunk-AUVEWPIF.js +2 -0
- package/dist/chunk-B56T42J3.js +25 -0
- package/dist/chunk-BIQEF5NE.js +2 -0
- package/dist/chunk-BL6XJKTA.js +3 -0
- package/dist/chunk-BMKOQJRI.js +2 -0
- package/dist/chunk-BOZ4EXBB.js +3 -0
- package/dist/chunk-BUTWYEPH.js +2 -0
- package/dist/chunk-BZB4QPIP.js +2 -0
- package/dist/{chunk-ILTDAWEF.js → chunk-CE357GEE.js} +4 -4
- package/dist/chunk-CFN45HFP.js +2 -0
- package/dist/chunk-CFYMZFXT.js +368 -0
- package/dist/chunk-CN5EH7O3.js +2 -0
- package/dist/chunk-D254DNNQ.js +4 -0
- package/dist/chunk-D3FDISIC.js +2 -0
- package/dist/chunk-D3NX5XIE.js +3 -0
- package/dist/chunk-DA7RPPDF.js +3 -0
- package/dist/chunk-DDMC3FON.js +3 -0
- package/dist/chunk-DIO3FUSG.js +2 -0
- package/dist/chunk-DJ2NNSUK.js +3 -0
- package/dist/chunk-DKYQIM3C.js +18 -0
- package/dist/{chunk-JTQVMR42.js → chunk-DOOEL2IV.js} +2 -2
- package/dist/chunk-DVFP6PZI.js +2 -0
- package/dist/chunk-E3FDPXZK.js +2 -0
- package/dist/chunk-E7YNJLCB.js +2 -0
- package/dist/chunk-EFGW5JPH.js +2 -0
- package/dist/chunk-EJVTR244.js +13 -0
- package/dist/chunk-EOV7RTRZ.js +2 -0
- package/dist/chunk-ETOIKRHO.js +2 -0
- package/dist/chunk-EYK3ZAO2.js +3 -0
- package/dist/chunk-F2V2LPET.js +52 -0
- package/dist/chunk-F4LUHJTF.js +2 -0
- package/dist/chunk-F4PUT6IT.js +2 -0
- package/dist/chunk-F56GCXXS.js +5 -0
- package/dist/chunk-FC2EVQRM.js +2 -0
- package/dist/chunk-FL7NBMHP.js +3 -0
- package/dist/chunk-FMRN2TRL.js +3 -0
- package/dist/chunk-FVULPZDF.js +20 -0
- package/dist/chunk-GCKCF5FL.js +43 -0
- package/dist/chunk-GH2PYF46.js +2 -0
- package/dist/chunk-GHJAGXIP.js +2 -0
- package/dist/{chunk-WIWY3CRX.js → chunk-GMVSHUKZ.js} +2 -2
- package/dist/chunk-GS6KDO4R.js +2 -0
- package/dist/chunk-GUUBXNN7.js +2 -0
- package/dist/chunk-GVWX5T43.js +80 -0
- package/dist/chunk-GZKFETP5.js +2 -0
- package/dist/chunk-H4EQHO6J.js +9 -0
- package/dist/chunk-H73WY2RM.js +2 -0
- package/dist/chunk-H75GSPRV.js +60 -0
- package/dist/chunk-HDR3AHSV.js +61 -0
- package/dist/chunk-HQBSL74Y.js +2 -0
- package/dist/chunk-HRRFKWPZ.js +2 -0
- package/dist/chunk-HXENDJC6.js +2 -0
- package/dist/chunk-IIBAZNSW.js +21 -0
- package/dist/chunk-INLMWEUU.js +12 -0
- package/dist/chunk-IWQPAF4F.js +2 -0
- package/dist/chunk-IZJ6YUKP.js +35 -0
- package/dist/chunk-J2TMAIN5.js +60 -0
- package/dist/chunk-J5FJMODQ.js +142 -0
- package/dist/chunk-J7HZPIO3.js +2 -0
- package/dist/chunk-JEVRKFRL.js +2 -0
- package/dist/chunk-JFXSGAEB.js +30 -0
- package/dist/chunk-JVRTHGFS.js +3 -0
- package/dist/chunk-JYWEX7RR.js +360 -0
- package/dist/chunk-K3YL22N6.js +2 -0
- package/dist/chunk-K4CN7GXK.js +12 -0
- package/dist/chunk-K5TBVXU4.js +30 -0
- package/dist/chunk-KDDIE2DP.js +9 -0
- package/dist/chunk-KHWRRPV4.js +2 -0
- package/dist/chunk-KI6NBKDY.js +14 -0
- package/dist/chunk-KU3QRSTH.js +2 -0
- package/dist/chunk-KZBJWZJB.js +2 -0
- package/dist/chunk-L7GFM3NP.js +3 -0
- package/dist/chunk-LMO6PK3V.js +35 -0
- package/dist/chunk-LN4YXJJU.js +2 -0
- package/dist/chunk-LOVIZBJ4.js +43 -0
- package/dist/chunk-LPCRK4A2.js +11 -0
- package/dist/chunk-MMHZKBFA.js +2 -0
- package/dist/{chunk-M2O5NY6W.js → chunk-MOQQBQRD.js} +2 -2
- package/dist/chunk-N2WN6I3L.js +2 -0
- package/dist/chunk-N3ORQT7L.js +2 -0
- package/dist/chunk-NAZ3RAIW.js +2 -0
- package/dist/chunk-NDUNO5JQ.js +2 -0
- package/dist/chunk-NEIWRNAZ.js +4 -0
- package/dist/chunk-NJJMVD65.js +2 -0
- package/dist/chunk-NLOQOBXI.js +20 -0
- package/dist/chunk-NOLZOVCU.js +2 -0
- package/dist/chunk-NOWINRRN.js +2 -0
- package/dist/chunk-NZAXKGRL.js +16 -0
- package/dist/chunk-O2C4UILI.js +2 -0
- package/dist/chunk-O3RHA6ZT.js +3 -0
- package/dist/chunk-O4UZSPPI.js +3 -0
- package/dist/chunk-OGFV2BUX.js +2 -0
- package/dist/chunk-OZCJXZK6.js +499 -0
- package/dist/chunk-P6ODM7BY.js +2 -0
- package/dist/{chunk-XBGWL66K.js → chunk-PAVGPRHJ.js} +2 -2
- package/dist/chunk-PH52RA7D.js +2 -0
- package/dist/chunk-PKN354TH.js +3 -0
- package/dist/chunk-PWOASWEG.js +11 -0
- package/dist/chunk-QIWXRW72.js +2 -0
- package/dist/chunk-QJRMOK5N.js +2 -0
- package/dist/{chunk-YXPUP5G2.js → chunk-QOIXNWQR.js} +2 -2
- package/dist/chunk-QXEUDXBT.js +3 -0
- package/dist/chunk-QYUVVBMR.js +6 -0
- package/dist/chunk-QZ7KQZRN.js +2 -0
- package/dist/chunk-R6LQBUDH.js +2 -0
- package/dist/chunk-RBS42E55.js +20 -0
- package/dist/chunk-RSJKPCFX.js +26 -0
- package/dist/chunk-S6CZA3MV.js +2 -0
- package/dist/chunk-STMVAHJP.js +2 -0
- package/dist/chunk-SYVPTTVW.js +2 -0
- package/dist/chunk-T3I6NHBH.js +2 -0
- package/dist/chunk-T6DK3ZP7.js +2 -0
- package/dist/chunk-TKD34PHN.js +4 -0
- package/dist/chunk-TNNQFH7W.js +2 -0
- package/dist/chunk-TNV7SSUF.js +2 -0
- package/dist/chunk-TO7ZR3EH.js +8 -0
- package/dist/chunk-TOU3CHK4.js +2 -0
- package/dist/chunk-TRBI4UKT.js +2 -0
- package/dist/chunk-TZCVNCAN.js +4 -0
- package/dist/chunk-U4LZA5LL.js +3 -0
- package/dist/chunk-U5RIG3JP.js +3 -0
- package/dist/chunk-UP5KXN2I.js +2 -0
- package/dist/chunk-UQFR3NDH.js +5 -0
- package/dist/chunk-UXYXF7GV.js +2 -0
- package/dist/chunk-VB3GOKOS.js +2 -0
- package/dist/chunk-VF5JZICY.js +2 -0
- package/dist/chunk-VTY3VK6E.js +2 -0
- package/dist/chunk-VX2O4RIS.js +2 -0
- package/dist/chunk-WKPV2TDZ.js +2 -0
- package/dist/chunk-WOFQ5DTB.js +2 -0
- package/dist/chunk-WS4C6TCK.js +2 -0
- package/dist/chunk-WXU3DGPU.js +2 -0
- package/dist/chunk-X6RMKHJQ.js +81 -0
- package/dist/{chunk-4ILJCCXV.js → chunk-XHMN6ZX7.js} +2 -2
- package/dist/chunk-XHTVFLWW.js +2 -0
- package/dist/chunk-XKIDJCIK.js +2 -0
- package/dist/chunk-XTYTYZPT.js +2 -0
- package/dist/chunk-Y2JHHTTA.js +2 -0
- package/dist/chunk-YGVRMGYN.js +4 -0
- package/dist/chunk-YNQCGEQE.js +2 -0
- package/dist/chunk-YOQVEXVE.js +14 -0
- package/dist/chunk-YRT2WLYY.js +2 -0
- package/dist/chunk-YTAP5Y2G.js +2 -0
- package/dist/chunk-YTYWI7VB.js +2 -0
- package/dist/chunk-YULZRALL.js +2 -0
- package/dist/chunk-Z33WQG4Q.js +2 -0
- package/dist/chunk-ZGTYGDMF.js +16 -0
- package/dist/chunk-ZHMRSZFD.js +43 -0
- package/dist/chunk-ZHSP366W.js +10 -0
- package/dist/chunk-ZIBYCYKK.js +7 -0
- package/dist/{chunk-GAS2LJMP.js → chunk-ZLADLUE6.js} +3 -3
- package/dist/chunk-ZO4YXUT6.js +4 -0
- package/dist/{chunk-HYO3NP5Q.js → chunk-ZR4HBC2H.js} +2 -2
- package/dist/cli-main.js +6 -6
- package/dist/cli.js +1 -1
- package/dist/{code-B17qEMbt.d.ts → code-BNyrCF3_.d.ts} +3 -2
- package/dist/code-IL5WH3NZ.js +2 -0
- package/dist/code-result-json-ANTBEDFP.js +4 -0
- package/dist/command-descriptors-HEEMDHTU.js +222 -0
- package/dist/deps-EOWFC6FD.js +2 -0
- package/dist/direct-navigation-Y5B6OSIQ.js +3 -0
- package/dist/{exploration-topology-BG4v30HZ.d.ts → exploration-topology-CSgEyAz-.d.ts} +3 -1
- package/dist/files-K4AI3JUM.js +2 -0
- package/dist/frontend-profile-roles-D7eCum8P.d.ts +10 -0
- package/dist/{health-CPp2Jf1Z.d.ts → health-BtfmNrfa.d.ts} +58 -74
- package/dist/hierarchy-6W5NDIFI.js +2 -0
- package/dist/imports-WH365QY4.js +2 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/members-K3PHMF5S.js +2 -0
- package/dist/methods-E7KVMBX4.js +2 -0
- package/dist/output-continuation-command-BJSY67SN.js +3 -0
- package/dist/output-pagination-UZJ5ACIX.js +24 -0
- package/dist/postinstall.js +1 -1
- package/dist/project-reindex-EP24WT4X.js +3 -0
- package/dist/queries/affected.js +1 -1
- package/dist/queries/architecture.d.ts +15 -4
- package/dist/queries/architecture.js +1 -1
- package/dist/queries/bottlenecks.js +1 -1
- package/dist/queries/by-kind.js +1 -1
- package/dist/queries/call-graph.d.ts +3 -1
- package/dist/queries/call-graph.js +1 -1
- package/dist/queries/change-surface.d.ts +1 -0
- package/dist/queries/change-surface.js +1 -1
- package/dist/queries/cleanup-plan.d.ts +3 -3
- package/dist/queries/cleanup-plan.js +1 -1
- package/dist/queries/co-change.d.ts +20 -2
- package/dist/queries/co-change.js +1 -1
- package/dist/queries/code.d.ts +1 -1
- package/dist/queries/code.js +1 -1
- package/dist/queries/complexity.d.ts +6 -3
- package/dist/queries/complexity.js +1 -1
- package/dist/queries/context.d.ts +1 -7
- package/dist/queries/context.js +1 -1
- package/dist/queries/coupling.js +1 -1
- package/dist/queries/cycles.js +1 -1
- package/dist/queries/dead.d.ts +2 -0
- package/dist/queries/dead.js +1 -1
- package/dist/queries/decorative-checkers.js +1 -1
- package/dist/queries/dependence-slice.d.ts +46 -22
- package/dist/queries/dependence-slice.js +1 -1
- package/dist/queries/dependency-depth.d.ts +1 -7
- package/dist/queries/dependency-depth.js +1 -1
- package/dist/queries/deps.js +1 -1
- package/dist/queries/diff-impact.d.ts +3 -1
- package/dist/queries/diff-impact.js +1 -1
- package/dist/queries/doc-drift.js +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.js +1 -1
- package/dist/queries/duplicate-bodies.d.ts +29 -2
- package/dist/queries/duplicate-bodies.js +1 -1
- package/dist/queries/entry-map.d.ts +2 -4
- package/dist/queries/entry-map.js +1 -1
- package/dist/queries/evidence.d.ts +121 -61
- package/dist/queries/evidence.js +1 -1
- package/dist/queries/fan.js +1 -1
- package/dist/queries/files.js +1 -1
- package/dist/queries/health.d.ts +1 -1
- package/dist/queries/health.js +1 -1
- package/dist/queries/hierarchy.d.ts +2 -2
- package/dist/queries/hierarchy.js +1 -1
- package/dist/queries/hotspots.d.ts +1 -1
- package/dist/queries/hotspots.js +1 -1
- package/dist/queries/imports.d.ts +1 -0
- package/dist/queries/imports.js +1 -1
- package/dist/queries/incomplete-migration.d.ts +3 -3
- package/dist/queries/incomplete-migration.js +1 -1
- package/dist/queries/index.d.ts +17 -65
- package/dist/queries/index.js +1 -1
- package/dist/queries/locality-candidates.d.ts +4 -4
- 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.js +1 -1
- package/dist/queries/not-implemented.d.ts +2 -6
- package/dist/queries/not-implemented.js +1 -1
- package/dist/queries/outline.js +1 -1
- package/dist/queries/passthrough-candidates.d.ts +9 -1
- package/dist/queries/passthrough-candidates.js +1 -1
- package/dist/queries/react-component-duplicates.d.ts +19 -3
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.d.ts +22 -3
- package/dist/queries/react-hook-candidates.js +1 -1
- package/dist/queries/react-large-component-pressure.d.ts +17 -3
- package/dist/queries/react-large-component-pressure.js +1 -1
- package/dist/queries/recent-duplicates.js +1 -1
- package/dist/queries/redundant-reexports.d.ts +4 -14
- package/dist/queries/redundant-reexports.js +1 -1
- package/dist/queries/refs.d.ts +4 -1
- package/dist/queries/refs.js +1 -1
- package/dist/queries/review.d.ts +188 -0
- package/dist/queries/review.js +2 -0
- package/dist/queries/similar-files.d.ts +7 -10
- package/dist/queries/similar-files.js +1 -1
- package/dist/queries/similar-signatures.js +1 -1
- package/dist/queries/similar.d.ts +19 -1
- package/dist/queries/similar.js +1 -1
- package/dist/queries/slice-cohesion.d.ts +205 -0
- package/dist/queries/slice-cohesion.js +2 -0
- package/dist/queries/source-inspection.d.ts +6 -202
- package/dist/queries/source-inspection.js +1 -1
- package/dist/queries/source-search.d.ts +2 -3
- package/dist/queries/source-search.js +1 -1
- package/dist/queries/stats.d.ts +1 -0
- package/dist/queries/stats.js +1 -1
- package/dist/queries/surface.js +1 -1
- package/dist/queries/symbols.js +1 -1
- package/dist/queries/system.d.ts +4 -2
- package/dist/queries/system.js +1 -1
- package/dist/queries/test-quality.d.ts +1 -1
- package/dist/queries/test-quality.js +1 -1
- package/dist/queries/twin-drift.d.ts +23 -7
- package/dist/queries/twin-drift.js +1 -1
- package/dist/queries/unused-imports.js +1 -1
- package/dist/queries/unused-params.d.ts +3 -15
- package/dist/queries/unused-params.js +1 -1
- package/dist/queries/vue-component-duplicates.js +1 -1
- package/dist/queries/vue-composable-candidates.js +1 -1
- package/dist/queries/vue-large-view-pressure.js +1 -1
- package/dist/query-service-fastpath.js +5 -5
- package/dist/query-service-server.js +4 -4
- package/dist/refs-CCBJG7WK.js +2 -0
- package/dist/refs-pagination-DRNLVU4S.js +2 -0
- package/dist/reindex-worker.js +79 -29
- package/dist/reindex.js +45 -45
- package/dist/repository-cache-worker.js +2 -0
- package/dist/runtime.d.ts +8 -8
- package/dist/runtime.js +3 -4
- 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/service-queries-2WAJI7R6.js +6 -0
- package/dist/source-inspection-91U9zdO3.d.ts +341 -0
- package/dist/{source-search-types-Dwz8KeuW.d.ts → source-search-types-DWGYNg8M.d.ts} +15 -2
- package/dist/stats-G7DIV6VU.js +2 -0
- package/dist/surface-IO55UALI.js +2 -0
- package/dist/system-ZBMSHJXU.js +2 -0
- package/dist/{queries/trace.d.ts → trace-BMjw3prn.d.ts} +1 -18
- package/dist/typescript-indexer.js +2 -0
- package/dist/typescript-mailbox-worker.js +1 -1
- package/dist/watch-server.js +3 -3
- package/docs/AGENT_GUIDE.md +19 -128
- package/docs/CLI_JSON_OUTPUT.md +21 -17
- package/docs/COMMAND_REFERENCE.md +34 -49
- package/docs/CURRENT_COMMANDS.md +123 -0
- package/docs/DETECTOR_EVIDENCE_CONTRACTS.md +0 -40
- package/docs/DETECTOR_GUIDE.md +55 -12
- package/docs/PRODUCT_VISION.md +135 -0
- package/docs/PROPERTY_TESTING.md +73 -0
- package/docs/REVIEW.md +76 -0
- package/docs/SKILLS.md +51 -0
- package/docs/WINDOWS_SIDECAR_RELEASE.md +12 -3
- package/docs/accuracy-audit-checklist.md +70 -13
- package/docs/analyzer-inventory.md +2 -2
- package/docs/locality-analyzer-design.md +9 -9
- package/package.json +18 -80
- package/scripts/evidence-product-contract.mjs +7 -3
- package/scripts/record-review-coverage.mjs +118 -0
- package/scripts/scip-windows-provenance.mjs +29 -19
- package/skills/scip-architecture-review/SKILL.md +57 -0
- package/skills/scip-architecture-review/agents/openai.yaml +4 -0
- package/skills/scip-architecture-review/references/design-checks.md +17 -0
- package/skills/scip-explore/SKILL.md +15 -59
- package/skills/scip-explore/agents/openai.yaml +3 -3
- package/skills/scip-explore/references/external-evidence.md +2 -2
- package/skills/scip-explore/references/information-model.md +26 -29
- package/skills/scip-explore/scripts/capture-evidence.mjs +68 -34
- package/skills/scip-integrity-audit/SKILL.md +53 -181
- package/skills/scip-integrity-audit/agents/openai.yaml +3 -3
- package/skills/scip-integrity-audit/references/integrity-probes.md +27 -0
- package/skills/scip-plan/SKILL.md +39 -65
- package/skills/scip-plan/agents/openai.yaml +2 -2
- package/skills/scip-query/SKILL.md +28 -81
- package/skills/scip-query/agents/openai.yaml +2 -2
- package/skills/scip-query/references/command-guide.md +169 -0
- package/skills/scip-setup/SKILL.md +4 -2
- package/skills/scip-setup/agents/openai.yaml +3 -3
- package/dist/by-kind-XI2CSWEY.js +0 -2
- package/dist/call-graph-UONR6JR5.js +0 -2
- package/dist/call-graph-evidence-lZa2dwQA.d.ts +0 -11
- package/dist/chunk-26CT72HM.js +0 -2
- package/dist/chunk-2E7CX53V.js +0 -2
- package/dist/chunk-2GRUZAQF.js +0 -43
- package/dist/chunk-2LDBDR6J.js +0 -29
- package/dist/chunk-2OOY75BW.js +0 -2
- package/dist/chunk-2R3V3PSD.js +0 -4
- package/dist/chunk-2WC2OEDO.js +0 -4
- package/dist/chunk-35NLDRZC.js +0 -2
- package/dist/chunk-3AF4TUFK.js +0 -3
- package/dist/chunk-3D3QG236.js +0 -2
- package/dist/chunk-3FHOF22C.js +0 -21
- package/dist/chunk-3JKSW6LJ.js +0 -2
- package/dist/chunk-3L2ZBPEX.js +0 -133
- package/dist/chunk-3PJABJSU.js +0 -2
- package/dist/chunk-3SVF22I5.js +0 -2
- package/dist/chunk-3WR4E3A3.js +0 -3
- package/dist/chunk-4FTZ4P5G.js +0 -2
- package/dist/chunk-4UX2F3JX.js +0 -2
- package/dist/chunk-4WNW27SX.js +0 -2
- package/dist/chunk-5ENOG4VP.js +0 -61
- package/dist/chunk-64BFSI5I.js +0 -2
- package/dist/chunk-66DVSJQG.js +0 -455
- package/dist/chunk-6HFCYNYE.js +0 -9
- package/dist/chunk-6PQNKL3G.js +0 -3
- package/dist/chunk-6V5CNXL6.js +0 -2
- package/dist/chunk-6VVV4WRR.js +0 -4
- package/dist/chunk-7BWFZPPZ.js +0 -2
- package/dist/chunk-7CYG22FH.js +0 -2
- package/dist/chunk-7F45LJKI.js +0 -2
- package/dist/chunk-7IWV2EG3.js +0 -3
- package/dist/chunk-7KCZELVM.js +0 -2
- package/dist/chunk-AFHTBORT.js +0 -2
- package/dist/chunk-AVRYW5OZ.js +0 -2
- package/dist/chunk-B3X6KU75.js +0 -2
- package/dist/chunk-B5D7QPBE.js +0 -4
- package/dist/chunk-BBCIS4DX.js +0 -16
- package/dist/chunk-BDUVI7TO.js +0 -3
- package/dist/chunk-BE7ZZTMC.js +0 -2
- package/dist/chunk-BHVUJOCQ.js +0 -3
- package/dist/chunk-BJT7LSPK.js +0 -3
- package/dist/chunk-BKVWUP7Y.js +0 -2
- package/dist/chunk-BQGB4HBD.js +0 -2
- package/dist/chunk-BRV7PIFF.js +0 -2
- package/dist/chunk-CEEZJXEF.js +0 -2
- package/dist/chunk-CIYLO6SI.js +0 -7
- package/dist/chunk-CJZXN4NU.js +0 -2
- package/dist/chunk-CNO7TOKL.js +0 -2
- package/dist/chunk-COF23M5F.js +0 -2
- package/dist/chunk-CWFP7GM5.js +0 -2
- package/dist/chunk-D2DHWI3D.js +0 -2
- package/dist/chunk-D4N5SQ2M.js +0 -4
- package/dist/chunk-DBRSYFXR.js +0 -2
- package/dist/chunk-DHUIOLDT.js +0 -2
- package/dist/chunk-DIRJWYBM.js +0 -6
- package/dist/chunk-DIUFNHRJ.js +0 -35
- package/dist/chunk-DRENNWRG.js +0 -2
- package/dist/chunk-DTZCKZEU.js +0 -4
- package/dist/chunk-DULC3QFP.js +0 -5
- package/dist/chunk-DYGHBZ2N.js +0 -16
- package/dist/chunk-E5R6AQ73.js +0 -40
- package/dist/chunk-E73UNJTF.js +0 -38
- package/dist/chunk-EKV5HX33.js +0 -2
- package/dist/chunk-EQHFIL6T.js +0 -3
- package/dist/chunk-ESIQ66Z7.js +0 -2
- package/dist/chunk-EVFUMY4R.js +0 -3
- package/dist/chunk-F7DY272B.js +0 -2
- package/dist/chunk-FBN2FGXG.js +0 -2
- package/dist/chunk-FDLOBR6P.js +0 -4
- package/dist/chunk-FESCRNVV.js +0 -5
- package/dist/chunk-FFRKR4EQ.js +0 -2
- package/dist/chunk-FGA2U4OR.js +0 -8
- package/dist/chunk-FIQRSHVM.js +0 -2
- package/dist/chunk-FPYLNQPT.js +0 -2
- package/dist/chunk-FRUSVINH.js +0 -2
- package/dist/chunk-GSP44ENC.js +0 -2
- package/dist/chunk-GUFSG5TX.js +0 -2
- package/dist/chunk-GYIZ4NXB.js +0 -2
- package/dist/chunk-GZIUDL6G.js +0 -2
- package/dist/chunk-H5EXS3HM.js +0 -2
- package/dist/chunk-HCXEQRFF.js +0 -18
- package/dist/chunk-HEHOQQKH.js +0 -2
- package/dist/chunk-HKGFPJ4T.js +0 -4
- package/dist/chunk-HLZTEXRA.js +0 -2
- package/dist/chunk-HOENASQM.js +0 -3
- package/dist/chunk-HVF5VBG6.js +0 -2
- package/dist/chunk-I55I7XXP.js +0 -2
- package/dist/chunk-IDFEUFKS.js +0 -2
- package/dist/chunk-IHGQTTVW.js +0 -2
- package/dist/chunk-IICPE7B2.js +0 -20
- package/dist/chunk-IL676XCC.js +0 -18
- package/dist/chunk-IW5XQG5G.js +0 -2
- package/dist/chunk-IZDPJ2QI.js +0 -2
- package/dist/chunk-J66VOFW6.js +0 -5
- package/dist/chunk-JFMEXGFE.js +0 -2
- package/dist/chunk-JGKUET5J.js +0 -3
- package/dist/chunk-JS4PGXMV.js +0 -3
- package/dist/chunk-JWTGMPIT.js +0 -80
- package/dist/chunk-JYR66JN5.js +0 -5
- package/dist/chunk-KFOYCQAJ.js +0 -9
- package/dist/chunk-KLFEXGQA.js +0 -2
- package/dist/chunk-KMVGRIO2.js +0 -2
- package/dist/chunk-KYSDI3GE.js +0 -5
- package/dist/chunk-L6PJPETJ.js +0 -29
- package/dist/chunk-LDVT66YM.js +0 -2
- package/dist/chunk-LEECKFCJ.js +0 -2
- package/dist/chunk-LMZ5PRUV.js +0 -2
- package/dist/chunk-LQRQN2XA.js +0 -2
- package/dist/chunk-LXABEJX3.js +0 -2
- package/dist/chunk-MNV5FSBW.js +0 -3
- package/dist/chunk-MPQ4OTBM.js +0 -2
- package/dist/chunk-MTDBHTSF.js +0 -2
- package/dist/chunk-MV3CDXPI.js +0 -38
- package/dist/chunk-MWN53KRN.js +0 -60
- package/dist/chunk-MXNGIEPU.js +0 -3
- package/dist/chunk-N2ZSIIGR.js +0 -117
- package/dist/chunk-N5B2NILC.js +0 -5
- package/dist/chunk-NJITK2GP.js +0 -2
- package/dist/chunk-NOGJXYFO.js +0 -2
- package/dist/chunk-NOYBFVJA.js +0 -554
- package/dist/chunk-NWQXSFFU.js +0 -3
- package/dist/chunk-ODDUPDP7.js +0 -13
- package/dist/chunk-OLIWTZI3.js +0 -3
- package/dist/chunk-OLNV6I6U.js +0 -2
- package/dist/chunk-OR2E3AGZ.js +0 -2
- package/dist/chunk-OSR2GEHQ.js +0 -2
- package/dist/chunk-OSSESPDX.js +0 -3
- package/dist/chunk-OWOOWNJ5.js +0 -7
- package/dist/chunk-P42EIXTA.js +0 -2
- package/dist/chunk-PJFGPYTU.js +0 -2
- package/dist/chunk-PP7KNN7L.js +0 -2
- package/dist/chunk-PU7T5QYQ.js +0 -2
- package/dist/chunk-PWWAJSKV.js +0 -74
- package/dist/chunk-PZL5T7SU.js +0 -73
- package/dist/chunk-QBE3YX64.js +0 -23
- package/dist/chunk-QGVTFRY2.js +0 -7
- package/dist/chunk-QOJONDS7.js +0 -2
- package/dist/chunk-QU5XRYB5.js +0 -4
- package/dist/chunk-QUU5OBVK.js +0 -11
- package/dist/chunk-RBLQNW26.js +0 -20
- package/dist/chunk-RTQ7NEKG.js +0 -81
- package/dist/chunk-SQXRS7BG.js +0 -4
- package/dist/chunk-SSK6LDPC.js +0 -2
- package/dist/chunk-SZHGTCPP.js +0 -7
- package/dist/chunk-T4N4P2K5.js +0 -16
- package/dist/chunk-TA3QKLLU.js +0 -2
- package/dist/chunk-TEBQMNVI.js +0 -43
- package/dist/chunk-TPFHAQ2G.js +0 -2
- package/dist/chunk-TQPCBMWT.js +0 -5
- package/dist/chunk-TQZV7KV4.js +0 -2
- package/dist/chunk-TRNAEQ6P.js +0 -3
- package/dist/chunk-TY7CRN3Z.js +0 -2
- package/dist/chunk-UHFYCMZO.js +0 -35
- package/dist/chunk-UICY4GTQ.js +0 -7
- package/dist/chunk-UVGEWT4Y.js +0 -26
- package/dist/chunk-UXW33INU.js +0 -29
- package/dist/chunk-VMPRET3I.js +0 -5
- package/dist/chunk-VNLGKHS6.js +0 -6
- package/dist/chunk-VQILFTEH.js +0 -2
- package/dist/chunk-VUPHCS7Y.js +0 -57
- package/dist/chunk-VVZSBTSU.js +0 -23
- package/dist/chunk-VZRNID6A.js +0 -2
- package/dist/chunk-W5OXRYGE.js +0 -7
- package/dist/chunk-W6STWDQI.js +0 -57
- package/dist/chunk-W7CXK74K.js +0 -2
- package/dist/chunk-WB3WYIRE.js +0 -4
- package/dist/chunk-WDNVY4E7.js +0 -20
- package/dist/chunk-WK46TNUM.js +0 -3
- package/dist/chunk-WNTFFKAX.js +0 -12
- package/dist/chunk-WOIKCX6A.js +0 -2
- package/dist/chunk-WUN6KBHV.js +0 -2
- package/dist/chunk-WYCTJDVR.js +0 -2
- package/dist/chunk-WYPL7GF7.js +0 -2
- package/dist/chunk-XDAUYDFT.js +0 -2
- package/dist/chunk-XDQMU3BT.js +0 -2
- package/dist/chunk-XFA4SSO3.js +0 -3
- package/dist/chunk-XGZEP6GR.js +0 -8
- package/dist/chunk-XPDPNWTQ.js +0 -368
- package/dist/chunk-XRYABF57.js +0 -8
- package/dist/chunk-YBGKCQIS.js +0 -2
- package/dist/chunk-YEN6CYC7.js +0 -16
- package/dist/chunk-YF5IB2LF.js +0 -2
- package/dist/chunk-YI2AWIHC.js +0 -3
- package/dist/chunk-YPWBKGFU.js +0 -2
- package/dist/chunk-YPWHBBIS.js +0 -2
- package/dist/chunk-YSH6U3L4.js +0 -3
- package/dist/chunk-YU5DZUZI.js +0 -10
- package/dist/chunk-YWO5DDRC.js +0 -16
- package/dist/chunk-Z4CDXYNQ.js +0 -2
- package/dist/chunk-ZF5KHH7C.js +0 -2
- package/dist/chunk-ZOHS7AQV.js +0 -21
- package/dist/chunk-ZTI4SBFV.js +0 -3
- package/dist/code-MI6F2TTU.js +0 -2
- package/dist/code-result-json-FXALY4HE.js +0 -2
- package/dist/command-descriptors-P34VABY5.js +0 -343
- package/dist/dataflow-4KEMJPC6.js +0 -2
- package/dist/dependence-slice-R7FPWD5M.js +0 -2
- package/dist/deps-7EMQUYUT.js +0 -2
- package/dist/direct-navigation-6YO234F2.js +0 -3
- package/dist/entry-map-KOOLR26E.js +0 -2
- package/dist/files-OPIPJIGZ.js +0 -2
- package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
- package/dist/hierarchy-QPD2CAER.js +0 -2
- package/dist/imports-M6HUXRXC.js +0 -2
- package/dist/members-I5MEFOCT.js +0 -2
- package/dist/methods-5JYGGHXA.js +0 -2
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
- package/dist/output-continuation-command-UPQAAKBP.js +0 -3
- package/dist/output-pagination-3OFL2MJV.js +0 -19
- package/dist/project-reindex-UKKQ5PLS.js +0 -3
- package/dist/queries/anchors.d.ts +0 -123
- package/dist/queries/anchors.js +0 -2
- package/dist/queries/complexity-hotspots.d.ts +0 -40
- package/dist/queries/complexity-hotspots.js +0 -2
- package/dist/queries/convergence.d.ts +0 -33
- package/dist/queries/convergence.js +0 -2
- package/dist/queries/dataflow.d.ts +0 -77
- package/dist/queries/dataflow.js +0 -2
- package/dist/queries/deep-chains.d.ts +0 -5
- package/dist/queries/deep-chains.js +0 -2
- package/dist/queries/extract-candidates.d.ts +0 -52
- package/dist/queries/extract-candidates.js +0 -2
- package/dist/queries/isolated.d.ts +0 -24
- package/dist/queries/isolated.js +0 -2
- package/dist/queries/plan-context.d.ts +0 -33
- package/dist/queries/plan-context.js +0 -2
- package/dist/queries/reference-neighborhood.d.ts +0 -4
- package/dist/queries/reference-neighborhood.js +0 -2
- package/dist/queries/reference-reachability.d.ts +0 -48
- package/dist/queries/reference-reachability.js +0 -2
- package/dist/queries/self-audit.d.ts +0 -63
- package/dist/queries/self-audit.js +0 -2
- package/dist/queries/similar-chains.d.ts +0 -48
- package/dist/queries/similar-chains.js +0 -2
- package/dist/queries/slice.d.ts +0 -4
- package/dist/queries/slice.js +0 -2
- package/dist/queries/stale-abstractions.d.ts +0 -72
- package/dist/queries/stale-abstractions.js +0 -2
- package/dist/queries/system-map.d.ts +0 -449
- package/dist/queries/system-map.js +0 -2
- package/dist/queries/trace.js +0 -2
- package/dist/queries/twin-ab.d.ts +0 -66
- package/dist/queries/twin-ab.js +0 -2
- package/dist/queries/value-flow.d.ts +0 -43
- package/dist/queries/value-flow.js +0 -2
- package/dist/queries/wrapper-candidates.d.ts +0 -34
- package/dist/queries/wrapper-candidates.js +0 -2
- package/dist/refs-PSU4JZZW.js +0 -2
- package/dist/refs-pagination-JG6CJMRC.js +0 -2
- package/dist/slice-HYRATV64.js +0 -2
- package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
- package/dist/stats-OOJ74B32.js +0 -2
- package/dist/surface-VTGDYWF5.js +0 -2
- package/dist/symbol-resolution-WD5EU5JE.js +0 -2
- package/dist/system-LRQNFOR2.js +0 -2
- package/dist/trace-F4B6OLL4.js +0 -2
- package/dist/value-flow-VRPZY72V.js +0 -2
- package/skills/concrete-plan/SKILL.md +0 -8
- package/skills/concrete-plan/agents/openai.yaml +0 -4
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import{d as y}from"./chunk-JEVRKFRL.js";import{c as T,d as N}from"./chunk-GZKFETP5.js";import{Q as D}from"./chunk-U5RIG3JP.js";import{createHash as O}from"crypto";import{existsSync as w,mkdirSync as I}from"fs";import{dirname as S,join as x}from"path";import g from"better-sqlite3";var M="evidence.db";var k=["source-facts","definition-exclusions","doc-path-tokens","react-component-behavior-profiles"],v=new Set(k),j=25e4,U=512*1024*1024,P=6e4,h=new WeakMap,H=N("evidence-content-hash",{clearGroups:["whole-project","source-file"]}),X=T("evidence-project-fingerprint",{clearGroups:["whole-project"]}),p="evidence-v1",d="version NOT LIKE 'evidence-%'",m=null;function s(){return m??=`${p}+${D()}`,m}function R(r){return O("sha256").update(r).digest("hex")}function z(r,n,e){return H.get(r,n,()=>R(e))}function Q(r){return X.get(r,"current",()=>{try{if(!r.generation.metadataRaw)return null;let n=y(r.generation.metadataRaw);if(n.kind!=="legacy"&&n.kind!=="supported"||!n.capabilities.usableForEvidenceCache)return null;let e=n.metadata,a=[...e.indexedLanguages??[]].sort();return R(JSON.stringify({fingerprint:e.fingerprint,indexedLanguages:a,status:e.status}))}catch(n){return E("project fingerprint unavailable",n),null}})}function E(r,n){process.env.SCIP_QUERY_DEBUG&&console.error(`evidence-cache: ${r}: ${n instanceof Error?n.message:String(n)}`)}function o(r){if(h.has(r))return h.get(r)??null;let n=null;try{let e=new g(r.config.evidenceDbPath??x(S(r.config.dbPath),M));e.pragma("journal_mode = WAL"),e.pragma("busy_timeout = 5000"),e.pragma("synchronous = NORMAL"),e.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS file_evidence (
|
|
3
|
+
kind TEXT NOT NULL,
|
|
4
|
+
relative_path TEXT NOT NULL,
|
|
5
|
+
content_hash TEXT NOT NULL,
|
|
6
|
+
version TEXT NOT NULL,
|
|
7
|
+
payload TEXT NOT NULL,
|
|
8
|
+
PRIMARY KEY (kind, relative_path)
|
|
9
|
+
);
|
|
10
|
+
CREATE TABLE IF NOT EXISTS project_evidence (
|
|
11
|
+
kind TEXT NOT NULL,
|
|
12
|
+
cache_key TEXT NOT NULL,
|
|
13
|
+
project_fingerprint TEXT NOT NULL,
|
|
14
|
+
version TEXT NOT NULL,
|
|
15
|
+
payload TEXT NOT NULL,
|
|
16
|
+
PRIMARY KEY (kind, cache_key)
|
|
17
|
+
);
|
|
18
|
+
CREATE TABLE IF NOT EXISTS semantic_callees (
|
|
19
|
+
relative_path TEXT NOT NULL,
|
|
20
|
+
symbol TEXT NOT NULL,
|
|
21
|
+
content_hash TEXT NOT NULL,
|
|
22
|
+
deps_digest TEXT NOT NULL,
|
|
23
|
+
version TEXT NOT NULL,
|
|
24
|
+
payload TEXT NOT NULL,
|
|
25
|
+
PRIMARY KEY (relative_path, symbol)
|
|
26
|
+
);
|
|
27
|
+
CREATE TABLE IF NOT EXISTS semantic_references (
|
|
28
|
+
relative_path TEXT NOT NULL,
|
|
29
|
+
symbol TEXT NOT NULL,
|
|
30
|
+
project_fingerprint TEXT NOT NULL,
|
|
31
|
+
version TEXT NOT NULL,
|
|
32
|
+
payload TEXT NOT NULL,
|
|
33
|
+
PRIMARY KEY (relative_path, symbol)
|
|
34
|
+
);
|
|
35
|
+
`);for(let a of["file_evidence","project_evidence"])e.prepare(`DELETE FROM ${a} WHERE version LIKE 'evidence-%' AND version != ?`).run(s());n={evidence:e,shared:K(r.config.sharedEvidenceDbPath),readFileEvidence:e.prepare("SELECT payload FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),readLegacyFileEvidence:e.prepare(`SELECT payload FROM file_evidence
|
|
36
|
+
WHERE kind = ? AND relative_path = ? AND content_hash = ? AND ${d}
|
|
37
|
+
ORDER BY version DESC
|
|
38
|
+
LIMIT 1`),existsFileEvidence:e.prepare("SELECT 1 AS present FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),existsLegacyFileEvidence:e.prepare(`SELECT 1 AS present FROM file_evidence
|
|
39
|
+
WHERE kind = ? AND relative_path = ? AND content_hash = ? AND ${d}
|
|
40
|
+
LIMIT 1`),writeFileEvidence:e.prepare("INSERT OR REPLACE INTO file_evidence (kind, relative_path, content_hash, version, payload) VALUES (?, ?, ?, ?, ?)"),rekeyFileEvidence:e.prepare("UPDATE file_evidence SET content_hash = ?, version = ? WHERE kind = ? AND relative_path = ? AND content_hash = ?"),readProjectEvidence:e.prepare("SELECT payload FROM project_evidence WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND version = ?"),readLegacyProjectEvidence:e.prepare(`SELECT payload FROM project_evidence
|
|
41
|
+
WHERE kind = ? AND cache_key = ? AND project_fingerprint = ? AND ${d}
|
|
42
|
+
ORDER BY version DESC
|
|
43
|
+
LIMIT 1`),writeProjectEvidence:e.prepare("INSERT OR REPLACE INTO project_evidence (kind, cache_key, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)"),rekeyProjectEvidenceKind:e.prepare("UPDATE project_evidence SET project_fingerprint = ?, version = ? WHERE kind = ? AND project_fingerprint = ?"),readCallees:e.prepare(`SELECT payload FROM semantic_callees
|
|
44
|
+
WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCallees:e.prepare(`SELECT payload FROM semantic_callees
|
|
45
|
+
WHERE relative_path = ? AND symbol = ? AND content_hash = ? AND deps_digest = ? AND ${d}
|
|
46
|
+
ORDER BY version DESC
|
|
47
|
+
LIMIT 1`),readCalleesForFile:e.prepare(`SELECT symbol, payload FROM semantic_callees
|
|
48
|
+
WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND version = ?`),readLegacyCalleesForFile:e.prepare(`SELECT symbol, payload FROM semantic_callees
|
|
49
|
+
WHERE relative_path = ? AND content_hash = ? AND deps_digest = ? AND ${d}
|
|
50
|
+
ORDER BY symbol, version DESC`),writeCallees:e.prepare(`INSERT OR REPLACE INTO semantic_callees
|
|
51
|
+
(relative_path, symbol, content_hash, deps_digest, version, payload) VALUES (?, ?, ?, ?, ?, ?)`),dropStaleCallees:e.prepare("DELETE FROM semantic_callees WHERE relative_path = ? AND content_hash != ?"),readReferences:e.prepare(`SELECT payload FROM semantic_references
|
|
52
|
+
WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferences:e.prepare(`SELECT payload FROM semantic_references
|
|
53
|
+
WHERE relative_path = ? AND symbol = ? AND project_fingerprint = ? AND ${d}
|
|
54
|
+
ORDER BY version DESC
|
|
55
|
+
LIMIT 1`),readReferencesForFile:e.prepare(`SELECT symbol, payload FROM semantic_references
|
|
56
|
+
WHERE relative_path = ? AND project_fingerprint = ? AND version = ?`),readLegacyReferencesForFile:e.prepare(`SELECT symbol, payload FROM semantic_references
|
|
57
|
+
WHERE relative_path = ? AND project_fingerprint = ? AND ${d}
|
|
58
|
+
ORDER BY symbol, version DESC`),writeReferences:e.prepare(`INSERT OR REPLACE INTO semantic_references
|
|
59
|
+
(relative_path, symbol, project_fingerprint, version, payload) VALUES (?, ?, ?, ?, ?)`),dropStaleReferences:e.prepare("DELETE FROM semantic_references WHERE relative_path = ? AND project_fingerprint != ?")}}catch(e){E("disabled (open failed)",e)}return h.set(r,n),n}function l(r,n,e){E(`disabled (${n})`,e),h.set(r,null)}function K(r){if(!r)return null;try{I(S(r),{recursive:!0});let n=new g(r);return n.pragma("journal_mode = WAL"),n.pragma("busy_timeout = 250"),n.pragma("synchronous = NORMAL"),n.exec(`
|
|
60
|
+
CREATE TABLE IF NOT EXISTS file_evidence (
|
|
61
|
+
kind TEXT NOT NULL,
|
|
62
|
+
relative_path TEXT NOT NULL,
|
|
63
|
+
content_hash TEXT NOT NULL,
|
|
64
|
+
version TEXT NOT NULL,
|
|
65
|
+
payload TEXT NOT NULL,
|
|
66
|
+
last_accessed_at INTEGER NOT NULL,
|
|
67
|
+
PRIMARY KEY (kind, relative_path, content_hash, version)
|
|
68
|
+
);
|
|
69
|
+
CREATE INDEX IF NOT EXISTS idx_file_evidence_lru
|
|
70
|
+
ON file_evidence(last_accessed_at, kind, relative_path, content_hash, version);
|
|
71
|
+
`),{evidence:n,readFileEvidence:n.prepare("SELECT payload FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),existsFileEvidence:n.prepare("SELECT 1 AS present FROM file_evidence WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?"),writeFileEvidence:n.prepare(`INSERT INTO file_evidence (kind, relative_path, content_hash, version, payload, last_accessed_at)
|
|
72
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
73
|
+
ON CONFLICT(kind, relative_path, content_hash, version)
|
|
74
|
+
DO UPDATE SET payload = excluded.payload, last_accessed_at = excluded.last_accessed_at`),touchFileEvidence:n.prepare(`UPDATE file_evidence
|
|
75
|
+
SET last_accessed_at = ?
|
|
76
|
+
WHERE kind = ? AND relative_path = ? AND content_hash = ? AND version = ?
|
|
77
|
+
AND last_accessed_at < ?`)}}catch(n){return E("shared cache disabled (open failed)",n),null}}function f(r,n,e){E(`shared cache disabled (${n})`,e);try{r.shared?.evidence.close()}catch{}r.shared=null}function q(r,n={}){if(!w(r))return null;let e;try{e=new g(r),e.pragma("busy_timeout = 50"),e.exec(`CREATE INDEX IF NOT EXISTS idx_file_evidence_lru
|
|
78
|
+
ON file_evidence(last_accessed_at, kind, relative_path, content_hash, version)`),e.pragma("wal_checkpoint(TRUNCATE)");let a=e.prepare("SELECT COUNT(*) AS count FROM file_evidence").get().count,t=n.maxRows??j,i=n.budgetBytes??U,c=Number(e.pragma("page_size",{simple:!0})),A=Number(e.pragma("page_count",{simple:!0})),F=Number(e.pragma("freelist_count",{simple:!0})),_=Math.max(0,A-F)*c,b=a>0&&_>i?Math.min(a,Math.ceil((_-i)/Math.max(1,_/a))):0,u=Math.max(a-t,b);return u>0&&(e.prepare(`DELETE FROM file_evidence WHERE rowid IN (
|
|
79
|
+
SELECT rowid FROM file_evidence ORDER BY last_accessed_at ASC, rowid ASC LIMIT ?
|
|
80
|
+
)`).run(u),e.pragma("wal_checkpoint(TRUNCATE)")),{deletedRows:u,remainingRows:a-u}}catch(a){return E("shared cache maintenance skipped",a),null}finally{try{e?.close()}catch{}}}function Z(r,n,e,a){let t=o(r);if(!t)return null;try{let i=t.readFileEvidence.get(n,e,a,s())??t.readLegacyFileEvidence.get(n,e,a);if(i?.payload!==void 0)return i.payload;if(!v.has(n)||!t.shared)return null;try{let c=t.shared.readFileEvidence.get(n,e,a,s());return c?.payload!==void 0&&L(t.shared,n,e,a),c?.payload??null}catch(c){return f(t,"file_evidence read",c),null}}catch(i){return l(r,"file_evidence read",i),null}}function ee(r,n,e,a){let t=o(r);if(!t)return!1;try{if((t.existsFileEvidence.get(n,e,a,s())??t.existsLegacyFileEvidence.get(n,e,a))?.present!==void 0)return!0;if(!v.has(n)||!t.shared)return!1;try{return t.shared.existsFileEvidence.get(n,e,a,s())?.present===void 0?!1:(L(t.shared,n,e,a),!0)}catch(c){return f(t,"file_evidence exists",c),!1}}catch(i){return l(r,"file_evidence exists",i),!1}}function L(r,n,e,a){let t=Date.now();try{r.touchFileEvidence.run(t,n,e,a,s(),t-P)}catch(i){E("shared file_evidence recency touch skipped",i)}}function ne(r,n,e,a,t){let i=o(r);if(i)try{if(i.writeFileEvidence.run(n,e,a,s(),t),v.has(n)&&i.shared)try{i.shared.writeFileEvidence.run(n,e,a,s(),t,Date.now())}catch(c){f(i,"file_evidence write",c)}}catch(c){l(r,"file_evidence write",c)}}function te(r,n){if(n.length===0)return;let e=o(r);if(e)try{e.evidence.transaction(()=>{for(let t of n)e.writeFileEvidence.run(t.kind,t.relativePath,t.contentHash,s(),t.payload)})();try{e.evidence.pragma("wal_checkpoint(TRUNCATE)")}catch{}let a=n.filter(t=>v.has(t.kind));if(a.length>0&&e.shared)try{e.shared.evidence.transaction(()=>{for(let t of a)e.shared.writeFileEvidence.run(t.kind,t.relativePath,t.contentHash,s(),t.payload,Date.now())})()}catch(t){f(e,"file_evidence batch write",t)}}catch(a){l(r,"file_evidence batch write",a)}}function re(r,n,e,a){let t=o(r);if(!t)return null;try{return(t.readProjectEvidence.get(n,e,a,s())??t.readLegacyProjectEvidence.get(n,e,a))?.payload??null}catch(i){return l(r,"project_evidence read",i),null}}function ae(r,n,e,a,t){let i=o(r);if(i)try{i.writeProjectEvidence.run(n,e,a,s(),t)}catch(c){l(r,"project_evidence write",c)}}function ie(r,n,e,a){if(e===a)return 0;let t=o(r);if(!t)return 0;try{return t.rekeyProjectEvidenceKind.run(a,s(),n,e).changes}catch(i){return l(r,"project_evidence kind rekey",i),0}}function ce(r,n,e,a){let t=o(r);if(!t)return new Map;try{let i=t.readCalleesForFile.all(n,e,a,p),c=t.readLegacyCalleesForFile.all(n,e,a);return C([...c,...i])}catch(i){return l(r,"semantic_callees bulk read",i),new Map}}function se(r,n,e){let a=o(r);if(!a)return new Map;try{let t=a.readReferencesForFile.all(n,e,p),i=a.readLegacyReferencesForFile.all(n,e);return C([...i,...t])}catch(t){return l(r,"semantic_references bulk read",t),new Map}}function C(r){let n=new Map;for(let e of r)n.set(e.symbol,e.payload);return n}function oe(r,n){if(n.length===0)return;let e=o(r);if(e)try{e.evidence.transaction(()=>{let a=new Set;for(let t of n){let i=`${t.relativePath}\0${t.contentHash}`;a.has(i)||(a.add(i),e.dropStaleCallees.run(t.relativePath,t.contentHash)),e.writeCallees.run(t.relativePath,t.symbol,t.contentHash,t.depsDigest,p,t.payload)}})()}catch(a){l(r,"semantic_callees write",a)}}function le(r,n){if(n.length===0)return;let e=o(r);if(e)try{e.evidence.transaction(()=>{let a=new Set;for(let t of n){let i=`${t.relativePath}\0${t.projectFingerprint}`;a.has(i)||(a.add(i),e.dropStaleReferences.run(t.relativePath,t.projectFingerprint)),e.writeReferences.run(t.relativePath,t.symbol,t.projectFingerprint,p,t.payload)}})()}catch(a){l(r,"semantic_references write",a)}}export{M as a,s as b,R as c,z as d,Q as e,q as f,Z as g,ee as h,ne as i,te as j,re as k,ae as l,ie as m,ce as n,se as o,oe as p,le as q};
|
|
81
|
+
//# sourceMappingURL=chunk-X6RMKHJQ.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{c as o}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{c as o}from"./chunk-B56T42J3.js";import{_ as n}from"./chunk-OZCJXZK6.js";async function i(t){if(typeof t!="string"||t.length===0)throw new Error("Output continuation requires a cursor.");await o(t,n)}var u={id:"continue",command:"continue <cursor>",hidden:!0,description:"Continue an immutable output snapshot",renderShape:"custom",handler:i};export{u as a};
|
|
3
|
+
//# sourceMappingURL=chunk-XHMN6ZX7.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as x,b as R,c as L}from"./chunk-TNNQFH7W.js";import{d as C}from"./chunk-2KNN7GTQ.js";import{$ as g}from"./chunk-FVULPZDF.js";function B(n,e={}){return v(n,e).results}function v(n,e={}){let{minComponentLines:o=300,minFileLines:i=800,minJsxTokens:l=80,minBehaviorTokens:r=40,limit:s=20,scope:a,scanLimit:c,filePattern:p}=e,d=x(n),f=new R;return{results:g(n).reactProfiles({scope:a,scanLimit:c}).filter(t=>t.kind==="component").filter(t=>!p||t.file.includes(p)||t.name.includes(p)).map(t=>k(t,{minComponentLines:o,minFileLines:i,minJsxTokens:l,minBehaviorTokens:r})).filter(t=>t!==null).filter(t=>{let u=d.roleOf(t.file);return u==="test"?(f.record("test-files",L.testFiles),!1):u==="ui-kit"?(f.record("ui-kit-files",L.uiKitFiles),!1):!0}).sort((t,u)=>u.componentLines-t.componentLines||u.fileLines-t.fileLines||t.file.localeCompare(u.file)).slice(0,s),exclusions:f.list()}}function k(n,e){let o=Math.max(1,Math.floor(e.minComponentLines/2)),i=C(n,T({minComponentLines:e.minComponentLines,minFileLines:e.minFileLines,minJsxTokens:e.minJsxTokens,minBehaviorTokens:e.minBehaviorTokens,substantialComponentLines:o}),"component"),{reasons:l}=i;if(l.length===0)return null;let r=i.dominantPressure,s=i.pressureKinds,a=h(n),c=S(r,s,a);return{file:n.file,component:n.name,componentLines:n.loc,fileLines:n.fileLines,jsxTokens:n.jsxTokens.size,behaviorTokens:n.behaviorTokens.size,dominantPressure:r,pressureKinds:s,contextKind:a,recommendationKind:c,recommendation:w(c,a),reasons:l,loc:n.loc}}function T(n){return[{axis:"component",value:e=>e.loc,qualifies:(e,o)=>o>=n.minComponentLines,reason:(e,o)=>`${o} component line(s)`},{axis:"file",value:e=>e.fileLines,qualifies:(e,o)=>o>=n.minFileLines&&e.loc>=n.substantialComponentLines,reason:(e,o)=>`${o} file line(s)`},{axis:"jsx-structure",value:e=>e.jsxTokens.size,weightedValue:(e,o)=>o*3,qualifies:(e,o)=>o>=n.minJsxTokens&&e.loc>=n.substantialComponentLines,reason:(e,o)=>`${o} JSX structure token(s)`},{axis:"hook-behavior",value:e=>e.behaviorTokens.size,weightedValue:(e,o)=>o*4,qualifies:(e,o)=>o>=n.minBehaviorTokens&&e.loc>=n.substantialComponentLines,reason:(e,o)=>`${o} behavior token(s)`}]}function h(n){let e=n.file.split(/[\\/]+/).filter(Boolean),o=e.slice(0,-1).map(m=>m.toLowerCase()),i=(e.at(-1)??n.name).replace(/\.[^.]+$/,""),r=o.findIndex(m=>_.has(m))>=0,s=o.some(m=>O.has(m));if(b(i)||b(n.name))return"component";let c=E.has(i.toLowerCase()),p=/(?:Page|Route|Screen)$/.test(n.name),d=r&&/View$/.test(n.name),f=F(s,i,n.name);return c||p||d||f?"route-page":"component"}function b(n){let e=n.split(/[^A-Za-z0-9]+/).filter(Boolean).map(o=>o.toLowerCase());return e.at(-1)&&P.has(e.at(-1))?!0:[...P].some(o=>n.endsWith(A(o)))}function S(n,e,o){return n==="hook-behavior"?"behavior-extraction":o==="route-page"?"route-page-decomposition":e.includes("hook-behavior")?"behavior-extraction":e.includes("jsx-structure")?"jsx-decomposition":e.includes("file")?"file-decomposition":n==="jsx-structure"?"jsx-decomposition":n==="file"&&!e.includes("component")?"file-decomposition":"component-decomposition"}function w(n,e){switch(n){case"behavior-extraction":return"Extract independent state, effects, requests, or handlers into hooks, controllers, or feature modules.";case"route-page-decomposition":return"Split route/page orchestration from reusable panels and feature controllers.";case"jsx-decomposition":return e==="route-page"?"Split page JSX into named layout sections before extracting behavior.":"Split repeated JSX sections into named presentational components.";case"file-decomposition":return"Review file-level decomposition; split colocated panels or helpers before changing behavior.";case"component-decomposition":return"Review component boundaries around props, state ownership, and independently changing UI sections."}}var O=new Set(["component","components","panel","panels","partial","partials"]),P=new Set(["banner","button","card","dialog","drawer","filter","form","grid","header","item","list","menu","modal","nav","panel","picker","rail","row","section","selector","shell","sidebar","table","toolbar"]),_=new Set(["landing","page","pages","route","routes","screen","screens","view","views"]),E=new Set(["page","route","screen"]);function A(n){return n.charAt(0).toUpperCase()+n.slice(1)}function F(n,e,o){return!n&&e.replace(/[^A-Za-z0-9]+/g,"").toLowerCase()===o.replace(/[^A-Za-z0-9]+/g,"").toLowerCase()&&/(?:Page|Route|Screen|View)$/.test(e)}export{B as a,v as b};
|
|
2
|
+
//# sourceMappingURL=chunk-XHTVFLWW.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as l}from"./chunk-QIWXRW72.js";import{w as s}from"./chunk-TKD34PHN.js";import{o}from"./chunk-U5RIG3JP.js";function P(e,r){return l(e).filter(t=>f({pattern:r,relativePath:t})).filter(t=>s(e.config.projectRoot,t)).map(t=>({relativePath:t}))}function f(e,r){let t=typeof e=="string"?{pattern:e,relativePath:r}:e;if(typeof t.pattern!="string"||typeof t.relativePath!="string")throw new TypeError("pathMatchesGlob requires pattern and relativePath.");let i=o(t.pattern),a=o(t.relativePath);if(!/[*?]/.test(i))return a.includes(i);let c=i.includes("/")?i:`**/${i}`;return n(c.split("/"),a.split("/"))}function n(e,r){if(e.length===0)return r.length===0;let[t,...i]=e;return t==="**"?n(i,r)||r.length>0&&n(e,r.slice(1)):r.length===0||!p(t??"",r[0]??"")?!1:n(i,r.slice(1))}function p(e,r){let t="^";for(let i of e)i==="*"?t+="[^/]*":i==="?"?t+="[^/]":t+=h(i);return t+="$",new RegExp(t).test(r)}function h(e){return/[\\^$.*+?()[\]{}|]/.test(e)?`\\${e}`:e}export{P as a,f as b};
|
|
2
|
+
//# sourceMappingURL=chunk-XKIDJCIK.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as S,d as w}from"./chunk-4IGEOBG7.js";import{a as E}from"./chunk-RBS42E55.js";import{E as I}from"./chunk-BIQEF5NE.js";import{a as R}from"./chunk-H75GSPRV.js";import{a as g,b as h}from"./chunk-HRRFKWPZ.js";import{k as F}from"./chunk-TKD34PHN.js";import{i as P}from"./chunk-62BDNPMI.js";import{existsSync as j,statSync as z}from"fs";import{join as Z}from"path";import{existsSync as W,lstatSync as V,readdirSync as L}from"fs";import{createHash as D}from"crypto";import{isAbsolute as U,join as d,relative as G,resolve as k,sep as $}from"path";function b(e){let t=0,r=0,i=0,n=0,o=0,s=[];for(let p of e)switch(p.state){case"legacy":t+=1;break;case"current":r+=1;break;case"unsupported-older":i+=1,s.push(y(p));break;case"unsupported-future":n+=1,s.push(y(p));break;case"malformed":o+=1,s.push(y(p));break}let u=t+r,a=i+n+o;return{complete:a===0,total:e.length,accepted:u,legacy:t,current:r,unsupportedOlder:i,unsupportedFuture:n,malformed:o,omitted:a,issues:s}}function y(e){if(e.state==="legacy"||e.state==="current")throw new Error(`accepted record ${e.path} cannot become a compatibility issue`);return{path:e.path,state:e.state,reason:e.reason??e.state}}var x=d(".scipquery","suppressions"),O="scip-query-suppression",_=1,l=2;function M(e){return d(e,x)}function T(e){let t=C(e);return/^[A-Za-z0-9_-]{1,120}$/.test(t)&&!/^(ID-|CON$|PRN$|AUX$|NUL$|COM[1-9]$|LPT[1-9]$)/i.test(t)?`${t}.json`:`ID-${D("sha256").update(t).digest("hex")}.json`}function C(e){if(e.id&&e.id.trim()!=="")return e.id.trim();let t=`${e.check??""}\0${e.file??""}`;return`CHECK-${D("sha256").update(t).digest("hex").slice(0,12).toUpperCase()}`}function q(e,t){let r=k(e),i=G(r,k(t));if(U(i)||i===".."||i.startsWith(`..${$}`))throw new Error("Suppression path must remain inside the project.");let n=r;for(let o of i.split($))if(n=d(n,o),V(n,{throwIfNoEntry:!1})?.isSymbolicLink())throw new Error(`Symbolic links are not allowed in suppression storage: ${n}`)}function H(e,t){if(!g(e))return{state:"malformed",error:"not a suppression object"};let r=B(e);if(typeof r!="number")return r;let i=J(e.decision,r);if(i)return{state:"malformed",error:i};let n=K(e);if("error"in n)return n;if(r===0)return{state:"legacy",suppression:n,record:e,schemaVersion:0};let o=Y(e,n,t);return o?{state:"malformed",error:o}:{state:r===l?"current":"legacy",suppression:n,record:e,schemaVersion:r}}function B(e){let t=e.schemaVersion;return t===void 0?["kind","suppressionIdentity","writer"].some(r=>e[r]!==void 0)?{state:"malformed",error:"suppression envelope metadata requires schemaVersion"}:0:typeof t!="number"||!Number.isSafeInteger(t)?{state:"malformed",error:"schemaVersion must be a positive safe integer"}:t!==_&&t!==l?{state:t>l?"unsupported-future":"unsupported-older",error:`unsupported schemaVersion ${String(t)}`}:e.kind!==void 0&&e.kind!==O?{state:"malformed",error:`kind must be ${O}`}:t}function J(e,t){return t===_&&e!==void 0?"schemaVersion 1 cannot carry automated adjudication metadata":t===l&&!S(e)?"schemaVersion 2 requires a valid automated adjudication decision":t===0&&e!==void 0&&!S(e)?"invalid automated adjudication decision":null}function K(e){if(typeof e.reason!="string"||e.reason.trim()==="")return{state:"malformed",error:"missing reason"};let t=X(e);return!t.id?.trim()&&!t.check?.trim()?{state:"malformed",error:"needs an id or a check"}:t}function Y(e,t,r){return e.suppressionIdentity!==C(t)||r!==void 0&&e.suppressionIdentity!==r&&T(t).slice(0,-5)!==r?"suppressionIdentity does not match the suppression target or filename":Q(e.writer)?h(e.createdAt)?e.updatedAt!==void 0&&!h(e.updatedAt)?"invalid updatedAt timestamp":null:"missing valid createdAt timestamp":"missing valid writer metadata"}function Q(e){return g(e)&&e.tool==="scip-query"&&typeof e.version=="string"&&e.version.trim()!==""}function v(e){let t=M(e);if(q(e,t),!W(t))return{suppressions:[],compatibility:b([]),warnings:[]};let r=new Map,i=new Set,n=[];for(let s of A(t,n)){let u=d(t,s),a=`${x}/${s}`,p;try{p=JSON.parse(P(u,"suppression record"))}catch{n.push({path:a,state:"malformed",reason:"malformed JSON"});continue}let c=H(p,s.slice(0,-5));if("error"in c){n.push({path:a,state:c.state,reason:c.error});continue}let f=C(c.suppression),m=r.get(f);m&&JSON.stringify(m.suppression)!==JSON.stringify(c.suppression)?(i.add(f),n.push({path:a,state:"malformed",reason:`conflicting suppression identity also in ${m.path}`})):(n.push({path:a,state:c.state}),r.set(f,{suppression:c.suppression,path:a}))}let o=b(n);return{suppressions:[...r].filter(([s])=>!i.has(s)).map(([,s])=>s.suppression),compatibility:o,warnings:o.issues.map(s=>`${s.path}: ${s.reason} \u2014 ignored`)}}function A(e,t,r=""){let i=[];for(let n of L(d(e,r),{withFileTypes:!0}).sort((o,s)=>o.name.localeCompare(s.name))){let o=r?`${r}/${n.name}`:n.name;n.isSymbolicLink()?t.push({path:`${x}/${o}`,state:"malformed",reason:"symbolic suppression storage entry"}):n.isDirectory()?i.push(...A(e,t,o)):n.isFile()&&o.endsWith(".json")&&i.push(o)}return i}function X(e){return{...typeof e.id=="string"?{id:e.id}:{},...typeof e.check=="string"?{check:e.check}:{},...typeof e.file=="string"?{file:e.file}:{},reason:e.reason,...typeof e.expiresAt=="string"?{expiresAt:e.expiresAt}:{},...typeof e.createdAt=="string"?{createdAt:e.createdAt}:{},...e.decision?{decision:e.decision}:{}}}function ee(){return process.env.SCIP_QUERY_PROJECT_ROOT??process.cwd()}var N;function te(e=ee(),t=void 0){if(t===void 0&&N?.projectRoot===e)return N;let r=w(e),i=F(e,r),n=process.env.SCIP_QUERY_INDEX_DB;if(n)return{projectRoot:e,config:r,paths:i,dbPath:n,dbPathSource:"env",gitContext:t};if(j(i.dbPath))return{projectRoot:e,config:r,paths:i,dbPath:i.dbPath,dbPathSource:"configured",gitContext:t};let o=Z(e,"index.db");return{projectRoot:e,config:r,paths:i,dbPath:o,dbPathSource:"root-fallback",rootFallbackWarning:re(o,i.dbPath),gitContext:t}}function Pe(e,t={}){let{config:r,paths:i,dbPath:n,dbPathSource:o,rootFallbackWarning:s,gitContext:u}=te(e);if(!j(n))throw new Error("No index.db found. Run: scip-query reindex");t.warnOnRootFallback&&o==="root-fallback"&&s&&console.error(s);let a=v(e).suppressions,p={dbPath:n,indexPath:process.env.SCIP_QUERY_INDEX_SCIP??i.indexPath,projectRoot:e,collaborationDomainId:r.collaborationDomainId,sharedEvidenceDbPath:I(e,r,u),entryRoots:r.entryRoots,semantic:r.semantic,suppressions:[...r.suppressions??[],...a],declaredCouplings:r.declaredCouplings,locality:r.locality,architecture:r.architecture,coverageContracts:r.coverageContracts,docs:r.docs},c=R(e);return new E(p,c)}function re(e,t){let r="unknown time";try{r=z(e).mtime.toISOString()}catch{}return`warning: using legacy project-root index.db (${e}, modified ${r}) because the configured index was not found at ${t}. This fallback may be stale; run 'scip-query reindex' to refresh the configured index.`}export{Pe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-XTYTYZPT.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as T}from"./chunk-NEIWRNAZ.js";import{g as f,h as p}from"./chunk-D254DNNQ.js";import{a as S}from"./chunk-GUUBXNN7.js";import{b as L}from"./chunk-BOJ5SVE2.js";import{b as R}from"./chunk-6LSEIIF7.js";import{a as C}from"./chunk-BGBBVSH4.js";import{a as y}from"./chunk-36SGVCGX.js";import{y as E}from"./chunk-4WTUBQ36.js";import{b}from"./chunk-FMRN2TRL.js";import{d as m,x as h}from"./chunk-5D2LVK7O.js";import{c as u,g}from"./chunk-7WTPQ4NX.js";var D=/^(?:validate|verify|check|assert)(?:[A-Z].*)?$/,x=/^(?:is|has)(?:[A-Z].*)?$/,N=/[{,]\s*(?:ok|success|valid|isValid)\s*:\s*false\b/,d=/\breturn\b/g,I=/\bfunction\b|=>|\)\s*(?::\s*[^{;=]+)?\s*\{/,A=/\.(?:addIssue|push)\s*\(/;function ne(e,t={}){let{scope:n,limit:r=30,scanLimit:o}=t,l=new R(e),s=L(l.productionCallableDefinitions({scope:n,minLoc:1,requireFunctionLikeSymbol:!0,excludeTypesFiles:!0}),o),a=[];for(let i of s){let c=k(e,i);c&&a.push({symbol:i.symbol,shortName:m(i.symbol),file:i.relativePath,startLine:i.startLine,endLine:i.endLine,loc:C(i),...c})}return a.sort((i,c)=>i.file.localeCompare(c.file)||i.startLine-c.startLine||i.loc-c.loc),r?a.slice(0,r):a}function _(e){return D.test(e)?"imperative":x.test(e)?"predicate":null}function k(e,t){let n=_(t.leaf);if(!n||S(e,t))return null;let r=f(e,t);if(!U(r))return null;let o=g(e,t.relativePath)?.callables.find(s=>s.startLine===t.startLine&&s.endLine===t.endLine);if(n==="predicate"&&o?.paramCount===0)return null;if(T(r)){let s=j(e,t);return!s||v(s.body,s.snippet)?null:{nameKind:n,resolvedVia:"one-hop-delegate",delegateTarget:s.shortName}}let l=p(r);return v(l,r)?null:{nameKind:n,resolvedVia:"direct"}}var w=new Set(["if","for","while","switch","catch","function"]);function F(e){let t=u(e);for(let n of t.matchAll(/\b([A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*)\s*\(/g))if(!w.has(n[1]))return!0;return!1}function P(e){let t=e.indexOf("=>");return t===-1?!1:!/^\s*\{/.test(e.slice(t+2))}function K(e,t){let n=u(e);return/\bthrow\b/.test(n)||/\.reject\s*\(/.test(n)||N.test(n)||A.test(n)?!0:O(n,t)}function O(e,t){let n=$(e);if(t&&n.length===0){let r=e.trim();return r!==""&&r!=="true"}for(let r of n)if(r!==""&&r!=="true")return!0;return!1}var V=new Set(["(","[","{"]),B=new Set([")","]","}"]);function H(e,t){let n=0,r=e.length;for(let o=t;o<e.length;o+=1){let l=e[o];if(V.has(l))n+=1;else if(B.has(l)){if(n===0){r=o;break}n-=1}else if(l===";"&&n===0){r=o;break}}return r}function $(e){let t=[];d.lastIndex=0;let n;for(;n=d.exec(e);){let r=n.index+n[0].length,o=H(e,r);t.push(e.slice(r,o).trim()),d.lastIndex=o}return t}function j(e,t){let n=E(e,t,{callableOnly:!0,limit:3,semanticEvidence:y}),r=[...new Set(n.map(i=>i.symbol))].filter(i=>i!==t.symbol);if(r.length!==1)return null;let l=b(e,r[0]).match;if(!l)return null;let s=h(e,l.relativePath).find(i=>i.symbolId===l.symbolId);if(!s)return null;let a=f(e,s);return a?{body:p(a),snippet:a,shortName:m(s.symbol)}:null}function v(e,t){return K(e,P(t))||F(e)}function U(e){return!!e&&I.test(e)}export{ne as a};
|
|
2
|
+
//# sourceMappingURL=chunk-Y2JHHTTA.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{c as Se}from"./chunk-E3FDPXZK.js";import{g as K}from"./chunk-7WTPQ4NX.js";import{F as H,G as w,H as be,O as E}from"./chunk-FVULPZDF.js";import{a as ye,d as T}from"./chunk-A2IIGFMJ.js";import{Ea as pe}from"./chunk-5TNQJUR2.js";var ke=12,Ye=20,re=200,ie=800,$e=.9,je=64,Ue=pe("behavior-construct-ranges"),Ne={if_statement:"branch",conditional_expression:"branch",ternary_expression:"branch",switch_statement:"branch",switch_expression:"branch",switch_case:"branch",case_statement:"branch",match_statement:"branch",match_expression:"branch",match_arm:"branch",for_statement:"loop",for_in_statement:"loop",for_of_statement:"loop",while_statement:"loop",do_statement:"loop",await_expression:"await",return_statement:"return",throw_statement:"throw",raise_statement:"throw",assignment_expression:"mutation",augmented_assignment_expression:"mutation",assignment:"mutation",pair:"shape",field_initializer:"shape",spread_element:"spread",dictionary_splat:"spread",catch_clause:"catch",except_clause:"catch",finally_clause:"finally"},Q=["anchor","signature","binding","branch","loop","call","await","return","throw","mutation","shape","spread","catch","finally"],_e=[...Q,"lifecycle"],ve=["loop","await","throw","mutation","spread","catch","finally","lifecycle"],qe=new Set(["onBeforeMount","onBeforeUnmount","onMounted","onUnmounted","useEffect","useInsertionEffect","useLayoutEffect"]);var xe=new Set(["object","object_pattern","dictionary","field_declaration_list","struct_expression","struct_pattern"]);function Mt(e,n,t,o,r=[],i={}){let a=E(e,n);if(!a)return null;let c=T(e,n),{callable:d,rangeStart:l,rangeEnd:u,root:f}=He(e,n,t,o,r,a.rootNode);if(!f)return null;let S=Re(f,c,l,u,r);if(!S||S.lines.length===0||S.lines.some(F=>F.text.length>ie))return null;let g=yt(c,l,u),y=bt(S);if(ze(g,y,i.requireSavings))return null;let C=Q.filter(F=>S.lines.some(p=>p.signals.includes(F)));return{...d?{callable:{name:d.name,startLine:d.startLine,endLine:d.endLine}}:{},representation:"outline",constructKind:S.constructKind,signature:S.signature,lines:S.lines,signals:C,testCases:Se(n)==="test"?Lt(c,l,u):[],coverage:{sourceStatements:S.sourceStatements,representedStatements:S.sourceStatements,copiedStatements:S.copiedStatements,omittedStatements:0},rawCharacters:g,outlineCharacters:y,candidateLines:S.sourceStatements,omittedLines:0}}function ze(e,n,t){return(t??!0)&&n>=e*$e}function He(e,n,t,o,r,i){let a=Z(e,n,t,o,r),c=te(e,n,a.startLine,a.endLine),d=c?.startLine??t,l=c?.endLine??o,u=(c?U(i,a.startLine,a.endLine):null)??H(i,d,l);return{callable:c,rangeStart:d,rangeEnd:l,root:u}}function kt(e,n,t,o,r){if(r.length===0)return[];let i=E(e,n);if(!i)return[];let a=T(e,n),c=Z(e,n,t,o,r),d=te(e,n,c.startLine,c.endLine),l=d?.startLine??t,u=d?.endLine??o,f=(d?U(i.rootNode,c.startLine,c.endLine):null)??H(i.rootNode,l,u);if(!f)return[];let S=Re(f,a,l,u,r);return S?S.lines.filter(g=>g.text.length<=ie&&g.signals.some(y=>["branch","loop","catch","finally"].includes(y))&&r.some(y=>y>=g.line&&y<=g.endLine)):[]}function Yt(e,n,t,o,r={}){let i=E(e,n);if(!i)return null;let a=be(i.rootNode,t,o,w,r);if(!a)return null;let c=[],d=se(a),l=[];return ce(a,a,u=>{if(I.has(u.type)||Je.has(u.type)){Ze(c,l,u);return}if(ee.has(u.type)){et(c,l,u);return}if($.has(u.type)){tt(c,l,u);return}j.has(u.type)&&rt(c,u)}),{facts:ct(c),terminals:Be(d),unsupported:l}}function Z(e,n,t,o,r=[]){let i=r.filter(u=>u>=t&&u<=o),a=Ue.get(e,n,ye(e,n)??"",()=>new Map),c=`${t}:${o}:${i.join(",")}`,d=a.get(c);if(d)return a.delete(c),a.set(c,d),{startLine:d[0],endLine:d[1]};let l=Ge(e,n,t,o,i);if(a.set(c,[l.startLine,l.endLine]),a.size>je){let u=a.keys().next().value;u!==void 0&&a.delete(u)}return l}function Ke(e,n,t,o,r){let i=[],a=o[0],c=a;for(let l of o)a=Math.min(a,l),c=Math.max(c,l);return Pe(e,a,c,l=>{lt(l)&&l.startPosition.row>=n&&l.endPosition.row<=t&&o.every(u=>l.startPosition.row<=u&&l.endPosition.row>=u)&&i.push(l),w.has(l.type)&&l.startPosition.row>=n&&l.endPosition.row<=t&&o.every(u=>l.startPosition.row<=u&&l.endPosition.row>=u)&&r.push(l)}),i.sort((l,u)=>l.endPosition.row-l.startPosition.row-(u.endPosition.row-u.startPosition.row)||l.startPosition.row-u.startPosition.row)[0]}function Ge(e,n,t,o,r){let i=E(e,n),a=[];if(r.length>0&&i){let u=Ke(i.rootNode,t,o,r,a);if(u)return{startLine:u.startPosition.row,endLine:u.endPosition.row}}let c=te(e,n,t,o);if(c)return{startLine:c.startLine,endLine:c.endLine};if(r.length===0)return{startLine:t,endLine:o};let d=(K(e,n)?.callables??[]).filter(u=>u.startLine>=t&&u.endLine<=o&&r.every(f=>u.startLine<=f&&u.endLine>=f)).sort((u,f)=>u.endLine-u.startLine-(f.endLine-f.startLine)||u.startLine-f.startLine)[0];if(!i)return Ce(d,t,o);let l=a.sort((u,f)=>u.endPosition.row-u.startPosition.row-(f.endPosition.row-f.startPosition.row)||u.startPosition.row-f.startPosition.row)[0];return l?{startLine:l.startPosition.row,endLine:l.endPosition.row}:Ce(d,t,o)}function $t(e,n,t,o,r={}){if(o-t+1<(r.minimumBodyLines??Ye))return null;let a=Fe(e,n,t,o,[],!1);if(!a)return null;let c=a.candidates.map(y=>({...y,signals:y.signals.filter(C=>C!=="anchor"&&C!=="signature")})).filter(y=>y.signals.length>0);if(c.length===0)return null;let d=vt(c),l=c.filter(y=>y.text.length<=re);if(l.length===0)return null;let u=ve.filter(y=>(d[y]??0)>0);if(!We(u,d,a.shapes))return null;let f=xt(l,d),S=Ve(f,u),g=Xe(S,r.maxLines);return g.size>=c.length&&a.shapes.length===0?null:{owner:a.callable?.name??null,startLine:t,endLine:o,lines:[...g.values()].sort((y,C)=>y.line-C.line),shapes:a.shapes,signalCounts:d,candidateLines:c.length,omittedLines:c.length-g.size}}function We(e,n,t){let o=e.filter(i=>i!=="await"),r=t.reduce((i,a)=>i+a.fields.length,0);return!(o.length===0&&!((n.await??0)>0&&r>0)&&r<3)}function Ve(e,n){let t=new Map;for(let o of n){let r=e.find(i=>i.signals.includes(o));r&&t.set(r.line,r)}if(t.size===0){let o=e.find(r=>r.signals.includes("branch"));o&&t.set(o.line,o)}return t}function Xe(e,n){let t=Math.min(10,Math.max(1,n??e.size)),o=new Map;for(let r of e.values()){if(o.size>=t)break;o.set(r.line,r)}return o}function jt(e,n,t,o){let r=Fe(e,n,t,o,[],!1);return r?new Map(r.candidates.map(i=>[i.line,i.signals.filter(a=>a!=="lifecycle")])):new Map}var x=new Set(["block","body","compound_statement","declaration_list","statement_block"]),I=new Set(["if_expression","if_statement","unless","unless_statement"]),Je=new Set(["conditional_expression","ternary_expression"]),ee=new Set(["do_statement","enhanced_for_statement","for_expression","for_in_statement","for_of_statement","for_statement","loop_expression","while_statement"]),$=new Set(["match_expression","match_statement","switch_expression","switch_statement"]),Le=new Set(["case_statement","match_arm","switch_case","switch_default"]),j=new Set(["try_expression","try_statement"]),W=new Set(["catch_clause","except_clause","rescue"]),k=new Set(["ensure","finally_clause"]),M=new Set(["else","else_clause"]),we=new Set(["raise_statement","return_statement","throw_statement"]),Qe=new Set(["block_comment","comment","line_comment"]);function Ze(e,n,t){let o=t.childForFieldName("condition")??ue(t),r=t.childForFieldName("consequence")??t.childForFieldName("body")??t.namedChildren.find(d=>x.has(d.type)),i=t.childForFieldName("alternative")??t.namedChildren.find(d=>M.has(d.type));if(!o||!r){n.push(le(t,"conditional-fields-unresolved"));return}let a=R(o,"predicate",o.text),c=R(r,ge(r),"consequence");if(B(e,a,c,"predicate-consequence",{branchRole:"consequence"}),V(e,a,r,"consequence"),i){let d=R(i,ge(i),"alternative");B(e,a,d,"predicate-alternative",{branchRole:"alternative"}),V(e,a,i,"alternative");return}B(e,a,ae(a,"otherwise continue"),"predicate-fallthrough",{branchRole:"fallthrough"})}function et(e,n,t){let o=t.childForFieldName("body")??t.namedChildren.find(a=>x.has(a.type));if(!o){n.push(le(t,"loop-body-unresolved"));return}let r=t.childForFieldName("condition"),i=R(r??t,"predicate",r?.text??L(t,o));B(e,i,R(o,"outcome","iteration"),"loop-iteration",{branchRole:"iteration"}),V(e,i,o,"iteration"),B(e,i,ae(i,"loop exits"),"loop-exit",{branchRole:"exit"})}function tt(e,n,t){let o=t.childForFieldName("body")??t.namedChildren.find(d=>x.has(d.type)),r=t.childForFieldName("value")??t.childForFieldName("condition")??t.childForFieldName("subject")??ue(t),i=it(o??t);if(!r||i.length===0){n.push(le(t,"switch-cases-unresolved"));return}let a=R(r,"predicate",r.text),c=!1;for(let d of i){let l=nt(e,a,d);c||=l}c||B(e,a,ae(a,"no case matched"),"predicate-fallthrough",{branchRole:"fallthrough"})}function nt(e,n,t){let o=st(t),r=L(t,t.namedChildren.find(i=>X(i)));return B(e,n,R(t,"outcome",r||(o?"default":"case")),o?"predicate-default":"predicate-case",{branchRole:o?"default":"case"}),V(e,n,t,o?"default":"case"),o}function rt(e,n){let t=R(n,"scope","try");for(let o of at(n)){let r=k.has(o.type),i=R(o,"handler",r?"finally":L(o,G(o)));B(e,t,i,r?"finally-cleanup":"exception-handler",{branchRole:r?"finally":"catch"}),ot(e,i,o,r?"finally":"catch")}}function ot(e,n,t,o){for(let r of se(t)){let i=r.label.startsWith("throw")||r.label.startsWith("raise")?"throw":"return";B(e,n,r,i==="throw"?"handler-throw":"handler-return",{branchRole:o,terminalKind:i})}}function V(e,n,t,o){for(let r of se(t)){let i=r.label.startsWith("throw")||r.label.startsWith("raise")?"throw":"return";B(e,n,r,i==="throw"?"predicate-throw":"predicate-return",{branchRole:o,terminalKind:i})}}function B(e,n,t,o,r){e.push({controller:n,outcome:t,subtype:o,attributes:r})}function R(e,n,t){return{kind:n,label:Y(t).slice(0,ie),startLine:e.startPosition.row,endLine:e.endPosition.row,startColumn:e.startPosition.column,endColumn:e.endPosition.column,implicit:!1}}function ae(e,n){return{...e,kind:"outcome",label:n,implicit:!0}}function ge(e){return we.has(e.type)?"terminal":"outcome"}function se(e){let n=[];return ce(e,e,t=>{we.has(t.type)&&n.push(R(t,"terminal",t.text))}),Be(n)}function ce(e,n,t){t(n);for(let o of n.namedChildren)o!==e&&w.has(o.type)||ce(e,o,t)}function it(e){let n=[],t=o=>{for(let r of o.namedChildren)$.has(r.type)||(Le.has(r.type)?n.push(r):t(r))};return t(e),n}function at(e){let n=[],t=o=>{for(let r of o.namedChildren)j.has(r.type)||(W.has(r.type)||k.has(r.type)?n.push(r):w.has(r.type)||t(r))};return t(e),n}function st(e){let n=L(e,e.namedChildren.find(t=>X(t))).trim();return e.type==="switch_default"||/^(?:default\b|_\s*=>)/u.test(n)}function le(e,n){return{startLine:e.startPosition.row,endLine:e.endPosition.row,reason:n}}function ct(e){let n=new Map;for(let t of e)n.set(`${oe(t.controller)}\0${oe(t.outcome)}\0${t.subtype}`,t);return[...n.values()]}function Be(e){let n=new Map;for(let t of e)n.set(oe(t),t);return[...n.values()]}function oe(e){return`${e.startLine}:${e.startColumn??""}:${e.endLine}:${e.endColumn??""}:${e.kind}:${e.label}`}function lt(e){return w.has(e.type)||ee.has(e.type)||$.has(e.type)||j.has(e.type)||W.has(e.type)||k.has(e.type)}function Re(e,n,t,o,r){let a=U(e,t,o)??e,c=G(a),d=[],l=0,u=0,f=(s,m,h,b,N=!1,O=!0)=>{let z=N?h.trim():Y(h);if(!z)return;let A=Math.max(t,s.startPosition.row),me=Math.min(o,s.endPosition.row);d.push({line:A,endLine:Math.max(A,me),depth:m,signals:Q.filter(fe=>b.includes(fe)||fe==="anchor"&&r.some(he=>he>=A&&he<=me)),text:z,copied:N}),O&&(l+=1,N&&(u+=1))},S=(s,m)=>{for(let h of s.namedChildren)_(h,m)},g=(s,m)=>{if(I.has(s.type)){y(s,m,"else if");return}if(M.has(s.type)){let h=s.namedChildren.find(N=>I.has(N.type));if(h){y(h,m,"else if");return}f(s,m,"else",["branch"],!1,!1);let b=G(s)??s.namedChildren.find(N=>x.has(N.type));if(b)_(b,m+1);else for(let N of s.namedChildren)_(N,m+1);return}f(s,m,"else",["branch"],!1,!1),_(s,m+1)},y=(s,m,h=s.type.startsWith("unless")?"unless":"if")=>{let b=s.childForFieldName("condition")??ue(s),N=s.childForFieldName("consequence")??s.childForFieldName("body")??s.namedChildren.find(A=>x.has(A.type)),O=s.childForFieldName("alternative")??s.namedChildren.find(A=>M.has(A.type)),z=b?b.text:L(s,N);f(s,m,`${h} ${ht(z)}`,D(b,["branch"])),N&&_(N,m+1),O&&g(O,m)},C=(s,m)=>{let h=s.childForFieldName("body")??s.namedChildren.find(b=>x.has(b.type));f(s,m,L(s,h),D(s,["loop"])),h&&_(h,m+1)},F=(s,m)=>{let h=s.childForFieldName("body")??s.namedChildren.find(b=>x.has(b.type));f(s,m,L(s,h),D(s,["branch"])),h&&_(h,m+1)},p=(s,m)=>{let h=s.namedChildren.find(b=>X(b));f(s,m,L(s,h),["branch"],!1,!1);for(let b of s.namedChildren)(b===h||X(b))&&_(b,m+1)},v=(s,m)=>{f(s,m,"try",[],!1);for(let h of s.namedChildren)x.has(h.type)?_(h,m+1):(W.has(h.type)||k.has(h.type))&&_(h,m)},P=(s,m,h)=>{let b=s.childForFieldName("body")??s.namedChildren.find(O=>x.has(O.type)),N=h==="finally"?"finally":L(s,b);f(s,m,N,[h],!1,!1),b&&_(b,m+1)},Ie=(s,m)=>{let h=G(s);f(s,m,L(s,h),D(s,["binding"])),h&&_(h,m+1)},Me=(s,m)=>I.has(s.type)?(y(s,m),!0):ee.has(s.type)?(C(s,m),!0):$.has(s.type)?(F(s,m),!0):Le.has(s.type)?(p(s,m),!0):j.has(s.type)?(v(s,m),!0):W.has(s.type)?(P(s,m,"catch"),!0):k.has(s.type)?(P(s,m,"finally"),!0):!1,_=(s,m)=>{if(s.startPosition.row>o||s.endPosition.row<t||Qe.has(s.type)||s.type==="empty_statement")return;if(x.has(s.type)){S(s,m);return}if(Me(s,m))return;if(M.has(s.type)){g(s,m);return}if(w.has(s.type)){Ie(s,m);return}let b=!Ee(s)||pt(s);f(s,m,s.text,D(s),b)};return _(c&&c!==a?c:a,0),l===0?null:{constructKind:ft(a),signature:dt(a,c,n,t),lines:d,sourceStatements:l,copiedStatements:u}}function U(e,n,t){let o=e.namedChildren.filter(r=>r.startPosition.row<=n&&r.endPosition.row>=t);for(let r of o.sort(ut)){let i=U(r,n,t);if(i)return i}return w.has(e.type)&&e.startPosition.row<=n&&e.endPosition.row>=t?e:null}function ut(e,n){return e.endPosition.row-e.startPosition.row-(n.endPosition.row-n.startPosition.row)||e.startPosition.row-n.startPosition.row}function G(e){return e.childForFieldName("body")??e.childForFieldName("consequence")??e.namedChildren.find(n=>x.has(n.type))??null}function dt(e,n,t,o){let r=L(e,n);return r||(t[o]??e.text).trim()}var mt=new Set(["arrow_function","function_expression","lambda"]);function ft(e){return e.type.includes("constructor")?"constructor":e.type.includes("method")||e.type==="method"?ne(e,new Set(["class_body","class_declaration","class_definition"]))?"class method":"object method":mt.has(e.type)?ne(e,new Set(["object","pair"]))?"object member":"function value":e.type.includes("function")?ne(e,w)?"nested function":"module function":"source construct"}function ne(e,n){let t=e.parent;for(;t;){if(n.has(t.type))return!0;t=t.parent}return!1}function ue(e){return e.namedChildren.find(n=>!x.has(n.type)&&!M.has(n.type))??null}function L(e,n){if(!n)return Y(e.text);let t=Math.max(0,n.startIndex-e.startIndex);return Y(e.text.slice(0,t)).replace(/[:{]\s*$/u,"").trim()}function ht(e){let n=Y(e);return n.startsWith("(")&&n.endsWith(")")?n.slice(1,-1).trim():n}function Y(e){return e.trim().replace(/\r?\n[\t ]*/gu," ")}function D(e,n=[]){let t=new Set(n);return e&&q(e,o=>{let r=Ne[o.type];r&&t.add(r),o.type==="call_expression"&&(t.add("call"),Ae(o)&&t.add("shape")),de.has(o.type)&&t.add("binding")}),Q.filter(o=>t.has(o))}function pt(e){let n=!1;return q(e,t=>{n||!t.text.includes(`
|
|
2
|
+
`)||/(?:string|template|heredoc|raw_string)/u.test(t.type)&&(n=!0)}),n}function X(e){return x.has(e.type)||I.has(e.type)||ee.has(e.type)||$.has(e.type)||j.has(e.type)||w.has(e.type)||Ee(e)}function Ee(e){return/(?:statement|declaration|expression|assignment|return|throw|raise|break|continue|yield|with_item)$/u.test(e.type)||de.has(e.type)}function yt(e,n,t){let o=0;for(let r=n;r<=t;r+=1)o+=(e[r]?.length??0)+10;return o}function bt(e){return e.constructKind.length+e.signature.length+80+e.lines.reduce((n,t)=>n+t.text.length+t.depth*2+10,0)}function Fe(e,n,t,o,r,i){let a=St(e,n,t,o,i);if(!a)return null;let{callable:c,rangeStart:d,rangeEnd:l,root:u,sourceLines:f}=a,S=new Map,g=new Map,y=new Map,C=(p,v)=>{if(p<d||p>l)return;let P=S.get(p)??new Set;P.add(v),S.set(p,P)};c&&C(c.startLine,"signature");for(let p of r)C(p,"anchor");q(u,p=>{let v=Ne[p.type];v&&C(p.startPosition.row,v),v==="shape"&&Ct(g,p,u,d,l),p.type==="call_expression"&&wt(p,C,y),de.has(p.type)&&C(p.startPosition.row,"binding")}),gt(e,n,d,l,C);let F=[...S.entries()].sort(([p],[v])=>p-v).map(([p,v])=>({line:p,signals:_e.filter(P=>v.has(P)),text:y.get(p)??J(f[p]??"")})).filter(p=>p.text.length>0||p.signals.includes("anchor"));return{...c?{callable:c}:{},rangeStart:d,rangeEnd:l,sourceLines:f,candidates:F,shapes:[...g.values()].sort((p,v)=>p.startLine-v.startLine)}}function St(e,n,t,o,r){let i=E(e,n);if(!i)return null;let a=T(e,n),c=te(e,n,t,o),d=r?c?.startLine??t:t,l=r?c?.endLine??o:o,f=(c?.startLine===d&&c.endLine===l?U(i.rootNode,d,l):null)??H(i.rootNode,d,l);return f?{callable:c,rangeStart:d,rangeEnd:l,root:f,sourceLines:a}:null}function gt(e,n,t,o,r){let i=K(e,n);for(let a of i?.callSites??[])a.line<t||a.line>o||(r(a.line,"call"),a.calleeLeaf==="catch"&&r(a.line,"catch"))}function Ct(e,n,t,o,r){if(n.startPosition.row<o||n.endPosition.row>r)return;let i=n.childForFieldName("key")??n.childForFieldName("name")??n.namedChild(0),a=J(i?.text??"");!a||a.includes(`
|
|
3
|
+
`)||a.length>60||Nt(e,n,t,o,r,a)}function Nt(e,n,t,o,r,i){let a=_t(n,t);if(a.startPosition.row<o||a.endPosition.row>r)return;let c=`${a.startPosition.row}:${a.endPosition.row}`,d=e.get(c)??{startLine:a.startPosition.row,endLine:a.endPosition.row,fields:[]};d.fields.some(l=>l.name===i&&l.line===n.startPosition.row)||d.fields.push({name:i,line:n.startPosition.row}),e.set(c,d)}function _t(e,n){let t=e.parent;for(;t&&t!==n.parent;){if(xe.has(t.type))return t;if(t===n)break;t=t.parent}return e.parent??e}function te(e,n,t,o){return K(e,n)?.callables.filter(r=>r.startLine<=t&&r.endLine>=o).sort((r,i)=>r.endLine-r.startLine-(i.endLine-i.startLine)||r.startLine-i.startLine)[0]}function q(e,n){n(e);for(let t of e.namedChildren)q(t,n)}function Pe(e,n,t,o){o(e);for(let r of e.namedChildren)r.startPosition.row>n||r.endPosition.row<t||Pe(r,n,t,o)}function J(e){return e.trim().replace(/\s+/gu," ")}function Ae(e){if(e.type!=="call_expression")return!1;let n=e.childForFieldName("arguments")??e.namedChildren.find(o=>o.type==="arguments"||o.type==="argument_list");if(!n)return!1;let t=!1;return q(n,o=>{xe.has(o.type)&&(t=!0)}),t}function vt(e){let n={};for(let t of _e){let o=e.filter(r=>r.signals.includes(t)).length;o>0&&(n[t]=o)}return n}function xt(e,n){let t=new Map;for(let i of e){let a=i.signals.join(",");t.set(a,(t.get(a)??0)+1)}let o=new Set(ve),r=i=>{let a=t.get(i.signals.join(","))??1,c=Math.min(...i.signals.map(u=>n[u]??1)),d=i.signals.some(u=>o.has(u))?3:1,l=Math.max(0,i.signals.length-1)*1e3;return d*(1e3/a+1e3/c)+l};return[...e].sort((i,a)=>r(a)-r(i)||a.line-i.line)}var de=new Set(["lexical_declaration","variable_declarator","const_item","static_item","let_declaration","assignment"]);function Lt(e,n,t){let o=[],r=/\b(?:describe|it|test)(?:\.(?:only|skip|todo))?\s*\(\s*(['"`])([^'"`]+)\1/u;for(let i=n;i<=t;i+=1){let a=r.exec(e[i]??"")?.[2];if(!(!a||o.includes(a))&&(o.push(a),o.length>=ke))break}return o}function wt(e,n,t){let r=(e.childForFieldName("function")??e.namedChild(0))?.text.split(".").at(-1);if(Ae(e)){n(e.startPosition.row,"shape");let i=J(e.text);i.length<=re&&t.set(e.startPosition.row,i)}if(r&&qe.has(r)){n(e.startPosition.row,"lifecycle");let i=J(e.text);i.length<=re&&t.set(e.startPosition.row,i)}}function Ce(e,n,t){return e?{startLine:e.startLine,endLine:e.endLine}:{startLine:n,endLine:t}}var Bt=new Set(["arrow_function","class_declaration","constructor_declaration","field_definition","function_declaration","function_definition","function_expression","function_item","generator_function_declaration","generator_function","lexical_declaration","method","method_declaration","method_definition","object_method","variable_declaration"]);function Rt(e,n,t){let o=E(e,n)?.rootNode??null,r=Et(o,t);if(!r)return null;let i=T(e,n);if(i.length===0)return null;let a=Math.max(0,r.startPosition.row),c=r.endPosition.column===0?r.endPosition.row-1:r.endPosition.row;return{type:r.type,startLine:a,endLine:Math.min(i.length-1,Math.max(a,c))}}function Kt(e,n,t,o,r){let i=Z(e,n,o,r,[t]),a=Ft(e,n,i);if(!a&&(i.startLine>o||i.endLine<r))return i;let c=Rt(e,n,t);return a&&c?{startLine:c.startLine,endLine:c.endLine}:c&&c.startLine>=o&&c.endLine<=r?{startLine:c.startLine,endLine:c.endLine}:{startLine:o,endLine:r}}function Et(e,n){if(!e||!De(e,n))return null;let t=Oe(e,n);for(;t;){if(Bt.has(t.type))return t;t=t.parent}return null}function Oe(e,n){let t=e.namedChildren.filter(o=>De(o,n)).sort((o,r)=>Te(o)-Te(r));return t.length>0?Oe(t[0],n):e}function De(e,n){return e.startPosition.row<=n&&e.endPosition.row>=n}function Te(e){return e.endIndex-e.startIndex}function Ft(e,n,t){return t.startLine===t.endLine&&/(?:=>|\(|\{|\[|,)\s*$/u.test(T(e,n)[t.startLine]??"")}export{Mt as a,kt as b,Yt as c,Z as d,$t as e,jt as f,Rt as g,Kt as h};
|
|
4
|
+
//# sourceMappingURL=chunk-YGVRMGYN.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as j,b as R}from"./chunk-PH52RA7D.js";import{m as D}from"./chunk-T6DK3ZP7.js";import{Da as S,f as k,ka as h,na as x,oa as E,pa as L,ra as m,ta as I}from"./chunk-5TNQJUR2.js";import{createHash as H}from"crypto";import{isUtf8 as w}from"buffer";import{TextDecoder as X}from"util";var O=new X("utf-8",{fatal:!0}),V=S("repository-text-indexed-documents",{clearGroups:[]}),W=S("repository-text-indexed-fingerprints",{clearGroups:[]});function $(e){return I(e.config.projectRoot)}function oe(e,t){let o=k(t),s;try{s=x(e.config.projectRoot,o,{inputKind:"repository text file"})}catch(a){if(R(o),m(a)||a instanceof h)return null;throw a}j(o,s.toString("utf8"));let r=Q(s);return r===null?(w(s)||R(o),null):P(o,s,r,U(e),M(e))}function ae(e,t,o){let s=$(e).filter(n=>!t.scope||n.includes(t.scope)),r=U(e),a=M(e),l=[],B=[],F=[],p=0,g=0,y={aligned:0,stale:0,unavailable:0},u=q(t.literalBytes),T=u.length>0?Buffer.allocUnsafe(1024*1024):void 0,N=(n,c,i)=>{p+=c,g+=1;let f=b(n,i,r,a);y[f.state]+=1},C=(n,c)=>{let i=u.length===1?E(e.config.projectRoot,n,u[0],{inputKind:"repository text file",computeSha256:c,scratchBuffer:T}):L(e.config.projectRoot,n,u,{inputKind:"repository text file",computeSha256:c,scratchBuffer:T});if(!i.isUtf8Text)return l.push(n),null;let f=i.sha256;N(n,i.byteLength,f);let d="matchedLiteralIndexes"in i?i.matchedLiteralIndexes:i.includesLiteral?[0]:[];return d.length===0||!i.bytes?null:{bytes:i.bytes,knownSha256:f,matchedLiteralIndexes:d}},K=n=>{try{return u.length>0?C(n,a.has(n)):{bytes:x(e.config.projectRoot,n,{inputKind:"repository text file"}),knownSha256:void 0,matchedLiteralIndexes:[]}}catch(c){return c instanceof h?(F.push(n),null):(m(c)||B.push(n),null)}};for(let n of s){let c=K(n);if(!c)continue;let{bytes:i,matchedLiteralIndexes:f}=c,d=c.knownSha256;if(u.length===0&&!_(i)){l.push(n);continue}if(u.length===0){p+=i.byteLength,g+=1,d=a.has(n)?A(i):void 0;let G=b(n,d,r,a);y[G.state]+=1}if(t.includeBytes&&!t.includeBytes(n,i))continue;let z=O.decode(i);o(P(n,i,z,r,a,d),f)}return{candidateFiles:s.length,scannedTextFiles:g,semanticFiles:y,scannedBytes:p,skippedBinaryPaths:l,skippedUnreadablePaths:B,skippedOversizedPaths:F}}function q(e){return e?Buffer.isBuffer(e)?[e]:[...e]:[]}function P(e,t,o,s,r,a){let l=a??A(t);return{relativePath:e,text:o,bytes:t.byteLength,freshness:{exactText:{state:"current",basis:"working-tree-read",sha256:l},semantic:b(e,l,s,r)}}}function b(e,t,o,s){if(!s.has(e))return{state:"unavailable",basis:"no-compiler-document"};let r=o.get(e);return!r||!t?{state:"unavailable",basis:"fingerprint-unavailable"}:{state:r===t?"aligned":"stale",basis:"indexed-input-fingerprint"}}function M(e){return V.get(e,()=>new Set(e.all(`SELECT documents.relative_path FROM documents WHERE 1 = 1 ${e.pathExclusionsFor("documents")}`).map(t=>t.relative_path)))}function U(e){return W.get(e,()=>J(e.generation.metadataRaw))}function J(e){let t=new Map;if(!e)return t;let o=D(e);if(o.kind!=="legacy"&&o.kind!=="supported")return t;let s=o.metadata.fingerprint;if(!v(s)||!Array.isArray(s.files))return t;for(let r of s.files)!v(r)||typeof r.path!="string"||typeof r.hash!="string"||t.set(r.path,r.hash);return t}function Q(e){return _(e)?O.decode(e):null}function _(e){return!e.includes(0)&&w(e)}function A(e){return H("sha256").update(e).digest("hex")}function v(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}export{$ as a,oe as b,ae as c,U as d};
|
|
2
|
+
//# sourceMappingURL=chunk-YNQCGEQE.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import{a as L}from"./chunk-O2C4UILI.js";import{a as C,b as F}from"./chunk-WXU3DGPU.js";import{a as T}from"./chunk-H75GSPRV.js";import{d as I}from"./chunk-YULZRALL.js";import{u as V}from"./chunk-TKD34PHN.js";import{a as v,b as h,h as m}from"./chunk-62BDNPMI.js";import he from"better-sqlite3";import{existsSync as ln}from"fs";import{dirname as gn,join as fn,resolve as be}from"path";import G from"better-sqlite3";import{execFileSync as U}from"child_process";import{existsSync as K,readdirSync as B}from"fs";import{extname as R,join as J}from"path";function Me(e={}){return{id:"auxiliary-documents",facts:["auxiliary-document"],run:n=>X({projectRoot:n.projectRoot,dbPath:n.dbPath,extensions:e.extensions,onStatus:n.onStatus})}}function X(e){let n=new Set((e.extensions??C).map(i=>i.toLowerCase()));if(n.size===0)return{scanned:0,inserted:0,existing:0};if(!K(e.dbPath))throw new Error(`SCIP SQLite database not found at ${e.dbPath}`);let r=T(e.projectRoot),t=z(e.projectRoot,n).filter(i=>!r.isIgnored(i)),o=new G(e.dbPath);try{let i=Y(o,t),s=o.prepare(`INSERT OR IGNORE INTO documents (language, relative_path, position_encoding, text)
|
|
2
|
+
VALUES (?, ?, NULL, ?)`),u=o.transaction(g=>{let d=0;for(let l of g){if(i.has(l))continue;let p=V(e.projectRoot,l,{inputKind:"auxiliary source file"}),W=s.run(Q(l),l,p);d+=Number(W.changes)}return d})(t),c={scanned:t.length,inserted:u,existing:t.length-u};return e.onStatus?.(`Augmented SQLite documents with ${u} auxiliary source file${u===1?"":"s"} (${c.existing} already present).`),c}finally{o.close()}}function z(e,n){let r=q(e,n);if(r)return r;let t=[],o=i=>{let s=i?J(e,i):e,a;try{a=B(s,{withFileTypes:!0})}catch{return}for(let u of a){if(F.has(u.name))continue;let c=i?`${i}/${u.name}`:u.name;if(u.isDirectory()){o(c);continue}n.has(R(u.name).toLowerCase())&&t.push(c)}};return o(""),t.sort()}function q(e,n){try{return U("git",["-C",e,"ls-files","-z","-co","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:26214400,stdio:["ignore","pipe","ignore"],timeout:3e4,killSignal:"SIGKILL"}).split("\0").filter(t=>t&&n.has(R(t).toLowerCase())).sort()}catch{return null}}function Y(e,n){let r=new Set,t=500;for(let o=0;o<n.length;o+=t){let i=n.slice(o,o+t),s=e.prepare(`SELECT relative_path FROM documents WHERE relative_path IN (${i.map(()=>"?").join(",")})`).all(...i);for(let a of s)r.add(a.relative_path)}return r}function Q(e){return R(e).toLowerCase()===".vue"?"vue":R(e).replace(/^\./,"").toLowerCase()||"source"}import{writeFileSync as $e}from"fs";function He(e,n){let r=performance.now(),t=e.run(n);return{stageId:e.id,facts:e.facts,durationMs:performance.now()-r,result:t}}async function We(e,n){let r=performance.now(),t=await e.run(n);return{stageId:e.id,facts:e.facts,durationMs:performance.now()-r,result:t}}function Z(){return{"missing-source-file":0,"missing-service-script":0,"no-definition":0,"same-file-definition":0,"unindexed-definition":0}}function S(){return{skippedReferences:0,skippedReferenceReasons:Z(),skippedReferenceSamples:[]}}function E(e,n){e.skippedReferences+=n.skippedReferences;for(let r of Object.keys(e.skippedReferenceReasons)){e.skippedReferenceReasons[r]+=n.skippedReferenceReasons[r];for(let t of n.skippedReferenceSamples.filter(o=>o.reason===r))e.skippedReferenceSamples.filter(i=>i.reason===r&&i.sourceFile===t.sourceFile).length<2&&e.skippedReferenceSamples.push(t)}}import{relative as ee}from"path";function b(e,n,r){let t=ne(e);return o=>{if(!o.name)return null;let i=r.get(o.fileName);if(!i)return null;let s=r.positionAt(i,o.textSpan.start),a=r.positionAt(i,o.textSpan.start+o.textSpan.length),u=i.text.split(`
|
|
3
|
+
`),c=(t.get(ee(n,o.fileName).replaceAll("\\","/"))??[]).filter(d=>{if(d.name!==o.name)return!1;let l=L([d.startLine,d.startChar,d.endLine,d.endChar],d.encoding,u);return l?(s.line>l.startLine||s.line===l.startLine&&s.character>=l.startColumn)&&(a.line<l.endLine||a.line===l.endLine&&a.character<=l.endColumn):!1}),g=new Set(c.map(d=>d.symbolId));return g.size===1?[...g][0]:null}}function ne(e){let n=e.prepare(`
|
|
4
|
+
SELECT d.relative_path AS relativePath, d.position_encoding AS encoding,
|
|
5
|
+
der.start_line AS startLine, der.start_char AS startChar,
|
|
6
|
+
der.end_line AS endLine, der.end_char AS endChar,
|
|
7
|
+
der.symbol_id AS symbolId, gs.display_name AS displayName, gs.symbol AS symbol
|
|
8
|
+
FROM defn_enclosing_ranges der
|
|
9
|
+
JOIN documents d ON d.id = der.document_id
|
|
10
|
+
JOIN global_symbols gs ON gs.id = der.symbol_id
|
|
11
|
+
ORDER BY d.relative_path, der.start_line, der.start_char, der.symbol_id
|
|
12
|
+
`).all(),r=new Map;for(let t of n){let o=t.displayName??I(t.symbol),i=r.get(t.relativePath)??[];i.push({...t,name:o}),r.set(t.relativePath,i)}return r}import{createRequire as te}from"module";import{existsSync as re}from"fs";import{dirname as A,extname as oe,join as P,relative as ie,resolve as Qe}from"path";import{pathToFileURL as se}from"url";function O(e,n){let{vueCore:r,ts:t,volarTs:o}=ae(e),{parsed:i,vueOptions:s}=ue(r,t,n),a=A(n),u=r.createVueLanguagePlugin(t,i.options,s,p=>p),c=ce(r,t,u),g=le(a,i),{languageServiceHost:d}=o.createLanguageServiceHost(t,t.sys,c,p=>p,g),l=t.createLanguageService(d);return{ts:t,language:c,languageService:l,fileNames:i.fileNames,configDir:a}}function ae(e){let n=te(se(P(e,"package.json")).href);return{vueCore:y(n,"@vue/language-core",e),ts:y(n,"typescript",e),volarTs:y(n,"@volar/typescript",e)}}function ue(e,n,r){let t=n.readConfigFile(r,n.sys.readFile);if(t.error||!t.config)throw new Error(`Failed to read ${r}`);let i=e.createParsedCommandLine(n,n.sys,r).vueOptions;return typeof e.createGlobalTypesWriter=="function"&&(i.globalTypesPath=e.createGlobalTypesWriter(i,n.sys.writeFile)),{parsed:n.parseJsonConfigFileContent(t.config,n.sys,A(r),void 0,r,void 0,e.getAllExtensions(i).map(s=>({extension:s.slice(1),isMixedContent:!0,scriptKind:n.ScriptKind.Deferred}))),vueOptions:i}}function ce(e,n,r){let t={},o=e.createLanguage([r],new Map,i=>{if(!re(i))return;let s=m(i,{maxBytes:h,inputKind:"Vue language-service source file"});t.current?.scripts.set(i,n.ScriptSnapshot.fromString(s),r.getLanguageId(i)??ge(i))});return t.current=o,o}function le(e,n){return{getCurrentDirectory:()=>e,getCompilationSettings:()=>n.options,getScriptFileNames:()=>n.fileNames,getProjectReferences:()=>n.projectReferences,getProjectVersion:()=>"0"}}function y(e,n,r){try{return e(n)}catch(t){throw(typeof t=="object"&&t!==null&&"code"in t?t.code:null)==="MODULE_NOT_FOUND"?new Error(`Vue augmentation requires ${n} to be installed in ${r}. Install Vue/Volar dependencies for that project, then rerun augment-vue.`,{cause:t}):t}}function w(e,n){let r=pe(n),t=e.prepare("SELECT id FROM global_symbols WHERE symbol = ?"),o=new Map;return{get(i){if(o.has(i))return o.get(i)??null;let s=me(t,r,n,i);return o.set(i,s),s}}}function D(e,n,r,t,o){if(e.fileName.endsWith(".vue")){let i=t.language.scripts.get(e.fileName),s=i?.generated?.languagePlugin.typescript?.getServiceScript(i.generated.root)?.code;if(i&&s){let a=t.language.maps.get(s,i);if(x(a,e.textSpan.start)!==null)return r.get(e.fileName)}return e.fileName.startsWith(o)?r.get(e.fileName):null}return n(e)}function*N(e){let n=/\b[A-Za-z_$][A-Za-z0-9_$]*\b/g,r=new Set(["script","setup","template","style","lang","scoped","true","false","null","undefined","const","let","var","import","from","export","return","if","else","for","while","function","class","type","interface","as","await","async"]),t;for(;t=n.exec(e);){let o=t[0];r.has(o)||(yield{text:o,start:t.index,end:t.index+o.length})}}function M(e,n){for(let[r]of e.toGeneratedLocation(n,t=>!!t.navigation))return r;return null}function x(e,n){let r=e;for(let[t]of r.toSourceLocation(n,o=>!!o.navigation))return t;return null}function de(e,n){let r=0,t=e.lineStarts.length-1;for(;r<=t;){let i=Math.floor((r+t)/2);e.lineStarts[i]<=n?r=i+1:t=i-1}let o=Math.max(0,t);return{line:o,character:n-e.lineStarts[o]}}function _(e,n){return f(e,n).startsWith("node_modules/")}function f(e,n){return ie(e,n).replaceAll("\\","/")}function ge(e){switch(oe(e)){case".vue":return"vue";case".tsx":return"typescriptreact";case".jsx":return"javascriptreact";case".js":case".mjs":case".cjs":return"javascript";case".json":return"json";default:return"typescript"}}function j(){let e=new Map;return{get(n){if(e.has(n))return e.get(n)??null;try{let r=m(n,{maxBytes:h,inputKind:"Vue source file"}),t={text:r,lineStarts:fe(r)};return e.set(n,t),t}catch{return e.set(n,null),null}},positionAt:de}}function fe(e){let n=[0];for(let r=0;r<e.length;r++)e.charCodeAt(r)===10&&n.push(r+1);return n}function pe(e){try{let n=JSON.parse(m(P(e,"package.json"),{maxBytes:v,inputKind:"project package manifest"}));return{name:n.name??"workspace",version:n.version??"0.0.0"}}catch{return{name:"workspace",version:"0.0.0"}}}function me(e,n,r,t){let o=f(r,t),i=Re(n.name,n.version,o);return e.get(i)?.id??null}function Re(e,n,r){let t=r.split("/").map(o=>`\`${o.replaceAll("`","")}\``).join("/");return`scip-vue npm ${e} ${n} ${t}/default.`}function Rn(e){let n=be(e.projectRoot,e.tsconfig),r=new he(e.dbPath,{readonly:!0});try{let t=ye({db:r,projectRoot:e.projectRoot,configPath:n,vueSymbolLookup:w(r,e.projectRoot)});return xe({vueFiles:e.vueFiles??[],tasks:e.tasks,...t})}finally{r.close()}}function ye(e){let n=j();return{projectRoot:e.projectRoot,context:O(e.projectRoot,e.configPath),symbolLookup:b(e.db,e.projectRoot,n),vueSymbolLookup:e.vueSymbolLookup,sourceReader:n}}function xe(e){let n=[],r=S(),t=e.tasks??e.vueFiles.map(o=>({fileName:o,startOffset:0,endOffset:Number.POSITIVE_INFINITY,countFileSkip:!0}));for(let o of t){let i=ke(e,o);n.push(...i.occurrences),E(r,i)}return{occurrences:n,...r}}function ke(e,n){let r=e.sourceReader.get(n.fileName);if(!r)return $(e.projectRoot,n,"missing-source-file");let t=e.context.language.scripts.get(n.fileName),o=t?.generated?.languagePlugin.typescript?.getServiceScript(t.generated.root)?.code;if(!t||!o)return $(e.projectRoot,n,"missing-service-script");let i=e.context.language.maps.get(o,t),s=f(e.projectRoot,n.fileName),a=[...N(r.text)],u={tokens:a.filter(c=>c.start>=n.startOffset&&c.start<n.endOffset),tokenByStart:new Map(a.map(c=>[c.start,c])),tokenTextCounts:Te(a),processedStarts:new Set};return ve({...e,fileName:n.fileName,sourceInfo:r,sourceFile:s,map:i,tokenContext:u})}function ve(e){let n=[],r=S();for(let t of e.tokenContext.tokens){if(e.tokenContext.processedStarts.has(t.start)||Ve(e.sourceInfo.text,t.start))continue;let o=M(e.map,t.start);if(o===null)continue;let s=(e.context.languageService.getDefinitionAtPosition(e.fileName,o+1)??[]).find(g=>!_(e.projectRoot,g.fileName));if(!s){k(r,e.sourceReader,e.sourceInfo,e.sourceFile,t,"no-definition");continue}let a=f(e.projectRoot,s.fileName),u=Ce(e.sourceFile,t.text,a);if(u){k(r,e.sourceReader,e.sourceInfo,e.sourceFile,t,u);continue}let c=D(s,e.symbolLookup,e.vueSymbolLookup,e.context,e.projectRoot);if(c===null){k(r,e.sourceReader,e.sourceInfo,e.sourceFile,t,"unindexed-definition");continue}H(n,e.sourceReader,e.sourceInfo,e.sourceFile,t,a,c),e.tokenContext.processedStarts.add(t.start),Fe(n,e,t,o,a,c)}return{occurrences:n,...r}}function Ve(e,n){let r=e.lastIndexOf(`
|
|
13
|
+
`,n-1)+1,t=e.slice(r,n);return/\bfrom\s+['"][^'"]*$/.test(t)||/\bimport\s*\(\s*['"][^'"]*$/.test(t)}function Ce(e,n,r){return r===e?"same-file-definition":r.endsWith(".vue")&&n!==r.split("/").at(-1)?.replace(/\.vue$/,"")?"unindexed-definition":null}function $(e,n,r){let t=S();return n.countFileSkip&&(t.skippedReferences=1,t.skippedReferenceReasons[r]=1,t.skippedReferenceSamples.push({sourceFile:f(e,n.fileName),sourceLine:0,sourceStartChar:0,sourceEndChar:0,token:"",reason:r})),{occurrences:[],...t}}function k(e,n,r,t,o,i){if(e.skippedReferences++,e.skippedReferenceReasons[i]++,e.skippedReferenceSamples.filter(a=>a.reason===i&&a.sourceFile===t).length>=2)return;let s=n.positionAt(r,o.start);e.skippedReferenceSamples.push({sourceFile:t,sourceLine:s.line,sourceStartChar:s.character,sourceEndChar:s.character+o.text.length,token:o.text,reason:i})}function Fe(e,n,r,t,o,i){if(!((n.tokenContext.tokenTextCounts.get(r.text)??0)<=1))for(let s of Ie(n.context.languageService,n.fileName,t+1,n.map,r,n.tokenContext.tokenByStart)){if(n.tokenContext.processedStarts.has(s))continue;let a=n.tokenContext.tokenByStart.get(s);a&&(H(e,n.sourceReader,n.sourceInfo,n.sourceFile,a,o,i),n.tokenContext.processedStarts.add(s))}}function H(e,n,r,t,o,i,s){let a=n.positionAt(r,o.start);e.push({sourceFile:t,sourceLine:a.line,sourceStartChar:a.character,sourceEndChar:a.character+o.text.length,sourceToken:o.text,definitionFile:i,symbolId:s})}function Te(e){let n=new Map;for(let r of e)n.set(r.text,(n.get(r.text)??0)+1);return n}function Ie(e,n,r,t,o,i){let s=e.getDocumentHighlights?.(n,r,[n])??[],a=[];for(let u of s)if(u.fileName===n)for(let c of u.highlightSpans){let g=Le(t,c.textSpan.start,i,o.text);g!==null&&a.push(g)}return a}function Le(e,n,r,t){let o=r.get(n);if(o?.text===t)return o.start;let i=x(e,n);if(i===null)return null;let s=r.get(i);return s?.text===t?s.start:null}export{Me as a,He as b,We as c,Rn as d};
|
|
14
|
+
//# sourceMappingURL=chunk-YOQVEXVE.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ts as r}from"@ts-morph/common";var B=new Set([r.SyntaxKind.ImportSpecifier,r.SyntaxKind.ImportClause,r.SyntaxKind.NamespaceImport]);function v(n,e){let{sourceFile:t,checker:o}=n,c=I(t),{importedBindings:l,consumers:m}=A(t,o,e),s=N(t,o);return{functions:c.flatMap(i=>{let f=n.functions.find(u=>u.startOffset===i.getStart(t));if(!f)return[];let g=new Set,S=new Set,b=u=>{if(r.isIdentifier(u)){let p=o.getSymbolAtLocation(u),F=p&&l.get(p);F&&S.add(F);for(let d of p?.declarations??[])d.getSourceFile()!==t||d.pos>=i.pos&&d.end<=i.end||B.has(d.kind)||g.add(d.getStart(t))}r.forEachChild(u,b)};b(i);let y=D(i),L=y&&o.getSymbolAtLocation(y),h=(r.isVariableDeclaration(i.parent)?i.parent:i).getStart(t);return[{fn:f,declaration:h,exports:L?s.get(L)??[]:[],bindings:[...g].sort((u,p)=>u-p),dependencies:[...S].sort()}]}),consumers:m}}function A(n,e,t){let o=new Map,c=[];for(let l of n.statements.filter(r.isImportDeclaration)){if(!r.isStringLiteralLike(l.moduleSpecifier))continue;let m=l.moduleSpecifier.text,s=n.getLineAndCharacterOfPosition(l.moduleSpecifier.getStart(n)).line+1,a=t.find(i=>i.specifier===m&&i.line===s&&i.syntax==="import"&&i.kind==="value");if(!(!a||a.role==="test"))for(let i of M(l)){let f=e.getSymbolAtLocation(i.local);f&&o.set(f,a.target??`specifier:${a.specifier}`),a.target&&a.resolution==="internal"&&c.push({file:n.fileName,line:a.line,target:a.target,name:i.imported})}}return{importedBindings:o,consumers:c}}function I(n){return n.statements.flatMap(e=>r.isFunctionDeclaration(e)&&e.body?[e]:r.isVariableStatement(e)?e.declarationList.declarations.flatMap(t=>t.initializer&&(r.isArrowFunction(t.initializer)||r.isFunctionExpression(t.initializer))?[t.initializer]:[]):[])}function D(n){return r.isVariableDeclaration(n.parent)?n.parent.name:n.name}function M(n){let e=n.importClause;if(!e||e.isTypeOnly)return[];let t=e.name?[{local:e.name,imported:"default"}]:[],o=e.namedBindings;if(!o)return t;if(r.isNamespaceImport(o))return t.push({local:o.name,imported:"*"}),t;for(let c of o.elements)c.isTypeOnly||t.push({local:c.name,imported:(c.propertyName??c.name).text});return t}function N(n,e){let t=e.getSymbolAtLocation(n),o=new Map;if(!t)return o;for(let c of e.getExportsOfModule(t)){let l=c.flags&r.SymbolFlags.Alias?e.getAliasedSymbol(c):c;o.set(l,[...o.get(l)??[],c.name])}return o}function O(n){if(n.errors.length>0)return[];let{sourceFile:e,checker:t}=n,o=new Map,c=new Set,l=s=>{if(r.isIdentifier(s)){let a=t.getSymbolAtLocation(s),i=a?.valueDeclaration;if(a&&i&&(r.isVariableDeclaration(i)||r.isBindingElement(i))&&i.name===s){let f=x(i);f&&(c.add(s),o.set(a,{name:s.text,startLine:e.getLineAndCharacterOfPosition(f.parent.getStart(e)).line,endLine:e.getLineAndCharacterOfPosition(f.end-1).line,referenceLines:[]}))}}r.forEachChild(s,l)};l(e);let m=s=>{if(r.isIdentifier(s)&&!c.has(s)){let a=r.isShorthandPropertyAssignment(s.parent)?t.getShorthandAssignmentValueSymbol(s.parent):t.getSymbolAtLocation(s),i=a&&o.get(a);i&&i.referenceLines.push(e.getLineAndCharacterOfPosition(s.getStart(e)).line)}r.forEachChild(s,m)};return m(e),[...o.values()].map(s=>({...s,referenceLines:[...new Set(s.referenceLines)].sort((a,i)=>a-i)}))}function x(n){return r.isVariableDeclaration(n)?n:r.isBindingElement(n)||r.isObjectBindingPattern(n)||r.isArrayBindingPattern(n)?x(n.parent):null}export{v as a,O as b};
|
|
2
|
+
//# sourceMappingURL=chunk-YRT2WLYY.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as u,c as b}from"./chunk-BL6XJKTA.js";import{d as l}from"./chunk-QZ7KQZRN.js";function a(e,r){return e.reason instanceof Error?e.reason:new Error(r)}function d(e,r){if(e?.aborted)throw a(e,r)}import{join as w}from"path";function h(e,r={}){return L(w(e,"gc.lock"),r)}function L(e,r={}){let i=r.waitMs??0,t=r.pollMs??10,o=r.now??l,n=o()+i;do{let c=m(e,r.directoryDurability);if(c)return y(c);let s=n-o();if(s<=0)return null;f(Math.min(t,s))}while(o()<=n);return null}async function E(e,r={}){let i=r.waitMs??0,t=r.pollMs??10,o=r.now??l,n=o()+i;do{d(r.signal,"Lock acquisition was aborted.");let c=m(e,r.directoryDurability);if(c)return y(c);let s=n-o();if(s<=0)return null;await k(Math.min(t,s),r.signal)}while(o()<=n);return null}function m(e,r){let i=b(e,{kind:"generic",parseLegacy:u,...r?{directoryDurability:r}:{}});return i.kind==="acquired"?i.lock:null}function y(e){return{release:()=>{e.release()}}}function f(e){let r=new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));Atomics.wait(r,0,0,e)}function k(e,r){return r?.aborted?Promise.reject(a(r,"Lock acquisition was aborted.")):new Promise((i,t)=>{let o=setTimeout(()=>{r?.removeEventListener("abort",n),i()},e),n=()=>{clearTimeout(o),r?.removeEventListener("abort",n),t(r?a(r,"Lock acquisition was aborted."):new Error("Lock acquisition was aborted."))};r?.addEventListener("abort",n,{once:!0})})}export{a,d as b,h as c,L as d,E as e};
|
|
2
|
+
//# sourceMappingURL=chunk-YTAP5Y2G.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Z as u}from"./chunk-FVULPZDF.js";import{a as p,e as c}from"./chunk-A2IIGFMJ.js";import{Da as a}from"./chunk-5TNQJUR2.js";var y=a("suppression-inventory",{clearGroups:["whole-project","source-file"]});function h(o){let e=y.get(o,()=>d(o)),t={total:e.total,byCategory:{...e.byCategory},byFile:new Map(e.byFile)},s=Date.now();for(let r of o.config.suppressions??[])r.expiresAt&&Date.parse(r.expiresAt)<=s||(t.total+=1,r.file&&t.byFile.set(r.file,(t.byFile.get(r.file)??0)+1),t.byCategory[l(r.check)]+=1);return t}function d(o){let e={dead:0,stale:0,wrapper:0,passthrough:0,drift:0,extract:0,similar:0,twin:0,uncategorized:0},t=new Map,s=0;for(let r of u(o)){let n=p(o,r);!n||!n.includes("scip-query")||(s+=f(n,r,e,t))}return{total:s,byCategory:e,byFile:t}}function f(o,e,t,s){let r=0;for(let n of o.split(/\r?\n/)){let i=c(n);if(i===null)continue;r+=1,s.set(e,(s.get(e)??0)+1);let g=l(i);t[g]+=1}return r}var m=["dead","stale","wrapper","passthrough","drift","extract","similar","twin"],S=new Map([["dead-code","dead"],["new-dead","dead"],["twin-drift","twin"],["similar-files","similar"],["similar-signatures","similar"],["recent-duplicates","similar"],["duplicate-bodies","similar"],["duplication","similar"],["passthrough-candidates","passthrough"],["slice-cohesion","extract"]]);function l(o){let e=o?.toLowerCase()??"";return m.find(t=>t===e)??S.get(e)??"uncategorized"}export{h as a};
|
|
2
|
+
//# sourceMappingURL=chunk-YTYWI7VB.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var m={"/":"namespace","#":"type",".":"term","[":"type-param",":":"meta","!":"macro"};function l(e){if(e.startsWith("local "))return{kind:"local",id:e.slice(6),raw:e};let r=e.split(" ");if(r.length<4)return{scheme:r[0]??"",manager:r[1]??"",packageName:r[2]??"",version:"",descriptors:[],raw:e};let t=r[0],n=r[1],s=e.slice(t.length+1+n.length+1),i;if(s.startsWith("`")){let f=s.indexOf("`",1);f===-1?(i=s.slice(1),s=""):(i=s.slice(1,f),s=s.slice(f+2))}else{let f=s.indexOf(" ");f===-1?(i=s,s=""):(i=s.slice(0,f),s=s.slice(f+1))}let o,c=s.indexOf(" ");c===-1?(o=s,s=""):(o=s.slice(0,c),s=s.slice(c+1));let a=g(s);return{scheme:t,manager:n,packageName:i,version:o,descriptors:a,raw:e}}function k(e){let r=l(e);if("kind"in r)return null;for(let t=r.descriptors.length-2;t>=0;t--){let n=r.descriptors[t];if(n?.suffix==="type")return n.name}return null}function g(e){let r=[],t=0;for(;t<e.length;){let n=S(e,t,r.length===0)??h(e,t);n.descriptor&&r.push(n.descriptor),t=n.next}return r}function S(e,r,t){if(e[r]==="["){let s=e.indexOf("]",r+1);return{descriptor:{name:e.slice(r+1,s===-1?void 0:s),suffix:"type-param"},next:s===-1?e.length:s+1}}if(e[r]!=="("||!(t||r===0||d(e[r-1])))return;let n=e.indexOf(")",r+1);if(!(n===-1||e[n+1]==="."))return{descriptor:{name:e.slice(r+1,n),suffix:"parameter"},next:n+1}}function h(e,r){if(e[r]==="`"){let n=e.indexOf("`",r+1);return n===-1?{descriptor:{name:e.slice(r+1),suffix:"term"},next:e.length}:u(e,e.slice(r+1,n),n+1)}let t=r;for(;r<e.length&&!d(e[r]);)r++;return u(e,e.slice(t,r),r)}function u(e,r,t){if(t>=e.length)return{descriptor:r?{name:r,suffix:"term"}:void 0,next:t};if(e[t]==="("){let s=e.indexOf(")",t+1);return s===-1?{descriptor:{name:r,suffix:"term"},next:t+1}:{descriptor:{name:r,suffix:"method"},next:s+(e[s+1]==="."?2:1)}}let n=m[e[t]];return{descriptor:n?{name:r,suffix:n}:void 0,next:t+1}}function d(e){return e==="/"||e==="#"||e==="."||e==="("||e==="["||e===":"||e==="!"}function $(e){let r=l(e);if("kind"in r&&r.kind==="local")return`local:${r.id}`;let t=r;if(t.descriptors.length===0)return t.raw;let n=[];for(let s of t.descriptors){let i=x(s);i&&n.push(i)}return n.join(":")}function x(e){let r=e.suffix==="namespace"?b(e.name):e.name;return r?e.suffix==="method"?`${r}()`:r:""}function b(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 R(e){let r=l(e);if("kind"in r&&r.kind==="local")return r.id;let t=r;return t.descriptors.length===0?"":t.descriptors[t.descriptors.length-1].name}function p(e){let r=l(e);if("kind"in r&&r.kind==="local")return null;let t=r;return t.descriptors[t.descriptors.length-1]?.suffix??null}function T(e){return e.endsWith("().")||p(e)==="method"}function N(e){let r=p(e);return r==="method"?!0:r!=="term"?!1:e.endsWith("().")?!0:e.startsWith("rust-analyzer ")&&e.includes("#")?!1:e.startsWith("scip-typescript ")?!/#[A-Za-z0-9_$]+\.$/.test(e):!0}function M(e){return p(e)==="namespace"}var y=/^rust-analyzer\b.*[\s/]impl#\[[^\]]+\]\[[^\]]+\]/;function O(e){return y.test(e)}var D=new Set(["test","tests","_tests"]);function _(e){let r=l(e);if("kind"in r)return!1;for(let t=0;t<r.descriptors.length-1;t+=1){let n=r.descriptors[t];if(n?.suffix==="namespace"&&n.name&&D.has(n.name))return!0}return!1}function j(e,r){let t=l(e),n=l(r);if("kind"in t||"kind"in n)return!1;let s=t.descriptors,i=n.descriptors;if(i.length!==s.length+1)return!1;for(let o=0;o<s.length;o++){let c=s[o],a=i[o];if(c.name!==a.name||c.suffix!==a.suffix)return!1}return!0}function I(e,r){let t=l(e),n=l(r);if("kind"in t||"kind"in n)return!1;let s=t.descriptors,i=n.descriptors;if(i.length<=s.length)return!1;for(let o=0;o<s.length;o++){let c=s[o],a=i[o];if(c.name!==a.name||c.suffix!==a.suffix)return!1}return!0}export{l as a,k as b,$ as c,R as d,p as e,T as f,N as g,M as h,O as i,_ as j,j as k,I as l};
|
|
2
|
+
//# sourceMappingURL=chunk-YULZRALL.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as m,b as g,c}from"./chunk-DVFP6PZI.js";import{b as f,d as b,h as a,y as p}from"./chunk-5D2LVK7O.js";import{SymbolInformation_Kind as o}from"@c4312/scip";function _(n){let t=n.trim().toLowerCase();if(!t)return null;if(/^\d+$/.test(t)){let i=Number(t);return m.has(i)?i:null}let r=g.get(t);if(r!==void 0)return r;let e=[...m].filter(([,i])=>i.toLowerCase().includes(t));return e.length===1?e[0][0]:null}function L(n,t,r={}){let{scope:e,limit:i=100}=r,u=_(t);if(u===null)throw new Error(`Unknown or ambiguous symbol kind: ${JSON.stringify(t)}. Use an exact SCIP kind name or number.`);return y(n,e).map(s=>({row:s,resolvedKind:k(s)})).filter(s=>s.resolvedKind===u).slice(0,i).map(({row:s,resolvedKind:d})=>({symbol:s.symbol,shortName:b(s.symbol),kind:d,kindName:c(d),relativePath:s.relative_path,startLine:s.start_line,endLine:s.end_line}))}function v(n,t={}){let r=new Map;for(let e of y(n,t.scope)){let i=k(e);i===null||i===0||r.set(i,(r.get(i)??0)+1)}return[...r.entries()].sort((e,i)=>i[1]-e[1]||e[0]-i[0]).map(([e,i])=>({kind:e,kindName:c(e),count:i}))}function y(n,t){return p(n,{scope:t}).map(h)}function h(n){return{symbol:n.symbol,kind:n.kind,documentation:n.documentation,enclosing_symbol:n.enclosingSymbol,relative_path:n.relativePath,start_line:n.startLine,end_line:n.endLine}}function k(n){return n.kind!==null&&n.kind!==0?K(n.kind,n.symbol,n.documentation):x(n.symbol,n.documentation,n.enclosing_symbol)}function K(n,t,r){let e=(r??"").toLowerCase();if(a(t)==="type"){if(e.includes("type "))return o.TypeAlias;if(e.includes("interface "))return o.Interface;if(e.includes("struct "))return o.Struct;if(e.includes("trait "))return o.Trait;if(e.includes("class "))return o.Class}return n}function x(n,t,r){let e=f(n);if("kind"in e)return null;let i=e.descriptors,u=i[i.length-2]??null,l=a(n),s=(t??"").toLowerCase();return l==="type"?K(o.Class,n,t):l==="method"?u?.suffix==="type"?o.Method:o.Function:l==="namespace"?o.Module:l!=="term"?null:N(s,r,u?.suffix??null)}function N(n,t,r){return n.includes("async def ")||n.includes("def ")?o.Function:(t?a(t):r)==="type"?o.Field:o.Variable}export{L as a,v as b};
|
|
2
|
+
//# sourceMappingURL=chunk-Z33WQG4Q.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import{a as k}from"./chunk-WRQXLNYE.js";import{c as g}from"./chunk-QXEUDXBT.js";import{c as y}from"./chunk-WXU3DGPU.js";import{H as S,P as h,W as p,Y as P,ea as T,k as f,q as v,r as D,s as w}from"./chunk-J5FJMODQ.js";import{d,e as N}from"./chunk-GZKFETP5.js";import{b as R,d as m}from"./chunk-YULZRALL.js";import{k as M,m as u}from"./chunk-U5RIG3JP.js";function Ne(e,t){let n=A(e);return n?t.filter(r=>A(r.file)===n):t}function ve(e,t,n,r,o){let i=h(e,t);return r?J(e,t,n,i,o):W(t,n,i)}function J(e,t,n,r,o){let i=o?.match(/^[A-Za-z_$][\w$]*/u)?.[0];if(!i)return null;let c=new Set(r.filter(s=>s.localName===i||s.importedName===i).map(s=>s.sourcePath).filter(s=>!!s));for(let s of n)for(let a of c)if(u(a,s.file))return s;if(i==="this"||i==="self"||i==="cls"){let s=n.filter(a=>a.file===t&&R(a.symbol)!==null);if(s.length===1)return s[0]}return Y(e,t,n,r,i)}function Y(e,t,n,r,o){let i=V(f(e,t)??"",o);if(i.size===0)return null;let c=new Set(r.filter(a=>i.has(a.localName??a.importedName)).map(a=>a.sourcePath).filter(a=>!!a)),s=n.filter(a=>i.has(R(a.symbol)??"")&&(a.file===t||[...c].some(l=>u(l,a.file))));return s.length===1?s[0]:null}function W(e,t,n){let r=t.filter(s=>R(s.symbol)===null),o=r.find(s=>s.file===e);if(o)return o;let i=m(t[0].symbol),c=n.filter(s=>s.kind!=="namespace"&&s.kind!=="side-effect"&&(s.localName===i||s.localName===null&&s.importedName===i));if(c.length>0){let s=r.filter(a=>c.some(l=>l.sourcePath!==null&&u(l.sourcePath,a.file)));return s.length===1?s[0]:null}return r.length===1?r[0]:null}function V(e,t){let n=t.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),r=new Set,o=[new RegExp(`\\b${n}\\s*:\\s*([A-Za-z_$][\\w$]*)`,"gu"),new RegExp(`\\b${n}\\s*=\\s*(?:new\\s+)?([A-Za-z_$][\\w$]*)\\s*\\(`,"gu")];for(let i of o)for(let c of e.matchAll(i))r.add(c[1]);return r.size===1?r:new Set}function A(e){let t=w(e);return t?t==="typescript"||t==="tsx"||t==="javascript"?"javascript-family":t:null}var X=N("global-leaf-index",{clearGroups:["whole-project"]});function x(e){return X.get(e,()=>{let t=e.all(`SELECT gs.id, gs.symbol,
|
|
2
|
+
COALESCE(der_doc.relative_path, mention_doc.relative_path) AS relative_path
|
|
3
|
+
FROM global_symbols gs
|
|
4
|
+
LEFT JOIN defn_enclosing_ranges der ON der.symbol_id = gs.id
|
|
5
|
+
LEFT JOIN documents der_doc ON der_doc.id = der.document_id
|
|
6
|
+
LEFT JOIN (
|
|
7
|
+
SELECT m.symbol_id, MIN(d.relative_path) AS relative_path
|
|
8
|
+
FROM mentions m
|
|
9
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
10
|
+
JOIN documents d ON c.document_id = d.id
|
|
11
|
+
WHERE m.role = 1
|
|
12
|
+
GROUP BY m.symbol_id
|
|
13
|
+
) mention_doc ON mention_doc.symbol_id = gs.id
|
|
14
|
+
WHERE 1 = 1
|
|
15
|
+
${e.symbolNoiseFor("gs")}`),n=new Map;for(let r of t){if(!r.relative_path||e.isIgnored(r.relative_path))continue;let o=m(r.symbol);if(!o)continue;let i=n.get(o);i||(i=[],n.set(o,i)),i.some(c=>c.symbolId===r.id)||i.push({symbol:r.symbol,symbolId:r.id,file:r.relative_path})}return n})}function I(e,t,n,r={}){if(!n)return[];let o=f(e,t);return o?o.indexOf(n)===-1?[]:(E(e,t).get(n)??[]).filter(c=>!q(c,r)):[]}function q(e,t){return typeof t.excludeStartLine=="number"&&typeof t.excludeEndLine=="number"&&e>=t.excludeStartLine&&e<=t.excludeEndLine}var K=d("file-identifiers",{clearGroups:["whole-project","source-file"]});function F(e,t){let n=S(e,t);return n?n.fileIdentifiers:K.get(e,t,()=>new Set(E(e,t).keys()))}var Q=d("file-ident-lines",{clearGroups:["whole-project","source-file"]});function E(e,t){let n=S(e,t);return n?n.identifierLineMap:Q.get(e,t,()=>te(e,t))}var ee=d("file-idents-by-line",{clearGroups:["whole-project","source-file"]});function Ae(e,t){let n=S(e,t);return n?n.identifiersByLine:ee.get(e,t,()=>{let r=E(e,t),o=0;for(let c of r.values()){let s=c[c.length-1];s!==void 0&&s>o&&(o=s)}let i=new Array(o+1);for(let c=0;c<=o;c+=1)i[c]=new Set;for(let[c,s]of r)for(let a of s)i[a].add(c);return i})}function te(e,t){let n=new Map,r=(s,a)=>{let l=n.get(s);if(!l){n.set(s,[a]);return}l[l.length-1]!==a&&l.push(a)},o=f(e,t);if(!o)return n;let i=D(o).split(/\r?\n/),c=/\b([A-Za-z_$][\w$]*)\b/g;for(let s=0;s<i.length;s+=1){let a=i[s]??"";for(let l of a.matchAll(c))l[1]&&r(l[1],s)}return n}var O=/[A-Za-z_$][A-Za-z0-9_$]*/g,$=/^[A-Za-z_$][A-Za-z0-9_$]*$/,ne=512;function _(e){let t=[],n=!1;for(let r of e)r&&(n=!0,$.test(r)||t.push(r));return{candidateNames:e,hasUsableCandidate:n,nonIdentifierNames:t}}function z(e,t){let n=oe(t)?t:_(t);return n.candidateNames.size===0||!n.hasUsableCandidate?!0:n.candidateNames.size<=ne?re(e,n.candidateNames):ie(e,n)}function re(e,t){for(let n of t)if(n){if($.test(n)){if(se(n).test(e))return!0;continue}if(e.includes(n))return!0}return!1}function ie(e,t){O.lastIndex=0;let n;for(;(n=O.exec(e))!==null;)if(t.candidateNames.has(n[0]))return!0;for(let r of t.nonIdentifierNames)if(e.includes(r))return!0;return!1}function oe(e){return"candidateNames"in e}function se(e){return new RegExp(`(?<![A-Za-z_$0-9])${v(e)}(?![A-Za-z_$0-9])`)}var ae=d("source-import-paths-by-local-name",{clearGroups:["whole-project","source-file"]});function B(e,t){let n=M(t);return ae.get(e,n,()=>ce(e,n))}function ce(e,t){let n=new Map;for(let r of h(e,t)){if(!r.sourcePath)continue;let o=r.localName??r.importedName;if(o&&j(n,o,r.sourcePath),r.kind==="namespace")for(let i of r.usedMembers)j(n,i,r.sourcePath)}return n}function j(e,t,n){let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)}function G(e){let t=new Set;for(let n of e.values())for(let r of n)t.add(r);return t}function C(e,t,n){let r=x(e).get(n);if(!r||r.length===0)return[];if(r.length===1)return[b(r[0])];let o=r.filter(a=>a.file===t);if(o.length>0)return o.map(b);let i=B(e,t),c=de(r,i.get(n));if(c.length>0)return c;let s=G(i);for(let a of s){let l=r.filter(U=>u(a,U.file));if(l.length>0&&l.length===r.length)return l.map(b)}return[]}function et(e,t,n){let r=C(e,t,n);if(r.length>0)return r;let o=x(e).get(n);return!o||o.length===0?[]:o.map(b)}function Z(e,t,n={}){let r=fe(e,t);if(!r)return[];let o=g(e,t);if(n.semantic!==!1&&n.semanticEvidence){let c=n.semanticEvidence.references(e,{...o,leaf:r.identifier,parentTypeName:null,isFunctionLike:!1,isTypeLike:!1,kind:null,documentation:null,enclosingSymbol:null});if(c.length>0){let s=le(e,o.symbol,c);return L(e,s)}}let i=new Map;for(let c of y(e)){let s=ue(e,r,c);s.length>0&&i.set(c,s)}return L(e,i)}function le(e,t,n){let r=new Map;for(let o of n){let i=r.get(o.file)??[];i.push(o.line),r.set(o.file,i)}for(let o of y(e)){let i=p(e,o,t);i!==null&&r.set(o,i)}return r}function fe(e,t){let n=g(e,t);if(!n)return null;let r=m(n.symbol);return r?{symbolId:n.symbolId,symbol:n.symbol,relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine,identifier:r}:null}function ue(e,t,n){let r=p(e,n,t.symbol);if(r!==null)return r;let o=f(e,n);return!o||o.indexOf(t.identifier)===-1?[]:n!==t.relativePath&&!C(e,n,t.identifier).some(c=>c.symbolId===t.symbolId)?[]:I(e,n,t.identifier,n===t.relativePath?{excludeStartLine:t.startLine,excludeEndLine:t.endLine}:{})}function tt(e,t,n={}){let r=new Map;for(let a of t){if(!a.leaf)continue;let l=r.get(a.leaf)??[];l.push(a),r.set(a.leaf,l)}if(r.size===0)return new Map;let o=new Set(t.map(a=>a.symbolId)),i=new Set(r.keys()),c=_(i),s=new Map;for(let a of y(e)){if(n.skipPath?.(a)||!z(f(e,a),c))continue;let l=F(e,a);l.size!==0&&me(e,a,l,r,o,s)}return s}function me(e,t,n,r,o,i){for(let c of n)if(r.has(c))for(let s of C(e,t,c)){if(!o.has(s.symbolId)||t===s.relativePath)continue;let a=i.get(s.symbolId);a||(a=new Set,i.set(s.symbolId,a)),a.add(t)}}function b(e){return{symbolId:e.symbolId,symbol:e.symbol,relativePath:e.file}}function L(e,t){let n=[],r=new Set;for(let[o,i]of t){let c=P(e,o);for(let s of i){let a=T(c,s),l=`${o}|${s}|${a?.symbol??""}`;r.has(l)||(r.add(l),n.push({file:o,line:s,enclosingSymbol:a?.symbol??null}))}}return n}function de(e,t){if(t)for(let n of t){let r=e.filter(o=>u(n,o.file));if(r.length>0)return r.map(b)}return[]}function pe(e,t){return ge(e,[t]).get(t.symbolId)??[]}function ge(e,t){let n=t.map(i=>({symbolId:i.symbolId,prelude:Ie(e,i)})).filter(i=>i.prelude!==null),r=ye(e,n.map(i=>i.symbolId)),o=new Map;for(let{symbolId:i,prelude:c}of n){let s=Se(e,r.get(i)??new Map,c.match,c.identifier);o.set(i,L(e,s))}return o}function lt(e,t,n={}){return be(e,t,n).map(r=>({file:r.file,line:r.line,enclosingSymbol:r.enclosingSymbol}))}function be(e,t,n={}){let r=Z(e,t,{semantic:n.semantic,semanticEvidence:n.semanticEvidence}),o=r.length>0?H(r,"source-attribution"):H(pe(e,t),"scip-reference-chunk");return n.includeIgnored===!0?o:o.filter(i=>!e.isIgnored(i.file))}function H(e,t){return e.map(n=>({...n,provenance:t}))}function Se(e,t,n,r){let o=new Map;for(let[i,c]of t)o.set(i,he(e,i,c,n,r));return o}function ye(e,t){let n=new Map;for(let r of k(e,t)){if(e.isIgnored(r.relative_path))continue;let o=n.get(r.symbol_id);o||(o=new Map,n.set(r.symbol_id,o));let i=o.get(r.relative_path);i||(i=[],o.set(r.relative_path,i)),i.push({start_line:r.chunk_start,end_line:r.chunk_end})}return n}function he(e,t,n,r,o){let i=r.symbol?p(e,t,r.symbol):null;if(i!==null)return i;let c=t===r.relativePath?{excludeStartLine:r.startLine,excludeEndLine:r.endLine}:{},s=o?I(e,t,o,c):[];return n.flatMap(a=>Re(s,a))}function Re(e,t){let n=e.filter(r=>r>=t.start_line&&r<=t.end_line);return n.length>0?n:[t.start_line]}function Ie(e,t){let n=g(e,t);return n?{match:n,identifier:m(n.symbol)||null}:null}export{E as a,Ae as b,Ne as c,ve as d,x as e,_ as f,z as g,C as h,et as i,fe as j,ue as k,tt as l,pe as m,ge as n,lt as o,be as p};
|
|
16
|
+
//# sourceMappingURL=chunk-ZGTYGDMF.js.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import{b as Ge,c as de,d as Je,e as Qe,n as Ye}from"./chunk-ZGTYGDMF.js";import{d as Xe,e as Ze}from"./chunk-DVFP6PZI.js";import{b as V}from"./chunk-QIWXRW72.js";import{a as ze}from"./chunk-LOVIZBJ4.js";import{a as $}from"./chunk-O2C4UILI.js";import{C as F,H as me,K as Y,L as K,O as Ke,P as Ve,R as $e,Y as O,Z as X,_ as He,b as Me,da as Ue,ea as qe,j as ke,n as J,s as pe,u as _e,v as Q,w as Be,x as je,y as P}from"./chunk-J5FJMODQ.js";import{c as Pe,d as Fe}from"./chunk-PH52RA7D.js";import{c as Oe,e as k}from"./chunk-GZKFETP5.js";import{d as _,f as We}from"./chunk-YULZRALL.js";import{m as fe}from"./chunk-U5RIG3JP.js";import{c as Te,f as Ae}from"./chunk-62BDNPMI.js";function Z(e){return e?`${e.startLine}:${e.startColumn}:${e.endLine}:${e.endColumn}`:""}function ge(e,t,n,r){let i=new Map;if(n.length===0)return i;r??=Y(e,t)??[];let s=new Set;for(let o of n){let a=et(e,t,o,r);if(!a||a.startColumn===void 0||a.endColumn===void 0)continue;let l=Z({...a,startColumn:a.startColumn,endColumn:a.endColumn});i.has(l)?s.add(l):i.set(l,o)}for(let o of s)i.delete(o);return i}function et(e,t,n,r=Y(e,t)??[]){let i=_(n.symbol),s=i==="<constructor>"?"constructor":i,o=r.filter(l=>l.name===s&&l.startLine>=n.startLine&&l.endLine<=n.endLine&&(l.startLine!==n.startLine||l.startColumn===void 0||l.startColumn>=(n.startChar??0))&&(l.endLine!==n.endLine||l.endColumn===void 0||!n.endChar||l.endColumn<=n.endChar)),a=o.filter(l=>!o.some(f=>f!==l&&(f.startLine<l.startLine||f.startLine===l.startLine&&(f.startColumn??0)<(l.startColumn??0))&&(f.endLine>l.endLine||f.endLine===l.endLine&&(f.endColumn??Number.MAX_SAFE_INTEGER)>=(l.endColumn??0))));return a.length===1?a[0]:void 0}import{ts as w}from"@ts-morph/common";import{createHash as Tt}from"crypto";import{ts as p}from"@ts-morph/common";function tt(e){return"elements"in e?e.elements.flatMap(t=>"name"in t?tt(t.name):[]):[e.text]}var Pr="typescript-function-local-v1";function ye(e){return Tt("sha256").update(e).digest("hex")}function Fr(e,t){let{sourceFile:n,checker:r,errors:i}=z(e,t),s=[];function o(a,l){if(ee(a)){let u=kt(a,n),m=[...l,u];s.push(Pt(a,n,m.join("."),r)),p.forEachChild(a,x=>o(x,m));return}let f=(p.isClassDeclaration(a)||p.isClassExpression(a))&&a.name?a.name.text:p.isVariableDeclaration(a)&&a.initializer&&!ee(a.initializer)||p.isModuleDeclaration(a)?a.name.getText(n):null;p.forEachChild(a,u=>o(u,f?[...l,f]:l))}return i.length===0&&o(n,[]),{sourceFile:n,checker:r,functions:s,exports:i.length?[]:At(n),errors:i}}function At(e){let t=[];for(let n of e.statements){let r=Ot(n,e);r&&t.push({file:e.fileName,startLine:e.getLineAndCharacterOfPosition(n.getStart(e)).line+1,endLine:e.getLineAndCharacterOfPosition(n.getEnd()-1).line+1,names:r,syntax:p.isVariableStatement(n)?"VariableStatement":p.SyntaxKind[n.kind],...p.isExportDeclaration(n)&&n.moduleSpecifier?{from:p.isStringLiteralLike(n.moduleSpecifier)?n.moduleSpecifier.text:n.moduleSpecifier.getText(e)}:{}})}return t}function Ot(e,t){if(p.isExportDeclaration(e)){let n=e.exportClause;return n?p.isNamedExports(n)?n.elements.map(r=>r.name.text):[n.name.text]:["*"]}return p.isExportAssignment(e)?[e.isExportEquals?"export=":"default"]:Mt(e,t)}function Mt(e,t){let n=p.canHaveModifiers(e)?p.getModifiers(e):void 0;if(n?.some(r=>r.kind===p.SyntaxKind.ExportKeyword))return n.some(r=>r.kind===p.SyntaxKind.DefaultKeyword)?["default"]:p.isVariableStatement(e)?e.declarationList.declarations.flatMap(r=>tt(r.name)):"name"in e&&e.name?[e.name.getText(t)]:[]}function ee(e){return p.isFunctionLike(e)&&"body"in e&&!!e.body}function kt(e,t){if(p.isConstructorDeclaration(e))return"constructor";if(p.isGetAccessor(e))return`get ${e.name.getText(t)}`;if(p.isSetAccessor(e))return`set ${e.name.getText(t)}`;if(e.name)return e.name.getText(t);let n=e.parent;if(p.isVariableDeclaration(n)||p.isPropertyAssignment(n)||p.isPropertyDeclaration(n))return n.name.getText(t);if(p.isCallExpression(n))return`<callback:${n.expression.getText(t)}:${n.arguments.indexOf(e)}>`;let r=t.getLineAndCharacterOfPosition(e.getStart(t));return`<anonymous@${r.line+1}:${r.character+1}>`}function Pt(e,t,n,r){let i=new be(t);i.visit(e.body,0);let s=i.contributions,o=e.getStart(t),a=e.getEnd(),l=jt(e,t,r);return{name:n,file:t.fileName,startLine:t.getLineAndCharacterOfPosition(o).line+1,endLine:t.getLineAndCharacterOfPosition(a-1).line+1,startOffset:o,endOffset:a,sourceHash:ye(t.text.slice(o,a)),bodyHash:ye(l.exact.join(`
|
|
2
|
+
`)),renamedBodyHash:ye(l.renamed.join(`
|
|
3
|
+
`)),tokenCount:l.exact.length,cyclomatic:1+s.reduce((f,u)=>f+u.cyclomatic,0),cognitive:s.reduce((f,u)=>f+u.cognitive,0),contributions:s}}var be=class{constructor(t){this.file=t}file;contributions=[];visit(t,n){if(!ee(t)){if(p.isIfStatement(t)){this.visitIf(t,n);return}if(Ft(t)||p.isCatchClause(t)||p.isConditionalExpression(t)){this.add(t,p.SyntaxKind[t.kind],1,n+1),p.forEachChild(t,r=>this.visit(r,n+1));return}if(p.isSwitchStatement(t)){this.add(t,"switch",0,n+1),this.visit(t.expression,n),this.visit(t.caseBlock,n+1);return}p.isCaseClause(t)&&this.add(t,"case",1,0),this.recordLogicalOperator(t),this.recordLabeledJump(t),p.forEachChild(t,r=>this.visit(r,n))}}visitIf(t,n){let r=p.isIfStatement(t.parent)&&t.parent.elseStatement===t;this.add(t,r?"else-if":"if",1,r?1:n+1),this.visit(t.expression,n),this.visit(t.thenStatement,n+1),t.elseStatement&&(p.isIfStatement(t.elseStatement)||this.add(t.elseStatement,"else",0,1),this.visit(t.elseStatement,p.isIfStatement(t.elseStatement)?n:n+1))}recordLogicalOperator(t){if(!p.isBinaryExpression(t)||!_t(t.operatorToken.kind))return;let n=t.operatorToken.kind,r=Bt(t),i=p.isBinaryExpression(r)&&r.operatorToken.kind===n;this.add(t.operatorToken,p.tokenToString(n)??"logical",1,n===p.SyntaxKind.QuestionQuestionToken||i?0:1)}recordLabeledJump(t){(p.isBreakStatement(t)||p.isContinueStatement(t))&&t.label&&this.add(t,"labeled-jump",0,1)}add(t,n,r,i){let s=this.file.getLineAndCharacterOfPosition(t.getStart(this.file));this.contributions.push({line:s.line+1,column:s.character+1,kind:n,cyclomatic:r,cognitive:i})}};function Ft(e){return p.isForStatement(e)||p.isForInStatement(e)||p.isForOfStatement(e)||p.isWhileStatement(e)||p.isDoStatement(e)}function _t(e){return e===p.SyntaxKind.AmpersandAmpersandToken||e===p.SyntaxKind.BarBarToken||e===p.SyntaxKind.QuestionQuestionToken}function Bt(e){let t=e.parent;for(;p.isParenthesizedExpression(t);)t=t.parent;return t}function jt(e,t,n){let r=new Map,i=f=>{if(p.isIdentifier(f)){let u=n.getSymbolAtLocation(f);u&&!r.has(u)&&r.set(u,`local:${r.size}`)}else for(let u of f.elements)p.isBindingElement(u)&&i(u.name)};for(let f of e.parameters)i(f.name);let s=f=>{ee(f)||(p.isVariableDeclaration(f)&&i(f.name),p.forEachChild(f,s))};s(e.body);let o=[],a=[],l=f=>{let u=f.getChildren(t);if(u.length>0){for(let E of u)l(E);return}let m=f.getText(t);if(!m)return;o.push(`${f.kind}:${m}`);let x=p.isIdentifier(f)&&!Kt(f)?n.getSymbolAtLocation(f):void 0,S=x?r.get(x)??m:m;a.push(`${f.kind}:${S}`)};return l(e.body),{exact:o,renamed:a}}function Kt(e){let t=e.parent;return p.isShorthandPropertyAssignment(t)?!0:p.isBindingElement(t)?Vt(e,t):p.isPropertyAccessExpression(t)||p.isPropertyAssignment(t)||p.isMethodDeclaration(t)?t.name===e:!1}function Vt(e,t){return t.propertyName?t.propertyName===e:t.name===e&&!t.dotDotDotToken&&p.isObjectBindingPattern(t.parent)}function z(e,t){let n=p.createSourceFile(e,t,p.ScriptTarget.Latest,!0),i=(n.parseDiagnostics??[]).map(o=>{let a=n.getLineAndCharacterOfPosition(o.start??0).line+1;return`${e}:${a}: ${p.flattenDiagnosticMessageText(o.messageText," ")}`}),s;return{sourceFile:n,get checker(){return s??=$t(n)},errors:i}}function $t(e){let t=r=>r===e.fileName||r==="/"+e.fileName,n={getSourceFile:r=>t(r)?e:void 0,getDefaultLibFileName:()=>"",writeFile:()=>{},getCurrentDirectory:()=>"/",getDirectories:()=>[],fileExists:t,readFile:r=>t(r)?e.text:void 0,useCaseSensitiveFileNames:()=>!0,getCanonicalFileName:r=>r,getNewLine:()=>`
|
|
4
|
+
`};return p.createProgram([e.fileName],{noLib:!0,noResolve:!0,allowJs:!0,target:p.ScriptTarget.Latest},n).getTypeChecker()}function Se(e,t){let n=[],r=(s,o,a)=>{if(!s)return;let l=w.isStringLiteralLike(s);n.push({specifier:l?s.text:s.getText(e),literal:l,line:e.getLineAndCharacterOfPosition(s.getStart(e)).line+1,kind:o,syntax:a})},i=s=>{if(w.isImportDeclaration(s))r(s.moduleSpecifier,Wt(s),"import");else if(w.isExportDeclaration(s))r(s.moduleSpecifier,Ht(s),"reexport");else if(w.isImportEqualsDeclaration(s)&&w.isExternalModuleReference(s.moduleReference))r(s.moduleReference.expression,s.isTypeOnly?"type":"value","require");else if(w.isImportTypeNode(s)&&w.isLiteralTypeNode(s.argument))r(s.argument.literal,"type","type-import");else if(w.isCallExpression(s)){let o=zt(s,t);o&&r(s.arguments[0],"value",o)}w.forEachChild(s,i)};return i(e),n}function Kr(e,t){let n=z(e,t);return n.errors.length?null:Se(n.sourceFile,()=>n.checker)}function zt(e,t){if(e.expression.kind===w.SyntaxKind.ImportKeyword)return"dynamic-import";if(w.isIdentifier(e.expression)&&e.expression.text==="require"&&!(typeof t=="function"?t():t).getSymbolAtLocation(e.expression))return"require"}function Wt(e){let t=e.importClause;if(t?.isTypeOnly)return"type";let n=t?.namedBindings;return!t?.name&&n&&w.isNamedImports(n)&&n.elements.length>0&&n.elements.every(r=>r.isTypeOnly)?"type":"value"}function Ht(e){let t=e.exportClause;return e.isTypeOnly||t&&w.isNamedExports(t)&&t.elements.length>0&&t.elements.every(n=>n.isTypeOnly)?"type":"value"}import{extname as yn}from"path";import{ts as b}from"@ts-morph/common";import{ts as h}from"@ts-morph/common";function te(e){for(let t=e.parent;t;t=t.parent)if(h.isFunctionLike(t))return t;return null}function ne(e,t,n=new Set){let r=new Set;for(e=L(e);h.isIdentifier(e)&&!r.has(e);){r.add(e);let i=v(e,t);if(!i||n.has(i))return;if(!h.isVariableDeclaration(i)||!i.initializer||!(i.parent.flags&h.NodeFlags.Const)||!h.isIdentifier(L(i.initializer)))return i;e=L(i.initializer)}}function v(e,t){if(h.isIdentifier(e)){let n=h.isShorthandPropertyAssignment(e.parent)?t.getShorthandAssignmentValueSymbol(e.parent):t.getSymbolAtLocation(e);return n?.valueDeclaration??n?.declarations?.find(r=>h.isImportSpecifier(r)||h.isImportClause(r)||h.isNamespaceImport(r))}if(e.kind===h.SyntaxKind.ThisKeyword){for(let n=e.parent;n;n=n.parent)if(h.isFunctionLike(n)&&!h.isArrowFunction(n))return n}}function nt(e){for(;h.isBindingElement(e);)e=e.parent.parent;return h.isParameter(e)}function L(e){for(;h.isParenthesizedExpression(e)||h.isAsExpression(e)||h.isTypeAssertionExpression(e)||h.isSatisfiesExpression(e)||h.isNonNullExpression(e);)e=e.expression;return e}function W(e,t,n=new Set,r=new Set){if(e=L(e),h.isPropertyAccessExpression(e)||h.isElementAccessExpression(e)){let o=W(e.expression,t,n,r);if(!o)return;let a=h.isPropertyAccessExpression(e)?e.name.text:I(e.argumentExpression);return{...o,path:[...o.path,a]}}let i=v(e,t);if(!i||r.has(i))return;if(r.add(i),n.has(i))return{binding:i,path:[],reassigned:!0};let s=Ut(i);return s?W(s,t,n,r):{binding:i,path:[],reassigned:!1}}function Ut(e){if(!h.isVariableDeclaration(e)||!e.initializer||!(e.parent.flags&h.NodeFlags.Const))return;let t=L(e.initializer);return h.isIdentifier(t)||h.isPropertyAccessExpression(t)||h.isElementAccessExpression(t)?t:void 0}function I(e){return e=L(e),h.isStringLiteralLike(e)||h.isNumericLiteral(e)?e.text:null}function H(e,t){return e.slice(0,Math.min(e.length,t.length)).every((n,r)=>n===null||t[r]===null||n===t[r])}function rt(e,t,n){let r=L(e),i=new Set;for(;h.isIdentifier(r);){let s=v(r,t);if(!s||i.has(s))return null;let o=qt(s,n);if(!o)return null;i.add(s),r=L(o)}return r}function qt(e,t){return h.isVariableDeclaration(e)&&e.parent.flags&h.NodeFlags.Const&&!t.has(e)?e.initializer:void 0}import{ts as c}from"@ts-morph/common";function it(e,t){let n=new Set,r=u=>{for(let m of Xt(u)){let x=v(m,t);x&&n.add(x)}c.isCallExpression(u)&&Yt(u,t,n),c.forEachChild(u,r)};r(e);let i,s=()=>i??=Gt(e,t),o,a=()=>o??=Jt(s(),t),l,f=()=>l??=Qt(e,t,s().aliases);return{written:n,hasEscapedValue(u,m){return T(u,t,s().aliases,new Set,m).some(x=>f().some(S=>S.binding===x.binding&&S.path.length<=x.path.length&&H(S.path,x.path)))},usesParameter(u){return T(u,t,s().aliases).some(({binding:m})=>nt(m))},hasWrite(u,m,x,S,E=u){let C=W(u,t,n);if(C)return C.reassigned||m&&T(u,t,s().aliases,new Set,x).some(D=>(a().get(D.binding)??[]).some(g=>(!E||!(g.source.getStart()<=E.getStart()&&g.source.end>=E.end))&&(S||g.path.length<=D.path.length)&&H(g.path,D.path)))}}}function Gt(e,t){let n=new Map,r=[],i=[],s=o=>{nn(o,t,n),r.push(...Zt(o)),(c.isCallExpression(o)||c.isNewExpression(o))&&i.push(o),c.forEachChild(o,s)};s(e);for(let o of i)en(o,t,n);return{aliases:n,memberWrites:r,calls:i}}function Jt({aliases:e,memberWrites:t,calls:n},r){let i=new Map,s=(o,a,l,f)=>{for(let u of T(o,r,e,new Set,a)){let m=i.get(u.binding)??[];m.push({path:u.path,source:l,unknown:f}),i.set(u.binding,m)}};for(let o of t)s(o,[],o,!1);for(let o of n)for(let a of tn(o,r)){if(!a.unknown){s(a.target,a.path,o,!1);continue}for(let l of ie(a.target,r,e,new Set,a.path.slice(0,-1))){let f=i.get(l.binding)??[];f.push({path:l.path,source:o,unknown:!0}),i.set(l.binding,f)}}return i}function Qt(e,t,n){let r=t.getSymbolAtLocation(e);return r?t.getExportsOfModule(r).flatMap(i=>{let o=(i.flags&c.SymbolFlags.Alias?t.getAliasedSymbol(i):i).valueDeclaration;if(!o||o.getSourceFile()!==e)return[];let a=c.isVariableDeclaration(o)?o.initializer:o;return a?ie(a,t,n,new Set).filter(l=>l.binding!==o):[]}):[]}function Yt(e,t,n){if(!c.isCallExpression(e)||e.questionDotToken)return;let r=L(e.expression);if(!(!c.isIdentifier(r)||r.text!=="eval"||v(r,t)))for(let i of t.getSymbolsInScope(e,c.SymbolFlags.Value|c.SymbolFlags.Alias)){let s=i.valueDeclaration??i.declarations?.[0];s&&n.add(s)}}function st(e){if(c.isBinaryExpression(e)&&e.operatorToken.kind>=c.SyntaxKind.FirstAssignment&&e.operatorToken.kind<=c.SyntaxKind.LastAssignment)return e.left;if((c.isPrefixUnaryExpression(e)||c.isPostfixUnaryExpression(e))&&(e.operator===c.SyntaxKind.PlusPlusToken||e.operator===c.SyntaxKind.MinusMinusToken))return e.operand;if(c.isForOfStatement(e)||c.isForInStatement(e))return e.initializer}function Xt(e){let t=st(e);return t?at(t):[]}function ot(e){let t=L(e);return t!==e?[t]:c.isSpreadElement(e)||c.isSpreadAssignment(e)?[e.expression]:c.isArrayLiteralExpression(e)?e.elements:c.isObjectLiteralExpression(e)?e.properties:c.isPropertyAssignment(e)?[e.initializer]:c.isBinaryExpression(e)&&e.operatorToken.kind===c.SyntaxKind.EqualsToken?[e.left]:[]}function at(e){return c.isIdentifier(e)?[e]:c.isShorthandPropertyAssignment(e)?[e.name]:ot(e).flatMap(at)}function Zt(e){let t=c.isDeleteExpression(e)?e.expression:st(e);return t?lt(t):[]}function lt(e){return c.isPropertyAccessExpression(e)||c.isElementAccessExpression(e)?[e]:ot(e).flatMap(lt)}function en(e,t,n){let r=se(e.expression,t);if(!r)return;let i=L(e.expression);(c.isPropertyAccessExpression(i)||c.isElementAccessExpression(i))&&xe(r,{expression:i.expression,path:[]},n);for(let[s,o]of r.parameters.entries()){let a=e.arguments?.[s];a&&!c.isSpreadElement(a)&&!o.dotDotDotToken&&B(o.name,{expression:a,path:[]},t,n)}}function se(e,t){if(e=L(e),c.isArrowFunction(e)||c.isFunctionExpression(e))return e;let n=c.isElementAccessExpression(e)?I(e.argumentExpression):null,r=n!==null&&c.isElementAccessExpression(e)?t.getTypeAtLocation(e.expression).getProperty(n):t.getSymbolAtLocation(e),i=c.isIdentifier(e)?v(e,t):r?.valueDeclaration,s=i&&(c.isVariableDeclaration(i)||c.isPropertyAssignment(i))?i.initializer:i;return s&&c.isFunctionLike(s)&&"body"in s&&s.body?s:void 0}function oe(e){let t=e.body;if(!t)return[];if(!c.isBlock(t))return[t];let n=[],r=i=>{c.isFunctionLike(i)||(c.isReturnStatement(i)&&i.expression&&n.push(i.expression),c.forEachChild(i,r))};return r(t),n}function tn(e,t){let n=L(e.expression),r=e.arguments??[],i=mn(e,t);if(i)return i;if(se(n,t))return[];let s=[...r];return(c.isPropertyAccessExpression(n)||c.isElementAccessExpression(n))&&s.push(n.expression),s.map(o=>({target:c.isSpreadElement(o)?o.expression:o,path:c.isIdentifier(o)&&c.isNamespaceImport(v(o,t)??o)?[null,null]:[null],unknown:!0}))}function nn(e,t,n){if(c.isVariableDeclaration(e)&&e.initializer&&B(e.name,{expression:e.initializer,path:[]},t,n),c.isBinaryExpression(e)&&[c.SyntaxKind.EqualsToken,c.SyntaxKind.AmpersandAmpersandEqualsToken,c.SyntaxKind.BarBarEqualsToken,c.SyntaxKind.QuestionQuestionEqualsToken].includes(e.operatorToken.kind)&&B(e.left,{expression:e.right,path:[]},t,n),c.isForOfStatement(e)){let r=c.isVariableDeclarationList(e.initializer)?e.initializer.declarations[0]?.name:e.initializer;r&&B(r,{expression:e.expression,path:[null]},t,n)}}function B(e,t,n,r){if(e=L(e),c.isPropertyAccessExpression(e)||c.isElementAccessExpression(e)){let i=W(e,n);i&&xe(i.binding,{...t,targetPath:i.path},r);return}if(c.isIdentifier(e)){xe(v(e,n),t,r);return}for(let i of rn(e))B(i.target,{...t,path:[...t.path,...i.path],shallowCopy:t.shallowCopy||i.shallowCopy,arrayRestOffset:i.arrayRestOffset??t.arrayRestOffset},n,r),i.fallback&&B(i.target,{expression:i.fallback,path:[]},n,r)}function xe(e,t,n){if(!e)return;let r=n.get(e)??[];r.push(t),n.set(e,r)}function rn(e){return c.isObjectBindingPattern(e)||c.isArrayBindingPattern(e)?e.elements.flatMap((t,n)=>{if(!c.isBindingElement(t))return[];if(t.dotDotDotToken)return[{target:t.name,path:[],shallowCopy:!0,...c.isArrayBindingPattern(e)?{arrayRestOffset:n}:{}}];let r=c.isArrayBindingPattern(e)?String(n):re(t.propertyName??t.name);return[{target:t.name,path:[r],fallback:t.initializer}]}):c.isObjectLiteralExpression(e)?e.properties.flatMap(t=>c.isSpreadAssignment(t)?[{target:t.expression,path:[],shallowCopy:!0}]:c.isPropertyAssignment(t)?[{target:t.initializer,path:[re(t.name)]}]:c.isShorthandPropertyAssignment(t)?[{target:t.name,path:[t.name.text],fallback:t.objectAssignmentInitializer}]:[]):c.isArrayLiteralExpression(e)?e.elements.map((t,n)=>({target:t,path:[String(n)]})):c.isBinaryExpression(e)&&e.operatorToken.kind===c.SyntaxKind.EqualsToken?[{target:e.left,path:[],fallback:e.right}]:[]}function re(e){return c.isIdentifier(e)?e.text:I(c.isComputedPropertyName(e)?e.expression:e)}function T(e,t,n,r=new Set,i=[]){if(e=L(e),c.isPropertyAccessExpression(e)||c.isElementAccessExpression(e)){let l=c.isPropertyAccessExpression(e)?e.name.text:I(e.argumentExpression);return T(e.expression,t,n,r,[l,...i])}let s=fn(e);if(s)return s.flatMap(l=>T(l,t,n,r,i));if(c.isCallExpression(e))return pn(e,t,n,r,i);if(c.isObjectLiteralExpression(e)||c.isArrayLiteralExpression(e))return ut(e,i).flatMap(l=>T(l.expression,t,n,r,l.path));let o=v(e,t);if(!o||r.has(o))return[];let a=new Set(r).add(o);return[{binding:o,path:i},...(n.get(o)??[]).flatMap(l=>{let f=ct(l,i);return f?T(l.expression,t,n,a,f):[]})]}function ct(e,t){let n=e.targetPath??[];if(e.targetPath&&t.length<=n.length||n.length>t.length||!H(n,t))return null;let r=t.slice(n.length);if(e.shallowCopy&&r.length<2)return null;if(e.arrayRestOffset!==void 0){let[i,...s]=r;return[...e.path,i===null?null:String(Number(i)+e.arrayRestOffset),...s]}return[...e.path,...r]}function ut(e,t){return t.length<2?[]:c.isObjectLiteralExpression(e)?sn(e,t):an(e,t)}function sn(e,t){let n=[];for(let r of[...e.properties].reverse()){if(c.isSpreadAssignment(r)){n.push({expression:r.expression,path:t});continue}let i=re(r.name);if(!(t[0]!==null&&i!==null&&i!==t[0])&&(n.push(...on(r).map(s=>({expression:s,path:t.slice(1)}))),t[0]!==null&&i===t[0]))break}return n}function on(e){return c.isPropertyAssignment(e)?[e.initializer]:c.isShorthandPropertyAssignment(e)?[e.name]:c.isGetAccessorDeclaration(e)?oe(e):c.isMethodDeclaration(e)?[e]:[]}function an(e,t){let n=t[0]===null||e.elements.some(c.isSpreadElement);return e.elements.flatMap((r,i)=>!n&&String(i)!==t[0]?[]:c.isSpreadElement(r)?[{expression:r.expression,path:[null,...t.slice(1)]}]:[{expression:r,path:t.slice(1)}])}function ie(e,t,n,r,i=[]){let s=L(e);if(r.has(s))return[];let o=new Set(r).add(s),a=f=>ie(f.expression,t,n,o,f.path);if(c.isPropertyAccessExpression(s)||c.isElementAccessExpression(s)){let f=c.isPropertyAccessExpression(s)?s.name.text:I(s.argumentExpression);return a({expression:s.expression,path:[f,...i]})}let l=v(s,t);if(l){if(r.has(l))return[];let f=(n.get(l)??[]).flatMap(u=>{let m=ln(u,i);return m?ie(u.expression,t,n,new Set(o).add(l),m):[]});return[{binding:l,path:[...i,null]},...f]}return cn(s,i,t).flatMap(a)}function ln(e,t){let n=e.targetPath;if(n&&t.length<n.length&&H(n,t))return e.path;let r=e.shallowCopy&&t.length===0?[null,null]:[...t,null],i=ct(e,r);return i?i.slice(0,-1):null}function cn(e,t,n){if(c.isFunctionLike(e)&&"body"in e&&e.body)return oe(e).map(r=>({expression:r,path:t}));if(c.isObjectLiteralExpression(e)||c.isArrayLiteralExpression(e)){let r=t.length?[...t,null]:[null,null];return ut(e,r).map(i=>({...i,path:i.path.slice(0,-1)}))}return c.isConditionalExpression(e)?[e.whenTrue,e.whenFalse].map(r=>({expression:r,path:t})):c.isBinaryExpression(e)?[e.left,e.right].map(r=>({expression:r,path:t})):c.isCallExpression(e)||c.isNewExpression(e)?un(e,t,n):[]}function un(e,t,n){let r=se(e.expression,n);return(r?oe(r):[...e.arguments??[]]).map(s=>({expression:c.isSpreadElement(s)?s.expression:s,path:t}))}function fn(e){if(c.isConditionalExpression(e))return[e.whenTrue,e.whenFalse];if(!c.isBinaryExpression(e))return null;let t=e.operatorToken.kind;return t===c.SyntaxKind.EqualsToken?[e.right]:[c.SyntaxKind.AmpersandAmpersandToken,c.SyntaxKind.BarBarToken,c.SyntaxKind.QuestionQuestionToken,c.SyntaxKind.AmpersandAmpersandEqualsToken,c.SyntaxKind.BarBarEqualsToken,c.SyntaxKind.QuestionQuestionEqualsToken].includes(t)?[e.left,e.right]:null}function pn(e,t,n,r,i){if(pt(e,t)==="Object.assign")return e.arguments.flatMap((o,a)=>a===0||i.length>=2?T(o,t,n,r,i):[]);let s=se(e.expression,t);return!s||r.has(s)?[]:oe(s).flatMap(o=>T(o,t,n,new Set(r).add(s),i))}function mn(e,t){let n=e.arguments??[],r=n[0];if(!r)return null;switch(pt(e,t)){case"Reflect.set":return dn(r,n,t);case"Object.defineProperty":return ft(n[2])?[{target:r,path:[null],unknown:!0}]:[{target:r,path:[n[1]?I(n[1]):null],unknown:!1}];case"Object.defineProperties":return gn(n[1])?[{target:r,path:[null],unknown:!0}]:he(n[1]).map(i=>({target:r,path:[i],unknown:!1}));case"Object.assign":return n.slice(1).flatMap(he).map(i=>({target:r,path:[i],unknown:!1}));default:return null}}function dn(e,t,n){let r=t[1]?I(t[1]):null,i=t[3]??e,s=r===null?void 0:n.getTypeAtLocation(e).getProperty(r)?.valueDeclaration,o=L(e),a=!!s&&[c.SyntaxKind.PropertyAssignment,c.SyntaxKind.PropertyDeclaration,c.SyntaxKind.MethodDeclaration].includes(s.kind),f=c.isObjectLiteralExpression(o)&&o.properties.length===0||t[3]===void 0&&a;return[{target:i,path:f?[r]:[null],unknown:!f}]}function ft(e){return!e||he(e).some(t=>t===null||t==="get"||t==="set")}function gn(e){let t=e&&L(e);return!t||!c.isObjectLiteralExpression(t)?!0:t.properties.some(n=>!c.isPropertyAssignment(n)||ft(n.initializer))}function he(e){let t=L(e);return c.isObjectLiteralExpression(t)?t.properties.map(n=>c.isSpreadAssignment(n)?null:re(n.name)):[null]}function pt(e,t){let n=L(e.expression);return!c.isCallExpression(e)||!c.isPropertyAccessExpression(n)||!c.isIdentifier(n.expression)||v(n.expression,t)?null:`${n.expression.text}.${n.name.text}`}var bn=new Set([".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"]),mt=new WeakMap;function A(e,t){let n=mt.get(t);if(n)return n;let r=bn.has(yn(e))?z(e,t.text):null,i=r&&r.errors.length===0?r:null,s,o=()=>s??=Sn(t,i),a,l=()=>a??=xn(t),f,u=()=>f===void 0?f=i?it(i.sourceFile,i.checker):null:f,m=new Set,x=()=>u()?.written??m,S=g=>o().expressions.get(`${g.startIndex}:${g.endIndex}`),E=g=>{let d=o().identifiers.get(g.startIndex);if(!(!d||!r))return v(d,r.checker)},C=(g,d=!1,y=[],R=!0,N=g)=>{let M=S(g);if(!M||!r)return!1;let ue=N?S(N)??M:null;return u()?.hasWrite(M,d,y,R,ue)??!!E(ae(g))},D={available:!!r&&r.errors.length===0,moduleReferences(){return r&&r.errors.length===0?Se(r.sourceFile,()=>r.checker).map(g=>({...g,line:g.line+t.startPosition.row})):[]},constantInitializer(g){let d=E(g);return!d||!b.isVariableDeclaration(d)||!d.initializer||!(d.parent.flags&b.NodeFlags.Const)||x().has(d)?null:l().get(`${d.initializer.getStart()}:${d.initializer.end}`)??null},callableValue(g){let d=S(g);if(!d||!r)return null;let y=ne(d,r.checker,x()),R=y&&b.isVariableDeclaration(y)?y.initializer:y;return Dn(R,l())},hasObservedWrite:C,hasEscapedValue(g,d){let y=S(g);return!!y&&!!u()?.hasEscapedValue(y,d)},hasObservedCallableWrite(g,d=[],y=g){return C(g,!0,d,!1,y)},callableParameters(g){let d=[...o().expressions.values()].filter(y=>b.isFunctionLike(y)&&y.end+t.startIndex===g.endIndex&&y.getStart()+t.startIndex<=g.startIndex);return d.length!==1||!b.isFunctionLike(d[0])?null:d[0].parameters.filter(y=>y.name.getText()!=="this").map(y=>y.dotDotDotToken?"rest":y.initializer?"default":b.isIdentifier(y.name)?"direct":"destructured")},hasLocalBinding(g){let d=o().identifiers.get(ae(g).startIndex);return!!d&&!!r?.checker.getSymbolAtLocation(d)?.declarations?.length},isParameterBinding(g){let d=S(g);return!!d&&!!u()?.usesParameter(d)},valueDeclaration(g){if(!r)return null;let d=S(g),y=d&&ne(d,r.checker,x());if(!y||!b.isVariableDeclaration(y)||!b.isIdentifier(y.name))return null;let R=r.sourceFile.getLineAndCharacterOfPosition(y.getStart()),N=r.sourceFile.getLineAndCharacterOfPosition(y.end);return{name:y.name.text,startLine:R.line+t.startPosition.row,startColumn:R.character+(R.line===0?t.startPosition.column:0),endLine:N.line+t.startPosition.row,endColumn:N.character+(N.line===0?t.startPosition.column:0)}},importedValue(g){let d=S(g);return d&&r?U(d,r.checker,new Set):null},constructedValue(g){let d=S(g);return d&&r?dt(d,r.checker,new Set):null},resource(g){let d=ae(g),y=E(d);if(!y)return{resourceKey:`access:${g.startIndex}:${g.endIndex}`,identityBasis:"source-access-occurrence"};let R=g.text.slice(d.endIndex-g.startIndex).trim();return{resourceKey:`binding:${y.getStart()}:${y.end}:${R}`,identityBasis:"compiler-binding-access-path"}},isCaptured(g){let d=o().identifiers.get(g.startIndex),y=E(g),R=y&&te(y),N=d&&te(d);return!!R&&!!N&&R!==N},directParameterPosition(g){let d=S(g),y=d&&L(d);if(!y||!b.isIdentifier(y)||!r)return null;let R=ne(y,r.checker,x());if(!R||!b.isParameter(R)||!b.isIdentifier(R.name)||te(y)!==R.parent||x().has(R))return null;let M=R.parent.parameters.filter(ue=>ue.name.getText()!=="this").indexOf(R);return M>=0?M:null},tupleElements(g){let d=S(g);if(!d||!r||C(g,!0))return null;let y=rt(d,r.checker,x());if(!y||!b.isArrayLiteralExpression(y)||y.elements.some(N=>b.isSpreadElement(N)||b.isOmittedExpression(N)))return null;let R=y.elements.map(N=>l().get(`${N.getStart()}:${N.end}`));return R.every(N=>!!N)?R:null}};return mt.set(t,D),D}function Sn(e,t){let n=new Map,r=new Map;if(t){let i=s=>{let o=s.getStart(t.sourceFile)+e.startIndex;b.isIdentifier(s)&&n.set(o,s),r.set(`${o}:${s.end+e.startIndex}`,s),b.forEachChild(s,i)};i(t.sourceFile)}return{identifiers:n,expressions:r}}function xn(e){let t=new Map,n=r=>{t.set(`${r.startIndex-e.startIndex}:${r.endIndex-e.startIndex}`,r);for(let i of r.namedChildren)n(i)};return n(e),t}function dt(e,t,n){if(n.has(e))return null;if(n.add(e),b.isCallExpression(e)||b.isNewExpression(e))return U(e.expression,t,new Set);if(!b.isIdentifier(e))return null;let r=t.getSymbolAtLocation(e)?.valueDeclaration;return r&&b.isVariableDeclaration(r)&&r.initializer&&r.parent.flags&b.NodeFlags.Const?dt(r.initializer,t,n):null}function U(e,t,n){if(n.has(e))return null;if(n.add(e),e=L(e),b.isPropertyAccessExpression(e)||b.isElementAccessExpression(e)){let r=U(e.expression,t,n),i=b.isPropertyAccessExpression(e)?e.name.text:I(e.argumentExpression);return r&&i!==null&&(r.member===null||r.member==="default")?{module:r.module,member:i}:null}return b.isCallExpression(e)?Cn(e,t):hn(e,t,n)}function hn(e,t,n){if(!b.isIdentifier(e))return null;let r=t.getSymbolAtLocation(e)?.declarations?.[0];return r?b.isVariableDeclaration(r)&&r.initializer&&r.parent.flags&b.NodeFlags.Const?U(r.initializer,t,n):b.isBindingElement(r)?Rn(r,t,n):Ln(r):null}function Cn(e,t){if(!b.isIdentifier(e.expression)||e.expression.text!=="require")return null;let n=e.arguments[0];return t.getSymbolAtLocation(e.expression)?.valueDeclaration||e.arguments.length!==1||!n||!b.isStringLiteralLike(n)?null:{module:n.text,member:null}}function En(e){return b.isImportSpecifier(e)&&!e.isTypeOnly?{member:(e.propertyName??e.name).text}:b.isNamespaceImport(e)?{member:null}:b.isImportClause(e)&&!e.isTypeOnly?{member:"default"}:null}function Ln(e){let t=En(e);if(!t)return null;let{member:n}=t;for(let r=e.parent;r;r=r.parent){if(b.isImportClause(r)&&r.isTypeOnly)return null;if(b.isImportDeclaration(r))return b.isStringLiteralLike(r.moduleSpecifier)?{module:r.moduleSpecifier.text,member:n}:null}return null}function Rn(e,t,n){if(!b.isObjectBindingPattern(e.parent)||e.dotDotDotToken||e.initializer)return null;let r=e.parent.parent;if(!b.isVariableDeclaration(r)||!r.initializer||!(r.parent.flags&b.NodeFlags.Const))return null;let i=U(r.initializer,t,n),s=e.propertyName??e.name;if(!i||i.member!==null)return null;let o=Nn(s);return o===null?null:{module:i.module,member:o}}function Nn(e){return b.isIdentifier(e)||b.isStringLiteralLike(e)?e.text:null}function ae(e){let t=e.childForFieldName("object")??e.childForFieldName("array");return t?ae(t):e}function Dn(e,t){if(!e||!(b.isFunctionDeclaration(e)||b.isFunctionExpression(e)||b.isArrowFunction(e)))return null;let n=t.get(`${e.getStart()}:${e.end}`);return n?.type==="export_statement"?n.childForFieldName("declaration"):n??null}var vn=4;function gt(e,t,n,r={}){return yt(e,t,n,r.maxReexportDepth??vn,0,new Set)}function yt(e,t,n,r,i,s){let o=`${t}\0${n}`;if(s.has(o)||i>r)return[];s.add(o);let a=O(e,t).filter(l=>l.leaf===n);return a.length>0?a:Ke(e,t).flatMap(l=>l.sourcePath?l.kind==="named"&&!l.names.includes(n)?[]:yt(e,l.sourcePath,n,r,i+1,new Set(s)):[])}import{ts as j}from"@ts-morph/common";var Ce=new WeakMap;function bt(e){if(e.type!=="string"&&e.type!=="template_string")return null;if(Ce.has(e))return Ce.get(e);let t=wn(e.text);return Ce.set(e,t),t}function wn(e){let t=j.createSourceFile("literal.ts",e,j.ScriptTarget.Latest,!1,j.ScriptKind.TS);if(t.parseDiagnostics.length>0||t.statements.length!==1)return null;let n=t.statements[0];if(!j.isExpressionStatement(n))return null;let r=n.expression;return j.isStringLiteralLike(r)?{value:r.text,interpolated:!1}:j.isTemplateExpression(r)?{value:r.head.text+r.templateSpans.map(i=>"{}"+i.literal.text).join(""),interpolated:!0}:null}import{fromBinary as In}from"@bufbuild/protobuf";import{DocumentSchema as Tn,SymbolRole as le}from"@c4312/scip";import{zstdDecompressSync as An}from"zlib";var On=Oe("scip-chunk-occurrence-targets",{clearGroups:["whole-project","definition-catalog","source-file"],maxEntries:256}),Mn=k("scip-chunk-occurrence-definitions",{clearGroups:["whole-project","definition-catalog"]}),St=1,kn=k("scip-chunk-occurrence-data-present",{clearGroups:["whole-project"]});function Ee(e){return kn.get(e,()=>{let t=e.get("SELECT length(occurrences) AS size FROM chunks LIMIT 1");return t!==void 0&&(t.size??0)>St})}function q(e,t){return On.get(e,t,()=>Pn(e,t))}function Le(e,t){return`${e}\0${t}`}function Pn(e,t){let n=e.get("SELECT id, position_encoding FROM documents WHERE relative_path = ?",t);if(!n)return{available:!1,reason:"no-document"};let r=e.all("SELECT occurrences FROM chunks WHERE document_id = ? ORDER BY chunk_index",n.id);if(r.length===0)return Ee(e)?{available:!0,targets:[],externalLeafKeys:new Set,locals:[]}:{available:!1,reason:"no-occurrence-data"};let i={targets:[],externalLeafKeys:new Set,locals:[],externalRanges:[]},s=J(e,t);for(let o of r){let a=Fn(o.occurrences);if(!a)return{available:!1,reason:"no-occurrence-data"};let l=_n(e,a);for(let f of a)Bn(f,n.position_encoding,s,l,i)}return{available:!0,...i}}function Fn(e){if(!e||e.length<=St)return null;try{return In(Tn,new Uint8Array(An(e))).occurrences}catch{return null}}function _n(e,t){let n=Mn.get(e,()=>new Map),r=new Set(t.filter(o=>o.symbol&&!o.symbol.startsWith("local ")&&!(o.symbolRoles&le.Definition)).map(o=>o.symbol)),i=[...r].filter(o=>!n.has(o)),s=He(e,i);for(let o of i)n.set(o,null);for(let o of s)n.set(o.symbol,o);for(let o of r){let a=n.get(o);a&&Fe(a.relativePath)}return n}function Bn(e,t,n,r,i){if(!e.symbol)return;let s=e.range[0];if(!Number.isInteger(s))return;let o=$(e.range,t,n);if(e.symbol.startsWith("local ")){o&&i.externalRanges.push(o),o&&i.locals.push(jn(e.symbol,o,e.symbolRoles));return}if((e.symbolRoles&le.Definition)!==0)return;let a=r.get(e.symbol);if(a){i.targets.push({sourceLine:s,...o?{sourceRange:o}:{},definition:a});return}o&&i.externalRanges.push(o);let l=Kn(e.symbol);l&&i.externalLeafKeys.add(Le(s,l))}function jn(e,t,n){return{symbol:e,line:t.startLine,startChar:t.startColumn,endLine:t.endLine,endChar:t.endColumn,definition:(n&le.Definition)!==0,write:(n&le.WriteAccess)!==0}}function Kn(e){if(e.startsWith("local "))return null;try{let t=_(e);return t.length>0?t:null}catch{return null}}function G(e,t){return!!(e&&t&&e.startLine===t.startLine&&e.startColumn===t.startColumn&&e.endLine===t.endLine&&e.endColumn===t.endColumn)}function xt(e,t,n){let r=A(e.file,e.root).importedValue(t),i=r?.member??n;if(!r||!i)return null;let s=r.member!==null?Vn(e,t):null;if(s)return s;let o=ke(e.db,e.file,r.module),a=o?gt(e.db,o,i):[];return a.length===1?a[0]:null}function Vn(e,t){let n=P(t);if(n.type!=="identifier"||V(e.db,e.file)?.freshness.semantic.state==="stale")return null;let r={startLine:n.startPosition.row,startColumn:n.startPosition.column,endLine:n.endPosition.row,endColumn:n.endPosition.column},i=q(e.db,e.file);if(!i.available)return null;let s=i.targets.filter(a=>a.definition.relativePath!==e.file&&G(a.sourceRange,r)),o=new Map(s.map(a=>[a.definition.symbol,a.definition]));return o.size===1?[...o.values()][0]:null}function ht(e,t){let n=F(e.db,t.relativePath)?.rootNode,r=n&&Hn(n,t);return n&&r?{context:{...e,file:t.relativePath,root:n},declaration:r}:null}function vi(e,t,n){let r=A(e.file,e.root);if(r.hasEscapedValue(t,n))return!0;let i=r.valueDeclaration(t);if(!i)return!1;let s=O(e.db,e.file).filter(l=>l.leaf===i.name&&l.startLine===i.startLine&&(l.startChar??0)<=i.startColumn&&l.endLine>=i.endLine);if(s.length!==1)return!1;let o=s[0].symbol,a=$n(e.db,o);return Pe(o,a),a.some(l=>l!==e.file&&zn(e,l,o,n))}function $n(e,t){return e.all(`SELECT DISTINCT d.relative_path FROM global_symbols gs
|
|
5
|
+
JOIN mentions m ON m.symbol_id = gs.id JOIN chunks c ON c.id = m.chunk_id
|
|
6
|
+
JOIN documents d ON d.id = c.document_id WHERE gs.symbol = ?`,t).map(n=>n.relative_path).sort()}function zn(e,t,n,r){let i=V(e.db,t),s=F(e.db,t)?.rootNode,o=q(e.db,t);if(!s||!i||i.freshness.semantic.state==="stale"||!o.available)return!0;let a=o.targets.filter(m=>m.definition.symbol===n),l=A(t,s);if(!l.available||a.length===0)return!0;let f=new Set(a),u=!1;return Q(s,m=>{if(u||!["identifier","property_identifier","shorthand_property_identifier","string","string_fragment","number"].includes(m.type))return;let x={startLine:m.startPosition.row,startColumn:m.startPosition.column,endLine:m.endPosition.row,endColumn:m.endPosition.column},S=a.filter(C=>G(C.sourceRange,x));if(S.length===0)return;for(let C of S)f.delete(C);let E=Wn(m);u=!E||l.hasObservedWrite(E,!0,r,!1,null)}),u||f.size>0}function Wn(e){let t=e.type==="string_fragment"?e.parent??e:e,n=t.parent&&(e.type==="property_identifier"||t.parent.type==="subscript_expression")?t.parent:t;return["identifier","shorthand_property_identifier","member_expression","subscript_expression"].includes(n.type)?n:null}function Ct(e,t){let n=A(e.file,e.root).callableValue(t);if(n)return{context:e,callable:n};let r=xt(e,t),i=r&&ht(e,r);if(!i)return null;let s=i.declaration,o=["function_declaration","function_expression","arrow_function","generator_function_declaration"].includes(s.type)?s:A(i.context.file,i.context.root).callableValue(s);return o?{context:i.context,callable:o}:null}function Hn(e,t){let n=[];for(let r of _e(e,["variable_declarator","function_declaration","generator_function_declaration","function_expression","arrow_function"])){let i=r.childForFieldName("name"),s=!i&&t.symbol.endsWith("/default().")&&qn(r);!s&&i?.text!==t.leaf||r.startPosition.row!==t.startLine||r.endPosition.row>t.endLine||r.startPosition.column<(t.startChar??0)||r.endPosition.row===t.endLine&&t.endChar&&r.endPosition.column>t.endChar||n.push(s?r:i)}return n.length===1?n[0]:null}function ce(e,t,n=[],r=new Set,i={file:e.file,node:t}){let s=P(t),o=`${e.file}:${s.startIndex}:${s.endIndex}:${JSON.stringify(n)}`;if(r.has(o))return!1;let a=new Set(r).add(o),l=A(e.file,e.root);if(l.hasObservedCallableWrite(s,n,i.file===e.file?i.node:void 0))return!0;let f=Et(s),u=f?.base??s,m=[...f?.properties??[],...n],x=l.constantInitializer(u);if(x)return ce(e,x,m,a,i);let S=l.importedValue(u);if(!S)return!1;let E=xt(e,u,m[0]),C=E&&ht(e,E);if(!C)return!1;let D=S.member===null?m.slice(1):m;return ce(C.context,C.declaration,D,a,i)}function Et(e){let t=P(e);if(!["member_expression","subscript_expression"].includes(t.type))return null;let n=t.childForFieldName("object"),r=t.type==="member_expression"?t.childForFieldName("property"):t.childForFieldName("index"),i=r?Un(r):null;if(!n||i===null)return null;let s=Et(n);return s?{base:s.base,properties:[...s.properties,i]}:{base:P(n),properties:[i]}}function Un(e){if(e.type==="property_identifier")return e.text;if(e.type==="number"){let n=Number(e.text.replaceAll("_",""));return Number.isFinite(n)?String(n):null}let t=bt(e);return t&&!t.interpolated?t.value:null}function qn(e){let t=e;for(;t.parent;){let n=P(t.parent);if(n.startIndex!==e.startIndex||n.endIndex!==e.endIndex)break;t=t.parent}return t.parent?.type==="export_statement"}import{existsSync as Jn}from"fs";import{SymbolRole as Qn}from"@c4312/scip";import{deserializeSCIP as Gn}from"@c4312/scip";function Lt(e,t){return Gn(Ae(e,{inputKind:t,maxBytes:Te}))}var Re=new WeakMap;function Ne(e,t){if(V(e,t)?.freshness.semantic.state==="stale")return null;let n=q(e,t);if(n.available)return{targets:n.targets,externalLeafKeys:n.externalLeafKeys,externalRanges:n.externalRanges,locals:n.locals};if(n.reason==="no-document")return null;if(Ee(e))return{targets:[],externalLeafKeys:new Set,locals:[]};let r=er(e);return r?{targets:r.byFile.get(t)??[],externalLeafKeys:new Set,externalRanges:r.externalByFile.get(t)??[],locals:[]}:null}function Ui(e,t,n,r,i){let s=K(e,t)??me(e,t)?.callSites,o=(s??[]).filter(S=>S.line>=n&&S.line<=r);if(!s||o.length===0)return{available:!!s,targets:[],resolvedCallsites:0,unresolvedCallsites:0};let a=Ne(e,t);if(!a)return{available:!1,targets:[],resolvedCallsites:0,unresolvedCallsites:o.length};let l=[],f=[],u=0,m=0,x=0;for(let S of o){let E=a.targets.filter(d=>G(d.sourceRange,S.targetRange)),C=new Map(E.map(d=>[d.definition.symbol,d]));if(i&&![...C.keys()].some(d=>i.has(d))||(x++,f.push(...[...C.values()].map(d=>({...d,sourceLine:S.line,sourceOwner:S.owner,calleeLeaf:d.definition.leaf}))),ve(e,t,S))||C.size!==1)continue;let D=[...C.values()][0],g=De(e,t,S,D.definition);g.implementationStatus==="established"&&m++,u++,l.push({...D,...g,sourceLine:S.line,sourceOwner:S.owner,calleeLeaf:D.definition.leaf})}return{available:!0,targets:l,resolvedCallsites:u,unresolvedCallsites:x-u,declarations:f,implementationUnresolvedCallsites:x-m}}function De(e,t,n,r){let i=Rt(e,t,n);if(!i?.bindings.available){let o=me(e,t)?.language;return o==="typescript"||o==="javascript"?{implementationStatus:"unresolved",implementationReason:"source-binding-unavailable"}:{implementationStatus:"established"}}if(n.kind==="new"&&!n.memberAccess&&(r.isTypeLike||r.leaf==="<constructor>"))return Xn(e,r);let s=Ct({db:e,file:t,root:i.root},i.target);return s&&s.context.file===r.relativePath&&Yn(r,s.callable)?{implementationStatus:"established"}:{implementationStatus:"unresolved",implementationReason:n.memberAccess?"member-value-and-runtime-dispatch-unproved":"indirect-callable-value-unproved"}}function Yn(e,t){let{startLine:n,startChar:r,endLine:i,endChar:s}=e;if(r===void 0||s===void 0||n===i&&r>=s)return!1;let o=t.startPosition,a=t.endPosition;return(o.row>n||o.row===n&&o.column>=r)&&(a.row<i||a.row===i&&a.column<=s)}function Xn(e,t){let n=F(e,t.relativePath)?.rootNode,r;return n&&Q(n,s=>{["class_declaration","abstract_class_declaration","class"].includes(s.type)&&Zn(s,t)&&(!r||s.endIndex-s.startIndex<r.endIndex-r.startIndex)&&(r=s)}),r?r.namedChildren.some(s=>s.type==="decorator")||r.parent?.type==="export_statement"&&r.parent.namedChildren.some(s=>s.type==="decorator")?{implementationStatus:"unresolved",implementationReason:"class-decorator-runtime-constructor-unproved"}:{implementationStatus:"established"}:{implementationStatus:"unresolved",implementationReason:"constructor-source-unproved"}}function Zn(e,t){let{startLine:n,startChar:r,endLine:i,endChar:s}=t;return r===void 0||s===void 0?!1:(e.startPosition.row<n||e.startPosition.row===n&&e.startPosition.column<=r)&&(e.endPosition.row>i||e.endPosition.row===i&&e.endPosition.column>=s)}function ve(e,t,n){let r=Rt(e,t,n);return r?ce({db:e,file:t,root:r.root},r.target):!1}function Rt(e,t,n){let r=n.targetExpressionRange??n.targetRange,i=F(e,t)?.rootNode;if(!r||!i)return null;let s=je(i,r.startLine,r.endLine,Be,r);return s?{root:i,target:s,bindings:A(t,i)}:null}function er(e){if(Me(),Re.has(e))return Re.get(e)??null;let t=tr(e);return Re.set(e,t),t}function tr(e){if(!e.generation.indexPath||!Jn(e.generation.indexPath))return null;try{let t=X(e),n=new Map(t.map(o=>[o.symbol,o])),r=Lt(e.generation.indexPath,"SCIP source-range call-target index"),i=new Map,s=new Map;for(let o of r.documents??[]){let a=o.relativePath;if(!a||e.isIgnored(a))continue;let{targets:l,externalRanges:f}=nr(e,a,o,n);i.set(a,l),s.set(a,f)}return{byFile:i,externalByFile:s}}catch{return null}}function nr(e,t,n,r){let i=[],s=[],o=J(e,t),a={1:"UTF-8",2:"UTF-16",3:"UTF-32"}[n.positionEncoding];for(let l of n.occurrences??[]){if(!l.symbol||(l.symbolRoles&Qn.Definition)!==0)continue;let f=r.get(l.symbol),u=l.range?.[0];if(!Number.isInteger(u))continue;let m=$(l.range,a,o);if(!f){m&&s.push(m);continue}i.push({sourceLine:u,...m?{sourceRange:m}:{},definition:f})}return{targets:i,externalRanges:s}}function ls(e,t,n={}){let r=wt(e,[t],{additive:n.additive,semantic:n.semantic,semanticEvidence:n.semanticEvidence}),i=n.callableOnly?(r.get(t.symbolId)??[]).filter(s=>We(s.symbol)||s.source==="ast-callsite"||s.source==="scip-occurrence"||s.source==="scip-declaration"):r.get(t.symbolId)??[];return typeof n.limit=="number"?i.slice(0,n.limit):i}function cs(e,t,n){return rr(e,[t],n).get(t.symbolId)??[]}function rr(e,t,n){let r=ar(e)?cr(e,t,{semantic:n.semantic!==!1,semanticEvidence:n.semanticEvidence}):lr(e,n.semanticEvidence);return typeof n.limit!="number"?new Map(t.map(i=>[i.symbolId,r.get(i.symbolId)??[]])):new Map(t.map(i=>[i.symbolId,(r.get(i.symbolId)??[]).slice(0,n.limit)]))}var ir=k("caller-rows",{clearGroups:["whole-project"]}),sr=k("targeted-caller-strategy",{clearGroups:["whole-project"]}),or=2e4;function ar(e){return sr.get(e,()=>(e.get("SELECT COUNT(*) AS count FROM global_symbols")?.count??0)>or)}function lr(e,t){return ir.get(e,()=>{let n=X(e),r=wt(e,n,{semanticEvidence:t}),i=new Map;for(let a of n)i.set(a.symbol,a.symbolId);let s=new Map,o=new Map;for(let a of n){let l=r.get(a.symbolId);!l||l.length===0||wr(a,l,i,s,o)}return s})}function cr(e,t,n){let r=n.semantic&&n.semanticEvidence?t.flatMap(u=>{let m=mr(e,u);return m?[m]:[]}):[],i=new Map(r.map(u=>[u.symbolId,u])),s=n.semanticEvidence?.referenceMap(e,r)??new Map,o=Ye(e,t),a=ur(e,t),l=new Map,f={astCallersByTarget:a,resolvedReferences:o,definitionBySymbolId:i,semanticReferences:s};for(let u of t)l.set(u.symbolId,fr(e,u,f));return l}function ur(e,t){let n=new Set(t.map(a=>a.symbol)),i=[...new Set(t.flatMap(a=>ze(e,"reverse",[a.relativePath])))].flatMap(a=>O(e,a)),s=new Map,o=It(e,i);for(let a of i)for(let l of o.get(a.symbolId)??[]){if(!n.has(l.symbol))continue;let f=s.get(l.symbol)??[];f.push({symbol:a.symbol,file:a.relativePath,source:"caller-map-inversion",callEvidence:l.source}),s.set(l.symbol,f)}return s}function fr(e,t,n){let r=[],i=new Set,s=o=>{if(o.symbol===t.symbol)return;let a=`${o.symbol}|${o.file}`;i.has(a)||(i.add(a),r.push(o))};for(let o of n.astCallersByTarget.get(t.symbol)??[])s(o);for(let o of n.resolvedReferences.get(t.symbolId)??[])o.file!==t.relativePath&&s({symbol:o.enclosingSymbol??o.file,file:o.file,source:"resolved-reference"});return pr(e,t,n,s),r}function pr(e,t,n,r){let i=n.definitionBySymbolId.get(t.symbolId);if(i)for(let s of n.semanticReferences.get(i.symbolId)??[]){if(s.file===t.relativePath||e.isIgnored(s.file))continue;let o=qe(O(e,s.file),s.line);r({symbol:o?.symbol??s.file,file:s.file,source:"semantic-reference"})}}function mr(e,t){let n=Xe().join(", "),r=Ze().join(", ");return e.get(`SELECT
|
|
7
|
+
d.id AS documentId,
|
|
8
|
+
gs.id AS symbolId,
|
|
9
|
+
gs.symbol,
|
|
10
|
+
d.relative_path AS relativePath,
|
|
11
|
+
COALESCE(der.start_line, c.start_line) AS startLine,
|
|
12
|
+
COALESCE(der.end_line, c.end_line) AS endLine,
|
|
13
|
+
COALESCE(gs.display_name, '') AS leaf,
|
|
14
|
+
NULL AS parentTypeName,
|
|
15
|
+
CASE WHEN gs.kind IN (${n}) OR gs.symbol LIKE '%().' THEN 1 ELSE 0 END AS isFunctionLike,
|
|
16
|
+
CASE WHEN gs.kind IN (${r}) THEN 1 ELSE 0 END AS isTypeLike,
|
|
17
|
+
gs.kind AS kind,
|
|
18
|
+
gs.documentation AS documentation,
|
|
19
|
+
gs.enclosing_symbol AS enclosingSymbol
|
|
20
|
+
FROM global_symbols gs
|
|
21
|
+
LEFT JOIN defn_enclosing_ranges der ON der.symbol_id = gs.id
|
|
22
|
+
LEFT JOIN chunks c ON c.document_id = der.document_id
|
|
23
|
+
JOIN documents d ON d.id = COALESCE(der.document_id, c.document_id)
|
|
24
|
+
WHERE gs.id = ?
|
|
25
|
+
LIMIT 1`,t.symbolId)??null}function wt(e,t,n={}){if(t.length===0)return new Map;let r=n.additive??!1,{astDefs:i,chunkOnlyDefs:s}=Ir(e,t),o=new Map,a=new Map,l=u=>{for(let[m,x]of u){let S=o.get(m);S||(S=[],o.set(m,S));let E=a.get(m);E||(E=new Map,a.set(m,E));for(let C of x){let D=`${C.symbol}|${C.chunkId}`,g=E.get(D);if(g){Dt(g.source)==="candidate"&&Dt(C.source)==="exact"&&Object.assign(g,C);continue}let d={...C};E.set(D,d),S.push(d)}}};i.length>0&&l(It(e,i)),n.semantic!==!1&&n.semanticEvidence&&l(vr(n.semanticEvidence.calleeMap(e,t)));let f=r?t:s;return f.length>0&&l(hr(e,f)),o}function It(e,t){let n=new Map,r=br(t,n),i=Qe(e);for(let[s,o]of r){let a=K(e,s);if(!a)continue;let l=Ue(o),f=ge(e,s,o),u=gr(Ne(e,s));for(let m of a){let x=m.owner===void 0?l.get(m.line):f.get(Z(m.owner));if(!x)continue;let S=dr(e,s,i,m,u);S&&n.get(x.symbolId).push(S)}}return n}function dr(e,t,n,r,i){if(ve(e,t,r))return null;let s=r.targetRange?Ie(r.targetRange):null;if(i&&s){let a=yr(i,s);if(a){let f=De(e,t,r,a.definition).implementationStatus==="unresolved"?"scip-declaration":r.owner!==void 0?"scip-occurrence":"ast-callsite";return Nt(a,r,f)}if(i.targetsByRange.has(s)||i.externalRanges.has(s))return null}if(i?.externalLeafKeys.has(Le(r.line,r.calleeLeaf)))return null;let o=Sr(e,t,n,r);return o?Nt(o,r,"ast-callsite"):null}function Nt(e,t,n){return{symbol:e.symbol,file:e.file,chunkId:t.line,source:n,callsiteLine:t.line,...t.kind==="jsx-render"?{kind:"jsx-render"}:{}}}function Ie(e){return`${e.startLine}:${e.startColumn}:${e.endLine}:${e.endColumn}`}function gr(e){if(!e)return null;let t=new Map;for(let n of e.targets){if(!n.sourceRange)continue;let r=Ie(n.sourceRange),i=t.get(r)??[];i.push(n.definition),t.set(r,i)}return{targetsByRange:t,externalLeafKeys:e.externalLeafKeys,externalRanges:new Set((e.externalRanges??[]).map(Ie))}}function yr(e,t){let n=e.targetsByRange.get(t);if(!n?.length)return null;let r=n[0];return n.some(i=>i.symbol!==r.symbol)?null:{symbol:r.symbol,file:r.relativePath,definition:r}}function Dt(e){return e==="scip-occurrence"||e==="semantic-callee"?"exact":"candidate"}function br(e,t){let n=new Map;for(let r of e){let i=n.get(r.relativePath);i?i.push(r):n.set(r.relativePath,[r]),t.set(r.symbolId,[])}for(let r of n.values())r.sort((i,s)=>i.endLine-i.startLine-(s.endLine-s.startLine));return n}function Sr(e,t,n,r){let i=$e(e,t,r.calleeLeaf);if(i){let a=de(t,n.get(i.importedName)??[]).filter(l=>fe(i.sourcePath,l.file));return a.length===1?a[0]:null}let s=de(t,n.get(r.calleeLeaf)??[]);if(s.length===0)return null;let o=xr(e,t,s,r.calleeQualifier);return o||Je(e,t,s,r.memberAccess,r.calleeQualifier)}function xr(e,t,n,r){if(!r||pe(t)!=="clojure")return null;let s=Ve(e,t).filter(o=>o.kind==="namespace"&&o.localName===r&&o.sourcePath).map(o=>o.sourcePath);for(let o of s){let a=n.find(l=>fe(o,l.file));if(a)return a}return n.find(o=>/`([^`]+)`\//.exec(o.symbol)?.[1]===r)??null}function hr(e,t){if(t.length===0)return new Map;let n=Cr(e,t),r=new Map;for(let[i,s]of Dr(t)){let o=n.byDoc.get(i)??[];for(let[a,l]of Er(e,s,o,n))r.set(a,l)}return r}function Cr(e,t){let r=we(t.map(u=>u.documentId)).flatMap(u=>e.all(`SELECT c.document_id, c.id AS chunk_id, c.start_line, c.end_line, m.symbol_id
|
|
26
|
+
FROM mentions m
|
|
27
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
28
|
+
WHERE m.role != 1
|
|
29
|
+
AND c.document_id IN (${u.map(()=>"?").join(",")})`,...u)),i=new Map;for(let u of r)i.has(u.document_id)||i.set(u.document_id,[]),i.get(u.document_id).push(u);let o=we(r.map(u=>u.symbol_id)).flatMap(u=>e.all(`SELECT gs.id AS symbol_id, gs.symbol,
|
|
30
|
+
COALESCE(der.document_id, def_chunk.document_id) AS document_id
|
|
31
|
+
FROM global_symbols gs
|
|
32
|
+
LEFT JOIN defn_enclosing_ranges der ON der.symbol_id = gs.id
|
|
33
|
+
LEFT JOIN (
|
|
34
|
+
SELECT m.symbol_id, MIN(c.document_id) AS document_id
|
|
35
|
+
FROM mentions m
|
|
36
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
37
|
+
WHERE m.role = 1
|
|
38
|
+
AND m.symbol_id IN (${u.map(()=>"?").join(",")})
|
|
39
|
+
GROUP BY m.symbol_id
|
|
40
|
+
) def_chunk ON def_chunk.symbol_id = gs.id
|
|
41
|
+
WHERE gs.id IN (${u.map(()=>"?").join(",")})`,...u,...u)),a=we([...t.map(u=>u.documentId),...o.flatMap(u=>u.document_id===null?[]:[u.document_id])]),l=new Map(a.flatMap(u=>e.all(`SELECT id, relative_path FROM documents
|
|
42
|
+
WHERE id IN (${u.map(()=>"?").join(",")})`,...u).map(m=>[m.id,m.relative_path]))),f=new Map;for(let u of o)f.has(u.symbol_id)||f.set(u.symbol_id,{symbol:u.symbol,file:u.document_id!==null?l.get(u.document_id)??"":""});return{byDoc:i,docPaths:l,calleeInfo:f}}function Er(e,t,n,r){let i=new Map,s=[...n].sort((f,u)=>f.start_line-u.start_line||f.end_line-u.end_line),o=[...t].sort((f,u)=>f.startLine-u.startLine||f.endLine-u.endLine),a=new Set,l=0;for(let f of o){for(;l<s.length&&s[l].start_line<=f.endLine;)a.add(s[l]),l+=1;for(let u of a)u.end_line<f.startLine&&a.delete(u);i.set(f.symbolId,Nr(e,f,a,r))}return i}function Lr(e,t,n){let r=new Set;if(!t)return r;let i=Ge(e,t),s=Math.max(0,n.startLine),o=Math.min(i.length-1,n.endLine);for(let a=s;a<=o;a+=1)for(let l of i[a])r.add(l);return r}function Rr(e,t,n,r){if(!(e.start_line>=t.startLine&&e.end_line<=t.endLine)){if(!(e.start_line<=t.endLine&&e.end_line>=t.startLine))return!1;let o=_(n);if(!o||!r().has(o))return!1}return!0}function Nr(e,t,n,{docPaths:r,calleeInfo:i}){let s=new Set,o=[],a=null,l=()=>a??=Lr(e,r.get(t.documentId)??"",t);for(let f of n){if(f.symbol_id===t.symbolId)continue;let u=i.get(f.symbol_id);if(!u||!Rr(f,t,u.symbol,l))continue;let m=`${u.symbol}|${f.chunk_id}`;s.has(m)||(s.add(m),o.push({...u,chunkId:f.chunk_id,source:"scip-chunk"}))}return o}var vt=500;function we(e){let t=[...new Set(e)],n=[];for(let r=0;r<t.length;r+=vt)n.push(t.slice(r,r+vt));return n}function Dr(e){let t=new Map;for(let n of e){let r=t.get(n.documentId);r?r.push(n):t.set(n.documentId,[n])}return t}function vr(e){let t=new Map;for(let[n,r]of e){let i=[];for(let s of r)i.push({symbol:s.symbol,file:s.file,chunkId:-1,source:"semantic-callee",...s.callsiteLine===void 0?{}:{callsiteLine:s.callsiteLine},...s.kind==="jsx-render"?{kind:"jsx-render"}:{}});t.set(n,i)}return t}function wr(e,t,n,r,i){for(let s of t){let o=n.get(s.symbol);if(o===void 0||o===e.symbolId)continue;let a=r.get(o);a||(a=[],r.set(o,a),i.set(o,new Set));let l=`${e.symbol}|${e.relativePath}`;i.get(o).has(l)||(i.get(o).add(l),a.push({symbol:e.symbol,file:e.relativePath,source:"caller-map-inversion",callEvidence:s.source}))}}function Ir(e,t){let n=[],r=[];for(let i of t)pe(i.relativePath)&&K(e,i.relativePath)!==null?n.push(i):r.push(i);return{astDefs:n,chunkOnlyDefs:r}}export{Pr as a,ye as b,Fr as c,Se as d,Kr as e,A as f,gt as g,bt as h,G as i,xt as j,ht as k,vi as l,$n as m,Ct as n,Hn as o,ce as p,Et as q,Z as r,ge as s,et as t,Ne as u,Ui as v,ls as w,cs as x,rr as y,wt as z,Dt as A};
|
|
43
|
+
//# sourceMappingURL=chunk-ZHMRSZFD.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{a as A}from"./chunk-36SGVCGX.js";import{A as D}from"./chunk-4WTUBQ36.js";import{b as v,c as R}from"./chunk-FMRN2TRL.js";import{F as I,d as b,h as g,u as S,x as w}from"./chunk-5D2LVK7O.js";import{A as h}from"./chunk-FVULPZDF.js";function z(t,s,o={}){return x(t,s,o).rows}function G(t,s,o={}){return x(t,s,o)}function x(t,s,o){let{maxDepth:e=5,scope:c}=o,n=e===Number.MAX_SAFE_INTEGER?null:500;if(!Number.isSafeInteger(e)||e<0)throw new RangeError("Impact depth must be a non-negative safe integer.");let i=v(t,s);if(i.candidates.length>0)throw new Error(`Ambiguous symbol: ${s}. Use an exact SCIP symbol or file:line.`);let a=i.match;if(!a)return{rows:[],coverage:{status:"incomplete",edgeBasis:"reverse-static-call-or-reference-evidence",maxDepth:e,reachedDepth:0,perSymbolEvidenceLimit:n,remainingFrontierSymbols:0,reasons:["The requested symbol could not be resolved."]}};let l=[],m=new Set([a.symbolId]),N=new Set,d=[a],p=0,y=!1;for(let f=1;f<=e&&d.length!==0;f++){p=f;let u=E(t,d,c,n);y||=u.bounded,d=_(u.rows,f,m,N,l)}return l.sort((f,u)=>f.depth-u.depth||f.file.localeCompare(u.file)),{rows:l,coverage:C(l,e,p,n,d.length,y)}}function C(t,s,o,e,c,r){let n=c>0,i=[];n&&i.push(`${c} symbol(s) remain eligible beyond depth ${s}.`),r&&i.push(`At least one symbol had more than ${e} incoming evidence row(s).`);let a=t.filter(l=>l.symbol===l.file).length;return a>0&&i.push(`${a} consumer file(s) lack an exact owning symbol; further symbol propagation is unknown.`),i.length===0&&i.push("The discovered reverse evidence frontier was exhausted."),{status:a>0?"incomplete":n||r?"bounded":"accounted",edgeBasis:"reverse-static-call-or-reference-evidence",maxDepth:s,reachedDepth:o,perSymbolEvidenceLimit:e,remainingFrontierSymbols:c,reasons:i}}function E(t,s,o,e){let c=D(t,s,{...e===null?{}:{limit:e+1},semanticEvidence:A}),r=[],n=!1;for(let i of s){let a=c.get(i.symbolId)??[];e!==null&&a.length>e&&(n=!0);let l=e===null?a:a.slice(0,e);r.push(...$(t,i,o,l))}return{rows:r,bounded:n}}function _(t,s,o,e,c){let r=[];for(let n of t){let i=`${n.file}|${n.shortName}`;if(n.symbolId!==null){if(o.has(n.symbolId))continue;o.add(n.symbolId)}else if(e.has(i))continue;e.add(i),c.push({symbol:n.symbol,shortName:n.shortName,file:n.file,depth:s}),n.symbolId!==null&&n.symbolMatch&&r.push(n.symbolMatch)}return r}function $(t,s,o,e){let c=e.filter(l=>!t.isIgnored(l.file)).filter(l=>!o||l.file.includes(o)),r=F(t,s,o,new Set(c.map(l=>l.file))),n=[...c,...r],i=[],a=new Set;for(let l of n){let m=P(t,s,l);!m||a.has(m.key)||(a.add(m.key),i.push(m.row))}return i}function F(t,s,o,e){let c=[];for(let r of k(t,s,o)){let n=S(t,r,s.symbol),i=w(t,r),a=new Set;for(let l of n??[]){let m=I(i,l);m&&M(m)&&a.add(m.symbol)}for(let l of a)c.push({symbol:l,file:r});a.size===0&&!e.has(r)&&c.push({symbol:r,file:r})}return c}function P(t,s,o){let e=R(t,o.symbol);return e?e.symbolId===s.symbolId||t.isIgnored(e.relativePath)||!M(e)?null:{key:`${e.symbolId}|${e.relativePath}`,row:{symbolId:e.symbolId,symbol:e.symbol,shortName:b(e.symbol),file:e.relativePath,symbolMatch:e}}:{key:`${o.file}|${o.symbol}`,row:{symbolId:null,symbol:o.symbol,shortName:b(o.symbol),file:o.file,symbolMatch:null}}}function k(t,s,o){let e=o?"AND instr(consumer_d.relative_path, ?) > 0":"",c=[s.symbolId,s.documentId];return o&&c.push(o),new Set(t.all(`SELECT DISTINCT consumer_d.relative_path
|
|
2
|
+
FROM mentions m
|
|
3
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
4
|
+
JOIN documents consumer_d ON consumer_d.id = c.document_id
|
|
5
|
+
WHERE m.symbol_id = ?
|
|
6
|
+
AND m.role != 1
|
|
7
|
+
AND c.document_id != ?
|
|
8
|
+
${t.pathExclusionsFor("consumer_d")}
|
|
9
|
+
${e}`,...c).map(r=>r.relative_path).filter(r=>!t.isIgnored(r)))}function M(t){if(t.symbol.startsWith("scip-clojure ")||h(t.relativePath)==="clojure")return!0;let s=g(t.symbol);return s==="method"||s==="type"||t.symbol.endsWith("().")}export{z as a,G as b};
|
|
10
|
+
//# sourceMappingURL=chunk-ZHSP366W.js.map
|