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

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 (342) 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/{DOWJsT_T.js → 37oeDbOM.js} +1 -1
  6. package/build/client/_app/immutable/chunks/37oeDbOM.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/{DOWJsT_T.js.gz → 37oeDbOM.js.gz} +0 -0
  8. package/build/client/_app/immutable/chunks/{DHRKaBFV.js → BMMTxmQF.js} +2 -2
  9. package/build/client/_app/immutable/chunks/BMMTxmQF.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/BMMTxmQF.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/D7U2TZGX.js +5 -0
  12. package/build/client/_app/immutable/chunks/D7U2TZGX.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/D7U2TZGX.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{BEuC-NYT.js → DhPCzSpa.js} +1 -1
  15. package/build/client/_app/immutable/chunks/DhPCzSpa.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/DhPCzSpa.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/HlgKB0Yv.js +1 -0
  18. package/build/client/_app/immutable/chunks/HlgKB0Yv.js.br +2 -0
  19. package/build/client/_app/immutable/chunks/HlgKB0Yv.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.D_h1885H.js} +2 -2
  24. package/build/client/_app/immutable/entry/app.D_h1885H.js.br +0 -0
  25. package/build/client/_app/immutable/entry/app.D_h1885H.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/start.KkDWne9K.js +1 -0
  27. package/build/client/_app/immutable/entry/start.KkDWne9K.js.br +0 -0
  28. package/build/client/_app/immutable/entry/start.KkDWne9K.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.m2br4sx_.js} +1 -1
  33. package/build/client/_app/immutable/nodes/1.m2br4sx_.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/1.m2br4sx_.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/4.C6POwnGO.js +130 -0
  36. package/build/client/_app/immutable/nodes/4.C6POwnGO.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/4.C6POwnGO.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{5.WMP0f8pf.js → 5.BoZ0ezyr.js} +2 -2
  39. package/build/client/_app/immutable/nodes/5.BoZ0ezyr.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/5.BoZ0ezyr.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{6.9o6Bephx.js → 6.D3HpNODC.js} +1 -1
  42. package/build/client/_app/immutable/nodes/6.D3HpNODC.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/6.D3HpNODC.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{7._N3I_xWy.js → 7.Cldb-l42.js} +1 -1
  45. package/build/client/_app/immutable/nodes/7.Cldb-l42.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/7.Cldb-l42.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{8.aWZ5mSKB.js → 8.BWkb2W3i.js} +1 -1
  48. package/build/client/_app/immutable/nodes/8.BWkb2W3i.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/8.BWkb2W3i.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-CvpyJciZ.js +9 -0
  56. package/build/server/chunks/{1-BdcHiFUZ.js.map → 1-CvpyJciZ.js.map} +1 -1
  57. package/build/server/chunks/{10-DMi_4x3S.js → 10-CX8_71GH.js} +4 -4
  58. package/build/server/chunks/{10-DMi_4x3S.js.map → 10-CX8_71GH.js.map} +1 -1
  59. package/build/server/chunks/4-CGNm9qY9.js +9 -0
  60. package/build/server/chunks/{4-siztlnPA.js.map → 4-CGNm9qY9.js.map} +1 -1
  61. package/build/server/chunks/5-CCrG3Zq1.js +9 -0
  62. package/build/server/chunks/{5-DR1iBcbj.js.map → 5-CCrG3Zq1.js.map} +1 -1
  63. package/build/server/chunks/6-CJd5ozaP.js +9 -0
  64. package/build/server/chunks/{6-BdZadUUO.js.map → 6-CJd5ozaP.js.map} +1 -1
  65. package/build/server/chunks/7-Bh7s1hZ3.js +9 -0
  66. package/build/server/chunks/{7-CjmZOzkF.js.map → 7-Bh7s1hZ3.js.map} +1 -1
  67. package/build/server/chunks/{8-DVpEHTHq.js → 8-CbIypXYv.js} +3 -3
  68. package/build/server/chunks/{8-DVpEHTHq.js.map → 8-CbIypXYv.js.map} +1 -1
  69. package/build/server/chunks/{ChatMessage-BNxQgrRW.js → ChatMessage-BAWjgbc_.js} +2 -2
  70. package/build/server/chunks/{ChatMessage-BNxQgrRW.js.map → ChatMessage-BAWjgbc_.js.map} +1 -1
  71. package/build/server/chunks/{Navbar-UVOusnw-.js → Navbar-Bdk7TDAb.js} +4 -4
  72. package/build/server/chunks/{Navbar-UVOusnw-.js.map → Navbar-Bdk7TDAb.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-B7FQDg28.js → _page.svelte-2gtLQdWF.js} +6 -6
  76. package/build/server/chunks/{_page.svelte-B7FQDg28.js.map → _page.svelte-2gtLQdWF.js.map} +1 -1
  77. package/build/server/chunks/{_page.svelte-B5xh8SJ5.js → _page.svelte-CUeuGP5U.js} +7 -7
  78. package/build/server/chunks/{_page.svelte-B5xh8SJ5.js.map → _page.svelte-CUeuGP5U.js.map} +1 -1
  79. package/build/server/chunks/{_page.svelte-D4Zivreu.js → _page.svelte-Cjok9-7E.js} +3 -3
  80. package/build/server/chunks/{_page.svelte-D4Zivreu.js.map → _page.svelte-Cjok9-7E.js.map} +1 -1
  81. package/build/server/chunks/{_page.svelte-CMyq-t3Q.js → _page.svelte-F2VqpLAW.js} +185 -32
  82. package/build/server/chunks/_page.svelte-F2VqpLAW.js.map +1 -0
  83. package/build/server/chunks/{_page.svelte-w4SS3sVN.js → _page.svelte-bfGTUogD.js} +6 -6
  84. package/build/server/chunks/{_page.svelte-w4SS3sVN.js.map → _page.svelte-bfGTUogD.js.map} +1 -1
  85. package/build/server/chunks/{_server.ts-CTKPnd64.js → _server.ts-0fJZ0VmG.js} +7 -7
  86. package/build/server/chunks/{_server.ts-CTKPnd64.js.map → _server.ts-0fJZ0VmG.js.map} +1 -1
  87. package/build/server/chunks/{_server.ts-B25xvhiX.js → _server.ts-2jjEL-tJ.js} +5 -5
  88. package/build/server/chunks/{_server.ts-B25xvhiX.js.map → _server.ts-2jjEL-tJ.js.map} +1 -1
  89. package/build/server/chunks/{_server.ts-bClum6wa.js → _server.ts-2qYNEWJW.js} +5 -5
  90. package/build/server/chunks/{_server.ts-bClum6wa.js.map → _server.ts-2qYNEWJW.js.map} +1 -1
  91. package/build/server/chunks/{_server.ts-D2tkCP8q.js → _server.ts-44XLCjje.js} +5 -5
  92. package/build/server/chunks/{_server.ts-D2tkCP8q.js.map → _server.ts-44XLCjje.js.map} +1 -1
  93. package/build/server/chunks/{_server.ts-BaTXv_bR.js → _server.ts-5x4EV4ZH.js} +5 -5
  94. package/build/server/chunks/{_server.ts-BaTXv_bR.js.map → _server.ts-5x4EV4ZH.js.map} +1 -1
  95. package/build/server/chunks/{_server.ts-Ts6pcZ0d.js → _server.ts-70mUxM22.js} +5 -5
  96. package/build/server/chunks/{_server.ts-Ts6pcZ0d.js.map → _server.ts-70mUxM22.js.map} +1 -1
  97. package/build/server/chunks/{_server.ts-DPw4QRWb.js → _server.ts-7YO0AJyT.js} +5 -5
  98. package/build/server/chunks/{_server.ts-DPw4QRWb.js.map → _server.ts-7YO0AJyT.js.map} +1 -1
  99. package/build/server/chunks/_server.ts-B0cdV0wH.js +89 -0
  100. package/build/server/chunks/_server.ts-B0cdV0wH.js.map +1 -0
  101. package/build/server/chunks/{_server.ts-BCKweCGM.js → _server.ts-B0f-lyzD.js} +4 -4
  102. package/build/server/chunks/{_server.ts-BCKweCGM.js.map → _server.ts-B0f-lyzD.js.map} +1 -1
  103. package/build/server/chunks/{_server.ts-DFhNnn-G.js → _server.ts-B8ExhGgO.js} +5 -5
  104. package/build/server/chunks/{_server.ts-DFhNnn-G.js.map → _server.ts-B8ExhGgO.js.map} +1 -1
  105. package/build/server/chunks/{_server.ts-Dv7xll_B.js → _server.ts-B8l8YmXh.js} +6 -6
  106. package/build/server/chunks/{_server.ts-Dv7xll_B.js.map → _server.ts-B8l8YmXh.js.map} +1 -1
  107. package/build/server/chunks/{_server.ts-B4WEAp6B.js → _server.ts-BBHICsQa.js} +18 -6
  108. package/build/server/chunks/_server.ts-BBHICsQa.js.map +1 -0
  109. package/build/server/chunks/{_server.ts-DjJu23jV.js → _server.ts-BFfdVNpH.js} +5 -5
  110. package/build/server/chunks/{_server.ts-DjJu23jV.js.map → _server.ts-BFfdVNpH.js.map} +1 -1
  111. package/build/server/chunks/{_server.ts-BR_JejQG.js → _server.ts-BI0oEp2m.js} +5 -5
  112. package/build/server/chunks/{_server.ts-BR_JejQG.js.map → _server.ts-BI0oEp2m.js.map} +1 -1
  113. package/build/server/chunks/{_server.ts-Bf3mh1Vw.js → _server.ts-BJPmYqJQ.js} +5 -5
  114. package/build/server/chunks/{_server.ts-Bf3mh1Vw.js.map → _server.ts-BJPmYqJQ.js.map} +1 -1
  115. package/build/server/chunks/{_server.ts-MJdHZvPF.js → _server.ts-BLqWydCg.js} +5 -5
  116. package/build/server/chunks/_server.ts-BLqWydCg.js.map +1 -0
  117. package/build/server/chunks/{_server.ts-BFp9Fobi.js → _server.ts-BPEwLxUz.js} +4 -4
  118. package/build/server/chunks/{_server.ts-BFp9Fobi.js.map → _server.ts-BPEwLxUz.js.map} +1 -1
  119. package/build/server/chunks/{_server.ts-BiwKKu1y.js → _server.ts-BQSuiMBy.js} +5 -5
  120. package/build/server/chunks/{_server.ts-BiwKKu1y.js.map → _server.ts-BQSuiMBy.js.map} +1 -1
  121. package/build/server/chunks/{_server.ts-BdN5NtL4.js → _server.ts-BRzEk9EI.js} +5 -5
  122. package/build/server/chunks/{_server.ts-BdN5NtL4.js.map → _server.ts-BRzEk9EI.js.map} +1 -1
  123. package/build/server/chunks/{_server.ts-zUZknmZx.js → _server.ts-BTw50Sge.js} +6 -6
  124. package/build/server/chunks/{_server.ts-zUZknmZx.js.map → _server.ts-BTw50Sge.js.map} +1 -1
  125. package/build/server/chunks/{_server.ts-CfAx4ndA.js → _server.ts-BVLeyPrV.js} +5 -5
  126. package/build/server/chunks/{_server.ts-CfAx4ndA.js.map → _server.ts-BVLeyPrV.js.map} +1 -1
  127. package/build/server/chunks/{_server.ts-RagJb3I4.js → _server.ts-Ba3Y8mZb.js} +5 -5
  128. package/build/server/chunks/{_server.ts-RagJb3I4.js.map → _server.ts-Ba3Y8mZb.js.map} +1 -1
  129. package/build/server/chunks/{_server.ts-DMTF4KjV.js → _server.ts-BbXRF71R.js} +2 -2
  130. package/build/server/chunks/{_server.ts-DMTF4KjV.js.map → _server.ts-BbXRF71R.js.map} +1 -1
  131. package/build/server/chunks/{_server.ts-4Pwhm5iv.js → _server.ts-BgZqc9BJ.js} +5 -5
  132. package/build/server/chunks/{_server.ts-4Pwhm5iv.js.map → _server.ts-BgZqc9BJ.js.map} +1 -1
  133. package/build/server/chunks/{_server.ts-9zKJx2eV.js → _server.ts-BkgABCm4.js} +5 -5
  134. package/build/server/chunks/{_server.ts-9zKJx2eV.js.map → _server.ts-BkgABCm4.js.map} +1 -1
  135. package/build/server/chunks/{_server.ts-Cs7f-gaR.js → _server.ts-BqNV9SKY.js} +6 -6
  136. package/build/server/chunks/{_server.ts-Cs7f-gaR.js.map → _server.ts-BqNV9SKY.js.map} +1 -1
  137. package/build/server/chunks/{_server.ts-BkxwpAv2.js → _server.ts-Br8Q79vg.js} +5 -5
  138. package/build/server/chunks/{_server.ts-BkxwpAv2.js.map → _server.ts-Br8Q79vg.js.map} +1 -1
  139. package/build/server/chunks/{_server.ts-DRpXmKSI.js → _server.ts-BsCi8U0T.js} +6 -6
  140. package/build/server/chunks/{_server.ts-DRpXmKSI.js.map → _server.ts-BsCi8U0T.js.map} +1 -1
  141. package/build/server/chunks/{_server.ts-BHIqLHCr.js → _server.ts-BtzqRqdc.js} +2 -2
  142. package/build/server/chunks/{_server.ts-BHIqLHCr.js.map → _server.ts-BtzqRqdc.js.map} +1 -1
  143. package/build/server/chunks/{_server.ts-D5WwDggN.js → _server.ts-BuvcU_rd.js} +5 -5
  144. package/build/server/chunks/{_server.ts-D5WwDggN.js.map → _server.ts-BuvcU_rd.js.map} +1 -1
  145. package/build/server/chunks/{_server.ts-CzTX8a_p.js → _server.ts-BvYQG4dt.js} +5 -5
  146. package/build/server/chunks/{_server.ts-CzTX8a_p.js.map → _server.ts-BvYQG4dt.js.map} +1 -1
  147. package/build/server/chunks/{_server.ts-B1Ka3iiX.js → _server.ts-Bvv8P8O9.js} +6 -6
  148. package/build/server/chunks/{_server.ts-B1Ka3iiX.js.map → _server.ts-Bvv8P8O9.js.map} +1 -1
  149. package/build/server/chunks/{_server.ts-BEgkYvNh.js → _server.ts-ByNLf-MM.js} +5 -5
  150. package/build/server/chunks/{_server.ts-BEgkYvNh.js.map → _server.ts-ByNLf-MM.js.map} +1 -1
  151. package/build/server/chunks/{_server.ts-C3ic1HZf.js → _server.ts-C1P---qO.js} +5 -5
  152. package/build/server/chunks/{_server.ts-C3ic1HZf.js.map → _server.ts-C1P---qO.js.map} +1 -1
  153. package/build/server/chunks/_server.ts-C6_HX3EG.js +81 -0
  154. package/build/server/chunks/_server.ts-C6_HX3EG.js.map +1 -0
  155. package/build/server/chunks/{_server.ts-5cUQFkT_.js → _server.ts-CGk9ZLGa.js} +2 -2
  156. package/build/server/chunks/{_server.ts-5cUQFkT_.js.map → _server.ts-CGk9ZLGa.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-DEV3GiN8.js → _server.ts-CIoiPQyf.js} +5 -5
  158. package/build/server/chunks/{_server.ts-DEV3GiN8.js.map → _server.ts-CIoiPQyf.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-Djimbzpw.js → _server.ts-CRzIDkX8.js} +7 -7
  160. package/build/server/chunks/{_server.ts-Djimbzpw.js.map → _server.ts-CRzIDkX8.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-C_c_15ac.js → _server.ts-CSZ5Wh6G.js} +5 -5
  162. package/build/server/chunks/{_server.ts-C_c_15ac.js.map → _server.ts-CSZ5Wh6G.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-CZ9rxA09.js → _server.ts-CT1eXDu-.js} +5 -5
  164. package/build/server/chunks/{_server.ts-CZ9rxA09.js.map → _server.ts-CT1eXDu-.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-op5C3XGb.js → _server.ts-CUuJlm00.js} +6 -6
  166. package/build/server/chunks/{_server.ts-op5C3XGb.js.map → _server.ts-CUuJlm00.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-748DtXrC.js → _server.ts-CZ-DRZvp.js} +5 -5
  168. package/build/server/chunks/{_server.ts-748DtXrC.js.map → _server.ts-CZ-DRZvp.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-MORzCMU7.js → _server.ts-Cc3N9css.js} +5 -5
  170. package/build/server/chunks/{_server.ts-MORzCMU7.js.map → _server.ts-Cc3N9css.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-D4B9IkKh.js → _server.ts-Cf65eLqq.js} +5 -5
  172. package/build/server/chunks/{_server.ts-D4B9IkKh.js.map → _server.ts-Cf65eLqq.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-CDLW9TPG.js → _server.ts-Cg6XEPy2.js} +6 -6
  174. package/build/server/chunks/{_server.ts-CDLW9TPG.js.map → _server.ts-Cg6XEPy2.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-Cc-c2ehY.js → _server.ts-CnP0tOCJ.js} +5 -5
  176. package/build/server/chunks/{_server.ts-Cc-c2ehY.js.map → _server.ts-CnP0tOCJ.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-Dr6ShsbQ.js → _server.ts-CrJINkX_.js} +5 -5
  178. package/build/server/chunks/{_server.ts-Dr6ShsbQ.js.map → _server.ts-CrJINkX_.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-BMeLIoiB.js → _server.ts-Crjjd765.js} +6 -6
  180. package/build/server/chunks/{_server.ts-BMeLIoiB.js.map → _server.ts-Crjjd765.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-Dpk6ddyU.js → _server.ts-Cv8ofBVh.js} +7 -7
  182. package/build/server/chunks/{_server.ts-Dpk6ddyU.js.map → _server.ts-Cv8ofBVh.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-C9E9tYAO.js → _server.ts-CvjW0prw.js} +5 -5
  184. package/build/server/chunks/{_server.ts-C9E9tYAO.js.map → _server.ts-CvjW0prw.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-B2kJ3mfg.js → _server.ts-CzJEYcNT.js} +7 -7
  186. package/build/server/chunks/{_server.ts-B2kJ3mfg.js.map → _server.ts-CzJEYcNT.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-QdyZiBuA.js → _server.ts-CzxUP04Y.js} +5 -5
  188. package/build/server/chunks/{_server.ts-QdyZiBuA.js.map → _server.ts-CzxUP04Y.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-CILn0WEi.js → _server.ts-D01NZcYW.js} +5 -5
  190. package/build/server/chunks/{_server.ts-CILn0WEi.js.map → _server.ts-D01NZcYW.js.map} +1 -1
  191. package/build/server/chunks/_server.ts-D1AbREnq.js +78 -0
  192. package/build/server/chunks/_server.ts-D1AbREnq.js.map +1 -0
  193. package/build/server/chunks/{_server.ts-Cwuo2EyS.js → _server.ts-D7Jx0nis.js} +5 -5
  194. package/build/server/chunks/{_server.ts-Cwuo2EyS.js.map → _server.ts-D7Jx0nis.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-Byc_SyKx.js → _server.ts-D81qWfpG.js} +5 -5
  196. package/build/server/chunks/{_server.ts-Byc_SyKx.js.map → _server.ts-D81qWfpG.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-DT8fIE9B.js → _server.ts-D8cTdweQ.js} +5 -5
  198. package/build/server/chunks/{_server.ts-DT8fIE9B.js.map → _server.ts-D8cTdweQ.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-CN8iu9En.js → _server.ts-DAyVdLae.js} +5 -5
  200. package/build/server/chunks/{_server.ts-CN8iu9En.js.map → _server.ts-DAyVdLae.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-DY4maxIB.js → _server.ts-DG6X2pCM.js} +6 -6
  202. package/build/server/chunks/{_server.ts-DY4maxIB.js.map → _server.ts-DG6X2pCM.js.map} +1 -1
  203. package/build/server/chunks/{_server.ts-CxWx02dy.js → _server.ts-DIot9Cws.js} +5 -5
  204. package/build/server/chunks/_server.ts-DIot9Cws.js.map +1 -0
  205. package/build/server/chunks/{_server.ts-BSxbdNXo.js → _server.ts-DLN16A-H.js} +5 -5
  206. package/build/server/chunks/{_server.ts-BSxbdNXo.js.map → _server.ts-DLN16A-H.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-DQP6uEx5.js → _server.ts-DNnk_Zxf.js} +5 -5
  208. package/build/server/chunks/{_server.ts-DQP6uEx5.js.map → _server.ts-DNnk_Zxf.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-Cscu5y6A.js → _server.ts-DRtWVz82.js} +6 -6
  210. package/build/server/chunks/{_server.ts-Cscu5y6A.js.map → _server.ts-DRtWVz82.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-CCtCwyZb.js → _server.ts-DWLgZ0Yv.js} +6 -6
  212. package/build/server/chunks/{_server.ts-CCtCwyZb.js.map → _server.ts-DWLgZ0Yv.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-CgPqNf7-.js → _server.ts-DWWvdqIf.js} +5 -5
  214. package/build/server/chunks/{_server.ts-CgPqNf7-.js.map → _server.ts-DWWvdqIf.js.map} +1 -1
  215. package/build/server/chunks/{_server.ts-6sLoCHl6.js → _server.ts-DeYTt0bJ.js} +5 -5
  216. package/build/server/chunks/{_server.ts-6sLoCHl6.js.map → _server.ts-DeYTt0bJ.js.map} +1 -1
  217. package/build/server/chunks/{_server.ts-BhzFTv-h.js → _server.ts-DmJBOTT2.js} +6 -6
  218. package/build/server/chunks/{_server.ts-BhzFTv-h.js.map → _server.ts-DmJBOTT2.js.map} +1 -1
  219. package/build/server/chunks/{_server.ts-JPsLUf_g.js → _server.ts-DrOOY95Q.js} +5 -5
  220. package/build/server/chunks/{_server.ts-JPsLUf_g.js.map → _server.ts-DrOOY95Q.js.map} +1 -1
  221. package/build/server/chunks/{_server.ts-CSN60plL.js → _server.ts-DtH3KC6o.js} +2 -2
  222. package/build/server/chunks/{_server.ts-CSN60plL.js.map → _server.ts-DtH3KC6o.js.map} +1 -1
  223. package/build/server/chunks/{_server.ts-DPpj-ZUv.js → _server.ts-DwkMC38U.js} +5 -5
  224. package/build/server/chunks/{_server.ts-DPpj-ZUv.js.map → _server.ts-DwkMC38U.js.map} +1 -1
  225. package/build/server/chunks/{_server.ts-DE_dFybU.js → _server.ts-DxG52eeA.js} +7 -7
  226. package/build/server/chunks/{_server.ts-DE_dFybU.js.map → _server.ts-DxG52eeA.js.map} +1 -1
  227. package/build/server/chunks/{_server.ts-CCEnPIKA.js → _server.ts-Dxuqlt4R.js} +5 -5
  228. package/build/server/chunks/{_server.ts-CCEnPIKA.js.map → _server.ts-Dxuqlt4R.js.map} +1 -1
  229. package/build/server/chunks/{_server.ts-DsbN7dr7.js → _server.ts-DyCjXY9f.js} +5 -5
  230. package/build/server/chunks/{_server.ts-DsbN7dr7.js.map → _server.ts-DyCjXY9f.js.map} +1 -1
  231. package/build/server/chunks/{_server.ts-Ieve8Oxl.js → _server.ts-FfM2gx8M.js} +8 -8
  232. package/build/server/chunks/{_server.ts-Ieve8Oxl.js.map → _server.ts-FfM2gx8M.js.map} +1 -1
  233. package/build/server/chunks/{_server.ts-CMytohFo.js → _server.ts-FgmSApxO.js} +5 -5
  234. package/build/server/chunks/{_server.ts-CMytohFo.js.map → _server.ts-FgmSApxO.js.map} +1 -1
  235. package/build/server/chunks/{_server.ts-gLH0uvQH.js → _server.ts-LoYAi4N3.js} +6 -6
  236. package/build/server/chunks/{_server.ts-gLH0uvQH.js.map → _server.ts-LoYAi4N3.js.map} +1 -1
  237. package/build/server/chunks/{_server.ts-BXOIslIH.js → _server.ts-UX21CkDV.js} +5 -5
  238. package/build/server/chunks/{_server.ts-BXOIslIH.js.map → _server.ts-UX21CkDV.js.map} +1 -1
  239. package/build/server/chunks/{_server.ts-lmfAKx6b.js → _server.ts-bY2IL1Nj.js} +7 -7
  240. package/build/server/chunks/{_server.ts-lmfAKx6b.js.map → _server.ts-bY2IL1Nj.js.map} +1 -1
  241. package/build/server/chunks/_server.ts-fMGCvAmz.js +64 -0
  242. package/build/server/chunks/_server.ts-fMGCvAmz.js.map +1 -0
  243. package/build/server/chunks/{_server.ts-CV30eOSb.js → _server.ts-jmKRuOrt.js} +6 -6
  244. package/build/server/chunks/{_server.ts-CV30eOSb.js.map → _server.ts-jmKRuOrt.js.map} +1 -1
  245. package/build/server/chunks/{_server.ts-DAv3C7oW.js → _server.ts-nxWIvPny.js} +5 -5
  246. package/build/server/chunks/{_server.ts-DAv3C7oW.js.map → _server.ts-nxWIvPny.js.map} +1 -1
  247. package/build/server/chunks/{_server.ts-VuZwBycD.js → _server.ts-plme8zrC.js} +5 -5
  248. package/build/server/chunks/{_server.ts-VuZwBycD.js.map → _server.ts-plme8zrC.js.map} +1 -1
  249. package/build/server/chunks/{_server.ts-B_du9gRB.js → _server.ts-sTPNb2pN.js} +5 -5
  250. package/build/server/chunks/{_server.ts-B_du9gRB.js.map → _server.ts-sTPNb2pN.js.map} +1 -1
  251. package/build/server/chunks/{_server.ts-B7Fkprd8.js → _server.ts-t27XF1J7.js} +2 -2
  252. package/build/server/chunks/{_server.ts-B7Fkprd8.js.map → _server.ts-t27XF1J7.js.map} +1 -1
  253. package/build/server/chunks/{addon-helpers-CoPzjA3s.js → addon-helpers-DY4O9SZB.js} +3 -3
  254. package/build/server/chunks/{addon-helpers-CoPzjA3s.js.map → addon-helpers-DY4O9SZB.js.map} +1 -1
  255. package/build/server/chunks/{akm-BS59M7h3.js → akm-BSih7eOh.js} +2 -2
  256. package/build/server/chunks/{akm-BS59M7h3.js.map → akm-BSih7eOh.js.map} +1 -1
  257. package/build/server/chunks/{catalog-DAQWike4.js → catalog-DyHJ6nBW.js} +5 -5
  258. package/build/server/chunks/{catalog-DAQWike4.js.map → catalog-DyHJ6nBW.js.map} +1 -1
  259. package/build/server/chunks/{client-B3vN-Uvc.js → client-CnOg1BpV.js} +2 -2
  260. package/build/server/chunks/{client-B3vN-Uvc.js.map → client-CnOg1BpV.js.map} +1 -1
  261. package/build/server/chunks/{config-Bdb4ZTos.js → config-BVnL1-S6.js} +2 -2
  262. package/build/server/chunks/{config-Bdb4ZTos.js.map → config-BVnL1-S6.js.map} +1 -1
  263. package/build/server/chunks/{docker-DaU_SNhi.js → docker-QQYBC8du.js} +2 -2
  264. package/build/server/chunks/{docker-DaU_SNhi.js.map → docker-QQYBC8du.js.map} +1 -1
  265. package/build/server/chunks/{endpoints-1byh0xs8.js → endpoints-BOzm3TR9.js} +2 -2
  266. package/build/server/chunks/{endpoints-1byh0xs8.js.map → endpoints-BOzm3TR9.js.map} +1 -1
  267. package/build/server/chunks/{environment-BQh6a8iU.js → environment-DevEAj_M.js} +2 -2
  268. package/build/server/chunks/{environment-BQh6a8iU.js.map → environment-DevEAj_M.js.map} +1 -1
  269. package/build/server/chunks/{error.svelte-CEj0_dRA.js → error.svelte-OEdYqdGu.js} +4 -4
  270. package/build/server/chunks/{error.svelte-CEj0_dRA.js.map → error.svelte-OEdYqdGu.js.map} +1 -1
  271. package/build/server/chunks/{helpers-Be-wOei2.js → helpers-lf-w8dFi.js} +3 -3
  272. package/build/server/chunks/{helpers-Be-wOei2.js.map → helpers-lf-w8dFi.js.map} +1 -1
  273. package/build/server/chunks/{hooks.server-DlA1ck_e.js → hooks.server-yeur1GCR.js} +6 -6
  274. package/build/server/chunks/{hooks.server-DlA1ck_e.js.map → hooks.server-yeur1GCR.js.map} +1 -1
  275. package/build/server/chunks/{http-BbFgukqs.js → http-Bv92EpMx.js} +2 -2
  276. package/build/server/chunks/{http-BbFgukqs.js.map → http-Bv92EpMx.js.map} +1 -1
  277. package/build/server/chunks/{internal-CP-qQJfY.js → internal-CQdgWpT6.js} +3 -3
  278. package/build/server/chunks/{internal-CP-qQJfY.js.map → internal-CQdgWpT6.js.map} +1 -1
  279. package/build/server/chunks/{session-cookie-C-kIy9pI.js → session-cookie-DhA3swUc.js} +2 -2
  280. package/build/server/chunks/{session-cookie-C-kIy9pI.js.map → session-cookie-DhA3swUc.js.map} +1 -1
  281. package/build/server/chunks/{setup-deploy-BL_wmz6j.js → setup-deploy-C0hLjImh.js} +2 -2
  282. package/build/server/chunks/{setup-deploy-BL_wmz6j.js.map → setup-deploy-C0hLjImh.js.map} +1 -1
  283. package/build/server/chunks/{src-BEj0DuSB.js → src-B7oqi9q_.js} +353 -16
  284. package/build/server/chunks/src-B7oqi9q_.js.map +1 -0
  285. package/build/server/chunks/{state-DAPDF26p.js → state-iFW46-kW.js} +2 -2
  286. package/build/server/chunks/{state-DAPDF26p.js.map → state-iFW46-kW.js.map} +1 -1
  287. package/build/server/chunks/{state2-3fEu-ReG.js → state2-DkQitSl6.js} +2 -2
  288. package/build/server/chunks/{state2-3fEu-ReG.js.map → state2-DkQitSl6.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.br +0 -0
  307. package/build/client/_app/immutable/chunks/DHRKaBFV.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/DOWJsT_T.js.br +0 -0
  309. package/build/client/_app/immutable/chunks/DkCRM8d5.js +0 -5
  310. package/build/client/_app/immutable/chunks/DkCRM8d5.js.br +0 -0
  311. package/build/client/_app/immutable/chunks/DkCRM8d5.js.gz +0 -0
  312. package/build/client/_app/immutable/entry/app.Dgd8Sqiz.js.br +0 -0
  313. package/build/client/_app/immutable/entry/app.Dgd8Sqiz.js.gz +0 -0
  314. package/build/client/_app/immutable/entry/start.DN4LafZw.js +0 -1
  315. package/build/client/_app/immutable/entry/start.DN4LafZw.js.br +0 -1
  316. package/build/client/_app/immutable/entry/start.DN4LafZw.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/0.DEcud9DA.js.br +0 -0
  318. package/build/client/_app/immutable/nodes/0.DEcud9DA.js.gz +0 -0
  319. package/build/client/_app/immutable/nodes/1.DiTVmAJ4.js.br +0 -3
  320. package/build/client/_app/immutable/nodes/1.DiTVmAJ4.js.gz +0 -0
  321. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js +0 -121
  322. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js.br +0 -0
  323. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js.gz +0 -0
  324. package/build/client/_app/immutable/nodes/5.WMP0f8pf.js.br +0 -0
  325. package/build/client/_app/immutable/nodes/5.WMP0f8pf.js.gz +0 -0
  326. package/build/client/_app/immutable/nodes/6.9o6Bephx.js.br +0 -0
  327. package/build/client/_app/immutable/nodes/6.9o6Bephx.js.gz +0 -0
  328. package/build/client/_app/immutable/nodes/7._N3I_xWy.js.br +0 -0
  329. package/build/client/_app/immutable/nodes/7._N3I_xWy.js.gz +0 -0
  330. package/build/client/_app/immutable/nodes/8.aWZ5mSKB.js.br +0 -0
  331. package/build/client/_app/immutable/nodes/8.aWZ5mSKB.js.gz +0 -0
  332. package/build/server/chunks/1-BdcHiFUZ.js +0 -9
  333. package/build/server/chunks/4-siztlnPA.js +0 -9
  334. package/build/server/chunks/5-DR1iBcbj.js +0 -9
  335. package/build/server/chunks/6-BdZadUUO.js +0 -9
  336. package/build/server/chunks/7-CjmZOzkF.js +0 -9
  337. package/build/server/chunks/_page.svelte-CMyq-t3Q.js.map +0 -1
  338. package/build/server/chunks/_server.ts-B4WEAp6B.js.map +0 -1
  339. package/build/server/chunks/_server.ts-CxWx02dy.js.map +0 -1
  340. package/build/server/chunks/_server.ts-MJdHZvPF.js.map +0 -1
  341. package/build/server/chunks/src-BEj0DuSB.js.map +0 -1
  342. package/build/server/chunks/theme-state.svelte-CUVpUHOv.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session-cookie-C-kIy9pI.js","sources":["../../../.svelte-kit/adapter-node/chunks/session-cookie.js"],"sourcesContent":["import { m as SESSION_TTL_SECONDS } from \"./helpers.js\";\n//#region src/lib/server/session-cookie.ts\n/**\n* Single source of truth for the `op_session` cookie's Set-Cookie attributes.\n*\n* Every issuer (login, session, setup/complete) and the sliding-renewal path in\n* hooks.server.ts builds the cookie through these helpers so the attributes can\n* never drift apart. Logout uses `clearSessionCookie()` with the SAME path so\n* the browser actually drops the cookie.\n*\n* Attribute rationale:\n* - HttpOnly — the cookie is the only credential the browser holds; XSS\n* must not be able to read it.\n* - SameSite=Lax — the cookie must ride along on top-level GET navigations\n* (typing the admin URL, following a bookmark) so a valid\n* session loads admin with no prompt. SameSite=Strict drops\n* the cookie on cross-site top-level GETs (e.g. opening the\n* console from a link in another app on the LAN), which\n* would force a needless re-prompt. State-mutating requests\n* are independently CSRF-guarded by the Origin check\n* (SEC-2) in hooks.server.ts, so Lax is safe here.\n* - Secure — set ONLY when the request arrived over HTTPS. LAN installs\n* are commonly plain HTTP; hardcoding Secure would make the\n* browser refuse to send the cookie and break login entirely\n* on those deployments. We honour `x-forwarded-proto` first\n* (reverse-proxy TLS termination) then the request URL.\n* - Path=/ — valid for the whole app; matched by the clear on logout.\n* - Max-Age — SESSION_TTL_SECONDS (14 days), in lockstep with the token expiry.\n*/\nvar SESSION_COOKIE_NAME = \"op_session\";\n/** True when the request reached us over HTTPS (direct or via TLS-terminating proxy). */\nfunction isSecureRequest(request) {\n\tconst forwarded = request.headers.get(\"x-forwarded-proto\");\n\tif (forwarded) return forwarded.split(\",\")[0].trim().toLowerCase() === \"https\";\n\ttry {\n\t\treturn new URL(request.url).protocol === \"https:\";\n\t} catch {\n\t\treturn false;\n\t}\n}\n/**\n* Build the `Set-Cookie` value that issues/renews the session cookie.\n* `secure` is derived from the request so LAN-over-HTTP installs still work.\n*/\nfunction sessionCookieHeader(token, request) {\n\tconst parts = [\n\t\t`${SESSION_COOKIE_NAME}=${token}`,\n\t\t\"HttpOnly\",\n\t\t\"SameSite=Lax\",\n\t\t\"Path=/\",\n\t\t`Max-Age=${SESSION_TTL_SECONDS}`\n\t];\n\tif (isSecureRequest(request)) parts.push(\"Secure\");\n\treturn parts.join(\"; \");\n}\n/**\n* Build the `Set-Cookie` value that clears the session cookie (logout).\n* Must mirror name/path/attributes of the issued cookie so the browser deletes it.\n*/\nfunction clearSessionCookieHeader(request) {\n\tconst parts = [\n\t\t`${SESSION_COOKIE_NAME}=`,\n\t\t\"HttpOnly\",\n\t\t\"SameSite=Lax\",\n\t\t\"Path=/\",\n\t\t\"Max-Age=0\"\n\t];\n\tif (isSecureRequest(request)) parts.push(\"Secure\");\n\treturn parts.join(\"; \");\n}\n//#endregion\nexport { clearSessionCookieHeader as n, sessionCookieHeader as r, SESSION_COOKIE_NAME as t };\n"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,mBAAmB,GAAG;AAC1B;AACA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC3D,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO;AAC/E,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ;AACnD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,KAAK;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7C,CAAC,MAAM,KAAK,GAAG;AACf,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACnC,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACjC,EAAE;AACF,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnD,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB,CAAC,OAAO,EAAE;AAC3C,CAAC,MAAM,KAAK,GAAG;AACf,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAC3B,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,QAAQ;AACV,EAAE;AACF,EAAE;AACF,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnD,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB;;;;"}
1
+ {"version":3,"file":"session-cookie-DhA3swUc.js","sources":["../../../.svelte-kit/adapter-node/chunks/session-cookie.js"],"sourcesContent":["import { m as SESSION_TTL_SECONDS } from \"./helpers.js\";\n//#region src/lib/server/session-cookie.ts\n/**\n* Single source of truth for the `op_session` cookie's Set-Cookie attributes.\n*\n* Every issuer (login, session, setup/complete) and the sliding-renewal path in\n* hooks.server.ts builds the cookie through these helpers so the attributes can\n* never drift apart. Logout uses `clearSessionCookie()` with the SAME path so\n* the browser actually drops the cookie.\n*\n* Attribute rationale:\n* - HttpOnly — the cookie is the only credential the browser holds; XSS\n* must not be able to read it.\n* - SameSite=Lax — the cookie must ride along on top-level GET navigations\n* (typing the admin URL, following a bookmark) so a valid\n* session loads admin with no prompt. SameSite=Strict drops\n* the cookie on cross-site top-level GETs (e.g. opening the\n* console from a link in another app on the LAN), which\n* would force a needless re-prompt. State-mutating requests\n* are independently CSRF-guarded by the Origin check\n* (SEC-2) in hooks.server.ts, so Lax is safe here.\n* - Secure — set ONLY when the request arrived over HTTPS. LAN installs\n* are commonly plain HTTP; hardcoding Secure would make the\n* browser refuse to send the cookie and break login entirely\n* on those deployments. We honour `x-forwarded-proto` first\n* (reverse-proxy TLS termination) then the request URL.\n* - Path=/ — valid for the whole app; matched by the clear on logout.\n* - Max-Age — SESSION_TTL_SECONDS (14 days), in lockstep with the token expiry.\n*/\nvar SESSION_COOKIE_NAME = \"op_session\";\n/** True when the request reached us over HTTPS (direct or via TLS-terminating proxy). */\nfunction isSecureRequest(request) {\n\tconst forwarded = request.headers.get(\"x-forwarded-proto\");\n\tif (forwarded) return forwarded.split(\",\")[0].trim().toLowerCase() === \"https\";\n\ttry {\n\t\treturn new URL(request.url).protocol === \"https:\";\n\t} catch {\n\t\treturn false;\n\t}\n}\n/**\n* Build the `Set-Cookie` value that issues/renews the session cookie.\n* `secure` is derived from the request so LAN-over-HTTP installs still work.\n*/\nfunction sessionCookieHeader(token, request) {\n\tconst parts = [\n\t\t`${SESSION_COOKIE_NAME}=${token}`,\n\t\t\"HttpOnly\",\n\t\t\"SameSite=Lax\",\n\t\t\"Path=/\",\n\t\t`Max-Age=${SESSION_TTL_SECONDS}`\n\t];\n\tif (isSecureRequest(request)) parts.push(\"Secure\");\n\treturn parts.join(\"; \");\n}\n/**\n* Build the `Set-Cookie` value that clears the session cookie (logout).\n* Must mirror name/path/attributes of the issued cookie so the browser deletes it.\n*/\nfunction clearSessionCookieHeader(request) {\n\tconst parts = [\n\t\t`${SESSION_COOKIE_NAME}=`,\n\t\t\"HttpOnly\",\n\t\t\"SameSite=Lax\",\n\t\t\"Path=/\",\n\t\t\"Max-Age=0\"\n\t];\n\tif (isSecureRequest(request)) parts.push(\"Secure\");\n\treturn parts.join(\"; \");\n}\n//#endregion\nexport { clearSessionCookieHeader as n, sessionCookieHeader as r, SESSION_COOKIE_NAME as t };\n"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC,mBAAmB,GAAG;AAC1B;AACA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC3D,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO;AAC/E,CAAC,IAAI;AACL,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ;AACnD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO,KAAK;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7C,CAAC,MAAM,KAAK,GAAG;AACf,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACnC,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,QAAQ;AACV,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACjC,EAAE;AACF,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnD,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB,CAAC,OAAO,EAAE;AAC3C,CAAC,MAAM,KAAK,GAAG;AACf,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAC3B,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,QAAQ;AACV,EAAE;AACF,EAAE;AACF,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnD,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB;;;;"}
@@ -1,4 +1,4 @@
1
- import { j as backupSetupInputs, aI as runDeploy, aF as resolveDeployJournalPath, ae as isSetupComplete, aH as resolveStackDir, as as readDeployJournal, al as markSetupComplete } from './src-BEj0DuSB.js';
1
+ import { j as backupSetupInputs, aR as runDeploy, aO as resolveDeployJournalPath, aj as isSetupComplete, aQ as resolveStackDir, az as readDeployJournal, ar as markSetupComplete } from './src-B7oqi9q_.js';
2
2
 
3
3
  //#region src/lib/server/setup-deploy.ts
4
4
  var _state = {
@@ -72,4 +72,4 @@ function prepareSetupRestorePoint(state) {
72
72
  }
73
73
 
74
74
  export { getDeployState as g, prepareSetupRestorePoint as p, resetDeployState as r, startDeploy as s };
75
- //# sourceMappingURL=setup-deploy-BL_wmz6j.js.map
75
+ //# sourceMappingURL=setup-deploy-C0hLjImh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-deploy-BL_wmz6j.js","sources":["../../../.svelte-kit/adapter-node/chunks/setup-deploy.js"],"sourcesContent":["import { A as readDeployJournal, M as runDeploy, O as backupSetupInputs, Yt as resolveStackDir, j as resolveDeployJournalPath, k as markSetupComplete, ut as isSetupComplete } from \"./src.js\";\n//#region src/lib/server/setup-deploy.ts\nvar _state = {\n\tdeploying: false,\n\tsetupComplete: false,\n\tdeployStatus: [],\n\tdeployError: null,\n\timageWarning: null,\n\tphase: \"writing-config\"\n};\nvar _deployPromise = null;\nfunction deployStateFromJournal(state) {\n\tconst journal = readDeployJournal(resolveDeployJournalPath(state));\n\treturn {\n\t\tdeploying: journal.deploying,\n\t\tinterrupted: journal.interrupted,\n\t\tsetupComplete: journal.setupComplete || isSetupComplete(resolveStackDir()),\n\t\tdeployStatus: journal.deployStatus,\n\t\tdeployError: journal.deployError,\n\t\timageWarning: journal.imageWarning,\n\t\tphase: journal.phase\n\t};\n}\nfunction getDeployState(state) {\n\tif (state) _state = deployStateFromJournal(state);\n\telse if (!_state.setupComplete && !_state.deploying && isSetupComplete(resolveStackDir())) _state.setupComplete = true;\n\treturn {\n\t\t..._state,\n\t\tdeployStatus: _state.deployStatus.map((entry) => ({ ...entry }))\n\t};\n}\nfunction resetDeployState() {\n\t_state = {\n\t\tdeploying: false,\n\t\tsetupComplete: false,\n\t\tdeployStatus: [],\n\t\tdeployError: null,\n\t\timageWarning: null,\n\t\tphase: \"writing-config\"\n\t};\n}\nfunction startDeploy(state) {\n\tif (_deployPromise) {\n\t\t_state.deployError = \"install_in_progress: A deploy is already running. Wait for it to finish.\";\n\t\treturn;\n\t}\n\t_deployPromise = (async () => {\n\t\tawait runDeploy(state, {\n\t\t\tjournalPath: resolveDeployJournalPath(state),\n\t\t\tonUpdate(progress) {\n\t\t\t\t_state = {\n\t\t\t\t\tdeploying: progress.deploying,\n\t\t\t\t\tinterrupted: progress.interrupted,\n\t\t\t\t\tsetupComplete: progress.setupComplete,\n\t\t\t\t\tdeployStatus: progress.deployStatus,\n\t\t\t\t\tdeployError: progress.deployError,\n\t\t\t\t\timageWarning: progress.imageWarning,\n\t\t\t\t\tphase: progress.phase\n\t\t\t\t};\n\t\t\t},\n\t\t\tmarkSetupComplete() {\n\t\t\t\tmarkSetupComplete(state);\n\t\t\t}\n\t\t});\n\t})().finally(() => {\n\t\t_deployPromise = null;\n\t});\n}\nfunction prepareSetupRestorePoint(state) {\n\treturn backupSetupInputs(state);\n}\n//#endregion\nexport { startDeploy as i, prepareSetupRestorePoint as n, resetDeployState as r, getDeployState as t };\n"],"names":[],"mappings":";;AACA;AACA,IAAI,MAAM,GAAG;AACb,CAAC,SAAS,EAAE,KAAK;AACjB,CAAC,aAAa,EAAE,KAAK;AACrB,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,WAAW,EAAE,IAAI;AAClB,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,KAAK,EAAE;AACR,CAAC;AACD,IAAI,cAAc,GAAG,IAAI;AACzB,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC,OAAO;AACR,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;AAC9B,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;AAClC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;AAC5E,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY;AACpC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;AAClC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY;AACpC,EAAE,KAAK,EAAE,OAAO,CAAC;AACjB,EAAE;AACF;AACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,CAAC,IAAI,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAClD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,IAAI;AACvH,CAAC,OAAO;AACR,EAAE,GAAG,MAAM;AACX,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACjE,EAAE;AACF;AACA,SAAS,gBAAgB,GAAG;AAC5B,CAAC,MAAM,GAAG;AACV,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,YAAY,EAAE,EAAE;AAClB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,KAAK,EAAE;AACT,EAAE;AACF;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,CAAC,IAAI,cAAc,EAAE;AACrB,EAAE,MAAM,CAAC,WAAW,GAAG,0EAA0E;AACjG,EAAE;AACF,CAAC;AACD,CAAC,cAAc,GAAG,CAAC,YAAY;AAC/B,EAAE,MAAM,SAAS,CAAC,KAAK,EAAE;AACzB,GAAG,WAAW,EAAE,wBAAwB,CAAC,KAAK,CAAC;AAC/C,GAAG,QAAQ,CAAC,QAAQ,EAAE;AACtB,IAAI,MAAM,GAAG;AACb,KAAK,SAAS,EAAE,QAAQ,CAAC,SAAS;AAClC,KAAK,WAAW,EAAE,QAAQ,CAAC,WAAW;AACtC,KAAK,aAAa,EAAE,QAAQ,CAAC,aAAa;AAC1C,KAAK,YAAY,EAAE,QAAQ,CAAC,YAAY;AACxC,KAAK,WAAW,EAAE,QAAQ,CAAC,WAAW;AACtC,KAAK,YAAY,EAAE,QAAQ,CAAC,YAAY;AACxC,KAAK,KAAK,EAAE,QAAQ,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,GAAG,iBAAiB,GAAG;AACvB,IAAI,iBAAiB,CAAC,KAAK,CAAC;AAC5B,GAAG;AACH,GAAG,CAAC;AACJ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACpB,EAAE,cAAc,GAAG,IAAI;AACvB,CAAC,CAAC,CAAC;AACH;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"setup-deploy-C0hLjImh.js","sources":["../../../.svelte-kit/adapter-node/chunks/setup-deploy.js"],"sourcesContent":["import { $t as resolveStackDir, A as readDeployJournal, M as runDeploy, O as backupSetupInputs, ft as isSetupComplete, j as resolveDeployJournalPath, k as markSetupComplete } from \"./src.js\";\n//#region src/lib/server/setup-deploy.ts\nvar _state = {\n\tdeploying: false,\n\tsetupComplete: false,\n\tdeployStatus: [],\n\tdeployError: null,\n\timageWarning: null,\n\tphase: \"writing-config\"\n};\nvar _deployPromise = null;\nfunction deployStateFromJournal(state) {\n\tconst journal = readDeployJournal(resolveDeployJournalPath(state));\n\treturn {\n\t\tdeploying: journal.deploying,\n\t\tinterrupted: journal.interrupted,\n\t\tsetupComplete: journal.setupComplete || isSetupComplete(resolveStackDir()),\n\t\tdeployStatus: journal.deployStatus,\n\t\tdeployError: journal.deployError,\n\t\timageWarning: journal.imageWarning,\n\t\tphase: journal.phase\n\t};\n}\nfunction getDeployState(state) {\n\tif (state) _state = deployStateFromJournal(state);\n\telse if (!_state.setupComplete && !_state.deploying && isSetupComplete(resolveStackDir())) _state.setupComplete = true;\n\treturn {\n\t\t..._state,\n\t\tdeployStatus: _state.deployStatus.map((entry) => ({ ...entry }))\n\t};\n}\nfunction resetDeployState() {\n\t_state = {\n\t\tdeploying: false,\n\t\tsetupComplete: false,\n\t\tdeployStatus: [],\n\t\tdeployError: null,\n\t\timageWarning: null,\n\t\tphase: \"writing-config\"\n\t};\n}\nfunction startDeploy(state) {\n\tif (_deployPromise) {\n\t\t_state.deployError = \"install_in_progress: A deploy is already running. Wait for it to finish.\";\n\t\treturn;\n\t}\n\t_deployPromise = (async () => {\n\t\tawait runDeploy(state, {\n\t\t\tjournalPath: resolveDeployJournalPath(state),\n\t\t\tonUpdate(progress) {\n\t\t\t\t_state = {\n\t\t\t\t\tdeploying: progress.deploying,\n\t\t\t\t\tinterrupted: progress.interrupted,\n\t\t\t\t\tsetupComplete: progress.setupComplete,\n\t\t\t\t\tdeployStatus: progress.deployStatus,\n\t\t\t\t\tdeployError: progress.deployError,\n\t\t\t\t\timageWarning: progress.imageWarning,\n\t\t\t\t\tphase: progress.phase\n\t\t\t\t};\n\t\t\t},\n\t\t\tmarkSetupComplete() {\n\t\t\t\tmarkSetupComplete(state);\n\t\t\t}\n\t\t});\n\t})().finally(() => {\n\t\t_deployPromise = null;\n\t});\n}\nfunction prepareSetupRestorePoint(state) {\n\treturn backupSetupInputs(state);\n}\n//#endregion\nexport { startDeploy as i, prepareSetupRestorePoint as n, resetDeployState as r, getDeployState as t };\n"],"names":[],"mappings":";;AACA;AACA,IAAI,MAAM,GAAG;AACb,CAAC,SAAS,EAAE,KAAK;AACjB,CAAC,aAAa,EAAE,KAAK;AACrB,CAAC,YAAY,EAAE,EAAE;AACjB,CAAC,WAAW,EAAE,IAAI;AAClB,CAAC,YAAY,EAAE,IAAI;AACnB,CAAC,KAAK,EAAE;AACR,CAAC;AACD,IAAI,cAAc,GAAG,IAAI;AACzB,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC,OAAO;AACR,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS;AAC9B,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;AAClC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;AAC5E,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY;AACpC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;AAClC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY;AACpC,EAAE,KAAK,EAAE,OAAO,CAAC;AACjB,EAAE;AACF;AACA,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,CAAC,IAAI,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAClD,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,aAAa,GAAG,IAAI;AACvH,CAAC,OAAO;AACR,EAAE,GAAG,MAAM;AACX,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACjE,EAAE;AACF;AACA,SAAS,gBAAgB,GAAG;AAC5B,CAAC,MAAM,GAAG;AACV,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,YAAY,EAAE,EAAE;AAClB,EAAE,WAAW,EAAE,IAAI;AACnB,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,KAAK,EAAE;AACT,EAAE;AACF;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,CAAC,IAAI,cAAc,EAAE;AACrB,EAAE,MAAM,CAAC,WAAW,GAAG,0EAA0E;AACjG,EAAE;AACF,CAAC;AACD,CAAC,cAAc,GAAG,CAAC,YAAY;AAC/B,EAAE,MAAM,SAAS,CAAC,KAAK,EAAE;AACzB,GAAG,WAAW,EAAE,wBAAwB,CAAC,KAAK,CAAC;AAC/C,GAAG,QAAQ,CAAC,QAAQ,EAAE;AACtB,IAAI,MAAM,GAAG;AACb,KAAK,SAAS,EAAE,QAAQ,CAAC,SAAS;AAClC,KAAK,WAAW,EAAE,QAAQ,CAAC,WAAW;AACtC,KAAK,aAAa,EAAE,QAAQ,CAAC,aAAa;AAC1C,KAAK,YAAY,EAAE,QAAQ,CAAC,YAAY;AACxC,KAAK,WAAW,EAAE,QAAQ,CAAC,WAAW;AACtC,KAAK,YAAY,EAAE,QAAQ,CAAC,YAAY;AACxC,KAAK,KAAK,EAAE,QAAQ,CAAC;AACrB,KAAK;AACL,GAAG,CAAC;AACJ,GAAG,iBAAiB,GAAG;AACvB,IAAI,iBAAiB,CAAC,KAAK,CAAC;AAC5B,GAAG;AACH,GAAG,CAAC;AACJ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;AACpB,EAAE,cAAc,GAAG,IAAI;AACvB,CAAC,CAAC,CAAC;AACH;AACA,SAAS,wBAAwB,CAAC,KAAK,EAAE;AACzC,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC;AAChC;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { _ as __commonJSMin, b as __require } from './chunk-CLZ62Ad-.js';
2
2
  import { P as PROVIDER_DEFAULT_URLS, a as PROVIDER_KEY_MAP } from './provider-constants-DPrj3yBX.js';
3
3
  import { r as require_dist } from './dist-DOFcG0Zp.js';
4
- import Vt, { existsSync, readFileSync, copyFileSync, chmodSync, mkdirSync, lstatSync, rmSync, readdirSync, writeFileSync, renameSync, statSync, cpSync, openSync, constants, writeSync, closeSync, chownSync, realpathSync } from 'node:fs';
4
+ import Vt, { existsSync, readFileSync, copyFileSync, chmodSync, mkdirSync, lstatSync, rmSync, readdirSync, writeFileSync, renameSync, statSync, statfsSync, cpSync, openSync, constants, writeSync, closeSync, chownSync, realpathSync } from 'node:fs';
5
5
  import or, { join, basename, dirname, resolve, win32, posix } from 'node:path';
6
6
  import { Buffer as Buffer$1 } from 'buffer';
7
7
  import I from 'fs';
@@ -96,6 +96,84 @@ function timestampDirName(now = /* @__PURE__ */ new Date()) {
96
96
  return now.toISOString().replace(/[:.]/g, "-");
97
97
  }
98
98
  /**
99
+ * Recursively sum the apparent size (in bytes) of every file under `path`,
100
+ * excluding the existing backups directory (we never back up backups).
101
+ *
102
+ * Cheap enough for a pre-backup estimate; errors on individual entries are
103
+ * skipped (a transient unreadable file should not block the safety copy).
104
+ */
105
+ function estimateHomeBackupBytes(homeDir) {
106
+ if (!existsSync(homeDir)) return 0;
107
+ const backupsDir = join(homeDir, "data", "backups");
108
+ let total = 0;
109
+ const walk = (dir) => {
110
+ let entries;
111
+ try {
112
+ entries = readdirSync(dir, { withFileTypes: true });
113
+ } catch {
114
+ return;
115
+ }
116
+ for (const entry of entries) {
117
+ const full = join(dir, entry.name);
118
+ if (full === backupsDir) continue;
119
+ if (entry.isDirectory()) walk(full);
120
+ else if (entry.isFile()) try {
121
+ total += statSync(full).size;
122
+ } catch {}
123
+ }
124
+ };
125
+ walk(homeDir);
126
+ return total;
127
+ }
128
+ /**
129
+ * Estimate whether a full-home backup would fit safely on disk.
130
+ *
131
+ * Returns a structured result; the caller decides whether to warn, block, or
132
+ * (with explicit confirmation) proceed. This NEVER deletes anything — it only
133
+ * measures. `threshold` is the fraction of currently-free space the backup may
134
+ * consume before it is flagged `insufficient` (default 80%).
135
+ */
136
+ function checkBackupFreeSpace(homeDir, threshold = .8) {
137
+ const estimatedBytes = estimateHomeBackupBytes(homeDir);
138
+ let freeBytes = Number.POSITIVE_INFINITY;
139
+ try {
140
+ const stat = statfsSync(homeDir);
141
+ freeBytes = stat.bavail * stat.bsize;
142
+ } catch {}
143
+ const ratio = freeBytes > 0 ? estimatedBytes / freeBytes : Number.POSITIVE_INFINITY;
144
+ return {
145
+ estimatedBytes,
146
+ freeBytes,
147
+ ratio,
148
+ insufficient: estimatedBytes > freeBytes * threshold,
149
+ threshold
150
+ };
151
+ }
152
+ function formatBytes(bytes) {
153
+ if (!Number.isFinite(bytes)) return "unknown";
154
+ const units = [
155
+ "B",
156
+ "KB",
157
+ "MB",
158
+ "GB",
159
+ "TB"
160
+ ];
161
+ let value = bytes;
162
+ let i = 0;
163
+ while (value >= 1024 && i < units.length - 1) {
164
+ value /= 1024;
165
+ i += 1;
166
+ }
167
+ return `${value.toFixed(value >= 10 || i === 0 ? 0 : 1)} ${units[i]}`;
168
+ }
169
+ /**
170
+ * Human-readable, plain-language explanation of a low-free-space situation,
171
+ * suitable for a CLI warning or a UI notice.
172
+ */
173
+ function describeBackupSpaceShortfall(check) {
174
+ return `The safety backup is estimated at ${formatBytes(check.estimatedBytes)}, but only ${formatBytes(check.freeBytes)} is free on this disk. Backing up could fill the disk. Free up space (your old backups are under data/backups/ — review them with \`openpalm backups list\`), or re-run with confirmation to proceed anyway. Nothing was changed or deleted.`;
175
+ }
176
+ /**
99
177
  * Create a durable backup snapshot of the current OP_HOME contents.
100
178
  *
101
179
  * The backup is written under OP_HOME/data/backups/<timestamp>/ and excludes
@@ -123,6 +201,62 @@ function backupOpenPalmHome(homeDir) {
123
201
  }
124
202
  return copiedAny ? backupDir : null;
125
203
  }
204
+ function listBackupDirs(homeDir) {
205
+ const backupsDir = join(homeDir, "data", "backups");
206
+ if (!existsSync(backupsDir)) return [];
207
+ return readdirSync(backupsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => join(backupsDir, entry.name)).sort((a, b) => b.localeCompare(a));
208
+ }
209
+ function dirSizeBytes(dir) {
210
+ let total = 0;
211
+ let entries;
212
+ try {
213
+ entries = readdirSync(dir, { withFileTypes: true });
214
+ } catch {
215
+ return 0;
216
+ }
217
+ for (const entry of entries) {
218
+ const full = join(dir, entry.name);
219
+ if (entry.isDirectory()) total += dirSizeBytes(full);
220
+ else if (entry.isFile()) try {
221
+ total += statSync(full).size;
222
+ } catch {}
223
+ }
224
+ return total;
225
+ }
226
+ /**
227
+ * Summarize the upgrade backup snapshots for UI visibility (count, total size,
228
+ * last-backup time, per-backup sizes). Read-only — never deletes anything.
229
+ */
230
+ function summarizeBackups(homeDir) {
231
+ const backups = listBackupDirs(homeDir).map((path) => {
232
+ let createdAt = "";
233
+ try {
234
+ createdAt = statSync(path).mtime.toISOString();
235
+ } catch {}
236
+ return {
237
+ path,
238
+ name: path.slice(path.lastIndexOf("/") + 1),
239
+ sizeBytes: dirSizeBytes(path),
240
+ createdAt
241
+ };
242
+ });
243
+ const totalBytes = backups.reduce((sum, b) => sum + b.sizeBytes, 0);
244
+ return {
245
+ count: backups.length,
246
+ totalBytes,
247
+ lastBackupAt: backups[0]?.createdAt || null,
248
+ backups
249
+ };
250
+ }
251
+ function pruneBackupDirs(homeDir, keep) {
252
+ if (!Number.isInteger(keep) || keep < 0) throw new Error("keep must be a non-negative integer");
253
+ const toDelete = listBackupDirs(homeDir).slice(keep);
254
+ for (const backupDir of toDelete) rmSync(backupDir, {
255
+ recursive: true,
256
+ force: true
257
+ });
258
+ return toDelete;
259
+ }
126
260
  //#endregion
127
261
  //#region ../lib/src/control-plane/install-lock.ts
128
262
  var import_dist = require_dist();
@@ -249,6 +383,79 @@ function acquireInstallLock(dataDir) {
249
383
  }
250
384
  return null;
251
385
  }
386
+ var INSTALL_LOCK_STALE_AFTER_MS = STALE_AFTER_MS;
387
+ /**
388
+ * Inspect the install lock under `dataDir` without modifying it. Used by the
389
+ * `openpalm unlock` command and the UI "operation stuck?" affordance to decide
390
+ * whether a removal is safe.
391
+ */
392
+ function inspectInstallLock(dataDir) {
393
+ const path = join(dataDir, ".install.lock");
394
+ let content;
395
+ try {
396
+ content = readFileSync(path, "utf-8");
397
+ } catch (err) {
398
+ if (err.code === "ENOENT") return {
399
+ present: false,
400
+ path
401
+ };
402
+ let ageMs = null;
403
+ try {
404
+ ageMs = Date.now() - statSync(path).mtimeMs;
405
+ } catch {}
406
+ return {
407
+ present: true,
408
+ path,
409
+ pid: null,
410
+ timestamp: null,
411
+ ageMs,
412
+ stale: isStale(path)
413
+ };
414
+ }
415
+ const { pid, timestamp } = parseLockContent(content);
416
+ return {
417
+ present: true,
418
+ path,
419
+ pid,
420
+ timestamp,
421
+ ageMs: timestamp !== null ? Date.now() - timestamp : null,
422
+ stale: isStale(path)
423
+ };
424
+ }
425
+ /**
426
+ * Remove the install lock ONLY if it is stale (dead holder PID or older than
427
+ * the 30-minute staleness window). Never blind-removes a lock held by a live,
428
+ * recent install. Returns `{ ok: false, reason: "live" }` when the lock is
429
+ * still active so the caller can surface a clear message instead of forcing.
430
+ */
431
+ function unlockInstallLock(dataDir) {
432
+ const status = inspectInstallLock(dataDir);
433
+ if (!status.present) return {
434
+ ok: true,
435
+ removed: false,
436
+ status
437
+ };
438
+ if (!status.stale) return {
439
+ ok: false,
440
+ reason: "live",
441
+ status
442
+ };
443
+ try {
444
+ rmSync(status.path, { force: true });
445
+ logger$11.info("removed stale install lock via unlock", { path: status.path });
446
+ } catch (err) {
447
+ logger$11.warn("failed to remove stale install lock during unlock", {
448
+ path: status.path,
449
+ error: err instanceof Error ? err.message : String(err)
450
+ });
451
+ throw err;
452
+ }
453
+ return {
454
+ ok: true,
455
+ removed: true,
456
+ status
457
+ };
458
+ }
252
459
  function releaseInstallLock(handle) {
253
460
  if (!handle) return;
254
461
  try {
@@ -530,7 +737,7 @@ var import_main = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
530
737
  module.exports = DotenvModule;
531
738
  })))();
532
739
  var package_default = {
533
- version: "0.12.0-rc.2"};
740
+ version: "0.12.0-rc.3"};
534
741
  //#endregion
