mongoku 2.4.7 → 2.5.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 (358) hide show
  1. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css +1 -0
  2. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/2G5jukcB.js +1 -0
  5. package/build/client/_app/immutable/chunks/2G5jukcB.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/2G5jukcB.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/4ttua0Re.js +14 -0
  8. package/build/client/_app/immutable/chunks/4ttua0Re.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/4ttua0Re.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/B-kXX-X_.js +1 -0
  11. package/build/client/_app/immutable/chunks/B-kXX-X_.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/B-kXX-X_.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/B0cd1IZF.js +41 -0
  14. package/build/client/_app/immutable/chunks/B0cd1IZF.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/B0cd1IZF.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/B5NTIIm5.js +1 -0
  17. package/build/client/_app/immutable/chunks/B5NTIIm5.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/B5NTIIm5.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BJwU4xOT.js +16 -0
  20. package/build/client/_app/immutable/chunks/BJwU4xOT.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BJwU4xOT.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BUr91kOw.js +1 -0
  23. package/build/client/_app/immutable/chunks/BUr91kOw.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BUr91kOw.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BWu7oLe0.js +4 -0
  26. package/build/client/_app/immutable/chunks/BWu7oLe0.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BWu7oLe0.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BYPjaq07.js +1 -0
  29. package/build/client/_app/immutable/chunks/BYPjaq07.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/BYPjaq07.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js +1 -0
  32. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.br +1 -0
  33. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/BnpHJF5-.js +2 -0
  35. package/build/client/_app/immutable/chunks/BnpHJF5-.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/BnpHJF5-.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/C93uPVVn.js +1 -0
  38. package/build/client/_app/immutable/chunks/C93uPVVn.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/C93uPVVn.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/CGcE8Rl5.js +1 -0
  41. package/build/client/_app/immutable/chunks/CGcE8Rl5.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/CGcE8Rl5.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/CXNtxrhs.js +1 -0
  44. package/build/client/_app/immutable/chunks/CXNtxrhs.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CXNtxrhs.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/CxcplU4Q.js +1 -0
  47. package/build/client/_app/immutable/chunks/CxcplU4Q.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/CxcplU4Q.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DDWsiNa9.js +1 -0
  50. package/build/client/_app/immutable/chunks/DDWsiNa9.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DDWsiNa9.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/DDy-Kuac.js +1 -0
  53. package/build/client/_app/immutable/chunks/DDy-Kuac.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DDy-Kuac.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/DKs6lF0p.js +1 -0
  56. package/build/client/_app/immutable/chunks/DKs6lF0p.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DKs6lF0p.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/DUw-I2kh.js +1 -0
  59. package/build/client/_app/immutable/chunks/DUw-I2kh.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DUw-I2kh.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/DdLT9cdj.js +1 -0
  62. package/build/client/_app/immutable/chunks/DdLT9cdj.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/DdLT9cdj.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{BPstE8aZ.js → WZQl3PXp.js} +1 -1
  65. package/build/client/_app/immutable/chunks/WZQl3PXp.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/WZQl3PXp.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/{CqFYS5AV.js → c-rWvg5T.js} +1 -1
  68. package/build/client/_app/immutable/chunks/c-rWvg5T.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/c-rWvg5T.js.gz +0 -0
  70. package/build/client/_app/immutable/entry/app.8xlHykYa.js +2 -0
  71. package/build/client/_app/immutable/entry/app.8xlHykYa.js.br +0 -0
  72. package/build/client/_app/immutable/entry/app.8xlHykYa.js.gz +0 -0
  73. package/build/client/_app/immutable/entry/start.BwFTOpkF.js +1 -0
  74. package/build/client/_app/immutable/entry/start.BwFTOpkF.js.br +2 -0
  75. package/build/client/_app/immutable/entry/start.BwFTOpkF.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/0.DGRMtotF.js +1 -0
  77. package/build/client/_app/immutable/nodes/0.DGRMtotF.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/0.DGRMtotF.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/1.DQleRSNO.js +1 -0
  80. package/build/client/_app/immutable/nodes/1.DQleRSNO.js.br +3 -0
  81. package/build/client/_app/immutable/nodes/1.DQleRSNO.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/10.C0_oTkOV.js +6 -0
  83. package/build/client/_app/immutable/nodes/10.C0_oTkOV.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/10.C0_oTkOV.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/11.BYiu8_Fh.js +1 -0
  86. package/build/client/_app/immutable/nodes/11.BYiu8_Fh.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/11.BYiu8_Fh.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/12.DeyT7_nC.js +1 -0
  89. package/build/client/_app/immutable/nodes/12.DeyT7_nC.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/12.DeyT7_nC.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/13.OqyrEgsi.js +65 -0
  92. package/build/client/_app/immutable/nodes/13.OqyrEgsi.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/13.OqyrEgsi.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{2.Byf6opOr.js → 2.AM8fesja.js} +1 -1
  95. package/build/client/_app/immutable/nodes/2.AM8fesja.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/2.AM8fesja.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{3.B3j0bAgy.js → 3.BShuoOz5.js} +1 -1
  98. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/{4.6dtz57ii.js → 4.BD6QbApY.js} +1 -1
  101. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/{5.COHVaEDo.js → 5.JM_dwz0R.js} +1 -1
  104. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/7.Dtpom3D1.js +1 -0
  107. package/build/client/_app/immutable/nodes/7.Dtpom3D1.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/7.Dtpom3D1.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/8.7HZSz3dS.js +1 -0
  110. package/build/client/_app/immutable/nodes/8.7HZSz3dS.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/8.7HZSz3dS.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/9.DryY3cN-.js +2 -0
  113. package/build/client/_app/immutable/nodes/9.DryY3cN-.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/9.DryY3cN-.js.gz +0 -0
  115. package/build/client/_app/version.json +1 -1
  116. package/build/client/_app/version.json.br +0 -0
  117. package/build/client/_app/version.json.gz +0 -0
  118. package/build/env.js +51 -2
  119. package/build/handler.js +46 -4
  120. package/build/index.js +25 -14
  121. package/build/server/chunks/0-BAlP_A7I.js +22 -0
  122. package/build/server/chunks/0-BAlP_A7I.js.map +1 -0
  123. package/build/server/chunks/1-CPazbA0M.js +9 -0
  124. package/build/server/chunks/1-CPazbA0M.js.map +1 -0
  125. package/build/server/chunks/{10-Q8FxEohX.js → 10-0G9tKOEZ.js} +4 -4
  126. package/build/server/chunks/10-0G9tKOEZ.js.map +1 -0
  127. package/build/server/chunks/{11-Dih8b_FT.js → 11-CQtj68wB.js} +4 -4
  128. package/build/server/chunks/11-CQtj68wB.js.map +1 -0
  129. package/build/server/chunks/{12-BTYK-Nix.js → 12-BxL571qn.js} +9 -4
  130. package/build/server/chunks/12-BxL571qn.js.map +1 -0
  131. package/build/server/chunks/{13-DANeaseJ.js → 13-CVnmHTU-.js} +4 -4
  132. package/build/server/chunks/{13-DANeaseJ.js.map → 13-CVnmHTU-.js.map} +1 -1
  133. package/build/server/chunks/{2-Bx656tbc.js → 2-DaZMexAs.js} +2 -2
  134. package/build/server/chunks/2-DaZMexAs.js.map +1 -0
  135. package/build/server/chunks/{3-B-zRiOJV.js → 3-Dr4vFhF1.js} +2 -2
  136. package/build/server/chunks/3-Dr4vFhF1.js.map +1 -0
  137. package/build/server/chunks/{4-BBCE4OIo.js → 4-K2WnEwm7.js} +2 -2
  138. package/build/server/chunks/4-K2WnEwm7.js.map +1 -0
  139. package/build/server/chunks/{5-D68X5smv.js → 5-Be-Du8oZ.js} +2 -2
  140. package/build/server/chunks/5-Be-Du8oZ.js.map +1 -0
  141. package/build/server/chunks/{6-ifXBeMPA.js → 6-D70sM7i2.js} +2 -2
  142. package/build/server/chunks/{6-ifXBeMPA.js.map → 6-D70sM7i2.js.map} +1 -1
  143. package/build/server/chunks/{7-BvrEDP0H.js → 7-UvrylHPO.js} +4 -4
  144. package/build/server/chunks/7-UvrylHPO.js.map +1 -0
  145. package/build/server/chunks/{8-DVSIRfD_.js → 8-BWabjnVi.js} +4 -4
  146. package/build/server/chunks/8-BWabjnVi.js.map +1 -0
  147. package/build/server/chunks/{9-DYUtK2qF.js → 9-BfXBe593.js} +4 -4
  148. package/build/server/chunks/9-BfXBe593.js.map +1 -0
  149. package/build/server/chunks/{JsonValue-EppVzWzE.js → JsonValue-W-SPP1mP.js} +4 -4
  150. package/build/server/chunks/JsonValue-W-SPP1mP.js.map +1 -0
  151. package/build/server/chunks/{Modal-eRpc5lqR.js → Modal-fWUUqg69.js} +3 -3
  152. package/build/server/chunks/Modal-fWUUqg69.js.map +1 -0
  153. package/build/server/chunks/{Panel-HO9t9Spv.js → Panel-BXokpC3w.js} +13 -6
  154. package/build/server/chunks/Panel-BXokpC3w.js.map +1 -0
  155. package/build/server/chunks/{PrettyJson-F3fqxkqU.js → PrettyJson-BRyBOmHe.js} +6 -6
  156. package/build/server/chunks/PrettyJson-BRyBOmHe.js.map +1 -0
  157. package/build/server/chunks/{Tooltip-Dd-Bzogp.js → Tooltip-1tZ4BUxU.js} +2 -2
  158. package/build/server/chunks/Tooltip-1tZ4BUxU.js.map +1 -0
  159. package/build/server/chunks/{TooltipTable-jHWezlEs.js → TooltipTable-B2QGp4YW.js} +4 -4
  160. package/build/server/chunks/TooltipTable-B2QGp4YW.js.map +1 -0
  161. package/build/server/chunks/{_layout.svelte-CKGgUBvr.js → _layout.svelte-CblefOVC.js} +11 -10
  162. package/build/server/chunks/_layout.svelte-CblefOVC.js.map +1 -0
  163. package/build/server/chunks/{_page.svelte-ClZj6yzK.js → _page.svelte-BN0rshEY.js} +13 -12
  164. package/build/server/chunks/_page.svelte-BN0rshEY.js.map +1 -0
  165. package/build/server/chunks/{_page.svelte-DFzKfImt.js → _page.svelte-BynsNDn8.js} +16 -15
  166. package/build/server/chunks/{_page.svelte-DFzKfImt.js.map → _page.svelte-BynsNDn8.js.map} +1 -1
  167. package/build/server/chunks/{_page.svelte-DBcsXxML.js → _page.svelte-CIbSDaPK.js} +14 -13
  168. package/build/server/chunks/_page.svelte-CIbSDaPK.js.map +1 -0
  169. package/build/server/chunks/{_page.svelte-BlmdSnTh.js → _page.svelte-DLXpqNHi.js} +9 -8
  170. package/build/server/chunks/_page.svelte-DLXpqNHi.js.map +1 -0
  171. package/build/server/chunks/{_page.svelte-ZYW4iSHn.js → _page.svelte-LdKBnnIv.js} +17 -16
  172. package/build/server/chunks/_page.svelte-LdKBnnIv.js.map +1 -0
  173. package/build/server/chunks/{_page.svelte-D50SWEhd.js → _page.svelte-QapG7T-C.js} +14 -13
  174. package/build/server/chunks/_page.svelte-QapG7T-C.js.map +1 -0
  175. package/build/server/chunks/{_page.svelte-D8GSKYqN.js → _page.svelte-vpZZN5HP.js} +67 -20
  176. package/build/server/chunks/_page.svelte-vpZZN5HP.js.map +1 -0
  177. package/build/server/chunks/client-sMN80nsW.js +7 -0
  178. package/build/server/chunks/{client-Cp5ag8tA.js.map → client-sMN80nsW.js.map} +1 -1
  179. package/build/server/chunks/{client2-Dos6p_Xm.js → client2-Win1ekWT.js} +4 -4
  180. package/build/server/chunks/client2-Win1ekWT.js.map +1 -0
  181. package/build/server/chunks/{context-C22hLSHK.js → context-8UI9xWgq.js} +2 -3
  182. package/build/server/chunks/context-8UI9xWgq.js.map +1 -0
  183. package/build/server/chunks/error.svelte-BxPCp8kk.js +18 -0
  184. package/build/server/chunks/{error.svelte-BBEhCLUJ.js.map → error.svelte-BxPCp8kk.js.map} +1 -1
  185. package/build/server/chunks/{exports-Cv9LZeD1.js → exports-CtTNDGe5.js} +6 -6
  186. package/build/server/chunks/exports-CtTNDGe5.js.map +1 -0
  187. package/build/server/chunks/{index2-DBFlGzWV.js → index-DOCFW0vv.js} +535 -27
  188. package/build/server/chunks/index-DOCFW0vv.js.map +1 -0
  189. package/build/server/chunks/{index-Djsj11qr.js → index-wpIsICWW.js} +6 -1
  190. package/build/server/chunks/index-wpIsICWW.js.map +1 -0
  191. package/build/server/chunks/{index-DFXVwu6p.js → index2-CJE0QJlP.js} +2 -2
  192. package/build/server/chunks/index2-CJE0QJlP.js.map +1 -0
  193. package/build/server/chunks/{index3-DANRthiW.js → index3-B-GW6G4t.js} +3 -3
  194. package/build/server/chunks/{index3-DANRthiW.js.map → index3-B-GW6G4t.js.map} +1 -1
  195. package/build/server/chunks/{mongo-Ndoh6fs5.js → mongo-CpQtfvt6.js} +30 -1
  196. package/build/server/chunks/mongo-CpQtfvt6.js.map +1 -0
  197. package/build/server/chunks/{remote-xxtqbu-fbBqzvFu.js → remote-xxtqbu-CnjCJBlx.js} +6 -5
  198. package/build/server/chunks/remote-xxtqbu-CnjCJBlx.js.map +1 -0
  199. package/build/server/chunks/{servers.remote-B1eorl4A.js → servers.remote-DFtFLNmW.js} +97 -91
  200. package/build/server/chunks/servers.remote-DFtFLNmW.js.map +1 -0
  201. package/build/server/chunks/{shared-CQd3A1I4.js → shared-LVlqpKFH.js} +35 -95
  202. package/build/server/chunks/shared-LVlqpKFH.js.map +1 -0
  203. package/build/server/chunks/{state.svelte-Dm0prnTp.js → state.svelte-Cv3Dtfl4.js} +2 -2
  204. package/build/server/chunks/state.svelte-Cv3Dtfl4.js.map +1 -0
  205. package/build/server/chunks/utils-D1ahxout.js.map +1 -1
  206. package/build/server/chunks/utils2-DrnJY_bz.js +91 -0
  207. package/build/server/chunks/utils2-DrnJY_bz.js.map +1 -0
  208. package/build/server/index.js +826 -672
  209. package/build/server/index.js.map +1 -1
  210. package/build/server/manifest.js +16 -16
  211. package/build/server/manifest.js.map +1 -1
  212. package/package.json +2 -2
  213. package/src/api/servers.remote.ts +62 -48
  214. package/src/lib/components/Panel.svelte +5 -2
  215. package/src/lib/components/SearchBox.svelte +153 -41
  216. package/src/lib/server/mongo.ts +41 -0
  217. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +40 -2
  218. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.server.ts +8 -1
  219. package/build/client/_app/immutable/assets/0.C_geP4pp.css +0 -1
  220. package/build/client/_app/immutable/assets/0.C_geP4pp.css.br +0 -0
  221. package/build/client/_app/immutable/assets/0.C_geP4pp.css.gz +0 -0
  222. package/build/client/_app/immutable/chunks/B4aoEZ0v.js +0 -24
  223. package/build/client/_app/immutable/chunks/B4aoEZ0v.js.br +0 -0
  224. package/build/client/_app/immutable/chunks/B4aoEZ0v.js.gz +0 -0
  225. package/build/client/_app/immutable/chunks/BLB7WU0x.js +0 -1
  226. package/build/client/_app/immutable/chunks/BLB7WU0x.js.br +0 -0
  227. package/build/client/_app/immutable/chunks/BLB7WU0x.js.gz +0 -0
  228. package/build/client/_app/immutable/chunks/BLbeQvsT.js +0 -1
  229. package/build/client/_app/immutable/chunks/BLbeQvsT.js.br +0 -0
  230. package/build/client/_app/immutable/chunks/BLbeQvsT.js.gz +0 -0
  231. package/build/client/_app/immutable/chunks/BPstE8aZ.js.br +0 -0
  232. package/build/client/_app/immutable/chunks/BPstE8aZ.js.gz +0 -0
  233. package/build/client/_app/immutable/chunks/Bf7BrxKt.js +0 -16
  234. package/build/client/_app/immutable/chunks/Bf7BrxKt.js.br +0 -0
  235. package/build/client/_app/immutable/chunks/Bf7BrxKt.js.gz +0 -0
  236. package/build/client/_app/immutable/chunks/Bp2iD_PL.js +0 -1
  237. package/build/client/_app/immutable/chunks/Bp2iD_PL.js.br +0 -0
  238. package/build/client/_app/immutable/chunks/Bp2iD_PL.js.gz +0 -0
  239. package/build/client/_app/immutable/chunks/C7SHYyfv.js +0 -1
  240. package/build/client/_app/immutable/chunks/C7SHYyfv.js.br +0 -0
  241. package/build/client/_app/immutable/chunks/C7SHYyfv.js.gz +0 -0
  242. package/build/client/_app/immutable/chunks/CItzKczS.js +0 -1
  243. package/build/client/_app/immutable/chunks/CItzKczS.js.br +0 -0
  244. package/build/client/_app/immutable/chunks/CItzKczS.js.gz +0 -0
  245. package/build/client/_app/immutable/chunks/CcZlJCRe.js +0 -1
  246. package/build/client/_app/immutable/chunks/CcZlJCRe.js.br +0 -0
  247. package/build/client/_app/immutable/chunks/CcZlJCRe.js.gz +0 -0
  248. package/build/client/_app/immutable/chunks/CqFYS5AV.js.br +0 -0
  249. package/build/client/_app/immutable/chunks/CqFYS5AV.js.gz +0 -0
  250. package/build/client/_app/immutable/chunks/DCMoR4xM.js +0 -4
  251. package/build/client/_app/immutable/chunks/DCMoR4xM.js.br +0 -0
  252. package/build/client/_app/immutable/chunks/DCMoR4xM.js.gz +0 -0
  253. package/build/client/_app/immutable/chunks/DOGFG_U4.js +0 -14
  254. package/build/client/_app/immutable/chunks/DOGFG_U4.js.br +0 -0
  255. package/build/client/_app/immutable/chunks/DOGFG_U4.js.gz +0 -0
  256. package/build/client/_app/immutable/chunks/Dip-8jE5.js +0 -1
  257. package/build/client/_app/immutable/chunks/Dip-8jE5.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/Dip-8jE5.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/Dr_XE7iR.js +0 -2
  260. package/build/client/_app/immutable/chunks/Dr_XE7iR.js.br +0 -0
  261. package/build/client/_app/immutable/chunks/Dr_XE7iR.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/DuLpG1zT.js +0 -1
  263. package/build/client/_app/immutable/chunks/DuLpG1zT.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/DuLpG1zT.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/DyfVYlRP.js +0 -1
  266. package/build/client/_app/immutable/chunks/DyfVYlRP.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/DyfVYlRP.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/DzvdC2Gd.js +0 -1
  269. package/build/client/_app/immutable/chunks/DzvdC2Gd.js.br +0 -0
  270. package/build/client/_app/immutable/chunks/DzvdC2Gd.js.gz +0 -0
  271. package/build/client/_app/immutable/chunks/OTbFjzBQ.js +0 -1
  272. package/build/client/_app/immutable/chunks/OTbFjzBQ.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/OTbFjzBQ.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/TQ9V_LBO.js +0 -1
  275. package/build/client/_app/immutable/chunks/TQ9V_LBO.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/TQ9V_LBO.js.gz +0 -0
  277. package/build/client/_app/immutable/entry/app.jWGtrjtJ.js +0 -2
  278. package/build/client/_app/immutable/entry/app.jWGtrjtJ.js.br +0 -0
  279. package/build/client/_app/immutable/entry/app.jWGtrjtJ.js.gz +0 -0
  280. package/build/client/_app/immutable/entry/start.BSgvMa0e.js +0 -1
  281. package/build/client/_app/immutable/entry/start.BSgvMa0e.js.br +0 -0
  282. package/build/client/_app/immutable/entry/start.BSgvMa0e.js.gz +0 -0
  283. package/build/client/_app/immutable/nodes/0.D5oac--o.js +0 -1
  284. package/build/client/_app/immutable/nodes/0.D5oac--o.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/0.D5oac--o.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/1.6YZj1h_y.js +0 -1
  287. package/build/client/_app/immutable/nodes/1.6YZj1h_y.js.br +0 -2
  288. package/build/client/_app/immutable/nodes/1.6YZj1h_y.js.gz +0 -0
  289. package/build/client/_app/immutable/nodes/10.BW6wwszo.js +0 -3
  290. package/build/client/_app/immutable/nodes/10.BW6wwszo.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/10.BW6wwszo.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/11.fZbuEW5q.js +0 -1
  293. package/build/client/_app/immutable/nodes/11.fZbuEW5q.js.br +0 -0
  294. package/build/client/_app/immutable/nodes/11.fZbuEW5q.js.gz +0 -0
  295. package/build/client/_app/immutable/nodes/12.Gjj_PCiQ.js +0 -1
  296. package/build/client/_app/immutable/nodes/12.Gjj_PCiQ.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/12.Gjj_PCiQ.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/13.CPZtARGc.js +0 -65
  299. package/build/client/_app/immutable/nodes/13.CPZtARGc.js.br +0 -0
  300. package/build/client/_app/immutable/nodes/13.CPZtARGc.js.gz +0 -0
  301. package/build/client/_app/immutable/nodes/2.Byf6opOr.js.br +0 -0
  302. package/build/client/_app/immutable/nodes/2.Byf6opOr.js.gz +0 -0
  303. package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.br +0 -0
  304. package/build/client/_app/immutable/nodes/3.B3j0bAgy.js.gz +0 -0
  305. package/build/client/_app/immutable/nodes/4.6dtz57ii.js.br +0 -0
  306. package/build/client/_app/immutable/nodes/4.6dtz57ii.js.gz +0 -0
  307. package/build/client/_app/immutable/nodes/5.COHVaEDo.js.br +0 -0
  308. package/build/client/_app/immutable/nodes/5.COHVaEDo.js.gz +0 -0
  309. package/build/client/_app/immutable/nodes/7.4ml51zZU.js +0 -1
  310. package/build/client/_app/immutable/nodes/7.4ml51zZU.js.br +0 -0
  311. package/build/client/_app/immutable/nodes/7.4ml51zZU.js.gz +0 -0
  312. package/build/client/_app/immutable/nodes/8.NwY5pOFB.js +0 -1
  313. package/build/client/_app/immutable/nodes/8.NwY5pOFB.js.br +0 -0
  314. package/build/client/_app/immutable/nodes/8.NwY5pOFB.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/9.C_rnhcuh.js +0 -2
  316. package/build/client/_app/immutable/nodes/9.C_rnhcuh.js.br +0 -0
  317. package/build/client/_app/immutable/nodes/9.C_rnhcuh.js.gz +0 -0
  318. package/build/server/chunks/0-B2WscjW7.js +0 -22
  319. package/build/server/chunks/0-B2WscjW7.js.map +0 -1
  320. package/build/server/chunks/1-B9coRC5J.js +0 -9
  321. package/build/server/chunks/1-B9coRC5J.js.map +0 -1
  322. package/build/server/chunks/10-Q8FxEohX.js.map +0 -1
  323. package/build/server/chunks/11-Dih8b_FT.js.map +0 -1
  324. package/build/server/chunks/12-BTYK-Nix.js.map +0 -1
  325. package/build/server/chunks/2-Bx656tbc.js.map +0 -1
  326. package/build/server/chunks/3-B-zRiOJV.js.map +0 -1
  327. package/build/server/chunks/4-BBCE4OIo.js.map +0 -1
  328. package/build/server/chunks/5-D68X5smv.js.map +0 -1
  329. package/build/server/chunks/7-BvrEDP0H.js.map +0 -1
  330. package/build/server/chunks/8-DVSIRfD_.js.map +0 -1
  331. package/build/server/chunks/9-DYUtK2qF.js.map +0 -1
  332. package/build/server/chunks/JsonValue-EppVzWzE.js.map +0 -1
  333. package/build/server/chunks/Modal-eRpc5lqR.js.map +0 -1
  334. package/build/server/chunks/Panel-HO9t9Spv.js.map +0 -1
  335. package/build/server/chunks/PrettyJson-F3fqxkqU.js.map +0 -1
  336. package/build/server/chunks/Tooltip-Dd-Bzogp.js.map +0 -1
  337. package/build/server/chunks/TooltipTable-jHWezlEs.js.map +0 -1
  338. package/build/server/chunks/_layout.svelte-CKGgUBvr.js.map +0 -1
  339. package/build/server/chunks/_page.svelte-BlmdSnTh.js.map +0 -1
  340. package/build/server/chunks/_page.svelte-ClZj6yzK.js.map +0 -1
  341. package/build/server/chunks/_page.svelte-D50SWEhd.js.map +0 -1
  342. package/build/server/chunks/_page.svelte-D8GSKYqN.js.map +0 -1
  343. package/build/server/chunks/_page.svelte-DBcsXxML.js.map +0 -1
  344. package/build/server/chunks/_page.svelte-ZYW4iSHn.js.map +0 -1
  345. package/build/server/chunks/client-Cp5ag8tA.js +0 -7
  346. package/build/server/chunks/client2-Dos6p_Xm.js.map +0 -1
  347. package/build/server/chunks/context-C22hLSHK.js.map +0 -1
  348. package/build/server/chunks/error.svelte-BBEhCLUJ.js +0 -18
  349. package/build/server/chunks/exports-Cv9LZeD1.js.map +0 -1
  350. package/build/server/chunks/index-DFXVwu6p.js.map +0 -1
  351. package/build/server/chunks/index-Djsj11qr.js.map +0 -1
  352. package/build/server/chunks/index2-DBFlGzWV.js.map +0 -1
  353. package/build/server/chunks/mongo-Ndoh6fs5.js.map +0 -1
  354. package/build/server/chunks/remote-xxtqbu-fbBqzvFu.js.map +0 -1
  355. package/build/server/chunks/servers.remote-B1eorl4A.js.map +0 -1
  356. package/build/server/chunks/shared-CQd3A1I4.js.map +0 -1
  357. package/build/server/chunks/state.svelte-Dm0prnTp.js.map +0 -1
  358. package/src/lib/components/TimeRangeStats.svelte +0 -269
