@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
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type ChildProcess } from "node:child_process";
|
|
2
|
+
import { type SessiondPaths } from "@fffattiger/pix-sessiond/control";
|
|
3
|
+
export interface ShutdownOptions {
|
|
4
|
+
/** Override the bounded shutdown wait (default 10s). Useful for tests. */
|
|
5
|
+
timeoutMs?: number;
|
|
6
|
+
}
|
|
7
|
+
export type ShutdownResult = {
|
|
8
|
+
action: "already-down";
|
|
9
|
+
pid: number | undefined;
|
|
10
|
+
} | {
|
|
11
|
+
action: "obstructed";
|
|
12
|
+
pid: number | undefined;
|
|
13
|
+
reason: string;
|
|
14
|
+
} | {
|
|
15
|
+
action: "terminated";
|
|
16
|
+
pid: number;
|
|
17
|
+
} | {
|
|
18
|
+
action: "failed";
|
|
19
|
+
pid: number;
|
|
20
|
+
reason: string;
|
|
21
|
+
};
|
|
22
|
+
export interface SessiondLocation {
|
|
23
|
+
directory: string;
|
|
24
|
+
endpoint: string;
|
|
25
|
+
paths: SessiondPaths;
|
|
26
|
+
}
|
|
27
|
+
export interface SessiondStatus {
|
|
28
|
+
/** A lock file names a live pid. */
|
|
29
|
+
alive: boolean;
|
|
30
|
+
/** That live instance also answers an RPC ping. */
|
|
31
|
+
pingable: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* When true, a daemon must NOT be spawned for this directory: some live or
|
|
34
|
+
* unsafe state blocks ownership (a live listener without a lock, an unsafe
|
|
35
|
+
* lock, or a live-but-unreachable pid).
|
|
36
|
+
*/
|
|
37
|
+
obstructed: boolean;
|
|
38
|
+
/** Human-readable reason when {@link obstructed} is true. */
|
|
39
|
+
obstruction: string | undefined;
|
|
40
|
+
pid: number | undefined;
|
|
41
|
+
instanceId: string | undefined;
|
|
42
|
+
directory: string;
|
|
43
|
+
endpoint: string;
|
|
44
|
+
}
|
|
45
|
+
export interface EnsureResult {
|
|
46
|
+
directory: string;
|
|
47
|
+
endpoint: string;
|
|
48
|
+
pid: number | undefined;
|
|
49
|
+
instanceId: string | undefined;
|
|
50
|
+
reused: boolean;
|
|
51
|
+
}
|
|
52
|
+
export type Logger = (message: string) => void;
|
|
53
|
+
/** Resolve the sessiond location for a (possibly env-overridden) directory. */
|
|
54
|
+
export declare function locateSessiond(directory?: string): SessiondLocation;
|
|
55
|
+
/**
|
|
56
|
+
* Inspect a (possibly running) sessiond without side effects. Reuse decisions
|
|
57
|
+
* must NOT rely on pid-aliveness alone: a recycled pid or a hung daemon would
|
|
58
|
+
* look "alive" but be unusable, so reachability is confirmed by a real ping.
|
|
59
|
+
* Fail-closed for spawn decisions: an unsafe lock, a live listener without a
|
|
60
|
+
* lock, an unsafe secret file, or a live-but-unreachable pid marks the
|
|
61
|
+
* directory as obstructed so callers never spawn a second daemon over it.
|
|
62
|
+
*/
|
|
63
|
+
export declare function inspectSessiond(directory?: string): Promise<SessiondStatus>;
|
|
64
|
+
/**
|
|
65
|
+
* Detached, unref'd spawn of the foreground `pix-sessiond` bin so the daemon
|
|
66
|
+
* survives the supervisor (host) process exiting. `stdio: "ignore"` +
|
|
67
|
+
* `windowsHide` keep it headless; `unref()` ensures the supervisor's event loop
|
|
68
|
+
* is not kept alive by the child handle.
|
|
69
|
+
*/
|
|
70
|
+
export declare function spawnSessiond(directory: string): ChildProcess;
|
|
71
|
+
/**
|
|
72
|
+
* Revalidate the probe→reuse decision (Phase 7A race fence): the EXACT
|
|
73
|
+
* instance the compatibility probe authenticated (pid + instanceId) must still
|
|
74
|
+
* own the lock and still answer a bounded authenticated ping at commit time.
|
|
75
|
+
* Deterministic and never throws: `false` means the observed instance is not
|
|
76
|
+
* provably current — the caller must re-decide (bounded) or fail closed; it
|
|
77
|
+
* must NEVER reuse or spawn over the directory on that guess.
|
|
78
|
+
*/
|
|
79
|
+
export declare function revalidateSessiondInstance(paths: SessiondPaths, observed: {
|
|
80
|
+
pid: number | undefined;
|
|
81
|
+
instanceId: string | undefined;
|
|
82
|
+
}, secret: string): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Ensure a pingable sessiond is running for `directory`. Reuses an existing,
|
|
85
|
+
* reachable instance ONLY when it is POSITIVELY authenticated AND passes the
|
|
86
|
+
* explicit Phase 7A build compatibility matrix (product, protocol, sessiond /
|
|
87
|
+
* Worker / adapter contract generations, and the deterministic capability
|
|
88
|
+
* fingerprint — the same protocol major is NEVER sufficient to reuse).
|
|
89
|
+
*
|
|
90
|
+
* Compatibility is classified into explicit states ({@link probeSessiondCompatibility}):
|
|
91
|
+
* - `current` ⇒ reuse as-is, but only after the probe→reuse decision is
|
|
92
|
+
* REVALIDATED against the exact lock instance (bounded race fence: a daemon
|
|
93
|
+
* replaced between probe and commit is never silently reused; at most
|
|
94
|
+
* {@link MAX_ENSURE_ATTEMPTS} bounded re-decisions, then a fixed operator
|
|
95
|
+
* error — never a spawn over unverifiable state).
|
|
96
|
+
* - `staleBuild` (current protocol, missing/failing build identity) and
|
|
97
|
+
* `knownLegacy` (positively authenticated protocol v1) ⇒ ordinary start/
|
|
98
|
+
* ensure MUST leave the live incompatible daemon intact (busy or idle;
|
|
99
|
+
* occupancy is never guessed from a client snapshot) and fail closed with
|
|
100
|
+
* the fixed operator instruction. There is no auto-maintenance/quiescent
|
|
101
|
+
* replacement API in this path. Explicit `shutdownSessiond` / `pix down
|
|
102
|
+
* --all` remain the authorized lifecycle methods.
|
|
103
|
+
* - `unverifiable` (transient hello timeout, auth failure, malformed or
|
|
104
|
+
* unparseable response — including a malformed build block — or secret
|
|
105
|
+
* unreadable) ⇒ the running daemon is PRESERVED and a retryable/fixed
|
|
106
|
+
* operator error is returned — authority is never destroyed on a guess.
|
|
107
|
+
*/
|
|
108
|
+
export declare function ensureSessiond(directory?: string, log?: Logger): Promise<EnsureResult>;
|
|
109
|
+
/**
|
|
110
|
+
* Stop the sessiond named by `directory`'s lock via its authenticated RPC
|
|
111
|
+
* control method (`system.shutdown`), then wait boundedly until the pid, lock
|
|
112
|
+
* file and socket are all cleared. Idempotent: a missing/stale lock is a no-op
|
|
113
|
+
* returning "already-down".
|
|
114
|
+
*
|
|
115
|
+
* RPC-only production authority (no SIGTERM/PID fallback): the AUTH secret and
|
|
116
|
+
* the exact lock instance identity are read from the local secure state, the
|
|
117
|
+
* request is authenticated and instance-fenced by the daemon, and the daemon
|
|
118
|
+
* ACKs the response to the client BEFORE beginning its shutdown transition. The
|
|
119
|
+
* pid is used only as a final observation that the authenticated instance
|
|
120
|
+
* exited — never to signal/kill. Any wrong secret / wrong instance / unsupported
|
|
121
|
+
* / timeout / connection failure returns a sanitized failure and leaves the
|
|
122
|
+
* target process untouched (old daemons without the control method are not
|
|
123
|
+
* killable via a fallback).
|
|
124
|
+
*
|
|
125
|
+
* Fail-closed: an unsafe lock, a live listener without a lock, or a
|
|
126
|
+
* live-but-unreachable pid is never touched — the daemon state is not safely
|
|
127
|
+
* owned, so the caller is told it is obstructed instead of being reported as
|
|
128
|
+
* already-down (which would hide a live authority from the operator).
|
|
129
|
+
*/
|
|
130
|
+
export declare function shutdownSessiond(directory?: string, options?: ShutdownOptions): Promise<ShutdownResult>;
|
|
131
|
+
//# sourceMappingURL=supervise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervise.d.ts","sourceRoot":"","sources":["../src/supervise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,kCAAkC,CAAC;AAoB1C,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/C,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAInE;AAgBD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAgFjF;AAWD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAU7D;AAkFD;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE;IAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACrE,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,cAAc,CAClC,SAAS,CAAC,EAAE,MAAM,EAClB,GAAG,GAAE,MAAuB,GAC3B,OAAO,CAAC,YAAY,CAAC,CA4EvB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA8EzB"}
|
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { instanceAlive, listPrivateSocketAliases, probeSocket, readInstanceLockStrict, resolveRuntimeDir, sessiondPaths, } from "@fffattiger/pix-sessiond/control";
|
|
4
|
+
import { SessiondRpcClient } from "@fffattiger/pix-sessiond/client";
|
|
5
|
+
import { SessiondError } from "@fffattiger/pix-sessiond";
|
|
6
|
+
import { readLocalSecret, UnsafeSecretError } from "./secret.js";
|
|
7
|
+
import { probeSessiondCompatibility, pingLegacyV1Sessiond, pingSessiond, shutdownLegacyV1Sessiond, } from "./probe.js";
|
|
8
|
+
import { resolveSessiondBin } from "./paths.js";
|
|
9
|
+
const READINESS_TIMEOUT_MS = 10_000;
|
|
10
|
+
const SHUTDOWN_TIMEOUT_MS = 10_000;
|
|
11
|
+
const SHUTDOWN_RPC_TIMEOUT_MS = 5_000;
|
|
12
|
+
const POLL_INTERVAL_MS = 100;
|
|
13
|
+
const REVALIDATE_PING_TIMEOUT_MS = 1_000;
|
|
14
|
+
/** Bounded probe→reuse revalidation attempts (Phase 7A race fence). */
|
|
15
|
+
const MAX_ENSURE_ATTEMPTS = 2;
|
|
16
|
+
/** Resolve the sessiond location for a (possibly env-overridden) directory. */
|
|
17
|
+
export function locateSessiond(directory) {
|
|
18
|
+
const dir = resolveRuntimeDir(directory);
|
|
19
|
+
const paths = sessiondPaths(dir);
|
|
20
|
+
return { directory: dir, endpoint: paths.endpoint, paths };
|
|
21
|
+
}
|
|
22
|
+
function pidAlive(pid) {
|
|
23
|
+
if (!Number.isSafeInteger(pid) || pid <= 0)
|
|
24
|
+
return false;
|
|
25
|
+
try {
|
|
26
|
+
process.kill(pid, 0);
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return error.code === "EPERM";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function sleep(ms) {
|
|
34
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Inspect a (possibly running) sessiond without side effects. Reuse decisions
|
|
38
|
+
* must NOT rely on pid-aliveness alone: a recycled pid or a hung daemon would
|
|
39
|
+
* look "alive" but be unusable, so reachability is confirmed by a real ping.
|
|
40
|
+
* Fail-closed for spawn decisions: an unsafe lock, a live listener without a
|
|
41
|
+
* lock, an unsafe secret file, or a live-but-unreachable pid marks the
|
|
42
|
+
* directory as obstructed so callers never spawn a second daemon over it.
|
|
43
|
+
*/
|
|
44
|
+
export async function inspectSessiond(directory) {
|
|
45
|
+
const { directory: dir, endpoint, paths } = locateSessiond(directory);
|
|
46
|
+
const lock = await readInstanceLockStrict(paths);
|
|
47
|
+
if (lock.kind === "unsafe") {
|
|
48
|
+
// Never treat an unsafe lock as absent and never auto-remove it.
|
|
49
|
+
return {
|
|
50
|
+
alive: false,
|
|
51
|
+
pingable: false,
|
|
52
|
+
obstructed: true,
|
|
53
|
+
obstruction: lock.reason,
|
|
54
|
+
pid: undefined,
|
|
55
|
+
instanceId: undefined,
|
|
56
|
+
directory: dir,
|
|
57
|
+
endpoint,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (lock.kind === "missing") {
|
|
61
|
+
// No lock: a live public/private listener is an orphan that lost its lock;
|
|
62
|
+
// spawning another daemon would create a second authority over it.
|
|
63
|
+
if (await anyLiveSocket(paths)) {
|
|
64
|
+
return {
|
|
65
|
+
alive: false,
|
|
66
|
+
pingable: false,
|
|
67
|
+
obstructed: true,
|
|
68
|
+
obstruction: "a live sessiond socket exists without an instance lock",
|
|
69
|
+
pid: undefined,
|
|
70
|
+
instanceId: undefined,
|
|
71
|
+
directory: dir,
|
|
72
|
+
endpoint,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return { alive: false, pingable: false, obstructed: false, obstruction: undefined, pid: undefined, instanceId: undefined, directory: dir, endpoint };
|
|
76
|
+
}
|
|
77
|
+
const alive = pidAlive(lock.record.pid);
|
|
78
|
+
if (!alive) {
|
|
79
|
+
return {
|
|
80
|
+
alive: false,
|
|
81
|
+
pingable: false,
|
|
82
|
+
obstructed: false,
|
|
83
|
+
obstruction: undefined,
|
|
84
|
+
pid: lock.record.pid,
|
|
85
|
+
instanceId: lock.record.instanceId,
|
|
86
|
+
directory: dir,
|
|
87
|
+
endpoint,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// An unsafe secret (symlink / non-regular / too-short) means this live pid
|
|
91
|
+
// cannot be confirmed as ours: classify as obstructed with a fixed reason
|
|
92
|
+
// instead of letting the read error escape to the CLI as a stack trace.
|
|
93
|
+
let secret;
|
|
94
|
+
try {
|
|
95
|
+
secret = await readLocalSecret(paths.secretFile);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
if (!(error instanceof UnsafeSecretError))
|
|
99
|
+
throw error;
|
|
100
|
+
return {
|
|
101
|
+
alive: true,
|
|
102
|
+
pingable: false,
|
|
103
|
+
obstructed: true,
|
|
104
|
+
obstruction: "sessiond secret file is unsafe",
|
|
105
|
+
pid: lock.record.pid,
|
|
106
|
+
instanceId: lock.record.instanceId,
|
|
107
|
+
directory: dir,
|
|
108
|
+
endpoint,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const pingable = secret !== undefined
|
|
112
|
+
? (await pingSessiond(endpoint, secret)) || (await pingLegacyV1Sessiond(endpoint, secret))
|
|
113
|
+
: false;
|
|
114
|
+
// A live pid that is unreachable is authoritative until it dies or is
|
|
115
|
+
// explicitly downed: never spawn a replacement over it.
|
|
116
|
+
return {
|
|
117
|
+
alive: true,
|
|
118
|
+
pingable,
|
|
119
|
+
obstructed: !pingable,
|
|
120
|
+
obstruction: !pingable ? "sessiond pid is alive but not reachable" : undefined,
|
|
121
|
+
pid: lock.record.pid,
|
|
122
|
+
instanceId: lock.record.instanceId,
|
|
123
|
+
directory: dir,
|
|
124
|
+
endpoint,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** True when any Pix-named Unix socket in the directory answers a connect. */
|
|
128
|
+
async function anyLiveSocket(paths) {
|
|
129
|
+
if ((await probeSocket(paths.endpoint)) === "live")
|
|
130
|
+
return true;
|
|
131
|
+
for (const alias of await listPrivateSocketAliases(paths.directory)) {
|
|
132
|
+
if ((await probeSocket(alias)) === "live")
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Detached, unref'd spawn of the foreground `pix-sessiond` bin so the daemon
|
|
139
|
+
* survives the supervisor (host) process exiting. `stdio: "ignore"` +
|
|
140
|
+
* `windowsHide` keep it headless; `unref()` ensures the supervisor's event loop
|
|
141
|
+
* is not kept alive by the child handle.
|
|
142
|
+
*/
|
|
143
|
+
export function spawnSessiond(directory) {
|
|
144
|
+
const bin = resolveSessiondBin();
|
|
145
|
+
const child = spawn(process.execPath, [bin], {
|
|
146
|
+
env: { ...process.env, PIX_SESSIOND_DIR: directory },
|
|
147
|
+
stdio: "ignore",
|
|
148
|
+
detached: true,
|
|
149
|
+
windowsHide: true,
|
|
150
|
+
});
|
|
151
|
+
child.unref();
|
|
152
|
+
return child;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Poll a freshly-spawned daemon until it answers a ping. Detects early child
|
|
156
|
+
* exit (so a crash-on-start is reported immediately, not after the full
|
|
157
|
+
* timeout) and enforces a hard {@link READINESS_TIMEOUT_MS} ceiling.
|
|
158
|
+
*/
|
|
159
|
+
async function waitForReadiness(paths, child) {
|
|
160
|
+
const deadline = Date.now() + READINESS_TIMEOUT_MS;
|
|
161
|
+
let exitCode = null;
|
|
162
|
+
child.once("exit", (code) => {
|
|
163
|
+
exitCode = code ?? -1;
|
|
164
|
+
});
|
|
165
|
+
while (Date.now() < deadline) {
|
|
166
|
+
if (exitCode !== null) {
|
|
167
|
+
return {
|
|
168
|
+
ok: false,
|
|
169
|
+
error: new Error(`sessiond exited early (code ${exitCode}) before becoming ready`),
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
// A transient FS error (e.g. mid-bootstrap) must not abort readiness; treat
|
|
173
|
+
// it as "not ready yet" and rely on exit detection + the hard timeout.
|
|
174
|
+
let secret;
|
|
175
|
+
try {
|
|
176
|
+
secret = await readLocalSecret(paths.secretFile);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
secret = undefined;
|
|
180
|
+
}
|
|
181
|
+
if (secret !== undefined && (await pingSessiond(paths.endpoint, secret, 1_000))) {
|
|
182
|
+
return { ok: true, error: undefined };
|
|
183
|
+
}
|
|
184
|
+
await sleep(POLL_INTERVAL_MS);
|
|
185
|
+
}
|
|
186
|
+
return { ok: false, error: new Error(`sessiond did not become ready within ${READINESS_TIMEOUT_MS}ms`) };
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Fixed operator instruction when a running sessiond's protocol version cannot
|
|
190
|
+
* be positively verified (transient hello timeout, auth failure, malformed or
|
|
191
|
+
* unparseable response, secret unreadable). The daemon is ALWAYS preserved — an
|
|
192
|
+
* unverified daemon is never shut down or replaced on a guess. Never echoes the
|
|
193
|
+
* endpoint, pid, instance id or raw error.
|
|
194
|
+
*/
|
|
195
|
+
const UNVERIFIABLE_INSTRUCTION = "[pix] could not verify the running sessiond's protocol version; it was left untouched. Wait a moment and run `pix start` again, or stop it with `pix down --all` if it is genuinely stale";
|
|
196
|
+
/**
|
|
197
|
+
* Fixed operator instruction when a stale (protocol-v1) sessiond cannot be
|
|
198
|
+
* safely replaced. Ordinary start/ensure never auto-stops it. The only CLI
|
|
199
|
+
* stop path is the explicit `pix down --all` command, which ends sessions and
|
|
200
|
+
* must be a deliberate maintenance action. Never echoes the endpoint, pid,
|
|
201
|
+
* instance id or raw error.
|
|
202
|
+
*/
|
|
203
|
+
const STALE_DAEMON_INSTRUCTION = "[pix] a sessiond with an incompatible protocol version is running and was left untouched; `pix down --all` is the explicit maintenance stop and will end sessions, then run `pix start` again";
|
|
204
|
+
/**
|
|
205
|
+
* Fixed operator instruction when a running sessiond FAILS the explicit Phase
|
|
206
|
+
* 7A build compatibility matrix (missing/old/mismatched build identity — the
|
|
207
|
+
* same protocol major alone never proves implementation compatibility) and
|
|
208
|
+
* could not be safely replaced via the authenticated, instance-fenced
|
|
209
|
+
* shutdown path. Never echoes the endpoint, pid, instance id, build values, or
|
|
210
|
+
* raw error.
|
|
211
|
+
*/
|
|
212
|
+
const STALE_BUILD_INSTRUCTION = "[pix] the running sessiond is a different, incompatible pix build and was left untouched; `pix down --all` is the explicit maintenance stop and will end sessions, then update the pix installation so all pix dists come from the same build and run `pix start` again";
|
|
213
|
+
/**
|
|
214
|
+
* Fixed operator instruction when the probe→reuse decision could not be
|
|
215
|
+
* revalidated: the daemon observed by the compatibility probe is not provably
|
|
216
|
+
* the exact instance that owns the directory at commit time (it was replaced
|
|
217
|
+
* or exited mid-probe on every bounded attempt). Nothing is ever spawned or
|
|
218
|
+
* destroyed on a guess.
|
|
219
|
+
*/
|
|
220
|
+
const PROBE_REUSE_RACE_INSTRUCTION = "[pix] the running sessiond changed while its build was being verified; it was left untouched. Run `pix start` again";
|
|
221
|
+
/**
|
|
222
|
+
* Revalidate the probe→reuse decision (Phase 7A race fence): the EXACT
|
|
223
|
+
* instance the compatibility probe authenticated (pid + instanceId) must still
|
|
224
|
+
* own the lock and still answer a bounded authenticated ping at commit time.
|
|
225
|
+
* Deterministic and never throws: `false` means the observed instance is not
|
|
226
|
+
* provably current — the caller must re-decide (bounded) or fail closed; it
|
|
227
|
+
* must NEVER reuse or spawn over the directory on that guess.
|
|
228
|
+
*/
|
|
229
|
+
export async function revalidateSessiondInstance(paths, observed, secret) {
|
|
230
|
+
if (observed.pid === undefined || observed.instanceId === undefined)
|
|
231
|
+
return false;
|
|
232
|
+
const lock = await readInstanceLockStrict(paths);
|
|
233
|
+
if (lock.kind !== "ok")
|
|
234
|
+
return false;
|
|
235
|
+
if (lock.record.pid !== observed.pid || lock.record.instanceId !== observed.instanceId)
|
|
236
|
+
return false;
|
|
237
|
+
if (!pidAlive(lock.record.pid))
|
|
238
|
+
return false;
|
|
239
|
+
return pingSessiond(paths.endpoint, secret, REVALIDATE_PING_TIMEOUT_MS);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Ensure a pingable sessiond is running for `directory`. Reuses an existing,
|
|
243
|
+
* reachable instance ONLY when it is POSITIVELY authenticated AND passes the
|
|
244
|
+
* explicit Phase 7A build compatibility matrix (product, protocol, sessiond /
|
|
245
|
+
* Worker / adapter contract generations, and the deterministic capability
|
|
246
|
+
* fingerprint — the same protocol major is NEVER sufficient to reuse).
|
|
247
|
+
*
|
|
248
|
+
* Compatibility is classified into explicit states ({@link probeSessiondCompatibility}):
|
|
249
|
+
* - `current` ⇒ reuse as-is, but only after the probe→reuse decision is
|
|
250
|
+
* REVALIDATED against the exact lock instance (bounded race fence: a daemon
|
|
251
|
+
* replaced between probe and commit is never silently reused; at most
|
|
252
|
+
* {@link MAX_ENSURE_ATTEMPTS} bounded re-decisions, then a fixed operator
|
|
253
|
+
* error — never a spawn over unverifiable state).
|
|
254
|
+
* - `staleBuild` (current protocol, missing/failing build identity) and
|
|
255
|
+
* `knownLegacy` (positively authenticated protocol v1) ⇒ ordinary start/
|
|
256
|
+
* ensure MUST leave the live incompatible daemon intact (busy or idle;
|
|
257
|
+
* occupancy is never guessed from a client snapshot) and fail closed with
|
|
258
|
+
* the fixed operator instruction. There is no auto-maintenance/quiescent
|
|
259
|
+
* replacement API in this path. Explicit `shutdownSessiond` / `pix down
|
|
260
|
+
* --all` remain the authorized lifecycle methods.
|
|
261
|
+
* - `unverifiable` (transient hello timeout, auth failure, malformed or
|
|
262
|
+
* unparseable response — including a malformed build block — or secret
|
|
263
|
+
* unreadable) ⇒ the running daemon is PRESERVED and a retryable/fixed
|
|
264
|
+
* operator error is returned — authority is never destroyed on a guess.
|
|
265
|
+
*/
|
|
266
|
+
export async function ensureSessiond(directory, log = () => { }) {
|
|
267
|
+
const { directory: dir, endpoint, paths } = locateSessiond(directory);
|
|
268
|
+
let spawnFresh = false;
|
|
269
|
+
for (let attempt = 1;; attempt += 1) {
|
|
270
|
+
const existing = await inspectSessiond(dir);
|
|
271
|
+
if (existing.pingable) {
|
|
272
|
+
// Re-read the secret strictly. A missing or unsafe secret means we cannot
|
|
273
|
+
// authenticate the running daemon: it is unverifiable and MUST be preserved
|
|
274
|
+
// (a secret-read failure must never destroy authority).
|
|
275
|
+
let secret;
|
|
276
|
+
try {
|
|
277
|
+
secret = await readLocalSecret(paths.secretFile);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
if (error instanceof UnsafeSecretError) {
|
|
281
|
+
throw new Error(UNVERIFIABLE_INSTRUCTION);
|
|
282
|
+
}
|
|
283
|
+
throw error;
|
|
284
|
+
}
|
|
285
|
+
if (secret === undefined) {
|
|
286
|
+
throw new Error(UNVERIFIABLE_INSTRUCTION);
|
|
287
|
+
}
|
|
288
|
+
// Classify the daemon explicitly. Reuse only a positively authenticated,
|
|
289
|
+
// protocol-CURRENT, BUILD-COMPATIBLE daemon.
|
|
290
|
+
const compat = await probeSessiondCompatibility(endpoint, secret);
|
|
291
|
+
if (compat.state === "current") {
|
|
292
|
+
// Probe→reuse race fence: the exact authenticated instance must still
|
|
293
|
+
// own the directory when we commit to reuse. A daemon replaced or lost
|
|
294
|
+
// mid-probe triggers a bounded re-decision, never a silent reuse.
|
|
295
|
+
const stillOwned = await revalidateSessiondInstance(paths, { pid: existing.pid, instanceId: existing.instanceId }, secret);
|
|
296
|
+
if (stillOwned) {
|
|
297
|
+
log(`reusing sessiond (pid ${existing.pid}) at ${dir}`);
|
|
298
|
+
return { directory: dir, endpoint, pid: existing.pid, instanceId: existing.instanceId, reused: true };
|
|
299
|
+
}
|
|
300
|
+
if (attempt >= MAX_ENSURE_ATTEMPTS) {
|
|
301
|
+
throw new Error(PROBE_REUSE_RACE_INSTRUCTION);
|
|
302
|
+
}
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
if (compat.state === "unverifiable") {
|
|
306
|
+
// Transient hello timeout / auth failure / malformed or unparseable
|
|
307
|
+
// response: preserve the running daemon and return a fixed operator
|
|
308
|
+
// error — never shut it down on a guess.
|
|
309
|
+
throw new Error(UNVERIFIABLE_INSTRUCTION);
|
|
310
|
+
}
|
|
311
|
+
// staleBuild / knownLegacy: a positively authenticated live daemon this
|
|
312
|
+
// build must not silently reuse AND must not be auto-replaced. Ordinary
|
|
313
|
+
// start/ensure leaves it intact even when it appears idle — occupancy is
|
|
314
|
+
// not a client-side guess, and this slice has no auto-maintenance fence.
|
|
315
|
+
throw new Error(compat.state === "staleBuild" ? STALE_BUILD_INSTRUCTION : STALE_DAEMON_INSTRUCTION);
|
|
316
|
+
}
|
|
317
|
+
else if (existing.obstructed) {
|
|
318
|
+
// Fail closed: never spawn over a live listener without a lock, an unsafe
|
|
319
|
+
// lock, or a live-but-unreachable pid.
|
|
320
|
+
throw new Error(`[pix] cannot start sessiond: ${existing.obstruction ?? "sessiond state is unsafe"}`);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
spawnFresh = true;
|
|
324
|
+
}
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
if (!spawnFresh) {
|
|
328
|
+
// Unreachable: every loop iteration either returns, throws, or sets spawnFresh.
|
|
329
|
+
throw new Error(PROBE_REUSE_RACE_INSTRUCTION);
|
|
330
|
+
}
|
|
331
|
+
log(`starting sessiond at ${dir}`);
|
|
332
|
+
const child = spawnSessiond(dir);
|
|
333
|
+
const readiness = await waitForReadiness(paths, child);
|
|
334
|
+
if (!readiness.ok) {
|
|
335
|
+
throw readiness.error ?? new Error("[pix] sessiond did not become ready");
|
|
336
|
+
}
|
|
337
|
+
const lock = await readInstanceLockStrict(paths);
|
|
338
|
+
const record = lock.kind === "ok" ? lock.record : undefined;
|
|
339
|
+
log(`sessiond ready (pid ${record?.pid}) at ${dir}`);
|
|
340
|
+
return { directory: dir, endpoint, pid: record?.pid, instanceId: record?.instanceId, reused: false };
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Stop the sessiond named by `directory`'s lock via its authenticated RPC
|
|
344
|
+
* control method (`system.shutdown`), then wait boundedly until the pid, lock
|
|
345
|
+
* file and socket are all cleared. Idempotent: a missing/stale lock is a no-op
|
|
346
|
+
* returning "already-down".
|
|
347
|
+
*
|
|
348
|
+
* RPC-only production authority (no SIGTERM/PID fallback): the AUTH secret and
|
|
349
|
+
* the exact lock instance identity are read from the local secure state, the
|
|
350
|
+
* request is authenticated and instance-fenced by the daemon, and the daemon
|
|
351
|
+
* ACKs the response to the client BEFORE beginning its shutdown transition. The
|
|
352
|
+
* pid is used only as a final observation that the authenticated instance
|
|
353
|
+
* exited — never to signal/kill. Any wrong secret / wrong instance / unsupported
|
|
354
|
+
* / timeout / connection failure returns a sanitized failure and leaves the
|
|
355
|
+
* target process untouched (old daemons without the control method are not
|
|
356
|
+
* killable via a fallback).
|
|
357
|
+
*
|
|
358
|
+
* Fail-closed: an unsafe lock, a live listener without a lock, or a
|
|
359
|
+
* live-but-unreachable pid is never touched — the daemon state is not safely
|
|
360
|
+
* owned, so the caller is told it is obstructed instead of being reported as
|
|
361
|
+
* already-down (which would hide a live authority from the operator).
|
|
362
|
+
*/
|
|
363
|
+
export async function shutdownSessiond(directory, options = {}) {
|
|
364
|
+
const { paths } = locateSessiond(directory);
|
|
365
|
+
const status = await inspectSessiond(directory);
|
|
366
|
+
if (status.obstructed) {
|
|
367
|
+
return {
|
|
368
|
+
action: "obstructed",
|
|
369
|
+
pid: status.pid,
|
|
370
|
+
reason: status.obstruction ?? "sessiond state is unsafe",
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
if (status.pid === undefined || !status.alive) {
|
|
374
|
+
return { action: "already-down", pid: status.pid };
|
|
375
|
+
}
|
|
376
|
+
// The exact authenticated instance identity comes from the strict lock read;
|
|
377
|
+
// without it we can never authorize a shutdown of this instance.
|
|
378
|
+
if (status.instanceId === undefined) {
|
|
379
|
+
return { action: "failed", pid: status.pid, reason: "sessiond instance identity is unknown" };
|
|
380
|
+
}
|
|
381
|
+
// The AUTH secret is mandatory and read strictly (never created). A missing
|
|
382
|
+
// or unsafe secret means we cannot authenticate and must fail closed.
|
|
383
|
+
let secret;
|
|
384
|
+
try {
|
|
385
|
+
secret = await readLocalSecret(paths.secretFile);
|
|
386
|
+
}
|
|
387
|
+
catch (error) {
|
|
388
|
+
if (error instanceof UnsafeSecretError) {
|
|
389
|
+
return { action: "failed", pid: status.pid, reason: "sessiond secret is unsafe" };
|
|
390
|
+
}
|
|
391
|
+
throw error;
|
|
392
|
+
}
|
|
393
|
+
if (secret === undefined) {
|
|
394
|
+
return { action: "failed", pid: status.pid, reason: "sessiond secret is unavailable" };
|
|
395
|
+
}
|
|
396
|
+
// Authenticate + instance-fence, then call system.shutdown with the exact
|
|
397
|
+
// instance id. The daemon ACKs the response before it begins to shut down, so
|
|
398
|
+
// a successful call means the transition was authorized and accepted.
|
|
399
|
+
const rpcTimeoutMs = options.timeoutMs ?? SHUTDOWN_RPC_TIMEOUT_MS;
|
|
400
|
+
const client = new SessiondRpcClient({ endpoint: paths.endpoint, secret, timeoutMs: rpcTimeoutMs });
|
|
401
|
+
let accepted = false;
|
|
402
|
+
let currentFailure;
|
|
403
|
+
try {
|
|
404
|
+
const result = await client.call("system.shutdown", { instanceId: status.instanceId });
|
|
405
|
+
accepted = result.accepted === true;
|
|
406
|
+
}
|
|
407
|
+
catch (error) {
|
|
408
|
+
currentFailure = error;
|
|
409
|
+
}
|
|
410
|
+
if (!accepted) {
|
|
411
|
+
// Coordinated v1→v2 rollout: a current client cannot schema-parse a v1
|
|
412
|
+
// control response. Retry exactly once with the narrow legacy envelope,
|
|
413
|
+
// still authenticated and fenced by the SAME strict-lock instance id.
|
|
414
|
+
accepted = await shutdownLegacyV1Sessiond(paths.endpoint, secret, status.instanceId, rpcTimeoutMs);
|
|
415
|
+
}
|
|
416
|
+
if (!accepted) {
|
|
417
|
+
// Never echo the secret, endpoint, instance id, or a raw error/stack.
|
|
418
|
+
return {
|
|
419
|
+
action: "failed",
|
|
420
|
+
pid: status.pid,
|
|
421
|
+
reason: currentFailure === undefined
|
|
422
|
+
? "sessiond did not accept shutdown"
|
|
423
|
+
: sanitizeShutdownFailure(currentFailure),
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
// Wait boundedly for the authenticated instance to exit: the owned socket and
|
|
427
|
+
// lock disappear and the pid (final observation only) dies.
|
|
428
|
+
const deadline = Date.now() + (options.timeoutMs ?? SHUTDOWN_TIMEOUT_MS);
|
|
429
|
+
while (Date.now() < deadline) {
|
|
430
|
+
// instanceAlive reads the lock each poll; once the daemon releases it the
|
|
431
|
+
// lock file is gone and instanceAlive returns false.
|
|
432
|
+
if (!(await instanceAlive(paths)) && !existsSync(paths.endpoint)) {
|
|
433
|
+
return { action: "terminated", pid: status.pid };
|
|
434
|
+
}
|
|
435
|
+
await sleep(50);
|
|
436
|
+
}
|
|
437
|
+
return { action: "failed", pid: status.pid, reason: "timeout" };
|
|
438
|
+
}
|
|
439
|
+
/** Map an RPC shutdown failure onto a fixed sanitized reason (never secret/endpoint/instance/stack). */
|
|
440
|
+
function sanitizeShutdownFailure(error) {
|
|
441
|
+
if (error instanceof SessiondError) {
|
|
442
|
+
switch (error.code) {
|
|
443
|
+
case "unauthorized": return "sessiond refused shutdown (unauthorized)";
|
|
444
|
+
case "forbidden": return "sessiond refused shutdown (instance mismatch)";
|
|
445
|
+
case "unsupported_capability": return "sessiond does not support remote shutdown";
|
|
446
|
+
case "timeout": return "timeout waiting for sessiond shutdown response";
|
|
447
|
+
case "invalid_request": return "sessiond rejected the shutdown request";
|
|
448
|
+
default: return "sessiond refused shutdown";
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
return "sessiond refused shutdown";
|
|
452
|
+
}
|
|
453
|
+
//# sourceMappingURL=supervise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervise.js","sourceRoot":"","sources":["../src/supervise.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fffattiger/pix-cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Production composition + lifecycle CLI for pix: ensure/reuse sessiond, host boot, status, down --all",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"engines": { "node": ">=22.19.0" },
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" }
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"pix": "./bin/pix.mjs",
|
|
14
|
+
"pix-host": "./bin/pix-host.mjs",
|
|
15
|
+
"pix-sessiond": "./bin/pix-sessiond.mjs"
|
|
16
|
+
},
|
|
17
|
+
"files": ["dist", "bin", "client"],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"clean": "node ../../scripts/remove-paths.mjs dist dist-test",
|
|
20
|
+
"prebuild": "node scripts/prebuild-deps.mjs",
|
|
21
|
+
"build": "npm run clean && tsc -p tsconfig.json",
|
|
22
|
+
"pretypecheck": "node scripts/prebuild-deps.mjs",
|
|
23
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
|
|
24
|
+
"pretest": "node scripts/prebuild-deps.mjs",
|
|
25
|
+
"test": "npm run build:test && node ../../scripts/run-node-test.mjs \"dist-test/**/*.test.js\" --test-concurrency=1",
|
|
26
|
+
"build:test": "node ../../scripts/remove-paths.mjs dist-test && tsc -p tsconfig.test.json"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@fffattiger/pix-host": "0.1.0",
|
|
30
|
+
"@fffattiger/pix-sessiond": "0.1.0"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/node": "^22",
|
|
34
|
+
"typescript": "^5"
|
|
35
|
+
}
|
|
36
|
+
}
|