@selvajs/selva 2.0.7 → 2.0.9

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 (344) hide show
  1. package/build/client/_app/immutable/chunks/{CqsZL3G3.js → 8jxh9FTC.js} +1 -1
  2. package/build/client/_app/immutable/chunks/8jxh9FTC.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/8jxh9FTC.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{D_att4ap.js → B1839-Qe.js} +1 -1
  5. package/build/client/_app/immutable/chunks/B1839-Qe.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/B1839-Qe.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DHlGhLx2.js → BB7Ce_Ao.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BB7Ce_Ao.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BB7Ce_Ao.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{Bil3tPvX.js → BG4KYJxd.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BG4KYJxd.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BG4KYJxd.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{BXD0khLj.js → BLObdRkl.js} +1 -1
  14. package/build/client/_app/immutable/chunks/BLObdRkl.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BLObdRkl.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{ljBlCROD.js → Dx1NLq6A.js} +1 -1
  17. package/build/client/_app/immutable/chunks/Dx1NLq6A.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/Dx1NLq6A.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.mgpIphLA.js → app.iSZ5n5at.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.iSZ5n5at.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.iSZ5n5at.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.DN1mprbr.js +1 -0
  23. package/build/client/_app/immutable/entry/start.DN1mprbr.js.br +2 -0
  24. package/build/client/_app/immutable/entry/start.DN1mprbr.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{1.ER8kCa8u.js → 1.B3iyxTLe.js} +1 -1
  26. package/build/client/_app/immutable/nodes/1.B3iyxTLe.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/1.B3iyxTLe.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{11.etqQMTbZ.js → 11.C0bOSA5Z.js} +1 -1
  29. package/build/client/_app/immutable/nodes/11.C0bOSA5Z.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/11.C0bOSA5Z.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{13.D2C7ZhRM.js → 13.BBX4st-t.js} +1 -1
  32. package/build/client/_app/immutable/nodes/13.BBX4st-t.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/13.BBX4st-t.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{14.BsMD1FMo.js → 14.S-GLVBVi.js} +1 -1
  35. package/build/client/_app/immutable/nodes/14.S-GLVBVi.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/14.S-GLVBVi.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/15.CAs53i3e.js +16 -0
  38. package/build/client/_app/immutable/nodes/15.CAs53i3e.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/15.CAs53i3e.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{16.CNZK2Sd5.js → 16.ukqcuKdq.js} +1 -1
  41. package/build/client/_app/immutable/nodes/16.ukqcuKdq.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/16.ukqcuKdq.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{17.DnbXph3_.js → 17.DsZpiT_T.js} +1 -1
  44. package/build/client/_app/immutable/nodes/17.DsZpiT_T.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/17.DsZpiT_T.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{19.DUkWoiIb.js → 19.De1qTu0Z.js} +1 -1
  47. package/build/client/_app/immutable/nodes/19.De1qTu0Z.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/19.De1qTu0Z.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/2.D9zIVWl1.js +1 -0
  50. package/build/client/_app/immutable/nodes/2.D9zIVWl1.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/2.D9zIVWl1.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{20.DBQniFEt.js → 20.DxsctpJH.js} +1 -1
  53. package/build/client/_app/immutable/nodes/20.DxsctpJH.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/20.DxsctpJH.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{21.DWPqhlKJ.js → 21.-SL0S8PQ.js} +1 -1
  56. package/build/client/_app/immutable/nodes/21.-SL0S8PQ.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/21.-SL0S8PQ.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{23.CDmYEi90.js → 23.VZ_boRL-.js} +1 -1
  59. package/build/client/_app/immutable/nodes/23.VZ_boRL-.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/23.VZ_boRL-.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{24.Cry95nKW.js → 24.B9kY2pb5.js} +1 -1
  62. package/build/client/_app/immutable/nodes/24.B9kY2pb5.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/24.B9kY2pb5.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{27.CDltPd6D.js → 27.DZwrstUI.js} +1 -1
  65. package/build/client/_app/immutable/nodes/27.DZwrstUI.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/27.DZwrstUI.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{28.HXbeDTJx.js → 28.MnyfwNy0.js} +1 -1
  68. package/build/client/_app/immutable/nodes/28.MnyfwNy0.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/28.MnyfwNy0.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{29.B9r1wv_8.js → 29.CNTJCITP.js} +1 -1
  71. package/build/client/_app/immutable/nodes/29.CNTJCITP.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/29.CNTJCITP.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{3.D4JVLXS4.js → 3.KI4lh69U.js} +1 -1
  74. package/build/client/_app/immutable/nodes/3.KI4lh69U.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/3.KI4lh69U.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{30.Bv8cJH8I.js → 30.Ct1smdjS.js} +1 -1
  77. package/build/client/_app/immutable/nodes/30.Ct1smdjS.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/30.Ct1smdjS.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{5.89J4ek9w.js → 5.BN9x0bOB.js} +1 -1
  80. package/build/client/_app/immutable/nodes/5.BN9x0bOB.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/5.BN9x0bOB.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{6.DEn0bSbE.js → 6.BU_SGWVX.js} +1 -1
  83. package/build/client/_app/immutable/nodes/6.BU_SGWVX.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/6.BU_SGWVX.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{7.D1Yc2D4z.js → 7.9jzNcaAs.js} +1 -1
  86. package/build/client/_app/immutable/nodes/7.9jzNcaAs.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/7.9jzNcaAs.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{8.BAgBqrSM.js → 8.BvaBLt60.js} +1 -1
  89. package/build/client/_app/immutable/nodes/8.BvaBLt60.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/8.BvaBLt60.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/9.CzG8ag1t.js +1 -0
  92. package/build/client/_app/immutable/nodes/9.CzG8ag1t.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/9.CzG8ag1t.js.gz +0 -0
  94. package/build/client/_app/version.json +1 -1
  95. package/build/client/_app/version.json.br +0 -0
  96. package/build/client/_app/version.json.gz +0 -0
  97. package/build/server/chunks/{0-wC8vebb2.js → 0-CybFR_P8.js} +2 -2
  98. package/build/server/chunks/{0-wC8vebb2.js.map → 0-CybFR_P8.js.map} +1 -1
  99. package/build/server/chunks/{1-DaLSXFO5.js → 1-CUP4tMEn.js} +2 -2
  100. package/build/server/chunks/{1-DaLSXFO5.js.map → 1-CUP4tMEn.js.map} +1 -1
  101. package/build/server/chunks/{10-8FzClb5u.js → 10-zdkaINz9.js} +4 -4
  102. package/build/server/chunks/{10-8FzClb5u.js.map → 10-zdkaINz9.js.map} +1 -1
  103. package/build/server/chunks/{11-CHgqcTbh.js → 11-DHKq5wgm.js} +6 -6
  104. package/build/server/chunks/{11-CHgqcTbh.js.map → 11-DHKq5wgm.js.map} +1 -1
  105. package/build/server/chunks/{12-C_P4jkDv.js → 12-XbcleGFd.js} +2 -2
  106. package/build/server/chunks/{12-C_P4jkDv.js.map → 12-XbcleGFd.js.map} +1 -1
  107. package/build/server/chunks/{13-NcfCvvsm.js → 13-D9eyZVCZ.js} +5 -4
  108. package/build/server/chunks/13-D9eyZVCZ.js.map +1 -0
  109. package/build/server/chunks/{14-DMIFpWXS.js → 14-qYW-h0op.js} +4 -3
  110. package/build/server/chunks/14-qYW-h0op.js.map +1 -0
  111. package/build/server/chunks/{15-C6n3AtSm.js → 15-wi_onU5j.js} +6 -5
  112. package/build/server/chunks/15-wi_onU5j.js.map +1 -0
  113. package/build/server/chunks/{16-QrkvdWP8.js → 16-BM4yvuKv.js} +5 -5
  114. package/build/server/chunks/{16-QrkvdWP8.js.map → 16-BM4yvuKv.js.map} +1 -1
  115. package/build/server/chunks/{17-DcYHy8LC.js → 17-CexG3wap.js} +2 -2
  116. package/build/server/chunks/{17-DcYHy8LC.js.map → 17-CexG3wap.js.map} +1 -1
  117. package/build/server/chunks/{18-DeVS-pOT.js → 18-DbXlY9LE.js} +2 -2
  118. package/build/server/chunks/{18-DeVS-pOT.js.map → 18-DbXlY9LE.js.map} +1 -1
  119. package/build/server/chunks/{19-Ba1cLYzj.js → 19-AX88i2oC.js} +5 -3
  120. package/build/server/chunks/19-AX88i2oC.js.map +1 -0
  121. package/build/server/chunks/{2-U9WqYgoH.js → 2-BMbliYzg.js} +7 -6
  122. package/build/server/chunks/2-BMbliYzg.js.map +1 -0
  123. package/build/server/chunks/{20-CXROf0v7.js → 20-S3QlkFoL.js} +9 -9
  124. package/build/server/chunks/{20-CXROf0v7.js.map → 20-S3QlkFoL.js.map} +1 -1
  125. package/build/server/chunks/{21-DOigIeyI.js → 21-BAKPEyjQ.js} +3 -3
  126. package/build/server/chunks/{21-DOigIeyI.js.map → 21-BAKPEyjQ.js.map} +1 -1
  127. package/build/server/chunks/{23-tYS5IPDm.js → 23-DCiJWF0i.js} +6 -6
  128. package/build/server/chunks/{23-tYS5IPDm.js.map → 23-DCiJWF0i.js.map} +1 -1
  129. package/build/server/chunks/{24-C4vhqXEq.js → 24-B3gXWNYD.js} +4 -4
  130. package/build/server/chunks/{24-C4vhqXEq.js.map → 24-B3gXWNYD.js.map} +1 -1
  131. package/build/server/chunks/{25-ef6c33Ul.js → 25-9yYU1YBX.js} +2 -2
  132. package/build/server/chunks/{25-ef6c33Ul.js.map → 25-9yYU1YBX.js.map} +1 -1
  133. package/build/server/chunks/{27-DYKzgRQL.js → 27-GMsHFaaf.js} +4 -4
  134. package/build/server/chunks/{27-DYKzgRQL.js.map → 27-GMsHFaaf.js.map} +1 -1
  135. package/build/server/chunks/{28-CXrb03KH.js → 28-DnplSoj0.js} +3 -3
  136. package/build/server/chunks/{28-CXrb03KH.js.map → 28-DnplSoj0.js.map} +1 -1
  137. package/build/server/chunks/{29-DOzMYo4t.js → 29-orcjqU9J.js} +3 -3
  138. package/build/server/chunks/{29-DOzMYo4t.js.map → 29-orcjqU9J.js.map} +1 -1
  139. package/build/server/chunks/{3-Df4VHTHU.js → 3-B57IoxU7.js} +2 -2
  140. package/build/server/chunks/{3-Df4VHTHU.js.map → 3-B57IoxU7.js.map} +1 -1
  141. package/build/server/chunks/{30-CIAlEMGw.js → 30-UoUq_V5A.js} +3 -3
  142. package/build/server/chunks/{30-CIAlEMGw.js.map → 30-UoUq_V5A.js.map} +1 -1
  143. package/build/server/chunks/{31-CirH19D6.js → 31-BRqIoy8w.js} +2 -2
  144. package/build/server/chunks/{31-CirH19D6.js.map → 31-BRqIoy8w.js.map} +1 -1
  145. package/build/server/chunks/{32-CZojKYOy.js → 32-D1Mk43AX.js} +2 -2
  146. package/build/server/chunks/{32-CZojKYOy.js.map → 32-D1Mk43AX.js.map} +1 -1
  147. package/build/server/chunks/{5-CuGUtDxT.js → 5-DMGFkyK4.js} +2 -2
  148. package/build/server/chunks/{5-CuGUtDxT.js.map → 5-DMGFkyK4.js.map} +1 -1
  149. package/build/server/chunks/{6-BGQVX0lN.js → 6-CYaPOOMj.js} +3 -3
  150. package/build/server/chunks/{6-BGQVX0lN.js.map → 6-CYaPOOMj.js.map} +1 -1
  151. package/build/server/chunks/{7-D-isYlgr.js → 7-Dk_VmXtf.js} +2 -2
  152. package/build/server/chunks/{7-D-isYlgr.js.map → 7-Dk_VmXtf.js.map} +1 -1
  153. package/build/server/chunks/{8-ZfjJPjCM.js → 8-Ce8EjQtB.js} +3 -3
  154. package/build/server/chunks/{8-ZfjJPjCM.js.map → 8-Ce8EjQtB.js.map} +1 -1
  155. package/build/server/chunks/{9-NgrtpCNf.js → 9-DghkKEyM.js} +4 -4
  156. package/build/server/chunks/{9-NgrtpCNf.js.map → 9-DghkKEyM.js.map} +1 -1
  157. package/build/server/chunks/{_layout.svelte-HGSVxA0R.js → _layout.svelte-u5-cJLoF.js} +2 -2
  158. package/build/server/chunks/_layout.svelte-u5-cJLoF.js.map +1 -0
  159. package/build/server/chunks/{_page.svelte-cjTi5BVx.js → _page.svelte-BCCCalas.js} +5 -5
  160. package/build/server/chunks/_page.svelte-BCCCalas.js.map +1 -0
  161. package/build/server/chunks/{_page.svelte-Bt5WuxST.js → _page.svelte-CRZeKEsV.js} +5 -4
  162. package/build/server/chunks/_page.svelte-CRZeKEsV.js.map +1 -0
  163. package/build/server/chunks/{_server.ts-C2YLv0RS.js → _server.ts-07x4zjP2.js} +4 -4
  164. package/build/server/chunks/{_server.ts-C2YLv0RS.js.map → _server.ts-07x4zjP2.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-B0gZCMdj.js → _server.ts-7mF4ytYC.js} +4 -4
  166. package/build/server/chunks/{_server.ts-B0gZCMdj.js.map → _server.ts-7mF4ytYC.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-Cjz2LZbt.js → _server.ts-B-LWyGZ8.js} +5 -4
  168. package/build/server/chunks/_server.ts-B-LWyGZ8.js.map +1 -0
  169. package/build/server/chunks/{_server.ts-CKHs57oZ.js → _server.ts-B2zQRDbu.js} +2 -2
  170. package/build/server/chunks/{_server.ts-CKHs57oZ.js.map → _server.ts-B2zQRDbu.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-BSoy1Ljl.js → _server.ts-B6Zmqwf5.js} +4 -4
  172. package/build/server/chunks/{_server.ts-BSoy1Ljl.js.map → _server.ts-B6Zmqwf5.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-C3Cn_AWJ.js → _server.ts-BDeXzj8U.js} +4 -4
  174. package/build/server/chunks/{_server.ts-C3Cn_AWJ.js.map → _server.ts-BDeXzj8U.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-I3zLnhsz.js → _server.ts-BEGEbcQ_.js} +4 -4
  176. package/build/server/chunks/{_server.ts-I3zLnhsz.js.map → _server.ts-BEGEbcQ_.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-CyhcRpfW.js → _server.ts-BEW1ndmL.js} +5 -5
  178. package/build/server/chunks/{_server.ts-CyhcRpfW.js.map → _server.ts-BEW1ndmL.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-1nksAmT8.js → _server.ts-BSZknGSV.js} +4 -4
  180. package/build/server/chunks/{_server.ts-1nksAmT8.js.map → _server.ts-BSZknGSV.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-BTi2idVf.js → _server.ts-BUI9hwVF.js} +4 -4
  182. package/build/server/chunks/{_server.ts-BTi2idVf.js.map → _server.ts-BUI9hwVF.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-CZW4ge6f.js → _server.ts-BX0JGorf.js} +4 -4
  184. package/build/server/chunks/{_server.ts-CZW4ge6f.js.map → _server.ts-BX0JGorf.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-BYlDwqEg.js → _server.ts-BXGCxm6J.js} +5 -5
  186. package/build/server/chunks/{_server.ts-BYlDwqEg.js.map → _server.ts-BXGCxm6J.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-ByhZiyPJ.js → _server.ts-BYTe4ViD.js} +4 -4
  188. package/build/server/chunks/{_server.ts-ByhZiyPJ.js.map → _server.ts-BYTe4ViD.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-BdKZ7aOG.js → _server.ts-BaHBgmBs.js} +4 -4
  190. package/build/server/chunks/{_server.ts-BdKZ7aOG.js.map → _server.ts-BaHBgmBs.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-C9ggXEGb.js → _server.ts-BbvHHiGq.js} +4 -4
  192. package/build/server/chunks/{_server.ts-C9ggXEGb.js.map → _server.ts-BbvHHiGq.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-qFzkA4h-.js → _server.ts-C9SZ9y6W.js} +7 -7
  194. package/build/server/chunks/{_server.ts-qFzkA4h-.js.map → _server.ts-C9SZ9y6W.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-4DY4RPVn.js → _server.ts-CHvipMjS.js} +128 -33
  196. package/build/server/chunks/_server.ts-CHvipMjS.js.map +1 -0
  197. package/build/server/chunks/{_server.ts-1HIleN3S.js → _server.ts-CIAkL4VM.js} +4 -4
  198. package/build/server/chunks/{_server.ts-1HIleN3S.js.map → _server.ts-CIAkL4VM.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-gCCprE5T.js → _server.ts-CKENL0Fr.js} +7 -5
  200. package/build/server/chunks/_server.ts-CKENL0Fr.js.map +1 -0
  201. package/build/server/chunks/{_server.ts-BbzbsVfr.js → _server.ts-CKtVrr5P.js} +4 -4
  202. package/build/server/chunks/{_server.ts-BbzbsVfr.js.map → _server.ts-CKtVrr5P.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-CN851WSH.js → _server.ts-CS_06-Es.js} +4 -4
  204. package/build/server/chunks/{_server.ts-CN851WSH.js.map → _server.ts-CS_06-Es.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-Dnqx5-qU.js → _server.ts-D5nruaeK.js} +6 -6
  206. package/build/server/chunks/{_server.ts-Dnqx5-qU.js.map → _server.ts-D5nruaeK.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-C_s5gcH-.js → _server.ts-DLHHpGFa.js} +3 -3
  208. package/build/server/chunks/{_server.ts-C_s5gcH-.js.map → _server.ts-DLHHpGFa.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-CbQpXSqd.js → _server.ts-DMSCxMRc.js} +4 -4
  210. package/build/server/chunks/{_server.ts-CbQpXSqd.js.map → _server.ts-DMSCxMRc.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-k0TOB-E9.js → _server.ts-DOstgfdy.js} +4 -4
  212. package/build/server/chunks/{_server.ts-k0TOB-E9.js.map → _server.ts-DOstgfdy.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-DChqazjy.js → _server.ts-DahXKbZg.js} +3 -3
  214. package/build/server/chunks/{_server.ts-DChqazjy.js.map → _server.ts-DahXKbZg.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-DraBBcmz.js → _server.ts-DjEulrER.js} +4 -4
  216. package/build/server/chunks/{_server.ts-DraBBcmz.js.map → _server.ts-DjEulrER.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-Cb4DODkC.js → _server.ts-DmvmgVIf.js} +5 -5
  218. package/build/server/chunks/{_server.ts-Cb4DODkC.js.map → _server.ts-DmvmgVIf.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-CNPmzTy6.js → _server.ts-Du9sjt--.js} +4 -4
  220. package/build/server/chunks/{_server.ts-CNPmzTy6.js.map → _server.ts-Du9sjt--.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-Ch4yLIuo.js → _server.ts-Dx6fUVVo.js} +3 -3
  222. package/build/server/chunks/{_server.ts-Ch4yLIuo.js.map → _server.ts-Dx6fUVVo.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-AE1drj36.js → _server.ts-MKn8v93k.js} +5 -4
  224. package/build/server/chunks/_server.ts-MKn8v93k.js.map +1 -0
  225. package/build/server/chunks/{_server.ts-CaERLUlr.js → _server.ts-MvJCHr1k.js} +3 -3
  226. package/build/server/chunks/{_server.ts-CaERLUlr.js.map → _server.ts-MvJCHr1k.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-DWL7YPsQ.js → _server.ts-Njof323z.js} +5 -5
  228. package/build/server/chunks/{_server.ts-DWL7YPsQ.js.map → _server.ts-Njof323z.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-BnN8EQwQ.js → _server.ts-VbLWxdNH.js} +4 -4
  230. package/build/server/chunks/{_server.ts-BnN8EQwQ.js.map → _server.ts-VbLWxdNH.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-DnpbPKKN.js → _server.ts-WfRBOO6r.js} +4 -4
  232. package/build/server/chunks/{_server.ts-DnpbPKKN.js.map → _server.ts-WfRBOO6r.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-DrYz0SSH.js → _server.ts-c9y4czsq.js} +4 -4
  234. package/build/server/chunks/{_server.ts-DrYz0SSH.js.map → _server.ts-c9y4czsq.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-CzJ60KtY.js → _server.ts-hNeWcDQg.js} +5 -5
  236. package/build/server/chunks/{_server.ts-CzJ60KtY.js.map → _server.ts-hNeWcDQg.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-v9eUA-cx.js → _server.ts-kUn8v9xq.js} +4 -4
  238. package/build/server/chunks/{_server.ts-v9eUA-cx.js.map → _server.ts-kUn8v9xq.js.map} +1 -1
  239. package/build/server/chunks/{access.server-DVG3xnR_.js → access.server-DGKSuoRH.js} +35 -13
  240. package/build/server/chunks/access.server-DGKSuoRH.js.map +1 -0
  241. package/build/server/chunks/{api-errors-DGHmIOGJ.js → api-errors-DSza0CJv.js} +2 -2
  242. package/build/server/chunks/{api-errors-DGHmIOGJ.js.map → api-errors-DSza0CJv.js.map} +1 -1
  243. package/build/server/chunks/{auth-bootstrap.server-dy8_QSAP.js → auth-bootstrap.server-YBvyz9i1.js} +2 -2
  244. package/build/server/chunks/{auth-bootstrap.server-dy8_QSAP.js.map → auth-bootstrap.server-YBvyz9i1.js.map} +1 -1
  245. package/build/server/chunks/{bootHealth.server-DQx_qsNh.js → bootHealth.server-DwPUi_JC.js} +2 -2
  246. package/build/server/chunks/{bootHealth.server-DQx_qsNh.js.map → bootHealth.server-DwPUi_JC.js.map} +1 -1
  247. package/build/server/chunks/{hooks.server-D5z2JKsD.js → hooks.server---blwhkE.js} +4 -4
  248. package/build/server/chunks/{hooks.server-D5z2JKsD.js.map → hooks.server---blwhkE.js.map} +1 -1
  249. package/build/server/chunks/{permissions.server-qrbshNHz.js → permissions.server-toUY36oB.js} +2 -2
  250. package/build/server/chunks/{permissions.server-qrbshNHz.js.map → permissions.server-toUY36oB.js.map} +1 -1
  251. package/build/server/chunks/{providers.server-Duyx-08B.js → providers.server-gJvnJT_K.js} +2 -1
  252. package/build/server/chunks/providers.server-gJvnJT_K.js.map +1 -0
  253. package/build/server/chunks/{resolve.server-BwfjDyaT.js → resolve.server-Ca9AsrIQ.js} +3 -3
  254. package/build/server/chunks/{resolve.server-BwfjDyaT.js.map → resolve.server-Ca9AsrIQ.js.map} +1 -1
  255. package/build/server/chunks/{resolve.server2-DjZg4oZg.js → resolve.server2-B0RMxSCk.js} +2 -2
  256. package/build/server/chunks/{resolve.server2-DjZg4oZg.js.map → resolve.server2-B0RMxSCk.js.map} +1 -1
  257. package/build/server/chunks/{utils2-QuTTpZq0.js → utils2-DfCIUv4X.js} +2 -2
  258. package/build/server/chunks/{utils2-QuTTpZq0.js.map → utils2-DfCIUv4X.js.map} +1 -1
  259. package/build/server/index.js +2 -2
  260. package/build/server/index.js.map +1 -1
  261. package/build/server/manifest.js +69 -69
  262. package/build/server/manifest.js.map +1 -1
  263. package/package.json +4 -4
  264. package/templates/.env.example +8 -0
  265. package/build/client/_app/immutable/chunks/BXD0khLj.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/BXD0khLj.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/Bil3tPvX.js.br +0 -0
  268. package/build/client/_app/immutable/chunks/Bil3tPvX.js.gz +0 -0
  269. package/build/client/_app/immutable/chunks/CqsZL3G3.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/CqsZL3G3.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/DHlGhLx2.js.br +0 -0
  272. package/build/client/_app/immutable/chunks/DHlGhLx2.js.gz +0 -0
  273. package/build/client/_app/immutable/chunks/D_att4ap.js.br +0 -0
  274. package/build/client/_app/immutable/chunks/D_att4ap.js.gz +0 -0
  275. package/build/client/_app/immutable/chunks/ljBlCROD.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/ljBlCROD.js.gz +0 -0
  277. package/build/client/_app/immutable/entry/app.mgpIphLA.js.br +0 -0
  278. package/build/client/_app/immutable/entry/app.mgpIphLA.js.gz +0 -0
  279. package/build/client/_app/immutable/entry/start.BeOYgQko.js +0 -1
  280. package/build/client/_app/immutable/entry/start.BeOYgQko.js.br +0 -2
  281. package/build/client/_app/immutable/entry/start.BeOYgQko.js.gz +0 -0
  282. package/build/client/_app/immutable/nodes/1.ER8kCa8u.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/1.ER8kCa8u.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/11.etqQMTbZ.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/11.etqQMTbZ.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/13.D2C7ZhRM.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/13.D2C7ZhRM.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/14.BsMD1FMo.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/14.BsMD1FMo.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/15.BZg0-72V.js +0 -16
  291. package/build/client/_app/immutable/nodes/15.BZg0-72V.js.br +0 -0
  292. package/build/client/_app/immutable/nodes/15.BZg0-72V.js.gz +0 -0
  293. package/build/client/_app/immutable/nodes/16.CNZK2Sd5.js.br +0 -0
  294. package/build/client/_app/immutable/nodes/16.CNZK2Sd5.js.gz +0 -0
  295. package/build/client/_app/immutable/nodes/17.DnbXph3_.js.br +0 -0
  296. package/build/client/_app/immutable/nodes/17.DnbXph3_.js.gz +0 -0
  297. package/build/client/_app/immutable/nodes/19.DUkWoiIb.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/19.DUkWoiIb.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/2.Cpz-Tpy2.js +0 -1
  300. package/build/client/_app/immutable/nodes/2.Cpz-Tpy2.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/2.Cpz-Tpy2.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/20.DBQniFEt.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/20.DBQniFEt.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/21.DWPqhlKJ.js.br +0 -0
  305. package/build/client/_app/immutable/nodes/21.DWPqhlKJ.js.gz +0 -0
  306. package/build/client/_app/immutable/nodes/23.CDmYEi90.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/23.CDmYEi90.js.gz +0 -0
  308. package/build/client/_app/immutable/nodes/24.Cry95nKW.js.br +0 -0
  309. package/build/client/_app/immutable/nodes/24.Cry95nKW.js.gz +0 -0
  310. package/build/client/_app/immutable/nodes/27.CDltPd6D.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/27.CDltPd6D.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/28.HXbeDTJx.js.br +0 -0
  313. package/build/client/_app/immutable/nodes/28.HXbeDTJx.js.gz +0 -0
  314. package/build/client/_app/immutable/nodes/29.B9r1wv_8.js.br +0 -0
  315. package/build/client/_app/immutable/nodes/29.B9r1wv_8.js.gz +0 -0
  316. package/build/client/_app/immutable/nodes/3.D4JVLXS4.js.br +0 -0
  317. package/build/client/_app/immutable/nodes/3.D4JVLXS4.js.gz +0 -0
  318. package/build/client/_app/immutable/nodes/30.Bv8cJH8I.js.br +0 -0
  319. package/build/client/_app/immutable/nodes/30.Bv8cJH8I.js.gz +0 -0
  320. package/build/client/_app/immutable/nodes/5.89J4ek9w.js.br +0 -0
  321. package/build/client/_app/immutable/nodes/5.89J4ek9w.js.gz +0 -0
  322. package/build/client/_app/immutable/nodes/6.DEn0bSbE.js.br +0 -0
  323. package/build/client/_app/immutable/nodes/6.DEn0bSbE.js.gz +0 -0
  324. package/build/client/_app/immutable/nodes/7.D1Yc2D4z.js.br +0 -0
  325. package/build/client/_app/immutable/nodes/7.D1Yc2D4z.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/8.BAgBqrSM.js.br +0 -0
  327. package/build/client/_app/immutable/nodes/8.BAgBqrSM.js.gz +0 -0
  328. package/build/client/_app/immutable/nodes/9.BUj5Fhuu.js +0 -1
  329. package/build/client/_app/immutable/nodes/9.BUj5Fhuu.js.br +0 -0
  330. package/build/client/_app/immutable/nodes/9.BUj5Fhuu.js.gz +0 -0
  331. package/build/server/chunks/13-NcfCvvsm.js.map +0 -1
  332. package/build/server/chunks/14-DMIFpWXS.js.map +0 -1
  333. package/build/server/chunks/15-C6n3AtSm.js.map +0 -1
  334. package/build/server/chunks/19-Ba1cLYzj.js.map +0 -1
  335. package/build/server/chunks/2-U9WqYgoH.js.map +0 -1
  336. package/build/server/chunks/_layout.svelte-HGSVxA0R.js.map +0 -1
  337. package/build/server/chunks/_page.svelte-Bt5WuxST.js.map +0 -1
  338. package/build/server/chunks/_page.svelte-cjTi5BVx.js.map +0 -1
  339. package/build/server/chunks/_server.ts-4DY4RPVn.js.map +0 -1
  340. package/build/server/chunks/_server.ts-AE1drj36.js.map +0 -1
  341. package/build/server/chunks/_server.ts-Cjz2LZbt.js.map +0 -1
  342. package/build/server/chunks/_server.ts-gCCprE5T.js.map +0 -1
  343. package/build/server/chunks/access.server-DVG3xnR_.js.map +0 -1
  344. package/build/server/chunks/providers.server-Duyx-08B.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"8-ZfjJPjCM.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/accept-invite/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["import { fail, redirect } from \"@sveltejs/kit\";\nimport { S as SYSTEM_CONTEXT } from \"../../../chunks/context.js\";\nimport { n as getInviteStore, e as getAuthProvider, a as getOrganizationProvider, d as getUserProfileStore } from \"../../../chunks/providers.server.js\";\nimport { s as setSessionCookie } from \"../../../chunks/admin-auth.server.js\";\nimport { h as hashToken } from \"../../../chunks/token.server2.js\";\nconst load = async ({ url }) => {\n const token = url.searchParams.get(\"token\")?.trim();\n if (!token) {\n return { ok: false, reason: \"This invite link is missing a token.\" };\n }\n const invite = await getInviteStore().getByTokenHash(SYSTEM_CONTEXT, hashToken(token));\n if (!invite) {\n return { ok: false, reason: \"This invite link is invalid or has expired.\" };\n }\n const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, invite.orgId);\n const auth = getAuthProvider();\n const mode = auth.passwordAuth ? \"password\" : auth.proxyAuth && auth.createUser ? \"proxy\" : \"password\";\n return {\n ok: true,\n email: invite.email,\n orgName: org?.name ?? \"the organization\",\n token,\n mode\n };\n};\nconst actions = {\n default: async ({ request, cookies }) => {\n const data = await request.formData();\n const token = data.get(\"token\")?.trim() ?? \"\";\n const password = data.get(\"password\");\n const confirm = data.get(\"confirm\");\n const displayName = data.get(\"displayName\")?.trim() || void 0;\n if (!token) {\n return fail(400, { error: \"Missing invite token.\" });\n }\n let invite;\n try {\n invite = await getInviteStore().getByTokenHash(SYSTEM_CONTEXT, hashToken(token));\n } catch {\n return fail(500, { error: \"Could not validate the invite. Please try again.\" });\n }\n if (!invite) {\n return fail(410, { error: \"This invite link is invalid or has expired.\" });\n }\n const auth = getAuthProvider();\n const mode = auth.passwordAuth ? \"password\" : auth.proxyAuth && auth.createUser ? \"proxy\" : \"password\";\n if (mode === \"password\") {\n if (!password || password.length < 8) {\n return fail(400, { error: \"Password must be at least 8 characters.\" });\n }\n if (password !== confirm) {\n return fail(400, { error: \"Passwords do not match.\" });\n }\n }\n let user;\n try {\n if (mode === \"password\" && auth.passwordAuth) {\n user = await auth.passwordAuth.createUserWithPassword(invite.email, password);\n } else if (mode === \"proxy\" && auth.createUser) {\n user = await auth.createUser(invite.email);\n } else {\n return fail(501, { error: \"This provider does not support invite-based signup.\" });\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : \"Could not create your account.\";\n return fail(400, { error: msg });\n }\n try {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await getOrganizationProvider().addOrgMember(SYSTEM_CONTEXT, {\n orgId: invite.orgId,\n userId: user.id,\n role: invite.orgRole,\n permissions: invite.orgPermissions,\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: invite.invitedBy,\n deletedAt: null\n });\n await getInviteStore().markAccepted(SYSTEM_CONTEXT, invite.id, user.id);\n } catch (err) {\n console.error(\"[accept-invite] post-signup wiring failed\", err);\n return fail(500, {\n error: \"Your account was created, but we could not finish joining the organization. Please contact your admin.\"\n });\n }\n if (displayName) {\n try {\n await getUserProfileStore().updateProfile(SYSTEM_CONTEXT, user.id, { displayName });\n } catch {\n }\n }\n if (mode === \"password\" && auth.passwordAuth) {\n const loginResult = await auth.passwordAuth.verifyLogin(invite.email, password);\n if (loginResult.kind !== \"success\") {\n return fail(500, {\n error: \"Your account was created but login failed. Please sign in manually.\"\n });\n }\n setSessionCookie(cookies, loginResult.sessionToken);\n }\n redirect(303, \"/admin\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/accept-invite/_page.server.ts.js';\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/accept-invite/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/accept-invite/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/8.BAgBqrSM.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/ooPBmYPj.js\",\"_app/immutable/chunks/BMGykAfL.js\",\"_app/immutable/chunks/_OLpdTiI.js\",\"_app/immutable/chunks/C8ko2SLk.js\",\"_app/immutable/chunks/Gxlzmh6y.js\",\"_app/immutable/chunks/CcYNc8-G.js\",\"_app/immutable/chunks/BM4_iXSA.js\",\"_app/immutable/chunks/C1aQuqo_.js\",\"_app/immutable/chunks/D_att4ap.js\",\"_app/immutable/chunks/BXD0khLj.js\",\"_app/immutable/chunks/D0QMYypb.js\",\"_app/immutable/chunks/azBeeLR0.js\",\"_app/immutable/chunks/Bnpwcepm.js\",\"_app/immutable/chunks/BNScKugQ.js\",\"_app/immutable/chunks/BoR6OKl6.js\",\"_app/immutable/chunks/D99uXqZb.js\",\"_app/immutable/chunks/BW4xleRz.js\",\"_app/immutable/chunks/B8uG8z2c.js\",\"_app/immutable/chunks/CRRzXoPz.js\",\"_app/immutable/chunks/jFKgkeON.js\",\"_app/immutable/chunks/DEBBEmC0.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"8-Ce8EjQtB.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/accept-invite/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["import { fail, redirect } from \"@sveltejs/kit\";\nimport { S as SYSTEM_CONTEXT } from \"../../../chunks/context.js\";\nimport { n as getInviteStore, e as getAuthProvider, a as getOrganizationProvider, d as getUserProfileStore } from \"../../../chunks/providers.server.js\";\nimport { s as setSessionCookie } from \"../../../chunks/admin-auth.server.js\";\nimport { h as hashToken } from \"../../../chunks/token.server2.js\";\nconst load = async ({ url }) => {\n const token = url.searchParams.get(\"token\")?.trim();\n if (!token) {\n return { ok: false, reason: \"This invite link is missing a token.\" };\n }\n const invite = await getInviteStore().getByTokenHash(SYSTEM_CONTEXT, hashToken(token));\n if (!invite) {\n return { ok: false, reason: \"This invite link is invalid or has expired.\" };\n }\n const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, invite.orgId);\n const auth = getAuthProvider();\n const mode = auth.passwordAuth ? \"password\" : auth.proxyAuth && auth.createUser ? \"proxy\" : \"password\";\n return {\n ok: true,\n email: invite.email,\n orgName: org?.name ?? \"the organization\",\n token,\n mode\n };\n};\nconst actions = {\n default: async ({ request, cookies }) => {\n const data = await request.formData();\n const token = data.get(\"token\")?.trim() ?? \"\";\n const password = data.get(\"password\");\n const confirm = data.get(\"confirm\");\n const displayName = data.get(\"displayName\")?.trim() || void 0;\n if (!token) {\n return fail(400, { error: \"Missing invite token.\" });\n }\n let invite;\n try {\n invite = await getInviteStore().getByTokenHash(SYSTEM_CONTEXT, hashToken(token));\n } catch {\n return fail(500, { error: \"Could not validate the invite. Please try again.\" });\n }\n if (!invite) {\n return fail(410, { error: \"This invite link is invalid or has expired.\" });\n }\n const auth = getAuthProvider();\n const mode = auth.passwordAuth ? \"password\" : auth.proxyAuth && auth.createUser ? \"proxy\" : \"password\";\n if (mode === \"password\") {\n if (!password || password.length < 8) {\n return fail(400, { error: \"Password must be at least 8 characters.\" });\n }\n if (password !== confirm) {\n return fail(400, { error: \"Passwords do not match.\" });\n }\n }\n let user;\n try {\n if (mode === \"password\" && auth.passwordAuth) {\n user = await auth.passwordAuth.createUserWithPassword(invite.email, password);\n } else if (mode === \"proxy\" && auth.createUser) {\n user = await auth.createUser(invite.email);\n } else {\n return fail(501, { error: \"This provider does not support invite-based signup.\" });\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : \"Could not create your account.\";\n return fail(400, { error: msg });\n }\n try {\n const joinedAt = (/* @__PURE__ */ new Date()).toISOString();\n await getOrganizationProvider().addOrgMember(SYSTEM_CONTEXT, {\n orgId: invite.orgId,\n userId: user.id,\n role: invite.orgRole,\n permissions: invite.orgPermissions,\n joinedAt,\n updatedAt: joinedAt,\n updatedBy: invite.invitedBy,\n deletedAt: null\n });\n await getInviteStore().markAccepted(SYSTEM_CONTEXT, invite.id, user.id);\n } catch (err) {\n console.error(\"[accept-invite] post-signup wiring failed\", err);\n return fail(500, {\n error: \"Your account was created, but we could not finish joining the organization. Please contact your admin.\"\n });\n }\n if (displayName) {\n try {\n await getUserProfileStore().updateProfile(SYSTEM_CONTEXT, user.id, { displayName });\n } catch {\n }\n }\n if (mode === \"password\" && auth.passwordAuth) {\n const loginResult = await auth.passwordAuth.verifyLogin(invite.email, password);\n if (loginResult.kind !== \"success\") {\n return fail(500, {\n error: \"Your account was created but login failed. Please sign in manually.\"\n });\n }\n setSessionCookie(cookies, loginResult.sessionToken);\n }\n redirect(303, \"/admin\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/accept-invite/_page.server.ts.js';\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/accept-invite/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/accept-invite/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/8.BvaBLt60.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/ooPBmYPj.js\",\"_app/immutable/chunks/BMGykAfL.js\",\"_app/immutable/chunks/_OLpdTiI.js\",\"_app/immutable/chunks/C8ko2SLk.js\",\"_app/immutable/chunks/Gxlzmh6y.js\",\"_app/immutable/chunks/CcYNc8-G.js\",\"_app/immutable/chunks/BM4_iXSA.js\",\"_app/immutable/chunks/C1aQuqo_.js\",\"_app/immutable/chunks/B1839-Qe.js\",\"_app/immutable/chunks/BLObdRkl.js\",\"_app/immutable/chunks/D0QMYypb.js\",\"_app/immutable/chunks/azBeeLR0.js\",\"_app/immutable/chunks/Bnpwcepm.js\",\"_app/immutable/chunks/BNScKugQ.js\",\"_app/immutable/chunks/BoR6OKl6.js\",\"_app/immutable/chunks/D99uXqZb.js\",\"_app/immutable/chunks/BW4xleRz.js\",\"_app/immutable/chunks/B8uG8z2c.js\",\"_app/immutable/chunks/CRRzXoPz.js\",\"_app/immutable/chunks/jFKgkeON.js\",\"_app/immutable/chunks/DEBBEmC0.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { g as getAuthProvider } from './providers.server-Duyx-08B.js';
1
+ import { g as getAuthProvider } from './providers.server-gJvnJT_K.js';
2
2
  import { h as hasPermission } from './context-9tV9WxQ5.js';
3
3
  import './shared-server-DaWdgxVh.js';
4
4
  import 'node:url';
@@ -36,11 +36,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
36
36
 
37
37
  const index = 9;
38
38
  let component_cache;
39
- const component = async () => component_cache ??= (await import('./_page.svelte-cjTi5BVx.js')).default;
39
+ const component = async () => component_cache ??= (await import('./_page.svelte-BCCCalas.js')).default;
40
40
  const server_id = "src/routes/admin/+page.server.ts";
41
- const imports = ["_app/immutable/nodes/9.BUj5Fhuu.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/ooPBmYPj.js","_app/immutable/chunks/BMGykAfL.js","_app/immutable/chunks/_OLpdTiI.js","_app/immutable/chunks/C1aQuqo_.js","_app/immutable/chunks/CcYNc8-G.js","_app/immutable/chunks/Gxlzmh6y.js","_app/immutable/chunks/BM4_iXSA.js","_app/immutable/chunks/D_att4ap.js","_app/immutable/chunks/BXD0khLj.js","_app/immutable/chunks/D0QMYypb.js","_app/immutable/chunks/B_Lmgh7q.js","_app/immutable/chunks/wamM80bu.js","_app/immutable/chunks/BNScKugQ.js","_app/immutable/chunks/Bnpwcepm.js","_app/immutable/chunks/P4Np3c9O.js","_app/immutable/chunks/BZmrLQwT.js","_app/immutable/chunks/C8ko2SLk.js","_app/immutable/chunks/uINs3xv3.js","_app/immutable/chunks/BxCHY0iG.js","_app/immutable/chunks/BNzEBMy8.js","_app/immutable/chunks/DRDjLZb3.js"];
41
+ const imports = ["_app/immutable/nodes/9.CzG8ag1t.js","_app/immutable/chunks/DsnmJJEf.js","_app/immutable/chunks/ooPBmYPj.js","_app/immutable/chunks/BMGykAfL.js","_app/immutable/chunks/_OLpdTiI.js","_app/immutable/chunks/C1aQuqo_.js","_app/immutable/chunks/CcYNc8-G.js","_app/immutable/chunks/Gxlzmh6y.js","_app/immutable/chunks/BM4_iXSA.js","_app/immutable/chunks/B1839-Qe.js","_app/immutable/chunks/BLObdRkl.js","_app/immutable/chunks/D0QMYypb.js","_app/immutable/chunks/B_Lmgh7q.js","_app/immutable/chunks/wamM80bu.js","_app/immutable/chunks/BNScKugQ.js","_app/immutable/chunks/Bnpwcepm.js","_app/immutable/chunks/P4Np3c9O.js","_app/immutable/chunks/BZmrLQwT.js","_app/immutable/chunks/C8ko2SLk.js","_app/immutable/chunks/uINs3xv3.js","_app/immutable/chunks/BxCHY0iG.js","_app/immutable/chunks/BNzEBMy8.js","_app/immutable/chunks/DRDjLZb3.js"];
42
42
  const stylesheets = [];
43
43
  const fonts = [];
44
44
 
45
45
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
46
- //# sourceMappingURL=9-NgrtpCNf.js.map
46
+ //# sourceMappingURL=9-DghkKEyM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"9-NgrtpCNf.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["import { e as getAuthProvider } from \"../../../chunks/providers.server.js\";\nimport { h as hasPermission } from \"../../../chunks/context.js\";\nconst load = async ({ locals }) => {\n const ctx = locals.ctx;\n const canSeeUserStats = ctx ? hasPermission(ctx, \"manage_instance_users\") : false;\n const platformPermissions = ctx?.platformPermissions ?? [];\n if (!canSeeUserStats) {\n return { stats: { users: null }, platformPermissions };\n }\n try {\n const usersPage = await getAuthProvider().listUsers({ limit: 200 });\n return {\n stats: { users: usersPage?.items.length ?? null },\n platformPermissions\n };\n } catch (err) {\n if (err && typeof err === \"object\" && \"status\" in err) throw err;\n console.error(\"Failed to load admin dashboard:\", err);\n return { stats: { users: null }, platformPermissions };\n }\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/admin/_page.server.ts.js';\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/admin/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/admin/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/9.BUj5Fhuu.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/ooPBmYPj.js\",\"_app/immutable/chunks/BMGykAfL.js\",\"_app/immutable/chunks/_OLpdTiI.js\",\"_app/immutable/chunks/C1aQuqo_.js\",\"_app/immutable/chunks/CcYNc8-G.js\",\"_app/immutable/chunks/Gxlzmh6y.js\",\"_app/immutable/chunks/BM4_iXSA.js\",\"_app/immutable/chunks/D_att4ap.js\",\"_app/immutable/chunks/BXD0khLj.js\",\"_app/immutable/chunks/D0QMYypb.js\",\"_app/immutable/chunks/B_Lmgh7q.js\",\"_app/immutable/chunks/wamM80bu.js\",\"_app/immutable/chunks/BNScKugQ.js\",\"_app/immutable/chunks/Bnpwcepm.js\",\"_app/immutable/chunks/P4Np3c9O.js\",\"_app/immutable/chunks/BZmrLQwT.js\",\"_app/immutable/chunks/C8ko2SLk.js\",\"_app/immutable/chunks/uINs3xv3.js\",\"_app/immutable/chunks/BxCHY0iG.js\",\"_app/immutable/chunks/BNzEBMy8.js\",\"_app/immutable/chunks/DRDjLZb3.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,eAAe,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,KAAK;AACnF,EAAE,MAAM,mBAAmB,GAAG,GAAG,EAAE,mBAAmB,IAAI,EAAE;AAC5D,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE;AAC1D,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvE,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACvD,MAAM;AACN,KAAK;AACL,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,EAAE,MAAM,GAAG;AACpE,IAAI,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC;AACzD,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE;AAC1D,EAAE;AACF,CAAC;;;;;;;AClBW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AAEtG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACx0B,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"9-DghkKEyM.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["import { e as getAuthProvider } from \"../../../chunks/providers.server.js\";\nimport { h as hasPermission } from \"../../../chunks/context.js\";\nconst load = async ({ locals }) => {\n const ctx = locals.ctx;\n const canSeeUserStats = ctx ? hasPermission(ctx, \"manage_instance_users\") : false;\n const platformPermissions = ctx?.platformPermissions ?? [];\n if (!canSeeUserStats) {\n return { stats: { users: null }, platformPermissions };\n }\n try {\n const usersPage = await getAuthProvider().listUsers({ limit: 200 });\n return {\n stats: { users: usersPage?.items.length ?? null },\n platformPermissions\n };\n } catch (err) {\n if (err && typeof err === \"object\" && \"status\" in err) throw err;\n console.error(\"Failed to load admin dashboard:\", err);\n return { stats: { users: null }, platformPermissions };\n }\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/admin/_page.server.ts.js';\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/admin/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/admin/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/9.CzG8ag1t.js\",\"_app/immutable/chunks/DsnmJJEf.js\",\"_app/immutable/chunks/ooPBmYPj.js\",\"_app/immutable/chunks/BMGykAfL.js\",\"_app/immutable/chunks/_OLpdTiI.js\",\"_app/immutable/chunks/C1aQuqo_.js\",\"_app/immutable/chunks/CcYNc8-G.js\",\"_app/immutable/chunks/Gxlzmh6y.js\",\"_app/immutable/chunks/BM4_iXSA.js\",\"_app/immutable/chunks/B1839-Qe.js\",\"_app/immutable/chunks/BLObdRkl.js\",\"_app/immutable/chunks/D0QMYypb.js\",\"_app/immutable/chunks/B_Lmgh7q.js\",\"_app/immutable/chunks/wamM80bu.js\",\"_app/immutable/chunks/BNScKugQ.js\",\"_app/immutable/chunks/Bnpwcepm.js\",\"_app/immutable/chunks/P4Np3c9O.js\",\"_app/immutable/chunks/BZmrLQwT.js\",\"_app/immutable/chunks/C8ko2SLk.js\",\"_app/immutable/chunks/uINs3xv3.js\",\"_app/immutable/chunks/BxCHY0iG.js\",\"_app/immutable/chunks/BNzEBMy8.js\",\"_app/immutable/chunks/DRDjLZb3.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG;AACxB,EAAE,MAAM,eAAe,GAAG,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,uBAAuB,CAAC,GAAG,KAAK;AACnF,EAAE,MAAM,mBAAmB,GAAG,GAAG,EAAE,mBAAmB,IAAI,EAAE;AAC5D,EAAE,IAAI,CAAC,eAAe,EAAE;AACxB,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE;AAC1D,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvE,IAAI,OAAO;AACX,MAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACvD,MAAM;AACN,KAAK;AACL,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,EAAE,MAAM,GAAG;AACpE,IAAI,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC;AACzD,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE;AAC1D,EAAE;AACF,CAAC;;;;;;;AClBW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAwC,CAAC,EAAE;AAEtG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACx0B,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -54,7 +54,7 @@ function _layout($$renderer, $$props) {
54
54
  label: "Projects",
55
55
  icon: Folders,
56
56
  match: "prefix",
57
- show: can("instance_admin")
57
+ show: can("instance_admin") && data.platformProjectsEnabled
58
58
  },
59
59
  {
60
60
  href: "/admin/users",
@@ -102,4 +102,4 @@ function _layout($$renderer, $$props) {
102
102
  }
103
103
 
104
104
  export { _layout as default };
105
- //# sourceMappingURL=_layout.svelte-HGSVxA0R.js.map
105
+ //# sourceMappingURL=_layout.svelte-u5-cJLoF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_layout.svelte-u5-cJLoF.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/_layout.svelte.js"],"sourcesContent":["import { a2 as derived } from \"../../../chunks/renderer.js\";\nimport { A as AppHeader } from \"../../../chunks/AppHeader.js\";\nimport { S as SideNav, G as Gauge } from \"../../../chunks/SideNav.js\";\nimport { B as Building_2 } from \"../../../chunks/building-2.js\";\nimport { F as Folders } from \"../../../chunks/folders.js\";\nimport { U as Users } from \"../../../chunks/users.js\";\nimport { S as Server } from \"../../../chunks/server.js\";\nimport { S as Settings } from \"../../../chunks/settings.js\";\nimport { S as Scroll_text } from \"../../../chunks/scroll-text.js\";\nfunction _layout($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data, children } = $$props;\n const can = (p) => {\n if (data.platformPermissions.includes(\"instance_admin\")) return true;\n if (data.platformPermissions.includes(p)) return true;\n return data.orgPermissions.includes(p);\n };\n const items = derived(() => [\n { href: \"/admin\", label: \"General\", icon: Gauge, show: true },\n {\n href: \"/admin/organizations\",\n label: \"Organizations\",\n icon: Building_2,\n match: \"prefix\",\n show: can(\"instance_admin\") && data.tenancy !== \"single\"\n },\n {\n href: \"/admin/projects\",\n label: \"Projects\",\n icon: Folders,\n match: \"prefix\",\n show: can(\"instance_admin\") && data.platformProjectsEnabled\n },\n {\n href: \"/admin/users\",\n label: \"Users\",\n icon: Users,\n match: \"prefix\",\n show: can(\"manage_instance_users\")\n },\n {\n href: \"/admin/compute\",\n label: \"Compute\",\n icon: Server,\n match: \"prefix\",\n show: can(\"manage_compute\")\n },\n {\n href: \"/admin/system\",\n label: \"System\",\n icon: Settings,\n match: \"prefix\",\n show: can(\"manage_updates\")\n },\n {\n href: \"/admin/audit\",\n label: \"Audit log\",\n icon: Scroll_text,\n match: \"prefix\",\n show: can(\"instance_admin\") && data.auditAvailable\n }\n ].filter((i) => i.show));\n {\n let sidenav = function($$renderer3) {\n SideNav($$renderer3, { items: items(), eyebrow: \"Platform\" });\n };\n AppHeader($$renderer2, {\n sidenav,\n children: ($$renderer3) => {\n $$renderer3.push(`<div class=\"px-(--page-px) py-(--page-py)\">`);\n children?.($$renderer3);\n $$renderer3.push(`<!----></div>`);\n }\n });\n }\n });\n}\nexport {\n _layout as default\n};\n"],"names":[],"mappings":"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"}
@@ -53,10 +53,10 @@ function _page($$renderer, $$props) {
53
53
  const brandName = derived(() => page.data.branding.name);
54
54
  let { data } = $$props;
55
55
  const build = {
56
- hash: "d71e7c2",
57
- fullHash: "d71e7c271c7beaeb9102a0f62adb0393e0175ef1",
58
- message: "chore: bump package versions to 2.0.4 and update changelogs",
59
- date: "2026-05-15 12:42:20 +0200"
56
+ hash: "79c3e34",
57
+ fullHash: "79c3e343d49a056b591454186db999241f1dd175",
58
+ message: "chore: bump package versions to 2.0.7 and update changelogs with patch changes",
59
+ date: "2026-05-15 14:37:40 +0200"
60
60
  };
61
61
  const can = (p) => data.platformPermissions.includes("instance_admin") || data.platformPermissions.includes(p);
62
62
  const tiles = derived(() => [
@@ -165,4 +165,4 @@ function _page($$renderer, $$props) {
165
165
  }
166
166
 
167
167
  export { _page as default };
168
- //# sourceMappingURL=_page.svelte-cjTi5BVx.js.map
168
+ //# sourceMappingURL=_page.svelte-BCCCalas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-BCCCalas.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/_page.svelte.js"],"sourcesContent":["import { ac as spread_props, a5 as head, ae as stringify, a8 as ensure_array_like, a4 as attr, ad as escape_html, a2 as derived } from \"../../../chunks/renderer.js\";\nimport { p as page } from \"../../../chunks/index.js\";\nimport { S as StatCard } from \"../../../chunks/StatCard.js\";\nimport { S as SectionHeader } from \"../../../chunks/SectionHeader.js\";\nimport { C as Card, a as Card_content } from \"../../../chunks/card-content.js\";\nimport { C as Card_header, a as Card_title } from \"../../../chunks/card-title.js\";\nimport { I as Icon } from \"../../../chunks/utils3.js\";\nimport { U as Users } from \"../../../chunks/users.js\";\nimport { B as Building_2 } from \"../../../chunks/building-2.js\";\nimport { S as Server } from \"../../../chunks/server.js\";\nfunction Git_commit_horizontal($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"circle\", { \"cx\": \"12\", \"cy\": \"12\", \"r\": \"3\" }],\n [\"line\", { \"x1\": \"3\", \"x2\": \"9\", \"y1\": \"12\", \"y2\": \"12\" }],\n [\"line\", { \"x1\": \"15\", \"x2\": \"21\", \"y1\": \"12\", \"y2\": \"12\" }]\n ];\n Icon($$renderer, spread_props([{ name: \"git-commit-horizontal\" }, props, { iconNode }]));\n}\nfunction Layout_dashboard($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\n \"rect\",\n { \"width\": \"7\", \"height\": \"9\", \"x\": \"3\", \"y\": \"3\", \"rx\": \"1\" }\n ],\n [\n \"rect\",\n { \"width\": \"7\", \"height\": \"5\", \"x\": \"14\", \"y\": \"3\", \"rx\": \"1\" }\n ],\n [\n \"rect\",\n { \"width\": \"7\", \"height\": \"9\", \"x\": \"14\", \"y\": \"12\", \"rx\": \"1\" }\n ],\n [\n \"rect\",\n { \"width\": \"7\", \"height\": \"5\", \"x\": \"3\", \"y\": \"16\", \"rx\": \"1\" }\n ]\n ];\n Icon($$renderer, spread_props([{ name: \"layout-dashboard\" }, props, { iconNode }]));\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const brandName = derived(() => page.data.branding.name);\n let { data } = $$props;\n const build = {\n hash: \"79c3e34\",\n fullHash: \"79c3e343d49a056b591454186db999241f1dd175\",\n message: \"chore: bump package versions to 2.0.7 and update changelogs with patch changes\",\n date: \"2026-05-15 14:37:40 +0200\"\n };\n const can = (p) => data.platformPermissions.includes(\"instance_admin\") || data.platformPermissions.includes(p);\n const tiles = derived(() => [\n {\n href: \"/admin/users\",\n icon: Users,\n value: data.stats.users ?? \"—\",\n label: data.stats.users === null ? \"User store unavailable\" : `User${data.stats.users === 1 ? \"\" : \"s\"}`,\n show: can(\"manage_instance_users\")\n },\n {\n href: \"/admin/organizations\",\n icon: Building_2,\n value: \"Organizations\",\n label: \"All orgs on this instance\",\n show: can(\"instance_admin\")\n },\n {\n href: \"/admin/compute\",\n icon: Server,\n value: \"Compute\",\n label: \"Servers, status & config\",\n show: can(\"manage_compute\")\n },\n {\n href: \"/projects\",\n icon: Layout_dashboard,\n value: \"Content\",\n label: \"Definitions & projects\",\n show: can(\"instance_admin\")\n }\n ].filter((t) => t.show));\n head(\"1jef3w8\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Admin · General</title>`);\n });\n });\n $$renderer2.push(`<div class=\"space-y-6\">`);\n SectionHeader($$renderer2, {\n eyebrow: \"Admin\",\n title: \"General\",\n description: `At-a-glance health of this ${stringify(brandName())} instance — users, compute, and content.`\n });\n $$renderer2.push(`<!----> <div class=\"grid gap-3 sm:grid-cols-2 lg:grid-cols-3\"><!--[-->`);\n const each_array = ensure_array_like(tiles());\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let tile = each_array[$$index];\n StatCard($$renderer2, spread_props([tile]));\n }\n $$renderer2.push(`<!--]--></div> `);\n if (Card) {\n $$renderer2.push(\"<!--[-->\");\n Card($$renderer2, {\n children: ($$renderer3) => {\n if (Card_header) {\n $$renderer3.push(\"<!--[-->\");\n Card_header($$renderer3, {\n children: ($$renderer4) => {\n if (Card_title) {\n $$renderer4.push(\"<!--[-->\");\n Card_title($$renderer4, {\n class: \"flex items-center gap-2 text-sm font-medium\",\n children: ($$renderer5) => {\n Git_commit_horizontal($$renderer5, { class: \"text-muted-foreground h-4 w-4\" });\n $$renderer5.push(`<!----> Web app build`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (Card_content) {\n $$renderer3.push(\"<!--[-->\");\n Card_content($$renderer3, {\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\"><code class=\"text-foreground font-mono text-xs\"${attr(\"title\", build.fullHash)}>${escape_html(build.hash)}</code> <span class=\"text-muted-foreground text-xs\">${escape_html(build.message)}</span> <span class=\"text-muted-foreground text-xs\">${escape_html(build.date)}</span></div>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n $$renderer2.push(`</div>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -52,7 +52,7 @@ function UpdateSection($$renderer, $$props) {
52
52
  if (exitCode === null) return null;
53
53
  if (exitCode === 0) return { text: "✓ Update completed successfully", tone: "success" };
54
54
  if (exitCode === -2) return {
55
- text: "⚠ App did not respond within 90s after restart — check PM2 logs",
55
+ text: "⚠ App did not respond within 5 minutes after restart — check PM2 logs",
56
56
  tone: "destructive"
57
57
  };
58
58
  return {
@@ -298,6 +298,7 @@ function _page($$renderer, $$props) {
298
298
  ALLOW_CROSS_ORG_PUBLIC: "When on, projects can be made visible to every authenticated user on the instance, not just their own org.",
299
299
  ALLOW_ORG_COMPUTE_OVERRIDE: "When on, individual orgs can configure their own Rhino.Compute server instead of the instance pool.",
300
300
  ALLOW_ORG_CREATION: 'When on, signed-in users see a "Create organization" action. Off by default in self-hosted instances.',
301
+ ENABLE_PLATFORM_PROJECTS: "When on, the Admin → Projects surface is reachable: instance admins can create platform-owned projects and grant view/solve access to orgs or individual users. When off, the surface 404s and platform-visibility projects are hidden everywhere — existing rows are preserved.",
301
302
  ENABLE_SHARING: "When on, editors can mint per-definition share links that grant anonymous external access. When off, the mint/list/revoke routes return 404 and any previously-minted tokens stop resolving."
302
303
  };
303
304
  let updateRunning = false;
@@ -325,7 +326,7 @@ function _page($$renderer, $$props) {
325
326
  async function waitForAppRestart(previousCommit) {
326
327
  updateLogs += "\nWaiting for app to come back online…\n";
327
328
  await new Promise((r) => setTimeout(r, 2e3));
328
- const maxAttempts = 45;
329
+ const maxAttempts = 150;
329
330
  let consecutiveOk = 0;
330
331
  for (let i = 0; i < maxAttempts; i++) {
331
332
  const [health, log] = await Promise.all([fetchHealth(), fetchUpdateLog()]);
@@ -361,7 +362,7 @@ function _page($$renderer, $$props) {
361
362
  }
362
363
  const finalLog = await fetchUpdateLog();
363
364
  if (finalLog && finalLog.trim().length > 0) updateLogs = finalLog;
364
- updateLogs += "\n⚠ App did not come back within 90s — check PM2 logs.\n";
365
+ updateLogs += "\n⚠ App did not come back within 5 minutes — check PM2 logs.\n";
365
366
  updateExitCode = -2;
366
367
  updateRunning = false;
367
368
  updateRestarting = false;
@@ -542,4 +543,4 @@ function _page($$renderer, $$props) {
542
543
  }
543
544
 
544
545
  export { _page as default };
545
- //# sourceMappingURL=_page.svelte-Bt5WuxST.js.map
546
+ //# sourceMappingURL=_page.svelte-CRZeKEsV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_page.svelte-CRZeKEsV.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/system/_page.svelte.js"],"sourcesContent":["import { ac as spread_props, ad as escape_html, a6 as attr_class, ae as stringify, a5 as head, a8 as ensure_array_like } from \"../../../../chunks/renderer.js\";\nimport { C as Card, a as Card_content } from \"../../../../chunks/card-content.js\";\nimport { C as Card_header, a as Card_title } from \"../../../../chunks/card-title.js\";\nimport { C as Card_description } from \"../../../../chunks/card-description.js\";\nimport { B as Button } from \"../../../../chunks/button.js\";\nimport { I as Icon } from \"../../../../chunks/utils3.js\";\nimport { R as Root, A as Alert_dialog_content, a as Alert_dialog_header, b as Alert_dialog_title, c as Alert_dialog_description, d as Alert_dialog_footer, e as Alert_dialog_cancel, f as Alert_dialog_action } from \"../../../../chunks/index3.js\";\nimport { S as SectionHeader } from \"../../../../chunks/SectionHeader.js\";\nfunction Refresh_cw($$renderer, $$props) {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\n \"path\",\n { \"d\": \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" }\n ],\n [\"path\", { \"d\": \"M21 3v5h-5\" }],\n [\n \"path\",\n { \"d\": \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" }\n ],\n [\"path\", { \"d\": \"M8 16H3v5\" }]\n ];\n Icon($$renderer, spread_props([{ name: \"refresh-cw\" }, props, { iconNode }]));\n}\nfunction UpdateSection($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n currentVersion,\n isRunning = false,\n isRestarting = false,\n logs = \"\",\n exitCode = null,\n onRun\n } = $$props;\n let showRunConfirm = false;\n function buttonLabel() {\n if (isRestarting) return \"Restarting & verifying…\";\n if (isRunning) return \"Running…\";\n return \"Run Update\";\n }\n function statusMessage() {\n if (exitCode === null) return null;\n if (exitCode === 0) return { text: \"✓ Update completed successfully\", tone: \"success\" };\n if (exitCode === -2) return {\n text: \"⚠ App did not respond within 5 minutes after restart — check PM2 logs\",\n tone: \"destructive\"\n };\n return {\n text: `Update failed (exit code ${exitCode})`,\n tone: \"destructive\"\n };\n }\n function handleRunClick() {\n showRunConfirm = true;\n }\n function confirmRun() {\n showRunConfirm = false;\n onRun?.();\n }\n if (Card) {\n $$renderer2.push(\"<!--[-->\");\n Card($$renderer2, {\n children: ($$renderer3) => {\n if (Card_header) {\n $$renderer3.push(\"<!--[-->\");\n Card_header($$renderer3, {\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"flex items-start justify-between gap-3\">`);\n if (Card_title) {\n $$renderer4.push(\"<!--[-->\");\n Card_title($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Application Update`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (currentVersion) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<span class=\"border-border bg-muted text-muted-foreground rounded-full border px-2 py-0.5 font-mono text-xs\" title=\"Currently installed @selvajs/selva version\">v${escape_html(currentVersion)}</span>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div> `);\n if (Card_description) {\n $$renderer4.push(\"<!--[-->\");\n Card_description($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Run the update script to pull latest changes and restart`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (Card_content) {\n $$renderer3.push(\"<!--[-->\");\n Card_content($$renderer3, {\n class: \"space-y-4\",\n children: ($$renderer4) => {\n Button($$renderer4, {\n onclick: handleRunClick,\n disabled: isRunning,\n variant: \"destructive\",\n children: ($$renderer5) => {\n if (isRestarting) {\n $$renderer5.push(\"<!--[0-->\");\n Refresh_cw($$renderer5, { class: \"mr-2 h-4 w-4 animate-spin\" });\n } else {\n $$renderer5.push(\"<!--[-1-->\");\n }\n $$renderer5.push(`<!--]--> ${escape_html(buttonLabel())}`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----> `);\n if (isRestarting && exitCode === null) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"border-border bg-muted/50 text-muted-foreground flex items-center gap-2 rounded-md border px-3 py-2 text-sm\">`);\n Refresh_cw($$renderer4, { class: \"h-4 w-4 animate-spin\" });\n $$renderer4.push(`<!----> <span>PM2 is restarting the app — waiting for the new process to come online…</span></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (logs) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"space-y-2\"><h4 class=\"text-sm font-medium\">Update Logs</h4> <pre class=\"bg-muted text-foreground max-h-96 overflow-auto rounded-md p-4 font-mono text-xs\">${escape_html(logs)}</pre> `);\n if (statusMessage()) {\n $$renderer4.push(\"<!--[0-->\");\n const msg = statusMessage();\n $$renderer4.push(`<p${attr_class(`text-sm font-medium ${stringify(msg.tone === \"success\" ? \"text-success\" : msg.tone === \"destructive\" ? \"text-destructive\" : \"text-muted-foreground\")}`)}>${escape_html(msg.text)}</p>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n $$renderer2.push(` `);\n if (Root) {\n $$renderer2.push(\"<!--[-->\");\n Root($$renderer2, {\n open: showRunConfirm,\n onOpenChange: (o) => showRunConfirm = o,\n children: ($$renderer3) => {\n if (Alert_dialog_content) {\n $$renderer3.push(\"<!--[-->\");\n Alert_dialog_content($$renderer3, {\n children: ($$renderer4) => {\n if (Alert_dialog_header) {\n $$renderer4.push(\"<!--[-->\");\n Alert_dialog_header($$renderer4, {\n children: ($$renderer5) => {\n if (Alert_dialog_title) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_title($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Run Update?`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n $$renderer5.push(` `);\n if (Alert_dialog_description) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_description($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->This will pull the latest changes and restart the application. The service will be\n\t\t\t\ttemporarily unavailable.`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (Alert_dialog_footer) {\n $$renderer4.push(\"<!--[-->\");\n Alert_dialog_footer($$renderer4, {\n children: ($$renderer5) => {\n if (Alert_dialog_cancel) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_cancel($$renderer5, {\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->Cancel`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n $$renderer5.push(` `);\n if (Alert_dialog_action) {\n $$renderer5.push(\"<!--[-->\");\n Alert_dialog_action($$renderer5, {\n onclick: confirmRun,\n disabled: isRunning,\n children: ($$renderer6) => {\n $$renderer6.push(`<!---->${escape_html(isRestarting ? \"Restarting…\" : \"Continue\")}`);\n },\n $$slots: { default: true }\n });\n $$renderer5.push(\"<!--]-->\");\n } else {\n $$renderer5.push(\"<!--[!-->\");\n $$renderer5.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const flagDescriptions = {\n ALLOW_CROSS_ORG_PUBLIC: \"When on, projects can be made visible to every authenticated user on the instance, not just their own org.\",\n ALLOW_ORG_COMPUTE_OVERRIDE: \"When on, individual orgs can configure their own Rhino.Compute server instead of the instance pool.\",\n ALLOW_ORG_CREATION: 'When on, signed-in users see a \"Create organization\" action. Off by default in self-hosted instances.',\n ENABLE_PLATFORM_PROJECTS: \"When on, the Admin → Projects surface is reachable: instance admins can create platform-owned projects and grant view/solve access to orgs or individual users. When off, the surface 404s and platform-visibility projects are hidden everywhere — existing rows are preserved.\",\n ENABLE_SHARING: \"When on, editors can mint per-definition share links that grant anonymous external access. When off, the mint/list/revoke routes return 404 and any previously-minted tokens stop resolving.\"\n };\n let updateRunning = false;\n let updateLogs = \"\";\n let updateExitCode = null;\n let updateRestarting = false;\n async function fetchHealth() {\n try {\n const res = await fetch(\"/api/health\", { cache: \"no-store\" });\n if (!res.ok) return null;\n return await res.json();\n } catch {\n return null;\n }\n }\n async function fetchUpdateLog() {\n try {\n const res = await fetch(\"/admin/api/system/update\", { cache: \"no-store\" });\n if (!res.ok) return null;\n return await res.text();\n } catch {\n return null;\n }\n }\n async function waitForAppRestart(previousCommit) {\n updateLogs += \"\\nWaiting for app to come back online…\\n\";\n await new Promise((r) => setTimeout(r, 2e3));\n const maxAttempts = 150;\n let consecutiveOk = 0;\n for (let i = 0; i < maxAttempts; i++) {\n const [health, log] = await Promise.all([fetchHealth(), fetchUpdateLog()]);\n if (log && log.trim().length > 0) {\n updateLogs = log;\n }\n if (health) {\n if (previousCommit && health.commit) {\n if (health.commit !== previousCommit) {\n updateLogs += `\n✓ App is back online on new commit ${health.commit.slice(0, 7)}\n`;\n updateExitCode = 0;\n updateRunning = false;\n updateRestarting = false;\n return;\n }\n consecutiveOk = 0;\n } else {\n consecutiveOk += 1;\n if (consecutiveOk >= 2) {\n updateLogs += \"\\n✓ App is back online!\\n\";\n updateExitCode = 0;\n updateRunning = false;\n updateRestarting = false;\n return;\n }\n }\n } else {\n consecutiveOk = 0;\n }\n await new Promise((r) => setTimeout(r, 2e3));\n }\n const finalLog = await fetchUpdateLog();\n if (finalLog && finalLog.trim().length > 0) updateLogs = finalLog;\n updateLogs += \"\\n⚠ App did not come back within 5 minutes — check PM2 logs.\\n\";\n updateExitCode = -2;\n updateRunning = false;\n updateRestarting = false;\n }\n async function runUpdate() {\n updateRunning = true;\n updateRestarting = false;\n updateLogs = \"\";\n updateExitCode = null;\n const preHealth = await fetchHealth();\n const previousCommit = preHealth?.commit ?? null;\n try {\n const response = await fetch(\"/admin/api/system/update\", { method: \"POST\" });\n if (!response.ok) {\n updateLogs = \"Failed to start update process\";\n updateExitCode = response.status;\n updateRunning = false;\n return;\n }\n const reader = response.body?.getReader();\n const decoder = new TextDecoder();\n if (!reader) {\n updateLogs = \"Failed to read response\";\n updateExitCode = -1;\n updateRunning = false;\n return;\n }\n let buffer = \"\";\n let sawRestarting = false;\n let sawExit = false;\n let streamExitCode = null;\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += decoder.decode(value, { stream: true });\n const parts = buffer.split(\"\\n\\n\");\n buffer = parts.pop();\n for (const part of parts) {\n if (!part.startsWith(\"data: \")) continue;\n try {\n const event = JSON.parse(part.slice(6));\n if (event.type === \"log\") {\n updateLogs += event.data + \"\\n\";\n } else if (event.type === \"restarting\") {\n updateLogs += event.data + \"\\n\";\n updateRestarting = true;\n sawRestarting = true;\n } else if (event.type === \"exit\") {\n sawExit = true;\n streamExitCode = event.code;\n }\n } catch {\n }\n }\n }\n if (sawRestarting) {\n await waitForAppRestart(previousCommit);\n } else if (sawExit && streamExitCode === 0) {\n updateExitCode = 0;\n updateRunning = false;\n } else if (sawExit) {\n updateExitCode = streamExitCode ?? -1;\n updateRunning = false;\n } else {\n await waitForAppRestart(previousCommit);\n }\n } catch (err) {\n if (updateRestarting) {\n await waitForAppRestart(previousCommit);\n } else {\n updateLogs += \"\\nError: \" + (err instanceof Error ? err.message : \"Unknown error\");\n updateExitCode = -1;\n updateRunning = false;\n }\n }\n }\n head(\"1uq49ma\", $$renderer2, ($$renderer3) => {\n $$renderer3.title(($$renderer4) => {\n $$renderer4.push(`<title>Admin · System</title>`);\n });\n });\n $$renderer2.push(`<div class=\"space-y-6\">`);\n SectionHeader($$renderer2, {\n eyebrow: \"Admin\",\n title: \"System settings\",\n description: \"Instance-wide configuration, platform flags, and the update runner. To change platform flags, edit SELVA_FLAG_* in your .env and restart the app.\"\n });\n $$renderer2.push(`<!----> `);\n if (Card) {\n $$renderer2.push(\"<!--[-->\");\n Card($$renderer2, {\n children: ($$renderer3) => {\n if (Card_header) {\n $$renderer3.push(\"<!--[-->\");\n Card_header($$renderer3, {\n children: ($$renderer4) => {\n if (Card_title) {\n $$renderer4.push(\"<!--[-->\");\n Card_title($$renderer4, {\n class: \"text-sm font-medium\",\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Platform flags`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n $$renderer4.push(` `);\n if (Card_description) {\n $$renderer4.push(\"<!--[-->\");\n Card_description($$renderer4, {\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Resolved state of the env-driven flags that control instance behavior. To change a flag,\n\t\t\t\tedit your environment configuration and restart the app.`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(\"<!--]-->\");\n } else {\n $$renderer4.push(\"<!--[!-->\");\n $$renderer4.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n $$renderer3.push(` `);\n if (Card_content) {\n $$renderer3.push(\"<!--[-->\");\n Card_content($$renderer3, {\n children: ($$renderer4) => {\n $$renderer4.push(`<div class=\"divide-y rounded-lg border\"><!--[-->`);\n const each_array = ensure_array_like(Object.entries(data.flags));\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let [name, value] = each_array[$$index];\n $$renderer4.push(`<div class=\"flex items-start justify-between gap-4 px-4 py-3\"><div class=\"min-w-0 flex-1\"><code class=\"text-foreground font-mono text-xs\">${escape_html(name)}</code> <p class=\"text-muted-foreground mt-1 text-xs\">${escape_html(flagDescriptions[name])}</p></div> <span${attr_class(`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${value ? \"border-success/40 bg-success/10 text-success\" : \"border-border text-muted-foreground\"}`)}>${escape_html(value ? \"On\" : \"Off\")}</span></div>`);\n }\n $$renderer4.push(`<!--]--></div>`);\n },\n $$slots: { default: true }\n });\n $$renderer3.push(\"<!--]-->\");\n } else {\n $$renderer3.push(\"<!--[!-->\");\n $$renderer3.push(\"<!--]-->\");\n }\n },\n $$slots: { default: true }\n });\n $$renderer2.push(\"<!--]-->\");\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(\"<!--]-->\");\n }\n $$renderer2.push(` `);\n if (data.canManageUpdates) {\n $$renderer2.push(\"<!--[0-->\");\n UpdateSection($$renderer2, {\n currentVersion: data.version,\n isRunning: updateRunning,\n isRestarting: updateRestarting,\n logs: updateLogs,\n exitCode: updateExitCode,\n onRun: runUpdate\n });\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { M as MEMBER_ASSIGNABLE_PERMISSIONS, a as ALL_ORG_PERMISSIONS, f as OrgRoleSchema } from './context-9tV9WxQ5.js';
4
- import { c as getOrganizationProvider } from './providers.server-Duyx-08B.js';
5
- import { i as requireManageOrgMembers } from './access.server-DVG3xnR_.js';
6
- import { t as throwZodError, h as handleApiError } from './api-errors-DGHmIOGJ.js';
4
+ import { c as getOrganizationProvider } from './providers.server-gJvnJT_K.js';
5
+ import { i as requireManageOrgMembers } from './access.server-DGKSuoRH.js';
6
+ import { t as throwZodError, h as handleApiError } from './api-errors-DSza0CJv.js';
7
7
  import './shared-server-DaWdgxVh.js';
8
8
  import 'node:url';
9
9
  import 'node:path';
@@ -78,4 +78,4 @@ const PATCH = async ({ params, request, locals }) => {
78
78
  };
79
79
 
80
80
  export { PATCH };
81
- //# sourceMappingURL=_server.ts-C2YLv0RS.js.map
81
+ //# sourceMappingURL=_server.ts-07x4zjP2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C2YLv0RS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../../chunks/context.js\";\nimport { a as getOrganizationProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nconst PERMISSIONS_SCHEMA = z.array(\n z.enum(ALL_ORG_PERMISSIONS)\n);\nconst PatchSchema = z.object({\n role: OrgRoleSchema.optional(),\n permissions: PERMISSIONS_SCHEMA.optional()\n}).refine((b) => b.role !== void 0 || b.permissions !== void 0, {\n message: \"Provide at least one of role, permissions\"\n});\nconst PATCH = async ({ params, request, locals }) => {\n const { orgId, userId } = params;\n if (!orgId || !userId) throw error(400, \"Missing org ID or user ID\");\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (ctx.actingOrgId !== orgId) {\n throw error(403, \"Acting org does not match the target org.\");\n }\n const body = await request.json().catch(() => null);\n const parsed = PatchSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const patch = parsed.data;\n const orgs = getOrganizationProvider();\n const [actorMember, target] = await Promise.all([\n orgs.getOrgMember(ctx, orgId, ctx.userId),\n orgs.getOrgMember(ctx, orgId, userId)\n ]);\n if (!target) throw error(404, \"Member not found in this organization.\");\n if (!actorMember) throw error(403, \"You are not a member of this organization.\");\n if (patch.role !== void 0 && patch.role !== target.role) {\n if (actorMember.role !== \"owner\") {\n throw error(403, \"Only the org owner can change roles.\");\n }\n if (target.role === \"owner\" && patch.role !== \"owner\") {\n const page = await orgs.listOrgMembers(ctx, orgId, { limit: 200 });\n const otherOwners = page.items.filter(\n (m) => m.role === \"owner\" && m.userId !== target.userId && !m.deletedAt\n );\n if (otherOwners.length === 0) {\n throw error(\n 409,\n \"Cannot demote the sole owner of this organization. Promote another member to owner first.\"\n );\n }\n }\n await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);\n }\n if (patch.permissions !== void 0) {\n const effectiveRole = patch.role ?? target.role;\n const valid = effectiveRole === \"member\" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);\n const invalid = patch.permissions.filter((p) => !valid.has(p));\n if (invalid.length > 0) {\n throw error(\n 400,\n `Permissions [${invalid.join(\", \")}] cannot be assigned to a ${effectiveRole}.`\n );\n }\n try {\n await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);\n } catch (err) {\n handleApiError(err, \"Failed to update permissions\");\n }\n }\n return json({ success: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-07x4zjP2.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/orgs/_orgId_/members/_userId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { A as ALL_ORG_PERMISSIONS, e as OrgRoleSchema, M as MEMBER_ASSIGNABLE_PERMISSIONS } from \"../../../../../../../chunks/context.js\";\nimport { a as getOrganizationProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { i as requireManageOrgMembers } from \"../../../../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../../../../chunks/api-errors.js\";\nconst PERMISSIONS_SCHEMA = z.array(\n z.enum(ALL_ORG_PERMISSIONS)\n);\nconst PatchSchema = z.object({\n role: OrgRoleSchema.optional(),\n permissions: PERMISSIONS_SCHEMA.optional()\n}).refine((b) => b.role !== void 0 || b.permissions !== void 0, {\n message: \"Provide at least one of role, permissions\"\n});\nconst PATCH = async ({ params, request, locals }) => {\n const { orgId, userId } = params;\n if (!orgId || !userId) throw error(400, \"Missing org ID or user ID\");\n requireManageOrgMembers(locals);\n const ctx = locals.ctx;\n if (ctx.actingOrgId !== orgId) {\n throw error(403, \"Acting org does not match the target org.\");\n }\n const body = await request.json().catch(() => null);\n const parsed = PatchSchema.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const patch = parsed.data;\n const orgs = getOrganizationProvider();\n const [actorMember, target] = await Promise.all([\n orgs.getOrgMember(ctx, orgId, ctx.userId),\n orgs.getOrgMember(ctx, orgId, userId)\n ]);\n if (!target) throw error(404, \"Member not found in this organization.\");\n if (!actorMember) throw error(403, \"You are not a member of this organization.\");\n if (patch.role !== void 0 && patch.role !== target.role) {\n if (actorMember.role !== \"owner\") {\n throw error(403, \"Only the org owner can change roles.\");\n }\n if (target.role === \"owner\" && patch.role !== \"owner\") {\n const page = await orgs.listOrgMembers(ctx, orgId, { limit: 200 });\n const otherOwners = page.items.filter(\n (m) => m.role === \"owner\" && m.userId !== target.userId && !m.deletedAt\n );\n if (otherOwners.length === 0) {\n throw error(\n 409,\n \"Cannot demote the sole owner of this organization. Promote another member to owner first.\"\n );\n }\n }\n await orgs.updateOrgMemberRole(ctx, orgId, userId, patch.role);\n }\n if (patch.permissions !== void 0) {\n const effectiveRole = patch.role ?? target.role;\n const valid = effectiveRole === \"member\" ? new Set(MEMBER_ASSIGNABLE_PERMISSIONS) : new Set(ALL_ORG_PERMISSIONS);\n const invalid = patch.permissions.filter((p) => !valid.has(p));\n if (invalid.length > 0) {\n throw error(\n 400,\n `Permissions [${invalid.join(\", \")}] cannot be assigned to a ${effectiveRole}.`\n );\n }\n try {\n await orgs.updateOrgMemberPermissions(ctx, orgId, userId, patch.permissions);\n } catch (err) {\n handleApiError(err, \"Failed to update permissions\");\n }\n }\n return json({ success: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { h as getProjectProvider, P as ProviderError } from './providers.server-Duyx-08B.js';
5
- import { k as requireCanCreateProject } from './access.server-DVG3xnR_.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-DGHmIOGJ.js';
4
+ import { h as getProjectProvider, P as ProviderError } from './providers.server-gJvnJT_K.js';
5
+ import { k as requireCanCreateProject } from './access.server-DGKSuoRH.js';
6
+ import { h as handleApiError, t as throwZodError } from './api-errors-DSza0CJv.js';
7
7
  import { s as slugify } from './slug-BGuFQjqe.js';
8
8
  import { g as ProjectVisibilitySchema } from './context-9tV9WxQ5.js';
9
9
  import './shared-server-DaWdgxVh.js';
@@ -83,4 +83,4 @@ const POST = async ({ request, locals }) => {
83
83
  };
84
84
 
85
85
  export { GET, POST };
86
- //# sourceMappingURL=_server.ts-B0gZCMdj.js.map
86
+ //# sourceMappingURL=_server.ts-7mF4ytYC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-B0gZCMdj.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { b as getProjectProvider, P as ProviderError } from \"../../../../chunks/providers.server.js\";\nimport { k as requireCanCreateProject } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema } from \"../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreateProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n visibility: ProjectVisibilitySchema.default(\"private\"),\n autoJoinOnUpload: z.boolean().optional()\n});\nconst GET = async ({ locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, { limit: 200 });\n return json({ projects: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n await requireCanCreateProject(locals, ctx.actingOrgId);\n const body = await request.json().catch(() => null);\n const parsed = CreateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const autoJoinOnUpload = parsed.data.autoJoinOnUpload ?? false;\n if (autoJoinOnUpload && parsed.data.visibility !== \"public\") {\n throw error(400, \"autoJoinOnUpload requires visibility=public\");\n }\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: ctx.actingOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: parsed.data.visibility,\n ownerId: locals.user.id,\n createdBy: locals.user.id,\n updatedBy: locals.user.id,\n autoJoinOnUpload,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(ctx, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in this organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-7mF4ytYC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/projects/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { b as getProjectProvider, P as ProviderError } from \"../../../../chunks/providers.server.js\";\nimport { k as requireCanCreateProject } from \"../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../chunks/api-errors.js\";\nimport { s as slugify } from \"../../../../chunks/slug.js\";\nimport { g as ProjectVisibilitySchema } from \"../../../../chunks/context.js\";\nconst MAX_SLUG_ATTEMPTS = 25;\nfunction isSlugConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_id_slug_key/.test(err.message);\n}\nfunction isNameConflict(err) {\n return err instanceof ProviderError && err.statusCode === 409 && /projects_org_name_unique/.test(err.message);\n}\nconst CreateProjectBody = z.object({\n name: z.string().min(1, \"Project name is required\").max(128).trim(),\n description: z.string().max(2e3).optional(),\n visibility: ProjectVisibilitySchema.default(\"private\"),\n autoJoinOnUpload: z.boolean().optional()\n});\nconst GET = async ({ locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n try {\n const page = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, { limit: 200 });\n return json({ projects: page.items });\n } catch (err) {\n handleApiError(err, \"Failed to load projects\");\n }\n};\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n await requireCanCreateProject(locals, ctx.actingOrgId);\n const body = await request.json().catch(() => null);\n const parsed = CreateProjectBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n const autoJoinOnUpload = parsed.data.autoJoinOnUpload ?? false;\n if (autoJoinOnUpload && parsed.data.visibility !== \"public\") {\n throw error(400, \"autoJoinOnUpload requires visibility=public\");\n }\n const projectStore = getProjectProvider();\n const baseSlug = slugify(parsed.data.name) || \"project\";\n const now = (/* @__PURE__ */ new Date()).toISOString();\n const projectId = randomUUID();\n for (let attempt = 0; attempt < MAX_SLUG_ATTEMPTS; attempt++) {\n const slug = attempt === 0 ? baseSlug : `${baseSlug}-${attempt + 1}`;\n const project = {\n id: projectId,\n orgId: ctx.actingOrgId,\n name: parsed.data.name,\n slug,\n description: parsed.data.description,\n visibility: parsed.data.visibility,\n ownerId: locals.user.id,\n createdBy: locals.user.id,\n updatedBy: locals.user.id,\n autoJoinOnUpload,\n createdAt: now,\n updatedAt: now,\n deletedAt: null\n };\n try {\n await projectStore.createProject(ctx, project);\n return json(project, { status: 201 });\n } catch (err) {\n if (isNameConflict(err)) {\n throw error(409, \"A project with that name already exists in this organization.\");\n }\n if (isSlugConflict(err)) continue;\n handleApiError(err, \"Failed to create project\");\n }\n }\n throw error(409, \"Could not pick a unique project slug after several attempts.\");\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { z } from 'zod';
3
3
  import { randomUUID } from 'node:crypto';
4
- import { k as getPlatformProjectGrantStore, c as getOrganizationProvider, e as getUserProfileStore, h as getProjectProvider } from './providers.server-Duyx-08B.js';
5
- import { a as requireInstanceAdmin } from './access.server-DVG3xnR_.js';
6
- import { h as handleApiError, t as throwZodError } from './api-errors-DGHmIOGJ.js';
4
+ import { k as getPlatformProjectGrantStore, c as getOrganizationProvider, e as getUserProfileStore, f as flag, h as getProjectProvider } from './providers.server-gJvnJT_K.js';
5
+ import { a as requireInstanceAdmin } from './access.server-DGKSuoRH.js';
6
+ import { h as handleApiError, t as throwZodError } from './api-errors-DSza0CJv.js';
7
7
  import { S as SYSTEM_CONTEXT } from './context-9tV9WxQ5.js';
8
8
  import './shared-server-DaWdgxVh.js';
9
9
  import 'node:url';
@@ -18,6 +18,7 @@ const CreateGrantBody = z.object({
18
18
  canSolve: z.boolean()
19
19
  });
20
20
  async function assertPlatformProject(id) {
21
+ if (!flag("ENABLE_PLATFORM_PROJECTS")) throw error(404, "Not found");
21
22
  const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);
22
23
  if (!project || project.visibility !== "platform") {
23
24
  throw error(404, "Platform project not found");
@@ -69,4 +70,4 @@ const POST = async ({ params, request, locals }) => {
69
70
  };
70
71
 
71
72
  export { GET, POST };
72
- //# sourceMappingURL=_server.ts-Cjz2LZbt.js.map
73
+ //# sourceMappingURL=_server.ts-B-LWyGZ8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-B-LWyGZ8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/api/projects/_id_/grants/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { z } from \"zod\";\nimport { randomUUID } from \"node:crypto\";\nimport { c as getPlatformProjectGrantStore, a as getOrganizationProvider, d as getUserProfileStore, f as flag, b as getProjectProvider } from \"../../../../../../../chunks/providers.server.js\";\nimport { a as requireInstanceAdmin } from \"../../../../../../../chunks/access.server.js\";\nimport { h as handleApiError, t as throwZodError } from \"../../../../../../../chunks/api-errors.js\";\nimport { S as SYSTEM_CONTEXT } from \"../../../../../../../chunks/context.js\";\nconst CreateGrantBody = z.object({\n granteeType: z.enum([\"org\", \"user\"]),\n granteeId: z.string().min(1),\n canSolve: z.boolean()\n});\nasync function assertPlatformProject(id) {\n if (!flag(\"ENABLE_PLATFORM_PROJECTS\")) throw error(404, \"Not found\");\n const project = await getProjectProvider().getProject(SYSTEM_CONTEXT, id);\n if (!project || project.visibility !== \"platform\") {\n throw error(404, \"Platform project not found\");\n }\n return project;\n}\nconst GET = async ({ params, locals }) => {\n requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n try {\n await assertPlatformProject(id);\n const grants = await getPlatformProjectGrantStore().listByProject(SYSTEM_CONTEXT, id);\n return json({ grants });\n } catch (err) {\n handleApiError(err, \"Failed to list grants\");\n }\n};\nconst POST = async ({ params, request, locals }) => {\n const user = requireInstanceAdmin(locals);\n const { id } = params;\n if (!id) throw error(400, \"Missing project ID\");\n const body = await request.json().catch(() => null);\n const parsed = CreateGrantBody.safeParse(body);\n if (!parsed.success) throwZodError(parsed.error);\n try {\n await assertPlatformProject(id);\n if (parsed.data.granteeType === \"org\") {\n const org = await getOrganizationProvider().getOrg(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!org) throw error(400, `Organization '${parsed.data.granteeId}' not found`);\n } else {\n const profile = await getUserProfileStore().getProfile(SYSTEM_CONTEXT, parsed.data.granteeId);\n if (!profile) throw error(400, `User '${parsed.data.granteeId}' not found`);\n }\n const grant = {\n id: randomUUID(),\n projectId: id,\n granteeType: parsed.data.granteeType,\n granteeId: parsed.data.granteeId,\n canSolve: parsed.data.canSolve,\n createdBy: user.id,\n createdAt: (/* @__PURE__ */ new Date()).toISOString()\n };\n await getPlatformProjectGrantStore().create(SYSTEM_CONTEXT, grant);\n return json(grant, { status: 201 });\n } catch (err) {\n handleApiError(err, \"Failed to create grant\");\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { error, redirect } from '@sveltejs/kit';
2
- import { g as getAuthProvider } from './providers.server-Duyx-08B.js';
2
+ import { g as getAuthProvider } from './providers.server-gJvnJT_K.js';
3
3
  import './shared-server-DaWdgxVh.js';
4
4
  import 'node:url';
5
5
  import 'node:path';
@@ -33,4 +33,4 @@ const GET = async ({ url }) => {
33
33
  };
34
34
 
35
35
  export { GET };
36
- //# sourceMappingURL=_server.ts-CKHs57oZ.js.map
36
+ //# sourceMappingURL=_server.ts-B2zQRDbu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CKHs57oZ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/start/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { e as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nconst ALLOWED_PROVIDERS = [\"google\", \"github\", \"azure\", \"gitlab\"];\nfunction isAllowedProvider(value) {\n return value !== null && ALLOWED_PROVIDERS.includes(value);\n}\nconst GET = async ({ url }) => {\n const provider = url.searchParams.get(\"provider\");\n if (!isAllowedProvider(provider)) {\n throw error(400, `Invalid provider. Allowed: ${ALLOWED_PROVIDERS.join(\", \")}`);\n }\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const redirectTo = url.searchParams.get(\"redirectTo\") ?? \"/library\";\n const callbackUrl = new URL(\"/auth/supabase/callback\", url.origin);\n if (redirectTo.startsWith(\"/\")) {\n callbackUrl.searchParams.set(\"redirectTo\", redirectTo);\n }\n const authorizationUrl = await oauth.getOAuthAuthorizationUrl(provider, callbackUrl.toString());\n redirect(303, authorizationUrl);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjE,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,OAAO,KAAK,KAAK,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5D;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AACnD,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;AACpC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,KAAK;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yDAAyD,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU;AACrE,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC;AACpE,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClC,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;AACjG,EAAE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjC;;;;"}
1
+ {"version":3,"file":"_server.ts-B2zQRDbu.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/auth/supabase/start/_server.ts.js"],"sourcesContent":["import { error, redirect } from \"@sveltejs/kit\";\nimport { e as getAuthProvider } from \"../../../../../chunks/providers.server.js\";\nconst ALLOWED_PROVIDERS = [\"google\", \"github\", \"azure\", \"gitlab\"];\nfunction isAllowedProvider(value) {\n return value !== null && ALLOWED_PROVIDERS.includes(value);\n}\nconst GET = async ({ url }) => {\n const provider = url.searchParams.get(\"provider\");\n if (!isAllowedProvider(provider)) {\n throw error(400, `Invalid provider. Allowed: ${ALLOWED_PROVIDERS.join(\", \")}`);\n }\n const oauth = getAuthProvider().oauth;\n if (!oauth) {\n throw error(501, \"OAuth is not supported by the configured auth provider.\");\n }\n const redirectTo = url.searchParams.get(\"redirectTo\") ?? \"/library\";\n const callbackUrl = new URL(\"/auth/supabase/callback\", url.origin);\n if (redirectTo.startsWith(\"/\")) {\n callbackUrl.searchParams.set(\"redirectTo\", redirectTo);\n }\n const authorizationUrl = await oauth.getOAuthAuthorizationUrl(provider, callbackUrl.toString());\n redirect(303, authorizationUrl);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;AACjE,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,EAAE,OAAO,KAAK,KAAK,IAAI,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5D;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;AACnD,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;AACpC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC,KAAK;AACvC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,yDAAyD,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU;AACrE,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC;AACpE,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClC,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;AAC1D,EAAE;AACF,EAAE,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;AACjG,EAAE,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;AACjC;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { error, json } from '@sveltejs/kit';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { h as getProjectProvider, r as definitionService } from './providers.server-Duyx-08B.js';
4
- import { f as requireCanCreateDefinition } from './access.server-DVG3xnR_.js';
5
- import { t as throwZodError, h as handleApiError } from './api-errors-DGHmIOGJ.js';
3
+ import { h as getProjectProvider, r as definitionService } from './providers.server-gJvnJT_K.js';
4
+ import { f as requireCanCreateDefinition } from './access.server-DGKSuoRH.js';
5
+ import { t as throwZodError, h as handleApiError } from './api-errors-DSza0CJv.js';
6
6
  import { G as GH_EXTENSIONS } from './types-DxzJoaA4.js';
7
7
  import { b as CreateDefinitionInputSchema } from './context-9tV9WxQ5.js';
8
8
  import { d as MAX_GH_FILE_SIZE, e as MAX_IMAGE_FILE_SIZE } from './computeLimits-FIJ-Mzn4.js';
@@ -91,4 +91,4 @@ const POST = async ({ request, locals }) => {
91
91
  };
92
92
 
93
93
  export { POST };
94
- //# sourceMappingURL=_server.ts-BSoy1Ljl.js.map
94
+ //# sourceMappingURL=_server.ts-B6Zmqwf5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BSoy1Ljl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { b as getProjectProvider, j as definitionService } from \"../../../../chunks/providers.server.js\";\nimport { f as requireCanCreateDefinition } from \"../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../chunks/types.js\";\nimport { a as CreateDefinitionInputSchema } from \"../../../../chunks/context.js\";\nimport { d as MAX_GH_FILE_SIZE, e as MAX_IMAGE_FILE_SIZE } from \"../../../../chunks/computeLimits.js\";\nfunction parseTags(raw) {\n if (typeof raw !== \"string\" || !raw.trim()) return void 0;\n const tags = raw.split(\",\").map((t) => t.trim()).filter(Boolean);\n return tags.length ? tags : void 0;\n}\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) {\n throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n }\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const imageFile = formData.get(\"image\");\n if (imageFile instanceof File && imageFile.size > MAX_IMAGE_FILE_SIZE) {\n throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);\n }\n let projectId = formData.get(\"projectId\");\n if (typeof projectId !== \"string\" || !projectId) {\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const projectsPage = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, {\n limit: 1\n });\n const defaultProject = projectsPage.items[0];\n if (!defaultProject) throw error(500, \"No project configured\");\n projectId = defaultProject.id;\n }\n await requireCanCreateDefinition(locals, projectId);\n const parsed = CreateDefinitionInputSchema.safeParse({\n displayName: formData.get(\"displayName\"),\n description: formData.get(\"description\") || void 0,\n category: formData.get(\"category\") || void 0,\n coverImage: formData.get(\"coverImage\") || void 0,\n tags: parseTags(formData.get(\"tags\")),\n projectId,\n computeServerId: formData.get(\"computeServerId\") || void 0\n });\n if (!parsed.success) throwZodError(parsed.error);\n const fileExt = ext.slice(1);\n const guid = randomUUID();\n try {\n const fileData = new Uint8Array(await file.arrayBuffer());\n const { record, version } = await definitionService.create(\n ctx,\n {\n guid,\n projectId: parsed.data.projectId,\n ownerId: locals.user.id,\n fileExt,\n originalFilename: file.name,\n computeServerId: parsed.data.computeServerId,\n displayName: parsed.data.displayName.trim(),\n description: parsed.data.description,\n category: parsed.data.category,\n tags: parsed.data.tags,\n coverImage: parsed.data.coverImage\n },\n fileData\n );\n let coverImage = record.coverImage;\n if (imageFile instanceof File && imageFile.size > 0) {\n const imageData = new Uint8Array(await imageFile.arrayBuffer());\n coverImage = await definitionService.saveCoverImage(ctx, guid, imageData);\n }\n return json({ success: true, guid, version, coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to create definition\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-B6Zmqwf5.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/definitions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { randomUUID } from \"node:crypto\";\nimport { b as getProjectProvider, k as definitionService } from \"../../../../chunks/providers.server.js\";\nimport { f as requireCanCreateDefinition } from \"../../../../chunks/access.server.js\";\nimport { t as throwZodError, h as handleApiError } from \"../../../../chunks/api-errors.js\";\nimport { G as GH_EXTENSIONS } from \"../../../../chunks/types.js\";\nimport { a as CreateDefinitionInputSchema } from \"../../../../chunks/context.js\";\nimport { d as MAX_GH_FILE_SIZE, e as MAX_IMAGE_FILE_SIZE } from \"../../../../chunks/computeLimits.js\";\nfunction parseTags(raw) {\n if (typeof raw !== \"string\" || !raw.trim()) return void 0;\n const tags = raw.split(\",\").map((t) => t.trim()).filter(Boolean);\n return tags.length ? tags : void 0;\n}\nconst POST = async ({ request, locals }) => {\n const ctx = locals.ctx;\n const formData = await request.formData();\n const file = formData.get(\"file\");\n if (!(file instanceof File)) {\n throw error(400, \"A Grasshopper (.gh or .ghx) file is required\");\n }\n const ext = file.name.slice(file.name.lastIndexOf(\".\")).toLowerCase();\n if (!GH_EXTENSIONS.includes(ext)) {\n throw error(400, `File type not allowed. Allowed: ${GH_EXTENSIONS.join(\", \")}`);\n }\n if (file.size > MAX_GH_FILE_SIZE) {\n throw error(400, `File too large. Max size: ${MAX_GH_FILE_SIZE / (1024 * 1024)} MB`);\n }\n const imageFile = formData.get(\"image\");\n if (imageFile instanceof File && imageFile.size > MAX_IMAGE_FILE_SIZE) {\n throw error(400, `Image too large. Max size: ${MAX_IMAGE_FILE_SIZE / (1024 * 1024)} MB`);\n }\n let projectId = formData.get(\"projectId\");\n if (typeof projectId !== \"string\" || !projectId) {\n if (!ctx.actingOrgId) throw error(400, \"No active organization\");\n const projectsPage = await getProjectProvider().listProjects(ctx, ctx.actingOrgId, {\n limit: 1\n });\n const defaultProject = projectsPage.items[0];\n if (!defaultProject) throw error(500, \"No project configured\");\n projectId = defaultProject.id;\n }\n await requireCanCreateDefinition(locals, projectId);\n const parsed = CreateDefinitionInputSchema.safeParse({\n displayName: formData.get(\"displayName\"),\n description: formData.get(\"description\") || void 0,\n category: formData.get(\"category\") || void 0,\n coverImage: formData.get(\"coverImage\") || void 0,\n tags: parseTags(formData.get(\"tags\")),\n projectId,\n computeServerId: formData.get(\"computeServerId\") || void 0\n });\n if (!parsed.success) throwZodError(parsed.error);\n const fileExt = ext.slice(1);\n const guid = randomUUID();\n try {\n const fileData = new Uint8Array(await file.arrayBuffer());\n const { record, version } = await definitionService.create(\n ctx,\n {\n guid,\n projectId: parsed.data.projectId,\n ownerId: locals.user.id,\n fileExt,\n originalFilename: file.name,\n computeServerId: parsed.data.computeServerId,\n displayName: parsed.data.displayName.trim(),\n description: parsed.data.description,\n category: parsed.data.category,\n tags: parsed.data.tags,\n coverImage: parsed.data.coverImage\n },\n fileData\n );\n let coverImage = record.coverImage;\n if (imageFile instanceof File && imageFile.size > 0) {\n const imageData = new Uint8Array(await imageFile.arrayBuffer());\n coverImage = await definitionService.saveCoverImage(ctx, guid, imageData);\n }\n return json({ success: true, guid, version, coverImage });\n } catch (err) {\n handleApiError(err, \"Failed to create definition\");\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}