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.
Files changed (267) hide show
  1. package/admin/app/lib/auth-client.ts +21 -0
  2. package/admin/app/lib/auth.server.ts +62 -0
  3. package/admin/app/routeTree.gen.ts +21 -3
  4. package/admin/app/routes/index.tsx +68 -8
  5. package/admin/app/routes/login.tsx +207 -0
  6. package/admin/app/server.ts +23 -0
  7. package/admin/app/styles.css +146 -0
  8. package/admin/app/worker.ts +18 -0
  9. package/admin/dist/client/assets/auth-client-DqJZaFZR.js +3 -0
  10. package/admin/dist/client/assets/login-CQjkiBAF.js +1 -0
  11. package/admin/dist/client/assets/main-bc5tcdGg.js +18 -0
  12. package/admin/dist/client/assets/routes-CTPOG_v1.js +3 -0
  13. package/admin/dist/client/assets/{styles-DJ6QEJmN.css → styles-zS0BbO7e.css} +1 -1
  14. package/admin/dist/client/assets/useNavigate-CEOVvMjz.js +1 -0
  15. package/admin/dist/server/assets/{react-dom-CpO9xk_L.js → __tanstack-start-server-fn-resolver-qK0Yfvti.js} +83 -507
  16. package/admin/dist/server/assets/_tanstack-start-manifest_v-BgMVPPt2.js +21 -0
  17. package/admin/dist/server/assets/adapter-DjXlUL1J.js +2253 -0
  18. package/admin/dist/server/assets/auth-client-CoUpyQIM.js +807 -0
  19. package/admin/dist/server/assets/auth-dSAIPjBw.js +72 -0
  20. package/admin/dist/server/assets/auth.server-BLVDnTCZ.js +31352 -0
  21. package/admin/dist/server/assets/bun-sqlite-dialect-C8OaCWSL-BNNY-FoT.js +154 -0
  22. package/admin/dist/server/assets/compiled-query-CnFG_BVV.js +6967 -0
  23. package/admin/dist/server/assets/d1-sqlite-dialect-sYHNqBte-Bjz-cybU.js +115 -0
  24. package/admin/dist/server/assets/dist-C3-e8E2B.js +215 -0
  25. package/admin/dist/server/assets/dist-CUzFWZag.js +6039 -0
  26. package/admin/dist/server/assets/{init-DJr2glb3.js → dist-DBv71kqn.js} +21 -381
  27. package/admin/dist/server/assets/error-CASJ5tIm.js +457 -0
  28. package/admin/dist/server/assets/error-codes-BhMTGvV6.js +1153 -0
  29. package/admin/dist/server/assets/init-CJJUsPDL.js +49 -0
  30. package/admin/dist/server/assets/job-manager-D9Ab9hgu.js +179 -0
  31. package/admin/dist/server/assets/{jobs-bQfYqSk7.js → jobs-DrEe9YOj.js} +18 -5
  32. package/admin/dist/server/assets/kysely-adapter-YC8RFPyc.js +2 -0
  33. package/admin/dist/server/assets/login-SqzTMYOZ.js +228 -0
  34. package/admin/dist/server/assets/migrator-ZpVZslbq.js +2926 -0
  35. package/admin/dist/server/assets/{misc-DOk3t9vs.js → misc-BSoYldBT.js} +22 -9
  36. package/admin/dist/server/assets/{models-CBb8Owe5.js → models-CoviNHUP.js} +1 -1
  37. package/admin/dist/server/assets/node-sqlite-dialect-BJIaP6lL.js +154 -0
  38. package/admin/dist/server/assets/{router-DlU_fGDK.js → router-D-82slI-.js} +23 -11
  39. package/admin/dist/server/assets/{routes-BcfX6iub.js → routes-B1pNmxF3.js} +43 -29
  40. package/admin/dist/server/assets/{routes-pIM0fgUO.js → routes-C9huiZHw.js} +56 -22
  41. package/admin/dist/server/assets/sqlite-adapter-CL2EidjD.js +69 -0
  42. package/admin/dist/server/assets/{start-BS52hm79.js → start-BiybVoR2.js} +1 -1
  43. package/admin/dist/server/assets/status-B1AGLvHn.js +162 -0
  44. package/admin/dist/server/assets/status-D7PU72hm.js +262 -0
  45. package/admin/dist/server/assets/string-B4XlckmJ.js +6 -0
  46. package/admin/dist/server/assets/useNavigate-0H08s_Q2.js +29 -0
  47. package/admin/dist/server/assets/useRouter-BXJvr8to.js +508 -0
  48. package/admin/dist/server/server.js +70 -90
  49. package/admin/package.json +6 -1
  50. package/admin/server/functions/auth.ts +89 -0
  51. package/admin/server/functions/jobs.ts +30 -2
  52. package/admin/server/functions/misc.ts +25 -5
  53. package/admin/server/functions/status.ts +52 -3
  54. package/admin/server/index.ts +1 -1
  55. package/admin/server/init.ts +21 -9
  56. package/admin/server/services/d1-status.ts +282 -0
  57. package/admin/vite.config.ts +29 -15
  58. package/admin/wrangler.jsonc +16 -0
  59. package/package.json +1 -1
  60. package/template/app/components/markdown/Markdown.tsx +7 -1
  61. package/template/app/utils/docs.server.ts +37 -4
  62. package/template/app/worker.ts +16 -0
  63. package/template/content/docs-i18n/en/cli.md +9 -5
  64. package/template/content/docs-i18n/en/deployment.md +85 -68
  65. package/template/dist/client/assets/{Doc-CGhUfH9r.js → Doc-BKO69_nz.js} +1 -1
  66. package/template/dist/client/assets/{DocsLayout-CoPL9BM9.js → DocsLayout-BGugXxEQ.js} +1 -1
  67. package/template/dist/client/assets/{FileTabs-DsPkEUu7.js → FileTabs-4fZriOj4.js} +1 -1
  68. package/template/dist/client/assets/{Footer-4faHyha8.js → Footer-DYh1AfWA.js} +1 -1
  69. package/template/dist/client/assets/{FrameworkContent-Cxg_X_EP.js → FrameworkContent-rVvjxASn.js} +1 -1
  70. package/template/dist/client/assets/{MarkdownHeadingContext-CwDqQdSh.js → MarkdownHeadingContext-CdvUDZFU.js} +4 -4
  71. package/template/dist/client/assets/{PostNotFound-1ZaWdycM.js → PostNotFound-WoSYGsGu.js} +1 -1
  72. package/template/dist/client/assets/{_basePickBy-FbrKkfHa.js → _basePickBy-Dd7GuR7A.js} +1 -1
  73. package/template/dist/client/assets/{_baseUniq-g6ljCkn8.js → _baseUniq-DMxQLGFI.js} +1 -1
  74. package/template/dist/client/assets/_lang-3AqGszEy.js +1 -0
  75. package/template/dist/client/assets/_lang._project-COkrIqzH.js +1 -0
  76. package/template/dist/client/assets/_lang._project._version-B8vRZczu.js +1 -0
  77. package/template/dist/client/assets/{_lang._project._version.docs-DjZ_USgK.js → _lang._project._version.docs-DokNGgvU.js} +1 -1
  78. package/template/dist/client/assets/{_lang._project._version.docs._-CNb1EMFX.js → _lang._project._version.docs._-CXCNZzOb.js} +1 -1
  79. package/template/dist/client/assets/_lang._project._version.docs._-DR0WSQEb.js +1 -0
  80. package/template/dist/client/assets/_lang._project._version.docs.framework._framework._-C_Grro8r.js +1 -0
  81. 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
  82. package/template/dist/client/assets/{_lang._project._version.docs.framework.index-S3Frbfn4.js → _lang._project._version.docs.framework.index-DQX1lBi3.js} +1 -1
  83. package/template/dist/client/assets/{_lang._project.docs-CkmM5v1V.js → _lang._project.docs-DsYQj9jI.js} +1 -1
  84. package/template/dist/client/assets/_lang._project.docs._-DlM_D6DD.js +1 -0
  85. package/template/dist/client/assets/{_lang._project.docs._-BHYKQj_2.js → _lang._project.docs._-l2tTjx80.js} +1 -1
  86. package/template/dist/client/assets/_lang.blog-CEwEtalL.js +1 -0
  87. package/template/dist/client/assets/_lang.blog-D6YGC3tK.js +1 -0
  88. package/template/dist/client/assets/_lang.blog._-DgHu4oLy.js +1 -0
  89. package/template/dist/client/assets/{_lang.blog._-bXJwKw9E.js → _lang.blog._-Umz18sQE.js} +1 -1
  90. package/template/dist/client/assets/_lang.blog.index-C8LKUFtD.js +1 -0
  91. package/template/dist/client/assets/{_lang.blog.index-CdR5PZOo.js → _lang.blog.index-DzUqpOBE.js} +1 -1
  92. package/template/dist/client/assets/{_lang.docs-Cp3wmc9k.js → _lang.docs-CUh3R7DD.js} +1 -1
  93. package/template/dist/client/assets/{_lang.docs._-0bwIpeOn.js → _lang.docs._-DlgTPy3s.js} +1 -1
  94. package/template/dist/client/assets/_lang.docs._-DmaQE7lx.js +1 -0
  95. package/template/dist/client/assets/_lang.docs.framework._framework._-B4C4uDFp.js +1 -0
  96. package/template/dist/client/assets/{_lang.docs.framework._framework.index-BLgwIvQA.js → _lang.docs.framework._framework.index-DTg6Xd3p.js} +1 -1
  97. package/template/dist/client/assets/{_lang.docs.framework.index-CzW7Dul3.js → _lang.docs.framework.index-BQ2enasl.js} +1 -1
  98. package/template/dist/client/assets/{arc-B4lRpBfi.js → arc-DGPgC_QF.js} +1 -1
  99. package/template/dist/client/assets/{architectureDiagram-2XIMDMQ5-Coq1Gceq.js → architectureDiagram-2XIMDMQ5-yI53_GAi.js} +1 -1
  100. package/template/dist/client/assets/{blockDiagram-WCTKOSBZ-C7BGTzDN.js → blockDiagram-WCTKOSBZ-C3tr24zy.js} +1 -1
  101. package/template/dist/client/assets/{c4Diagram-IC4MRINW-xTBVTs0q.js → c4Diagram-IC4MRINW-DOA-mowm.js} +1 -1
  102. package/template/dist/client/assets/channel-DzZD7dUQ.js +1 -0
  103. package/template/dist/client/assets/{chunk-4BX2VUAB-DUUHBu75.js → chunk-4BX2VUAB-B6NSnNJJ.js} +1 -1
  104. package/template/dist/client/assets/{chunk-55IACEB6-MUxF_n9_.js → chunk-55IACEB6-CWYwArBH.js} +1 -1
  105. package/template/dist/client/assets/{chunk-FMBD7UC4-BWh6wvYo.js → chunk-FMBD7UC4-DSyn2wIW.js} +1 -1
  106. package/template/dist/client/assets/{chunk-JSJVCQXG-CLUdUV5u.js → chunk-JSJVCQXG-D83nm5W0.js} +1 -1
  107. package/template/dist/client/assets/{chunk-KX2RTZJC-CAlz_cXA.js → chunk-KX2RTZJC-DD7fN9e9.js} +1 -1
  108. package/template/dist/client/assets/{chunk-NQ4KR5QH-BaYKfUVy.js → chunk-NQ4KR5QH-C3YlYiU5.js} +1 -1
  109. package/template/dist/client/assets/{chunk-QZHKN3VN-NxDloxi5.js → chunk-QZHKN3VN-B7wBEuCG.js} +1 -1
  110. package/template/dist/client/assets/{chunk-WL4C6EOR-C2Ncbi5S.js → chunk-WL4C6EOR-ByA1FloT.js} +1 -1
  111. package/template/dist/client/assets/classDiagram-VBA2DB6C-CRozKaUD.js +1 -0
  112. package/template/dist/client/assets/classDiagram-v2-RAHNMMFH-CRozKaUD.js +1 -0
  113. package/template/dist/client/assets/clone-CGnOEl4E.js +1 -0
  114. package/template/dist/client/assets/{cose-bilkent-S5V4N54A-Ct9-ZJcv.js → cose-bilkent-S5V4N54A-nt_sXfWc.js} +1 -1
  115. package/template/dist/client/assets/{dagre-KLK3FWXG-u9dz8dcq.js → dagre-KLK3FWXG-DUsyMTPd.js} +1 -1
  116. package/template/dist/client/assets/{diagram-E7M64L7V-BXmcaktT.js → diagram-E7M64L7V-D5SAypX0.js} +1 -1
  117. package/template/dist/client/assets/{diagram-IFDJBPK2-CRlP5SeV.js → diagram-IFDJBPK2-WhP5c8Vz.js} +1 -1
  118. package/template/dist/client/assets/{diagram-P4PSJMXO-B9rJcj_H.js → diagram-P4PSJMXO-AMrwIlhf.js} +1 -1
  119. package/template/dist/client/assets/{erDiagram-INFDFZHY-DX-vee6w.js → erDiagram-INFDFZHY-BxifSpCV.js} +1 -1
  120. package/template/dist/client/assets/{flowDiagram-PKNHOUZH-CoBCSOFc.js → flowDiagram-PKNHOUZH-BMAowE9I.js} +1 -1
  121. package/template/dist/client/assets/{ganttDiagram-A5KZAMGK-BlqU_ghi.js → ganttDiagram-A5KZAMGK-Bay-0iRq.js} +1 -1
  122. package/template/dist/client/assets/{gitGraphDiagram-K3NZZRJ6-CntCsuti.js → gitGraphDiagram-K3NZZRJ6-Va91W3gw.js} +1 -1
  123. package/template/dist/client/assets/{graph-CZaxZzO8.js → graph-CbBYObK_.js} +1 -1
  124. package/template/dist/client/assets/{index-XelhTkgl.js → index-CF6qz2tX.js} +1 -1
  125. package/template/dist/client/assets/{infoDiagram-LFFYTUFH-_jCC8Jtt.js → infoDiagram-LFFYTUFH-Byd5C-4U.js} +1 -1
  126. package/template/dist/client/assets/{ishikawaDiagram-PHBUUO56-D3m_r2ig.js → ishikawaDiagram-PHBUUO56-DxOKnE1v.js} +1 -1
  127. package/template/dist/client/assets/{journeyDiagram-4ABVD52K-CvRNm03C.js → journeyDiagram-4ABVD52K-IRmt7RI4.js} +1 -1
  128. package/template/dist/client/assets/{kanban-definition-K7BYSVSG-nQcLuNSy.js → kanban-definition-K7BYSVSG-BjTVXn-R.js} +1 -1
  129. package/template/dist/client/assets/{layout-DZIdDq97.js → layout-Bbx6A0bC.js} +1 -1
  130. package/template/dist/client/assets/{linear-C2JcF5ss.js → linear-Df2eAW4A.js} +1 -1
  131. package/template/dist/client/assets/{main-C8MldI1o.js → main-DqZtiCro.js} +2 -2
  132. package/template/dist/client/assets/{mermaid.core-DlB0QBo2.js → mermaid.core-BIoiBcAA.js} +4 -4
  133. package/template/dist/client/assets/{mindmap-definition-YRQLILUH-D9OjtrBW.js → mindmap-definition-YRQLILUH-Btzz0iIP.js} +1 -1
  134. package/template/dist/client/assets/ordinal-Cboi1Yqb.js +1 -0
  135. package/template/dist/client/assets/{pieDiagram-SKSYHLDU-DoYJZfNJ.js → pieDiagram-SKSYHLDU-C2amrGtU.js} +1 -1
  136. package/template/dist/client/assets/{quadrantDiagram-337W2JSQ-Bs71YHJr.js → quadrantDiagram-337W2JSQ-EVgH9VuN.js} +1 -1
  137. package/template/dist/client/assets/{react-C0klD_r9.js → react-qvbbiZob.js} +1 -1
  138. package/template/dist/client/assets/{requirementDiagram-Z7DCOOCP-BWvQcALn.js → requirementDiagram-Z7DCOOCP-BkYPbRis.js} +1 -1
  139. package/template/dist/client/assets/{sankeyDiagram-WA2Y5GQK-CiGy1SQP.js → sankeyDiagram-WA2Y5GQK-B5EIaP-h.js} +1 -1
  140. package/template/dist/client/assets/{sequenceDiagram-2WXFIKYE-DRZim8vR.js → sequenceDiagram-2WXFIKYE-BC33VGOc.js} +1 -1
  141. package/template/dist/client/assets/{stateDiagram-RAJIS63D-BoqzJeL7.js → stateDiagram-RAJIS63D-DiKvWUYb.js} +1 -1
  142. package/template/dist/client/assets/stateDiagram-v2-FVOUBMTO-DjKMPYGe.js +1 -0
  143. package/template/dist/client/assets/{timeline-definition-YZTLITO2-CyvR95Wz.js → timeline-definition-YZTLITO2-QiFlgbRA.js} +1 -1
  144. package/template/dist/client/assets/{treemap-KZPCXAKY-DkXgGvs_.js → treemap-KZPCXAKY-BOYbyS9G.js} +1 -1
  145. package/template/dist/client/assets/{vennDiagram-LZ73GAT5-CVpGZu6p.js → vennDiagram-LZ73GAT5-CqmW7j4r.js} +1 -1
  146. package/template/dist/client/assets/{xychartDiagram-JWTSCODW-Cjqbi_DU.js → xychartDiagram-JWTSCODW-gj6oWX8l.js} +1 -1
  147. package/template/dist/server/assets/{Doc-DKBxQduk.js → Doc-9tJiX5y6.js} +3 -3
  148. package/template/dist/server/assets/{DocsLayout-CQfCTal3.js → DocsLayout-BTjhU_W5.js} +2 -2
  149. package/template/dist/server/assets/{Footer-Dcw5XVqX.js → Footer-CefTi2yh.js} +1 -1
  150. package/template/dist/server/assets/{FrameworkContent-OJfvCBHi.js → FrameworkContent-BkJvuP04.js} +2 -2
  151. package/template/dist/server/assets/{MarkdownHeadingContext-h4SfZq-C.js → MarkdownHeadingContext-37oQpb36.js} +8 -4
  152. package/template/dist/server/assets/{PostNotFound-DRJpnWrj.js → PostNotFound-BqBZf83v.js} +1 -1
  153. package/template/dist/server/assets/{_basePickBy-DJ9gzwF8.js → _basePickBy-DZ3TPUta.js} +2 -2
  154. package/template/dist/server/assets/{_baseUniq-CezmbvU2.js → _baseUniq-DKicWTQT.js} +1 -1
  155. package/template/dist/server/assets/{_lang._project._version.docs-CE_Z2zvG.js → _lang._project._version.docs-DOTNQiDb.js} +1 -1
  156. package/template/dist/server/assets/{_lang._project._version.docs-sJvASz_e.js → _lang._project._version.docs-U-t4mk5_.js} +3 -3
  157. package/template/dist/server/assets/{_lang._project._version.docs._-B2vf_QGY.js → _lang._project._version.docs._-DMgnElWM.js} +5 -5
  158. package/template/dist/server/assets/{_lang._project._version.docs._-CQcamDns.js → _lang._project._version.docs._-DSg82-Ug.js} +1 -1
  159. package/template/dist/server/assets/{_lang._project._version.docs.framework._framework._-54LEIllb.js → _lang._project._version.docs.framework._framework._-DbeN6toN.js} +1 -1
  160. 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
  161. 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
  162. package/template/dist/server/assets/{_lang._project._version.docs.framework.index-DoEddI6Z.js → _lang._project._version.docs.framework.index-CmLAP_Io.js} +1 -1
  163. package/template/dist/server/assets/{_lang._project.docs-BjOhmwp6.js → _lang._project.docs-Bb4ZZ_jr.js} +3 -3
  164. package/template/dist/server/assets/{_lang._project.docs-dl8MxaGg.js → _lang._project.docs-BsnkRf-R.js} +1 -1
  165. package/template/dist/server/assets/{_lang._project.docs._-hSRVM-U7.js → _lang._project.docs._-ChrpJ61j.js} +5 -5
  166. package/template/dist/server/assets/{_lang._project.docs._-Bq0ajlaH.js → _lang._project.docs._-axRfm8vS.js} +1 -1
  167. package/template/dist/server/assets/{_lang.blog-Dk36D6Ol.js → _lang.blog-8j6IvzvQ.js} +2 -2
  168. package/template/dist/server/assets/{_lang.blog._-Cm8zXsPs.js → _lang.blog._-BPzP97Ac.js} +2 -2
  169. package/template/dist/server/assets/{_lang.blog._-D4CEjSkM.js → _lang.blog._-CjgFipz7.js} +1 -1
  170. package/template/dist/server/assets/{_lang.blog.index-orWcAgbi.js → _lang.blog._-DNX8UglA.js} +2 -2
  171. package/template/dist/server/assets/{_lang.blog.index-ZhMds6Jp.js → _lang.blog.index-CeZnMJBi.js} +1 -1
  172. package/template/dist/server/assets/{_lang.blog.index-Dfy48Gbt.js → _lang.blog.index-Dk5fYp4Q.js} +1 -1
  173. package/template/dist/server/assets/{_lang.blog._-A8h17fpC.js → _lang.blog.index-DzVKqoC4.js} +2 -2
  174. package/template/dist/server/assets/{_lang.docs-CAEkhcnT.js → _lang.docs-B4StnHMb.js} +3 -3
  175. package/template/dist/server/assets/{_lang.docs-CB1sGjRO.js → _lang.docs-DSB3iI6a.js} +1 -1
  176. package/template/dist/server/assets/{_lang.docs._-Zbv8OwJU.js → _lang.docs._--c0In1AT.js} +5 -5
  177. package/template/dist/server/assets/{_lang.docs._-DEX6FutM.js → _lang.docs._-S-y4-3Qn.js} +1 -1
  178. package/template/dist/server/assets/{_lang.docs.framework._framework._-BnpTV3KM.js → _lang.docs.framework._framework._-BFWLyU2h.js} +1 -1
  179. package/template/dist/server/assets/{_lang.docs.framework._framework._-4s4-ZCYh.js → _lang.docs.framework._framework._-Be0U7cDg.js} +5 -5
  180. package/template/dist/server/assets/{_lang.docs.framework._framework.index-BLryfsl2.js → _lang.docs.framework._framework.index-BZ512aSk.js} +1 -1
  181. package/template/dist/server/assets/{_lang.docs.framework.index-DGxWQH6q.js → _lang.docs.framework.index-U8z3j4kz.js} +1 -1
  182. package/template/dist/server/assets/{_tanstack-start-manifest_v-CURwM8Tc.js → _tanstack-start-manifest_v-DXpQ8503.js} +1 -1
  183. package/template/dist/server/assets/{arc-BwftnT5H.js → arc-B4h6h_n6.js} +1 -1
  184. package/template/dist/server/assets/{architecture-PBZL5I3N-KbDVC6gM.js → architecture-PBZL5I3N-CUwqLXkR.js} +6 -6
  185. package/template/dist/server/assets/{architectureDiagram-2XIMDMQ5-BoLvWxb3.js → architectureDiagram-2XIMDMQ5-CuCoxdBe.js} +6 -6
  186. package/template/dist/server/assets/{blockDiagram-WCTKOSBZ-GPFcXs-f.js → blockDiagram-WCTKOSBZ-D5PsUOim.js} +6 -6
  187. package/template/dist/server/assets/{blog.server-Bbk2Ifog.js → blog.server-WqzZ00iA.js} +1 -1
  188. package/template/dist/server/assets/{c4Diagram-IC4MRINW-EQwQCspo.js → c4Diagram-IC4MRINW-CXy5xO3o.js} +2 -2
  189. package/template/dist/server/assets/{channel-CxvwuPH7.js → channel-D0l-mWaF.js} +1 -1
  190. package/template/dist/server/assets/{chunk-4BX2VUAB-DUgcw5ei.js → chunk-4BX2VUAB-M7FVHMss.js} +1 -1
  191. package/template/dist/server/assets/{chunk-55IACEB6-Cn15uD91.js → chunk-55IACEB6-D_gDAje5.js} +1 -1
  192. package/template/dist/server/assets/{chunk-FMBD7UC4-Ck3iyLPu.js → chunk-FMBD7UC4-B5Bebx-Y.js} +1 -1
  193. package/template/dist/server/assets/{chunk-JSJVCQXG-VAT8yncE.js → chunk-JSJVCQXG-DxBkq-uB.js} +1 -1
  194. package/template/dist/server/assets/{chunk-KX2RTZJC-B1bd2VmA.js → chunk-KX2RTZJC-BMHm1EGi.js} +1 -1
  195. package/template/dist/server/assets/{chunk-NQ4KR5QH-CR67GG9C.js → chunk-NQ4KR5QH-Cp28pTwT.js} +3 -3
  196. package/template/dist/server/assets/{chunk-QZHKN3VN-B9SSazM4.js → chunk-QZHKN3VN-Bq5GZqaR.js} +1 -1
  197. package/template/dist/server/assets/{chunk-WL4C6EOR-DZ4Pjuao.js → chunk-WL4C6EOR-C9Nj5GdW.js} +5 -5
  198. package/template/dist/server/assets/{classDiagram-VBA2DB6C-CA6_4Wb2.js → classDiagram-VBA2DB6C-CUchv9T5.js} +6 -6
  199. package/template/dist/server/assets/{classDiagram-v2-RAHNMMFH-CA6_4Wb2.js → classDiagram-v2-RAHNMMFH-CUchv9T5.js} +6 -6
  200. package/template/dist/server/assets/{clone-DJHP_iVy.js → clone-CJcTi58S.js} +1 -1
  201. package/template/dist/server/assets/{cose-bilkent-S5V4N54A-DtU-cN6W.js → cose-bilkent-S5V4N54A-CxvCMhN_.js} +1 -1
  202. package/template/dist/server/assets/{dagre-KLK3FWXG-yZYrVU4p.js → dagre-KLK3FWXG-B5bQP7FL.js} +6 -6
  203. package/template/dist/server/assets/{diagram-E7M64L7V-8Yyz0aw0.js → diagram-E7M64L7V-NjHca90S.js} +8 -8
  204. package/template/dist/server/assets/{diagram-IFDJBPK2-DcxFYI3M.js → diagram-IFDJBPK2-CoTCfBKd.js} +6 -6
  205. package/template/dist/server/assets/{diagram-P4PSJMXO-CehxUcI0.js → diagram-P4PSJMXO-DHvGgYjH.js} +6 -6
  206. package/template/dist/server/assets/{docs.server-7EUAkSBN.js → docs.server-BSH7IvIU.js} +3884 -444
  207. package/template/dist/server/assets/{erDiagram-INFDFZHY-Bu2p1_Pj.js → erDiagram-INFDFZHY-01crajKr.js} +4 -4
  208. package/template/dist/server/assets/{flowDiagram-PKNHOUZH-B_eKR7I0.js → flowDiagram-PKNHOUZH-BkUQ_vxg.js} +6 -6
  209. package/template/dist/server/assets/{ganttDiagram-A5KZAMGK-DP6YEZof.js → ganttDiagram-A5KZAMGK-DvrO-w2P.js} +2 -2
  210. package/template/dist/server/assets/{gitGraph-HDMCJU4V-Bt0qhVL4.js → gitGraph-HDMCJU4V-h9JNaxB7.js} +6 -6
  211. package/template/dist/server/assets/{gitGraphDiagram-K3NZZRJ6-DwvkdYrg.js → gitGraphDiagram-K3NZZRJ6-BoKm6Fm-.js} +7 -7
  212. package/template/dist/server/assets/{graph-BVFNe_k5.js → graph-BoxbfI7Z.js} +2 -2
  213. package/template/dist/server/assets/{index-BvagF3L5.js → index-Jfzi6SZW.js} +2 -2
  214. package/template/dist/server/assets/{info-3K5VOQVL-CFejRnvB.js → info-3K5VOQVL-DgaSHqkS.js} +6 -6
  215. package/template/dist/server/assets/{infoDiagram-LFFYTUFH-D0v9uyXI.js → infoDiagram-LFFYTUFH-DgV5W8-I.js} +5 -5
  216. package/template/dist/server/assets/{ishikawaDiagram-PHBUUO56-DZumspL4.js → ishikawaDiagram-PHBUUO56-CqlMQ0Fq.js} +1 -1
  217. package/template/dist/server/assets/{journeyDiagram-4ABVD52K-nRp_-qZp.js → journeyDiagram-4ABVD52K-D6ySTub8.js} +4 -4
  218. package/template/dist/server/assets/{kanban-definition-K7BYSVSG-BMKyyzjt.js → kanban-definition-K7BYSVSG-BT8m7Cwk.js} +2 -2
  219. package/template/dist/server/assets/{layout-mpiN5R-5.js → layout-CkYcErfn.js} +4 -4
  220. package/template/dist/server/assets/{linear-CqNYgjEx.js → linear-F_0dWGZL.js} +1 -1
  221. package/template/dist/server/assets/{mermaid-parser.core-B8Uu3QZY.js → mermaid-parser.core-q5MdUJuo.js} +11 -11
  222. package/template/dist/server/assets/{mermaid.core-BI3nMhNO.js → mermaid.core-DOWTODR1.js} +31 -31
  223. package/template/dist/server/assets/{mindmap-definition-YRQLILUH-DCoFqLPh.js → mindmap-definition-YRQLILUH-BQxlQqn-.js} +3 -3
  224. package/template/dist/server/assets/{ordinal-Bcam90FY.js → ordinal-CxptdPJm.js} +1 -1
  225. package/template/dist/server/assets/{packet-RMMSAZCW-djgonfKN.js → packet-RMMSAZCW-D8FkLZuP.js} +6 -6
  226. package/template/dist/server/assets/{pie-UPGHQEXC-Dug2t-PE.js → pie-UPGHQEXC-Diw2fHLk.js} +6 -6
  227. package/template/dist/server/assets/{pieDiagram-SKSYHLDU-CS0_hW4w.js → pieDiagram-SKSYHLDU-B1J4UJZ7.js} +8 -8
  228. package/template/dist/server/assets/{quadrantDiagram-337W2JSQ-BpQNM0zu.js → quadrantDiagram-337W2JSQ-BvjKLapg.js} +2 -2
  229. package/template/dist/server/assets/{radar-KQ55EAFF-3ir2W9Wi.js → radar-KQ55EAFF-CcBdPU3n.js} +6 -6
  230. package/template/dist/server/assets/{requirementDiagram-Z7DCOOCP-D92RyjV4.js → requirementDiagram-Z7DCOOCP-Bgr_wnAs.js} +3 -3
  231. package/template/dist/server/assets/{router-DK1vpPhv.js → router-DxwPl-Dc.js} +18 -18
  232. package/template/dist/server/assets/{sankeyDiagram-WA2Y5GQK-DCPRB-xO.js → sankeyDiagram-WA2Y5GQK-B0UwtyW3.js} +2 -2
  233. package/template/dist/server/assets/{sequenceDiagram-2WXFIKYE-C1ab2VvU.js → sequenceDiagram-2WXFIKYE-BbxQJHjO.js} +3 -3
  234. package/template/dist/server/assets/{stateDiagram-RAJIS63D-GhG1G3ff.js → stateDiagram-RAJIS63D-Cg-uJ_UO.js} +8 -8
  235. package/template/dist/server/assets/{stateDiagram-v2-FVOUBMTO-C-KtMadV.js → stateDiagram-v2-FVOUBMTO-BWVPrqfa.js} +4 -4
  236. package/template/dist/server/assets/{timeline-definition-YZTLITO2-DyfAQCd4.js → timeline-definition-YZTLITO2-DCSJT2WT.js} +2 -2
  237. package/template/dist/server/assets/{treemap-KZPCXAKY-Cn0Cw4Cl.js → treemap-KZPCXAKY-a0nhlKgx.js} +6 -6
  238. package/template/dist/server/assets/{vennDiagram-LZ73GAT5-D2Ak5JUa.js → vennDiagram-LZ73GAT5-Bk2HQEQq.js} +1 -1
  239. package/template/dist/server/assets/{xychartDiagram-JWTSCODW-DqoBOs1L.js → xychartDiagram-JWTSCODW-C4svHkt_.js} +3 -3
  240. package/template/dist/server/server.js +16 -16
  241. package/template/package.json +2 -0
  242. package/template/vite.config.ts +33 -18
  243. package/template/wrangler.jsonc +2 -2
  244. package/admin/dist/client/assets/main-CSFhgz4p.js +0 -17
  245. package/admin/dist/client/assets/routes-C6bCOSX-.js +0 -3
  246. package/admin/dist/server/assets/_tanstack-start-manifest_v-BE5XHVZ2.js +0 -17
  247. package/admin/dist/server/assets/redirect-DtfSYi2g.js +0 -51
  248. package/admin/dist/server/assets/status-CZz8Rs_7.js +0 -81
  249. package/template/dist/client/assets/_lang-Cpuy5xmU.js +0 -1
  250. package/template/dist/client/assets/_lang._project-DBdR04In.js +0 -1
  251. package/template/dist/client/assets/_lang._project._version-CtCLMJs2.js +0 -1
  252. package/template/dist/client/assets/_lang._project._version.docs._-CxgRZ17Q.js +0 -1
  253. package/template/dist/client/assets/_lang._project._version.docs.framework._framework._-Qph6wahA.js +0 -1
  254. package/template/dist/client/assets/_lang._project.docs._-C_ZfXEJ7.js +0 -1
  255. package/template/dist/client/assets/_lang.blog-BcRmhv23.js +0 -1
  256. package/template/dist/client/assets/_lang.blog-C5Aa7k5r.js +0 -1
  257. package/template/dist/client/assets/_lang.blog._-BVw4vhtF.js +0 -1
  258. package/template/dist/client/assets/_lang.blog.index-Y35iFzkp.js +0 -1
  259. package/template/dist/client/assets/_lang.docs._-B9hwwoTY.js +0 -1
  260. package/template/dist/client/assets/_lang.docs.framework._framework._-BENbKZIu.js +0 -1
  261. package/template/dist/client/assets/channel-C_1F7tzH.js +0 -1
  262. package/template/dist/client/assets/classDiagram-VBA2DB6C-CqViWWFw.js +0 -1
  263. package/template/dist/client/assets/classDiagram-v2-RAHNMMFH-CqViWWFw.js +0 -1
  264. package/template/dist/client/assets/clone-EeiNAO_N.js +0 -1
  265. package/template/dist/client/assets/ordinal-BENe2yWM.js +0 -1
  266. package/template/dist/client/assets/stateDiagram-v2-FVOUBMTO-CJYWvllO.js +0 -1
  267. /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 { A as arraysEqual, B as last, C as findRouteMatch, D as createLRUCache, E as processRouteTree, F as escapeHtml, H as replaceEqualDeep, I as functionalUpdate, J as require_react, L as isDangerousProtocol, M as decodePath, N as deepEqual, O as invariant, P as encodePathLikeUrl, S as findFlatMatch, T as processRouteMasks, V as nullReplaceEqualDeep, a as useRouter, d as isNotFound, f as cleanPath, g as joinPaths, h as interpolatePath, i as matchContext, j as createControlledPromise, k as DEFAULT_PROTOCOL_ALLOWLIST, l as require_jsx_runtime, n as useStore, o as routerContext, p as compileDecodeCharMap, s as ClientOnly, t as require_react_dom, u as rootRouteId, v as resolvePath, w as findSingleMatch, x as trimPathRight, y as trimPath, z as isPromise } from "./assets/react-dom-CpO9xk_L.js";
