scip-query 0.24.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 +247 -1
- package/README.md +111 -124
- 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-BociKRpF.d.ts → call-graph-evidence-CUtj8V2I.d.ts} +1 -1
- 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-E65ELFKU.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-BHKK5RJY.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-6ILKOOGH.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-OHIV323X.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-2GJSD5GY.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-A4WEAK35.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-GHNPACNP.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-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-4FR6GQIT.js → chunk-VF5JZICY.js} +2 -2
- 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-ATXPTSEI.js → chunk-X6RMKHJQ.js} +7 -7
- package/dist/{chunk-44IETFOU.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-ZLADLUE6.js +3 -0
- package/dist/chunk-ZO4YXUT6.js +4 -0
- package/dist/{chunk-MZPXPSUJ.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/{health-BI2a9WPy.d.ts → health-BtfmNrfa.d.ts} +5 -79
- 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 +1 -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.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.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 +1 -1
- 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 +15 -64
- 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.js +1 -1
- package/dist/queries/react-component-duplicates.js +1 -1
- package/dist/queries/react-hook-candidates.js +1 -1
- 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 +1 -1
- 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 +27 -23
- 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 +34 -0
- package/docs/analyzer-inventory.md +2 -2
- 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-H3P6BR5G.js +0 -2
- package/dist/call-graph-VTG2CUOQ.js +0 -2
- package/dist/chunk-26CT72HM.js +0 -2
- package/dist/chunk-2BMSSRBH.js +0 -2
- package/dist/chunk-2M2LSIMY.js +0 -7
- package/dist/chunk-2N6WBNDC.js +0 -29
- package/dist/chunk-2OOY75BW.js +0 -2
- package/dist/chunk-2USA3S3P.js +0 -3
- package/dist/chunk-2VAHDDLM.js +0 -133
- package/dist/chunk-2XWIUW5Z.js +0 -455
- package/dist/chunk-35NLDRZC.js +0 -2
- package/dist/chunk-3AF4TUFK.js +0 -3
- package/dist/chunk-3D4BOXW6.js +0 -20
- package/dist/chunk-3LO4FST5.js +0 -16
- package/dist/chunk-3WTY4LP2.js +0 -3
- package/dist/chunk-3Z5AMSK6.js +0 -29
- package/dist/chunk-4KBTHJLP.js +0 -2
- package/dist/chunk-5BIKR67W.js +0 -2
- package/dist/chunk-5PROPLHI.js +0 -2
- package/dist/chunk-5V7EPTII.js +0 -2
- package/dist/chunk-62LPZCBQ.js +0 -3
- package/dist/chunk-64O2JHQA.js +0 -2
- package/dist/chunk-6D4F5VWG.js +0 -10
- package/dist/chunk-6ERFBC3X.js +0 -3
- package/dist/chunk-6MFXCMZC.js +0 -2
- package/dist/chunk-6O7FACKB.js +0 -2
- package/dist/chunk-6TS3KOXR.js +0 -2
- package/dist/chunk-76QOU4PK.js +0 -3
- package/dist/chunk-7DUI77BN.js +0 -2
- package/dist/chunk-7F45LJKI.js +0 -2
- package/dist/chunk-7F7T6DCR.js +0 -2
- package/dist/chunk-7H6VHWWJ.js +0 -2
- package/dist/chunk-7HXT6YLU.js +0 -5
- package/dist/chunk-7KCZELVM.js +0 -2
- package/dist/chunk-7R4V5ES6.js +0 -6
- package/dist/chunk-7RIRIADH.js +0 -7
- package/dist/chunk-7ZLWLOGT.js +0 -2
- package/dist/chunk-AADQLOQ4.js +0 -38
- package/dist/chunk-AN76MGUE.js +0 -2
- package/dist/chunk-ANLNLY66.js +0 -2
- package/dist/chunk-AX7IDVFT.js +0 -2
- package/dist/chunk-B3X6KU75.js +0 -2
- package/dist/chunk-B7MPDEAK.js +0 -3
- package/dist/chunk-BBB5FBX4.js +0 -2
- package/dist/chunk-BJT7LSPK.js +0 -3
- package/dist/chunk-BJWFVAA5.js +0 -2
- package/dist/chunk-BKVWUP7Y.js +0 -2
- package/dist/chunk-BKZYTLGE.js +0 -35
- package/dist/chunk-BL6DCHQP.js +0 -2
- package/dist/chunk-BOW7SSQH.js +0 -43
- package/dist/chunk-C4RHHCKL.js +0 -7
- package/dist/chunk-C7C6AKAT.js +0 -117
- package/dist/chunk-CD6M6LS2.js +0 -16
- package/dist/chunk-CFE6PSG6.js +0 -2
- package/dist/chunk-CFNIGQMT.js +0 -2
- package/dist/chunk-CKBUBRYD.js +0 -2
- package/dist/chunk-CZW5MZ5B.js +0 -2
- package/dist/chunk-DBBZ63ZX.js +0 -2
- package/dist/chunk-DBN7DMJB.js +0 -18
- package/dist/chunk-DUULLZHZ.js +0 -3
- package/dist/chunk-DV5Y5NOS.js +0 -2
- package/dist/chunk-DZOIKCTM.js +0 -3
- package/dist/chunk-E4PKTOL3.js +0 -2
- package/dist/chunk-E7QR35ST.js +0 -2
- package/dist/chunk-EFSXAINW.js +0 -2
- package/dist/chunk-EHVEIEQN.js +0 -18
- package/dist/chunk-EHYDXE3Z.js +0 -2
- package/dist/chunk-EP63Y6LD.js +0 -2
- package/dist/chunk-EPX6NQN6.js +0 -4
- package/dist/chunk-ETC674NS.js +0 -5
- package/dist/chunk-F5GSBHC6.js +0 -3
- package/dist/chunk-FH3DGXC6.js +0 -2
- package/dist/chunk-FI7VGOR4.js +0 -16
- package/dist/chunk-FJF6VO2P.js +0 -2
- package/dist/chunk-FLMTCX5R.js +0 -2
- package/dist/chunk-FVFDOIM3.js +0 -2
- package/dist/chunk-G2HU5WRN.js +0 -2
- package/dist/chunk-G4ALYS4J.js +0 -2
- package/dist/chunk-G56I7K4W.js +0 -26
- package/dist/chunk-GC4DG2V5.js +0 -2
- package/dist/chunk-GG45PK4S.js +0 -4
- package/dist/chunk-GINH3YQU.js +0 -20
- package/dist/chunk-GTZZVLKJ.js +0 -2
- package/dist/chunk-GXXW5ZHH.js +0 -2
- package/dist/chunk-H5EXS3HM.js +0 -2
- package/dist/chunk-HAXXKRTD.js +0 -4
- package/dist/chunk-HEZWBAZY.js +0 -2
- package/dist/chunk-HMEWLMML.js +0 -2
- package/dist/chunk-HOBOVYPO.js +0 -11
- package/dist/chunk-HRFQ6GW5.js +0 -8
- package/dist/chunk-HX4X7KG3.js +0 -2
- package/dist/chunk-HYT2R7LX.js +0 -4
- package/dist/chunk-IKQVBVQL.js +0 -40
- package/dist/chunk-IW5XQG5G.js +0 -2
- package/dist/chunk-J6GLBBRK.js +0 -4
- package/dist/chunk-J7A4PWFX.js +0 -3
- package/dist/chunk-JCSAZ35V.js +0 -2
- package/dist/chunk-JDU2IV3A.js +0 -2
- package/dist/chunk-JFMEXGFE.js +0 -2
- package/dist/chunk-JFMI5SGB.js +0 -4
- package/dist/chunk-JJP37RGX.js +0 -57
- package/dist/chunk-JZ2A7LDM.js +0 -5
- package/dist/chunk-KMVGRIO2.js +0 -2
- package/dist/chunk-KNLQGXVH.js +0 -80
- package/dist/chunk-KVQCECPR.js +0 -2
- package/dist/chunk-KXXORBZ2.js +0 -4
- package/dist/chunk-L5KYH6U3.js +0 -35
- package/dist/chunk-L6XHYJPZ.js +0 -21
- package/dist/chunk-L7KTFEAV.js +0 -43
- package/dist/chunk-LDXHR5EL.js +0 -23
- package/dist/chunk-LEECKFCJ.js +0 -2
- package/dist/chunk-MHGDSBFX.js +0 -2
- package/dist/chunk-MLQVVDG3.js +0 -74
- package/dist/chunk-MOKUWRHO.js +0 -3
- package/dist/chunk-MPYAPMNE.js +0 -2
- package/dist/chunk-MTDBHTSF.js +0 -2
- package/dist/chunk-MV6SPXCR.js +0 -7
- package/dist/chunk-MWN53KRN.js +0 -60
- package/dist/chunk-MXNGIEPU.js +0 -3
- package/dist/chunk-N55KIE46.js +0 -2
- package/dist/chunk-NB4D3BNM.js +0 -2
- package/dist/chunk-NGKBOT6G.js +0 -23
- package/dist/chunk-NJGKXKQF.js +0 -2
- package/dist/chunk-NJQISBL4.js +0 -8
- package/dist/chunk-NJT3ZEKY.js +0 -16
- package/dist/chunk-NKMKZP6A.js +0 -2
- package/dist/chunk-NODFZ6ED.js +0 -2
- package/dist/chunk-NSM5IEVW.js +0 -2
- package/dist/chunk-NTGUVNR2.js +0 -3
- package/dist/chunk-NU3KFF2O.js +0 -57
- package/dist/chunk-NWLVNU66.js +0 -557
- package/dist/chunk-NYKZMCRC.js +0 -4
- package/dist/chunk-O6BUXZEH.js +0 -6
- package/dist/chunk-ODPDP7A4.js +0 -3
- package/dist/chunk-OIAPEKMT.js +0 -3
- package/dist/chunk-OIOC5EHF.js +0 -3
- package/dist/chunk-ONPPQM4G.js +0 -2
- package/dist/chunk-OUHEZBYI.js +0 -2
- package/dist/chunk-OVGYW7UD.js +0 -29
- package/dist/chunk-OYKU4B3Y.js +0 -2
- package/dist/chunk-POBJ6FR2.js +0 -5
- package/dist/chunk-PSZPMMWN.js +0 -2
- package/dist/chunk-PXTRBKRK.js +0 -3
- package/dist/chunk-Q5JRIHT3.js +0 -4
- package/dist/chunk-Q7ATHARX.js +0 -2
- package/dist/chunk-Q7CSKIDM.js +0 -5
- package/dist/chunk-QBQE7ZJ5.js +0 -3
- package/dist/chunk-QH22UIXP.js +0 -5
- package/dist/chunk-QXCKQTKR.js +0 -60
- package/dist/chunk-RBAD4GJ2.js +0 -13
- package/dist/chunk-RMDPFPNW.js +0 -2
- package/dist/chunk-ROPJDEJZ.js +0 -4
- package/dist/chunk-RVZC6TJE.js +0 -2
- package/dist/chunk-S4QZBKSR.js +0 -3
- package/dist/chunk-SCPMZ73U.js +0 -2
- package/dist/chunk-SIAP5RGI.js +0 -73
- package/dist/chunk-SIX4RFR3.js +0 -3
- package/dist/chunk-SKKXTABJ.js +0 -16
- package/dist/chunk-SSRFUQBD.js +0 -2
- package/dist/chunk-SYVJEEUJ.js +0 -3
- package/dist/chunk-T3CZAZSI.js +0 -8
- package/dist/chunk-T6DWDI5E.js +0 -3
- package/dist/chunk-T6HRIROJ.js +0 -7
- package/dist/chunk-TAA7HXHE.js +0 -2
- package/dist/chunk-TJ2JQYT3.js +0 -2
- package/dist/chunk-TULNMD5T.js +0 -368
- package/dist/chunk-U2FPY5XA.js +0 -3
- package/dist/chunk-U3SXIMII.js +0 -38
- package/dist/chunk-U6KCHXJ4.js +0 -2
- package/dist/chunk-UH3XSKS5.js +0 -9
- package/dist/chunk-UIFUZVCC.js +0 -2
- package/dist/chunk-UXKURIVI.js +0 -2
- package/dist/chunk-V2RBODHL.js +0 -2
- package/dist/chunk-VBKUWB6N.js +0 -2
- package/dist/chunk-VBV6ALJE.js +0 -2
- package/dist/chunk-VDGFWCQV.js +0 -2
- package/dist/chunk-VDSDOEWF.js +0 -2
- package/dist/chunk-VZPWVCLN.js +0 -20
- package/dist/chunk-WDSFQDPN.js +0 -2
- package/dist/chunk-WFA35BGR.js +0 -7
- package/dist/chunk-WLMP3OCW.js +0 -2
- package/dist/chunk-WSA52GOR.js +0 -2
- package/dist/chunk-WYPL7GF7.js +0 -2
- package/dist/chunk-X3YVZAKZ.js +0 -5
- package/dist/chunk-X6OGVFIT.js +0 -2
- package/dist/chunk-XDAUYDFT.js +0 -2
- package/dist/chunk-XKXTR6ZI.js +0 -9
- package/dist/chunk-Y5DFAW5W.js +0 -4
- package/dist/chunk-YSYPDRD5.js +0 -3
- package/dist/chunk-ZFVPWH62.js +0 -5
- package/dist/chunk-ZGIHTH27.js +0 -2
- package/dist/chunk-ZGIQN2SX.js +0 -2
- package/dist/chunk-ZHG4WAHR.js +0 -12
- package/dist/chunk-ZKB2XUEN.js +0 -4
- package/dist/chunk-ZLMXIQLC.js +0 -21
- package/dist/chunk-ZMCQIHI4.js +0 -2
- package/dist/code-TAVIKWJI.js +0 -2
- package/dist/code-result-json-5FEFQCAQ.js +0 -2
- package/dist/command-descriptors-7BKH53Y3.js +0 -343
- package/dist/dataflow-GFBTVDH3.js +0 -2
- package/dist/dependence-slice-GWGQCODG.js +0 -2
- package/dist/deps-4QHVDPYA.js +0 -2
- package/dist/direct-navigation-4UBC6HNW.js +0 -3
- package/dist/entry-map-QCTF4RVY.js +0 -2
- package/dist/files-M2UBF5HJ.js +0 -2
- package/dist/graph-evidence-Bjyky2V4.d.ts +0 -126
- package/dist/hierarchy-2UIHRLW4.js +0 -2
- package/dist/imports-WIE3YZOB.js +0 -2
- package/dist/members-YKD636DA.js +0 -2
- package/dist/methods-VDF4IMYG.js +0 -2
- package/dist/next-anchor-candidates-BwMczMvX.d.ts +0 -90
- package/dist/output-continuation-command-4UMDOOLO.js +0 -3
- package/dist/output-pagination-2GME6OPY.js +0 -19
- package/dist/project-reindex-XEQTRCV5.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 -79
- 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 -69
- 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 -49
- package/dist/queries/wrapper-candidates.js +0 -2
- package/dist/refs-JNK5CLM7.js +0 -2
- package/dist/refs-pagination-6BLRYGMV.js +0 -2
- package/dist/slice-PHPVNCWX.js +0 -2
- package/dist/source-snippet-_wrcgmZc.d.ts +0 -15
- package/dist/stats-OOJ74B32.js +0 -2
- package/dist/surface-MQX5MPIV.js +0 -2
- package/dist/symbol-resolution-DBLVXLBC.js +0 -2
- package/dist/system-JOPKV4OG.js +0 -2
- package/dist/trace-I2P2YFH4.js +0 -2
- package/dist/value-flow-JJVMF7NP.js +0 -2
- package/skills/concrete-plan/SKILL.md +0 -8
- package/skills/concrete-plan/agents/openai.yaml +0 -4
- package/skills/conductor/SKILL.md +0 -110
- package/skills/conductor/agents/openai.yaml +0 -4
- package/skills/principal-maintainability-review/SKILL.md +0 -273
- package/skills/principal-maintainability-review/agents/openai.yaml +0 -4
- package/skills/scip-calibrate/SKILL.md +0 -102
- package/skills/scip-calibrate/agents/openai.yaml +0 -4
- package/skills/scip-claim-audit/SKILL.md +0 -113
- package/skills/scip-claim-audit/agents/openai.yaml +0 -4
- package/skills/scip-probe-reachability/SKILL.md +0 -93
- package/skills/scip-probe-reachability/agents/openai.yaml +0 -4
- package/skills/scip-root-cause/SKILL.md +0 -160
- package/skills/scip-root-cause/agents/openai.yaml +0 -4
- package/skills/scip-system-compression/SKILL.md +0 -252
- package/skills/scip-system-compression/agents/openai.yaml +0 -4
- package/skills/scip-system-compression/references/compression-atlas.md +0 -116
- package/skills/scip-system-compression/references/compression-patterns.md +0 -87
- package/skills/scip-twin-drift/SKILL.md +0 -109
- package/skills/scip-twin-drift/agents/openai.yaml +0 -4
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as H,b as U,c as ue,e as me,f as ye,g as B,h as _,l as he}from"./chunk-CN5EH7O3.js";import{Y as v,Z as Se,f as ce,g as le,h as fe,i as pe,j as J,q as de}from"./chunk-J5FJMODQ.js";import{e as se}from"./chunk-X6RMKHJQ.js";import{a as O}from"./chunk-QOIXNWQR.js";import{d as oe}from"./chunk-GZKFETP5.js";import{d as w,e as ge}from"./chunk-YULZRALL.js";import{a as A,e as x}from"./chunk-HGFDYOVB.js";import{q as ae,v as $}from"./chunk-TKD34PHN.js";import{i as ie}from"./chunk-62BDNPMI.js";import{existsSync as E}from"fs";import S from"path";var K=["tsconfig.json","tsconfig.app.json","tsconfig.node.json","tsconfig.base.json"];function z(i,e){let t=e?S.dirname(S.join(i,e)):i,r=S.resolve(i);for(;t.startsWith(r);){for(let s of K){let a=S.join(t,s);if(E(a))return a}let o=S.dirname(t);if(o===t)break;t=o}for(let o of K){let s=S.join(i,o);if(E(s))return s}return null}function be(i){let e=i.config.projectRoot,n=new Set(Be(e,i.config.semantic?.typescript?.tsconfigs)),t=O(i,{includeIgnored:!1,extensions:H});for(let r of t){let o=z(e,r);o&&n.add(S.resolve(o))}if(n.size===0){let r=z(e);r&&n.add(S.resolve(r))}return[...n].filter(r=>!Me(e,r)).sort((r,o)=>r.localeCompare(o))}function Be(i,e=[]){let n=new Set;for(let t of e){let r=S.isAbsolute(t)?t:S.join(i,t);E(r)&&n.add(S.resolve(r))}for(let t of _e(i))for(let r of K){let o=S.join(t,r);E(o)&&n.add(S.resolve(o))}if(n.size===0){let t=z(i);t&&n.add(S.resolve(t))}return[...n].filter(t=>!Me(i,t)).sort((t,r)=>t.localeCompare(r))}function _e(i){let e=S.join(i,"package.json");if(!E(e))return[];let n;try{n=JSON.parse(ie(e,"project package manifest"))}catch{return[]}return(Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages??[]).flatMap(r=>pe(i,r))}function Me(i,e){let n=S.relative(i,e).replace(/\\/g,"/");return n.startsWith("..")||n.includes("/node_modules/")||n.startsWith("node_modules/")||n.includes("/dist/")||n.startsWith("dist/")}import{performance as m}from"perf_hooks";function I(i,e,n){if(i.has(e))return i.get(e);let t=n();return i.set(e,t),t}import Fe from"path";import{realpathSync as Ie}from"fs";function We(i,e){return i.getReferences().map(n=>{let t=n.getNode();return W(t,e)})}function $e(i){let e=i;return typeof e.findReferences=="function"?e.findReferences():[]}function De(i,e,n,t){let r=[];for(let o of $e(i))for(let s of We(o,t))s.file===e.relativePath&&s.line>=e.startLine&&s.line<=e.endLine||r.push(s);for(let o of n)r.push(o);return k(r)}function Te(i,e,n,t){let r=[],o=n?.getStart();for(let s of i.getReferences()){let a=s.getNode();N(t,a.getSourceFile().getFilePath())===e&&(o!==void 0&&a.getStart()===o||r.push({location:W(a,t),node:a}))}return r}function W(i,e){let n=i.getSourceFile(),t=n.getLineAndColumnAtPos(i.getStart());return{file:N(e,n.getFilePath())??n.getBaseName(),line:t.line-1,column:t.column-1}}function Ce(i,e,n){let t=i.getSourceFile(),r=q(t,i),o=i.getText(),s=new RegExp(`\\b${de(o)}\\b`,"g"),a=t.getFullText().split(`
|
|
2
|
+
`),l=[];for(let f=0;f<a.length;f++){if(f===r)continue;let c=a[f]??"";s.lastIndex=0;let p;for(;(p=s.exec(c))!==null;)l.push({file:e,line:f,column:p.index})}return k(l.filter(f=>N(n,Fe.join(n,f.file))===e))}function V(i){for(let e=i;e;e=e.getParent()){let n=e.getKindName();if(n.includes("Type")||n==="InterfaceDeclaration"||n==="TypeAliasDeclaration")return!0;if(n==="CallExpression"||n==="NewExpression"||n==="ExpressionStatement")return!1}return!1}function q(i,e){return i.getLineAndColumnAtPos(e.getStart()).line-1}function k(i){let e=new Set,n=[];for(let t of i){let r=`${t.file}:${t.line}:${t.column}`;e.has(r)||(e.add(r),n.push(t))}return n}function N(i,e){let n=i||process.cwd(),t=xe(n,e);if(t)return t;try{return xe(Ie(n),Ie(e))}catch{return null}}function xe(i,e){let n=Fe.relative(i,e).replace(/\\/g,"/");return!n||n===".."||n.startsWith("../")?null:n}function ve(i,e,n,t){let r=Je(e,t);return r.size===0?new Map:Ke(i,n,r)}function Je(i,e){let n=new Map;for(let t of v(i,e)){let r=w(t.symbol)??t.leaf;if(!r)continue;let o=n.get(r);o||(o=[],n.set(r,o)),o.push(t)}return n}function Ke(i,e,n){let t=new Map,r=new Map;return e.forEachDescendant(o=>{for(let s of ze(i,o)){let a=n.get(s);if(!a)continue;let l=q(e,o);for(let f of a){if(l<f.startLine-1||l>f.endLine+1)continue;let c=Math.abs(l-f.startLine),p=r.get(f.symbolId);p!==void 0&&p<=c||(r.set(f.symbolId,c),t.set(f.symbolId,o))}}}),t}function ze(i,e){let n=[],t=r=>{r&&!n.includes(r)&&n.push(r)};if("getNameNode"in e&&typeof e.getNameNode=="function"){let r=e.getNameNode();t(r?.getText())}if("getName"in e&&typeof e.getName=="function"){let r=e.getName();t(r)}return i.Node.isIdentifier(e)&&t(e.getText()),n}function Y(i,e,n){let t=new Map,r=new Set,o=s=>{if(i.isFunctionLike(s)){let a=Ve(i,s),f=a.name?.getText(e)??(i.isConstructorDeclaration(s)?"constructor":void 0),c=e.getLineAndCharacterOfPosition(a.getStart(e)),p=n.filter(d=>!r.has(d.symbolId)&&d.leaf===f&&Ye(d,c));p.length===1&&(t.set(s,p[0]),r.add(p[0].symbolId))}i.forEachChild(s,o)};return o(e),s=>{for(let a=s.parent;a;a=a.parent)if(i.isFunctionLike(a))return t.get(a)}}function Ve(i,e){if(!i.isArrowFunction(e)&&!i.isFunctionExpression(e))return e;let n=e;for(;n.parent&&qe(i,n.parent);)n=n.parent;let t=n.parent;return t&&(i.isVariableDeclaration(t)||i.isPropertyDeclaration(t)||i.isPropertyAssignment(t))&&t.initializer===n?t:e}function qe(i,e){return i.isParenthesizedExpression(e)||i.isAsExpression(e)||i.isSatisfiesExpression(e)}function Ye(i,e){return e.line<i.startLine||e.line>i.endLine||e.line===i.startLine&&e.character<(i.startChar??0)?!1:e.line!==i.endLine||e.character<=(i.endChar??1/0)}var Ge=oe("ts-definition-leaf-candidates",{clearGroups:["definition-catalog"]});function ke(i,e,n,t){let r=Z(i,e),o=G(r.get(t)??[],n);if(o)return o;let s=[];for(let a of r.values())for(let l of a)((l.leaf||w(l.symbol)||"").includes(t)||l.symbol.includes(t))&&s.push(l);return G(s,n)}function X(i,e,n,t){return G(Z(i,e).get(t)??[],n)}function Ne(i,e){let n=new Map;for(let[t,r]of Z(i,e)){let o=r[0];o&&n.set(t,o)}return n}function Z(i,e){return Ge.get(i,e,()=>{let n=new Map;for(let t of v(i,e)){let r=t.leaf||w(t.symbol);if(!r)continue;let o=n.get(r);o||(o=[],n.set(r,o)),o.push({...t,leaf:r})}for(let t of n.values())t.sort((r,o)=>r.startLine-o.startLine||r.endLine-o.endLine||r.symbolId-o.symbolId);return n})}function G(i,e){let n=null,t=Number.POSITIVE_INFINITY;for(let r of i){let o=Math.abs(r.startLine-e);(o<t||o===t&&n&&r.startLine<n.startLine)&&(n=r,t=o)}return n}import Xe from"path";import{realpathSync as Ze}from"fs";function Pe(i,e){let n=new Map,t=new Map,r=null,o=()=>(r??=O(i,{extensions:H}),r),s=f=>I(t,f,()=>x("typescript.source-file-index",()=>{let c=new Map;for(let p of f.project.getSourceFiles())Re(c,p);return{project:f.project,sourceFiles:c}},()=>({tsconfigPath:f.tsconfigPath,indexedDocuments:o().length}))),a=(f,c)=>{let p=s(f),d=p.sourceFiles.get(c)??null;return d||(d=f.project.addSourceFileAtPathIfExists(c)??null,d&&Re(p.sourceFiles,d)),d?{project:p.project,sourceFile:d}:null},l=f=>U(f)?I(n,f,()=>{let c=Qe(i.config.projectRoot,f);if(!c)return null;for(let u of e){if(!u.loaded)continue;let y=s(u).sourceFiles.get(c);if(y)return{project:u.project,sourceFile:y}}let p=e.find(u=>u.fileNames?.has(c));if(p)return a(p,c);for(let u of e){if(!u.loaded)continue;let y=a(u,c);if(y)return y}let d=e[0];return d?a(d,c):null}):null;return{sourceFile:f=>l(f)?.sourceFile??null,sourceFileMatch:l,indexedTypeScriptLikeDocuments:o}}function Re(i,e){let n=Q(e.getFilePath());i.set(n,e);try{i.set(Q(Ze(n)),e)}catch(t){if(!$(t))throw t}}function Qe(i,e){try{return Q(ae(i,e,{inputKind:"indexed TypeScript source file"}).absolutePath)}catch(n){if(!$(n))throw n;return null}}function Q(i){return Xe.resolve(i)}function ee(i,e){for(let n of i)if(e===n.name||e.startsWith(`${n.name}/`))return n.name;return null}function we(i){let e=`${i.relativeDir}/src`;return[`${e}/index.ts`,`${e}/index.tsx`,`${e}/index.mts`,`${e}/index.cts`]}var et=32;function gn(i,e){let n=x("typescript.provider.load",()=>ue());if(!n)return _("ts-morph is not installed");let t=x("typescript.provider.tsconfig-discovery",()=>be(i));if(t.length===0)return _("no tsconfig found");try{let r=x("typescript.provider.project-bundles",()=>me(n,t),()=>({tsconfigs:t.length}));return tt(i,n,r)}catch(r){return _(r instanceof Error?r.message:String(r),t[0],t)}}function tt(i,e,n,t={}){return x("typescript.provider.construct",()=>new te(i,e,n),()=>({tsconfigs:n.length,reusedProjects:t.reusedProjects===!0}))}var te=class{constructor(e,n,t){this.db=e;this.tsMorph=n;this.projects=t;this.workspacePackages=fe(e.config.projectRoot),this.sourceFiles=Pe(e,t)}db;tsMorph;projects;language="typescript";importUsageCache=new Map;referencesCache=new Map;calleesCache=new Map;fileCalleesCache=new Map;signatureCache=new Map;definitionNodeCache=new Map;fileDefinitionNodeCache=new Map;indexedDefinitionLeafCache=new Map;packageImportReferenceIndex=null;packageExportIndex=null;workspacePackages;sourceFiles;availability(){let e=B(this.projects);return{available:!0,tsconfigPath:this.projects[0]?.tsconfigPath,tsconfigPaths:this.projects.map(n=>n.tsconfigPath),projectScope:e?"file-closure":"project",...e?{note:"compiler projects are file-scoped: callees, signatures, and import usage are served per file; references and hierarchies are unavailable"}:{}}}attachBatchFiles(e){if(B(this.projects))for(let n of new Set(e.map(t=>t.relativePath)))this.sourceFiles.sourceFile(n)}assertProjectWide(){if(B(this.projects))throw new Error(ye)}importUsage(e){return I(this.importUsageCache,e,()=>{let n=this.sourceFiles.sourceFile(e);if(!n)return[];let t=rt();return x("typescript.import-usage.file",()=>this.importUsageForSourceFile(e,n,t),()=>({file:e,...t}))})}referencesFor(e){return I(this.referencesCache,e.symbolId,()=>{let n=this.nodeForDefinition(e);return this.referencesForDefinitionNode(e,n)})}referencesForDefinitions(e,n={}){this.assertProjectWide();let t=new Map,r=A(),o=[];for(let c of e){let p=this.referencesCache.get(c.symbolId);p?t.set(c.symbolId,p):o.push(c)}if(o.length===0)return t;let s=o,a=n.exact?[]:o.filter(c=>!Le(c));if(a.length>=et){let c=this.referencesForDefinitionsBySymbolScan(a);if(this.cacheScannedReferenceResults(a,c,t),s=o.filter(p=>Le(p)),s.length===0)return t}let l=mt(s),f=[];for(let[c,p]of l){let d=je();x("typescript.references-map.file",()=>{let u=this.definitionNodesForFile(c);for(let y of p){r&&(d.cacheMisses+=1);let g=u.get(y.symbolId)??null;r&&(g?d.nodeHits+=1:d.nodeMisses+=1);try{let b=this.referencesForDefinitionNode(y,g,r?d:void 0);this.referencesCache.set(y.symbolId,b),t.set(y.symbolId,b)}catch{d.preciseSearchFailures+=1,f.push(y)}}},()=>({relativePath:c,definitions:p.length,...Oe(d)}))}if(f.length>0){let c=this.referencesForDefinitionsBySymbolScan(f);this.cacheScannedReferenceResults(f,c,t)}return t}cacheScannedReferenceResults(e,n,t){for(let r of e){let o=n.get(r.symbolId)??[];this.referencesCache.set(r.symbolId,o),t.set(r.symbolId,o)}}referenceFragmentsForFiles(e){this.assertProjectWide();let n=Se(this.db).filter(o=>U(o.relativePath)),t=e.filter(o=>this.sourceFiles.sourceFile(o)!==null),r=this.referencesForDefinitionsBySymbolScan(n,t);return he(n,r,t)}referencesForDefinitionsBySymbolScan(e,n){let t=A(),r=je(),o=new Map,s=new Set(e.map(c=>c.symbolId)),a=new Map(e.map(c=>[c.symbolId,c]));for(let c of e)o.set(c.symbolId,[]);let l=()=>{let c=t?m.now():0,p=n?this.packageImportReferencesForFiles(n):this.packageImportReferences();for(let d of e){let u=p.get(d.symbolId)??[];if(u.length>0){let y=o.get(d.symbolId)??[];y.push(...u),o.set(d.symbolId,y)}t&&(r.packageReferenceCount+=u.length)}t&&(r.packageRefsMs+=m.now()-c)},f=()=>{let c=new Map,p=new Map,d=this.hierarchyTargetsForDefinitions(e),u=new Set(e.map(g=>g.leaf).filter(Boolean)),y=t?m.now():0;for(let g of n??this.sourceFiles.indexedTypeScriptLikeDocuments()){if(this.db.isIgnored(g))continue;let b=this.sourceFiles.sourceFile(g);b&&(t&&(r.scanFiles+=1),this.addReferencesFromSourceFileScan(b,g,s,a,d,u,c,p,o,t?r:void 0))}t&&(r.scanMs+=m.now()-y)};return x("typescript.references-map.inverted-scan",()=>{l(),f();let c=t?m.now():0;this.addHierarchyMemberReferences(e,o,t?r:void 0),t&&(r.hierarchyMs+=m.now()-c);for(let[p,d]of o){let u=k(d);o.set(p,u),t&&(r.referenceCount+=u.length)}},()=>({definitions:e.length,...Oe(r)})),o}addReferencesFromSourceFileScan(e,n,t,r,o,s,a,l,f,c){let p=this.compilerCheckerForSourceFile(e),d=e.compilerNode,u=st(e),y=h=>{let M;return a.has(h)?M=a.get(h)??null:(M=this.referenceDefinitionFromCompilerSymbol(h),a.set(h,M)),c&&(M?c.targetHits+=1:c.targetMisses+=1),M},g=h=>{if(c&&(c.identifiers+=1),!s.has(h.text)&&!u.has(h.text))return;let M=this.compilerReferenceSymbol(p,h,c);if(!M)return;let C=y(M),D=I(l,M,()=>this.compilerSymbolKeys(M)),L=null,R=null,P=F=>{if(L??=Ee(d,h),at(F,n,L))return;if(!R){let re=d.getLineAndCharacterOfPosition(h.getStart(d));R={file:n,line:re.line,column:re.character}}let T=f.get(F.symbolId)??[];T.push(R),f.set(F.symbolId,T),c&&(c.requestedHits+=1)},j=gt(C,t,r);j&&P(j);for(let F of D)for(let T of o.get(F)?.values()??[])P(T)},b=h=>{this.tsMorph.ts.isIdentifier(h)&&g(h),this.tsMorph.ts.forEachChild(h,b)};b(d)}hierarchyTargetsMemo=null;hierarchyTargetsForDefinitions(e){let n=pt(e);if(this.hierarchyTargetsMemo?.key===n)return this.hierarchyTargetsMemo.targets;let t=se(this.db),r=`definitions:${n}`,o=!1,s=x("typescript.references-map.hierarchy-targets",()=>{if(t){let l=Ae.read(this.db,r,t);if(l&&l.projectRoot===this.db.config.projectRoot)return o=!0,ft(l,e)}let a=this.computeHierarchyTargets(e);return t&&Ae.write(this.db,r,t,{version:Ue,projectRoot:this.db.config.projectRoot,entries:[...a].map(([l,f])=>[l,[...f.values()].map(c=>c.symbol)])}),a},()=>({definitions:e.length,hit:o}));return this.hierarchyTargetsMemo={key:n,targets:s},s}computeHierarchyTargets(e){let n=new Map;for(let t of e){let r=this.nodeForDefinition(t),o=r?.compilerNode;if(!o||!this.isHierarchyMethod(o))continue;let s=o.parent;if(!this.isHierarchyContainer(s))continue;let a=this.compilerCheckerForSourceFile(r.getSourceFile()),l=a.getSymbolAtLocation(o.name);if(l)for(let f of this.hierarchyMemberSymbols(a,s,l))for(let c of this.compilerSymbolKeys(f)){let p=n.get(c)??new Map;p.set(t.symbolId,t),n.set(c,p)}}return n}hierarchyMemberSymbols(e,n,t){let r=new Set,o=new Set,s=(a,l,f)=>{if(!o.has(a)){o.add(a),r.add(l);for(let c of f){let p=c.getProperty(t.name);p&&s(c,p,this.hierarchyAncestorTypesForType(e,c))}}};return s(e.getTypeAtLocation(n),t,this.hierarchyAncestorTypes(e,n)),r}addHierarchyMemberReferences(e,n,t){let r=new Map,o=(l,f,c,p)=>{for(let d of this.hierarchyMemberSymbols(f,c,p))if(d!==p)for(let u of this.compilerSymbolLocations(d))l.push(u),t&&(t.hierarchyReferences+=1)},s=l=>{let f=this.nodeForDefinition(l),c=f?.compilerNode;if(!c||!this.isHierarchyMethod(c))return;let p=c.parent;if(!this.isHierarchyContainer(p))return;let d=this.compilerCheckerForSourceFile(f.getSourceFile()),u=d.getSymbolAtLocation(c.name);if(!u)return;let y=c.getSourceFile(),g=y.getLineAndCharacterOfPosition(c.name.getStart(y)),b={definition:l,location:{file:l.relativePath,line:g.line,column:g.character}},h=n.get(l.symbolId)??[];o(h,d,p,u),n.set(l.symbolId,h);let M=this.hierarchyRootMemberSymbols(d,p,u);for(let C of M){let D=r.get(C)??new Map;D.set(l.symbolId,b),r.set(C,D)}t&&(t.hierarchyDefinitions+=1)},a=l=>{for(let{definition:f}of l.values()){let c=n.get(f.symbolId)??[];for(let p of l.values())p.definition.symbolId!==f.symbolId&&(c.push(p.location),t&&(t.hierarchyReferences+=1));n.set(f.symbolId,c)}};for(let l of e)s(l);for(let l of r.values())l.size<2||(t&&(t.hierarchyFamilies+=1),a(l))}hierarchyRootMemberSymbols(e,n,t){let r=new Set,o=new Set,s=(a,l,f)=>{if(o.has(a))return;o.add(a);let c=!1;for(let p of f){let d=p.getProperty(t.name);d&&(c=!0,s(p,d,this.hierarchyAncestorTypesForType(e,p)))}if(!c)for(let p of this.compilerSymbolKeys(l))r.add(p)};return s(e.getTypeAtLocation(n),t,this.hierarchyAncestorTypes(e,n)),r}compilerSymbolKeys(e){return(e.declarations??[]).map(n=>{let t=n.getSourceFile();return`${t.fileName}\0${n.getStart(t)}\0${e.name}`})}compilerSymbolLocations(e){let n=[];for(let t of e.declarations??[]){let r=t.getSourceFile(),o=N(this.db.config.projectRoot,r.fileName);if(!o)continue;let s=t.name,a=r.getLineAndCharacterOfPosition((s??t).getStart(r));n.push({file:o,line:a.line,column:a.character})}return n}baseTypes(e,n){try{return e.getBaseTypes(n)??[]}catch{return[]}}hierarchyAncestorTypes(e,n){let t=new Set(this.hierarchyAncestorTypesForType(e,e.getTypeAtLocation(n)));for(let r of n.heritageClauses??[])for(let o of r.types)t.add(e.getTypeAtLocation(o));return[...t]}hierarchyAncestorTypesForType(e,n){let t=new Set(this.baseTypes(e,n));for(let r of n.getSymbol()?.declarations??[])if(this.isHierarchyContainer(r))for(let o of r.heritageClauses??[])for(let s of o.types)t.add(e.getTypeAtLocation(s));return[...t]}isHierarchyMethod(e){return this.tsMorph.ts.isMethodDeclaration(e)||this.tsMorph.ts.isMethodSignature(e)}isHierarchyContainer(e){return this.tsMorph.ts.isClassDeclaration(e)||this.tsMorph.ts.isClassExpression(e)||this.tsMorph.ts.isInterfaceDeclaration(e)}compilerReferenceSymbol(e,n,t){t&&(t.symbolLookups+=1);let r=e.getSymbolAtLocation(n);if(r){if((r.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return r;try{return t&&(t.aliasResolutions+=1),e.getAliasedSymbol(r)}catch{return r}}}calleesFor(e){return I(this.calleesCache,e.symbolId,()=>I(this.fileCalleesCache,e.relativePath,()=>this.calleeMapForFile(e.relativePath)).get(e.symbolId)??[])}calleesForDefinitions(e){let n=new Map;this.attachBatchFiles(e);let t=new Map;for(let r of e){let o=t.get(r.relativePath);o?o.push(r):t.set(r.relativePath,[r])}for(let[r,o]of t){let s=this.fileCalleesCache.get(r),a=new Set(o.map(f=>f.symbolId)),l=s??this.calleeMapForFile(r,a);for(let f of o){let c=l.get(f.symbolId)??[];this.calleesCache.set(f.symbolId,c),n.set(f.symbolId,c)}}return n}calleeCoverageForDefinitions(e){this.attachBatchFiles(e);let n=new Map,t=new Map;for(let r of e){let o=t.get(r.relativePath);o?o.push(r):t.set(r.relativePath,[r]),n.set(r.symbolId,{callSites:0,resolvedInRepository:0,resolvedExternal:0,unresolved:0})}for(let[r,o]of t){let s=this.sourceFiles.sourceFile(r);if(!s)continue;let a=this.compilerCheckerForSourceFile(s),l=s.compilerNode,f=new Map,c=Y(this.tsMorph.ts,l,o),p=d=>{if(this.tsMorph.ts.isCallExpression(d)||this.tsMorph.ts.isNewExpression(d)||He(this.tsMorph.ts,d)){let u=c(d),y=u?n.get(u.symbolId):void 0;y&&this.recordCallSiteCoverage(d,a,y,f)}this.tsMorph.ts.forEachChild(d,p)};p(l)}return n}callNodeExpression(e){return this.tsMorph.ts.isJsxOpeningElement(e)||this.tsMorph.ts.isJsxSelfClosingElement(e)?this.tsMorph.ts.isJsxNamespacedName(e.tagName)?null:e.tagName:e.expression}recordCallSiteCoverage(e,n,t,r){t.callSites+=1;let o=this.callNodeExpression(e),s=o?this.compilerSymbolForExpression(n,o):void 0;if(!s){t.unresolved+=1;return}let a=r.get(s);a===void 0&&(a=this.definitionFromCompilerSymbol(s),r.set(s,a)),a?t.resolvedInRepository+=1:t.resolvedExternal+=1}referencesForDefinitionNode(e,n,t){let r=t?m.now():0,o=this.packageImportReferencesForDefinition(e);if(t&&(t.packageRefsMs+=m.now()-r,t.packageReferenceCount+=o.length),!n)return o;let s=t?m.now():0,a=De(n,e,o,this.db.config.projectRoot);return t&&(t.semanticRefsMs+=m.now()-s,t.referenceCount+=a.length),a}signatureFor(e){return I(this.signatureCache,e.symbolId,()=>{let n=this.nodeForDefinition(e);if(!n||!this.tsMorph.Node.isFunctionDeclaration(n)&&!this.tsMorph.Node.isMethodDeclaration(n)&&!this.tsMorph.Node.isArrowFunction(n)&&!this.tsMorph.Node.isFunctionExpression(n)&&!this.tsMorph.Node.isConstructorDeclaration(n))return null;let t=n.getType().getCallSignatures()[0];if(!t)return null;let r=t.getParameters().map(s=>{let a=s.getDeclarations()[0];return(a?s.getTypeAtLocation(a).getText(a):s.getValueDeclaration()?.getType().getText()??"unknown").trim()}),o=t.getReturnType().getText(n);return`(${r.join(",")})=>${o.trim()}`})}importUsageForSourceFile(e,n,t){let r=[],o=new Map;for(let s of n.getImportDeclarations()){t.declarations+=1;let a=J(this.db,e,s.getModuleSpecifierValue()),l=s.getImportClause()?.isTypeOnly()??!1;for(let f of ne(s)){let c=yt(a,f,l,t),{bindingSymbol:p}=c;if(r.push(c),l||!f.localName||!p)continue;let d=o.get(f.localName);d?d.push(c):o.set(f.localName,[c])}}return o.size>0&&n.forEachDescendant(s=>{if(s.getKindName()!=="Identifier")return;let a=o.get(s.getText());if(!a||it(s))return;t.scannedIdentifiers+=1;let l=s.getSymbol()?.compilerSymbol;if(t.symbolLookups+=1,!!l){for(let f of a)if(f.bindingSymbol===l){f.references.push({location:W(s,this.db.config.projectRoot),node:s}),t.matchedReferences+=1;break}}}),r.map(s=>s.typeOnlyDeclaration?nt(e,s.sourcePath,s.entry):s.entry.identifier&&!s.bindingSymbol?(t.fallbackEntries+=1,this.valueImportUsageForEntry(e,s.sourcePath,s.entry)):this.valueImportUsageFromLocations(e,s.sourcePath,s.entry,s.references))}valueImportUsageForEntry(e,n,t){let r=t.identifier?t.identifier.findReferences():[],o=[];for(let s of r)for(let a of Te(s,e,t.identifier,this.db.config.projectRoot))o.push(a);return this.valueImportUsageFromLocations(e,n,t,o)}valueImportUsageFromLocations(e,n,t,r){let o=r.some(l=>!V(l.node)),s=r.some(l=>V(l.node)),a=t.isTypeOnly;return{importer:e,sourcePath:n,importedName:t.importedName,localName:t.localName,kind:t.kind,isTypeOnly:a,isUsed:a||r.length>0,isTypeUsed:a||s,isValueUsed:o,references:r.map(l=>l.location)}}packageImportReferencesForDefinition(e){return this.packageImportReferences().get(e.symbolId)??[]}packageImportReferencesForFiles(e){let n=new Map,t=new Set;for(let o of e){let s=this.sourceFiles.sourceFile(o);if(s)for(let a of s.getImportDeclarations()){let l=ee(this.workspacePackages,a.getModuleSpecifierValue());l&&t.add(l)}}if(t.size===0)return n;let r=this.packageExportsForNames(t);for(let o of e)this.addPackageImportReferencesForDocument(n,r,o);for(let[o,s]of n)n.set(o,k(s));return n}packageImportReferences(){if(this.packageImportReferenceIndex)return this.packageImportReferenceIndex;let e=new Map,n=this.packageExports();for(let t of this.sourceFiles.indexedTypeScriptLikeDocuments())this.addPackageImportReferencesForDocument(e,n,t);for(let[t,r]of e)e.set(t,k(r));return this.packageImportReferenceIndex=e,e}addPackageImportReferencesForDocument(e,n,t){if(this.db.isIgnored(t))return;let r=this.sourceFiles.sourceFileMatch(t);if(r)for(let o of r.sourceFile.getImportDeclarations())this.addPackageImportReferencesForDeclaration(e,n,t,o)}addPackageImportReferencesForDeclaration(e,n,t,r){let o=ee(this.workspacePackages,r.getModuleSpecifierValue());if(!o)return;let s=n.get(o);if(s)for(let a of ne(r)){if(a.kind!=="named"||!a.identifier)continue;let l=s.get(a.importedName);if(!l||l.size===0)continue;let f=Ce(a.identifier,t,this.db.config.projectRoot);f.length>0&&dt(e,l,f)}}packageExports(){return this.packageExportIndex?this.packageExportIndex:(this.packageExportIndex=this.packageExportsForNames(new Set(this.workspacePackages.map(e=>e.name))),this.packageExportIndex)}packageExportsForNames(e){let n=new Map;for(let t of this.workspacePackages){if(!e.has(t.name))continue;let r=new Map;for(let o of we(t))this.collectPackageExports(t,o,r,new Set);r.size>0&&n.set(t.name,r)}return n}collectPackageExports(e,n,t,r){if(r.has(n))return;r.add(n);let o=this.sourceFiles.sourceFile(n);if(o)for(let s of o.getExportDeclarations()){let a=s.getModuleSpecifierValue(),l=a?J(this.db,n,a):n;if(!l||!l.startsWith(`${e.relativeDir}/src/`))continue;let f=s.getNamedExports();if(f.length===0){if(s.isNamespaceExport())continue;this.collectPackageExports(e,l,t,r);continue}ht(f,t,c=>this.indexedDefinitionByLeaf(l,c))}}indexedDefinitionByLeaf(e,n){return I(this.indexedDefinitionLeafCache,e,()=>Ne(this.db,e)).get(n)??null}nodeForDefinition(e){return I(this.definitionNodeCache,e.symbolId,()=>this.definitionNodesForFile(e.relativePath).get(e.symbolId)??null)}definitionNodesForFile(e){return I(this.fileDefinitionNodeCache,e,()=>{let n=this.sourceFiles.sourceFile(e);return n?ve(this.tsMorph,this.db,n,e):new Map})}referenceDefinitionFromCompilerSymbol(e){return this.definitionFromCompilerSymbol(e,void 0,!0)}definitionFromCompilerSymbol(e,n,t=!1){let r=e.name,o=n?m.now():0,s=e.declarations??[];n&&(n.declarationsMs+=m.now()-o,n.declarationChecks+=s.length);for(let a of s){let l=n?m.now():0,f=a.getSourceFile(),c=N(this.db.config.projectRoot,f.fileName),p=f.getLineAndCharacterOfPosition(a.getStart(f)).line;if(n&&(n.declarationLocationMs+=m.now()-l),!c||this.db.isIgnored(c))continue;let d=this.indexedMatchForCompilerDeclaration(a,c,p,r,n,t);if(d)return{symbolId:d.symbolId,symbol:d.symbol,file:d.relativePath,line:d.startLine}}return null}indexedMatchForCompilerDeclaration(e,n,t,r,o,s){let a=o?m.now():0,l=this.compilerDeclarationName(e),f=s?X(this.db,n,t,r)??(l&&l!==r?X(this.db,n,t,l):null):ke(this.db,n,t,r);return o&&(o.indexedLookupMs+=m.now()-a),f}compilerDeclarationName(e){let n=e.name;return n&&this.tsMorph.ts.isIdentifier(n)?n.text:null}calleeMapForFile(e,n){let t=A(),r=0,o=0,s=0,a=0,l=0,f=0,c=0,p=0,d=t?ct():void 0;return x("typescript.callee-map.file",()=>{let u=t?m.now():0,y=this.sourceFiles.sourceFile(e);if(t&&(l=Math.round(m.now()-u)),!y)return new Map;let g=bt(this.db,e,t),b=g.definitions;if(t&&(f=g.durationMs),r=b.length,b.length===0)return new Map;let h=new Map,M=t?m.now():0,C=this.compilerCheckerForSourceFile(y),D=y.compilerNode,L=Y(this.tsMorph.ts,D,b);t&&(c=Math.round(m.now()-M));let R=new Map,P=F=>{if(this.tsMorph.ts.isCallExpression(F)||this.tsMorph.ts.isNewExpression(F)||He(this.tsMorph.ts,F)){t&&(o+=1);let T=this.semanticCalleeForCallNode(C,D,L,F,R,n,d);T&&(t&&(s+=1),ot(h,T.callerId,T.target))}this.tsMorph.ts.forEachChild(F,P)},j=t?m.now():0;return P(D),t&&(p=Math.round(m.now()-j)),Mt(h),a=h.size,h},()=>({relativePath:e,definitions:r,callNodes:o,resolvedCallees:s,outputRows:a,requestedDefinitions:n?.size??r,sourceFileLookupMs:l,definitionsLoadMs:f,checkerLookupMs:c,traversalMs:p,...d?lt(d):{}}))}semanticCalleeForCallNode(e,n,t,r,o,s,a){let l=this.requestedCallSiteOwner(t,r,s,a);if(!l)return null;let f=this.tsMorph.ts.isJsxOpeningElement(r)||this.tsMorph.ts.isJsxSelfClosingElement(r);if(f&&this.tsMorph.ts.isJsxNamespacedName(r.tagName))return null;let c=f?r.tagName:r.expression,p=this.compilerSymbolForExpression(e,c,a),d=this.profiledCalleeTarget(p,o,a);return d?{callerId:l.symbolId,target:{symbol:d.symbol,file:d.file,line:d.line,callsiteLine:Ee(n,r),...f?{kind:"jsx-render"}:{}}}:null}requestedCallSiteOwner(e,n,t,r){let o=r?m.now():0,s=e(n);return r&&(r.callerLookupMs+=m.now()-o),s?t&&!t.has(s.symbolId)?(r&&(r.skippedUnrequestedCallers+=1),null):s:null}profiledCalleeTarget(e,n,t){if(!e)return t&&(t.targetMisses+=1),null;if(t&&(t.targetSymbolHits+=1),n.has(e))return t&&(t.compilerSymbolCacheHits+=1),n.get(e)??null;t&&(t.compilerSymbolCacheMisses+=1);let r=t?m.now():0,o=this.definitionFromCompilerSymbol(e,t);return t&&(t.targetLookupMs+=m.now()-r),n.set(e,o),o}compilerSymbolForExpression(e,n,t){let r=t?m.now():0,o=e.getSymbolAtLocation(n);if(t&&(t.expressionSymbolMs+=m.now()-r),o){if((o.flags&this.tsMorph.ts.SymbolFlags.Alias)===0)return o;try{return e.getAliasedSymbol(o)}catch{return o}}t&&(t.typeFallbacks+=1);let s=t?m.now():0,a=e.getTypeAtLocation(n).getSymbol();return t&&(t.typeSymbolMs+=m.now()-s),a}compilerCheckerForSourceFile(e){return e.getProject().getTypeChecker().compilerObject}};function ne(i){let e=[],n=i.getDefaultImport();n&&e.push({identifier:n,importedName:"default",localName:n.getText(),kind:"default",isTypeOnly:i.getImportClause()?.isTypeOnly()??!1});let t=i.getNamespaceImport();t&&e.push({identifier:t,importedName:"*",localName:t.getText(),kind:"namespace",isTypeOnly:i.getImportClause()?.isTypeOnly()??!1});for(let r of i.getNamedImports())e.push(St(r,i));return e.length===0&&e.push({identifier:null,importedName:"*",localName:null,kind:"side-effect",isTypeOnly:!1}),e}function nt(i,e,n){return{importer:i,sourcePath:e,importedName:n.importedName,localName:n.localName,kind:n.kind,isTypeOnly:!0,isUsed:!0,isTypeUsed:!0,isValueUsed:!1,references:[]}}function rt(){return{declarations:0,entries:0,bindingSymbols:0,missingBindingSymbols:0,scannedIdentifiers:0,symbolLookups:0,matchedReferences:0,fallbackEntries:0}}function it(i){for(let e=i;e;e=e.getParent())if(e.getKindName()==="ImportDeclaration")return!0;return!1}function ot(i,e,n){let t=i.get(e);t||(t=[],i.set(e,t)),t.push(n)}function st(i){let e=new Set;for(let n of i.getImportDeclarations())for(let t of ne(n))t.localName&&e.add(t.localName);return e}function Ee(i,e){return i.getLineAndCharacterOfPosition(e.getStart(i)).line}function at(i,e,n){return e===i.relativePath&&n>=i.startLine&&n<=i.endLine}function Le(i){return i.symbol.includes("#")?ge(i.symbol)==="type"&&i.relativePath.endsWith(".d.ts"):!1}function ct(){return{callerLookupMs:0,expressionSymbolMs:0,typeSymbolMs:0,targetLookupMs:0,declarationsMs:0,declarationLocationMs:0,indexedLookupMs:0,compilerSymbolCacheHits:0,compilerSymbolCacheMisses:0,targetSymbolHits:0,targetMisses:0,typeFallbacks:0,declarationChecks:0,skippedUnrequestedCallers:0}}function lt(i){return{...i,callerLookupMs:Math.round(i.callerLookupMs),expressionSymbolMs:Math.round(i.expressionSymbolMs),typeSymbolMs:Math.round(i.typeSymbolMs),targetLookupMs:Math.round(i.targetLookupMs),declarationsMs:Math.round(i.declarationsMs),declarationLocationMs:Math.round(i.declarationLocationMs),indexedLookupMs:Math.round(i.indexedLookupMs)}}function je(){return{cacheHits:0,cacheMisses:0,nodeHits:0,nodeMisses:0,scanFiles:0,identifiers:0,symbolLookups:0,aliasResolutions:0,targetHits:0,targetMisses:0,requestedHits:0,scanMs:0,packageRefsMs:0,semanticRefsMs:0,packageReferenceCount:0,referenceCount:0,preciseSearchFailures:0,hierarchyDefinitions:0,hierarchyFamilies:0,hierarchyReferences:0,hierarchyMs:0}}var Ue=1,Ae=ce({kind:"typescript-hierarchy-targets",invalidation:le("typescript-hierarchy-targets"),serialize:i=>JSON.stringify(i),deserialize:i=>{try{let e=JSON.parse(i);return e.version!==Ue||typeof e.projectRoot!="string"||!Array.isArray(e.entries)?null:e}catch{return null}}});function ft(i,e){let n=new Map(e.map(r=>[r.symbol,r])),t=new Map;for(let[r,o]of i.entries){let s=new Map;for(let a of o){let l=n.get(a);l&&s.set(l.symbolId,l)}s.size>0&&t.set(r,s)}return t}function pt(i){let e=2166136261;for(let n of i)e^=n.symbolId,e=Math.imul(e,16777619)>>>0;return`${i.length}:${e.toString(16)}`}function Oe(i){return{...i,scanMs:Math.round(i.scanMs),packageRefsMs:Math.round(i.packageRefsMs),semanticRefsMs:Math.round(i.semanticRefsMs),hierarchyMs:Math.round(i.hierarchyMs)}}function dt(i,e,n){for(let t of e){let r=i.get(t)??[];r.push(...n),i.set(t,r)}}function He(i,e){if(!i.isJsxOpeningElement(e)&&!i.isJsxSelfClosingElement(e))return!1;let n=e.tagName;return i.isPropertyAccessExpression(n)?!0:i.isIdentifier(n)?/^[A-Z]/.test(n.text):!1}function ut(i){let e=new Set,n=[];for(let t of i){let r=`${t.symbol}|${t.file}|${t.line}|${t.callsiteLine??""}`;e.has(r)||(e.add(r),n.push(t))}return n}function mt(i){let e=new Map;for(let n of i){let t=e.get(n.relativePath);t?t.push(n):e.set(n.relativePath,[n])}return e}function yt(i,e,n,t){t.entries+=1;let r=n?null:e.identifier?.getSymbol()?.compilerSymbol??null;return!n&&e.identifier&&(r?t.bindingSymbols+=1:t.missingBindingSymbols+=1),{sourcePath:i,entry:e,typeOnlyDeclaration:n,bindingSymbol:r,references:[]}}function ht(i,e,n){for(let t of i){let r=t.getNameNode().getText(),o=t.getAliasNode()?.getText()??r,s=n(r);if(!s)continue;let a=e.get(o);a||(a=new Set,e.set(o,a)),a.add(s.symbolId)}}function gt(i,e,n){return i&&e.has(i.symbolId)?n.get(i.symbolId):void 0}function St(i,e){let n=i.getNameNode(),r=i.getAliasNode()??(n.getKindName()==="Identifier"?n:null);return{identifier:r,importedName:n.getText(),localName:r?.getText()??n.getText(),kind:"named",isTypeOnly:i.isTypeOnly()||(e.getImportClause()?.isTypeOnly()??!1)}}function bt(i,e,n){let t=n?m.now():0,r=v(i,e).sort((s,a)=>s.startLine-a.startLine||a.endLine-s.endLine),o=n?Math.round(m.now()-t):0;return{definitions:r,durationMs:o}}function Mt(i){for(let[e,n]of i)i.set(e,ut(n))}export{be as a,gn as b,tt as c};
|
|
3
|
+
//# sourceMappingURL=chunk-4XQ4O6IM.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{a as h}from"./chunk-VTY3VK6E.js";import{b as y}from"./chunk-MOQQBQRD.js";import{a as S}from"./chunk-36SGVCGX.js";import{q as b}from"./chunk-NZAXKGRL.js";import{b as v}from"./chunk-YNQCGEQE.js";import{b as g}from"./chunk-FMRN2TRL.js";import{d as u,e as d,j as m,s as f,t as p}from"./chunk-5D2LVK7O.js";function I(e,t,i={}){let o=x(e,t,i);return{definitions:o.definitions,referencedBy:o.referencedBy}}function x(e,t,i={}){let o=g(e,t);if(o.total>1)throw new Error(`Ambiguous symbol: ${t}. Use an exact symbol.`);let n=o.match;if(!n)return{definitions:[],referencedBy:[],referenceEvidence:[],claimSupport:null};let a=e.get("SELECT display_name, documentation FROM global_symbols WHERE id = ?",n.symbolId),l=p(a?.documentation??null),E=e.isIgnored(n.relativePath)?[]:[{relativePath:n.relativePath,startLine:n.startLine,endLine:n.endLine,signature:w(l,a?.display_name??null,n.symbol),source:B(e,n.relativePath,n.startLine,n.endLine)}],T=i.referenceContext??2,s=b(e,n,{semantic:i.semantic,semanticEvidence:S}).map(r=>{let c=y(e,r.file,r.line,T,d(n.symbol));return{relativePath:r.file,line:r.line,enclosingSymbol:r.enclosingSymbol,enclosingShort:r.enclosingSymbol?u(r.enclosingSymbol):"(top-level)",provenance:r.provenance,sourceStartLine:c?.startLine??null,sourceEndLine:c?.endLine??null,source:c?.source??null,sourceKind:c?.kind??"unavailable"}}),R=s.map(L);return{definitions:E,referencedBy:R,referenceEvidence:s.map(r=>({relativePath:r.relativePath,line:r.line,provenance:r.provenance,sourceKind:r.sourceKind})),claimSupport:P(s)}}function L(e){return{relativePath:e.relativePath,line:e.line,enclosingSymbol:e.enclosingSymbol,enclosingShort:e.enclosingShort,sourceStartLine:e.sourceStartLine,sourceEndLine:e.sourceEndLine,source:e.source}}function P(e){return{referenceAbsence:{status:"ineligible",scope:"observed reference sites",reason:"This source bundle does not establish complete compiler-binding or freshness coverage.",followup:null},callsitePredicates:{status:"ineligible",scope:"source windows around observed references",reason:"Line and name matching does not establish the referenced callee binding for every invocation.",followup:C(e)}}}function C(e){let t=[...new Set(e.map(i=>`${i.relativePath}:${i.line+1}`))];return t.length===0||t.length>24?null:`scip-query inspect ${t.map(i=>`--at ${h(i)}`).join(" ")} --view behavior`}function B(e,t,i,o){let n=v(e,t);if(!n||n.freshness.semantic.state==="stale")return null;let l=n.text.split(`
|
|
2
|
+
`).slice(i,o+1).join(`
|
|
3
|
+
`);return l.length>0?l:null}function w(e,t,i){let o=f(e);if(o&&!A(o))return o;let n=(t??"").trim();return n?m(i)&&!n.endsWith("()")?`${n}()`:n:u(i)}function A(e){return e.startsWith("undefined")||e.includes("|")||e.includes("```")}export{I as a,x as b};
|
|
4
|
+
//# sourceMappingURL=chunk-55UQAMZO.js.map
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import{a as k,h as J,k as W,l as z,r as H,s as G}from"./chunk-7WTPQ4NX.js";import{A as j,O as S,a as y}from"./chunk-FVULPZDF.js";import{e as E,g as $,i as P}from"./chunk-D3FDISIC.js";import{a as Q,d as B}from"./chunk-A2IIGFMJ.js";import{d as F}from"./chunk-PH52RA7D.js";import{d as R,e as L}from"./chunk-GVWX5T43.js";import{Ba as _,Ca as I,Da as A}from"./chunk-5TNQJUR2.js";var fe={"/":"namespace","#":"type",".":"term","[":"type-param",":":"meta","!":"macro"};function d(e){if(e.startsWith("local "))return{kind:"local",id:e.slice(6),raw:e};let n=e.split(" ");if(n.length<4)return{scheme:n[0]??"",manager:n[1]??"",packageName:n[2]??"",version:"",descriptors:[],raw:e};let t=n[0],i=n[1],r=e.slice(t.length+1+i.length+1),o;if(r.startsWith("`")){let l=r.indexOf("`",1);l===-1?(o=r.slice(1),r=""):(o=r.slice(1,l),r=r.slice(l+2))}else{let l=r.indexOf(" ");l===-1?(o=r,r=""):(o=r.slice(0,l),r=r.slice(l+1))}let s,a=r.indexOf(" ");a===-1?(s=r,r=""):(s=r.slice(0,a),r=r.slice(a+1));let c=me(r);return{scheme:t,manager:i,packageName:o,version:s,descriptors:c,raw:e}}function f(e){let n=d(e);if("kind"in n)return null;for(let t=n.descriptors.length-2;t>=0;t--){let i=n.descriptors[t];if(i?.suffix==="type")return i.name}return null}function me(e){let n=[],t=0;for(;t<e.length;){let i=pe(e,t,n.length===0)??ge(e,t);i.descriptor&&n.push(i.descriptor),t=i.next}return n}function pe(e,n,t){if(e[n]==="["){let r=e.indexOf("]",n+1);return{descriptor:{name:e.slice(n+1,r===-1?void 0:r),suffix:"type-param"},next:r===-1?e.length:r+1}}if(e[n]!=="("||!(t||n===0||q(e[n-1])))return;let i=e.indexOf(")",n+1);if(!(i===-1||e[i+1]==="."))return{descriptor:{name:e.slice(n+1,i),suffix:"parameter"},next:i+1}}function ge(e,n){if(e[n]==="`"){let i=e.indexOf("`",n+1);return i===-1?{descriptor:{name:e.slice(n+1),suffix:"term"},next:e.length}:U(e,e.slice(n+1,i),i+1)}let t=n;for(;n<e.length&&!q(e[n]);)n++;return U(e,e.slice(t,n),n)}function U(e,n,t){if(t>=e.length)return{descriptor:n?{name:n,suffix:"term"}:void 0,next:t};if(e[t]==="("){let r=e.indexOf(")",t+1);return r===-1?{descriptor:{name:n,suffix:"term"},next:t+1}:{descriptor:{name:n,suffix:"method"},next:r+(e[r+1]==="."?2:1)}}let i=fe[e[t]];return{descriptor:i?{name:n,suffix:i}:void 0,next:t+1}}function q(e){return e==="/"||e==="#"||e==="."||e==="("||e==="["||e===":"||e==="!"}function Y(e){let n=d(e);if("kind"in n&&n.kind==="local")return`local:${n.id}`;let t=n;if(t.descriptors.length===0)return t.raw;let i=[];for(let r of t.descriptors){let o=be(r);o&&i.push(o)}return i.join(":")}function be(e){let n=e.suffix==="namespace"?ye(e.name):e.name;return n?e.suffix==="method"?`${n}()`:n:""}function ye(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 K(e){let n=d(e);if("kind"in n&&n.kind==="local")return n.id;let t=n;return t.descriptors.length===0?"":t.descriptors[t.descriptors.length-1].name}function gn(e){let n=d(e);if("kind"in n&&n.kind==="local")return n.id;let t=n.descriptors,i=t[t.length-1];if(!i)return"";let r=t[t.length-2];return r&&r.suffix==="type"?`${r.name} ${i.name}`:i.name}function bn(e){let n=d(e);if("kind"in n&&n.kind==="local")return null;let t=n.descriptors,i=t[t.length-2];return i&&i.suffix==="type"?i.name:null}function p(e){let n=d(e);if("kind"in n&&n.kind==="local")return null;let t=n;return t.descriptors[t.descriptors.length-1]?.suffix??null}function yn(e){return e.endsWith("().")||p(e)==="method"}function N(e){let n=p(e);return n==="method"?!0:n!=="term"?!1:e.endsWith("().")?!0:e.startsWith("rust-analyzer ")&&e.includes("#")?!1:e.startsWith("scip-typescript ")?!/#[A-Za-z0-9_$]+\.$/.test(e):!0}function Sn(e){return p(e)==="namespace"}var Se=/^rust-analyzer\b.*[\s/]impl#\[[^\]]+\]\[[^\]]+\]/;function hn(e){return Se.test(e)}var he=new Set(["test","tests","_tests"]);function Dn(e){let n=d(e);if("kind"in n)return!1;for(let t=0;t<n.descriptors.length-1;t+=1){let i=n.descriptors[t];if(i?.suffix==="namespace"&&i.name&&he.has(i.name))return!0}return!1}function xn(e,n){let t=d(e),i=d(n);if("kind"in t||"kind"in i)return!1;let r=t.descriptors,o=i.descriptors;if(o.length!==r.length+1)return!1;for(let s=0;s<r.length;s++){let a=r[s],c=o[s];if(a.name!==c.name||a.suffix!==c.suffix)return!1}return!0}function _n(e,n){let t=d(e),i=d(n);if("kind"in t||"kind"in i)return!1;let r=t.descriptors,o=i.descriptors;if(o.length<=r.length)return!1;for(let s=0;s<r.length;s++){let a=r[s],c=o[s];if(a.name!==c.name||a.suffix!==c.suffix)return!1}return!0}import{fromBinary as Z}from"@bufbuild/protobuf";import{DocumentSchema as V,SymbolRole as ee}from"@c4312/scip";import{zstdDecompressSync as ne}from"zlib";var De=_("definition-occurrence-ranges",{clearGroups:["whole-project","definition-catalog"],maxEntries:64});function xe(e,n){return De.get(e,n,()=>{let t=new Map;for(let i of e.all("SELECT c.occurrences FROM chunks c JOIN documents d ON d.id = c.document_id WHERE d.relative_path = ? ORDER BY c.chunk_index",n))for(let[r,o]of _e(i.occurrences))t.has(r)||t.set(r,o);return t})}function _e(e){let n=new Map;if(!e||e.length<=1)return n;try{for(let t of Z(V,ne(e)).occurrences){let i=Ie(t);i&&t.symbol&&!n.has(t.symbol)&&n.set(t.symbol,i)}}catch{}return n}function Ie(e){let n=e.range;if(!(!(e.symbolRoles&ee.Definition)||n.length<3))return{start_line:n[0],start_char:n[1],end_line:n.length===4?n[2]:n[0],end_char:n.length===4?n[3]:n[2]}}function kn(e,n){return e.all(`SELECT gs.id, gs.symbol, der.document_id, der.start_line, der.start_char, der.end_line, der.end_char, d.relative_path, gs.display_name, gs.documentation
|
|
2
|
+
FROM global_symbols gs
|
|
3
|
+
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
4
|
+
JOIN documents d ON der.document_id = d.id
|
|
5
|
+
WHERE ${n.where}
|
|
6
|
+
${e.pathExclusionsFor("d")}
|
|
7
|
+
${te(n.orderBy)}
|
|
8
|
+
${ie(n.limit)}`,...n.params??[])}function Nn(e,n){return e.all(`SELECT
|
|
9
|
+
gs.id,
|
|
10
|
+
gs.symbol,
|
|
11
|
+
c.document_id,
|
|
12
|
+
MIN(c.start_line) AS start_line,
|
|
13
|
+
0 AS start_char,
|
|
14
|
+
MAX(c.end_line) AS end_line,
|
|
15
|
+
0 AS end_char,
|
|
16
|
+
d.relative_path,
|
|
17
|
+
gs.display_name,
|
|
18
|
+
gs.documentation
|
|
19
|
+
FROM global_symbols gs
|
|
20
|
+
JOIN mentions m ON m.symbol_id = gs.id
|
|
21
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
22
|
+
JOIN documents d ON c.document_id = d.id
|
|
23
|
+
WHERE m.role = 1
|
|
24
|
+
AND ${n.where}
|
|
25
|
+
${e.pathExclusionsFor("d")}
|
|
26
|
+
GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path, gs.display_name, gs.documentation
|
|
27
|
+
${te(n.orderBy)}
|
|
28
|
+
${ie(n.limit)}`,...n.params??[]).map(t=>({...t,...xe(e,t.relative_path).get(t.symbol)}))}function te(e){return e?`ORDER BY ${e}`:""}function ie(e){return typeof e=="number"?`LIMIT ${e}`:""}function re(e){return!e||!e.trim()?null:e.replace(/^```\w*\s*/,"").replace(/\s*```$/,"").replace(/^\(method\)\s*/,"").replace(/^\(property\)\s*/,"").replace(/^\(function\)\s*/,"").replace(/^\(class\)\s*/,"").replace(/^\(interface\)\s*/,"").replace(/^\(enum\)\s*/,"").replace(/^\(type alias\)\s*/,"").replace(/^\(const\)\s*/,"").replace(/^\(var\)\s*/,"").trim()||null}function oe(e){if(!e)return null;let n=X(e);if(n)return n.replace(/\n/g," ");let t=e.indexOf("|");if(t===-1)return e.replace(/\n/g," ");let i=e.slice(t+1);return(X(i)??i).replace(/\n/g," ")}function X(e){return/^```(?:\w+)?\s*\n?([\s\S]*?)\n?```/.exec(e.trimStart())?.[1]?.trim()||null}var Re=_("reference-occurrence-lines",{clearGroups:["whole-project","source-file"],maxEntries:64});function On(e,n,t){let i=Re.get(e,n,()=>{let r=e.all("SELECT c.occurrences FROM chunks c JOIN documents d ON d.id = c.document_id WHERE d.relative_path = ? ORDER BY c.chunk_index",n);if(r.length===0)return null;let o=new Map;try{for(let s of r){if(!s.occurrences||s.occurrences.length<=1)return null;let{occurrences:a}=Z(V,ne(s.occurrences));Le(a,o)}}catch{return null}return new Map([...o].map(([s,a])=>[s,[...a].sort((c,l)=>c-l)]))});return i===null?null:i.get(t)??[]}function Le(e,n){for(let t of e){if(!t.symbol||(t.symbolRoles&ee.Definition)!==0)continue;let i=t.range[0];if(i===void 0||!Number.isSafeInteger(i)||i<0)continue;let r=n.get(t.symbol)??new Set;r.add(i),n.set(t.symbol,r)}}function h(e){return{forFile(n,t){return se(e,n,t)},forFiles(n,t){let i=new Map;for(let r of n)i.set(r,se(e,r,t));return i}}}function se(e,n,t){let i={file:n},r=t.facts||t.identifiers;return t.text&&(i.text=Q(e,n)),t.lines&&(i.lines=B(e,n)),t.ast&&(i.ast=S(e,n)),t.imports&&(i.imports=G(e,n)),t.reexports&&(i.reexports=H(e,n)),r&&Ee(e,n,t,i),i}function Ee(e,n,t,i){let r=J(e,n),o=r.facts;t.facts&&(i.facts=o),r.unavailable&&(i.sourceFactsUnavailable=r.unavailable),t.identifiers&&o&&(i.identifiers=o.fileIdentifiers,i.identifierLineMap=o.identifierLineMap)}function Fe(e,n={}){if(f(e.symbol)!==null)return n.includeClassMemberFallbacks===!0;let r=(e.documentation??"").replace(/^```\w*\s*/,"").replace(/\s*```$/,"").trim();return/^(?:var|let|const|function|class|interface|type|enum)\b/.test(r)}function O(e,n,t={}){let i=new Map;for(let o of n)e.length>0&&!Fe(o,{includeClassMemberFallbacks:t.includeClassMemberFallbacks})||i.set(o.id,o);for(let o of e)i.set(o.id,o);let r=[...i.values()];return t.sort?r.sort((o,s)=>o.start_line-s.start_line||o.end_line-s.end_line||o.symbol.localeCompare(s.symbol)):r}function Xn(e){let n=new Map;for(let t of e){if(!t.leaf)continue;let i=n.get(t.leaf)??[];i.push(t),n.set(t.leaf,i)}return n}var ke=I("file-definitions",{clearGroups:["definition-catalog"]}),Ne=A("scoped-matched-definitions",{clearGroups:["definition-catalog"]}),Oe=I("file-function-like-definitions",{clearGroups:["definition-catalog"]}),ae=new WeakMap;function D(e,n,t={},i){return F(n),t.includeClassMemberFallbacks?C(e,n,void 0,{includeClassMemberFallbacks:!0},i):ke.get(e,n,()=>{let r=u(i,"evidence-read",()=>de(e,n));if(r)return r;let o=C(e,n,void 0,t,i);return u(i,"evidence-write",()=>{let s=L(e),a=h(e).forFile(n,{text:!0}).text;s&&a&&le.write(e,n,R(e,n,a),{projectFingerprint:s,definitions:o.map(c=>({...c}))})}),o})}function Me(e,n){return F(n),Oe.get(e,n,()=>{let t=de(e,n);return t?t.filter(i=>i.isFunctionLike):C(e,n,i=>i.isFunctionLike)})}var le=$({kind:"file-definitions",invalidation:P("file-definitions"),serialize:Ce,deserialize:we});function de(e,n){let t=L(e);if(!t)return null;let i=h(e).forFile(n,{text:!0}).text;if(!i)return null;let r=le.read(e,n,R(e,n,i));return r?Te(r,t,n):null}function Ce(e){return JSON.stringify(e)}function we(e){try{let n=JSON.parse(e);return!E(n)||typeof n.projectFingerprint!="string"||!Array.isArray(n.definitions)?null:{projectFingerprint:n.projectFingerprint,definitions:n.definitions}}catch{return null}}function Te(e,n,t){if(e.projectFingerprint!==n)return null;let i=[];for(let r of e.definitions){let o=ve(r,t);if(!o)return null;i.push(o)}return i}function ve(e,n){return!E(e)||!Ae(e)||!$e(e,n)||!Pe(e)||!Qe(e)?null:{symbolId:e.symbolId,symbol:e.symbol,documentId:e.documentId,startLine:e.startLine,startChar:e.startChar,endLine:e.endLine,endChar:e.endChar,relativePath:e.relativePath,leaf:e.leaf,parentTypeName:e.parentTypeName,isFunctionLike:e.isFunctionLike,isTypeLike:e.isTypeLike,kind:e.kind,documentation:e.documentation,enclosingSymbol:e.enclosingSymbol}}function Ae(e){return typeof e.symbolId=="number"&&typeof e.symbol=="string"&&typeof e.documentId=="number"}function $e(e,n){return typeof e.startLine=="number"&&(typeof e.startChar=="number"||e.startChar===void 0)&&typeof e.endLine=="number"&&(typeof e.endChar=="number"||e.endChar===void 0)&&e.relativePath===n}function Pe(e){return typeof e.leaf=="string"&&(typeof e.parentTypeName=="string"||e.parentTypeName===null)&&typeof e.isFunctionLike=="boolean"&&typeof e.isTypeLike=="boolean"&&(typeof e.kind=="number"||e.kind===null)}function Qe(e){return(typeof e.documentation=="string"||e.documentation===null)&&(typeof e.enclosingSymbol=="string"||e.enclosingSymbol===null)}function C(e,n,t,i={},r){let o=u(r,"primary-rows",()=>Be(e,n)),s=u(r,"fallback-rows",()=>je(e,n)),a=u(r,"merge-rows",()=>O(o,s,{sort:!0,includeClassMemberFallbacks:i.includeClassMemberFallbacks}).map(w));return t&&(a=a.filter(t)),u(r,"range-correction",()=>T(e,n,a,r,i.rangeCorrectionEvidence))}function u(e,n,t){return e?e(n,t):t()}function Be(e,n){return e.all(`SELECT
|
|
29
|
+
gs.id,
|
|
30
|
+
gs.symbol,
|
|
31
|
+
der.document_id,
|
|
32
|
+
der.start_line,
|
|
33
|
+
der.start_char,
|
|
34
|
+
der.end_line,
|
|
35
|
+
der.end_char,
|
|
36
|
+
d.relative_path,
|
|
37
|
+
gs.display_name,
|
|
38
|
+
gs.kind,
|
|
39
|
+
gs.documentation,
|
|
40
|
+
gs.enclosing_symbol
|
|
41
|
+
FROM global_symbols gs
|
|
42
|
+
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
43
|
+
JOIN documents d ON der.document_id = d.id
|
|
44
|
+
WHERE d.relative_path = ?
|
|
45
|
+
${e.symbolNoiseFor("gs")}
|
|
46
|
+
ORDER BY der.start_line, der.end_line`,n)}function je(e,n){return e.all(`SELECT
|
|
47
|
+
gs.id,
|
|
48
|
+
gs.symbol,
|
|
49
|
+
c.document_id,
|
|
50
|
+
MIN(c.start_line) AS start_line,
|
|
51
|
+
0 AS start_char,
|
|
52
|
+
MAX(c.end_line) AS end_line,
|
|
53
|
+
0 AS end_char,
|
|
54
|
+
d.relative_path,
|
|
55
|
+
gs.display_name,
|
|
56
|
+
gs.kind,
|
|
57
|
+
gs.documentation,
|
|
58
|
+
gs.enclosing_symbol
|
|
59
|
+
FROM global_symbols gs
|
|
60
|
+
JOIN mentions m ON m.symbol_id = gs.id
|
|
61
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
62
|
+
JOIN documents d ON c.document_id = d.id
|
|
63
|
+
WHERE d.relative_path = ?
|
|
64
|
+
AND m.role = 1
|
|
65
|
+
${e.symbolNoiseFor("gs")}
|
|
66
|
+
GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path
|
|
67
|
+
ORDER BY start_line, end_line`,n)}function w(e){return{symbolId:e.id,symbol:e.symbol,documentId:e.document_id,startLine:e.start_line,startChar:e.start_char??0,endLine:e.end_line,endChar:e.end_char??0,relativePath:e.relative_path,leaf:K(e.symbol),parentTypeName:f(e.symbol),isFunctionLike:N(e.symbol),isTypeLike:p(e.symbol)==="type",kind:e.kind??null,documentation:e.documentation??null,enclosingSymbol:e.enclosing_symbol??null}}function Zn(e,n={}){return We(e,n.scope)}function Vn(e,n){let t=new Set(n);if(t.size===0)return[];let i=Je(e,[...t]);return y(e,{includeIgnored:!1}).filter(r=>i.has(r)).flatMap(r=>D(e,r)).filter(r=>t.has(r.symbol))}function Je(e,n){let t=new Set;for(let i=0;i<n.length;i+=400){let r=n.slice(i,i+400),o=e.all(`WITH requested AS (SELECT id FROM global_symbols WHERE symbol IN (${r.map(()=>"?").join(",")}))
|
|
68
|
+
SELECT d.relative_path FROM requested r
|
|
69
|
+
JOIN defn_enclosing_ranges der ON der.symbol_id = r.id
|
|
70
|
+
JOIN documents d ON d.id = der.document_id
|
|
71
|
+
UNION
|
|
72
|
+
SELECT d.relative_path FROM requested r
|
|
73
|
+
JOIN mentions m ON m.symbol_id = r.id AND m.role = 1
|
|
74
|
+
JOIN chunks c ON c.id = m.chunk_id
|
|
75
|
+
JOIN documents d ON d.id = c.document_id`,...r);for(let s of o)t.add(s.relative_path)}return t}function We(e,n){return y(e,{scope:n,includeIgnored:!1}).flatMap(t=>D(e,t)).filter(t=>!e.isIgnored(t.relativePath))}function et(e,n){return y(e,{scope:n,includeIgnored:!1}).flatMap(t=>Me(e,t)).filter(t=>!e.isIgnored(t.relativePath))}function nt(e,n){let t=Ne.get(e,()=>new WeakMap),i=t.get(n.symbolMatches);i||(i=new Map,t.set(n.symbolMatches,i));let r=JSON.stringify({scope:n.scope??null,sqlPrefilter:n.sqlPrefilter??null}),o=i.get(r);if(o)return[...o];let s=ce(ze(e,n.scope,n.sqlPrefilter)),a=ce(He(e,n.scope,n.sqlPrefilter)),c=new Set([...s.keys(),...a.keys()]),l=[];for(let m of[...c].sort()){if(e.isIgnored(m))continue;let g=O(s.get(m)??[],a.get(m)??[],{sort:!0}).filter(b=>n.symbolMatches(b.symbol));g.length!==0&&l.push(...T(e,m,g.map(w)))}return i.set(r,l),[...l]}function ze(e,n,t){let i=n?"AND d.relative_path LIKE ?":"",r=t?`AND ${ue("gs",t)}`:"",o=n?[`%${n}%`]:[];return e.all(`SELECT
|
|
76
|
+
gs.id,
|
|
77
|
+
gs.symbol,
|
|
78
|
+
der.document_id,
|
|
79
|
+
der.start_line,
|
|
80
|
+
der.start_char,
|
|
81
|
+
der.end_line,
|
|
82
|
+
der.end_char,
|
|
83
|
+
d.relative_path,
|
|
84
|
+
gs.display_name,
|
|
85
|
+
gs.kind,
|
|
86
|
+
gs.documentation,
|
|
87
|
+
gs.enclosing_symbol
|
|
88
|
+
FROM global_symbols gs
|
|
89
|
+
JOIN defn_enclosing_ranges der ON gs.id = der.symbol_id
|
|
90
|
+
JOIN documents d ON der.document_id = d.id
|
|
91
|
+
WHERE 1 = 1
|
|
92
|
+
${e.pathExclusionsFor("d")}
|
|
93
|
+
${i}
|
|
94
|
+
${r}
|
|
95
|
+
${e.symbolNoiseFor("gs")}
|
|
96
|
+
ORDER BY d.relative_path, der.start_line, der.end_line`,...o)}function He(e,n,t){let i=n?"AND d.relative_path LIKE ?":"",r=t?`AND ${ue("gs",t)}`:"",o=n?[`%${n}%`]:[];return e.all(`SELECT
|
|
97
|
+
gs.id,
|
|
98
|
+
gs.symbol,
|
|
99
|
+
c.document_id,
|
|
100
|
+
MIN(c.start_line) AS start_line,
|
|
101
|
+
0 AS start_char,
|
|
102
|
+
MAX(c.end_line) AS end_line,
|
|
103
|
+
0 AS end_char,
|
|
104
|
+
d.relative_path,
|
|
105
|
+
gs.display_name,
|
|
106
|
+
gs.kind,
|
|
107
|
+
gs.documentation,
|
|
108
|
+
gs.enclosing_symbol
|
|
109
|
+
FROM global_symbols gs
|
|
110
|
+
JOIN mentions m ON m.symbol_id = gs.id
|
|
111
|
+
JOIN chunks c ON m.chunk_id = c.id
|
|
112
|
+
JOIN documents d ON c.document_id = d.id
|
|
113
|
+
WHERE m.role = 1
|
|
114
|
+
AND NOT EXISTS (
|
|
115
|
+
SELECT 1
|
|
116
|
+
FROM defn_enclosing_ranges existing_der
|
|
117
|
+
WHERE existing_der.symbol_id = gs.id
|
|
118
|
+
)
|
|
119
|
+
${e.pathExclusionsFor("d")}
|
|
120
|
+
${i}
|
|
121
|
+
${r}
|
|
122
|
+
${e.symbolNoiseFor("gs")}
|
|
123
|
+
GROUP BY gs.id, gs.symbol, c.document_id, d.relative_path
|
|
124
|
+
ORDER BY d.relative_path, start_line, end_line`,...o)}function Ge(e){return`(${e}.symbol LIKE '%().' OR ${e}.symbol LIKE '%()')`}function ue(e,n){return n==="callable"?Ge(e):Ue(e)}function Ue(e){return`(${e}.symbol LIKE '%.' OR ${e}.symbol LIKE '%()')`}function ce(e){let n=new Map;for(let t of e){let i=n.get(t.relative_path);i?i.push(t):n.set(t.relative_path,[t])}return n}function tt(e,n,t={}){if(n.length===0)return[];let i=n.flatMap(r=>D(e,r)).filter(r=>!e.isIgnored(r.relativePath));return t.onlyDocumented&&(i=i.filter(r=>r.documentation!==null&&r.documentation!=="")),t.sort&&(i=i.sort((r,o)=>r.relativePath.localeCompare(o.relativePath)||r.startLine-o.startLine||r.endLine-o.endLine)),i.map(r=>({startLine:r.startLine,endLine:r.endLine,symbol:r.symbol,shortName:Y(r.symbol),signature:re(oe(r.documentation)),relativePath:r.relativePath,enclosingSymbol:r.enclosingSymbol}))}function qe(e){let n=new Map,t=e.map((i,r)=>({definition:i,index:r,span:i.endLine-i.startLine})).sort((i,r)=>i.span-r.span||i.index-r.index);for(let{definition:i}of t)for(let r=i.startLine;r<=i.endLine;r+=1)n.has(r)||n.set(r,i);return n}function it(e,n){let t=ae.get(e);return t||(t=qe(e),ae.set(e,t)),t.get(n)??null}function rt(e,n){let t=D(e,n.relative_path).find(i=>i.symbolId===n.id)??(f(n.symbol)===null||!N(n.symbol)?void 0:T(e,n.relative_path,[w(n)])[0]);return t?{symbolId:t.symbolId,symbol:t.symbol,documentId:t.documentId,startLine:t.startLine,startChar:t.startChar,endLine:t.endLine,endChar:t.endChar,relativePath:t.relativePath}:{symbolId:n.id,symbol:n.symbol,documentId:n.document_id,startLine:n.start_line,startChar:n.start_char??0,endLine:n.end_line,endChar:n.end_char??0,relativePath:n.relative_path}}function T(e,n,t,i,r){let o=u(i,"range-correction.source-text",()=>r?r.source:h(e).forFile(n,{text:!0}).text),s=u(i,"range-correction.callable-sites",()=>r?r.callables:Ye(e,n));return s?u(i,"range-correction.ast-correction",()=>nn(t,s,o)):o?u(i,"range-correction.regex-fallback",()=>Ke(t,o)):t}function Ye(e,n){let t=j(n),i=t&&S(e,n)?.rootNode;return(t&&i&&z(i,t))??W(e,n)}function Ke(e,n){let t=n.split(/\r?\n/),i=Xe(e,t),r=Ze(e,i),o=Ve(r,t);return en(e,o)}function Xe(e,n){let t=e.some(r=>x(r.symbol))?dn(n):null,i=new Map;for(let r of e)i.set(r.symbolId,ln(n,t,r));return i}function Ze(e,n){return e.filter(t=>x(t.symbol)).map(t=>({definition:t,startLine:n.get(t.symbolId)??t.startLine})).sort((t,i)=>t.startLine-i.startLine||t.definition.startLine-i.definition.startLine||t.definition.symbol.localeCompare(i.definition.symbol))}function Ve(e,n){let t=new Map;for(let i=0;i<e.length;i+=1){let r=e[i],o=e[i+1],s=o?Math.max(r.startLine,o.startLine-1):n.length-1;t.set(r.definition.symbolId,{startLine:r.startLine,endLine:un(n,r.definition,r.startLine,s)})}return t}function en(e,n){return e.map(t=>{let i=n.get(t.symbolId);return i?{...t,startLine:i.startLine,endLine:i.endLine}:t})}function nn(e,n,t=null){let i,r=s=>cn(s,t?i??=t.split(/\r?\n/):null),o=new Map;for(let s of n){let a=o.get(s.name);a?a.push(s):o.set(s.name,[s])}return e.map(s=>{if(!an(s)||!s.leaf)return r(s);let a=o.get(s.leaf);if(!a||a.length===0)return r(s);let c=t?tn(s,a,t):null;if(c)return{...s,startLine:c.startLine,endLine:c.endLine};let l=a[0],m=Math.abs(l.startLine-s.startLine);for(let g=1;g<a.length;g+=1){let b=a[g],v=Math.abs(b.startLine-s.startLine);v<m&&(l=b,m=v)}return{...s,startLine:l.startLine,endLine:l.endLine}})}function tn(e,n,t){let i=rn(e.symbol);if(!i)return null;let r=t.split(/\r?\n/),o=new RegExp(`\\b${k(i)}\\b`);for(let s of n){let a=on(r,s.startLine);if(a&&o.test(a))return s}return null}function rn(e){return e.match(/\/impl#\[([^\]]+)\]/)?.[1]??null}function on(e,n){for(let t=n;t>=0;t-=1){let i=e[t]?.trim()??"";if(i){if(/^impl\b/.test(i))return sn(e,t,n);if(/^(?:struct|enum|trait|mod)\b/.test(i))return null}}return null}function sn(e,n,t){let i=[];for(let r=n;r<=t;r+=1){let o=e[r]??"";if(i.push(o),o.includes("{"))break}return i.join(" ")}function an(e){return x(e.symbol)?!0:p(e.symbol)==="term"&&f(e.symbol)===null}function cn(e,n){if(!n||!e.leaf||p(e.symbol)!=="term"||f(e.symbol)!==null)return e;let t=k(e.leaf),i=new RegExp(`\\b(?:export\\s+)?(?:const|let|var)\\s+${t}\\b`),r=n.findIndex(o=>i.test(o));return r>=0?{...e,startLine:r,endLine:r}:e}function ln(e,n,t){if(!x(t.symbol))return t.startLine;let i=Math.max(0,Math.min(t.startLine,e.length-1));if(!n)return i;let r=n.get(t.leaf);if(!r||r.length===0)return i;let o=null;for(let s of r){let a=Math.abs(s-t.startLine);(!o||a<o.distance)&&(o={line:s,distance:a})}return o?.line??i}function dn(e){let n=/\b(?:function|def|fn)\s+([A-Za-z_$][\w$]*)/g,t=/\b([A-Za-z_$][\w$]*)\s*[:=]\s*(?:async\s*)?(?:function\b|\()/g,i=/^\s*(?:(?:export|public|private|protected|static|readonly|async|abstract|get|set)\s+)*([A-Za-z_$][\w$]*)\s*(?:<[^(]*>)?\s*\(/,r=/\b([A-Za-z_$][\w$]*)\s*\(/g,o=new Map,s=(a,c)=>{let l=o.get(a);if(!l){o.set(a,[c]);return}l[l.length-1]!==c&&l.push(c)};for(let a=0;a<e.length;a+=1){let c=e[a]??"";M(c,n,a,s),M(c,t,a,s);let l=c.match(i);l?.[1]&&s(l[1],a),M(c,r,a,s)}return o}function un(e,n,t,i){let r=Math.max(t,Math.min(e.length-1,i)),o=Math.max(t,Math.min(r,n.endLine)),s={braceDepth:0,parenDepth:0,sawOpeningBrace:!1};for(let a=t;a<=r;a+=1){let c=fn(e[a]??"");if(mn(c,s),s.sawOpeningBrace&&s.braceDepth===0||!s.sawOpeningBrace&&s.parenDepth===0&&a>=o)return a}return o}function fn(e){let n="",t={quote:null,escaping:!1};for(let i=0;i<e.length;i+=1){let r=e[i],o=e[i+1];if(!t.quote&&r==="/"&&o==="/"){n+=" ".repeat(e.length-i);break}if(t.quote){pn(t,r),n+=" ";continue}if(r==='"'||r==="'"||r==="`"){t.quote=r,n+=" ";continue}n+=r}return n}function x(e){return e.includes("().")}function ot(e){let n=d(e);if("kind"in n)return[];let t=[];for(let i=n.descriptors.length-2;i>=0;i-=1){let r=n.descriptors[i];r?.suffix==="type"&&r.name&&t.push(r.name)}return t}function M(e,n,t,i){for(let r of e.matchAll(n))r[1]&&i(r[1],t)}function mn(e,n){for(let t of e)t==="{"?(n.braceDepth+=1,n.sawOpeningBrace=!0):t==="}"?n.braceDepth=Math.max(0,n.braceDepth-1):t==="("?n.parenDepth+=1:t===")"&&(n.parenDepth=Math.max(0,n.parenDepth-1))}function pn(e,n){if(e.escaping){e.escaping=!1;return}if(n==="\\"){e.escaping=!0;return}n===e.quote&&(e.quote=null)}export{h as a,d as b,f as c,Y as d,K as e,gn as f,bn as g,p as h,yn as i,N as j,Sn as k,hn as l,Dn as m,xn as n,_n as o,xe as p,kn as q,Nn as r,re as s,oe as t,On as u,O as v,Xn as w,D as x,Zn as y,Vn as z,We as A,et as B,nt as C,tt as D,qe as E,it as F,rt as G,ot as H};
|
|
125
|
+
//# sourceMappingURL=chunk-5D2LVK7O.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as T,b as q}from"./chunk-5PLMJC7Q.js";import{a as E,b as A,c as R,d as w}from"./chunk-TNNQFH7W.js";import{a as C,b as P,c as x,e as h,f as v,g as S}from"./chunk-2KNN7GTQ.js";import{a as B,b as H}from"./chunk-NOLZOVCU.js";import{$ as b}from"./chunk-FVULPZDF.js";function z(e,t={}){return F(e,t).results}function F(e,t={}){let{minSimilarity:s=.45,minSharedBehaviors:i=6,limit:a=20,scope:n,scanLimit:c,filePattern:d,focusFiles:u}=t,l=E(e),r=new A,f=b(e).reactProfiles({scope:n,minBehaviorTokens:Math.max(3,i),scanLimit:c}).filter(o=>l.roleOf(o.file)!=="test"?!0:(r.record("test-files",R.testFiles),!1)).map(o=>({file:o.file,component:o.name,tokens:o.behaviorTokens,profile:o})),k=T(f,o=>o.tokens);return{results:q({profiles:f,limit:a,filePattern:d,focusFiles:u,candidateIndex:k,profile:{name:"react-hook-candidates"},compare:(o,m)=>{let p=l.pairContext(o.file,m.file),y=V(o,m,s,i,p);return y?o.profile.kind!==m.profile.kind?(r.record("hook-component-pairs",R.hookComponentPairs),null):p==="ui-kit-pair"?(r.record("ui-kit-pairs",R.uiKitPairs),null):y:null},sort:S}),exclusions:r.list()}}function V(e,t,s,i,a){let n=B(e.tokens,t.tokens);if(n.size<i||!I(n))return null;let c=P(e.tokens,t.tokens);if(c<s)return null;let d=h(n,"hook:"),u=h(n,"react-hook:"),l=h(n,"effect:"),r=h(n,"state:"),f=h(n,"request:"),k=h(n,"handler:"),g=h(n,"handler-verb:"),o=O({sharedHooks:d,sharedReactHooks:u,sharedEffects:l,sharedState:r,sharedRequests:f,sharedHandlers:k,sharedHandlerVerbs:g}),m=w(a),p=j(a,o.actionTier,o.recommendation);return{fileA:e.file,componentA:e.component,fileB:t.file,componentB:t.component,similarity:c,tokenCountA:e.tokens.size,tokenCountB:t.tokens.size,sharedTokens:v(n),sharedHooks:d,sharedReactHooks:u,sharedEffects:l,sharedState:r,sharedRequests:f,sharedHandlers:k,sharedHandlerVerbs:g,evidenceClass:o.evidenceClass,actionTier:p.actionTier,evidenceClassReasons:m?[m,...o.reasons]:o.reasons,recommendation:p.recommendation,unitKind:e.profile.kind==="hook"&&t.profile.kind==="hook"?"hook":"component",pairContext:a,uniqueToA:v(H(e.tokens,t.tokens)),uniqueToB:v(H(t.tokens,e.tokens)),reason:_({sharedHooks:d,sharedReactHooks:u,sharedEffects:l,sharedState:r,sharedRequests:f,sharedHandlers:k,sharedHandlerVerbs:g}),locA:e.profile.loc,locB:t.profile.loc}}function j(e,t,s){switch(e){case"framework-route-pair":return{actionTier:t,recommendation:s};case"intercepting-route-pair":return{actionTier:t,recommendation:"Render one shared view component from both the intercepting route and its target route instead of repeating the behavior in each body."};case"ui-kit-pair":case"product":return{actionTier:t,recommendation:s}}}function O(e){return C({genericWords:$,stripPrefixes:D,primitiveGroups:[{values:e.sharedReactHooks,reasonPrefix:"shared React primitives",bucket:"generic"},{values:e.sharedEffects,reasonPrefix:"shared lifecycle primitive",bucket:"generic"}],nameGroups:[{names:e.sharedHooks,label:"shared hook",fallbackBucket:"shared-abstraction"},{names:e.sharedRequests,label:"shared request",fallbackBucket:"generic"},{names:e.sharedState,label:"shared state",fallbackBucket:"generic"},{names:e.sharedHandlers,label:"shared handler",fallbackBucket:"generic"},{names:e.sharedHandlerVerbs,label:"shared action verb",fallbackBucket:"generic"}],recommendation:W})}function W(e){switch(e){case"domain-behavior":return"Review for a shared hook, controller, or feature module around the named domain behavior.";case"mixed":return"Separate generic React mechanics from domain-specific behavior before extracting a shared hook.";case"shared-abstraction":return"Review the existing shared hook usage first; extract only if duplicated behavior remains outside it.";case"generic-workflow-scaffolding":return"Treat as support evidence for a repeated workflow shape, not direct hook-extraction evidence."}}function I(e){let t=0,s=0,i=0,a=0,n=0,c=0,d=0;for(let r of e)r.startsWith("hook:")?t+=1:r.startsWith("react-hook:")?s+=1:r.startsWith("effect:")?i+=1:r.startsWith("request:")?a+=1:r.startsWith("handler:")||r.startsWith("handler-verb:")?n+=1:r.startsWith("state:")?c+=1:r.startsWith("state-hook:")&&(d+=1);let u=c+d,l=t+s+i+a+n+u;return x([{name:"requests",count:a},{name:"customHooks",count:t},{name:"namedStates",count:c},{name:"handlers",count:n},{name:"effects",count:i},{name:"reactHooks",count:s},{name:"namedBehavior",count:l}],[{min:{requests:1,namedBehavior:4},reason:"shared request workflow"},{min:{customHooks:1,requests:1,namedBehavior:5},reason:"shared custom hook and request workflow"},{min:{customHooks:1,namedStates:1,namedBehavior:5},reason:"shared custom hook and state"},{min:{customHooks:1,handlers:2,namedBehavior:5},reason:"shared custom hook and handlers"},{min:{namedStates:1,handlers:2,effects:1,namedBehavior:5},reason:"shared stateful effects"},{min:{namedStates:1,handlers:2,reactHooks:2,namedBehavior:5},reason:"shared stateful React primitives"}]).pass}function _(e){let t=[];return e.sharedHooks.length&&t.push(`shared hooks: ${e.sharedHooks.join(", ")}`),e.sharedReactHooks.length&&t.push(`shared React hooks: ${e.sharedReactHooks.join(", ")}`),e.sharedEffects.length&&t.push(`shared effects: ${e.sharedEffects.join(", ")}`),e.sharedState.length&&t.push(`shared state: ${e.sharedState.join(", ")}`),e.sharedRequests.length&&t.push(`shared requests: ${e.sharedRequests.join(", ")}`),e.sharedHandlers.length&&t.push(`shared handlers: ${e.sharedHandlers.slice(0,6).join(", ")}`),e.sharedHandlerVerbs.length&&t.push(`shared action verbs: ${e.sharedHandlerVerbs.slice(0,6).join(", ")}`),t.join("; ")||"shared React behavior profile"}var $=new Set(["add","apply","async","callback","cancel","change","clear","client","close","context","create","data","deferred","delete","dispatch","draft","edit","effect","error","fetch","field","filter","form","handle","has","id","infinite","is","item","items","load","loader","loading","memo","mutate","mutation","name","navigate","navigation","open","params","pathname","query","reducer","refresh","ref","remove","request","reset","resource","router","row","rows","save","saving","search","select","selected","selector","state","store","submit","suspense","toggle","transition","update","use","value"]),D=[/^use(?=[A-Z])/,/^handle(?=[A-Z])/,/^is(?=[A-Z])/,/^has(?=[A-Z])/];export{z as a,F as b};
|
|
2
|
+
//# sourceMappingURL=chunk-5IYJ56TT.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as d}from"./chunk-GVWX5T43.js";function F(e,i){let n=new Map;return e.forEach((r,l)=>{let t=new Set;for(let o of i(r)){if(t.has(o))continue;t.add(o);let a=n.get(o);a?a.push(l):n.set(o,[l])}}),{candidatesFor:(r,l)=>{let t=new Set;for(let o of i(r)){let a=n.get(o);if(a)for(let s of a)s!==l&&t.add(s)}return[...t].sort((o,a)=>o-a)}}}function g(e){let i=u(e.profile?.name),n=()=>{let r=[];i=u(e.profile?.name,e);let l=(o,a)=>{let s=e.profiles[o],m=e.profiles[a];i.candidatePairs+=1,i.comparedPairs+=1;let f=e.compare(s,m);f&&r.push(f)};e.filePattern?p(e,l):e.focusFiles?.size!==0&&(i.overrunApplied=w(e,l,()=>r.length)),r.sort(e.sort??((o,a)=>a.similarity-o.similarity)),i.matchedResults=r.length;let t=r.slice(0,e.limit);return i.emittedResults=t.length,e.onProfile?.({...i}),t};return e.profile?d(`pairwise-profile:${e.profile.name}`,n,()=>({...x(e.profile?.metadata),...i})):n()}function p(e,i){let n=new Set;for(let r=0;r<e.profiles.length;r++){let l=e.profiles[r];if(l.file.includes(e.filePattern))for(let t of b(e,r)){let o=e.profiles[t];if(!P(e.focusFiles,l,o))continue;let a=`${Math.min(r,t)}:${Math.max(r,t)}`;n.has(a)||(n.add(a),i(r,t))}}}function w(e,i,n){let r=typeof e.overrunFactor=="number"&&Number.isFinite(e.limit)?e.limit*e.overrunFactor:Number.POSITIVE_INFINITY;for(let l=0;l<e.profiles.length;l+=1){let t=e.profiles[l];for(let o of R(e,l))P(e.focusFiles,t,e.profiles[o])&&i(l,o);if(n()>r)return!0}return!1}function P(e,i,n){return e===void 0||e.has(i.file)||e.has(n.file)}function b(e,i){if(e.candidateIndex)return c(e,i,-1);let n=[];for(let r=0;r<e.profiles.length;r+=1)r!==i&&n.push(r);return n}function R(e,i){if(e.candidateIndex)return c(e,i,i);let n=[];for(let r=i+1;r<e.profiles.length;r+=1)n.push(r);return n}function c(e,i,n){let r=e.profiles[i],l=new Set;for(let t of e.candidateIndex?.candidatesFor(r,i,e.profiles)??[])t<=n||t!==i&&(t<0||t>=e.profiles.length||l.add(t));return[...l].sort((t,o)=>t-o)}function u(e,i){return{pipeline:e,profileCount:i?.profiles.length??0,focusedProfileCount:i?.focusFiles?i.profiles.filter(n=>i.focusFiles.has(n.file)).length:0,candidatePairs:0,comparedPairs:0,matchedResults:0,emittedResults:0,candidateIndexApplied:i?.candidateIndex!==void 0,focusApplied:i?.focusFiles!==void 0,filePatternApplied:i?.filePattern!==void 0,overrunApplied:!1}}function x(e){return typeof e=="function"?e():e??{}}export{F as a,g as b};
|
|
2
|
+
//# sourceMappingURL=chunk-5PLMJC7Q.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{isAbsolute as nt,relative as kn}from"path";var g=class extends Error{constructor(n,r){super(`refusing unsafe project file path ${JSON.stringify(n)} (${r})`);this.relativePath=n;this.reason=r;this.name="UnsafeProjectPathError"}relativePath;reason;code="SCIP_QUERY_UNSAFE_PROJECT_PATH"};function me(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function jo(e){return e.replace(/\\/g,"/")}function xo(e,t){return me(e)===me(t)}function P(e,t){let n=kn(e,t);return n===""||!n.startsWith("..")&&!nt(n)}function F(e){if(!e)throw new g(e,"empty-path");if(e.includes("\0"))throw new g(e,"nul-byte");if(nt(e)||/^[A-Za-z]:/.test(e)||e.startsWith("//")||e.startsWith("\\\\"))throw new g(e,"absolute-path");let t=me(e);if(t.split("/").some(r=>r===".."))throw new g(e,"parent-traversal");if(!t||t===".")throw new g(e,"empty-path");return t}function X(e,t,n=[]){let r=ye(e);if(ut.has(r)||n.some(o=>Y(r,o))||t.some(o=>lt(r,o)))return"config";if(t.some(ft)&&/\.d\.(?:ts|mts|cts)$/.test(r.toLowerCase()))return"ambient";let i=pt(r);return t.some(o=>(dt[o]??[]).includes(i))?"source":"other"}function at(e,t,n){let r=ye(e);if(ut.has(r)||n?.some(o=>Y(r,o))||lt(r,t)||ft(t)&&/\.d\.(?:ts|mts|cts)$/.test(r.toLowerCase()))return!0;let i=pt(r);return(dt[t]??[]).includes(i)}function Fo(e){if(typeof e!="object"||e===null)return null;let t=e;return!An(t)||t.clojureConfigPath!==void 0&&typeof t.clojureConfigPath!="string"||!Array.isArray(t.files)||!t.files.every(Dn)?null:t}function rt(e){return{...e,files:e.files.map(({semanticHash:t,...n})=>n)}}function wo(e,t){return!e||!t?e===t:JSON.stringify(rt(e))===JSON.stringify(rt(t))}function Rn(e,t,n,r){if(!n&&r)return{kind:"added",path:e,inputKind:t,after:r};if(n&&!r)return{kind:"deleted",path:e,inputKind:t,before:n};if(n&&r&&(n.hash!==r.hash||n.size!==r.size))return{kind:"modified",path:e,inputKind:t,before:n,after:r}}function Tn(e,t){let n=e?.files??[],r=new Set;return e||r.add("prior-snapshot-unavailable"),e&&e.version!==t.version&&r.add("snapshot-version-changed"),(ot(n)||ot(t.files))&&r.add("duplicate-input-path"),[...n,...t.files].some(On)&&r.add("unreadable-input"),[...r].sort()}function vo(e,t){let n=new Map((e?.files??[]).map(c=>[c.path,c])),r=new Map(t.files.map(c=>[c.path,c])),i=new Set([...n.keys(),...r.keys()]),o=[];for(let c of[...i].sort()){let a=n.get(c),u=r.get(c),l=X(c,t.languages),f=Rn(c,l,a,u);f&&o.push(f)}let s=Tn(e,t);return{version:1,changes:o,projectIdentityChanged:e?!_n(e,t):!0,uncertainty:s}}function it(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function ot(e){return new Set(e.map(t=>t.path)).size!==e.length}function Dn(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.path=="string"&&typeof t.size=="number"&&Number.isFinite(t.size)&&typeof t.hash=="string"&&(t.semanticHash===void 0||typeof t.semanticHash=="string")}function On(e){return e.hash==="unreadable"||e.size<0}function _n(e,t){return st(e.languages,t.languages)&&e.pnpmWorkspaces===t.pnpmWorkspaces&&e.typescriptProjectMode===t.typescriptProjectMode&&st(e.typescriptProjects,t.typescriptProjects)&&e.clojureConfigPath===t.clojureConfigPath}function st(e,t){if(e.length!==t.length)return!1;let n=[...e].sort(),r=[...t].sort();return n.every((i,o)=>i===r[o])}var ut=new Set([".scipquery.json"]),Bn={typescript:["tsconfig.json"],javascript:["package.json"],java:["pom.xml","build.gradle"],scala:["build.sbt"],kotlin:["build.gradle.kts"],rust:["Cargo.toml"],python:["pyproject.toml","setup.py"],ruby:["Gemfile"],go:["go.mod"],cpp:["CMakeLists.txt","Makefile"],c:["CMakeLists.txt","Makefile"],csharp:["*.csproj","*.sln"],vb:["*.vbproj","*.sln"],dart:["pubspec.yaml"],php:["composer.json"],clojure:["deps.edn","project.clj","bb.edn","shadow-cljs.edn"]},Ln={typescript:["package.json","package-lock.json","pnpm-lock.yaml","yarn.lock","bun.lock","bun.lockb","tsconfig.*.json","jsconfig.json","jsconfig.*.json"],javascript:["package-lock.json","pnpm-lock.yaml","yarn.lock","bun.lock","bun.lockb","tsconfig.json","tsconfig.*.json","jsconfig.json","jsconfig.*.json"],java:["build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","gradle.lockfile","gradle-wrapper.properties"],scala:["plugins.sbt","build.properties"],kotlin:["pom.xml","build.gradle","settings.gradle","settings.gradle.kts","gradle.properties","gradle.lockfile","gradle-wrapper.properties"],rust:["Cargo.lock","rust-project.json","rust-toolchain","rust-toolchain.toml"],python:["setup.cfg","requirements*.txt","Pipfile","Pipfile.lock","poetry.lock","uv.lock"],ruby:["Gemfile.lock","gems.locked"],go:["go.sum","go.work","go.work.sum"],cpp:["compile_commands.json"],c:["compile_commands.json"],csharp:["Directory.Build.props","Directory.Build.targets","Directory.Packages.props","packages.lock.json","NuGet.Config","global.json"],vb:["Directory.Build.props","Directory.Build.targets","Directory.Packages.props","packages.lock.json","NuGet.Config","global.json"],dart:["pubspec.lock","analysis_options.yaml"],php:["composer.lock"],clojure:[]},ct=new Map;function lt(e,t){return Bn[t].some(n=>Y(e,n))||Ln[t].some(n=>Y(e,n))}function Y(e,t){let n=ye(t).replace(/^\.\//,"");if(!n)return!1;let r=e.split("/").at(-1)??e,i=n.includes("/")?e:r;if(!n.includes("*")&&!n.includes("?"))return i===n;let o=ct.get(n);if(!o){let s=n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^/]*").replace(/\?/g,"[^/]");o=new RegExp(`^${s}$`),ct.set(n,o)}return o.test(i)}function ye(e){return e.replaceAll("\\","/").replace(/^\.\//,"")}function pt(e){return e.includes(".")?`.${e.split(".").at(-1).toLowerCase()}`:""}function ft(e){return e==="typescript"||e==="javascript"}var dt={typescript:[".ts",".tsx",".mts",".cts"],javascript:[".js",".jsx",".mjs",".cjs",".vue"],java:[".java"],scala:[".scala"],kotlin:[".kt",".kts"],rust:[".rs"],python:[".py",".pyi"],ruby:[".rb"],go:[".go"],cpp:[".cc",".cpp",".cxx",".hpp",".hh",".hxx"],c:[".c",".h"],csharp:[".cs"],vb:[".vb"],dart:[".dart"],php:[".php"],clojure:[".clj",".cljs",".cljc"]};function An(e){return!(typeof e.version!="number"||!it(e.languages)||typeof e.pnpmWorkspaces!="boolean"||typeof e.typescriptProjectMode!="string"||!it(e.typescriptProjects))}import{closeSync as Se,fstatSync as Q,openSync as be,readSync as Pe}from"fs";import{createHash as Nn}from"crypto";var Z=8*1024*1024,Mn=64*1024*1024,Gn=512*1024*1024,Wn=256*1024*1024,k=class extends Error{constructor(n,r,i,o,s){let c=i==="too-large"?`is ${o} bytes; the safety limit is ${s} bytes`:i==="not-regular"?"is not a regular file":"changed while it was being read";super(`${n} ${JSON.stringify(r)} ${c}`);this.inputKind=n;this.inputPath=r;this.reason=i;this.observedBytes=o;this.limitBytes=s;this.name="BoundedFileReadError"}inputKind;inputPath;reason;observedBytes;limitBytes;code="SCIP_QUERY_BOUNDED_FILE_READ"};function _(e,t){w(t.maxBytes);let n=String(e),r=be(e,"r");try{let i=Q(r);yt(i,t,n);let o=je(r,i.size);return mt(i,Q(r),o.byteLength,t,n),o}finally{Se(r)}}function je(e,t){w(t);let n=Buffer.allocUnsafe(t),r=0;for(;r<n.length;){let i=Pe(e,n,r,n.length-r,r);if(i===0)break;r+=i}return n.subarray(0,r)}function gt(e,t,n="utf8"){return _(e,t).toString(n)}function N(e,t){return gt(e,{maxBytes:Z,inputKind:t})}function xe(e,t){w(t.maxBytes);let n=[],r=Buffer.allocUnsafe(64*1024),i=0;for(;;){let o=Pe(e,r,0,r.length,null);if(o===0)break;if(i+=o,!Number.isSafeInteger(i)||i>t.maxBytes)throw new k(t.inputKind,`file descriptor ${e}`,"too-large",i,t.maxBytes);n.push(Buffer.from(r.subarray(0,o)))}return Buffer.concat(n,i)}function zn(e,t,n="utf8"){return xe(e,t).toString(n)}function ht(e,t){let n=be(e,"r");try{return xe(n,t)}finally{Se(n)}}function Hn(e,t,n="utf8"){return ht(e,t).toString(n)}function ee(e,t,n){w(t.maxBytes);let r=String(e),i=be(e,"r");try{let o=Q(i);yt(o,t,r);let s=Buffer.allocUnsafe(Math.min(1024*1024,Math.max(1,o.size))),c=0;for(;c<o.size;){let a=Pe(i,s,0,Math.min(s.length,o.size-c),c);if(a===0)break;n(s.subarray(0,a)),c+=a}return mt(o,Q(i),c,t,r),c}finally{Se(i)}}function $n(e,t){let n=Nn("sha256");return ee(e,t,r=>n.update(r)),n.digest("hex")}function mt(e,t,n,r,i){if(t.dev!==e.dev||t.ino!==e.ino||t.size!==e.size||t.mtimeMs!==e.mtimeMs||n!==e.size)throw new k(r.inputKind,i,"changed-during-read",t.size,r.maxBytes)}function yt(e,t,n){if(!e.isFile())throw new k(t.inputKind,n,"not-regular",Number(e.size),t.maxBytes);if(e.size>t.maxBytes)throw new k(t.inputKind,n,"too-large",Number(e.size),t.maxBytes)}function w(e){if(!Number.isSafeInteger(e)||e<0)throw new RangeError(`maxBytes must be a non-negative safe integer; received ${e}`)}function Bo(e){return`${e}+scip-query-symbols.6`}import{spawnSync as Un}from"child_process";import{createHash as Jn}from"crypto";import{existsSync as Kn,lstatSync as qn,realpathSync as Yn}from"fs";import{dirname as Xn,isAbsolute as Qn,join as Zn,relative as zo,resolve as re,sep as Ho}from"path";var St=Symbol.for("scip-query.project-file-listing-context.v1"),bt=globalThis,Ce=bt[St],v=Ce&&typeof Ce=="object"?Ce:{};bt[St]=v;function Pt(e,t){let n=v.active?v.canonicalProjectRoots:void 0,r=n?.get(e);if(r!==void 0)return r;let i=t();return n?.set(e,i),i}function jt(){return v.sequence??0}function xt(e,t,n){let r=v.active,i=r?.get(e);if(i&&i.pathBytes<=t)return i;let o=Vn(n(),(v.sequence??0)+1);if(v.sequence=o.sequence,o.pathBytes>t)throw new RangeError(`Git project file listing exceeded ${t} path bytes.`);return r?.set(e,o),o}function Ct(e,t){let n=v.active?.get(e);return n&&n.sequence>t?n.indexAllowsTreeFingerprintReuse:void 0}function*Ft(e){let t=0;for(;t<e.taggedOutput.length;){let n=e.taggedOutput.indexOf("\0",t);if(n<0)return;yield e.taggedOutput.slice(t+2,n),t=n+1}}function Vn(e,t){let n=0,r=0,i=!0;for(;n<e.length;){let o=e.indexOf("\0",n);if(o<0||o<=n+2||e[n+1]!==" ")throw new Error("Git returned a malformed tagged project file listing.");let s=e[n];i&&=s==="H"||s==="?",r+=1,n=o+1}return{taggedOutput:e,pathBytes:Buffer.byteLength(e,"utf8")-r*2,indexAllowsTreeFingerprintReuse:i,sequence:t}}var E={run(e,t){let n=vt(e,t);return n.kind==="success"?n.output:void 0},runResult:vt},er=["rev-parse","--show-toplevel","--absolute-git-dir","--git-common-dir","HEAD","HEAD^{tree}"],we=["status","--porcelain=v2","--branch","-z","--untracked-files=all"],te=/^[0-9a-f]{40,64}$/;function Vo(e,t,n=E){if(!t||t.startsWith("-")||/[\0\r\n]/.test(t))throw new Error(`Invalid Git revision ${JSON.stringify(t)}.`);let r=n.runResult(e,["rev-parse","--verify","--end-of-options",`${t}^{commit}`]);if(r.kind!=="success"||!te.test(r.output))throw new Error(`Git revision ${JSON.stringify(t)} does not resolve to exactly one commit.`);return r.output}function Uo(e,t=E){return tr(e,t)?.context}function tr(e,t=E){let n=t.runResult(e,er);if(n.kind==="success"){let i=nr(n.output);if(i){let o=rr(i,t);if(o)return wt(o)}}let r=ir(e,t);return r?wt(r):void 0}function Jo(e,t=E){if(!e.headCommit)return;let n=t.run(e.projectRoot,we);if(n===void 0)return;let r=ve(n);if(!(!r?.headCommit||r.headCommit!==e.headCommit))return{...e,clean:r.clean}}function Ko(e,t=E,n={}){let r=t===E&&n.cachedInventoryAfterSequence!==void 0?Ct(e,n.cachedInventoryAfterSequence):void 0;if(r!==void 0)return r;let i=t.run(e,["ls-files","-v","-z"]);return i===void 0?!1:i.split("\0").filter(Boolean).every(o=>o.startsWith("H "))}function wt(e){return{context:e,projectFileInventorySequence:jt()}}function ve(e){let t=e.split("\0").filter(Boolean),n=t.find(i=>i.startsWith("# branch.oid "))?.slice(13),r=n==="(initial)"?void 0:n;if(!(r!==void 0&&!te.test(r))&&n!==void 0)return{headCommit:r,clean:t.every(i=>i.startsWith("# "))}}function nr(e){let t=e.split(`
|
|
2
|
+
`).map(a=>a.trim());if(t.length!==5)return;let[n,r,i,o,s]=t;if(!n||!r||!i||!o||!s||!te.test(o)||!te.test(s))return;let c=I(n);return{root:c,gitDir:I(ne(c,r)),commonDir:I(ne(c,i)),headCommit:o,treeOid:s}}function rr(e,t){let n=t.run(e.root,we);if(n===void 0)return;let r=ve(n);return r?.headCommit!==e.headCommit?void 0:{...It(e.root,e.gitDir),commonDir:e.commonDir,repositoryId:Ie("repository",e.commonDir),headCommit:e.headCommit,treeOid:e.treeOid,clean:r.clean}}function ir(e,t){let n=or(e,t);if(n.kind!=="worktree")return;let r=n.identity,i=r.projectRoot,o=t.run(i,["rev-parse","--git-common-dir"])?.trim();if(!o)return;let s=I(ne(i,o)),c=Fe(t.run(i,["rev-parse","--verify","HEAD"])),a=Fe(t.run(i,["rev-parse","--verify","HEAD^{tree}"])),u=t.run(i,we);if(u===void 0)return;let l=ve(u);if(!(!l||l.headCommit!==c))return{...r,commonDir:s,repositoryId:Ie("repository",s),headCommit:c,treeOid:a,clean:l.clean}}function or(e,t=E){let n=t.runResult(e,["rev-parse","--show-toplevel"]);if(n.kind==="not-repository")return{kind:"non-git"};if(n.kind==="error")return n;let r=n.output.trim();if(!r)return{kind:"error",message:"Git returned an empty worktree root."};let i=I(r),o=t.run(i,["rev-parse","--absolute-git-dir"])?.trim();if(!o)return{kind:"error",message:"Git did not return an absolute worktree directory."};let s=I(ne(i,o));return{kind:"worktree",identity:It(i,s)}}function It(e,t){return{projectRoot:e,gitDir:t,worktreeId:Ie("worktree",`${e}\0${t}`)}}function qo(e,t,n=E){return Fe(n.run(e,t))}function ne(e,t){return Qn(t)?t:re(e,t)}function I(e){try{return Yn(e)}catch{return re(e)}}function Ie(e,t){return Jn("sha256").update(`${e}\0${t}`).digest("hex").slice(0,24)}function Fe(e){return e?.trim()||void 0}function vt(e,t){let n=Un("git",["-C",e,...t],{encoding:"utf-8",env:{...process.env,LC_ALL:"C"},maxBuffer:52428800,stdio:["ignore","pipe","pipe"],timeout:3e4,killSignal:"SIGKILL"});if(n.status===0)return{kind:"success",output:n.stdout.trimEnd()};let i=(typeof n.stderr=="string"?n.stderr.trim():"")||n.error?.message||`git exited with status ${n.status??"unknown"}`,o=n.error?.code;return(/not a git repository/i.test(i)||o==="ENOENT"&&Kn(re(e)))&&!sr(e)?{kind:"not-repository"}:{kind:"error",message:i}}function sr(e){if(process.env.GIT_DIR||process.env.GIT_COMMON_DIR)return!0;let t=re(e);for(;;){try{return qn(Zn(t,".git")),!0}catch(r){let i=r.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return!0}let n=Xn(t);if(n===t)return!1;t=n}}import{readdirSync as cr}from"fs";function ie(e){try{return cr(e,{withFileTypes:!0})}catch{return[]}}import{createRequire as lr}from"module";import{existsSync as pr,lstatSync as Tt,statSync as fr}from"fs";import p from"path";import{AsyncLocalStorage as ar}from"async_hooks";var ur=new ar;function R(e,t){let n=oe(e);if(!n||n.missing.has(t))return;let r=n.files.get(t);if(r)return r;let i=n.readBaseFile?.(t);return i&&n.files.set(t,i),i}function T(e,t){let n=oe(e);if(n)return n.missing.has(t)?"missing":n.paths.includes(t)?"present":"missing"}function Et(e,t){return oe(e)?.fingerprints.get(t)}function D(e){return oe(e)?.paths}function oe(e){let t=ur.getStore();if(t)return t.projectRoot===I(e)?t:void 0}var dr=lr(import.meta.url),Dt=new Set([".cache",".git",".next",".nuxt",".turbo",".nx","build","coverage","dist","node_modules","tmp","vendor"]),gr=18003;function se(e,t=[]){let n=p.resolve(e),r=t.flatMap(a=>br(n,a));if(r.length>0)return kt(n,Rt(r));let i=Sr(n),o=Rt(i),s=Pr(n,o)?[n,...o]:o,c=s.length>0?s:[n];return kt(n,c)}function Ot(e){return new Set(e.map(t=>t==="."?"tsconfig.json":`${t.replace(/\/$/u,"")}/tsconfig.json`))}function _t(e){let t=e.split("/").at(-1)?.toLowerCase();return t?.startsWith("tsconfig")===!0&&t.endsWith(".json")}var hr=/^\.scipquery-compiler-shard-\d+\.tsconfig\.json$/;function us(e){return`.scipquery-compiler-shard-${e}.tsconfig.json`}function Bt(e){return hr.test(e)}function Lt(e,t,n=[]){let r;try{r=dr("@ts-morph/common/dist/typescript.js")}catch{return null}let i=p.resolve(e),o=t==="workspace"?se(i,n):["."],s=new Set;for(let c of o){let a=c==="."?i:p.join(i,c),u=p.join(a,"tsconfig.json"),l=xr(r,i);if(!l.fileExists(u))return null;let f=r.readConfigFile(u,l.readFile);if(f.error)return null;let h=r.parseJsonConfigFileContent(f.config,l,a);if(h.errors.some(y=>y.code!==gr))return null;wr(i,h.fileNames,s)}return s}function ls(e,t,n,r){let i=p.resolve(e),o=new Set(r);for(let c of n)if(!mr(i,c,o))return!1;let s=t==="workspace"?se(i,n):["."];for(let c of s)if(!yr(i,c,o))return!1;return!0}function mr(e,t,n){let r=p.resolve(e,t);if(!P(e,r))return!0;try{let i=Tt(r);if(i.isSymbolicLink()||i.isFile()&&!n.has(O(e,r)))return!1}catch{}return!0}function yr(e,t,n){let r=t==="."?e:p.join(e,t),i=p.join(r,"tsconfig.json");if(!Mt(e,i))return!0;let o=O(e,i);if(!n.has(o))return!1;try{if(Tt(i).isSymbolicLink())return!1;let s=Gt(e,i);if(s.includes("extends")||s.includes("\\"))return!1}catch{return!1}return!0}function kt(e,t){return[...new Set(t.map(n=>O(e,n)))].sort((n,r)=>n.localeCompare(r))}function Sr(e){let t=D(e);if(t)return t.flatMap(i=>{if(i.split("/").some(s=>Dt.has(s)))return[];let o=p.join(e,...i.split("/"));return At(e,o)?[p.dirname(o)]:[]});let n=[],r=[e];for(;r.length>0;){let i=r.pop(),o=ie(i);for(let s of o){let c=p.join(i,s.name);vr(e,c,s,r,n)}}return n}function br(e,t){let n=t.trim();if(!n)return[];let r=p.resolve(e,n);if(!P(e,r))return[];let i=D(e);if(i)return Fr(e,r,i);try{let o=fr(r);if(o.isDirectory())return[r];if(o.isFile()&&Ee(p.basename(r)))return[p.dirname(r)]}catch{return[]}return[]}function At(e,t){if(!Ee(p.basename(t)))return!1;let n=Nt(e,t);return n?p.basename(t)==="tsconfig.json"||"include"in n||"files"in n||"references"in n:!1}function Ee(e){return e.startsWith("tsconfig")&&e.endsWith(".json")}function Rt(e){let t=[...new Set(e.map(n=>p.resolve(n)))].sort((n,r)=>n.localeCompare(r));return t.length<=1?t:t.filter(n=>!t.some(r=>r!==n&&Cr(n,r)))}function Pr(e,t){if(t.length===0||t.some(r=>p.resolve(r)===e))return!1;let n=p.join(e,"tsconfig.json");return Mt(e,n)&&jr(e,n)}function jr(e,t){let r=Nt(e,t)?.include;return Array.isArray(r)?r.some(i=>typeof i=="string"&&i.trim()!==""&&!i.startsWith("!")&&(i.includes("/")||i.includes("**")||!p.extname(i))):!1}function Nt(e,t){try{let n=JSON.parse(Gt(e,t));return n&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function Mt(e,t){let n=O(e,t),r=T(e,n);return r?r==="present":pr(t)}function Gt(e,t){let n=O(e,t);if(D(e)){let i=R(e,n);if(!i)throw Object.assign(new Error(`Snapshot file ${n} is missing.`),{code:"ENOENT"});return i.content.toString("utf8")}return N(t,"TypeScript project config")}function xr(e,t){let n=D(t);if(!n)return e.sys;let r=p.resolve(t),i=new Set(n),o=Wt(r,n),s=e,c=a=>{let u=p.resolve(a);return P(r,u)?O(r,u):null};return{useCaseSensitiveFileNames:e.sys.useCaseSensitiveFileNames,fileExists(a){let u=c(a);return u===null?e.sys.fileExists(a):i.has(u)},readFile(a){let u=c(a);return u===null?e.sys.readFile(a):R(r,u)?.content.toString("utf8")},readDirectory(a,u,l,f,h){let y=p.resolve(a);return P(r,y)?s.matchFiles(y,u,l,f,e.sys.useCaseSensitiveFileNames,r,h,j=>o.get(p.resolve(j))??{files:[],directories:[]},j=>j):e.sys.readDirectory(a,u,l,f,h)}}}function Wt(e,t,n=p.join){let r=new Map,i=new Map,o=s=>{r.has(s)||r.set(s,new Set),i.has(s)||i.set(s,new Set)};o(e);for(let s of t){let c=s.split("/"),a=e;for(let u=0;u<c.length-1;u+=1){let l=c[u];o(a),i.get(a).add(l),a=n(a,l),o(a)}r.get(a).add(c.at(-1))}return new Map([...r].map(([s,c])=>[s,{files:[...c].sort(),directories:[...i.get(s)??[]].sort()}]))}function ps(e,t,n){let i=new Set(t),o=Wt("/",t,p.posix.join),s=e;if(typeof s.matchFiles!="function")throw new Error("TypeScript snapshot file matching is unavailable.");let c=a=>p.posix.relative("/",p.posix.resolve("/",a));return{useCaseSensitiveFileNames:!0,fileExists:a=>i.has(c(a)),directoryExists:a=>o.has(p.posix.resolve("/",a)),getDirectories:a=>o.get(p.posix.resolve("/",a))?.directories??[],getCurrentDirectory:()=>"/",realpath:a=>p.posix.resolve("/",a),readFile:a=>{let u=c(a);return i.has(u)?n(u):void 0},readDirectory:(a,u,l,f,h)=>s.matchFiles(p.posix.resolve("/",a),u,l,f,!0,"/",h,y=>o.get(p.posix.resolve("/",y))??{files:[],directories:[]},y=>y)}}function O(e,t){let n=p.relative(e,t);return n?n.split(p.sep).join("/"):"."}function Cr(e,t){let n=p.relative(e,t);return!!n&&!n.startsWith("..")&&!p.isAbsolute(n)}function Fr(e,t,n){let r=O(e,t);if(n.includes(r)&&Ee(p.basename(t)))return[p.dirname(t)];let i=r==="."?"":`${r}/`;return n.some(o=>o.startsWith(i))?[t]:[]}function wr(e,t,n){for(let r of t){let i=p.resolve(r);P(e,i)&&n.add(p.relative(e,i).split(p.sep).join("/"))}}function vr(e,t,n,r,i){if(n.isDirectory()){!Dt.has(n.name)&&!n.name.startsWith(".")&&r.push(t);return}n.isFile()&&At(e,t)&&i.push(p.dirname(t))}import{createHash as Te}from"crypto";import{execFileSync as zt}from"child_process";import{createRequire as Ir}from"module";var Er=Ir(import.meta.url),kr=/\.(?:[cm]?[jt]sx?)$/iu,Rr=/\.[jt]sx$/iu,Ht=/(?:^|\/)package\.json$/iu,M,ke=new Map;function $t(e,t){if(!De(e))return;let n=Tr();if(n)try{let r=typeof t=="string"?t:t.toString("utf8"),i=Rr.test(e)?n.LanguageVariant.JSX:n.LanguageVariant.Standard,o=n.createScanner(n.ScriptTarget.Latest,!1,i,r),s=Te("sha256").update(`typescript-semantic-v1\0${i}\0`);return Dr(n,o,s),s.digest("hex")}catch{return}}function De(e){return kr.test(e)}function Oe(e,t){if(Ht.test(e))try{let n=JSON.parse(typeof t=="string"?t:t.toString("utf8"));if(typeof n!="object"||n===null||Array.isArray(n))return;let{scripts:r,...i}=n;return Te("sha256").update("typescript-package-json-v1\0").update(Re(i)).digest("hex")}catch{return}}function _e(e){return Ht.test(e)}function ms(e,t,n){if(!_e(t)||!/^[a-f0-9]{64}$/u.test(n))return;let r=`${e}\0${t}\0${n}`;if(ke.has(r))return ke.get(r);let i;try{let o=zt("git",["-C",e,"log","--all","--format=%H","--max-count=64","--",t],{encoding:"utf8",maxBuffer:1048576,timeout:5e3}).split(/\r?\n/u).filter(Boolean);for(let s of o){let c=zt("git",["-C",e,"show",`${s}:${t}`],{encoding:null,maxBuffer:4194304,timeout:5e3});if(Te("sha256").update(c).digest("hex")===n){i=Oe(t,c);break}}}catch{i=void 0}return ke.set(r,i),i}function Tr(){if(M!==void 0)return M;try{M=Er("typescript")}catch{M=null}return M}function Re(e){return Array.isArray(e)?`[${e.map(Re).join(",")}]`:typeof e=="object"&&e!==null?`{${Object.entries(e).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${JSON.stringify(t)}:${Re(n)}`).join(",")}}`:JSON.stringify(e)}function Dr(e,t,n){let r=!1,i=!1;for(;;){let o=t.scan();if(o===e.SyntaxKind.EndOfFileToken)break;if(o===e.SyntaxKind.WhitespaceTrivia)continue;if(o===e.SyntaxKind.NewLineTrivia){r&&(i=!0);continue}i&&n.update("line-break\0");let s=t.getTokenText();n.update(`${o}\0${Buffer.byteLength(s)}\0`).update(s).update("\0"),r=!0,i=!1}}import{createHash as tn,randomUUID as Ur}from"crypto";import{chmodSync as nn,existsSync as B,linkSync as Jr,lstatSync as pe,readdirSync as Ne,realpathSync as x,unlinkSync as Kr,writeSync as qr}from"fs";import{homedir as Yr}from"os";import{basename as Xr,dirname as fe,isAbsolute as Zt,join as b,resolve as de}from"path";import{closeSync as Or,existsSync as _r,fsyncSync as Br,mkdirSync as Lr,openSync as Ar}from"fs";import{dirname as Vt}from"path";function ce(e,t,n,r){let i=0;for(;i<t.length;){let o=n.writeFile(e,t,i,t.length-i);if(!Number.isSafeInteger(o)||o<=0||o>t.length-i)throw new Error(`${r} write did not make valid forward progress`);i+=o}}function Be(e,t){if(t!=="win32")return!1;let n=e.code;return n==="EACCES"||n==="EBADF"||n==="EINVAL"||n==="EISDIR"||n==="EPERM"}var G=Object.freeze({platform:process.platform,pathExists:e=>_r(e),makeDirectory:e=>Lr(e,{recursive:!0}),openFile:(e,t,n)=>Ar(e,t,n),syncFile:e=>Br(e),closeFile:e=>Or(e)});function Ut(e,t=G){let n=[],r=e;for(;!t.pathExists(r);){n.push(r);let o=Vt(r);if(o===r)throw new Error(`Cannot establish a durable directory path without an existing ancestor: ${e}`);r=o}let i="synced";for(let o of n.reverse())t.makeDirectory(o),i=ue(i,ae(Vt(o),t));return i}function ae(e,t=G){let n;try{n=t.openFile(e,"r")}catch(r){if(Be(r,t.platform))return"unsupported";throw r}try{t.syncFile(n)}catch(r){try{t.closeFile(n)}catch{}if(Be(r,t.platform))return"unsupported";throw r}return t.closeFile(n),"synced"}function ue(...e){return e.every(t=>t==="not-requested")?"not-requested":e.includes("unsupported")?"unsupported":"synced"}import{createHash as Nr,randomUUID as Mr}from"crypto";import{readdirSync as Gr}from"fs";import{dirname as Kt,extname as Wr,join as Le,relative as qt,sep as Yt}from"path";import{fileURLToPath as zr}from"url";import{createRequire as Hr}from"module";var Jt=Hr(import.meta.url),z=Vr(),Xt=z.version,ks=z.path?Kt(z.path):null,W;function Rs(){if(W!==void 0)return W;try{if(!z.path)throw new Error("Package location unavailable");let e=Kt(z.path),n=qt(e,zr(import.meta.url)).startsWith(`src${Yt}`)?"src":"dist";W=$r(e,n)}catch{W=`unavailable:${Mr()}`}return W}function $r(e,t){let n=Nr("sha256").update("scip-query-runtime-v2\0"),r=t==="src"?new Set([".ts",".tsx",".js",".jsx",".mjs",".cjs",".json"]):new Set([".js",".mjs",".cjs",".json"]),i=Qt(Le(e,t),r);if(i.length===0)throw new Error("Package runtime is empty");for(let o of[Le(e,"package.json"),...i]){let s=_(o,{maxBytes:Z,inputKind:"Package runtime input"});n.update(qt(e,o).split(Yt).join("/")).update("\0"),n.update(String(s.length)).update("\0").update(s)}return n.digest("hex").slice(0,16)}function Qt(e,t){let n=[],r=Gr(e,{withFileTypes:!0}).sort((i,o)=>i.name<o.name?-1:i.name>o.name?1:0);for(let i of r){let o=Le(e,i.name);if(i.isDirectory())n.push(...Qt(o,t));else if(i.isFile())t.has(Wr(i.name))&&n.push(o);else throw new Error(`Unsupported runtime entry: ${o}`)}return n}function Vr(){for(let e of["../package.json","../../package.json"])try{let t=Jt(e);if(t.name==="scip-query"&&typeof t.version=="string")return{version:t.version,path:Jt.resolve(e)}}catch{}return{version:"0.0.0"}}var rn=1,$=".scip-query-cache-owner.json",Qr=16*1024,on=Object.freeze({...G,randomToken:()=>Ur(),linkFile:(e,t)=>Jr(e,t),removeFile:e=>Kr(e),writeFile:(e,t,n,r)=>qr(e,t,n,r)});function le(e,t){return Object.assign(new Error(`refusing unsafe project dbPath ${JSON.stringify(e)} (${t}); use a repository-relative directory that remains inside the checkout`),{name:"UnsafeCachePathError",code:"SCIP_QUERY_UNSAFE_CACHE_PATH",configuredPath:e,reason:t})}function C(e,t){return Object.assign(new Error(`refusing unowned cache directory ${JSON.stringify(e)} (${t}); move unrelated data elsewhere or choose a new empty dbPath`),{name:"CacheOwnershipError",code:"SCIP_QUERY_CACHE_OWNERSHIP",cacheDir:e,reason:t})}function Zr(e,t){let n=x(e);return ti(n,Me(n,t))}function Me(e,t){let n=x(e),r=process.env.SCIP_QUERY_CACHE_DIR;return r?de(r):t?.dbPath?ri(n,t.dbPath):ei(n)}function sn(){let e=process.env.XDG_CACHE_HOME;return b(e||b(Yr(),".cache"),"scip-query")}function ei(e){let t=de(e);try{t=x(t)}catch{}let n=tn("sha256").update(t).digest("hex").slice(0,12);return b(sn(),"projects",n)}function Ws(e){if(!/^[a-f0-9]{24}$/.test(e))throw new Error(`invalid repository cache identity: ${e}`);let t=b(sn(),"repositories",e);return un(t),x(t)}function zs(e){return process.env.SCIP_QUERY_SHARED_CACHE!=="0"&&!process.env.SCIP_QUERY_CACHE_DIR&&!process.env.SCIP_QUERY_INDEX_DB&&!e?.dbPath}function Hs(e,t){let n=Zr(e,t);return{cacheDir:n,dbPath:b(n,"index.db"),indexPath:b(n,"index.scip"),metaPath:b(n,"meta.json")}}function ti(e,t,n=on){return ni(e,t,n).cacheDir}function ni(e,t,n=on){let r=x(e),i=B(t)?"synced":un(t,n),o=x(t),s=b(o,$);if(B(s))return Ae(r,o),Ge(s),H(o),{kind:"existing",cacheDir:o};en(o),ai(o),en(o);let a=`${JSON.stringify({schemaVersion:rn,canonicalProjectRoot:r,canonicalCacheDir:o,creatorVersion:Xt},null,2)}
|
|
3
|
+
`;try{let u=ui(s,a,n),l=ue(i,u);return{kind:"published",cacheDir:o,achievedDurability:l==="synced"?"directory-durable":"file-flushed",directorySync:l}}catch(u){if(pi(u))return Ae(r,o),{kind:"existing",cacheDir:o};throw u}}function Ae(e,t){let n=x(e),r=x(t);return oi(r,n,r)}function $s(e,t){return B(b(t,$))?(Ae(e,t),cn(t),!0):!1}function ri(e,t){let n;try{n=F(t)}catch(s){throw s instanceof g?le(t,s.reason):s}let r=de(e,...n.split("/"));if(r===e||!P(e,r))throw le(t,"outside-project");let i=ii(r),o=x(i);if(!P(e,o)&&o!==e)throw le(t,"symlink-escape");return r}function ii(e){let t=e;for(;!B(t);){let n=fe(t);if(n===t)throw le(e,"no-existing-ancestor");t=n}return t}function oi(e,t,n){let r=b(e,$);if(!B(r)||pe(r).isSymbolicLink())throw C(e,"missing regular ownership record");let i=pe(r);if(!i.isFile()||i.size>Qr)throw C(e,"invalid ownership record file");let o=N(r,"cache ownership record"),s=si(o,e);if(t!==void 0&&s.canonicalProjectRoot!==t)throw C(e,"ownership record belongs to a different project");if(s.canonicalCacheDir!==n)throw C(e,"ownership record names a different cache directory");return{record:s,ownerSha256:tn("sha256").update(o).digest("hex"),physicalCacheDir:e}}function si(e,t){try{let n=JSON.parse(e);if(n.schemaVersion!==rn||typeof n.canonicalProjectRoot!="string"||typeof n.canonicalCacheDir!="string"||typeof n.creatorVersion!="string"||!Zt(n.canonicalProjectRoot)||!Zt(n.canonicalCacheDir))throw new Error("invalid fields");return n}catch(n){throw C(t,`malformed ownership record: ${n instanceof Error?n.message:String(n)}`)}}function en(e){let t=Ne(e).filter(n=>n!==$&&!ci(n));if(t.length>0)throw C(e,`unrecognized existing entries: ${t.slice(0,3).join(", ")}`)}function ci(e){return e.startsWith(`${$}.tmp-`)||e.startsWith("git-worktree-context.json.tmp-")||[".scipquery-generations","affected-shadow-latest.json","affected-shadow.jsonl","agent-hooks","augment-vue-meta.json","cache-lifecycle.lock","evidence.db","evidence.db-shm","evidence.db-wal","health-report-cache.json","git-worktree-context.json","index.db","index.db-shm","index.db-wal","index.lock","index.scip","language-indexes","meta.json","reindex-activity.jsonl","shared-cache.json","typescript-index","typescript-scip-fragments","typescript-scip-overlays","typescript-semantic","typescript-shard-costs.json","watch-activity.json","watch-refresh-requests","watch-state.json","watch.lock"].includes(e)?!0:/^(?:reindex-|rust-|typescript-)/.test(e)}function ai(e){for(let t of Ne(e)){let n=b(e,t);try{let r=pe(n);if(r.isSymbolicLink())throw C(e,`legacy cache entry ${t} is a symlink`);if(r.isDirectory())H(n);else if(r.isFile())Ge(n);else throw C(e,`legacy cache entry ${t} is not a file or directory`)}catch(r){if(an(r))continue;throw r}}H(e)}function cn(e,t=!1){try{let n=pe(e);if(n.isSymbolicLink())throw C(e,"managed cache tree contains a symlink");if(n.isFile()){Ge(e);return}if(!n.isDirectory())throw C(e,"managed cache tree contains a special file");H(e);for(let r of Ne(e))cn(b(e,r),!0)}catch(n){if(t&&an(n))return;throw n}}function an(e){let t=e?.code;return t==="ENOENT"||t==="ENOTDIR"}function un(e,t=G){let n=Ut(e,t);return H(e),n}function ui(e,t,n){let r=`${e}.tmp-${process.pid}-${n.randomToken()}`,i,o=!1;try{i=n.openFile(r,"wx",384),o=!0,ce(i,Buffer.from(t),n,"cache ownership record"),n.syncFile(i),n.closeFile(i),i=void 0,n.linkFile(r,e);let s=ae(fe(e),n);return n.removeFile(r),o=!1,ue(s,ae(fe(e),n))}finally{if(i!==void 0)try{n.closeFile(i)}catch{}if(o)try{n.removeFile(r)}catch{}}}function H(e){process.platform!=="win32"&&nn(e,448)}function Ge(e){process.platform!=="win32"&&nn(e,384)}function li(e){if(B(e))return x(e);let t=x(fe(e));return b(t,Xr(e))}function Vs(e){return li(de(e))}function pi(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="EEXIST"}import{closeSync as ln,existsSync as ze,openSync as fi,realpathSync as di,renameSync as gi,unlinkSync as pn,writeSync as hi}from"fs";import{dirname as mi,join as yi,resolve as Si}from"path";import{AsyncLocalStorage as bi}from"async_hooks";var Pi="fingerprint-stat-cache.json",fn=1,ji=8*1024*1024,We=new Map,dn=new bi;function Zs(e,t,n){return dn.run({projectRoot:Ue(e),cacheDir:Si(t)},n)}function gn(e){let t=dn.getStore();return t?.projectRoot===e?t.cacheDir:null}function xi(e){let t=Ue(e);return We.get(t)?.get(gn(t))}function He(e,t,n,r){let i=hn(e),o=i.files.get(t);if(!(!o||!mn(o,n,r)))return i.hits+=1,{hash:o.hash,size:o.fingerprintSize,...o.semanticHash===void 0?{}:{semanticHash:o.semanticHash}}}function $e(e,t,n,r,i){if(i.hash==="unreadable"||i.size<0||!Number.isFinite(i.size))return;let o=hn(e),s={kind:n,dev:r.dev,ino:r.ino,mtimeMs:r.mtimeMs,ctimeMs:r.ctimeMs,size:r.size,hash:i.hash,fingerprintSize:i.size,...i.semanticHash===void 0?{}:{semanticHash:i.semanticHash}},c=o.files.get(t);c&&ki(c,s)||(o.files.set(t,s),o.stores+=1,o.dirty=!0)}function Ve(e){let t=xi(e);if(!(!t?.dirty||!t.cachePath))try{let n=mi(t.cachePath);if(!ze(n))return;Ri(t.cachePath,wi(t)),t.dirty=!1}catch{}}function hn(e){let t=Ue(e),n=gn(t),r=We.get(t)??new Map,i=r.get(n);if(i)return i;let o=Ci(t,n),s=Fi(o),c={cachePath:o,files:s,dirty:!1,hits:0,stores:0};return r.set(n,c),We.set(t,r),c}function Ci(e,t){try{let n=t??Me(e);return ze(n)?yi(n,Pi):null}catch{return null}}function Fi(e){let t=new Map;if(!e||!ze(e))return t;try{let n=JSON.parse(_(e,{inputKind:"fingerprint stat cache",maxBytes:ji}).toString("utf8"));if(!vi(n))return t;for(let[r,i]of Object.entries(n.files))i&&t.set(r,i)}catch{return t}return t}function wi(e){return{version:fn,files:Object.fromEntries(e.files)}}function vi(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.version!==fn||typeof t.files!="object"||t.files===null?!1:Object.values(t.files).every(Ii)}function Ii(e){if(typeof e!="object"||e===null)return!1;let t=e;return(t.kind==="file"||t.kind==="symlink")&&Ei(t)&&typeof t.hash=="string"&&t.hash!=="unreadable"&&(t.semanticHash===void 0||typeof t.semanticHash=="string")}function Ei(e){return Number.isFinite(e.dev)&&Number.isFinite(e.ino)&&Number.isFinite(e.mtimeMs)&&Number.isFinite(e.ctimeMs)&&Number.isFinite(e.size)&&Number.isFinite(e.fingerprintSize)}function mn(e,t,n){return e.kind===t&&e.dev===n.dev&&e.ino===n.ino&&e.mtimeMs===n.mtimeMs&&e.ctimeMs===n.ctimeMs&&e.size===n.size}function ki(e,t){return mn(e,t.kind,t)&&e.hash===t.hash&&e.fingerprintSize===t.fingerprintSize&&e.semanticHash===t.semanticHash}function Ri(e,t){let n=`${e}.${process.pid}.tmp`;try{pn(n)}catch{}let r=Buffer.from(`${JSON.stringify(t)}
|
|
4
|
+
`,"utf8"),i=fi(n,"wx",384);try{ce(i,r,{writeFile:(o,s,c,a)=>hi(o,s,c,a)},"fingerprint stat cache")}catch(o){throw ln(i),pn(n),o}ln(i),gi(n,e)}function Ue(e){return di(e)}import{execFileSync as Ti}from"child_process";import{isUtf8 as yn}from"buffer";import{createHash as Ke}from"crypto";import{closeSync as Sn,fstatSync as V,lstatSync as qe,openSync as bn,readSync as Pn,readlinkSync as Di,realpathSync as U}from"fs";import{isAbsolute as Oi,join as Ye,relative as _i,resolve as Bi,sep as Li}from"path";var K=64*1024*1024,Ai=1024*1024,Ni=1024,L=class extends Error{constructor(n,r,i,o){super(`${n} ${JSON.stringify(r)} is ${i} bytes; the safety limit is ${o} bytes`);this.inputKind=n;this.inputPath=r;this.observedBytes=i;this.limitBytes=o;this.name="InputTooLargeError"}inputKind;inputPath;observedBytes;limitBytes;code="SCIP_QUERY_INPUT_TOO_LARGE"};function Mi(e){return[...new Set((e??[]).map(t=>t.trim()).filter(Boolean))].sort((t,n)=>t.localeCompare(n))}function Xe(e,t,n={}){let r=F(t),i=Pt(e,()=>U(e)),o=Bi(i,...r.split("/"));if(!P(i,o)||o===i)throw new g(t,"outside-project");let s=U(o);if(!P(i,s)||s===i)throw new g(t,"outside-project");let c=qe(s);if(!c.isFile())throw new g(t,"not-a-file");let a={projectRoot:i,relativePath:r,absolutePath:s,size:c.size,mtimeMs:c.mtimeMs,device:c.dev,inode:c.ino},u=n.maxBytes??K;if(w(u),a.size>u)throw new L(n.inputKind??"project file",a.relativePath,a.size,u);return a}function Gi(e,t,n={}){let r=F(t),i=T(e,r);if(i)return po(e,r,i,n);let o=Xe(e,t,n),s=n.maxBytes??K,c=bn(o.absolutePath,"r");try{let a=V(c);if(J(a,o,t),a.size>s)throw new L(n.inputKind??"project file",o.relativePath,a.size,s);let u=je(c,a.size),l=V(c);if(J(l,o,t),u.byteLength!==a.size||l.mtimeMs!==a.mtimeMs)throw new g(t,"changed-during-read");return u}finally{Sn(c)}}function mc(e,t,n,r={}){if(n.byteLength===0)throw new Error("Project file probe literal must not be empty.");let{matchedLiteralIndexes:i,...o}=Wi(e,t,[n],r);return{...o,includesLiteral:i.length>0}}function Wi(e,t,n,r={}){if(n.length===0||n.some(a=>a.byteLength===0))throw new Error("Project file probe literals must not be empty.");let i=F(t),o=T(e,i);if(o){if(o==="missing")throw Object.assign(new Error(`Snapshot project file ${JSON.stringify(i)} does not exist.`),{code:"ENOENT"});return zi(e,i,n,r)}let s=Xe(e,t,r),c=bn(s.absolutePath,"r");try{let a=V(c);J(a,s,t);let{hash:u,containsNul:l,validUtf8:f,includesLiterals:h}=Hi(c,a.size,t,n,r);J(V(c),s,t);let y=!l&&f,j=y?h.flatMap((S,d)=>S?[d]:[]):[],m=null;return j.length>0&&(m=$i(c,s,t)),{byteLength:a.size,isUtf8Text:y,matchedLiteralIndexes:j,bytes:m,...u?{sha256:u.digest("hex")}:{}}}finally{Sn(c)}}function zi(e,t,n,r){let i=R(e,t);if(!i)throw new g(t,"changed-during-read");let o=r.maxBytes??K;if(w(o),i.size>o)throw new L(r.inputKind??"project file",t,i.size,o);let s=!i.content.includes(0)&&yn(i.content),c=n.map(jn),a=s?Ui(i.content,n,c):[];return{byteLength:i.size,isUtf8Text:s,matchedLiteralIndexes:a,bytes:a.length>0?Buffer.from(i.content):null,...r.computeSha256?{sha256:i.sha256}:{}}}function Hi(e,t,n,r,i){let o=i.computeSha256?Ke("sha256"):null,s=i.scratchBuffer??Buffer.allocUnsafe(Ai);if(s.byteLength===0)throw new Error("Project file probe scratch buffer must not be empty.");let c=0,a=r.map(()=>!1),u=!1,l=!0,f=Buffer.alloc(0),h=r.map(()=>Buffer.alloc(0)),y=r.map(jn),j=S=>{if(l){let d=f.byteLength>0?Buffer.concat([f,S]):S,A=Vi(d);l=yn(d.subarray(0,A)),f=Buffer.from(d.subarray(A))}},m=S=>{for(let d=0;d<r.length;d+=1){if(a[d])continue;let A=r[d],tt=h[d];a[d]=Ji(S,A,tt,y[d]),h[d]=Ki(S,A,tt)}};for(;c<t;){let S=Pn(e,s,0,Math.min(s.byteLength,t-c),c);if(S<=0)throw new g(n,"changed-during-read");let d=s.subarray(0,S);o?.update(d),u||=d.includes(0),j(d),m(d),c+=S}return l&&=f.byteLength===0,{hash:o,containsNul:u,validUtf8:l,includesLiterals:a}}function $i(e,t,n){let r=Buffer.allocUnsafe(t.size),i=0;for(;i<r.byteLength;){let o=Pn(e,r,i,r.byteLength-i,i);if(o<=0)throw new g(n,"changed-during-read");i+=o}return J(V(e),t,n),r}function yc(e,t,n={}){return Gi(e,t,n).toString("utf8")}function J(e,t,n){if(!e.isFile()||e.dev!==t.device||e.ino!==t.inode||e.size!==t.size)throw new g(n,"changed-during-read")}function Vi(e){if(e.byteLength===0)return 0;let t=e.byteLength-1,n=0;for(;t>=0&&n<3&&(e[t]&192)===128;)n+=1,t-=1;if(t<0)return e.byteLength;let r=e[t];return fo(r)>e.byteLength-t?t:e.byteLength}function Ui(e,t,n){return t.flatMap((r,i)=>Je(e,r,n[i])?[i]:[])}function Ji(e,t,n,r){if(Je(e,t,r))return!0;if(n.byteLength===0||t.byteLength===1)return!1;let i=e.subarray(0,Math.min(e.byteLength,t.byteLength-1));return Je(Buffer.concat([n,i]),t,r)}function Je(e,t,n){if(n<0)return e.includes(t);let r=t[n],i=e.indexOf(r),o=0;for(;i>=0;){if(o+=1,o>Ni)return e.includes(t);let s=i-n;if(s>=0&&s+t.byteLength<=e.byteLength&&e.compare(t,0,t.byteLength,s,s+t.byteLength)===0)return!0;i=e.indexOf(r,i+1)}return!1}function jn(e){for(let n=1;n<e.byteLength;n+=1){let r=e[n];if(r>=65&&r<=90)return n}let t=e[0];return t>=65&&t<=90?0:-1}function Ki(e,t,n){let r=t.byteLength-1;if(r===0)return Buffer.alloc(0);if(e.byteLength>=r)return Buffer.from(e.subarray(e.byteLength-r));let i=Buffer.concat([n,e]);return Buffer.from(i.subarray(Math.max(0,i.byteLength-r)))}function Qe(e){return typeof e=="object"&&e!==null&&"code"in e&&(e.code==="ENOENT"||e.code==="ENOTDIR")}function Sc(e,t){try{return Xe(e,t),!0}catch(n){if(Qe(n))return!1;throw n}}function qi(e){let t=D(e);return t?t.filter(n=>n&&!he(n)).sort():(ao(e)??uo(e)).filter(n=>n&&!he(n)).sort()}function Yi(e,t={}){let n=(t.includePaths??[]).map(F),r=[...new Set([...qi(e),...n])].filter(s=>!he(s)).filter(s=>!t.language||at(s,t.language,t.markerFiles)).filter(s=>!t.includePath||t.includePath(s)).sort((s,c)=>s.localeCompare(c)),i=U(e),o=r.flatMap(s=>xn(e,i,s));return Ve(i),o}function xn(e,t,n){let r=Xi(e,n);if(r)return r;let i=Ye(e,n);try{let o=qe(i);return o.isSymbolicLink()?Qi(t,n,i,o):Zi(t,n,i,o)}catch(o){return Qe(o)?[]:[{path:n,size:-1,hash:"unreadable"}]}}function Xi(e,t){let n=Et(e,t);if(n)return[{path:t,size:n.fingerprintSize??n.size,hash:n.sha256}];if(T(e,t)==="present"){let r=R(e,t);if(r)return[{path:t,size:r.fingerprintSize??r.size,hash:r.sha256}]}return null}function Qi(e,t,n,r){let i=He(e,t,"symlink",ge(r));if(i)return[{path:t,size:i.size,hash:i.hash}];let o=U(n),s=_i(e,o);if(s===".."||s.startsWith(`..${Li}`)||Oi(s))throw new Error("external symlink");let c=Di(n),a=Ke("sha256").update("symlink\0").update(c).digest("hex"),u=Buffer.byteLength(c);return $e(e,t,"symlink",ge(r),{hash:a,size:u}),[{path:t,size:u,hash:a}]}function Zi(e,t,n,r){let i=De(t)||_e(t),o=He(e,t,"file",ge(r));if(o&&(!i||o.semanticHash!==void 0))return[{path:t,size:o.size,hash:o.hash,...o.semanticHash===void 0?{}:{semanticHash:o.semanticHash}}];let s=eo(n,t,i);return $e(e,t,"file",ge(r),s),[{path:t,...s}]}function eo(e,t,n){let r=Ke("sha256"),i=n,o=[],s=ee(e,{inputKind:"project fingerprint input",maxBytes:K},l=>{r.update(l),i&&o.push(Buffer.from(l))}),c=r.digest("hex"),a=i?Buffer.concat(o,s):void 0,u=a?$t(t,a)??Oe(t,a):void 0;return{size:s,hash:c,...u===void 0?{}:{semanticHash:u}}}function ge(e){return{dev:e.dev,ino:e.ino,mtimeMs:e.mtimeMs,ctimeMs:e.ctimeMs,size:e.size}}function Cn(e,t,n){let r=Ze(t,n),i=[...r.typescriptProjects.filter(a=>so(e,a)),...r.clojureConfigPath?[r.clojureConfigPath]:[]],o=r.languages.includes("typescript")?Lt(e,r.typescriptProjectMode,r.typescriptProjects):null,s=r.languages.includes("typescript")?r.typescriptProjectMode==="workspace"?se(e,r.typescriptProjects):["."]:[],c=Ot(s);return{...r,files:Yi(e,{includePath:a=>{if(a===".scipquery.json")return!1;let u=X(a,t,i);return u==="other"||u==="config"&&_t(a)&&!c.has(a)?!1:u!=="source"||!oo(a)||!o?!0:o.has(a)},includePaths:i})}}function bc(e,t){let n=new Set(t.files.map(o=>o.path)),r=Cn(e,t.languages,t),i=new Map(r.files.map(o=>[o.path,o]));return{...Ze(t.languages,t),files:[...t.files.flatMap(o=>{let s=i.get(o.path);return s?[s]:[]}),...r.files.filter(o=>!n.has(o.path))]}}function Pc(e,t,n,r,i,o){let s=m=>({mode:"full",fingerprint:Cn(e,t,n),reason:m}),c=to(r,i,o);if(!c.ready)return s(c.reason);let{previous:a,journal:u}=c,l=Ze(t,n);if(!io(a,l))return s("project-input-configuration-changed");if(new Set(a.files.map(m=>m.path)).size!==a.files.length)return s("prior-project-input-snapshot-has-duplicate-paths");if(u.entries.length===0)return{mode:"delta",fingerprint:{...l,files:[...a.files].sort((m,S)=>m.path.localeCompare(S.path))},changedPaths:[]};let f=new Map(a.files.map(m=>[m.path,m])),h=no(t,l,f,u);if(h)return s(h);let y=U(e),j=ro(e,y,f,u);return j?s(j):(Ve(y),{mode:"delta",fingerprint:{...l,files:[...f.values()].sort((m,S)=>m.path.localeCompare(S.path))},changedPaths:u.entries.map(m=>m.path).sort()})}function to(e,t,n){return t?t.complete?n?t.baseGeneration!==n?{ready:!1,reason:"change-journal-base-mismatch"}:e?{ready:!0,previous:e,journal:t}:{ready:!1,reason:"prior-project-input-snapshot-unavailable"}:{ready:!1,reason:"accepted-generation-unavailable"}:{ready:!1,reason:`change-journal-incomplete:${t.incompleteReason??"unknown"}`}:{ready:!1,reason:"change-journal-unavailable"}}function no(e,t,n,r){let i=[...t.typescriptProjects,...t.clojureConfigPath?[t.clojureConfigPath]:[]];for(let o of r.entries){let s=go(o,n,e,i);if(s!==null)return s}return null}function ro(e,t,n,r){for(let i of r.entries){let o=xn(e,t,i.path);if(i.kind==="delete"){if(o.length!==0)return"deleted-source-is-still-readable";n.delete(i.path);continue}if(o.length!==1||o[0].hash==="unreadable"||o[0].size<0)return i.kind==="add"?"added-source-is-not-readable":"changed-source-no-longer-readable";n.set(i.path,o[0])}return null}function io(e,t){return e.version===t.version&&e.typescriptSymbolIdentityVersion===t.typescriptSymbolIdentityVersion&&JSON.stringify([...e.languages].sort())===JSON.stringify(t.languages)&&e.pnpmWorkspaces===t.pnpmWorkspaces&&e.typescriptProjectMode===t.typescriptProjectMode&&JSON.stringify([...e.typescriptProjects].sort())===JSON.stringify(t.typescriptProjects)&&e.clojureConfigPath===t.clojureConfigPath}function oo(e){return/\.(?:[cm]?[jt]sx?|vue)$/iu.test(e)}function so(e,t){let n;try{n=F(t)}catch{return!1}let r=T(e,n);if(r)return r==="present";try{return qe(Ye(e,n)).isFile()}catch(i){if(Qe(i))return!1;throw i}}function Ze(e,t){return{version:3,...e.includes("typescript")?{typescriptSymbolIdentityVersion:6}:{},languages:[...e].sort(),pnpmWorkspaces:t.typescriptProjectMode!=="workspace"&&t.pnpmWorkspaces===!0,typescriptProjectMode:t.typescriptProjectMode??"single",typescriptProjects:Mi(t.typescriptProjects),clojureConfigPath:co(t.clojureConfigPath)}}function co(e){return e?.trim()||void 0}function ao(e){try{let t=xt(e,52428800,()=>Ti("git",["-C",e,"ls-files","-co","-v","-z","--exclude-standard","--","."],{encoding:"utf-8",maxBuffer:104857600,stdio:["ignore","pipe","ignore"],timeout:3e4,killSignal:"SIGKILL"}));return[...Ft(t)]}catch{return null}}function uo(e){let t=[],n=[""];for(;n.length>0;){let r=n.pop(),i=r?Ye(e,r):e,o=ie(i);for(let s of o){let c=r?`${r}/${s.name}`:s.name;if(s.isDirectory()){he(c)||n.push(c);continue}t.push(c)}}return t}function he(e){let t=e.split("/");return e==="meta.json"||Bt(e)||t[0]===".scipquery"&&mo.has(t[1])||t.some(n=>lo.has(n))||e.endsWith(".db")||e.endsWith(".db-wal")||e.endsWith(".db-shm")||e.endsWith(".scip")}var lo=new Set([".git","node_modules",".scipquery-cache",".scipquery-generations",".stryker-tmp","dist","build","coverage",".next",".nuxt","target"]);function po(e,t,n,r){if(n==="missing")throw Object.assign(new Error(`Snapshot project file ${JSON.stringify(t)} does not exist.`),{code:"ENOENT"});let i=R(e,t);if(!i)throw new g(t,"changed-during-read");let o=r.maxBytes??K;if(w(o),i.size>o)throw new L(r.inputKind??"project file",t,i.size,o);return Buffer.from(i.content)}function fo(e){return(e&128)===0?1:(e&224)===192?2:(e&240)===224?3:(e&248)===240?4:0}function go(e,t,n,r){let i=t.get(e.path);return X(e.path,n,r)!=="source"?"non-source-project-input-changed":ho(e,i)}function ho(e,t){return e.kind==="add"&&t?"added-path-already-in-prior-project-input-snapshot":e.kind==="delete"&&!t?"deleted-path-not-in-prior-project-input-snapshot":e.kind==="change"&&!t?"changed-path-not-in-prior-project-input-snapshot":t&&(t.hash==="unreadable"||t.size<0)?"changed-path-was-unreadable":null}var mo=new Set(["events","ledger","releases","suppressions"]);var Fn=[];function q(e){e.groups.length>0&&Fn.push(e)}function xc(e,t){let n=new Set(t.groups);for(let r of Fn)r.groups.some(i=>n.has(i))&&(t.file!==void 0&&r.clearFile?r.clearFile(e,t.file):r.clearAll(e))}var wn=256;function et(e){let t=e.maxEntries;if(t!==void 0){if(!Number.isSafeInteger(t)||t<1)throw new Error(`Per-database cache maxEntries must be a positive safe integer; received ${t}.`);return t}return e.clearGroups.includes("source-file")?wn:void 0}function vn(e,t,n){e.delete(t),e.set(t,n)}function In(e,t){if(t!==void 0)for(;e.size>t;){let n=e.keys().next().value;if(n===void 0)return;e.delete(n)}}function En(){let e=new WeakMap;return{cache:e,ensure(t){let n=e.get(t);return n||(n=new Map,e.set(t,n)),n}}}function yo(e,t){let{cache:n,ensure:r}=En(),i=et(t),o={get(s,c,a){let u=r(s);if(u.has(c)){let f=u.get(c);return vn(u,c,f),f}let l=a();return u.set(c,l),In(u,i),l},has(s,c){return n.get(s)?.has(c)??!1},invalidate(s,c){n.get(s)?.delete(c)},invalidateAll(s){n.delete(s)},size(s){return n.get(s)?.size??0}};return q({name:e,groups:t.clearGroups,clearAll:s=>o.invalidateAll(s)}),o}function wc(e,t){let n=yo(e,{clearGroups:[],maxEntries:et(t)}),r=o=>o.replace(/\\/g,"/"),i={get:(o,s,c)=>n.get(o,r(s),c),has:(o,s)=>n.has(o,r(s)),invalidate:(o,s)=>n.invalidate(o,r(s)),invalidateAll:n.invalidateAll,size:n.size};return q({name:e,groups:t.clearGroups,clearAll:i.invalidateAll,clearFile:i.invalidate}),i}function vc(e,t){let n=new WeakMap,r={get(i,o){let s=n.get(i);if(s)return s.value;let c=o();return n.set(i,{value:c}),c},invalidate(i){n.delete(i)},has(i){return n.has(i)}};return q({name:e,groups:t.clearGroups,clearAll:i=>r.invalidate(i)}),r}var So={clearGroups:["whole-project","source-file"],maxEntries:wn};function Ic(e){return bo(e,So)}function bo(e,t){let{cache:n,ensure:r}=En(),i=et(t),o={get(s,c,a,u){c=c.replace(/\\/g,"/");let l=r(s),f=l.get(c);if(f&&f.source===a)return vn(l,c,f),f.value;let h=u();return l.set(c,{source:a,value:h}),In(l,i),h},invalidate(s,c){n.get(s)?.delete(c.replace(/\\/g,"/"))},invalidateAll(s){n.delete(s)}};return q({name:e,groups:t.clearGroups,clearAll:s=>o.invalidateAll(s),clearFile:(s,c)=>o.invalidate(s,c)}),o}export{g as a,me as b,jo as c,xo as d,P as e,F as f,X as g,at as h,Fo as i,rt as j,wo as k,vo as l,Dn as m,Bn as n,Z as o,Mn as p,Gn as q,Wn as r,k as s,_ as t,gt as u,N as v,zn as w,Hn as x,ee as y,$n as z,ce as A,Be as B,G as C,Ut as D,ae as E,ue as F,Bo as G,xt as H,Ft as I,E as J,Vo as K,Uo as L,Jo as M,Ko as N,qo as O,ne as P,I as Q,se as R,Ot as S,_t as T,us as U,Bt as V,Lt as W,ls as X,ps as Y,ms as Z,Xt as _,ks as $,Rs as aa,Me as ba,sn as ca,ei as da,Ws as ea,zs as fa,Hs as ga,$s as ha,Vs as ia,Zs as ja,L as ka,Mi as la,Xe as ma,Gi as na,mc as oa,Wi as pa,yc as qa,Qe as ra,Sc as sa,qi as ta,Yi as ua,Cn as va,bc as wa,Pc as xa,Ze as ya,q as za,xc as Aa,yo as Ba,wc as Ca,vc as Da,Ic as Ea,bo as Fa};
|
|
5
|
+
//# sourceMappingURL=chunk-5TNQJUR2.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{closeSync as l,fstatSync as u,openSync as m,readSync as h}from"fs";import{createHash as L}from"crypto";var B=8*1024*1024,A=64*1024*1024,R=512*1024*1024,_=256*1024*1024,s=class extends Error{constructor(i,r,n,a,d){let o=n==="too-large"?`is ${a} bytes; the safety limit is ${d} bytes`:n==="not-regular"?"is not a regular file":"changed while it was being read";super(`${i} ${JSON.stringify(r)} ${o}`);this.inputKind=i;this.inputPath=r;this.reason=n;this.observedBytes=a;this.limitBytes=d;this.name="BoundedFileReadError"}inputKind;inputPath;reason;observedBytes;limitBytes;code="SCIP_QUERY_BOUNDED_FILE_READ"};function g(t,e){f(e.maxBytes);let i=String(t),r=m(t,"r");try{let n=u(r);T(n,e,i);let a=b(r,n.size);return F(n,u(r),a.byteLength,e,i),a}finally{l(r)}}function b(t,e){f(e);let i=Buffer.allocUnsafe(e),r=0;for(;r<i.length;){let n=h(t,i,r,i.length-r,r);if(n===0)break;r+=n}return i.subarray(0,r)}function y(t,e,i="utf8"){return g(t,e).toString(i)}function E(t,e){return y(t,{maxBytes:B,inputKind:e})}function x(t,e){f(e.maxBytes);let i=[],r=Buffer.allocUnsafe(64*1024),n=0;for(;;){let a=h(t,r,0,r.length,null);if(a===0)break;if(n+=a,!Number.isSafeInteger(n)||n>e.maxBytes)throw new s(e.inputKind,`file descriptor ${t}`,"too-large",n,e.maxBytes);i.push(Buffer.from(r.subarray(0,a)))}return Buffer.concat(i,n)}function p(t,e){let i=m(t,"r");try{return x(i,e)}finally{l(i)}}function P(t,e,i="utf8"){return p(t,e).toString(i)}function S(t,e,i){f(e.maxBytes);let r=String(t),n=m(t,"r");try{let a=u(n);T(a,e,r);let d=Buffer.allocUnsafe(Math.min(1024*1024,Math.max(1,a.size))),o=0;for(;o<a.size;){let c=h(n,d,0,Math.min(d.length,a.size-o),o);if(c===0)break;i(d.subarray(0,c)),o+=c}return F(a,u(n),o,e,r),o}finally{l(n)}}function O(t,e){let i=L("sha256");return S(t,e,r=>i.update(r)),i.digest("hex")}function F(t,e,i,r,n){if(e.dev!==t.dev||e.ino!==t.ino||e.size!==t.size||e.mtimeMs!==t.mtimeMs||i!==t.size)throw new s(r.inputKind,n,"changed-during-read",e.size,r.maxBytes)}function T(t,e,i){if(!t.isFile())throw new s(e.inputKind,i,"not-regular",Number(t.size),e.maxBytes);if(t.size>e.maxBytes)throw new s(e.inputKind,i,"too-large",Number(t.size),e.maxBytes)}function f(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError(`maxBytes must be a non-negative safe integer; received ${t}`)}export{B as a,A as b,R as c,_ as d,s as e,g as f,b as g,y as h,E as i,P as j,S as k,O as l,f as m};
|
|
2
|
+
//# sourceMappingURL=chunk-62BDNPMI.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{a as R,b as v}from"./chunk-ZLADLUE6.js";import{a as b,b as L}from"./chunk-6FFVZZL4.js";import{d}from"./chunk-QZ7KQZRN.js";import{spawn as q}from"child_process";import{platform as P}from"os";var a=class extends Error{},h=class extends Error{},m=class extends Error{constructor(t,r,s){super(`rust-analyzer LSP request ${r} failed: ${s}`);this.code=t}code},k=3e4,M=16*1024,O=64*1024*1024,z=64*1024,A=256*1024*1024,p=Buffer.from(`\r
|
|
2
|
+
\r
|
|
3
|
+
`,"ascii"),x=class{constructor(e,t={}){this.transport=e;this.requestTimeoutMs=t.requestTimeoutMs??k,this.configuration=t.configuration??{};let r=C(t.maxHeaderBytes,t.maxMessageBytes);this.maxHeaderBytes=r.maxHeaderBytes,this.maxMessageBytes=r.maxMessageBytes,this.monotonicNow=t.monotonicNow??d,this.headerBuffer=Buffer.allocUnsafe(this.maxHeaderBytes+p.length),this.transport.onData(s=>this.handleData(s)),this.transport.onClose((s,i)=>this.failTransport(new Error($(s,i)),!1)),this.transport.onError(s=>this.failTransport(s,!0))}transport;nextId=1;pending=new Map;diagnosedUris=new Set;diagnosticWaiters=new Map;readinessWaiters=new Set;requestTimeoutMs;configuration;maxHeaderBytes;maxMessageBytes;monotonicNow;headerBuffer;headerLength=0;bodyBuffer=null;bodyLength=0;transportFailure=null;transportKilled=!1;transportKillPromise=null;currentServerStatusGeneration=0;latestServerStatus=null;shutdownStarted=!1;async initialize(e,t={}){let r=e.capabilities??{},s=r.experimental&&typeof r.experimental=="object"&&!Array.isArray(r.experimental)?r.experimental:{},i=await this.request("initialize",{...e,capabilities:{...r,experimental:{...s,serverStatusNotification:!0}}},t);return this.notify("initialized",{}),i}async references(e,t={}){let r=await this.request("textDocument/references",e,t);return Array.isArray(r)?r:[]}async definition(e,t={}){let r=await this.request("textDocument/definition",e,t);return W(r)}async prepareCallHierarchy(e,t={}){let r=await this.request("textDocument/prepareCallHierarchy",e,t);return Array.isArray(r)?r:[]}async outgoingCalls(e,t={}){let r=await this.request("callHierarchy/outgoingCalls",{item:e},t);return Array.isArray(r)?r:[]}async hover(e,t={}){let r=await this.request("textDocument/hover",e,t);return r&&typeof r=="object"?r:null}async readinessBarrier(e={}){try{await this.request("scip-query/readinessBarrier",null,e)}catch(t){if(t instanceof m&&t.code===-32601)return;throw t}}serverStatusGeneration(){return this.currentServerStatusGeneration}serverStatusSnapshot(){let e=this.latestServerStatus;return e?{generation:e.generation,status:{...e.status}}:null}waitForQuiescence(e,t){if(this.transportFailure)return Promise.reject(this.transportFailure);let r=this.latestServerStatus;if(r&&r.generation>e){if(r.status.health==="error")return Promise.reject(E());if(r.status.quiescent)return Promise.resolve(r.status)}return new Promise((s,i)=>{let o={afterGeneration:e,resolve:s,reject:i,timeout:setTimeout(()=>{this.readinessWaiters.delete(o),i(new Error(`rust-analyzer readiness timed out after ${t}ms`))},t)};this.readinessWaiters.add(o)})}didOpenTextDocument(e){this.notify("textDocument/didOpen",{textDocument:e})}waitForDiagnostics(e,t){return this.transportFailure?Promise.resolve(!1):this.diagnosedUris.has(e)?Promise.resolve(!0):new Promise(r=>{let s=l=>{clearTimeout(i),r(l)},i=setTimeout(()=>{let l=this.diagnosticWaiters.get(e)?.filter(u=>u!==s);l&&l.length>0?this.diagnosticWaiters.set(e,l):this.diagnosticWaiters.delete(e),r(!1)},t),o=this.diagnosticWaiters.get(e)??[];o.push(s),this.diagnosticWaiters.set(e,o)})}async shutdown(e={}){if(!this.shutdownStarted){this.shutdownStarted=!0;try{await this.request("shutdown",null,e),this.notify("exit",null)}catch(t){throw this.notify("exit",null),this.killTransportOnce(),t}}}async shutdownAndReap(e={}){let t;try{await this.shutdown(e)}catch(r){t=r}try{await this.killTransportOnce()}catch(r){throw new Error(`rust-analyzer process-tree cleanup failed: ${r instanceof Error?r.message:String(r)}`,{cause:r})}if(t)throw t}request(e,t,r={}){if(this.transportFailure)return Promise.reject(this.transportFailure);let s=y(r.timeoutMs??this.requestTimeoutMs,r.deadlineMs,this.monotonicNow),i=this.nextId++,o={jsonrpc:"2.0",id:i,method:e,params:t};return new Promise((l,u)=>{let c=setTimeout(()=>{let w=s.deadlineLimited?new a(`rust-analyzer readiness deadline expired during LSP request ${e}`):new Error(`rust-analyzer LSP request ${e} timed out after ${s.timeoutMs}ms`);this.cancelAndFailTimedOutRequest(i,w)},s.timeoutMs);this.pending.set(i,{method:e,deadlineMs:r.deadlineMs,resolve:w=>l(w),reject:u,timeout:c}),this.transport.write(f(o))})}notify(e,t){this.transportFailure||this.transport.write(f({jsonrpc:"2.0",method:e,params:t}))}handleData(e){if(this.transportFailure||e.length===0)return;let t=0;for(;t<e.length&&!this.transportFailure;){if(this.bodyBuffer){t=this.consumeBodyChunk(e,t);continue}let r=this.consumeHeaderByte(e,t);if(r===null)return;t=r}}consumeBodyChunk(e,t){let r=this.bodyBuffer,s=Math.min(e.length-t,r.length-this.bodyLength);return e.copy(r,this.bodyLength,t,t+s),this.bodyLength+=s,this.bodyLength===r.length&&this.dispatchCompletedBody(),t+s}dispatchCompletedBody(){let e=this.bodyBuffer.toString("utf8");this.bodyBuffer=null,this.bodyLength=0;let t;try{t=H(e)}catch{this.failProtocol("rust-analyzer LSP response body was not a valid JSON object");return}try{this.dispatchMessage(t)}catch{this.failTransport(new Error("rust-analyzer LSP message handling failed"),!0)}}consumeHeaderByte(e,t){if(this.headerLength===this.headerBuffer.length)return this.failProtocol(`rust-analyzer LSP header exceeded ${this.maxHeaderBytes} byte limit`),null;if(this.headerBuffer[this.headerLength++]=e[t++],!this.headerDelimiterComplete())return t;let r=this.headerLength-p.length;if(r>this.maxHeaderBytes)return this.failProtocol(`rust-analyzer LSP header exceeded ${this.maxHeaderBytes} byte limit`),null;let s=this.headerBuffer.subarray(0,r).toString("ascii");this.headerLength=0;let i;try{i=D(s,this.maxMessageBytes)}catch(o){return this.failProtocol(o instanceof Error?o.message:String(o)),null}return this.bodyBuffer=Buffer.allocUnsafe(i),this.bodyLength=0,i===0&&(this.bodyBuffer=null,this.failProtocol("rust-analyzer LSP response body was not a valid JSON object")),t}headerDelimiterComplete(){if(this.headerLength<p.length)return!1;let e=this.headerLength-p.length;return this.headerBuffer.subarray(e,this.headerLength).equals(p)}failProtocol(e){this.failTransport(new h(e),!0)}failTransport(e,t){this.transportFailure||(this.transportFailure=e,this.headerLength=0,this.bodyBuffer=null,this.bodyLength=0,t&&this.killTransportOnce().catch(()=>{}),this.rejectPending(e),this.resolveDiagnosticWaiters(!1))}killTransportOnce(){return this.transportKilled?this.transportKillPromise??Promise.resolve():(this.transportKilled=!0,this.transportKillPromise=Promise.resolve(this.transport.kill()),this.transportKillPromise)}async cancelAndFailTimedOutRequest(e,t){let r=this.pending.get(e);if(!r)return;this.pending.delete(e);try{this.transport.write(f({jsonrpc:"2.0",method:"$/cancelRequest",params:{id:e}}))}catch{}this.transportFailure||(this.transportFailure=t,this.headerLength=0,this.bodyBuffer=null,this.bodyLength=0);let s=t;try{await this.killTransportOnce()}catch(i){s=new Error(`${t.message}; rust-analyzer cleanup failed: ${i instanceof Error?i.message:String(i)}`,{cause:i})}r.reject(s),this.rejectPending(s),this.resolveDiagnosticWaiters(!1)}dispatchMessage(e){if(this.recordDiagnosticNotification(e),this.recordServerStatusNotification(e),e.id!==void 0&&e.id!==null&&e.method){this.respondToServerRequest(e);return}if(e.id===void 0||e.id===null)return;let t=this.pending.get(e.id);if(t){if(clearTimeout(t.timeout),this.pending.delete(e.id),e.error){t.reject(new m(e.error.code,t.method,e.error.message));return}if(t.deadlineMs!==void 0&&this.monotonicNow()>=t.deadlineMs){t.reject(new a(`rust-analyzer readiness deadline expired during LSP request ${t.method}`));return}t.resolve(e.result)}}recordDiagnosticNotification(e){if(e.method!=="textDocument/publishDiagnostics")return;let t=e.params,r=t&&typeof t=="object"&&typeof t.uri=="string"?t.uri:null;if(!r)return;this.diagnosedUris.add(r);let s=this.diagnosticWaiters.get(r)??[];this.diagnosticWaiters.delete(r),s.forEach(i=>i(!0))}recordServerStatusNotification(e){if(e.method!=="experimental/serverStatus"||e.id!==void 0||!j(e.params))return;let t=e.params,r={health:t.health,quiescent:t.quiescent,...typeof t.message=="string"?{message:t.message}:{}},s=++this.currentServerStatusGeneration;if(this.latestServerStatus={generation:s,status:r},r.health==="error"){this.rejectReadinessWaiters(E());return}if(r.quiescent)for(let i of this.readinessWaiters)s<=i.afterGeneration||(clearTimeout(i.timeout),this.readinessWaiters.delete(i),i.resolve(r))}respondToServerRequest(e){if(e.id===void 0||e.id===null||!e.method)return;let t=e.method==="workspace/configuration"?this.workspaceConfiguration(e.params):null;this.transport.write(f({jsonrpc:"2.0",id:e.id,result:t}))}workspaceConfiguration(e){return(e&&typeof e=="object"&&Array.isArray(e.items)?e.items:[]).map(r=>typeof r.section=="string"?F(this.configuration,r.section):this.configuration)}rejectPending(e){for(let[t,r]of this.pending)clearTimeout(r.timeout),r.reject(e),this.pending.delete(t);this.rejectReadinessWaiters(e)}resolveDiagnosticWaiters(e){for(let t of this.diagnosticWaiters.values())t.forEach(r=>r(e));this.diagnosticWaiters.clear()}rejectReadinessWaiters(e){for(let t of this.readinessWaiters)clearTimeout(t.timeout),t.reject(e),this.readinessWaiters.delete(t)}};function C(n=M,e=O){if(!Number.isSafeInteger(n)||n<=0)throw new TypeError("maxHeaderBytes must be a positive safe integer.");if(!Number.isSafeInteger(e)||e<=0)throw new TypeError("maxMessageBytes must be a positive safe integer.");if(n>z)throw new RangeError(`maxHeaderBytes cannot exceed ${z} bytes for rust-analyzer LSP.`);if(n+p.length+e>A)throw new RangeError(`Combined rust-analyzer LSP header and message limits cannot exceed ${A} bytes.`);return{maxHeaderBytes:n,maxMessageBytes:e}}function D(n,e){let t=[];for(let i of n.split(`\r
|
|
4
|
+
`)){let o=i.indexOf(":");o<0||i.slice(0,o).trim().toLowerCase()!=="content-length"||t.push(i.slice(o+1).trim())}if(t.length===0)throw new h("rust-analyzer LSP response missing Content-Length header");if(t.length>1){let i=new Set(t).size>1?"rust-analyzer LSP response has conflicting Content-Length headers":"rust-analyzer LSP response has duplicate Content-Length headers";throw new h(i)}let r=t[0];if(!/^\d+$/.test(r))throw new h("rust-analyzer LSP Content-Length must be a non-negative safe integer");let s=Number(r);if(!Number.isSafeInteger(s))throw new h("rust-analyzer LSP Content-Length must be a non-negative safe integer");if(s>e)throw new h(`rust-analyzer LSP Content-Length exceeds ${e} byte message limit`);return s}function y(n,e,t=d){if(e===void 0)return{timeoutMs:n,deadlineLimited:!1};let r=e-t();if(r<=0)throw new a("rust-analyzer readiness deadline expired before LSP operation");return{timeoutMs:Math.min(n,r),deadlineLimited:r<=n}}function j(n){if(!n||typeof n!="object"||Array.isArray(n))return!1;let e=n;return(e.health==="ok"||e.health==="warning"||e.health==="error")&&typeof e.quiescent=="boolean"&&(e.message===void 0||e.message===null||typeof e.message=="string")}function E(){return new a("rust-analyzer reported error health before reaching readiness")}function F(n,e){let t=e.startsWith("rust-analyzer.")?e.slice(14):e;if(t===""||t==="rust-analyzer")return n;let r=n;for(let s of t.split(".")){if(!r||typeof r!="object")return null;r=r[s]}return r??null}function W(n){return n?(Array.isArray(n)?n:[n]).flatMap(t=>N(t)?[t]:_(t)?[{uri:t.targetUri,range:t.targetSelectionRange}]:[]):[]}function N(n){return!!(n&&typeof n=="object"&&typeof n.uri=="string")}function _(n){return!!(n&&typeof n=="object"&&typeof n.targetUri=="string")}function Z(n,e,t=process.env,r){let s=q(n,[],{cwd:e,env:t,detached:P()!=="win32",stdio:["pipe","pipe","pipe"]}),i=s.pid===void 0?null:b(s.pid,P()!=="win32"),o=i?R(r,i):null,l=null;return s.on("close",()=>v(o)),{write(u){s.stdin.write(u)},onData(u){s.stdout.on("data",u)},onClose(u){s.on("close",u)},onError(u){s.on("error",u)},kill(){if(!i){s.kill();return}return l??=L(i,{gracefulMs:1e3,forceMs:1e3}).then(u=>{if(!u.reaped)throw new Error(u.detail??`rust-analyzer process tree ${i.rootPid} was not reaped.`);v(o)}),l}}}function f(n){let e=JSON.stringify(n);return`Content-Length: ${Buffer.byteLength(e,"utf8")}\r
|
|
5
|
+
\r
|
|
6
|
+
${e}`}function H(n){let e=JSON.parse(n);if(!e||typeof e!="object")throw new Error("rust-analyzer LSP response was not a JSON object");return e}function $(n,e){return`rust-analyzer LSP transport closed${e?` by ${e}`:n===null?"":` with code ${n}`}`}async function B(n,e,t,r=d){let s=t-r();if(s<=0)throw new a("rust-analyzer readiness deadline expired before quiescence");try{let i=await n.waitForQuiescence(e,s);if(g(t,r,"during quiescence"),i.health==="error")throw new a("rust-analyzer reported error health before reaching readiness");if(!i.quiescent)throw new a("rust-analyzer did not report quiescence before reaching readiness");return i}catch(i){throw i instanceof a?i:new a(i instanceof Error?i.message:String(i))}}async function te(n,e,t,r,s,i=d,o=S){let l=await B(n,e,r,i);if(t===0)return l;let u=n.serverStatusSnapshot();if(!u)throw new a("rust-analyzer status is unavailable after initial document open");return await J(n,u,t,r,s,i,o)??l}async function J(n,e,t,r,s,i=d,o=S){if(t===0)return null;if(!e)throw new a("rust-analyzer status is unavailable before document open");T(e.status,"before document open");try{await n.readinessBarrier({deadlineMs:r}),g(r,i,"during post-open synchronization")}catch(c){throw c instanceof a?c:new a(c instanceof Error?c.message:String(c))}let l=n.serverStatusSnapshot();if(!l||l.generation<e.generation)throw new a("rust-analyzer status is unavailable after document open");let u;return l.generation===e.generation?(T(l.status,"after document open"),u=l.status):u=await B(n,e.generation,r,i),await U(s,r,i,o),u}async function re(n,e,t,r=d){let s=y(e,t,r);await n(s.timeoutMs),g(t,r,"during diagnostics")}async function U(n,e,t=d,r=S){if(n<=0)return;if(y(n,e,t).deadlineLimited)throw new a("rust-analyzer readiness deadline cannot accommodate delay");await r(n),g(e,t,"during delay")}async function ne(n,e){try{return await n()}catch(t){throw t instanceof a&&await e(),t}}function se(n){return n instanceof a?{ok:!1,error:n.message}:null}function g(n,e,t){if(n-e()<=0)throw new a(`rust-analyzer readiness deadline expired ${t}`)}function T(n,e){if(n.health==="error")throw new a(`rust-analyzer reported error health ${e}`);if(!n.quiescent)throw new a(`rust-analyzer did not report quiescence ${e}`)}function S(n){return new Promise(e=>setTimeout(e,n))}export{a,x as b,Z as c,te as d,J as e,re as f,U as g,ne as h,se as i,S as j};
|
|
7
|
+
//# sourceMappingURL=chunk-64DZ5TXR.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as T}from"./chunk-LOVIZBJ4.js";import{b,d as I,i as U,j as L,k as J}from"./chunk-CN5EH7O3.js";import{e as z,g as O}from"./chunk-J5FJMODQ.js";import{a as G}from"./chunk-7Y5T6XDP.js";import{c as M}from"./chunk-X6RMKHJQ.js";import{d as _}from"./chunk-JEVRKFRL.js";import{a as W}from"./chunk-QOIXNWQR.js";import{b as A,e as B}from"./chunk-GZKFETP5.js";import{e as E,f as N}from"./chunk-HGFDYOVB.js";import{a as H,c as C}from"./chunk-U5RIG3JP.js";function v(e){let t=P(e.projectFiles),r=new Set(t),a=new Map(e.snapshot.files.map(c=>[c.path,c])),s=e.snapshot.files.filter(c=>{let o=H(c.path,["typescript"]);return o==="config"||o==="ambient"}).map(c=>c.path),i=P([...t,...s]),n=i.find(c=>!a.has(c)),p=new Set(e.snapshot.files.map(c=>c.path)).size!==e.snapshot.files.length,d=!n&&i.some(c=>V(a.get(c))),l=M(JSON.stringify({pnpmWorkspaces:e.snapshot.pnpmWorkspaces,typescriptProjectMode:e.snapshot.typescriptProjectMode,typescriptProjects:P(e.snapshot.typescriptProjects),membership:t})),y,m;return{identityFor(c,o){if(!r.has(c))return g("target-outside-project");if(p)return g("duplicate-input-path");if(n)return g("missing-input-fingerprint");if(d)return g("unreadable-input");let u=[],f,w;if(e.graph===null)u.push("dependency-graph-unavailable"),w="whole-project",f=i;else{let h=c===y&&m?m:Z(c,e.graph);if(y=c,m=h,h.find(k=>!a.has(k)))return g("missing-input-fingerprint");if(f=P([...h,...s]),f.some(k=>V(a.get(k))))return g("unreadable-input");w="dependency-closure"}let X=f.map(h=>Q(a.get(h)));return{version:1,key:M(JSON.stringify({version:1,engineIdentity:e.engineIdentity,schemaVersion:o,projectIdentity:l,inputs:X})),mode:w,inputFiles:f,reasons:u}}}}function Z(e,t){let r=new Set,a=[e];for(let s=0;s<a.length;s+=1){let i=a[s];if(!(i===void 0||r.has(i))){r.add(i);for(let n of[...t.get(i)??[]].sort())r.has(n)||a.push(n)}}return[...r].sort()}function Q(e){return e.semanticHash===void 0?{path:e.path,size:e.size,hash:e.hash}:{path:e.path,semanticHash:e.semanticHash}}function V(e){return e.size<0||e.hash==="unreadable"}function g(e){return{version:1,key:null,mode:"unkeyed",inputFiles:[],reasons:[e]}}function P(e){return[...new Set(e)].sort()}var ee=B("typescript-semantic-identity-context",{clearGroups:["whole-project"]});function x(e,t,r){let a=ee.get(e,()=>te(e));if(!a)return null;let s=`${r}\0${t}`,i=a.identities.get(s);if(i)return i;let n=a.builder.identityFor(t,r);return a.identities.set(s,n),n}function S(e){return W(e,{includeIgnored:!1}).filter(b).sort()}function te(e){try{if(!e.generation.metadataRaw)return null;let t=_(e.generation.metadataRaw);if(t.kind!=="legacy"&&t.kind!=="supported"||!t.capabilities.usableForEvidenceCache)return null;let r=C(t.metadata.fingerprint);return r?{builder:v({projectFiles:S(e),snapshot:r,graph:T(e),engineIdentity:I()}),identities:new Map}:null}catch{return null}}import{getHeapStatistics as ne}from"v8";var j="typescript-reference-fragment-v2",Y=128,R=z({kind:"typescript-reference-fragments",invalidation:O("typescript-reference-fragments"),serialize:e=>JSON.stringify(e),deserialize:ce});function _e(e,t,r,a=e,s,i=new Set(r.keys())){let n=S(e),p=v({projectFiles:n,snapshot:t,graph:s??T(e),engineIdentity:I()}),d=[],l=0;for(let[m,c]of r){let o=p.identityFor(m,j).key;if(!o){l+=1;continue}d.push({relativePath:m,contentHash:o,value:[...c]})}let y=n.filter(m=>!i.has(m)&&!r.has(m)).length;return R.writeBatch(a,d),{affectedFiles:d.length,carriedFiles:y,skippedAffectedFiles:l}}function Ae(e,t,r,a){let s=t.filter(n=>b(n.relativePath));if(s.length===0)return F("no TypeScript definitions");let i=F("shadow did not run");return E("typescript.reference-fragments.shadow",()=>{try{let n=a(s[0].relativePath);if(!n.availability().available||!n.referenceFragmentsForFiles)return i=F("TypeScript reference fragment provider is unavailable"),i;let p=S(e),d=new Set(p),l=new Map;for(let o of D(p)){let u=n.referenceFragmentsForFiles(o);if(o.some(f=>!u.has(f)))return i=F("TypeScript reference fragment provider returned an incomplete batch"),i;for(let f of o)l.set(f,u.get(f)??[])}let y=U(s,l),m=J(s,re(r,d),y);if(!m.passed)return i={state:"failing",files:p.length,keyedFiles:0,writtenFiles:0,...m},i;let c=pe(e,p,l);return R.writeBatch(e,c),i={state:"passing",files:p.length,keyedFiles:c.length,writtenFiles:c.length,...m},i}catch(n){return i=F(n instanceof Error?n.message:String(n)),i}},()=>({...i}))}function re(e,t){return new Map([...e].map(([r,a])=>[r,a.filter(s=>t.has(s.file))]))}function Be(e,t,r){if(t.length===0)return{references:new Map,files:0,cacheHits:0,cacheMisses:0,computedFiles:0};let a="fallback",s=0,i=0,n=0,p=0;return E("typescript.reference-fragments.materialize",()=>{try{let d=S(e);s=d.length;let l=L(t),y=[];for(let c of d){let o=x(e,c,j);if(!o?.key)return null;let u=R.read(e,c,o.key);u===null?(n+=1,y.push({file:c,contentHash:o.key})):(i+=1,l.add(u))}return n===0?(a="hit",{references:l.finish(),files:s,cacheHits:i,cacheMisses:n,computedFiles:p}):ae(e,y,r,c=>{for(let{fragments:o}of c)l.add(o);p+=c.length})?(a="computed",{references:l.finish(),files:s,cacheHits:i,cacheMisses:n,computedFiles:p}):null}catch{return null}},()=>({state:a,files:s,cacheHits:i,cacheMisses:n,computedFiles:p}))}function D(e){let t=[];for(let r=0;r<e.length;r+=Y)t.push(e.slice(r,r+Y));return t}var ie=.75;function q(e){return{heapUsedFraction:()=>{let t=ne();return t.heap_size_limit>0?t.used_heap_size/t.heap_size_limit:0},collect:G,release:()=>A(e,{groups:["semantic-provider"]})}}function $(e,t=ie){return e.heapUsedFraction()<t||e.collect()&&e.heapUsedFraction()<t?!1:(e.release(),!0)}function ae(e,t,r,a,s=q(e)){for(let i of D(t)){let n=K(e,i,r);if(!n)return!1;a(n),$(s)}return!0}function K(e,t,r){let a=t.map(({file:n})=>n),s=r(a[0]);if(!s.availability().available||!s.referenceFragmentsForFiles)return null;let i=s.referenceFragmentsForFiles(a);return a.some(n=>!i.has(n))?null:(R.writeBatch(e,t.map(({file:n,contentHash:p})=>({relativePath:n,contentHash:p,value:i.get(n)??[]}))),a.map(n=>({file:n,fragments:i.get(n)??[]})))}var se=()=>new Promise(e=>setImmediate(e));async function Ne(e,t,r={}){let a=r.yieldToEventLoop??se,s=r.probe??q(e),i="fallback",n=0,p=0,d=0,l=0;return N("typescript.reference-fragments.warm",async()=>{try{let y=S(e),m=r.files?new Set(r.files):null,c=m?y.filter(u=>m.has(u)):y;n=c.length;let o=[];for(let u of c){let f=x(e,u,j);if(!f?.key)return null;R.has(e,u,f.key)?p+=1:(d+=1,o.push({file:u,contentHash:f.key}))}if(o.length===0)return i="hit",{files:n,cacheHits:p,cacheMisses:d,computedFiles:l};for(let u of D(o)){let f=K(e,u,t);if(!f)return null;l+=f.length,$(s),r.onBatch?.({computedFiles:l,missingFiles:o.length}),await a()}return i="computed",{files:n,cacheHits:p,cacheMisses:d,computedFiles:l}}catch{return null}},()=>({state:i,files:n,cacheHits:p,cacheMisses:d,computedFiles:l}))}function F(e){return{state:"unavailable",files:0,keyedFiles:0,writtenFiles:0,expectedCount:0,actualCount:0,missing:[],extra:[],reason:e}}function ce(e){try{let t=JSON.parse(e);return!Array.isArray(t)||!t.every(oe)?null:t}catch{return null}}function oe(e){if(!e||typeof e!="object")return!1;let t=e,r=t.location;return typeof t.targetSymbol=="string"&&!!r&&typeof r.file=="string"&&typeof r.line=="number"&&typeof r.column=="number"}function pe(e,t,r){let a=[];for(let s of t){let i=x(e,s,j);i?.key&&a.push({relativePath:s,contentHash:i.key,value:r.get(s)??[]})}return a}export{x as a,_e as b,Ae as c,Be as d,Ne as e};
|
|
2
|
+
//# sourceMappingURL=chunk-65245JCM.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as c,c as f}from"./chunk-QZ7KQZRN.js";import{execFileSync as P}from"child_process";import{platform as S}from"os";var y=1e3,w=2*1024*1024,R=25;function A(e,n,r=h){let t=r.readIdentity(e),s=new Map;return t&&s.set(e,t),{rootPid:e,rootIdentity:t,ownsProcessGroup:n,knownMembers:s}}async function L(e,n,r=h){if(!e.rootIdentity)return I(e,n,r);let t=T(e,r);if(t==="mismatch")return{reaped:!1,reason:"identity-mismatch",detail:`Process ${e.rootPid} no longer has the identity owned by this runner.`};if(t==="exited"&&!b(e,r))return{reaped:!0,reason:"terminated"};if(r.platform==="win32")return x(e,n,r);let s=p(e,"SIGTERM",r);if(await a(e,n.gracefulMs,r))return{reaped:!0,reason:"terminated"};let o=p(e,"SIGKILL",r);return await a(e,n.forceMs,r)?{reaped:!0,reason:"terminated"}:o?{reaped:!1,reason:o.reason,detail:o.detail}:s?{reaped:!1,reason:s.reason,detail:s.detail}:{reaped:!1,reason:"deadline",detail:`Process tree ${e.rootPid} did not exit before its termination deadline.`}}async function I(e,n,r){let t=await a(e,n.gracefulMs+n.forceMs,r);return{reaped:t,reason:t?"terminated":"identity-unavailable",detail:t?void 0:`Could not establish the birth identity of process ${e.rootPid}.`}}async function x(e,n,r){try{r.terminateWindowsTree(e.rootPid)}catch(s){let i=await a(e,n.forceMs,r);return{reaped:i,reason:i?"terminated":"signal-failed",detail:i?void 0:l(s)}}let t=await a(e,n.forceMs,r);return{reaped:t,reason:t?"terminated":"deadline"}}function T(e,n){let r=n.readIdentity(e.rootPid);if(!r)return"exited";if(!e.rootIdentity||!c(e.rootIdentity,r))return"mismatch";e.knownMembers.set(e.rootPid,r);for(let t of n.listDescendantPids(e.rootPid)){let s=n.readIdentity(t);s&&e.knownMembers.set(t,s)}return"owned"}function p(e,n,r){let t=T(e,r);if(t==="mismatch")return{reason:"identity-mismatch",detail:`Process ${e.rootPid} changed identity before ${n}.`};if(t==="owned"&&e.ownsProcessGroup)try{return r.signal(-e.rootPid,n),null}catch(s){if(!g(s))return{reason:"signal-failed",detail:l(s)}}return v(e,n,r)}async function a(e,n,r){let t=r.now()+n;for(;b(e,r);){if(r.now()>=t)return!1;await r.sleep(Math.min(R,Math.max(1,t-r.now())))}return!0}function b(e,n){if(!e.rootIdentity&&n.isProcessAlive(e.rootPid))return!0;for(let r of e.knownMembers.values()){let t=n.readIdentity(r.pid);if(t&&c(r,t))return!0}return!!(e.ownsProcessGroup&&n.isProcessGroupAlive(e.rootPid))}function O(e){let n=E(!1),r=new Map;for(let o of n.split(/\r?\n/)){let d=/^\s*(\d+)\s+(\d+)\s*$/.exec(o);if(!d)continue;let M=Number(d[1]),u=Number(d[2]),m=r.get(u)??[];m.push(M),r.set(u,m)}let t=[],s=[...r.get(e)??[]],i=new Set;for(;s.length>0;){let o=s.pop();i.has(o)||(i.add(o),t.push(o),s.push(...r.get(o)??[]))}return t}function E(e){return P("ps",["-axo",e?"pid=,ppid=,rss=":"pid=,ppid="],{encoding:"utf8",timeout:y,maxBuffer:w,env:{...process.env,LC_ALL:"C",LANG:"C"},stdio:["ignore","pipe","ignore"]})}function g(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ESRCH"}function l(e){return e instanceof Error?e.message:String(e)}var h={platform:S(),now:Date.now,readIdentity:f,isProcessAlive(e){try{return process.kill(e,0),!0}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&n.code==="EPERM"}},isProcessGroupAlive(e){if(this.platform==="win32")return!1;try{return process.kill(-e,0),!0}catch(n){return typeof n=="object"&&n!==null&&"code"in n&&n.code==="EPERM"}},listDescendantPids(e){if(this.platform==="win32")return[];try{return O(e)}catch{return[]}},signal(e,n){process.kill(e,n)},terminateWindowsTree(e){P("taskkill.exe",["/PID",String(e),"/T","/F"],{timeout:y,maxBuffer:w,stdio:"ignore",windowsHide:!0})},async sleep(e){await new Promise(n=>setTimeout(n,e))}};function v(e,n,r){let t=null;for(let s of e.knownMembers.values()){let i=r.readIdentity(s.pid);if(!(!i||!c(s,i)))try{r.signal(s.pid,n)}catch(o){!g(o)&&t===null&&(t=l(o))}}return t===null?null:{reason:"signal-failed",detail:t}}export{A as a,L as b};
|
|
2
|
+
//# sourceMappingURL=chunk-6FFVZZL4.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as x}from"./chunk-E7YNJLCB.js";import{g as N,h as g}from"./chunk-D254DNNQ.js";import{a as L}from"./chunk-GMVSHUKZ.js";import{b as E}from"./chunk-BOJ5SVE2.js";import{b as I}from"./chunk-6LSEIIF7.js";import{a as h}from"./chunk-BGBBVSH4.js";import{e as T,g as S}from"./chunk-4WCUBZU3.js";import{d as y}from"./chunk-5D2LVK7O.js";import{b as p,c as b}from"./chunk-7WTPQ4NX.js";var R={caller:3,"entry-surface":2,rooted:1},D=/not\s*yet\s*implement|not\s*implement|unimplement|\bnyi\b|\btodo\b|\bstub\b|not\s*supported|coming\s*soon/i,F=/^throw\s+new\s+[\w.]*Error\s*\(([\s\S]*)\)\s*;?$/,P=/^return(\s+(null|undefined|false|0|''|""|``|\[\]|\{\}))?\s*;?$/,O=/\/\/\s*TODO\b|\/\*\s*TODO\b/i,C=/(?:=>|\))\s*(?::\s*[^{;=]+)?\s*\{\s*\}\s*;?\s*$/;function W(n,e={}){let{scope:o,limit:i=30,scanLimit:s,semantic:r=!0}=e,m=new I(n),u=E(m.productionCallableDefinitions({scope:o,minLoc:1,requireFunctionLikeSymbol:!0,excludeTypesFiles:!0}),s),a=[];for(let t of u){let l=A(n,t);l&&a.push(l)}if(a.length===0)return[];let _=x(n,m).forDefinitions(a.map(t=>t.def),{semantic:r}),c=[];for(let t of a){let d=_.get(t.def.symbolId)?.realConsumers.length??0,f=w(n,t.def,d);f&&c.push({symbol:t.def.symbol,shortName:y(t.def.symbol),file:t.def.relativePath,startLine:t.def.startLine,endLine:t.def.endLine,loc:h(t.def),stubKind:t.stubKind,reachability:f,callerFanIn:d,stubText:t.stubText})}return c.sort((t,l)=>R[l.reachability]-R[t.reachability]||l.callerFanIn-t.callerFanIn||t.file.localeCompare(l.file)||t.startLine-l.startLine),i?c.slice(0,i):c}function w(n,e,o){return o>0?"caller":S(n,e.symbol,e.relativePath)?"rooted":T(n,e.relativePath)?"entry-surface":null}function A(n,e){let o=N(n,e);if(!o)return null;let i=g(o),s=i.trim();if(s==="")return!U(o)||!L(n,e)?null:{def:e,stubKind:"empty-body",stubText:"(empty body)"};let r=b(i),m=p(i),u=v(r,m);if(u.length!==1)return null;let a=u[0];return B(a)?{def:e,stubKind:"throw-stub",stubText:a.trim()}:O.test(i)&&P.test(a.trim())?{def:e,stubKind:"todo-return-default",stubText:s}:null}var K=new Set(["(","[","{"]),M=new Set([")","]","}"]);function v(n,e){let o=[],i=0,s="";for(let r=0;r<e.length;r+=1){let m=e[r];if(K.has(m)?i+=1:M.has(m)&&(i=Math.max(0,i-1)),m===";"&&i===0){o.push(s),s="";continue}s+=n[r]??""}return s.trim()&&o.push(s),o.map(r=>r.trim()).filter(r=>r.length>0)}function B(n){let e=F.exec(n.trim());return e?D.test(e[1]??""):!1}function U(n){return C.test(n.trimEnd())}export{W as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6KO5JHAR.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as x,f as b}from"./chunk-JEVRKFRL.js";import{c,e as f,g as p,h as I}from"./chunk-3JIQS44J.js";import{a as m,f as y}from"./chunk-62BDNPMI.js";import{createHash as S}from"crypto";import{dirname as T,join as g}from"path";var l=6,E=5,v=2,h="typescript-index";function j(e){let n=g(e,h),t=f(n);return{...t,requestDir:t.legacyRequestDir}}function k(e){let n=JSON.parse(e),t=n.protocolVersion,r=t===v,i=[4,E].includes(t),s=n.request,a=D(s,r||i);if(!(r||i||t===l)||!M(n)||!A(a))throw new Error("TypeScript index service received an invalid mailbox request.");if(!r&&!O(n))throw new Error("TypeScript index service received an invalid mailbox request.");if(!r)return P(n,s,a,t);let R=p("typescript-index-v2",{id:n.id,baseGeneration:n.baseGeneration,request:s});return{protocolVersion:l,mailboxVersion:c,id:n.id,operationKey:R,clientId:"legacy-v2",enqueuedAtMs:n.deadlineAtMs,deadlineAtMs:n.deadlineAtMs,baseGeneration:n.baseGeneration,request:a}}function P(e,n,t,r){let i=p(`typescript-index-v${r}`,{baseGeneration:e.baseGeneration,request:n});if(e.operationKey!==i)throw new Error("TypeScript index service received a mismatched mailbox operation identity.");return{...e,protocolVersion:l,request:t}}function D(e,n){return n&&e&&typeof e=="object"&&!Array.isArray(e)?{...e,removedFiles:e.removedFiles??[]}:e}function M(e){return typeof e.id=="string"&&!!e.id&&typeof e.baseGeneration=="string"&&!!e.baseGeneration&&typeof e.deadlineAtMs=="number"&&Number.isFinite(e.deadlineAtMs)}function O(e){return e.mailboxVersion===c&&q(e)&&typeof e.clientId=="string"&&!!e.clientId&&typeof e.enqueuedAtMs=="number"&&Number.isFinite(e.enqueuedAtMs)&&e.deadlineAtMs>=e.enqueuedAtMs}function q(e){return typeof e.operationKey=="string"&&/^[a-f0-9]{64}$/.test(e.operationKey)&&e.id===I(e.operationKey)}var u;function X(e){try{let n=y(g(T(e),"meta.json"),{inputKind:"reindex metadata",maxBytes:m}),t=S("sha256").update(n).digest("hex");if(u?.bytesHash===t)return u.generation;let r=b(x(n.toString("utf8"))),i=r?S("sha256").update(r).digest("hex"):null;return u={bytesHash:t,generation:i},i}catch{return null}}function A(e){if(!e||typeof e!="object")return!1;let n=e,t=d(n.modifiedFiles)?n.modifiedFiles:null,r=d(n.removedFiles)?n.removedFiles:null,i=d(n.affectedFiles)?n.affectedFiles:null;return B(n)&&w(t,r,i)&&_(n.knownDocuments,i??[])}function _(e,n){if(e===void 0)return!0;if(!Array.isArray(e))return!1;let t=new Set,r=new Set(n);return e.every(i=>!i||typeof i.relativePath!="string"||!r.has(i.relativePath)||t.has(i.relativePath)||typeof i.blobHash!="string"||!/^[a-f0-9]{64}$/.test(i.blobHash)||!Number.isSafeInteger(i.byteLength)||i.byteLength<=0?!1:(t.add(i.relativePath),!0))}function B(e){return e.kind==="emit-documents"&&o(e.tsconfigPath)&&o(e.projectArgument)&&o(e.projectIdentity)&&o(e.producerIdentity)}function o(e){return typeof e=="string"&&!!e}function w(e,n,t){return e!==null&&new Set(e).size===e.length&&n!==null&&new Set(n).size===n.length&&t!==null&&(t.length>0||n.length>0)&&new Set(t).size===t.length}function d(e){return Array.isArray(e)&&e.every(n=>typeof n=="string"&&n.length>0)}export{l as a,j as b,k as c,X as d,_ as e};
|
|
2
|
+
//# sourceMappingURL=chunk-6LRXOOSX.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as v}from"./chunk-BGBBVSH4.js";import{a as y}from"./chunk-36SGVCGX.js";import{B as ce,C as ue,y as le}from"./chunk-4WTUBQ36.js";import{b as ee,d as te,e as ie,f as re,g as ae,h as oe,k as F,l as se,m as k}from"./chunk-NZAXKGRL.js";import{d as ne}from"./chunk-KK7GPALL.js";import{e as Z,g as $}from"./chunk-4WCUBZU3.js";import{c as R}from"./chunk-E3FDPXZK.js";import{b as B}from"./chunk-GCKCF5FL.js";import{A as Y,B as J,C as P,a as z,e as U,i as L,j as x,l as Q,m as W,x as h,y as X}from"./chunk-5D2LVK7O.js";import{o as H,p as m}from"./chunk-7WTPQ4NX.js";import{A as d,B as G,Z as O,a as g}from"./chunk-FVULPZDF.js";import{a as j,f as K,g as V}from"./chunk-A2IIGFMJ.js";import{t as q}from"./chunk-GVWX5T43.js";import{Da as I}from"./chunk-5TNQJUR2.js";function E(t,e,n={}){let i=new Map;if(e&&e.length===0)return i;let a=g(t,{includeIgnored:!1}),r=re(t),o=e??X(t),l=new Set(o.map(u=>u.symbolId)),s=Ee(o);return Ce(t,i,a,r,l,s),Ie(t,i,o,l),Fe(t,i,a,r,l,s),n.semantic!==!1&&n.semanticEvidence&&Ae(i,n.semanticEvidence.callerMap(t,we(o))),i}function Ce(t,e,n,i,a,r){for(let o of n){if(!d(o))continue;let l=H(t,o);if(l)for(let s of l)r&&!r.has(s.calleeLeaf)||De(t,e,o,s,i,a)}}function De(t,e,n,i,a,r){let o=te(n,a.get(i.calleeLeaf)??[]);if(!o||o.length===0)return;let l=ie(t,n,o,i.memberAccess,i.calleeQualifier);l&&r.has(l.symbolId)&&l.file!==n&&w(e,l.symbolId,n)}function Ie(t,e,n,i){let a=xe(n);for(let r of Le(t,i))t.isIgnored(r.relative_path)||Pe(r,a.get(r.symbol_id))||w(e,r.symbol_id,r.relative_path)}function Le(t,e){return ne(t,e?[...e]:void 0)}function xe(t){let e=new Map;for(let n of t)e.set(n.symbolId,{docId:n.documentId,startLine:n.startLine,endLine:n.endLine});return e}function Pe(t,e){return!!e&&e.docId===t.document_id&&t.chunk_start>=e.startLine&&t.chunk_end<=e.endLine}function Fe(t,e,n,i,a,r){for(let o of n){if(d(o)!=="rust")continue;let l=m(t,o,{includeRustAttributeNames:!0});if(l.length!==0)for(let{name:s}of l)r&&!r.has(s)||ke(e,o,i.get(s),a)}}function ke(t,e,n,i){if(n)for(let a of n)i.has(a.symbolId)&&a.file!==e&&w(t,a.symbolId,e)}function w(t,e,n){let i=t.get(e);i||(i=new Set,t.set(e,i)),i.add(n)}function Ee(t){let e=new Set;for(let n of t){let i="leaf"in n&&typeof n.leaf=="string"?n.leaf:"symbol"in n&&typeof n.symbol=="string"?U(n.symbol):"";i&&e.add(i)}return e.size>0?e:null}function we(t){return t.filter(e=>"relativePath"in e&&"symbol"in e&&"leaf"in e)}function Ae(t,e){for(let[n,i]of e){let a=t.get(n);a||(a=new Set,t.set(n,a));for(let r of i)a.add(r)}}var Ne=I("cross-file-caller-files",{clearGroups:["whole-project","source-file"]}),Te=I("source-fallback-caller-files",{clearGroups:["whole-project","source-file"]});function fe(t,e,n){let i=e.filter(r=>!t.has(r.symbolId));if(i.length>0){let r=n(i);for(let o of i)t.set(o.symbolId,r.get(o.symbolId)??new Set)}let a=new Map;for(let r of e){let o=t.get(r.symbolId);o&&o.size>0&&a.set(r.symbolId,new Set(o))}return a}function A(t,e,n={}){if(e===void 0)return E(t,e,n);let i=fe(Ne.get(t,()=>new Map),e,a=>E(t,a,{semantic:!1}));return n.semantic===!1||!n.semanticEvidence?i:me(i,n.semanticEvidence.callerMap(t,e.filter(a=>"relativePath"in a&&"symbol"in a&&"leaf"in a)))}function N(t,e,n={}){return n.skipPath?k(t,e,n):fe(Te.get(t,()=>new Map),e,i=>k(t,i))}function de(t,e,n={}){let i=A(t,e,{semantic:n.semantic,semanticEvidence:n.semanticEvidence});return n.sourceFallback===!1?i:me(i,N(t,e))}function me(t,e){let n=new Map;for(let[i,a]of t)n.set(i,new Set(a));for(let[i,a]of e){let r=n.get(i)??new Set;for(let o of a)r.add(o);n.set(i,r)}return n}function be(t,e,n){let i=e.identifierResolution==="strict"?F:se,a=e.candidateNames?ae(e.candidateNames):null,r={scannedPaths:0,candidateMatchedPaths:0,visitedNames:0,visitedHits:0,currentPath:""};for(let o of e.paths)if(r.scannedPaths+=1,r.currentPath=o,!!_e(t,o,e))try{if(a&&!oe(j(t,o),a))continue;r.candidateMatchedPaths+=1,qe(t,o,e,i,n,r)}finally{e.afterPath?.(o),r.scannedPaths%10===0&&q("source-reference-scan.progress",()=>{},()=>({scannedPaths:r.scannedPaths,currentPath:r.currentPath,candidateMatchedPaths:r.candidateMatchedPaths,visitedNames:r.visitedNames,visitedHits:r.visitedHits}))}}function _e(t,e,n){return!(!d(e)&&!(n.includeVueSfc&&G(e))||t.isIgnored(e)||n.skipPath?.(e))}function qe(t,e,n,i,a,r){let o=(s,u,S,b)=>{if(n.candidateNames&&!n.candidateNames.has(s))return;r.visitedNames+=1;let M=n.resolveTargets?n.resolveTargets({sourceFile:e,name:s,kind:u,defaultTargets:b}):b();for(let C of M)r.visitedHits+=1,a({sourceFile:e,name:s,target:C,occurrences:S,kind:u})},l=ee(t,e);for(let[s,u]of l)o(s,"identifier",u.length,()=>i(t,e,s));for(let s of m(t,e,{includeCrossLanguageDispatchNames:n.includeCrossLanguageDispatchNames,includeRustAttributeNames:n.includeRustAttributeNames})){let u=s.kind==="cross-language-dispatch"?()=>F(t,e,s.name):()=>i(t,e,s.name);o(s.name,s.kind,s.occurrences,u)}}function pe(t,e={}){let{scope:n,files:i,minLoc:a=1,maxLoc:r=Number.POSITIVE_INFINITY,excludeSymbol:o,excludeEntrySurfaces:l=!1,excludeTypesFiles:s=!1,excludeRootedSymbols:u=!1,requireFunctionLikeSymbol:S=!1,requireCallableSymbol:b=!1,excludeRustTraitImplMembers:M=!1,includeSuppressed:C=!1,sortByLocDesc:Se=!1}=e,D=[],ge=Ge(t,{scope:n,files:i,requireFunctionLikeSymbol:S,requireCallableSymbol:b}),T=new Map,_=new Map,he=c=>{let f=T.get(c);if(f!==void 0)return f;let p=Z(t,c);return T.set(c,p),p},Re=c=>{let f=_.get(c);if(f!==void 0)return f;let p=R(c);return _.set(c,p),p},ve={excludeEntrySurfaces:l,requireFunctionLikeSymbol:S,requireCallableSymbol:b,excludeSymbol:o,minLoc:a,maxLoc:r},Me={excludeTypesFiles:s,excludeRootedSymbols:u,excludeRustTraitImplMembers:M};for(let c of ge)je(t,c,ve,he)&&Ke(t,c,Me)&&Ve(t,c,C,Re)&&D.push(c);return Se?D.sort((c,f)=>v(f)-v(c)):D}function je(t,e,n,i){let a=e.relativePath;if(t.isIgnored(a)||n.excludeEntrySurfaces&&i(a)||!He(e,n)||n.excludeSymbol!==void 0&&e.symbol===n.excludeSymbol)return!1;let r=v(e);return!(r<n.minLoc||r>n.maxLoc)}function Ke(t,e,n){let i=e.relativePath;return n.excludeTypesFiles&&Oe(i)||n.excludeRootedSymbols&&$(t,e.symbol,i)?!1:!n.excludeRustTraitImplMembers||!Q(e.symbol)}function Ve(t,e,n,i){let a=e.relativePath;return i(a)==="test"||W(e.symbol)?!1:n||!V(t,a,e.startLine,"")}function Ge(t,e){return e.files!==void 0?[...new Set(e.files.map(i=>i.replace(/\\/g,"/")))].sort().filter(i=>!e.scope||i.includes(e.scope)).flatMap(i=>h(t,i)):e.requireCallableSymbol?P(t,{scope:e.scope,symbolMatches:L,sqlPrefilter:"callable"}):e.requireFunctionLikeSymbol?P(t,{scope:e.scope,symbolMatches:x,sqlPrefilter:"function-like"}):J(t,e.scope)}function He(t,e){return e.requireCallableSymbol?L(t.symbol):e.requireFunctionLikeSymbol?x(t.symbol):t.isFunctionLike}function Oe(t){return(t.split("/").pop()??"").includes("types")}var ye=class{constructor(e){this.db=e}db;scopedDefinitions(e){return Y(this.db,e)}definitionsForFile(e){return h(this.db,e)}productionCallableDefinitions(e={}){return pe(this.db,e)}calleeMap(e,n={}){return ce(this.db,e,{...n,semanticEvidence:y})}callableCallees(e,n={}){return le(this.db,e,{...n,additive:!0,callableOnly:!0,semanticEvidence:y}).map(i=>({...i,evidenceStrength:ue(i.source)}))}crossFileCallerMap(e,n={}){return A(this.db,e,{...n,semanticEvidence:y})}sourceFallbackCallerFiles(e,n={}){return N(this.db,e,n)}callerFileMap(e,n={}){return de(this.db,e,{...n,semanticEvidence:y})}frameworkReferencedSymbolIds(e){let n=new Map;for(let a of e){if(!a.leaf)continue;let r=n.get(a.leaf)??[];r.push(a.symbolId),n.set(a.leaf,r)}let i=new Set;for(let a of g(this.db,{includeIgnored:!1}))if(d(a)==="rust")for(let{name:r}of m(this.db,a,{includeRustAttributeNames:!0}))for(let o of n.get(r)??[])i.add(o);return i}symbolsWithNonSelfCallees(e,n={}){if(e.length===0)return new Set;let i=new Map(e.map(r=>[r.symbolId,r.symbol])),a=this.calleeMap(e,n);return new Set([...a.entries()].filter(([r,o])=>{let l=i.get(r);return o.some(s=>s.symbol!==l)}).map(([r])=>r))}fileDependencyGraph(e){return B(this.db,e)}fileKind(e){return R(e)}hasSuppressionComment(e){return K(this.db,e.relativePath,e.startLine)}sourceFiles(){return O(this.db)}scanSourceReferences(e,n){be(this.db,e,n)}callableSignature(e){let n=z(this.db).forFile(e.relativePath,{facts:!0}).facts?.callables.find(i=>i.startLine===e.startLine&&i.endLine===e.endLine);return n?{paramCount:n.paramCount}:null}};export{N as a,ye as b};
|
|
2
|
+
//# sourceMappingURL=chunk-6LSEIIF7.js.map
|