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,16 +1,17 @@
1
1
  import { t as createServerFn } from "../server.js";
2
- import { t as createServerRpc } from "./createServerRpc-DJq9yo-B.js";
3
- import { c as getPackageVersion, ensureInit, getConfig } from "./init-DJr2glb3.js";
4
- import { spawn } from "node:child_process";
5
- import { existsSync, readFileSync } from "node:fs";
6
- import { resolve } from "node:path";
2
+ import { t as createServerRpc } from "./createServerRpc-Cyyxq9HQ.js";
7
3
  //#region server/functions/misc.ts?tss-serverfn-split
4
+ function isCfWorkers() {
5
+ return !!globalThis.__CF_WORKERS;
6
+ }
8
7
  var fetchVersion_createServerFn_handler = createServerRpc({
9
8
  id: "a3d81974aeece150d4b02be5b91590b8187442ebea56be4a89dcbf053626d22b",
10
9
  name: "fetchVersion",
11
10
  filename: "server/functions/misc.ts"
12
11
  }, (opts) => fetchVersion.__executeServer(opts));
13
12
  var fetchVersion = createServerFn({ method: "GET" }).handler(fetchVersion_createServerFn_handler, async () => {
13
+ if (isCfWorkers()) return { version: "cf-workers" };
14
+ const { getPackageVersion } = await import("./dist-DBv71kqn.js").then((n) => n.n);
14
15
  return { version: getPackageVersion() };
15
16
  });
