@selvajs/selva 4.0.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/build/client/_app/immutable/assets/0.vgCL98o5.css +1 -0
  2. package/build/client/_app/immutable/assets/0.vgCL98o5.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.vgCL98o5.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{DGr_EUx4.js → 2n-qzJg2.js} +1 -1
  5. package/build/client/_app/immutable/chunks/2n-qzJg2.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/2n-qzJg2.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DT5O4b-_.js → BQ0arxbK.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BQ0arxbK.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BQ0arxbK.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{7DlWX6a_.js → C1kpvSgW.js} +1 -1
  11. package/build/client/_app/immutable/chunks/C1kpvSgW.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/C1kpvSgW.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{C_pyGEAV.js → C98bdhQ5.js} +1 -1
  14. package/build/client/_app/immutable/chunks/C98bdhQ5.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/C98bdhQ5.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/D-Fls4-N.js +1 -0
  17. package/build/client/_app/immutable/chunks/D-Fls4-N.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/D-Fls4-N.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{7OGPJeUM.js → D37hHIb0.js} +1 -1
  20. package/build/client/_app/immutable/chunks/D37hHIb0.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/D37hHIb0.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{D0kO1GS0.js → DNu_no60.js} +1 -1
  23. package/build/client/_app/immutable/chunks/DNu_no60.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/DNu_no60.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/snZK0J5H.js +1 -0
  26. package/build/client/_app/immutable/chunks/snZK0J5H.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/snZK0J5H.js.gz +0 -0
  28. package/build/client/_app/immutable/entry/app.1YljYqLj.js +2 -0
  29. package/build/client/_app/immutable/entry/app.1YljYqLj.js.br +0 -0
  30. package/build/client/_app/immutable/entry/app.1YljYqLj.js.gz +0 -0
  31. package/build/client/_app/immutable/entry/start.C41rnrMx.js +1 -0
  32. package/build/client/_app/immutable/entry/start.C41rnrMx.js.br +0 -0
  33. package/build/client/_app/immutable/entry/start.C41rnrMx.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{1.NC0eJqYH.js → 1.5JE3G8iG.js} +1 -1
  35. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js +2 -0
  38. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{13.DoCSNk6B.js → 13.D5OdE_HH.js} +1 -1
  41. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{14.CGaF6W-i.js → 14.UGx5pLUS.js} +1 -1
  44. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/15.czhLtsoD.js +13 -0
  47. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{16.CK0W0845.js → 16.CqZNgdz-.js} +1 -1
  50. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{17.BLCtgsLP.js → 17.B1PHOW1Y.js} +1 -1
  53. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{19.Dx5b18Qv.js → 19.ClB_k0uw.js} +1 -1
  56. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{2.BxDq9fgp.js → 2.uPLLf3gR.js} +1 -1
  59. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{20.Q9tlws_F.js → 20.C5BF7igP.js} +1 -1
  62. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{21.Bbzr4DP5.js → 21.B1xX86Nz.js} +1 -1
  65. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/23.BWuAu45o.js +16 -0
  68. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{24.B-_Qylvh.js → 24.DSWGE_q2.js} +1 -1
  71. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{27.CKQ1fXCy.js → 27.CjlEhW_1.js} +1 -1
  74. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{28.COTXtjAd.js → 28.U-BnDxlP.js} +1 -1
  77. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{29.C1uWJrpk.js → 29.cl9udKxV.js} +1 -1
  80. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{3.D5k6nFAD.js → 3.UKn7Q9OQ.js} +1 -1
  83. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{30.iBr8WuRu.js → 30.DPqPYAg4.js} +1 -1
  86. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{5.BNy6hwdy.js → 5.CbYguvwB.js} +1 -1
  89. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.br +2 -0
  90. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{6.CaYtdaf2.js → 6.DZgUvAex.js} +1 -1
  92. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{7.C1W_YRKU.js → 7.Cv7r8DBm.js} +1 -1
  95. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{8.B9sIt6MS.js → 8.zr3bqaC_.js} +1 -1
  98. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/9.B2PU0xej.js +1 -0
  101. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.gz +0 -0
  103. package/build/client/_app/version.json +1 -1
  104. package/build/client/_app/version.json.br +0 -0
  105. package/build/client/_app/version.json.gz +0 -0
  106. package/build/server/chunks/{0-RraSrE7U.js → 0-v49L2HZX.js} +3 -3
  107. package/build/server/chunks/{0-RraSrE7U.js.map → 0-v49L2HZX.js.map} +1 -1
  108. package/build/server/chunks/{1-C99xqG8L.js → 1-B8xC9fBg.js} +2 -2
  109. package/build/server/chunks/{1-C99xqG8L.js.map → 1-B8xC9fBg.js.map} +1 -1
  110. package/build/server/chunks/{10-CpPov-q6.js → 10-BowWygfm.js} +4 -3
  111. package/build/server/chunks/{10-CpPov-q6.js.map → 10-BowWygfm.js.map} +1 -1
  112. package/build/server/chunks/{11-CgEVkMbf.js → 11-BLjiJpX4.js} +5 -5
  113. package/build/server/chunks/11-BLjiJpX4.js.map +1 -0
  114. package/build/server/chunks/{13-BsoV45dx.js → 13-CZeQX-Gk.js} +2 -2
  115. package/build/server/chunks/{13-BsoV45dx.js.map → 13-CZeQX-Gk.js.map} +1 -1
  116. package/build/server/chunks/{14-B3BJJIn3.js → 14-VgzSpObZ.js} +2 -2
  117. package/build/server/chunks/{14-B3BJJIn3.js.map → 14-VgzSpObZ.js.map} +1 -1
  118. package/build/server/chunks/{15-BqYjEVaA.js → 15-CKqEgZmF.js} +6 -5
  119. package/build/server/chunks/15-CKqEgZmF.js.map +1 -0
  120. package/build/server/chunks/{16-CQEqybxD.js → 16-9hO-6bzO.js} +5 -4
  121. package/build/server/chunks/{16-CQEqybxD.js.map → 16-9hO-6bzO.js.map} +1 -1
  122. package/build/server/chunks/{17-DPHGdRIj.js → 17-B9Aw6HdC.js} +2 -2
  123. package/build/server/chunks/{17-DPHGdRIj.js.map → 17-B9Aw6HdC.js.map} +1 -1
  124. package/build/server/chunks/{19-CkJN0M4_.js → 19-C9FaW__N.js} +2 -2
  125. package/build/server/chunks/{19-CkJN0M4_.js.map → 19-C9FaW__N.js.map} +1 -1
  126. package/build/server/chunks/{2-BJb8QIPX.js → 2-CwQhh3Hg.js} +5 -4
  127. package/build/server/chunks/{2-BJb8QIPX.js.map → 2-CwQhh3Hg.js.map} +1 -1
  128. package/build/server/chunks/{20-DGeV-MBL.js → 20-52YCUMK3.js} +6 -7
  129. package/build/server/chunks/20-52YCUMK3.js.map +1 -0
  130. package/build/server/chunks/{21-BQWXIChZ.js → 21-Dcz_2iKy.js} +2 -2
  131. package/build/server/chunks/{21-BQWXIChZ.js.map → 21-Dcz_2iKy.js.map} +1 -1
  132. package/build/server/chunks/{23-BmGaVmjO.js → 23-C-gTGofY.js} +5 -5
  133. package/build/server/chunks/{23-BmGaVmjO.js.map → 23-C-gTGofY.js.map} +1 -1
  134. package/build/server/chunks/{24-DC5Qi8Sm.js → 24-ukwP0nYw.js} +2 -2
  135. package/build/server/chunks/{24-DC5Qi8Sm.js.map → 24-ukwP0nYw.js.map} +1 -1
  136. package/build/server/chunks/{27-CJsZbiCR.js → 27-C9kRY1qj.js} +2 -2
  137. package/build/server/chunks/{27-CJsZbiCR.js.map → 27-C9kRY1qj.js.map} +1 -1
  138. package/build/server/chunks/{28-D6UoeYd3.js → 28-X583jLPJ.js} +2 -2
  139. package/build/server/chunks/{28-D6UoeYd3.js.map → 28-X583jLPJ.js.map} +1 -1
  140. package/build/server/chunks/{29-DZgNMmXD.js → 29-PJhSN-Wu.js} +2 -2
  141. package/build/server/chunks/{29-DZgNMmXD.js.map → 29-PJhSN-Wu.js.map} +1 -1
  142. package/build/server/chunks/{3-OhWAE0Wx.js → 3-DZiroZZA.js} +2 -2
  143. package/build/server/chunks/{3-OhWAE0Wx.js.map → 3-DZiroZZA.js.map} +1 -1
  144. package/build/server/chunks/{30-B_GStKPy.js → 30-DvqVphAd.js} +2 -2
  145. package/build/server/chunks/{30-B_GStKPy.js.map → 30-DvqVphAd.js.map} +1 -1
  146. package/build/server/chunks/{5-DLhfWemT.js → 5-QlPeCe4d.js} +2 -2
  147. package/build/server/chunks/{5-DLhfWemT.js.map → 5-QlPeCe4d.js.map} +1 -1
  148. package/build/server/chunks/{6-DnjCwAlp.js → 6-3t8NszBJ.js} +2 -2
  149. package/build/server/chunks/{6-DnjCwAlp.js.map → 6-3t8NszBJ.js.map} +1 -1
  150. package/build/server/chunks/{7-leNovc1s.js → 7-DgFxSLWj.js} +2 -2
  151. package/build/server/chunks/{7-leNovc1s.js.map → 7-DgFxSLWj.js.map} +1 -1
  152. package/build/server/chunks/{8-CAx64_UW.js → 8-BKivPkMd.js} +2 -2
  153. package/build/server/chunks/{8-CAx64_UW.js.map → 8-BKivPkMd.js.map} +1 -1
  154. package/build/server/chunks/{9-Dq-RLXVq.js → 9-COv3kpjW.js} +3 -3
  155. package/build/server/chunks/{9-Dq-RLXVq.js.map → 9-COv3kpjW.js.map} +1 -1
  156. package/build/server/chunks/{_page.svelte-DAu2h8jG.js → _page.svelte-CSZEgmHp.js} +5 -5
  157. package/build/server/chunks/_page.svelte-CSZEgmHp.js.map +1 -0
  158. package/build/server/chunks/{_page.svelte-DFgszLSu.js → _page.svelte-DSPm244d.js} +32 -11
  159. package/build/server/chunks/_page.svelte-DSPm244d.js.map +1 -0
  160. package/build/server/chunks/{_page.svelte-BXyLutv1.js → _page.svelte-DSYaUquf.js} +4 -17
  161. package/build/server/chunks/_page.svelte-DSYaUquf.js.map +1 -0
  162. package/build/server/chunks/{_page.svelte-Dz-6_oW1.js → _page.svelte-DlnKE8Z9.js} +382 -35
  163. package/build/server/chunks/_page.svelte-DlnKE8Z9.js.map +1 -0
  164. package/build/server/chunks/{_server.ts-aUFaewu4.js → _server.ts-17aVSHOa.js} +4 -3
  165. package/build/server/chunks/{_server.ts-aUFaewu4.js.map → _server.ts-17aVSHOa.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts-BLC5g2H_.js → _server.ts-4eVxyBg6.js} +4 -3
  167. package/build/server/chunks/{_server.ts-BLC5g2H_.js.map → _server.ts-4eVxyBg6.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-BeyEUs6I.js → _server.ts-8ahOmk_6.js} +4 -3
  169. package/build/server/chunks/{_server.ts-BeyEUs6I.js.map → _server.ts-8ahOmk_6.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-DXqr0BIr.js → _server.ts-B0qq-nxh.js} +3 -3
  171. package/build/server/chunks/{_server.ts-DXqr0BIr.js.map → _server.ts-B0qq-nxh.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-BTWwyruR.js → _server.ts-B7X5-4kS.js} +4 -3
  173. package/build/server/chunks/{_server.ts-BTWwyruR.js.map → _server.ts-B7X5-4kS.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-CqCIfPI0.js → _server.ts-B7Z1RMy4.js} +4 -3
  175. package/build/server/chunks/{_server.ts-CqCIfPI0.js.map → _server.ts-B7Z1RMy4.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-CnVtonm0.js → _server.ts-BL7-YPnc.js} +4 -3
  177. package/build/server/chunks/{_server.ts-CnVtonm0.js.map → _server.ts-BL7-YPnc.js.map} +1 -1
  178. package/build/server/chunks/{_server.ts-B-1avpfE.js → _server.ts-BRjl7H1o.js} +4 -3
  179. package/build/server/chunks/{_server.ts-B-1avpfE.js.map → _server.ts-BRjl7H1o.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-k9Y_t-wX.js → _server.ts-B_KQteIy.js} +4 -3
  181. package/build/server/chunks/{_server.ts-k9Y_t-wX.js.map → _server.ts-B_KQteIy.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-Bkr-33U0.js → _server.ts-BiJbME_l.js} +3 -4
  183. package/build/server/chunks/_server.ts-BiJbME_l.js.map +1 -0
  184. package/build/server/chunks/{_server.ts-Dw630Jb2.js → _server.ts-Bq2BT6_L.js} +3 -4
  185. package/build/server/chunks/_server.ts-Bq2BT6_L.js.map +1 -0
  186. package/build/server/chunks/{_server.ts-C3CKmKpW.js → _server.ts-BqsgEogJ.js} +4 -3
  187. package/build/server/chunks/{_server.ts-C3CKmKpW.js.map → _server.ts-BqsgEogJ.js.map} +1 -1
  188. package/build/server/chunks/{_server.ts-C2A_Oiwe.js → _server.ts-BtXdHfbr.js} +4 -3
  189. package/build/server/chunks/{_server.ts-C2A_Oiwe.js.map → _server.ts-BtXdHfbr.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-EOYMi5x8.js → _server.ts-C-8S5O0H.js} +4 -3
  191. package/build/server/chunks/{_server.ts-EOYMi5x8.js.map → _server.ts-C-8S5O0H.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-BUEUSAPc.js → _server.ts-C3sOwl5l.js} +4 -3
  193. package/build/server/chunks/{_server.ts-BUEUSAPc.js.map → _server.ts-C3sOwl5l.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-BHizTPVg.js → _server.ts-CKvfxWeo.js} +4 -3
  195. package/build/server/chunks/{_server.ts-BHizTPVg.js.map → _server.ts-CKvfxWeo.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-D9iabXf8.js → _server.ts-CMKxt34Z.js} +4 -3
  197. package/build/server/chunks/{_server.ts-D9iabXf8.js.map → _server.ts-CMKxt34Z.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-C-w9ogA2.js → _server.ts-COWH7HN8.js} +4 -3
  199. package/build/server/chunks/{_server.ts-C-w9ogA2.js.map → _server.ts-COWH7HN8.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-Dp3_io85.js → _server.ts-CUcFObAP.js} +4 -3
  201. package/build/server/chunks/{_server.ts-Dp3_io85.js.map → _server.ts-CUcFObAP.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-Bm14E-bx.js → _server.ts-CW_1VZGk.js} +4 -3
  203. package/build/server/chunks/{_server.ts-Bm14E-bx.js.map → _server.ts-CW_1VZGk.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-DWAwxfXk.js → _server.ts-CXYPZtry.js} +4 -3
  205. package/build/server/chunks/{_server.ts-DWAwxfXk.js.map → _server.ts-CXYPZtry.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-C52CTPlo.js → _server.ts-Cbe4naEr.js} +4 -3
  207. package/build/server/chunks/{_server.ts-C52CTPlo.js.map → _server.ts-Cbe4naEr.js.map} +1 -1
  208. package/build/server/chunks/{_server.ts-BIQdiZfW.js → _server.ts-D4mOhrFH.js} +4 -3
  209. package/build/server/chunks/{_server.ts-BIQdiZfW.js.map → _server.ts-D4mOhrFH.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-DzG1eKRC.js → _server.ts-DK7t4rlY.js} +4 -3
  211. package/build/server/chunks/{_server.ts-DzG1eKRC.js.map → _server.ts-DK7t4rlY.js.map} +1 -1
  212. package/build/server/chunks/{_server.ts-BXJAFFdr.js → _server.ts-DMnMoi_a.js} +4 -3
  213. package/build/server/chunks/{_server.ts-BXJAFFdr.js.map → _server.ts-DMnMoi_a.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-BTSLBiLL.js → _server.ts-DgTNMZbG.js} +3 -3
  215. package/build/server/chunks/{_server.ts-BTSLBiLL.js.map → _server.ts-DgTNMZbG.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-DiJ2px88.js → _server.ts-DpkIJe-d.js} +4 -3
  217. package/build/server/chunks/{_server.ts-DiJ2px88.js.map → _server.ts-DpkIJe-d.js.map} +1 -1
  218. package/build/server/chunks/{_server.ts-CpC3cdzG.js → _server.ts-DsFj_8lL.js} +4 -3
  219. package/build/server/chunks/{_server.ts-CpC3cdzG.js.map → _server.ts-DsFj_8lL.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-DcRwP_gQ.js → _server.ts-Dsoq_gsI.js} +3 -3
  221. package/build/server/chunks/{_server.ts-DcRwP_gQ.js.map → _server.ts-Dsoq_gsI.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-BKtKkHZS.js → _server.ts-Du-NpBy4.js} +11 -6
  223. package/build/server/chunks/_server.ts-Du-NpBy4.js.map +1 -0
  224. package/build/server/chunks/{_server.ts-DuC2r20u.js → _server.ts-EnuOtr_j.js} +8 -6
  225. package/build/server/chunks/_server.ts-EnuOtr_j.js.map +1 -0
  226. package/build/server/chunks/_server.ts-ODEutN30.js +75 -0
  227. package/build/server/chunks/_server.ts-ODEutN30.js.map +1 -0
  228. package/build/server/chunks/{_server.ts-BOCvzY_U.js → _server.ts-bONEWPMV.js} +4 -3
  229. package/build/server/chunks/{_server.ts-BOCvzY_U.js.map → _server.ts-bONEWPMV.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-CJ8oDVHC.js → _server.ts-t9_veBtJ.js} +3 -2
  231. package/build/server/chunks/{_server.ts-CJ8oDVHC.js.map → _server.ts-t9_veBtJ.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-DDHHklcd.js → _server.ts-vURDyV-V.js} +4 -3
  233. package/build/server/chunks/{_server.ts-DDHHklcd.js.map → _server.ts-vURDyV-V.js.map} +1 -1
  234. package/build/server/chunks/{access.server-CGwRj2TY.js → access.server-BBglojso.js} +3 -2
  235. package/build/server/chunks/{access.server-CGwRj2TY.js.map → access.server-BBglojso.js.map} +1 -1
  236. package/build/server/chunks/{api-errors-b2AR_m1A.js → api-errors-agQVBoep.js} +21 -3
  237. package/build/server/chunks/api-errors-agQVBoep.js.map +1 -0
  238. package/build/server/chunks/refresh-cw-CiiW6Kvx.js +22 -0
  239. package/build/server/chunks/refresh-cw-CiiW6Kvx.js.map +1 -0
  240. package/build/server/chunks/{resolve.server2-BXKCfGfg.js → resolve.server-BXKCfGfg.js} +1 -1
  241. package/build/server/chunks/resolve.server-BXKCfGfg.js.map +1 -0
  242. package/build/server/chunks/triangle-alert-DuaFagu6.js +20 -0
  243. package/build/server/chunks/triangle-alert-DuaFagu6.js.map +1 -0
  244. package/build/server/index.js +1 -1
  245. package/build/server/index.js.map +1 -1
  246. package/build/server/manifest.js +67 -60
  247. package/build/server/manifest.js.map +1 -1
  248. package/package.json +5 -5
  249. package/build/client/_app/immutable/assets/0.D882LCPK.css +0 -1
  250. package/build/client/_app/immutable/assets/0.D882LCPK.css.br +0 -0
  251. package/build/client/_app/immutable/assets/0.D882LCPK.css.gz +0 -0
  252. package/build/client/_app/immutable/chunks/7DlWX6a_.js.br +0 -0
  253. package/build/client/_app/immutable/chunks/7DlWX6a_.js.gz +0 -0
  254. package/build/client/_app/immutable/chunks/7OGPJeUM.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/7OGPJeUM.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/C_pyGEAV.js.br +0 -0
  257. package/build/client/_app/immutable/chunks/C_pyGEAV.js.gz +0 -0
  258. package/build/client/_app/immutable/chunks/D0kO1GS0.js.br +0 -0
  259. package/build/client/_app/immutable/chunks/D0kO1GS0.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/DGr_EUx4.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/DGr_EUx4.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/DT5O4b-_.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/DT5O4b-_.js.gz +0 -0
  264. package/build/client/_app/immutable/entry/app.DFWfpqb0.js +0 -2
  265. package/build/client/_app/immutable/entry/app.DFWfpqb0.js.br +0 -0
  266. package/build/client/_app/immutable/entry/app.DFWfpqb0.js.gz +0 -0
  267. package/build/client/_app/immutable/entry/start.-fCdkvY6.js +0 -1
  268. package/build/client/_app/immutable/entry/start.-fCdkvY6.js.br +0 -2
  269. package/build/client/_app/immutable/entry/start.-fCdkvY6.js.gz +0 -0
  270. package/build/client/_app/immutable/nodes/1.NC0eJqYH.js.br +0 -0
  271. package/build/client/_app/immutable/nodes/1.NC0eJqYH.js.gz +0 -0
  272. package/build/client/_app/immutable/nodes/11.DegwSwS4.js +0 -2
  273. package/build/client/_app/immutable/nodes/11.DegwSwS4.js.br +0 -0
  274. package/build/client/_app/immutable/nodes/11.DegwSwS4.js.gz +0 -0
  275. package/build/client/_app/immutable/nodes/13.DoCSNk6B.js.br +0 -0
  276. package/build/client/_app/immutable/nodes/13.DoCSNk6B.js.gz +0 -0
  277. package/build/client/_app/immutable/nodes/14.CGaF6W-i.js.br +0 -0
  278. package/build/client/_app/immutable/nodes/14.CGaF6W-i.js.gz +0 -0
  279. package/build/client/_app/immutable/nodes/15.CCL52sqQ.js +0 -16
  280. package/build/client/_app/immutable/nodes/15.CCL52sqQ.js.br +0 -0
  281. package/build/client/_app/immutable/nodes/15.CCL52sqQ.js.gz +0 -0
  282. package/build/client/_app/immutable/nodes/16.CK0W0845.js.br +0 -0
  283. package/build/client/_app/immutable/nodes/16.CK0W0845.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/17.BLCtgsLP.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/17.BLCtgsLP.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/19.Dx5b18Qv.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/19.Dx5b18Qv.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/2.BxDq9fgp.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/2.BxDq9fgp.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/20.Q9tlws_F.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/20.Q9tlws_F.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/21.Bbzr4DP5.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/21.Bbzr4DP5.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/23.fhNJrKbS.js +0 -16
  295. package/build/client/_app/immutable/nodes/23.fhNJrKbS.js.br +0 -0
  296. package/build/client/_app/immutable/nodes/23.fhNJrKbS.js.gz +0 -0
  297. package/build/client/_app/immutable/nodes/24.B-_Qylvh.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/24.B-_Qylvh.js.gz +0 -0
  299. package/build/client/_app/immutable/nodes/27.CKQ1fXCy.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/27.CKQ1fXCy.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/28.COTXtjAd.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/28.COTXtjAd.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/29.C1uWJrpk.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/29.C1uWJrpk.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/3.D5k6nFAD.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/3.D5k6nFAD.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/30.iBr8WuRu.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/30.iBr8WuRu.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/5.BNy6hwdy.js.br +0 -0
  310. package/build/client/_app/immutable/nodes/5.BNy6hwdy.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/6.CaYtdaf2.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/6.CaYtdaf2.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/7.C1W_YRKU.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/7.C1W_YRKU.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/8.B9sIt6MS.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/8.B9sIt6MS.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/9.K1-nNvYh.js +0 -1
  318. package/build/client/_app/immutable/nodes/9.K1-nNvYh.js.br +0 -0
  319. package/build/client/_app/immutable/nodes/9.K1-nNvYh.js.gz +0 -0
  320. package/build/server/chunks/11-CgEVkMbf.js.map +0 -1
  321. package/build/server/chunks/15-BqYjEVaA.js.map +0 -1
  322. package/build/server/chunks/20-DGeV-MBL.js.map +0 -1
  323. package/build/server/chunks/_page.svelte-BXyLutv1.js.map +0 -1
  324. package/build/server/chunks/_page.svelte-DAu2h8jG.js.map +0 -1
  325. package/build/server/chunks/_page.svelte-DFgszLSu.js.map +0 -1
  326. package/build/server/chunks/_page.svelte-Dz-6_oW1.js.map +0 -1
  327. package/build/server/chunks/_server.ts-BKtKkHZS.js.map +0 -1
  328. package/build/server/chunks/_server.ts-Bkr-33U0.js.map +0 -1
  329. package/build/server/chunks/_server.ts-DuC2r20u.js.map +0 -1
  330. package/build/server/chunks/_server.ts-Dw630Jb2.js.map +0 -1
  331. package/build/server/chunks/api-errors-b2AR_m1A.js.map +0 -1
  332. package/build/server/chunks/resolve.server-C5wZnxS_.js +0 -11
  333. package/build/server/chunks/resolve.server-C5wZnxS_.js.map +0 -1
  334. package/build/server/chunks/resolve.server2-BXKCfGfg.js.map +0 -1
  335. /package/build/client/_app/immutable/nodes/{0.kNRjuE1r.js → 0.Y-xP5pet.js} +0 -0
  336. /package/build/client/_app/immutable/nodes/{0.kNRjuE1r.js.br → 0.Y-xP5pet.js.br} +0 -0
  337. /package/build/client/_app/immutable/nodes/{0.kNRjuE1r.js.gz → 0.Y-xP5pet.js.gz} +0 -0