@@ -1,12 +1,13 @@
1
- import { j as json, t as text, R as Redirect, S as SvelteKitError, H as HttpError, e as error, A as ActionFailure } from './chunks/index-Djsj11qr.js';
2
- import { w as with_request_store, d as text_encoder, e as get_relative_path, c as base64_encode, a as text_decoder } from './chunks/utils-D1ahxout.js';
1
+ import { S as SvelteKitError, j as json, t as text, R as Redirect, H as HttpError, e as error, A as ActionFailure } from './chunks/index-wpIsICWW.js';
2
+ import { a as text_decoder, w as with_request_store, d as text_encoder, e as get_relative_path, c as base64_encode } from './chunks/utils-D1ahxout.js';
3
3
  import { b as base, a as app_dir, e as exec, c as assets, d as relative, o as override, f as reset } from './chunks/routing-e10vGH37.js';
4
- import { T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, c as create_remote_cache_key, i as is_primitive, g as get_type, p as parse_remote_arg, a as stringify, b as stringify$1, D as DevalueError, d as is_plain_object, e as enumerable_symbols, f as stringify_key, h as stringify_string, j as escaped } from './chunks/shared-CQd3A1I4.js';
5
- import { d as decode_pathname, a as decode_params, n as normalize_path, b as disable_search, v as validate_layout_server_exports, c as validate_layout_exports, e as validate_page_server_exports, f as validate_page_exports, r as resolve, m as make_trackable } from './chunks/exports-Cv9LZeD1.js';
6
- import { s as safe_equals, e as equals, r as readable, w as writable } from './chunks/index-DFXVwu6p.js';
7
- import { r as render, L as LEGACY_PROPS, U as UNOWNED, E as ERROR_VALUE, C as COMMENT_NODE, H as HYDRATION_START, i as HYDRATION_ERROR, S as STATE_SYMBOL, j as UNINITIALIZED, D as DERIVED, k as DIRTY, l as CLEAN, M as MAYBE_DIRTY, m as DISCONNECTED, I as INERT, n as EFFECT, R as RENDER_EFFECT, B as BLOCK_EFFECT, o as is_passive_event, p as BRANCH_EFFECT, q as ROOT_EFFECT, t as DESTROYED, A as ASYNC, u as REACTION_IS_UPDATING, v as EFFECT_RAN, w as EFFECT_PRESERVED, x as HEAD_EFFECT, y as BOUNDARY_EFFECT, z as EFFECT_TRANSPARENT, F as INSPECT_EFFECT, G as STALE_REACTION, J as HYDRATION_END, K as HYDRATION_START_ELSE, N as USER_EFFECT } from './chunks/index2-DBFlGzWV.js';
8
- import { d as define_property, o as object_prototype, c as array_prototype, f as get_descriptor, h as is_extensible, j as array_from, k as get_prototype_of, l as is_array, m as deferred, r as run_all, q as index_of, t as setContext } from './chunks/context-C22hLSHK.js';
4
+ import { p as parse, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, c as create_remote_key, a as parse_remote_arg, b as stringify, d as stringify$1 } from './chunks/shared-LVlqpKFH.js';
5
+ import { r as render, L as LEGACY_PROPS, C as CONNECTED, E as ERROR_VALUE, i as COMMENT_NODE, H as HYDRATION_START, j as HYDRATION_ERROR, S as STATE_SYMBOL, U as UNINITIALIZED, D as DERIVED, k as DIRTY, M as MAYBE_DIRTY, l as CLEAN, I as INERT, B as BOUNDARY_EFFECT, m as EFFECT, R as RENDER_EFFECT, n as MANAGED_EFFECT, o as BLOCK_EFFECT, W as WAS_MARKED, p as is_passive_event, q as BRANCH_EFFECT, t as ROOT_EFFECT, u as DESTROYED, A as ASYNC, v as HEAD_EFFECT, w as REACTION_IS_UPDATING, x as EFFECT_RAN, y as EFFECT_PRESERVED, z as EFFECT_TRANSPARENT, F as EAGER_EFFECT, G as STALE_REACTION, J as HYDRATION_END, K as HYDRATION_START_ELSE, N as USER_EFFECT, O as uneval } from './chunks/index-DOCFW0vv.js';
6
+ import { d as decode_pathname, a as decode_params, n as normalize_path, b as disable_search, v as validate_layout_server_exports, c as validate_layout_exports, e as validate_page_server_exports, f as validate_page_exports, r as resolve, m as make_trackable } from './chunks/exports-CtTNDGe5.js';
7
+ import { s as safe_equals, e as equals, r as readable, w as writable } from './chunks/index2-CJE0QJlP.js';
8
+ import { c as define_property, o as object_prototype, f as array_prototype, h as get_descriptor, j as is_extensible, k as array_from, l as get_prototype_of, m as is_array, d as deferred, r as run_all, q as index_of, t as setContext } from './chunks/context-8UI9xWgq.js';
9
9
  import { a as async_mode_flag, t as tracing_mode_flag } from './chunks/async-lVJA8xJZ.js';
10
+ import './chunks/utils2-DrnJY_bz.js';
10
11
 
11
12
  const DEV = false;
12
13
 
@@ -26,6 +27,312 @@ function merge_tracing(event_like, current) {
26
27
  };
27
28
  }
28
29
 
