@fffattiger/pix-cli 0.1.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/bin/pix-host.mjs +8 -0
- package/bin/pix-sessiond.mjs +8 -0
- package/bin/pix.mjs +8 -0
- package/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/client/assets/arc-CFMmUDzQ.js +2 -0
- package/client/assets/arc-CFMmUDzQ.js.map +1 -0
- package/client/assets/architectureDiagram-Q4EWVU46-C3mA6Jtf.js +37 -0
- package/client/assets/architectureDiagram-Q4EWVU46-C3mA6Jtf.js.map +1 -0
- package/client/assets/blockDiagram-DXYQGD6D-BMXELZKn.js +133 -0
- package/client/assets/blockDiagram-DXYQGD6D-BMXELZKn.js.map +1 -0
- package/client/assets/c4Diagram-AHTNJAMY-CeJ0Ed14.js +11 -0
- package/client/assets/c4Diagram-AHTNJAMY-CeJ0Ed14.js.map +1 -0
- package/client/assets/channel-DHn-VufB.js +2 -0
- package/client/assets/channel-DHn-VufB.js.map +1 -0
- package/client/assets/chunk-4BX2VUAB-e81eyiRE.js +2 -0
- package/client/assets/chunk-4BX2VUAB-e81eyiRE.js.map +1 -0
- package/client/assets/chunk-4TB4RGXK-b8VLdZaV.js +207 -0
- package/client/assets/chunk-4TB4RGXK-b8VLdZaV.js.map +1 -0
- package/client/assets/chunk-55IACEB6-Cw51gxgt.js +2 -0
- package/client/assets/chunk-55IACEB6-Cw51gxgt.js.map +1 -0
- package/client/assets/chunk-EDXVE4YY-D_S7Aofw.js +2 -0
- package/client/assets/chunk-EDXVE4YY-D_S7Aofw.js.map +1 -0
- package/client/assets/chunk-FMBD7UC4-MCGNv4B8.js +16 -0
- package/client/assets/chunk-FMBD7UC4-MCGNv4B8.js.map +1 -0
- package/client/assets/chunk-OYMX7WX6-DMCj_ht2.js +232 -0
- package/client/assets/chunk-OYMX7WX6-DMCj_ht2.js.map +1 -0
- package/client/assets/chunk-QZHKN3VN-CKq7NFFo.js +2 -0
- package/client/assets/chunk-QZHKN3VN-CKq7NFFo.js.map +1 -0
- package/client/assets/chunk-YZCP3GAM-Dgj5avot.js +2 -0
- package/client/assets/chunk-YZCP3GAM-Dgj5avot.js.map +1 -0
- package/client/assets/classDiagram-6PBFFD2Q-Zb4zDK7R.js +2 -0
- package/client/assets/classDiagram-6PBFFD2Q-Zb4zDK7R.js.map +1 -0
- package/client/assets/classDiagram-v2-HSJHXN6E-Zb4zDK7R.js +2 -0
- package/client/assets/classDiagram-v2-HSJHXN6E-Zb4zDK7R.js.map +1 -0
- package/client/assets/clone-CtzIvbgB.js +2 -0
- package/client/assets/clone-CtzIvbgB.js.map +1 -0
- package/client/assets/cose-bilkent-S5V4N54A-Ce7QTgEj.js +2 -0
- package/client/assets/cose-bilkent-S5V4N54A-Ce7QTgEj.js.map +1 -0
- package/client/assets/cynefin-VYW2F7L2-COEZZ5bw.js +167 -0
- package/client/assets/cynefin-VYW2F7L2-COEZZ5bw.js.map +1 -0
- package/client/assets/cytoscape.esm-yzknjiTM.js +322 -0
- package/client/assets/cytoscape.esm-yzknjiTM.js.map +1 -0
- package/client/assets/dagre-KV5264BT-De5JVS8s.js +5 -0
- package/client/assets/dagre-KV5264BT-De5JVS8s.js.map +1 -0
- package/client/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/client/assets/defaultLocale-DX6XiGOO.js.map +1 -0
- package/client/assets/diagram-5BDNPKRD-CQJLESZu.js +11 -0
- package/client/assets/diagram-5BDNPKRD-CQJLESZu.js.map +1 -0
- package/client/assets/diagram-G4DWMVQ6-B9O-4Z_D.js +25 -0
- package/client/assets/diagram-G4DWMVQ6-B9O-4Z_D.js.map +1 -0
- package/client/assets/diagram-MMDJMWI5-BpZypJXc.js +44 -0
- package/client/assets/diagram-MMDJMWI5-BpZypJXc.js.map +1 -0
- package/client/assets/diagram-TYMM5635-DMj8P-w6.js +25 -0
- package/client/assets/diagram-TYMM5635-DMj8P-w6.js.map +1 -0
- package/client/assets/erDiagram-SMLLAGMA-L0Yb-O8_.js +86 -0
- package/client/assets/erDiagram-SMLLAGMA-L0Yb-O8_.js.map +1 -0
- package/client/assets/flowDiagram-DWJPFMVM-uIW9fS_3.js +163 -0
- package/client/assets/flowDiagram-DWJPFMVM-uIW9fS_3.js.map +1 -0
- package/client/assets/ganttDiagram-T4ZO3ILL-Cs_E_-y6.js +293 -0
- package/client/assets/ganttDiagram-T4ZO3ILL-Cs_E_-y6.js.map +1 -0
- package/client/assets/gitGraphDiagram-UUTBAWPF-DDzZy-tl.js +107 -0
- package/client/assets/gitGraphDiagram-UUTBAWPF-DDzZy-tl.js.map +1 -0
- package/client/assets/graph-CB1RPxpy.js +2 -0
- package/client/assets/graph-CB1RPxpy.js.map +1 -0
- package/client/assets/index-BwOQYY4Q.js +398 -0
- package/client/assets/index-BwOQYY4Q.js.map +1 -0
- package/client/assets/index-ur9ydKHY.css +1 -0
- package/client/assets/infoDiagram-42DDH7IO-B3rXL_b3.js +3 -0
- package/client/assets/infoDiagram-42DDH7IO-B3rXL_b3.js.map +1 -0
- package/client/assets/init-Gi6I4Gst.js +2 -0
- package/client/assets/init-Gi6I4Gst.js.map +1 -0
- package/client/assets/ishikawaDiagram-UXIWVN3A-EetXKZkJ.js +71 -0
- package/client/assets/ishikawaDiagram-UXIWVN3A-EetXKZkJ.js.map +1 -0
- package/client/assets/journeyDiagram-VCZTEJTY-D-vSR0mQ.js +140 -0
- package/client/assets/journeyDiagram-VCZTEJTY-D-vSR0mQ.js.map +1 -0
- package/client/assets/kanban-definition-6JOO6SKY-BwNBOLlg.js +90 -0
- package/client/assets/kanban-definition-6JOO6SKY-BwNBOLlg.js.map +1 -0
- package/client/assets/layout-DKPRiS5k.js +2 -0
- package/client/assets/layout-DKPRiS5k.js.map +1 -0
- package/client/assets/lilex-cyrillic-400-normal-DAtbN5vN.woff +0 -0
- package/client/assets/lilex-cyrillic-400-normal-hU207dt2.woff2 +0 -0
- package/client/assets/lilex-cyrillic-ext-400-normal--fqgoD08.woff2 +0 -0
- package/client/assets/lilex-cyrillic-ext-400-normal-CICWmbLL.woff +0 -0
- package/client/assets/lilex-greek-400-normal-B84C3GyP.woff +0 -0
- package/client/assets/lilex-greek-400-normal-CD5Isfbf.woff2 +0 -0
- package/client/assets/lilex-latin-400-normal-DDIDQjHJ.woff2 +0 -0
- package/client/assets/lilex-latin-400-normal-DuO15V8P.woff +0 -0
- package/client/assets/lilex-latin-ext-400-normal-BcEWAe5I.woff2 +0 -0
- package/client/assets/lilex-latin-ext-400-normal-rbHZ2gv1.woff +0 -0
- package/client/assets/lilex-symbols2-400-normal-BbKN-sUn.woff +0 -0
- package/client/assets/lilex-vietnamese-400-normal-CiDxzlf6.woff2 +0 -0
- package/client/assets/lilex-vietnamese-400-normal-D2SOy8zE.woff +0 -0
- package/client/assets/linear-C5tISE2y.js +2 -0
- package/client/assets/linear-C5tISE2y.js.map +1 -0
- package/client/assets/mermaid.core-BAZ_6TES.js +305 -0
- package/client/assets/mermaid.core-BAZ_6TES.js.map +1 -0
- package/client/assets/mindmap-definition-QFDTVHPH-d1qfgZ4F.js +97 -0
- package/client/assets/mindmap-definition-QFDTVHPH-d1qfgZ4F.js.map +1 -0
- package/client/assets/ordinal-Cboi1Yqb.js +2 -0
- package/client/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/client/assets/pieDiagram-DEJITSTG-By8wXarz.js +31 -0
- package/client/assets/pieDiagram-DEJITSTG-By8wXarz.js.map +1 -0
- package/client/assets/quadrantDiagram-34T5L4WZ-DSRMSs4z.js +8 -0
- package/client/assets/quadrantDiagram-34T5L4WZ-DSRMSs4z.js.map +1 -0
- package/client/assets/requirementDiagram-MS252O5E-BNvafyXD.js +85 -0
- package/client/assets/requirementDiagram-MS252O5E-BNvafyXD.js.map +1 -0
- package/client/assets/sankeyDiagram-XADWPNL6-a1cGVKgw.js +11 -0
- package/client/assets/sankeyDiagram-XADWPNL6-a1cGVKgw.js.map +1 -0
- package/client/assets/sequenceDiagram-FGHM5R23-CNlJ3v7P.js +158 -0
- package/client/assets/sequenceDiagram-FGHM5R23-CNlJ3v7P.js.map +1 -0
- package/client/assets/stateDiagram-FHFEXIEX-BNMbnr4Q.js +2 -0
- package/client/assets/stateDiagram-FHFEXIEX-BNMbnr4Q.js.map +1 -0
- package/client/assets/stateDiagram-v2-QKLJ7IA2-BVF8hJg5.js +2 -0
- package/client/assets/stateDiagram-v2-QKLJ7IA2-BVF8hJg5.js.map +1 -0
- package/client/assets/timeline-definition-GMOUNBTQ-BEHhyCMz.js +121 -0
- package/client/assets/timeline-definition-GMOUNBTQ-BEHhyCMz.js.map +1 -0
- package/client/assets/vennDiagram-DHZGUBPP-6ur4LT56.js +35 -0
- package/client/assets/vennDiagram-DHZGUBPP-6ur4LT56.js.map +1 -0
- package/client/assets/wardleyDiagram-NUSXRM2D-BnIpr1Bt.js +21 -0
- package/client/assets/wardleyDiagram-NUSXRM2D-BnIpr1Bt.js.map +1 -0
- package/client/assets/xychartDiagram-5P7HB3ND-D9vJAsU1.js +8 -0
- package/client/assets/xychartDiagram-5P7HB3ND-D9vJAsU1.js.map +1 -0
- package/client/catppuccin-icons/LICENSE +25 -0
- package/client/catppuccin-icons/latte/3d.svg +3 -0
- package/client/catppuccin-icons/latte/_file.svg +3 -0
- package/client/catppuccin-icons/latte/_folder.svg +3 -0
- package/client/catppuccin-icons/latte/_folder_open.svg +3 -0
- package/client/catppuccin-icons/latte/_root.svg +7 -0
- package/client/catppuccin-icons/latte/_root_open.svg +5 -0
- package/client/catppuccin-icons/latte/adobe-ae.svg +6 -0
- package/client/catppuccin-icons/latte/adobe-ai.svg +6 -0
- package/client/catppuccin-icons/latte/adobe-id.svg +6 -0
- package/client/catppuccin-icons/latte/adobe-ps.svg +6 -0
- package/client/catppuccin-icons/latte/adobe-xd.svg +6 -0
- package/client/catppuccin-icons/latte/adonis.svg +6 -0
- package/client/catppuccin-icons/latte/alex.svg +6 -0
- package/client/catppuccin-icons/latte/amber.svg +3 -0
- package/client/catppuccin-icons/latte/android.svg +3 -0
- package/client/catppuccin-icons/latte/angular-component.svg +6 -0
- package/client/catppuccin-icons/latte/angular-directive.svg +6 -0
- package/client/catppuccin-icons/latte/angular-guard.svg +6 -0
- package/client/catppuccin-icons/latte/angular-pipe.svg +6 -0
- package/client/catppuccin-icons/latte/angular-service.svg +6 -0
- package/client/catppuccin-icons/latte/angular.svg +6 -0
- package/client/catppuccin-icons/latte/ansible-lint.svg +4 -0
- package/client/catppuccin-icons/latte/antlr.svg +6 -0
- package/client/catppuccin-icons/latte/apache.svg +7 -0
- package/client/catppuccin-icons/latte/api-blueprint.svg +3 -0
- package/client/catppuccin-icons/latte/apollo.svg +6 -0
- package/client/catppuccin-icons/latte/apple.svg +3 -0
- package/client/catppuccin-icons/latte/arduino.svg +3 -0
- package/client/catppuccin-icons/latte/asciidoc.svg +3 -0
- package/client/catppuccin-icons/latte/assembly.svg +4 -0
- package/client/catppuccin-icons/latte/astro-config.svg +7 -0
- package/client/catppuccin-icons/latte/astro.svg +6 -0
- package/client/catppuccin-icons/latte/audio.svg +6 -0
- package/client/catppuccin-icons/latte/autohotkey.svg +6 -0
- package/client/catppuccin-icons/latte/azure-pipelines.svg +3 -0
- package/client/catppuccin-icons/latte/babel.svg +3 -0
- package/client/catppuccin-icons/latte/bash.svg +7 -0
- package/client/catppuccin-icons/latte/batch.svg +6 -0
- package/client/catppuccin-icons/latte/bazel.svg +3 -0
- package/client/catppuccin-icons/latte/benchmark.svg +3 -0
- package/client/catppuccin-icons/latte/bicep.svg +5 -0
- package/client/catppuccin-icons/latte/binary.svg +6 -0
- package/client/catppuccin-icons/latte/biome.svg +3 -0
- package/client/catppuccin-icons/latte/bitbucket.svg +3 -0
- package/client/catppuccin-icons/latte/blink.svg +10 -0
- package/client/catppuccin-icons/latte/blitz.svg +3 -0
- package/client/catppuccin-icons/latte/bower.svg +9 -0
- package/client/catppuccin-icons/latte/browserslist.svg +6 -0
- package/client/catppuccin-icons/latte/bun-lock.svg +8 -0
- package/client/catppuccin-icons/latte/bun.svg +7 -0
- package/client/catppuccin-icons/latte/c-header.svg +3 -0
- package/client/catppuccin-icons/latte/c.svg +3 -0
- package/client/catppuccin-icons/latte/cabal.svg +7 -0
- package/client/catppuccin-icons/latte/caddy.svg +6 -0
- package/client/catppuccin-icons/latte/capacitor.svg +3 -0
- package/client/catppuccin-icons/latte/cargo-lock.svg +8 -0
- package/client/catppuccin-icons/latte/cargo.svg +7 -0
- package/client/catppuccin-icons/latte/certificate.svg +7 -0
- package/client/catppuccin-icons/latte/changelog.svg +3 -0
- package/client/catppuccin-icons/latte/circle-ci.svg +6 -0
- package/client/catppuccin-icons/latte/clojure.svg +10 -0
- package/client/catppuccin-icons/latte/cmake.svg +7 -0
- package/client/catppuccin-icons/latte/cobol.svg +3 -0
- package/client/catppuccin-icons/latte/code-climate.svg +3 -0
- package/client/catppuccin-icons/latte/code-of-conduct.svg +6 -0
- package/client/catppuccin-icons/latte/codeowners.svg +6 -0
- package/client/catppuccin-icons/latte/coffeescript.svg +6 -0
- package/client/catppuccin-icons/latte/commitlint.svg +6 -0
- package/client/catppuccin-icons/latte/config.svg +3 -0
- package/client/catppuccin-icons/latte/contributing.svg +6 -0
- package/client/catppuccin-icons/latte/cpp-header.svg +4 -0
- package/client/catppuccin-icons/latte/cpp.svg +4 -0
- package/client/catppuccin-icons/latte/crystal.svg +3 -0
- package/client/catppuccin-icons/latte/csharp.svg +3 -0
- package/client/catppuccin-icons/latte/cspell.svg +4 -0
- package/client/catppuccin-icons/latte/css-map.svg +8 -0
- package/client/catppuccin-icons/latte/css.svg +6 -0
- package/client/catppuccin-icons/latte/css3.svg +6 -0
- package/client/catppuccin-icons/latte/csv.svg +3 -0
- package/client/catppuccin-icons/latte/cucumber.svg +3 -0
- package/client/catppuccin-icons/latte/cuda.svg +6 -0
- package/client/catppuccin-icons/latte/cue.svg +4 -0
- package/client/catppuccin-icons/latte/cursor-ignore.svg +4 -0
- package/client/catppuccin-icons/latte/cursor.svg +4 -0
- package/client/catppuccin-icons/latte/cypress.svg +6 -0
- package/client/catppuccin-icons/latte/d.svg +3 -0
- package/client/catppuccin-icons/latte/darklua.svg +6 -0
- package/client/catppuccin-icons/latte/dart-generated.svg +6 -0
- package/client/catppuccin-icons/latte/dart.svg +6 -0
- package/client/catppuccin-icons/latte/database.svg +3 -0
- package/client/catppuccin-icons/latte/deno.svg +3 -0
- package/client/catppuccin-icons/latte/deno_lock.svg +6 -0
- package/client/catppuccin-icons/latte/dependabot.svg +3 -0
- package/client/catppuccin-icons/latte/devcontainer.svg +4 -0
- package/client/catppuccin-icons/latte/dhall.svg +3 -0
- package/client/catppuccin-icons/latte/diff.svg +7 -0
- package/client/catppuccin-icons/latte/django.svg +6 -0
- package/client/catppuccin-icons/latte/docker-compose.svg +3 -0
- package/client/catppuccin-icons/latte/docker-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/docker.svg +3 -0
- package/client/catppuccin-icons/latte/docusaurus.svg +7 -0
- package/client/catppuccin-icons/latte/drawio.svg +3 -0
- package/client/catppuccin-icons/latte/drizzle-orm.svg +3 -0
- package/client/catppuccin-icons/latte/dub-selections.svg +8 -0
- package/client/catppuccin-icons/latte/dub.svg +7 -0
- package/client/catppuccin-icons/latte/editorconfig.svg +3 -0
- package/client/catppuccin-icons/latte/ejs.svg +3 -0
- package/client/catppuccin-icons/latte/eleventy.svg +3 -0
- package/client/catppuccin-icons/latte/elixir.svg +3 -0
- package/client/catppuccin-icons/latte/elm.svg +3 -0
- package/client/catppuccin-icons/latte/ember.svg +3 -0
- package/client/catppuccin-icons/latte/env.svg +3 -0
- package/client/catppuccin-icons/latte/envrc.svg +6 -0
- package/client/catppuccin-icons/latte/erlang.svg +6 -0
- package/client/catppuccin-icons/latte/esbuild.svg +3 -0
- package/client/catppuccin-icons/latte/eslint-ignore.svg +6 -0
- package/client/catppuccin-icons/latte/eslint.svg +6 -0
- package/client/catppuccin-icons/latte/exe.svg +6 -0
- package/client/catppuccin-icons/latte/fastlane.svg +14 -0
- package/client/catppuccin-icons/latte/favicon.svg +3 -0
- package/client/catppuccin-icons/latte/figma.svg +9 -0
- package/client/catppuccin-icons/latte/firebase.svg +3 -0
- package/client/catppuccin-icons/latte/flutter.svg +8 -0
- package/client/catppuccin-icons/latte/folder_admin.svg +6 -0
- package/client/catppuccin-icons/latte/folder_admin_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_android.svg +6 -0
- package/client/catppuccin-icons/latte/folder_android_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_animation.svg +6 -0
- package/client/catppuccin-icons/latte/folder_animation_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_api.svg +6 -0
- package/client/catppuccin-icons/latte/folder_api_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_app.svg +7 -0
- package/client/catppuccin-icons/latte/folder_app_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_assets.svg +5 -0
- package/client/catppuccin-icons/latte/folder_assets_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_audio.svg +9 -0
- package/client/catppuccin-icons/latte/folder_audio_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_audit.svg +4 -0
- package/client/catppuccin-icons/latte/folder_audit_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_aws.svg +9 -0
- package/client/catppuccin-icons/latte/folder_aws_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_azure-devops.svg +4 -0
- package/client/catppuccin-icons/latte/folder_azure-devops_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_azure-pipelines.svg +6 -0
- package/client/catppuccin-icons/latte/folder_azure-pipelines_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_benchmark.svg +6 -0
- package/client/catppuccin-icons/latte/folder_benchmark_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_caddy.svg +7 -0
- package/client/catppuccin-icons/latte/folder_caddy_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_cargo.svg +6 -0
- package/client/catppuccin-icons/latte/folder_cargo_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_circle-ci.svg +9 -0
- package/client/catppuccin-icons/latte/folder_circle-ci_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_client.svg +6 -0
- package/client/catppuccin-icons/latte/folder_client_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_cloud.svg +6 -0
- package/client/catppuccin-icons/latte/folder_cloud_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_command.svg +6 -0
- package/client/catppuccin-icons/latte/folder_command_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_components.svg +6 -0
- package/client/catppuccin-icons/latte/folder_components_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_composables.svg +6 -0
- package/client/catppuccin-icons/latte/folder_composables_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_config.svg +6 -0
- package/client/catppuccin-icons/latte/folder_config_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_connection.svg +6 -0
- package/client/catppuccin-icons/latte/folder_connection_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_constant.svg +6 -0
- package/client/catppuccin-icons/latte/folder_constant_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_content.svg +4 -0
- package/client/catppuccin-icons/latte/folder_content_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_controllers.svg +6 -0
- package/client/catppuccin-icons/latte/folder_controllers_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_core.svg +6 -0
- package/client/catppuccin-icons/latte/folder_core_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_coverage.svg +6 -0
- package/client/catppuccin-icons/latte/folder_coverage_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_cursor.svg +4 -0
- package/client/catppuccin-icons/latte/folder_cursor_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_cypress.svg +6 -0
- package/client/catppuccin-icons/latte/folder_cypress_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_database.svg +6 -0
- package/client/catppuccin-icons/latte/folder_database_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_debug.svg +6 -0
- package/client/catppuccin-icons/latte/folder_debug_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_devcontainer.svg +7 -0
- package/client/catppuccin-icons/latte/folder_devcontainer_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_direnv.svg +6 -0
- package/client/catppuccin-icons/latte/folder_direnv_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_dist.svg +6 -0
- package/client/catppuccin-icons/latte/folder_dist_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_docker.svg +9 -0
- package/client/catppuccin-icons/latte/folder_docker_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_docs.svg +6 -0
- package/client/catppuccin-icons/latte/folder_docs_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_download.svg +6 -0
- package/client/catppuccin-icons/latte/folder_download_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_drizzle-orm.svg +6 -0
- package/client/catppuccin-icons/latte/folder_drizzle-orm_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_examples.svg +6 -0
- package/client/catppuccin-icons/latte/folder_examples_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_fastlane.svg +8 -0
- package/client/catppuccin-icons/latte/folder_fastlane_open.svg +8 -0
- package/client/catppuccin-icons/latte/folder_firebase.svg +6 -0
- package/client/catppuccin-icons/latte/folder_firebase_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_fonts.svg +6 -0
- package/client/catppuccin-icons/latte/folder_fonts_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_forgejo.svg +7 -0
- package/client/catppuccin-icons/latte/folder_forgejo_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_functions.svg +6 -0
- package/client/catppuccin-icons/latte/folder_functions_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_fvm.svg +6 -0
- package/client/catppuccin-icons/latte/folder_fvm_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_git.svg +6 -0
- package/client/catppuccin-icons/latte/folder_git_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_github.svg +6 -0
- package/client/catppuccin-icons/latte/folder_github_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_gitlab.svg +6 -0
- package/client/catppuccin-icons/latte/folder_gitlab_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_gradle.svg +7 -0
- package/client/catppuccin-icons/latte/folder_gradle_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_graphql.svg +4 -0
- package/client/catppuccin-icons/latte/folder_graphql_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_hooks.svg +6 -0
- package/client/catppuccin-icons/latte/folder_hooks_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_husky.svg +7 -0
- package/client/catppuccin-icons/latte/folder_husky_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_images.svg +8 -0
- package/client/catppuccin-icons/latte/folder_images_open.svg +8 -0
- package/client/catppuccin-icons/latte/folder_include.svg +5 -0
- package/client/catppuccin-icons/latte/folder_include_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_intellij.svg +8 -0
- package/client/catppuccin-icons/latte/folder_intellij_open.svg +8 -0
- package/client/catppuccin-icons/latte/folder_javascript.svg +4 -0
- package/client/catppuccin-icons/latte/folder_javascript_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_kubernetes.svg +9 -0
- package/client/catppuccin-icons/latte/folder_kubernetes_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_layouts.svg +6 -0
- package/client/catppuccin-icons/latte/folder_layouts_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_lib.svg +4 -0
- package/client/catppuccin-icons/latte/folder_lib_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_linux.svg +5 -0
- package/client/catppuccin-icons/latte/folder_linux_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_locales.svg +6 -0
- package/client/catppuccin-icons/latte/folder_locales_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_luau.svg +5 -0
- package/client/catppuccin-icons/latte/folder_luau_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_lune.svg +5 -0
- package/client/catppuccin-icons/latte/folder_lune_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_macos.svg +10 -0
- package/client/catppuccin-icons/latte/folder_macos_open.svg +10 -0
- package/client/catppuccin-icons/latte/folder_messages.svg +4 -0
- package/client/catppuccin-icons/latte/folder_messages_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_middleware.svg +6 -0
- package/client/catppuccin-icons/latte/folder_middleware_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_mocks.svg +6 -0
- package/client/catppuccin-icons/latte/folder_mocks_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_moonrepo.svg +5 -0
- package/client/catppuccin-icons/latte/folder_moonrepo_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_next.svg +6 -0
- package/client/catppuccin-icons/latte/folder_next_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_nix.svg +11 -0
- package/client/catppuccin-icons/latte/folder_nix_open.svg +11 -0
- package/client/catppuccin-icons/latte/folder_node.svg +6 -0
- package/client/catppuccin-icons/latte/folder_node_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_nuxt.svg +6 -0
- package/client/catppuccin-icons/latte/folder_nuxt_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_packages.svg +6 -0
- package/client/catppuccin-icons/latte/folder_packages_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_pesde.svg +6 -0
- package/client/catppuccin-icons/latte/folder_pesde_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_plugins.svg +6 -0
- package/client/catppuccin-icons/latte/folder_plugins_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_pre-commit.svg +5 -0
- package/client/catppuccin-icons/latte/folder_pre-commit_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_prisma.svg +6 -0
- package/client/catppuccin-icons/latte/folder_prisma_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_private.svg +5 -0
- package/client/catppuccin-icons/latte/folder_private_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_proto.svg +11 -0
- package/client/catppuccin-icons/latte/folder_proto_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_public.svg +6 -0
- package/client/catppuccin-icons/latte/folder_public_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_queue.svg +6 -0
- package/client/catppuccin-icons/latte/folder_queue_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_redux.svg +6 -0
- package/client/catppuccin-icons/latte/folder_redux_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_renovate.svg +7 -0
- package/client/catppuccin-icons/latte/folder_renovate_open.svg +7 -0
- package/client/catppuccin-icons/latte/folder_roblox.svg +3 -0
- package/client/catppuccin-icons/latte/folder_roblox_open.svg +3 -0
- package/client/catppuccin-icons/latte/folder_routes.svg +6 -0
- package/client/catppuccin-icons/latte/folder_routes_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_sass.svg +6 -0
- package/client/catppuccin-icons/latte/folder_sass_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_scripts.svg +6 -0
- package/client/catppuccin-icons/latte/folder_scripts_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_security.svg +4 -0
- package/client/catppuccin-icons/latte/folder_security_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_server.svg +6 -0
- package/client/catppuccin-icons/latte/folder_server_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_shared.svg +4 -0
- package/client/catppuccin-icons/latte/folder_shared_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_src.svg +6 -0
- package/client/catppuccin-icons/latte/folder_src_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_storybook.svg +6 -0
- package/client/catppuccin-icons/latte/folder_storybook_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_styles.svg +6 -0
- package/client/catppuccin-icons/latte/folder_styles_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_svg.svg +6 -0
- package/client/catppuccin-icons/latte/folder_svg_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_symlink.svg +5 -0
- package/client/catppuccin-icons/latte/folder_symlink_open.svg +5 -0
- package/client/catppuccin-icons/latte/folder_tauri.svg +9 -0
- package/client/catppuccin-icons/latte/folder_tauri_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_temp.svg +6 -0
- package/client/catppuccin-icons/latte/folder_temp_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_templates.svg +6 -0
- package/client/catppuccin-icons/latte/folder_templates_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_tests.svg +6 -0
- package/client/catppuccin-icons/latte/folder_tests_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_themes.svg +9 -0
- package/client/catppuccin-icons/latte/folder_themes_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_turbo.svg +9 -0
- package/client/catppuccin-icons/latte/folder_turbo_open.svg +10 -0
- package/client/catppuccin-icons/latte/folder_types.svg +6 -0
- package/client/catppuccin-icons/latte/folder_types_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_upload.svg +9 -0
- package/client/catppuccin-icons/latte/folder_upload_open.svg +9 -0
- package/client/catppuccin-icons/latte/folder_utils.svg +6 -0
- package/client/catppuccin-icons/latte/folder_utils_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_vercel.svg +6 -0
- package/client/catppuccin-icons/latte/folder_vercel_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_video.svg +6 -0
- package/client/catppuccin-icons/latte/folder_video_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_views.svg +6 -0
- package/client/catppuccin-icons/latte/folder_views_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_vscode.svg +6 -0
- package/client/catppuccin-icons/latte/folder_vscode_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_windows.svg +4 -0
- package/client/catppuccin-icons/latte/folder_windows_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_workflows.svg +6 -0
- package/client/catppuccin-icons/latte/folder_workflows_open.svg +6 -0
- package/client/catppuccin-icons/latte/folder_wxt.svg +4 -0
- package/client/catppuccin-icons/latte/folder_wxt_open.svg +4 -0
- package/client/catppuccin-icons/latte/folder_xcode.svg +12 -0
- package/client/catppuccin-icons/latte/folder_xcode_open.svg +10 -0
- package/client/catppuccin-icons/latte/folder_xmake.svg +8 -0
- package/client/catppuccin-icons/latte/folder_xmake_open.svg +8 -0
- package/client/catppuccin-icons/latte/folder_yarn.svg +7 -0
- package/client/catppuccin-icons/latte/folder_yarn_open.svg +9 -0
- package/client/catppuccin-icons/latte/font.svg +3 -0
- package/client/catppuccin-icons/latte/foreman.svg +9 -0
- package/client/catppuccin-icons/latte/forgejo.svg +6 -0
- package/client/catppuccin-icons/latte/fortran.svg +3 -0
- package/client/catppuccin-icons/latte/fsharp.svg +3 -0
- package/client/catppuccin-icons/latte/fvm.svg +3 -0
- package/client/catppuccin-icons/latte/gatsby.svg +6 -0
- package/client/catppuccin-icons/latte/gcp.svg +9 -0
- package/client/catppuccin-icons/latte/git-cliff.svg +5 -0
- package/client/catppuccin-icons/latte/git.svg +6 -0
- package/client/catppuccin-icons/latte/gitlab.svg +3 -0
- package/client/catppuccin-icons/latte/gitpod.svg +3 -0
- package/client/catppuccin-icons/latte/gleam-config.svg +5 -0
- package/client/catppuccin-icons/latte/gleam.svg +4 -0
- package/client/catppuccin-icons/latte/go-mod.svg +3 -0
- package/client/catppuccin-icons/latte/go-template.svg +4 -0
- package/client/catppuccin-icons/latte/go.svg +3 -0
- package/client/catppuccin-icons/latte/godot-assets.svg +3 -0
- package/client/catppuccin-icons/latte/godot.svg +3 -0
- package/client/catppuccin-icons/latte/gradle.svg +6 -0
- package/client/catppuccin-icons/latte/graphql.svg +3 -0
- package/client/catppuccin-icons/latte/groovy.svg +6 -0
- package/client/catppuccin-icons/latte/gulp.svg +3 -0
- package/client/catppuccin-icons/latte/hacking.svg +7 -0
- package/client/catppuccin-icons/latte/haml.svg +7 -0
- package/client/catppuccin-icons/latte/handlebars.svg +3 -0
- package/client/catppuccin-icons/latte/hardhat.svg +3 -0
- package/client/catppuccin-icons/latte/hare.svg +7 -0
- package/client/catppuccin-icons/latte/haskell.svg +3 -0
- package/client/catppuccin-icons/latte/haxe.svg +6 -0
- package/client/catppuccin-icons/latte/helm.svg +3 -0
- package/client/catppuccin-icons/latte/heroku.svg +6 -0
- package/client/catppuccin-icons/latte/histoire.svg +6 -0
- package/client/catppuccin-icons/latte/html.svg +6 -0
- package/client/catppuccin-icons/latte/http.svg +6 -0
- package/client/catppuccin-icons/latte/huff.svg +4 -0
- package/client/catppuccin-icons/latte/hugo.svg +6 -0
- package/client/catppuccin-icons/latte/humans.svg +13 -0
- package/client/catppuccin-icons/latte/husky.svg +3 -0
- package/client/catppuccin-icons/latte/image.svg +8 -0
- package/client/catppuccin-icons/latte/ionic.svg +6 -0
- package/client/catppuccin-icons/latte/java-annotation.svg +3 -0
- package/client/catppuccin-icons/latte/java-class-abstract.svg +3 -0
- package/client/catppuccin-icons/latte/java-class-final.svg +3 -0
- package/client/catppuccin-icons/latte/java-class-sealed.svg +3 -0
- package/client/catppuccin-icons/latte/java-class.svg +3 -0
- package/client/catppuccin-icons/latte/java-enum.svg +3 -0
- package/client/catppuccin-icons/latte/java-exception.svg +3 -0
- package/client/catppuccin-icons/latte/java-interface.svg +4 -0
- package/client/catppuccin-icons/latte/java-jar.svg +7 -0
- package/client/catppuccin-icons/latte/java-record.svg +4 -0
- package/client/catppuccin-icons/latte/java.svg +7 -0
- package/client/catppuccin-icons/latte/javascript-config.svg +7 -0
- package/client/catppuccin-icons/latte/javascript-map.svg +8 -0
- package/client/catppuccin-icons/latte/javascript-react.svg +8 -0
- package/client/catppuccin-icons/latte/javascript-test.svg +3 -0
- package/client/catppuccin-icons/latte/javascript.svg +6 -0
- package/client/catppuccin-icons/latte/jest.svg +8 -0
- package/client/catppuccin-icons/latte/jinja.svg +3 -0
- package/client/catppuccin-icons/latte/json-schema.svg +3 -0
- package/client/catppuccin-icons/latte/json.svg +3 -0
- package/client/catppuccin-icons/latte/juce.svg +14 -0
- package/client/catppuccin-icons/latte/jule.svg +5 -0
- package/client/catppuccin-icons/latte/julia.svg +7 -0
- package/client/catppuccin-icons/latte/jupyter.svg +6 -0
- package/client/catppuccin-icons/latte/just.svg +5 -0
- package/client/catppuccin-icons/latte/kdl.svg +5 -0
- package/client/catppuccin-icons/latte/key.svg +6 -0
- package/client/catppuccin-icons/latte/knip.svg +3 -0
- package/client/catppuccin-icons/latte/kotlin.svg +8 -0
- package/client/catppuccin-icons/latte/laravel.svg +8 -0
- package/client/catppuccin-icons/latte/latex.svg +3 -0
- package/client/catppuccin-icons/latte/latte.svg +6 -0
- package/client/catppuccin-icons/latte/lerna.svg +6 -0
- package/client/catppuccin-icons/latte/less.svg +3 -0
- package/client/catppuccin-icons/latte/lib.svg +3 -0
- package/client/catppuccin-icons/latte/license.svg +3 -0
- package/client/catppuccin-icons/latte/lint-staged.svg +8 -0
- package/client/catppuccin-icons/latte/liquid.svg +3 -0
- package/client/catppuccin-icons/latte/lisp.svg +6 -0
- package/client/catppuccin-icons/latte/lock.svg +3 -0
- package/client/catppuccin-icons/latte/log.svg +6 -0
- package/client/catppuccin-icons/latte/lua-check.svg +9 -0
- package/client/catppuccin-icons/latte/lua-client.svg +7 -0
- package/client/catppuccin-icons/latte/lua-rocks.svg +7 -0
- package/client/catppuccin-icons/latte/lua-server.svg +7 -0
- package/client/catppuccin-icons/latte/lua-test.svg +9 -0
- package/client/catppuccin-icons/latte/lua.svg +6 -0
- package/client/catppuccin-icons/latte/luau-check.svg +9 -0
- package/client/catppuccin-icons/latte/luau-client.svg +7 -0
- package/client/catppuccin-icons/latte/luau-config.svg +9 -0
- package/client/catppuccin-icons/latte/luau-server.svg +7 -0
- package/client/catppuccin-icons/latte/luau-test.svg +5 -0
- package/client/catppuccin-icons/latte/luau.svg +4 -0
- package/client/catppuccin-icons/latte/macos.svg +9 -0
- package/client/catppuccin-icons/latte/makefile.svg +6 -0
- package/client/catppuccin-icons/latte/mantle.svg +3 -0
- package/client/catppuccin-icons/latte/markdown-mdx.svg +3 -0
- package/client/catppuccin-icons/latte/markdown.svg +3 -0
- package/client/catppuccin-icons/latte/marko.svg +9 -0
- package/client/catppuccin-icons/latte/matlab.svg +6 -0
- package/client/catppuccin-icons/latte/mdbook.svg +4 -0
- package/client/catppuccin-icons/latte/mermaid.svg +3 -0
- package/client/catppuccin-icons/latte/meson.svg +6 -0
- package/client/catppuccin-icons/latte/midi.svg +6 -0
- package/client/catppuccin-icons/latte/mjml.svg +3 -0
- package/client/catppuccin-icons/latte/modernizr.svg +3 -0
- package/client/catppuccin-icons/latte/moonrepo.svg +4 -0
- package/client/catppuccin-icons/latte/moonwave.svg +3 -0
- package/client/catppuccin-icons/latte/ms-excel.svg +6 -0
- package/client/catppuccin-icons/latte/ms-powerpoint.svg +6 -0
- package/client/catppuccin-icons/latte/ms-word.svg +6 -0
- package/client/catppuccin-icons/latte/msbuild.svg +8 -0
- package/client/catppuccin-icons/latte/nativescript.svg +3 -0
- package/client/catppuccin-icons/latte/nest-controller.svg +3 -0
- package/client/catppuccin-icons/latte/nest-decorator.svg +3 -0
- package/client/catppuccin-icons/latte/nest-filter.svg +3 -0
- package/client/catppuccin-icons/latte/nest-gateway.svg +3 -0
- package/client/catppuccin-icons/latte/nest-guard.svg +3 -0
- package/client/catppuccin-icons/latte/nest-middleware.svg +3 -0
- package/client/catppuccin-icons/latte/nest-pipe.svg +3 -0
- package/client/catppuccin-icons/latte/nest-service.svg +3 -0
- package/client/catppuccin-icons/latte/nest.svg +3 -0
- package/client/catppuccin-icons/latte/netlify.svg +6 -0
- package/client/catppuccin-icons/latte/next.svg +6 -0
- package/client/catppuccin-icons/latte/nextflow.svg +3 -0
- package/client/catppuccin-icons/latte/nginx.svg +6 -0
- package/client/catppuccin-icons/latte/nim.svg +3 -0
- package/client/catppuccin-icons/latte/ninja.svg +6 -0
- package/client/catppuccin-icons/latte/nix-lock.svg +11 -0
- package/client/catppuccin-icons/latte/nix.svg +10 -0
- package/client/catppuccin-icons/latte/nodemon.svg +3 -0
- package/client/catppuccin-icons/latte/npm-ignore.svg +6 -0
- package/client/catppuccin-icons/latte/npm-lock.svg +7 -0
- package/client/catppuccin-icons/latte/npm.svg +6 -0
- package/client/catppuccin-icons/latte/nuget.svg +3 -0
- package/client/catppuccin-icons/latte/nunjucks.svg +3 -0
- package/client/catppuccin-icons/latte/nuxt-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/nuxt.svg +3 -0
- package/client/catppuccin-icons/latte/nx-ignore.svg +4 -0
- package/client/catppuccin-icons/latte/nx.svg +4 -0
- package/client/catppuccin-icons/latte/ocaml.svg +7 -0
- package/client/catppuccin-icons/latte/odin.svg +3 -0
- package/client/catppuccin-icons/latte/opentofu.svg +4 -0
- package/client/catppuccin-icons/latte/org.svg +7 -0
- package/client/catppuccin-icons/latte/package-json.svg +3 -0
- package/client/catppuccin-icons/latte/panda-css.svg +3 -0
- package/client/catppuccin-icons/latte/pdf.svg +3 -0
- package/client/catppuccin-icons/latte/perl.svg +3 -0
- package/client/catppuccin-icons/latte/pesde-lock.svg +7 -0
- package/client/catppuccin-icons/latte/pesde.svg +6 -0
- package/client/catppuccin-icons/latte/php.svg +3 -0
- package/client/catppuccin-icons/latte/phrase.svg +6 -0
- package/client/catppuccin-icons/latte/phtml.svg +6 -0
- package/client/catppuccin-icons/latte/pixi-lock.svg +6 -0
- package/client/catppuccin-icons/latte/pixi.svg +7 -0
- package/client/catppuccin-icons/latte/plantuml.svg +3 -0
- package/client/catppuccin-icons/latte/playwright.svg +9 -0
- package/client/catppuccin-icons/latte/plop.svg +3 -0
- package/client/catppuccin-icons/latte/pnpm-lock.svg +9 -0
- package/client/catppuccin-icons/latte/pnpm.svg +8 -0
- package/client/catppuccin-icons/latte/poetry-lock.svg +13 -0
- package/client/catppuccin-icons/latte/postcss.svg +8 -0
- package/client/catppuccin-icons/latte/powershell.svg +6 -0
- package/client/catppuccin-icons/latte/pre-commit.svg +4 -0
- package/client/catppuccin-icons/latte/premake.svg +7 -0
- package/client/catppuccin-icons/latte/prettier-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/prettier.svg +8 -0
- package/client/catppuccin-icons/latte/prisma.svg +3 -0
- package/client/catppuccin-icons/latte/prolog.svg +3 -0
- package/client/catppuccin-icons/latte/properties.svg +3 -0
- package/client/catppuccin-icons/latte/proto.svg +8 -0
- package/client/catppuccin-icons/latte/prototools.svg +3 -0
- package/client/catppuccin-icons/latte/pug.svg +3 -0
- package/client/catppuccin-icons/latte/puppet.svg +3 -0
- package/client/catppuccin-icons/latte/puppeteer.svg +5 -0
- package/client/catppuccin-icons/latte/python-compiled.svg +8 -0
- package/client/catppuccin-icons/latte/python-config.svg +9 -0
- package/client/catppuccin-icons/latte/python.svg +8 -0
- package/client/catppuccin-icons/latte/qwik.svg +6 -0
- package/client/catppuccin-icons/latte/r.svg +6 -0
- package/client/catppuccin-icons/latte/racket.svg +6 -0
- package/client/catppuccin-icons/latte/razor.svg +3 -0
- package/client/catppuccin-icons/latte/rdata.svg +4 -0
- package/client/catppuccin-icons/latte/readme.svg +6 -0
- package/client/catppuccin-icons/latte/reason.svg +6 -0
- package/client/catppuccin-icons/latte/redwood.svg +3 -0
- package/client/catppuccin-icons/latte/release.svg +6 -0
- package/client/catppuccin-icons/latte/remix.svg +3 -0
- package/client/catppuccin-icons/latte/renovate.svg +6 -0
- package/client/catppuccin-icons/latte/rescript.svg +6 -0
- package/client/catppuccin-icons/latte/rmd.svg +4 -0
- package/client/catppuccin-icons/latte/roblox.svg +3 -0
- package/client/catppuccin-icons/latte/robots.svg +6 -0
- package/client/catppuccin-icons/latte/rocket.svg +3 -0
- package/client/catppuccin-icons/latte/rojo.svg +3 -0
- package/client/catppuccin-icons/latte/rokit.svg +4 -0
- package/client/catppuccin-icons/latte/rollup.svg +6 -0
- package/client/catppuccin-icons/latte/rproj.svg +5 -0
- package/client/catppuccin-icons/latte/rsml.svg +10 -0
- package/client/catppuccin-icons/latte/ruby-gem-lock.svg +7 -0
- package/client/catppuccin-icons/latte/ruby-gem.svg +6 -0
- package/client/catppuccin-icons/latte/ruby.svg +3 -0
- package/client/catppuccin-icons/latte/ruff.svg +3 -0
- package/client/catppuccin-icons/latte/rust-alt-config.svg +4 -0
- package/client/catppuccin-icons/latte/rust-alt.svg +3 -0
- package/client/catppuccin-icons/latte/rust-config.svg +7 -0
- package/client/catppuccin-icons/latte/rust.svg +6 -0
- package/client/catppuccin-icons/latte/salesforce.svg +3 -0
- package/client/catppuccin-icons/latte/sass.svg +3 -0
- package/client/catppuccin-icons/latte/scala.svg +3 -0
- package/client/catppuccin-icons/latte/scheme.svg +3 -0
- package/client/catppuccin-icons/latte/search.svg +3 -0
- package/client/catppuccin-icons/latte/security.svg +4 -0
- package/client/catppuccin-icons/latte/semantic-release.svg +3 -0
- package/client/catppuccin-icons/latte/semgrep-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/semgrep.svg +3 -0
- package/client/catppuccin-icons/latte/sentry.svg +3 -0
- package/client/catppuccin-icons/latte/serverless.svg +3 -0
- package/client/catppuccin-icons/latte/shader.svg +3 -0
- package/client/catppuccin-icons/latte/sketch.svg +3 -0
- package/client/catppuccin-icons/latte/slidesk.svg +7 -0
- package/client/catppuccin-icons/latte/snowpack.svg +6 -0
- package/client/catppuccin-icons/latte/solid.svg +5 -0
- package/client/catppuccin-icons/latte/solidity.svg +3 -0
- package/client/catppuccin-icons/latte/sonar-cloud.svg +7 -0
- package/client/catppuccin-icons/latte/spwn.svg +7 -0
- package/client/catppuccin-icons/latte/squirrel.svg +4 -0
- package/client/catppuccin-icons/latte/stackblitz.svg +3 -0
- package/client/catppuccin-icons/latte/stata.svg +4 -0
- package/client/catppuccin-icons/latte/stencil.svg +3 -0
- package/client/catppuccin-icons/latte/stitches.svg +7 -0
- package/client/catppuccin-icons/latte/storybook-svelte.svg +6 -0
- package/client/catppuccin-icons/latte/storybook-vue.svg +6 -0
- package/client/catppuccin-icons/latte/storybook.svg +6 -0
- package/client/catppuccin-icons/latte/stylelint-ignore.svg +7 -0
- package/client/catppuccin-icons/latte/stylelint.svg +7 -0
- package/client/catppuccin-icons/latte/stylua-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/stylua.svg +7 -0
- package/client/catppuccin-icons/latte/sublime.svg +3 -0
- package/client/catppuccin-icons/latte/super-collider.svg +3 -0
- package/client/catppuccin-icons/latte/svelte-config.svg +6 -0
- package/client/catppuccin-icons/latte/svelte.svg +6 -0
- package/client/catppuccin-icons/latte/svg.svg +3 -0
- package/client/catppuccin-icons/latte/swift.svg +3 -0
- package/client/catppuccin-icons/latte/swiftformat.svg +4 -0
- package/client/catppuccin-icons/latte/symlink.svg +5 -0
- package/client/catppuccin-icons/latte/tailwind.svg +3 -0
- package/client/catppuccin-icons/latte/taskfile.svg +3 -0
- package/client/catppuccin-icons/latte/tauri-ignore.svg +6 -0
- package/client/catppuccin-icons/latte/tauri.svg +8 -0
- package/client/catppuccin-icons/latte/terraform.svg +3 -0
- package/client/catppuccin-icons/latte/text.svg +6 -0
- package/client/catppuccin-icons/latte/todo.svg +6 -0
- package/client/catppuccin-icons/latte/toml.svg +3 -0
- package/client/catppuccin-icons/latte/turbo.svg +10 -0
- package/client/catppuccin-icons/latte/twig.svg +4 -0
- package/client/catppuccin-icons/latte/twine.svg +6 -0
- package/client/catppuccin-icons/latte/typescript-config.svg +7 -0
- package/client/catppuccin-icons/latte/typescript-def.svg +7 -0
- package/client/catppuccin-icons/latte/typescript-react.svg +8 -0
- package/client/catppuccin-icons/latte/typescript-test.svg +3 -0
- package/client/catppuccin-icons/latte/typescript.svg +6 -0
- package/client/catppuccin-icons/latte/typst.svg +3 -0
- package/client/catppuccin-icons/latte/unity.svg +3 -0
- package/client/catppuccin-icons/latte/unocss.svg +6 -0
- package/client/catppuccin-icons/latte/url.svg +3 -0
- package/client/catppuccin-icons/latte/uv.svg +3 -0
- package/client/catppuccin-icons/latte/v.svg +6 -0
- package/client/catppuccin-icons/latte/vala.svg +3 -0
- package/client/catppuccin-icons/latte/vanilla-extract.svg +4 -0
- package/client/catppuccin-icons/latte/vapi.svg +3 -0
- package/client/catppuccin-icons/latte/vento.svg +5 -0
- package/client/catppuccin-icons/latte/vercel-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/vercel.svg +3 -0
- package/client/catppuccin-icons/latte/verilog.svg +6 -0
- package/client/catppuccin-icons/latte/vhs.svg +3 -0
- package/client/catppuccin-icons/latte/video.svg +6 -0
- package/client/catppuccin-icons/latte/vim.svg +3 -0
- package/client/catppuccin-icons/latte/visual-studio.svg +3 -0
- package/client/catppuccin-icons/latte/vital.svg +6 -0
- package/client/catppuccin-icons/latte/vite.svg +6 -0
- package/client/catppuccin-icons/latte/vitest.svg +6 -0
- package/client/catppuccin-icons/latte/vs-codium.svg +8 -0
- package/client/catppuccin-icons/latte/vscode-ignore.svg +3 -0
- package/client/catppuccin-icons/latte/vscode.svg +3 -0
- package/client/catppuccin-icons/latte/vue-config.svg +6 -0
- package/client/catppuccin-icons/latte/vue.svg +6 -0
- package/client/catppuccin-icons/latte/wally.svg +27 -0
- package/client/catppuccin-icons/latte/web-assembly.svg +7 -0
- package/client/catppuccin-icons/latte/webpack.svg +7 -0
- package/client/catppuccin-icons/latte/windi.svg +3 -0
- package/client/catppuccin-icons/latte/workflow.svg +3 -0
- package/client/catppuccin-icons/latte/wrangler.svg +4 -0
- package/client/catppuccin-icons/latte/wxt.svg +3 -0
- package/client/catppuccin-icons/latte/xaml.svg +8 -0
- package/client/catppuccin-icons/latte/xcode.svg +7 -0
- package/client/catppuccin-icons/latte/xmake.svg +7 -0
- package/client/catppuccin-icons/latte/xml.svg +3 -0
- package/client/catppuccin-icons/latte/yaml.svg +3 -0
- package/client/catppuccin-icons/latte/yarn-lock.svg +7 -0
- package/client/catppuccin-icons/latte/yarn.svg +6 -0
- package/client/catppuccin-icons/latte/zap.svg +3 -0
- package/client/catppuccin-icons/latte/zig.svg +3 -0
- package/client/catppuccin-icons/latte/zip.svg +3 -0
- package/client/catppuccin-icons/mocha/3d.svg +3 -0
- package/client/catppuccin-icons/mocha/_file.svg +3 -0
- package/client/catppuccin-icons/mocha/_folder.svg +3 -0
- package/client/catppuccin-icons/mocha/_folder_open.svg +3 -0
- package/client/catppuccin-icons/mocha/_root.svg +7 -0
- package/client/catppuccin-icons/mocha/_root_open.svg +5 -0
- package/client/catppuccin-icons/mocha/adobe-ae.svg +6 -0
- package/client/catppuccin-icons/mocha/adobe-ai.svg +6 -0
- package/client/catppuccin-icons/mocha/adobe-id.svg +6 -0
- package/client/catppuccin-icons/mocha/adobe-ps.svg +6 -0
- package/client/catppuccin-icons/mocha/adobe-xd.svg +6 -0
- package/client/catppuccin-icons/mocha/adonis.svg +6 -0
- package/client/catppuccin-icons/mocha/alex.svg +6 -0
- package/client/catppuccin-icons/mocha/amber.svg +3 -0
- package/client/catppuccin-icons/mocha/android.svg +3 -0
- package/client/catppuccin-icons/mocha/angular-component.svg +6 -0
- package/client/catppuccin-icons/mocha/angular-directive.svg +6 -0
- package/client/catppuccin-icons/mocha/angular-guard.svg +6 -0
- package/client/catppuccin-icons/mocha/angular-pipe.svg +6 -0
- package/client/catppuccin-icons/mocha/angular-service.svg +6 -0
- package/client/catppuccin-icons/mocha/angular.svg +6 -0
- package/client/catppuccin-icons/mocha/ansible-lint.svg +4 -0
- package/client/catppuccin-icons/mocha/antlr.svg +6 -0
- package/client/catppuccin-icons/mocha/apache.svg +7 -0
- package/client/catppuccin-icons/mocha/api-blueprint.svg +3 -0
- package/client/catppuccin-icons/mocha/apollo.svg +6 -0
- package/client/catppuccin-icons/mocha/apple.svg +3 -0
- package/client/catppuccin-icons/mocha/arduino.svg +3 -0
- package/client/catppuccin-icons/mocha/asciidoc.svg +3 -0
- package/client/catppuccin-icons/mocha/assembly.svg +4 -0
- package/client/catppuccin-icons/mocha/astro-config.svg +7 -0
- package/client/catppuccin-icons/mocha/astro.svg +6 -0
- package/client/catppuccin-icons/mocha/audio.svg +6 -0
- package/client/catppuccin-icons/mocha/autohotkey.svg +6 -0
- package/client/catppuccin-icons/mocha/azure-pipelines.svg +3 -0
- package/client/catppuccin-icons/mocha/babel.svg +3 -0
- package/client/catppuccin-icons/mocha/bash.svg +7 -0
- package/client/catppuccin-icons/mocha/batch.svg +6 -0
- package/client/catppuccin-icons/mocha/bazel.svg +3 -0
- package/client/catppuccin-icons/mocha/benchmark.svg +3 -0
- package/client/catppuccin-icons/mocha/bicep.svg +5 -0
- package/client/catppuccin-icons/mocha/binary.svg +6 -0
- package/client/catppuccin-icons/mocha/biome.svg +3 -0
- package/client/catppuccin-icons/mocha/bitbucket.svg +3 -0
- package/client/catppuccin-icons/mocha/blink.svg +10 -0
- package/client/catppuccin-icons/mocha/blitz.svg +3 -0
- package/client/catppuccin-icons/mocha/bower.svg +9 -0
- package/client/catppuccin-icons/mocha/browserslist.svg +6 -0
- package/client/catppuccin-icons/mocha/bun-lock.svg +8 -0
- package/client/catppuccin-icons/mocha/bun.svg +7 -0
- package/client/catppuccin-icons/mocha/c-header.svg +3 -0
- package/client/catppuccin-icons/mocha/c.svg +3 -0
- package/client/catppuccin-icons/mocha/cabal.svg +7 -0
- package/client/catppuccin-icons/mocha/caddy.svg +6 -0
- package/client/catppuccin-icons/mocha/capacitor.svg +3 -0
- package/client/catppuccin-icons/mocha/cargo-lock.svg +8 -0
- package/client/catppuccin-icons/mocha/cargo.svg +7 -0
- package/client/catppuccin-icons/mocha/certificate.svg +7 -0
- package/client/catppuccin-icons/mocha/changelog.svg +3 -0
- package/client/catppuccin-icons/mocha/circle-ci.svg +6 -0
- package/client/catppuccin-icons/mocha/clojure.svg +10 -0
- package/client/catppuccin-icons/mocha/cmake.svg +7 -0
- package/client/catppuccin-icons/mocha/cobol.svg +3 -0
- package/client/catppuccin-icons/mocha/code-climate.svg +3 -0
- package/client/catppuccin-icons/mocha/code-of-conduct.svg +6 -0
- package/client/catppuccin-icons/mocha/codeowners.svg +6 -0
- package/client/catppuccin-icons/mocha/coffeescript.svg +6 -0
- package/client/catppuccin-icons/mocha/commitlint.svg +6 -0
- package/client/catppuccin-icons/mocha/config.svg +3 -0
- package/client/catppuccin-icons/mocha/contributing.svg +6 -0
- package/client/catppuccin-icons/mocha/cpp-header.svg +4 -0
- package/client/catppuccin-icons/mocha/cpp.svg +4 -0
- package/client/catppuccin-icons/mocha/crystal.svg +3 -0
- package/client/catppuccin-icons/mocha/csharp.svg +3 -0
- package/client/catppuccin-icons/mocha/cspell.svg +4 -0
- package/client/catppuccin-icons/mocha/css-map.svg +8 -0
- package/client/catppuccin-icons/mocha/css.svg +6 -0
- package/client/catppuccin-icons/mocha/css3.svg +6 -0
- package/client/catppuccin-icons/mocha/csv.svg +3 -0
- package/client/catppuccin-icons/mocha/cucumber.svg +3 -0
- package/client/catppuccin-icons/mocha/cuda.svg +6 -0
- package/client/catppuccin-icons/mocha/cue.svg +4 -0
- package/client/catppuccin-icons/mocha/cursor-ignore.svg +4 -0
- package/client/catppuccin-icons/mocha/cursor.svg +4 -0
- package/client/catppuccin-icons/mocha/cypress.svg +6 -0
- package/client/catppuccin-icons/mocha/d.svg +3 -0
- package/client/catppuccin-icons/mocha/darklua.svg +6 -0
- package/client/catppuccin-icons/mocha/dart-generated.svg +6 -0
- package/client/catppuccin-icons/mocha/dart.svg +6 -0
- package/client/catppuccin-icons/mocha/database.svg +3 -0
- package/client/catppuccin-icons/mocha/deno.svg +3 -0
- package/client/catppuccin-icons/mocha/deno_lock.svg +6 -0
- package/client/catppuccin-icons/mocha/dependabot.svg +3 -0
- package/client/catppuccin-icons/mocha/devcontainer.svg +4 -0
- package/client/catppuccin-icons/mocha/dhall.svg +3 -0
- package/client/catppuccin-icons/mocha/diff.svg +7 -0
- package/client/catppuccin-icons/mocha/django.svg +6 -0
- package/client/catppuccin-icons/mocha/docker-compose.svg +3 -0
- package/client/catppuccin-icons/mocha/docker-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/docker.svg +3 -0
- package/client/catppuccin-icons/mocha/docusaurus.svg +7 -0
- package/client/catppuccin-icons/mocha/drawio.svg +3 -0
- package/client/catppuccin-icons/mocha/drizzle-orm.svg +3 -0
- package/client/catppuccin-icons/mocha/dub-selections.svg +8 -0
- package/client/catppuccin-icons/mocha/dub.svg +7 -0
- package/client/catppuccin-icons/mocha/editorconfig.svg +3 -0
- package/client/catppuccin-icons/mocha/ejs.svg +3 -0
- package/client/catppuccin-icons/mocha/eleventy.svg +3 -0
- package/client/catppuccin-icons/mocha/elixir.svg +3 -0
- package/client/catppuccin-icons/mocha/elm.svg +3 -0
- package/client/catppuccin-icons/mocha/ember.svg +3 -0
- package/client/catppuccin-icons/mocha/env.svg +3 -0
- package/client/catppuccin-icons/mocha/envrc.svg +6 -0
- package/client/catppuccin-icons/mocha/erlang.svg +6 -0
- package/client/catppuccin-icons/mocha/esbuild.svg +3 -0
- package/client/catppuccin-icons/mocha/eslint-ignore.svg +6 -0
- package/client/catppuccin-icons/mocha/eslint.svg +6 -0
- package/client/catppuccin-icons/mocha/exe.svg +6 -0
- package/client/catppuccin-icons/mocha/fastlane.svg +14 -0
- package/client/catppuccin-icons/mocha/favicon.svg +3 -0
- package/client/catppuccin-icons/mocha/figma.svg +9 -0
- package/client/catppuccin-icons/mocha/firebase.svg +3 -0
- package/client/catppuccin-icons/mocha/flutter.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_admin.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_admin_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_android.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_android_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_animation.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_animation_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_api.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_api_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_app.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_app_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_assets.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_assets_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_audio.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_audio_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_audit.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_audit_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_aws.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_aws_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_azure-devops.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_azure-devops_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_azure-pipelines.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_azure-pipelines_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_benchmark.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_benchmark_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_caddy.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_caddy_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_cargo.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_cargo_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_circle-ci.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_circle-ci_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_client.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_client_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_cloud.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_cloud_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_command.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_command_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_components.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_components_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_composables.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_composables_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_config.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_config_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_connection.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_connection_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_constant.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_constant_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_content.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_content_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_controllers.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_controllers_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_core.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_core_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_coverage.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_coverage_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_cursor.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_cursor_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_cypress.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_cypress_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_database.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_database_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_debug.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_debug_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_devcontainer.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_devcontainer_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_direnv.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_direnv_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_dist.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_dist_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_docker.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_docker_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_docs.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_docs_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_download.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_download_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_drizzle-orm.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_drizzle-orm_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_examples.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_examples_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_fastlane.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_fastlane_open.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_firebase.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_firebase_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_fonts.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_fonts_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_forgejo.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_forgejo_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_functions.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_functions_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_fvm.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_fvm_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_git.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_git_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_github.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_github_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_gitlab.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_gitlab_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_gradle.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_gradle_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_graphql.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_graphql_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_hooks.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_hooks_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_husky.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_husky_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_images.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_images_open.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_include.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_include_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_intellij.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_intellij_open.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_javascript.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_javascript_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_kubernetes.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_kubernetes_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_layouts.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_layouts_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_lib.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_lib_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_linux.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_linux_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_locales.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_locales_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_luau.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_luau_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_lune.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_lune_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_macos.svg +10 -0
- package/client/catppuccin-icons/mocha/folder_macos_open.svg +10 -0
- package/client/catppuccin-icons/mocha/folder_messages.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_messages_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_middleware.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_middleware_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_mocks.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_mocks_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_moonrepo.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_moonrepo_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_next.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_next_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_nix.svg +11 -0
- package/client/catppuccin-icons/mocha/folder_nix_open.svg +11 -0
- package/client/catppuccin-icons/mocha/folder_node.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_node_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_nuxt.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_nuxt_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_packages.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_packages_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_pesde.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_pesde_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_plugins.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_plugins_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_pre-commit.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_pre-commit_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_prisma.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_prisma_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_private.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_private_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_proto.svg +11 -0
- package/client/catppuccin-icons/mocha/folder_proto_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_public.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_public_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_queue.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_queue_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_redux.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_redux_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_renovate.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_renovate_open.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_roblox.svg +3 -0
- package/client/catppuccin-icons/mocha/folder_roblox_open.svg +3 -0
- package/client/catppuccin-icons/mocha/folder_routes.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_routes_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_sass.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_sass_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_scripts.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_scripts_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_security.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_security_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_server.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_server_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_shared.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_shared_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_src.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_src_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_storybook.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_storybook_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_styles.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_styles_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_svg.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_svg_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_symlink.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_symlink_open.svg +5 -0
- package/client/catppuccin-icons/mocha/folder_tauri.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_tauri_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_temp.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_temp_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_templates.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_templates_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_tests.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_tests_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_themes.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_themes_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_turbo.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_turbo_open.svg +10 -0
- package/client/catppuccin-icons/mocha/folder_types.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_types_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_upload.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_upload_open.svg +9 -0
- package/client/catppuccin-icons/mocha/folder_utils.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_utils_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_vercel.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_vercel_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_video.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_video_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_views.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_views_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_vscode.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_vscode_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_windows.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_windows_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_workflows.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_workflows_open.svg +6 -0
- package/client/catppuccin-icons/mocha/folder_wxt.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_wxt_open.svg +4 -0
- package/client/catppuccin-icons/mocha/folder_xcode.svg +12 -0
- package/client/catppuccin-icons/mocha/folder_xcode_open.svg +10 -0
- package/client/catppuccin-icons/mocha/folder_xmake.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_xmake_open.svg +8 -0
- package/client/catppuccin-icons/mocha/folder_yarn.svg +7 -0
- package/client/catppuccin-icons/mocha/folder_yarn_open.svg +9 -0
- package/client/catppuccin-icons/mocha/font.svg +3 -0
- package/client/catppuccin-icons/mocha/foreman.svg +9 -0
- package/client/catppuccin-icons/mocha/forgejo.svg +6 -0
- package/client/catppuccin-icons/mocha/fortran.svg +3 -0
- package/client/catppuccin-icons/mocha/fsharp.svg +3 -0
- package/client/catppuccin-icons/mocha/fvm.svg +3 -0
- package/client/catppuccin-icons/mocha/gatsby.svg +6 -0
- package/client/catppuccin-icons/mocha/gcp.svg +9 -0
- package/client/catppuccin-icons/mocha/git-cliff.svg +5 -0
- package/client/catppuccin-icons/mocha/git.svg +6 -0
- package/client/catppuccin-icons/mocha/gitlab.svg +3 -0
- package/client/catppuccin-icons/mocha/gitpod.svg +3 -0
- package/client/catppuccin-icons/mocha/gleam-config.svg +5 -0
- package/client/catppuccin-icons/mocha/gleam.svg +4 -0
- package/client/catppuccin-icons/mocha/go-mod.svg +3 -0
- package/client/catppuccin-icons/mocha/go-template.svg +4 -0
- package/client/catppuccin-icons/mocha/go.svg +3 -0
- package/client/catppuccin-icons/mocha/godot-assets.svg +3 -0
- package/client/catppuccin-icons/mocha/godot.svg +3 -0
- package/client/catppuccin-icons/mocha/gradle.svg +6 -0
- package/client/catppuccin-icons/mocha/graphql.svg +3 -0
- package/client/catppuccin-icons/mocha/groovy.svg +6 -0
- package/client/catppuccin-icons/mocha/gulp.svg +3 -0
- package/client/catppuccin-icons/mocha/hacking.svg +7 -0
- package/client/catppuccin-icons/mocha/haml.svg +7 -0
- package/client/catppuccin-icons/mocha/handlebars.svg +3 -0
- package/client/catppuccin-icons/mocha/hardhat.svg +3 -0
- package/client/catppuccin-icons/mocha/hare.svg +7 -0
- package/client/catppuccin-icons/mocha/haskell.svg +3 -0
- package/client/catppuccin-icons/mocha/haxe.svg +6 -0
- package/client/catppuccin-icons/mocha/helm.svg +3 -0
- package/client/catppuccin-icons/mocha/heroku.svg +6 -0
- package/client/catppuccin-icons/mocha/histoire.svg +6 -0
- package/client/catppuccin-icons/mocha/html.svg +6 -0
- package/client/catppuccin-icons/mocha/http.svg +6 -0
- package/client/catppuccin-icons/mocha/huff.svg +4 -0
- package/client/catppuccin-icons/mocha/hugo.svg +6 -0
- package/client/catppuccin-icons/mocha/humans.svg +13 -0
- package/client/catppuccin-icons/mocha/husky.svg +3 -0
- package/client/catppuccin-icons/mocha/image.svg +8 -0
- package/client/catppuccin-icons/mocha/ionic.svg +6 -0
- package/client/catppuccin-icons/mocha/java-annotation.svg +3 -0
- package/client/catppuccin-icons/mocha/java-class-abstract.svg +3 -0
- package/client/catppuccin-icons/mocha/java-class-final.svg +3 -0
- package/client/catppuccin-icons/mocha/java-class-sealed.svg +3 -0
- package/client/catppuccin-icons/mocha/java-class.svg +3 -0
- package/client/catppuccin-icons/mocha/java-enum.svg +3 -0
- package/client/catppuccin-icons/mocha/java-exception.svg +3 -0
- package/client/catppuccin-icons/mocha/java-interface.svg +4 -0
- package/client/catppuccin-icons/mocha/java-jar.svg +7 -0
- package/client/catppuccin-icons/mocha/java-record.svg +4 -0
- package/client/catppuccin-icons/mocha/java.svg +7 -0
- package/client/catppuccin-icons/mocha/javascript-config.svg +7 -0
- package/client/catppuccin-icons/mocha/javascript-map.svg +8 -0
- package/client/catppuccin-icons/mocha/javascript-react.svg +8 -0
- package/client/catppuccin-icons/mocha/javascript-test.svg +3 -0
- package/client/catppuccin-icons/mocha/javascript.svg +6 -0
- package/client/catppuccin-icons/mocha/jest.svg +8 -0
- package/client/catppuccin-icons/mocha/jinja.svg +3 -0
- package/client/catppuccin-icons/mocha/json-schema.svg +3 -0
- package/client/catppuccin-icons/mocha/json.svg +3 -0
- package/client/catppuccin-icons/mocha/juce.svg +14 -0
- package/client/catppuccin-icons/mocha/jule.svg +5 -0
- package/client/catppuccin-icons/mocha/julia.svg +7 -0
- package/client/catppuccin-icons/mocha/jupyter.svg +6 -0
- package/client/catppuccin-icons/mocha/just.svg +5 -0
- package/client/catppuccin-icons/mocha/kdl.svg +5 -0
- package/client/catppuccin-icons/mocha/key.svg +6 -0
- package/client/catppuccin-icons/mocha/knip.svg +3 -0
- package/client/catppuccin-icons/mocha/kotlin.svg +8 -0
- package/client/catppuccin-icons/mocha/laravel.svg +8 -0
- package/client/catppuccin-icons/mocha/latex.svg +3 -0
- package/client/catppuccin-icons/mocha/latte.svg +6 -0
- package/client/catppuccin-icons/mocha/lerna.svg +6 -0
- package/client/catppuccin-icons/mocha/less.svg +3 -0
- package/client/catppuccin-icons/mocha/lib.svg +3 -0
- package/client/catppuccin-icons/mocha/license.svg +3 -0
- package/client/catppuccin-icons/mocha/lint-staged.svg +8 -0
- package/client/catppuccin-icons/mocha/liquid.svg +3 -0
- package/client/catppuccin-icons/mocha/lisp.svg +6 -0
- package/client/catppuccin-icons/mocha/lock.svg +3 -0
- package/client/catppuccin-icons/mocha/log.svg +6 -0
- package/client/catppuccin-icons/mocha/lua-check.svg +9 -0
- package/client/catppuccin-icons/mocha/lua-client.svg +7 -0
- package/client/catppuccin-icons/mocha/lua-rocks.svg +7 -0
- package/client/catppuccin-icons/mocha/lua-server.svg +7 -0
- package/client/catppuccin-icons/mocha/lua-test.svg +9 -0
- package/client/catppuccin-icons/mocha/lua.svg +6 -0
- package/client/catppuccin-icons/mocha/luau-check.svg +9 -0
- package/client/catppuccin-icons/mocha/luau-client.svg +7 -0
- package/client/catppuccin-icons/mocha/luau-config.svg +9 -0
- package/client/catppuccin-icons/mocha/luau-server.svg +7 -0
- package/client/catppuccin-icons/mocha/luau-test.svg +5 -0
- package/client/catppuccin-icons/mocha/luau.svg +4 -0
- package/client/catppuccin-icons/mocha/macos.svg +9 -0
- package/client/catppuccin-icons/mocha/makefile.svg +6 -0
- package/client/catppuccin-icons/mocha/mantle.svg +3 -0
- package/client/catppuccin-icons/mocha/markdown-mdx.svg +3 -0
- package/client/catppuccin-icons/mocha/markdown.svg +3 -0
- package/client/catppuccin-icons/mocha/marko.svg +9 -0
- package/client/catppuccin-icons/mocha/matlab.svg +6 -0
- package/client/catppuccin-icons/mocha/mdbook.svg +4 -0
- package/client/catppuccin-icons/mocha/mermaid.svg +3 -0
- package/client/catppuccin-icons/mocha/meson.svg +6 -0
- package/client/catppuccin-icons/mocha/midi.svg +6 -0
- package/client/catppuccin-icons/mocha/mjml.svg +3 -0
- package/client/catppuccin-icons/mocha/modernizr.svg +3 -0
- package/client/catppuccin-icons/mocha/moonrepo.svg +4 -0
- package/client/catppuccin-icons/mocha/moonwave.svg +3 -0
- package/client/catppuccin-icons/mocha/ms-excel.svg +6 -0
- package/client/catppuccin-icons/mocha/ms-powerpoint.svg +6 -0
- package/client/catppuccin-icons/mocha/ms-word.svg +6 -0
- package/client/catppuccin-icons/mocha/msbuild.svg +8 -0
- package/client/catppuccin-icons/mocha/nativescript.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-controller.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-decorator.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-filter.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-gateway.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-guard.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-middleware.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-pipe.svg +3 -0
- package/client/catppuccin-icons/mocha/nest-service.svg +3 -0
- package/client/catppuccin-icons/mocha/nest.svg +3 -0
- package/client/catppuccin-icons/mocha/netlify.svg +6 -0
- package/client/catppuccin-icons/mocha/next.svg +6 -0
- package/client/catppuccin-icons/mocha/nextflow.svg +3 -0
- package/client/catppuccin-icons/mocha/nginx.svg +6 -0
- package/client/catppuccin-icons/mocha/nim.svg +3 -0
- package/client/catppuccin-icons/mocha/ninja.svg +6 -0
- package/client/catppuccin-icons/mocha/nix-lock.svg +11 -0
- package/client/catppuccin-icons/mocha/nix.svg +10 -0
- package/client/catppuccin-icons/mocha/nodemon.svg +3 -0
- package/client/catppuccin-icons/mocha/npm-ignore.svg +6 -0
- package/client/catppuccin-icons/mocha/npm-lock.svg +7 -0
- package/client/catppuccin-icons/mocha/npm.svg +6 -0
- package/client/catppuccin-icons/mocha/nuget.svg +3 -0
- package/client/catppuccin-icons/mocha/nunjucks.svg +3 -0
- package/client/catppuccin-icons/mocha/nuxt-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/nuxt.svg +3 -0
- package/client/catppuccin-icons/mocha/nx-ignore.svg +4 -0
- package/client/catppuccin-icons/mocha/nx.svg +4 -0
- package/client/catppuccin-icons/mocha/ocaml.svg +7 -0
- package/client/catppuccin-icons/mocha/odin.svg +3 -0
- package/client/catppuccin-icons/mocha/opentofu.svg +4 -0
- package/client/catppuccin-icons/mocha/org.svg +7 -0
- package/client/catppuccin-icons/mocha/package-json.svg +3 -0
- package/client/catppuccin-icons/mocha/panda-css.svg +3 -0
- package/client/catppuccin-icons/mocha/pdf.svg +3 -0
- package/client/catppuccin-icons/mocha/perl.svg +3 -0
- package/client/catppuccin-icons/mocha/pesde-lock.svg +7 -0
- package/client/catppuccin-icons/mocha/pesde.svg +6 -0
- package/client/catppuccin-icons/mocha/php.svg +3 -0
- package/client/catppuccin-icons/mocha/phrase.svg +6 -0
- package/client/catppuccin-icons/mocha/phtml.svg +6 -0
- package/client/catppuccin-icons/mocha/pixi-lock.svg +6 -0
- package/client/catppuccin-icons/mocha/pixi.svg +7 -0
- package/client/catppuccin-icons/mocha/plantuml.svg +3 -0
- package/client/catppuccin-icons/mocha/playwright.svg +9 -0
- package/client/catppuccin-icons/mocha/plop.svg +3 -0
- package/client/catppuccin-icons/mocha/pnpm-lock.svg +9 -0
- package/client/catppuccin-icons/mocha/pnpm.svg +8 -0
- package/client/catppuccin-icons/mocha/poetry-lock.svg +13 -0
- package/client/catppuccin-icons/mocha/postcss.svg +8 -0
- package/client/catppuccin-icons/mocha/powershell.svg +6 -0
- package/client/catppuccin-icons/mocha/pre-commit.svg +4 -0
- package/client/catppuccin-icons/mocha/premake.svg +7 -0
- package/client/catppuccin-icons/mocha/prettier-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/prettier.svg +8 -0
- package/client/catppuccin-icons/mocha/prisma.svg +3 -0
- package/client/catppuccin-icons/mocha/prolog.svg +3 -0
- package/client/catppuccin-icons/mocha/properties.svg +3 -0
- package/client/catppuccin-icons/mocha/proto.svg +8 -0
- package/client/catppuccin-icons/mocha/prototools.svg +3 -0
- package/client/catppuccin-icons/mocha/pug.svg +3 -0
- package/client/catppuccin-icons/mocha/puppet.svg +3 -0
- package/client/catppuccin-icons/mocha/puppeteer.svg +5 -0
- package/client/catppuccin-icons/mocha/python-compiled.svg +8 -0
- package/client/catppuccin-icons/mocha/python-config.svg +9 -0
- package/client/catppuccin-icons/mocha/python.svg +8 -0
- package/client/catppuccin-icons/mocha/qwik.svg +6 -0
- package/client/catppuccin-icons/mocha/r.svg +6 -0
- package/client/catppuccin-icons/mocha/racket.svg +6 -0
- package/client/catppuccin-icons/mocha/razor.svg +3 -0
- package/client/catppuccin-icons/mocha/rdata.svg +4 -0
- package/client/catppuccin-icons/mocha/readme.svg +6 -0
- package/client/catppuccin-icons/mocha/reason.svg +6 -0
- package/client/catppuccin-icons/mocha/redwood.svg +3 -0
- package/client/catppuccin-icons/mocha/release.svg +6 -0
- package/client/catppuccin-icons/mocha/remix.svg +3 -0
- package/client/catppuccin-icons/mocha/renovate.svg +6 -0
- package/client/catppuccin-icons/mocha/rescript.svg +6 -0
- package/client/catppuccin-icons/mocha/rmd.svg +4 -0
- package/client/catppuccin-icons/mocha/roblox.svg +3 -0
- package/client/catppuccin-icons/mocha/robots.svg +6 -0
- package/client/catppuccin-icons/mocha/rocket.svg +3 -0
- package/client/catppuccin-icons/mocha/rojo.svg +3 -0
- package/client/catppuccin-icons/mocha/rokit.svg +4 -0
- package/client/catppuccin-icons/mocha/rollup.svg +6 -0
- package/client/catppuccin-icons/mocha/rproj.svg +5 -0
- package/client/catppuccin-icons/mocha/rsml.svg +10 -0
- package/client/catppuccin-icons/mocha/ruby-gem-lock.svg +7 -0
- package/client/catppuccin-icons/mocha/ruby-gem.svg +6 -0
- package/client/catppuccin-icons/mocha/ruby.svg +3 -0
- package/client/catppuccin-icons/mocha/ruff.svg +3 -0
- package/client/catppuccin-icons/mocha/rust-alt-config.svg +4 -0
- package/client/catppuccin-icons/mocha/rust-alt.svg +3 -0
- package/client/catppuccin-icons/mocha/rust-config.svg +7 -0
- package/client/catppuccin-icons/mocha/rust.svg +6 -0
- package/client/catppuccin-icons/mocha/salesforce.svg +3 -0
- package/client/catppuccin-icons/mocha/sass.svg +3 -0
- package/client/catppuccin-icons/mocha/scala.svg +3 -0
- package/client/catppuccin-icons/mocha/scheme.svg +3 -0
- package/client/catppuccin-icons/mocha/search.svg +3 -0
- package/client/catppuccin-icons/mocha/security.svg +4 -0
- package/client/catppuccin-icons/mocha/semantic-release.svg +3 -0
- package/client/catppuccin-icons/mocha/semgrep-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/semgrep.svg +3 -0
- package/client/catppuccin-icons/mocha/sentry.svg +3 -0
- package/client/catppuccin-icons/mocha/serverless.svg +3 -0
- package/client/catppuccin-icons/mocha/shader.svg +3 -0
- package/client/catppuccin-icons/mocha/sketch.svg +3 -0
- package/client/catppuccin-icons/mocha/slidesk.svg +7 -0
- package/client/catppuccin-icons/mocha/snowpack.svg +6 -0
- package/client/catppuccin-icons/mocha/solid.svg +5 -0
- package/client/catppuccin-icons/mocha/solidity.svg +3 -0
- package/client/catppuccin-icons/mocha/sonar-cloud.svg +7 -0
- package/client/catppuccin-icons/mocha/spwn.svg +7 -0
- package/client/catppuccin-icons/mocha/squirrel.svg +4 -0
- package/client/catppuccin-icons/mocha/stackblitz.svg +3 -0
- package/client/catppuccin-icons/mocha/stata.svg +4 -0
- package/client/catppuccin-icons/mocha/stencil.svg +3 -0
- package/client/catppuccin-icons/mocha/stitches.svg +7 -0
- package/client/catppuccin-icons/mocha/storybook-svelte.svg +6 -0
- package/client/catppuccin-icons/mocha/storybook-vue.svg +6 -0
- package/client/catppuccin-icons/mocha/storybook.svg +6 -0
- package/client/catppuccin-icons/mocha/stylelint-ignore.svg +7 -0
- package/client/catppuccin-icons/mocha/stylelint.svg +7 -0
- package/client/catppuccin-icons/mocha/stylua-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/stylua.svg +7 -0
- package/client/catppuccin-icons/mocha/sublime.svg +3 -0
- package/client/catppuccin-icons/mocha/super-collider.svg +3 -0
- package/client/catppuccin-icons/mocha/svelte-config.svg +6 -0
- package/client/catppuccin-icons/mocha/svelte.svg +6 -0
- package/client/catppuccin-icons/mocha/svg.svg +3 -0
- package/client/catppuccin-icons/mocha/swift.svg +3 -0
- package/client/catppuccin-icons/mocha/swiftformat.svg +4 -0
- package/client/catppuccin-icons/mocha/symlink.svg +5 -0
- package/client/catppuccin-icons/mocha/tailwind.svg +3 -0
- package/client/catppuccin-icons/mocha/taskfile.svg +3 -0
- package/client/catppuccin-icons/mocha/tauri-ignore.svg +6 -0
- package/client/catppuccin-icons/mocha/tauri.svg +8 -0
- package/client/catppuccin-icons/mocha/terraform.svg +3 -0
- package/client/catppuccin-icons/mocha/text.svg +6 -0
- package/client/catppuccin-icons/mocha/todo.svg +6 -0
- package/client/catppuccin-icons/mocha/toml.svg +3 -0
- package/client/catppuccin-icons/mocha/turbo.svg +10 -0
- package/client/catppuccin-icons/mocha/twig.svg +4 -0
- package/client/catppuccin-icons/mocha/twine.svg +6 -0
- package/client/catppuccin-icons/mocha/typescript-config.svg +7 -0
- package/client/catppuccin-icons/mocha/typescript-def.svg +7 -0
- package/client/catppuccin-icons/mocha/typescript-react.svg +8 -0
- package/client/catppuccin-icons/mocha/typescript-test.svg +3 -0
- package/client/catppuccin-icons/mocha/typescript.svg +6 -0
- package/client/catppuccin-icons/mocha/typst.svg +3 -0
- package/client/catppuccin-icons/mocha/unity.svg +3 -0
- package/client/catppuccin-icons/mocha/unocss.svg +6 -0
- package/client/catppuccin-icons/mocha/url.svg +3 -0
- package/client/catppuccin-icons/mocha/uv.svg +3 -0
- package/client/catppuccin-icons/mocha/v.svg +6 -0
- package/client/catppuccin-icons/mocha/vala.svg +3 -0
- package/client/catppuccin-icons/mocha/vanilla-extract.svg +4 -0
- package/client/catppuccin-icons/mocha/vapi.svg +3 -0
- package/client/catppuccin-icons/mocha/vento.svg +5 -0
- package/client/catppuccin-icons/mocha/vercel-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/vercel.svg +3 -0
- package/client/catppuccin-icons/mocha/verilog.svg +6 -0
- package/client/catppuccin-icons/mocha/vhs.svg +3 -0
- package/client/catppuccin-icons/mocha/video.svg +6 -0
- package/client/catppuccin-icons/mocha/vim.svg +3 -0
- package/client/catppuccin-icons/mocha/visual-studio.svg +3 -0
- package/client/catppuccin-icons/mocha/vital.svg +6 -0
- package/client/catppuccin-icons/mocha/vite.svg +6 -0
- package/client/catppuccin-icons/mocha/vitest.svg +6 -0
- package/client/catppuccin-icons/mocha/vs-codium.svg +8 -0
- package/client/catppuccin-icons/mocha/vscode-ignore.svg +3 -0
- package/client/catppuccin-icons/mocha/vscode.svg +3 -0
- package/client/catppuccin-icons/mocha/vue-config.svg +6 -0
- package/client/catppuccin-icons/mocha/vue.svg +6 -0
- package/client/catppuccin-icons/mocha/wally.svg +27 -0
- package/client/catppuccin-icons/mocha/web-assembly.svg +7 -0
- package/client/catppuccin-icons/mocha/webpack.svg +7 -0
- package/client/catppuccin-icons/mocha/windi.svg +3 -0
- package/client/catppuccin-icons/mocha/workflow.svg +3 -0
- package/client/catppuccin-icons/mocha/wrangler.svg +4 -0
- package/client/catppuccin-icons/mocha/wxt.svg +3 -0
- package/client/catppuccin-icons/mocha/xaml.svg +8 -0
- package/client/catppuccin-icons/mocha/xcode.svg +7 -0
- package/client/catppuccin-icons/mocha/xmake.svg +7 -0
- package/client/catppuccin-icons/mocha/xml.svg +3 -0
- package/client/catppuccin-icons/mocha/yaml.svg +3 -0
- package/client/catppuccin-icons/mocha/yarn-lock.svg +7 -0
- package/client/catppuccin-icons/mocha/yarn.svg +6 -0
- package/client/catppuccin-icons/mocha/zap.svg +3 -0
- package/client/catppuccin-icons/mocha/zig.svg +3 -0
- package/client/catppuccin-icons/mocha/zip.svg +3 -0
- package/client/icons/apple-touch-icon.png +0 -0
- package/client/icons/icon-192.png +0 -0
- package/client/icons/icon-512.png +0 -0
- package/client/index.html +66 -0
- package/client/manifest.webmanifest +27 -0
- package/client/offline.html +83 -0
- package/client/sw.js +93 -0
- package/dist/args.d.ts +30 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +67 -0
- package/dist/args.js.map +1 -0
- package/dist/commands/down.d.ts +7 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +44 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/host-runner.d.ts +47 -0
- package/dist/commands/host-runner.d.ts.map +1 -0
- package/dist/commands/host-runner.js +302 -0
- package/dist/commands/host-runner.js.map +1 -0
- package/dist/commands/host.d.ts +7 -0
- package/dist/commands/host.d.ts.map +1 -0
- package/dist/commands/host.js +30 -0
- package/dist/commands/host.js.map +1 -0
- package/dist/commands/sessiond-foreground.d.ts +7 -0
- package/dist/commands/sessiond-foreground.d.ts.map +1 -0
- package/dist/commands/sessiond-foreground.js +17 -0
- package/dist/commands/sessiond-foreground.js.map +1 -0
- package/dist/commands/start.d.ts +7 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +30 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +34 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +8 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +12 -0
- package/dist/log.js.map +1 -0
- package/dist/paths.d.ts +29 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +100 -0
- package/dist/paths.js.map +1 -0
- package/dist/probe.d.ts +97 -0
- package/dist/probe.d.ts.map +1 -0
- package/dist/probe.js +214 -0
- package/dist/probe.js.map +1 -0
- package/dist/secret.d.ts +24 -0
- package/dist/secret.d.ts.map +1 -0
- package/dist/secret.js +55 -0
- package/dist/secret.js.map +1 -0
- package/dist/supervise.d.ts +131 -0
- package/dist/supervise.d.ts.map +1 -0
- package/dist/supervise.js +453 -0
- package/dist/supervise.js.map +1 -0
- package/package.json +36 -0
package/dist/log.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single brand namespace for all user-visible CLI output. Every line is
|
|
3
|
+
* prefixed `[pix]` so logs/errors are unambiguous regardless of which process
|
|
4
|
+
* emitted them.
|
|
5
|
+
*/
|
|
6
|
+
export function pixLog(message) {
|
|
7
|
+
console.log(`[pix] ${message}`);
|
|
8
|
+
}
|
|
9
|
+
export function pixErr(message) {
|
|
10
|
+
console.error(`[pix] ${message}`);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;AACpC,CAAC"}
|
package/dist/paths.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Environment variable overriding the Vite client dist location. */
|
|
2
|
+
export declare const CLIENT_DIST_ENV = "PIX_CLIENT_DIST";
|
|
3
|
+
/**
|
|
4
|
+
* Locate the pix workspace root by walking up from `fromUrl` until a manifest
|
|
5
|
+
* declares the `packages/*` workspace. Robust to the CLI being reached from
|
|
6
|
+
* `dist/`, `dist-test/`, or a bin shim, so client-dist resolution never depends
|
|
7
|
+
* on the process cwd.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveWorkspaceRoot(fromUrl?: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Locate the pix-cli package root (the directory holding `bin/` and this
|
|
12
|
+
* package's manifest). Used to spawn the sibling `pix-sessiond` bin reliably.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveCliPackageRoot(fromUrl?: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the absolute path to the built Vite client dist. Precedence:
|
|
17
|
+
* 1. `PIX_CLIENT_DIST`
|
|
18
|
+
* 2. `<workspace-root>/packages/client/dist` (workspace source layout)
|
|
19
|
+
* 3. `<cli-package-root>/client` (REL1 self-contained bundle: the built
|
|
20
|
+
* Vite dist is shipped inside the release tarball so `pix start` serves
|
|
21
|
+
* the UI from a standalone `npm i -g` install with no workspace root)
|
|
22
|
+
*
|
|
23
|
+
* Fails closed when `index.html` is absent so the host never silently serves an
|
|
24
|
+
* empty document root. Returns an absolute path.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveClientDist(): string;
|
|
27
|
+
/** Path to the foreground `pix-sessiond` bin, resolved from this package. */
|
|
28
|
+
export declare function resolveSessiondBin(): string;
|
|
29
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAIA,qEAAqE;AACrE,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAwBjD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAwB,GAAG,MAAM,CAU9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAAwB,GAAG,MAAM,CAa/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA+B1C;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
package/dist/paths.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
/** Environment variable overriding the Vite client dist location. */
|
|
5
|
+
export const CLIENT_DIST_ENV = "PIX_CLIENT_DIST";
|
|
6
|
+
function readManifest(path) {
|
|
7
|
+
try {
|
|
8
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function isWorkspaceRoot(dir) {
|
|
15
|
+
const manifest = readManifest(join(dir, "package.json"));
|
|
16
|
+
return (manifest !== undefined &&
|
|
17
|
+
Array.isArray(manifest.workspaces) &&
|
|
18
|
+
manifest.workspaces.some((p) => p === "packages/*"));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Locate the pix workspace root by walking up from `fromUrl` until a manifest
|
|
22
|
+
* declares the `packages/*` workspace. Robust to the CLI being reached from
|
|
23
|
+
* `dist/`, `dist-test/`, or a bin shim, so client-dist resolution never depends
|
|
24
|
+
* on the process cwd.
|
|
25
|
+
*/
|
|
26
|
+
export function resolveWorkspaceRoot(fromUrl = import.meta.url) {
|
|
27
|
+
let dir = dirname(fileURLToPath(fromUrl));
|
|
28
|
+
while (true) {
|
|
29
|
+
if (isWorkspaceRoot(dir))
|
|
30
|
+
return dir;
|
|
31
|
+
const parent = dirname(dir);
|
|
32
|
+
if (parent === dir) {
|
|
33
|
+
throw new Error("[pix] could not locate pix workspace root");
|
|
34
|
+
}
|
|
35
|
+
dir = parent;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Locate the pix-cli package root (the directory holding `bin/` and this
|
|
40
|
+
* package's manifest). Used to spawn the sibling `pix-sessiond` bin reliably.
|
|
41
|
+
*/
|
|
42
|
+
export function resolveCliPackageRoot(fromUrl = import.meta.url) {
|
|
43
|
+
let dir = dirname(fileURLToPath(fromUrl));
|
|
44
|
+
while (true) {
|
|
45
|
+
const manifest = readManifest(join(dir, "package.json"));
|
|
46
|
+
if (manifest?.name === "@fffattiger/pix-cli" && existsSync(join(dir, "bin"))) {
|
|
47
|
+
return dir;
|
|
48
|
+
}
|
|
49
|
+
const parent = dirname(dir);
|
|
50
|
+
if (parent === dir) {
|
|
51
|
+
throw new Error("[pix] could not locate pix-cli package root");
|
|
52
|
+
}
|
|
53
|
+
dir = parent;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolve the absolute path to the built Vite client dist. Precedence:
|
|
58
|
+
* 1. `PIX_CLIENT_DIST`
|
|
59
|
+
* 2. `<workspace-root>/packages/client/dist` (workspace source layout)
|
|
60
|
+
* 3. `<cli-package-root>/client` (REL1 self-contained bundle: the built
|
|
61
|
+
* Vite dist is shipped inside the release tarball so `pix start` serves
|
|
62
|
+
* the UI from a standalone `npm i -g` install with no workspace root)
|
|
63
|
+
*
|
|
64
|
+
* Fails closed when `index.html` is absent so the host never silently serves an
|
|
65
|
+
* empty document root. Returns an absolute path.
|
|
66
|
+
*/
|
|
67
|
+
export function resolveClientDist() {
|
|
68
|
+
const override = process.env[CLIENT_DIST_ENV];
|
|
69
|
+
if (override !== undefined && override.length > 0) {
|
|
70
|
+
if (!existsSync(join(override, "index.html"))) {
|
|
71
|
+
throw new Error(`[pix] client dist not found (index.html missing): ${override}\n` +
|
|
72
|
+
"[pix] build the client first: npm run build");
|
|
73
|
+
}
|
|
74
|
+
return resolve(override);
|
|
75
|
+
}
|
|
76
|
+
// Workspace source layout: <workspace-root>/packages/client/dist. Missing or
|
|
77
|
+
// absent workspace root falls through to the bundle layout below.
|
|
78
|
+
try {
|
|
79
|
+
const workspaceCandidate = join(resolveWorkspaceRoot(), "packages", "client", "dist");
|
|
80
|
+
if (existsSync(join(workspaceCandidate, "index.html"))) {
|
|
81
|
+
return resolve(workspaceCandidate);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// no workspace root (standalone REL1 bundle install) — fall through
|
|
86
|
+
}
|
|
87
|
+
// REL1 bundle layout: <cli-package-root>/client (built Vite dist shipped in
|
|
88
|
+
// the self-contained release tarball).
|
|
89
|
+
const bundleCandidate = join(resolveCliPackageRoot(), "client");
|
|
90
|
+
if (!existsSync(join(bundleCandidate, "index.html"))) {
|
|
91
|
+
throw new Error(`[pix] client dist not found (index.html missing): ${bundleCandidate}\n` +
|
|
92
|
+
"[pix] build the client first: npm run build (or set PIX_CLIENT_DIST)");
|
|
93
|
+
}
|
|
94
|
+
return resolve(bundleCandidate);
|
|
95
|
+
}
|
|
96
|
+
/** Path to the foreground `pix-sessiond` bin, resolved from this package. */
|
|
97
|
+
export function resolveSessiondBin() {
|
|
98
|
+
return join(resolveCliPackageRoot(), "bin", "pix-sessiond.mjs");
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/probe.d.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type SessiondBuildIncompatibilityReason } from "@fffattiger/pix-protocol";
|
|
2
|
+
import type { SessiondProbe } from "@fffattiger/pix-host";
|
|
3
|
+
import type { SessiondPaths } from "@fffattiger/pix-sessiond/control";
|
|
4
|
+
/**
|
|
5
|
+
* Ping a sessiond instance over its local RPC socket. Returns a boolean —
|
|
6
|
+
* never throws — because callers (readiness polling, capability probes, status)
|
|
7
|
+
* only need to know reachability, not the failure reason.
|
|
8
|
+
*/
|
|
9
|
+
export declare function pingSessiond(endpoint: string, secret: string, timeoutMs?: number): Promise<boolean>;
|
|
10
|
+
/**
|
|
11
|
+
* Why a daemon's protocol version could not be positively verified. `timeout`
|
|
12
|
+
* and `unreachable` are transient (retryable); `auth` and `malformed` are fixed
|
|
13
|
+
* problems an operator must resolve; `unsupported_version` is a positively
|
|
14
|
+
* authenticated but unsupported protocol version (future major, version 0, or
|
|
15
|
+
* any other value) that MUST be preserved — it is never replaceable. In EVERY
|
|
16
|
+
* state the running daemon must be preserved — an unverified daemon is never
|
|
17
|
+
* shut down or replaced.
|
|
18
|
+
*/
|
|
19
|
+
export type UnverifiableReason = "timeout" | "auth" | "malformed" | "unreachable" | "unsupported_version" | "unknown";
|
|
20
|
+
/**
|
|
21
|
+
* The ONLY protocol version that may be shut down/replaced via the narrow
|
|
22
|
+
* legacy (v1) control envelope. `knownLegacy` is EXACTLY this version and no
|
|
23
|
+
* other: a future protocol version (e.g. 3 when current is 2), version 0, or
|
|
24
|
+
* any other unsupported numeric is never replaceable via the v1-only control
|
|
25
|
+
* path and is classified unverifiable (preserved).
|
|
26
|
+
*/
|
|
27
|
+
export declare const LEGACY_PROTOCOL_VERSION: 1;
|
|
28
|
+
/**
|
|
29
|
+
* Explicit sessiond compatibility state (Protocol v2 stale-daemon safety +
|
|
30
|
+
* Phase 7A build fence).
|
|
31
|
+
*
|
|
32
|
+
* - `current`: a POSITIVELY authenticated `system.hello` returned the current
|
|
33
|
+
* protocol version AND a build identity that passes the explicit Phase 7A
|
|
34
|
+
* compatibility matrix (product, protocol, sessiond/Worker/adapter contract
|
|
35
|
+
* generations, capability fingerprint — see
|
|
36
|
+
* `packages/protocol/src/build.ts`) ⇒ the daemon may be reused as-is.
|
|
37
|
+
* - `staleBuild`: a POSITIVELY authenticated current-protocol daemon whose
|
|
38
|
+
* build identity is missing (pre-fence build) or fails the matrix. The SAME
|
|
39
|
+
* protocol major does NOT mean implementation compatible, so the daemon is
|
|
40
|
+
* never silently reused; it MAY be replaced — but only through the
|
|
41
|
+
* authenticated, instance-fenced shutdown path, never via a PID signal.
|
|
42
|
+
* - `knownLegacy`: a POSITIVELY authenticated `system.hello` (over the narrow
|
|
43
|
+
* legacy envelope, since the current client cannot parse a v1 response)
|
|
44
|
+
* returned EXACTLY {@link LEGACY_PROTOCOL_VERSION} (v1) ⇒ the daemon is stale
|
|
45
|
+
* and MAY be shut down/replaced — but only through the authenticated,
|
|
46
|
+
* instance-fenced shutdown path, never via a PID signal.
|
|
47
|
+
* - `unverifiable`: the daemon is NOT positively authenticated as current,
|
|
48
|
+
* staleBuild, or knownLegacy — transient hello timeout, auth failure,
|
|
49
|
+
* malformed/unparseable response (including a hello carrying a MALFORMED
|
|
50
|
+
* build block, which fails the strict hello schema), unreachable, or a
|
|
51
|
+
* positively authenticated but UNSUPPORTED version (future major / 0 /
|
|
52
|
+
* other numeric). The daemon MUST be preserved; callers return a retryable
|
|
53
|
+
* or fixed operator error instead of touching authority.
|
|
54
|
+
*/
|
|
55
|
+
export type SessiondCompatibility = {
|
|
56
|
+
state: "current";
|
|
57
|
+
} | {
|
|
58
|
+
state: "staleBuild";
|
|
59
|
+
reason: SessiondBuildIncompatibilityReason;
|
|
60
|
+
} | {
|
|
61
|
+
state: "knownLegacy";
|
|
62
|
+
version: number;
|
|
63
|
+
} | {
|
|
64
|
+
state: "unverifiable";
|
|
65
|
+
reason: UnverifiableReason;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Resolve the explicit sessiond compatibility state via authenticated
|
|
69
|
+
* `system.hello`. Protocol v2 stale-daemon safety + the Phase 7A build fence:
|
|
70
|
+
* this is the ONE place the CLI decides whether a running daemon is current,
|
|
71
|
+
* stale-build, known-legacy, or unverifiable, so `ensureSessiond` can reuse,
|
|
72
|
+
* replace, or preserve authority without ever guessing. Never throws.
|
|
73
|
+
*/
|
|
74
|
+
export declare function probeSessiondCompatibility(endpoint: string, secret: string, timeoutMs?: number): Promise<SessiondCompatibility>;
|
|
75
|
+
/**
|
|
76
|
+
* Resolve the authenticated protocol version of a sessiond via `system.hello`.
|
|
77
|
+
* Returns the daemon's negotiated protocolVersion, or undefined when it cannot
|
|
78
|
+
* be positively verified (auth / timeout / unreachable / malformed). Protocol
|
|
79
|
+
* v2 stale-daemon safety: callers use this to refuse silently reusing a
|
|
80
|
+
* pingable v1 daemon. The raw version is never echoed into an operator-facing
|
|
81
|
+
* error.
|
|
82
|
+
*/
|
|
83
|
+
export declare function helloProtocolVersion(endpoint: string, secret: string, timeoutMs?: number): Promise<number | undefined>;
|
|
84
|
+
/** True only when the authenticated daemon is POSITIVELY current. */
|
|
85
|
+
export declare function isProtocolCurrent(endpoint: string, secret: string, timeoutMs?: number): Promise<boolean>;
|
|
86
|
+
/** Authenticated reachability probe for the one supported stale protocol. */
|
|
87
|
+
export declare function pingLegacyV1Sessiond(endpoint: string, secret: string, timeoutMs?: number): Promise<boolean>;
|
|
88
|
+
/** Authenticated, instance-fenced shutdown for the one supported stale protocol. */
|
|
89
|
+
export declare function shutdownLegacyV1Sessiond(endpoint: string, secret: string, instanceId: string, timeoutMs?: number): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Build a host {@link SessiondProbe} backed by a real RPC ping against the
|
|
92
|
+
* resolved sessiond socket. The probe reads the secret read-only; when no
|
|
93
|
+
* secret exists yet it reports unavailable rather than throwing, so /v1/health
|
|
94
|
+
* stays honest while a daemon is mid-bootstrap.
|
|
95
|
+
*/
|
|
96
|
+
export declare function createSessiondProbe(paths: SessiondPaths): SessiondProbe;
|
|
97
|
+
//# sourceMappingURL=probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoE,KAAK,kCAAkC,EAAE,MAAM,0BAA0B,CAAC;AACrJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,MAAM,GACN,WAAW,GACX,aAAa,GACb,qBAAqB,GACrB,SAAS,CAAC;AAEd;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAG,CAAU,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,kCAAkC,CAAA;CAAE,GACnE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAgB1D;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,SAAQ,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAwDhC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,SAAQ,GAChB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B;AAED,qEAAqE;AACrE,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAyED,6EAA6E;AAC7E,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhH;AAED,oFAAoF;AACpF,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAQvE"}
|
package/dist/probe.js
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { createConnection } from "node:net";
|
|
3
|
+
import { SessiondRpcClient } from "@fffattiger/pix-sessiond/client";
|
|
4
|
+
import { SessiondError } from "@fffattiger/pix-sessiond";
|
|
5
|
+
import { PROTOCOL_VERSION, SESSIOND_BUILD_IDENTITY, evaluateSessiondBuild } from "@fffattiger/pix-protocol";
|
|
6
|
+
import { readLocalSecret } from "./secret.js";
|
|
7
|
+
/**
|
|
8
|
+
* Ping a sessiond instance over its local RPC socket. Returns a boolean —
|
|
9
|
+
* never throws — because callers (readiness polling, capability probes, status)
|
|
10
|
+
* only need to know reachability, not the failure reason.
|
|
11
|
+
*/
|
|
12
|
+
export async function pingSessiond(endpoint, secret, timeoutMs = 2_000) {
|
|
13
|
+
const client = new SessiondRpcClient({ endpoint, secret, timeoutMs });
|
|
14
|
+
try {
|
|
15
|
+
const result = await client.call("system.ping", {});
|
|
16
|
+
return result.pong === true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The ONLY protocol version that may be shut down/replaced via the narrow
|
|
24
|
+
* legacy (v1) control envelope. `knownLegacy` is EXACTLY this version and no
|
|
25
|
+
* other: a future protocol version (e.g. 3 when current is 2), version 0, or
|
|
26
|
+
* any other unsupported numeric is never replaceable via the v1-only control
|
|
27
|
+
* path and is classified unverifiable (preserved).
|
|
28
|
+
*/
|
|
29
|
+
export const LEGACY_PROTOCOL_VERSION = 1;
|
|
30
|
+
/** Map a current-client hello failure onto the operator-facing reason. */
|
|
31
|
+
function classifyUnverifiableReason(error) {
|
|
32
|
+
if (error instanceof SessiondError) {
|
|
33
|
+
switch (error.code) {
|
|
34
|
+
case "timeout": return "timeout";
|
|
35
|
+
case "unauthorized": return "auth";
|
|
36
|
+
case "invalid_request": return "malformed";
|
|
37
|
+
case "unavailable": return "unreachable";
|
|
38
|
+
default: return "unknown";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return "unknown";
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Resolve the explicit sessiond compatibility state via authenticated
|
|
45
|
+
* `system.hello`. Protocol v2 stale-daemon safety + the Phase 7A build fence:
|
|
46
|
+
* this is the ONE place the CLI decides whether a running daemon is current,
|
|
47
|
+
* stale-build, known-legacy, or unverifiable, so `ensureSessiond` can reuse,
|
|
48
|
+
* replace, or preserve authority without ever guessing. Never throws.
|
|
49
|
+
*/
|
|
50
|
+
export async function probeSessiondCompatibility(endpoint, secret, timeoutMs = 2_000) {
|
|
51
|
+
// 1. Try the current client first. A schema-valid response can only carry the
|
|
52
|
+
// current protocol version, so success is a positively authenticated
|
|
53
|
+
// current daemon. A v1 daemon (or any transient failure) surfaces here as
|
|
54
|
+
// an RPC error — never a bogus "current" answer.
|
|
55
|
+
// For a current-protocol daemon the Phase 7A build matrix then decides
|
|
56
|
+
// whether that daemon's BUILD is reusable — same protocol major alone is never
|
|
57
|
+
// sufficient. A missing build block (pre-fence dist) or a value mismatch
|
|
58
|
+
// classifies as staleBuild (positively authenticated, replaceable); a
|
|
59
|
+
// MALFORMED block fails the strict hello schema below and surfaces as
|
|
60
|
+
// unverifiable (preserved — never destroyed on a guess).
|
|
61
|
+
let currentError;
|
|
62
|
+
try {
|
|
63
|
+
const result = await new SessiondRpcClient({ endpoint, secret, timeoutMs }).call("system.hello", {});
|
|
64
|
+
if (result.protocolVersion !== PROTOCOL_VERSION) {
|
|
65
|
+
currentError = new Error("unexpected system.hello protocol version");
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const build = evaluateSessiondBuild(result.build, SESSIOND_BUILD_IDENTITY);
|
|
69
|
+
if (build.state === "compatible")
|
|
70
|
+
return { state: "current" };
|
|
71
|
+
return { state: "staleBuild", reason: build.reason };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
currentError = error;
|
|
76
|
+
}
|
|
77
|
+
// 2. The current client cannot schema-parse a legacy (v1) response envelope.
|
|
78
|
+
// Retry the SAME authenticated hello over the narrow legacy envelope.
|
|
79
|
+
const legacy = await legacyV1ControlCall(endpoint, secret, "system.hello", {}, timeoutMs);
|
|
80
|
+
if (legacy.ok) {
|
|
81
|
+
const version = legacy.result.protocolVersion;
|
|
82
|
+
// A current-version answer over the LEGACY envelope can never be accepted
|
|
83
|
+
// as "current": this client cannot evaluate that daemon's Phase 7A build
|
|
84
|
+
// identity over the legacy envelope, and a current-protocol daemon has no
|
|
85
|
+
// business answering it. Classify unverifiable (preserved), never reused.
|
|
86
|
+
if (version === PROTOCOL_VERSION) {
|
|
87
|
+
return { state: "unverifiable", reason: "malformed" };
|
|
88
|
+
}
|
|
89
|
+
// knownLegacy is EXACTLY the allowlisted legacy version and nothing else.
|
|
90
|
+
if (version === LEGACY_PROTOCOL_VERSION) {
|
|
91
|
+
return { state: "knownLegacy", version: LEGACY_PROTOCOL_VERSION };
|
|
92
|
+
}
|
|
93
|
+
if (typeof version === "number") {
|
|
94
|
+
if (Number.isSafeInteger(version)) {
|
|
95
|
+
// A positively authenticated but unsupported numeric version (future
|
|
96
|
+
// major, 0, …): NOT replaceable via the v1-only control path — preserve.
|
|
97
|
+
return { state: "unverifiable", reason: "unsupported_version" };
|
|
98
|
+
}
|
|
99
|
+
// Non-integer / non-finite numeric version is a malformed answer.
|
|
100
|
+
return { state: "unverifiable", reason: "malformed" };
|
|
101
|
+
}
|
|
102
|
+
// A non-numeric protocolVersion in an otherwise-valid response is malformed.
|
|
103
|
+
return { state: "unverifiable", reason: "malformed" };
|
|
104
|
+
}
|
|
105
|
+
// 3. Neither surface could positively verify the daemon. Preserve it; the
|
|
106
|
+
// caller turns this into a retryable (timeout/unreachable) or fixed
|
|
107
|
+
// (auth/malformed) operator error — never a shutdown.
|
|
108
|
+
return { state: "unverifiable", reason: classifyUnverifiableReason(currentError) };
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Resolve the authenticated protocol version of a sessiond via `system.hello`.
|
|
112
|
+
* Returns the daemon's negotiated protocolVersion, or undefined when it cannot
|
|
113
|
+
* be positively verified (auth / timeout / unreachable / malformed). Protocol
|
|
114
|
+
* v2 stale-daemon safety: callers use this to refuse silently reusing a
|
|
115
|
+
* pingable v1 daemon. The raw version is never echoed into an operator-facing
|
|
116
|
+
* error.
|
|
117
|
+
*/
|
|
118
|
+
export async function helloProtocolVersion(endpoint, secret, timeoutMs = 2_000) {
|
|
119
|
+
const compat = await probeSessiondCompatibility(endpoint, secret, timeoutMs);
|
|
120
|
+
if (compat.state === "current")
|
|
121
|
+
return PROTOCOL_VERSION;
|
|
122
|
+
if (compat.state === "knownLegacy")
|
|
123
|
+
return compat.version;
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
/** True only when the authenticated daemon is POSITIVELY current. */
|
|
127
|
+
export async function isProtocolCurrent(endpoint, secret, timeoutMs = 2_000) {
|
|
128
|
+
const compat = await probeSessiondCompatibility(endpoint, secret, timeoutMs);
|
|
129
|
+
return compat.state === "current";
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Narrow Protocol-v1 control call used ONLY to identify and replace an owned
|
|
133
|
+
* stale daemon during the coordinated v2 rollout. It deliberately does not
|
|
134
|
+
* import or accept old product DTOs: AUTH plus the exact lock instance id
|
|
135
|
+
* remains the authority, and responses are checked only for the correlated
|
|
136
|
+
* fixed control method. A failed call never throws; it reports the reason.
|
|
137
|
+
*/
|
|
138
|
+
async function legacyV1ControlCall(endpoint, secret, method, params, timeoutMs) {
|
|
139
|
+
const id = randomUUID();
|
|
140
|
+
return new Promise((resolve) => {
|
|
141
|
+
const socket = createConnection(endpoint);
|
|
142
|
+
let buffered = "";
|
|
143
|
+
let authenticated = false;
|
|
144
|
+
let settled = false;
|
|
145
|
+
const finish = (outcome) => {
|
|
146
|
+
if (settled)
|
|
147
|
+
return;
|
|
148
|
+
settled = true;
|
|
149
|
+
clearTimeout(timer);
|
|
150
|
+
socket.destroy();
|
|
151
|
+
resolve(outcome);
|
|
152
|
+
};
|
|
153
|
+
const timer = setTimeout(() => finish({ ok: false, reason: "timeout" }), timeoutMs);
|
|
154
|
+
socket.on("connect", () => socket.write(`AUTH ${secret}\n`));
|
|
155
|
+
socket.on("data", (chunk) => {
|
|
156
|
+
buffered += chunk.toString("utf8");
|
|
157
|
+
if (buffered.length > 64 * 1024)
|
|
158
|
+
return finish({ ok: false, reason: "malformed" });
|
|
159
|
+
while (true) {
|
|
160
|
+
const newline = buffered.indexOf("\n");
|
|
161
|
+
if (newline < 0)
|
|
162
|
+
return;
|
|
163
|
+
const line = buffered.slice(0, newline);
|
|
164
|
+
buffered = buffered.slice(newline + 1);
|
|
165
|
+
if (!authenticated) {
|
|
166
|
+
if (line !== "OK")
|
|
167
|
+
return finish({ ok: false, reason: "auth" });
|
|
168
|
+
authenticated = true;
|
|
169
|
+
socket.write(`${JSON.stringify({ protocolVersion: 1, id, method, params })}\n`);
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
try {
|
|
173
|
+
const response = JSON.parse(line);
|
|
174
|
+
if (response.id !== id || response.method !== method || response.ok !== true) {
|
|
175
|
+
return finish({ ok: false, reason: "malformed" });
|
|
176
|
+
}
|
|
177
|
+
return finish({ ok: true, result: response.result ?? {} });
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
return finish({ ok: false, reason: "malformed" });
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
socket.on("error", () => finish({ ok: false, reason: "unreachable" }));
|
|
185
|
+
socket.on("close", () => finish({ ok: false, reason: "unreachable" }));
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/** Authenticated reachability probe for the one supported stale protocol. */
|
|
189
|
+
export async function pingLegacyV1Sessiond(endpoint, secret, timeoutMs = 2_000) {
|
|
190
|
+
const outcome = await legacyV1ControlCall(endpoint, secret, "system.ping", {}, timeoutMs);
|
|
191
|
+
return outcome.ok && outcome.result.pong === true;
|
|
192
|
+
}
|
|
193
|
+
/** Authenticated, instance-fenced shutdown for the one supported stale protocol. */
|
|
194
|
+
export async function shutdownLegacyV1Sessiond(endpoint, secret, instanceId, timeoutMs = 2_000) {
|
|
195
|
+
const outcome = await legacyV1ControlCall(endpoint, secret, "system.shutdown", { instanceId }, timeoutMs);
|
|
196
|
+
return outcome.ok && outcome.result.accepted === true;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Build a host {@link SessiondProbe} backed by a real RPC ping against the
|
|
200
|
+
* resolved sessiond socket. The probe reads the secret read-only; when no
|
|
201
|
+
* secret exists yet it reports unavailable rather than throwing, so /v1/health
|
|
202
|
+
* stays honest while a daemon is mid-bootstrap.
|
|
203
|
+
*/
|
|
204
|
+
export function createSessiondProbe(paths) {
|
|
205
|
+
return {
|
|
206
|
+
async isAvailable() {
|
|
207
|
+
const secret = await readLocalSecret(paths.secretFile);
|
|
208
|
+
if (secret === undefined)
|
|
209
|
+
return false;
|
|
210
|
+
return pingSessiond(paths.endpoint, secret);
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
|
package/dist/secret.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimum trimmed length of an accepted sessiond secret. The daemon publishes a
|
|
3
|
+
* base64url encoding of 32 random bytes (43 chars); requiring >= 32 rejects
|
|
4
|
+
* debris/partial files while staying compatible with the publisher.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MIN_SECRET_LENGTH = 32;
|
|
7
|
+
export declare class UnsafeSecretError extends Error {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Read the sessiond local secret in a strictly read-only, fail-closed way.
|
|
12
|
+
*
|
|
13
|
+
* Guarantees (B4 supervision contract):
|
|
14
|
+
* - Never creates, writes, or chmods the file. The daemon owns publication.
|
|
15
|
+
* - Rejects symlinks and non-regular files via `lstat` (no follow).
|
|
16
|
+
* - Requires the trimmed secret to be at least {@link MIN_SECRET_LENGTH}
|
|
17
|
+
* chars, so a 0-byte or partial file cannot be used as a credential.
|
|
18
|
+
*
|
|
19
|
+
* Returns `undefined` when the file does not exist yet (the daemon has not
|
|
20
|
+
* published it); throws {@link UnsafeSecretError} for an unsafe/existing-but-
|
|
21
|
+
* malformed file. Network callers must treat `undefined` as "not ready".
|
|
22
|
+
*/
|
|
23
|
+
export declare function readLocalSecret(secretFile: string): Promise<string | undefined>;
|
|
24
|
+
//# sourceMappingURL=secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../src/secret.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuBrF"}
|
package/dist/secret.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { lstat, readFile } from "node:fs/promises";
|
|
2
|
+
/**
|
|
3
|
+
* Minimum trimmed length of an accepted sessiond secret. The daemon publishes a
|
|
4
|
+
* base64url encoding of 32 random bytes (43 chars); requiring >= 32 rejects
|
|
5
|
+
* debris/partial files while staying compatible with the publisher.
|
|
6
|
+
*/
|
|
7
|
+
export const MIN_SECRET_LENGTH = 32;
|
|
8
|
+
export class UnsafeSecretError extends Error {
|
|
9
|
+
constructor(message) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = "UnsafeSecretError";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Read the sessiond local secret in a strictly read-only, fail-closed way.
|
|
16
|
+
*
|
|
17
|
+
* Guarantees (B4 supervision contract):
|
|
18
|
+
* - Never creates, writes, or chmods the file. The daemon owns publication.
|
|
19
|
+
* - Rejects symlinks and non-regular files via `lstat` (no follow).
|
|
20
|
+
* - Requires the trimmed secret to be at least {@link MIN_SECRET_LENGTH}
|
|
21
|
+
* chars, so a 0-byte or partial file cannot be used as a credential.
|
|
22
|
+
*
|
|
23
|
+
* Returns `undefined` when the file does not exist yet (the daemon has not
|
|
24
|
+
* published it); throws {@link UnsafeSecretError} for an unsafe/existing-but-
|
|
25
|
+
* malformed file. Network callers must treat `undefined` as "not ready".
|
|
26
|
+
*/
|
|
27
|
+
export async function readLocalSecret(secretFile) {
|
|
28
|
+
let info;
|
|
29
|
+
try {
|
|
30
|
+
info = await lstat(secretFile);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
if (error.code === "ENOENT")
|
|
34
|
+
return undefined;
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
if (info.isSymbolicLink() || !info.isFile()) {
|
|
38
|
+
throw new UnsafeSecretError(`unsafe sessiond secret file (not a regular file): ${secretFile}`);
|
|
39
|
+
}
|
|
40
|
+
let raw;
|
|
41
|
+
try {
|
|
42
|
+
raw = await readFile(secretFile, "utf8");
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
if (error.code === "ENOENT")
|
|
46
|
+
return undefined;
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
const secret = raw.trim();
|
|
50
|
+
if (secret.length < MIN_SECRET_LENGTH) {
|
|
51
|
+
throw new UnsafeSecretError(`sessiond secret too short (${secret.length} < ${MIN_SECRET_LENGTH}): ${secretFile}`);
|
|
52
|
+
}
|
|
53
|
+
return secret;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../src/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,iBAAiB,CAAC,qDAAqD,UAAU,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACtC,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,MAAM,CAAC,MAAM,MAAM,iBAAiB,MAAM,UAAU,EAAE,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|