@@ -1,9 +1,11 @@
1
- import { a3 as head, T as escape_html, n as attr_class, aD as stringify, Q as ensure_array_like, aA as spread_props } from './renderer-x4cX3Aau.js';
1
+ import { a3 as head, T as escape_html, n as attr_class, aD as stringify, m as attr, Q as ensure_array_like, I as derived, aA as spread_props } from './renderer-x4cX3Aau.js';
2
2
  import { C as Card, a as Card_content } from './card-content-CLRedGcu.js';
3
3
  import { C as Card_header, a as Card_title } from './card-title-f3nMy4Cc.js';
4
4
  import { C as Card_description } from './card-description-Cvz9Nl_J.js';
5
5
  import { B as Button } from './button-1GF48U_O.js';
6
+ import { R as Refresh_cw } from './refresh-cw-CiiW6Kvx.js';
6
7
  import { I as Icon } from './Icon2-DbkwAOkZ.js';
8
+ import { T as Triangle_alert } from './triangle-alert-DuaFagu6.js';
7
9
  import { R as Root, b as Alert_dialog_content, e as Alert_dialog_header, d as Alert_dialog_footer, f as Alert_dialog_title, c as Alert_dialog_description, a as Alert_dialog_cancel, A as Alert_dialog_action } from './index4-DSWKKOFB.js';