30
+ function set_nested_value(object, path_string, value) {
31
+ if (path_string.startsWith("n:")) {
32
+ path_string = path_string.slice(2);
33
+ value = value === "" ? void 0 : parseFloat(value);
34
+ } else if (path_string.startsWith("b:")) {
35
+ path_string = path_string.slice(2);
36
+ value = value === "on";
37
+ }
38
+ deep_set(object, split_path(path_string), value);
39
+ }
40
+ function convert_formdata(data) {
41
+ const result = {};
42
+ for (let key of data.keys()) {
43
+ const is_array = key.endsWith("[]");
44
+ let values = data.getAll(key);
45
+ if (is_array) key = key.slice(0, -2);
46
+ if (values.length > 1 && !is_array) {
47
+ throw new Error(`Form cannot contain duplicated keys — "${key}" has ${values.length} values`);
48
+ }
49
+ values = values.filter(
50
+ (entry) => typeof entry === "string" || entry.name !== "" || entry.size > 0
51
+ );
52
+ if (key.startsWith("n:")) {
53
+ key = key.slice(2);
54
+ values = values.map((v) => v === "" ? void 0 : parseFloat(
55
+ /** @type {string} */
56
+ v
57
+ ));
58
+ } else if (key.startsWith("b:")) {
59
+ key = key.slice(2);
60
+ values = values.map((v) => v === "on");
61
+ }
62
+ set_nested_value(result, key, is_array ? values : values[0]);
63
+ }
64
+ return result;
65
+ }
66
+ const BINARY_FORM_CONTENT_TYPE = "application/x-sveltekit-formdata";
67
+ const BINARY_FORM_VERSION = 0;
68
+ const HEADER_BYTES = 1 + 4 + 2;
69
+ async function deserialize_binary_form(request) {
70
+ if (request.headers.get("content-type") !== BINARY_FORM_CONTENT_TYPE) {
71
+ const form_data = await request.formData();
72
+ return { data: convert_formdata(form_data), meta: {}, form_data };
73
+ }
74
+ if (!request.body) {
75
+ throw deserialize_error("no body");
76
+ }
77
+ const content_length = parseInt(request.headers.get("content-length") ?? "");
78
+ if (Number.isNaN(content_length)) {
79
+ throw deserialize_error("invalid Content-Length header");
80
+ }
81
+ const reader = request.body.getReader();
82
+ const chunks = [];
83
+ function get_chunk(index) {
84
+ if (index in chunks) return chunks[index];
85
+ let i = chunks.length;
86
+ while (i <= index) {
87
+ chunks[i] = reader.read().then((chunk) => chunk.value);
88
+ i++;
89
+ }
90
+ return chunks[index];
91
+ }
92
+ async function get_buffer(offset, length) {
93
+ let start_chunk;
94
+ let chunk_start = 0;
95
+ let chunk_index;
96
+ for (chunk_index = 0; ; chunk_index++) {
97
+ const chunk = await get_chunk(chunk_index);
98
+ if (!chunk) return null;
99
+ const chunk_end = chunk_start + chunk.byteLength;
100
+ if (offset >= chunk_start && offset < chunk_end) {
101
+ start_chunk = chunk;
102
+ break;
103
+ }
104
+ chunk_start = chunk_end;
105
+ }
106
+ if (offset + length <= chunk_start + start_chunk.byteLength) {
107
+ return start_chunk.subarray(offset - chunk_start, offset + length - chunk_start);
108
+ }
109
+ const chunks2 = [start_chunk.subarray(offset - chunk_start)];
110
+ let cursor = start_chunk.byteLength - offset + chunk_start;
111
+ while (cursor < length) {
112
+ chunk_index++;
113
+ let chunk = await get_chunk(chunk_index);
114
+ if (!chunk) return null;
115
+ if (chunk.byteLength > length - cursor) {
116
+ chunk = chunk.subarray(0, length - cursor);
117
+ }
118
+ chunks2.push(chunk);
119
+ cursor += chunk.byteLength;
120
+ }
121
+ const buffer = new Uint8Array(length);
122
+ cursor = 0;
123
+ for (const chunk of chunks2) {
124
+ buffer.set(chunk, cursor);
125
+ cursor += chunk.byteLength;
126
+ }
127
+ return buffer;
128
+ }
129
+ const header = await get_buffer(0, HEADER_BYTES);
130
+ if (!header) throw deserialize_error("too short");
131
+ if (header[0] !== BINARY_FORM_VERSION) {
132
+ throw deserialize_error(`got version ${header[0]}, expected version ${BINARY_FORM_VERSION}`);
133
+ }
134
+ const header_view = new DataView(header.buffer, header.byteOffset, header.byteLength);
135
+ const data_length = header_view.getUint32(1, true);
136
+ if (HEADER_BYTES + data_length > content_length) {
137
+ throw deserialize_error("data overflow");
138
+ }
139
+ const file_offsets_length = header_view.getUint16(5, true);
140
+ if (HEADER_BYTES + data_length + file_offsets_length > content_length) {
141
+ throw deserialize_error("file offset table overflow");
142
+ }
143
+ const data_buffer = await get_buffer(HEADER_BYTES, data_length);
144
+ if (!data_buffer) throw deserialize_error("data too short");
145
+ let file_offsets;
146
+ let files_start_offset;
147
+ if (file_offsets_length > 0) {
148
+ const file_offsets_buffer = await get_buffer(HEADER_BYTES + data_length, file_offsets_length);
149
+ if (!file_offsets_buffer) throw deserialize_error("file offset table too short");
150
+ file_offsets = /** @type {Array<number>} */
151
+ JSON.parse(text_decoder.decode(file_offsets_buffer));
152
+ files_start_offset = HEADER_BYTES + data_length + file_offsets_length;
153
+ }
154
+ const [data, meta] = parse(text_decoder.decode(data_buffer), {
155
+ File: ([name, type, size, last_modified, index]) => {
156
+ if (files_start_offset + file_offsets[index] + size > content_length) {
157
+ throw deserialize_error("file data overflow");
158
+ }
159
+ return new Proxy(
160
+ new LazyFile(
161
+ name,
162
+ type,
163
+ size,
164
+ last_modified,
165
+ get_chunk,
166
+ files_start_offset + file_offsets[index]
167
+ ),
168
+ {
169
+ getPrototypeOf() {
170
+ return File.prototype;
171
+ }
172
+ }
173
+ );
174
+ }
175
+ });
176
+ void (async () => {
177
+ let has_more = true;
178
+ while (has_more) {
179
+ const chunk = await get_chunk(chunks.length);
180
+ has_more = !!chunk;
181
+ }
182
+ })();
183
+ return { data, meta, form_data: null };
184
+ }
185
+ function deserialize_error(message) {
186
+ return new SvelteKitError(400, "Bad Request", `Could not deserialize binary form: ${message}`);
187
+ }
188
+ class LazyFile {
189
+ /** @type {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} */
190
+ #get_chunk;
191
+ /** @type {number} */
192
+ #offset;
193
+ /**
194
+ * @param {string} name
195
+ * @param {string} type
196
+ * @param {number} size
197
+ * @param {number} last_modified
198
+ * @param {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} get_chunk
199
+ * @param {number} offset
200
+ */
201
+ constructor(name, type, size, last_modified, get_chunk, offset) {
202
+ this.name = name;
203
+ this.type = type;
204
+ this.size = size;
205
+ this.lastModified = last_modified;
206
+ this.webkitRelativePath = "";
207
+ this.#get_chunk = get_chunk;
208
+ this.#offset = offset;
209
+ this.arrayBuffer = this.arrayBuffer.bind(this);
210
+ this.bytes = this.bytes.bind(this);
211
+ this.slice = this.slice.bind(this);
212
+ this.stream = this.stream.bind(this);
213
+ this.text = this.text.bind(this);
214
+ }
215
+ /** @type {ArrayBuffer | undefined} */
216
+ #buffer;
217
+ async arrayBuffer() {
218
+ this.#buffer ??= await new Response(this.stream()).arrayBuffer();
219
+ return this.#buffer;
220
+ }
221
+ async bytes() {
222
+ return new Uint8Array(await this.arrayBuffer());
223
+ }
224
+ /**
225
+ * @param {number=} start
226
+ * @param {number=} end
227
+ * @param {string=} contentType
228
+ */
229
+ slice(start = 0, end = this.size, contentType = this.type) {
230
+ if (start < 0) {
231
+ start = Math.max(this.size + start, 0);
232
+ } else {
233
+ start = Math.min(start, this.size);
234
+ }
235
+ if (end < 0) {
236
+ end = Math.max(this.size + end, 0);
237
+ } else {
238
+ end = Math.min(end, this.size);
239
+ }
240
+ const size = Math.max(end - start, 0);
241
+ const file = new LazyFile(
242
+ this.name,
243
+ contentType,
244
+ size,
245
+ this.lastModified,
246
+ this.#get_chunk,
247
+ this.#offset + start
248
+ );
249
+ return file;
250
+ }
251
+ stream() {
252
+ let cursor = 0;
253
+ let chunk_index = 0;
254
+ return new ReadableStream({
255
+ start: async (controller) => {
256
+ let chunk_start = 0;
257
+ let start_chunk = null;
258
+ for (chunk_index = 0; ; chunk_index++) {
259
+ const chunk = await this.#get_chunk(chunk_index);
260
+ if (!chunk) return null;
261
+ const chunk_end = chunk_start + chunk.byteLength;
262
+ if (this.#offset >= chunk_start && this.#offset < chunk_end) {
263
+ start_chunk = chunk;
264
+ break;
265
+ }
266
+ chunk_start = chunk_end;
267
+ }
268
+ if (this.#offset + this.size <= chunk_start + start_chunk.byteLength) {
269
+ controller.enqueue(
270
+ start_chunk.subarray(this.#offset - chunk_start, this.#offset + this.size - chunk_start)
271
+ );
272
+ controller.close();
273
+ } else {
274
+ controller.enqueue(start_chunk.subarray(this.#offset - chunk_start));
275
+ cursor = start_chunk.byteLength - this.#offset + chunk_start;
276
+ }
277
+ },
278
+ pull: async (controller) => {
279
+ chunk_index++;
280
+ let chunk = await this.#get_chunk(chunk_index);
281
+ if (!chunk) {
282
+ controller.error("incomplete file data");
283
+ controller.close();
284
+ return;
285
+ }
286
+ if (chunk.byteLength > this.size - cursor) {
287
+ chunk = chunk.subarray(0, this.size - cursor);
288
+ }
289
+ controller.enqueue(chunk);
290
+ cursor += chunk.byteLength;
291
+ if (cursor >= this.size) {
292
+ controller.close();
293
+ }
294
+ }
295
+ });
296
+ }
297
+ async text() {
298
+ return text_decoder.decode(await this.arrayBuffer());
299
+ }
300
+ }
301
+ const path_regex = /^[a-zA-Z_$]\w*(\.[a-zA-Z_$]\w*|\[\d+\])*$/;
302
+ function split_path(path) {
303
+ if (!path_regex.test(path)) {
304
+ throw new Error(`Invalid path ${path}`);
305
+ }
306
+ return path.split(/\.|\[|\]/).filter(Boolean);
307
+ }
308
+ function check_prototype_pollution(key) {
309
+ if (key === "__proto__" || key === "constructor" || key === "prototype") {
310
+ throw new Error(
311
+ `Invalid key "${key}"`
312
+ );
313
+ }
314
+ }
315
+ function deep_set(object, keys, value) {
316
+ let current = object;
317
+ for (let i = 0; i < keys.length - 1; i += 1) {
318
+ const key = keys[i];
319
+ check_prototype_pollution(key);
320
+ const is_array = /^\d+$/.test(keys[i + 1]);
321
+ const exists = Object.hasOwn(current, key);
322
+ const inner = current[key];
323
+ if (exists && is_array !== Array.isArray(inner)) {
324
+ throw new Error(`Invalid array key ${keys[i + 1]}`);
325
+ }
326
+ if (!exists) {
327
+ current[key] = is_array ? [] : {};
328
+ }
329
+ current = current[key];
330
+ }
331
+ const final_key = keys[keys.length - 1];
332
+ check_prototype_pollution(final_key);
333
+ current[final_key] = value;
334
+ }
335
+
29
336
  let public_env = {};
30
337
  function set_private_env(environment) {
31
338
  }
@@ -37,11 +344,6 @@ function effect_update_depth_exceeded() {
37
344
  throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);
38
345
  }
39
346
  }
40
- function flush_sync_in_effect() {
41
- {
42
- throw new Error(`https://svelte.dev/e/flush_sync_in_effect`);
43
- }
44
- }
45
347
  function hydration_failed() {
46
348
  {
47
349
  throw new Error(`https://svelte.dev/e/hydration_failed`);
@@ -90,10 +392,7 @@ function set_hydrate_node(node) {
90
392
  return hydrate_node = node;
91
393
  }
92
394
  function hydrate_next() {
93
- return set_hydrate_node(
94
- /** @type {TemplateNode} */
95
- /* @__PURE__ */ get_next_sibling(hydrate_node)
96
- );
395
+ return set_hydrate_node(/* @__PURE__ */ get_next_sibling(hydrate_node));
97
396
  }
98
397
  function next(count = 1) {
99
398
  if (hydrating) {
@@ -137,6 +436,7 @@ function set_component_context(context) {
137
436
  function push(props, runes = false, fn) {
138
437
  component_context = {
139
438
  p: component_context,
439
+ i: false,
140
440
  c: null,
141
441
  e: null,
142
442
  s: props,
@@ -156,6 +456,7 @@ function pop(component) {
156
456
  create_user_effect(fn);
157
457
  }
158
458
  }
459
+ context.i = true;
159
460
  component_context = context.p;
160
461
  return (
161
462
  /** @type {T} */
@@ -185,7 +486,6 @@ function flush_tasks() {
185
486
  run_micro_tasks();
186
487
  }
187
488
  }
188
- const adjustments = /* @__PURE__ */ new WeakMap();
189
489
  function handle_error(error) {
190
490
  var effect = active_effect;
191
491
  if (effect === null) {
@@ -194,9 +494,6 @@ function handle_error(error) {
194
494
  }
195
495
  if ((effect.f & EFFECT_RAN) === 0) {
196
496
  if ((effect.f & BOUNDARY_EFFECT) === 0) {
197
- if (!effect.parent && error instanceof Error) {
198
- apply_adjustments(error);
199
- }
200
497
  throw error;
201
498
  }
202
499
  effect.b.error(error);
@@ -216,31 +513,50 @@ function invoke_error_boundary(error, effect) {
216
513
  }
217
514
  effect = effect.parent;
218
515
  }
219
- if (error instanceof Error) {
220
- apply_adjustments(error);
221
- }
222
516
  throw error;
223
517
  }
224
- function apply_adjustments(error) {
225
- const adjusted = adjustments.get(error);
226
- if (adjusted) {
227
- define_property(error, "message", {
228
- value: adjusted.message
229
- });
230
- define_property(error, "stack", {
231
- value: adjusted.stack
232
- });
518
+ const STATUS_MASK = -7169;
519
+ function set_signal_status(signal, status) {
520
+ signal.f = signal.f & STATUS_MASK | status;
521
+ }
522
+ function update_derived_status(derived) {
523
+ if ((derived.f & CONNECTED) !== 0 || derived.deps === null) {
524
+ set_signal_status(derived, CLEAN);
525
+ } else {
526
+ set_signal_status(derived, MAYBE_DIRTY);
233
527
  }
234
528
  }
529
+ function clear_marked(deps) {
530
+ if (deps === null) return;
531
+ for (const dep of deps) {
532
+ if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {
533
+ continue;
534
+ }
535
+ dep.f ^= WAS_MARKED;
536
+ clear_marked(
537
+ /** @type {Derived} */
538
+ dep.deps
539
+ );
540
+ }
541
+ }
542
+ function defer_effect(effect, dirty_effects, maybe_dirty_effects) {
543
+ if ((effect.f & DIRTY) !== 0) {
544
+ dirty_effects.add(effect);
545
+ } else if ((effect.f & MAYBE_DIRTY) !== 0) {
546
+ maybe_dirty_effects.add(effect);
547
+ }
548
+ clear_marked(effect.deps);
549
+ set_signal_status(effect, CLEAN);
550
+ }
235
551
  const batches = /* @__PURE__ */ new Set();
236
552
  let current_batch = null;
237
553
  let batch_values = null;
238
- let effect_pending_updates = /* @__PURE__ */ new Set();
239
554
  let queued_root_effects = [];
240
555
  let last_scheduled_effect = null;
241
556
  let is_flushing = false;
242
557
  let is_flushing_sync = false;
243
558
  class Batch {
559
+ committed = false;
244
560
  /**
245
561
  * The current values of any sources that are updated in this batch
246
562
  * They keys of this map are identical to `this.#previous`
@@ -252,56 +568,52 @@ class Batch {
252
568
  * They keys of this map are identical to `this.#current`
253
569
  * @type {Map<Source, any>}
254
570
  */
255
- #previous = /* @__PURE__ */ new Map();
571
+ previous = /* @__PURE__ */ new Map();
256
572
  /**
257
573
  * When the batch is committed (and the DOM is updated), we need to remove old branches
258
574
  * and append new ones by calling the functions added inside (if/each/key/etc) blocks
259
575
  * @type {Set<() => void>}
260
576
  */
261
- #callbacks = /* @__PURE__ */ new Set();
577
+ #commit_callbacks = /* @__PURE__ */ new Set();
578
+ /**
579
+ * If a fork is discarded, we need to destroy any effects that are no longer needed
580
+ * @type {Set<(batch: Batch) => void>}
581
+ */
582
+ #discard_callbacks = /* @__PURE__ */ new Set();
262
583
  /**
263
584
  * The number of async effects that are currently in flight
264
585
  */
265
586
  #pending = 0;
587
+ /**
588
+ * The number of async effects that are currently in flight, _not_ inside a pending boundary
589
+ */
590
+ #blocking_pending = 0;
266
591
  /**
267
592
  * A deferred that resolves when the batch is committed, used with `settled()`
268
593
  * TODO replace with Promise.withResolvers once supported widely enough
269
594
  * @type {{ promise: Promise<void>, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null}
270
595
  */
271
596
  #deferred = null;
272
- /**
273
- * Template effects and `$effect.pre` effects, which run when
274
- * a batch is committed
275
- * @type {Effect[]}
276
- */
277
- #render_effects = [];
278
- /**
279
- * The same as `#render_effects`, but for `$effect` (which runs after)
280
- * @type {Effect[]}
281
- */
282
- #effects = [];
283
- /**
284
- * Block effects, which may need to re-run on subsequent flushes
285
- * in order to update internal sources (e.g. each block items)
286
- * @type {Effect[]}
287
- */
288
- #block_effects = [];
289
597
  /**
290
598
  * Deferred effects (which run after async work has completed) that are DIRTY
291
- * @type {Effect[]}
599
+ * @type {Set<Effect>}
292
600
  */
293
- #dirty_effects = [];
601
+ #dirty_effects = /* @__PURE__ */ new Set();
294
602
  /**
295
603
  * Deferred effects that are MAYBE_DIRTY
296
- * @type {Effect[]}
604
+ * @type {Set<Effect>}
297
605
  */
298
- #maybe_dirty_effects = [];
606
+ #maybe_dirty_effects = /* @__PURE__ */ new Set();
299
607
  /**
300
608
  * A set of branches that still exist, but will be destroyed when this batch
301
609
  * is committed — we skip over these during `process`
302
610
  * @type {Set<Effect>}
303
611
  */
304
612
  skipped_effects = /* @__PURE__ */ new Set();
613
+ is_fork = false;
614
+ is_deferred() {
615
+ return this.is_fork || this.#blocking_pending > 0;
616
+ }
305
617
  /**
306
618
  *
307
619
  * @param {Effect[]} root_effects
@@ -309,26 +621,22 @@ class Batch {
309
621
  process(root_effects) {
310
622
  queued_root_effects = [];
311
623
  this.apply();
624
+ var effects = [];
625
+ var render_effects = [];
312
626
  for (const root2 of root_effects) {
313
- this.#traverse_effect_tree(root2);
627
+ this.#traverse_effect_tree(root2, effects, render_effects);
314
628
  }
315
- if (this.#pending === 0) {
316
- var previous_batch_sources = batch_values;
317
- this.#commit();
318
- var render_effects = this.#render_effects;
319
- var effects = this.#effects;
320
- this.#render_effects = [];
321
- this.#effects = [];
322
- this.#block_effects = [];
629
+ if (!this.is_fork) {
630
+ this.#resolve();
631
+ }
632
+ if (this.is_deferred()) {
633
+ this.#defer_effects(render_effects);
634
+ this.#defer_effects(effects);
635
+ } else {
323
636
  current_batch = null;
324
- batch_values = previous_batch_sources;
325
637
  flush_queued_effects(render_effects);
326
638
  flush_queued_effects(effects);
327
639
  this.#deferred?.resolve();
328
- } else {
329
- this.#defer_effects(this.#render_effects);
330
- this.#defer_effects(this.#effects);
331
- this.#defer_effects(this.#block_effects);
332
640
  }
333
641
  batch_values = null;
334
642
  }
@@ -336,24 +644,32 @@ class Batch {
336
644
  * Traverse the effect tree, executing effects or stashing
337
645
  * them for later execution as appropriate
338
646
  * @param {Effect} root
647
+ * @param {Effect[]} effects
648
+ * @param {Effect[]} render_effects
339
649
  */
340
- #traverse_effect_tree(root2) {
650
+ #traverse_effect_tree(root2, effects, render_effects) {
341
651
  root2.f ^= CLEAN;
342
652
  var effect = root2.first;
653
+ var pending_boundary = null;
343
654
  while (effect !== null) {
344
655
  var flags2 = effect.f;
345
656
  var is_branch = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
346
657
  var is_skippable_branch = is_branch && (flags2 & CLEAN) !== 0;
347
658
  var skip = is_skippable_branch || (flags2 & INERT) !== 0 || this.skipped_effects.has(effect);
659
+ if (async_mode_flag && pending_boundary === null && (flags2 & BOUNDARY_EFFECT) !== 0 && effect.b?.is_pending) {
660
+ pending_boundary = effect;
661
+ }
348
662
  if (!skip && effect.fn !== null) {
349
663
  if (is_branch) {
350
664
  effect.f ^= CLEAN;
665
+ } else if (pending_boundary !== null && (flags2 & (EFFECT | RENDER_EFFECT | MANAGED_EFFECT)) !== 0) {
666
+ pending_boundary.b.defer_effect(effect);
351
667
  } else if ((flags2 & EFFECT) !== 0) {
352
- this.#effects.push(effect);
353
- } else if (async_mode_flag && (flags2 & RENDER_EFFECT) !== 0) {
354
- this.#render_effects.push(effect);
668
+ effects.push(effect);
669
+ } else if (async_mode_flag && (flags2 & (RENDER_EFFECT | MANAGED_EFFECT)) !== 0) {
670
+ render_effects.push(effect);
355
671
  } else if (is_dirty(effect)) {
356
- if ((effect.f & BLOCK_EFFECT) !== 0) this.#block_effects.push(effect);
672
+ if ((flags2 & BLOCK_EFFECT) !== 0) this.#dirty_effects.add(effect);
357
673
  update_effect(effect);
358
674
  }
359
675
  var child = effect.first;
@@ -365,6 +681,9 @@ class Batch {
365
681
  var parent = effect.parent;
366
682
  effect = effect.next;
367
683
  while (effect === null && parent !== null) {
684
+ if (parent === pending_boundary) {
685
+ pending_boundary = null;
686
+ }
368
687
  effect = parent.next;
369
688
  parent = parent.parent;
370
689
  }
@@ -374,12 +693,9 @@ class Batch {
374
693
  * @param {Effect[]} effects
375
694
  */
376
695
  #defer_effects(effects) {
377
- for (const e of effects) {
378
- const target = (e.f & DIRTY) !== 0 ? this.#dirty_effects : this.#maybe_dirty_effects;
379
- target.push(e);
380
- set_signal_status(e, CLEAN);
696
+ for (var i = 0; i < effects.length; i += 1) {
697
+ defer_effect(effects[i], this.#dirty_effects, this.#maybe_dirty_effects);
381
698
  }
382
- effects.length = 0;
383
699
  }
384
700
  /**
385
701
  * Associate a change to a given source with the current
@@ -388,49 +704,53 @@ class Batch {
388
704
  * @param {any} value
389
705
  */
390
706
  capture(source2, value) {
391
- if (!this.#previous.has(source2)) {
392
- this.#previous.set(source2, value);
707
+ if (value !== UNINITIALIZED && !this.previous.has(source2)) {
708
+ this.previous.set(source2, value);
709
+ }
710
+ if ((source2.f & ERROR_VALUE) === 0) {
711
+ this.current.set(source2, source2.v);
712
+ batch_values?.set(source2, source2.v);
393
713
  }
394
- this.current.set(source2, source2.v);
395
- batch_values?.set(source2, source2.v);
396
714
  }
397
715
  activate() {
398
716
  current_batch = this;
717
+ this.apply();
399
718
  }
400
719
  deactivate() {
720
+ if (current_batch !== this) return;
401
721
  current_batch = null;
402
722
  batch_values = null;
403
723
  }
404
724
  flush() {
725
+ this.activate();
405
726
  if (queued_root_effects.length > 0) {
406
- this.activate();
407
727
  flush_effects();
408
728
  if (current_batch !== null && current_batch !== this) {
409
729
  return;
410
730
  }
411
731
  } else if (this.#pending === 0) {
412
- this.#commit();
732
+ this.process([]);
413
733
  }
414
734
  this.deactivate();
415
- for (const update of effect_pending_updates) {
416
- effect_pending_updates.delete(update);
417
- update();
418
- if (current_batch !== null) {
419
- break;
420
- }
735
+ }
736
+ discard() {
737
+ for (const fn of this.#discard_callbacks) fn(this);
738
+ this.#discard_callbacks.clear();
739
+ }
740
+ #resolve() {
741
+ if (this.#blocking_pending === 0) {
742
+ for (const fn of this.#commit_callbacks) fn();
743
+ this.#commit_callbacks.clear();
744
+ }
745
+ if (this.#pending === 0) {
746
+ this.#commit();
421
747
  }
422
748
  }
423
- /**
424
- * Append and remove branches to/from the DOM
425
- */
426
749
  #commit() {
427
- for (const fn of this.#callbacks) {
428
- fn();
429
- }
430
- this.#callbacks.clear();
431
750
  if (batches.size > 1) {
432
- this.#previous.clear();
433
- let is_earlier = true;
751
+ this.previous.clear();
752
+ var previous_batch_values = batch_values;
753
+ var is_earlier = true;
434
754
  for (const batch of batches) {
435
755
  if (batch === this) {
436
756
  is_earlier = false;
@@ -452,30 +772,50 @@ class Batch {
452
772
  }
453
773
  const others = [...batch.current.keys()].filter((s) => !this.current.has(s));
454
774
  if (others.length > 0) {
775
+ var prev_queued_root_effects = queued_root_effects;
776
+ queued_root_effects = [];
777
+ const marked = /* @__PURE__ */ new Set();
778
+ const checked = /* @__PURE__ */ new Map();
455
779
  for (const source2 of sources) {
456
- mark_effects(source2, others);
780
+ mark_effects(source2, others, marked, checked);
457
781
  }
458
782
  if (queued_root_effects.length > 0) {
459
783
  current_batch = batch;
460
784
  batch.apply();
461
785
  for (const root2 of queued_root_effects) {
462
- batch.#traverse_effect_tree(root2);
786
+ batch.#traverse_effect_tree(root2, [], []);
463
787
  }
464
- queued_root_effects = [];
465
788
  batch.deactivate();
466
789
  }
790
+ queued_root_effects = prev_queued_root_effects;
467
791
  }
468
792
  }
469
793
  current_batch = null;
794
+ batch_values = previous_batch_values;
470
795
  }
796
+ this.committed = true;
471
797
  batches.delete(this);
472
798
  }
473
- increment() {
799
+ /**
800
+ *
801
+ * @param {boolean} blocking
802
+ */
803
+ increment(blocking) {
474
804
  this.#pending += 1;
805
+ if (blocking) this.#blocking_pending += 1;
475
806
  }
476
- decrement() {
807
+ /**
808
+ *
809
+ * @param {boolean} blocking
810
+ */
811
+ decrement(blocking) {
477
812
  this.#pending -= 1;
813
+ if (blocking) this.#blocking_pending -= 1;
814
+ this.revive();
815
+ }
816
+ revive() {
478
817
  for (const e of this.#dirty_effects) {
818
+ this.#maybe_dirty_effects.delete(e);
479
819
  set_signal_status(e, DIRTY);
480
820
  schedule_effect(e);
481
821
  }
@@ -486,8 +826,12 @@ class Batch {
486
826
  this.flush();
487
827
  }
488
828
  /** @param {() => void} fn */
489
- add_callback(fn) {
490
- this.#callbacks.add(fn);
829
+ oncommit(fn) {
830
+ this.#commit_callbacks.add(fn);
831
+ }
832
+ /** @param {(batch: Batch) => void} fn */
833
+ ondiscard(fn) {
834
+ this.#discard_callbacks.add(fn);
491
835
  }
492
836
  settled() {
493
837
  return (this.#deferred ??= deferred()).promise;
@@ -512,11 +856,11 @@ class Batch {
512
856
  queue_micro_task(task);
513
857
  }
514
858
  apply() {
515
- if (!async_mode_flag || batches.size === 1) return;
859
+ if (!async_mode_flag || !this.is_fork && batches.size === 1) return;
516
860
  batch_values = new Map(this.current);
517
861
  for (const batch of batches) {
518
862
  if (batch === this) continue;
519
- for (const [source2, previous] of batch.#previous) {
863
+ for (const [source2, previous] of batch.previous) {
520
864
  if (!batch_values.has(source2)) {
521
865
  batch_values.set(source2, previous);
522
866
  }
@@ -525,9 +869,6 @@ class Batch {
525
869
  }
526
870
  }
527
871
  function flushSync(fn) {
528
- if (async_mode_flag && active_effect !== null) {
529
- flush_sync_in_effect();
530
- }
531
872
  var was_flushing_sync = is_flushing_sync;
532
873
  is_flushing_sync = true;
533
874
  try {
@@ -566,6 +907,7 @@ function flush_effects() {
566
907
  }
567
908
  batch.process(queued_root_effects);
568
909
  old_values.clear();
910
+ if (DEV) ;
569
911
  }
570
912
  } finally {
571
913
  is_flushing = false;
@@ -588,27 +930,43 @@ function flush_queued_effects(effects) {
588
930
  while (i < length) {
589
931
  var effect = effects[i++];
590
932
  if ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) {
591
- eager_block_effects = [];
933
+ eager_block_effects = /* @__PURE__ */ new Set();
592
934
  update_effect(effect);
593
- if (effect.deps === null && effect.first === null && effect.nodes_start === null) {
935
+ if (effect.deps === null && effect.first === null && effect.nodes === null) {
594
936
  if (effect.teardown === null && effect.ac === null) {
595
937
  unlink_effect(effect);
596
938
  } else {
597
939
  effect.fn = null;
598
940
  }
599
941
  }
600
- if (eager_block_effects?.length > 0) {
942
+ if (eager_block_effects?.size > 0) {
601
943
  old_values.clear();
602
944
  for (const e of eager_block_effects) {
603
- update_effect(e);
945
+ if ((e.f & (DESTROYED | INERT)) !== 0) continue;
946
+ const ordered_effects = [e];
947
+ let ancestor = e.parent;
948
+ while (ancestor !== null) {
949
+ if (eager_block_effects.has(ancestor)) {
950
+ eager_block_effects.delete(ancestor);
951
+ ordered_effects.push(ancestor);
952
+ }
953
+ ancestor = ancestor.parent;
954
+ }
955
+ for (let j = ordered_effects.length - 1; j >= 0; j--) {
956
+ const e2 = ordered_effects[j];
957
+ if ((e2.f & (DESTROYED | INERT)) !== 0) continue;
958
+ update_effect(e2);
959
+ }
604
960
  }
605
- eager_block_effects = [];
961
+ eager_block_effects.clear();
606
962
  }
607
963
  }
608
964
  }
609
965
  eager_block_effects = null;
610
966
  }
611
- function mark_effects(value, sources) {
967
+ function mark_effects(value, sources, marked, checked) {
968
+ if (marked.has(value)) return;
969
+ marked.add(value);
612
970
  if (value.reactions !== null) {
613
971
  for (const reaction of value.reactions) {
614
972
  const flags2 = reaction.f;
@@ -616,9 +974,11 @@ function mark_effects(value, sources) {
616
974
  mark_effects(
617
975
  /** @type {Derived} */
618
976
  reaction,
619
- sources
977
+ sources,
978
+ marked,
979
+ checked
620
980
  );
621
- } else if ((flags2 & (ASYNC | BLOCK_EFFECT)) !== 0 && depends_on(reaction, sources)) {
981
+ } else if ((flags2 & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags2 & DIRTY) === 0 && depends_on(reaction, sources, checked)) {
622
982
  set_signal_status(reaction, DIRTY);
623
983
  schedule_effect(
624
984
  /** @type {Effect} */
@@ -628,7 +988,9 @@ function mark_effects(value, sources) {
628
988
  }
629
989
  }
630
990
  }
631
- function depends_on(reaction, sources) {
991
+ function depends_on(reaction, sources, checked) {
992
+ const depends = checked.get(reaction);
993
+ if (depends !== void 0) return depends;
632
994
  if (reaction.deps !== null) {
633
995
  for (const dep of reaction.deps) {
634
996
  if (sources.includes(dep)) {
@@ -637,12 +999,19 @@ function depends_on(reaction, sources) {
637
999
  if ((dep.f & DERIVED) !== 0 && depends_on(
638
1000
  /** @type {Derived} */
639
1001
  dep,
640
- sources
1002
+ sources,
1003
+ checked
641
1004
  )) {
1005
+ checked.set(
1006
+ /** @type {Derived} */
1007
+ dep,
1008
+ true
1009
+ );
642
1010
  return true;
643
1011
  }
644
1012
  }
645
1013
  }
1014
+ checked.set(reaction, false);
646
1015
  return false;
647
1016
  }
648
1017
  function schedule_effect(signal) {
@@ -650,7 +1019,7 @@ function schedule_effect(signal) {
650
1019
  while (effect.parent !== null) {
651
1020
  effect = effect.parent;
652
1021
  var flags2 = effect.f;
653
- if (is_flushing && effect === active_effect && (flags2 & BLOCK_EFFECT) !== 0) {
1022
+ if (is_flushing && effect === active_effect && (flags2 & BLOCK_EFFECT) !== 0 && (flags2 & HEAD_EFFECT) === 0) {
654
1023
  return;
655
1024
  }
656
1025
  if ((flags2 & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {
@@ -693,7 +1062,7 @@ function boundary(node, props, children) {
693
1062
  class Boundary {
694
1063
  /** @type {Boundary | null} */
695
1064
  parent;
696
- #pending = false;
1065
+ is_pending = false;
697
1066
  /** @type {TemplateNode} */
698
1067
  #anchor;
699
1068
  /** @type {TemplateNode | null} */
@@ -712,9 +1081,15 @@ class Boundary {
712
1081
  #failed_effect = null;
713
1082
  /** @type {DocumentFragment | null} */
714
1083
  #offscreen_fragment = null;
1084
+ /** @type {TemplateNode | null} */
1085
+ #pending_anchor = null;
715
1086
  #local_pending_count = 0;
716
1087
  #pending_count = 0;
717
1088
  #is_creating_fallback = false;
1089
+ /** @type {Set<Effect>} */
1090
+ #dirty_effects = /* @__PURE__ */ new Set();
1091
+ /** @type {Set<Effect>} */
1092
+ #maybe_dirty_effects = /* @__PURE__ */ new Set();
718
1093
  /**
719
1094
  * A source containing the number of pending async deriveds/expressions.
720
1095
  * Only created if `$effect.pending()` is used inside the boundary,
@@ -723,11 +1098,6 @@ class Boundary {
723
1098
  * @type {Source<number> | null}
724
1099
  */
725
1100
  #effect_pending = null;
726
- #effect_pending_update = () => {
727
- if (this.#effect_pending) {
728
- internal_set(this.#effect_pending, this.#local_pending_count);
729
- }
730
- };
731
1101
  #effect_pending_subscriber = createSubscriber(() => {
732
1102
  this.#effect_pending = source(this.#local_pending_count);
733
1103
  return () => {
@@ -745,7 +1115,7 @@ class Boundary {
745
1115
  this.#children = children;
746
1116
  this.parent = /** @type {Effect} */
747
1117
  active_effect.b;
748
- this.#pending = !!this.#props.pending;
1118
+ this.is_pending = !!this.#props.pending;
749
1119
  this.#effect = block(() => {
750
1120
  active_effect.b = this;
751
1121
  if (hydrating) {
@@ -760,19 +1130,26 @@ class Boundary {
760
1130
  this.#hydrate_pending_content();
761
1131
  } else {
762
1132
  this.#hydrate_resolved_content();
1133
+ if (this.#pending_count === 0) {
1134
+ this.is_pending = false;
1135
+ }
763
1136
  }
764
1137
  } else {
1138
+ var anchor = this.#get_anchor();
765
1139
  try {
766
- this.#main_effect = branch(() => children(this.#anchor));
1140
+ this.#main_effect = branch(() => children(anchor));
767
1141
  } catch (error) {
768
1142
  this.error(error);
769
1143
  }
770
1144
  if (this.#pending_count > 0) {
771
1145
  this.#show_pending_snippet();
772
1146
  } else {
773
- this.#pending = false;
1147
+ this.is_pending = false;
774
1148
  }
775
1149
  }
1150
+ return () => {
1151
+ this.#pending_anchor?.remove();
1152
+ };
776
1153
  }, flags);
777
1154
  if (hydrating) {
778
1155
  this.#anchor = hydrate_node;
@@ -784,7 +1161,6 @@ class Boundary {
784
1161
  } catch (error) {
785
1162
  this.error(error);
786
1163
  }
787
- this.#pending = false;
788
1164
  }
789
1165
  #hydrate_pending_content() {
790
1166
  const pending = this.#props.pending;
@@ -793,9 +1169,10 @@ class Boundary {
793
1169
  }
794
1170
  this.#pending_effect = branch(() => pending(this.#anchor));
795
1171
  Batch.enqueue(() => {
1172
+ var anchor = this.#get_anchor();
796
1173
  this.#main_effect = this.#run(() => {
797
1174
  Batch.ensure();
798
- return branch(() => this.#children(this.#anchor));
1175
+ return branch(() => this.#children(anchor));
799
1176
  });
800
1177
  if (this.#pending_count > 0) {
801
1178
  this.#show_pending_snippet();
@@ -807,16 +1184,32 @@ class Boundary {
807
1184
  this.#pending_effect = null;
808
1185
  }
809
1186
  );
810
- this.#pending = false;
1187
+ this.is_pending = false;
811
1188
  }
812
1189
  });
813
1190
  }
1191
+ #get_anchor() {
1192
+ var anchor = this.#anchor;
1193
+ if (this.is_pending) {
1194
+ this.#pending_anchor = create_text();
1195
+ this.#anchor.before(this.#pending_anchor);
1196
+ anchor = this.#pending_anchor;
1197
+ }
1198
+ return anchor;
1199
+ }
814
1200
  /**
815
- * Returns `true` if the effect exists inside a boundary whose pending snippet is shown
1201
+ * Defer an effect inside a pending boundary until the boundary resolves
1202
+ * @param {Effect} effect
1203
+ */
1204
+ defer_effect(effect) {
1205
+ defer_effect(effect, this.#dirty_effects, this.#maybe_dirty_effects);
1206
+ }
1207
+ /**
1208
+ * Returns `false` if the effect exists inside a boundary whose pending snippet is shown
816
1209
  * @returns {boolean}
817
1210
  */
818
- is_pending() {
819
- return this.#pending || !!this.parent && this.parent.is_pending();
1211
+ is_rendered() {
1212
+ return !this.is_pending && (!this.parent || this.parent.is_rendered());
820
1213
  }
821
1214
  has_pending_snippet() {
822
1215
  return !!this.#props.pending;
@@ -849,6 +1242,10 @@ class Boundary {
849
1242
  );
850
1243
  if (this.#main_effect !== null) {
851
1244
  this.#offscreen_fragment = document.createDocumentFragment();
1245
+ this.#offscreen_fragment.append(
1246
+ /** @type {TemplateNode} */
1247
+ this.#pending_anchor
1248
+ );
852
1249
  move_effect(this.#main_effect, this.#offscreen_fragment);
853
1250
  }
854
1251
  if (this.#pending_effect === null) {
@@ -869,7 +1266,17 @@ class Boundary {
869
1266
  }
870
1267
  this.#pending_count += d;
871
1268
  if (this.#pending_count === 0) {
872
- this.#pending = false;
1269
+ this.is_pending = false;
1270
+ for (const e of this.#dirty_effects) {
1271
+ set_signal_status(e, DIRTY);
1272
+ schedule_effect(e);
1273
+ }
1274
+ for (const e of this.#maybe_dirty_effects) {
1275
+ set_signal_status(e, MAYBE_DIRTY);
1276
+ schedule_effect(e);
1277
+ }
1278
+ this.#dirty_effects.clear();
1279
+ this.#maybe_dirty_effects.clear();
873
1280
  if (this.#pending_effect) {
874
1281
  pause_effect(this.#pending_effect, () => {
875
1282
  this.#pending_effect = null;
@@ -879,9 +1286,6 @@ class Boundary {
879
1286
  this.#anchor.before(this.#offscreen_fragment);
880
1287
  this.#offscreen_fragment = null;
881
1288
  }
882
- queue_micro_task(() => {
883
- Batch.ensure().flush();
884
- });
885
1289
  }
886
1290
  }
887
1291
  /**
@@ -893,7 +1297,9 @@ class Boundary {
893
1297
  update_pending_count(d) {
894
1298
  this.#update_pending_count(d);
895
1299
  this.#local_pending_count += d;
896
- effect_pending_updates.add(this.#effect_pending_update);
1300
+ if (this.#effect_pending) {
1301
+ internal_set(this.#effect_pending, this.#local_pending_count);
1302
+ }
897
1303
  }
898
1304
  get_effect_pending() {
899
1305
  this.#effect_pending_subscriber();
@@ -947,7 +1353,7 @@ class Boundary {
947
1353
  this.#failed_effect = null;
948
1354
  });
949
1355
  }
950
- this.#pending = this.has_pending_snippet();
1356
+ this.is_pending = this.has_pending_snippet();
951
1357
  this.#main_effect = this.#run(() => {
952
1358
  this.#is_creating_fallback = false;
953
1359
  return branch(() => this.#children(this.#anchor));
@@ -955,7 +1361,7 @@ class Boundary {
955
1361
  if (this.#pending_count > 0) {
956
1362
  this.#show_pending_snippet();
957
1363
  } else {
958
- this.#pending = false;
1364
+ this.is_pending = false;
959
1365
  }
960
1366
  };
961
1367
  var previous_reaction = active_reaction;
@@ -972,6 +1378,7 @@ class Boundary {
972
1378
  if (failed) {
973
1379
  queue_micro_task(() => {
974
1380
  this.#failed_effect = this.#run(() => {
1381
+ Batch.ensure();
975
1382
  this.#is_creating_fallback = true;
976
1383
  try {
977
1384
  return branch(() => {
@@ -1012,10 +1419,10 @@ function get_derived_parent_effect(derived) {
1012
1419
  var parent = derived.parent;
1013
1420
  while (parent !== null) {
1014
1421
  if ((parent.f & DERIVED) === 0) {
1015
- return (
1422
+ return (parent.f & DESTROYED) === 0 ? (
1016
1423
  /** @type {Effect} */
1017
1424
  parent
1018
- );
1425
+ ) : null;
1019
1426
  }
1020
1427
  parent = parent.parent;
1021
1428
  }
@@ -1027,6 +1434,7 @@ function execute_derived(derived) {
1027
1434
  set_active_effect(get_derived_parent_effect(derived));
1028
1435
  {
1029
1436
  try {
1437
+ derived.f &= ~WAS_MARKED;
1030
1438
  destroy_derived_effects(derived);
1031
1439
  value = update_reaction(derived);
1032
1440
  } finally {
@@ -1038,20 +1446,29 @@ function execute_derived(derived) {
1038
1446
  function update_derived(derived) {
1039
1447
  var value = execute_derived(derived);
1040
1448
  if (!derived.equals(value)) {
1041
- derived.v = value;
1042
1449
  derived.wv = increment_write_version();
1450
+ if (!current_batch?.is_fork || derived.deps === null) {
1451
+ derived.v = value;
1452
+ if (derived.deps === null) {
1453
+ set_signal_status(derived, CLEAN);
1454
+ return;
1455
+ }
1456
+ }
1043
1457
  }
1044
1458
  if (is_destroying_effect) {
1045
1459
  return;
1046
1460
  }
1047
1461
  if (batch_values !== null) {
1048
- batch_values.set(derived, derived.v);
1462
+ if (effect_tracking() || current_batch?.is_fork) {
1463
+ batch_values.set(derived, value);
1464
+ }
1049
1465
  } else {
1050
- var status = (skip_reaction || (derived.f & UNOWNED) !== 0) && derived.deps !== null ? MAYBE_DIRTY : CLEAN;
1051
- set_signal_status(derived, status);
1466
+ update_derived_status(derived);
1052
1467
  }
1053
1468
  }
1469
+ let eager_effects = /* @__PURE__ */ new Set();
1054
1470
  const old_values = /* @__PURE__ */ new Map();
1471
+ let eager_effects_deferred = false;
1055
1472
  function source(v, stack) {
1056
1473
  var signal = {
1057
1474
  f: 0,
@@ -1081,7 +1498,7 @@ function mutable_source(initial_value, immutable = false, trackable = true) {
1081
1498
  function set(source2, value, should_proxy = false) {
1082
1499
  if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check
1083
1500
  // to ensure we error if state is set inside an inspect effect
1084
- (!untracking || (active_reaction.f & INSPECT_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | INSPECT_EFFECT)) !== 0 && !current_sources?.includes(source2)) {
1501
+ (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && !current_sources?.includes(source2)) {
1085
1502
  state_unsafe_mutation();
1086
1503
  }
1087
1504
  let new_value = should_proxy ? proxy(value) : value;
@@ -1099,13 +1516,14 @@ function internal_set(source2, value) {
1099
1516
  var batch = Batch.ensure();
1100
1517
  batch.capture(source2, old_value);
1101
1518
  if ((source2.f & DERIVED) !== 0) {
1519
+ const derived = (
1520
+ /** @type {Derived} */
1521
+ source2
1522
+ );
1102
1523
  if ((source2.f & DIRTY) !== 0) {
1103
- execute_derived(
1104
- /** @type {Derived} */
1105
- source2
1106
- );
1524
+ execute_derived(derived);
1107
1525
  }
1108
- set_signal_status(source2, (source2.f & UNOWNED) === 0 ? CLEAN : MAYBE_DIRTY);
1526
+ update_derived_status(derived);
1109
1527
  }
1110
1528
  source2.wv = increment_write_version();
1111
1529
  mark_reactions(source2, DIRTY);
@@ -1116,9 +1534,31 @@ function internal_set(source2, value) {
1116
1534
  untracked_writes.push(source2);
1117
1535
  }
1118
1536
  }
1537
+ if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) {
1538
+ flush_eager_effects();
1539
+ }
1119
1540
  }
1120
1541
  return value;
1121
1542
  }
1543
+ function flush_eager_effects() {
1544
+ eager_effects_deferred = false;
1545
+ var prev_is_updating_effect = is_updating_effect;
1546
+ set_is_updating_effect(true);
1547
+ const inspects = Array.from(eager_effects);
1548
+ try {
1549
+ for (const effect of inspects) {
1550
+ if ((effect.f & CLEAN) !== 0) {
1551
+ set_signal_status(effect, MAYBE_DIRTY);
1552
+ }
1553
+ if (is_dirty(effect)) {
1554
+ update_effect(effect);
1555
+ }
1556
+ }
1557
+ } finally {
1558
+ set_is_updating_effect(prev_is_updating_effect);
1559
+ }
1560
+ eager_effects.clear();
1561
+ }
1122
1562
  function increment(source2) {
1123
1563
  set(source2, source2.v + 1);
1124
1564
  }
@@ -1134,19 +1574,23 @@ function mark_reactions(signal, status) {
1134
1574
  set_signal_status(reaction, status);
1135
1575
  }
1136
1576
  if ((flags2 & DERIVED) !== 0) {
1137
- mark_reactions(
1577
+ var derived = (
1138
1578
  /** @type {Derived} */
1139
- reaction,
1140
- MAYBE_DIRTY
1579
+ reaction
1141
1580
  );
1142
- } else if (not_dirty) {
1143
- if ((flags2 & BLOCK_EFFECT) !== 0) {
1144
- if (eager_block_effects !== null) {
1145
- eager_block_effects.push(
1146
- /** @type {Effect} */
1147
- reaction
1148
- );
1581
+ batch_values?.delete(derived);
1582
+ if ((flags2 & WAS_MARKED) === 0) {
1583
+ if (flags2 & CONNECTED) {
1584
+ reaction.f |= WAS_MARKED;
1149
1585
  }
1586
+ mark_reactions(derived, MAYBE_DIRTY);
1587
+ }
1588
+ } else if (not_dirty) {
1589
+ if ((flags2 & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) {
1590
+ eager_block_effects.add(
1591
+ /** @type {Effect} */
1592
+ reaction
1593
+ );
1150
1594
  }
1151
1595
  schedule_effect(
1152
1596
  /** @type {Effect} */
@@ -1374,11 +1818,17 @@ function create_text(value = "") {
1374
1818
  }
1375
1819
  // @__NO_SIDE_EFFECTS__
1376
1820
  function get_first_child(node) {
1377
- return first_child_getter.call(node);
1821
+ return (
1822
+ /** @type {TemplateNode | null} */
1823
+ first_child_getter.call(node)
1824
+ );
1378
1825
  }
1379
1826
  // @__NO_SIDE_EFFECTS__
1380
1827
  function get_next_sibling(node) {
1381
- return next_sibling_getter.call(node);
1828
+ return (
1829
+ /** @type {TemplateNode | null} */
1830
+ next_sibling_getter.call(node)
1831
+ );
1382
1832
  }
1383
1833
  function clear_text_content(node) {
1384
1834
  node.textContent = "";
@@ -1405,7 +1855,7 @@ function push_effect(effect, parent_effect) {
1405
1855
  parent_effect.last = effect;
1406
1856
  }
1407
1857
  }
1408
- function create_effect(type, fn, sync, push2 = true) {
1858
+ function create_effect(type, fn, sync) {
1409
1859
  var parent = active_effect;
1410
1860
  if (parent !== null && (parent.f & INERT) !== 0) {
1411
1861
  type |= INERT;
@@ -1413,9 +1863,8 @@ function create_effect(type, fn, sync, push2 = true) {
1413
1863
  var effect = {
1414
1864
  ctx: component_context,
1415
1865
  deps: null,
1416
- nodes_start: null,
1417
- nodes_end: null,
1418
- f: type | DIRTY,
1866
+ nodes: null,
1867
+ f: type | DIRTY | CONNECTED,
1419
1868
  first: null,
1420
1869
  fn,
1421
1870
  last: null,
@@ -1424,7 +1873,6 @@ function create_effect(type, fn, sync, push2 = true) {
1424
1873
  b: parent && parent.b,
1425
1874
  prev: null,
1426
1875
  teardown: null,
1427
- transitions: null,
1428
1876
  wv: 0,
1429
1877
  ac: null
1430
1878
  };
@@ -1439,24 +1887,25 @@ function create_effect(type, fn, sync, push2 = true) {
1439
1887
  } else if (fn !== null) {
1440
1888
  schedule_effect(effect);
1441
1889
  }
1442
- if (push2) {
1443
- var e = effect;
1444
- if (sync && e.deps === null && e.teardown === null && e.nodes_start === null && e.first === e.last && // either `null`, or a singular child
1445
- (e.f & EFFECT_PRESERVED) === 0) {
1446
- e = e.first;
1890
+ var e = effect;
1891
+ if (sync && e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child
1892
+ (e.f & EFFECT_PRESERVED) === 0) {
1893
+ e = e.first;
1894
+ if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) {
1895
+ e.f |= EFFECT_TRANSPARENT;
1447
1896
  }
1448
- if (e !== null) {
1449
- e.parent = parent;
1450
- if (parent !== null) {
1451
- push_effect(e, parent);
1452
- }
1453
- if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) {
1454
- var derived = (
1455
- /** @type {Derived} */
1456
- active_reaction
1457
- );
1458
- (derived.effects ??= []).push(e);
1459
- }
1897
+ }
1898
+ if (e !== null) {
1899
+ e.parent = parent;
1900
+ if (parent !== null) {
1901
+ push_effect(e, parent);
1902
+ }
1903
+ if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) {
1904
+ var derived = (
1905
+ /** @type {Derived} */
1906
+ active_reaction
1907
+ );
1908
+ (derived.effects ??= []).push(e);
1460
1909
  }
1461
1910
  }
1462
1911
  return effect;
@@ -1491,8 +1940,8 @@ function block(fn, flags2 = 0) {
1491
1940
  var effect = create_effect(BLOCK_EFFECT | flags2, fn, true);
1492
1941
  return effect;
1493
1942
  }
1494
- function branch(fn, push2 = true) {
1495
- return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn, true, push2);
1943
+ function branch(fn) {
1944
+ return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn, true);
1496
1945
  }
1497
1946
  function execute_effect_teardown(effect) {
1498
1947
  var teardown = effect.teardown;
@@ -1540,18 +1989,18 @@ function destroy_block_effect_children(signal) {
1540
1989
  }
1541
1990
  function destroy_effect(effect, remove_dom = true) {
1542
1991
  var removed = false;
1543
- if ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes_start !== null && effect.nodes_end !== null) {
1992
+ if ((remove_dom || (effect.f & HEAD_EFFECT) !== 0) && effect.nodes !== null && effect.nodes.end !== null) {
1544
1993
  remove_effect_dom(
1545
- effect.nodes_start,
1994
+ effect.nodes.start,
1546
1995
  /** @type {TemplateNode} */
1547
- effect.nodes_end
1996
+ effect.nodes.end
1548
1997
  );
1549
1998
  removed = true;
1550
1999
  }
1551
2000
  destroy_effect_children(effect, remove_dom && !removed);
1552
2001
  remove_reactions(effect, 0);
1553
2002
  set_signal_status(effect, DESTROYED);
1554
- var transitions = effect.transitions;
2003
+ var transitions = effect.nodes && effect.nodes.t;
1555
2004
  if (transitions !== null) {
1556
2005
  for (const transition of transitions) {
1557
2006
  transition.stop();
@@ -1562,14 +2011,11 @@ function destroy_effect(effect, remove_dom = true) {
1562
2011
  if (parent !== null && parent.first !== null) {
1563
2012
  unlink_effect(effect);
1564
2013
  }
1565
- effect.next = effect.prev = effect.teardown = effect.ctx = effect.deps = effect.fn = effect.nodes_start = effect.nodes_end = effect.ac = null;
2014
+ effect.next = effect.prev = effect.teardown = effect.ctx = effect.deps = effect.fn = effect.nodes = effect.ac = null;
1566
2015
  }
1567
2016
  function remove_effect_dom(node, end) {
1568
2017
  while (node !== null) {
1569
- var next2 = node === end ? null : (
1570
- /** @type {TemplateNode} */
1571
- /* @__PURE__ */ get_next_sibling(node)
1572
- );
2018
+ var next2 = node === end ? null : /* @__PURE__ */ get_next_sibling(node);
1573
2019
  node.remove();
1574
2020
  node = next2;
1575
2021
  }
@@ -1588,12 +2034,10 @@ function unlink_effect(effect) {
1588
2034
  function pause_effect(effect, callback, destroy = true) {
1589
2035
  var transitions = [];
1590
2036
  pause_children(effect, transitions, true);
1591
- run_out_transitions(transitions, () => {
2037
+ var fn = () => {
1592
2038
  if (destroy) destroy_effect(effect);
1593
2039
  if (callback) callback();
1594
- });
1595
- }
1596
- function run_out_transitions(transitions, fn) {
2040
+ };
1597
2041
  var remaining = transitions.length;
1598
2042
  if (remaining > 0) {
1599
2043
  var check = () => --remaining || fn();
@@ -1607,8 +2051,9 @@ function run_out_transitions(transitions, fn) {
1607
2051
  function pause_children(effect, transitions, local) {
1608
2052
  if ((effect.f & INERT) !== 0) return;
1609
2053
  effect.f ^= INERT;
1610
- if (effect.transitions !== null) {
1611
- for (const transition of effect.transitions) {
2054
+ var t = effect.nodes && effect.nodes.t;
2055
+ if (t !== null) {
2056
+ for (const transition of t) {
1612
2057
  if (transition.is_global || local) {
1613
2058
  transitions.push(transition);
1614
2059
  }
@@ -1617,19 +2062,20 @@ function pause_children(effect, transitions, local) {
1617
2062
  var child = effect.first;
1618
2063
  while (child !== null) {
1619
2064
  var sibling = child.next;
1620
- var transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || (child.f & BRANCH_EFFECT) !== 0;
2065
+ var transparent = (child.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent,
2066
+ // it means the parent block effect was pruned. In that case,
2067
+ // transparency information was transferred to the branch effect.
2068
+ (child.f & BRANCH_EFFECT) !== 0 && (effect.f & BLOCK_EFFECT) !== 0;
1621
2069
  pause_children(child, transitions, transparent ? local : false);
1622
2070
  child = sibling;
1623
2071
  }
1624
2072
  }
1625
2073
  function move_effect(effect, fragment) {
1626
- var node = effect.nodes_start;
1627
- var end = effect.nodes_end;
2074
+ if (!effect.nodes) return;
2075
+ var node = effect.nodes.start;
2076
+ var end = effect.nodes.end;
1628
2077
  while (node !== null) {
1629
- var next2 = node === end ? null : (
1630
- /** @type {TemplateNode} */
1631
- /* @__PURE__ */ get_next_sibling(node)
1632
- );
2078
+ var next2 = node === end ? null : /* @__PURE__ */ get_next_sibling(node);
1633
2079
  fragment.append(node);
1634
2080
  node = next2;
1635
2081
  }
@@ -1673,7 +2119,6 @@ let update_version = read_version;
1673
2119
  function set_update_version(value) {
1674
2120
  update_version = value;
1675
2121
  }
1676
- let skip_reaction = false;
1677
2122
  function increment_write_version() {
1678
2123
  return ++write_version;
1679
2124
  }
@@ -1682,51 +2127,33 @@ function is_dirty(reaction) {
1682
2127
  if ((flags2 & DIRTY) !== 0) {
1683
2128
  return true;
1684
2129
  }
2130
+ if (flags2 & DERIVED) {
2131
+ reaction.f &= ~WAS_MARKED;
2132
+ }
1685
2133
  if ((flags2 & MAYBE_DIRTY) !== 0) {
1686
- var dependencies = reaction.deps;
1687
- var is_unowned = (flags2 & UNOWNED) !== 0;
1688
- if (dependencies !== null) {
1689
- var i;
1690
- var dependency;
1691
- var is_disconnected = (flags2 & DISCONNECTED) !== 0;
1692
- var is_unowned_connected = is_unowned && active_effect !== null && !skip_reaction;
1693
- var length = dependencies.length;
1694
- if ((is_disconnected || is_unowned_connected) && (active_effect === null || (active_effect.f & DESTROYED) === 0)) {
1695
- var derived = (
2134
+ var dependencies = (
2135
+ /** @type {Value[]} */
2136
+ reaction.deps
2137
+ );
2138
+ var length = dependencies.length;
2139
+ for (var i = 0; i < length; i++) {
2140
+ var dependency = dependencies[i];
2141
+ if (is_dirty(
2142
+ /** @type {Derived} */
2143
+ dependency
2144
+ )) {
2145
+ update_derived(
1696
2146
  /** @type {Derived} */
1697
- reaction
2147
+ dependency
1698
2148
  );
1699
- var parent = derived.parent;
1700
- for (i = 0; i < length; i++) {
1701
- dependency = dependencies[i];
1702
- if (is_disconnected || !dependency?.reactions?.includes(derived)) {
1703
- (dependency.reactions ??= []).push(derived);
1704
- }
1705
- }
1706
- if (is_disconnected) {
1707
- derived.f ^= DISCONNECTED;
1708
- }
1709
- if (is_unowned_connected && parent !== null && (parent.f & UNOWNED) === 0) {
1710
- derived.f ^= UNOWNED;
1711
- }
1712
2149
  }
1713
- for (i = 0; i < length; i++) {
1714
- dependency = dependencies[i];
1715
- if (is_dirty(
1716
- /** @type {Derived} */
1717
- dependency
1718
- )) {
1719
- update_derived(
1720
- /** @type {Derived} */
1721
- dependency
1722
- );
1723
- }
1724
- if (dependency.wv > reaction.wv) {
1725
- return true;
1726
- }
2150
+ if (dependency.wv > reaction.wv) {
2151
+ return true;
1727
2152
  }
1728
2153
  }
1729
- if (!is_unowned || active_effect !== null && !skip_reaction) {
2154
+ if ((flags2 & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that
2155
+ // traversal of the graph in the other batches still happens
2156
+ batch_values === null) {
1730
2157
  set_signal_status(reaction, CLEAN);
1731
2158
  }
1732
2159
  }
@@ -1765,7 +2192,6 @@ function update_reaction(reaction) {
1765
2192
  var previous_skipped_deps = skipped_deps;
1766
2193
  var previous_untracked_writes = untracked_writes;
1767
2194
  var previous_reaction = active_reaction;
1768
- var previous_skip_reaction = skip_reaction;
1769
2195
  var previous_sources = current_sources;
1770
2196
  var previous_component_context = component_context;
1771
2197
  var previous_untracking = untracking;
@@ -1775,7 +2201,6 @@ function update_reaction(reaction) {
1775
2201
  null;
1776
2202
  skipped_deps = 0;
1777
2203
  untracked_writes = null;
1778
- skip_reaction = (flags2 & UNOWNED) !== 0 && (untracking || !is_updating_effect || active_reaction === null);
1779
2204
  active_reaction = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;
1780
2205
  current_sources = null;
1781
2206
  set_component_context(reaction.ctx);
@@ -1806,9 +2231,7 @@ function update_reaction(reaction) {
1806
2231
  } else {
1807
2232
  reaction.deps = deps = new_deps;
1808
2233
  }
1809
- if (!skip_reaction || // Deriveds that already have reactions can cleanup, so we still add them as reactions
1810
- (flags2 & DERIVED) !== 0 && /** @type {import('#client').Derived} */
1811
- reaction.reactions !== null) {
2234
+ if (effect_tracking() && (reaction.f & CONNECTED) !== 0) {
1812
2235
  for (i = skipped_deps; i < deps.length; i++) {
1813
2236
  (deps[i].reactions ??= []).push(reaction);
1814
2237
  }
@@ -1850,7 +2273,6 @@ function update_reaction(reaction) {
1850
2273
  skipped_deps = previous_skipped_deps;
1851
2274
  untracked_writes = previous_untracked_writes;
1852
2275
  active_reaction = previous_reaction;
1853
- skip_reaction = previous_skip_reaction;
1854
2276
  current_sources = previous_sources;
1855
2277
  set_component_context(previous_component_context);
1856
2278
  untracking = previous_untracking;
@@ -1875,19 +2297,17 @@ function remove_reaction(signal, dependency) {
1875
2297
  // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`
1876
2298
  // allows us to skip the expensive work of disconnecting and immediately reconnecting it
1877
2299
  (new_deps === null || !new_deps.includes(dependency))) {
1878
- set_signal_status(dependency, MAYBE_DIRTY);
1879
- if ((dependency.f & (UNOWNED | DISCONNECTED)) === 0) {
1880
- dependency.f ^= DISCONNECTED;
1881
- }
1882
- destroy_derived_effects(
1883
- /** @type {Derived} **/
2300
+ var derived = (
2301
+ /** @type {Derived} */
1884
2302
  dependency
1885
2303
  );
1886
- remove_reactions(
1887
- /** @type {Derived} **/
1888
- dependency,
1889
- 0
1890
- );
2304
+ if ((derived.f & CONNECTED) !== 0) {
2305
+ derived.f ^= CONNECTED;
2306
+ derived.f &= ~WAS_MARKED;
2307
+ }
2308
+ update_derived_status(derived);
2309
+ destroy_derived_effects(derived);
2310
+ remove_reactions(derived, 0);
1891
2311
  }
1892
2312
  }
1893
2313
  function remove_reactions(signal, start_index) {
@@ -1908,7 +2328,7 @@ function update_effect(effect) {
1908
2328
  active_effect = effect;
1909
2329
  is_updating_effect = true;
1910
2330
  try {
1911
- if ((flags2 & BLOCK_EFFECT) !== 0) {
2331
+ if ((flags2 & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {
1912
2332
  destroy_block_effect_children(effect);
1913
2333
  } else {
1914
2334
  destroy_effect_children(effect);
@@ -1938,7 +2358,7 @@ function get(signal) {
1938
2358
  skipped_deps++;
1939
2359
  } else if (new_deps === null) {
1940
2360
  new_deps = [signal];
1941
- } else if (!skip_reaction || !new_deps.includes(signal)) {
2361
+ } else if (!new_deps.includes(signal)) {
1942
2362
  new_deps.push(signal);
1943
2363
  }
1944
2364
  }
@@ -1952,25 +2372,16 @@ function get(signal) {
1952
2372
  }
1953
2373
  }
1954
2374
  }
1955
- } else if (is_derived && /** @type {Derived} */
1956
- signal.deps === null && /** @type {Derived} */
1957
- signal.effects === null) {
2375
+ }
2376
+ if (is_destroying_effect && old_values.has(signal)) {
2377
+ return old_values.get(signal);
2378
+ }
2379
+ if (is_derived) {
1958
2380
  var derived = (
1959
2381
  /** @type {Derived} */
1960
2382
  signal
1961
2383
  );
1962
- var parent = derived.parent;
1963
- if (parent !== null && (parent.f & UNOWNED) === 0) {
1964
- derived.f ^= UNOWNED;
1965
- }
1966
- }
1967
- if (is_destroying_effect) {
1968
- if (old_values.has(signal)) {
1969
- return old_values.get(signal);
1970
- }
1971
- if (is_derived) {
1972
- derived = /** @type {Derived} */
1973
- signal;
2384
+ if (is_destroying_effect) {
1974
2385
  var value = derived.v;
1975
2386
  if ((derived.f & CLEAN) === 0 && derived.reactions !== null || depends_on_old_values(derived)) {
1976
2387
  value = execute_derived(derived);
@@ -1978,15 +2389,17 @@ function get(signal) {
1978
2389
  old_values.set(derived, value);
1979
2390
  return value;
1980
2391
  }
1981
- } else if (is_derived) {
1982
- derived = /** @type {Derived} */
1983
- signal;
1984
- if (batch_values?.has(derived)) {
1985
- return batch_values.get(derived);
1986
- }
2392
+ var should_connect = (derived.f & CONNECTED) === 0 && !untracking && active_reaction !== null && (is_updating_effect || (active_reaction.f & CONNECTED) !== 0);
2393
+ var is_new = derived.deps === null;
1987
2394
  if (is_dirty(derived)) {
2395
+ if (should_connect) {
2396
+ derived.f |= CONNECTED;
2397
+ }
1988
2398
  update_derived(derived);
1989
2399
  }
2400
+ if (should_connect && !is_new) {
2401
+ reconnect(derived);
2402
+ }
1990
2403
  }
1991
2404
  if (batch_values?.has(signal)) {
1992
2405
  return batch_values.get(signal);
@@ -1996,6 +2409,19 @@ function get(signal) {
1996
2409
  }
1997
2410
  return signal.v;
1998
2411
  }
2412
+ function reconnect(derived) {
2413
+ if (derived.deps === null) return;
2414
+ derived.f |= CONNECTED;
2415
+ for (const dep of derived.deps) {
2416
+ (dep.reactions ??= []).push(derived);
2417
+ if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) {
2418
+ reconnect(
2419
+ /** @type {Derived} */
2420
+ dep
2421
+ );
2422
+ }
2423
+ }
2424
+ }
1999
2425
  function depends_on_old_values(derived) {
2000
2426
  if (derived.v === UNINITIALIZED) return true;
2001
2427
  if (derived.deps === null) return false;
@@ -2021,10 +2447,6 @@ function untrack(fn) {
2021
2447
  untracking = previous_untracking;
2022
2448
  }
2023
2449
  }
2024
- const STATUS_MASK = -7169;
2025
- function set_signal_status(signal, status) {
2026
- signal.f = signal.f & STATUS_MASK | status;
2027
- }
2028
2450
  const all_registered_events = /* @__PURE__ */ new Set();
2029
2451
  const root_event_handles = /* @__PURE__ */ new Set();
2030
2452
  let last_propagated_event = null;
@@ -2083,12 +2505,7 @@ function handle_event_propagation(event) {
2083
2505
  current_target.disabled || // DOM could've been updated already by the time this is reached, so we check this as well
2084
2506
  // -> the target could not have been disabled because it emits the event in the first place
2085
2507
  event.target === current_target)) {
2086
- if (is_array(delegated)) {
2087
- var [fn, ...data] = delegated;
2088
- fn.apply(current_target, [event, ...data]);
2089
- } else {
2090
- delegated.call(current_target, event);
2091
- }
2508
+ delegated.call(current_target, event);
2092
2509
  }
2093
2510
  } catch (error) {
2094
2511
  if (throw_error) {
@@ -2122,9 +2539,8 @@ function assign_nodes(start, end) {
2122
2539
  /** @type {Effect} */
2123
2540
  active_effect
2124
2541
  );
2125
- if (effect.nodes_start === null) {
2126
- effect.nodes_start = start;
2127
- effect.nodes_end = end;
2542
+ if (effect.nodes === null) {
2543
+ effect.nodes = { start, end, a: null, t: null };
2128
2544
  }
2129
2545
  }
2130
2546
  function mount(component, options2) {
@@ -2137,14 +2553,10 @@ function hydrate(component, options2) {
2137
2553
  const was_hydrating = hydrating;
2138
2554
  const previous_hydrate_node = hydrate_node;
2139
2555
  try {
2140
- var anchor = (
2141
- /** @type {TemplateNode} */
2142
- /* @__PURE__ */ get_first_child(target)
2143
- );
2556
+ var anchor = /* @__PURE__ */ get_first_child(target);
2144
2557
  while (anchor && (anchor.nodeType !== COMMENT_NODE || /** @type {Comment} */
2145
2558
  anchor.data !== HYDRATION_START)) {
2146
- anchor = /** @type {TemplateNode} */
2147
- /* @__PURE__ */ get_next_sibling(anchor);
2559
+ anchor = /* @__PURE__ */ get_next_sibling(anchor);
2148
2560
  }
2149
2561
  if (!anchor) {
2150
2562
  throw HYDRATION_ERROR;
@@ -2232,7 +2644,7 @@ function _mount(Component, { target, anchor, props = {}, events, context, intro
2232
2644
  }
2233
2645
  component = Component(anchor_node2, props) || {};
2234
2646
  if (hydrating) {
2235
- active_effect.nodes_end = hydrate_node;
2647
+ active_effect.nodes.end = hydrate_node;
2236
2648
  if (hydrate_node === null || hydrate_node.nodeType !== COMMENT_NODE || /** @type {Comment} */
2237
2649
  hydrate_node.data !== HYDRATION_END) {
2238
2650
  hydration_mismatch();
@@ -2384,8 +2796,8 @@ function set_read_implementation(fn) {
2384
2796
  }
2385
2797
  function asClassComponent(component) {
2386
2798
  const component_constructor = asClassComponent$1(component);
2387
- const _render = (props, { context } = {}) => {
2388
- const result = render(component, { props, context });
2799
+ const _render = (props, { context, csp } = {}) => {
2800
+ const result = render(component, { props, context, csp });
2389
2801
  const munged = Object.defineProperties(
2390
2802
  /** @type {LegacyRenderResult & PromiseLike<LegacyRenderResult>} */
2391
2803
  {},
@@ -2421,7 +2833,8 @@ function asClassComponent(component) {
2421
2833
  return onfulfilled({
2422
2834
  css: munged.css,
2423
2835
  head: result2.head,
2424
- html: result2.body
2836
+ html: result2.body,
2837
+ hashes: result2.hashes
2425
2838
  });
2426
2839
  }, onrejected);
2427
2840
  }
@@ -2659,7 +3072,7 @@ const options = {
2659
3072
  <div class="error">
2660
3073
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
2661
3074
  },
2662
- version_hash: "8dljof"
3075
+ version_hash: "1f890c5"
2663
3076
  };
2664
3077
  async function get_hooks() {
2665
3078
  let handle;
@@ -2739,7 +3152,8 @@ function is_form_content_type(request) {
2739
3152
  request,
2740
3153
  "application/x-www-form-urlencoded",
2741
3154
  "multipart/form-data",
2742
- "text/plain"
3155
+ "text/plain",
3156
+ BINARY_FORM_CONTENT_TYPE
2743
3157
  );
2744
3158
  }
2745
3159
  function coalesce_to_error(err) {
@@ -3007,296 +3421,6 @@ function add_resolution_suffix(pathname) {
3007
3421
  function strip_resolution_suffix(pathname) {
3008
3422
  return pathname.slice(0, -ROUTE_SUFFIX.length);
3009
3423
  }
3010
- const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$";
3011
- const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
3012
- const reserved = /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/;
3013
- function uneval(value, replacer) {
3014
- const counts = /* @__PURE__ */ new Map();
3015
- const keys = [];
3016
- const custom = /* @__PURE__ */ new Map();
3017
- function walk(thing) {
3018
- if (typeof thing === "function") {
3019
- throw new DevalueError(`Cannot stringify a function`, keys);
3020
- }
3021
- if (!is_primitive(thing)) {
3022
- if (counts.has(thing)) {
3023
- counts.set(thing, counts.get(thing) + 1);
3024
- return;
3025
- }
3026
- counts.set(thing, 1);
3027
- if (replacer) {
3028
- const str2 = replacer(thing);
3029
- if (typeof str2 === "string") {
3030
- custom.set(thing, str2);
3031
- return;
3032
- }
3033
- }
3034
- const type = get_type(thing);
3035
- switch (type) {
3036
- case "Number":
3037
- case "BigInt":
3038
- case "String":
3039
- case "Boolean":
3040
- case "Date":
3041
- case "RegExp":
3042
- case "URL":
3043
- case "URLSearchParams":
3044
- return;
3045
- case "Array":
3046
- thing.forEach((value2, i) => {
3047
- keys.push(`[${i}]`);
3048
- walk(value2);
3049
- keys.pop();
3050
- });
3051
- break;
3052
- case "Set":
3053
- Array.from(thing).forEach(walk);
3054
- break;
3055
- case "Map":
3056
- for (const [key2, value2] of thing) {
3057
- keys.push(
3058
- `.get(${is_primitive(key2) ? stringify_primitive(key2) : "..."})`
3059
- );
3060
- walk(value2);
3061
- keys.pop();
3062
- }
3063
- break;
3064
- case "Int8Array":
3065
- case "Uint8Array":
3066
- case "Uint8ClampedArray":
3067
- case "Int16Array":
3068
- case "Uint16Array":
3069
- case "Int32Array":
3070
- case "Uint32Array":
3071
- case "Float32Array":
3072
- case "Float64Array":
3073
- case "BigInt64Array":
3074
- case "BigUint64Array":
3075
- walk(thing.buffer);
3076
- return;
3077
- case "ArrayBuffer":
3078
- return;
3079
- case "Temporal.Duration":
3080
- case "Temporal.Instant":
3081
- case "Temporal.PlainDate":
3082
- case "Temporal.PlainTime":
3083
- case "Temporal.PlainDateTime":
3084
- case "Temporal.PlainMonthDay":
3085
- case "Temporal.PlainYearMonth":
3086
- case "Temporal.ZonedDateTime":
3087
- return;
3088
- default:
3089
- if (!is_plain_object(thing)) {
3090
- throw new DevalueError(
3091
- `Cannot stringify arbitrary non-POJOs`,
3092
- keys
3093
- );
3094
- }
3095
- if (enumerable_symbols(thing).length > 0) {
3096
- throw new DevalueError(
3097
- `Cannot stringify POJOs with symbolic keys`,
3098
- keys
3099
- );
3100
- }
3101
- for (const key2 in thing) {
3102
- keys.push(stringify_key(key2));
3103
- walk(thing[key2]);
3104
- keys.pop();
3105
- }
3106
- }
3107
- }
3108
- }
3109
- walk(value);
3110
- const names = /* @__PURE__ */ new Map();
3111
- Array.from(counts).filter((entry) => entry[1] > 1).sort((a, b) => b[1] - a[1]).forEach((entry, i) => {
3112
- names.set(entry[0], get_name(i));
3113
- });
3114
- function stringify2(thing) {
3115
- if (names.has(thing)) {
3116
- return names.get(thing);
3117
- }
3118
- if (is_primitive(thing)) {
3119
- return stringify_primitive(thing);
3120
- }
3121
- if (custom.has(thing)) {
3122
- return custom.get(thing);
3123
- }
3124
- const type = get_type(thing);
3125
- switch (type) {
3126
- case "Number":
3127
- case "String":
3128
- case "Boolean":
3129
- return `Object(${stringify2(thing.valueOf())})`;
3130
- case "RegExp":
3131
- return `new RegExp(${stringify_string(thing.source)}, "${thing.flags}")`;
3132
- case "Date":
3133
- return `new Date(${thing.getTime()})`;
3134
- case "URL":
3135
- return `new URL(${stringify_string(thing.toString())})`;
3136
- case "URLSearchParams":
3137
- return `new URLSearchParams(${stringify_string(thing.toString())})`;
3138
- case "Array":
3139
- const members = (
3140
- /** @type {any[]} */
3141
- thing.map(
3142
- (v, i) => i in thing ? stringify2(v) : ""
3143
- )
3144
- );
3145
- const tail = thing.length === 0 || thing.length - 1 in thing ? "" : ",";
3146
- return `[${members.join(",")}${tail}]`;
3147
- case "Set":
3148
- case "Map":
3149
- return `new ${type}([${Array.from(thing).map(stringify2).join(",")}])`;
3150
- case "Int8Array":
3151
- case "Uint8Array":
3152
- case "Uint8ClampedArray":
3153
- case "Int16Array":
3154
- case "Uint16Array":
3155
- case "Int32Array":
3156
- case "Uint32Array":
3157
- case "Float32Array":
3158
- case "Float64Array":
3159
- case "BigInt64Array":
3160
- case "BigUint64Array": {
3161
- let str2 = `new ${type}`;
3162
- if (counts.get(thing.buffer) === 1) {
3163
- const array2 = new thing.constructor(thing.buffer);
3164
- str2 += `([${array2}])`;
3165
- } else {
3166
- str2 += `([${stringify2(thing.buffer)}])`;
3167
- }
3168
- const a = thing.byteOffset;
3169
- const b = a + thing.byteLength;
3170
- if (a > 0 || b !== thing.buffer.byteLength) {
3171
- const m = +/(\d+)/.exec(type)[1] / 8;
3172
- str2 += `.subarray(${a / m},${b / m})`;
3173
- }
3174
- return str2;
3175
- }
3176
- case "ArrayBuffer": {
3177
- const ui8 = new Uint8Array(thing);
3178
- return `new Uint8Array([${ui8.toString()}]).buffer`;
3179
- }
3180
- case "Temporal.Duration":
3181
- case "Temporal.Instant":
3182
- case "Temporal.PlainDate":
3183
- case "Temporal.PlainTime":
3184
- case "Temporal.PlainDateTime":
3185
- case "Temporal.PlainMonthDay":
3186
- case "Temporal.PlainYearMonth":
3187
- case "Temporal.ZonedDateTime":
3188
- return `${type}.from(${stringify_string(thing.toString())})`;
3189
- default:
3190
- const obj = `{${Object.keys(thing).map((key2) => `${safe_key(key2)}:${stringify2(thing[key2])}`).join(",")}}`;
3191
- const proto = Object.getPrototypeOf(thing);
3192
- if (proto === null) {
3193
- return Object.keys(thing).length > 0 ? `Object.assign(Object.create(null),${obj})` : `Object.create(null)`;
3194
- }
3195
- return obj;
3196
- }
3197
- }
3198
- const str = stringify2(value);
3199
- if (names.size) {
3200
- const params = [];
3201
- const statements = [];
3202
- const values = [];
3203
- names.forEach((name, thing) => {
3204
- params.push(name);
3205
- if (custom.has(thing)) {
3206
- values.push(
3207
- /** @type {string} */
3208
- custom.get(thing)
3209
- );
3210
- return;
3211
- }
3212
- if (is_primitive(thing)) {
3213
- values.push(stringify_primitive(thing));
3214
- return;
3215
- }
3216
- const type = get_type(thing);
3217
- switch (type) {
3218
- case "Number":
3219
- case "String":
3220
- case "Boolean":
3221
- values.push(`Object(${stringify2(thing.valueOf())})`);
3222
- break;
3223
- case "RegExp":
3224
- values.push(thing.toString());
3225
- break;
3226
- case "Date":
3227
- values.push(`new Date(${thing.getTime()})`);
3228
- break;
3229
- case "Array":
3230
- values.push(`Array(${thing.length})`);
3231
- thing.forEach((v, i) => {
3232
- statements.push(`${name}[${i}]=${stringify2(v)}`);
3233
- });
3234
- break;
3235
- case "Set":
3236
- values.push(`new Set`);
3237
- statements.push(
3238
- `${name}.${Array.from(thing).map((v) => `add(${stringify2(v)})`).join(".")}`
3239
- );
3240
- break;
3241
- case "Map":
3242
- values.push(`new Map`);
3243
- statements.push(
3244
- `${name}.${Array.from(thing).map(([k, v]) => `set(${stringify2(k)}, ${stringify2(v)})`).join(".")}`
3245
- );
3246
- break;
3247
- case "ArrayBuffer":
3248
- values.push(
3249
- `new Uint8Array([${new Uint8Array(thing).join(",")}]).buffer`
3250
- );
3251
- break;
3252
- default:
3253
- values.push(
3254
- Object.getPrototypeOf(thing) === null ? "Object.create(null)" : "{}"
3255
- );
3256
- Object.keys(thing).forEach((key2) => {
3257
- statements.push(
3258
- `${name}${safe_prop(key2)}=${stringify2(thing[key2])}`
3259
- );
3260
- });
3261
- }
3262
- });
3263
- statements.push(`return ${str}`);
3264
- return `(function(${params.join(",")}){${statements.join(
3265
- ";"
3266
- )}}(${values.join(",")}))`;
3267
- } else {
3268
- return str;
3269
- }
3270
- }
3271
- function get_name(num) {
3272
- let name = "";
3273
- do {
3274
- name = chars[num % chars.length] + name;
3275
- num = ~~(num / chars.length) - 1;
3276
- } while (num >= 0);
3277
- return reserved.test(name) ? `${name}0` : name;
3278
- }
3279
- function escape_unsafe_char(c) {
3280
- return escaped[c] || c;
3281
- }
3282
- function escape_unsafe_chars(str) {
3283
- return str.replace(unsafe_chars, escape_unsafe_char);
3284
- }
3285
- function safe_key(key2) {
3286
- return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key2) ? key2 : escape_unsafe_chars(JSON.stringify(key2));
3287
- }
3288
- function safe_prop(key2) {
3289
- return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key2) ? `.${key2}` : `[${escape_unsafe_chars(JSON.stringify(key2))}]`;
3290
- }
3291
- function stringify_primitive(thing) {
3292
- if (typeof thing === "string") return stringify_string(thing);
3293
- if (thing === void 0) return "void 0";
3294
- if (thing === 0 && 1 / thing < 0) return "-0";
3295
- const str = String(thing);
3296
- if (typeof thing === "number") return str.replace(/^(-)?0\./, "$1.");
3297
- if (typeof thing === "bigint") return thing + "n";
3298
- return str;
3299
- }
3300
3424
  const noop_span = {
3301
3425
  spanContext() {
3302
3426
  return noop_span_context;
@@ -3971,7 +4095,7 @@ function create_universal_fetch(event, state, fetched, csr, resolve_opts) {
3971
4095
  }
3972
4096
  let teed_body;
3973
4097
  const proxy = new Proxy(response, {
3974
- get(response2, key2, _receiver) {
4098
+ get(response2, key2, receiver) {
3975
4099
  async function push_fetched(body2, is_b64) {
3976
4100
  const status_number = Number(response2.status);
3977
4101
  if (isNaN(status_number)) {
@@ -4051,7 +4175,22 @@ function create_universal_fetch(event, state, fetched, csr, resolve_opts) {
4051
4175
  return body2 ? JSON.parse(body2) : void 0;
4052
4176
  };
4053
4177
  }
4054
- return Reflect.get(response2, key2, response2);
4178
+ const value = Reflect.get(response2, key2, response2);
4179
+ if (value instanceof Function) {
4180
+ return Object.defineProperties(
4181
+ /**
4182
+ * @this {any}
4183
+ */
4184
+ function() {
4185
+ return Reflect.apply(value, this === receiver ? response2 : this, arguments);
4186
+ },
4187
+ {
4188
+ name: { value: value.name },
4189
+ length: { value: value.length }
4190
+ }
4191
+ );
4192
+ }
4193
+ return value;
4055
4194
  }
4056
4195
  });
4057
4196
  if (csr) {
@@ -4864,7 +5003,7 @@ ${indent}}`);
4864
5003
  for (const [info, cache] of remote_cache) {
4865
5004
  if (!info.id) continue;
4866
5005
  for (const key2 in cache) {
4867
- remote[create_remote_cache_key(info.id, key2)] = await cache[key2];
5006
+ remote[create_remote_key(info.id, key2)] = await cache[key2];
4868
5007
  }
4869
5008
  }
4870
5009
  const replacer = (thing) => {
@@ -4975,7 +5114,7 @@ ${indent}}`);
4975
5114
  async start(controller) {
4976
5115
  controller.enqueue(text_encoder.encode(transformed + "\n"));
4977
5116
  for await (const chunk of chunks) {
4978
- controller.enqueue(text_encoder.encode(chunk));
5117
+ if (chunk.length) controller.enqueue(text_encoder.encode(chunk));
4979
5118
  }
4980
5119
  controller.close();
4981
5120
  },
@@ -5244,24 +5383,18 @@ async function handle_remote_call_internal(event, state, options2, manifest, id)
5244
5383
  )}`
5245
5384
  );
5246
5385
  }
5247
- const form_data = await event.request.formData();
5248
- form_client_refreshes = /** @type {string[]} */
5249
- JSON.parse(
5250
- /** @type {string} */
5251
- form_data.get("sveltekit:remote_refreshes") ?? "[]"
5252
- );
5253
- form_data.delete("sveltekit:remote_refreshes");
5254
- if (additional_args) {
5255
- form_data.set("sveltekit:id", decodeURIComponent(additional_args));
5386
+ const { data: data2, meta, form_data } = await deserialize_binary_form(event.request);
5387
+ if (additional_args && !("id" in data2)) {
5388
+ data2.id = JSON.parse(decodeURIComponent(additional_args));
5256
5389
  }
5257
5390
  const fn2 = info.fn;
5258
- const data2 = await with_request_store({ event, state }, () => fn2(form_data));
5391
+ const result = await with_request_store({ event, state }, () => fn2(data2, meta, form_data));
5259
5392
  return json(
5260
5393
  /** @type {RemoteFunctionResponse} */
5261
5394
  {
5262
5395
  type: "result",
5263
- result: stringify(data2, transport),
5264
- refreshes: data2.issues ? {} : await serialize_refreshes(form_client_refreshes)
5396
+ result: stringify(result, transport),
5397
+ refreshes: result.issues ? void 0 : await serialize_refreshes(meta.remote_refreshes)
5265
5398
  }
5266
5399
  );
5267
5400
  }
@@ -5301,7 +5434,7 @@ async function handle_remote_call_internal(event, state, options2, manifest, id)
5301
5434
  {
5302
5435
  type: "redirect",
5303
5436
  location: error2.location,
5304
- refreshes: await serialize_refreshes(form_client_refreshes ?? [])
5437
+ refreshes: await serialize_refreshes(form_client_refreshes)
5305
5438
  }
5306
5439
  );
5307
5440
  }
@@ -5325,16 +5458,18 @@ async function handle_remote_call_internal(event, state, options2, manifest, id)
5325
5458
  }
5326
5459
  async function serialize_refreshes(client_refreshes) {
5327
5460
  const refreshes = state.refreshes ?? {};
5328
- for (const key2 of client_refreshes) {
5329
- if (refreshes[key2] !== void 0) continue;
5330
- const [hash3, name2, payload] = key2.split("/");
5331
- const loader = manifest._.remotes[hash3];
5332
- const fn2 = (await loader?.())?.default?.[name2];
5333
- if (!fn2) error(400, "Bad Request");
5334
- refreshes[key2] = with_request_store(
5335
- { event, state },
5336
- () => fn2(parse_remote_arg(payload, transport))
5337
- );
5461
+ if (client_refreshes) {
5462
+ for (const key2 of client_refreshes) {
5463
+ if (refreshes[key2] !== void 0) continue;
5464
+ const [hash3, name2, payload] = key2.split("/");
5465
+ const loader = manifest._.remotes[hash3];
5466
+ const fn2 = (await loader?.())?.default?.[name2];
5467
+ if (!fn2) error(400, "Bad Request");
5468
+ refreshes[key2] = with_request_store(
5469
+ { event, state },
5470
+ () => fn2(parse_remote_arg(payload, transport))
5471
+ );
5472
+ }
5338
5473
  }
5339
5474
  if (Object.keys(refreshes).length === 0) {
5340
5475
  return void 0;
@@ -5389,16 +5524,16 @@ async function handle_remote_form_post_internal(event, state, manifest, id) {
5389
5524
  form = with_request_store({ event, state }, () => form.for(JSON.parse(action_id)));
5390
5525
  }
5391
5526
  try {
5392
- const form_data = await event.request.formData();
5393
5527
  const fn = (
5394
5528
  /** @type {RemoteInfo & { type: 'form' }} */
5395
5529
  /** @type {any} */
5396
5530
  form.__.fn
5397
5531
  );
5398
- if (action_id && !form_data.has("id")) {
5399
- form_data.set("sveltekit:id", decodeURIComponent(action_id));
5532
+ const { data, meta, form_data } = await deserialize_binary_form(event.request);
5533
+ if (action_id && !("id" in data)) {
5534
+ data.id = JSON.parse(decodeURIComponent(action_id));
5400
5535
  }
5401
- await with_request_store({ event, state }, () => fn(form_data));
5536
+ await with_request_store({ event, state }, () => fn(data, meta, form_data));
5402
5537
  return {
5403
5538
  type: "success",
5404
5539
  status: 200
@@ -5819,12 +5954,6 @@ function redirect_json_response(redirect) {
5819
5954
  );
5820
5955
  }
5821
5956
  var cookie = {};
5822
- /*!
5823
- * cookie
5824
- * Copyright(c) 2012-2014 Roman Shtylman
5825
- * Copyright(c) 2015 Douglas Christopher Wilson
5826
- * MIT Licensed
5827
- */
5828
5957
  var hasRequiredCookie;
5829
5958
  function requireCookie() {
5830
5959
  if (hasRequiredCookie) return cookie;
@@ -6141,6 +6270,12 @@ function requireSetCookie() {
6141
6270
  map: false,
6142
6271
  silent: false
6143
6272
  };
6273
+ function isForbiddenKey(key2) {
6274
+ return typeof key2 !== "string" || key2 in {};
6275
+ }
6276
+ function createNullObj() {
6277
+ return /* @__PURE__ */ Object.create(null);
6278
+ }
6144
6279
  function isNonEmptyString(str) {
6145
6280
  return typeof str === "string" && !!str.trim();
6146
6281
  }
@@ -6151,26 +6286,32 @@ function requireSetCookie() {
6151
6286
  var name = parsed.name;
6152
6287
  var value = parsed.value;
6153
6288
  options2 = options2 ? Object.assign({}, defaultParseOptions, options2) : defaultParseOptions;
6289
+ if (isForbiddenKey(name)) {
6290
+ return null;
6291
+ }
6154
6292
  try {
6155
6293
  value = options2.decodeValues ? decodeURIComponent(value) : value;
6156
6294
  } catch (e) {
6157
6295
  console.error(
6158
- "set-cookie-parser encountered an error while decoding a cookie with value '" + value + "'. Set options.decodeValues to false to disable this feature.",
6296
+ "set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",
6159
6297
  e
6160
6298
  );
6161
6299
  }
6162
- var cookie2 = {
6163
- name,
6164
- value
6165
- };
6300
+ var cookie2 = createNullObj();
6301
+ cookie2.name = name;
6302
+ cookie2.value = value;
6166
6303
  parts.forEach(function(part) {
6167
6304
  var sides = part.split("=");
6168
6305
  var key2 = sides.shift().trimLeft().toLowerCase();
6306
+ if (isForbiddenKey(key2)) {
6307
+ return;
6308
+ }
6169
6309
  var value2 = sides.join("=");
6170
6310
  if (key2 === "expires") {
6171
6311
  cookie2.expires = new Date(value2);
6172
6312
  } else if (key2 === "max-age") {
6173
- cookie2.maxAge = parseInt(value2, 10);
6313
+ var n = parseInt(value2, 10);
6314
+ if (!Number.isNaN(n)) cookie2.maxAge = n;
6174
6315
  } else if (key2 === "secure") {
6175
6316
  cookie2.secure = true;
6176
6317
  } else if (key2 === "httponly") {
@@ -6179,7 +6320,7 @@ function requireSetCookie() {
6179
6320
  cookie2.sameSite = value2;
6180
6321
  } else if (key2 === "partitioned") {
6181
6322
  cookie2.partitioned = true;
6182
- } else {
6323
+ } else if (key2) {
6183
6324
  cookie2[key2] = value2;
6184
6325
  }
6185
6326
  });
@@ -6203,7 +6344,7 @@ function requireSetCookie() {
6203
6344
  if (!options2.map) {
6204
6345
  return [];
6205
6346
  } else {
6206
- return {};
6347
+ return createNullObj();
6207
6348
  }
6208
6349
  }
6209
6350
  if (input.headers) {
@@ -6229,12 +6370,14 @@ function requireSetCookie() {
6229
6370
  if (!options2.map) {
6230
6371
  return input.filter(isNonEmptyString).map(function(str) {
6231
6372
  return parseString(str, options2);
6232
- });
6373
+ }).filter(Boolean);
6233
6374
  } else {
6234
- var cookies = {};
6375
+ var cookies = createNullObj();
6235
6376
  return input.filter(isNonEmptyString).reduce(function(cookies2, str) {
6236
6377
  var cookie2 = parseString(str, options2);
6237
- cookies2[cookie2.name] = cookie2;
6378
+ if (cookie2 && !isForbiddenKey(cookie2.name)) {
6379
+ cookies2[cookie2.name] = cookie2;
6380
+ }
6238
6381
  return cookies2;
6239
6382
  }, cookies);
6240
6383
  }
@@ -6537,7 +6680,11 @@ async function internal_respond(request, options2, manifest, state) {
6537
6680
  "Use `event.cookies.set(name, value, options)` instead of `event.setHeaders` to set cookies"
6538
6681
  );
6539
6682
  } else if (lower in headers2) {
6540
- throw new Error(`"${key2}" header is already set`);
6683
+ if (lower === "server-timing") {
6684
+ headers2[lower] += ", " + value;
6685
+ } else {
6686
+ throw new Error(`"${key2}" header is already set`);
6687
+ }
6541
6688
  } else {
6542
6689
  headers2[lower] = value;
6543
6690
  if (state.prerendering && lower === "cache-control") {
@@ -6585,20 +6732,27 @@ async function internal_respond(request, options2, manifest, state) {
6585
6732
  } catch {
6586
6733
  return text("Malformed URI", { status: 400 });
6587
6734
  }
6588
- if (resolved_path !== url.pathname && !state.prerendering?.fallback && has_prerendered_path(manifest, resolved_path)) {
6735
+ if (
6736
+ // the resolved path has been decoded so it should be compared to the decoded url pathname
6737
+ resolved_path !== decode_pathname(url.pathname) && !state.prerendering?.fallback && has_prerendered_path(manifest, resolved_path)
6738
+ ) {
6589
6739
  const url2 = new URL(request.url);
6590
6740
  url2.pathname = is_data_request ? add_data_suffix(resolved_path) : is_route_resolution_request ? add_resolution_suffix(resolved_path) : resolved_path;
6591
- const response = await fetch(url2, request);
6592
- const headers22 = new Headers(response.headers);
6593
- if (headers22.has("content-encoding")) {
6594
- headers22.delete("content-encoding");
6595
- headers22.delete("content-length");
6596
- }
6597
- return new Response(response.body, {
6598
- headers: headers22,
6599
- status: response.status,
6600
- statusText: response.statusText
6601
- });
6741
+ try {
6742
+ const response = await fetch(url2, request);
6743
+ const headers22 = new Headers(response.headers);
6744
+ if (headers22.has("content-encoding")) {
6745
+ headers22.delete("content-encoding");
6746
+ headers22.delete("content-length");
6747
+ }
6748
+ return new Response(response.body, {
6749
+ headers: headers22,
6750
+ status: response.status,
6751
+ statusText: response.statusText
6752
+ });
6753
+ } catch (error2) {
6754
+ return await handle_fatal_error(event, event_state, options2, error2);
6755
+ }
6602
6756
  }
6603
6757
  let route = null;
6604
6758
  if (base && !state.prerendering?.fallback) {