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
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { i as parseMdx, r as flattenSources, t as TranslationCache } from "./dist-DBv71kqn.js";
|
|
2
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
3
|
+
import { join, resolve } from "node:path";
|
|
4
|
+
//#region server/services/status.ts
|
|
5
|
+
var _config;
|
|
6
|
+
var _cache = null;
|
|
7
|
+
var _projectRoot = process.cwd();
|
|
8
|
+
function initStatus(config) {
|
|
9
|
+
_config = config;
|
|
10
|
+
_cache = null;
|
|
11
|
+
_projectRoot = process.env.DOCS_I18N_PROJECT_ROOT || process.cwd();
|
|
12
|
+
}
|
|
13
|
+
function getVersions() {
|
|
14
|
+
return flattenSources(_config).map((s) => s.versionKey);
|
|
15
|
+
}
|
|
16
|
+
function getLangs() {
|
|
17
|
+
return _config.languages;
|
|
18
|
+
}
|
|
19
|
+
function getCache() {
|
|
20
|
+
if (!_cache) _cache = new TranslationCache(resolve(_projectRoot, _config.cacheDir ?? ".cache"));
|
|
21
|
+
return _cache;
|
|
22
|
+
}
|
|
23
|
+
function getSourcePath(versionKey) {
|
|
24
|
+
const source = flattenSources(_config).find((s) => s.versionKey === versionKey);
|
|
25
|
+
return source ? resolve(_projectRoot, source.sourcePath) : null;
|
|
26
|
+
}
|
|
27
|
+
function walkFiles(dir) {
|
|
28
|
+
const results = [];
|
|
29
|
+
if (!existsSync(dir)) return results;
|
|
30
|
+
const exts = (_config.include ?? ["**/*.mdx", "**/*.md"]).map((p) => p.replace("**/*", ""));
|
|
31
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
32
|
+
const fullPath = join(dir, entry.name);
|
|
33
|
+
if (entry.isDirectory()) results.push(...walkFiles(fullPath));
|
|
34
|
+
else if (exts.some((ext) => entry.name.endsWith(ext))) results.push(fullPath);
|
|
35
|
+
}
|
|
36
|
+
return results;
|
|
37
|
+
}
|
|
38
|
+
function ensureScanned(version) {
|
|
39
|
+
const cache = getCache();
|
|
40
|
+
const enDir = getSourcePath(version);
|
|
41
|
+
if (!enDir || !existsSync(enDir)) return;
|
|
42
|
+
const files = walkFiles(enDir);
|
|
43
|
+
if (cache.sourceCount(version) >= files.length) return;
|
|
44
|
+
cache.clearSources("", version);
|
|
45
|
+
for (const file of files) {
|
|
46
|
+
const relPath = file.slice(enDir.length + 1);
|
|
47
|
+
const content = readFileSync(file, "utf8");
|
|
48
|
+
const nodes = parseMdx(content);
|
|
49
|
+
for (const node of nodes) if (node.needsTranslation && node.md5) {
|
|
50
|
+
const line = content.substring(0, node.startOffset).split("\n").length;
|
|
51
|
+
cache.setSource(node.md5, node.rawText, node.type);
|
|
52
|
+
cache.updateSource("", node.md5, relPath, line, version);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function rescan(version) {
|
|
57
|
+
const cache = getCache();
|
|
58
|
+
const enDir = getSourcePath(version);
|
|
59
|
+
if (!enDir || !existsSync(enDir)) return 0;
|
|
60
|
+
const files = walkFiles(enDir);
|
|
61
|
+
cache.clearSources("", version);
|
|
62
|
+
for (const file of files) {
|
|
63
|
+
const relPath = file.slice(enDir.length + 1);
|
|
64
|
+
const content = readFileSync(file, "utf8");
|
|
65
|
+
const nodes = parseMdx(content);
|
|
66
|
+
for (const node of nodes) if (node.needsTranslation && node.md5) {
|
|
67
|
+
const line = content.substring(0, node.startOffset).split("\n").length;
|
|
68
|
+
cache.setSource(node.md5, node.rawText, node.type);
|
|
69
|
+
cache.updateSource("", node.md5, relPath, line, version);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return files.length;
|
|
73
|
+
}
|
|
74
|
+
function getOverview() {
|
|
75
|
+
const cache = getCache();
|
|
76
|
+
const versions = getVersions();
|
|
77
|
+
const langs = getLangs();
|
|
78
|
+
const result = {};
|
|
79
|
+
for (const version of versions) {
|
|
80
|
+
ensureScanned(version);
|
|
81
|
+
const enDir = getSourcePath(version);
|
|
82
|
+
const enFileCount = enDir && existsSync(enDir) ? walkFiles(enDir).length : 0;
|
|
83
|
+
const langStats = {};
|
|
84
|
+
for (const lang of langs) {
|
|
85
|
+
const sections = cache.sectionStats(version, lang);
|
|
86
|
+
let totalFiles = 0, translatedFiles = 0, totalNodes = 0, translatedNodes = 0;
|
|
87
|
+
const sectionMap = {};
|
|
88
|
+
for (const s of sections) {
|
|
89
|
+
sectionMap[s.section] = s;
|
|
90
|
+
totalFiles += s.totalFiles;
|
|
91
|
+
translatedFiles += s.translatedFiles;
|
|
92
|
+
totalNodes += s.totalNodes;
|
|
93
|
+
translatedNodes += s.translatedNodes;
|
|
94
|
+
}
|
|
95
|
+
langStats[lang] = {
|
|
96
|
+
sections: sectionMap,
|
|
97
|
+
totalFiles,
|
|
98
|
+
translatedFiles,
|
|
99
|
+
totalNodes,
|
|
100
|
+
translatedNodes
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
result[version] = {
|
|
104
|
+
enFileCount,
|
|
105
|
+
langs: langStats
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
function getFileCoverage(version, lang) {
|
|
111
|
+
ensureScanned(version);
|
|
112
|
+
return getCache().fileCoverage(version, lang);
|
|
113
|
+
}
|
|
114
|
+
function getFileBlocks(version, lang, file) {
|
|
115
|
+
const enDir = getSourcePath(version);
|
|
116
|
+
if (!enDir) return null;
|
|
117
|
+
const enPath = join(enDir, file);
|
|
118
|
+
if (!existsSync(enPath)) return null;
|
|
119
|
+
const cache = getCache();
|
|
120
|
+
const content = readFileSync(enPath, "utf8");
|
|
121
|
+
const nodes = parseMdx(content);
|
|
122
|
+
const blocks = [];
|
|
123
|
+
let lastEnd = 0;
|
|
124
|
+
for (const node of nodes) {
|
|
125
|
+
if (node.startOffset > lastEnd) {
|
|
126
|
+
const gap = content.substring(lastEnd, node.startOffset);
|
|
127
|
+
blocks.push({
|
|
128
|
+
md5: null,
|
|
129
|
+
type: "gap",
|
|
130
|
+
source: gap,
|
|
131
|
+
translation: null
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (node.needsTranslation && node.md5) {
|
|
135
|
+
const translation = lang === "en" ? null : cache.get(lang, node.md5) ?? null;
|
|
136
|
+
blocks.push({
|
|
137
|
+
md5: node.md5,
|
|
138
|
+
type: node.type,
|
|
139
|
+
source: node.rawText,
|
|
140
|
+
translation
|
|
141
|
+
});
|
|
142
|
+
} else blocks.push({
|
|
143
|
+
md5: null,
|
|
144
|
+
type: node.type,
|
|
145
|
+
source: node.rawText,
|
|
146
|
+
translation: null
|
|
147
|
+
});
|
|
148
|
+
lastEnd = node.endOffset;
|
|
149
|
+
}
|
|
150
|
+
if (lastEnd < content.length) {
|
|
151
|
+
const tail = content.substring(lastEnd);
|
|
152
|
+
if (tail.trim()) blocks.push({
|
|
153
|
+
md5: null,
|
|
154
|
+
type: "gap",
|
|
155
|
+
source: tail,
|
|
156
|
+
translation: null
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return blocks;
|
|
160
|
+
}
|
|
161
|
+
//#endregion
|
|
162
|
+
export { getCache, getFileBlocks, getFileCoverage, getLangs, getOverview, getVersions, initStatus, rescan };
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { t as createServerFn } from "../server.js";
|
|
2
|
+
import { t as createServerRpc } from "./createServerRpc-Cyyxq9HQ.js";
|
|
3
|
+
import { getCache, getFileBlocks, getFileCoverage, getLangs, getOverview, getVersions, rescan } from "./status-B1AGLvHn.js";
|
|
4
|
+
import { ensureInit } from "./init-CJJUsPDL.js";
|
|
5
|
+
//#region server/services/d1-status.ts
|
|
6
|
+
/**
|
|
7
|
+
* D1-backed status service for CF Workers deployment.
|
|
8
|
+
*
|
|
9
|
+
* Queries the same sources/source_files/translations tables as the local
|
|
10
|
+
* TranslationCache, but via D1 instead of better-sqlite3.
|
|
11
|
+
*
|
|
12
|
+
* This is read-only — the admin dashboard on CF Workers can view
|
|
13
|
+
* translation status but cannot run translate jobs or modify the cache.
|
|
14
|
+
*/
|
|
15
|
+
function getD1() {
|
|
16
|
+
try {
|
|
17
|
+
return globalThis.__D1_DB ?? null;
|
|
18
|
+
} catch {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function requireD1() {
|
|
23
|
+
const db = getD1();
|
|
24
|
+
if (!db) throw new Error("D1 database not available");
|
|
25
|
+
return db;
|
|
26
|
+
}
|
|
27
|
+
async function d1GetVersions() {
|
|
28
|
+
return (await requireD1().prepare("SELECT DISTINCT version FROM source_files ORDER BY version").all()).results.map((r) => r.version);
|
|
29
|
+
}
|
|
30
|
+
async function d1GetLangs() {
|
|
31
|
+
return (await requireD1().prepare("SELECT DISTINCT lang FROM translations ORDER BY lang").all()).results.map((r) => r.lang);
|
|
32
|
+
}
|
|
33
|
+
async function d1SectionStats(version, lang) {
|
|
34
|
+
return (await requireD1().prepare(`
|
|
35
|
+
WITH file_coverage AS (
|
|
36
|
+
SELECT
|
|
37
|
+
sf.file,
|
|
38
|
+
CASE
|
|
39
|
+
WHEN sf.file LIKE 'docs/%' THEN 'docs'
|
|
40
|
+
WHEN sf.file LIKE 'blog/%' THEN 'blog'
|
|
41
|
+
WHEN sf.file LIKE 'learn/%' THEN 'learn'
|
|
42
|
+
ELSE 'other'
|
|
43
|
+
END as section,
|
|
44
|
+
COUNT(DISTINCT sf.key) as total_nodes,
|
|
45
|
+
COUNT(DISTINCT t.key) as translated_nodes
|
|
46
|
+
FROM source_files sf
|
|
47
|
+
LEFT JOIN translations t ON t.key = sf.key AND t.lang = ?
|
|
48
|
+
WHERE sf.version = ?
|
|
49
|
+
GROUP BY sf.file
|
|
50
|
+
)
|
|
51
|
+
SELECT
|
|
52
|
+
section,
|
|
53
|
+
COUNT(*) as totalFiles,
|
|
54
|
+
SUM(CASE WHEN translated_nodes = total_nodes THEN 1 ELSE 0 END) as translatedFiles,
|
|
55
|
+
SUM(total_nodes) as totalNodes,
|
|
56
|
+
SUM(translated_nodes) as translatedNodes
|
|
57
|
+
FROM file_coverage
|
|
58
|
+
GROUP BY section
|
|
59
|
+
ORDER BY section
|
|
60
|
+
`).bind(lang, version).all()).results;
|
|
61
|
+
}
|
|
62
|
+
async function d1FileCoverage(version, lang) {
|
|
63
|
+
return (await requireD1().prepare(`
|
|
64
|
+
SELECT
|
|
65
|
+
sf.file,
|
|
66
|
+
COUNT(DISTINCT sf.key) as total,
|
|
67
|
+
COUNT(DISTINCT t.key) as translated
|
|
68
|
+
FROM source_files sf
|
|
69
|
+
LEFT JOIN translations t ON t.key = sf.key AND t.lang = ?
|
|
70
|
+
WHERE sf.version = ?
|
|
71
|
+
GROUP BY sf.file
|
|
72
|
+
ORDER BY sf.file
|
|
73
|
+
`).bind(lang, version).all()).results;
|
|
74
|
+
}
|
|
75
|
+
async function d1FileDetail(version, lang, file) {
|
|
76
|
+
return (await requireD1().prepare(`
|
|
77
|
+
SELECT
|
|
78
|
+
s.key,
|
|
79
|
+
s.text as source,
|
|
80
|
+
s.type,
|
|
81
|
+
t.value as translation,
|
|
82
|
+
sf.line
|
|
83
|
+
FROM source_files sf
|
|
84
|
+
JOIN sources s ON s.key = sf.key
|
|
85
|
+
LEFT JOIN translations t ON t.key = sf.key AND t.lang = ?
|
|
86
|
+
WHERE sf.version = ? AND sf.file = ?
|
|
87
|
+
ORDER BY sf.line
|
|
88
|
+
`).bind(lang, version, file).all()).results;
|
|
89
|
+
}
|
|
90
|
+
async function d1DeleteTranslation(lang, key) {
|
|
91
|
+
return ((await requireD1().prepare("DELETE FROM translations WHERE lang = ? AND key = ?").bind(lang, key).run()).meta?.changes ?? 0) > 0;
|
|
92
|
+
}
|
|
93
|
+
async function d1GetOverview(versions, langs) {
|
|
94
|
+
const db = requireD1();
|
|
95
|
+
const result = {};
|
|
96
|
+
for (const version of versions) {
|
|
97
|
+
const enFileCount = (await db.prepare("SELECT COUNT(DISTINCT file) as count FROM source_files WHERE version = ?").bind(version).first())?.count ?? 0;
|
|
98
|
+
const langStats = {};
|
|
99
|
+
for (const lang of langs) {
|
|
100
|
+
const sections = await d1SectionStats(version, lang);
|
|
101
|
+
let totalFiles = 0, translatedFiles = 0, totalNodes = 0, translatedNodes = 0;
|
|
102
|
+
const sectionMap = {};
|
|
103
|
+
for (const s of sections) {
|
|
104
|
+
sectionMap[s.section] = s;
|
|
105
|
+
totalFiles += s.totalFiles;
|
|
106
|
+
translatedFiles += s.translatedFiles;
|
|
107
|
+
totalNodes += s.totalNodes;
|
|
108
|
+
translatedNodes += s.translatedNodes;
|
|
109
|
+
}
|
|
110
|
+
langStats[lang] = {
|
|
111
|
+
sections: sectionMap,
|
|
112
|
+
totalFiles,
|
|
113
|
+
translatedFiles,
|
|
114
|
+
totalNodes,
|
|
115
|
+
translatedNodes
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
result[version] = {
|
|
119
|
+
enFileCount,
|
|
120
|
+
langs: langStats
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get file blocks from D1 — returns source nodes with their translations,
|
|
127
|
+
* in line order. Note: without filesystem access, we can only return
|
|
128
|
+
* translatable blocks (no gap/whitespace blocks between them).
|
|
129
|
+
*/
|
|
130
|
+
async function d1GetFileBlocks(version, lang, file) {
|
|
131
|
+
return (await d1FileDetail(version, lang, file)).map((row) => ({
|
|
132
|
+
md5: row.key,
|
|
133
|
+
type: row.type,
|
|
134
|
+
source: row.source,
|
|
135
|
+
translation: row.translation
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region server/functions/status.ts?tss-serverfn-split
|
|
140
|
+
function isCfWorkers() {
|
|
141
|
+
return !!globalThis.__CF_WORKERS;
|
|
142
|
+
}
|
|
143
|
+
var fetchStatus_createServerFn_handler = createServerRpc({
|
|
144
|
+
id: "4e218d79545765572808c7eab33b7663d4496209c15406d0b449366905b6b83f",
|
|
145
|
+
name: "fetchStatus",
|
|
146
|
+
filename: "server/functions/status.ts"
|
|
147
|
+
}, (opts) => fetchStatus.__executeServer(opts));
|
|
148
|
+
var fetchStatus = createServerFn({ method: "GET" }).handler(fetchStatus_createServerFn_handler, async () => {
|
|
149
|
+
if (isCfWorkers()) {
|
|
150
|
+
const versions = await d1GetVersions();
|
|
151
|
+
const langs = await d1GetLangs();
|
|
152
|
+
const data = await d1GetOverview(versions, langs);
|
|
153
|
+
return {
|
|
154
|
+
versions,
|
|
155
|
+
langs: ["en", ...langs],
|
|
156
|
+
data
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
await ensureInit();
|
|
160
|
+
return {
|
|
161
|
+
versions: getVersions(),
|
|
162
|
+
langs: ["en", ...getLangs()],
|
|
163
|
+
data: getOverview()
|
|
164
|
+
};
|
|
165
|
+
});
|
|
166
|
+
var fetchFileCoverage_createServerFn_handler = createServerRpc({
|
|
167
|
+
id: "843cd8b59095708a5ae78198708db9850f89fd3dd3830ab236f0bd924417692f",
|
|
168
|
+
name: "fetchFileCoverage",
|
|
169
|
+
filename: "server/functions/status.ts"
|
|
170
|
+
}, (opts) => fetchFileCoverage.__executeServer(opts));
|
|
171
|
+
var fetchFileCoverage = createServerFn({ method: "GET" }).inputValidator((d) => d).handler(fetchFileCoverage_createServerFn_handler, async ({ data }) => {
|
|
172
|
+
const { version, lang } = data;
|
|
173
|
+
if (isCfWorkers()) {
|
|
174
|
+
if (lang === "en") {
|
|
175
|
+
const anyLang = (await d1GetLangs())[0];
|
|
176
|
+
if (!anyLang) return [];
|
|
177
|
+
return (await d1FileCoverage(version, anyLang)).map((f) => ({
|
|
178
|
+
file: f.file,
|
|
179
|
+
total: f.total,
|
|
180
|
+
translated: f.total
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
return d1FileCoverage(version, lang);
|
|
184
|
+
}
|
|
185
|
+
await ensureInit();
|
|
186
|
+
if (lang === "en") {
|
|
187
|
+
const anyLang = getLangs()[0];
|
|
188
|
+
return getFileCoverage(version, anyLang).map((f) => ({
|
|
189
|
+
file: f.file,
|
|
190
|
+
total: f.total,
|
|
191
|
+
translated: f.total
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
return getFileCoverage(version, lang);
|
|
195
|
+
});
|
|
196
|
+
var fetchFileBlocks_createServerFn_handler = createServerRpc({
|
|
197
|
+
id: "e1e7281e45375c67dbe408c58452e7482b139da60e9e361615553227dce95ee0",
|
|
198
|
+
name: "fetchFileBlocks",
|
|
199
|
+
filename: "server/functions/status.ts"
|
|
200
|
+
}, (opts) => fetchFileBlocks.__executeServer(opts));
|
|
201
|
+
var fetchFileBlocks = createServerFn({ method: "GET" }).inputValidator((d) => d).handler(fetchFileBlocks_createServerFn_handler, async ({ data }) => {
|
|
202
|
+
const { version, lang, path } = data;
|
|
203
|
+
if (isCfWorkers()) {
|
|
204
|
+
const blocks = await d1GetFileBlocks(version, lang, path);
|
|
205
|
+
if (!blocks || blocks.length === 0) throw new Error("File not found");
|
|
206
|
+
return {
|
|
207
|
+
file: path,
|
|
208
|
+
lang,
|
|
209
|
+
version,
|
|
210
|
+
blocks
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
await ensureInit();
|
|
214
|
+
const blocks = getFileBlocks(version, lang, path);
|
|
215
|
+
if (!blocks) throw new Error("File not found");
|
|
216
|
+
return {
|
|
217
|
+
file: path,
|
|
218
|
+
lang,
|
|
219
|
+
version,
|
|
220
|
+
blocks
|
|
221
|
+
};
|
|
222
|
+
});
|
|
223
|
+
var deleteCacheEntry_createServerFn_handler = createServerRpc({
|
|
224
|
+
id: "e1d13d8602339a95f559345ccfc82e9f843dd375ce8e9f580637c241e7e44774",
|
|
225
|
+
name: "deleteCacheEntry",
|
|
226
|
+
filename: "server/functions/status.ts"
|
|
227
|
+
}, (opts) => deleteCacheEntry.__executeServer(opts));
|
|
228
|
+
var deleteCacheEntry = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(deleteCacheEntry_createServerFn_handler, async ({ data }) => {
|
|
229
|
+
const { lang, key } = data;
|
|
230
|
+
if (isCfWorkers()) {
|
|
231
|
+
await d1DeleteTranslation(lang, key);
|
|
232
|
+
return {
|
|
233
|
+
deleted: key,
|
|
234
|
+
lang
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
await ensureInit();
|
|
238
|
+
getCache().db.prepare("DELETE FROM translations WHERE lang = ? AND key = ?").run(lang, key);
|
|
239
|
+
return {
|
|
240
|
+
deleted: key,
|
|
241
|
+
lang
|
|
242
|
+
};
|
|
243
|
+
});
|
|
244
|
+
var rescanVersion_createServerFn_handler = createServerRpc({
|
|
245
|
+
id: "1d8e3916f992485c62e62c3693083850b773fdff4ec54277de5a01eb98dab664",
|
|
246
|
+
name: "rescanVersion",
|
|
247
|
+
filename: "server/functions/status.ts"
|
|
248
|
+
}, (opts) => rescanVersion.__executeServer(opts));
|
|
249
|
+
var rescanVersion = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(rescanVersion_createServerFn_handler, async ({ data }) => {
|
|
250
|
+
if (isCfWorkers()) return {
|
|
251
|
+
version: data.version,
|
|
252
|
+
files: 0
|
|
253
|
+
};
|
|
254
|
+
await ensureInit();
|
|
255
|
+
const count = rescan(data.version);
|
|
256
|
+
return {
|
|
257
|
+
version: data.version,
|
|
258
|
+
files: count
|
|
259
|
+
};
|
|
260
|
+
});
|
|
261
|
+
//#endregion
|
|
262
|
+
export { deleteCacheEntry_createServerFn_handler, fetchFileBlocks_createServerFn_handler, fetchFileCoverage_createServerFn_handler, fetchStatus_createServerFn_handler, rescanVersion_createServerFn_handler };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region ../../node_modules/.bun/@better-auth+core@1.5.6+b884d6c866886bb4/node_modules/@better-auth/core/dist/utils/string.mjs
|
|
2
|
+
function capitalizeFirstLetter(str) {
|
|
3
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
4
|
+
}
|
|
5
|
+
//#endregion
|
|
6
|
+
export { capitalizeFirstLetter as t };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { i as __toESM } from "./chunk-CNvmzFzq.js";
|
|
2
|
+
import { l as require_react, t as useRouter } from "./useRouter-BXJvr8to.js";
|
|
3
|
+
//#region ../../node_modules/.bun/@tanstack+react-router@1.168.3+bf16f8eded5e12ee/node_modules/@tanstack/react-router/dist/esm/useNavigate.js
|
|
4
|
+
var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
|
|
5
|
+
/**
|
|
6
|
+
* Imperative navigation hook.
|
|
7
|
+
*
|
|
8
|
+
* Returns a stable `navigate(options)` function to change the current location
|
|
9
|
+
* programmatically. Prefer the `Link` component for user-initiated navigation,
|
|
10
|
+
* and use this hook from effects, callbacks, or handlers where imperative
|
|
11
|
+
* navigation is required.
|
|
12
|
+
*
|
|
13
|
+
* Options:
|
|
14
|
+
* - `from`: Optional route base used to resolve relative `to` paths.
|
|
15
|
+
*
|
|
16
|
+
* @returns A function that accepts `NavigateOptions`.
|
|
17
|
+
* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useNavigateHook
|
|
18
|
+
*/
|
|
19
|
+
function useNavigate(_defaultOpts) {
|
|
20
|
+
const router = useRouter();
|
|
21
|
+
return import_react.useCallback((options) => {
|
|
22
|
+
return router.navigate({
|
|
23
|
+
...options,
|
|
24
|
+
from: options.from ?? _defaultOpts?.from
|
|
25
|
+
});
|
|
26
|
+
}, [_defaultOpts?.from, router]);
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { useNavigate as t };
|