535
742
  //#region ../lib/src/control-plane/versioning.ts
536
743
  var SEMVER_RE = /^v?\d+\.\d+\.\d+(?:[-+].*)?$/;
@@ -822,6 +1029,22 @@ var MigrationError = class extends Error {
822
1029
  this.name = "MigrationError";
823
1030
  }
824
1031
  };
1032
+ /**
1033
+ * Thrown when the pre-backup free-space check estimates the safety backup would
1034
+ * exceed a safe fraction of free disk. Surfaced so callers (CLI/UI) can present
1035
+ * a plain-language warning and re-run with explicit confirmation. NOTHING is
1036
+ * deleted — the migration aborts cleanly with no changes made.
1037
+ */
1038
+ var BackupSpaceError = class extends MigrationError {
1039
+ estimatedBytes;
1040
+ freeBytes;
1041
+ constructor(message, guidance, estimatedBytes, freeBytes) {
1042
+ super(message, guidance, null);
1043
+ this.estimatedBytes = estimatedBytes;
1044
+ this.freeBytes = freeBytes;
1045
+ this.name = "BackupSpaceError";
1046
+ }
1047
+ };
825
1048
  var RELEASE_VERSION_KEY = "OP_RELEASE_VERSION";
826
1049
  function resolveMigrationPaths(homeDir) {
827
1050
  return {
@@ -1273,7 +1496,7 @@ var RELEASE_MIGRATIONS = [
1273
1496
  verify(ctx) {}
1274
1497
  }
1275
1498
  ];
1276
- var RECOVERY_GUIDANCE = "Your original files were left untouched and a full backup was taken first. To recover, restore the backup (see docs/operations/backup-restore.md) or run `openpalm migrate --dry-run` to preview the current copy-only migration. Full guide: docs/operations/upgrade-0.10-to-0.11.md";
1499
+ var RECOVERY_GUIDANCE = "Your original files were left untouched and a full backup was taken first. If something went wrong, run `openpalm rollback` to restore your previous state, or restore the backup manually (see docs/operations/backup-restore.md). You can also run `openpalm migrate --dry-run` to preview the current copy-only migration. Full guide: docs/operations/upgrade-0.10-to-0.11.md";
1277
1500
  function resolveComparableReleaseTarget(rawVersion) {
1278
1501
  if (!rawVersion) return null;
1279
1502
  return isComparableSemver(rawVersion) ? rawVersion : null;
@@ -1311,6 +1534,7 @@ function runReleaseMigrations(ctxBase, releaseFrom, targetVersion) {
1311
1534
  function ensureMigrated(opts = {}) {
1312
1535
  const homeDir = opts.homeDir ? resolve(opts.homeDir) : process.env.OP_HOME ? resolve(process.env.OP_HOME) : resolve(process.env.HOME ?? "", ".openpalm");
1313
1536
  const dryRun = opts.dryRun ?? false;
1537
+ const confirmLowSpace = opts.confirmLowSpace ?? false;
1314
1538
  const log = opts.log ?? (() => {});
1315
1539
  const ctxBase = {
1316
1540
  ...resolveMigrationPaths(homeDir),
@@ -1354,6 +1578,8 @@ function ensureMigrated(opts = {}) {
1354
1578
  }
1355
1579
  lock = acquireInstallLock(ctxBase.dataDir);
1356
1580
  if (!lock) throw new MigrationError("Another install/upgrade is in progress.", RECOVERY_GUIDANCE, null);
1581
+ const spaceCheck = checkBackupFreeSpace(homeDir);
1582
+ if (spaceCheck.insufficient && !confirmLowSpace) throw new BackupSpaceError(describeBackupSpaceShortfall(spaceCheck), RECOVERY_GUIDANCE, spaceCheck.estimatedBytes, spaceCheck.freeBytes);
1357
1583
  log("Taking a full backup before migrating…");
1358
1584
  try {
1359
1585
  backupDir = backupOpenPalmHome(homeDir);
@@ -5336,20 +5562,84 @@ function writeSystemEnv(state) {
5336
5562
  if (!hasUsableOperatorId(parsed, "OP_GID")) adminManaged.OP_GID = String(ids.gid);
5337
5563
  }
5338
5564
  if (!parsed.OP_HOME) adminManaged.OP_HOME = state.homeDir;
5339
- base = stripSecretLikeEnvKeys(base);
5565
+ const { content: strippedBase, removed } = stripSecretLikeEnvKeys(base);
5566
+ base = strippedBase;
5567
+ if (removed.length > 0) {
5568
+ logger$7.warn("Removed secret-looking keys from stack.env (they belong in Connections/secrets)", {
5569
+ removedKeys: removed,
5570
+ stackEnvPath: systemEnvPath
5571
+ });
5572
+ recordSecretStripNotice(state, removed);
5573
+ }
5340
5574
  assertNoSecretLikeStackEnvKeys(parseEnvContent(base));
5341
5575
  assertNoSecretLikeStackEnvKeys(adminManaged);
5342
5576
  writeFileSync(systemEnvPath, mergeEnvContent(base, adminManaged, { sectionHeader: "# ── Admin-managed ──────────────────────────────────────────────────" }), { mode: 384 });
5343
5577
  chmodSync(systemEnvPath, 384);
5344
5578
  }
5345
5579
  function stripSecretLikeEnvKeys(content) {
5346
- return content.split("\n").filter((line) => {
5347
- let trimmed = line.trim();
5348
- if (trimmed.startsWith("export ")) trimmed = trimmed.slice(7).trimStart();
5349
- const eq = trimmed.indexOf("=");
5350
- if (eq <= 0) return true;
5351
- return !isSecretLikeStackEnvKey(trimmed.slice(0, eq).trim());
5352
- }).join("\n");
5580
+ const removed = [];
5581
+ return {
5582
+ content: content.split("\n").filter((line) => {
5583
+ let trimmed = line.trim();
5584
+ if (trimmed.startsWith("export ")) trimmed = trimmed.slice(7).trimStart();
5585
+ const eq = trimmed.indexOf("=");
5586
+ if (eq <= 0) return true;
5587
+ const key = trimmed.slice(0, eq).trim();
5588
+ if (isSecretLikeStackEnvKey(key)) {
5589
+ removed.push(key);
5590
+ return false;
5591
+ }
5592
+ return true;
5593
+ }).join("\n"),
5594
+ removed
5595
+ };
5596
+ }
5597
+ /**
5598
+ * Path of the one-time "secret-looking values were removed from stack.env"
5599
+ * notice the UI reads and dismisses.
5600
+ */
5601
+ function secretStripNoticePath(state) {
5602
+ return `${state.dataDir}/secret-strip-notice.json`;
5603
+ }
5604
+ function recordSecretStripNotice(state, newlyRemoved) {
5605
+ const path = secretStripNoticePath(state);
5606
+ let keys = new Set(newlyRemoved);
5607
+ if (existsSync(path)) try {
5608
+ const prior = JSON.parse(readFileSync(path, "utf-8"));
5609
+ if (Array.isArray(prior.keys)) keys = new Set([...prior.keys, ...newlyRemoved]);
5610
+ } catch {}
5611
+ const notice = {
5612
+ keys: [...keys].sort(),
5613
+ at: (/* @__PURE__ */ new Date()).toISOString()
5614
+ };
5615
+ try {
5616
+ mkdirSync(state.dataDir, { recursive: true });
5617
+ writeFileSync(path, JSON.stringify(notice, null, 2));
5618
+ } catch (e) {
5619
+ logger$7.warn("Could not persist secret-strip notice", { error: e instanceof Error ? e.message : String(e) });
5620
+ }
5621
+ }
5622
+ /** Read the pending secret-strip notice, or null when there is none. */
5623
+ function readSecretStripNotice(state) {
5624
+ const path = secretStripNoticePath(state);
5625
+ if (!existsSync(path)) return null;
5626
+ try {
5627
+ const parsed = JSON.parse(readFileSync(path, "utf-8"));
5628
+ if (Array.isArray(parsed.keys) && parsed.keys.length > 0 && typeof parsed.at === "string") return {
5629
+ keys: parsed.keys,
5630
+ at: parsed.at
5631
+ };
5632
+ } catch {}
5633
+ return null;
5634
+ }
5635
+ /** Dismiss (delete) the pending secret-strip notice. */
5636
+ function dismissSecretStripNotice(state) {
5637
+ const path = secretStripNoticePath(state);
5638
+ if (existsSync(path)) try {
5639
+ rmSync(path);
5640
+ } catch (e) {
5641
+ logger$7.warn("Could not dismiss secret-strip notice", { error: e instanceof Error ? e.message : String(e) });
5642
+ }
5353
5643
  }
5354
5644
  function generateFallbackSystemEnv(state) {
5355
5645
  const ids = resolveOperatorIds(state.homeDir);
@@ -6991,6 +7281,43 @@ function resolvePlatformVersionPolicyBaseTag(state) {
6991
7281
  * Non-semver targets (a moving `latest`/`dev` tag) are not comparable and are
6992
7282
  * left to the resolver paths that turn them into a concrete release first.
6993
7283
  */
7284
+ /**
7285
+ * Downgrade-needs-confirmation signal (#501).
7286
+ *
7287
+ * Release migrations are forward-only (copy-only, additive); they do NOT run
7288
+ * backward. Pointing the stack at an OLDER tag than the one currently running is
7289
+ * therefore a data-safety event, not a routine version change: the older images
7290
+ * may not understand files the newer release already migrated. We don't block it
7291
+ * (a user may legitimately need to roll back), but we require an explicit
7292
+ * confirmation so it can't happen by a stray dropdown selection. The UI catches
7293
+ * this by `code` and shows a plain warning + confirm; the CLI surfaces the
7294
+ * message and a `--confirm`/`--yes` path.
7295
+ */
7296
+ var DowngradeConfirmationRequired = class extends Error {
7297
+ code = "downgrade_confirmation_required";
7298
+ currentVersion;
7299
+ targetVersion;
7300
+ constructor(currentVersion, targetVersion) {
7301
+ super(`Version ${formatForDisplay(targetVersion)} is older than the version you're running (${formatForDisplay(currentVersion)}). This is a downgrade. Release migrations don't run backward; your data may not be compatible — restore from backup if needed. Re-run with confirmation to proceed. Nothing was changed.`);
7302
+ this.name = "DowngradeConfirmationRequired";
7303
+ this.currentVersion = currentVersion;
7304
+ this.targetVersion = targetVersion;
7305
+ }
7306
+ };
7307
+ /**
7308
+ * Throw {@link DowngradeConfirmationRequired} when `targetTag` is strictly older
7309
+ * than the version currently configured in stack.env, unless the caller passed
7310
+ * an explicit confirmation. Non-semver tags (a moving `latest`/`dev` ref, or a
7311
+ * first install with no current tag) are not comparable and pass through — the
7312
+ * resolver paths turn `latest` into a concrete release before this runs.
7313
+ */
7314
+ function assertNotUnconfirmedDowngrade(state, targetTag, confirmDowngrade) {
7315
+ if (confirmDowngrade) return;
7316
+ const currentTag = resolvePlatformVersionPolicyBaseTag(state);
7317
+ if (!isComparableSemver(targetTag) || !isComparableSemver(currentTag)) return;
7318
+ if (compareComparableVersions(targetTag, currentTag) >= 0) return;
7319
+ throw new DowngradeConfirmationRequired(currentTag, targetTag);
7320
+ }
6994
7321
  function assertTargetNotNewerThanPlatform(targetTag) {
6995
7322
  if (!isComparableSemver(targetTag) || !isComparableSemver(PLATFORM_VERSION)) return;
6996
7323
  if (compareComparableVersions(targetTag, PLATFORM_VERSION) <= 0) return;
@@ -7098,6 +7425,15 @@ async function resolveLatestPlatformTag(namespace) {
7098
7425
  if (!latestTag) throw new Error("No usable Docker image tag found");
7099
7426
  return latestTag;
7100
7427
  }
7428
+ /**
7429
+ * Resolve the default target version for `openpalm migrate --dry-run`: the
7430
+ * newest published platform tag in the current major. Mirrors the resolver the
7431
+ * upgrade path uses (same namespace, same base tag, same prerelease policy) so a
7432
+ * dry-run preview reflects the exact version `openpalm update` would move to.
7433
+ */
7434
+ async function resolveDefaultMigrateTarget(state, opts = {}) {
7435
+ return resolveLatestPlatformTagForCurrentMajor(resolveImageNamespace(state), resolvePlatformVersionPolicyBaseTag(state), { allowPrerelease: opts.allowPrerelease });
7436
+ }
7101
7437
  async function resolveLatestPlatformTagForCurrentMajor(namespace, currentTag, opts = {}) {
7102
7438
  const skipPrerelease = !opts.allowPrerelease && !isPrerelease(currentTag);
7103
7439
  const latestTag = resolveNewestDockerTag(await fetchDockerTagsPayload(namespace, "assistant"), {
@@ -7198,7 +7534,7 @@ async function performUpgrade(state, opts = {}) {
7198
7534
  * Set a specific image tag in stack.env then pull images and restart containers.
7199
7535
  * Used by the admin "set version" action — skips the auto-detect step in performUpgrade.
7200
7536
  */
7201
- async function applyTagChange(state, tag) {
7537
+ async function applyTagChange(state, tag, opts = {}) {
7202
7538
  return withStackEnvRollback(state, async () => {
7203
7539
  const namespace = resolveImageNamespace(state);
7204
7540
  const requested = tag.trim();
@@ -7210,6 +7546,7 @@ async function applyTagChange(state, tag) {
7210
7546
  throw new Error(`Cannot resolve "latest" to a concrete release: ${msg}. Check your network connection or select a specific version.`);
7211
7547
  }
7212
7548
  assertTargetNotNewerThanPlatform(resolvedTag);
7549
+ assertNotUnconfirmedDowngrade(state, resolvedTag, opts.confirmDowngrade ?? false);
7213
7550
  const stackEnvPath = `${state.stashDir}/env/stack.env`;
7214
7551
  const currentEnv = parseEnvFile(stackEnvPath);
7215
7552
  const pinnedImages = parsePinnedImages(currentEnv.OP_PINNED_IMAGES);
@@ -7695,7 +8032,7 @@ async function runDeploy(state, options = {}) {
7695
8032
  const lock = acquireInstallLock(state.dataDir);
7696
8033
  if (!lock) {
7697
8034
  progress.deploying = false;
7698
- progress.deployError = "install_in_progress: A deploy is already running. Wait for it to finish.";
8035
+ progress.deployError = "install_in_progress: A deploy is already running. Wait for it to finish (the lock clears itself automatically after 30 minutes). If you're sure nothing is running, run 'openpalm unlock' to clear a stale lock.";
7699
8036
  emitProgress(options, progress);
7700
8037
  return progress;
7701
8038
  }
@@ -9369,7 +9706,7 @@ async function performSetup(input, opts) {
9369
9706
  const lockHandle = acquireInstallLock(state.dataDir);
9370
9707
  if (lockHandle === null) return {
9371
9708
  ok: false,
9372
- error: "install_in_progress: Another install is in progress. Wait for it to finish, or remove state/.install.lock if you're sure no install is running."
9709
+ error: "install_in_progress: Another install is in progress. Wait for it to finish (the lock clears itself automatically after 30 minutes). If you're sure nothing is running, run 'openpalm unlock' to clear a stale lock."
9373
9710
  };
9374
9711
  logger.info("performing setup", { connectionCount: connections.length });
9375
9712
  const updates = buildOwnerEnvFromSetup(owner);
@@ -9855,5 +10192,5 @@ function collectBindAddressWarnings(env) {
9855
10192
  return warnings;
9856
10193
  }
9857
10194
 
9858
- export { formatForDisplay as $, AKM_USER_ENV_REF as A, composeStats as B, CORE_SERVICES as C, composeStop as D, composeUp as E, createLogger as F, createOpenCodeClient as G, createState as H, deleteUserEnvKey as I, deriveLaunchStatus as J, deriveLocalStackState as K, detectGpu as L, MigrationError as M, detectHostOpenCode as N, detectLocalProviders as O, PLATFORM_VERSION as P, detectRuntime as Q, disableHostAkmSharing as R, enableHostAkmSharing as S, ensureAkmUserEnv as T, ensureHomeDirs as U, ensureMigrated as V, ensureOpenCodeConfig as W, ensureOpenCodeSystemConfig as X, ensureSecrets as Y, executeAutomation as Z, fetchProviderModels as _, addonProfileId as a, getAddonProfileAvailability as a0, getAddonProfileSelection as a1, getAddonProfiles as a2, getAddonServiceNames as a3, getAkmStats as a4, getDockerEvents as a5, getHostAkmSharingStatus as a6, getRegistryAddonConfig as a7, hostAkmStashPath as a8, importHostOpenCode as a9, recommendSetup as aA, removeSecretFile as aB, removeTaskFile as aC, resolveComposeProjectName as aD, resolveDataDir as aE, resolveDeployJournalPath as aF, resolveRuntimeFiles as aG, resolveStackDir as aH, runDeploy as aI, seedUiBuild as aJ, setAddonEnabled as aK, setAddonProfileSelection as aL, summarizeComposeStderr as aM, useExistingProviderForAssistantCli as aN, validateProposedState as aO, writeFileAtomic as aP, writeRuntimeFiles as aQ, writeSecretFile as aR, writeStackSecretEnv as aS, writeTaskFile as aT, writeUserEnvKey as aU, writeVoiceVars as aV, initializeStateSecrets as aa, isAllowedService as ab, isComparableSemver as ac, isHostAkmAvailable as ad, isSetupComplete as ae, listAssistantCliTools as af, listAvailableAddonIds as ag, listEnabledAddonIds as ah, listSecretFiles as ai, loadAutomations as aj, mapDockerError as ak, markSetupComplete as al, parseComposeStderr as am, parseEnvFile as an, patchSecretsEnvFile as ao, performSetup as ap, performUpgrade as aq, readAutomationLogs as ar, readDeployJournal as as, readSecret as at, readSecretFile as au, readStackEnv as av, readStackRuntimeEnv as aw, readStackSecretEnv as ax, readTaskFile as ay, readUserEnvFile as az, annotateAddonProfileAvailability as b, applyInstall as c, applyTagChange as d, applyUninstall as e, applyUpdate as f, assertSafeSecretFilename as g, assertSafeTaskFilename as h, authJsonPath as i, backupSetupInputs as j, buildAkmEndpoint as k, buildAkmEnv as l, buildComposeOptions as m, buildManagedServices as n, checkDocker as o, checkDockerCompose as p, classifyLocalInstall as q, collectBindAddressWarnings as r, compareComparableVersions as s, composeDown as t, composeLogs as u, composePreflight as v, composePs as w, composePull as x, composeRestart as y, composeStart as z };
9859
- //# sourceMappingURL=src-BEj0DuSB.js.map
10195
+ export { ensureReleaseMigrated as $, AKM_USER_ENV_REF as A, composeStats as B, CORE_SERVICES as C, DowngradeConfirmationRequired as D, composeStop as E, composeUp as F, createLogger as G, createOpenCodeClient as H, INSTALL_LOCK_STALE_AFTER_MS as I, createState as J, deleteUserEnvKey as K, deriveLaunchStatus as L, MigrationError as M, deriveLocalStackState as N, detectGpu as O, PLATFORM_VERSION as P, detectHostOpenCode as Q, detectLocalProviders as R, detectRuntime as S, disableHostAkmSharing as T, dismissSecretStripNotice as U, enableHostAkmSharing as V, ensureAkmUserEnv as W, ensureHomeDirs as X, ensureMigrated as Y, ensureOpenCodeConfig as Z, ensureOpenCodeSystemConfig as _, addonProfileId as a, writeRuntimeFiles as a$, ensureSecrets as a0, executeAutomation as a1, fetchProviderModels as a2, formatForDisplay as a3, getAddonProfileAvailability as a4, getAddonProfileSelection as a5, getAddonProfiles as a6, getAddonServiceNames as a7, getAkmStats as a8, getDockerEvents as a9, readSecret as aA, readSecretFile as aB, readSecretStripNotice as aC, readStackEnv as aD, readStackRuntimeEnv as aE, readStackSecretEnv as aF, readTaskFile as aG, readUserEnvFile as aH, recommendSetup as aI, removeSecretFile as aJ, removeTaskFile as aK, resolveComposeProjectName as aL, resolveDataDir as aM, resolveDefaultMigrateTarget as aN, resolveDeployJournalPath as aO, resolveRuntimeFiles as aP, resolveStackDir as aQ, runDeploy as aR, seedUiBuild as aS, setAddonEnabled as aT, setAddonProfileSelection as aU, summarizeBackups as aV, summarizeComposeStderr as aW, unlockInstallLock as aX, useExistingProviderForAssistantCli as aY, validateProposedState as aZ, writeFileAtomic as a_, getHostAkmSharingStatus as aa, getRegistryAddonConfig as ab, hostAkmStashPath as ac, importHostOpenCode as ad, initializeStateSecrets as ae, inspectInstallLock as af, isAllowedService as ag, isComparableSemver as ah, isHostAkmAvailable as ai, isSetupComplete as aj, listAssistantCliTools as ak, listAvailableAddonIds as al, listBackupDirs as am, listEnabledAddonIds as an, listSecretFiles as ao, loadAutomations as ap, mapDockerError as aq, markSetupComplete as ar, parseComposeStderr as as, parseEnvFile as at, patchSecretsEnvFile as au, performSetup as av, performUpgrade as aw, pruneBackupDirs as ax, readAutomationLogs as ay, readDeployJournal as az, annotateAddonProfileAvailability as b, writeSecretFile as b0, writeStackSecretEnv as b1, writeTaskFile as b2, writeUserEnvKey as b3, writeVoiceVars as b4, applyInstall as c, applyTagChange as d, applyUninstall as e, applyUpdate as f, assertSafeSecretFilename as g, assertSafeTaskFilename as h, authJsonPath as i, backupSetupInputs as j, buildAkmEndpoint as k, buildAkmEnv as l, buildComposeOptions as m, buildManagedServices as n, checkDocker as o, checkDockerCompose as p, classifyLocalInstall as q, collectBindAddressWarnings as r, compareComparableVersions as s, composeDown as t, composeLogs as u, composePreflight as v, composePs as w, composePull as x, composeRestart as y, composeStart as z };
10196
+ //# sourceMappingURL=src-B7oqi9q_.js.map