docs-i18n 0.9.2 → 0.11.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/admin/app/lib/auth-client.ts +21 -0
- package/admin/app/lib/auth.server.ts +62 -0
- package/admin/app/routeTree.gen.ts +21 -3
- package/admin/app/routes/index.tsx +68 -8
- package/admin/app/routes/login.tsx +207 -0
- package/admin/app/server.ts +23 -0
- package/admin/app/styles.css +146 -0
- package/admin/app/worker.ts +18 -0
- package/admin/dist/client/assets/auth-client-DqJZaFZR.js +3 -0
- package/admin/dist/client/assets/login-CQjkiBAF.js +1 -0
- package/admin/dist/client/assets/main-bc5tcdGg.js +18 -0
- package/admin/dist/client/assets/routes-CTPOG_v1.js +3 -0
- package/admin/dist/client/assets/{styles-DJ6QEJmN.css → styles-zS0BbO7e.css} +1 -1
- package/admin/dist/client/assets/useNavigate-CEOVvMjz.js +1 -0
- package/admin/dist/server/assets/{react-dom-CpO9xk_L.js → __tanstack-start-server-fn-resolver-qK0Yfvti.js} +83 -507
- package/admin/dist/server/assets/_tanstack-start-manifest_v-BgMVPPt2.js +21 -0
- package/admin/dist/server/assets/adapter-DjXlUL1J.js +2253 -0
- package/admin/dist/server/assets/auth-client-CoUpyQIM.js +807 -0
- package/admin/dist/server/assets/auth-dSAIPjBw.js +72 -0
- package/admin/dist/server/assets/auth.server-BLVDnTCZ.js +31352 -0
- package/admin/dist/server/assets/bun-sqlite-dialect-C8OaCWSL-BNNY-FoT.js +154 -0
- package/admin/dist/server/assets/compiled-query-CnFG_BVV.js +6967 -0
- package/admin/dist/server/assets/d1-sqlite-dialect-sYHNqBte-Bjz-cybU.js +115 -0
- package/admin/dist/server/assets/dist-C3-e8E2B.js +215 -0
- package/admin/dist/server/assets/dist-CUzFWZag.js +6039 -0
- package/admin/dist/server/assets/{init-DJr2glb3.js → dist-DBv71kqn.js} +21 -381
- package/admin/dist/server/assets/error-CASJ5tIm.js +457 -0
- package/admin/dist/server/assets/error-codes-BhMTGvV6.js +1153 -0
- package/admin/dist/server/assets/init-CJJUsPDL.js +49 -0
- package/admin/dist/server/assets/job-manager-D9Ab9hgu.js +179 -0
- package/admin/dist/server/assets/{jobs-bQfYqSk7.js → jobs-DrEe9YOj.js} +18 -5
- package/admin/dist/server/assets/kysely-adapter-YC8RFPyc.js +2 -0
- package/admin/dist/server/assets/login-SqzTMYOZ.js +228 -0
- package/admin/dist/server/assets/migrator-ZpVZslbq.js +2926 -0
- package/admin/dist/server/assets/{misc-DOk3t9vs.js → misc-BSoYldBT.js} +22 -9
- package/admin/dist/server/assets/{models-CBb8Owe5.js → models-CoviNHUP.js} +1 -1
- package/admin/dist/server/assets/node-sqlite-dialect-BJIaP6lL.js +154 -0
- package/admin/dist/server/assets/{router-DlU_fGDK.js → router-D-82slI-.js} +23 -11
- package/admin/dist/server/assets/{routes-BcfX6iub.js → routes-B1pNmxF3.js} +43 -29
- package/admin/dist/server/assets/{routes-pIM0fgUO.js → routes-C9huiZHw.js} +56 -22
- package/admin/dist/server/assets/sqlite-adapter-CL2EidjD.js +69 -0
- package/admin/dist/server/assets/{start-BS52hm79.js → start-BiybVoR2.js} +1 -1
- package/admin/dist/server/assets/status-B1AGLvHn.js +162 -0
- package/admin/dist/server/assets/status-D7PU72hm.js +262 -0
- package/admin/dist/server/assets/string-B4XlckmJ.js +6 -0
- package/admin/dist/server/assets/useNavigate-0H08s_Q2.js +29 -0
- package/admin/dist/server/assets/useRouter-BXJvr8to.js +508 -0
- package/admin/dist/server/server.js +70 -90
- package/admin/package.json +6 -1
- package/admin/server/functions/auth.ts +89 -0
- package/admin/server/functions/jobs.ts +30 -2
- package/admin/server/functions/misc.ts +25 -5
- package/admin/server/functions/status.ts +52 -3
- package/admin/server/index.ts +1 -1
- package/admin/server/init.ts +21 -9
- package/admin/server/services/d1-status.ts +282 -0
- package/admin/vite.config.ts +29 -15
- package/admin/wrangler.jsonc +16 -0
- package/package.json +1 -1
- package/template/app/components/markdown/Markdown.tsx +7 -1
- package/template/app/utils/docs.server.ts +37 -4
- package/template/app/worker.ts +16 -0
- package/template/content/docs-i18n/en/cli.md +9 -5
- package/template/content/docs-i18n/en/deployment.md +85 -68
- package/template/dist/client/assets/{Doc-CGhUfH9r.js → Doc-BKO69_nz.js} +1 -1
- package/template/dist/client/assets/{DocsLayout-CoPL9BM9.js → DocsLayout-BGugXxEQ.js} +1 -1
- package/template/dist/client/assets/{FileTabs-DsPkEUu7.js → FileTabs-4fZriOj4.js} +1 -1
- package/template/dist/client/assets/{Footer-4faHyha8.js → Footer-DYh1AfWA.js} +1 -1
- package/template/dist/client/assets/{FrameworkContent-Cxg_X_EP.js → FrameworkContent-rVvjxASn.js} +1 -1
- package/template/dist/client/assets/{MarkdownHeadingContext-CwDqQdSh.js → MarkdownHeadingContext-CdvUDZFU.js} +4 -4
- package/template/dist/client/assets/{PostNotFound-1ZaWdycM.js → PostNotFound-WoSYGsGu.js} +1 -1
- package/template/dist/client/assets/{_basePickBy-FbrKkfHa.js → _basePickBy-Dd7GuR7A.js} +1 -1
- package/template/dist/client/assets/{_baseUniq-g6ljCkn8.js → _baseUniq-DMxQLGFI.js} +1 -1
- package/template/dist/client/assets/_lang-3AqGszEy.js +1 -0
- package/template/dist/client/assets/_lang._project-COkrIqzH.js +1 -0
- package/template/dist/client/assets/_lang._project._version-B8vRZczu.js +1 -0
- package/template/dist/client/assets/{_lang._project._version.docs-DjZ_USgK.js → _lang._project._version.docs-DokNGgvU.js} +1 -1
- package/template/dist/client/assets/{_lang._project._version.docs._-CNb1EMFX.js → _lang._project._version.docs._-CXCNZzOb.js} +1 -1
- package/template/dist/client/assets/_lang._project._version.docs._-DR0WSQEb.js +1 -0
- package/template/dist/client/assets/_lang._project._version.docs.framework._framework._-C_Grro8r.js +1 -0
- package/template/dist/client/assets/{_lang._project._version.docs.framework._framework.index-CqyVy6eq.js → _lang._project._version.docs.framework._framework.index-DsYjXRdj.js} +1 -1
- package/template/dist/client/assets/{_lang._project._version.docs.framework.index-S3Frbfn4.js → _lang._project._version.docs.framework.index-DQX1lBi3.js} +1 -1
- package/template/dist/client/assets/{_lang._project.docs-CkmM5v1V.js → _lang._project.docs-DsYQj9jI.js} +1 -1
- package/template/dist/client/assets/_lang._project.docs._-DlM_D6DD.js +1 -0
- package/template/dist/client/assets/{_lang._project.docs._-BHYKQj_2.js → _lang._project.docs._-l2tTjx80.js} +1 -1
- package/template/dist/client/assets/_lang.blog-CEwEtalL.js +1 -0
- package/template/dist/client/assets/_lang.blog-D6YGC3tK.js +1 -0
- package/template/dist/client/assets/_lang.blog._-DgHu4oLy.js +1 -0
- package/template/dist/client/assets/{_lang.blog._-bXJwKw9E.js → _lang.blog._-Umz18sQE.js} +1 -1
- package/template/dist/client/assets/_lang.blog.index-C8LKUFtD.js +1 -0
- package/template/dist/client/assets/{_lang.blog.index-CdR5PZOo.js → _lang.blog.index-DzUqpOBE.js} +1 -1
- package/template/dist/client/assets/{_lang.docs-Cp3wmc9k.js → _lang.docs-CUh3R7DD.js} +1 -1
- package/template/dist/client/assets/{_lang.docs._-0bwIpeOn.js → _lang.docs._-DlgTPy3s.js} +1 -1
- package/template/dist/client/assets/_lang.docs._-DmaQE7lx.js +1 -0
- package/template/dist/client/assets/_lang.docs.framework._framework._-B4C4uDFp.js +1 -0
- package/template/dist/client/assets/{_lang.docs.framework._framework.index-BLgwIvQA.js → _lang.docs.framework._framework.index-DTg6Xd3p.js} +1 -1
- package/template/dist/client/assets/{_lang.docs.framework.index-CzW7Dul3.js → _lang.docs.framework.index-BQ2enasl.js} +1 -1
- package/template/dist/client/assets/{arc-B4lRpBfi.js → arc-DGPgC_QF.js} +1 -1
- package/template/dist/client/assets/{architectureDiagram-2XIMDMQ5-Coq1Gceq.js → architectureDiagram-2XIMDMQ5-yI53_GAi.js} +1 -1
- package/template/dist/client/assets/{blockDiagram-WCTKOSBZ-C7BGTzDN.js → blockDiagram-WCTKOSBZ-C3tr24zy.js} +1 -1
- package/template/dist/client/assets/{c4Diagram-IC4MRINW-xTBVTs0q.js → c4Diagram-IC4MRINW-DOA-mowm.js} +1 -1
- package/template/dist/client/assets/channel-DzZD7dUQ.js +1 -0
- package/template/dist/client/assets/{chunk-4BX2VUAB-DUUHBu75.js → chunk-4BX2VUAB-B6NSnNJJ.js} +1 -1
- package/template/dist/client/assets/{chunk-55IACEB6-MUxF_n9_.js → chunk-55IACEB6-CWYwArBH.js} +1 -1
- package/template/dist/client/assets/{chunk-FMBD7UC4-BWh6wvYo.js → chunk-FMBD7UC4-DSyn2wIW.js} +1 -1
- package/template/dist/client/assets/{chunk-JSJVCQXG-CLUdUV5u.js → chunk-JSJVCQXG-D83nm5W0.js} +1 -1
- package/template/dist/client/assets/{chunk-KX2RTZJC-CAlz_cXA.js → chunk-KX2RTZJC-DD7fN9e9.js} +1 -1
- package/template/dist/client/assets/{chunk-NQ4KR5QH-BaYKfUVy.js → chunk-NQ4KR5QH-C3YlYiU5.js} +1 -1
- package/template/dist/client/assets/{chunk-QZHKN3VN-NxDloxi5.js → chunk-QZHKN3VN-B7wBEuCG.js} +1 -1
- package/template/dist/client/assets/{chunk-WL4C6EOR-C2Ncbi5S.js → chunk-WL4C6EOR-ByA1FloT.js} +1 -1
- package/template/dist/client/assets/classDiagram-VBA2DB6C-CRozKaUD.js +1 -0
- package/template/dist/client/assets/classDiagram-v2-RAHNMMFH-CRozKaUD.js +1 -0
- package/template/dist/client/assets/clone-CGnOEl4E.js +1 -0
- package/template/dist/client/assets/{cose-bilkent-S5V4N54A-Ct9-ZJcv.js → cose-bilkent-S5V4N54A-nt_sXfWc.js} +1 -1
- package/template/dist/client/assets/{dagre-KLK3FWXG-u9dz8dcq.js → dagre-KLK3FWXG-DUsyMTPd.js} +1 -1
- package/template/dist/client/assets/{diagram-E7M64L7V-BXmcaktT.js → diagram-E7M64L7V-D5SAypX0.js} +1 -1
- package/template/dist/client/assets/{diagram-IFDJBPK2-CRlP5SeV.js → diagram-IFDJBPK2-WhP5c8Vz.js} +1 -1
- package/template/dist/client/assets/{diagram-P4PSJMXO-B9rJcj_H.js → diagram-P4PSJMXO-AMrwIlhf.js} +1 -1
- package/template/dist/client/assets/{erDiagram-INFDFZHY-DX-vee6w.js → erDiagram-INFDFZHY-BxifSpCV.js} +1 -1
- package/template/dist/client/assets/{flowDiagram-PKNHOUZH-CoBCSOFc.js → flowDiagram-PKNHOUZH-BMAowE9I.js} +1 -1
- package/template/dist/client/assets/{ganttDiagram-A5KZAMGK-BlqU_ghi.js → ganttDiagram-A5KZAMGK-Bay-0iRq.js} +1 -1
- package/template/dist/client/assets/{gitGraphDiagram-K3NZZRJ6-CntCsuti.js → gitGraphDiagram-K3NZZRJ6-Va91W3gw.js} +1 -1
- package/template/dist/client/assets/{graph-CZaxZzO8.js → graph-CbBYObK_.js} +1 -1
- package/template/dist/client/assets/{index-XelhTkgl.js → index-CF6qz2tX.js} +1 -1
- package/template/dist/client/assets/{infoDiagram-LFFYTUFH-_jCC8Jtt.js → infoDiagram-LFFYTUFH-Byd5C-4U.js} +1 -1
- package/template/dist/client/assets/{ishikawaDiagram-PHBUUO56-D3m_r2ig.js → ishikawaDiagram-PHBUUO56-DxOKnE1v.js} +1 -1
- package/template/dist/client/assets/{journeyDiagram-4ABVD52K-CvRNm03C.js → journeyDiagram-4ABVD52K-IRmt7RI4.js} +1 -1
- package/template/dist/client/assets/{kanban-definition-K7BYSVSG-nQcLuNSy.js → kanban-definition-K7BYSVSG-BjTVXn-R.js} +1 -1
- package/template/dist/client/assets/{layout-DZIdDq97.js → layout-Bbx6A0bC.js} +1 -1
- package/template/dist/client/assets/{linear-C2JcF5ss.js → linear-Df2eAW4A.js} +1 -1
- package/template/dist/client/assets/{main-C8MldI1o.js → main-DqZtiCro.js} +2 -2
- package/template/dist/client/assets/{mermaid.core-DlB0QBo2.js → mermaid.core-BIoiBcAA.js} +4 -4
- package/template/dist/client/assets/{mindmap-definition-YRQLILUH-D9OjtrBW.js → mindmap-definition-YRQLILUH-Btzz0iIP.js} +1 -1
- package/template/dist/client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/template/dist/client/assets/{pieDiagram-SKSYHLDU-DoYJZfNJ.js → pieDiagram-SKSYHLDU-C2amrGtU.js} +1 -1
- package/template/dist/client/assets/{quadrantDiagram-337W2JSQ-Bs71YHJr.js → quadrantDiagram-337W2JSQ-EVgH9VuN.js} +1 -1
- package/template/dist/client/assets/{react-C0klD_r9.js → react-qvbbiZob.js} +1 -1
- package/template/dist/client/assets/{requirementDiagram-Z7DCOOCP-BWvQcALn.js → requirementDiagram-Z7DCOOCP-BkYPbRis.js} +1 -1
- package/template/dist/client/assets/{sankeyDiagram-WA2Y5GQK-CiGy1SQP.js → sankeyDiagram-WA2Y5GQK-B5EIaP-h.js} +1 -1
- package/template/dist/client/assets/{sequenceDiagram-2WXFIKYE-DRZim8vR.js → sequenceDiagram-2WXFIKYE-BC33VGOc.js} +1 -1
- package/template/dist/client/assets/{stateDiagram-RAJIS63D-BoqzJeL7.js → stateDiagram-RAJIS63D-DiKvWUYb.js} +1 -1
- package/template/dist/client/assets/stateDiagram-v2-FVOUBMTO-DjKMPYGe.js +1 -0
- package/template/dist/client/assets/{timeline-definition-YZTLITO2-CyvR95Wz.js → timeline-definition-YZTLITO2-QiFlgbRA.js} +1 -1
- package/template/dist/client/assets/{treemap-KZPCXAKY-DkXgGvs_.js → treemap-KZPCXAKY-BOYbyS9G.js} +1 -1
- package/template/dist/client/assets/{vennDiagram-LZ73GAT5-CVpGZu6p.js → vennDiagram-LZ73GAT5-CqmW7j4r.js} +1 -1
- package/template/dist/client/assets/{xychartDiagram-JWTSCODW-Cjqbi_DU.js → xychartDiagram-JWTSCODW-gj6oWX8l.js} +1 -1
- package/template/dist/server/assets/{Doc-DKBxQduk.js → Doc-9tJiX5y6.js} +3 -3
- package/template/dist/server/assets/{DocsLayout-CQfCTal3.js → DocsLayout-BTjhU_W5.js} +2 -2
- package/template/dist/server/assets/{Footer-Dcw5XVqX.js → Footer-CefTi2yh.js} +1 -1
- package/template/dist/server/assets/{FrameworkContent-OJfvCBHi.js → FrameworkContent-BkJvuP04.js} +2 -2
- package/template/dist/server/assets/{MarkdownHeadingContext-h4SfZq-C.js → MarkdownHeadingContext-37oQpb36.js} +8 -4
- package/template/dist/server/assets/{PostNotFound-DRJpnWrj.js → PostNotFound-BqBZf83v.js} +1 -1
- package/template/dist/server/assets/{_basePickBy-DJ9gzwF8.js → _basePickBy-DZ3TPUta.js} +2 -2
- package/template/dist/server/assets/{_baseUniq-CezmbvU2.js → _baseUniq-DKicWTQT.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs-CE_Z2zvG.js → _lang._project._version.docs-DOTNQiDb.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs-sJvASz_e.js → _lang._project._version.docs-U-t4mk5_.js} +3 -3
- package/template/dist/server/assets/{_lang._project._version.docs._-B2vf_QGY.js → _lang._project._version.docs._-DMgnElWM.js} +5 -5
- package/template/dist/server/assets/{_lang._project._version.docs._-CQcamDns.js → _lang._project._version.docs._-DSg82-Ug.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs.framework._framework._-54LEIllb.js → _lang._project._version.docs.framework._framework._-DbeN6toN.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs.framework._framework._-Dmn8xCf0.js → _lang._project._version.docs.framework._framework._-kBw_9L-F.js} +5 -5
- package/template/dist/server/assets/{_lang._project._version.docs.framework._framework.index-COKb9ffR.js → _lang._project._version.docs.framework._framework.index-Bsyj0DD5.js} +1 -1
- package/template/dist/server/assets/{_lang._project._version.docs.framework.index-DoEddI6Z.js → _lang._project._version.docs.framework.index-CmLAP_Io.js} +1 -1
- package/template/dist/server/assets/{_lang._project.docs-BjOhmwp6.js → _lang._project.docs-Bb4ZZ_jr.js} +3 -3
- package/template/dist/server/assets/{_lang._project.docs-dl8MxaGg.js → _lang._project.docs-BsnkRf-R.js} +1 -1
- package/template/dist/server/assets/{_lang._project.docs._-hSRVM-U7.js → _lang._project.docs._-ChrpJ61j.js} +5 -5
- package/template/dist/server/assets/{_lang._project.docs._-Bq0ajlaH.js → _lang._project.docs._-axRfm8vS.js} +1 -1
- package/template/dist/server/assets/{_lang.blog-Dk36D6Ol.js → _lang.blog-8j6IvzvQ.js} +2 -2
- package/template/dist/server/assets/{_lang.blog._-Cm8zXsPs.js → _lang.blog._-BPzP97Ac.js} +2 -2
- package/template/dist/server/assets/{_lang.blog._-D4CEjSkM.js → _lang.blog._-CjgFipz7.js} +1 -1
- package/template/dist/server/assets/{_lang.blog.index-orWcAgbi.js → _lang.blog._-DNX8UglA.js} +2 -2
- package/template/dist/server/assets/{_lang.blog.index-ZhMds6Jp.js → _lang.blog.index-CeZnMJBi.js} +1 -1
- package/template/dist/server/assets/{_lang.blog.index-Dfy48Gbt.js → _lang.blog.index-Dk5fYp4Q.js} +1 -1
- package/template/dist/server/assets/{_lang.blog._-A8h17fpC.js → _lang.blog.index-DzVKqoC4.js} +2 -2
- package/template/dist/server/assets/{_lang.docs-CAEkhcnT.js → _lang.docs-B4StnHMb.js} +3 -3
- package/template/dist/server/assets/{_lang.docs-CB1sGjRO.js → _lang.docs-DSB3iI6a.js} +1 -1
- package/template/dist/server/assets/{_lang.docs._-Zbv8OwJU.js → _lang.docs._--c0In1AT.js} +5 -5
- package/template/dist/server/assets/{_lang.docs._-DEX6FutM.js → _lang.docs._-S-y4-3Qn.js} +1 -1
- package/template/dist/server/assets/{_lang.docs.framework._framework._-BnpTV3KM.js → _lang.docs.framework._framework._-BFWLyU2h.js} +1 -1
- package/template/dist/server/assets/{_lang.docs.framework._framework._-4s4-ZCYh.js → _lang.docs.framework._framework._-Be0U7cDg.js} +5 -5
- package/template/dist/server/assets/{_lang.docs.framework._framework.index-BLryfsl2.js → _lang.docs.framework._framework.index-BZ512aSk.js} +1 -1
- package/template/dist/server/assets/{_lang.docs.framework.index-DGxWQH6q.js → _lang.docs.framework.index-U8z3j4kz.js} +1 -1
- package/template/dist/server/assets/{_tanstack-start-manifest_v-CURwM8Tc.js → _tanstack-start-manifest_v-DXpQ8503.js} +1 -1
- package/template/dist/server/assets/{arc-BwftnT5H.js → arc-B4h6h_n6.js} +1 -1
- package/template/dist/server/assets/{architecture-PBZL5I3N-KbDVC6gM.js → architecture-PBZL5I3N-CUwqLXkR.js} +6 -6
- package/template/dist/server/assets/{architectureDiagram-2XIMDMQ5-BoLvWxb3.js → architectureDiagram-2XIMDMQ5-CuCoxdBe.js} +6 -6
- package/template/dist/server/assets/{blockDiagram-WCTKOSBZ-GPFcXs-f.js → blockDiagram-WCTKOSBZ-D5PsUOim.js} +6 -6
- package/template/dist/server/assets/{blog.server-Bbk2Ifog.js → blog.server-WqzZ00iA.js} +1 -1
- package/template/dist/server/assets/{c4Diagram-IC4MRINW-EQwQCspo.js → c4Diagram-IC4MRINW-CXy5xO3o.js} +2 -2
- package/template/dist/server/assets/{channel-CxvwuPH7.js → channel-D0l-mWaF.js} +1 -1
- package/template/dist/server/assets/{chunk-4BX2VUAB-DUgcw5ei.js → chunk-4BX2VUAB-M7FVHMss.js} +1 -1
- package/template/dist/server/assets/{chunk-55IACEB6-Cn15uD91.js → chunk-55IACEB6-D_gDAje5.js} +1 -1
- package/template/dist/server/assets/{chunk-FMBD7UC4-Ck3iyLPu.js → chunk-FMBD7UC4-B5Bebx-Y.js} +1 -1
- package/template/dist/server/assets/{chunk-JSJVCQXG-VAT8yncE.js → chunk-JSJVCQXG-DxBkq-uB.js} +1 -1
- package/template/dist/server/assets/{chunk-KX2RTZJC-B1bd2VmA.js → chunk-KX2RTZJC-BMHm1EGi.js} +1 -1
- package/template/dist/server/assets/{chunk-NQ4KR5QH-CR67GG9C.js → chunk-NQ4KR5QH-Cp28pTwT.js} +3 -3
- package/template/dist/server/assets/{chunk-QZHKN3VN-B9SSazM4.js → chunk-QZHKN3VN-Bq5GZqaR.js} +1 -1
- package/template/dist/server/assets/{chunk-WL4C6EOR-DZ4Pjuao.js → chunk-WL4C6EOR-C9Nj5GdW.js} +5 -5
- package/template/dist/server/assets/{classDiagram-VBA2DB6C-CA6_4Wb2.js → classDiagram-VBA2DB6C-CUchv9T5.js} +6 -6
- package/template/dist/server/assets/{classDiagram-v2-RAHNMMFH-CA6_4Wb2.js → classDiagram-v2-RAHNMMFH-CUchv9T5.js} +6 -6
- package/template/dist/server/assets/{clone-DJHP_iVy.js → clone-CJcTi58S.js} +1 -1
- package/template/dist/server/assets/{cose-bilkent-S5V4N54A-DtU-cN6W.js → cose-bilkent-S5V4N54A-CxvCMhN_.js} +1 -1
- package/template/dist/server/assets/{dagre-KLK3FWXG-yZYrVU4p.js → dagre-KLK3FWXG-B5bQP7FL.js} +6 -6
- package/template/dist/server/assets/{diagram-E7M64L7V-8Yyz0aw0.js → diagram-E7M64L7V-NjHca90S.js} +8 -8
- package/template/dist/server/assets/{diagram-IFDJBPK2-DcxFYI3M.js → diagram-IFDJBPK2-CoTCfBKd.js} +6 -6
- package/template/dist/server/assets/{diagram-P4PSJMXO-CehxUcI0.js → diagram-P4PSJMXO-DHvGgYjH.js} +6 -6
- package/template/dist/server/assets/{docs.server-7EUAkSBN.js → docs.server-BSH7IvIU.js} +3884 -444
- package/template/dist/server/assets/{erDiagram-INFDFZHY-Bu2p1_Pj.js → erDiagram-INFDFZHY-01crajKr.js} +4 -4
- package/template/dist/server/assets/{flowDiagram-PKNHOUZH-B_eKR7I0.js → flowDiagram-PKNHOUZH-BkUQ_vxg.js} +6 -6
- package/template/dist/server/assets/{ganttDiagram-A5KZAMGK-DP6YEZof.js → ganttDiagram-A5KZAMGK-DvrO-w2P.js} +2 -2
- package/template/dist/server/assets/{gitGraph-HDMCJU4V-Bt0qhVL4.js → gitGraph-HDMCJU4V-h9JNaxB7.js} +6 -6
- package/template/dist/server/assets/{gitGraphDiagram-K3NZZRJ6-DwvkdYrg.js → gitGraphDiagram-K3NZZRJ6-BoKm6Fm-.js} +7 -7
- package/template/dist/server/assets/{graph-BVFNe_k5.js → graph-BoxbfI7Z.js} +2 -2
- package/template/dist/server/assets/{index-BvagF3L5.js → index-Jfzi6SZW.js} +2 -2
- package/template/dist/server/assets/{info-3K5VOQVL-CFejRnvB.js → info-3K5VOQVL-DgaSHqkS.js} +6 -6
- package/template/dist/server/assets/{infoDiagram-LFFYTUFH-D0v9uyXI.js → infoDiagram-LFFYTUFH-DgV5W8-I.js} +5 -5
- package/template/dist/server/assets/{ishikawaDiagram-PHBUUO56-DZumspL4.js → ishikawaDiagram-PHBUUO56-CqlMQ0Fq.js} +1 -1
- package/template/dist/server/assets/{journeyDiagram-4ABVD52K-nRp_-qZp.js → journeyDiagram-4ABVD52K-D6ySTub8.js} +4 -4
- package/template/dist/server/assets/{kanban-definition-K7BYSVSG-BMKyyzjt.js → kanban-definition-K7BYSVSG-BT8m7Cwk.js} +2 -2
- package/template/dist/server/assets/{layout-mpiN5R-5.js → layout-CkYcErfn.js} +4 -4
- package/template/dist/server/assets/{linear-CqNYgjEx.js → linear-F_0dWGZL.js} +1 -1
- package/template/dist/server/assets/{mermaid-parser.core-B8Uu3QZY.js → mermaid-parser.core-q5MdUJuo.js} +11 -11
- package/template/dist/server/assets/{mermaid.core-BI3nMhNO.js → mermaid.core-DOWTODR1.js} +31 -31
- package/template/dist/server/assets/{mindmap-definition-YRQLILUH-DCoFqLPh.js → mindmap-definition-YRQLILUH-BQxlQqn-.js} +3 -3
- package/template/dist/server/assets/{ordinal-Bcam90FY.js → ordinal-CxptdPJm.js} +1 -1
- package/template/dist/server/assets/{packet-RMMSAZCW-djgonfKN.js → packet-RMMSAZCW-D8FkLZuP.js} +6 -6
- package/template/dist/server/assets/{pie-UPGHQEXC-Dug2t-PE.js → pie-UPGHQEXC-Diw2fHLk.js} +6 -6
- package/template/dist/server/assets/{pieDiagram-SKSYHLDU-CS0_hW4w.js → pieDiagram-SKSYHLDU-B1J4UJZ7.js} +8 -8
- package/template/dist/server/assets/{quadrantDiagram-337W2JSQ-BpQNM0zu.js → quadrantDiagram-337W2JSQ-BvjKLapg.js} +2 -2
- package/template/dist/server/assets/{radar-KQ55EAFF-3ir2W9Wi.js → radar-KQ55EAFF-CcBdPU3n.js} +6 -6
- package/template/dist/server/assets/{requirementDiagram-Z7DCOOCP-D92RyjV4.js → requirementDiagram-Z7DCOOCP-Bgr_wnAs.js} +3 -3
- package/template/dist/server/assets/{router-DK1vpPhv.js → router-DxwPl-Dc.js} +18 -18
- package/template/dist/server/assets/{sankeyDiagram-WA2Y5GQK-DCPRB-xO.js → sankeyDiagram-WA2Y5GQK-B0UwtyW3.js} +2 -2
- package/template/dist/server/assets/{sequenceDiagram-2WXFIKYE-C1ab2VvU.js → sequenceDiagram-2WXFIKYE-BbxQJHjO.js} +3 -3
- package/template/dist/server/assets/{stateDiagram-RAJIS63D-GhG1G3ff.js → stateDiagram-RAJIS63D-Cg-uJ_UO.js} +8 -8
- package/template/dist/server/assets/{stateDiagram-v2-FVOUBMTO-C-KtMadV.js → stateDiagram-v2-FVOUBMTO-BWVPrqfa.js} +4 -4
- package/template/dist/server/assets/{timeline-definition-YZTLITO2-DyfAQCd4.js → timeline-definition-YZTLITO2-DCSJT2WT.js} +2 -2
- package/template/dist/server/assets/{treemap-KZPCXAKY-Cn0Cw4Cl.js → treemap-KZPCXAKY-a0nhlKgx.js} +6 -6
- package/template/dist/server/assets/{vennDiagram-LZ73GAT5-D2Ak5JUa.js → vennDiagram-LZ73GAT5-Bk2HQEQq.js} +1 -1
- package/template/dist/server/assets/{xychartDiagram-JWTSCODW-DqoBOs1L.js → xychartDiagram-JWTSCODW-C4svHkt_.js} +3 -3
- package/template/dist/server/server.js +16 -16
- package/template/package.json +2 -0
- package/template/vite.config.ts +33 -18
- package/template/wrangler.jsonc +2 -2
- package/admin/dist/client/assets/main-CSFhgz4p.js +0 -17
- package/admin/dist/client/assets/routes-C6bCOSX-.js +0 -3
- package/admin/dist/server/assets/_tanstack-start-manifest_v-BE5XHVZ2.js +0 -17
- package/admin/dist/server/assets/redirect-DtfSYi2g.js +0 -51
- package/admin/dist/server/assets/status-CZz8Rs_7.js +0 -81
- package/template/dist/client/assets/_lang-Cpuy5xmU.js +0 -1
- package/template/dist/client/assets/_lang._project-DBdR04In.js +0 -1
- package/template/dist/client/assets/_lang._project._version-CtCLMJs2.js +0 -1
- package/template/dist/client/assets/_lang._project._version.docs._-CxgRZ17Q.js +0 -1
- package/template/dist/client/assets/_lang._project._version.docs.framework._framework._-Qph6wahA.js +0 -1
- package/template/dist/client/assets/_lang._project.docs._-C_ZfXEJ7.js +0 -1
- package/template/dist/client/assets/_lang.blog-BcRmhv23.js +0 -1
- package/template/dist/client/assets/_lang.blog-C5Aa7k5r.js +0 -1
- package/template/dist/client/assets/_lang.blog._-BVw4vhtF.js +0 -1
- package/template/dist/client/assets/_lang.blog.index-Y35iFzkp.js +0 -1
- package/template/dist/client/assets/_lang.docs._-B9hwwoTY.js +0 -1
- package/template/dist/client/assets/_lang.docs.framework._framework._-BENbKZIu.js +0 -1
- package/template/dist/client/assets/channel-C_1F7tzH.js +0 -1
- package/template/dist/client/assets/classDiagram-VBA2DB6C-CqViWWFw.js +0 -1
- package/template/dist/client/assets/classDiagram-v2-RAHNMMFH-CqViWWFw.js +0 -1
- package/template/dist/client/assets/clone-EeiNAO_N.js +0 -1
- package/template/dist/client/assets/ordinal-BENe2yWM.js +0 -1
- package/template/dist/client/assets/stateDiagram-v2-FVOUBMTO-CJYWvllO.js +0 -1
- /package/admin/dist/server/assets/{createServerRpc-DJq9yo-B.js → createServerRpc-Cyyxq9HQ.js} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { i as __toESM, r as __require, t as __commonJSMin } from "./assets/chunk-CNvmzFzq.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { l as require_react, n as routerContext, r as require_jsx_runtime, t as useRouter } from "./assets/useRouter-BXJvr8to.js";
|
|
3
|
+
import { A as decodePath, B as replaceEqualDeep, C as processRouteMasks, D as DEFAULT_PROTOCOL_ALLOWLIST, E as invariant, F as isDangerousProtocol, L as isPromise, M as encodePathLikeUrl, N as escapeHtml, O as arraysEqual, P as functionalUpdate, R as last, S as findSingleMatch, T as createLRUCache, _ as trimPath, a as matchContext, b as findFlatMatch, c as rootRouteId, d as compileDecodeCharMap, g as resolvePath, j as deepEqual, k as createControlledPromise, l as isNotFound, m as joinPaths, n as require_react_dom, o as ClientOnly, p as interpolatePath, r as useStore, t as getServerFnById, u as cleanPath, w as processRouteTree, x as findRouteMatch, y as trimPathRight, z as nullReplaceEqualDeep } from "./assets/__tanstack-start-server-fn-resolver-qK0Yfvti.js";
|
|
4
|
+
import { n as getAuth } from "./assets/auth.server-BLVDnTCZ.js";
|
|
4
5
|
import { ReadableStream as ReadableStream$1 } from "node:stream/web";
|
|
5
6
|
import { PassThrough, Readable } from "node:stream";
|
|
6
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -220,6 +221,56 @@ function stringifySearchWith(stringify, parser) {
|
|
|
220
221
|
};
|
|
221
222
|
}
|
|
222
223
|
//#endregion
|
|
224
|
+
//#region ../../node_modules/.bun/@tanstack+router-core@1.168.3/node_modules/@tanstack/router-core/dist/esm/redirect.js
|
|
225
|
+
/**
|
|
226
|
+
* Create a redirect Response understood by TanStack Router.
|
|
227
|
+
*
|
|
228
|
+
* Use from route `loader`/`beforeLoad` or server functions to trigger a
|
|
229
|
+
* navigation. If `throw: true` is set, the redirect is thrown instead of
|
|
230
|
+
* returned. When an absolute `href` is supplied and `reloadDocument` is not
|
|
231
|
+
* set, a full-document navigation is inferred.
|
|
232
|
+
*
|
|
233
|
+
* @param opts Options for the redirect. Common fields:
|
|
234
|
+
* - `href`: absolute URL for external redirects; infers `reloadDocument`.
|
|
235
|
+
* - `statusCode`: HTTP status code to use (defaults to 307).
|
|
236
|
+
* - `headers`: additional headers to include on the Response.
|
|
237
|
+
* - Standard navigation options like `to`, `params`, `search`, `replace`,
|
|
238
|
+
* and `reloadDocument` for internal redirects.
|
|
239
|
+
* @returns A Response augmented with router navigation options.
|
|
240
|
+
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/redirectFunction
|
|
241
|
+
*/
|
|
242
|
+
function redirect(opts) {
|
|
243
|
+
opts.statusCode = opts.statusCode || opts.code || 307;
|
|
244
|
+
if (!opts._builtLocation && !opts.reloadDocument && typeof opts.href === "string") try {
|
|
245
|
+
new URL(opts.href);
|
|
246
|
+
opts.reloadDocument = true;
|
|
247
|
+
} catch {}
|
|
248
|
+
const headers = new Headers(opts.headers);
|
|
249
|
+
if (opts.href && headers.get("Location") === null) headers.set("Location", opts.href);
|
|
250
|
+
const response = new Response(null, {
|
|
251
|
+
status: opts.statusCode,
|
|
252
|
+
headers
|
|
253
|
+
});
|
|
254
|
+
response.options = opts;
|
|
255
|
+
if (opts.throw) throw response;
|
|
256
|
+
return response;
|
|
257
|
+
}
|
|
258
|
+
/** Check whether a value is a TanStack Router redirect Response. */
|
|
259
|
+
/** Check whether a value is a TanStack Router redirect Response. */
|
|
260
|
+
function isRedirect(obj) {
|
|
261
|
+
return obj instanceof Response && !!obj.options;
|
|
262
|
+
}
|
|
263
|
+
/** True if value is a redirect with a resolved `href` location. */
|
|
264
|
+
/** True if value is a redirect with a resolved `href` location. */
|
|
265
|
+
function isResolvedRedirect(obj) {
|
|
266
|
+
return isRedirect(obj) && !!obj.options.href;
|
|
267
|
+
}
|
|
268
|
+
/** Parse a serialized redirect object back into a redirect Response. */
|
|
269
|
+
/** Parse a serialized redirect object back into a redirect Response. */
|
|
270
|
+
function parseRedirect(obj) {
|
|
271
|
+
if (obj !== null && typeof obj === "object" && obj.isSerializedRedirect) return redirect(obj);
|
|
272
|
+
}
|
|
273
|
+
//#endregion
|
|
223
274
|
//#region ../../node_modules/.bun/@tanstack+router-core@1.168.3/node_modules/@tanstack/router-core/dist/esm/rewrite.js
|
|
224
275
|
/** Compose multiple rewrite pairs into a single in/out rewrite. */
|
|
225
276
|
/** Compose multiple rewrite pairs into a single in/out rewrite. */
|
|
@@ -15522,6 +15573,9 @@ function getH3Event() {
|
|
|
15522
15573
|
if (!event) throw new Error(`No StartEvent found in AsyncLocalStorage. Make sure you are using the function within the server runtime.`);
|
|
15523
15574
|
return event.h3Event;
|
|
15524
15575
|
}
|
|
15576
|
+
function getRequest() {
|
|
15577
|
+
return getH3Event().req;
|
|
15578
|
+
}
|
|
15525
15579
|
function getResponse() {
|
|
15526
15580
|
return getH3Event().res;
|
|
15527
15581
|
}
|
|
@@ -15543,7 +15597,7 @@ var HEADERS = { TSS_SHELL: "X-TSS_SHELL" };
|
|
|
15543
15597
|
* the dev styles URL for route-scoped CSS collection.
|
|
15544
15598
|
*/
|
|
15545
15599
|
async function getStartManifest(matchedRoutes) {
|
|
15546
|
-
const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-
|
|
15600
|
+
const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-BgMVPPt2.js");
|
|
15547
15601
|
const startManifest = tsrStartManifest();
|
|
15548
15602
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes["__root__"] || {};
|
|
15549
15603
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -15568,82 +15622,6 @@ async function getStartManifest(matchedRoutes) {
|
|
|
15568
15622
|
};
|
|
15569
15623
|
}
|
|
15570
15624
|
//#endregion
|
|
15571
|
-
//#region \0#tanstack-start-server-fn-resolver
|
|
15572
|
-
var manifest = {
|
|
15573
|
-
"a3d81974aeece150d4b02be5b91590b8187442ebea56be4a89dcbf053626d22b": {
|
|
15574
|
-
functionName: "fetchVersion_createServerFn_handler",
|
|
15575
|
-
importer: () => import("./assets/misc-DOk3t9vs.js")
|
|
15576
|
-
},
|
|
15577
|
-
"3bf4ba50ca8ccc3c8c60d8f2e53307a320940d68c478df494552066904c5cd74": {
|
|
15578
|
-
functionName: "fetchLlmConfig_createServerFn_handler",
|
|
15579
|
-
importer: () => import("./assets/misc-DOk3t9vs.js")
|
|
15580
|
-
},
|
|
15581
|
-
"e0b4116f6b2c8d096830102e36458acf9c616a056fcdddda956a4d66984ef58c": {
|
|
15582
|
-
functionName: "fetchConfig_createServerFn_handler",
|
|
15583
|
-
importer: () => import("./assets/misc-DOk3t9vs.js")
|
|
15584
|
-
},
|
|
15585
|
-
"a054a04356fe9987891efee8b7a11cd2dedb00f6b2e8f26d1c642e001e553d53": {
|
|
15586
|
-
functionName: "openFile_createServerFn_handler",
|
|
15587
|
-
importer: () => import("./assets/misc-DOk3t9vs.js")
|
|
15588
|
-
},
|
|
15589
|
-
"5080dc3f2f2309ec6981b94c431969637130c657e8a1dfb10400b4614eecc1ea": {
|
|
15590
|
-
functionName: "fetchModels_createServerFn_handler",
|
|
15591
|
-
importer: () => import("./assets/models-CBb8Owe5.js")
|
|
15592
|
-
},
|
|
15593
|
-
"4e218d79545765572808c7eab33b7663d4496209c15406d0b449366905b6b83f": {
|
|
15594
|
-
functionName: "fetchStatus_createServerFn_handler",
|
|
15595
|
-
importer: () => import("./assets/status-CZz8Rs_7.js")
|
|
15596
|
-
},
|
|
15597
|
-
"843cd8b59095708a5ae78198708db9850f89fd3dd3830ab236f0bd924417692f": {
|
|
15598
|
-
functionName: "fetchFileCoverage_createServerFn_handler",
|
|
15599
|
-
importer: () => import("./assets/status-CZz8Rs_7.js")
|
|
15600
|
-
},
|
|
15601
|
-
"e1e7281e45375c67dbe408c58452e7482b139da60e9e361615553227dce95ee0": {
|
|
15602
|
-
functionName: "fetchFileBlocks_createServerFn_handler",
|
|
15603
|
-
importer: () => import("./assets/status-CZz8Rs_7.js")
|
|
15604
|
-
},
|
|
15605
|
-
"e1d13d8602339a95f559345ccfc82e9f843dd375ce8e9f580637c241e7e44774": {
|
|
15606
|
-
functionName: "deleteCacheEntry_createServerFn_handler",
|
|
15607
|
-
importer: () => import("./assets/status-CZz8Rs_7.js")
|
|
15608
|
-
},
|
|
15609
|
-
"1d8e3916f992485c62e62c3693083850b773fdff4ec54277de5a01eb98dab664": {
|
|
15610
|
-
functionName: "rescanVersion_createServerFn_handler",
|
|
15611
|
-
importer: () => import("./assets/status-CZz8Rs_7.js")
|
|
15612
|
-
},
|
|
15613
|
-
"421de02ce39dde6e27cf4689e837ec072cbd01e63f8cdd5c2a3f42f0bd5ca613": {
|
|
15614
|
-
functionName: "fetchJobs_createServerFn_handler",
|
|
15615
|
-
importer: () => import("./assets/jobs-bQfYqSk7.js")
|
|
15616
|
-
},
|
|
15617
|
-
"c08559ac758aa0d315deaca7a0d7d923a9a44d997c8cb811151417c1f221ddd6": {
|
|
15618
|
-
functionName: "createJob_createServerFn_handler",
|
|
15619
|
-
importer: () => import("./assets/jobs-bQfYqSk7.js")
|
|
15620
|
-
},
|
|
15621
|
-
"8a56694c9d7b29422a3e7d2f6b803be100d79d3853d92d465cb55ed572781e62": {
|
|
15622
|
-
functionName: "fetchJob_createServerFn_handler",
|
|
15623
|
-
importer: () => import("./assets/jobs-bQfYqSk7.js")
|
|
15624
|
-
},
|
|
15625
|
-
"88c2855c84e91504070bfecc50ddfa50339d22c305626800b6d9b05d79385d71": {
|
|
15626
|
-
functionName: "deleteJob_createServerFn_handler",
|
|
15627
|
-
importer: () => import("./assets/jobs-bQfYqSk7.js")
|
|
15628
|
-
}
|
|
15629
|
-
};
|
|
15630
|
-
async function getServerFnById(id) {
|
|
15631
|
-
const serverFnInfo = manifest[id];
|
|
15632
|
-
if (!serverFnInfo) throw new Error("Server function info not found for " + id);
|
|
15633
|
-
const fnModule = await serverFnInfo.importer();
|
|
15634
|
-
if (!fnModule) {
|
|
15635
|
-
console.info("serverFnInfo", serverFnInfo);
|
|
15636
|
-
throw new Error("Server function module not resolved for " + id);
|
|
15637
|
-
}
|
|
15638
|
-
const action = fnModule[serverFnInfo.functionName];
|
|
15639
|
-
if (!action) {
|
|
15640
|
-
console.info("serverFnInfo", serverFnInfo);
|
|
15641
|
-
console.info("fnModule", fnModule);
|
|
15642
|
-
throw new Error(`Server function module export not resolved for serverFn ID: ${id}`);
|
|
15643
|
-
}
|
|
15644
|
-
return action;
|
|
15645
|
-
}
|
|
15646
|
-
//#endregion
|
|
15647
15625
|
//#region ../../node_modules/.bun/@tanstack+start-client-core@1.167.3/node_modules/@tanstack/start-client-core/dist/esm/constants.js
|
|
15648
15626
|
var TSS_FORMDATA_CONTEXT = "__TSS_CONTEXT";
|
|
15649
15627
|
var TSS_SERVER_FUNCTION = Symbol.for("TSS_SERVER_FUNCTION");
|
|
@@ -16425,9 +16403,9 @@ var baseManifestPromise;
|
|
|
16425
16403
|
*/
|
|
16426
16404
|
var cachedFinalManifestPromise;
|
|
16427
16405
|
async function loadEntries() {
|
|
16428
|
-
const routerEntry = await import("./assets/router-
|
|
16406
|
+
const routerEntry = await import("./assets/router-D-82slI-.js");
|
|
16429
16407
|
return {
|
|
16430
|
-
startEntry: await import("./assets/start-
|
|
16408
|
+
startEntry: await import("./assets/start-BiybVoR2.js"),
|
|
16431
16409
|
routerEntry
|
|
16432
16410
|
};
|
|
16433
16411
|
}
|
|
@@ -16778,13 +16756,15 @@ async function handleServerRoutes({ getRouter, request, url, executeRouter, cont
|
|
|
16778
16756
|
})).response;
|
|
16779
16757
|
}
|
|
16780
16758
|
//#endregion
|
|
16781
|
-
//#region
|
|
16782
|
-
|
|
16783
|
-
|
|
16784
|
-
|
|
16785
|
-
|
|
16786
|
-
|
|
16787
|
-
|
|
16788
|
-
|
|
16759
|
+
//#region app/server.ts
|
|
16760
|
+
/**
|
|
16761
|
+
* Custom server entry that wraps TanStack Start's default handler
|
|
16762
|
+
* to add better-auth API route handling at /api/auth/*.
|
|
16763
|
+
*/
|
|
16764
|
+
var startHandler = createStartHandler(defaultStreamHandler);
|
|
16765
|
+
var server_default = { async fetch(request) {
|
|
16766
|
+
if (new URL(request.url).pathname.startsWith("/api/auth")) return getAuth().handler(request);
|
|
16767
|
+
return startHandler(request);
|
|
16768
|
+
} };
|
|
16789
16769
|
//#endregion
|
|
16790
|
-
export { batch as a, getAssetCrossOrigin as c,
|
|
16770
|
+
export { batch as a, getAssetCrossOrigin as c, createNonReactiveMutableStore as d, server_default as default, createNonReactiveReadonlyStore as f, Outlet as i, resolveManifestAssetLink as l, TSS_SERVER_FUNCTION as n, createAtom as o, redirect as p, getRequest as r, toObserver as s, createServerFn as t, RouterCore as u };
|
package/admin/package.json
CHANGED
|
@@ -12,16 +12,21 @@
|
|
|
12
12
|
"start": "node dist/server/server.js"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
+
"@cloudflare/vite-plugin": "^1.30.0",
|
|
15
16
|
"@tanstack/react-query": "^5.0.0",
|
|
16
17
|
"@tanstack/react-router": "^1.120.3",
|
|
17
18
|
"@tanstack/react-start": "^1.120.3",
|
|
18
19
|
"@vitejs/plugin-react": "^6.0.1",
|
|
20
|
+
"better-auth": "^1.5.6",
|
|
21
|
+
"better-sqlite3": "^12.8.0",
|
|
19
22
|
"hono": "^4.12.0",
|
|
20
23
|
"react": "^19.1.0",
|
|
21
24
|
"react-dom": "^19.1.0",
|
|
22
|
-
"vite": "^8.0.1"
|
|
25
|
+
"vite": "^8.0.1",
|
|
26
|
+
"wrangler": "^4.76.0"
|
|
23
27
|
},
|
|
24
28
|
"devDependencies": {
|
|
29
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
25
30
|
"@types/node": "^22.0.0",
|
|
26
31
|
"@types/react": "^19.2.14",
|
|
27
32
|
"@types/react-dom": "^19.2.3",
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { createServerFn } from '@tanstack/react-start';
|
|
2
|
+
import { getRequest } from '@tanstack/react-start/server';
|
|
3
|
+
|
|
4
|
+
function isCfWorkers(): boolean {
|
|
5
|
+
return !!(globalThis as any).__CF_WORKERS;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Server function to get the current session.
|
|
10
|
+
* Called during route loading to check auth state.
|
|
11
|
+
*
|
|
12
|
+
* On CF Workers: returns a synthetic read-only session (no auth DB available).
|
|
13
|
+
* Protect the admin URL at the Cloudflare level if needed.
|
|
14
|
+
*/
|
|
15
|
+
export const getSession = createServerFn({ method: 'GET' }).handler(async () => {
|
|
16
|
+
if (isCfWorkers()) {
|
|
17
|
+
// Return a synthetic session for CF Workers (read-only mode)
|
|
18
|
+
return {
|
|
19
|
+
session: {
|
|
20
|
+
id: 'cf-workers',
|
|
21
|
+
userId: 'cf-workers',
|
|
22
|
+
expiresAt: new Date(Date.now() + 86400000).toISOString(),
|
|
23
|
+
},
|
|
24
|
+
user: {
|
|
25
|
+
id: 'cf-workers',
|
|
26
|
+
name: 'CF Worker',
|
|
27
|
+
email: 'admin@cf-workers',
|
|
28
|
+
role: 'viewer',
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const { getAuth } = await import('../../app/lib/auth.server');
|
|
34
|
+
const auth = getAuth();
|
|
35
|
+
const request = getRequest();
|
|
36
|
+
const session = await auth.api.getSession({
|
|
37
|
+
headers: request.headers,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Seed admin user on first access if no users exist
|
|
41
|
+
await seedAdminIfNeeded(auth);
|
|
42
|
+
|
|
43
|
+
return session;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
let _seeded = false;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Seed a default admin user if none exists.
|
|
50
|
+
* Only runs once per server lifetime.
|
|
51
|
+
*/
|
|
52
|
+
async function seedAdminIfNeeded(auth: any) {
|
|
53
|
+
if (_seeded) return;
|
|
54
|
+
_seeded = true;
|
|
55
|
+
|
|
56
|
+
try {
|
|
57
|
+
const existing = await auth.api.listUsers({
|
|
58
|
+
query: { limit: 1 },
|
|
59
|
+
headers: new Headers(),
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
if (existing?.users && existing.users.length > 0) {
|
|
63
|
+
return; // Users exist, skip seeding
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Create the default admin user
|
|
67
|
+
const result = await auth.api.signUpEmail({
|
|
68
|
+
body: {
|
|
69
|
+
email: 'admin@docs-i18n.local',
|
|
70
|
+
password: 'admin',
|
|
71
|
+
name: 'Admin',
|
|
72
|
+
username: 'admin',
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
if (result?.user?.id) {
|
|
77
|
+
await auth.api.setRole({
|
|
78
|
+
body: {
|
|
79
|
+
userId: result.user.id,
|
|
80
|
+
role: 'admin',
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
console.log('[auth] Default admin user created (username: admin, password: admin)');
|
|
84
|
+
}
|
|
85
|
+
} catch (err) {
|
|
86
|
+
// Swallow errors — seeding is best-effort
|
|
87
|
+
console.warn('[auth] Admin seed skipped:', err instanceof Error ? err.message : err);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import { createServerFn } from '@tanstack/react-start';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
|
|
3
|
+
function isCfWorkers(): boolean {
|
|
4
|
+
return !!(globalThis as any).__CF_WORKERS;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
// Lazy-import the job manager only on Node.js (it uses child_process)
|
|
8
|
+
async function getJobManager() {
|
|
9
|
+
const { jobManager } = await import('../services/job-manager');
|
|
10
|
+
return jobManager;
|
|
11
|
+
}
|
|
4
12
|
|
|
5
13
|
export const fetchJobs = createServerFn({ method: 'GET' }).handler(async () => {
|
|
14
|
+
if (isCfWorkers()) return [];
|
|
15
|
+
|
|
16
|
+
const { ensureInit } = await import('../init');
|
|
6
17
|
await ensureInit();
|
|
18
|
+
const jobManager = await getJobManager();
|
|
7
19
|
return jobManager.list().map((j) => ({
|
|
8
20
|
...j,
|
|
9
21
|
logLines: (j.logLines ?? []).slice(-20),
|
|
@@ -24,16 +36,27 @@ export const createJob = createServerFn({ method: 'POST' })
|
|
|
24
36
|
}) => d,
|
|
25
37
|
)
|
|
26
38
|
.handler(async ({ data }) => {
|
|
39
|
+
if (isCfWorkers()) {
|
|
40
|
+
throw new Error('Job creation is not available on CF Workers');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const { ensureInit } = await import('../init');
|
|
27
44
|
await ensureInit();
|
|
28
45
|
if (!data.lang || !data.version) {
|
|
29
46
|
throw new Error('Missing lang or version');
|
|
30
47
|
}
|
|
48
|
+
const jobManager = await getJobManager();
|
|
31
49
|
return jobManager.start(data);
|
|
32
50
|
});
|
|
33
51
|
|
|
34
52
|
export const fetchJob = createServerFn({ method: 'GET' })
|
|
35
53
|
.inputValidator((d: { id: string }) => d)
|
|
36
54
|
.handler(async ({ data }) => {
|
|
55
|
+
if (isCfWorkers()) {
|
|
56
|
+
throw new Error('Jobs not available on CF Workers');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const jobManager = await getJobManager();
|
|
37
60
|
const job = jobManager.get(data.id);
|
|
38
61
|
if (!job) throw new Error('Job not found');
|
|
39
62
|
return job;
|
|
@@ -42,6 +65,11 @@ export const fetchJob = createServerFn({ method: 'GET' })
|
|
|
42
65
|
export const deleteJob = createServerFn({ method: 'POST' })
|
|
43
66
|
.inputValidator((d: { id: string }) => d)
|
|
44
67
|
.handler(async ({ data }) => {
|
|
68
|
+
if (isCfWorkers()) {
|
|
69
|
+
throw new Error('Jobs not available on CF Workers');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const jobManager = await getJobManager();
|
|
45
73
|
const job = jobManager.get(data.id);
|
|
46
74
|
if (!job) throw new Error('Job not found');
|
|
47
75
|
if (job.status === 'running') {
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { createServerFn } from '@tanstack/react-start';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { ensureInit, getConfig } from '../init';
|
|
2
|
+
|
|
3
|
+
function isCfWorkers(): boolean {
|
|
4
|
+
return !!(globalThis as any).__CF_WORKERS;
|
|
5
|
+
}
|
|
7
6
|
|
|
8
7
|
export const fetchVersion = createServerFn({ method: 'GET' }).handler(async () => {
|
|
8
|
+
if (isCfWorkers()) {
|
|
9
|
+
// No package.json access on CF Workers — return a placeholder
|
|
10
|
+
return { version: 'cf-workers' };
|
|
11
|
+
}
|
|
12
|
+
const { getPackageVersion } = await import('docs-i18n');
|
|
9
13
|
return { version: getPackageVersion() };
|
|
10
14
|
});
|
|
11
15
|
|
|
12
16
|
export const fetchLlmConfig = createServerFn({ method: 'GET' }).handler(async () => {
|
|
17
|
+
if (isCfWorkers()) {
|
|
18
|
+
return { model: null, provider: null, hasApiKey: false };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const { ensureInit, getConfig } = await import('../init');
|
|
13
22
|
await ensureInit();
|
|
14
23
|
const config = getConfig();
|
|
15
24
|
const llm = config?.llm;
|
|
@@ -17,6 +26,8 @@ export const fetchLlmConfig = createServerFn({ method: 'GET' }).handler(async ()
|
|
|
17
26
|
// Read .env from project root for env vars not yet in process.env
|
|
18
27
|
let envVars: Record<string, string> = {};
|
|
19
28
|
try {
|
|
29
|
+
const { readFileSync, existsSync } = await import('node:fs');
|
|
30
|
+
const { resolve } = await import('node:path');
|
|
20
31
|
const { getProjectRoot } = await import('../init');
|
|
21
32
|
const projectRoot = getProjectRoot();
|
|
22
33
|
const envPath = resolve(projectRoot, '.env');
|
|
@@ -54,12 +65,21 @@ export const fetchLlmConfig = createServerFn({ method: 'GET' }).handler(async ()
|
|
|
54
65
|
});
|
|
55
66
|
|
|
56
67
|
export const fetchConfig = createServerFn({ method: 'GET' }).handler(async () => {
|
|
68
|
+
if (isCfWorkers()) {
|
|
69
|
+
return { projectRoot: '(cf-workers)' };
|
|
70
|
+
}
|
|
57
71
|
return { projectRoot: process.cwd() };
|
|
58
72
|
});
|
|
59
73
|
|
|
60
74
|
export const openFile = createServerFn({ method: 'POST' })
|
|
61
75
|
.inputValidator((d: { file: string }) => d)
|
|
62
76
|
.handler(async ({ data }) => {
|
|
77
|
+
if (isCfWorkers()) {
|
|
78
|
+
throw new Error('File opening is not available on CF Workers');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const { resolve } = await import('node:path');
|
|
82
|
+
const { spawn: nodeSpawn } = await import('node:child_process');
|
|
63
83
|
const { file } = data;
|
|
64
84
|
if (!file) throw new Error('Missing file');
|
|
65
85
|
const fullPath = resolve(process.cwd(), file);
|
|
@@ -9,8 +9,27 @@ import {
|
|
|
9
9
|
rescan,
|
|
10
10
|
} from '../services/status';
|
|
11
11
|
import { ensureInit } from '../init';
|
|
12
|
+
import {
|
|
13
|
+
d1GetVersions,
|
|
14
|
+
d1GetLangs,
|
|
15
|
+
d1GetOverview,
|
|
16
|
+
d1FileCoverage,
|
|
17
|
+
d1GetFileBlocks,
|
|
18
|
+
d1DeleteTranslation,
|
|
19
|
+
} from '../services/d1-status';
|
|
20
|
+
|
|
21
|
+
function isCfWorkers(): boolean {
|
|
22
|
+
return !!(globalThis as any).__CF_WORKERS;
|
|
23
|
+
}
|
|
12
24
|
|
|
13
25
|
export const fetchStatus = createServerFn({ method: 'GET' }).handler(async () => {
|
|
26
|
+
if (isCfWorkers()) {
|
|
27
|
+
const versions = await d1GetVersions();
|
|
28
|
+
const langs = await d1GetLangs();
|
|
29
|
+
const data = await d1GetOverview(versions, langs);
|
|
30
|
+
return { versions, langs: ['en', ...langs], data };
|
|
31
|
+
}
|
|
32
|
+
|
|
14
33
|
await ensureInit();
|
|
15
34
|
return {
|
|
16
35
|
versions: getVersions(),
|
|
@@ -22,8 +41,20 @@ export const fetchStatus = createServerFn({ method: 'GET' }).handler(async () =>
|
|
|
22
41
|
export const fetchFileCoverage = createServerFn({ method: 'GET' })
|
|
23
42
|
.inputValidator((d: { version: string; lang: string }) => d)
|
|
24
43
|
.handler(async ({ data }) => {
|
|
25
|
-
await ensureInit();
|
|
26
44
|
const { version, lang } = data;
|
|
45
|
+
|
|
46
|
+
if (isCfWorkers()) {
|
|
47
|
+
if (lang === 'en') {
|
|
48
|
+
const langs = await d1GetLangs();
|
|
49
|
+
const anyLang = langs[0];
|
|
50
|
+
if (!anyLang) return [];
|
|
51
|
+
const coverage = await d1FileCoverage(version, anyLang);
|
|
52
|
+
return coverage.map((f) => ({ file: f.file, total: f.total, translated: f.total }));
|
|
53
|
+
}
|
|
54
|
+
return d1FileCoverage(version, lang);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
await ensureInit();
|
|
27
58
|
if (lang === 'en') {
|
|
28
59
|
const anyLang = getLangs()[0];
|
|
29
60
|
const coverage = getFileCoverage(version, anyLang);
|
|
@@ -35,8 +66,15 @@ export const fetchFileCoverage = createServerFn({ method: 'GET' })
|
|
|
35
66
|
export const fetchFileBlocks = createServerFn({ method: 'GET' })
|
|
36
67
|
.inputValidator((d: { version: string; lang: string; path: string }) => d)
|
|
37
68
|
.handler(async ({ data }) => {
|
|
38
|
-
await ensureInit();
|
|
39
69
|
const { version, lang, path } = data;
|
|
70
|
+
|
|
71
|
+
if (isCfWorkers()) {
|
|
72
|
+
const blocks = await d1GetFileBlocks(version, lang, path);
|
|
73
|
+
if (!blocks || blocks.length === 0) throw new Error('File not found');
|
|
74
|
+
return { file: path, lang, version, blocks };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await ensureInit();
|
|
40
78
|
const blocks = getFileBlocks(version, lang, path);
|
|
41
79
|
if (!blocks) throw new Error('File not found');
|
|
42
80
|
return { file: path, lang, version, blocks };
|
|
@@ -45,8 +83,14 @@ export const fetchFileBlocks = createServerFn({ method: 'GET' })
|
|
|
45
83
|
export const deleteCacheEntry = createServerFn({ method: 'POST' })
|
|
46
84
|
.inputValidator((d: { version: string; lang: string; key: string }) => d)
|
|
47
85
|
.handler(async ({ data }) => {
|
|
48
|
-
await ensureInit();
|
|
49
86
|
const { lang, key } = data;
|
|
87
|
+
|
|
88
|
+
if (isCfWorkers()) {
|
|
89
|
+
await d1DeleteTranslation(lang, key);
|
|
90
|
+
return { deleted: key, lang };
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
await ensureInit();
|
|
50
94
|
const cache = getCache();
|
|
51
95
|
cache.db.prepare('DELETE FROM translations WHERE lang = ? AND key = ?').run(lang, key);
|
|
52
96
|
return { deleted: key, lang };
|
|
@@ -55,6 +99,11 @@ export const deleteCacheEntry = createServerFn({ method: 'POST' })
|
|
|
55
99
|
export const rescanVersion = createServerFn({ method: 'POST' })
|
|
56
100
|
.inputValidator((d: { version: string }) => d)
|
|
57
101
|
.handler(async ({ data }) => {
|
|
102
|
+
if (isCfWorkers()) {
|
|
103
|
+
// Rescan not available on CF Workers (no filesystem access)
|
|
104
|
+
return { version: data.version, files: 0 };
|
|
105
|
+
}
|
|
106
|
+
|
|
58
107
|
await ensureInit();
|
|
59
108
|
const count = rescan(data.version);
|
|
60
109
|
return { version: data.version, files: count };
|
package/admin/server/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { initAdmin } from './init';
|
|
|
11
11
|
* Called by the CLI `docs-i18n admin` command.
|
|
12
12
|
*/
|
|
13
13
|
export async function startAdmin(config: DocsI18nConfig, port: number) {
|
|
14
|
-
initAdmin(config);
|
|
14
|
+
await initAdmin(config);
|
|
15
15
|
|
|
16
16
|
const thisFile = fileURLToPath(import.meta.url);
|
|
17
17
|
// Admin package root is the directory containing this server/ folder
|
package/admin/server/init.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import { resolve, dirname } from 'node:path';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
1
|
import type { DocsI18nConfig } from 'docs-i18n';
|
|
5
|
-
import { initStatus } from './services/status';
|
|
6
|
-
import { setConfig } from './services/job-manager';
|
|
7
2
|
|
|
8
3
|
let _initialized = false;
|
|
9
4
|
let _config: DocsI18nConfig | undefined;
|
|
10
5
|
|
|
6
|
+
function isCfWorkers(): boolean {
|
|
7
|
+
return !!(globalThis as any).__CF_WORKERS;
|
|
8
|
+
}
|
|
9
|
+
|
|
11
10
|
/**
|
|
12
11
|
* Initialize admin server services with the project config.
|
|
13
12
|
*/
|
|
14
|
-
export function initAdmin(config: DocsI18nConfig) {
|
|
13
|
+
export async function initAdmin(config: DocsI18nConfig) {
|
|
15
14
|
_config = config;
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
// Only init local services on Node.js
|
|
16
|
+
if (!isCfWorkers()) {
|
|
17
|
+
const { initStatus } = await import('./services/status');
|
|
18
|
+
const { setConfig } = await import('./services/job-manager');
|
|
19
|
+
initStatus(config);
|
|
20
|
+
setConfig(config);
|
|
21
|
+
}
|
|
18
22
|
_initialized = true;
|
|
19
23
|
}
|
|
20
24
|
|
|
@@ -23,9 +27,12 @@ export function getConfig(): DocsI18nConfig | undefined {
|
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
export function getProjectRoot(): string {
|
|
30
|
+
if (isCfWorkers()) return '(cf-workers)';
|
|
26
31
|
if (process.env.DOCS_I18N_PROJECT_ROOT) return process.env.DOCS_I18N_PROJECT_ROOT;
|
|
27
32
|
// Read from temp file written by CLI at startup
|
|
28
33
|
try {
|
|
34
|
+
const { readFileSync } = require('node:fs');
|
|
35
|
+
const { resolve } = require('node:path');
|
|
29
36
|
const tmpDir = process.env.TMPDIR || process.env.TEMP || '/tmp';
|
|
30
37
|
return readFileSync(resolve(tmpDir, 'docs-i18n-project-root'), 'utf-8').trim();
|
|
31
38
|
} catch {}
|
|
@@ -34,13 +41,18 @@ export function getProjectRoot(): string {
|
|
|
34
41
|
|
|
35
42
|
/**
|
|
36
43
|
* Ensure admin is initialized. Lazy-loads config on first call.
|
|
44
|
+
* On CF Workers, this is a no-op (D1 doesn't need config).
|
|
37
45
|
*/
|
|
38
46
|
export async function ensureInit() {
|
|
39
47
|
if (_initialized) return;
|
|
48
|
+
if (isCfWorkers()) {
|
|
49
|
+
_initialized = true;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
40
52
|
if (typeof window !== 'undefined') return;
|
|
41
53
|
const projectRoot = getProjectRoot();
|
|
42
54
|
const configPath = `${projectRoot}/docs-i18n.config.ts`;
|
|
43
55
|
const mod = await import(/* @vite-ignore */ configPath);
|
|
44
56
|
const config: DocsI18nConfig = mod.default ?? mod;
|
|
45
|
-
initAdmin(config);
|
|
57
|
+
await initAdmin(config);
|
|
46
58
|
}
|