@sanurb/ringi 0.2.1 → 0.3.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/dist/cli.mjs +505 -114
- package/dist/cli.mjs.map +1 -1
- package/dist/mcp.mjs +35 -39
- package/dist/mcp.mjs.map +1 -1
- package/dist/runtime.mjs +569 -428
- package/dist/runtime.mjs.map +1 -1
- package/package.json +9 -8
- package/server/nitro.json +17 -0
- package/server/public/assets/ClientOnly-QdfAxyFs.js +1 -0
- package/server/public/assets/_reviewId-CmXHvWLn.js +1 -0
- package/server/public/assets/_reviewId-DdOpDx4U.js +1 -0
- package/server/public/assets/abap-B1dkBSPn.js +1 -0
- package/server/public/assets/action-bar-DLRNvLjj.js +45 -0
- package/server/public/assets/actionscript-3-BT4ibYlP.js +1 -0
- package/server/public/assets/ada-CD92zeps.js +1 -0
- package/server/public/assets/andromeeda-DqSmgxi0.js +1 -0
- package/server/public/assets/angular-html-BDC0PfKr.js +1 -0
- package/server/public/assets/angular-ts-B9yoQMtj.js +1 -0
- package/server/public/assets/apache-D5suuoa_.js +1 -0
- package/server/public/assets/apex-BL-m4VHy.js +1 -0
- package/server/public/assets/apl-CldhY0Pn.js +1 -0
- package/server/public/assets/applescript-CLiBqvKT.js +1 -0
- package/server/public/assets/ara-LdDF8cmv.js +1 -0
- package/server/public/assets/asciidoc-2DZ9hC2N.js +1 -0
- package/server/public/assets/asm-0ZPGRSUy.js +1 -0
- package/server/public/assets/astro-DR6labZJ.js +1 -0
- package/server/public/assets/aurora-x-Da7Zfvbg.js +1 -0
- package/server/public/assets/awk-Bn0gn_B_.js +1 -0
- package/server/public/assets/ayu-dark-bqYKoqpM.js +1 -0
- package/server/public/assets/ayu-light-C45jTIzZ.js +1 -0
- package/server/public/assets/ayu-mirage-BV_FCTQi.js +1 -0
- package/server/public/assets/ballerina-D2nw_w8Q.js +1 -0
- package/server/public/assets/bat-ByUBN5gS.js +1 -0
- package/server/public/assets/beancount-BTb2W6Mp.js +1 -0
- package/server/public/assets/berry-5SO2uITG.js +1 -0
- package/server/public/assets/bibtex-CDBTNfUI.js +1 -0
- package/server/public/assets/bicep-fgxG_4rP.js +1 -0
- package/server/public/assets/bird2-BCwzDhwX.js +1 -0
- package/server/public/assets/blade-BBTRu2-g.js +1 -0
- package/server/public/assets/bsl-CG-fq4sc.js +1 -0
- package/server/public/assets/c-CEvNj7xl.js +1 -0
- package/server/public/assets/c3-Dlaci63_.js +1 -0
- package/server/public/assets/cadence-DHbRuEmm.js +1 -0
- package/server/public/assets/cairo-Ds0kTeYT.js +1 -0
- package/server/public/assets/catppuccin-frappe-DrL1fUuH.js +1 -0
- package/server/public/assets/catppuccin-latte-C0REgVjl.js +1 -0
- package/server/public/assets/catppuccin-macchiato-ChQpylWO.js +1 -0
- package/server/public/assets/catppuccin-mocha-Dd0JU1T0.js +1 -0
- package/server/public/assets/clarity-DMoTOm4G.js +1 -0
- package/server/public/assets/clojure-DBhE3PpS.js +1 -0
- package/server/public/assets/cmake-DwMc40Or.js +1 -0
- package/server/public/assets/cobol-BdNJSMRt.js +1 -0
- package/server/public/assets/codeowners-1lVr8wqV.js +1 -0
- package/server/public/assets/codeql-DWflolvo.js +1 -0
- package/server/public/assets/coffee-RA4xA24H.js +1 -0
- package/server/public/assets/common-lisp-CrVQ5xT-.js +1 -0
- package/server/public/assets/compiler-runtime-DZXZ41-q.js +1 -0
- package/server/public/assets/coq-CjfoyYSh.js +1 -0
- package/server/public/assets/cpp-BoW7e2Ow.js +1 -0
- package/server/public/assets/createServerFn-DTk395iP.js +9 -0
- package/server/public/assets/crystal-CYKRo3F9.js +1 -0
- package/server/public/assets/csharp-C7bIWP5y.js +1 -0
- package/server/public/assets/css-Ck2tii2d.js +1 -0
- package/server/public/assets/csv-DsAkDVtA.js +1 -0
- package/server/public/assets/cue-BWmQgbOB.js +1 -0
- package/server/public/assets/cypher-D-jVC50Q.js +1 -0
- package/server/public/assets/d-CaviyOrm.js +1 -0
- package/server/public/assets/dark-plus-DIrnwZt9.js +1 -0
- package/server/public/assets/dart-CZEi7JgC.js +1 -0
- package/server/public/assets/dax-BK-8zffy.js +1 -0
- package/server/public/assets/desktop-D3cjbL4D.js +1 -0
- package/server/public/assets/diff-sHAzLvlp.js +1 -0
- package/server/public/assets/docker--xs2Ng3w.js +1 -0
- package/server/public/assets/dotenv-Cm4nwcJ7.js +1 -0
- package/server/public/assets/dracula-CAUSusef.js +1 -0
- package/server/public/assets/dracula-soft-cjNkMFza.js +1 -0
- package/server/public/assets/dream-maker-fjmWTFCO.js +1 -0
- package/server/public/assets/edge-DxycC9wl.js +1 -0
- package/server/public/assets/elixir-B-50Er3p.js +1 -0
- package/server/public/assets/elm-B4-ygIVo.js +1 -0
- package/server/public/assets/emacs-lisp-CJzqStIa.js +1 -0
- package/server/public/assets/erb-DJvYE1L1.js +1 -0
- package/server/public/assets/erlang-C-m_88FN.js +1 -0
- package/server/public/assets/everforest-dark-DBpaSMx1.js +1 -0
- package/server/public/assets/everforest-light-CiGrXwia.js +1 -0
- package/server/public/assets/fennel-DRaXF7k8.js +1 -0
- package/server/public/assets/file-tree-CI3Xwwid.js +1907 -0
- package/server/public/assets/fish-Bn-Yh3Jj.js +1 -0
- package/server/public/assets/fluent-DF5F8Ks_.js +1 -0
- package/server/public/assets/fortran-fixed-form-Cx1lv7HN.js +1 -0
- package/server/public/assets/fortran-free-form-hCQHRqew.js +1 -0
- package/server/public/assets/fsharp-DC5k9sy2.js +1 -0
- package/server/public/assets/gdresource-D0EsKdgH.js +1 -0
- package/server/public/assets/gdscript-_C9_Hi_w.js +1 -0
- package/server/public/assets/gdshader-BW7b1X1Y.js +1 -0
- package/server/public/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
- package/server/public/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
- package/server/public/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
- package/server/public/assets/genie-Ch_6TCHd.js +1 -0
- package/server/public/assets/gherkin-CaNUsmTq.js +1 -0
- package/server/public/assets/git-commit-BcFsuO5E.js +1 -0
- package/server/public/assets/git-rebase-ChGA-z50.js +1 -0
- package/server/public/assets/github-dark-B9ygjgg6.js +1 -0
- package/server/public/assets/github-dark-default-Br2bgYSx.js +1 -0
- package/server/public/assets/github-dark-dimmed-CmtqpPJ-.js +1 -0
- package/server/public/assets/github-dark-high-contrast-fSfmrZcC.js +1 -0
- package/server/public/assets/github-light-BZjUqfZl.js +1 -0
- package/server/public/assets/github-light-default-lIytXXhR.js +1 -0
- package/server/public/assets/github-light-high-contrast-BRrjFb7n.js +1 -0
- package/server/public/assets/gleam-DALMDpNs.js +1 -0
- package/server/public/assets/glimmer-js-maLb6ysA.js +1 -0
- package/server/public/assets/glimmer-ts-DGNr-OBA.js +1 -0
- package/server/public/assets/glsl-CmplqyQ1.js +1 -0
- package/server/public/assets/gn-DGjqrYN9.js +1 -0
- package/server/public/assets/gnuplot-BYckvgQI.js +1 -0
- package/server/public/assets/go-JycvP538.js +1 -0
- package/server/public/assets/graphql-VhP7n4--.js +1 -0
- package/server/public/assets/groovy-D5qMRONT.js +1 -0
- package/server/public/assets/gruvbox-dark-hard-M1dj1e6V.js +1 -0
- package/server/public/assets/gruvbox-dark-medium-cqq_ncQu.js +1 -0
- package/server/public/assets/gruvbox-dark-soft-B4QwL2a9.js +1 -0
- package/server/public/assets/gruvbox-light-hard-DLayMKOQ.js +1 -0
- package/server/public/assets/gruvbox-light-medium-D52XgPKf.js +1 -0
- package/server/public/assets/gruvbox-light-soft-Dola3KdD.js +1 -0
- package/server/public/assets/hack-BVSQ2bxM.js +1 -0
- package/server/public/assets/haml-CwTtRHoj.js +1 -0
- package/server/public/assets/handlebars-CcO01SVo.js +1 -0
- package/server/public/assets/haskell-ys7wPPEd.js +1 -0
- package/server/public/assets/haxe-94kiChn7.js +1 -0
- package/server/public/assets/hcl-DmHt_-wq.js +1 -0
- package/server/public/assets/hjson-xMmoJ0Gx.js +1 -0
- package/server/public/assets/hlsl-b-Pskdze.js +1 -0
- package/server/public/assets/horizon-BKMqttiR.js +1 -0
- package/server/public/assets/horizon-bright-HNkBlnm5.js +1 -0
- package/server/public/assets/houston-BkBSBSOQ.js +1 -0
- package/server/public/assets/html-derivative-Cz-cKMi2.js +1 -0
- package/server/public/assets/html-zQbUS8Is.js +1 -0
- package/server/public/assets/http-CaGQ9BgA.js +1 -0
- package/server/public/assets/hurl-BBoki9bg.js +1 -0
- package/server/public/assets/hxml-iQTOTWpM.js +1 -0
- package/server/public/assets/hy-DKl1XhBq.js +1 -0
- package/server/public/assets/imba-DPxkOTAg.js +1 -0
- package/server/public/assets/ini-lkLGq_1x.js +1 -0
- package/server/public/assets/java-LAx6oszV.js +1 -0
- package/server/public/assets/javascript-COqx-gKX.js +1 -0
- package/server/public/assets/jinja-x-G_qSCP.js +1 -0
- package/server/public/assets/jison-7oSeVkKJ.js +1 -0
- package/server/public/assets/json-sTLOVXhc.js +1 -0
- package/server/public/assets/json5-Cy6ypJuJ.js +1 -0
- package/server/public/assets/jsonc-Cw2ugYAK.js +1 -0
- package/server/public/assets/jsonl-Dp5_qBVH.js +1 -0
- package/server/public/assets/jsonnet-BTbmg_-u.js +1 -0
- package/server/public/assets/jssm-CnT7nPea.js +1 -0
- package/server/public/assets/jsx-zXeIBQLI.js +1 -0
- package/server/public/assets/julia-E-6Xm9nd.js +1 -0
- package/server/public/assets/just-D9n74gZy.js +1 -0
- package/server/public/assets/kanagawa-dragon-CxsBnuhV.js +1 -0
- package/server/public/assets/kanagawa-lotus-vHdxDDOS.js +1 -0
- package/server/public/assets/kanagawa-wave-CIkfTKWk.js +1 -0
- package/server/public/assets/kdl-BwK60g80.js +1 -0
- package/server/public/assets/kotlin-Dbd9Vi-v.js +1 -0
- package/server/public/assets/kusto-BuTk9usc.js +1 -0
- package/server/public/assets/laserwave-C0wf_d3o.js +1 -0
- package/server/public/assets/latex-D0t4RtEU.js +1 -0
- package/server/public/assets/lean-CYAW8bRN.js +1 -0
- package/server/public/assets/less-D4uen21c.js +1 -0
- package/server/public/assets/light-plus-oqYyWKEE.js +1 -0
- package/server/public/assets/liquid-BzXN12F6.js +1 -0
- package/server/public/assets/llvm-Z1xJzteV.js +1 -0
- package/server/public/assets/log-BGUxlsk3.js +1 -0
- package/server/public/assets/logo-wVUhvQ1b.js +1 -0
- package/server/public/assets/lua-B0Cg8RP4.js +1 -0
- package/server/public/assets/luau-rPFZzCmq.js +1 -0
- package/server/public/assets/main-FvxVz-kD.js +15 -0
- package/server/public/assets/make-BmPf6m0P.js +1 -0
- package/server/public/assets/markdown-AseU6zcW.js +1 -0
- package/server/public/assets/marko-BlRPXWOe.js +1 -0
- package/server/public/assets/material-theme-6_W6rQhR.js +1 -0
- package/server/public/assets/material-theme-darker-VPEo3Sem.js +1 -0
- package/server/public/assets/material-theme-lighter-CUhzCcZ9.js +1 -0
- package/server/public/assets/material-theme-ocean-B2JdsaGb.js +1 -0
- package/server/public/assets/material-theme-palenight-DhY-sklA.js +1 -0
- package/server/public/assets/matlab-BOj_BDQv.js +1 -0
- package/server/public/assets/mdc-FiVDZSZ4.js +1 -0
- package/server/public/assets/mdx-Cm6cDkDI.js +1 -0
- package/server/public/assets/mermaid-DLO-R4hv.js +1 -0
- package/server/public/assets/min-dark-D34a_pX7.js +1 -0
- package/server/public/assets/min-light-Cdd4KORE.js +1 -0
- package/server/public/assets/mipsasm-DYpHF-GA.js +1 -0
- package/server/public/assets/mojo-DqYVFv_G.js +1 -0
- package/server/public/assets/monokai-CDR4sQ2n.js +1 -0
- package/server/public/assets/moonbit-DRKee9wk.js +1 -0
- package/server/public/assets/move-DbRk6Vn9.js +1 -0
- package/server/public/assets/narrat-IOfmaXfb.js +1 -0
- package/server/public/assets/new-DOyplRwM.js +1 -0
- package/server/public/assets/nextflow-D-Ec_bsY.js +1 -0
- package/server/public/assets/nextflow-groovy-EYl0c2BQ.js +1 -0
- package/server/public/assets/nginx-3JLAqmJa.js +1 -0
- package/server/public/assets/night-owl-light-Bedht9b4.js +1 -0
- package/server/public/assets/night-owl-yQJ3-I0I.js +1 -0
- package/server/public/assets/nim-DyjFVMzT.js +1 -0
- package/server/public/assets/nix-C2IovEl2.js +1 -0
- package/server/public/assets/nord-BjZ63GNL.js +1 -0
- package/server/public/assets/nushell-BflTrRB5.js +1 -0
- package/server/public/assets/objective-c-GRClK1S7.js +1 -0
- package/server/public/assets/objective-cpp-l3qYw-v5.js +1 -0
- package/server/public/assets/ocaml-BBDyhyMH.js +1 -0
- package/server/public/assets/odin-jCJ7Js99.js +1 -0
- package/server/public/assets/one-dark-pro-PIx2Diul.js +1 -0
- package/server/public/assets/one-light-BFMEz49S.js +1 -0
- package/server/public/assets/openscad-Drf0LgCX.js +1 -0
- package/server/public/assets/pascal-BT2XAUTl.js +1 -0
- package/server/public/assets/perl-Dr47G_2Q.js +1 -0
- package/server/public/assets/php-BhBDWTJe.js +1 -0
- package/server/public/assets/pierre-dark-CTXzTLfO.js +1 -0
- package/server/public/assets/pierre-light-C_5rlJRo.js +1 -0
- package/server/public/assets/pkl-ML-dWShO.js +1 -0
- package/server/public/assets/plastic-BFI-Z5Z2.js +1 -0
- package/server/public/assets/plsql-0vd5cLro.js +1 -0
- package/server/public/assets/po-CbZ_uqQA.js +1 -0
- package/server/public/assets/poimandres-Cayhd01L.js +1 -0
- package/server/public/assets/polar-C4hfV8Nc.js +1 -0
- package/server/public/assets/postcss-osFUbTLw.js +1 -0
- package/server/public/assets/powerquery-CTlGUQPj.js +1 -0
- package/server/public/assets/powershell-DyZsOmuq.js +1 -0
- package/server/public/assets/preload-helper-D7oT-Xwl.js +20 -0
- package/server/public/assets/prisma-SS92PO_I.js +1 -0
- package/server/public/assets/prolog-B1O1NNVC.js +1 -0
- package/server/public/assets/proto-BWu3eZTs.js +1 -0
- package/server/public/assets/pug-Dij_IK5w.js +1 -0
- package/server/public/assets/puppet-tvtRVdr6.js +1 -0
- package/server/public/assets/purescript-Dtbpb7D-.js +1 -0
- package/server/public/assets/python-Dlk0Acio.js +1 -0
- package/server/public/assets/qml-qUwk3nhh.js +1 -0
- package/server/public/assets/qmldir-B-iEOngH.js +1 -0
- package/server/public/assets/qss-Ba0p-aHw.js +1 -0
- package/server/public/assets/r-WmtNicKM.js +1 -0
- package/server/public/assets/racket-BXDsxf2U.js +1 -0
- package/server/public/assets/raku-Dw1WWFXK.js +1 -0
- package/server/public/assets/razor-DaqiVx3Q.js +1 -0
- package/server/public/assets/red-BC3Ds49b.js +1 -0
- package/server/public/assets/reg-DXFHGaM4.js +1 -0
- package/server/public/assets/regexp-CiSWN5Ne.js +1 -0
- package/server/public/assets/rel-Dc5_Ytx2.js +1 -0
- package/server/public/assets/reviews-CJvVXRLH.js +1 -0
- package/server/public/assets/reviews-CfbuF6ib.js +1 -0
- package/server/public/assets/riscv-ZgswiWij.js +1 -0
- package/server/public/assets/ron-YghabWAH.js +1 -0
- package/server/public/assets/rose-pine-ByWLnVr3.js +1 -0
- package/server/public/assets/rose-pine-dawn-DBmeySrz.js +1 -0
- package/server/public/assets/rose-pine-moon-B9J-N3nK.js +1 -0
- package/server/public/assets/rosmsg-DTKmAsVH.js +1 -0
- package/server/public/assets/routes-DNxq1Fba.js +1 -0
- package/server/public/assets/routes-Dp0ODZ55.js +2 -0
- package/server/public/assets/rst-CP6xOYlY.js +1 -0
- package/server/public/assets/ruby-BXYLc1CM.js +1 -0
- package/server/public/assets/rust-nfXwuE6F.js +1 -0
- package/server/public/assets/sas-CFdtZutF.js +1 -0
- package/server/public/assets/sass-CbRjkld3.js +1 -0
- package/server/public/assets/scala-BzD3eypx.js +1 -0
- package/server/public/assets/scheme-D4d1PV1y.js +1 -0
- package/server/public/assets/scss-D8KhdObH.js +1 -0
- package/server/public/assets/sdbl-Cf-Ydnvx.js +1 -0
- package/server/public/assets/shaderlab-DGohHMiF.js +1 -0
- package/server/public/assets/shellscript-BHdEbumI.js +1 -0
- package/server/public/assets/shellsession-Dh-bxrap.js +1 -0
- package/server/public/assets/slack-dark-MszIyPZ2.js +1 -0
- package/server/public/assets/slack-ochin-tQ3Q0gE9.js +1 -0
- package/server/public/assets/smalltalk-_uWoArwn.js +1 -0
- package/server/public/assets/snazzy-light-9sniMEk5.js +1 -0
- package/server/public/assets/solarized-dark-CdD0Hxzv.js +1 -0
- package/server/public/assets/solarized-light-C-nsEdqF.js +1 -0
- package/server/public/assets/solidity-D6uC-xwP.js +1 -0
- package/server/public/assets/soy-cDuODfbT.js +1 -0
- package/server/public/assets/sparql-BgU2QITA.js +1 -0
- package/server/public/assets/splunk-LQYHRu14.js +1 -0
- package/server/public/assets/sql-CKZpK620.js +1 -0
- package/server/public/assets/ssh-config-B7BUl8Rd.js +1 -0
- package/server/public/assets/stata-BLJTbKOO.js +1 -0
- package/server/public/assets/styles-UDowwF7S.css +2 -0
- package/server/public/assets/stylus-Byjxdx_q.js +1 -0
- package/server/public/assets/surrealql-C96KvYaj.js +1 -0
- package/server/public/assets/svelte-Qnbj2GWx.js +1 -0
- package/server/public/assets/swift-BexLlMrU.js +1 -0
- package/server/public/assets/synthwave-84-BxMBwQMS.js +1 -0
- package/server/public/assets/system-verilog-DVGwm0mw.js +1 -0
- package/server/public/assets/systemd-H2IT3-p5.js +1 -0
- package/server/public/assets/talonscript-mKZIGM8n.js +1 -0
- package/server/public/assets/tasl-B7he_Ugr.js +1 -0
- package/server/public/assets/tcl-5mT3RxHH.js +1 -0
- package/server/public/assets/templ-CQPDll3D.js +1 -0
- package/server/public/assets/terraform-BZP0GLsT.js +1 -0
- package/server/public/assets/test-D7JRfog1.js +1 -0
- package/server/public/assets/tex-97QNLoBJ.js +1 -0
- package/server/public/assets/tokyo-night-CTPVdZt9.js +1 -0
- package/server/public/assets/toml-CTFA98he.js +1 -0
- package/server/public/assets/ts-tags-B8zlXe2n.js +1 -0
- package/server/public/assets/tsv-BayJtYdY.js +1 -0
- package/server/public/assets/tsx-VqRU8NCz.js +1 -0
- package/server/public/assets/turtle-TVCBh_kY.js +1 -0
- package/server/public/assets/twig-FTTF8rVk.js +1 -0
- package/server/public/assets/typescript-CuX0hIVY.js +1 -0
- package/server/public/assets/typespec-BUvaJDLF.js +1 -0
- package/server/public/assets/typst-8NBaY7Ec.js +1 -0
- package/server/public/assets/useStore-M3H8PB1v.js +1 -0
- package/server/public/assets/utils-DElCu2hq.js +1 -0
- package/server/public/assets/v-VihyTigi.js +1 -0
- package/server/public/assets/vala-DyFAPyX6.js +1 -0
- package/server/public/assets/vb-Dg1Iqi4J.js +1 -0
- package/server/public/assets/verilog-D2Xc-vhD.js +1 -0
- package/server/public/assets/vesper-DJbtqYNr.js +1 -0
- package/server/public/assets/vhdl-CU3BVeE7.js +1 -0
- package/server/public/assets/viml-hG2shuOW.js +1 -0
- package/server/public/assets/vitesse-black-DbG2gsc0.js +1 -0
- package/server/public/assets/vitesse-dark-B6WV4xXH.js +1 -0
- package/server/public/assets/vitesse-light-DC1pdD02.js +1 -0
- package/server/public/assets/vue-DXwaEU0U.js +1 -0
- package/server/public/assets/vue-html-QD7AJ6JJ.js +1 -0
- package/server/public/assets/vue-vine-Bh2m1D2Z.js +1 -0
- package/server/public/assets/vyper-C1wojIuk.js +1 -0
- package/server/public/assets/wasm-C6Y0s02M.js +1 -0
- package/server/public/assets/wasm-qTvCOSHz.js +1 -0
- package/server/public/assets/wenyan-BG5vPQF0.js +1 -0
- package/server/public/assets/wgsl-DrVb-Cub.js +1 -0
- package/server/public/assets/wikitext-PRC4s8sH.js +1 -0
- package/server/public/assets/wit-ChW5qvg_.js +1 -0
- package/server/public/assets/wolfram-B8mKuZSQ.js +1 -0
- package/server/public/assets/xml-BK-rcb5a.js +1 -0
- package/server/public/assets/xsl-dt-d2R7p.js +1 -0
- package/server/public/assets/yaml-UiXU3hGj.js +1 -0
- package/server/public/assets/zenscript-C-jEPC9j.js +1 -0
- package/server/public/assets/zig-EbnRGjcz.js +1 -0
- package/server/public/favicon.ico +0 -0
- package/server/public/logo192.png +0 -0
- package/server/public/logo512.png +0 -0
- package/server/public/manifest.json +25 -0
- package/server/public/robots.txt +3 -0
- package/server/public/tanstack-circle-logo.png +0 -0
- package/server/public/tanstack-word-logo-white.svg +1 -0
- package/server/server/_chunks/ssr-renderer.mjs +15 -0
- package/server/server/_libs/@floating-ui/core+[...].mjs +698 -0
- package/server/server/_libs/@floating-ui/dom+[...].mjs +644 -0
- package/server/server/_libs/@floating-ui/react-dom+[...].mjs +839 -0
- package/server/server/_libs/@pierre/diffs+[...].mjs +18578 -0
- package/server/server/_libs/@radix-ui/react-arrow+[...].mjs +174 -0
- package/server/server/_libs/@radix-ui/react-collection+[...].mjs +162 -0
- package/server/server/_libs/@radix-ui/react-dialog+[...].mjs +1666 -0
- package/server/server/_libs/@radix-ui/react-popper+[...].mjs +289 -0
- package/server/server/_libs/@radix-ui/react-radio-group+[...].mjs +420 -0
- package/server/server/_libs/@radix-ui/react-select+[...].mjs +990 -0
- package/server/server/_libs/@tanstack/react-router+[...].mjs +14113 -0
- package/server/server/_libs/_.mjs +2 -0
- package/server/server/_libs/chokidar+readdirp.mjs +1599 -0
- package/server/server/_libs/class-variance-authority+clsx.mjs +69 -0
- package/server/server/_libs/effect+[...].mjs +34047 -0
- package/server/server/_libs/h3+rou3+srvx.mjs +1195 -0
- package/server/server/_libs/hookable.mjs +41 -0
- package/server/server/_libs/lucide-react.mjs +298 -0
- package/server/server/_libs/pierre__theme.mjs +2668 -0
- package/server/server/_libs/radix-ui__number.mjs +6 -0
- package/server/server/_libs/radix-ui__primitive.mjs +9 -0
- package/server/server/_libs/radix-ui__react-direction.mjs +11 -0
- package/server/server/_libs/shiki.mjs +16 -0
- package/server/server/_libs/shikijs__langs.mjs +1355 -0
- package/server/server/_libs/shikijs__themes.mjs +262 -0
- package/server/server/_libs/tailwind-merge.mjs +1962 -0
- package/server/server/_libs/tanstack__history.mjs +342 -0
- package/server/server/_libs/tanstack__router-core.mjs +6 -0
- package/server/server/_libs/ufo.mjs +64 -0
- package/server/server/_reviewId-AWnOGz5k.mjs +33 -0
- package/server/server/_reviewId-Com4yOlc.mjs +29 -0
- package/server/server/_reviewId-DAhmekJ2.mjs +277 -0
- package/server/server/_reviewId-p9mhYVwa.mjs +18 -0
- package/server/server/_runtime.mjs +35 -0
- package/server/server/_ssr/action-bar-C68xGnWW.mjs +592 -0
- package/server/server/_ssr/api-handler-CstW2n82.mjs +189 -0
- package/server/server/_ssr/client-runtime-BoPuAEoA.mjs +245 -0
- package/server/server/_ssr/createServerRpc--0mcGlWK.mjs +12 -0
- package/server/server/_ssr/createSsrRpc-AwdiLXmF.mjs +16 -0
- package/server/server/_ssr/domain-rpc-3Ds9DPr0.mjs +287 -0
- package/server/server/_ssr/file-tree-CQ5w2GHh.mjs +1951 -0
- package/server/server/_ssr/load-scoped-diff-NL2XAcdz.mjs +45 -0
- package/server/server/_ssr/new-BKl_G2Ks.mjs +37 -0
- package/server/server/_ssr/new-BREdMFAM.mjs +12 -0
- package/server/server/_ssr/new-DCz5eHkb.mjs +137 -0
- package/server/server/_ssr/reviews-BL5Nsgst.mjs +7 -0
- package/server/server/_ssr/reviews-BoaEgGKs.mjs +100 -0
- package/server/server/_ssr/reviews-C7_NIhY8.mjs +19 -0
- package/server/server/_ssr/reviews-Dd69YBDa.mjs +12 -0
- package/server/server/_ssr/router-DLxN8FOm.mjs +415 -0
- package/server/server/_ssr/routes-D25G8OuS.mjs +80 -0
- package/server/server/_ssr/routes-lz0AN75A.mjs +929 -0
- package/server/server/_ssr/runtime-D9IbnMlF.mjs +1401 -0
- package/server/server/_ssr/server-runtime-D99qpmma.mjs +12 -0
- package/server/server/_ssr/ssr.mjs +5318 -0
- package/server/server/_ssr/start-BIQfOZtj.mjs +4 -0
- package/server/server/_ssr/test-CQdMYlqa.mjs +6 -0
- package/server/server/_ssr/todo-m_uUvxca.mjs +88 -0
- package/server/server/_ssr/use-keyboard-shortcuts-D5b1Mxpq.mjs +25 -0
- package/server/server/_ssr/utils-BuOt9_LA.mjs +8 -0
- package/server/server/_tanstack-start-manifest_v-CnL10NRH.mjs +71 -0
- package/server/server/index.mjs +2615 -0
- package/server/server/node_modules/detect-libc/lib/detect-libc.js +313 -0
- package/server/server/node_modules/detect-libc/lib/elf.js +39 -0
- package/server/server/node_modules/detect-libc/lib/filesystem.js +51 -0
- package/server/server/node_modules/detect-libc/lib/process.js +24 -0
- package/server/server/node_modules/detect-libc/package.json +44 -0
- package/server/server/node_modules/msgpackr-extract/index.js +1 -0
- package/server/server/node_modules/msgpackr-extract/package.json +50 -0
- package/server/server/node_modules/node-gyp-build-optional-packages/index.js +6 -0
- package/server/server/node_modules/node-gyp-build-optional-packages/node-gyp-build.js +236 -0
- package/server/server/node_modules/node-gyp-build-optional-packages/package.json +32 -0
- package/server/server/node_modules/tslib/modules/index.js +70 -0
- package/server/server/node_modules/tslib/modules/package.json +3 -0
- package/server/server/node_modules/tslib/package.json +47 -0
- package/server/server/node_modules/tslib/tslib.js +484 -0
- package/server/server/package.json +12 -0
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import { i as __toESM } from "../_runtime.mjs";
|
|
2
|
+
import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
|
|
3
|
+
import { a as createRouter, c as createFileRoute, l as createRootRoute, n as Scripts, o as Outlet, r as HeadContent, s as lazyRouteComponent } from "../_libs/@tanstack/react-router+[...].mjs";
|
|
4
|
+
import { n as require_jsx_runtime } from "../_libs/@pierre/diffs+[...].mjs";
|
|
5
|
+
import { r as createServerFn } from "./ssr.mjs";
|
|
6
|
+
import { Ct as tap, Ot as void_, St as sync, ct as ensuring, dt as gen, it as catchCause } from "../_libs/effect+[...].mjs";
|
|
7
|
+
import { s as DIFF_SCOPES } from "./todo-m_uUvxca.mjs";
|
|
8
|
+
import { a as getRingiThemeBootScript, i as clientRuntime, r as RingiThemeProvider, t as ApiClient } from "./client-runtime-BoPuAEoA.mjs";
|
|
9
|
+
import { t as createSsrRpc } from "./createSsrRpc-AwdiLXmF.mjs";
|
|
10
|
+
import { t as Route$6 } from "../_reviewId-p9mhYVwa.mjs";
|
|
11
|
+
import { t as Route$7 } from "./new-BREdMFAM.mjs";
|
|
12
|
+
import { t as useKeyboardShortcuts } from "./use-keyboard-shortcuts-D5b1Mxpq.mjs";
|
|
13
|
+
import { t as Route$8 } from "./reviews-Dd69YBDa.mjs";
|
|
14
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/router-DLxN8FOm.js
|
|
15
|
+
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
16
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
17
|
+
function CreateTodoForm({ onCreated }) {
|
|
18
|
+
const [content, setContent] = (0, import_react.useState)("");
|
|
19
|
+
const [submitting, setSubmitting] = (0, import_react.useState)(false);
|
|
20
|
+
function handleSubmit(e) {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
const trimmed = content.trim();
|
|
23
|
+
if (!trimmed || submitting) return;
|
|
24
|
+
setSubmitting(true);
|
|
25
|
+
clientRuntime.runFork(gen(function* () {
|
|
26
|
+
const { http } = yield* ApiClient;
|
|
27
|
+
return yield* http.todos.create({ payload: {
|
|
28
|
+
content: trimmed,
|
|
29
|
+
reviewId: null
|
|
30
|
+
} });
|
|
31
|
+
}).pipe(tap((todo) => sync(() => {
|
|
32
|
+
setContent("");
|
|
33
|
+
onCreated(todo);
|
|
34
|
+
})), catchCause(() => void_), ensuring(sync(() => setSubmitting(false)))));
|
|
35
|
+
}
|
|
36
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("form", {
|
|
37
|
+
onSubmit: handleSubmit,
|
|
38
|
+
className: "flex gap-2 px-4",
|
|
39
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", {
|
|
40
|
+
type: "text",
|
|
41
|
+
value: content,
|
|
42
|
+
onChange: (e) => setContent(e.target.value),
|
|
43
|
+
placeholder: "Add a todo...",
|
|
44
|
+
className: "flex-1 rounded-md border border-border-default bg-surface-primary px-3 py-1.5 text-sm text-text-primary placeholder-text-tertiary outline-none focus:border-accent-primary",
|
|
45
|
+
disabled: submitting
|
|
46
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
47
|
+
type: "submit",
|
|
48
|
+
disabled: !content.trim() || submitting,
|
|
49
|
+
className: "rounded-md bg-accent-muted px-3 py-1.5 text-sm font-medium text-accent-primary hover:bg-accent-muted disabled:opacity-40",
|
|
50
|
+
children: "Add"
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function TodoItem({ todo, onToggle, onDelete }) {
|
|
55
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
56
|
+
className: "group flex items-center gap-3 rounded-md px-3 py-2 hover:bg-surface-elevated",
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
59
|
+
type: "button",
|
|
60
|
+
onClick: () => onToggle(todo.id),
|
|
61
|
+
className: `flex h-5 w-5 shrink-0 items-center justify-center rounded border ${todo.completed ? "border-accent-primary bg-accent-muted text-accent-primary" : "border-border-strong text-transparent hover:border-text-secondary"}`,
|
|
62
|
+
"aria-label": todo.completed ? "Mark incomplete" : "Mark complete",
|
|
63
|
+
children: todo.completed && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
64
|
+
className: "h-3 w-3",
|
|
65
|
+
fill: "none",
|
|
66
|
+
viewBox: "0 0 24 24",
|
|
67
|
+
stroke: "currentColor",
|
|
68
|
+
strokeWidth: 3,
|
|
69
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
70
|
+
strokeLinecap: "round",
|
|
71
|
+
strokeLinejoin: "round",
|
|
72
|
+
d: "M5 13l4 4L19 7"
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
}),
|
|
76
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
|
|
77
|
+
className: `min-w-0 flex-1 break-words text-sm ${todo.completed ? "text-text-tertiary line-through" : "text-text-primary"}`,
|
|
78
|
+
children: todo.content
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
81
|
+
type: "button",
|
|
82
|
+
onClick: () => onDelete(todo.id),
|
|
83
|
+
className: "shrink-0 text-text-tertiary opacity-0 transition-opacity hover:text-red-400 group-hover:opacity-100",
|
|
84
|
+
"aria-label": "Delete todo",
|
|
85
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
86
|
+
className: "h-4 w-4",
|
|
87
|
+
fill: "none",
|
|
88
|
+
viewBox: "0 0 24 24",
|
|
89
|
+
stroke: "currentColor",
|
|
90
|
+
strokeWidth: 2,
|
|
91
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
92
|
+
strokeLinecap: "round",
|
|
93
|
+
strokeLinejoin: "round",
|
|
94
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
})
|
|
98
|
+
]
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function TodoPanel({ isOpen, onClose }) {
|
|
102
|
+
const [todos, setTodos] = (0, import_react.useState)([]);
|
|
103
|
+
const [stats, setStats] = (0, import_react.useState)({
|
|
104
|
+
completed: 0,
|
|
105
|
+
pending: 0,
|
|
106
|
+
total: 0
|
|
107
|
+
});
|
|
108
|
+
const panelRef = (0, import_react.useRef)(null);
|
|
109
|
+
const fetchTodos = (0, import_react.useCallback)(async () => {
|
|
110
|
+
const [todosRes, statsRes] = await Promise.all([fetch("/api/todos"), fetch("/api/todos/stats")]);
|
|
111
|
+
if (todosRes.ok) setTodos((await todosRes.json()).data ?? []);
|
|
112
|
+
if (statsRes.ok) setStats(await statsRes.json());
|
|
113
|
+
}, []);
|
|
114
|
+
(0, import_react.useEffect)(() => {
|
|
115
|
+
if (isOpen) fetchTodos();
|
|
116
|
+
}, [isOpen, fetchTodos]);
|
|
117
|
+
(0, import_react.useEffect)(() => {
|
|
118
|
+
if (!isOpen) return;
|
|
119
|
+
function onKey(e) {
|
|
120
|
+
if (e.key === "Escape") onClose();
|
|
121
|
+
}
|
|
122
|
+
document.addEventListener("keydown", onKey);
|
|
123
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
124
|
+
}, [isOpen, onClose]);
|
|
125
|
+
async function handleToggle(id) {
|
|
126
|
+
if ((await fetch(`/api/todos/${id}/toggle`, { method: "PATCH" })).ok) fetchTodos();
|
|
127
|
+
}
|
|
128
|
+
async function handleDelete(id) {
|
|
129
|
+
if ((await fetch(`/api/todos/${id}`, { method: "DELETE" })).ok) fetchTodos();
|
|
130
|
+
}
|
|
131
|
+
async function handleClearCompleted() {
|
|
132
|
+
if ((await fetch("/api/todos/completed", { method: "DELETE" })).ok) fetchTodos();
|
|
133
|
+
}
|
|
134
|
+
function handleCreated(_todo) {
|
|
135
|
+
fetchTodos();
|
|
136
|
+
}
|
|
137
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [isOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
138
|
+
className: "fixed inset-0 z-40 bg-black/50 transition-opacity",
|
|
139
|
+
onClick: onClose,
|
|
140
|
+
onKeyDown: (e) => {
|
|
141
|
+
if (e.key === "Enter" || e.key === " ") onClose();
|
|
142
|
+
},
|
|
143
|
+
role: "button",
|
|
144
|
+
tabIndex: -1,
|
|
145
|
+
"aria-label": "Close panel"
|
|
146
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
147
|
+
ref: panelRef,
|
|
148
|
+
className: `fixed inset-y-0 right-0 z-50 w-80 transform border-l border-border-default bg-surface-secondary shadow-xl transition-transform duration-200 ${isOpen ? "translate-x-0" : "translate-x-full"}`,
|
|
149
|
+
children: [
|
|
150
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
151
|
+
className: "flex items-center justify-between border-b border-border-default px-4 py-3",
|
|
152
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
153
|
+
className: "flex items-center gap-2",
|
|
154
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", {
|
|
155
|
+
className: "text-sm font-semibold text-text-primary",
|
|
156
|
+
children: "Todos"
|
|
157
|
+
}), stats.total > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
|
|
158
|
+
className: "rounded-full bg-surface-overlay px-1.5 py-px text-[10px] font-medium tabular-nums text-text-secondary",
|
|
159
|
+
children: [
|
|
160
|
+
stats.completed,
|
|
161
|
+
"/",
|
|
162
|
+
stats.total
|
|
163
|
+
]
|
|
164
|
+
}) : null]
|
|
165
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
166
|
+
type: "button",
|
|
167
|
+
onClick: onClose,
|
|
168
|
+
className: "text-text-tertiary hover:text-text-primary",
|
|
169
|
+
"aria-label": "Close panel",
|
|
170
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
|
|
171
|
+
className: "h-5 w-5",
|
|
172
|
+
fill: "none",
|
|
173
|
+
viewBox: "0 0 24 24",
|
|
174
|
+
stroke: "currentColor",
|
|
175
|
+
strokeWidth: 2,
|
|
176
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
|
|
177
|
+
strokeLinecap: "round",
|
|
178
|
+
strokeLinejoin: "round",
|
|
179
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
180
|
+
})
|
|
181
|
+
})
|
|
182
|
+
})]
|
|
183
|
+
}),
|
|
184
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
185
|
+
className: "border-b border-border-default py-3",
|
|
186
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CreateTodoForm, { onCreated: handleCreated })
|
|
187
|
+
}),
|
|
188
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
189
|
+
className: "flex-1 overflow-y-auto px-1 py-2",
|
|
190
|
+
style: { maxHeight: "calc(100vh - 160px)" },
|
|
191
|
+
children: todos.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
192
|
+
className: "px-4 py-8 text-center text-sm text-text-tertiary",
|
|
193
|
+
children: "No todos yet"
|
|
194
|
+
}) : todos.map((todo) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TodoItem, {
|
|
195
|
+
todo,
|
|
196
|
+
onToggle: handleToggle,
|
|
197
|
+
onDelete: handleDelete
|
|
198
|
+
}, todo.id))
|
|
199
|
+
}),
|
|
200
|
+
stats.completed > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
201
|
+
className: "border-t border-border-default px-4 py-3",
|
|
202
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
|
|
203
|
+
type: "button",
|
|
204
|
+
onClick: handleClearCompleted,
|
|
205
|
+
className: "w-full rounded-md bg-red-500/10 px-3 py-1.5 text-sm text-red-400 hover:bg-red-500/20",
|
|
206
|
+
children: "Clear done"
|
|
207
|
+
})
|
|
208
|
+
})
|
|
209
|
+
]
|
|
210
|
+
})] });
|
|
211
|
+
}
|
|
212
|
+
var styles_default = "/assets/styles-UDowwF7S.css";
|
|
213
|
+
var Route$5 = createRootRoute({
|
|
214
|
+
component: RootLayout,
|
|
215
|
+
head: () => ({
|
|
216
|
+
links: [{
|
|
217
|
+
href: styles_default,
|
|
218
|
+
rel: "stylesheet"
|
|
219
|
+
}],
|
|
220
|
+
meta: [
|
|
221
|
+
{ charSet: "utf8" },
|
|
222
|
+
{
|
|
223
|
+
content: "width=device-width, initial-scale=1",
|
|
224
|
+
name: "viewport"
|
|
225
|
+
},
|
|
226
|
+
{ title: "ringi" }
|
|
227
|
+
]
|
|
228
|
+
}),
|
|
229
|
+
shellComponent: RootDocument
|
|
230
|
+
});
|
|
231
|
+
function RootDocument({ children }) {
|
|
232
|
+
(0, import_react.useEffect)(() => {}, []);
|
|
233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("html", {
|
|
234
|
+
lang: "en",
|
|
235
|
+
suppressHydrationWarning: true,
|
|
236
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("head", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(HeadContent, {}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("script", { dangerouslySetInnerHTML: { __html: getRingiThemeBootScript() } })] }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("body", { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(RingiThemeProvider, { children }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Scripts, {})] })]
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
function RootLayout() {
|
|
240
|
+
const [todosOpen, setTodosOpen] = (0, import_react.useState)(false);
|
|
241
|
+
const toggleTodos = (0, import_react.useCallback)(() => setTodosOpen((prev) => !prev), []);
|
|
242
|
+
const closeTodos = (0, import_react.useCallback)(() => setTodosOpen(false), []);
|
|
243
|
+
const shortcuts = (0, import_react.useMemo)(() => [{
|
|
244
|
+
description: "Toggle Todos panel",
|
|
245
|
+
handler: toggleTodos,
|
|
246
|
+
key: "t"
|
|
247
|
+
}, {
|
|
248
|
+
description: "Show keyboard shortcuts",
|
|
249
|
+
handler: () => {
|
|
250
|
+
console.log("Keyboard shortcuts:\n t — Toggle Todos panel\n ? — Show this help\n n — New review (on Changes/Reviews pages)\n r — Go to Reviews (on Changes page)\n c — Go to Changes (on Reviews page)");
|
|
251
|
+
},
|
|
252
|
+
key: "?",
|
|
253
|
+
shift: true
|
|
254
|
+
}], [toggleTodos]);
|
|
255
|
+
useKeyboardShortcuts(todosOpen ? [] : shortcuts);
|
|
256
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
257
|
+
className: "flex h-screen flex-col bg-surface-primary",
|
|
258
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("main", {
|
|
259
|
+
className: "flex-1 overflow-hidden",
|
|
260
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Outlet, {})
|
|
261
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TodoPanel, {
|
|
262
|
+
isOpen: todosOpen,
|
|
263
|
+
onClose: closeTodos
|
|
264
|
+
})]
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
var $$splitComponentImporter$2 = () => import("./test-CQdMYlqa.mjs");
|
|
268
|
+
var Route$4 = createFileRoute("/test")({ component: lazyRouteComponent($$splitComponentImporter$2, "component") });
|
|
269
|
+
var $$splitComponentImporter$1 = () => import("./reviews-BL5Nsgst.mjs");
|
|
270
|
+
var Route$3 = createFileRoute("/reviews")({ component: lazyRouteComponent($$splitComponentImporter$1, "component") });
|
|
271
|
+
var checkDatabase = async (request) => {
|
|
272
|
+
const startedAt = Date.now();
|
|
273
|
+
try {
|
|
274
|
+
const url = new URL(request.url);
|
|
275
|
+
const target = new URL("/api/reviews", url);
|
|
276
|
+
const res = await fetch(target, {
|
|
277
|
+
headers: { accept: "application/json" },
|
|
278
|
+
method: "GET"
|
|
279
|
+
});
|
|
280
|
+
const latencyMs = Date.now() - startedAt;
|
|
281
|
+
if (!res.ok) return {
|
|
282
|
+
status: "error",
|
|
283
|
+
httpStatus: res.status,
|
|
284
|
+
latencyMs
|
|
285
|
+
};
|
|
286
|
+
await res.json();
|
|
287
|
+
return {
|
|
288
|
+
status: "connected",
|
|
289
|
+
latencyMs
|
|
290
|
+
};
|
|
291
|
+
} catch {
|
|
292
|
+
return {
|
|
293
|
+
status: "error",
|
|
294
|
+
latencyMs: Date.now() - startedAt
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
var Route$2 = createFileRoute("/health")({ server: { handlers: { GET: async ({ request }) => {
|
|
299
|
+
const deep = new URL(request.url).searchParams.get("deep") === "1";
|
|
300
|
+
const checks = {
|
|
301
|
+
status: "healthy",
|
|
302
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
303
|
+
uptime: process.uptime(),
|
|
304
|
+
memory: process.memoryUsage(),
|
|
305
|
+
version: process.env.npm_package_version ?? null,
|
|
306
|
+
database: deep ? await checkDatabase(request) : { status: "skipped" }
|
|
307
|
+
};
|
|
308
|
+
return Response.json(checks, { headers: { "cache-control": "no-store" } });
|
|
309
|
+
} } } });
|
|
310
|
+
var DEFAULT_DIFF_SCOPE = "staged";
|
|
311
|
+
var isDiffScope = (value) => typeof value === "string" && DIFF_SCOPES.includes(value);
|
|
312
|
+
var getDiffScope = (value) => isDiffScope(value) ? value : DEFAULT_DIFF_SCOPE;
|
|
313
|
+
var loadScopedDiff = createServerFn({ method: "GET" }).inputValidator((input) => {
|
|
314
|
+
return { scope: getDiffScope(input?.scope) };
|
|
315
|
+
}).handler(createSsrRpc("367245383f9546b6fd4dc5f473195892e7eabc03edaced380dedab17ad1518ad"));
|
|
316
|
+
var $$splitErrorComponentImporter = () => import("./routes-D25G8OuS.mjs");
|
|
317
|
+
var $$splitComponentImporter = () => import("./routes-lz0AN75A.mjs");
|
|
318
|
+
/** Pick the first non-binary, commentable file. */
|
|
319
|
+
var Route$1 = createFileRoute("/")({
|
|
320
|
+
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
321
|
+
errorComponent: lazyRouteComponent($$splitErrorComponentImporter, "errorComponent"),
|
|
322
|
+
loader: ({ deps }) => {
|
|
323
|
+
return loadScopedDiff({ data: { scope: getDiffScope(deps.scope) } });
|
|
324
|
+
},
|
|
325
|
+
loaderDeps: ({ search }) => ({ scope: getDiffScope(search.scope) })
|
|
326
|
+
});
|
|
327
|
+
var effectHandler = null;
|
|
328
|
+
var getHandler = async () => {
|
|
329
|
+
if (effectHandler) return effectHandler;
|
|
330
|
+
const { initApiHandler } = await import("./api-handler-CstW2n82.mjs");
|
|
331
|
+
const { handler, dispose } = await initApiHandler();
|
|
332
|
+
effectHandler = ({ request }) => handler(request, void 0);
|
|
333
|
+
const globalHmr = globalThis;
|
|
334
|
+
if (globalHmr.__EFFECT_DISPOSE__) {
|
|
335
|
+
const prevDispose = globalHmr.__EFFECT_DISPOSE__;
|
|
336
|
+
globalHmr.__EFFECT_DISPOSE__ = async () => {
|
|
337
|
+
await prevDispose();
|
|
338
|
+
await dispose();
|
|
339
|
+
};
|
|
340
|
+
} else globalHmr.__EFFECT_DISPOSE__ = dispose;
|
|
341
|
+
return effectHandler;
|
|
342
|
+
};
|
|
343
|
+
var lazyHandler = async (ctx) => {
|
|
344
|
+
return (await getHandler())(ctx);
|
|
345
|
+
};
|
|
346
|
+
var Route = createFileRoute("/api/$")({ server: { handlers: {
|
|
347
|
+
DELETE: lazyHandler,
|
|
348
|
+
GET: lazyHandler,
|
|
349
|
+
OPTIONS: lazyHandler,
|
|
350
|
+
PATCH: lazyHandler,
|
|
351
|
+
POST: lazyHandler,
|
|
352
|
+
PUT: lazyHandler
|
|
353
|
+
} } });
|
|
354
|
+
var TestRoute = Route$4.update({
|
|
355
|
+
id: "/test",
|
|
356
|
+
path: "/test",
|
|
357
|
+
getParentRoute: () => Route$5
|
|
358
|
+
});
|
|
359
|
+
var ReviewsRoute = Route$3.update({
|
|
360
|
+
id: "/reviews",
|
|
361
|
+
path: "/reviews",
|
|
362
|
+
getParentRoute: () => Route$5
|
|
363
|
+
});
|
|
364
|
+
var HealthRoute = Route$2.update({
|
|
365
|
+
id: "/health",
|
|
366
|
+
path: "/health",
|
|
367
|
+
getParentRoute: () => Route$5
|
|
368
|
+
});
|
|
369
|
+
var IndexRoute = Route$1.update({
|
|
370
|
+
id: "/",
|
|
371
|
+
path: "/",
|
|
372
|
+
getParentRoute: () => Route$5
|
|
373
|
+
});
|
|
374
|
+
var ReviewsIndexRoute = Route$8.update({
|
|
375
|
+
id: "/",
|
|
376
|
+
path: "/",
|
|
377
|
+
getParentRoute: () => ReviewsRoute
|
|
378
|
+
});
|
|
379
|
+
var ReviewsNewRoute = Route$7.update({
|
|
380
|
+
id: "/new",
|
|
381
|
+
path: "/new",
|
|
382
|
+
getParentRoute: () => ReviewsRoute
|
|
383
|
+
});
|
|
384
|
+
var ReviewsReviewIdRoute = Route$6.update({
|
|
385
|
+
id: "/$reviewId",
|
|
386
|
+
path: "/$reviewId",
|
|
387
|
+
getParentRoute: () => ReviewsRoute
|
|
388
|
+
});
|
|
389
|
+
var ApiSplatRoute = Route.update({
|
|
390
|
+
id: "/api/$",
|
|
391
|
+
path: "/api/$",
|
|
392
|
+
getParentRoute: () => Route$5
|
|
393
|
+
});
|
|
394
|
+
var ReviewsRouteChildren = {
|
|
395
|
+
ReviewsReviewIdRoute,
|
|
396
|
+
ReviewsNewRoute,
|
|
397
|
+
ReviewsIndexRoute
|
|
398
|
+
};
|
|
399
|
+
var rootRouteChildren = {
|
|
400
|
+
IndexRoute,
|
|
401
|
+
HealthRoute,
|
|
402
|
+
ReviewsRoute: ReviewsRoute._addFileChildren(ReviewsRouteChildren),
|
|
403
|
+
TestRoute,
|
|
404
|
+
ApiSplatRoute
|
|
405
|
+
};
|
|
406
|
+
var routeTree = Route$5._addFileChildren(rootRouteChildren)._addFileTypes();
|
|
407
|
+
var getRouter = () => {
|
|
408
|
+
return createRouter({
|
|
409
|
+
defaultPreloadStaleTime: 0,
|
|
410
|
+
routeTree,
|
|
411
|
+
scrollRestoration: true
|
|
412
|
+
});
|
|
413
|
+
};
|
|
414
|
+
//#endregion
|
|
415
|
+
export { getRouter };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { i as __toESM } from "../_runtime.mjs";
|
|
2
|
+
import { u as require_react } from "../_libs/@floating-ui/react-dom+[...].mjs";
|
|
3
|
+
import { n as require_jsx_runtime } from "../_libs/@pierre/diffs+[...].mjs";
|
|
4
|
+
import { t as cva } from "../_libs/class-variance-authority+clsx.mjs";
|
|
5
|
+
import { t as cn } from "./utils-BuOt9_LA.mjs";
|
|
6
|
+
import { i as Slot } from "../_libs/@radix-ui/react-arrow+[...].mjs";
|
|
7
|
+
//#region node_modules/.nitro/vite/services/ssr/assets/routes-D25G8OuS.js
|
|
8
|
+
var import_react = /* @__PURE__ */ __toESM(require_react());
|
|
9
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
10
|
+
var buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
11
|
+
defaultVariants: {
|
|
12
|
+
size: "default",
|
|
13
|
+
variant: "default"
|
|
14
|
+
},
|
|
15
|
+
variants: {
|
|
16
|
+
size: {
|
|
17
|
+
default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
18
|
+
icon: "size-8",
|
|
19
|
+
"icon-lg": "size-9",
|
|
20
|
+
"icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
|
|
21
|
+
"icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
|
|
22
|
+
lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
|
|
23
|
+
sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
|
|
24
|
+
xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3"
|
|
25
|
+
},
|
|
26
|
+
variant: {
|
|
27
|
+
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
28
|
+
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
29
|
+
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
30
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
31
|
+
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
32
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
function Button({ className, variant = "default", size = "default", asChild = false, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(asChild ? Slot : "button", {
|
|
38
|
+
"data-slot": "button",
|
|
39
|
+
"data-variant": variant,
|
|
40
|
+
"data-size": size,
|
|
41
|
+
className: cn(buttonVariants({
|
|
42
|
+
className,
|
|
43
|
+
size,
|
|
44
|
+
variant
|
|
45
|
+
})),
|
|
46
|
+
...props
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/** Pick the first non-binary, commentable file. */
|
|
50
|
+
var IndexError = ({ error }) => {
|
|
51
|
+
const message = error instanceof Error ? error.message : "Unable to load changes";
|
|
52
|
+
const handleRetry = (0, import_react.useCallback)(() => {
|
|
53
|
+
window.location.reload();
|
|
54
|
+
}, []);
|
|
55
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
56
|
+
className: "flex h-full items-center justify-center",
|
|
57
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
|
|
58
|
+
className: "rounded-sm border border-border-default bg-surface-elevated p-8 text-center",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
61
|
+
className: "text-sm font-medium text-status-error",
|
|
62
|
+
children: "Error"
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
65
|
+
className: "mt-2 text-xs text-text-secondary",
|
|
66
|
+
children: message
|
|
67
|
+
}),
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {
|
|
69
|
+
className: "mt-4",
|
|
70
|
+
onClick: handleRetry,
|
|
71
|
+
size: "sm",
|
|
72
|
+
variant: "outline",
|
|
73
|
+
children: "Retry"
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
//#endregion
|
|
80
|
+
export { IndexError as errorComponent };
|