16
17
  var fetchLlmConfig_createServerFn_handler = createServerRpc({
@@ -19,11 +20,19 @@ var fetchLlmConfig_createServerFn_handler = createServerRpc({
19
20
  filename: "server/functions/misc.ts"
20
21
  }, (opts) => fetchLlmConfig.__executeServer(opts));
21
22
  var fetchLlmConfig = createServerFn({ method: "GET" }).handler(fetchLlmConfig_createServerFn_handler, async () => {
23
+ if (isCfWorkers()) return {
24
+ model: null,
25
+ provider: null,
26
+ hasApiKey: false
27
+ };
28
+ const { ensureInit, getConfig } = await import("./init-CJJUsPDL.js");
22
29
  await ensureInit();
23
30
  const llm = getConfig()?.llm;
24
31
  let envVars = {};
25
32
  try {
26
- const { getProjectRoot } = await import("./init-DJr2glb3.js");
33
+ const { readFileSync, existsSync } = await import("node:fs");
34
+ const { resolve } = await import("node:path");
35
+ const { getProjectRoot } = await import("./init-CJJUsPDL.js");
27
36
  const envPath = resolve(getProjectRoot(), ".env");
28
37
  if (existsSync(envPath)) {
29
38
  const envContent = readFileSync(envPath, "utf-8");
@@ -46,6 +55,7 @@ var fetchConfig_createServerFn_handler = createServerRpc({
46
55
  filename: "server/functions/misc.ts"
47
56
  }, (opts) => fetchConfig.__executeServer(opts));
48
57
  var fetchConfig = createServerFn({ method: "GET" }).handler(fetchConfig_createServerFn_handler, async () => {
58
+ if (isCfWorkers()) return { projectRoot: "(cf-workers)" };
49
59
  return { projectRoot: process.cwd() };
50
60
  });
51
61
  var openFile_createServerFn_handler = createServerRpc({
@@ -54,6 +64,9 @@ var openFile_createServerFn_handler = createServerRpc({
54
64
  filename: "server/functions/misc.ts"
55
65
  }, (opts) => openFile.__executeServer(opts));
56
66
  var openFile = createServerFn({ method: "POST" }).inputValidator((d) => d).handler(openFile_createServerFn_handler, async ({ data }) => {
67
+ if (isCfWorkers()) throw new Error("File opening is not available on CF Workers");
68
+ const { resolve } = await import("node:path");
69
+ const { spawn: nodeSpawn } = await import("node:child_process");
57
70
  const { file } = data;
58
71
  if (!file) throw new Error("Missing file");
59
72
  const fullPath = resolve(process.cwd(), file);
@@ -64,11 +77,11 @@ var openFile = createServerFn({ method: "POST" }).inputValidator((d) => d).handl
64
77
  "zed"
65
78
  ];
66
79
  for (const cmd of candidates) if (await new Promise((r) => {
67
- const p = spawn("which", [cmd], { stdio: "ignore" });
80
+ const p = nodeSpawn("which", [cmd], { stdio: "ignore" });
68
81
  p.on("exit", (code) => r(code === 0));
69
82
  p.on("error", () => r(false));
70
83
  })) {
71
- spawn(cmd, [fullPath], {
84
+ nodeSpawn(cmd, [fullPath], {
72
85
  stdio: "ignore",
73
86
  detached: true
74
87
  }).unref();
@@ -81,7 +94,7 @@ var openFile = createServerFn({ method: "POST" }).inputValidator((d) => d).handl
81
94
  darwin: "open",
82
95
  win32: "start"
83
96
  }[process.platform] || "xdg-open";
84
- spawn(fallback, [fullPath], {
97
+ nodeSpawn(fallback, [fullPath], {
85
98
  stdio: "ignore",
86
99
  detached: true
87
100
  }).unref();
@@ -1,5 +1,5 @@
1
1
  import { t as createServerFn } from "../server.js";
2
- import { t as createServerRpc } from "./createServerRpc-DJq9yo-B.js";
2
+ import { t as createServerRpc } from "./createServerRpc-Cyyxq9HQ.js";
3
3
  //#region server/functions/models.ts?tss-serverfn-split
4
4
  var cachedResult = null;
5
5
  var cacheTime = 0;
@@ -0,0 +1,154 @@
1
+ import { n as DEFAULT_MIGRATION_TABLE, r as DefaultQueryCompiler, t as DEFAULT_MIGRATION_LOCK_TABLE } from "./migrator-ZpVZslbq.js";
2
+ import { n as sql, t as CompiledQuery } from "./compiled-query-CnFG_BVV.js";
3
+ //#region ../../node_modules/.bun/@better-auth+kysely-adapter@1.5.6+1c6fac3656b8abd5/node_modules/@better-auth/kysely-adapter/dist/node-sqlite-dialect.mjs
4
+ var NodeSqliteAdapter = class {
5
+ get supportsCreateIfNotExists() {
6
+ return true;
7
+ }
8
+ get supportsTransactionalDdl() {
9
+ return false;
10
+ }
11
+ get supportsReturning() {
12
+ return true;
13
+ }
14
+ async acquireMigrationLock() {}
15
+ async releaseMigrationLock() {}
16
+ get supportsOutput() {
17
+ return true;
18
+ }
19
+ };
20
+ var NodeSqliteDriver = class {
21
+ #config;
22
+ #connectionMutex = new ConnectionMutex();
23
+ #db;
24
+ #connection;
25
+ constructor(config) {
26
+ this.#config = { ...config };
27
+ }
28
+ async init() {
29
+ this.#db = this.#config.database;
30
+ this.#connection = new NodeSqliteConnection(this.#db);
31
+ if (this.#config.onCreateConnection) await this.#config.onCreateConnection(this.#connection);
32
+ }
33
+ async acquireConnection() {
34
+ await this.#connectionMutex.lock();
35
+ return this.#connection;
36
+ }
37
+ async beginTransaction(connection) {
38
+ await connection.executeQuery(CompiledQuery.raw("begin"));
39
+ }
40
+ async commitTransaction(connection) {
41
+ await connection.executeQuery(CompiledQuery.raw("commit"));
42
+ }
43
+ async rollbackTransaction(connection) {
44
+ await connection.executeQuery(CompiledQuery.raw("rollback"));
45
+ }
46
+ async releaseConnection() {
47
+ this.#connectionMutex.unlock();
48
+ }
49
+ async destroy() {
50
+ this.#db?.close();
51
+ }
52
+ };
53
+ var NodeSqliteConnection = class {
54
+ #db;
55
+ constructor(db) {
56
+ this.#db = db;
57
+ }
58
+ executeQuery(compiledQuery) {
59
+ const { sql, parameters } = compiledQuery;
60
+ const rows = this.#db.prepare(sql).all(...parameters);
61
+ return Promise.resolve({ rows });
62
+ }
63
+ async *streamQuery() {
64
+ throw new Error("Streaming query is not supported by SQLite driver.");
65
+ }
66
+ };
67
+ var ConnectionMutex = class {
68
+ #promise;
69
+ #resolve;
70
+ async lock() {
71
+ while (this.#promise !== void 0) await this.#promise;
72
+ this.#promise = new Promise((resolve) => {
73
+ this.#resolve = resolve;
74
+ });
75
+ }
76
+ unlock() {
77
+ const resolve = this.#resolve;
78
+ this.#promise = void 0;
79
+ this.#resolve = void 0;
80
+ resolve?.();
81
+ }
82
+ };
83
+ var NodeSqliteIntrospector = class {
84
+ #db;
85
+ constructor(db) {
86
+ this.#db = db;
87
+ }
88
+ async getSchemas() {
89
+ return [];
90
+ }
91
+ async getTables(options = { withInternalKyselyTables: false }) {
92
+ let query = this.#db.selectFrom("sqlite_schema").where("type", "=", "table").where("name", "not like", "sqlite_%").select("name").$castTo();
93
+ if (!options.withInternalKyselyTables) query = query.where("name", "!=", DEFAULT_MIGRATION_TABLE).where("name", "!=", DEFAULT_MIGRATION_LOCK_TABLE);
94
+ const tables = await query.execute();
95
+ return Promise.all(tables.map(({ name }) => this.#getTableMetadata(name)));
96
+ }
97
+ async getMetadata(options) {
98
+ return { tables: await this.getTables(options) };
99
+ }
100
+ async #getTableMetadata(table) {
101
+ const db = this.#db;
102
+ const autoIncrementCol = (await db.selectFrom("sqlite_master").where("name", "=", table).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find((it) => it.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g, "");
103
+ return {
104
+ name: table,
105
+ columns: (await db.selectFrom(sql`pragma_table_info(${table})`.as("table_info")).select([
106
+ "name",
107
+ "type",
108
+ "notnull",
109
+ "dflt_value"
110
+ ]).execute()).map((col) => ({
111
+ name: col.name,
112
+ dataType: col.type,
113
+ isNullable: !col.notnull,
114
+ isAutoIncrementing: col.name === autoIncrementCol,
115
+ hasDefaultValue: col.dflt_value != null
116
+ })),
117
+ isView: true
118
+ };
119
+ }
120
+ };
121
+ var NodeSqliteQueryCompiler = class extends DefaultQueryCompiler {
122
+ getCurrentParameterPlaceholder() {
123
+ return "?";
124
+ }
125
+ getLeftIdentifierWrapper() {
126
+ return "\"";
127
+ }
128
+ getRightIdentifierWrapper() {
129
+ return "\"";
130
+ }
131
+ getAutoIncrement() {
132
+ return "autoincrement";
133
+ }
134
+ };
135
+ var NodeSqliteDialect = class {
136
+ #config;
137
+ constructor(config) {
138
+ this.#config = { ...config };
139
+ }
140
+ createDriver() {
141
+ return new NodeSqliteDriver(this.#config);
142
+ }
143
+ createQueryCompiler() {
144
+ return new NodeSqliteQueryCompiler();
145
+ }
146
+ createAdapter() {
147
+ return new NodeSqliteAdapter();
148
+ }
149
+ createIntrospector(db) {
150
+ return new NodeSqliteIntrospector(db);
151
+ }
152
+ };
153
+ //#endregion
154
+ export { NodeSqliteDialect };
@@ -1,6 +1,7 @@
1
1
  import { i as __toESM } from "./chunk-CNvmzFzq.js";
2
- import { F as escapeHtml, J as require_react, N as deepEqual, a as useRouter, c as useHydrated, l as require_jsx_runtime, n as useStore } from "./react-dom-CpO9xk_L.js";
3
- import { C as partialMatchKey, E as resolveStaleTime, F as createLazyFileRoute, I as createRootRouteWithContext, M as focusManager, N as Subscribable, P as createFileRoute, S as noop, _ as hashKey, b as matchMutation, c as onlineManager, f as addConsumeAwareSignal, g as functionalUpdate, h as ensureQueryFn, i as Mutation, k as skipToken, l as notifyManager, m as addToStart, n as QueryClientProvider, o as Query, p as addToEnd, t as Route$1, v as hashQueryKeyByOptions, x as matchQuery } from "./routes-BcfX6iub.js";
2
+ import { l as require_react, r as require_jsx_runtime, t as useRouter } from "./useRouter-BXJvr8to.js";
3
+ import { N as escapeHtml, j as deepEqual, r as useStore, s as useHydrated } from "./__tanstack-start-server-fn-resolver-qK0Yfvti.js";
4
+ import { A as skipToken, C as noop, D as resolveStaleTime, F as lazyRouteComponent, I as createFileRoute, L as createLazyFileRoute, N as focusManager, P as Subscribable, R as createRootRouteWithContext, S as matchQuery, _ as functionalUpdate, a as Mutation, g as ensureQueryFn, h as addToStart, l as onlineManager, m as addToEnd, p as addConsumeAwareSignal, r as QueryClientProvider, s as Query, t as Route$2, u as notifyManager, v as hashKey, w as partialMatchKey, x as matchMutation, y as hashQueryKeyByOptions } from "./routes-B1pNmxF3.js";
4
5
  import { c as getAssetCrossOrigin, d as createNonReactiveMutableStore, f as createNonReactiveReadonlyStore, i as Outlet, l as resolveManifestAssetLink, u as RouterCore } from "../server.js";
5
6
  //#endregion
6
7
  //#region ../../node_modules/.bun/@tanstack+react-router@1.168.3+bf16f8eded5e12ee/node_modules/@tanstack/react-router/dist/esm/routerStores.js
@@ -837,10 +838,10 @@ var QueryClient = class {
837
838
  };
838
839
  //#endregion
839
840
  //#region app/styles.css?url
840
- var styles_default = "/assets/styles-DJ6QEJmN.css";
841
+ var styles_default = "/assets/styles-zS0BbO7e.css";
841
842
  //#endregion
842
843
  //#region app/routes/__root.tsx
843
- var Route = createRootRouteWithContext()({
844
+ var Route$1 = createRootRouteWithContext()({
844
845
  head: () => ({
845
846
  meta: [{ charSet: "utf-8" }, {
846
847
  name: "viewport",
@@ -858,7 +859,7 @@ var Route = createRootRouteWithContext()({
858
859
  })
859
860
  });
860
861
  function RootComponent() {
861
- const { queryClient } = Route.useRouteContext();
862
+ const { queryClient } = Route$1.useRouteContext();
862
863
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RootDocument, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(QueryClientProvider, {
863
864
  client: queryClient,
864
865
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Outlet, {})
@@ -877,13 +878,24 @@ function RootDocument({ children }) {
877
878
  });
878
879
  }
879
880
  //#endregion
881
+ //#region app/routes/login.tsx
882
+ var $$splitComponentImporter = () => import("./login-SqzTMYOZ.js");
883
+ //#endregion
880
884
  //#region app/routeTree.gen.ts
881
- var rootRouteChildren = { IndexRoute: Route$1.update({
882
- id: "/",
883
- path: "/",
884
- getParentRoute: () => Route
885
- }) };
886
- var routeTree = Route._addFileChildren(rootRouteChildren)._addFileTypes();
885
+ var LoginRoute = createFileRoute("/login")({ component: lazyRouteComponent($$splitComponentImporter, "component") }).update({
886
+ id: "/login",
887
+ path: "/login",
888
+ getParentRoute: () => Route$1
889
+ });
890
+ var rootRouteChildren = {
891
+ IndexRoute: Route$2.update({
892
+ id: "/",
893
+ path: "/",
894
+ getParentRoute: () => Route$1
895
+ }),
896
+ LoginRoute
897
+ };
898
+ var routeTree = Route$1._addFileChildren(rootRouteChildren)._addFileTypes();
887
899
  //#endregion
888
900
  //#region app/router.tsx
889
901
  function getRouter() {
@@ -1,6 +1,8 @@
1
1
  import { i as __toESM } from "./chunk-CNvmzFzq.js";
2
- import { G as useIntersectionObserver, H as replaceEqualDeep$1, I as functionalUpdate$1, J as require_react, L as isDangerousProtocol, N as deepEqual, O as invariant, R as isModuleNotFoundError, U as reactUse, W as useForwardedRef, _ as removeTrailingSlash, a as useRouter, b as trimPathLeft, c as useHydrated, g as joinPaths, i as matchContext, l as require_jsx_runtime, m as exactPathTest, n as useStore, r as dummyMatchContext, t as require_react_dom, u as rootRouteId, x as trimPathRight } from "./react-dom-CpO9xk_L.js";
3
- import { i as redirect } from "./redirect-DtfSYi2g.js";
2
+ import { a as useForwardedRef, i as reactUse, l as require_react, o as useIntersectionObserver, r as require_jsx_runtime, t as useRouter } from "./useRouter-BXJvr8to.js";
3
+ import { B as replaceEqualDeep$1, E as invariant, F as isDangerousProtocol, I as isModuleNotFoundError, P as functionalUpdate$1, a as matchContext, c as rootRouteId, f as exactPathTest, h as removeTrailingSlash, i as dummyMatchContext, j as deepEqual, m as joinPaths, n as require_react_dom, r as useStore, s as useHydrated, t as getServerFnById, v as trimPathLeft, y as trimPathRight } from "./__tanstack-start-server-fn-resolver-qK0Yfvti.js";
4
+ import { t as useNavigate } from "./useNavigate-0H08s_Q2.js";
5
+ import { n as TSS_SERVER_FUNCTION, p as redirect, t as createServerFn } from "../server.js";
4
6
  //#region ../../node_modules/.bun/@tanstack+router-core@1.168.3/node_modules/@tanstack/router-core/dist/esm/link.js
5
7
  var preloadWarning = "Error preloading route! ☝️";
6
8
  //#endregion
@@ -208,31 +210,6 @@ function useSearch(opts) {
208
210
  });
209
211
  }
210
212
  //#endregion
211
- //#region ../../node_modules/.bun/@tanstack+react-router@1.168.3+bf16f8eded5e12ee/node_modules/@tanstack/react-router/dist/esm/useNavigate.js
212
- /**
213
- * Imperative navigation hook.
214
- *
215
- * Returns a stable `navigate(options)` function to change the current location
216
- * programmatically. Prefer the `Link` component for user-initiated navigation,
217
- * and use this hook from effects, callbacks, or handlers where imperative
218
- * navigation is required.
219
- *
220
- * Options:
221
- * - `from`: Optional route base used to resolve relative `to` paths.
222
- *
223
- * @returns A function that accepts `NavigateOptions`.
224
- * @link https://tanstack.com/router/latest/docs/framework/react/api/router/useNavigateHook
225
- */
226
- function useNavigate(_defaultOpts) {
227
- const router = useRouter();
228
- return import_react.useCallback((options) => {
229
- return router.navigate({
230
- ...options,
231
- from: options.from ?? _defaultOpts?.from
232
- });
233
- }, [_defaultOpts?.from, router]);
234
- }
235
- //#endregion
236
213
  //#region ../../node_modules/.bun/@tanstack+react-router@1.168.3+bf16f8eded5e12ee/node_modules/@tanstack/react-router/dist/esm/useRouteContext.js
237
214
  function useRouteContext(opts) {
238
215
  return useMatch({
@@ -2107,12 +2084,44 @@ var QueryClientProvider = ({ client, children }) => {
2107
2084
  });
2108
2085
  };
2109
2086
  //#endregion
2087
+ //#region ../../node_modules/.bun/@tanstack+start-server-core@1.167.3/node_modules/@tanstack/start-server-core/dist/esm/createSsrRpc.js
2088
+ var createSsrRpc = (functionId, importer) => {
2089
+ const url = "/_serverFn/" + functionId;
2090
+ const serverFnMeta = { id: functionId };
2091
+ const fn = async (...args) => {
2092
+ return (importer ? await importer() : await getServerFnById(functionId))(...args);
2093
+ };
2094
+ return Object.assign(fn, {
2095
+ url,
2096
+ serverFnMeta,
2097
+ [TSS_SERVER_FUNCTION]: true
2098
+ });
2099
+ };
2100
+ //#endregion
2101
+ //#region server/functions/auth.ts
2102
+ /**
2103
+ * Server function to get the current session.
2104
+ * Called during route loading to check auth state.
2105
+ *
2106
+ * On CF Workers: returns a synthetic read-only session (no auth DB available).
2107
+ * Protect the admin URL at the Cloudflare level if needed.
2108
+ */
2109
+ var getSession = createServerFn({ method: "GET" }).handler(createSsrRpc("539c27f871f75647d981e1ed4d82b5ee620e9e557722641a4a57c5a5818760c9"));
2110
+ /**
2111
+ * Seed a default admin user if none exists.
2112
+ * Only runs once per server lifetime.
2113
+ */
2114
+ //#endregion
2110
2115
  //#region app/routes/index.tsx
2111
- var $$splitComponentImporter = () => import("./routes-pIM0fgUO.js");
2116
+ var $$splitComponentImporter = () => import("./routes-C9huiZHw.js");
2112
2117
  /**
2113
2118
  * Parse version keys into project/version structure.
2114
2119
  * Multi-project keys look like "query/v5", single-project keys look like "v5".
2115
2120
  */
2121
+ /**
2122
+ * Determine user role from session data.
2123
+ * Anonymous users are "guest", others check the role field.
2124
+ */
2116
2125
  var Route = createFileRoute("/")({
2117
2126
  validateSearch: (search) => ({
2118
2127
  project: search.project || void 0,
@@ -2126,7 +2135,12 @@ var Route = createFileRoute("/")({
2126
2135
  status: search.status || void 0,
2127
2136
  section: search.section || void 0
2128
2137
  }),
2138
+ beforeLoad: async () => {
2139
+ const session = await getSession();
2140
+ if (!session) throw redirect({ to: "/login" });
2141
+ return { session };
2142
+ },
2129
2143
  component: lazyRouteComponent($$splitComponentImporter, "component")
2130
2144
  });
2131
2145
  //#endregion
2132
- export { timeUntilStale as A, partialMatchKey as C, shallowEqualObjects as D, resolveStaleTime as E, createLazyFileRoute as F, createRootRouteWithContext as I, useNavigate as L, focusManager as M, Subscribable as N, shouldThrowError as O, createFileRoute as P, noop as S, resolveEnabled as T, hashKey as _, getDefaultState as a, matchMutation as b, onlineManager as c, environmentManager as d, addConsumeAwareSignal as f, functionalUpdate as g, ensureQueryFn as h, Mutation as i, timeoutManager as j, skipToken as k, notifyManager as l, addToStart as m, QueryClientProvider as n, Query as o, addToEnd as p, useQueryClient as r, fetchState as s, Route as t, pendingThenable as u, hashQueryKeyByOptions as v, replaceData as w, matchQuery as x, isValidTimeout as y };
2146
+ export { skipToken as A, noop as C, resolveStaleTime as D, resolveEnabled as E, lazyRouteComponent as F, createFileRoute as I, createLazyFileRoute as L, timeoutManager as M, focusManager as N, shallowEqualObjects as O, Subscribable as P, createRootRouteWithContext as R, matchQuery as S, replaceData as T, functionalUpdate as _, Mutation as a, isValidTimeout as b, fetchState as c, pendingThenable as d, environmentManager as f, ensureQueryFn as g, addToStart as h, useQueryClient as i, timeUntilStale as j, shouldThrowError as k, onlineManager as l, addToEnd as m, createSsrRpc as n, getDefaultState as o, addConsumeAwareSignal as p, QueryClientProvider as r, Query as s, Route as t, notifyManager as u, hashKey as v, partialMatchKey as w, matchMutation as x, hashQueryKeyByOptions as y };
@@ -1,7 +1,9 @@
1
1
  import { i as __toESM } from "./chunk-CNvmzFzq.js";
2
- import { J as require_react, l as require_jsx_runtime } from "./react-dom-CpO9xk_L.js";
3
- import { A as timeUntilStale, D as shallowEqualObjects, E as resolveStaleTime, L as useNavigate, M as focusManager, N as Subscribable, O as shouldThrowError, S as noop, T as resolveEnabled, _ as hashKey, a as getDefaultState, d as environmentManager, j as timeoutManager, l as notifyManager, r as useQueryClient, s as fetchState, t as Route, u as pendingThenable, w as replaceData, y as isValidTimeout } from "./routes-BcfX6iub.js";
4
- import { n as TSS_SERVER_FUNCTION, r as getServerFnById, t as createServerFn } from "../server.js";
2
+ import { l as require_react, r as require_jsx_runtime } from "./useRouter-BXJvr8to.js";
3
+ import { C as noop, D as resolveStaleTime, E as resolveEnabled, M as timeoutManager, N as focusManager, O as shallowEqualObjects, P as Subscribable, T as replaceData, b as isValidTimeout, c as fetchState, d as pendingThenable, f as environmentManager, i as useQueryClient, j as timeUntilStale, k as shouldThrowError, n as createSsrRpc, o as getDefaultState, t as Route, u as notifyManager, v as hashKey } from "./routes-B1pNmxF3.js";
4
+ import { t as useNavigate } from "./useNavigate-0H08s_Q2.js";
5
+ import { t as createServerFn } from "../server.js";
6
+ import { t as authClient } from "./auth-client-CoUpyQIM.js";
5
7
  //#region ../../node_modules/.bun/@tanstack+query-core@5.95.2/node_modules/@tanstack/query-core/build/modern/queryObserver.js
6
8
  var QueryObserver = class extends Subscribable {
7
9
  constructor(client, options) {
@@ -972,20 +974,6 @@ function FileList({ files, lang, activeFile, selected, statusFilter, sectionFilt
972
974
  });
973
975
  }
974
976
  //#endregion
975
- //#region ../../node_modules/.bun/@tanstack+start-server-core@1.167.3/node_modules/@tanstack/start-server-core/dist/esm/createSsrRpc.js
976
- var createSsrRpc = (functionId, importer) => {
977
- const url = "/_serverFn/" + functionId;
978
- const serverFnMeta = { id: functionId };
979
- const fn = async (...args) => {
980
- return (importer ? await importer() : await getServerFnById(functionId))(...args);
981
- };
982
- return Object.assign(fn, {
983
- url,
984
- serverFnMeta,
985
- [TSS_SERVER_FUNCTION]: true
986
- });
987
- };
988
- //#endregion
989
977
  //#region server/functions/status.ts
990
978
  var fetchStatus = createServerFn({ method: "GET" }).handler(createSsrRpc("4e218d79545765572808c7eab33b7663d4496209c15406d0b449366905b6b83f"));
991
979
  var fetchFileCoverage = createServerFn({ method: "GET" }).inputValidator((d) => d).handler(createSsrRpc("843cd8b59095708a5ae78198708db9850f89fd3dd3830ab236f0bd924417692f"));
@@ -1884,9 +1872,29 @@ function parseProjectVersions(versionKeys) {
1884
1872
  isMultiProject: true
1885
1873
  };
1886
1874
  }
1875
+ /**
1876
+ * Determine user role from session data.
1877
+ * Anonymous users are "guest", others check the role field.
1878
+ */
1879
+ function getUserRole(session) {
1880
+ if (!session?.user) return "guest";
1881
+ if (session.user.isAnonymous) return "guest";
1882
+ if (session.user.role === "admin") return "admin";
1883
+ return "user";
1884
+ }
1885
+ function getUserDisplayName(session) {
1886
+ if (!session?.user) return "Guest";
1887
+ const user = session.user;
1888
+ if (user.isAnonymous) return "Guest";
1889
+ return user.displayName || user.name || user.username || user.email || "User";
1890
+ }
1887
1891
  function AdminPage() {
1888
1892
  const search = Route.useSearch();
1893
+ const { session } = Route.useRouteContext();
1889
1894
  const navigate = useNavigate({ from: "/" });
1895
+ const userRole = getUserRole(session);
1896
+ const userName = getUserDisplayName(session);
1897
+ const isAdmin = userRole === "admin";
1890
1898
  const lang = search.lang || null;
1891
1899
  const file = search.file || null;
1892
1900
  const showFiles = search.files !== "0";
@@ -2011,30 +2019,56 @@ function AdminPage() {
2011
2019
  const handleSelectAll = (0, import_react.useCallback)((fileList) => setSelected(new Set(fileList)), []);
2012
2020
  const handleClear = (0, import_react.useCallback)(() => setSelected(/* @__PURE__ */ new Set()), []);
2013
2021
  const handleTranslateSelected = (0, import_react.useCallback)(() => {
2022
+ if (!isAdmin) {
2023
+ setToast("Only admin users can start translation jobs");
2024
+ return;
2025
+ }
2014
2026
  setDialogFiles([...selected]);
2015
2027
  setShowDialog(true);
2016
- }, [selected]);
2028
+ }, [selected, isAdmin]);
2017
2029
  const handleNewJob = (0, import_react.useCallback)(() => {
2030
+ if (!isAdmin) {
2031
+ setToast("Only admin users can start translation jobs");
2032
+ return;
2033
+ }
2018
2034
  setDialogFiles(void 0);
2019
2035
  setShowDialog(true);
2020
- }, []);
2036
+ }, [isAdmin]);
2037
+ const handleSignOut = (0, import_react.useCallback)(async () => {
2038
+ await authClient.signOut();
2039
+ navigate({ to: "/login" });
2040
+ }, [navigate]);
2021
2041
  if (!statusData) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
2022
2042
  className: "loading",
2023
2043
  children: "Loading..."
2024
2044
  });
2025
2045
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
2026
2046
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("nav", { children: [
2027
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h1", { children: ["🌐 Translation Admin ", versionInfo?.version && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
2047
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("h1", { children: ["Translation Admin ", versionInfo?.version && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", {
2028
2048
  className: "version-badge",
2029
2049
  children: ["v", versionInfo.version]
2030
2050
  })] }),
2031
2051
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "spacer" }),
2032
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
2052
+ isAdmin && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
2033
2053
  type: "button",
2034
2054
  className: "btn",
2035
2055
  onClick: handleNewJob,
2036
2056
  children: "+ New Job"
2037
2057
  }),
2058
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
2059
+ className: "user-info",
2060
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: userName }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
2061
+ className: `user-role ${userRole}`,
2062
+ children: userRole
2063
+ })]
2064
+ }),
2065
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
2066
+ type: "button",
2067
+ className: "btn-signout",
2068
+ onClick: handleSignOut,
2069
+ title: "Sign out",
2070
+ children: "Sign Out"
2071
+ }),
2038
2072
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", {
2039
2073
  type: "button",
2040
2074
  className: "btn btn-icon",
@@ -2121,7 +2155,7 @@ function AdminPage() {
2121
2155
  className: "toast",
2122
2156
  children: toast
2123
2157
  }),
2124
- showDialog && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(JobDialog, {
2158
+ showDialog && isAdmin && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(JobDialog, {
2125
2159
  langs: statusData.langs,
2126
2160
  versions: statusData.versions,
2127
2161
  defaultLang: lang || void 0,
@@ -0,0 +1,69 @@
1
+ import { r as DefaultQueryCompiler } from "./migrator-ZpVZslbq.js";
2
+ //#region ../../node_modules/.bun/kysely@0.28.14/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.js
3
+ /**
4
+ * A basic implementation of `DialectAdapter` with sensible default values.
5
+ * Third-party dialects can extend this instead of implementing the `DialectAdapter`
6
+ * interface from scratch. That way all new settings will get default values when
7
+ * they are added and there will be less breaking changes.
8
+ */
9
+ var DialectAdapterBase = class {
10
+ get supportsCreateIfNotExists() {
11
+ return true;
12
+ }
13
+ get supportsTransactionalDdl() {
14
+ return false;
15
+ }
16
+ get supportsReturning() {
17
+ return false;
18
+ }
19
+ get supportsOutput() {
20
+ return false;
21
+ }
22
+ };
23
+ //#endregion
24
+ //#region ../../node_modules/.bun/kysely@0.28.14/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-query-compiler.js
25
+ var ID_WRAP_REGEX = /"/g;
26
+ var SqliteQueryCompiler = class extends DefaultQueryCompiler {
27
+ visitOrAction(node) {
28
+ this.append("or ");
29
+ this.append(node.action);
30
+ }
31
+ getCurrentParameterPlaceholder() {
32
+ return "?";
33
+ }
34
+ getLeftExplainOptionsWrapper() {
35
+ return "";
36
+ }
37
+ getRightExplainOptionsWrapper() {
38
+ return "";
39
+ }
40
+ getLeftIdentifierWrapper() {
41
+ return "\"";
42
+ }
43
+ getRightIdentifierWrapper() {
44
+ return "\"";
45
+ }
46
+ getAutoIncrement() {
47
+ return "autoincrement";
48
+ }
49
+ sanitizeIdentifier(identifier) {
50
+ return identifier.replace(ID_WRAP_REGEX, "\"\"");
51
+ }
52
+ visitDefaultInsertValue(_) {
53
+ this.append("null");
54
+ }
55
+ };
56
+ //#endregion
57
+ //#region ../../node_modules/.bun/kysely@0.28.14/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.js
58
+ var SqliteAdapter = class extends DialectAdapterBase {
59
+ get supportsTransactionalDdl() {
60
+ return false;
61
+ }
62
+ get supportsReturning() {
63
+ return true;
64
+ }
65
+ async acquireMigrationLock(_db, _opt) {}
66
+ async releaseMigrationLock(_db, _opt) {}
67
+ };
68
+ //#endregion
69
+ export { SqliteQueryCompiler as n, DialectAdapterBase as r, SqliteAdapter as t };
@@ -1,4 +1,4 @@
1
- //#region ../../node_modules/.bun/@tanstack+react-start@1.167.5+f6f45b34427496b5/node_modules/@tanstack/react-start/dist/plugin/default-entry/start.ts
1
+ //#region ../../node_modules/.bun/@tanstack+react-start@1.167.5+9ca4765aecee8668/node_modules/@tanstack/react-start/dist/plugin/default-entry/start.ts
2
2
  var startInstance = void 0;
3
3
  //#endregion
4
4
  export { startInstance };