@openpalm/ui 0.12.0-rc.2 → 0.12.0-rc.4

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/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/4.4BLkUSeP.css +1 -0
  3. package/build/client/_app/immutable/assets/4.4BLkUSeP.css.br +0 -0
  4. package/build/client/_app/immutable/assets/4.4BLkUSeP.css.gz +0 -0
  5. package/build/client/_app/immutable/chunks/BqFl1zbV.js +5 -0
  6. package/build/client/_app/immutable/chunks/BqFl1zbV.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/BqFl1zbV.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/CmFpvFC0.js +3 -0
  9. package/build/client/_app/immutable/chunks/CmFpvFC0.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/CmFpvFC0.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/CuPMacDQ.js +1 -0
  12. package/build/client/_app/immutable/chunks/CuPMacDQ.js.br +2 -0
  13. package/build/client/_app/immutable/chunks/CuPMacDQ.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{DOWJsT_T.js → DHUWL49y.js} +1 -1
  15. package/build/client/_app/immutable/chunks/DHUWL49y.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/DHUWL49y.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{BEuC-NYT.js → DL5sMDxv.js} +1 -1
  18. package/build/client/_app/immutable/chunks/DL5sMDxv.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/DL5sMDxv.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/qjfxE7Kl.js +1 -0
  21. package/build/client/_app/immutable/chunks/qjfxE7Kl.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/qjfxE7Kl.js.gz +0 -0
  23. package/build/client/_app/immutable/entry/{app.Dgd8Sqiz.js → app.CafiV7-w.js} +2 -2
  24. package/build/client/_app/immutable/entry/app.CafiV7-w.js.br +0 -0
  25. package/build/client/_app/immutable/entry/app.CafiV7-w.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/start.D9RjvJJI.js +1 -0
  27. package/build/client/_app/immutable/entry/start.D9RjvJJI.js.br +0 -0
  28. package/build/client/_app/immutable/entry/start.D9RjvJJI.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{0.DEcud9DA.js → 0.CoKytf3n.js} +1 -1
  30. package/build/client/_app/immutable/nodes/0.CoKytf3n.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/0.CoKytf3n.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{1.DiTVmAJ4.js → 1.Bds7gMIH.js} +1 -1
  33. package/build/client/_app/immutable/nodes/1.Bds7gMIH.js.br +2 -0
  34. package/build/client/_app/immutable/nodes/1.Bds7gMIH.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/4.bkv3exaP.js +130 -0
  36. package/build/client/_app/immutable/nodes/4.bkv3exaP.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/4.bkv3exaP.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{5.WMP0f8pf.js → 5.CGnOiX1Q.js} +2 -2
  39. package/build/client/_app/immutable/nodes/5.CGnOiX1Q.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/5.CGnOiX1Q.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{6.9o6Bephx.js → 6.BW2RFNrq.js} +1 -1
  42. package/build/client/_app/immutable/nodes/6.BW2RFNrq.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/6.BW2RFNrq.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{7._N3I_xWy.js → 7.B3oQeWT9.js} +1 -1
  45. package/build/client/_app/immutable/nodes/7.B3oQeWT9.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/7.B3oQeWT9.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{8.aWZ5mSKB.js → 8.BzjCWne1.js} +1 -1
  48. package/build/client/_app/immutable/nodes/8.BzjCWne1.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/8.BzjCWne1.js.gz +0 -0
  50. package/build/client/_app/version.json +1 -1
  51. package/build/client/_app/version.json.br +1 -1
  52. package/build/client/_app/version.json.gz +0 -0
  53. package/build/server/chunks/{0-u2E6UMPO.js → 0-_Ek7fSWr.js} +3 -3
  54. package/build/server/chunks/{0-u2E6UMPO.js.map → 0-_Ek7fSWr.js.map} +1 -1
  55. package/build/server/chunks/1-DXcmr_zA.js +9 -0
  56. package/build/server/chunks/{1-BdcHiFUZ.js.map → 1-DXcmr_zA.js.map} +1 -1
  57. package/build/server/chunks/{10-DMi_4x3S.js → 10-BW3Y4qaZ.js} +4 -4
  58. package/build/server/chunks/{10-DMi_4x3S.js.map → 10-BW3Y4qaZ.js.map} +1 -1
  59. package/build/server/chunks/4-BY7QM2MS.js +9 -0
  60. package/build/server/chunks/{4-siztlnPA.js.map → 4-BY7QM2MS.js.map} +1 -1
  61. package/build/server/chunks/5-P-f6Al-B.js +9 -0
  62. package/build/server/chunks/{5-DR1iBcbj.js.map → 5-P-f6Al-B.js.map} +1 -1
  63. package/build/server/chunks/6-BHZeYa5G.js +9 -0
  64. package/build/server/chunks/{6-BdZadUUO.js.map → 6-BHZeYa5G.js.map} +1 -1
  65. package/build/server/chunks/7-eE6c3_3B.js +9 -0
  66. package/build/server/chunks/{7-CjmZOzkF.js.map → 7-eE6c3_3B.js.map} +1 -1
  67. package/build/server/chunks/{8-DVpEHTHq.js → 8-DJTatpgo.js} +3 -3
  68. package/build/server/chunks/{8-DVpEHTHq.js.map → 8-DJTatpgo.js.map} +1 -1
  69. package/build/server/chunks/{ChatMessage-BNxQgrRW.js → ChatMessage-DqfLIJ0l.js} +2 -2
  70. package/build/server/chunks/{ChatMessage-BNxQgrRW.js.map → ChatMessage-DqfLIJ0l.js.map} +1 -1
  71. package/build/server/chunks/{Navbar-UVOusnw-.js → Navbar-BUZwbKR7.js} +4 -4
  72. package/build/server/chunks/{Navbar-UVOusnw-.js.map → Navbar-BUZwbKR7.js.map} +1 -1
  73. package/build/server/chunks/{_layout.svelte-DKvvz-xQ.js → _layout.svelte-CFKjimed.js} +2 -2
  74. package/build/server/chunks/{_layout.svelte-DKvvz-xQ.js.map → _layout.svelte-CFKjimed.js.map} +1 -1
  75. package/build/server/chunks/{_page.svelte-CMyq-t3Q.js → _page.svelte-BGI4E82g.js} +185 -32
  76. package/build/server/chunks/_page.svelte-BGI4E82g.js.map +1 -0
  77. package/build/server/chunks/{_page.svelte-B5xh8SJ5.js → _page.svelte-BNJwzskB.js} +7 -7
  78. package/build/server/chunks/{_page.svelte-B5xh8SJ5.js.map → _page.svelte-BNJwzskB.js.map} +1 -1
  79. package/build/server/chunks/{_page.svelte-w4SS3sVN.js → _page.svelte-BqrpD9EJ.js} +6 -6
  80. package/build/server/chunks/{_page.svelte-w4SS3sVN.js.map → _page.svelte-BqrpD9EJ.js.map} +1 -1
  81. package/build/server/chunks/{_page.svelte-B7FQDg28.js → _page.svelte-CLi7npId.js} +6 -6
  82. package/build/server/chunks/{_page.svelte-B7FQDg28.js.map → _page.svelte-CLi7npId.js.map} +1 -1
  83. package/build/server/chunks/{_page.svelte-D4Zivreu.js → _page.svelte-Da2QrUlJ.js} +3 -3
  84. package/build/server/chunks/{_page.svelte-D4Zivreu.js.map → _page.svelte-Da2QrUlJ.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-C_c_15ac.js → _server.ts--5gGceMl.js} +5 -5
  86. package/build/server/chunks/{_server.ts-C_c_15ac.js.map → _server.ts--5gGceMl.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-B7Fkprd8.js → _server.ts-4J6w-r81.js} +2 -2
  88. package/build/server/chunks/{_server.ts-B7Fkprd8.js.map → _server.ts-4J6w-r81.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-Bf3mh1Vw.js → _server.ts-8PqopElV.js} +5 -5
  90. package/build/server/chunks/{_server.ts-Bf3mh1Vw.js.map → _server.ts-8PqopElV.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-DPpj-ZUv.js → _server.ts-B28oMCZG.js} +5 -5
  92. package/build/server/chunks/{_server.ts-DPpj-ZUv.js.map → _server.ts-B28oMCZG.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-CfAx4ndA.js → _server.ts-B2veS97o.js} +5 -5
  94. package/build/server/chunks/{_server.ts-CfAx4ndA.js.map → _server.ts-B2veS97o.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-bClum6wa.js → _server.ts-B6X0dkuW.js} +5 -5
  96. package/build/server/chunks/{_server.ts-bClum6wa.js.map → _server.ts-B6X0dkuW.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-B1Ka3iiX.js → _server.ts-B9U_bYQy.js} +6 -6
  98. package/build/server/chunks/{_server.ts-B1Ka3iiX.js.map → _server.ts-B9U_bYQy.js.map} +1 -1
  99. package/build/server/chunks/{_server.ts-BHIqLHCr.js → _server.ts-BDjrSCF8.js} +2 -2
  100. package/build/server/chunks/{_server.ts-BHIqLHCr.js.map → _server.ts-BDjrSCF8.js.map} +1 -1
  101. package/build/server/chunks/{_server.ts-gLH0uvQH.js → _server.ts-BHJzuoOM.js} +6 -6
  102. package/build/server/chunks/{_server.ts-gLH0uvQH.js.map → _server.ts-BHJzuoOM.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-748DtXrC.js → _server.ts-BI3XQ7Fe.js} +5 -5
  104. package/build/server/chunks/{_server.ts-748DtXrC.js.map → _server.ts-BI3XQ7Fe.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-BR_JejQG.js → _server.ts-BLyLxx8a.js} +5 -5
  106. package/build/server/chunks/{_server.ts-BR_JejQG.js.map → _server.ts-BLyLxx8a.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-CN8iu9En.js → _server.ts-BNqC9EUT.js} +5 -5
  108. package/build/server/chunks/{_server.ts-CN8iu9En.js.map → _server.ts-BNqC9EUT.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-CCEnPIKA.js → _server.ts-BP--7Yt5.js} +5 -5
  110. package/build/server/chunks/{_server.ts-CCEnPIKA.js.map → _server.ts-BP--7Yt5.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-6sLoCHl6.js → _server.ts-BTG7yKQJ.js} +5 -5
  112. package/build/server/chunks/{_server.ts-6sLoCHl6.js.map → _server.ts-BTG7yKQJ.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-DQP6uEx5.js → _server.ts-BVvTNLyM.js} +5 -5
  114. package/build/server/chunks/{_server.ts-DQP6uEx5.js.map → _server.ts-BVvTNLyM.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-CDLW9TPG.js → _server.ts-BddFxHWB.js} +6 -6
  116. package/build/server/chunks/{_server.ts-CDLW9TPG.js.map → _server.ts-BddFxHWB.js.map} +1 -1
  117. package/build/server/chunks/{_server.ts-CzTX8a_p.js → _server.ts-BiL6n-uG.js} +5 -5
  118. package/build/server/chunks/{_server.ts-CzTX8a_p.js.map → _server.ts-BiL6n-uG.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-BhzFTv-h.js → _server.ts-Bnc-nxXp.js} +6 -6
  120. package/build/server/chunks/{_server.ts-BhzFTv-h.js.map → _server.ts-Bnc-nxXp.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-D2tkCP8q.js → _server.ts-BobwONzr.js} +5 -5
  122. package/build/server/chunks/{_server.ts-D2tkCP8q.js.map → _server.ts-BobwONzr.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-C9E9tYAO.js → _server.ts-BpNoIDkC.js} +5 -5
  124. package/build/server/chunks/{_server.ts-C9E9tYAO.js.map → _server.ts-BpNoIDkC.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-Dr6ShsbQ.js → _server.ts-BqBnHeP7.js} +5 -5
  126. package/build/server/chunks/{_server.ts-Dr6ShsbQ.js.map → _server.ts-BqBnHeP7.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-Dpk6ddyU.js → _server.ts-Bqs67HUU.js} +7 -7
  128. package/build/server/chunks/{_server.ts-Dpk6ddyU.js.map → _server.ts-Bqs67HUU.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-DT8fIE9B.js → _server.ts-BteARe-C.js} +5 -5
  130. package/build/server/chunks/{_server.ts-DT8fIE9B.js.map → _server.ts-BteARe-C.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-BdN5NtL4.js → _server.ts-Bx9WEYbj.js} +5 -5
  132. package/build/server/chunks/{_server.ts-BdN5NtL4.js.map → _server.ts-Bx9WEYbj.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-BaTXv_bR.js → _server.ts-C1ZgpST1.js} +5 -5
  134. package/build/server/chunks/{_server.ts-BaTXv_bR.js.map → _server.ts-C1ZgpST1.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-BEgkYvNh.js → _server.ts-C5bfYlSP.js} +5 -5
  136. package/build/server/chunks/{_server.ts-BEgkYvNh.js.map → _server.ts-C5bfYlSP.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-CILn0WEi.js → _server.ts-C77r_Slf.js} +5 -5
  138. package/build/server/chunks/{_server.ts-CILn0WEi.js.map → _server.ts-C77r_Slf.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-CxWx02dy.js → _server.ts-CK46ky8H.js} +5 -5
  140. package/build/server/chunks/_server.ts-CK46ky8H.js.map +1 -0
  141. package/build/server/chunks/{_server.ts-Ts6pcZ0d.js → _server.ts-CKF9vpjm.js} +5 -5
  142. package/build/server/chunks/{_server.ts-Ts6pcZ0d.js.map → _server.ts-CKF9vpjm.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-DsbN7dr7.js → _server.ts-CPmZZ9aQ.js} +5 -5
  144. package/build/server/chunks/{_server.ts-DsbN7dr7.js.map → _server.ts-CPmZZ9aQ.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-CgPqNf7-.js → _server.ts-CTMjNL2a.js} +5 -5
  146. package/build/server/chunks/{_server.ts-CgPqNf7-.js.map → _server.ts-CTMjNL2a.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-MJdHZvPF.js → _server.ts-CTQGj2tV.js} +5 -5
  148. package/build/server/chunks/_server.ts-CTQGj2tV.js.map +1 -0
  149. package/build/server/chunks/{_server.ts-DMTF4KjV.js → _server.ts-CVV2PdRo.js} +2 -2
  150. package/build/server/chunks/{_server.ts-DMTF4KjV.js.map → _server.ts-CVV2PdRo.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-CV30eOSb.js → _server.ts-CWFma6OW.js} +6 -6
  152. package/build/server/chunks/{_server.ts-CV30eOSb.js.map → _server.ts-CWFma6OW.js.map} +1 -1
  153. package/build/server/chunks/{_server.ts-C3ic1HZf.js → _server.ts-CaocPhJi.js} +5 -5
  154. package/build/server/chunks/{_server.ts-C3ic1HZf.js.map → _server.ts-CaocPhJi.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-Cscu5y6A.js → _server.ts-CfJR6lH-.js} +6 -6
  156. package/build/server/chunks/{_server.ts-Cscu5y6A.js.map → _server.ts-CfJR6lH-.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-CZ9rxA09.js → _server.ts-ClwJWqVa.js} +5 -5
  158. package/build/server/chunks/{_server.ts-CZ9rxA09.js.map → _server.ts-ClwJWqVa.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-CTKPnd64.js → _server.ts-CrY-tcDK.js} +7 -7
  160. package/build/server/chunks/{_server.ts-CTKPnd64.js.map → _server.ts-CrY-tcDK.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-op5C3XGb.js → _server.ts-Cs8lC4CS.js} +6 -6
  162. package/build/server/chunks/{_server.ts-op5C3XGb.js.map → _server.ts-Cs8lC4CS.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-DEV3GiN8.js → _server.ts-CxBdr3hE.js} +5 -5
  164. package/build/server/chunks/{_server.ts-DEV3GiN8.js.map → _server.ts-CxBdr3hE.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-RagJb3I4.js → _server.ts-D-u20jUU.js} +5 -5
  166. package/build/server/chunks/{_server.ts-RagJb3I4.js.map → _server.ts-D-u20jUU.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-Djimbzpw.js → _server.ts-D9dsMRF-.js} +7 -7
  168. package/build/server/chunks/{_server.ts-Djimbzpw.js.map → _server.ts-D9dsMRF-.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-D5WwDggN.js → _server.ts-DAQcUe9k.js} +5 -5
  170. package/build/server/chunks/{_server.ts-D5WwDggN.js.map → _server.ts-DAQcUe9k.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-BMeLIoiB.js → _server.ts-DAlXBvhR.js} +6 -6
  172. package/build/server/chunks/{_server.ts-BMeLIoiB.js.map → _server.ts-DAlXBvhR.js.map} +1 -1
  173. package/build/server/chunks/_server.ts-DC8kKPsd.js +81 -0
  174. package/build/server/chunks/_server.ts-DC8kKPsd.js.map +1 -0
  175. package/build/server/chunks/{_server.ts-Cs7f-gaR.js → _server.ts-DGUVJH31.js} +6 -6
  176. package/build/server/chunks/{_server.ts-Cs7f-gaR.js.map → _server.ts-DGUVJH31.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-DFhNnn-G.js → _server.ts-DHfTcOkp.js} +5 -5
  178. package/build/server/chunks/{_server.ts-DFhNnn-G.js.map → _server.ts-DHfTcOkp.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-CCtCwyZb.js → _server.ts-DMH-RbZr.js} +6 -6
  180. package/build/server/chunks/{_server.ts-CCtCwyZb.js.map → _server.ts-DMH-RbZr.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-CSN60plL.js → _server.ts-DP2uRN66.js} +2 -2
  182. package/build/server/chunks/{_server.ts-CSN60plL.js.map → _server.ts-DP2uRN66.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-JPsLUf_g.js → _server.ts-DR2bRoGJ.js} +5 -5
  184. package/build/server/chunks/{_server.ts-JPsLUf_g.js.map → _server.ts-DR2bRoGJ.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-DjJu23jV.js → _server.ts-DX2VL0w3.js} +5 -5
  186. package/build/server/chunks/{_server.ts-DjJu23jV.js.map → _server.ts-DX2VL0w3.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-Dv7xll_B.js → _server.ts-DY0Tkqlv.js} +6 -6
  188. package/build/server/chunks/{_server.ts-Dv7xll_B.js.map → _server.ts-DY0Tkqlv.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-zUZknmZx.js → _server.ts-DZ5v5q0V.js} +6 -6
  190. package/build/server/chunks/{_server.ts-zUZknmZx.js.map → _server.ts-DZ5v5q0V.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-BCKweCGM.js → _server.ts-DZlNWTv1.js} +4 -4
  192. package/build/server/chunks/{_server.ts-BCKweCGM.js.map → _server.ts-DZlNWTv1.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-DPw4QRWb.js → _server.ts-D_5BJC_z.js} +5 -5
  194. package/build/server/chunks/{_server.ts-DPw4QRWb.js.map → _server.ts-D_5BJC_z.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-BSxbdNXo.js → _server.ts-Da_AbetR.js} +5 -5
  196. package/build/server/chunks/{_server.ts-BSxbdNXo.js.map → _server.ts-Da_AbetR.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-BkxwpAv2.js → _server.ts-DbEaJJqa.js} +5 -5
  198. package/build/server/chunks/{_server.ts-BkxwpAv2.js.map → _server.ts-DbEaJJqa.js.map} +1 -1
  199. package/build/server/chunks/_server.ts-DnC_IrzP.js +78 -0
  200. package/build/server/chunks/_server.ts-DnC_IrzP.js.map +1 -0
  201. package/build/server/chunks/{_server.ts-Cc-c2ehY.js → _server.ts-DpAumRrq.js} +5 -5
  202. package/build/server/chunks/{_server.ts-Cc-c2ehY.js.map → _server.ts-DpAumRrq.js.map} +1 -1
  203. package/build/server/chunks/_server.ts-Dq1UL_W-.js +89 -0
  204. package/build/server/chunks/_server.ts-Dq1UL_W-.js.map +1 -0
  205. package/build/server/chunks/{_server.ts-Ieve8Oxl.js → _server.ts-DuDeloL8.js} +8 -8
  206. package/build/server/chunks/{_server.ts-Ieve8Oxl.js.map → _server.ts-DuDeloL8.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-BiwKKu1y.js → _server.ts-EZhgk1ej.js} +5 -5
  208. package/build/server/chunks/{_server.ts-BiwKKu1y.js.map → _server.ts-EZhgk1ej.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-DAv3C7oW.js → _server.ts-J-kbq-R4.js} +5 -5
  210. package/build/server/chunks/{_server.ts-DAv3C7oW.js.map → _server.ts-J-kbq-R4.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-BXOIslIH.js → _server.ts-MkaNzvkX.js} +5 -5
  212. package/build/server/chunks/{_server.ts-BXOIslIH.js.map → _server.ts-MkaNzvkX.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-lmfAKx6b.js → _server.ts-NKH2c4tC.js} +7 -7
  214. package/build/server/chunks/{_server.ts-lmfAKx6b.js.map → _server.ts-NKH2c4tC.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-B4WEAp6B.js → _server.ts-UDLeVWXU.js} +18 -6
  216. package/build/server/chunks/_server.ts-UDLeVWXU.js.map +1 -0
  217. package/build/server/chunks/{_server.ts-DRpXmKSI.js → _server.ts-X8_yz_cF.js} +6 -6
  218. package/build/server/chunks/{_server.ts-DRpXmKSI.js.map → _server.ts-X8_yz_cF.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-B2kJ3mfg.js → _server.ts-XqgZHMH_.js} +7 -7
  220. package/build/server/chunks/{_server.ts-B2kJ3mfg.js.map → _server.ts-XqgZHMH_.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-BFp9Fobi.js → _server.ts-YAPI25bu.js} +4 -4
  222. package/build/server/chunks/{_server.ts-BFp9Fobi.js.map → _server.ts-YAPI25bu.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-QdyZiBuA.js → _server.ts-_7nvJE2X.js} +5 -5
  224. package/build/server/chunks/{_server.ts-QdyZiBuA.js.map → _server.ts-_7nvJE2X.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-Cwuo2EyS.js → _server.ts-aC8GMqDc.js} +5 -5
  226. package/build/server/chunks/{_server.ts-Cwuo2EyS.js.map → _server.ts-aC8GMqDc.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-B_du9gRB.js → _server.ts-dRdq38xL.js} +5 -5
  228. package/build/server/chunks/{_server.ts-B_du9gRB.js.map → _server.ts-dRdq38xL.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-VuZwBycD.js → _server.ts-f-vnJ7Ie.js} +5 -5
  230. package/build/server/chunks/{_server.ts-VuZwBycD.js.map → _server.ts-f-vnJ7Ie.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-CMytohFo.js → _server.ts-fCMXRvRH.js} +5 -5
  232. package/build/server/chunks/{_server.ts-CMytohFo.js.map → _server.ts-fCMXRvRH.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-4Pwhm5iv.js → _server.ts-fn52Uf3f.js} +5 -5
  234. package/build/server/chunks/{_server.ts-4Pwhm5iv.js.map → _server.ts-fn52Uf3f.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-B25xvhiX.js → _server.ts-iw5QZKgP.js} +5 -5
  236. package/build/server/chunks/{_server.ts-B25xvhiX.js.map → _server.ts-iw5QZKgP.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-Byc_SyKx.js → _server.ts-lU516yVf.js} +5 -5
  238. package/build/server/chunks/{_server.ts-Byc_SyKx.js.map → _server.ts-lU516yVf.js.map} +1 -1
  239. package/build/server/chunks/_server.ts-mDvjMxar.js +64 -0
  240. package/build/server/chunks/_server.ts-mDvjMxar.js.map +1 -0
  241. package/build/server/chunks/{_server.ts-5cUQFkT_.js → _server.ts-n_99rmOB.js} +2 -2
  242. package/build/server/chunks/{_server.ts-5cUQFkT_.js.map → _server.ts-n_99rmOB.js.map} +1 -1
  243. package/build/server/chunks/{_server.ts-9zKJx2eV.js → _server.ts-pJnbal79.js} +5 -5
  244. package/build/server/chunks/{_server.ts-9zKJx2eV.js.map → _server.ts-pJnbal79.js.map} +1 -1
  245. package/build/server/chunks/{_server.ts-DY4maxIB.js → _server.ts-rEZaxK90.js} +6 -6
  246. package/build/server/chunks/{_server.ts-DY4maxIB.js.map → _server.ts-rEZaxK90.js.map} +1 -1
  247. package/build/server/chunks/{_server.ts-DE_dFybU.js → _server.ts-tyT3Bjv3.js} +7 -7
  248. package/build/server/chunks/{_server.ts-DE_dFybU.js.map → _server.ts-tyT3Bjv3.js.map} +1 -1
  249. package/build/server/chunks/{_server.ts-MORzCMU7.js → _server.ts-ug73AQNb.js} +5 -5
  250. package/build/server/chunks/{_server.ts-MORzCMU7.js.map → _server.ts-ug73AQNb.js.map} +1 -1
  251. package/build/server/chunks/{_server.ts-D4B9IkKh.js → _server.ts-ugLDRTpb.js} +5 -5
  252. package/build/server/chunks/{_server.ts-D4B9IkKh.js.map → _server.ts-ugLDRTpb.js.map} +1 -1
  253. package/build/server/chunks/{addon-helpers-CoPzjA3s.js → addon-helpers-CkQjHBvL.js} +3 -3
  254. package/build/server/chunks/{addon-helpers-CoPzjA3s.js.map → addon-helpers-CkQjHBvL.js.map} +1 -1
  255. package/build/server/chunks/{akm-BS59M7h3.js → akm-_cUsiv9b.js} +2 -2
  256. package/build/server/chunks/{akm-BS59M7h3.js.map → akm-_cUsiv9b.js.map} +1 -1
  257. package/build/server/chunks/{catalog-DAQWike4.js → catalog-CVQgQDZT.js} +5 -5
  258. package/build/server/chunks/{catalog-DAQWike4.js.map → catalog-CVQgQDZT.js.map} +1 -1
  259. package/build/server/chunks/{client-B3vN-Uvc.js → client-CK_EEC7q.js} +2 -2
  260. package/build/server/chunks/{client-B3vN-Uvc.js.map → client-CK_EEC7q.js.map} +1 -1
  261. package/build/server/chunks/{config-Bdb4ZTos.js → config-CW8zrJxw.js} +2 -2
  262. package/build/server/chunks/{config-Bdb4ZTos.js.map → config-CW8zrJxw.js.map} +1 -1
  263. package/build/server/chunks/{docker-DaU_SNhi.js → docker-BxDkWUiU.js} +2 -2
  264. package/build/server/chunks/{docker-DaU_SNhi.js.map → docker-BxDkWUiU.js.map} +1 -1
  265. package/build/server/chunks/{endpoints-1byh0xs8.js → endpoints-C9sjcucN.js} +2 -2
  266. package/build/server/chunks/{endpoints-1byh0xs8.js.map → endpoints-C9sjcucN.js.map} +1 -1
  267. package/build/server/chunks/{environment-BQh6a8iU.js → environment-D344CnXa.js} +2 -2
  268. package/build/server/chunks/{environment-BQh6a8iU.js.map → environment-D344CnXa.js.map} +1 -1
  269. package/build/server/chunks/{error.svelte-CEj0_dRA.js → error.svelte-CI7YrCLE.js} +4 -4
  270. package/build/server/chunks/{error.svelte-CEj0_dRA.js.map → error.svelte-CI7YrCLE.js.map} +1 -1
  271. package/build/server/chunks/{helpers-Be-wOei2.js → helpers-Bebo0tHj.js} +3 -3
  272. package/build/server/chunks/{helpers-Be-wOei2.js.map → helpers-Bebo0tHj.js.map} +1 -1
  273. package/build/server/chunks/{hooks.server-DlA1ck_e.js → hooks.server-ixIaeil8.js} +6 -6
  274. package/build/server/chunks/{hooks.server-DlA1ck_e.js.map → hooks.server-ixIaeil8.js.map} +1 -1
  275. package/build/server/chunks/{http-BbFgukqs.js → http-B9H_dpeX.js} +2 -2
  276. package/build/server/chunks/{http-BbFgukqs.js.map → http-B9H_dpeX.js.map} +1 -1
  277. package/build/server/chunks/{internal-CP-qQJfY.js → internal-Da04QZzQ.js} +3 -3
  278. package/build/server/chunks/{internal-CP-qQJfY.js.map → internal-Da04QZzQ.js.map} +1 -1
  279. package/build/server/chunks/{session-cookie-C-kIy9pI.js → session-cookie-DI4jIKdM.js} +2 -2
  280. package/build/server/chunks/{session-cookie-C-kIy9pI.js.map → session-cookie-DI4jIKdM.js.map} +1 -1
  281. package/build/server/chunks/{setup-deploy-BL_wmz6j.js → setup-deploy-NZRJZiNw.js} +2 -2
  282. package/build/server/chunks/{setup-deploy-BL_wmz6j.js.map → setup-deploy-NZRJZiNw.js.map} +1 -1
  283. package/build/server/chunks/{src-BEj0DuSB.js → src-kpR902Zr.js} +542 -122
  284. package/build/server/chunks/src-kpR902Zr.js.map +1 -0
  285. package/build/server/chunks/{state-DAPDF26p.js → state-TG4xDwlK.js} +2 -2
  286. package/build/server/chunks/{state-DAPDF26p.js.map → state-TG4xDwlK.js.map} +1 -1
  287. package/build/server/chunks/{state2-3fEu-ReG.js → state2-BqCIx1V7.js} +2 -2
  288. package/build/server/chunks/{state2-3fEu-ReG.js.map → state2-BqCIx1V7.js.map} +1 -1
  289. package/build/server/chunks/{theme-state.svelte-CUVpUHOv.js → theme-state.svelte-8qSluhfu.js} +35 -4
  290. package/build/server/chunks/theme-state.svelte-8qSluhfu.js.map +1 -0
  291. package/build/server/index.js +2 -2
  292. package/build/server/manifest.js +117 -89
  293. package/build/server/manifest.js.map +1 -1
  294. package/package.json +2 -2
  295. package/build/client/_app/immutable/assets/4.D-9LGiQD.css +0 -1
  296. package/build/client/_app/immutable/assets/4.D-9LGiQD.css.br +0 -0
  297. package/build/client/_app/immutable/assets/4.D-9LGiQD.css.gz +0 -0
  298. package/build/client/_app/immutable/chunks/B7L0wlSY.js +0 -1
  299. package/build/client/_app/immutable/chunks/B7L0wlSY.js.br +0 -2
  300. package/build/client/_app/immutable/chunks/B7L0wlSY.js.gz +0 -0
  301. package/build/client/_app/immutable/chunks/BEuC-NYT.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/BEuC-NYT.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/BXh0hlRI.js +0 -1
  304. package/build/client/_app/immutable/chunks/BXh0hlRI.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/BXh0hlRI.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/DHRKaBFV.js +0 -3
  307. package/build/client/_app/immutable/chunks/DHRKaBFV.js.br +0 -0
  308. package/build/client/_app/immutable/chunks/DHRKaBFV.js.gz +0 -0
  309. package/build/client/_app/immutable/chunks/DOWJsT_T.js.br +0 -0
  310. package/build/client/_app/immutable/chunks/DOWJsT_T.js.gz +0 -0
  311. package/build/client/_app/immutable/chunks/DkCRM8d5.js +0 -5
  312. package/build/client/_app/immutable/chunks/DkCRM8d5.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/DkCRM8d5.js.gz +0 -0
  314. package/build/client/_app/immutable/entry/app.Dgd8Sqiz.js.br +0 -0
  315. package/build/client/_app/immutable/entry/app.Dgd8Sqiz.js.gz +0 -0
  316. package/build/client/_app/immutable/entry/start.DN4LafZw.js +0 -1
  317. package/build/client/_app/immutable/entry/start.DN4LafZw.js.br +0 -1
  318. package/build/client/_app/immutable/entry/start.DN4LafZw.js.gz +0 -0
  319. package/build/client/_app/immutable/nodes/0.DEcud9DA.js.br +0 -0
  320. package/build/client/_app/immutable/nodes/0.DEcud9DA.js.gz +0 -0
  321. package/build/client/_app/immutable/nodes/1.DiTVmAJ4.js.br +0 -3
  322. package/build/client/_app/immutable/nodes/1.DiTVmAJ4.js.gz +0 -0
  323. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js +0 -121
  324. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js.br +0 -0
  325. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/5.WMP0f8pf.js.br +0 -0
  327. package/build/client/_app/immutable/nodes/5.WMP0f8pf.js.gz +0 -0
  328. package/build/client/_app/immutable/nodes/6.9o6Bephx.js.br +0 -0
  329. package/build/client/_app/immutable/nodes/6.9o6Bephx.js.gz +0 -0
  330. package/build/client/_app/immutable/nodes/7._N3I_xWy.js.br +0 -0
  331. package/build/client/_app/immutable/nodes/7._N3I_xWy.js.gz +0 -0
  332. package/build/client/_app/immutable/nodes/8.aWZ5mSKB.js.br +0 -0
  333. package/build/client/_app/immutable/nodes/8.aWZ5mSKB.js.gz +0 -0
  334. package/build/server/chunks/1-BdcHiFUZ.js +0 -9
  335. package/build/server/chunks/4-siztlnPA.js +0 -9
  336. package/build/server/chunks/5-DR1iBcbj.js +0 -9
  337. package/build/server/chunks/6-BdZadUUO.js +0 -9
  338. package/build/server/chunks/7-CjmZOzkF.js +0 -9
  339. package/build/server/chunks/_page.svelte-CMyq-t3Q.js.map +0 -1
  340. package/build/server/chunks/_server.ts-B4WEAp6B.js.map +0 -1
  341. package/build/server/chunks/_server.ts-CxWx02dy.js.map +0 -1
  342. package/build/server/chunks/_server.ts-MJdHZvPF.js.map +0 -1
  343. package/build/server/chunks/src-BEj0DuSB.js.map +0 -1
  344. package/build/server/chunks/theme-state.svelte-CUVpUHOv.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BkxwpAv2.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/host-status/_server.ts.js"],"sourcesContent":["import { r as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/host-status/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst status = detectHostOpenCode();\n\treturn jsonResponse(200, {\n\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\tproviderCount: status.providerCount,\n\t\tcredentialCount: status.credentialCount,\n\t\tconfigPath: status.configPath ?? null,\n\t\tauthPath: status.authPath ?? null\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,kBAAkB,EAAE;AACpC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AAClE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa;AACrC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe;AACzC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACvC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;AAC/B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-DbEaJJqa.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/host-status/_server.ts.js"],"sourcesContent":["import { r as detectHostOpenCode } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/providers/host-status/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst status = detectHostOpenCode();\n\treturn jsonResponse(200, {\n\t\tdetected: status.providerCount > 0 || status.credentialCount > 0,\n\t\tproviderCount: status.providerCount,\n\t\tcredentialCount: status.credentialCount,\n\t\tconfigPath: status.configPath ?? null,\n\t\tauthPath: status.authPath ?? null\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,MAAM,GAAG,kBAAkB,EAAE;AACpC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC;AAClE,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa;AACrC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe;AACzC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACvC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;AAC/B,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -0,0 +1,78 @@
1
+ import { af as inspectInstallLock, I as INSTALL_LOCK_STALE_AFTER_MS, aX as unlockInstallLock, G as createLogger } from './src-kpR902Zr.js';
2
+ import { g as getState } from './state-TG4xDwlK.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-Bebo0tHj.js';
4
+ import './chunk-CLZ62Ad-.js';
5
+ import 'node:module';
6
+ import './provider-constants-DPrj3yBX.js';
7
+ import './dist-DOFcG0Zp.js';
8
+ import 'node:fs';
9
+ import 'node:path';
10
+ import 'buffer';
11
+ import 'fs';
12
+ import 'path';
13
+ import 'node:child_process';
14
+ import 'node:url';
15
+ import 'node:crypto';
16
+ import 'events';
17
+ import 'node:events';
18
+ import 'node:stream';
19
+ import 'node:string_decoder';
20
+ import 'assert';
21
+ import 'zlib';
22
+ import 'node:assert';
23
+ import 'node:fs/promises';
24
+ import 'node:os';
25
+ import './endpoints-C9sjcucN.js';
26
+
27
+ //#region src/routes/admin/unlock/+server.ts
28
+ var logger = createLogger("unlock-admin");
29
+ /**
30
+ * #500 — "an operation seems stuck — clear it?" Reports whether an install lock
31
+ * is present and whether it is stale (so the UI can decide whether to offer the
32
+ * clear action). Read-only.
33
+ */
34
+ var GET = async (event) => {
35
+ const requestId = getRequestId(event);
36
+ const authError = requireAdmin(event, requestId);
37
+ if (authError) return authError;
38
+ const state = getState();
39
+ try {
40
+ return jsonResponse(200, {
41
+ ok: true,
42
+ staleAfterMs: INSTALL_LOCK_STALE_AFTER_MS,
43
+ ...inspectInstallLock(state.dataDir)
44
+ }, requestId);
45
+ } catch (e) {
46
+ return errorResponse(500, "unlock_status_failed", e instanceof Error ? e.message : String(e), {}, requestId);
47
+ }
48
+ };
49
+ /**
50
+ * #500 — clears the install lock ONLY when stale (dead holder PID or older than
51
+ * the 30-minute staleness window). Returns 409 when a live install is still
52
+ * holding the lock so the UI can surface "an operation is still running" rather
53
+ * than forcing it. Never blind-removes a live lock.
54
+ */
55
+ var POST = async (event) => {
56
+ const requestId = getRequestId(event);
57
+ const authError = requireAdmin(event, requestId);
58
+ if (authError) return authError;
59
+ const state = getState();
60
+ try {
61
+ const result = unlockInstallLock(state.dataDir);
62
+ if (!result.ok) return errorResponse(409, "install_in_progress", "An install or upgrade still appears to be running. The lock clears itself automatically once it finishes or after 30 minutes. Nothing was changed.", { status: result.status }, requestId);
63
+ logger.info("cleared install lock via admin", {
64
+ requestId,
65
+ removed: result.removed
66
+ });
67
+ return jsonResponse(200, {
68
+ ok: true,
69
+ removed: result.removed,
70
+ status: result.status
71
+ }, requestId);
72
+ } catch (e) {
73
+ return errorResponse(500, "unlock_failed", e instanceof Error ? e.message : String(e), {}, requestId);
74
+ }
75
+ };
76
+
77
+ export { GET, POST };
78
+ //# sourceMappingURL=_server.ts-DnC_IrzP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DnC_IrzP.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/unlock/_server.ts.js"],"sourcesContent":["import { cn as INSTALL_LOCK_STALE_AFTER_MS, hn as createLogger, ln as inspectInstallLock, un as unlockInstallLock } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/unlock/+server.ts\nvar logger = createLogger(\"unlock-admin\");\n/**\n* #500 — \"an operation seems stuck — clear it?\" Reports whether an install lock\n* is present and whether it is stale (so the UI can decide whether to offer the\n* clear action). Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tstaleAfterMs: INSTALL_LOCK_STALE_AFTER_MS,\n\t\t\t...inspectInstallLock(state.dataDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"unlock_status_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #500 — clears the install lock ONLY when stale (dead holder PID or older than\n* the 30-minute staleness window). Returns 409 when a live install is still\n* holding the lock so the UI can surface \"an operation is still running\" rather\n* than forcing it. Never blind-removes a live lock.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\tconst result = unlockInstallLock(state.dataDir);\n\t\tif (!result.ok) return errorResponse(409, \"install_in_progress\", \"An install or upgrade still appears to be running. The lock clears itself automatically once it finishes or after 30 minutes. Nothing was changed.\", { status: result.status }, requestId);\n\t\tlogger.info(\"cleared install lock via admin\", {\n\t\t\trequestId,\n\t\t\tremoved: result.removed\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tremoved: result.removed,\n\t\t\tstatus: result.status\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"unlock_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC;AACzC;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,YAAY,EAAE,2BAA2B;AAC5C,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO;AACtC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,oJAAoJ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AAC9P,EAAE,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;AAChD,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,MAAM,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,MAAM,CAAC,OAAO;AAC1B,GAAG,MAAM,EAAE,MAAM,CAAC;AAClB,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AACvG,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { ag as listAvailableAddonIds, a7 as getRegistryAddonConfig, ax as readStackSecretEnv, av as readStackEnv, aS as writeStackSecretEnv, ao as patchSecretsEnvFile, F as createLogger } from './src-BEj0DuSB.js';
2
- import { g as getState } from './state-DAPDF26p.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-Be-wOei2.js';
1
+ import { al as listAvailableAddonIds, ab as getRegistryAddonConfig, aF as readStackSecretEnv, aD as readStackEnv, b1 as writeStackSecretEnv, au as patchSecretsEnvFile, G as createLogger } from './src-kpR902Zr.js';
2
+ import { g as getState } from './state-TG4xDwlK.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse, p as parseJsonBody, j as jsonBodyError } from './helpers-Bebo0tHj.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-1byh0xs8.js';
25
+ import './endpoints-C9sjcucN.js';
26
26
 
27
27
  //#region src/routes/admin/addons/[name]/credentials/+server.ts
28
28
  var logger = createLogger("addons.name.credentials");
@@ -166,4 +166,4 @@ var POST = async (event) => {
166
166
  };
167
167
 
168
168
  export { GET, POST };
169
- //# sourceMappingURL=_server.ts-Cc-c2ehY.js.map
169
+ //# sourceMappingURL=_server.ts-DpAumRrq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Cc-c2ehY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/credentials/_server.ts.js"],"sourcesContent":["import { Ct as getRegistryAddonConfig, It as readStackSecretEnv, Lt as writeStackSecretEnv, Nt as patchSecretsEnvFile, Pt as readStackEnv, in as createLogger, wt as listAvailableAddonIds } from \"../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/addons/[name]/credentials/+server.ts\nvar logger = createLogger(\"addons.name.credentials\");\n/**\n* Parse a `.env.schema` file into structured fields.\n*\n* Schema conventions:\n* - Lines starting with `#` are comments; consecutive comment lines\n* accumulate as the *description* of the next KEY=VALUE line.\n* - `# @sensitive` marks the next field as sensitive (renders as a\n* password input and is masked on GET).\n* - `# ---` resets the accumulator (used as a section separator).\n* - `KEY=DEFAULT` declares the field; default may be empty.\n*/\nfunction parseEnvSchema(text) {\n\tconst fields = [];\n\tlet commentBuffer = [];\n\tlet sensitive = false;\n\tfor (const rawLine of text.split(/\\r?\\n/)) {\n\t\tconst line = rawLine.trim();\n\t\tif (!line) continue;\n\t\tif (line.startsWith(\"#\")) {\n\t\t\tconst body = line.slice(1).trim();\n\t\t\tif (body === \"---\") {\n\t\t\t\tcommentBuffer = [];\n\t\t\t\tsensitive = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body.startsWith(\"@\")) {\n\t\t\t\tif (/\\B@sensitive\\b/.test(body)) sensitive = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcommentBuffer.push(body);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq <= 0) continue;\n\t\tconst key = line.slice(0, eq).trim();\n\t\tif (!key) continue;\n\t\tconst def = line.slice(eq + 1).trim();\n\t\tfields.push({\n\t\t\tkey,\n\t\t\tsensitive,\n\t\t\tdescription: commentBuffer.join(\" \").trim(),\n\t\t\tdefault: def\n\t\t});\n\t\tcommentBuffer = [];\n\t\tsensitive = false;\n\t}\n\treturn fields;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst secretEnv = readStackSecretEnv(state.stackDir);\n\tconst stackEnv = readStackEnv(state.stackDir);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tfields: schemaFields.map((f) => {\n\t\t\tconst set = ((f.sensitive ? secretEnv[f.key] : stackEnv[f.key]) ?? \"\").length > 0;\n\t\t\treturn {\n\t\t\t\tkey: f.key,\n\t\t\t\tsensitive: f.sensitive,\n\t\t\t\tdescription: f.description,\n\t\t\t\tdefault: f.default,\n\t\t\t\tset,\n\t\t\t\tsecret: {\n\t\t\t\t\tenvKey: f.key,\n\t\t\t\t\tpresent: set\n\t\t\t\t},\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t})\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst valuesRaw = parsed.data.values ?? {};\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed (post)\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst sensitiveKeys = new Set(schemaFields.filter((f) => f.sensitive).map((f) => f.key));\n\tconst allowedKeys = new Set(schemaFields.map((f) => f.key));\n\tconst sensitiveUpdates = {};\n\tconst configUpdates = {};\n\tfor (const [k, v] of Object.entries(valuesRaw)) {\n\t\tif (!allowedKeys.has(k)) continue;\n\t\tconst val = typeof v === \"string\" ? v : \"\";\n\t\tif (sensitiveKeys.has(k)) sensitiveUpdates[k] = val;\n\t\telse configUpdates[k] = val;\n\t}\n\tif (Object.keys(sensitiveUpdates).length === 0 && Object.keys(configUpdates).length === 0) return errorResponse(400, \"bad_request\", \"no schema-declared keys supplied\", {}, requestId);\n\ttry {\n\t\tif (Object.keys(sensitiveUpdates).length > 0) writeStackSecretEnv(state, sensitiveUpdates);\n\t\tif (Object.keys(configUpdates).length > 0) patchSecretsEnvFile(state.stackDir, configUpdates);\n\t} catch (err) {\n\t\tlogger.error(\"write failed\", {\n\t\t\tname,\n\t\t\terror: String(err),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", err instanceof Error ? err.message : \"write failed\", {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname,\n\t\tupdated: [...Object.keys(sensitiveUpdates), ...Object.keys(configUpdates)].sort()\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DpAumRrq.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/addons/_name_/credentials/_server.ts.js"],"sourcesContent":["import { Bt as readStackSecretEnv, Et as listAvailableAddonIds, Lt as patchSecretsEnvFile, Rt as readStackEnv, Tt as getRegistryAddonConfig, Vt as writeStackSecretEnv, hn as createLogger } from \"../../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../../chunks/helpers.js\";\n//#region src/routes/admin/addons/[name]/credentials/+server.ts\nvar logger = createLogger(\"addons.name.credentials\");\n/**\n* Parse a `.env.schema` file into structured fields.\n*\n* Schema conventions:\n* - Lines starting with `#` are comments; consecutive comment lines\n* accumulate as the *description* of the next KEY=VALUE line.\n* - `# @sensitive` marks the next field as sensitive (renders as a\n* password input and is masked on GET).\n* - `# ---` resets the accumulator (used as a section separator).\n* - `KEY=DEFAULT` declares the field; default may be empty.\n*/\nfunction parseEnvSchema(text) {\n\tconst fields = [];\n\tlet commentBuffer = [];\n\tlet sensitive = false;\n\tfor (const rawLine of text.split(/\\r?\\n/)) {\n\t\tconst line = rawLine.trim();\n\t\tif (!line) continue;\n\t\tif (line.startsWith(\"#\")) {\n\t\t\tconst body = line.slice(1).trim();\n\t\t\tif (body === \"---\") {\n\t\t\t\tcommentBuffer = [];\n\t\t\t\tsensitive = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (body.startsWith(\"@\")) {\n\t\t\t\tif (/\\B@sensitive\\b/.test(body)) sensitive = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcommentBuffer.push(body);\n\t\t\tcontinue;\n\t\t}\n\t\tconst eq = line.indexOf(\"=\");\n\t\tif (eq <= 0) continue;\n\t\tconst key = line.slice(0, eq).trim();\n\t\tif (!key) continue;\n\t\tconst def = line.slice(eq + 1).trim();\n\t\tfields.push({\n\t\t\tkey,\n\t\t\tsensitive,\n\t\t\tdescription: commentBuffer.join(\" \").trim(),\n\t\t\tdefault: def\n\t\t});\n\t\tcommentBuffer = [];\n\t\tsensitive = false;\n\t}\n\treturn fields;\n}\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst secretEnv = readStackSecretEnv(state.stackDir);\n\tconst stackEnv = readStackEnv(state.stackDir);\n\treturn jsonResponse(200, {\n\t\tname,\n\t\tfields: schemaFields.map((f) => {\n\t\t\tconst set = ((f.sensitive ? secretEnv[f.key] : stackEnv[f.key]) ?? \"\").length > 0;\n\t\t\treturn {\n\t\t\t\tkey: f.key,\n\t\t\t\tsensitive: f.sensitive,\n\t\t\t\tdescription: f.description,\n\t\t\t\tdefault: f.default,\n\t\t\t\tset,\n\t\t\t\tsecret: {\n\t\t\t\t\tenvKey: f.key,\n\t\t\t\t\tpresent: set\n\t\t\t\t},\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t})\n\t}, requestId);\n};\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authErr = requireAdmin(event, requestId);\n\tif (authErr) return authErr;\n\tconst state = getState();\n\tconst name = event.params.name;\n\tif (!listAvailableAddonIds().includes(name)) return errorResponse(404, \"not_found\", `Addon \"${name}\" is not available`, { name }, requestId);\n\tconst parsed = await parseJsonBody(event.request);\n\tif (\"error\" in parsed) return jsonBodyError(parsed, requestId);\n\tconst valuesRaw = parsed.data.values ?? {};\n\tlet config;\n\ttry {\n\t\tconfig = getRegistryAddonConfig(name);\n\t} catch (error) {\n\t\tlogger.error(\"schema read failed (post)\", {\n\t\t\tname,\n\t\t\terror: String(error),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", `Addon \"${name}\" schema is unavailable`, {}, requestId);\n\t}\n\tconst schemaFields = parseEnvSchema(config.envSchema);\n\tconst sensitiveKeys = new Set(schemaFields.filter((f) => f.sensitive).map((f) => f.key));\n\tconst allowedKeys = new Set(schemaFields.map((f) => f.key));\n\tconst sensitiveUpdates = {};\n\tconst configUpdates = {};\n\tfor (const [k, v] of Object.entries(valuesRaw)) {\n\t\tif (!allowedKeys.has(k)) continue;\n\t\tconst val = typeof v === \"string\" ? v : \"\";\n\t\tif (sensitiveKeys.has(k)) sensitiveUpdates[k] = val;\n\t\telse configUpdates[k] = val;\n\t}\n\tif (Object.keys(sensitiveUpdates).length === 0 && Object.keys(configUpdates).length === 0) return errorResponse(400, \"bad_request\", \"no schema-declared keys supplied\", {}, requestId);\n\ttry {\n\t\tif (Object.keys(sensitiveUpdates).length > 0) writeStackSecretEnv(state, sensitiveUpdates);\n\t\tif (Object.keys(configUpdates).length > 0) patchSecretsEnvFile(state.stackDir, configUpdates);\n\t} catch (err) {\n\t\tlogger.error(\"write failed\", {\n\t\t\tname,\n\t\t\terror: String(err),\n\t\t\trequestId\n\t\t});\n\t\treturn errorResponse(500, \"internal_error\", err instanceof Error ? err.message : \"write failed\", {}, requestId);\n\t}\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\tname,\n\t\tupdated: [...Object.keys(sensitiveUpdates), ...Object.keys(configUpdates)].sort()\n\t}, requestId);\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { aV as summarizeBackups, am as listBackupDirs, ax as pruneBackupDirs, G as createLogger } from './src-kpR902Zr.js';
2
+ import { g as getState } from './state-TG4xDwlK.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse } from './helpers-Bebo0tHj.js';
4
+ import './chunk-CLZ62Ad-.js';
5
+ import 'node:module';
6
+ import './provider-constants-DPrj3yBX.js';
7
+ import './dist-DOFcG0Zp.js';
8
+ import 'node:fs';
9
+ import 'node:path';
10
+ import 'buffer';
11
+ import 'fs';
12
+ import 'path';
13
+ import 'node:child_process';
14
+ import 'node:url';
15
+ import 'node:crypto';
16
+ import 'events';
17
+ import 'node:events';
18
+ import 'node:stream';
19
+ import 'node:string_decoder';
20
+ import 'assert';
21
+ import 'zlib';
22
+ import 'node:assert';
23
+ import 'node:fs/promises';
24
+ import 'node:os';
25
+ import './endpoints-C9sjcucN.js';
26
+
27
+ //#region src/routes/admin/backups/+server.ts
28
+ var logger = createLogger("backups-admin");
29
+ /**
30
+ * #499 — backup visibility. Returns count, total size, last-backup time and a
31
+ * per-backup list (newest first) so the UI can surface the recovery net.
32
+ * Read-only.
33
+ */
34
+ var GET = async (event) => {
35
+ const requestId = getRequestId(event);
36
+ const authError = requireAdmin(event, requestId);
37
+ if (authError) return authError;
38
+ const state = getState();
39
+ try {
40
+ return jsonResponse(200, {
41
+ ok: true,
42
+ ...summarizeBackups(state.homeDir)
43
+ }, requestId);
44
+ } catch (e) {
45
+ return errorResponse(500, "backups_list_failed", e instanceof Error ? e.message : String(e), {}, requestId);
46
+ }
47
+ };
48
+ /**
49
+ * #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit
50
+ * `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and
51
+ * keeps the newest `keep` snapshots, deleting only the older ones.
52
+ */
53
+ var POST = async (event) => {
54
+ const requestId = getRequestId(event);
55
+ const authError = requireAdmin(event, requestId);
56
+ if (authError) return authError;
57
+ let body;
58
+ try {
59
+ body = await event.request.json();
60
+ } catch {
61
+ body = {};
62
+ }
63
+ const keep = Number(body.keep);
64
+ if (!Number.isInteger(keep) || keep < 0) return errorResponse(400, "invalid_keep", "`keep` must be a non-negative integer", {}, requestId);
65
+ const state = getState();
66
+ try {
67
+ if (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {
68
+ ok: true,
69
+ deleted: [],
70
+ kept: keep
71
+ }, requestId);
72
+ const deleted = pruneBackupDirs(state.homeDir, keep);
73
+ logger.info("pruned backups via admin", {
74
+ requestId,
75
+ deleted: deleted.length,
76
+ kept: keep
77
+ });
78
+ return jsonResponse(200, {
79
+ ok: true,
80
+ deleted,
81
+ kept: keep
82
+ }, requestId);
83
+ } catch (e) {
84
+ return errorResponse(500, "backups_prune_failed", e instanceof Error ? e.message : String(e), {}, requestId);
85
+ }
86
+ };
87
+
88
+ export { GET, POST };
89
+ //# sourceMappingURL=_server.ts-Dq1UL_W-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-Dq1UL_W-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/backups/_server.ts.js"],"sourcesContent":["import { dn as listBackupDirs, fn as pruneBackupDirs, hn as createLogger, pn as summarizeBackups } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/backups/+server.ts\nvar logger = createLogger(\"backups-admin\");\n/**\n* #499 — backup visibility. Returns count, total size, last-backup time and a\n* per-backup list (newest first) so the UI can surface the recovery net.\n* Read-only.\n*/\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\ttry {\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\t...summarizeBackups(state.homeDir)\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_list_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n/**\n* #499 — drives the EXISTING confirm-gated prune. The UI must pass an explicit\n* `keep` count (the confirmation is the UI's modal); this NEVER auto-prunes and\n* keeps the newest `keep` snapshots, deleting only the older ones.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\tbody = {};\n\t}\n\tconst keep = Number(body.keep);\n\tif (!Number.isInteger(keep) || keep < 0) return errorResponse(400, \"invalid_keep\", \"`keep` must be a non-negative integer\", {}, requestId);\n\tconst state = getState();\n\ttry {\n\t\tif (listBackupDirs(state.homeDir).slice(keep).length === 0) return jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted: [],\n\t\t\tkept: keep\n\t\t}, requestId);\n\t\tconst deleted = pruneBackupDirs(state.homeDir, keep);\n\t\tlogger.info(\"pruned backups via admin\", {\n\t\t\trequestId,\n\t\t\tdeleted: deleted.length,\n\t\t\tkept: keep\n\t\t});\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tdeleted,\n\t\t\tkept: keep\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(500, \"backups_prune_failed\", e instanceof Error ? e.message : String(e), {}, requestId);\n\t}\n};\n//#endregion\nexport { GET, POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO;AACpC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7G,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,IAAI,GAAG,EAAE;AACX,CAAC;AACD,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC3I,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,IAAI;AACL,EAAE,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AACvF,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO,EAAE,EAAE;AACd,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AAC1C,GAAG,SAAS;AACZ,GAAG,OAAO,EAAE,OAAO,CAAC,MAAM;AAC1B,GAAG,IAAI,EAAE;AACT,GAAG,CAAC;AACJ,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,IAAI,EAAE;AACT,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9G,CAAC;AACD;;;;"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-Be-wOei2.js';
2
- import { l as loadProviderPage } from './catalog-DAQWike4.js';
3
- import './src-BEj0DuSB.js';
1
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-Bebo0tHj.js';
2
+ import { l as loadProviderPage } from './catalog-CVQgQDZT.js';
3
+ import './src-kpR902Zr.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,11 +22,11 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-1byh0xs8.js';
26
- import './state-DAPDF26p.js';
25
+ import './endpoints-C9sjcucN.js';
26
+ import './state-TG4xDwlK.js';
27
27
  import './coercion-TNFJisCC.js';
28
- import './http-BbFgukqs.js';
29
- import './config-Bdb4ZTos.js';
28
+ import './http-B9H_dpeX.js';
29
+ import './config-CW8zrJxw.js';
30
30
 
31
31
  //#region src/routes/admin/providers/+server.ts
32
32
  var GET = async (event) => {
@@ -37,4 +37,4 @@ var GET = async (event) => {
37
37
  };
38
38
 
39
39
  export { GET };
40
- //# sourceMappingURL=_server.ts-Ieve8Oxl.js.map
40
+ //# sourceMappingURL=_server.ts-DuDeloL8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Ieve8Oxl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_server.ts.js"],"sourcesContent":["import { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as loadProviderPage } from \"../../../../chunks/catalog.js\";\n//#region src/routes/admin/providers/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, await loadProviderPage(), requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,gBAAgB,EAAE,EAAE,SAAS,CAAC;AAC9D;;;;"}
1
+ {"version":3,"file":"_server.ts-DuDeloL8.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/providers/_server.ts.js"],"sourcesContent":["import { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\nimport { t as loadProviderPage } from \"../../../../chunks/catalog.js\";\n//#region src/routes/admin/providers/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn jsonResponse(200, await loadProviderPage(), requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,gBAAgB,EAAE,EAAE,SAAS,CAAC;AAC9D;;;;"}
@@ -1,5 +1,5 @@
1
- import { o as checkDocker, a5 as getDockerEvents } from './src-BEj0DuSB.js';
2
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-Be-wOei2.js';
1
+ import { o as checkDocker, a9 as getDockerEvents } from './src-kpR902Zr.js';
2
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-Bebo0tHj.js';
3
3
  import './chunk-CLZ62Ad-.js';
4
4
  import 'node:module';
5
5
  import './provider-constants-DPrj3yBX.js';
@@ -21,8 +21,8 @@ import 'zlib';
21
21
  import 'node:assert';
22
22
  import 'node:fs/promises';
23
23
  import 'node:os';
24
- import './endpoints-1byh0xs8.js';
25
- import './state-DAPDF26p.js';
24
+ import './endpoints-C9sjcucN.js';
25
+ import './state-TG4xDwlK.js';
26
26
 
27
27
  //#region src/routes/admin/containers/events/+server.ts
28
28
  var GET = async (event) => {
@@ -44,4 +44,4 @@ var GET = async (event) => {
44
44
  };
45
45
 
46
46
  export { GET };
47
- //# sourceMappingURL=_server.ts-BiwKKu1y.js.map
47
+ //# sourceMappingURL=_server.ts-EZhgk1ej.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BiwKKu1y.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { X as checkDocker, ct as getDockerEvents } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/events/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst since = event.url.searchParams.get(\"since\") || \"1h\";\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await getDockerEvents(\"openpalm\", since);\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get Docker events: ${result.stderr}`, {}, requestId);\n\tlet events = [];\n\tif (result.stdout.trim()) try {\n\t\tevents = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.events] Failed to parse Docker events output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker events output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { events }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1D,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,CAAC,CAAC;AAC7E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sCAAsC,EAAE,EAAE,EAAE,SAAS,CAAC;AACjG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;AAChD;;;;"}
1
+ {"version":3,"file":"_server.ts-EZhgk1ej.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/events/_server.ts.js"],"sourcesContent":["import { Q as checkDocker, ut as getDockerEvents } from \"../../../../../chunks/src.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/events/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst since = event.url.searchParams.get(\"since\") || \"1h\";\n\tif (!(await checkDocker()).ok) return errorResponse(503, \"docker_unavailable\", \"Docker is not available\", {}, requestId);\n\tconst result = await getDockerEvents(\"openpalm\", since);\n\tif (!result.ok) return errorResponse(500, \"docker_error\", `Failed to get Docker events: ${result.stderr}`, {}, requestId);\n\tlet events = [];\n\tif (result.stdout.trim()) try {\n\t\tevents = result.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t} catch (e) {\n\t\tconsole.warn(\"[containers.events] Failed to parse Docker events output\", e);\n\t\treturn errorResponse(500, \"parse_error\", \"Failed to parse Docker events output\", {}, requestId);\n\t}\n\treturn jsonResponse(200, { events }, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;AAC1D,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC;AACxD,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,IAAI,MAAM,GAAG,EAAE;AAChB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AAC/B,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,CAAC,CAAC;AAC7E,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sCAAsC,EAAE,EAAE,EAAE,SAAS,CAAC;AACjG,CAAC;AACD,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC;AAChD;;;;"}
@@ -1,7 +1,7 @@
1
- import { d as deleteEndpoint, v as validateEndpointUrl, u as updateEndpoint } from './endpoints-1byh0xs8.js';
2
- import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse, w as withAdminBody } from './helpers-Be-wOei2.js';
3
- import './state-DAPDF26p.js';
4
- import './src-BEj0DuSB.js';
1
+ import { d as deleteEndpoint, v as validateEndpointUrl, u as updateEndpoint } from './endpoints-C9sjcucN.js';
2
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse, e as errorResponse, w as withAdminBody } from './helpers-Bebo0tHj.js';
3
+ import './state-TG4xDwlK.js';
4
+ import './src-kpR902Zr.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -70,4 +70,4 @@ var DELETE = async (event) => {
70
70
  };
71
71
 
72
72
  export { DELETE, PATCH };
73
- //# sourceMappingURL=_server.ts-DAv3C7oW.js.map
73
+ //# sourceMappingURL=_server.ts-J-kbq-R4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DAv3C7oW.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/_id_/_server.ts.js"],"sourcesContent":["import { c as validateEndpointUrl, n as deleteEndpoint, s as updateEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, p as withAdminBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/[id]/+server.ts\nvar PATCH = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst id = event.params.id;\n\tconst patch = {};\n\tif (typeof body.label === \"string\") patch.label = body.label;\n\tif (typeof body.url === \"string\") {\n\t\tconst urlCheck = validateEndpointUrl(body.url);\n\t\tif (!urlCheck.ok) {\n\t\t\tif (urlCheck.reason === \"http_not_allowed\") return errorResponse(400, \"http_not_allowed\", \"Plain HTTP is only allowed for loopback addresses. Use https:// for remote OpenPalm instances.\", {}, requestId);\n\t\t\treturn errorResponse(400, \"invalid_endpoint\", \"URL must be a valid http(s) URL\", {}, requestId);\n\t\t}\n\t\tpatch.url = urlCheck.url;\n\t}\n\tif (body.password === null) patch.password = null;\n\telse if (typeof body.password === \"string\") patch.password = body.password;\n\ttry {\n\t\tconst entry = updateEndpoint(id, patch);\n\t\treturn jsonResponse(200, { endpoint: {\n\t\t\tid: entry.id,\n\t\t\tlabel: entry.label,\n\t\t\turl: entry.url,\n\t\t\tisDefault: false,\n\t\t\thasPassword: Boolean(entry.password)\n\t\t} }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to update endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n});\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst id = event.params.id;\n\ttry {\n\t\tdeleteEndpoint(id);\n\t\treturn jsonResponse(200, { ok: true }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to delete endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n};\n//#endregion\nexport { DELETE, PATCH };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-J-kbq-R4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/_id_/_server.ts.js"],"sourcesContent":["import { c as validateEndpointUrl, n as deleteEndpoint, s as updateEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, p as withAdminBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/[id]/+server.ts\nvar PATCH = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst id = event.params.id;\n\tconst patch = {};\n\tif (typeof body.label === \"string\") patch.label = body.label;\n\tif (typeof body.url === \"string\") {\n\t\tconst urlCheck = validateEndpointUrl(body.url);\n\t\tif (!urlCheck.ok) {\n\t\t\tif (urlCheck.reason === \"http_not_allowed\") return errorResponse(400, \"http_not_allowed\", \"Plain HTTP is only allowed for loopback addresses. Use https:// for remote OpenPalm instances.\", {}, requestId);\n\t\t\treturn errorResponse(400, \"invalid_endpoint\", \"URL must be a valid http(s) URL\", {}, requestId);\n\t\t}\n\t\tpatch.url = urlCheck.url;\n\t}\n\tif (body.password === null) patch.password = null;\n\telse if (typeof body.password === \"string\") patch.password = body.password;\n\ttry {\n\t\tconst entry = updateEndpoint(id, patch);\n\t\treturn jsonResponse(200, { endpoint: {\n\t\t\tid: entry.id,\n\t\t\tlabel: entry.label,\n\t\t\turl: entry.url,\n\t\t\tisDefault: false,\n\t\t\thasPassword: Boolean(entry.password)\n\t\t} }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to update endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n});\nvar DELETE = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst id = event.params.id;\n\ttry {\n\t\tdeleteEndpoint(id);\n\t\treturn jsonResponse(200, { ok: true }, requestId);\n\t} catch (e) {\n\t\tconst msg = e instanceof Error ? e.message : \"failed to delete endpoint\";\n\t\tconst status = msg.startsWith(\"Endpoint not found\") ? 404 : 400;\n\t\treturn errorResponse(status, status === 404 ? \"not_found\" : \"invalid_endpoint\", msg, {}, requestId);\n\t}\n};\n//#endregion\nexport { DELETE, PATCH };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,KAAK,GAAG,OAAO,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AACjF,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;AAC3B,CAAC,MAAM,KAAK,GAAG,EAAE;AACjB,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC7D,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;AACnC,EAAE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;AAChD,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,gGAAgG,EAAE,EAAE,EAAE,SAAS,CAAC;AAC7M,GAAG,OAAO,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,EAAE,EAAE,SAAS,CAAC;AAClG,EAAE;AACF,EAAE,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG;AAC1B,CAAC;AACD,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI;AAClD,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC3E,CAAC,IAAI;AACL,EAAE,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;AACzC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE;AACvC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE;AACf,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK;AACrB,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG;AACjB,GAAG,SAAS,EAAE,KAAK;AACnB,GAAG,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;AACtC,GAAG,EAAE,EAAE,SAAS,CAAC;AACjB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,2BAA2B;AAC1E,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,GAAG,GAAG,GAAG;AACjE,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,GAAG,WAAW,GAAG,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACrG,CAAC;AACD,CAAC;AACE,IAAC,MAAM,GAAG,OAAO,KAAK,KAAK;AAC9B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;AAC3B,CAAC,IAAI;AACL,EAAE,cAAc,CAAC,EAAE,CAAC;AACpB,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;AACnD,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,2BAA2B;AAC1E,EAAE,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,GAAG,GAAG,GAAG;AACjE,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,GAAG,WAAW,GAAG,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC;AACrG,CAAC;AACD;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { g as getOpenCodeClient } from './helpers-Be-wOei2.js';
2
+ import { g as getOpenCodeClient } from './helpers-Bebo0tHj.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-BEj0DuSB.js';
4
+ import './src-kpR902Zr.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -23,8 +23,8 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-1byh0xs8.js';
27
- import './state-DAPDF26p.js';
26
+ import './endpoints-C9sjcucN.js';
27
+ import './state-TG4xDwlK.js';
28
28
 
29
29
  //#region src/routes/api/setup/opencode/provider/[provider]/oauth/callback/+server.ts
30
30
  var PROVIDER_ID_RE = /^[a-zA-Z0-9_-]{1,64}$/;
@@ -55,4 +55,4 @@ var POST = async ({ params, request }) => {
55
55
  };
56
56
 
57
57
  export { POST };
58
- //# sourceMappingURL=_server.ts-BXOIslIH.js.map
58
+ //# sourceMappingURL=_server.ts-MkaNzvkX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BXOIslIH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/provider/_provider_/oauth/callback/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../../../../chunks/exports.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/opencode/provider/[provider]/oauth/callback/+server.ts\nvar PROVIDER_ID_RE = /^[a-zA-Z0-9_-]{1,64}$/;\nvar POST = async ({ params, request }) => {\n\tif (!PROVIDER_ID_RE.test(params.provider)) return json({\n\t\tok: false,\n\t\tmessage: \"Invalid provider\"\n\t}, { status: 400 });\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst method = Number.isInteger(body.method) ? body.method : 0;\n\t\tconst code = typeof body.code === \"string\" ? body.code.slice(0, 1024) : void 0;\n\t\tconst result = await getOpenCodeClient().completeProviderOAuth(params.provider, method, code);\n\t\tif (!result.ok) return json({\n\t\t\tok: false,\n\t\t\tmessage: \"OAuth callback failed\"\n\t\t}, { status: 400 });\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tcomplete: result.data\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\tmessage: \"OAuth callback failed\"\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,cAAc,GAAG,uBAAuB;AACzC,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,CAAC;AACxD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AAChF,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;AAC/F,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AAC9B,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC;AACpB,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
1
+ {"version":3,"file":"_server.ts-MkaNzvkX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/provider/_provider_/oauth/callback/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../../../../chunks/exports.js\";\nimport { a as getOpenCodeClient } from \"../../../../../../../../../chunks/helpers.js\";\n//#region src/routes/api/setup/opencode/provider/[provider]/oauth/callback/+server.ts\nvar PROVIDER_ID_RE = /^[a-zA-Z0-9_-]{1,64}$/;\nvar POST = async ({ params, request }) => {\n\tif (!PROVIDER_ID_RE.test(params.provider)) return json({\n\t\tok: false,\n\t\tmessage: \"Invalid provider\"\n\t}, { status: 400 });\n\ttry {\n\t\tconst body = await request.json();\n\t\tconst method = Number.isInteger(body.method) ? body.method : 0;\n\t\tconst code = typeof body.code === \"string\" ? body.code.slice(0, 1024) : void 0;\n\t\tconst result = await getOpenCodeClient().completeProviderOAuth(params.provider, method, code);\n\t\tif (!result.ok) return json({\n\t\t\tok: false,\n\t\t\tmessage: \"OAuth callback failed\"\n\t\t}, { status: 400 });\n\t\treturn json({\n\t\t\tok: true,\n\t\t\tcomplete: result.data\n\t\t});\n\t} catch {\n\t\treturn json({\n\t\t\tok: false,\n\t\t\tmessage: \"OAuth callback failed\"\n\t\t}, { status: 500 });\n\t}\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA,IAAI,cAAc,GAAG,uBAAuB;AACzC,IAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC1C,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,CAAC;AACxD,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,OAAO,EAAE;AACX,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpB,CAAC,IAAI;AACL,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AAChF,EAAE,MAAM,MAAM,GAAG,MAAM,iBAAiB,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;AAC/F,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC;AAC9B,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC;AACpB,GAAG,CAAC;AACJ,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { a as loadSetupProviderPage } from './catalog-DAQWike4.js';
2
+ import { a as loadSetupProviderPage } from './catalog-CVQgQDZT.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-BEj0DuSB.js';
4
+ import './src-kpR902Zr.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -23,11 +23,11 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './state-DAPDF26p.js';
26
+ import './state-TG4xDwlK.js';
27
27
  import './coercion-TNFJisCC.js';
28
- import './http-BbFgukqs.js';
29
- import './endpoints-1byh0xs8.js';
30
- import './config-Bdb4ZTos.js';
28
+ import './http-B9H_dpeX.js';
29
+ import './endpoints-C9sjcucN.js';
30
+ import './config-CW8zrJxw.js';
31
31
 
32
32
  //#region src/routes/api/setup/opencode/providers/+server.ts
33
33
  var GET = async () => {
@@ -38,4 +38,4 @@ var GET = async () => {
38
38
  };
39
39
 
40
40
  export { GET };
41
- //# sourceMappingURL=_server.ts-lmfAKx6b.js.map
41
+ //# sourceMappingURL=_server.ts-NKH2c4tC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-lmfAKx6b.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/providers/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { n as loadSetupProviderPage } from \"../../../../../../chunks/catalog.js\";\n//#region src/routes/api/setup/opencode/providers/+server.ts\nvar GET = async () => {\n\treturn json({\n\t\tok: true,\n\t\t...await loadSetupProviderPage()\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,GAAG,MAAM,qBAAqB;AAChC,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-NKH2c4tC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/opencode/providers/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../../chunks/exports.js\";\nimport { n as loadSetupProviderPage } from \"../../../../../../chunks/catalog.js\";\n//#region src/routes/api/setup/opencode/providers/+server.ts\nvar GET = async () => {\n\treturn json({\n\t\tok: true,\n\t\t...await loadSetupProviderPage()\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,GAAG,MAAM,qBAAqB;AAChC,EAAE,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { o as checkDocker, d as applyTagChange, F as createLogger } from './src-BEj0DuSB.js';
2
- import { g as getState } from './state-DAPDF26p.js';
3
- import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-Be-wOei2.js';
1
+ import { o as checkDocker, d as applyTagChange, D as DowngradeConfirmationRequired, G as createLogger } from './src-kpR902Zr.js';
2
+ import { g as getState } from './state-TG4xDwlK.js';
3
+ import { d as getRequestId, r as requireAdmin, e as errorResponse, k as jsonResponse } from './helpers-Bebo0tHj.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-1byh0xs8.js';
25
+ import './endpoints-C9sjcucN.js';
26
26
 
27
27
  //#region src/routes/admin/stack-version/+server.ts
28
28
  var logger = createLogger("stack-version");
@@ -39,6 +39,7 @@ var PATCH = async (event) => {
39
39
  const tag = typeof body.tag === "string" ? body.tag.trim() : "";
40
40
  if (!tag) return errorResponse(400, "tag_required", "tag is required", {}, requestId);
41
41
  if (!/^[a-zA-Z0-9._\-]+$/.test(tag)) return errorResponse(400, "invalid_tag", "Tag must be alphanumeric with . _ or - only", {}, requestId);
42
+ const confirmDowngrade = body.confirmDowngrade === true;
42
43
  const state = getState();
43
44
  const dockerCheck = await checkDocker();
44
45
  if (!dockerCheck.ok) {
@@ -47,8 +48,19 @@ var PATCH = async (event) => {
47
48
  }
48
49
  let result;
49
50
  try {
50
- result = await applyTagChange(state, tag);
51
+ result = await applyTagChange(state, tag, { confirmDowngrade });
51
52
  } catch (e) {
53
+ if (e instanceof DowngradeConfirmationRequired) {
54
+ logger.info("stack-version downgrade requires confirmation", {
55
+ requestId,
56
+ currentVersion: e.currentVersion,
57
+ targetVersion: e.targetVersion
58
+ });
59
+ return errorResponse(409, "downgrade_confirmation_required", e.message, {
60
+ currentVersion: e.currentVersion,
61
+ targetVersion: e.targetVersion
62
+ }, requestId);
63
+ }
52
64
  const msg = e instanceof Error ? e.message : String(e);
53
65
  logger.error("stack-version apply failed", {
54
66
  requestId,
@@ -68,4 +80,4 @@ var PATCH = async (event) => {
68
80
  };
69
81
 
70
82
  export { PATCH };
71
- //# sourceMappingURL=_server.ts-B4WEAp6B.js.map
83
+ //# sourceMappingURL=_server.ts-UDLeVWXU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-UDLeVWXU.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/stack-version/_server.ts.js"],"sourcesContent":["import { L as DowngradeConfirmationRequired, Q as checkDocker, hn as createLogger, z as applyTagChange } from \"../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../chunks/state.js\";\nimport { d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId } from \"../../../../chunks/helpers.js\";\n//#region src/routes/admin/stack-version/+server.ts\nvar logger = createLogger(\"stack-version\");\nvar PATCH = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"invalid_json\", \"Request body must be valid JSON\", {}, requestId);\n\t}\n\tconst tag = typeof body.tag === \"string\" ? body.tag.trim() : \"\";\n\tif (!tag) return errorResponse(400, \"tag_required\", \"tag is required\", {}, requestId);\n\tif (!/^[a-zA-Z0-9._\\-]+$/.test(tag)) return errorResponse(400, \"invalid_tag\", \"Tag must be alphanumeric with . _ or - only\", {}, requestId);\n\tconst confirmDowngrade = body.confirmDowngrade === true;\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tif (!dockerCheck.ok) {\n\t\tlogger.error(\"stack-version aborted: docker unavailable\", { requestId });\n\t\treturn errorResponse(503, \"docker_unavailable\", \"Docker is not available\", { stderr: dockerCheck.stderr }, requestId);\n\t}\n\tlet result;\n\ttry {\n\t\tresult = await applyTagChange(state, tag, { confirmDowngrade });\n\t} catch (e) {\n\t\tif (e instanceof DowngradeConfirmationRequired) {\n\t\t\tlogger.info(\"stack-version downgrade requires confirmation\", {\n\t\t\t\trequestId,\n\t\t\t\tcurrentVersion: e.currentVersion,\n\t\t\t\ttargetVersion: e.targetVersion\n\t\t\t});\n\t\t\treturn errorResponse(409, \"downgrade_confirmation_required\", e.message, {\n\t\t\t\tcurrentVersion: e.currentVersion,\n\t\t\t\ttargetVersion: e.targetVersion\n\t\t\t}, requestId);\n\t\t}\n\t\tconst msg = e instanceof Error ? e.message : String(e);\n\t\tlogger.error(\"stack-version apply failed\", {\n\t\t\trequestId,\n\t\t\terror: msg\n\t\t});\n\t\treturn errorResponse(502, \"apply_failed\", msg, { message: msg }, requestId);\n\t}\n\tlogger.info(\"stack-version applied\", {\n\t\trequestId,\n\t\timageTag: result.imageTag\n\t});\n\treturn jsonResponse(200, {\n\t\tok: true,\n\t\timageTag: result.imageTag,\n\t\trestarted: result.restarted\n\t}, requestId);\n};\n//#endregion\nexport { PATCH };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-Be-wOei2.js';
2
- import { s as sessionCookieHeader } from './session-cookie-C-kIy9pI.js';
3
- import './src-BEj0DuSB.js';
1
+ import { d as getRequestId, e as errorResponse, f as getUiLoginPassword, s as safeTokenCompare, b as createSession } from './helpers-Bebo0tHj.js';
2
+ import { s as sessionCookieHeader } from './session-cookie-DI4jIKdM.js';
3
+ import './src-kpR902Zr.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,8 +22,8 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-1byh0xs8.js';
26
- import './state-DAPDF26p.js';
25
+ import './endpoints-C9sjcucN.js';
26
+ import './state-TG4xDwlK.js';
27
27
 
28
28
  //#region src/routes/admin/auth/session/+server.ts
29
29
  /**
@@ -61,4 +61,4 @@ var POST = async (event) => {
61
61
  };
62
62
 
63
63
  export { POST };
64
- //# sourceMappingURL=_server.ts-DRpXmKSI.js.map
64
+ //# sourceMappingURL=_server.ts-X8_yz_cF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DRpXmKSI.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/session/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/session/+server.ts\n/**\n* POST /admin/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/admin/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-X8_yz_cF.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/auth/session/_server.ts.js"],"sourcesContent":["import { f as safeTokenCompare, g as getUiLoginPassword, h as createSession, i as errorResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { r as sessionCookieHeader } from \"../../../../../chunks/session-cookie.js\";\n//#region src/routes/admin/auth/session/+server.ts\n/**\n* POST /admin/auth/session\n*\n* Issues an `op_session` cookie after verifying the operator-supplied password\n* against `process.env.OP_UI_LOGIN_PASSWORD`.\n*\n* The cookie value is a random UUID session token — NOT the plaintext password.\n* Kept alongside `/admin/auth/login` as an alias; both verify the same\n* `password` body field and issue the `op_session` cookie.\n*/\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlet body;\n\ttry {\n\t\tbody = await event.request.json();\n\t} catch {\n\t\treturn errorResponse(400, \"bad_request\", \"Invalid JSON body\", {}, requestId);\n\t}\n\tconst password = typeof body.password === \"string\" ? body.password : \"\";\n\tif (!password) return errorResponse(400, \"bad_request\", \"password is required\", {}, requestId);\n\tconst configured = getUiLoginPassword();\n\tif (!configured) return errorResponse(503, \"admin_not_configured\", \"OP_UI_LOGIN_PASSWORD has not been set. Complete setup first.\", {}, requestId);\n\tif (!safeTokenCompare(password, configured)) return errorResponse(401, \"unauthorized\", \"Invalid password\", {}, requestId);\n\tconst sessionToken = createSession();\n\treturn new Response(JSON.stringify({ ok: true }), {\n\t\tstatus: 200,\n\t\theaders: {\n\t\t\t\"content-type\": \"application/json\",\n\t\t\t\"set-cookie\": sessionCookieHeader(sessionToken, event.request),\n\t\t\t\"x-request-id\": requestId\n\t\t}\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9E,CAAC;AACD,CAAC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE;AACxE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC/F,CAAC,MAAM,UAAU,GAAG,kBAAkB,EAAE;AACxC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,sBAAsB,EAAE,8DAA8D,EAAE,EAAE,EAAE,SAAS,CAAC;AAClJ,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC;AAC1H,CAAC,MAAM,YAAY,GAAG,aAAa,EAAE;AACrC,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,OAAO,EAAE;AACX,GAAG,cAAc,EAAE,kBAAkB;AACrC,GAAG,YAAY,EAAE,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC;AACjE,GAAG,cAAc,EAAE;AACnB;AACA,EAAE,CAAC;AACH;;;;"}