@phake/lanework 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/cli.mjs +58 -0
- package/dist-local/client/android-chrome-192x192.png +0 -0
- package/dist-local/client/android-chrome-512x512.png +0 -0
- package/dist-local/client/apple-touch-icon.png +0 -0
- package/dist-local/client/assets/Tag01Icon-DNgtGZ3r.js +1 -0
- package/dist-local/client/assets/abap-CLvhMVsD.js +1 -0
- package/dist-local/client/assets/actionscript-3--17pq3dv.js +1 -0
- package/dist-local/client/assets/ada-C5qYipkI.js +1 -0
- package/dist-local/client/assets/andromeeda-vGVdxbeo.js +1 -0
- package/dist-local/client/assets/angular-html-DrvEcI8G.js +1 -0
- package/dist-local/client/assets/angular-ts-D8CUV3s9.js +1 -0
- package/dist-local/client/assets/apache-U0d_L8uA.js +1 -0
- package/dist-local/client/assets/apex-VAyPSnFM.js +1 -0
- package/dist-local/client/assets/apl-PcM4Dp7k.js +1 -0
- package/dist-local/client/assets/app-DMYVKfjU.css +2 -0
- package/dist-local/client/assets/applescript-CCn79oCD.js +1 -0
- package/dist-local/client/assets/ara-4CJ0cIlV.js +1 -0
- package/dist-local/client/assets/asciidoc-DE70LPWp.js +1 -0
- package/dist-local/client/assets/asm-Cmm7eHzH.js +1 -0
- package/dist-local/client/assets/astro-DcteBnKj.js +1 -0
- package/dist-local/client/assets/aurora-x-CDeNXAV0.js +1 -0
- package/dist-local/client/assets/awk-BWXHIvNe.js +1 -0
- package/dist-local/client/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/dist-local/client/assets/ayu-light-C3h-C4tm.js +1 -0
- package/dist-local/client/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/dist-local/client/assets/ballerina-B7ZEbQpA.js +1 -0
- package/dist-local/client/assets/bat-Bo4NYOV-.js +1 -0
- package/dist-local/client/assets/beancount-D-usSTwE.js +1 -0
- package/dist-local/client/assets/berry-DKpUyyne.js +1 -0
- package/dist-local/client/assets/bibtex-Ci_nEsc7.js +1 -0
- package/dist-local/client/assets/bicep-CUHmPFLl.js +1 -0
- package/dist-local/client/assets/bird2-C6vDhewU.js +1 -0
- package/dist-local/client/assets/blade-6YnoPBU8.js +1 -0
- package/dist-local/client/assets/board._owner._repo-DyrvTwhk.js +1 -0
- package/dist-local/client/assets/board._owner._repo-hvj6B94q.js +38 -0
- package/dist-local/client/assets/bsl-BkkzgIyY.js +1 -0
- package/dist-local/client/assets/c-PpPxyn8g.js +1 -0
- package/dist-local/client/assets/c3-BFHwR3_K.js +1 -0
- package/dist-local/client/assets/cadence-CQ2zXKGN.js +1 -0
- package/dist-local/client/assets/cairo-DLTphjLi.js +1 -0
- package/dist-local/client/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
- package/dist-local/client/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
- package/dist-local/client/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
- package/dist-local/client/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
- package/dist-local/client/assets/chunk-Cyuzqnbw.js +1 -0
- package/dist-local/client/assets/clarity-SemFz856.js +1 -0
- package/dist-local/client/assets/clojure-DqKBuwfJ.js +1 -0
- package/dist-local/client/assets/cmake-Bj61d0ZC.js +1 -0
- package/dist-local/client/assets/cobol-IOjEjPmG.js +1 -0
- package/dist-local/client/assets/codeowners-C8r90Shi.js +1 -0
- package/dist-local/client/assets/codeql-oeQT6MSM.js +1 -0
- package/dist-local/client/assets/coffee-B5TREocO.js +1 -0
- package/dist-local/client/assets/common-lisp-Cv5bFMCO.js +1 -0
- package/dist-local/client/assets/coq-BrsZFFmf.js +1 -0
- package/dist-local/client/assets/cpp-C4ceAJBi.js +1 -0
- package/dist-local/client/assets/crystal-CgtjlE18.js +1 -0
- package/dist-local/client/assets/csharp-oqKa8noW.js +1 -0
- package/dist-local/client/assets/css-Dflf0SUa.js +1 -0
- package/dist-local/client/assets/csv-Dx-8-gkx.js +1 -0
- package/dist-local/client/assets/cue-CE9AQfxI.js +1 -0
- package/dist-local/client/assets/cypher-ClKdZ_lG.js +1 -0
- package/dist-local/client/assets/d-qD-0Kul2.js +1 -0
- package/dist-local/client/assets/dark-plus-Cs2F2srj.js +1 -0
- package/dist-local/client/assets/dart-CnvKMtbv.js +1 -0
- package/dist-local/client/assets/dax-BkyTk9wS.js +1 -0
- package/dist-local/client/assets/desktop-Dlh5hvp9.js +1 -0
- package/dist-local/client/assets/diff-woXpYk--.js +1 -0
- package/dist-local/client/assets/dist-DZ2bn-Z6.js +153 -0
- package/dist-local/client/assets/docker-IyjqRm3v.js +1 -0
- package/dist-local/client/assets/dotenv-_5a1GRtc.js +1 -0
- package/dist-local/client/assets/dracula-BHWKrbxM.js +1 -0
- package/dist-local/client/assets/dracula-soft-5eyTD99u.js +1 -0
- package/dist-local/client/assets/dream-maker-DW3nJb8Q.js +1 -0
- package/dist-local/client/assets/edge-DoVTVjme.js +1 -0
- package/dist-local/client/assets/elixir-CzgPtVDf.js +1 -0
- package/dist-local/client/assets/elm-Cm7sFdI1.js +1 -0
- package/dist-local/client/assets/emacs-lisp-B4R74twV.js +1 -0
- package/dist-local/client/assets/erb-p0q977En.js +1 -0
- package/dist-local/client/assets/erlang-Cphh6RMH.js +1 -0
- package/dist-local/client/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/dist-local/client/assets/everforest-light-Df2xbC6M.js +1 -0
- package/dist-local/client/assets/fennel-DQxkIbk2.js +1 -0
- package/dist-local/client/assets/fish-BJitypiv.js +1 -0
- package/dist-local/client/assets/fluent-C03EYrpw.js +1 -0
- package/dist-local/client/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
- package/dist-local/client/assets/fortran-free-form-CYNrtFtB.js +1 -0
- package/dist-local/client/assets/fsharp-D13ZGOAj.js +1 -0
- package/dist-local/client/assets/gdresource-C0sCabJj.js +1 -0
- package/dist-local/client/assets/gdscript-Cp2uCuqX.js +1 -0
- package/dist-local/client/assets/gdshader-CBce3t8t.js +1 -0
- package/dist-local/client/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dist-local/client/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dist-local/client/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dist-local/client/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist-local/client/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/dist-local/client/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/dist-local/client/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/dist-local/client/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/dist-local/client/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/dist-local/client/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/dist-local/client/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dist-local/client/assets/gemini-2_FJD5P-.js +1 -0
- package/dist-local/client/assets/genie-CV2tkWYe.js +1 -0
- package/dist-local/client/assets/gherkin-DExj1W_8.js +1 -0
- package/dist-local/client/assets/git-commit-BSykSTBG.js +1 -0
- package/dist-local/client/assets/git-rebase-D2tSwjJb.js +1 -0
- package/dist-local/client/assets/github-dark-C-LZuMrd.js +1 -0
- package/dist-local/client/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/dist-local/client/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/dist-local/client/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/dist-local/client/assets/github-light-EUqPIrTm.js +1 -0
- package/dist-local/client/assets/github-light-default-BXViO-2h.js +1 -0
- package/dist-local/client/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/dist-local/client/assets/gleam-CSRkHgEL.js +1 -0
- package/dist-local/client/assets/glimmer-js-JMWzPMQ2.js +1 -0
- package/dist-local/client/assets/glimmer-ts-DG5GCT78.js +1 -0
- package/dist-local/client/assets/glsl-MPwHyiXQ.js +1 -0
- package/dist-local/client/assets/gn-ilITqXS6.js +1 -0
- package/dist-local/client/assets/gnuplot-7GGW24-e.js +1 -0
- package/dist-local/client/assets/go-rLFTqkRN.js +1 -0
- package/dist-local/client/assets/graphql-NW854Khs.js +1 -0
- package/dist-local/client/assets/groovy-CacY0gHj.js +1 -0
- package/dist-local/client/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/dist-local/client/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/dist-local/client/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/dist-local/client/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/dist-local/client/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/dist-local/client/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/dist-local/client/assets/guide-BXJBZbQA.js +115 -0
- package/dist-local/client/assets/hack-C4J_0T1S.js +1 -0
- package/dist-local/client/assets/haml-qGg_91I2.js +1 -0
- package/dist-local/client/assets/handlebars-BU7OV8YS.js +1 -0
- package/dist-local/client/assets/haskell-D8IpX4py.js +1 -0
- package/dist-local/client/assets/haxe-OTjmBuCE.js +1 -0
- package/dist-local/client/assets/hcl-Dh228itO.js +1 -0
- package/dist-local/client/assets/hjson-CxZEssPk.js +1 -0
- package/dist-local/client/assets/hlsl-Cvrh5tZx.js +1 -0
- package/dist-local/client/assets/horizon-CE9ld1lL.js +1 -0
- package/dist-local/client/assets/horizon-bright-DSNQnXHK.js +1 -0
- package/dist-local/client/assets/houston-CsvMBhTu.js +1 -0
- package/dist-local/client/assets/html-derivative-CWPAmHEG.js +1 -0
- package/dist-local/client/assets/html-x4KE3xEi.js +1 -0
- package/dist-local/client/assets/http-HvMG3K54.js +1 -0
- package/dist-local/client/assets/hurl-CLh1t2ES.js +1 -0
- package/dist-local/client/assets/hxml-B0Qn7Nwc.js +1 -0
- package/dist-local/client/assets/hy-CZbG8q4J.js +1 -0
- package/dist-local/client/assets/imba-DsUTQ-LC.js +1 -0
- package/dist-local/client/assets/index-TbIMjf2L.js +12 -0
- package/dist-local/client/assets/ini-B5eOa1yu.js +1 -0
- package/dist-local/client/assets/java-Cst_eZTE.js +1 -0
- package/dist-local/client/assets/javascript-i_rUTyCW.js +1 -0
- package/dist-local/client/assets/jinja-ISwn25cN.js +1 -0
- package/dist-local/client/assets/jison-D9Fg2JgN.js +1 -0
- package/dist-local/client/assets/json-DS5j4FfK.js +1 -0
- package/dist-local/client/assets/json5-BR5RXkoi.js +1 -0
- package/dist-local/client/assets/jsonc-CYpm1nAK.js +1 -0
- package/dist-local/client/assets/jsonl-CmCQp5Yx.js +1 -0
- package/dist-local/client/assets/jsonnet-CJTPZ8u_.js +1 -0
- package/dist-local/client/assets/jssm-DXw9l8Rf.js +1 -0
- package/dist-local/client/assets/jsx-CFyhNHav.js +1 -0
- package/dist-local/client/assets/julia-BRnC1exM.js +1 -0
- package/dist-local/client/assets/just-BWbKChh7.js +1 -0
- package/dist-local/client/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
- package/dist-local/client/assets/kanagawa-lotus-BN08jTvb.js +1 -0
- package/dist-local/client/assets/kanagawa-wave-CTweb8Dz.js +1 -0
- package/dist-local/client/assets/kdl-CsD5j6eV.js +1 -0
- package/dist-local/client/assets/kotlin-DhhofPvG.js +1 -0
- package/dist-local/client/assets/kusto-C7mF5XQf.js +1 -0
- package/dist-local/client/assets/laserwave-C_8bwKvT.js +1 -0
- package/dist-local/client/assets/latex-DoFV6f5B.js +1 -0
- package/dist-local/client/assets/lean-CewbzKMR.js +1 -0
- package/dist-local/client/assets/less-DVTAwKKz.js +1 -0
- package/dist-local/client/assets/light-plus-DVQuIRkW.js +1 -0
- package/dist-local/client/assets/link-CUk1Z0N6.js +1 -0
- package/dist-local/client/assets/liquid-BGxpJKqJ.js +1 -0
- package/dist-local/client/assets/llvm-Cm23YOpf.js +1 -0
- package/dist-local/client/assets/log-BNLmms1o.js +1 -0
- package/dist-local/client/assets/logo-Cluzi2Zq.js +1 -0
- package/dist-local/client/assets/lua-VoGSg0xb.js +1 -0
- package/dist-local/client/assets/luau-FMPmPwt6.js +1 -0
- package/dist-local/client/assets/make-Dixweg8N.js +1 -0
- package/dist-local/client/assets/markdown-BYOwaDjH.js +1 -0
- package/dist-local/client/assets/marko-E8KxKzjy.js +1 -0
- package/dist-local/client/assets/material-theme-Bm3Qr25_.js +1 -0
- package/dist-local/client/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/dist-local/client/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/dist-local/client/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/dist-local/client/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/dist-local/client/assets/matlab-D7qyCx1q.js +1 -0
- package/dist-local/client/assets/mdc-ytrN0-8H.js +1 -0
- package/dist-local/client/assets/mdx-DQZ5AkYe.js +1 -0
- package/dist-local/client/assets/mermaid-Bk4SNUv9.js +1 -0
- package/dist-local/client/assets/min-dark-BSWPekZh.js +1 -0
- package/dist-local/client/assets/min-light-DDpmG2fV.js +1 -0
- package/dist-local/client/assets/mipsasm-BMqwQI7S.js +1 -0
- package/dist-local/client/assets/mojo-BgCJLMeH.js +1 -0
- package/dist-local/client/assets/monokai-CdkpiU2Y.js +1 -0
- package/dist-local/client/assets/moonbit-CaWjb8XO.js +1 -0
- package/dist-local/client/assets/move-B1IS1UjX.js +1 -0
- package/dist-local/client/assets/narrat-_X_XdTYD.js +1 -0
- package/dist-local/client/assets/nextflow-BJtWHP5T.js +1 -0
- package/dist-local/client/assets/nextflow-groovy-DJMQeKeT.js +1 -0
- package/dist-local/client/assets/nginx-CgHaWcsO.js +1 -0
- package/dist-local/client/assets/night-owl-DhmEMT88.js +1 -0
- package/dist-local/client/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/dist-local/client/assets/nim-xKCzf2o0.js +1 -0
- package/dist-local/client/assets/nix-IvuFDN5E.js +1 -0
- package/dist-local/client/assets/nord-Cb4Vim4T.js +1 -0
- package/dist-local/client/assets/nushell-DcLAeLz5.js +1 -0
- package/dist-local/client/assets/objective-c-D1A_Heim.js +1 -0
- package/dist-local/client/assets/objective-cpp-BsSzOQcm.js +1 -0
- package/dist-local/client/assets/ocaml-O90oeIOV.js +1 -0
- package/dist-local/client/assets/odin-B1RWQWA5.js +1 -0
- package/dist-local/client/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/dist-local/client/assets/one-light-D7Lr4KcI.js +1 -0
- package/dist-local/client/assets/openscad-BUDT5pXO.js +1 -0
- package/dist-local/client/assets/pascal-4ZHwLPI5.js +1 -0
- package/dist-local/client/assets/perl-CAUsHq6V.js +1 -0
- package/dist-local/client/assets/php-Cn4rjz2P.js +1 -0
- package/dist-local/client/assets/pkl-ot-7Btpt.js +1 -0
- package/dist-local/client/assets/plastic-DQwYfKfQ.js +1 -0
- package/dist-local/client/assets/plsql-DGHpHOYJ.js +1 -0
- package/dist-local/client/assets/po-BiJDBrnU.js +1 -0
- package/dist-local/client/assets/poimandres-DRFjx7u4.js +1 -0
- package/dist-local/client/assets/polar-C7UOKdEL.js +1 -0
- package/dist-local/client/assets/postcss-BXeXVLqQ.js +1 -0
- package/dist-local/client/assets/powerquery-DNMTfnFr.js +1 -0
- package/dist-local/client/assets/powershell-DshXNtvi.js +1 -0
- package/dist-local/client/assets/prisma-BsRQq5mF.js +1 -0
- package/dist-local/client/assets/prolog-iXnhIJG7.js +1 -0
- package/dist-local/client/assets/proto-DB4EqR-F.js +1 -0
- package/dist-local/client/assets/pug-DD9HHTGS.js +1 -0
- package/dist-local/client/assets/puppet-CDv2pdJW.js +1 -0
- package/dist-local/client/assets/purescript-9MfHhQsQ.js +1 -0
- package/dist-local/client/assets/python-gzcpVVnB.js +1 -0
- package/dist-local/client/assets/qml-DcW_sT3t.js +1 -0
- package/dist-local/client/assets/qmldir-DCQb3MpD.js +1 -0
- package/dist-local/client/assets/qss-Fe1Jh2GI.js +1 -0
- package/dist-local/client/assets/r-D2d3McyU.js +1 -0
- package/dist-local/client/assets/racket-DcIDlBhZ.js +1 -0
- package/dist-local/client/assets/raku-B3gFvitq.js +1 -0
- package/dist-local/client/assets/razor-30Cugjh2.js +1 -0
- package/dist-local/client/assets/red-CJ3rzSJv.js +1 -0
- package/dist-local/client/assets/reg-CRGYupPL.js +1 -0
- package/dist-local/client/assets/regexp-Bu0flJgP.js +1 -0
- package/dist-local/client/assets/rel-BtDbiS_P.js +1 -0
- package/dist-local/client/assets/review-status-RAnd_eAC.js +43 -0
- package/dist-local/client/assets/reviews-core-BKrjFeCa.js +1 -0
- package/dist-local/client/assets/riscv-Ckw8ddFX.js +1 -0
- package/dist-local/client/assets/ron-VUp2lXgN.js +1 -0
- package/dist-local/client/assets/rose-pine-BthvhNj6.js +1 -0
- package/dist-local/client/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
- package/dist-local/client/assets/rose-pine-moon-hon4tzzS.js +1 -0
- package/dist-local/client/assets/rosmsg-CAekHB0j.js +1 -0
- package/dist-local/client/assets/routes-DhFdKFMi.js +12 -0
- package/dist-local/client/assets/rst-BIOjc2k6.js +1 -0
- package/dist-local/client/assets/ruby-BA7kcl5p.js +1 -0
- package/dist-local/client/assets/rust-Cfkwpbl8.js +1 -0
- package/dist-local/client/assets/sas-BHVT2N5I.js +1 -0
- package/dist-local/client/assets/sass-DXrisJhu.js +1 -0
- package/dist-local/client/assets/scala-DKOlJaKm.js +1 -0
- package/dist-local/client/assets/scheme-DQCgrYNe.js +1 -0
- package/dist-local/client/assets/scss-DdIrFDxD.js +1 -0
- package/dist-local/client/assets/sdbl-bTVj8UrX.js +1 -0
- package/dist-local/client/assets/shaderlab-TOUzSsQk.js +1 -0
- package/dist-local/client/assets/shellscript-BbTp1yjG.js +1 -0
- package/dist-local/client/assets/shellsession-BmAC8SMF.js +1 -0
- package/dist-local/client/assets/slack-dark-DnToyrRv.js +1 -0
- package/dist-local/client/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/dist-local/client/assets/smalltalk-B16xEiuN.js +1 -0
- package/dist-local/client/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/dist-local/client/assets/solarized-dark-DV17i1UV.js +1 -0
- package/dist-local/client/assets/solarized-light-DSh2HLQt.js +1 -0
- package/dist-local/client/assets/solidity-CKzVLygQ.js +1 -0
- package/dist-local/client/assets/soy-B5vCsGAN.js +1 -0
- package/dist-local/client/assets/sparql-D_iOobhT.js +1 -0
- package/dist-local/client/assets/splunk-BC2Px7Mm.js +1 -0
- package/dist-local/client/assets/sql-DCFvu5RM.js +1 -0
- package/dist-local/client/assets/ssh-config-BgfXC-Er.js +1 -0
- package/dist-local/client/assets/stata-h02h04e7.js +1 -0
- package/dist-local/client/assets/stylus-B6D30XZt.js +1 -0
- package/dist-local/client/assets/surrealql-DxccxuMd.js +1 -0
- package/dist-local/client/assets/svelte-CsxBlEum.js +1 -0
- package/dist-local/client/assets/swift-DonLKvLd.js +1 -0
- package/dist-local/client/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/dist-local/client/assets/system-verilog-DJ5XKQeo.js +1 -0
- package/dist-local/client/assets/systemd-BxMlprV5.js +1 -0
- package/dist-local/client/assets/talonscript-CohzipZa.js +1 -0
- package/dist-local/client/assets/tasl-DMoTqEGO.js +1 -0
- package/dist-local/client/assets/tcl-CZd0xW_V.js +1 -0
- package/dist-local/client/assets/templ-DmkwoHql.js +1 -0
- package/dist-local/client/assets/terraform-DswuEJGm.js +1 -0
- package/dist-local/client/assets/tex-B0f_hYr8.js +1 -0
- package/dist-local/client/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/dist-local/client/assets/toml-CcmNWLt0.js +1 -0
- package/dist-local/client/assets/ts-tags-CTs7_HT0.js +1 -0
- package/dist-local/client/assets/tsv-sltzmVWM.js +1 -0
- package/dist-local/client/assets/tsx-DFvk7AwW.js +1 -0
- package/dist-local/client/assets/turtle-ByJddavk.js +1 -0
- package/dist-local/client/assets/twig-DgtEA5Er.js +1 -0
- package/dist-local/client/assets/typescript-DHTLvXzV.js +1 -0
- package/dist-local/client/assets/typespec-BRdr0IET.js +1 -0
- package/dist-local/client/assets/typst-DI99ib-x.js +1 -0
- package/dist-local/client/assets/v-DETTlOr0.js +1 -0
- package/dist-local/client/assets/vala-zf12oZj6.js +1 -0
- package/dist-local/client/assets/vb-Djn5o6TS.js +1 -0
- package/dist-local/client/assets/verilog-CiiDBU1e.js +1 -0
- package/dist-local/client/assets/vesper-DdrHHSXu.js +1 -0
- package/dist-local/client/assets/vhdl-BroJfC0k.js +1 -0
- package/dist-local/client/assets/viml-DvXPmvsu.js +1 -0
- package/dist-local/client/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/dist-local/client/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/dist-local/client/assets/vitesse-light-VbXTXTou.js +1 -0
- package/dist-local/client/assets/vue-CUpaeZ-j.js +1 -0
- package/dist-local/client/assets/vue-html-DQch_7VQ.js +1 -0
- package/dist-local/client/assets/vue-vine-BCPDker4.js +1 -0
- package/dist-local/client/assets/vyper-CgoNMtux.js +1 -0
- package/dist-local/client/assets/wasm-BnjxR4X6.js +1 -0
- package/dist-local/client/assets/wasm-ByWQv1Qj.js +1 -0
- package/dist-local/client/assets/wenyan-C8pVoKbM.js +1 -0
- package/dist-local/client/assets/wgsl-BsKzXJz4.js +1 -0
- package/dist-local/client/assets/wikitext-ClFFjSW2.js +1 -0
- package/dist-local/client/assets/wit-DdvCle-K.js +1 -0
- package/dist-local/client/assets/wolfram-DLL8P-h_.js +1 -0
- package/dist-local/client/assets/xml-C33zriiW.js +1 -0
- package/dist-local/client/assets/xsl-BFS2wyMt.js +1 -0
- package/dist-local/client/assets/yaml-w0rMsuN4.js +1 -0
- package/dist-local/client/assets/zenscript-BnlCZFoB.js +1 -0
- package/dist-local/client/assets/zig-CMLA9XwU.js +1 -0
- package/dist-local/client/favicon-16x16.png +0 -0
- package/dist-local/client/favicon-32x32.png +0 -0
- package/dist-local/client/favicon.ico +0 -0
- package/dist-local/client/logo.png +0 -0
- package/dist-local/client/og.png +0 -0
- package/dist-local/client/og.svg +46 -0
- package/dist-local/client/robots.txt +4 -0
- package/dist-local/client/site.webmanifest +11 -0
- package/dist-local/client/sitemap.xml +13 -0
- package/dist-local/server/assets/__root-DimVnCpV.js +17 -0
- package/dist-local/server/assets/_tanstack-start-manifest_v-CNDxZb5c.js +56 -0
- package/dist-local/server/assets/auth-CtuIV0ur.js +40490 -0
- package/dist-local/server/assets/board._owner._repo-BgLMPzjG.js +832 -0
- package/dist-local/server/assets/board._owner._repo-BxCYRjn3.js +25 -0
- package/dist-local/server/assets/board._owner._repo-WPs_mhzX.js +128 -0
- package/dist-local/server/assets/bun-sqlite-dialect-BW9W1_Ps-C3nGW4Q3.js +163 -0
- package/dist-local/server/assets/core-RrmWoKne.js +5 -0
- package/dist-local/server/assets/createServerRpc-CpE5MlHa.js +12 -0
- package/dist-local/server/assets/d1-sqlite-dialect-BLC8LXE6-DXI0R5Oj.js +112 -0
- package/dist-local/server/assets/default-query-compiler-PEcjLdrv.js +1719 -0
- package/dist-local/server/assets/dist-CMO4nMbf.js +342 -0
- package/dist-local/server/assets/empty-plugin-adapters-CrnNP3b2.js +5 -0
- package/dist-local/server/assets/env-impl-DoaQIVbP.js +297 -0
- package/dist-local/server/assets/gemini-DkmTawm4.js +514 -0
- package/dist-local/server/assets/github-cUIlMgs7.js +251 -0
- package/dist-local/server/assets/guide--QQ0qbuz.js +534 -0
- package/dist-local/server/assets/guide-DZLtOn4o.js +49 -0
- package/dist-local/server/assets/kysely-adapter-RaEPPBf_.js +2 -0
- package/dist-local/server/assets/kysely-migration-tables-JkVUjPF_-DAJvukps.js +19 -0
- package/dist-local/server/assets/local-fs-BDgGK9ve.js +61 -0
- package/dist-local/server/assets/node-sqlite-dialect-COyVl62m.js +163 -0
- package/dist-local/server/assets/review-status-CdlhgE_Y.js +1501 -0
- package/dist-local/server/assets/reviews-BOK_eOYa.js +194 -0
- package/dist-local/server/assets/router-CaG3M3Zu.js +188 -0
- package/dist-local/server/assets/routes-BBbg2JyL.js +1036 -0
- package/dist-local/server/assets/routes-BlJSk7OV.js +27 -0
- package/dist-local/server/assets/skeleton-Cpl83ip3.js +93 -0
- package/dist-local/server/assets/start-BJllm2D8.js +4 -0
- package/dist-local/server/server.js +5778 -0
- package/package.json +62 -0
- package/server.mjs +160 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { f as createAdapterFactory, p as logger } from "./auth-CtuIV0ur.js";
|
|
2
|
+
//#region ../../node_modules/.bun/@better-auth+memory-adapter@1.6.20+4fd37f7b742805ac/node_modules/@better-auth/memory-adapter/dist/index.mjs
|
|
3
|
+
/**
|
|
4
|
+
* Case-insensitive in-memory comparison helpers.
|
|
5
|
+
* Used when evaluating where clauses in the memory adapter.
|
|
6
|
+
*/
|
|
7
|
+
function insensitiveCompare(a, b) {
|
|
8
|
+
if (typeof a === "string" && typeof b === "string") return a.toLowerCase() === b.toLowerCase();
|
|
9
|
+
return a === b;
|
|
10
|
+
}
|
|
11
|
+
function insensitiveIn(recordVal, values) {
|
|
12
|
+
if (typeof recordVal !== "string") return values.includes(recordVal);
|
|
13
|
+
return values.some((v) => typeof v === "string" && recordVal.toLowerCase() === v.toLowerCase());
|
|
14
|
+
}
|
|
15
|
+
function insensitiveNotIn(recordVal, values) {
|
|
16
|
+
return !insensitiveIn(recordVal, values);
|
|
17
|
+
}
|
|
18
|
+
function insensitiveContains(recordVal, value) {
|
|
19
|
+
if (typeof recordVal !== "string" || typeof value !== "string") return false;
|
|
20
|
+
return recordVal.toLowerCase().includes(value.toLowerCase());
|
|
21
|
+
}
|
|
22
|
+
function insensitiveStartsWith(recordVal, value) {
|
|
23
|
+
if (typeof recordVal !== "string" || typeof value !== "string") return false;
|
|
24
|
+
return recordVal.toLowerCase().startsWith(value.toLowerCase());
|
|
25
|
+
}
|
|
26
|
+
function insensitiveEndsWith(recordVal, value) {
|
|
27
|
+
if (typeof recordVal !== "string" || typeof value !== "string") return false;
|
|
28
|
+
return recordVal.toLowerCase().endsWith(value.toLowerCase());
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Index a table's rows by their `id` for row-level reconciliation. Every
|
|
32
|
+
* better-auth row carries an `id` (the adapter's join logic already keys on
|
|
33
|
+
* `record.id`), so the id is a stable identity for the three-way merge.
|
|
34
|
+
*/
|
|
35
|
+
function indexById(rows) {
|
|
36
|
+
const byId = /* @__PURE__ */ new Map();
|
|
37
|
+
for (const row of rows) byId.set(row.id, row);
|
|
38
|
+
return byId;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Commit a transaction onto the live database with a three-way merge so a
|
|
42
|
+
* concurrent write that interleaved at an `await` point survives.
|
|
43
|
+
*
|
|
44
|
+
* `base` is the snapshot taken when the transaction started; `clone` is that
|
|
45
|
+
* snapshot after the transaction mutated it; `target` is the live database as
|
|
46
|
+
* it stands now (possibly carrying concurrent writes). Replaying only the
|
|
47
|
+
* `base -> clone` delta onto `target` applies the transaction's own creates,
|
|
48
|
+
* updates, and deletes without disturbing rows or tables the transaction never
|
|
49
|
+
* touched. A row the transaction did not change keeps the live version, so a
|
|
50
|
+
* concurrent edit to a different row is preserved. A row the transaction did
|
|
51
|
+
* change wins last-writer-wins over a concurrent edit to the same row, which is
|
|
52
|
+
* acceptable for an in-memory development adapter; isolation is guaranteed only
|
|
53
|
+
* at row/table granularity.
|
|
54
|
+
*
|
|
55
|
+
* `target` is mutated in place so any reference held elsewhere (for example the
|
|
56
|
+
* `db` object the caller passed to `memoryAdapter`) stays valid.
|
|
57
|
+
*/
|
|
58
|
+
function mergeTransactionInto(target, base, clone) {
|
|
59
|
+
const models = new Set([...Object.keys(base), ...Object.keys(clone)]);
|
|
60
|
+
for (const model of models) {
|
|
61
|
+
if (!(model in clone)) {
|
|
62
|
+
delete target[model];
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const baseById = indexById(base[model] ?? []);
|
|
66
|
+
const cloneRows = clone[model] ?? [];
|
|
67
|
+
const cloneById = indexById(cloneRows);
|
|
68
|
+
const liveRows = target[model] ?? [];
|
|
69
|
+
const merged = [];
|
|
70
|
+
const placed = /* @__PURE__ */ new Set();
|
|
71
|
+
for (const liveRow of liveRows) {
|
|
72
|
+
const id = liveRow.id;
|
|
73
|
+
const baseRow = baseById.get(id);
|
|
74
|
+
const cloneRow = cloneById.get(id);
|
|
75
|
+
if (baseRow !== void 0 && cloneRow === void 0) continue;
|
|
76
|
+
if (cloneRow !== void 0 && rowChanged(baseRow, cloneRow)) merged.push(cloneRow);
|
|
77
|
+
else merged.push(liveRow);
|
|
78
|
+
placed.add(id);
|
|
79
|
+
}
|
|
80
|
+
for (const cloneRow of cloneRows) if (!baseById.has(cloneRow.id) && !placed.has(cloneRow.id)) merged.push(cloneRow);
|
|
81
|
+
target[model] = merged;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Whether the transaction mutated a row, comparing its pre-transaction
|
|
86
|
+
* snapshot to its post-transaction state. Rows hold scalar columns and
|
|
87
|
+
* adapter-serializable values, so JSON equality reliably tells a
|
|
88
|
+
* transaction-made edit apart from an untouched row.
|
|
89
|
+
*/
|
|
90
|
+
function rowChanged(baseRow, cloneRow) {
|
|
91
|
+
if (baseRow === void 0) return true;
|
|
92
|
+
return JSON.stringify(baseRow) !== JSON.stringify(cloneRow);
|
|
93
|
+
}
|
|
94
|
+
var memoryAdapter = (db, config) => {
|
|
95
|
+
let lazyOptions = null;
|
|
96
|
+
/**
|
|
97
|
+
* Build an adapter factory whose operations read and write `activeDb`.
|
|
98
|
+
* The non-transactional adapter targets the live `db`. A transaction
|
|
99
|
+
* targets an isolated clone so its uncommitted writes are invisible to
|
|
100
|
+
* concurrent operations against the live `db`. A failed transaction leaves
|
|
101
|
+
* the live `db` untouched, and a committed one replays only its own
|
|
102
|
+
* row/table changes, so a concurrent write that interleaved at an `await`
|
|
103
|
+
* point survives either outcome. Isolation is at row/table granularity:
|
|
104
|
+
* the in-memory adapter does not serialize writes, so two operations that
|
|
105
|
+
* edit the same row resolve last-writer-wins. It is built for development
|
|
106
|
+
* and tests, not production concurrency control.
|
|
107
|
+
*/
|
|
108
|
+
const buildAdapterFactory = (activeDb) => createAdapterFactory({
|
|
109
|
+
config: {
|
|
110
|
+
adapterId: "memory",
|
|
111
|
+
adapterName: "Memory Adapter",
|
|
112
|
+
usePlural: false,
|
|
113
|
+
debugLogs: config?.debugLogs || false,
|
|
114
|
+
supportsArrays: true,
|
|
115
|
+
customTransformInput(props) {
|
|
116
|
+
if (props.options.advanced?.database?.generateId === "serial" && props.field === "id" && props.action === "create") return activeDb[props.model].length + 1;
|
|
117
|
+
return props.data;
|
|
118
|
+
},
|
|
119
|
+
transaction: async (cb) => {
|
|
120
|
+
const base = structuredClone(activeDb);
|
|
121
|
+
const clone = structuredClone(activeDb);
|
|
122
|
+
const result = await cb(buildAdapterFactory(clone)(lazyOptions));
|
|
123
|
+
mergeTransactionInto(activeDb, base, clone);
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
adapter: ({ getFieldName, getDefaultFieldName, options, getModelName }) => {
|
|
128
|
+
const applySortToRecords = (records, sortBy, model) => {
|
|
129
|
+
if (!sortBy) return records;
|
|
130
|
+
return records.sort((a, b) => {
|
|
131
|
+
const field = getFieldName({
|
|
132
|
+
model,
|
|
133
|
+
field: sortBy.field
|
|
134
|
+
});
|
|
135
|
+
const aValue = a[field];
|
|
136
|
+
const bValue = b[field];
|
|
137
|
+
let comparison = 0;
|
|
138
|
+
if (aValue == null && bValue == null) comparison = 0;
|
|
139
|
+
else if (aValue == null) comparison = -1;
|
|
140
|
+
else if (bValue == null) comparison = 1;
|
|
141
|
+
else if (typeof aValue === "string" && typeof bValue === "string") comparison = aValue.localeCompare(bValue);
|
|
142
|
+
else if (aValue instanceof Date && bValue instanceof Date) comparison = aValue.getTime() - bValue.getTime();
|
|
143
|
+
else if (typeof aValue === "number" && typeof bValue === "number") comparison = aValue - bValue;
|
|
144
|
+
else if (typeof aValue === "boolean" && typeof bValue === "boolean") comparison = aValue === bValue ? 0 : aValue ? 1 : -1;
|
|
145
|
+
else comparison = String(aValue).localeCompare(String(bValue));
|
|
146
|
+
return sortBy.direction === "asc" ? comparison : -comparison;
|
|
147
|
+
});
|
|
148
|
+
};
|
|
149
|
+
function convertWhereClause(where, model, join, select) {
|
|
150
|
+
const baseRecords = (() => {
|
|
151
|
+
const table = activeDb[model];
|
|
152
|
+
if (!table) {
|
|
153
|
+
logger.error(`[MemoryAdapter] Model ${model} not found in the DB`, Object.keys(activeDb));
|
|
154
|
+
throw new Error(`Model ${model} not found`);
|
|
155
|
+
}
|
|
156
|
+
const evalClause = (record, clause) => {
|
|
157
|
+
const { field, value, operator, mode = "sensitive" } = clause;
|
|
158
|
+
const isInsensitive = mode === "insensitive" && (typeof value === "string" || Array.isArray(value) && value.every((v) => typeof v === "string"));
|
|
159
|
+
switch (operator) {
|
|
160
|
+
case "in":
|
|
161
|
+
if (!Array.isArray(value)) throw new Error("Value must be an array");
|
|
162
|
+
if (isInsensitive) return insensitiveIn(record[field], value);
|
|
163
|
+
return value.includes(record[field]);
|
|
164
|
+
case "not_in":
|
|
165
|
+
if (!Array.isArray(value)) throw new Error("Value must be an array");
|
|
166
|
+
if (isInsensitive) return insensitiveNotIn(record[field], value);
|
|
167
|
+
return !value.includes(record[field]);
|
|
168
|
+
case "contains":
|
|
169
|
+
if (isInsensitive) return insensitiveContains(record[field], value);
|
|
170
|
+
return record[field]?.includes(value);
|
|
171
|
+
case "starts_with":
|
|
172
|
+
if (isInsensitive) return insensitiveStartsWith(record[field], value);
|
|
173
|
+
return record[field].startsWith(value);
|
|
174
|
+
case "ends_with":
|
|
175
|
+
if (isInsensitive) return insensitiveEndsWith(record[field], value);
|
|
176
|
+
return record[field].endsWith(value);
|
|
177
|
+
case "ne": return isInsensitive ? !insensitiveCompare(record[field], value) : record[field] !== value;
|
|
178
|
+
case "gt": return value != null && Boolean(record[field] > value);
|
|
179
|
+
case "gte": return value != null && Boolean(record[field] >= value);
|
|
180
|
+
case "lt": return value != null && Boolean(record[field] < value);
|
|
181
|
+
case "lte": return value != null && Boolean(record[field] <= value);
|
|
182
|
+
default:
|
|
183
|
+
if (isInsensitive) return insensitiveCompare(record[field], value);
|
|
184
|
+
if (value === null) return record[field] == null;
|
|
185
|
+
return record[field] === value;
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
let records = table.filter((record) => {
|
|
189
|
+
if (!where.length || where.length === 0) return true;
|
|
190
|
+
let result = evalClause(record, where[0]);
|
|
191
|
+
for (const clause of where) {
|
|
192
|
+
const clauseResult = evalClause(record, clause);
|
|
193
|
+
if (clause.connector === "OR") result = result || clauseResult;
|
|
194
|
+
else result = result && clauseResult;
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
});
|
|
198
|
+
if (select?.length && select.length > 0) records = records.map((record) => Object.fromEntries(Object.entries(record).filter(([key]) => select.includes(getDefaultFieldName({
|
|
199
|
+
model,
|
|
200
|
+
field: key
|
|
201
|
+
})))));
|
|
202
|
+
return records;
|
|
203
|
+
})();
|
|
204
|
+
if (!join) return baseRecords;
|
|
205
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
206
|
+
const seenIds = /* @__PURE__ */ new Map();
|
|
207
|
+
for (const baseRecord of baseRecords) {
|
|
208
|
+
const baseId = String(baseRecord.id);
|
|
209
|
+
if (!grouped.has(baseId)) {
|
|
210
|
+
const nested = { ...baseRecord };
|
|
211
|
+
for (const [joinModel, joinAttr] of Object.entries(join)) {
|
|
212
|
+
const joinModelName = getModelName(joinModel);
|
|
213
|
+
if (joinAttr.relation === "one-to-one") nested[joinModelName] = null;
|
|
214
|
+
else {
|
|
215
|
+
nested[joinModelName] = [];
|
|
216
|
+
seenIds.set(`${baseId}-${joinModel}`, /* @__PURE__ */ new Set());
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
grouped.set(baseId, nested);
|
|
220
|
+
}
|
|
221
|
+
const nestedEntry = grouped.get(baseId);
|
|
222
|
+
for (const [joinModel, joinAttr] of Object.entries(join)) {
|
|
223
|
+
const joinModelName = getModelName(joinModel);
|
|
224
|
+
const joinTable = activeDb[joinModelName];
|
|
225
|
+
if (!joinTable) {
|
|
226
|
+
logger.error(`[MemoryAdapter] JoinOption model ${joinModelName} not found in the DB`, Object.keys(activeDb));
|
|
227
|
+
throw new Error(`JoinOption model ${joinModelName} not found`);
|
|
228
|
+
}
|
|
229
|
+
const matchingRecords = joinTable.filter((joinRecord) => joinRecord[joinAttr.on.to] === baseRecord[joinAttr.on.from]);
|
|
230
|
+
if (joinAttr.relation === "one-to-one") nestedEntry[joinModelName] = matchingRecords[0] || null;
|
|
231
|
+
else {
|
|
232
|
+
const seenSet = seenIds.get(`${baseId}-${joinModel}`);
|
|
233
|
+
const limit = joinAttr.limit ?? 100;
|
|
234
|
+
let count = 0;
|
|
235
|
+
for (const matchingRecord of matchingRecords) {
|
|
236
|
+
if (count >= limit) break;
|
|
237
|
+
if (!seenSet.has(matchingRecord.id)) {
|
|
238
|
+
nestedEntry[joinModelName].push(matchingRecord);
|
|
239
|
+
seenSet.add(matchingRecord.id);
|
|
240
|
+
count++;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return Array.from(grouped.values());
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
create: async ({ model, data }) => {
|
|
250
|
+
if (options.advanced?.database?.generateId === "serial") data.id = activeDb[getModelName(model)].length + 1;
|
|
251
|
+
if (!activeDb[model]) activeDb[model] = [];
|
|
252
|
+
activeDb[model].push(data);
|
|
253
|
+
return data;
|
|
254
|
+
},
|
|
255
|
+
findOne: async ({ model, where, select, join }) => {
|
|
256
|
+
const res = convertWhereClause(where, model, join, select);
|
|
257
|
+
if (join) {
|
|
258
|
+
const resArray = res;
|
|
259
|
+
if (!resArray.length) return null;
|
|
260
|
+
return resArray[0];
|
|
261
|
+
}
|
|
262
|
+
return res[0] || null;
|
|
263
|
+
},
|
|
264
|
+
findMany: async ({ model, where, sortBy, limit, select, offset, join }) => {
|
|
265
|
+
const res = convertWhereClause(where || [], model, join, select);
|
|
266
|
+
if (join) {
|
|
267
|
+
const resArray = res;
|
|
268
|
+
if (!resArray.length) return [];
|
|
269
|
+
applySortToRecords(resArray, sortBy, model);
|
|
270
|
+
let paginatedRecords = resArray;
|
|
271
|
+
if (offset !== void 0) paginatedRecords = paginatedRecords.slice(offset);
|
|
272
|
+
if (limit !== void 0) paginatedRecords = paginatedRecords.slice(0, limit);
|
|
273
|
+
return paginatedRecords;
|
|
274
|
+
}
|
|
275
|
+
let table = applySortToRecords(res, sortBy, model);
|
|
276
|
+
if (offset !== void 0) table = table.slice(offset);
|
|
277
|
+
if (limit !== void 0) table = table.slice(0, limit);
|
|
278
|
+
return table || [];
|
|
279
|
+
},
|
|
280
|
+
count: async ({ model, where }) => {
|
|
281
|
+
if (where) return convertWhereClause(where, model).length;
|
|
282
|
+
return activeDb[model].length;
|
|
283
|
+
},
|
|
284
|
+
update: async ({ model, where, update }) => {
|
|
285
|
+
if (where.length === 0) return null;
|
|
286
|
+
const res = convertWhereClause(where, model);
|
|
287
|
+
res.forEach((record) => {
|
|
288
|
+
Object.assign(record, update);
|
|
289
|
+
});
|
|
290
|
+
return res[0] || null;
|
|
291
|
+
},
|
|
292
|
+
delete: async ({ model, where }) => {
|
|
293
|
+
if (where.length === 0) return;
|
|
294
|
+
const table = activeDb[model];
|
|
295
|
+
const res = convertWhereClause(where, model);
|
|
296
|
+
activeDb[model] = table.filter((record) => !res.includes(record));
|
|
297
|
+
},
|
|
298
|
+
deleteMany: async ({ model, where }) => {
|
|
299
|
+
const table = activeDb[model];
|
|
300
|
+
const res = convertWhereClause(where, model);
|
|
301
|
+
let count = 0;
|
|
302
|
+
activeDb[model] = table.filter((record) => {
|
|
303
|
+
if (res.includes(record)) {
|
|
304
|
+
count++;
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
return !res.includes(record);
|
|
308
|
+
});
|
|
309
|
+
return count;
|
|
310
|
+
},
|
|
311
|
+
consumeOne: async ({ model, where }) => {
|
|
312
|
+
const table = activeDb[model];
|
|
313
|
+
const target = convertWhereClause(where, model)[0];
|
|
314
|
+
if (!target) return null;
|
|
315
|
+
activeDb[model] = table.filter((record) => record !== target);
|
|
316
|
+
return target;
|
|
317
|
+
},
|
|
318
|
+
incrementOne: async ({ model, where, increment, set }) => {
|
|
319
|
+
const target = convertWhereClause(where, model)[0];
|
|
320
|
+
if (!target) return null;
|
|
321
|
+
for (const [field, delta] of Object.entries(increment)) target[field] = (typeof target[field] === "number" ? target[field] : 0) + delta;
|
|
322
|
+
if (set) Object.assign(target, set);
|
|
323
|
+
return target;
|
|
324
|
+
},
|
|
325
|
+
updateMany: async ({ model, where, update }) => {
|
|
326
|
+
const res = convertWhereClause(where, model);
|
|
327
|
+
res.forEach((record) => {
|
|
328
|
+
Object.assign(record, update);
|
|
329
|
+
});
|
|
330
|
+
return res.length;
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
const adapterCreator = buildAdapterFactory(db);
|
|
336
|
+
return (options) => {
|
|
337
|
+
lazyOptions = options;
|
|
338
|
+
return adapterCreator(options);
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
//#endregion
|
|
342
|
+
export { memoryAdapter };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
//#region ../../node_modules/.bun/@tanstack+start-server-core@1.169.15/node_modules/@tanstack/start-server-core/dist/esm/empty-plugin-adapters.js
|
|
2
|
+
var pluginSerializationAdapters = [];
|
|
3
|
+
var hasPluginAdapters = false;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { hasPluginAdapters, pluginSerializationAdapters };
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
//#region ../../node_modules/.bun/@better-auth+core@1.6.20+abf1b3a1f293bd86/node_modules/@better-auth/core/dist/utils/error-codes.mjs
|
|
2
|
+
function defineErrorCodes(codes) {
|
|
3
|
+
return Object.fromEntries(Object.entries(codes).map(([key, value]) => [key, {
|
|
4
|
+
code: key,
|
|
5
|
+
message: value,
|
|
6
|
+
toString: () => key
|
|
7
|
+
}]));
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region ../../node_modules/.bun/@better-auth+core@1.6.20+abf1b3a1f293bd86/node_modules/@better-auth/core/dist/error/codes.mjs
|
|
11
|
+
var BASE_ERROR_CODES = defineErrorCodes({
|
|
12
|
+
USER_NOT_FOUND: "User not found",
|
|
13
|
+
FAILED_TO_CREATE_USER: "Failed to create user",
|
|
14
|
+
FAILED_TO_CREATE_SESSION: "Failed to create session",
|
|
15
|
+
FAILED_TO_UPDATE_USER: "Failed to update user",
|
|
16
|
+
FAILED_TO_GET_SESSION: "Failed to get session",
|
|
17
|
+
INVALID_PASSWORD: "Invalid password",
|
|
18
|
+
INVALID_EMAIL: "Invalid email",
|
|
19
|
+
INVALID_EMAIL_OR_PASSWORD: "Invalid email or password",
|
|
20
|
+
INVALID_USER: "Invalid user",
|
|
21
|
+
SOCIAL_ACCOUNT_ALREADY_LINKED: "Social account already linked",
|
|
22
|
+
PROVIDER_NOT_FOUND: "Provider not found",
|
|
23
|
+
INVALID_TOKEN: "Invalid token",
|
|
24
|
+
TOKEN_EXPIRED: "Token expired",
|
|
25
|
+
ID_TOKEN_NOT_SUPPORTED: "id_token not supported",
|
|
26
|
+
FAILED_TO_GET_USER_INFO: "Failed to get user info",
|
|
27
|
+
USER_EMAIL_NOT_FOUND: "User email not found",
|
|
28
|
+
EMAIL_NOT_VERIFIED: "Email not verified",
|
|
29
|
+
PASSWORD_TOO_SHORT: "Password too short",
|
|
30
|
+
PASSWORD_TOO_LONG: "Password too long",
|
|
31
|
+
USER_ALREADY_EXISTS: "User already exists.",
|
|
32
|
+
USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: "User already exists. Use another email.",
|
|
33
|
+
EMAIL_CAN_NOT_BE_UPDATED: "Email can not be updated",
|
|
34
|
+
CHANGE_EMAIL_DISABLED: "Change email is disabled",
|
|
35
|
+
CREDENTIAL_ACCOUNT_NOT_FOUND: "Credential account not found",
|
|
36
|
+
SESSION_EXPIRED: "Session expired. Re-authenticate to perform this action.",
|
|
37
|
+
FAILED_TO_UNLINK_LAST_ACCOUNT: "You can't unlink your last account",
|
|
38
|
+
ACCOUNT_NOT_FOUND: "Account not found",
|
|
39
|
+
USER_ALREADY_HAS_PASSWORD: "User already has a password. Provide that to delete the account.",
|
|
40
|
+
CROSS_SITE_NAVIGATION_LOGIN_BLOCKED: "Cross-site navigation login blocked. This request appears to be a CSRF attack.",
|
|
41
|
+
VERIFICATION_EMAIL_NOT_ENABLED: "Verification email isn't enabled",
|
|
42
|
+
EMAIL_ALREADY_VERIFIED: "Email is already verified",
|
|
43
|
+
EMAIL_MISMATCH: "Email mismatch",
|
|
44
|
+
SESSION_NOT_FRESH: "Session is not fresh",
|
|
45
|
+
LINKED_ACCOUNT_ALREADY_EXISTS: "Linked account already exists",
|
|
46
|
+
INVALID_ORIGIN: "Invalid origin",
|
|
47
|
+
INVALID_CALLBACK_URL: "Invalid callbackURL",
|
|
48
|
+
INVALID_REDIRECT_URL: "Invalid redirectURL",
|
|
49
|
+
INVALID_ERROR_CALLBACK_URL: "Invalid errorCallbackURL",
|
|
50
|
+
INVALID_NEW_USER_CALLBACK_URL: "Invalid newUserCallbackURL",
|
|
51
|
+
MISSING_OR_NULL_ORIGIN: "Missing or null Origin",
|
|
52
|
+
CALLBACK_URL_REQUIRED: "callbackURL is required",
|
|
53
|
+
FAILED_TO_CREATE_VERIFICATION: "Unable to create verification",
|
|
54
|
+
FIELD_NOT_ALLOWED: "Field not allowed to be set",
|
|
55
|
+
ASYNC_VALIDATION_NOT_SUPPORTED: "Async validation is not supported",
|
|
56
|
+
VALIDATION_ERROR: "Validation Error",
|
|
57
|
+
MISSING_FIELD: "Field is required",
|
|
58
|
+
METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED: "POST method requires deferSessionRefresh to be enabled in session config",
|
|
59
|
+
BODY_MUST_BE_AN_OBJECT: "Body must be an object",
|
|
60
|
+
PASSWORD_ALREADY_SET: "User already has a password set"
|
|
61
|
+
});
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region ../../node_modules/.bun/better-call@1.3.6+68a1e3a0c4588df3/node_modules/better-call/dist/error.mjs
|
|
64
|
+
function isErrorStackTraceLimitWritable() {
|
|
65
|
+
const desc = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit");
|
|
66
|
+
if (desc === void 0) return Object.isExtensible(Error);
|
|
67
|
+
return Object.prototype.hasOwnProperty.call(desc, "writable") ? desc.writable : desc.set !== void 0;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Hide internal stack frames from the error stack trace.
|
|
71
|
+
*/
|
|
72
|
+
function hideInternalStackFrames(stack) {
|
|
73
|
+
const lines = stack.split("\n at ");
|
|
74
|
+
if (lines.length <= 1) return stack;
|
|
75
|
+
lines.splice(1, 1);
|
|
76
|
+
return lines.join("\n at ");
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Creates a custom error class that hides stack frames.
|
|
80
|
+
*/
|
|
81
|
+
function makeErrorForHideStackFrame(Base, clazz) {
|
|
82
|
+
class HideStackFramesError extends Base {
|
|
83
|
+
#hiddenStack;
|
|
84
|
+
constructor(...args) {
|
|
85
|
+
if (isErrorStackTraceLimitWritable()) {
|
|
86
|
+
const limit = Error.stackTraceLimit;
|
|
87
|
+
Error.stackTraceLimit = 0;
|
|
88
|
+
super(...args);
|
|
89
|
+
Error.stackTraceLimit = limit;
|
|
90
|
+
} else super(...args);
|
|
91
|
+
const stack = (/* @__PURE__ */ new Error()).stack;
|
|
92
|
+
if (stack) this.#hiddenStack = hideInternalStackFrames(stack.replace(/^Error/, this.name));
|
|
93
|
+
}
|
|
94
|
+
get errorStack() {
|
|
95
|
+
return this.#hiddenStack;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
Object.defineProperty(HideStackFramesError.prototype, "constructor", {
|
|
99
|
+
get() {
|
|
100
|
+
return clazz;
|
|
101
|
+
},
|
|
102
|
+
enumerable: false,
|
|
103
|
+
configurable: true
|
|
104
|
+
});
|
|
105
|
+
return HideStackFramesError;
|
|
106
|
+
}
|
|
107
|
+
var statusCodes = {
|
|
108
|
+
OK: 200,
|
|
109
|
+
CREATED: 201,
|
|
110
|
+
ACCEPTED: 202,
|
|
111
|
+
NO_CONTENT: 204,
|
|
112
|
+
MULTIPLE_CHOICES: 300,
|
|
113
|
+
MOVED_PERMANENTLY: 301,
|
|
114
|
+
FOUND: 302,
|
|
115
|
+
SEE_OTHER: 303,
|
|
116
|
+
NOT_MODIFIED: 304,
|
|
117
|
+
TEMPORARY_REDIRECT: 307,
|
|
118
|
+
BAD_REQUEST: 400,
|
|
119
|
+
UNAUTHORIZED: 401,
|
|
120
|
+
PAYMENT_REQUIRED: 402,
|
|
121
|
+
FORBIDDEN: 403,
|
|
122
|
+
NOT_FOUND: 404,
|
|
123
|
+
METHOD_NOT_ALLOWED: 405,
|
|
124
|
+
NOT_ACCEPTABLE: 406,
|
|
125
|
+
PROXY_AUTHENTICATION_REQUIRED: 407,
|
|
126
|
+
REQUEST_TIMEOUT: 408,
|
|
127
|
+
CONFLICT: 409,
|
|
128
|
+
GONE: 410,
|
|
129
|
+
LENGTH_REQUIRED: 411,
|
|
130
|
+
PRECONDITION_FAILED: 412,
|
|
131
|
+
PAYLOAD_TOO_LARGE: 413,
|
|
132
|
+
URI_TOO_LONG: 414,
|
|
133
|
+
UNSUPPORTED_MEDIA_TYPE: 415,
|
|
134
|
+
RANGE_NOT_SATISFIABLE: 416,
|
|
135
|
+
EXPECTATION_FAILED: 417,
|
|
136
|
+
"I'M_A_TEAPOT": 418,
|
|
137
|
+
MISDIRECTED_REQUEST: 421,
|
|
138
|
+
UNPROCESSABLE_ENTITY: 422,
|
|
139
|
+
LOCKED: 423,
|
|
140
|
+
FAILED_DEPENDENCY: 424,
|
|
141
|
+
TOO_EARLY: 425,
|
|
142
|
+
UPGRADE_REQUIRED: 426,
|
|
143
|
+
PRECONDITION_REQUIRED: 428,
|
|
144
|
+
TOO_MANY_REQUESTS: 429,
|
|
145
|
+
REQUEST_HEADER_FIELDS_TOO_LARGE: 431,
|
|
146
|
+
UNAVAILABLE_FOR_LEGAL_REASONS: 451,
|
|
147
|
+
INTERNAL_SERVER_ERROR: 500,
|
|
148
|
+
NOT_IMPLEMENTED: 501,
|
|
149
|
+
BAD_GATEWAY: 502,
|
|
150
|
+
SERVICE_UNAVAILABLE: 503,
|
|
151
|
+
GATEWAY_TIMEOUT: 504,
|
|
152
|
+
HTTP_VERSION_NOT_SUPPORTED: 505,
|
|
153
|
+
VARIANT_ALSO_NEGOTIATES: 506,
|
|
154
|
+
INSUFFICIENT_STORAGE: 507,
|
|
155
|
+
LOOP_DETECTED: 508,
|
|
156
|
+
NOT_EXTENDED: 510,
|
|
157
|
+
NETWORK_AUTHENTICATION_REQUIRED: 511
|
|
158
|
+
};
|
|
159
|
+
var InternalAPIError = class extends Error {
|
|
160
|
+
constructor(status = "INTERNAL_SERVER_ERROR", body = void 0, headers = {}, statusCode = typeof status === "number" ? status : statusCodes[status]) {
|
|
161
|
+
super(body?.message, body?.cause ? { cause: body.cause } : void 0);
|
|
162
|
+
this.status = status;
|
|
163
|
+
this.body = body;
|
|
164
|
+
this.headers = headers;
|
|
165
|
+
this.statusCode = statusCode;
|
|
166
|
+
this.name = "APIError";
|
|
167
|
+
this.status = status;
|
|
168
|
+
this.headers = headers;
|
|
169
|
+
this.statusCode = statusCode;
|
|
170
|
+
this.body = body;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
var ValidationError = class extends InternalAPIError {
|
|
174
|
+
constructor(message, issues) {
|
|
175
|
+
super(400, {
|
|
176
|
+
message,
|
|
177
|
+
code: "VALIDATION_ERROR"
|
|
178
|
+
});
|
|
179
|
+
this.message = message;
|
|
180
|
+
this.issues = issues;
|
|
181
|
+
this.issues = issues;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
var BetterCallError = class extends Error {
|
|
185
|
+
constructor(message) {
|
|
186
|
+
super(message);
|
|
187
|
+
this.name = "BetterCallError";
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
var kAPIErrorHeaderSymbol = Symbol.for("better-call:api-error-headers");
|
|
191
|
+
var APIError$1 = makeErrorForHideStackFrame(InternalAPIError, Error);
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region ../../node_modules/.bun/@better-auth+core@1.6.20+abf1b3a1f293bd86/node_modules/@better-auth/core/dist/error/index.mjs
|
|
194
|
+
var BetterAuthError = class extends Error {
|
|
195
|
+
constructor(message, options) {
|
|
196
|
+
super(message, options);
|
|
197
|
+
this.name = "BetterAuthError";
|
|
198
|
+
this.message = message;
|
|
199
|
+
this.stack = "";
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
var APIError = class APIError extends APIError$1 {
|
|
203
|
+
constructor(...args) {
|
|
204
|
+
super(...args);
|
|
205
|
+
}
|
|
206
|
+
static fromStatus(status, body) {
|
|
207
|
+
return new APIError(status, body);
|
|
208
|
+
}
|
|
209
|
+
static from(status, error) {
|
|
210
|
+
return new APIError(status, {
|
|
211
|
+
message: error.message,
|
|
212
|
+
code: error.code
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
//#endregion
|
|
217
|
+
//#region ../../node_modules/.bun/@better-auth+core@1.6.20+abf1b3a1f293bd86/node_modules/@better-auth/core/dist/env/env-impl.mjs
|
|
218
|
+
var _envShim = Object.create(null);
|
|
219
|
+
var _getEnv = (useShim) => globalThis.process?.env || globalThis.Deno?.env.toObject() || globalThis.__env__ || (useShim ? _envShim : globalThis);
|
|
220
|
+
var env = new Proxy(_envShim, {
|
|
221
|
+
get(_, prop) {
|
|
222
|
+
return _getEnv()[prop] ?? _envShim[prop];
|
|
223
|
+
},
|
|
224
|
+
has(_, prop) {
|
|
225
|
+
return prop in _getEnv() || prop in _envShim;
|
|
226
|
+
},
|
|
227
|
+
set(_, prop, value) {
|
|
228
|
+
const env = _getEnv(true);
|
|
229
|
+
env[prop] = value;
|
|
230
|
+
return true;
|
|
231
|
+
},
|
|
232
|
+
deleteProperty(_, prop) {
|
|
233
|
+
if (!prop) return false;
|
|
234
|
+
const env = _getEnv(true);
|
|
235
|
+
delete env[prop];
|
|
236
|
+
return true;
|
|
237
|
+
},
|
|
238
|
+
ownKeys() {
|
|
239
|
+
const env = _getEnv(true);
|
|
240
|
+
return Object.keys(env);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
function toBoolean(val) {
|
|
244
|
+
return val ? val !== "false" : false;
|
|
245
|
+
}
|
|
246
|
+
var nodeENV = env.NODE_ENV ?? "";
|
|
247
|
+
/** Detect if `NODE_ENV` environment variable is `production` */
|
|
248
|
+
var isProduction = nodeENV === "production";
|
|
249
|
+
/** Detect if `NODE_ENV` environment variable is `dev` or `development` */
|
|
250
|
+
var isDevelopment = () => nodeENV === "dev" || nodeENV === "development";
|
|
251
|
+
/** Detect if `NODE_ENV` environment variable is `test` */
|
|
252
|
+
var isTest = () => nodeENV === "test" || toBoolean(env.TEST);
|
|
253
|
+
/**
|
|
254
|
+
* Get environment variable with fallback
|
|
255
|
+
*/
|
|
256
|
+
function getEnvVar(key, fallback) {
|
|
257
|
+
if (typeof process !== "undefined" && process.env) return process.env[key] ?? fallback;
|
|
258
|
+
if (typeof Deno !== "undefined") return Deno.env.get(key) ?? fallback;
|
|
259
|
+
if (typeof Bun !== "undefined") return Bun.env[key] ?? fallback;
|
|
260
|
+
return fallback;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get boolean environment variable
|
|
264
|
+
*/
|
|
265
|
+
function getBooleanEnvVar(key, fallback = true) {
|
|
266
|
+
const value = getEnvVar(key);
|
|
267
|
+
if (!value) return fallback;
|
|
268
|
+
return value !== "0" && value.toLowerCase() !== "false" && value !== "";
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Common environment variables used in Better Auth
|
|
272
|
+
*/
|
|
273
|
+
var ENV = Object.freeze({
|
|
274
|
+
get BETTER_AUTH_SECRET() {
|
|
275
|
+
return getEnvVar("BETTER_AUTH_SECRET");
|
|
276
|
+
},
|
|
277
|
+
get AUTH_SECRET() {
|
|
278
|
+
return getEnvVar("AUTH_SECRET");
|
|
279
|
+
},
|
|
280
|
+
get BETTER_AUTH_TELEMETRY() {
|
|
281
|
+
return getEnvVar("BETTER_AUTH_TELEMETRY");
|
|
282
|
+
},
|
|
283
|
+
get BETTER_AUTH_TELEMETRY_ID() {
|
|
284
|
+
return getEnvVar("BETTER_AUTH_TELEMETRY_ID");
|
|
285
|
+
},
|
|
286
|
+
get NODE_ENV() {
|
|
287
|
+
return getEnvVar("NODE_ENV", "development");
|
|
288
|
+
},
|
|
289
|
+
get PACKAGE_VERSION() {
|
|
290
|
+
return getEnvVar("PACKAGE_VERSION", "0.0.0");
|
|
291
|
+
},
|
|
292
|
+
get BETTER_AUTH_TELEMETRY_ENDPOINT() {
|
|
293
|
+
return getEnvVar("BETTER_AUTH_TELEMETRY_ENDPOINT", "");
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
//#endregion
|
|
297
|
+
export { isDevelopment as a, APIError as c, BetterCallError as d, ValidationError as f, getEnvVar as i, BetterAuthError as l, BASE_ERROR_CODES as m, env as n, isProduction as o, kAPIErrorHeaderSymbol as p, getBooleanEnvVar as r, isTest as s, ENV as t, APIError$1 as u };
|