8
10
  import { S as SectionHeader } from './SectionHeader-CjuQsFLx.js';
9
11
  import 'clsx';
@@ -17,21 +19,148 @@ import './index-server-DMc-UvjC.js';
17
19
  import './scroll-lock-BVxv0Dsn.js';
18
20
  import './events-qfxQNxtp.js';
19
21
 
20
- function Refresh_cw($$renderer, $$props) {
22
+ function Circle_check($$renderer, $$props) {
21
23
  let { $$slots, $$events, ...props } = $$props;
22
24
  const iconNode = [
25
+ ["circle", { "cx": "12", "cy": "12", "r": "10" }],
26
+ ["path", { "d": "m9 12 2 2 4-4" }]
27
+ ];
28
+ Icon($$renderer, spread_props([{ name: "circle-check" }, props, { iconNode }]));
29
+ }
30
+ function Circle_x($$renderer, $$props) {
31
+ let { $$slots, $$events, ...props } = $$props;
32
+ const iconNode = [
33
+ ["circle", { "cx": "12", "cy": "12", "r": "10" }],
34
+ ["path", { "d": "m15 9-6 6" }],
35
+ ["path", { "d": "m9 9 6 6" }]
36
+ ];
37
+ Icon($$renderer, spread_props([{ name: "circle-x" }, props, { iconNode }]));
38
+ }
39
+ function Info($$renderer, $$props) {
40
+ let { $$slots, $$events, ...props } = $$props;
41
+ const iconNode = [
42
+ ["circle", { "cx": "12", "cy": "12", "r": "10" }],
43
+ ["path", { "d": "M12 16v-4" }],
44
+ ["path", { "d": "M12 8h.01" }]
45
+ ];
46
+ Icon($$renderer, spread_props([{ name: "info" }, props, { iconNode }]));
47
+ }
48
+ function Minus($$renderer, $$props) {
49
+ let { $$slots, $$events, ...props } = $$props;
50
+ const iconNode = [["path", { "d": "M5 12h14" }]];
51
+ Icon($$renderer, spread_props([{ name: "minus" }, props, { iconNode }]));
52
+ }
53
+ function Stethoscope($$renderer, $$props) {
54
+ let { $$slots, $$events, ...props } = $$props;
55
+ const iconNode = [
56
+ ["path", { "d": "M11 2v2" }],
57
+ ["path", { "d": "M5 2v2" }],
23
58
  [
24
59
  "path",
25
- { "d": "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" }
26
- ],
27
- ["path", { "d": "M21 3v5h-5" }],
28
- [
29
- "path",
30
- { "d": "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" }
60
+ {
61
+ "d": "M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1"
62
+ }
31
63
  ],
32
- ["path", { "d": "M8 16H3v5" }]
64
+ ["path", { "d": "M8 15a6 6 0 0 0 12 0v-3" }],
65
+ ["circle", { "cx": "20", "cy": "10", "r": "2" }]
33
66
  ];
34
- Icon($$renderer, spread_props([{ name: "refresh-cw" }, props, { iconNode }]));
67
+ Icon($$renderer, spread_props([{ name: "stethoscope" }, props, { iconNode }]));
68
+ }
69
+ function firstMatch(logs, re) {
70
+ const m = re.exec(logs);
71
+ return m ? m[1] : void 0;
72
+ }
73
+ function parseVersions(logs) {
74
+ const avail = /Available:\s*(\d+\.\d+\.\d+[^\s]*)\s*(?:→|->)\s*(\d+\.\d+\.\d+[^\s]*)/.exec(logs);
75
+ if (avail) return { from: avail[1], to: avail[2] };
76
+ const from = firstMatch(logs, /Current @selvajs\/selva:\s*v?(\d+\.\d+\.\d+[^\s]*)/);
77
+ const to = firstMatch(logs, /New @selvajs\/selva:\s*v?(\d+\.\d+\.\d+[^\s]*)/);
78
+ return { from, to };
79
+ }
80
+ function has(logs, needle) {
81
+ return logs.includes(needle);
82
+ }
83
+ function deriveOutcome(exitCode, logs) {
84
+ const { from, to } = parseVersions(logs);
85
+ if (exitCode === null) {
86
+ return { severity: "pending", title: "Update in progress…" };
87
+ }
88
+ if (exitCode === 6 || has(logs, "Manual recovery required") || has(logs, "manual intervention required")) {
89
+ return {
90
+ severity: "critical",
91
+ title: "Update failed AND rollback failed — the app may be OFFLINE",
92
+ detail: "Both the new version and the rollback failed their health check. SSH into the server and run: `pm2 logs selva-compute`, then `pm2 start ecosystem.config.cjs` from the deployment directory.",
93
+ from,
94
+ to
95
+ };
96
+ }
97
+ if (exitCode === -2) {
98
+ return {
99
+ severity: "critical",
100
+ title: "App did not come back online within 5 minutes",
101
+ detail: "The update may still be finishing in the background, or the new process is crash-looping. Check `pm2 logs selva-compute`. Do not re-run the update until you have confirmed the current state.",
102
+ from,
103
+ to
104
+ };
105
+ }
106
+ if (exitCode === 5 || has(logs, "Rolled back")) {
107
+ return {
108
+ severity: "warning",
109
+ title: `Update failed — safely rolled back${from ? ` to ${from}` : ""}. The app is online.`,
110
+ detail: "The new version failed its health check, so the previous version was restored and is serving normally. Review the log below for why the new version failed before retrying.",
111
+ from,
112
+ to
113
+ };
114
+ }
115
+ if (has(logs, "npm cache may be stale") || has(logs, "No version change")) {
116
+ return {
117
+ severity: "warning",
118
+ title: "No version change — npm installed the same version.",
119
+ detail: "Your npm cache may be stale. On the server: `npm cache clean --force`, remove node_modules + package-lock.json, then `npm install --prefer-online`.",
120
+ from,
121
+ to
122
+ };
123
+ }
124
+ if (exitCode === 0) {
125
+ if (has(logs, "Already on the latest version") || has(logs, "Nothing to do")) {
126
+ return {
127
+ severity: "info",
128
+ title: `Already up to date${from ? ` (${from})` : ""} — nothing to install.`,
129
+ detail: "No changes were made and the app was not restarted.",
130
+ from,
131
+ to
132
+ };
133
+ }
134
+ if (from && to && from !== to) {
135
+ return {
136
+ severity: "success",
137
+ title: `Updated ${from} → ${to}. The app is back online.`,
138
+ from,
139
+ to
140
+ };
141
+ }
142
+ if (to) {
143
+ return {
144
+ severity: "success",
145
+ title: `Update complete — now on ${to}. The app is back online.`,
146
+ from,
147
+ to
148
+ };
149
+ }
150
+ return {
151
+ severity: "success",
152
+ title: "Update completed and the app is back online.",
153
+ from,
154
+ to
155
+ };
156
+ }
157
+ return {
158
+ severity: "critical",
159
+ title: `Update failed (exit code ${exitCode}).`,
160
+ detail: "The update did not complete cleanly. Review the log below, and check `pm2 logs selva-compute` to confirm whether the app is currently online.",
161
+ from,
162
+ to
163
+ };
35
164
  }
36
165
  function UpdateSection($$renderer, $$props) {
37
166
  $$renderer.component(($$renderer2) => {
@@ -44,23 +173,44 @@ function UpdateSection($$renderer, $$props) {
44
173
  onRun
45
174
  } = $$props;
46
175
  let showRunConfirm = false;
176
+ let outcome = derived(() => exitCode === null ? null : deriveOutcome(exitCode, logs));
177
+ const severityStyles = {
178
+ success: {
179
+ text: "text-success",
180
+ border: "border-success/40",
181
+ bg: "bg-success/10",
182
+ icon: Circle_check
183
+ },
184
+ info: {
185
+ text: "text-foreground",
186
+ border: "border-border",
187
+ bg: "bg-muted/50",
188
+ icon: Info
189
+ },
190
+ warning: {
191
+ text: "text-warning",
192
+ border: "border-warning/40",
193
+ bg: "bg-warning/10",
194
+ icon: Triangle_alert
195
+ },
196
+ critical: {
197
+ text: "text-destructive",
198
+ border: "border-destructive/40",
199
+ bg: "bg-destructive/10",
200
+ icon: Circle_x
201
+ },
202
+ pending: {
203
+ text: "text-muted-foreground",
204
+ border: "border-border",
205
+ bg: "bg-muted/50",
206
+ icon: Refresh_cw
207
+ }
208
+ };
47
209
  function buttonLabel() {
48
210
  if (isRestarting) return "Restarting & verifying…";
49
211
  if (isRunning) return "Running…";
50
212
  return "Run Update";
51
213
  }
52
- function statusMessage() {
53
- if (exitCode === null) return null;
54
- if (exitCode === 0) return { text: "✓ Update completed successfully", tone: "success" };
55
- if (exitCode === -2) return {
56
- text: "⚠ App did not respond within 5 minutes after restart — check PM2 logs",
57
- tone: "destructive"
58
- };
59
- return {
60
- text: `Update failed (exit code ${exitCode})`,
61
- tone: "destructive"
62
- };
63
- }
64
214
  function handleRunClick() {
65
215
  showRunConfirm = true;
66
216
  }
@@ -150,17 +300,41 @@ function UpdateSection($$renderer, $$props) {
150
300
  $$renderer4.push("<!--[-1-->");
151
301
  }
152
302
  $$renderer4.push(`<!--]--> `);
153
- if (logs) {
303
+ if (outcome()) {
154
304
  $$renderer4.push("<!--[0-->");
155
- $$renderer4.push(`<div class="space-y-2"><h4 class="text-sm font-medium">Update Logs</h4> <pre class="bg-muted text-foreground max-h-96 overflow-auto rounded-md p-4 font-mono text-xs">${escape_html(logs)}</pre> `);
156
- if (statusMessage()) {
305
+ const style = severityStyles[outcome().severity];
306
+ const Icon2 = style.icon;
307
+ $$renderer4.push(`<div${attr_class(`flex items-start gap-3 rounded-md border px-3 py-3 ${stringify(style.border)} ${stringify(style.bg)}`)}${attr("role", outcome().severity === "critical" ? "alert" : "status")}${attr("aria-live", outcome().severity === "critical" ? "assertive" : "polite")}>`);
308
+ if (Icon2) {
309
+ $$renderer4.push("<!--[-->");
310
+ Icon2($$renderer4, { class: `mt-0.5 h-5 w-5 shrink-0 ${stringify(style.text)}` });
311
+ $$renderer4.push("<!--]-->");
312
+ } else {
313
+ $$renderer4.push("<!--[!-->");
314
+ $$renderer4.push("<!--]-->");
315
+ }
316
+ $$renderer4.push(` <div class="min-w-0 space-y-1"><p${attr_class(`text-sm font-medium ${stringify(style.text)}`)}>${escape_html(outcome().title)}</p> `);
317
+ if (outcome().from && outcome().to && outcome().from !== outcome().to) {
157
318
  $$renderer4.push("<!--[0-->");
158
- const msg = statusMessage();
159
- $$renderer4.push(`<p${attr_class(`text-sm font-medium ${stringify(msg.tone === "success" ? "text-success" : msg.tone === "destructive" ? "text-destructive" : "text-muted-foreground")}`)}>${escape_html(msg.text)}</p>`);
319
+ $$renderer4.push(`<p class="text-muted-foreground font-mono text-xs">${escape_html(outcome().from)} → ${escape_html(outcome().to)}</p>`);
160
320
  } else {
161
321
  $$renderer4.push("<!--[-1-->");
162
322
  }
163
- $$renderer4.push(`<!--]--></div>`);
323
+ $$renderer4.push(`<!--]--> `);
324
+ if (outcome().detail) {
325
+ $$renderer4.push("<!--[0-->");
326
+ $$renderer4.push(`<p class="text-muted-foreground text-xs whitespace-pre-line">${escape_html(outcome().detail)}</p>`);
327
+ } else {
328
+ $$renderer4.push("<!--[-1-->");
329
+ }
330
+ $$renderer4.push(`<!--]--></div></div>`);
331
+ } else {
332
+ $$renderer4.push("<!--[-1-->");
333
+ }
334
+ $$renderer4.push(`<!--]--> `);
335
+ if (logs) {
336
+ $$renderer4.push("<!--[0-->");
337
+ $$renderer4.push(`<div class="space-y-2"><h4 class="text-sm font-medium">Update Logs</h4> <pre class="bg-muted text-foreground max-h-96 overflow-auto rounded-md p-4 font-mono text-xs">${escape_html(logs)}</pre></div>`);
164
338
  } else {
165
339
  $$renderer4.push("<!--[-1-->");
166
340
  }
@@ -292,6 +466,168 @@ function UpdateSection($$renderer, $$props) {
292
466
  }
293
467
  });
294
468
  }
469
+ function HealthSection($$renderer, $$props) {
470
+ $$renderer.component(($$renderer2) => {
471
+ let running = false;
472
+ let report = null;
473
+ let error = null;
474
+ const statusStyle = {
475
+ ok: { text: "text-success", icon: Circle_check, label: "OK" },
476
+ degraded: { text: "text-warning", icon: Triangle_alert, label: "Degraded" },
477
+ error: { text: "text-destructive", icon: Circle_x, label: "Error" },
478
+ not_applicable: { text: "text-muted-foreground", icon: Minus, label: "N/A" }
479
+ };
480
+ async function runCheck() {
481
+ running = true;
482
+ error = null;
483
+ try {
484
+ const res = await fetch("/admin/api/system/health", { cache: "no-store" });
485
+ if (!res.ok) {
486
+ error = `Health check request failed (HTTP ${res.status}).`;
487
+ report = null;
488
+ return;
489
+ }
490
+ report = await res.json();
491
+ } catch (err) {
492
+ error = err instanceof Error ? err.message : "Health check request failed.";
493
+ report = null;
494
+ } finally {
495
+ running = false;
496
+ }
497
+ }
498
+ if (Card) {
499
+ $$renderer2.push("<!--[-->");
500
+ Card($$renderer2, {
501
+ children: ($$renderer3) => {
502
+ if (Card_header) {
503
+ $$renderer3.push("<!--[-->");
504
+ Card_header($$renderer3, {
505
+ children: ($$renderer4) => {
506
+ if (Card_title) {
507
+ $$renderer4.push("<!--[-->");
508
+ Card_title($$renderer4, {
509
+ class: "text-sm font-medium",
510
+ children: ($$renderer5) => {
511
+ $$renderer5.push(`<!---->System health`);
512
+ },
513
+ $$slots: { default: true }
514
+ });
515
+ $$renderer4.push("<!--]-->");
516
+ } else {
517
+ $$renderer4.push("<!--[!-->");
518
+ $$renderer4.push("<!--]-->");
519
+ }
520
+ $$renderer4.push(` `);
521
+ if (Card_description) {
522
+ $$renderer4.push("<!--[-->");
523
+ Card_description($$renderer4, {
524
+ children: ($$renderer5) => {
525
+ $$renderer5.push(`<!---->Re-runs runtime integrity checks live (not the cached boot snapshot), so results reflect the
526
+ current state after any fix.`);
527
+ },
528
+ $$slots: { default: true }
529
+ });
530
+ $$renderer4.push("<!--]-->");
531
+ } else {
532
+ $$renderer4.push("<!--[!-->");
533
+ $$renderer4.push("<!--]-->");
534
+ }
535
+ },
536
+ $$slots: { default: true }
537
+ });
538
+ $$renderer3.push("<!--]-->");
539
+ } else {
540
+ $$renderer3.push("<!--[!-->");
541
+ $$renderer3.push("<!--]-->");
542
+ }
543
+ $$renderer3.push(` `);
544
+ if (Card_content) {
545
+ $$renderer3.push("<!--[-->");
546
+ Card_content($$renderer3, {
547
+ class: "space-y-4",
548
+ children: ($$renderer4) => {
549
+ Button($$renderer4, {
550
+ onclick: runCheck,
551
+ disabled: running,
552
+ variant: "outline",
553
+ children: ($$renderer5) => {
554
+ Stethoscope($$renderer5, {
555
+ class: `mr-2 h-4 w-4 ${stringify(running ? "animate-pulse" : "")}`
556
+ });
557
+ $$renderer5.push(`<!----> ${escape_html(running ? "Checking…" : "Run health check")}`);
558
+ },
559
+ $$slots: { default: true }
560
+ });
561
+ $$renderer4.push(`<!----> `);
562
+ if (error) {
563
+ $$renderer4.push("<!--[0-->");
564
+ $$renderer4.push(`<div class="border-destructive/40 bg-destructive/10 text-destructive flex items-start gap-2 rounded-md border px-3 py-2 text-sm" role="alert">`);
565
+ Circle_x($$renderer4, { class: "mt-0.5 h-4 w-4 shrink-0" });
566
+ $$renderer4.push(`<!----> <span>${escape_html(error)}</span></div>`);
567
+ } else {
568
+ $$renderer4.push("<!--[-1-->");
569
+ }
570
+ $$renderer4.push(`<!--]--> `);
571
+ if (report) {
572
+ $$renderer4.push("<!--[0-->");
573
+ const overall = statusStyle[report.overall];
574
+ const OverallIcon = overall.icon;
575
+ $$renderer4.push(`<div class="space-y-3"><div${attr_class(`flex items-center gap-2 text-sm font-medium ${stringify(overall.text)}`)}>`);
576
+ if (OverallIcon) {
577
+ $$renderer4.push("<!--[-->");
578
+ OverallIcon($$renderer4, { class: "h-5 w-5" });
579
+ $$renderer4.push("<!--]-->");
580
+ } else {
581
+ $$renderer4.push("<!--[!-->");
582
+ $$renderer4.push("<!--]-->");
583
+ }
584
+ $$renderer4.push(` <span>${escape_html(report.overall === "ok" ? "All checks passed" : report.overall === "degraded" ? "Attention needed" : report.overall === "error" ? "Check failed to run" : "No applicable checks")}</span> <span class="text-muted-foreground ml-auto text-xs font-normal">${escape_html(new Date(report.checkedAt).toLocaleTimeString())}</span></div> <div class="divide-y rounded-lg border"><!--[-->`);
585
+ const each_array = ensure_array_like(report.checks);
586
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
587
+ let check = each_array[$$index];
588
+ const style = statusStyle[check.status];
589
+ const Icon2 = style.icon;
590
+ $$renderer4.push(`<div class="flex items-start gap-3 px-4 py-3">`);
591
+ if (Icon2) {
592
+ $$renderer4.push("<!--[-->");
593
+ Icon2($$renderer4, { class: `mt-0.5 h-4 w-4 shrink-0 ${stringify(style.text)}` });
594
+ $$renderer4.push("<!--]-->");
595
+ } else {
596
+ $$renderer4.push("<!--[!-->");
597
+ $$renderer4.push("<!--]-->");
598
+ }
599
+ $$renderer4.push(` <div class="min-w-0 flex-1 space-y-1"><div class="flex items-center justify-between gap-2"><span class="text-sm font-medium">${escape_html(check.label)}</span> <span${attr_class(`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${stringify(style.text)}`)}>${escape_html(style.label)}</span></div> <p class="text-muted-foreground text-xs">${escape_html(check.summary)}</p> `);
600
+ if (check.remediation) {
601
+ $$renderer4.push("<!--[0-->");
602
+ $$renderer4.push(`<p class="text-foreground text-xs">${escape_html(check.remediation)}</p>`);
603
+ } else {
604
+ $$renderer4.push("<!--[-1-->");
605
+ }
606
+ $$renderer4.push(`<!--]--></div></div>`);
607
+ }
608
+ $$renderer4.push(`<!--]--></div></div>`);
609
+ } else {
610
+ $$renderer4.push("<!--[-1-->");
611
+ }
612
+ $$renderer4.push(`<!--]-->`);
613
+ },
614
+ $$slots: { default: true }
615
+ });
616
+ $$renderer3.push("<!--]-->");
617
+ } else {
618
+ $$renderer3.push("<!--[!-->");
619
+ $$renderer3.push("<!--]-->");
620
+ }
621
+ },
622
+ $$slots: { default: true }
623
+ });
624
+ $$renderer2.push("<!--]-->");
625
+ } else {
626
+ $$renderer2.push("<!--[!-->");
627
+ $$renderer2.push("<!--]-->");
628
+ }
629
+ });
630
+ }
295
631
  function _page($$renderer, $$props) {
296
632
  $$renderer.component(($$renderer2) => {
297
633
  let { data } = $$props;
@@ -324,6 +660,14 @@ function _page($$renderer, $$props) {
324
660
  return null;
325
661
  }
326
662
  }
663
+ function exitCodeFromLog(log) {
664
+ if (/\bManual recovery required\b/.test(log)) return 6;
665
+ if (/\bRolled back to .* — previous version is online\b/.test(log)) return 5;
666
+ if (/New process failed health check/.test(log) && !/Rolled back/.test(log)) return 3;
667
+ if (/\[FATAL\]/.test(log) && !/\[DONE\]/.test(log)) return 1;
668
+ if (/\[DONE\]/.test(log)) return 0;
669
+ return null;
670
+ }
327
671
  async function waitForAppRestart(previousCommit) {
328
672
  updateLogs += "\nWaiting for app to come back online…\n";
329
673
  await new Promise((r) => setTimeout(r, 2e3));
@@ -337,10 +681,7 @@ function _page($$renderer, $$props) {
337
681
  if (health) {
338
682
  if (previousCommit && health.commit) {
339
683
  if (health.commit !== previousCommit) {
340
- updateLogs += `
341
- ✓ App is back online on new commit ${health.commit.slice(0, 7)}
342
- `;
343
- updateExitCode = 0;
684
+ updateExitCode = exitCodeFromLog(updateLogs) ?? 0;
344
685
  updateRunning = false;
345
686
  updateRestarting = false;
346
687
  return;
@@ -349,8 +690,7 @@ function _page($$renderer, $$props) {
349
690
  } else {
350
691
  consecutiveOk += 1;
351
692
  if (consecutiveOk >= 2) {
352
- updateLogs += "\n✓ App is back online!\n";
353
- updateExitCode = 0;
693
+ updateExitCode = exitCodeFromLog(updateLogs) ?? 0;
354
694
  updateRunning = false;
355
695
  updateRestarting = false;
356
696
  return;
@@ -526,6 +866,13 @@ function _page($$renderer, $$props) {
526
866
  $$renderer2.push("<!--]-->");
527
867
  }
528
868
  $$renderer2.push(` `);
869
+ if (data.isInstanceAdmin) {
870
+ $$renderer2.push("<!--[0-->");
871
+ HealthSection($$renderer2);
872
+ } else {
873
+ $$renderer2.push("<!--[-1-->");
874
+ }
875
+ $$renderer2.push(`<!--]--> `);
529
876
  if (data.canManageUpdates) {
530
877
  $$renderer2.push("<!--[0-->");
531
878
  UpdateSection($$renderer2, {
@@ -544,4 +891,4 @@ function _page($$renderer, $$props) {
544
891
  }
545
892
 
546
893
  export { _page as default };
547
- //# sourceMappingURL=_page.svelte-Dz-6_oW1.js.map
894
+ //# sourceMappingURL=_page.svelte-DlnKE8Z9.js.map