3
- import { i as redirect, n as isResolvedRedirect, r as parseRedirect, t as isRedirect } from "./assets/redirect-DtfSYi2g.js";
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-BE5XHVZ2.js");
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-DlU_fGDK.js");
16406
+ const routerEntry = await import("./assets/router-D-82slI-.js");
16429
16407
  return {
16430
- startEntry: await import("./assets/start-BS52hm79.js"),
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 ../../node_modules/.bun/@tanstack+react-start@1.167.5+f6f45b34427496b5/node_modules/@tanstack/react-start/dist/plugin/default-entry/server.ts
16782
- var fetch$1 = createStartHandler(defaultStreamHandler);
16783
- function createServerEntry(entry) {
16784
- return { async fetch(...args) {
16785
- return await entry.fetch(...args);
16786
- } };
16787
- }
16788
- var server_default = createServerEntry({ fetch: fetch$1 });
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, createServerEntry, createNonReactiveMutableStore as d, server_default as default, createNonReactiveReadonlyStore as f, Outlet as i, resolveManifestAssetLink as l, TSS_SERVER_FUNCTION as n, createAtom as o, getServerFnById as r, toObserver as s, createServerFn as t, RouterCore as u };
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 };
@@ -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
- import { jobManager } from '../services/job-manager';
3
- import { ensureInit } from '../init';
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
- import { readFileSync, existsSync } from 'node:fs';
3
- import { resolve } from 'node:path';
4
- import { spawn as nodeSpawn } from 'node:child_process';
5
- import { getPackageVersion } from 'docs-i18n';
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 };
@@ -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
@@ -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
- initStatus(config);
17
- setConfig(config);
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
  }