@devmotion/cli 0.7.0 → 0.8.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 (1115) hide show
  1. package/README.md +13 -0
  2. package/dist/index.js +135 -348
  3. package/package.json +1 -1
  4. package/studio/client/_app/immutable/chunks/4QfhfUmj.js +1 -0
  5. package/studio/client/_app/immutable/chunks/4QfhfUmj.js.br +0 -0
  6. package/studio/client/_app/immutable/chunks/4QfhfUmj.js.gz +0 -0
  7. package/studio/client/_app/immutable/chunks/B4vsfLqj.js +1 -0
  8. package/studio/client/_app/immutable/chunks/B4vsfLqj.js.br +0 -0
  9. package/studio/client/_app/immutable/chunks/B4vsfLqj.js.gz +0 -0
  10. package/studio/client/_app/immutable/chunks/B7SJbUFX.js +1 -0
  11. package/studio/client/_app/immutable/chunks/B7SJbUFX.js.br +0 -0
  12. package/studio/client/_app/immutable/chunks/B7SJbUFX.js.gz +0 -0
  13. package/studio/client/_app/immutable/chunks/B9f32Zzc.js +1 -0
  14. package/studio/client/_app/immutable/chunks/B9f32Zzc.js.br +1 -0
  15. package/studio/client/_app/immutable/chunks/B9f32Zzc.js.gz +0 -0
  16. package/studio/client/_app/immutable/chunks/BHu0iPy_.js +1 -0
  17. package/studio/client/_app/immutable/chunks/BHu0iPy_.js.br +0 -0
  18. package/studio/client/_app/immutable/chunks/BHu0iPy_.js.gz +0 -0
  19. package/studio/client/_app/immutable/chunks/BVqaYHsk.js +1 -0
  20. package/studio/client/_app/immutable/chunks/BVqaYHsk.js.br +0 -0
  21. package/studio/client/_app/immutable/chunks/BVqaYHsk.js.gz +0 -0
  22. package/studio/client/_app/immutable/chunks/BcZVIP5f.js +1 -0
  23. package/studio/client/_app/immutable/chunks/BcZVIP5f.js.br +0 -0
  24. package/studio/client/_app/immutable/chunks/BcZVIP5f.js.gz +0 -0
  25. package/studio/client/_app/immutable/chunks/BcqGu5mG.js +1 -0
  26. package/studio/client/_app/immutable/chunks/BcqGu5mG.js.br +0 -0
  27. package/studio/client/_app/immutable/chunks/BcqGu5mG.js.gz +0 -0
  28. package/studio/client/_app/immutable/chunks/BfikHP7B.js +512 -0
  29. package/studio/client/_app/immutable/chunks/BfikHP7B.js.br +0 -0
  30. package/studio/client/_app/immutable/chunks/BfikHP7B.js.gz +0 -0
  31. package/studio/client/_app/immutable/chunks/BpSxDpO2.js +1 -0
  32. package/studio/client/_app/immutable/chunks/BpSxDpO2.js.br +0 -0
  33. package/studio/client/_app/immutable/chunks/BpSxDpO2.js.gz +0 -0
  34. package/studio/client/_app/immutable/chunks/BpuHE4_g.js +1 -0
  35. package/studio/client/_app/immutable/chunks/BpuHE4_g.js.br +0 -0
  36. package/studio/client/_app/immutable/chunks/BpuHE4_g.js.gz +0 -0
  37. package/studio/client/_app/immutable/chunks/Bs1PixFT.js +1 -0
  38. package/studio/client/_app/immutable/chunks/Bs1PixFT.js.br +0 -0
  39. package/studio/client/_app/immutable/chunks/Bs1PixFT.js.gz +0 -0
  40. package/studio/client/_app/immutable/chunks/Bu_5E1Sl.js +1 -0
  41. package/studio/client/_app/immutable/chunks/Bu_5E1Sl.js.br +0 -0
  42. package/studio/client/_app/immutable/chunks/Bu_5E1Sl.js.gz +0 -0
  43. package/studio/client/_app/immutable/chunks/C2XXotQj.js +1 -0
  44. package/studio/client/_app/immutable/chunks/C2XXotQj.js.br +0 -0
  45. package/studio/client/_app/immutable/chunks/C2XXotQj.js.gz +0 -0
  46. package/studio/client/_app/immutable/chunks/CAACQLfs.js +1 -0
  47. package/studio/client/_app/immutable/chunks/CAACQLfs.js.br +0 -0
  48. package/studio/client/_app/immutable/chunks/CAACQLfs.js.gz +0 -0
  49. package/studio/client/_app/immutable/chunks/CClcTVCL.js +1 -0
  50. package/studio/client/_app/immutable/chunks/CClcTVCL.js.br +2 -0
  51. package/studio/client/_app/immutable/chunks/CClcTVCL.js.gz +0 -0
  52. package/studio/client/_app/immutable/chunks/CDjRusee.js +1 -0
  53. package/studio/client/_app/immutable/chunks/CDjRusee.js.br +0 -0
  54. package/studio/client/_app/immutable/chunks/CDjRusee.js.gz +0 -0
  55. package/studio/client/_app/immutable/chunks/CU5enDwt.js +1 -0
  56. package/studio/client/_app/immutable/chunks/CU5enDwt.js.br +0 -0
  57. package/studio/client/_app/immutable/chunks/CU5enDwt.js.gz +0 -0
  58. package/studio/client/_app/immutable/chunks/CaaG7K_x.js +1 -0
  59. package/studio/client/_app/immutable/chunks/CaaG7K_x.js.br +0 -0
  60. package/studio/client/_app/immutable/chunks/CaaG7K_x.js.gz +0 -0
  61. package/studio/client/_app/immutable/chunks/Cd2UbfQ6.js +2 -0
  62. package/studio/client/_app/immutable/chunks/Cd2UbfQ6.js.br +0 -0
  63. package/studio/client/_app/immutable/chunks/Cd2UbfQ6.js.gz +0 -0
  64. package/studio/client/_app/immutable/chunks/Cf4-5HnP.js +1 -0
  65. package/studio/client/_app/immutable/chunks/Cf4-5HnP.js.br +0 -0
  66. package/studio/client/_app/immutable/chunks/Cf4-5HnP.js.gz +0 -0
  67. package/studio/client/_app/immutable/chunks/CqE47GI1.js +1 -0
  68. package/studio/client/_app/immutable/chunks/CqE47GI1.js.br +0 -0
  69. package/studio/client/_app/immutable/chunks/CqE47GI1.js.gz +0 -0
  70. package/studio/client/_app/immutable/chunks/CqaLkm1l.js +4 -0
  71. package/studio/client/_app/immutable/chunks/CqaLkm1l.js.br +0 -0
  72. package/studio/client/_app/immutable/chunks/CqaLkm1l.js.gz +0 -0
  73. package/studio/client/_app/immutable/chunks/CrnqEuwa.js +1 -0
  74. package/studio/client/_app/immutable/chunks/CrnqEuwa.js.br +0 -0
  75. package/studio/client/_app/immutable/chunks/CrnqEuwa.js.gz +0 -0
  76. package/studio/client/_app/immutable/chunks/Cv2_oVuk.js +1 -0
  77. package/studio/client/_app/immutable/chunks/Cv2_oVuk.js.br +0 -0
  78. package/studio/client/_app/immutable/chunks/Cv2_oVuk.js.gz +0 -0
  79. package/studio/client/_app/immutable/chunks/D0nqj3Uj.js +1 -0
  80. package/studio/client/_app/immutable/chunks/D0nqj3Uj.js.br +0 -0
  81. package/studio/client/_app/immutable/chunks/D0nqj3Uj.js.gz +0 -0
  82. package/studio/client/_app/immutable/chunks/D260PcBB.js +1 -0
  83. package/studio/client/_app/immutable/chunks/D260PcBB.js.br +0 -0
  84. package/studio/client/_app/immutable/chunks/D260PcBB.js.gz +0 -0
  85. package/studio/client/_app/immutable/chunks/DB8_8dee.js +2 -0
  86. package/studio/client/_app/immutable/chunks/DB8_8dee.js.br +0 -0
  87. package/studio/client/_app/immutable/chunks/DB8_8dee.js.gz +0 -0
  88. package/studio/client/_app/immutable/chunks/DBZQgiHq.js +4 -0
  89. package/studio/client/_app/immutable/chunks/DBZQgiHq.js.br +0 -0
  90. package/studio/client/_app/immutable/chunks/DBZQgiHq.js.gz +0 -0
  91. package/studio/client/_app/immutable/chunks/DMxd0pKL.js +96 -0
  92. package/studio/client/_app/immutable/chunks/DMxd0pKL.js.br +0 -0
  93. package/studio/client/_app/immutable/chunks/DMxd0pKL.js.gz +0 -0
  94. package/studio/client/_app/immutable/chunks/DXX6oqEY.js +1 -0
  95. package/studio/client/_app/immutable/chunks/DXX6oqEY.js.br +0 -0
  96. package/studio/client/_app/immutable/chunks/DXX6oqEY.js.gz +0 -0
  97. package/studio/client/_app/immutable/chunks/DYsdFO9i.js +1 -0
  98. package/studio/client/_app/immutable/chunks/DYsdFO9i.js.br +0 -0
  99. package/studio/client/_app/immutable/chunks/DYsdFO9i.js.gz +0 -0
  100. package/studio/client/_app/immutable/chunks/DgTYfJMu.js +5 -0
  101. package/studio/client/_app/immutable/chunks/DgTYfJMu.js.br +0 -0
  102. package/studio/client/_app/immutable/chunks/DgTYfJMu.js.gz +0 -0
  103. package/studio/client/_app/immutable/chunks/DjvvdYFY.js +1 -0
  104. package/studio/client/_app/immutable/chunks/DjvvdYFY.js.br +0 -0
  105. package/studio/client/_app/immutable/chunks/DjvvdYFY.js.gz +0 -0
  106. package/studio/client/_app/immutable/chunks/Dn_cJtKS.js +1 -0
  107. package/studio/client/_app/immutable/chunks/Dn_cJtKS.js.br +0 -0
  108. package/studio/client/_app/immutable/chunks/Dn_cJtKS.js.gz +0 -0
  109. package/studio/client/_app/immutable/chunks/Dx_nuQP5.js +1 -0
  110. package/studio/client/_app/immutable/chunks/Dx_nuQP5.js.br +0 -0
  111. package/studio/client/_app/immutable/chunks/Dx_nuQP5.js.gz +0 -0
  112. package/studio/client/_app/immutable/chunks/G4iiuHEo.js +1 -0
  113. package/studio/client/_app/immutable/chunks/G4iiuHEo.js.br +0 -0
  114. package/studio/client/_app/immutable/chunks/G4iiuHEo.js.gz +0 -0
  115. package/studio/client/_app/immutable/chunks/GODyLR7Y.js +1 -0
  116. package/studio/client/_app/immutable/chunks/GODyLR7Y.js.br +0 -0
  117. package/studio/client/_app/immutable/chunks/GODyLR7Y.js.gz +0 -0
  118. package/studio/client/_app/immutable/chunks/H5GgA2Hg.js +1 -0
  119. package/studio/client/_app/immutable/chunks/H5GgA2Hg.js.br +3 -0
  120. package/studio/client/_app/immutable/chunks/H5GgA2Hg.js.gz +0 -0
  121. package/studio/client/_app/immutable/chunks/KindPqpA.js +1 -0
  122. package/studio/client/_app/immutable/chunks/KindPqpA.js.br +0 -0
  123. package/studio/client/_app/immutable/chunks/KindPqpA.js.gz +0 -0
  124. package/studio/client/_app/immutable/chunks/MR-UHLyi.js +99 -0
  125. package/studio/client/_app/immutable/chunks/MR-UHLyi.js.br +0 -0
  126. package/studio/client/_app/immutable/chunks/MR-UHLyi.js.gz +0 -0
  127. package/studio/client/_app/immutable/chunks/PZ9NXo-7.js +1 -0
  128. package/studio/client/_app/immutable/chunks/PZ9NXo-7.js.br +0 -0
  129. package/studio/client/_app/immutable/chunks/PZ9NXo-7.js.gz +0 -0
  130. package/studio/client/_app/immutable/chunks/iTzoDmCj.js +1 -0
  131. package/studio/client/_app/immutable/chunks/iTzoDmCj.js.br +0 -0
  132. package/studio/client/_app/immutable/chunks/iTzoDmCj.js.gz +0 -0
  133. package/studio/client/_app/immutable/chunks/wHWYACQ6.js +16 -0
  134. package/studio/client/_app/immutable/chunks/wHWYACQ6.js.br +0 -0
  135. package/studio/client/_app/immutable/chunks/wHWYACQ6.js.gz +0 -0
  136. package/studio/client/_app/immutable/entry/app.D0e6CgLl.js +2 -0
  137. package/studio/client/_app/immutable/entry/app.D0e6CgLl.js.br +0 -0
  138. package/studio/client/_app/immutable/entry/app.D0e6CgLl.js.gz +0 -0
  139. package/studio/client/_app/immutable/entry/start.CXzKoAgP.js +1 -0
  140. package/studio/client/_app/immutable/entry/start.CXzKoAgP.js.br +0 -0
  141. package/studio/client/_app/immutable/entry/start.CXzKoAgP.js.gz +0 -0
  142. package/studio/client/_app/immutable/nodes/0.BfZbVR14.js +2 -0
  143. package/studio/client/_app/immutable/nodes/0.BfZbVR14.js.br +0 -0
  144. package/studio/client/_app/immutable/nodes/0.BfZbVR14.js.gz +0 -0
  145. package/studio/client/_app/immutable/nodes/1.BGxVZc_Z.js +1 -0
  146. package/studio/client/_app/immutable/nodes/1.BGxVZc_Z.js.br +0 -0
  147. package/studio/client/_app/immutable/nodes/1.BGxVZc_Z.js.gz +0 -0
  148. package/studio/client/_app/immutable/nodes/10.BmsU7Niv.js +1 -0
  149. package/studio/client/_app/immutable/nodes/10.BmsU7Niv.js.br +0 -0
  150. package/studio/client/_app/immutable/nodes/10.BmsU7Niv.js.gz +0 -0
  151. package/studio/client/_app/immutable/nodes/11.Bl10BIeh.js +1 -0
  152. package/studio/client/_app/immutable/nodes/11.Bl10BIeh.js.br +0 -0
  153. package/studio/client/_app/immutable/nodes/11.Bl10BIeh.js.gz +0 -0
  154. package/studio/client/_app/immutable/nodes/12.Di52Em2U.js +2 -0
  155. package/studio/client/_app/immutable/nodes/12.Di52Em2U.js.br +0 -0
  156. package/studio/client/_app/immutable/nodes/12.Di52Em2U.js.gz +0 -0
  157. package/studio/client/_app/immutable/nodes/13.D1KxkAvV.js +1 -0
  158. package/studio/client/_app/immutable/nodes/13.D1KxkAvV.js.br +0 -0
  159. package/studio/client/_app/immutable/nodes/13.D1KxkAvV.js.gz +0 -0
  160. package/studio/client/_app/immutable/nodes/14.Ba-ayQpO.js +1 -0
  161. package/studio/client/_app/immutable/nodes/14.Ba-ayQpO.js.br +0 -0
  162. package/studio/client/_app/immutable/nodes/14.Ba-ayQpO.js.gz +0 -0
  163. package/studio/client/_app/immutable/nodes/15.Bjs1ENL4.js +1 -0
  164. package/studio/client/_app/immutable/nodes/15.Bjs1ENL4.js.br +0 -0
  165. package/studio/client/_app/immutable/nodes/15.Bjs1ENL4.js.gz +0 -0
  166. package/studio/client/_app/immutable/nodes/16.Ca8aIyjV.js +8 -0
  167. package/studio/client/_app/immutable/nodes/16.Ca8aIyjV.js.br +0 -0
  168. package/studio/client/_app/immutable/nodes/16.Ca8aIyjV.js.gz +0 -0
  169. package/studio/client/_app/immutable/nodes/17.DR-c7BuD.js +1 -0
  170. package/studio/client/_app/immutable/nodes/17.DR-c7BuD.js.br +0 -0
  171. package/studio/client/_app/immutable/nodes/17.DR-c7BuD.js.gz +0 -0
  172. package/studio/client/_app/immutable/nodes/18.D3yl0Qok.js +1 -0
  173. package/studio/client/_app/immutable/nodes/18.D3yl0Qok.js.br +0 -0
  174. package/studio/client/_app/immutable/nodes/18.D3yl0Qok.js.gz +0 -0
  175. package/studio/client/_app/immutable/nodes/19.r0zsNF0J.js +1 -0
  176. package/studio/client/_app/immutable/nodes/19.r0zsNF0J.js.br +0 -0
  177. package/studio/client/_app/immutable/nodes/19.r0zsNF0J.js.gz +0 -0
  178. package/studio/client/_app/immutable/nodes/20.wKchvAGW.js +45 -0
  179. package/studio/client/_app/immutable/nodes/20.wKchvAGW.js.br +0 -0
  180. package/studio/client/_app/immutable/nodes/20.wKchvAGW.js.gz +0 -0
  181. package/studio/client/_app/immutable/nodes/21.CX28-f1P.js +16 -0
  182. package/studio/client/_app/immutable/nodes/21.CX28-f1P.js.br +0 -0
  183. package/studio/client/_app/immutable/nodes/21.CX28-f1P.js.gz +0 -0
  184. package/studio/client/_app/immutable/nodes/3.D1ljfi_V.js +1 -0
  185. package/studio/client/_app/immutable/nodes/3.D1ljfi_V.js.br +0 -0
  186. package/studio/client/_app/immutable/nodes/3.D1ljfi_V.js.gz +0 -0
  187. package/studio/client/_app/immutable/nodes/38.its7uZHe.js +1 -0
  188. package/studio/client/_app/immutable/nodes/38.its7uZHe.js.br +0 -0
  189. package/studio/client/_app/immutable/nodes/38.its7uZHe.js.gz +0 -0
  190. package/studio/client/_app/immutable/nodes/4.C-XTv_8D.js +1 -0
  191. package/studio/client/_app/immutable/nodes/4.C-XTv_8D.js.br +0 -0
  192. package/studio/client/_app/immutable/nodes/4.C-XTv_8D.js.gz +0 -0
  193. package/studio/client/_app/immutable/nodes/40.B0WM2OHu.js +17 -0
  194. package/studio/client/_app/immutable/nodes/40.B0WM2OHu.js.br +0 -0
  195. package/studio/client/_app/immutable/nodes/40.B0WM2OHu.js.gz +0 -0
  196. package/studio/client/_app/immutable/nodes/41.BZzYfCVE.js +1 -0
  197. package/studio/client/_app/immutable/nodes/41.BZzYfCVE.js.br +0 -0
  198. package/studio/client/_app/immutable/nodes/41.BZzYfCVE.js.gz +0 -0
  199. package/studio/client/_app/immutable/nodes/42.BP7aBc8V.js +1 -0
  200. package/studio/client/_app/immutable/nodes/42.BP7aBc8V.js.br +0 -0
  201. package/studio/client/_app/immutable/nodes/42.BP7aBc8V.js.gz +0 -0
  202. package/studio/client/_app/immutable/nodes/43.DYWNhvqm.js +1 -0
  203. package/studio/client/_app/immutable/nodes/43.DYWNhvqm.js.br +0 -0
  204. package/studio/client/_app/immutable/nodes/43.DYWNhvqm.js.gz +0 -0
  205. package/studio/client/_app/immutable/nodes/44.CsVF9aXe.js +1 -0
  206. package/studio/client/_app/immutable/nodes/44.CsVF9aXe.js.br +0 -0
  207. package/studio/client/_app/immutable/nodes/44.CsVF9aXe.js.gz +0 -0
  208. package/studio/client/_app/immutable/nodes/45.CeMReWED.js +2 -0
  209. package/studio/client/_app/immutable/nodes/45.CeMReWED.js.br +0 -0
  210. package/studio/client/_app/immutable/nodes/45.CeMReWED.js.gz +0 -0
  211. package/studio/client/_app/immutable/nodes/46.tPqAAZZF.js +1 -0
  212. package/studio/client/_app/immutable/nodes/46.tPqAAZZF.js.br +0 -0
  213. package/studio/client/_app/immutable/nodes/46.tPqAAZZF.js.gz +0 -0
  214. package/studio/client/_app/immutable/nodes/47.1pFnCvbM.js +1 -0
  215. package/studio/client/_app/immutable/nodes/47.1pFnCvbM.js.br +0 -0
  216. package/studio/client/_app/immutable/nodes/47.1pFnCvbM.js.gz +0 -0
  217. package/studio/client/_app/immutable/nodes/48.Cy1KgYAH.js +1 -0
  218. package/studio/client/_app/immutable/nodes/48.Cy1KgYAH.js.br +0 -0
  219. package/studio/client/_app/immutable/nodes/48.Cy1KgYAH.js.gz +0 -0
  220. package/studio/client/_app/immutable/nodes/49.Bh6bDdsT.js +7 -0
  221. package/studio/client/_app/immutable/nodes/49.Bh6bDdsT.js.br +0 -0
  222. package/studio/client/_app/immutable/nodes/49.Bh6bDdsT.js.gz +0 -0
  223. package/studio/client/_app/immutable/nodes/5.C-XTv_8D.js +1 -0
  224. package/studio/client/_app/immutable/nodes/5.C-XTv_8D.js.br +0 -0
  225. package/studio/client/_app/immutable/nodes/5.C-XTv_8D.js.gz +0 -0
  226. package/studio/client/_app/immutable/nodes/7.CS9X1kOu.js +1 -0
  227. package/studio/client/_app/immutable/nodes/7.CS9X1kOu.js.br +0 -0
  228. package/studio/client/_app/immutable/nodes/7.CS9X1kOu.js.gz +0 -0
  229. package/studio/client/_app/immutable/nodes/8.Cux2oyT5.js +1 -0
  230. package/studio/client/_app/immutable/nodes/8.Cux2oyT5.js.br +0 -0
  231. package/studio/client/_app/immutable/nodes/8.Cux2oyT5.js.gz +0 -0
  232. package/studio/client/_app/immutable/nodes/9.Dl65IEFD.js +1 -0
  233. package/studio/client/_app/immutable/nodes/9.Dl65IEFD.js.br +0 -0
  234. package/studio/client/_app/immutable/nodes/9.Dl65IEFD.js.gz +0 -0
  235. package/studio/client/_app/version.json +1 -1
  236. package/studio/client/_app/version.json.br +0 -0
  237. package/studio/client/_app/version.json.gz +0 -0
  238. package/studio/prerendered/docs/api/errors.html +36 -36
  239. package/studio/prerendered/docs/api/errors.html.br +0 -0
  240. package/studio/prerendered/docs/api/errors.html.gz +0 -0
  241. package/studio/prerendered/docs/api/projects.html +36 -36
  242. package/studio/prerendered/docs/api/projects.html.br +0 -0
  243. package/studio/prerendered/docs/api/projects.html.gz +0 -0
  244. package/studio/prerendered/docs/api/renders.html +36 -36
  245. package/studio/prerendered/docs/api/renders.html.br +0 -0
  246. package/studio/prerendered/docs/api/renders.html.gz +0 -0
  247. package/studio/prerendered/docs/api/templates.html +36 -36
  248. package/studio/prerendered/docs/api/templates.html.br +0 -0
  249. package/studio/prerendered/docs/api/templates.html.gz +0 -0
  250. package/studio/prerendered/docs/api/webhooks.html +36 -36
  251. package/studio/prerendered/docs/api/webhooks.html.br +0 -0
  252. package/studio/prerendered/docs/api/webhooks.html.gz +0 -0
  253. package/studio/prerendered/docs/api.html +36 -36
  254. package/studio/prerendered/docs/api.html.br +0 -0
  255. package/studio/prerendered/docs/api.html.gz +0 -0
  256. package/studio/prerendered/docs/mcp/integrations/autogen.html +36 -36
  257. package/studio/prerendered/docs/mcp/integrations/autogen.html.br +0 -0
  258. package/studio/prerendered/docs/mcp/integrations/autogen.html.gz +0 -0
  259. package/studio/prerendered/docs/mcp/integrations/crewai.html +36 -36
  260. package/studio/prerendered/docs/mcp/integrations/crewai.html.br +0 -0
  261. package/studio/prerendered/docs/mcp/integrations/crewai.html.gz +0 -0
  262. package/studio/prerendered/docs/mcp/integrations/dify.html +36 -36
  263. package/studio/prerendered/docs/mcp/integrations/dify.html.br +0 -0
  264. package/studio/prerendered/docs/mcp/integrations/dify.html.gz +0 -0
  265. package/studio/prerendered/docs/mcp/integrations/flowise.html +36 -36
  266. package/studio/prerendered/docs/mcp/integrations/flowise.html.br +0 -0
  267. package/studio/prerendered/docs/mcp/integrations/flowise.html.gz +0 -0
  268. package/studio/prerendered/docs/mcp/integrations/langchain.html +36 -36
  269. package/studio/prerendered/docs/mcp/integrations/langchain.html.br +0 -0
  270. package/studio/prerendered/docs/mcp/integrations/langchain.html.gz +0 -0
  271. package/studio/prerendered/docs/mcp/integrations/llamaindex.html +36 -36
  272. package/studio/prerendered/docs/mcp/integrations/llamaindex.html.br +0 -0
  273. package/studio/prerendered/docs/mcp/integrations/llamaindex.html.gz +0 -0
  274. package/studio/prerendered/docs/mcp/integrations/make.html +36 -36
  275. package/studio/prerendered/docs/mcp/integrations/make.html.br +0 -0
  276. package/studio/prerendered/docs/mcp/integrations/make.html.gz +0 -0
  277. package/studio/prerendered/docs/mcp/integrations/n8n.html +36 -36
  278. package/studio/prerendered/docs/mcp/integrations/n8n.html.br +0 -0
  279. package/studio/prerendered/docs/mcp/integrations/n8n.html.gz +0 -0
  280. package/studio/prerendered/docs/mcp/integrations.html +36 -36
  281. package/studio/prerendered/docs/mcp/integrations.html.br +0 -0
  282. package/studio/prerendered/docs/mcp/integrations.html.gz +0 -0
  283. package/studio/prerendered/docs/mcp/plans.html +37 -37
  284. package/studio/prerendered/docs/mcp/plans.html.br +0 -0
  285. package/studio/prerendered/docs/mcp/plans.html.gz +0 -0
  286. package/studio/prerendered/docs/mcp/reference.html +36 -36
  287. package/studio/prerendered/docs/mcp/reference.html.br +0 -0
  288. package/studio/prerendered/docs/mcp/reference.html.gz +0 -0
  289. package/studio/prerendered/docs/mcp/setup.html +42 -40
  290. package/studio/prerendered/docs/mcp/setup.html.br +0 -0
  291. package/studio/prerendered/docs/mcp/setup.html.gz +0 -0
  292. package/studio/prerendered/docs/mcp.html +36 -36
  293. package/studio/prerendered/docs/mcp.html.br +0 -0
  294. package/studio/prerendered/docs/mcp.html.gz +0 -0
  295. package/studio/prerendered/docs.html +35 -35
  296. package/studio/prerendered/docs.html.br +0 -0
  297. package/studio/prerendered/docs.html.gz +0 -0
  298. package/studio/prerendered/dub/arabic.html +34 -34
  299. package/studio/prerendered/dub/arabic.html.br +0 -0
  300. package/studio/prerendered/dub/arabic.html.gz +0 -0
  301. package/studio/prerendered/dub/chinese-simplified.html +34 -34
  302. package/studio/prerendered/dub/chinese-simplified.html.br +0 -0
  303. package/studio/prerendered/dub/chinese-simplified.html.gz +0 -0
  304. package/studio/prerendered/dub/dutch.html +34 -34
  305. package/studio/prerendered/dub/dutch.html.br +0 -0
  306. package/studio/prerendered/dub/dutch.html.gz +0 -0
  307. package/studio/prerendered/dub/french.html +34 -34
  308. package/studio/prerendered/dub/french.html.br +0 -0
  309. package/studio/prerendered/dub/french.html.gz +0 -0
  310. package/studio/prerendered/dub/german.html +34 -34
  311. package/studio/prerendered/dub/german.html.br +0 -0
  312. package/studio/prerendered/dub/german.html.gz +0 -0
  313. package/studio/prerendered/dub/hindi.html +34 -34
  314. package/studio/prerendered/dub/hindi.html.br +0 -0
  315. package/studio/prerendered/dub/hindi.html.gz +0 -0
  316. package/studio/prerendered/dub/italian.html +34 -34
  317. package/studio/prerendered/dub/italian.html.br +0 -0
  318. package/studio/prerendered/dub/italian.html.gz +0 -0
  319. package/studio/prerendered/dub/japanese.html +34 -34
  320. package/studio/prerendered/dub/japanese.html.br +0 -0
  321. package/studio/prerendered/dub/japanese.html.gz +0 -0
  322. package/studio/prerendered/dub/korean.html +34 -34
  323. package/studio/prerendered/dub/korean.html.br +0 -0
  324. package/studio/prerendered/dub/korean.html.gz +0 -0
  325. package/studio/prerendered/dub/polish.html +34 -34
  326. package/studio/prerendered/dub/polish.html.br +0 -0
  327. package/studio/prerendered/dub/polish.html.gz +0 -0
  328. package/studio/prerendered/dub/portuguese.html +34 -34
  329. package/studio/prerendered/dub/portuguese.html.br +0 -0
  330. package/studio/prerendered/dub/portuguese.html.gz +0 -0
  331. package/studio/prerendered/dub/spanish.html +34 -34
  332. package/studio/prerendered/dub/spanish.html.br +0 -0
  333. package/studio/prerendered/dub/spanish.html.gz +0 -0
  334. package/studio/prerendered/sitemap.xml +90 -90
  335. package/studio/prerendered/sitemap.xml.br +0 -0
  336. package/studio/prerendered/sitemap.xml.gz +0 -0
  337. package/studio/prerendered/tools/add-captions/instagram.html +34 -34
  338. package/studio/prerendered/tools/add-captions/instagram.html.br +0 -0
  339. package/studio/prerendered/tools/add-captions/instagram.html.gz +0 -0
  340. package/studio/prerendered/tools/add-captions/linkedin.html +34 -34
  341. package/studio/prerendered/tools/add-captions/linkedin.html.br +0 -0
  342. package/studio/prerendered/tools/add-captions/linkedin.html.gz +0 -0
  343. package/studio/prerendered/tools/add-captions/tiktok.html +34 -34
  344. package/studio/prerendered/tools/add-captions/tiktok.html.br +0 -0
  345. package/studio/prerendered/tools/add-captions/tiktok.html.gz +0 -0
  346. package/studio/prerendered/tools/add-captions/twitter-x.html +34 -34
  347. package/studio/prerendered/tools/add-captions/twitter-x.html.br +0 -0
  348. package/studio/prerendered/tools/add-captions/twitter-x.html.gz +0 -0
  349. package/studio/prerendered/tools/add-captions/youtube.html +34 -34
  350. package/studio/prerendered/tools/add-captions/youtube.html.br +0 -0
  351. package/studio/prerendered/tools/add-captions/youtube.html.gz +0 -0
  352. package/studio/prerendered/tools/add-captions.html +38 -38
  353. package/studio/prerendered/tools/add-captions.html.br +0 -0
  354. package/studio/prerendered/tools/add-captions.html.gz +0 -0
  355. package/studio/prerendered/tools/auto-cut/linkedin.html +34 -34
  356. package/studio/prerendered/tools/auto-cut/linkedin.html.br +0 -0
  357. package/studio/prerendered/tools/auto-cut/linkedin.html.gz +0 -0
  358. package/studio/prerendered/tools/auto-cut/podcast.html +34 -34
  359. package/studio/prerendered/tools/auto-cut/podcast.html.br +0 -0
  360. package/studio/prerendered/tools/auto-cut/podcast.html.gz +0 -0
  361. package/studio/prerendered/tools/auto-cut/tiktok.html +34 -34
  362. package/studio/prerendered/tools/auto-cut/tiktok.html.br +0 -0
  363. package/studio/prerendered/tools/auto-cut/tiktok.html.gz +0 -0
  364. package/studio/prerendered/tools/auto-cut/youtube.html +34 -34
  365. package/studio/prerendered/tools/auto-cut/youtube.html.br +0 -0
  366. package/studio/prerendered/tools/auto-cut/youtube.html.gz +0 -0
  367. package/studio/prerendered/tools/auto-cut.html +38 -38
  368. package/studio/prerendered/tools/auto-cut.html.br +0 -0
  369. package/studio/prerendered/tools/auto-cut.html.gz +0 -0
  370. package/studio/prerendered/tools/generate-video/instagram.html +34 -34
  371. package/studio/prerendered/tools/generate-video/instagram.html.br +0 -0
  372. package/studio/prerendered/tools/generate-video/instagram.html.gz +0 -0
  373. package/studio/prerendered/tools/generate-video/tiktok.html +34 -34
  374. package/studio/prerendered/tools/generate-video/tiktok.html.br +0 -0
  375. package/studio/prerendered/tools/generate-video/tiktok.html.gz +0 -0
  376. package/studio/prerendered/tools/generate-video/twitter-x.html +34 -34
  377. package/studio/prerendered/tools/generate-video/twitter-x.html.br +0 -0
  378. package/studio/prerendered/tools/generate-video/twitter-x.html.gz +0 -0
  379. package/studio/prerendered/tools/generate-video/youtube.html +34 -34
  380. package/studio/prerendered/tools/generate-video/youtube.html.br +0 -0
  381. package/studio/prerendered/tools/generate-video/youtube.html.gz +0 -0
  382. package/studio/prerendered/tools/generate-video.html +38 -38
  383. package/studio/prerendered/tools/generate-video.html.br +0 -0
  384. package/studio/prerendered/tools/generate-video.html.gz +0 -0
  385. package/studio/prerendered/tools/laptop-3d-intro/linkedin.html +34 -34
  386. package/studio/prerendered/tools/laptop-3d-intro/linkedin.html.br +0 -0
  387. package/studio/prerendered/tools/laptop-3d-intro/linkedin.html.gz +0 -0
  388. package/studio/prerendered/tools/laptop-3d-intro/saas.html +34 -34
  389. package/studio/prerendered/tools/laptop-3d-intro/saas.html.br +0 -0
  390. package/studio/prerendered/tools/laptop-3d-intro/saas.html.gz +0 -0
  391. package/studio/prerendered/tools/laptop-3d-intro/twitter-x.html +34 -34
  392. package/studio/prerendered/tools/laptop-3d-intro/twitter-x.html.br +0 -0
  393. package/studio/prerendered/tools/laptop-3d-intro/twitter-x.html.gz +0 -0
  394. package/studio/prerendered/tools/laptop-3d-intro/youtube.html +34 -34
  395. package/studio/prerendered/tools/laptop-3d-intro/youtube.html.br +0 -0
  396. package/studio/prerendered/tools/laptop-3d-intro/youtube.html.gz +0 -0
  397. package/studio/prerendered/tools/laptop-3d-intro.html +38 -38
  398. package/studio/prerendered/tools/laptop-3d-intro.html.br +0 -0
  399. package/studio/prerendered/tools/laptop-3d-intro.html.gz +0 -0
  400. package/studio/prerendered/tools/screen-webcam-demo/linkedin.html +34 -34
  401. package/studio/prerendered/tools/screen-webcam-demo/linkedin.html.br +0 -0
  402. package/studio/prerendered/tools/screen-webcam-demo/linkedin.html.gz +0 -0
  403. package/studio/prerendered/tools/screen-webcam-demo/saas.html +34 -34
  404. package/studio/prerendered/tools/screen-webcam-demo/saas.html.br +0 -0
  405. package/studio/prerendered/tools/screen-webcam-demo/saas.html.gz +0 -0
  406. package/studio/prerendered/tools/screen-webcam-demo/twitter-x.html +34 -34
  407. package/studio/prerendered/tools/screen-webcam-demo/twitter-x.html.br +0 -0
  408. package/studio/prerendered/tools/screen-webcam-demo/twitter-x.html.gz +0 -0
  409. package/studio/prerendered/tools/screen-webcam-demo/youtube.html +34 -34
  410. package/studio/prerendered/tools/screen-webcam-demo/youtube.html.br +0 -0
  411. package/studio/prerendered/tools/screen-webcam-demo/youtube.html.gz +0 -0
  412. package/studio/prerendered/tools/screen-webcam-demo.html +38 -38
  413. package/studio/prerendered/tools/screen-webcam-demo.html.br +0 -0
  414. package/studio/prerendered/tools/screen-webcam-demo.html.gz +0 -0
  415. package/studio/prerendered/tools/screenshot-to-social/facebook.html +34 -34
  416. package/studio/prerendered/tools/screenshot-to-social/facebook.html.br +0 -0
  417. package/studio/prerendered/tools/screenshot-to-social/facebook.html.gz +0 -0
  418. package/studio/prerendered/tools/screenshot-to-social/instagram.html +34 -34
  419. package/studio/prerendered/tools/screenshot-to-social/instagram.html.br +0 -0
  420. package/studio/prerendered/tools/screenshot-to-social/instagram.html.gz +0 -0
  421. package/studio/prerendered/tools/screenshot-to-social/linkedin.html +34 -34
  422. package/studio/prerendered/tools/screenshot-to-social/linkedin.html.br +0 -0
  423. package/studio/prerendered/tools/screenshot-to-social/linkedin.html.gz +0 -0
  424. package/studio/prerendered/tools/screenshot-to-social/twitter-x.html +34 -34
  425. package/studio/prerendered/tools/screenshot-to-social/twitter-x.html.br +0 -0
  426. package/studio/prerendered/tools/screenshot-to-social/twitter-x.html.gz +0 -0
  427. package/studio/prerendered/tools/screenshot-to-social.html +38 -38
  428. package/studio/prerendered/tools/screenshot-to-social.html.br +0 -0
  429. package/studio/prerendered/tools/screenshot-to-social.html.gz +0 -0
  430. package/studio/prerendered/tools/translate-video/instagram.html +34 -34
  431. package/studio/prerendered/tools/translate-video/instagram.html.br +0 -0
  432. package/studio/prerendered/tools/translate-video/instagram.html.gz +0 -0
  433. package/studio/prerendered/tools/translate-video/linkedin.html +34 -34
  434. package/studio/prerendered/tools/translate-video/linkedin.html.br +0 -0
  435. package/studio/prerendered/tools/translate-video/linkedin.html.gz +0 -0
  436. package/studio/prerendered/tools/translate-video/tiktok.html +34 -34
  437. package/studio/prerendered/tools/translate-video/tiktok.html.br +0 -0
  438. package/studio/prerendered/tools/translate-video/tiktok.html.gz +0 -0
  439. package/studio/prerendered/tools/translate-video/youtube.html +34 -34
  440. package/studio/prerendered/tools/translate-video/youtube.html.br +0 -0
  441. package/studio/prerendered/tools/translate-video/youtube.html.gz +0 -0
  442. package/studio/prerendered/tools/translate-video.html +38 -38
  443. package/studio/prerendered/tools/translate-video.html.br +0 -0
  444. package/studio/prerendered/tools/translate-video.html.gz +0 -0
  445. package/studio/prerendered/tools/video-beautifier.html +38 -38
  446. package/studio/prerendered/tools/video-beautifier.html.br +0 -0
  447. package/studio/prerendered/tools/video-beautifier.html.gz +0 -0
  448. package/studio/prerendered/tools/video-to-browser/linkedin.html +34 -34
  449. package/studio/prerendered/tools/video-to-browser/linkedin.html.br +0 -0
  450. package/studio/prerendered/tools/video-to-browser/linkedin.html.gz +0 -0
  451. package/studio/prerendered/tools/video-to-browser/saas.html +34 -34
  452. package/studio/prerendered/tools/video-to-browser/saas.html.br +0 -0
  453. package/studio/prerendered/tools/video-to-browser/saas.html.gz +0 -0
  454. package/studio/prerendered/tools/video-to-browser/twitter-x.html +34 -34
  455. package/studio/prerendered/tools/video-to-browser/twitter-x.html.br +0 -0
  456. package/studio/prerendered/tools/video-to-browser/twitter-x.html.gz +0 -0
  457. package/studio/prerendered/tools/video-to-browser/youtube.html +34 -34
  458. package/studio/prerendered/tools/video-to-browser/youtube.html.br +0 -0
  459. package/studio/prerendered/tools/video-to-browser/youtube.html.gz +0 -0
  460. package/studio/prerendered/tools/video-to-browser.html +38 -38
  461. package/studio/prerendered/tools/video-to-browser.html.br +0 -0
  462. package/studio/prerendered/tools/video-to-browser.html.gz +0 -0
  463. package/studio/prerendered/tools/video-to-phone.html +38 -38
  464. package/studio/prerendered/tools/video-to-phone.html.br +0 -0
  465. package/studio/prerendered/tools/video-to-phone.html.gz +0 -0
  466. package/studio/prerendered/vs/canva.html +34 -34
  467. package/studio/prerendered/vs/canva.html.br +0 -0
  468. package/studio/prerendered/vs/canva.html.gz +0 -0
  469. package/studio/prerendered/vs/captions-ai.html +34 -34
  470. package/studio/prerendered/vs/captions-ai.html.br +0 -0
  471. package/studio/prerendered/vs/captions-ai.html.gz +0 -0
  472. package/studio/prerendered/vs/clipchamp.html +34 -34
  473. package/studio/prerendered/vs/clipchamp.html.br +0 -0
  474. package/studio/prerendered/vs/clipchamp.html.gz +0 -0
  475. package/studio/prerendered/vs/descript.html +34 -34
  476. package/studio/prerendered/vs/descript.html.br +0 -0
  477. package/studio/prerendered/vs/descript.html.gz +0 -0
  478. package/studio/prerendered/vs/kapwing.html +34 -34
  479. package/studio/prerendered/vs/kapwing.html.br +0 -0
  480. package/studio/prerendered/vs/kapwing.html.gz +0 -0
  481. package/studio/prerendered/vs/runway.html +34 -34
  482. package/studio/prerendered/vs/runway.html.br +0 -0
  483. package/studio/prerendered/vs/runway.html.gz +0 -0
  484. package/studio/prerendered/vs/submagic.html +34 -34
  485. package/studio/prerendered/vs/submagic.html.br +0 -0
  486. package/studio/prerendered/vs/submagic.html.gz +0 -0
  487. package/studio/prerendered/vs/veed.html +34 -34
  488. package/studio/prerendered/vs/veed.html.br +0 -0
  489. package/studio/prerendered/vs/veed.html.gz +0 -0
  490. package/studio/server/chunks/0-CwPSUJ3w.js +32 -0
  491. package/studio/server/chunks/0-CwPSUJ3w.js.map +1 -0
  492. package/studio/server/chunks/1-CbeNzLl-.js +9 -0
  493. package/studio/server/chunks/1-CbeNzLl-.js.map +1 -0
  494. package/studio/server/chunks/11-C0QAn-bF.js +9 -0
  495. package/studio/server/chunks/11-C0QAn-bF.js.map +1 -0
  496. package/studio/server/chunks/12-DCnPHABd.js +9 -0
  497. package/studio/server/chunks/12-DCnPHABd.js.map +1 -0
  498. package/studio/server/chunks/13-Cyy-P3vn.js +59 -0
  499. package/studio/server/chunks/13-Cyy-P3vn.js.map +1 -0
  500. package/studio/server/chunks/14-Dbdob-lm.js +60 -0
  501. package/studio/server/chunks/14-Dbdob-lm.js.map +1 -0
  502. package/studio/server/chunks/15-DyZbzGI-.js +9 -0
  503. package/studio/server/chunks/15-DyZbzGI-.js.map +1 -0
  504. package/studio/server/chunks/16-Qb7izz2W.js +72 -0
  505. package/studio/server/chunks/16-Qb7izz2W.js.map +1 -0
  506. package/studio/server/chunks/17-B5pMxn3Z.js +9 -0
  507. package/studio/server/chunks/17-B5pMxn3Z.js.map +1 -0
  508. package/studio/server/chunks/18-Dui1aDnz.js +9 -0
  509. package/studio/server/chunks/18-Dui1aDnz.js.map +1 -0
  510. package/studio/server/chunks/19-DgrfAbAy.js +9 -0
  511. package/studio/server/chunks/19-DgrfAbAy.js.map +1 -0
  512. package/studio/server/chunks/20-pRv7XuMf.js +139 -0
  513. package/studio/server/chunks/20-pRv7XuMf.js.map +1 -0
  514. package/studio/server/chunks/3-9IZCenAI.js +9 -0
  515. package/studio/server/chunks/3-9IZCenAI.js.map +1 -0
  516. package/studio/server/chunks/4-CsffFQv4.js +9 -0
  517. package/studio/server/chunks/4-CsffFQv4.js.map +1 -0
  518. package/studio/server/chunks/42-NP9_BFi5.js +56 -0
  519. package/studio/server/chunks/42-NP9_BFi5.js.map +1 -0
  520. package/studio/server/chunks/43-B0_JG7rx.js +9 -0
  521. package/studio/server/chunks/43-B0_JG7rx.js.map +1 -0
  522. package/studio/server/chunks/44-DRZom9oK.js +9 -0
  523. package/studio/server/chunks/44-DRZom9oK.js.map +1 -0
  524. package/studio/server/chunks/45-llvANtsn.js +115 -0
  525. package/studio/server/chunks/45-llvANtsn.js.map +1 -0
  526. package/studio/server/chunks/49-Bm394lLC.js +14 -0
  527. package/studio/server/chunks/49-Bm394lLC.js.map +1 -0
  528. package/studio/server/chunks/5-oazbOi9H.js +9 -0
  529. package/studio/server/chunks/5-oazbOi9H.js.map +1 -0
  530. package/studio/server/chunks/7-DHJzqCHK.js +215 -0
  531. package/studio/server/chunks/7-DHJzqCHK.js.map +1 -0
  532. package/studio/server/chunks/_error.svelte-BkTnhnxP.js +98 -0
  533. package/studio/server/chunks/_error.svelte-BkTnhnxP.js.map +1 -0
  534. package/studio/server/chunks/_error.svelte-CQzFToj8.js +98 -0
  535. package/studio/server/chunks/_error.svelte-CQzFToj8.js.map +1 -0
  536. package/studio/server/chunks/_layout.svelte-BY0hGh-H.js +64 -0
  537. package/studio/server/chunks/_layout.svelte-BY0hGh-H.js.map +1 -0
  538. package/studio/server/chunks/_layout.svelte-CMzss-C2.js +400 -0
  539. package/studio/server/chunks/_layout.svelte-CMzss-C2.js.map +1 -0
  540. package/studio/server/chunks/_layout.svelte-Cn4p7o4q.js +64 -0
  541. package/studio/server/chunks/_layout.svelte-Cn4p7o4q.js.map +1 -0
  542. package/studio/server/chunks/_layout.svelte-DL1DYuzO.js +1054 -0
  543. package/studio/server/chunks/_layout.svelte-DL1DYuzO.js.map +1 -0
  544. package/studio/server/chunks/_page.svelte-B8XqicVW.js +79 -0
  545. package/studio/server/chunks/_page.svelte-B8XqicVW.js.map +1 -0
  546. package/studio/server/chunks/_page.svelte-BF0kq_DA.js +418 -0
  547. package/studio/server/chunks/_page.svelte-BF0kq_DA.js.map +1 -0
  548. package/studio/server/chunks/_page.svelte-BFwMGeqy.js +111 -0
  549. package/studio/server/chunks/_page.svelte-BFwMGeqy.js.map +1 -0
  550. package/studio/server/chunks/_page.svelte-BGPhyNuC.js +192 -0
  551. package/studio/server/chunks/_page.svelte-BGPhyNuC.js.map +1 -0
  552. package/studio/server/chunks/_page.svelte-BdmhHvtc.js +113 -0
  553. package/studio/server/chunks/_page.svelte-BdmhHvtc.js.map +1 -0
  554. package/studio/server/chunks/_page.svelte-CU4XjUEe.js +11350 -0
  555. package/studio/server/chunks/_page.svelte-CU4XjUEe.js.map +1 -0
  556. package/studio/server/chunks/_page.svelte-D74PqaNq.js +256 -0
  557. package/studio/server/chunks/_page.svelte-D74PqaNq.js.map +1 -0
  558. package/studio/server/chunks/_page.svelte-DC9-8nEf.js +1021 -0
  559. package/studio/server/chunks/_page.svelte-DC9-8nEf.js.map +1 -0
  560. package/studio/server/chunks/_page.svelte-DgqoNyxe.js +1732 -0
  561. package/studio/server/chunks/_page.svelte-DgqoNyxe.js.map +1 -0
  562. package/studio/server/chunks/_page.svelte-DhLeBJD_.js +319 -0
  563. package/studio/server/chunks/_page.svelte-DhLeBJD_.js.map +1 -0
  564. package/studio/server/chunks/_page.svelte-uvKsK6Vw.js +506 -0
  565. package/studio/server/chunks/_page.svelte-uvKsK6Vw.js.map +1 -0
  566. package/studio/server/chunks/_server.ts-BHRR6T63.js +48 -0
  567. package/studio/server/chunks/_server.ts-BHRR6T63.js.map +1 -0
  568. package/studio/server/chunks/_server.ts-BHnpcEVo.js +52 -0
  569. package/studio/server/chunks/_server.ts-BHnpcEVo.js.map +1 -0
  570. package/studio/server/chunks/_server.ts-Bj0V1FXs.js +722 -0
  571. package/studio/server/chunks/_server.ts-Bj0V1FXs.js.map +1 -0
  572. package/studio/server/chunks/_server.ts-CGs8hOo6.js +760 -0
  573. package/studio/server/chunks/_server.ts-CGs8hOo6.js.map +1 -0
  574. package/studio/server/chunks/_server.ts-CXuYytLK.js +118 -0
  575. package/studio/server/chunks/_server.ts-CXuYytLK.js.map +1 -0
  576. package/studio/server/chunks/_server.ts-C_njIfbT.js +122 -0
  577. package/studio/server/chunks/_server.ts-C_njIfbT.js.map +1 -0
  578. package/studio/server/chunks/_server.ts-Dg9C9Iih.js +70 -0
  579. package/studio/server/chunks/_server.ts-Dg9C9Iih.js.map +1 -0
  580. package/studio/server/chunks/_server.ts-Dji1nGrU.js +91 -0
  581. package/studio/server/chunks/_server.ts-Dji1nGrU.js.map +1 -0
  582. package/studio/server/chunks/_server.ts-f6EVRY82.js +79 -0
  583. package/studio/server/chunks/_server.ts-f6EVRY82.js.map +1 -0
  584. package/studio/server/chunks/_server.ts-p_1efpqn.js +109 -0
  585. package/studio/server/chunks/_server.ts-p_1efpqn.js.map +1 -0
  586. package/studio/server/chunks/_server.ts-xAAnOaCl.js +303 -0
  587. package/studio/server/chunks/_server.ts-xAAnOaCl.js.map +1 -0
  588. package/studio/server/chunks/admin.remote-Dc0snX5Q.js +105 -0
  589. package/studio/server/chunks/admin.remote-Dc0snX5Q.js.map +1 -0
  590. package/studio/server/chunks/ai-access-bDlOKhrS.js +299 -0
  591. package/studio/server/chunks/ai-access-bDlOKhrS.js.map +1 -0
  592. package/studio/server/chunks/ai.remote-6DyE05J7.js +37 -0
  593. package/studio/server/chunks/ai.remote-6DyE05J7.js.map +1 -0
  594. package/studio/server/chunks/alert-dialog-description-BhZkDj31.js +578 -0
  595. package/studio/server/chunks/alert-dialog-description-BhZkDj31.js.map +1 -0
  596. package/studio/server/chunks/app-header-BZw6FnXs.js +96 -0
  597. package/studio/server/chunks/app-header-BZw6FnXs.js.map +1 -0
  598. package/studio/server/chunks/auth-CdmLkVO-.js +22472 -0
  599. package/studio/server/chunks/auth-CdmLkVO-.js.map +1 -0
  600. package/studio/server/chunks/auth.remote-DgcD7hjY.js +351 -0
  601. package/studio/server/chunks/auth.remote-DgcD7hjY.js.map +1 -0
  602. package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-CfYOKJsa.js +197 -0
  603. package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-CfYOKJsa.js.map +1 -0
  604. package/studio/server/chunks/captions.remote-B5ErNQXV.js +184 -0
  605. package/studio/server/chunks/captions.remote-B5ErNQXV.js.map +1 -0
  606. package/studio/server/chunks/client2-vVBd4CsE.js +66 -0
  607. package/studio/server/chunks/client2-vVBd4CsE.js.map +1 -0
  608. package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-D3F4ZSZP.js +160 -0
  609. package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-D3F4ZSZP.js.map +1 -0
  610. package/studio/server/chunks/desktop-bootstrap-Z0_g_8r3.js +67 -0
  611. package/studio/server/chunks/desktop-bootstrap-Z0_g_8r3.js.map +1 -0
  612. package/studio/server/chunks/dubbing.remote-tYalz3IA.js +153 -0
  613. package/studio/server/chunks/dubbing.remote-tYalz3IA.js.map +1 -0
  614. package/studio/server/chunks/editor.svelte-Bdv5LaOt.js +21026 -0
  615. package/studio/server/chunks/editor.svelte-Bdv5LaOt.js.map +1 -0
  616. package/studio/server/chunks/find-stock-image-Cwkwf5gV.js +709 -0
  617. package/studio/server/chunks/find-stock-image-Cwkwf5gV.js.map +1 -0
  618. package/studio/server/chunks/hooks.server-DNzGN0kv.js +309 -0
  619. package/studio/server/chunks/hooks.server-DNzGN0kv.js.map +1 -0
  620. package/studio/server/chunks/image-generation.remote-omBcspXi.js +140 -0
  621. package/studio/server/chunks/image-generation.remote-omBcspXi.js.map +1 -0
  622. package/studio/server/chunks/index-D-agccNM.js +4578 -0
  623. package/studio/server/chunks/index-D-agccNM.js.map +1 -0
  624. package/studio/server/chunks/index12-B6IiEYAz.js +265 -0
  625. package/studio/server/chunks/index12-B6IiEYAz.js.map +1 -0
  626. package/studio/server/chunks/index2-By5vPQD_.js +23 -0
  627. package/studio/server/chunks/index2-By5vPQD_.js.map +1 -0
  628. package/studio/server/chunks/index3-DS_3EH31.js +8 -0
  629. package/studio/server/chunks/index3-DS_3EH31.js.map +1 -0
  630. package/studio/server/chunks/index4-CgVJCMu8.js +48 -0
  631. package/studio/server/chunks/index4-CgVJCMu8.js.map +1 -0
  632. package/studio/server/chunks/layout-template-BhL4-5tM.js +1371 -0
  633. package/studio/server/chunks/layout-template-BhL4-5tM.js.map +1 -0
  634. package/studio/server/chunks/media-analysis-DXUN3NUM.js +229 -0
  635. package/studio/server/chunks/media-analysis-DXUN3NUM.js.map +1 -0
  636. package/studio/server/chunks/media-analysis.remote-BVdRHeP8.js +63 -0
  637. package/studio/server/chunks/media-analysis.remote-BVdRHeP8.js.map +1 -0
  638. package/studio/server/chunks/mutations-BlgZViQj.js +551 -0
  639. package/studio/server/chunks/mutations-BlgZViQj.js.map +1 -0
  640. package/studio/server/chunks/node-sqlite-dialect-BYaBkSm1.js +197 -0
  641. package/studio/server/chunks/node-sqlite-dialect-BYaBkSm1.js.map +1 -0
  642. package/studio/server/chunks/onboarding-email-CCv_cZ-_.js +311 -0
  643. package/studio/server/chunks/onboarding-email-CCv_cZ-_.js.map +1 -0
  644. package/studio/server/chunks/projects.remote-BevbcBv4.js +297 -0
  645. package/studio/server/chunks/projects.remote-BevbcBv4.js.map +1 -0
  646. package/studio/server/chunks/queue-init-CcgYZbeV.js +38 -0
  647. package/studio/server/chunks/queue-init-CcgYZbeV.js.map +1 -0
  648. package/studio/server/chunks/registry-DcyeMfNZ.js +18 -0
  649. package/studio/server/chunks/registry-DcyeMfNZ.js.map +1 -0
  650. package/studio/server/chunks/registry2-DJC1cBxe.js +4851 -0
  651. package/studio/server/chunks/registry2-DJC1cBxe.js.map +1 -0
  652. package/studio/server/chunks/remote-1ez0sx-BWvDnL9q.js +34 -0
  653. package/studio/server/chunks/remote-1ez0sx-BWvDnL9q.js.map +1 -0
  654. package/studio/server/chunks/remote-1mi3j6d-Cg0pK35v.js +21 -0
  655. package/studio/server/chunks/remote-1mi3j6d-Cg0pK35v.js.map +1 -0
  656. package/studio/server/chunks/remote-1web5fy-BcJGUGtw.js +35 -0
  657. package/studio/server/chunks/remote-1web5fy-BcJGUGtw.js.map +1 -0
  658. package/studio/server/chunks/remote-5mu9ty-CGtbs6nv.js +31 -0
  659. package/studio/server/chunks/remote-5mu9ty-CGtbs6nv.js.map +1 -0
  660. package/studio/server/chunks/remote-gezfls-DWj4X0qA.js +21 -0
  661. package/studio/server/chunks/remote-gezfls-DWj4X0qA.js.map +1 -0
  662. package/studio/server/chunks/remote-sy19x7-SCvG1tDD.js +29 -0
  663. package/studio/server/chunks/remote-sy19x7-SCvG1tDD.js.map +1 -0
  664. package/studio/server/chunks/remote-tisyb0-Ct_sfSGt.js +31 -0
  665. package/studio/server/chunks/remote-tisyb0-Ct_sfSGt.js.map +1 -0
  666. package/studio/server/chunks/remote-xj8myv-tYWgOBub.js +31 -0
  667. package/studio/server/chunks/remote-xj8myv-tYWgOBub.js.map +1 -0
  668. package/studio/server/chunks/remote-z7lvth-BxO_zBV5.js +23 -0
  669. package/studio/server/chunks/remote-z7lvth-BxO_zBV5.js.map +1 -0
  670. package/studio/server/chunks/remote-zjib3m-Dcyw4Y6L.js +24 -0
  671. package/studio/server/chunks/remote-zjib3m-Dcyw4Y6L.js.map +1 -0
  672. package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-BuQqzLLy.js +4752 -0
  673. package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-BuQqzLLy.js.map +1 -0
  674. package/studio/server/chunks/tooltip-provider-D6ZF3H34.js +30 -0
  675. package/studio/server/chunks/tooltip-provider-D6ZF3H34.js.map +1 -0
  676. package/studio/server/chunks/tooltip.svelte-DRe72lD-.js +658 -0
  677. package/studio/server/chunks/tooltip.svelte-DRe72lD-.js.map +1 -0
  678. package/studio/server/chunks/tts.remote-Btrg7DBL.js +194 -0
  679. package/studio/server/chunks/tts.remote-Btrg7DBL.js.map +1 -0
  680. package/studio/server/chunks/ui.svelte-FJio-gZM.js +88 -0
  681. package/studio/server/chunks/ui.svelte-FJio-gZM.js.map +1 -0
  682. package/studio/server/chunks/video-generation.remote-CBblzjAk.js +197 -0
  683. package/studio/server/chunks/video-generation.remote-CBblzjAk.js.map +1 -0
  684. package/studio/server/chunks/watermark-DJiyRHwX.js +164 -0
  685. package/studio/server/chunks/watermark-DJiyRHwX.js.map +1 -0
  686. package/studio/server/index.js +1 -1
  687. package/studio/server/manifest.js +44 -44
  688. package/studio/server/manifest.js.map +1 -1
  689. package/studio/client/_app/immutable/chunks/0jm3sjlg.js +0 -1
  690. package/studio/client/_app/immutable/chunks/0jm3sjlg.js.br +0 -2
  691. package/studio/client/_app/immutable/chunks/0jm3sjlg.js.gz +0 -0
  692. package/studio/client/_app/immutable/chunks/5L1qzVZj.js +0 -1
  693. package/studio/client/_app/immutable/chunks/5L1qzVZj.js.br +0 -0
  694. package/studio/client/_app/immutable/chunks/5L1qzVZj.js.gz +0 -0
  695. package/studio/client/_app/immutable/chunks/8kx1slbN.js +0 -1
  696. package/studio/client/_app/immutable/chunks/8kx1slbN.js.br +0 -0
  697. package/studio/client/_app/immutable/chunks/8kx1slbN.js.gz +0 -0
  698. package/studio/client/_app/immutable/chunks/8vtb60R1.js +0 -1
  699. package/studio/client/_app/immutable/chunks/8vtb60R1.js.br +0 -0
  700. package/studio/client/_app/immutable/chunks/8vtb60R1.js.gz +0 -0
  701. package/studio/client/_app/immutable/chunks/B1Kon8VR.js +0 -1
  702. package/studio/client/_app/immutable/chunks/B1Kon8VR.js.br +0 -0
  703. package/studio/client/_app/immutable/chunks/B1Kon8VR.js.gz +0 -0
  704. package/studio/client/_app/immutable/chunks/B4dMvZH-.js +0 -1
  705. package/studio/client/_app/immutable/chunks/B4dMvZH-.js.br +0 -0
  706. package/studio/client/_app/immutable/chunks/B4dMvZH-.js.gz +0 -0
  707. package/studio/client/_app/immutable/chunks/B7fQzRev.js +0 -1
  708. package/studio/client/_app/immutable/chunks/B7fQzRev.js.br +0 -0
  709. package/studio/client/_app/immutable/chunks/B7fQzRev.js.gz +0 -0
  710. package/studio/client/_app/immutable/chunks/BAYadMNA.js +0 -1
  711. package/studio/client/_app/immutable/chunks/BAYadMNA.js.br +0 -0
  712. package/studio/client/_app/immutable/chunks/BAYadMNA.js.gz +0 -0
  713. package/studio/client/_app/immutable/chunks/BMGFIROs.js +0 -1
  714. package/studio/client/_app/immutable/chunks/BMGFIROs.js.br +0 -0
  715. package/studio/client/_app/immutable/chunks/BMGFIROs.js.gz +0 -0
  716. package/studio/client/_app/immutable/chunks/BYo4Jpme.js +0 -16
  717. package/studio/client/_app/immutable/chunks/BYo4Jpme.js.br +0 -0
  718. package/studio/client/_app/immutable/chunks/BYo4Jpme.js.gz +0 -0
  719. package/studio/client/_app/immutable/chunks/BeTUgF4S.js +0 -1
  720. package/studio/client/_app/immutable/chunks/BeTUgF4S.js.br +0 -0
  721. package/studio/client/_app/immutable/chunks/BeTUgF4S.js.gz +0 -0
  722. package/studio/client/_app/immutable/chunks/BidNKR6p.js +0 -5
  723. package/studio/client/_app/immutable/chunks/BidNKR6p.js.br +0 -0
  724. package/studio/client/_app/immutable/chunks/BidNKR6p.js.gz +0 -0
  725. package/studio/client/_app/immutable/chunks/BujAtXXM.js +0 -1
  726. package/studio/client/_app/immutable/chunks/BujAtXXM.js.br +0 -0
  727. package/studio/client/_app/immutable/chunks/BujAtXXM.js.gz +0 -0
  728. package/studio/client/_app/immutable/chunks/BvpaRDa_.js +0 -1
  729. package/studio/client/_app/immutable/chunks/BvpaRDa_.js.br +0 -0
  730. package/studio/client/_app/immutable/chunks/BvpaRDa_.js.gz +0 -0
  731. package/studio/client/_app/immutable/chunks/C4dDhPtf.js +0 -1
  732. package/studio/client/_app/immutable/chunks/C4dDhPtf.js.br +0 -0
  733. package/studio/client/_app/immutable/chunks/C4dDhPtf.js.gz +0 -0
  734. package/studio/client/_app/immutable/chunks/C9qsOfWE.js +0 -1
  735. package/studio/client/_app/immutable/chunks/C9qsOfWE.js.br +0 -0
  736. package/studio/client/_app/immutable/chunks/C9qsOfWE.js.gz +0 -0
  737. package/studio/client/_app/immutable/chunks/CNNzQrlb.js +0 -1
  738. package/studio/client/_app/immutable/chunks/CNNzQrlb.js.br +0 -0
  739. package/studio/client/_app/immutable/chunks/CNNzQrlb.js.gz +0 -0
  740. package/studio/client/_app/immutable/chunks/CP2t8wzc.js +0 -1
  741. package/studio/client/_app/immutable/chunks/CP2t8wzc.js.br +0 -0
  742. package/studio/client/_app/immutable/chunks/CP2t8wzc.js.gz +0 -0
  743. package/studio/client/_app/immutable/chunks/Ccg49IMO.js +0 -96
  744. package/studio/client/_app/immutable/chunks/Ccg49IMO.js.br +0 -0
  745. package/studio/client/_app/immutable/chunks/Ccg49IMO.js.gz +0 -0
  746. package/studio/client/_app/immutable/chunks/CidmzZr_.js +0 -99
  747. package/studio/client/_app/immutable/chunks/CidmzZr_.js.br +0 -0
  748. package/studio/client/_app/immutable/chunks/CidmzZr_.js.gz +0 -0
  749. package/studio/client/_app/immutable/chunks/CmzRa5tW.js +0 -1
  750. package/studio/client/_app/immutable/chunks/CmzRa5tW.js.br +0 -0
  751. package/studio/client/_app/immutable/chunks/CmzRa5tW.js.gz +0 -0
  752. package/studio/client/_app/immutable/chunks/Cu3vhtIm.js +0 -1
  753. package/studio/client/_app/immutable/chunks/Cu3vhtIm.js.br +0 -3
  754. package/studio/client/_app/immutable/chunks/Cu3vhtIm.js.gz +0 -0
  755. package/studio/client/_app/immutable/chunks/D1jFvxj0.js +0 -1
  756. package/studio/client/_app/immutable/chunks/D1jFvxj0.js.br +0 -0
  757. package/studio/client/_app/immutable/chunks/D1jFvxj0.js.gz +0 -0
  758. package/studio/client/_app/immutable/chunks/DGsO816A.js +0 -1
  759. package/studio/client/_app/immutable/chunks/DGsO816A.js.br +0 -1
  760. package/studio/client/_app/immutable/chunks/DGsO816A.js.gz +0 -0
  761. package/studio/client/_app/immutable/chunks/DKZDxza2.js +0 -1
  762. package/studio/client/_app/immutable/chunks/DKZDxza2.js.br +0 -0
  763. package/studio/client/_app/immutable/chunks/DKZDxza2.js.gz +0 -0
  764. package/studio/client/_app/immutable/chunks/DWycBSvS.js +0 -1
  765. package/studio/client/_app/immutable/chunks/DWycBSvS.js.br +0 -0
  766. package/studio/client/_app/immutable/chunks/DWycBSvS.js.gz +0 -0
  767. package/studio/client/_app/immutable/chunks/DaYfM_aT.js +0 -512
  768. package/studio/client/_app/immutable/chunks/DaYfM_aT.js.br +0 -0
  769. package/studio/client/_app/immutable/chunks/DaYfM_aT.js.gz +0 -0
  770. package/studio/client/_app/immutable/chunks/Dgdpq5VR.js +0 -1
  771. package/studio/client/_app/immutable/chunks/Dgdpq5VR.js.br +0 -0
  772. package/studio/client/_app/immutable/chunks/Dgdpq5VR.js.gz +0 -0
  773. package/studio/client/_app/immutable/chunks/DlBik49G.js +0 -1
  774. package/studio/client/_app/immutable/chunks/DlBik49G.js.br +0 -0
  775. package/studio/client/_app/immutable/chunks/DlBik49G.js.gz +0 -0
  776. package/studio/client/_app/immutable/chunks/DnZvuu1V.js +0 -1
  777. package/studio/client/_app/immutable/chunks/DnZvuu1V.js.br +0 -0
  778. package/studio/client/_app/immutable/chunks/DnZvuu1V.js.gz +0 -0
  779. package/studio/client/_app/immutable/chunks/Dru5mrF1.js +0 -1
  780. package/studio/client/_app/immutable/chunks/Dru5mrF1.js.br +0 -0
  781. package/studio/client/_app/immutable/chunks/Dru5mrF1.js.gz +0 -0
  782. package/studio/client/_app/immutable/chunks/DtOmmgoM.js +0 -4
  783. package/studio/client/_app/immutable/chunks/DtOmmgoM.js.br +0 -0
  784. package/studio/client/_app/immutable/chunks/DtOmmgoM.js.gz +0 -0
  785. package/studio/client/_app/immutable/chunks/DvcCXeL2.js +0 -1
  786. package/studio/client/_app/immutable/chunks/DvcCXeL2.js.br +0 -0
  787. package/studio/client/_app/immutable/chunks/DvcCXeL2.js.gz +0 -0
  788. package/studio/client/_app/immutable/chunks/DvvYiUNt.js +0 -4
  789. package/studio/client/_app/immutable/chunks/DvvYiUNt.js.br +0 -0
  790. package/studio/client/_app/immutable/chunks/DvvYiUNt.js.gz +0 -0
  791. package/studio/client/_app/immutable/chunks/DzAxJut6.js +0 -1
  792. package/studio/client/_app/immutable/chunks/DzAxJut6.js.br +0 -0
  793. package/studio/client/_app/immutable/chunks/DzAxJut6.js.gz +0 -0
  794. package/studio/client/_app/immutable/chunks/FKE3oSoF.js +0 -2
  795. package/studio/client/_app/immutable/chunks/FKE3oSoF.js.br +0 -0
  796. package/studio/client/_app/immutable/chunks/FKE3oSoF.js.gz +0 -0
  797. package/studio/client/_app/immutable/chunks/GL0yz1Mp.js +0 -1
  798. package/studio/client/_app/immutable/chunks/GL0yz1Mp.js.br +0 -0
  799. package/studio/client/_app/immutable/chunks/GL0yz1Mp.js.gz +0 -0
  800. package/studio/client/_app/immutable/chunks/IIGX7hY5.js +0 -1
  801. package/studio/client/_app/immutable/chunks/IIGX7hY5.js.br +0 -0
  802. package/studio/client/_app/immutable/chunks/IIGX7hY5.js.gz +0 -0
  803. package/studio/client/_app/immutable/chunks/KMhWafV2.js +0 -1
  804. package/studio/client/_app/immutable/chunks/KMhWafV2.js.br +0 -0
  805. package/studio/client/_app/immutable/chunks/KMhWafV2.js.gz +0 -0
  806. package/studio/client/_app/immutable/chunks/R0PS9H7p.js +0 -1
  807. package/studio/client/_app/immutable/chunks/R0PS9H7p.js.br +0 -0
  808. package/studio/client/_app/immutable/chunks/R0PS9H7p.js.gz +0 -0
  809. package/studio/client/_app/immutable/chunks/_y8Y_bWZ.js +0 -2
  810. package/studio/client/_app/immutable/chunks/_y8Y_bWZ.js.br +0 -0
  811. package/studio/client/_app/immutable/chunks/_y8Y_bWZ.js.gz +0 -0
  812. package/studio/client/_app/immutable/chunks/a4b4Uis3.js +0 -1
  813. package/studio/client/_app/immutable/chunks/a4b4Uis3.js.br +0 -0
  814. package/studio/client/_app/immutable/chunks/a4b4Uis3.js.gz +0 -0
  815. package/studio/client/_app/immutable/chunks/bGtUFIGQ.js +0 -1
  816. package/studio/client/_app/immutable/chunks/bGtUFIGQ.js.br +0 -0
  817. package/studio/client/_app/immutable/chunks/bGtUFIGQ.js.gz +0 -0
  818. package/studio/client/_app/immutable/chunks/nTtOQUuo.js +0 -1
  819. package/studio/client/_app/immutable/chunks/nTtOQUuo.js.br +0 -0
  820. package/studio/client/_app/immutable/chunks/nTtOQUuo.js.gz +0 -0
  821. package/studio/client/_app/immutable/entry/app.BlMsBed_.js +0 -2
  822. package/studio/client/_app/immutable/entry/app.BlMsBed_.js.br +0 -0
  823. package/studio/client/_app/immutable/entry/app.BlMsBed_.js.gz +0 -0
  824. package/studio/client/_app/immutable/entry/start.Br1JKkZD.js +0 -1
  825. package/studio/client/_app/immutable/entry/start.Br1JKkZD.js.br +0 -0
  826. package/studio/client/_app/immutable/entry/start.Br1JKkZD.js.gz +0 -0
  827. package/studio/client/_app/immutable/nodes/0.CH4rtrFP.js +0 -2
  828. package/studio/client/_app/immutable/nodes/0.CH4rtrFP.js.br +0 -0
  829. package/studio/client/_app/immutable/nodes/0.CH4rtrFP.js.gz +0 -0
  830. package/studio/client/_app/immutable/nodes/1.BA5TTBGM.js +0 -1
  831. package/studio/client/_app/immutable/nodes/1.BA5TTBGM.js.br +0 -0
  832. package/studio/client/_app/immutable/nodes/1.BA5TTBGM.js.gz +0 -0
  833. package/studio/client/_app/immutable/nodes/10.DjmeS5CE.js +0 -1
  834. package/studio/client/_app/immutable/nodes/10.DjmeS5CE.js.br +0 -0
  835. package/studio/client/_app/immutable/nodes/10.DjmeS5CE.js.gz +0 -0
  836. package/studio/client/_app/immutable/nodes/11.B5lOMsv4.js +0 -1
  837. package/studio/client/_app/immutable/nodes/11.B5lOMsv4.js.br +0 -0
  838. package/studio/client/_app/immutable/nodes/11.B5lOMsv4.js.gz +0 -0
  839. package/studio/client/_app/immutable/nodes/12.Bdh67hUI.js +0 -2
  840. package/studio/client/_app/immutable/nodes/12.Bdh67hUI.js.br +0 -0
  841. package/studio/client/_app/immutable/nodes/12.Bdh67hUI.js.gz +0 -0
  842. package/studio/client/_app/immutable/nodes/13.DeCCmCaZ.js +0 -1
  843. package/studio/client/_app/immutable/nodes/13.DeCCmCaZ.js.br +0 -0
  844. package/studio/client/_app/immutable/nodes/13.DeCCmCaZ.js.gz +0 -0
  845. package/studio/client/_app/immutable/nodes/14.BK_MYNTB.js +0 -1
  846. package/studio/client/_app/immutable/nodes/14.BK_MYNTB.js.br +0 -0
  847. package/studio/client/_app/immutable/nodes/14.BK_MYNTB.js.gz +0 -0
  848. package/studio/client/_app/immutable/nodes/15.DTOUruaa.js +0 -1
  849. package/studio/client/_app/immutable/nodes/15.DTOUruaa.js.br +0 -0
  850. package/studio/client/_app/immutable/nodes/15.DTOUruaa.js.gz +0 -0
  851. package/studio/client/_app/immutable/nodes/16.4YmSrppF.js +0 -8
  852. package/studio/client/_app/immutable/nodes/16.4YmSrppF.js.br +0 -0
  853. package/studio/client/_app/immutable/nodes/16.4YmSrppF.js.gz +0 -0
  854. package/studio/client/_app/immutable/nodes/17.DUeNi0aB.js +0 -1
  855. package/studio/client/_app/immutable/nodes/17.DUeNi0aB.js.br +0 -0
  856. package/studio/client/_app/immutable/nodes/17.DUeNi0aB.js.gz +0 -0
  857. package/studio/client/_app/immutable/nodes/18.DilqYUUv.js +0 -1
  858. package/studio/client/_app/immutable/nodes/18.DilqYUUv.js.br +0 -0
  859. package/studio/client/_app/immutable/nodes/18.DilqYUUv.js.gz +0 -0
  860. package/studio/client/_app/immutable/nodes/19.QEH9WR1D.js +0 -1
  861. package/studio/client/_app/immutable/nodes/19.QEH9WR1D.js.br +0 -0
  862. package/studio/client/_app/immutable/nodes/19.QEH9WR1D.js.gz +0 -0
  863. package/studio/client/_app/immutable/nodes/20.DIa-6Wtj.js +0 -45
  864. package/studio/client/_app/immutable/nodes/20.DIa-6Wtj.js.br +0 -0
  865. package/studio/client/_app/immutable/nodes/20.DIa-6Wtj.js.gz +0 -0
  866. package/studio/client/_app/immutable/nodes/21.C7plrZc8.js +0 -16
  867. package/studio/client/_app/immutable/nodes/21.C7plrZc8.js.br +0 -0
  868. package/studio/client/_app/immutable/nodes/21.C7plrZc8.js.gz +0 -0
  869. package/studio/client/_app/immutable/nodes/3._qhjdqhg.js +0 -1
  870. package/studio/client/_app/immutable/nodes/3._qhjdqhg.js.br +0 -0
  871. package/studio/client/_app/immutable/nodes/3._qhjdqhg.js.gz +0 -0
  872. package/studio/client/_app/immutable/nodes/38.DwvBsnGj.js +0 -1
  873. package/studio/client/_app/immutable/nodes/38.DwvBsnGj.js.br +0 -0
  874. package/studio/client/_app/immutable/nodes/38.DwvBsnGj.js.gz +0 -0
  875. package/studio/client/_app/immutable/nodes/4.R0oJOWD_.js +0 -1
  876. package/studio/client/_app/immutable/nodes/4.R0oJOWD_.js.br +0 -0
  877. package/studio/client/_app/immutable/nodes/4.R0oJOWD_.js.gz +0 -0
  878. package/studio/client/_app/immutable/nodes/40.BVTwXIYj.js +0 -15
  879. package/studio/client/_app/immutable/nodes/40.BVTwXIYj.js.br +0 -0
  880. package/studio/client/_app/immutable/nodes/40.BVTwXIYj.js.gz +0 -0
  881. package/studio/client/_app/immutable/nodes/41.Dmbm2Egz.js +0 -1
  882. package/studio/client/_app/immutable/nodes/41.Dmbm2Egz.js.br +0 -0
  883. package/studio/client/_app/immutable/nodes/41.Dmbm2Egz.js.gz +0 -0
  884. package/studio/client/_app/immutable/nodes/42.D205SuZX.js +0 -1
  885. package/studio/client/_app/immutable/nodes/42.D205SuZX.js.br +0 -0
  886. package/studio/client/_app/immutable/nodes/42.D205SuZX.js.gz +0 -0
  887. package/studio/client/_app/immutable/nodes/43.Bg1auisF.js +0 -1
  888. package/studio/client/_app/immutable/nodes/43.Bg1auisF.js.br +0 -0
  889. package/studio/client/_app/immutable/nodes/43.Bg1auisF.js.gz +0 -0
  890. package/studio/client/_app/immutable/nodes/44.CPLxW4El.js +0 -1
  891. package/studio/client/_app/immutable/nodes/44.CPLxW4El.js.br +0 -0
  892. package/studio/client/_app/immutable/nodes/44.CPLxW4El.js.gz +0 -0
  893. package/studio/client/_app/immutable/nodes/45.DSssrLbd.js +0 -2
  894. package/studio/client/_app/immutable/nodes/45.DSssrLbd.js.br +0 -0
  895. package/studio/client/_app/immutable/nodes/45.DSssrLbd.js.gz +0 -0
  896. package/studio/client/_app/immutable/nodes/46.CmYGMWb4.js +0 -1
  897. package/studio/client/_app/immutable/nodes/46.CmYGMWb4.js.br +0 -0
  898. package/studio/client/_app/immutable/nodes/46.CmYGMWb4.js.gz +0 -0
  899. package/studio/client/_app/immutable/nodes/47.DJ6V3A94.js +0 -1
  900. package/studio/client/_app/immutable/nodes/47.DJ6V3A94.js.br +0 -0
  901. package/studio/client/_app/immutable/nodes/47.DJ6V3A94.js.gz +0 -0
  902. package/studio/client/_app/immutable/nodes/48.BOPN4KRW.js +0 -1
  903. package/studio/client/_app/immutable/nodes/48.BOPN4KRW.js.br +0 -0
  904. package/studio/client/_app/immutable/nodes/48.BOPN4KRW.js.gz +0 -0
  905. package/studio/client/_app/immutable/nodes/49.7I6h2rM6.js +0 -7
  906. package/studio/client/_app/immutable/nodes/49.7I6h2rM6.js.br +0 -0
  907. package/studio/client/_app/immutable/nodes/49.7I6h2rM6.js.gz +0 -0
  908. package/studio/client/_app/immutable/nodes/5.R0oJOWD_.js +0 -1
  909. package/studio/client/_app/immutable/nodes/5.R0oJOWD_.js.br +0 -0
  910. package/studio/client/_app/immutable/nodes/5.R0oJOWD_.js.gz +0 -0
  911. package/studio/client/_app/immutable/nodes/7.VcgX8ZgJ.js +0 -1
  912. package/studio/client/_app/immutable/nodes/7.VcgX8ZgJ.js.br +0 -0
  913. package/studio/client/_app/immutable/nodes/7.VcgX8ZgJ.js.gz +0 -0
  914. package/studio/client/_app/immutable/nodes/8.ZwVfexZ0.js +0 -1
  915. package/studio/client/_app/immutable/nodes/8.ZwVfexZ0.js.br +0 -0
  916. package/studio/client/_app/immutable/nodes/8.ZwVfexZ0.js.gz +0 -0
  917. package/studio/client/_app/immutable/nodes/9.DPwqLu6G.js +0 -1
  918. package/studio/client/_app/immutable/nodes/9.DPwqLu6G.js.br +0 -0
  919. package/studio/client/_app/immutable/nodes/9.DPwqLu6G.js.gz +0 -0
  920. package/studio/server/chunks/0-DrCbOn_U.js +0 -32
  921. package/studio/server/chunks/0-DrCbOn_U.js.map +0 -1
  922. package/studio/server/chunks/1-BHuYqaGp.js +0 -9
  923. package/studio/server/chunks/1-BHuYqaGp.js.map +0 -1
  924. package/studio/server/chunks/11-DcT9eofp.js +0 -9
  925. package/studio/server/chunks/11-DcT9eofp.js.map +0 -1
  926. package/studio/server/chunks/12-Br9qZR1c.js +0 -9
  927. package/studio/server/chunks/12-Br9qZR1c.js.map +0 -1
  928. package/studio/server/chunks/13-CXLQr4dU.js +0 -59
  929. package/studio/server/chunks/13-CXLQr4dU.js.map +0 -1
  930. package/studio/server/chunks/14-BcReNzGU.js +0 -60
  931. package/studio/server/chunks/14-BcReNzGU.js.map +0 -1
  932. package/studio/server/chunks/15-BR8pxyN_.js +0 -9
  933. package/studio/server/chunks/15-BR8pxyN_.js.map +0 -1
  934. package/studio/server/chunks/16-B-CvhSUs.js +0 -72
  935. package/studio/server/chunks/16-B-CvhSUs.js.map +0 -1
  936. package/studio/server/chunks/17-BLykPSq7.js +0 -9
  937. package/studio/server/chunks/17-BLykPSq7.js.map +0 -1
  938. package/studio/server/chunks/18-C7DjU0t5.js +0 -9
  939. package/studio/server/chunks/18-C7DjU0t5.js.map +0 -1
  940. package/studio/server/chunks/19-Cq0Qyivk.js +0 -9
  941. package/studio/server/chunks/19-Cq0Qyivk.js.map +0 -1
  942. package/studio/server/chunks/20-CRk87lvq.js +0 -139
  943. package/studio/server/chunks/20-CRk87lvq.js.map +0 -1
  944. package/studio/server/chunks/3-ChhTSXfT.js +0 -9
  945. package/studio/server/chunks/3-ChhTSXfT.js.map +0 -1
  946. package/studio/server/chunks/4-B9vyTnuL.js +0 -9
  947. package/studio/server/chunks/4-B9vyTnuL.js.map +0 -1
  948. package/studio/server/chunks/42-DOBpFqDR.js +0 -56
  949. package/studio/server/chunks/42-DOBpFqDR.js.map +0 -1
  950. package/studio/server/chunks/43-DRw-2-GS.js +0 -9
  951. package/studio/server/chunks/43-DRw-2-GS.js.map +0 -1
  952. package/studio/server/chunks/44-DLxClkX_.js +0 -9
  953. package/studio/server/chunks/44-DLxClkX_.js.map +0 -1
  954. package/studio/server/chunks/45-wVQw8tBx.js +0 -115
  955. package/studio/server/chunks/45-wVQw8tBx.js.map +0 -1
  956. package/studio/server/chunks/49-CSfj1Xtu.js +0 -14
  957. package/studio/server/chunks/49-CSfj1Xtu.js.map +0 -1
  958. package/studio/server/chunks/5-8UA2oVVT.js +0 -9
  959. package/studio/server/chunks/5-8UA2oVVT.js.map +0 -1
  960. package/studio/server/chunks/7-judL9OYr.js +0 -215
  961. package/studio/server/chunks/7-judL9OYr.js.map +0 -1
  962. package/studio/server/chunks/_error.svelte-C3N4FEB2.js +0 -98
  963. package/studio/server/chunks/_error.svelte-C3N4FEB2.js.map +0 -1
  964. package/studio/server/chunks/_error.svelte-C7sYQCnM.js +0 -98
  965. package/studio/server/chunks/_error.svelte-C7sYQCnM.js.map +0 -1
  966. package/studio/server/chunks/_layout.svelte-B7vWmRFJ.js +0 -64
  967. package/studio/server/chunks/_layout.svelte-B7vWmRFJ.js.map +0 -1
  968. package/studio/server/chunks/_layout.svelte-BIVwEY2g.js +0 -1054
  969. package/studio/server/chunks/_layout.svelte-BIVwEY2g.js.map +0 -1
  970. package/studio/server/chunks/_layout.svelte-CDrHT5wt.js +0 -400
  971. package/studio/server/chunks/_layout.svelte-CDrHT5wt.js.map +0 -1
  972. package/studio/server/chunks/_layout.svelte-DAYtUucm.js +0 -64
  973. package/studio/server/chunks/_layout.svelte-DAYtUucm.js.map +0 -1
  974. package/studio/server/chunks/_page.svelte-B1cMW63M.js +0 -79
  975. package/studio/server/chunks/_page.svelte-B1cMW63M.js.map +0 -1
  976. package/studio/server/chunks/_page.svelte-BL2j2QYJ.js +0 -192
  977. package/studio/server/chunks/_page.svelte-BL2j2QYJ.js.map +0 -1
  978. package/studio/server/chunks/_page.svelte-BiTflcHr.js +0 -111
  979. package/studio/server/chunks/_page.svelte-BiTflcHr.js.map +0 -1
  980. package/studio/server/chunks/_page.svelte-BwEzxkCN.js +0 -418
  981. package/studio/server/chunks/_page.svelte-BwEzxkCN.js.map +0 -1
  982. package/studio/server/chunks/_page.svelte-ByzdoeDB.js +0 -11350
  983. package/studio/server/chunks/_page.svelte-ByzdoeDB.js.map +0 -1
  984. package/studio/server/chunks/_page.svelte-CSU5TGt6.js +0 -1732
  985. package/studio/server/chunks/_page.svelte-CSU5TGt6.js.map +0 -1
  986. package/studio/server/chunks/_page.svelte-Ch08b7on.js +0 -256
  987. package/studio/server/chunks/_page.svelte-Ch08b7on.js.map +0 -1
  988. package/studio/server/chunks/_page.svelte-CyAzKzS1.js +0 -506
  989. package/studio/server/chunks/_page.svelte-CyAzKzS1.js.map +0 -1
  990. package/studio/server/chunks/_page.svelte-D3NFENjP.js +0 -113
  991. package/studio/server/chunks/_page.svelte-D3NFENjP.js.map +0 -1
  992. package/studio/server/chunks/_page.svelte-DoI4FMeA.js +0 -319
  993. package/studio/server/chunks/_page.svelte-DoI4FMeA.js.map +0 -1
  994. package/studio/server/chunks/_page.svelte-az4tVjJ_.js +0 -1021
  995. package/studio/server/chunks/_page.svelte-az4tVjJ_.js.map +0 -1
  996. package/studio/server/chunks/_server.ts-BsgeMvN0.js +0 -722
  997. package/studio/server/chunks/_server.ts-BsgeMvN0.js.map +0 -1
  998. package/studio/server/chunks/_server.ts-CBlNBm5s.js +0 -70
  999. package/studio/server/chunks/_server.ts-CBlNBm5s.js.map +0 -1
  1000. package/studio/server/chunks/_server.ts-CLHP8Zrh.js +0 -109
  1001. package/studio/server/chunks/_server.ts-CLHP8Zrh.js.map +0 -1
  1002. package/studio/server/chunks/_server.ts-Cd1TmSSo.js +0 -303
  1003. package/studio/server/chunks/_server.ts-Cd1TmSSo.js.map +0 -1
  1004. package/studio/server/chunks/_server.ts-CkVDrj32.js +0 -79
  1005. package/studio/server/chunks/_server.ts-CkVDrj32.js.map +0 -1
  1006. package/studio/server/chunks/_server.ts-DA3zdbWI.js +0 -48
  1007. package/studio/server/chunks/_server.ts-DA3zdbWI.js.map +0 -1
  1008. package/studio/server/chunks/_server.ts-Da8qrASe.js +0 -118
  1009. package/studio/server/chunks/_server.ts-Da8qrASe.js.map +0 -1
  1010. package/studio/server/chunks/_server.ts-Dcr0g4Vq.js +0 -52
  1011. package/studio/server/chunks/_server.ts-Dcr0g4Vq.js.map +0 -1
  1012. package/studio/server/chunks/_server.ts-DxwlzaT7.js +0 -122
  1013. package/studio/server/chunks/_server.ts-DxwlzaT7.js.map +0 -1
  1014. package/studio/server/chunks/_server.ts-KHs6y_Wc.js +0 -760
  1015. package/studio/server/chunks/_server.ts-KHs6y_Wc.js.map +0 -1
  1016. package/studio/server/chunks/_server.ts-_eJk5Eiu.js +0 -91
  1017. package/studio/server/chunks/_server.ts-_eJk5Eiu.js.map +0 -1
  1018. package/studio/server/chunks/admin.remote-C-MAmmW-.js +0 -105
  1019. package/studio/server/chunks/admin.remote-C-MAmmW-.js.map +0 -1
  1020. package/studio/server/chunks/ai-access-Cm_VC4xc.js +0 -299
  1021. package/studio/server/chunks/ai-access-Cm_VC4xc.js.map +0 -1
  1022. package/studio/server/chunks/ai.remote-waQUpsLn.js +0 -37
  1023. package/studio/server/chunks/ai.remote-waQUpsLn.js.map +0 -1
  1024. package/studio/server/chunks/alert-dialog-description-B4VfiJRT.js +0 -578
  1025. package/studio/server/chunks/alert-dialog-description-B4VfiJRT.js.map +0 -1
  1026. package/studio/server/chunks/app-header-Ck_YeZr5.js +0 -96
  1027. package/studio/server/chunks/app-header-Ck_YeZr5.js.map +0 -1
  1028. package/studio/server/chunks/auth-mx1dhuCn.js +0 -22472
  1029. package/studio/server/chunks/auth-mx1dhuCn.js.map +0 -1
  1030. package/studio/server/chunks/auth.remote-CN4se14K.js +0 -351
  1031. package/studio/server/chunks/auth.remote-CN4se14K.js.map +0 -1
  1032. package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-BNevlRD6.js +0 -197
  1033. package/studio/server/chunks/bun-sqlite-dialect-C8OaCWSL-BNevlRD6.js.map +0 -1
  1034. package/studio/server/chunks/captions.remote-Pp1JQnfB.js +0 -184
  1035. package/studio/server/chunks/captions.remote-Pp1JQnfB.js.map +0 -1
  1036. package/studio/server/chunks/client2-DNrSxzuu.js +0 -66
  1037. package/studio/server/chunks/client2-DNrSxzuu.js.map +0 -1
  1038. package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-D67tOo2R.js +0 -160
  1039. package/studio/server/chunks/d1-sqlite-dialect-sYHNqBte-D67tOo2R.js.map +0 -1
  1040. package/studio/server/chunks/desktop-bootstrap-IVK9LbDz.js +0 -67
  1041. package/studio/server/chunks/desktop-bootstrap-IVK9LbDz.js.map +0 -1
  1042. package/studio/server/chunks/dubbing.remote-CZkC5M_a.js +0 -153
  1043. package/studio/server/chunks/dubbing.remote-CZkC5M_a.js.map +0 -1
  1044. package/studio/server/chunks/editor.svelte-Dd-2ZfWO.js +0 -21027
  1045. package/studio/server/chunks/editor.svelte-Dd-2ZfWO.js.map +0 -1
  1046. package/studio/server/chunks/find-stock-image-DDfrK_rA.js +0 -709
  1047. package/studio/server/chunks/find-stock-image-DDfrK_rA.js.map +0 -1
  1048. package/studio/server/chunks/hooks.server-DcXHGCUQ.js +0 -309
  1049. package/studio/server/chunks/hooks.server-DcXHGCUQ.js.map +0 -1
  1050. package/studio/server/chunks/image-generation.remote-GIIJ69ro.js +0 -140
  1051. package/studio/server/chunks/image-generation.remote-GIIJ69ro.js.map +0 -1
  1052. package/studio/server/chunks/index-Bz4Ugmn7.js +0 -4578
  1053. package/studio/server/chunks/index-Bz4Ugmn7.js.map +0 -1
  1054. package/studio/server/chunks/index12-CP2lVQd1.js +0 -265
  1055. package/studio/server/chunks/index12-CP2lVQd1.js.map +0 -1
  1056. package/studio/server/chunks/index2-BvzNGjoj.js +0 -23
  1057. package/studio/server/chunks/index2-BvzNGjoj.js.map +0 -1
  1058. package/studio/server/chunks/index3-B3arCRqx.js +0 -8
  1059. package/studio/server/chunks/index3-B3arCRqx.js.map +0 -1
  1060. package/studio/server/chunks/index4-ByfR32IV.js +0 -48
  1061. package/studio/server/chunks/index4-ByfR32IV.js.map +0 -1
  1062. package/studio/server/chunks/layout-template-DRFNZLVI.js +0 -1371
  1063. package/studio/server/chunks/layout-template-DRFNZLVI.js.map +0 -1
  1064. package/studio/server/chunks/media-analysis-Ch1fmDUt.js +0 -229
  1065. package/studio/server/chunks/media-analysis-Ch1fmDUt.js.map +0 -1
  1066. package/studio/server/chunks/media-analysis.remote-yI6aCZ78.js +0 -63
  1067. package/studio/server/chunks/media-analysis.remote-yI6aCZ78.js.map +0 -1
  1068. package/studio/server/chunks/mutations-CkUdOAoa.js +0 -551
  1069. package/studio/server/chunks/mutations-CkUdOAoa.js.map +0 -1
  1070. package/studio/server/chunks/node-sqlite-dialect-Di8ZYXD0.js +0 -197
  1071. package/studio/server/chunks/node-sqlite-dialect-Di8ZYXD0.js.map +0 -1
  1072. package/studio/server/chunks/onboarding-email-BvuCl7dz.js +0 -311
  1073. package/studio/server/chunks/onboarding-email-BvuCl7dz.js.map +0 -1
  1074. package/studio/server/chunks/projects.remote-ipNnrM1d.js +0 -297
  1075. package/studio/server/chunks/projects.remote-ipNnrM1d.js.map +0 -1
  1076. package/studio/server/chunks/queue-init-C_8i6pyv.js +0 -38
  1077. package/studio/server/chunks/queue-init-C_8i6pyv.js.map +0 -1
  1078. package/studio/server/chunks/registry-z2-pQ1Jw.js +0 -18
  1079. package/studio/server/chunks/registry-z2-pQ1Jw.js.map +0 -1
  1080. package/studio/server/chunks/registry2-BhwPna1F.js +0 -4851
  1081. package/studio/server/chunks/registry2-BhwPna1F.js.map +0 -1
  1082. package/studio/server/chunks/remote-1ez0sx-DKZ6ubnB.js +0 -34
  1083. package/studio/server/chunks/remote-1ez0sx-DKZ6ubnB.js.map +0 -1
  1084. package/studio/server/chunks/remote-1mi3j6d-4ClkS6sd.js +0 -21
  1085. package/studio/server/chunks/remote-1mi3j6d-4ClkS6sd.js.map +0 -1
  1086. package/studio/server/chunks/remote-1web5fy-Bw0AJHlD.js +0 -35
  1087. package/studio/server/chunks/remote-1web5fy-Bw0AJHlD.js.map +0 -1
  1088. package/studio/server/chunks/remote-5mu9ty-DKqUPY8s.js +0 -31
  1089. package/studio/server/chunks/remote-5mu9ty-DKqUPY8s.js.map +0 -1
  1090. package/studio/server/chunks/remote-gezfls-CbSTOGmI.js +0 -21
  1091. package/studio/server/chunks/remote-gezfls-CbSTOGmI.js.map +0 -1
  1092. package/studio/server/chunks/remote-sy19x7-BZ5ceu8t.js +0 -29
  1093. package/studio/server/chunks/remote-sy19x7-BZ5ceu8t.js.map +0 -1
  1094. package/studio/server/chunks/remote-tisyb0-ChggPTNB.js +0 -31
  1095. package/studio/server/chunks/remote-tisyb0-ChggPTNB.js.map +0 -1
  1096. package/studio/server/chunks/remote-xj8myv-DruftVtE.js +0 -31
  1097. package/studio/server/chunks/remote-xj8myv-DruftVtE.js.map +0 -1
  1098. package/studio/server/chunks/remote-z7lvth-D_9BqgW_.js +0 -23
  1099. package/studio/server/chunks/remote-z7lvth-D_9BqgW_.js.map +0 -1
  1100. package/studio/server/chunks/remote-zjib3m-DnAqo6l6.js +0 -24
  1101. package/studio/server/chunks/remote-zjib3m-DnAqo6l6.js.map +0 -1
  1102. package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-D5bzSlf5.js +0 -4752
  1103. package/studio/server/chunks/scrub-xyz.svelte_svelte_type_style_lang-D5bzSlf5.js.map +0 -1
  1104. package/studio/server/chunks/tooltip-provider-Y8-pmG0D.js +0 -30
  1105. package/studio/server/chunks/tooltip-provider-Y8-pmG0D.js.map +0 -1
  1106. package/studio/server/chunks/tooltip.svelte-CMQZQZ-r.js +0 -658
  1107. package/studio/server/chunks/tooltip.svelte-CMQZQZ-r.js.map +0 -1
  1108. package/studio/server/chunks/tts.remote-BERCmX-n.js +0 -194
  1109. package/studio/server/chunks/tts.remote-BERCmX-n.js.map +0 -1
  1110. package/studio/server/chunks/ui.svelte-DSRn4LdL.js +0 -88
  1111. package/studio/server/chunks/ui.svelte-DSRn4LdL.js.map +0 -1
  1112. package/studio/server/chunks/video-generation.remote-DkDf_BYp.js +0 -197
  1113. package/studio/server/chunks/video-generation.remote-DkDf_BYp.js.map +0 -1
  1114. package/studio/server/chunks/watermark-u8k4sZA3.js +0 -164
  1115. package/studio/server/chunks/watermark-u8k4sZA3.js.map +0 -1
@@ -0,0 +1,4578 @@
1
+ import { B as browser } from './index9-D9BBZH26.js';
2
+ import { j as json, t as text, R as Redirect, S as SvelteKitError, H as HttpError, e as error, A as ActionFailure } from './index-Dp2_pJiZ.js';
3
+ import { w as with_request_store } from './event-DmhHnWT5.js';
4
+ import { b as base, c as app_dir, f as find_route, a as assets, d as relative, o as override, e as reset } from './routing-Up9X2RDi.js';
5
+ import { e as format_server_error, i as is_form_content_type, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, g as has_prerendered_path, j as handle_fatal_error, M as MUTATIVE_METHODS, r as redirect_response, m as method_not_allowed, k as negotiate, l as get_global_name, c as create_remote_key, o as serialize_uses, p as clarify_devalue_error, h as handle_error_and_jsonify, E as ENDPOINT_METHODS, P as PAGE_METHODS, q as get_status, t as normalize_error, u as static_error_page, v as is_primitive, w as get_type, x as parse_remote_arg, y as stringify, z as deserialize_binary_form, A as get_node_type, B as stringify$1, C as escape_html, D as DevalueError, F as is_plain_object, G as enumerable_symbols, H as stringify_key, J as stringify_string, K as valid_array_indices, L as escaped, S as SVELTE_KIT_ASSETS } from './shared-hgBL35K7.js';
6
+ import { r as root, c as decode_pathname, n as normalize_path, e as disable_search, f as text_encoder, g as resolve, m as make_trackable, h as get_relative_path, a as base64_encode, t as text_decoder } from './root-DjEsp22s.js';
7
+ import { v as validate_layout_server_exports, a as validate_layout_exports, b as validate_page_server_exports, c as validate_page_exports, w as writable, r as readable } from './exports-5qhW9hr2.js';
8
+ import { s as set_private_env, b as set_public_env, p as public_env } from './shared-server-hNytdPP9.js';
9
+
10
+ /**
11
+ * @template {{ tracing: { enabled: boolean, root: import('@opentelemetry/api').Span, current: import('@opentelemetry/api').Span } }} T
12
+ * @param {T} event_like
13
+ * @param {import('@opentelemetry/api').Span} current
14
+ * @returns {T}
15
+ */
16
+ function merge_tracing(event_like, current) {
17
+ return {
18
+ ...event_like,
19
+ tracing: {
20
+ ...event_like.tracing,
21
+ current
22
+ }
23
+ };
24
+ }
25
+
26
+ let read_implementation = null;
27
+ function set_read_implementation(fn) {
28
+ read_implementation = fn;
29
+ }
30
+ const options = {
31
+ app_template_contains_nonce: false,
32
+ async: true,
33
+ csp: { "mode": "auto", "directives": { "upgrade-insecure-requests": false, "block-all-mixed-content": false }, "reportOnly": { "upgrade-insecure-requests": false, "block-all-mixed-content": false } },
34
+ csrf_check_origin: true,
35
+ csrf_trusted_origins: [],
36
+ embedded: false,
37
+ env_public_prefix: "PUBLIC_",
38
+ env_private_prefix: "",
39
+ hash_routing: false,
40
+ hooks: null,
41
+ // added lazily, via `get_hooks`
42
+ preload_strategy: "modulepreload",
43
+ root,
44
+ service_worker: false,
45
+ service_worker_options: void 0,
46
+ templates: {
47
+ app: ({ head, body, assets, nonce, env }) => `<!doctype html>
48
+ <html lang="en">
49
+ <head>
50
+ <meta charset="utf-8" />
51
+ <meta
52
+ name="viewport"
53
+ content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"
54
+ />
55
+ <script>
56
+ // Prevent flash of wrong theme by applying before page renders
57
+ // Note: This only handles stored 'light'/'dark' preferences. 'system' preference
58
+ // is handled by the theme store after hydration (avoids duplicating media query logic)
59
+ (function () {
60
+ const STORAGE_KEY = 'devmotion_theme';
61
+ const stored = localStorage.getItem(STORAGE_KEY);
62
+ if (stored === 'dark') {
63
+ document.documentElement.classList.add('dark');
64
+ } else if (stored === 'light') {
65
+ document.documentElement.classList.remove('dark');
66
+ }
67
+ // If stored is 'system' or null, let the store handle it after hydration
68
+ })();
69
+ <\/script>
70
+ <link
71
+ href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&display=swap"
72
+ rel="stylesheet"
73
+ />
74
+ ` + head + '\n </head>\n <body data-sveltekit-preload-data="hover">\n <div style="display: contents">' + body + "</div>\n </body>\n</html>\n",
75
+ error: ({ status, message }) => '<!doctype html>\n<html lang="en">\n <head>\n <meta charset="utf-8" />\n <title>' + message + `</title>
76
+
77
+ <style>
78
+ body {
79
+ --bg: white;
80
+ --fg: #222;
81
+ --divider: #ccc;
82
+ background: var(--bg);
83
+ color: var(--fg);
84
+ font-family:
85
+ system-ui,
86
+ -apple-system,
87
+ BlinkMacSystemFont,
88
+ 'Segoe UI',
89
+ Roboto,
90
+ Oxygen,
91
+ Ubuntu,
92
+ Cantarell,
93
+ 'Open Sans',
94
+ 'Helvetica Neue',
95
+ sans-serif;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ height: 100vh;
100
+ margin: 0;
101
+ }
102
+
103
+ .error {
104
+ display: flex;
105
+ align-items: center;
106
+ max-width: 32rem;
107
+ margin: 0 1rem;
108
+ }
109
+
110
+ .status {
111
+ font-weight: 200;
112
+ font-size: 3rem;
113
+ line-height: 1;
114
+ position: relative;
115
+ top: -0.05rem;
116
+ }
117
+
118
+ .message {
119
+ border-left: 1px solid var(--divider);
120
+ padding: 0 0 0 1rem;
121
+ margin: 0 0 0 1rem;
122
+ min-height: 2.5rem;
123
+ display: flex;
124
+ align-items: center;
125
+ }
126
+
127
+ .message h1 {
128
+ font-weight: 400;
129
+ font-size: 1em;
130
+ margin: 0;
131
+ }
132
+
133
+ @media (prefers-color-scheme: dark) {
134
+ body {
135
+ --bg: #222;
136
+ --fg: #ddd;
137
+ --divider: #666;
138
+ }
139
+ }
140
+ </style>
141
+ </head>
142
+ <body>
143
+ <div class="error">
144
+ <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
145
+ },
146
+ version_hash: "1pl1ucw"
147
+ };
148
+ async function get_hooks() {
149
+ let handle;
150
+ let handleFetch;
151
+ let handleError;
152
+ let handleValidationError;
153
+ let init;
154
+ ({ handle, handleFetch, handleError, handleValidationError, init } = await import('./hooks.server-DNzGN0kv.js'));
155
+ let reroute;
156
+ let transport;
157
+ return {
158
+ handle,
159
+ handleFetch,
160
+ handleError,
161
+ handleValidationError,
162
+ init,
163
+ reroute,
164
+ transport
165
+ };
166
+ }
167
+
168
+ function with_resolvers() {
169
+ let resolve2;
170
+ let reject;
171
+ const promise = new Promise((res, rej) => {
172
+ resolve2 = res;
173
+ reject = rej;
174
+ });
175
+ return { promise, resolve: resolve2, reject };
176
+ }
177
+ const NULL_BODY_STATUS = [101, 103, 204, 205, 304];
178
+ const IN_WEBCONTAINER = !!globalThis.process?.versions?.webcontainer;
179
+ const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$";
180
+ const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g;
181
+ 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)$/;
182
+ function uneval(value, replacer) {
183
+ const counts = /* @__PURE__ */ new Map();
184
+ const keys = [];
185
+ const custom = /* @__PURE__ */ new Map();
186
+ function walk(thing) {
187
+ if (!is_primitive(thing)) {
188
+ if (counts.has(thing)) {
189
+ counts.set(thing, counts.get(thing) + 1);
190
+ return;
191
+ }
192
+ counts.set(thing, 1);
193
+ if (replacer) {
194
+ const str2 = replacer(thing, (value2) => uneval(value2, replacer));
195
+ if (typeof str2 === "string") {
196
+ custom.set(thing, str2);
197
+ return;
198
+ }
199
+ }
200
+ if (typeof thing === "function") {
201
+ throw new DevalueError(`Cannot stringify a function`, keys, thing, value);
202
+ }
203
+ const type = get_type(thing);
204
+ switch (type) {
205
+ case "Number":
206
+ case "BigInt":
207
+ case "String":
208
+ case "Boolean":
209
+ case "Date":
210
+ case "RegExp":
211
+ case "URL":
212
+ case "URLSearchParams":
213
+ return;
214
+ case "Array":
215
+ thing.forEach((value2, i) => {
216
+ keys.push(`[${i}]`);
217
+ walk(value2);
218
+ keys.pop();
219
+ });
220
+ break;
221
+ case "Set":
222
+ Array.from(thing).forEach(walk);
223
+ break;
224
+ case "Map":
225
+ for (const [key2, value2] of thing) {
226
+ keys.push(
227
+ `.get(${is_primitive(key2) ? stringify_primitive(key2) : "..."})`
228
+ );
229
+ walk(value2);
230
+ keys.pop();
231
+ }
232
+ break;
233
+ case "Int8Array":
234
+ case "Uint8Array":
235
+ case "Uint8ClampedArray":
236
+ case "Int16Array":
237
+ case "Uint16Array":
238
+ case "Int32Array":
239
+ case "Uint32Array":
240
+ case "Float32Array":
241
+ case "Float64Array":
242
+ case "BigInt64Array":
243
+ case "BigUint64Array":
244
+ walk(thing.buffer);
245
+ return;
246
+ case "ArrayBuffer":
247
+ return;
248
+ case "Temporal.Duration":
249
+ case "Temporal.Instant":
250
+ case "Temporal.PlainDate":
251
+ case "Temporal.PlainTime":
252
+ case "Temporal.PlainDateTime":
253
+ case "Temporal.PlainMonthDay":
254
+ case "Temporal.PlainYearMonth":
255
+ case "Temporal.ZonedDateTime":
256
+ return;
257
+ default:
258
+ if (!is_plain_object(thing)) {
259
+ throw new DevalueError(
260
+ `Cannot stringify arbitrary non-POJOs`,
261
+ keys,
262
+ thing,
263
+ value
264
+ );
265
+ }
266
+ if (enumerable_symbols(thing).length > 0) {
267
+ throw new DevalueError(
268
+ `Cannot stringify POJOs with symbolic keys`,
269
+ keys,
270
+ thing,
271
+ value
272
+ );
273
+ }
274
+ for (const key2 of Object.keys(thing)) {
275
+ if (key2 === "__proto__") {
276
+ throw new DevalueError(
277
+ `Cannot stringify objects with __proto__ keys`,
278
+ keys,
279
+ thing,
280
+ value
281
+ );
282
+ }
283
+ keys.push(stringify_key(key2));
284
+ walk(thing[key2]);
285
+ keys.pop();
286
+ }
287
+ }
288
+ }
289
+ }
290
+ walk(value);
291
+ const names = /* @__PURE__ */ new Map();
292
+ Array.from(counts).filter((entry) => entry[1] > 1).sort((a, b) => b[1] - a[1]).forEach((entry, i) => {
293
+ names.set(entry[0], get_name(i));
294
+ });
295
+ function stringify2(thing) {
296
+ if (names.has(thing)) {
297
+ return names.get(thing);
298
+ }
299
+ if (is_primitive(thing)) {
300
+ return stringify_primitive(thing);
301
+ }
302
+ if (custom.has(thing)) {
303
+ return custom.get(thing);
304
+ }
305
+ const type = get_type(thing);
306
+ switch (type) {
307
+ case "Number":
308
+ case "String":
309
+ case "Boolean":
310
+ return `Object(${stringify2(thing.valueOf())})`;
311
+ case "RegExp":
312
+ return `new RegExp(${stringify_string(thing.source)}, "${thing.flags}")`;
313
+ case "Date":
314
+ return `new Date(${thing.getTime()})`;
315
+ case "URL":
316
+ return `new URL(${stringify_string(thing.toString())})`;
317
+ case "URLSearchParams":
318
+ return `new URLSearchParams(${stringify_string(thing.toString())})`;
319
+ case "Array": {
320
+ let has_holes = false;
321
+ let result = "[";
322
+ for (let i = 0; i < thing.length; i += 1) {
323
+ if (i > 0) result += ",";
324
+ if (Object.hasOwn(thing, i)) {
325
+ result += stringify2(thing[i]);
326
+ } else if (!has_holes) {
327
+ const populated_keys = valid_array_indices(
328
+ /** @type {any[]} */
329
+ thing
330
+ );
331
+ const population = populated_keys.length;
332
+ const d = String(thing.length).length;
333
+ const hole_cost = thing.length + 2;
334
+ const sparse_cost = 25 + d + population * (d + 2);
335
+ if (hole_cost > sparse_cost) {
336
+ const entries = populated_keys.map((k) => `${k}:${stringify2(thing[k])}`).join(",");
337
+ return `Object.assign(Array(${thing.length}),{${entries}})`;
338
+ }
339
+ has_holes = true;
340
+ i -= 1;
341
+ }
342
+ }
343
+ const tail = thing.length === 0 || thing.length - 1 in thing ? "" : ",";
344
+ return result + tail + "]";
345
+ }
346
+ case "Set":
347
+ case "Map":
348
+ return `new ${type}([${Array.from(thing).map(stringify2).join(",")}])`;
349
+ case "Int8Array":
350
+ case "Uint8Array":
351
+ case "Uint8ClampedArray":
352
+ case "Int16Array":
353
+ case "Uint16Array":
354
+ case "Int32Array":
355
+ case "Uint32Array":
356
+ case "Float32Array":
357
+ case "Float64Array":
358
+ case "BigInt64Array":
359
+ case "BigUint64Array": {
360
+ let str2 = `new ${type}`;
361
+ if (counts.get(thing.buffer) === 1) {
362
+ const array2 = new thing.constructor(thing.buffer);
363
+ str2 += `([${array2}])`;
364
+ } else {
365
+ str2 += `([${stringify2(thing.buffer)}])`;
366
+ }
367
+ const a = thing.byteOffset;
368
+ const b = a + thing.byteLength;
369
+ if (a > 0 || b !== thing.buffer.byteLength) {
370
+ const m = +/(\d+)/.exec(type)[1] / 8;
371
+ str2 += `.subarray(${a / m},${b / m})`;
372
+ }
373
+ return str2;
374
+ }
375
+ case "ArrayBuffer": {
376
+ const ui8 = new Uint8Array(thing);
377
+ return `new Uint8Array([${ui8.toString()}]).buffer`;
378
+ }
379
+ case "Temporal.Duration":
380
+ case "Temporal.Instant":
381
+ case "Temporal.PlainDate":
382
+ case "Temporal.PlainTime":
383
+ case "Temporal.PlainDateTime":
384
+ case "Temporal.PlainMonthDay":
385
+ case "Temporal.PlainYearMonth":
386
+ case "Temporal.ZonedDateTime":
387
+ return `${type}.from(${stringify_string(thing.toString())})`;
388
+ default:
389
+ const keys2 = Object.keys(thing);
390
+ const obj = keys2.map((key2) => `${safe_key(key2)}:${stringify2(thing[key2])}`).join(",");
391
+ const proto = Object.getPrototypeOf(thing);
392
+ if (proto === null) {
393
+ return keys2.length > 0 ? `{${obj},__proto__:null}` : `{__proto__:null}`;
394
+ }
395
+ return `{${obj}}`;
396
+ }
397
+ }
398
+ const str = stringify2(value);
399
+ if (names.size) {
400
+ const params = [];
401
+ const statements = [];
402
+ const values = [];
403
+ names.forEach((name, thing) => {
404
+ params.push(name);
405
+ if (custom.has(thing)) {
406
+ values.push(
407
+ /** @type {string} */
408
+ custom.get(thing)
409
+ );
410
+ return;
411
+ }
412
+ if (is_primitive(thing)) {
413
+ values.push(stringify_primitive(thing));
414
+ return;
415
+ }
416
+ const type = get_type(thing);
417
+ switch (type) {
418
+ case "Number":
419
+ case "String":
420
+ case "Boolean":
421
+ values.push(`Object(${stringify2(thing.valueOf())})`);
422
+ break;
423
+ case "RegExp":
424
+ values.push(thing.toString());
425
+ break;
426
+ case "Date":
427
+ values.push(`new Date(${thing.getTime()})`);
428
+ break;
429
+ case "Array":
430
+ values.push(`Array(${thing.length})`);
431
+ thing.forEach((v, i) => {
432
+ statements.push(`${name}[${i}]=${stringify2(v)}`);
433
+ });
434
+ break;
435
+ case "Set":
436
+ values.push(`new Set`);
437
+ statements.push(
438
+ `${name}.${Array.from(thing).map((v) => `add(${stringify2(v)})`).join(".")}`
439
+ );
440
+ break;
441
+ case "Map":
442
+ values.push(`new Map`);
443
+ statements.push(
444
+ `${name}.${Array.from(thing).map(([k, v]) => `set(${stringify2(k)}, ${stringify2(v)})`).join(".")}`
445
+ );
446
+ break;
447
+ case "ArrayBuffer":
448
+ values.push(
449
+ `new Uint8Array([${new Uint8Array(thing).join(",")}]).buffer`
450
+ );
451
+ break;
452
+ default:
453
+ values.push(
454
+ Object.getPrototypeOf(thing) === null ? "Object.create(null)" : "{}"
455
+ );
456
+ Object.keys(thing).forEach((key2) => {
457
+ statements.push(
458
+ `${name}${safe_prop(key2)}=${stringify2(thing[key2])}`
459
+ );
460
+ });
461
+ }
462
+ });
463
+ statements.push(`return ${str}`);
464
+ return `(function(${params.join(",")}){${statements.join(
465
+ ";"
466
+ )}}(${values.join(",")}))`;
467
+ } else {
468
+ return str;
469
+ }
470
+ }
471
+ function get_name(num) {
472
+ let name = "";
473
+ do {
474
+ name = chars[num % chars.length] + name;
475
+ num = ~~(num / chars.length) - 1;
476
+ } while (num >= 0);
477
+ return reserved.test(name) ? `${name}0` : name;
478
+ }
479
+ function escape_unsafe_char(c) {
480
+ return escaped[c] || c;
481
+ }
482
+ function escape_unsafe_chars(str) {
483
+ return str.replace(unsafe_chars, escape_unsafe_char);
484
+ }
485
+ function safe_key(key2) {
486
+ return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key2) ? key2 : escape_unsafe_chars(JSON.stringify(key2));
487
+ }
488
+ function safe_prop(key2) {
489
+ return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key2) ? `.${key2}` : `[${escape_unsafe_chars(JSON.stringify(key2))}]`;
490
+ }
491
+ function stringify_primitive(thing) {
492
+ if (typeof thing === "string") return stringify_string(thing);
493
+ if (thing === void 0) return "void 0";
494
+ if (thing === 0 && 1 / thing < 0) return "-0";
495
+ const str = String(thing);
496
+ if (typeof thing === "number") return str.replace(/^(-)?0\./, "$1.");
497
+ if (typeof thing === "bigint") return thing + "n";
498
+ return str;
499
+ }
500
+ async function render_endpoint(event, event_state, mod, state) {
501
+ const method = (
502
+ /** @type {import('types').HttpMethod} */
503
+ event.request.method
504
+ );
505
+ let handler = mod[method] || mod.fallback;
506
+ if (method === "HEAD" && !mod.HEAD && mod.GET) {
507
+ handler = mod.GET;
508
+ }
509
+ if (!handler) {
510
+ return method_not_allowed(mod, method);
511
+ }
512
+ const prerender = mod.prerender ?? state.prerender_default;
513
+ if (prerender && (mod.POST || mod.PATCH || mod.PUT || mod.DELETE)) {
514
+ throw new Error("Cannot prerender endpoints that have mutative methods");
515
+ }
516
+ if (state.prerendering && !state.prerendering.inside_reroute && !prerender) {
517
+ if (state.depth > 0) {
518
+ throw new Error(`${event.route.id} is not prerenderable`);
519
+ } else {
520
+ return new Response(void 0, { status: 204 });
521
+ }
522
+ }
523
+ try {
524
+ event_state.allows_commands = true;
525
+ const response = await with_request_store(
526
+ { event, state: event_state },
527
+ () => handler(
528
+ /** @type {import('@sveltejs/kit').RequestEvent<Record<string, any>>} */
529
+ event
530
+ )
531
+ );
532
+ if (!(response instanceof Response)) {
533
+ throw new Error(
534
+ `Invalid response from route ${event.url.pathname}: handler should return a Response object`
535
+ );
536
+ }
537
+ if (state.prerendering && (!state.prerendering.inside_reroute || prerender)) {
538
+ const cloned = new Response(response.clone().body, {
539
+ status: response.status,
540
+ statusText: response.statusText,
541
+ headers: new Headers(response.headers)
542
+ });
543
+ cloned.headers.set("x-sveltekit-prerender", String(prerender));
544
+ if (state.prerendering.inside_reroute && prerender) {
545
+ cloned.headers.set(
546
+ "x-sveltekit-routeid",
547
+ encodeURI(
548
+ /** @type {string} */
549
+ event.route.id
550
+ )
551
+ );
552
+ state.prerendering.dependencies.set(event.url.pathname, { response: cloned, body: null });
553
+ } else {
554
+ return cloned;
555
+ }
556
+ }
557
+ return response;
558
+ } catch (e) {
559
+ if (e instanceof Redirect) {
560
+ return new Response(void 0, {
561
+ status: e.status,
562
+ headers: { location: e.location }
563
+ });
564
+ }
565
+ throw e;
566
+ }
567
+ }
568
+ function is_endpoint_request(event) {
569
+ const { method, headers: headers2 } = event.request;
570
+ if (ENDPOINT_METHODS.includes(method) && !PAGE_METHODS.includes(method)) {
571
+ return true;
572
+ }
573
+ if (method === "POST" && headers2.get("x-sveltekit-action") === "true") return false;
574
+ const accept = event.request.headers.get("accept") ?? "*/*";
575
+ return negotiate(accept, ["*", "text/html"]) !== "text/html";
576
+ }
577
+ function compact(arr) {
578
+ return arr.filter(
579
+ /** @returns {val is NonNullable<T>} */
580
+ (val) => val != null
581
+ );
582
+ }
583
+ const DATA_SUFFIX = "/__data.json";
584
+ const HTML_DATA_SUFFIX = ".html__data.json";
585
+ function has_data_suffix(pathname) {
586
+ return pathname.endsWith(DATA_SUFFIX) || pathname.endsWith(HTML_DATA_SUFFIX);
587
+ }
588
+ function add_data_suffix(pathname) {
589
+ if (pathname.endsWith(".html")) return pathname.replace(/\.html$/, HTML_DATA_SUFFIX);
590
+ return pathname.replace(/\/$/, "") + DATA_SUFFIX;
591
+ }
592
+ function strip_data_suffix(pathname) {
593
+ if (pathname.endsWith(HTML_DATA_SUFFIX)) {
594
+ return pathname.slice(0, -HTML_DATA_SUFFIX.length) + ".html";
595
+ }
596
+ return pathname.slice(0, -DATA_SUFFIX.length);
597
+ }
598
+ const ROUTE_SUFFIX = "/__route.js";
599
+ function has_resolution_suffix(pathname) {
600
+ return pathname.endsWith(ROUTE_SUFFIX);
601
+ }
602
+ function add_resolution_suffix(pathname) {
603
+ return pathname.replace(/\/$/, "") + ROUTE_SUFFIX;
604
+ }
605
+ function strip_resolution_suffix(pathname) {
606
+ return pathname.slice(0, -ROUTE_SUFFIX.length);
607
+ }
608
+ const noop_span = {
609
+ spanContext() {
610
+ return noop_span_context;
611
+ },
612
+ setAttribute() {
613
+ return this;
614
+ },
615
+ setAttributes() {
616
+ return this;
617
+ },
618
+ addEvent() {
619
+ return this;
620
+ },
621
+ setStatus() {
622
+ return this;
623
+ },
624
+ updateName() {
625
+ return this;
626
+ },
627
+ end() {
628
+ return this;
629
+ },
630
+ isRecording() {
631
+ return false;
632
+ },
633
+ recordException() {
634
+ return this;
635
+ },
636
+ addLink() {
637
+ return this;
638
+ },
639
+ addLinks() {
640
+ return this;
641
+ }
642
+ };
643
+ const noop_span_context = {
644
+ traceId: "",
645
+ spanId: "",
646
+ traceFlags: 0
647
+ };
648
+ let otel = null;
649
+ {
650
+ otel = import('./index15-CZcDPpaY.js').then((module) => {
651
+ return {
652
+ tracer: module.trace.getTracer("sveltekit"),
653
+ propagation: module.propagation,
654
+ context: module.context,
655
+ SpanStatusCode: module.SpanStatusCode
656
+ };
657
+ }).catch(() => {
658
+ throw new Error(
659
+ "Tracing is enabled (see `config.kit.experimental.instrumentation.server` in your svelte.config.js), but `@opentelemetry/api` is not available. This error will likely resolve itself when you set up your tracing instrumentation in `instrumentation.server.js`. For more information, see https://svelte.dev/docs/kit/observability#opentelemetry-api"
660
+ );
661
+ });
662
+ }
663
+ async function record_span({ name, attributes, fn }) {
664
+ if (otel === null) {
665
+ return fn(noop_span);
666
+ }
667
+ const { SpanStatusCode, tracer } = await otel;
668
+ return tracer.startActiveSpan(name, { attributes }, async (span) => {
669
+ try {
670
+ return await fn(span);
671
+ } catch (error2) {
672
+ if (error2 instanceof HttpError) {
673
+ span.setAttributes({
674
+ [`${name}.result.type`]: "known_error",
675
+ [`${name}.result.status`]: error2.status,
676
+ [`${name}.result.message`]: error2.body.message
677
+ });
678
+ if (error2.status >= 500) {
679
+ span.recordException({
680
+ name: "HttpError",
681
+ message: error2.body.message
682
+ });
683
+ span.setStatus({
684
+ code: SpanStatusCode.ERROR,
685
+ message: error2.body.message
686
+ });
687
+ }
688
+ } else if (error2 instanceof Redirect) {
689
+ span.setAttributes({
690
+ [`${name}.result.type`]: "redirect",
691
+ [`${name}.result.status`]: error2.status,
692
+ [`${name}.result.location`]: error2.location
693
+ });
694
+ } else if (error2 instanceof Error) {
695
+ span.setAttributes({
696
+ [`${name}.result.type`]: "unknown_error"
697
+ });
698
+ span.recordException({
699
+ name: error2.name,
700
+ message: error2.message,
701
+ stack: error2.stack
702
+ });
703
+ span.setStatus({
704
+ code: SpanStatusCode.ERROR,
705
+ message: error2.message
706
+ });
707
+ } else {
708
+ span.setAttributes({
709
+ [`${name}.result.type`]: "unknown_error"
710
+ });
711
+ span.setStatus({ code: SpanStatusCode.ERROR });
712
+ }
713
+ throw error2;
714
+ } finally {
715
+ span.end();
716
+ }
717
+ });
718
+ }
719
+ function is_action_json_request(event) {
720
+ const accept = negotiate(event.request.headers.get("accept") ?? "*/*", [
721
+ "application/json",
722
+ "text/html"
723
+ ]);
724
+ return accept === "application/json" && event.request.method === "POST";
725
+ }
726
+ async function handle_action_json_request(event, event_state, options2, server) {
727
+ const actions = server?.actions;
728
+ if (!actions) {
729
+ const no_actions_error = new SvelteKitError(
730
+ 405,
731
+ "Method Not Allowed",
732
+ `POST method not allowed. No form actions exist for ${"this page"}`
733
+ );
734
+ return action_json(
735
+ {
736
+ type: "error",
737
+ error: await handle_error_and_jsonify(event, event_state, options2, no_actions_error)
738
+ },
739
+ {
740
+ status: no_actions_error.status,
741
+ headers: {
742
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
743
+ // "The server must generate an Allow header field in a 405 status code response"
744
+ allow: "GET"
745
+ }
746
+ }
747
+ );
748
+ }
749
+ check_named_default_separate(actions);
750
+ try {
751
+ const data = await call_action(event, event_state, actions);
752
+ if (browser) ;
753
+ if (data instanceof ActionFailure) {
754
+ return action_json({
755
+ type: "failure",
756
+ status: data.status,
757
+ // @ts-expect-error we assign a string to what is supposed to be an object. That's ok
758
+ // because we don't use the object outside, and this way we have better code navigation
759
+ // through knowing where the related interface is used.
760
+ data: stringify_action_response(
761
+ data.data,
762
+ /** @type {string} */
763
+ event.route.id,
764
+ options2.hooks.transport
765
+ )
766
+ });
767
+ } else {
768
+ return action_json({
769
+ type: "success",
770
+ status: data ? 200 : 204,
771
+ // @ts-expect-error see comment above
772
+ data: stringify_action_response(
773
+ data,
774
+ /** @type {string} */
775
+ event.route.id,
776
+ options2.hooks.transport
777
+ )
778
+ });
779
+ }
780
+ } catch (e) {
781
+ const err = normalize_error(e);
782
+ if (err instanceof Redirect) {
783
+ return action_json_redirect(err);
784
+ }
785
+ return action_json(
786
+ {
787
+ type: "error",
788
+ error: await handle_error_and_jsonify(
789
+ event,
790
+ event_state,
791
+ options2,
792
+ check_incorrect_fail_use(err)
793
+ )
794
+ },
795
+ {
796
+ status: get_status(err)
797
+ }
798
+ );
799
+ }
800
+ }
801
+ function check_incorrect_fail_use(error2) {
802
+ return error2 instanceof ActionFailure ? new Error('Cannot "throw fail()". Use "return fail()"') : error2;
803
+ }
804
+ function action_json_redirect(redirect) {
805
+ return action_json({
806
+ type: "redirect",
807
+ status: redirect.status,
808
+ location: redirect.location
809
+ });
810
+ }
811
+ function action_json(data, init2) {
812
+ return json(data, init2);
813
+ }
814
+ function is_action_request(event) {
815
+ return event.request.method === "POST";
816
+ }
817
+ async function handle_action_request(event, event_state, server) {
818
+ const actions = server?.actions;
819
+ if (!actions) {
820
+ event.setHeaders({
821
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
822
+ // "The server must generate an Allow header field in a 405 status code response"
823
+ allow: "GET"
824
+ });
825
+ return {
826
+ type: "error",
827
+ error: new SvelteKitError(
828
+ 405,
829
+ "Method Not Allowed",
830
+ `POST method not allowed. No form actions exist for ${"this page"}`
831
+ )
832
+ };
833
+ }
834
+ check_named_default_separate(actions);
835
+ try {
836
+ const data = await call_action(event, event_state, actions);
837
+ if (browser) ;
838
+ if (data instanceof ActionFailure) {
839
+ return {
840
+ type: "failure",
841
+ status: data.status,
842
+ data: data.data
843
+ };
844
+ } else {
845
+ return {
846
+ type: "success",
847
+ status: 200,
848
+ // @ts-expect-error this will be removed upon serialization, so `undefined` is the same as omission
849
+ data
850
+ };
851
+ }
852
+ } catch (e) {
853
+ const err = normalize_error(e);
854
+ if (err instanceof Redirect) {
855
+ return {
856
+ type: "redirect",
857
+ status: err.status,
858
+ location: err.location
859
+ };
860
+ }
861
+ return {
862
+ type: "error",
863
+ error: check_incorrect_fail_use(err)
864
+ };
865
+ }
866
+ }
867
+ function check_named_default_separate(actions) {
868
+ if (actions.default && Object.keys(actions).length > 1) {
869
+ throw new Error(
870
+ "When using named actions, the default action cannot be used. See the docs for more info: https://svelte.dev/docs/kit/form-actions#named-actions"
871
+ );
872
+ }
873
+ }
874
+ async function call_action(event, event_state, actions) {
875
+ const url = new URL(event.request.url);
876
+ let name = "default";
877
+ for (const param of url.searchParams) {
878
+ if (param[0].startsWith("/")) {
879
+ name = param[0].slice(1);
880
+ if (name === "default") {
881
+ throw new Error('Cannot use reserved action name "default"');
882
+ }
883
+ break;
884
+ }
885
+ }
886
+ const action = actions[name];
887
+ if (!action) {
888
+ throw new SvelteKitError(404, "Not Found", `No action with name '${name}' found`);
889
+ }
890
+ if (!is_form_content_type(event.request)) {
891
+ throw new SvelteKitError(
892
+ 415,
893
+ "Unsupported Media Type",
894
+ `Form actions expect form-encoded data — received ${event.request.headers.get(
895
+ "content-type"
896
+ )}`
897
+ );
898
+ }
899
+ return record_span({
900
+ name: "sveltekit.form_action",
901
+ attributes: {
902
+ "sveltekit.form_action.name": name,
903
+ "http.route": event.route.id || "unknown"
904
+ },
905
+ fn: async (current2) => {
906
+ const traced_event = merge_tracing(event, current2);
907
+ event_state.allows_commands = true;
908
+ const result = await with_request_store(
909
+ { event: traced_event, state: event_state },
910
+ () => action(traced_event)
911
+ );
912
+ if (result instanceof ActionFailure) {
913
+ current2.setAttributes({
914
+ "sveltekit.form_action.result.type": "failure",
915
+ "sveltekit.form_action.result.status": result.status
916
+ });
917
+ }
918
+ return result;
919
+ }
920
+ });
921
+ }
922
+ function uneval_action_response(data, route_id, transport) {
923
+ const replacer = (thing) => {
924
+ for (const key2 in transport) {
925
+ const encoded = transport[key2].encode(thing);
926
+ if (encoded) {
927
+ return `app.decode('${key2}', ${uneval(encoded, replacer)})`;
928
+ }
929
+ }
930
+ };
931
+ return try_serialize(data, (value) => uneval(value, replacer), route_id);
932
+ }
933
+ function stringify_action_response(data, route_id, transport) {
934
+ const encoders = Object.fromEntries(
935
+ Object.entries(transport).map(([key2, value]) => [key2, value.encode])
936
+ );
937
+ return try_serialize(data, (value) => stringify$1(value, encoders), route_id);
938
+ }
939
+ function try_serialize(data, fn, route_id) {
940
+ try {
941
+ return fn(data);
942
+ } catch (e) {
943
+ const error2 = (
944
+ /** @type {any} */
945
+ e
946
+ );
947
+ if (data instanceof Response) {
948
+ throw new Error(
949
+ `Data returned from action inside ${route_id} is not serializable. Form actions need to return plain objects or fail(). E.g. return { success: true } or return fail(400, { message: "invalid" });`,
950
+ { cause: e }
951
+ );
952
+ }
953
+ if ("path" in error2) {
954
+ let message = `Data returned from action inside ${route_id} is not serializable: ${error2.message}`;
955
+ if (error2.path !== "") message += ` (data.${error2.path})`;
956
+ throw new Error(message, { cause: e });
957
+ }
958
+ throw error2;
959
+ }
960
+ }
961
+ function create_async_iterator() {
962
+ let resolved = -1;
963
+ let returned = -1;
964
+ const deferred = [];
965
+ return {
966
+ iterate: (transform = (x) => x) => {
967
+ return {
968
+ [Symbol.asyncIterator]() {
969
+ return {
970
+ next: async () => {
971
+ const next = deferred[++returned];
972
+ if (!next) return { value: null, done: true };
973
+ const value = await next.promise;
974
+ return { value: transform(value), done: false };
975
+ }
976
+ };
977
+ }
978
+ };
979
+ },
980
+ add: (promise) => {
981
+ deferred.push(with_resolvers());
982
+ void promise.then((value) => {
983
+ deferred[++resolved].resolve(value);
984
+ });
985
+ }
986
+ };
987
+ }
988
+ function server_data_serializer(event, event_state, options2) {
989
+ let promise_id = 1;
990
+ let max_nodes = -1;
991
+ const iterator = create_async_iterator();
992
+ const global = get_global_name(options2);
993
+ function get_replacer(index) {
994
+ return function replacer(thing) {
995
+ if (typeof thing?.then === "function") {
996
+ const id = promise_id++;
997
+ const promise = thing.then(
998
+ /** @param {any} data */
999
+ (data) => ({ data })
1000
+ ).catch(
1001
+ /** @param {any} error */
1002
+ async (error2) => ({
1003
+ error: await handle_error_and_jsonify(event, event_state, options2, error2)
1004
+ })
1005
+ ).then(
1006
+ /**
1007
+ * @param {{data: any; error: any}} result
1008
+ */
1009
+ async ({ data, error: error2 }) => {
1010
+ let str;
1011
+ try {
1012
+ str = uneval(error2 ? [, error2] : [data], replacer);
1013
+ } catch {
1014
+ error2 = await handle_error_and_jsonify(
1015
+ event,
1016
+ event_state,
1017
+ options2,
1018
+ new Error(`Failed to serialize promise while rendering ${event.route.id}`)
1019
+ );
1020
+ str = uneval([, error2], replacer);
1021
+ }
1022
+ return {
1023
+ index,
1024
+ str: `${global}.resolve(${id}, ${str.includes("app.decode") ? `(app) => ${str}` : `() => ${str}`})`
1025
+ };
1026
+ }
1027
+ );
1028
+ iterator.add(promise);
1029
+ return `${global}.defer(${id})`;
1030
+ } else {
1031
+ for (const key2 in options2.hooks.transport) {
1032
+ const encoded = options2.hooks.transport[key2].encode(thing);
1033
+ if (encoded) {
1034
+ return `app.decode('${key2}', ${uneval(encoded, replacer)})`;
1035
+ }
1036
+ }
1037
+ }
1038
+ };
1039
+ }
1040
+ const strings = (
1041
+ /** @type {string[]} */
1042
+ []
1043
+ );
1044
+ return {
1045
+ set_max_nodes(i) {
1046
+ max_nodes = i;
1047
+ },
1048
+ add_node(i, node) {
1049
+ try {
1050
+ if (!node) {
1051
+ strings[i] = "null";
1052
+ return;
1053
+ }
1054
+ const payload = { type: "data", data: node.data, uses: serialize_uses(node) };
1055
+ if (node.slash) payload.slash = node.slash;
1056
+ strings[i] = uneval(payload, get_replacer(i));
1057
+ } catch (e) {
1058
+ e.path = e.path.slice(1);
1059
+ throw new Error(clarify_devalue_error(
1060
+ event,
1061
+ /** @type {any} */
1062
+ e
1063
+ ), { cause: e });
1064
+ }
1065
+ },
1066
+ get_data(csp) {
1067
+ const open = `<script${csp.script_needs_nonce ? ` nonce="${csp.nonce}"` : ""}>`;
1068
+ const close = `<\/script>
1069
+ `;
1070
+ return {
1071
+ data: `[${compact(max_nodes > -1 ? strings.slice(0, max_nodes) : strings).join(",")}]`,
1072
+ chunks: promise_id > 1 ? iterator.iterate(({ index, str }) => {
1073
+ if (max_nodes > -1 && index >= max_nodes) {
1074
+ return "";
1075
+ }
1076
+ return open + str + close;
1077
+ }) : null
1078
+ };
1079
+ }
1080
+ };
1081
+ }
1082
+ function server_data_serializer_json(event, event_state, options2) {
1083
+ let promise_id = 1;
1084
+ const iterator = create_async_iterator();
1085
+ const reducers = {
1086
+ ...Object.fromEntries(
1087
+ Object.entries(options2.hooks.transport).map(([key2, value]) => [key2, value.encode])
1088
+ ),
1089
+ /** @param {any} thing */
1090
+ Promise: (thing) => {
1091
+ if (typeof thing?.then !== "function") {
1092
+ return;
1093
+ }
1094
+ const id = promise_id++;
1095
+ let key2 = "data";
1096
+ const promise = thing.catch(
1097
+ /** @param {any} e */
1098
+ async (e) => {
1099
+ key2 = "error";
1100
+ return handle_error_and_jsonify(
1101
+ event,
1102
+ event_state,
1103
+ options2,
1104
+ /** @type {any} */
1105
+ e
1106
+ );
1107
+ }
1108
+ ).then(
1109
+ /** @param {any} value */
1110
+ async (value) => {
1111
+ let str;
1112
+ try {
1113
+ str = stringify$1(value, reducers);
1114
+ } catch {
1115
+ const error2 = await handle_error_and_jsonify(
1116
+ event,
1117
+ event_state,
1118
+ options2,
1119
+ new Error(`Failed to serialize promise while rendering ${event.route.id}`)
1120
+ );
1121
+ key2 = "error";
1122
+ str = stringify$1(error2, reducers);
1123
+ }
1124
+ return `{"type":"chunk","id":${id},"${key2}":${str}}
1125
+ `;
1126
+ }
1127
+ );
1128
+ iterator.add(promise);
1129
+ return id;
1130
+ }
1131
+ };
1132
+ const strings = (
1133
+ /** @type {string[]} */
1134
+ []
1135
+ );
1136
+ return {
1137
+ add_node(i, node) {
1138
+ try {
1139
+ if (!node) {
1140
+ strings[i] = "null";
1141
+ return;
1142
+ }
1143
+ if (node.type === "error" || node.type === "skip") {
1144
+ strings[i] = JSON.stringify(node);
1145
+ return;
1146
+ }
1147
+ strings[i] = `{"type":"data","data":${stringify$1(node.data, reducers)},"uses":${JSON.stringify(
1148
+ serialize_uses(node)
1149
+ )}${node.slash ? `,"slash":${JSON.stringify(node.slash)}` : ""}}`;
1150
+ } catch (e) {
1151
+ e.path = "data" + e.path;
1152
+ throw new Error(clarify_devalue_error(
1153
+ event,
1154
+ /** @type {any} */
1155
+ e
1156
+ ), { cause: e });
1157
+ }
1158
+ },
1159
+ get_data() {
1160
+ return {
1161
+ data: `{"type":"data","nodes":[${strings.join(",")}]}
1162
+ `,
1163
+ chunks: promise_id > 1 ? iterator.iterate() : null
1164
+ };
1165
+ }
1166
+ };
1167
+ }
1168
+ async function load_server_data({ event, event_state, state, node, parent }) {
1169
+ if (!node?.server) return null;
1170
+ let is_tracking = true;
1171
+ const uses = {
1172
+ dependencies: /* @__PURE__ */ new Set(),
1173
+ params: /* @__PURE__ */ new Set(),
1174
+ parent: false,
1175
+ route: false,
1176
+ url: false,
1177
+ search_params: /* @__PURE__ */ new Set()
1178
+ };
1179
+ const load = node.server.load;
1180
+ const slash = node.server.trailingSlash;
1181
+ if (!load) {
1182
+ return { type: "data", data: null, uses, slash };
1183
+ }
1184
+ const url = make_trackable(
1185
+ event.url,
1186
+ () => {
1187
+ if (is_tracking) {
1188
+ uses.url = true;
1189
+ }
1190
+ },
1191
+ (param) => {
1192
+ if (is_tracking) {
1193
+ uses.search_params.add(param);
1194
+ }
1195
+ }
1196
+ );
1197
+ if (state.prerendering) {
1198
+ disable_search(url);
1199
+ }
1200
+ let done = false;
1201
+ const result = await record_span({
1202
+ name: "sveltekit.load",
1203
+ attributes: {
1204
+ "sveltekit.load.node_id": node.server_id || "unknown",
1205
+ "sveltekit.load.node_type": get_node_type(node.server_id),
1206
+ "sveltekit.load.environment": "server",
1207
+ "http.route": event.route.id || "unknown"
1208
+ },
1209
+ fn: async (current2) => {
1210
+ const traced_event = merge_tracing(event, current2);
1211
+ const result2 = await with_request_store(
1212
+ { event: traced_event, state: event_state },
1213
+ () => load.call(null, {
1214
+ ...traced_event,
1215
+ fetch: (info, init2) => {
1216
+ const url2 = new URL(info instanceof Request ? info.url : info, event.url);
1217
+ if (browser && done && !uses.dependencies.has(url2.href)) ;
1218
+ return event.fetch(info, init2);
1219
+ },
1220
+ /** @param {string[]} deps */
1221
+ depends: (...deps) => {
1222
+ for (const dep of deps) {
1223
+ const { href } = new URL(dep, event.url);
1224
+ if (browser) ;
1225
+ uses.dependencies.add(href);
1226
+ }
1227
+ },
1228
+ params: new Proxy(event.params, {
1229
+ get: (target, key2) => {
1230
+ if (browser && done && typeof key2 === "string" && !uses.params.has(key2)) ;
1231
+ if (is_tracking) {
1232
+ uses.params.add(key2);
1233
+ }
1234
+ return target[
1235
+ /** @type {string} */
1236
+ key2
1237
+ ];
1238
+ }
1239
+ }),
1240
+ parent: async () => {
1241
+ if (browser && done && !uses.parent) ;
1242
+ if (is_tracking) {
1243
+ uses.parent = true;
1244
+ }
1245
+ return parent();
1246
+ },
1247
+ route: new Proxy(event.route, {
1248
+ get: (target, key2) => {
1249
+ if (browser && done && typeof key2 === "string" && !uses.route) ;
1250
+ if (is_tracking) {
1251
+ uses.route = true;
1252
+ }
1253
+ return target[
1254
+ /** @type {'id'} */
1255
+ key2
1256
+ ];
1257
+ }
1258
+ }),
1259
+ url,
1260
+ untrack(fn) {
1261
+ is_tracking = false;
1262
+ try {
1263
+ return fn();
1264
+ } finally {
1265
+ is_tracking = true;
1266
+ }
1267
+ }
1268
+ })
1269
+ );
1270
+ return result2;
1271
+ }
1272
+ });
1273
+ done = true;
1274
+ return {
1275
+ type: "data",
1276
+ data: result ?? null,
1277
+ uses,
1278
+ slash
1279
+ };
1280
+ }
1281
+ async function load_data({
1282
+ event,
1283
+ event_state,
1284
+ fetched,
1285
+ node,
1286
+ parent,
1287
+ server_data_promise,
1288
+ state,
1289
+ resolve_opts,
1290
+ csr
1291
+ }) {
1292
+ const server_data_node = await server_data_promise;
1293
+ const load = node?.universal?.load;
1294
+ if (!load) {
1295
+ return server_data_node?.data ?? null;
1296
+ }
1297
+ const result = await record_span({
1298
+ name: "sveltekit.load",
1299
+ attributes: {
1300
+ "sveltekit.load.node_id": node.universal_id || "unknown",
1301
+ "sveltekit.load.node_type": get_node_type(node.universal_id),
1302
+ "sveltekit.load.environment": "server",
1303
+ "http.route": event.route.id || "unknown"
1304
+ },
1305
+ fn: async (current2) => {
1306
+ const traced_event = merge_tracing(event, current2);
1307
+ return await with_request_store(
1308
+ { event: traced_event, state: event_state },
1309
+ () => load.call(null, {
1310
+ url: event.url,
1311
+ params: event.params,
1312
+ data: server_data_node?.data ?? null,
1313
+ route: event.route,
1314
+ fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts),
1315
+ setHeaders: event.setHeaders,
1316
+ depends: () => {
1317
+ },
1318
+ parent,
1319
+ untrack: (fn) => fn(),
1320
+ tracing: traced_event.tracing
1321
+ })
1322
+ );
1323
+ }
1324
+ });
1325
+ return result ?? null;
1326
+ }
1327
+ function create_universal_fetch(event, state, fetched, csr, resolve_opts) {
1328
+ const universal_fetch = async (input, init2) => {
1329
+ const cloned_body = input instanceof Request && input.body ? input.clone().body : null;
1330
+ const cloned_headers = input instanceof Request && [...input.headers].length ? new Headers(input.headers) : init2?.headers;
1331
+ let response = await event.fetch(input, init2);
1332
+ const url = new URL(input instanceof Request ? input.url : input, event.url);
1333
+ const same_origin = url.origin === event.url.origin;
1334
+ let dependency;
1335
+ if (same_origin) {
1336
+ if (state.prerendering) {
1337
+ dependency = { response, body: null };
1338
+ state.prerendering.dependencies.set(url.pathname, dependency);
1339
+ }
1340
+ } else if (url.protocol === "https:" || url.protocol === "http:") {
1341
+ const mode = input instanceof Request ? input.mode : init2?.mode ?? "cors";
1342
+ if (mode === "no-cors") {
1343
+ response = new Response("", {
1344
+ status: response.status,
1345
+ statusText: response.statusText,
1346
+ headers: response.headers
1347
+ });
1348
+ } else {
1349
+ const acao = response.headers.get("access-control-allow-origin");
1350
+ if (!acao || acao !== event.url.origin && acao !== "*") {
1351
+ throw new Error(
1352
+ `CORS error: ${acao ? "Incorrect" : "No"} 'Access-Control-Allow-Origin' header is present on the requested resource`
1353
+ );
1354
+ }
1355
+ }
1356
+ }
1357
+ let teed_body;
1358
+ const proxy = new Proxy(response, {
1359
+ get(response2, key2, receiver) {
1360
+ async function push_fetched(body2, is_b64) {
1361
+ const status_number = Number(response2.status);
1362
+ if (isNaN(status_number)) {
1363
+ throw new Error(
1364
+ `response.status is not a number. value: "${response2.status}" type: ${typeof response2.status}`
1365
+ );
1366
+ }
1367
+ fetched.push({
1368
+ url: same_origin ? url.href.slice(event.url.origin.length) : url.href,
1369
+ method: event.request.method,
1370
+ request_body: (
1371
+ /** @type {string | ArrayBufferView | undefined} */
1372
+ input instanceof Request && cloned_body ? await stream_to_string(cloned_body) : init2?.body
1373
+ ),
1374
+ request_headers: cloned_headers,
1375
+ response_body: body2,
1376
+ response: response2,
1377
+ is_b64
1378
+ });
1379
+ }
1380
+ if (key2 === "body") {
1381
+ if (response2.body === null) {
1382
+ return null;
1383
+ }
1384
+ if (teed_body) {
1385
+ return teed_body;
1386
+ }
1387
+ const [a, b] = response2.body.tee();
1388
+ void (async () => {
1389
+ let result = new Uint8Array();
1390
+ for await (const chunk of a) {
1391
+ const combined = new Uint8Array(result.length + chunk.length);
1392
+ combined.set(result, 0);
1393
+ combined.set(chunk, result.length);
1394
+ result = combined;
1395
+ }
1396
+ if (dependency) {
1397
+ dependency.body = new Uint8Array(result);
1398
+ }
1399
+ void push_fetched(base64_encode(result), true);
1400
+ })();
1401
+ return teed_body = b;
1402
+ }
1403
+ if (key2 === "arrayBuffer") {
1404
+ return async () => {
1405
+ const buffer = await response2.arrayBuffer();
1406
+ const bytes = new Uint8Array(buffer);
1407
+ if (dependency) {
1408
+ dependency.body = bytes;
1409
+ }
1410
+ if (buffer instanceof ArrayBuffer) {
1411
+ await push_fetched(base64_encode(bytes), true);
1412
+ }
1413
+ return buffer;
1414
+ };
1415
+ }
1416
+ async function text2() {
1417
+ const body2 = await response2.text();
1418
+ if (body2 === "" && NULL_BODY_STATUS.includes(response2.status)) {
1419
+ await push_fetched(void 0, false);
1420
+ return void 0;
1421
+ }
1422
+ if (!body2 || typeof body2 === "string") {
1423
+ await push_fetched(body2, false);
1424
+ }
1425
+ if (dependency) {
1426
+ dependency.body = body2;
1427
+ }
1428
+ return body2;
1429
+ }
1430
+ if (key2 === "text") {
1431
+ return text2;
1432
+ }
1433
+ if (key2 === "json") {
1434
+ return async () => {
1435
+ const body2 = await text2();
1436
+ return body2 ? JSON.parse(body2) : void 0;
1437
+ };
1438
+ }
1439
+ const value = Reflect.get(response2, key2, response2);
1440
+ if (value instanceof Function) {
1441
+ return Object.defineProperties(
1442
+ /**
1443
+ * @this {any}
1444
+ */
1445
+ function() {
1446
+ return Reflect.apply(value, this === receiver ? response2 : this, arguments);
1447
+ },
1448
+ {
1449
+ name: { value: value.name },
1450
+ length: { value: value.length }
1451
+ }
1452
+ );
1453
+ }
1454
+ return value;
1455
+ }
1456
+ });
1457
+ if (csr) {
1458
+ const get = response.headers.get;
1459
+ response.headers.get = (key2) => {
1460
+ const lower = key2.toLowerCase();
1461
+ const value = get.call(response.headers, lower);
1462
+ if (value && !lower.startsWith("x-sveltekit-")) {
1463
+ const included = resolve_opts.filterSerializedResponseHeaders(lower, value);
1464
+ if (!included) {
1465
+ throw new Error(
1466
+ `Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://svelte.dev/docs/kit/hooks#Server-hooks-handle (at ${event.route.id})`
1467
+ );
1468
+ }
1469
+ }
1470
+ return value;
1471
+ };
1472
+ }
1473
+ return proxy;
1474
+ };
1475
+ return (input, init2) => {
1476
+ const response = universal_fetch(input, init2);
1477
+ response.catch(() => {
1478
+ });
1479
+ return response;
1480
+ };
1481
+ }
1482
+ async function stream_to_string(stream) {
1483
+ let result = "";
1484
+ const reader = stream.getReader();
1485
+ while (true) {
1486
+ const { done, value } = await reader.read();
1487
+ if (done) {
1488
+ break;
1489
+ }
1490
+ result += text_decoder.decode(value);
1491
+ }
1492
+ return result;
1493
+ }
1494
+ function hash(...values) {
1495
+ let hash2 = 5381;
1496
+ for (const value of values) {
1497
+ if (typeof value === "string") {
1498
+ let i = value.length;
1499
+ while (i) hash2 = hash2 * 33 ^ value.charCodeAt(--i);
1500
+ } else if (ArrayBuffer.isView(value)) {
1501
+ const buffer = new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
1502
+ let i = buffer.length;
1503
+ while (i) hash2 = hash2 * 33 ^ buffer[--i];
1504
+ } else {
1505
+ throw new TypeError("value must be a string or TypedArray");
1506
+ }
1507
+ }
1508
+ return (hash2 >>> 0).toString(36);
1509
+ }
1510
+ const replacements = {
1511
+ "<": "\\u003C",
1512
+ "\u2028": "\\u2028",
1513
+ "\u2029": "\\u2029"
1514
+ };
1515
+ const pattern = new RegExp(`[${Object.keys(replacements).join("")}]`, "g");
1516
+ function serialize_data(fetched, filter, prerendering = false) {
1517
+ const headers2 = {};
1518
+ let cache_control = null;
1519
+ let age = null;
1520
+ let varyAny = false;
1521
+ for (const [key2, value] of fetched.response.headers) {
1522
+ if (filter(key2, value)) {
1523
+ headers2[key2] = value;
1524
+ }
1525
+ if (key2 === "cache-control") cache_control = value;
1526
+ else if (key2 === "age") age = value;
1527
+ else if (key2 === "vary" && value.trim() === "*") varyAny = true;
1528
+ }
1529
+ const payload = {
1530
+ status: fetched.response.status,
1531
+ statusText: fetched.response.statusText,
1532
+ headers: headers2,
1533
+ body: fetched.response_body
1534
+ };
1535
+ const safe_payload = JSON.stringify(payload).replace(pattern, (match) => replacements[match]);
1536
+ const attrs = [
1537
+ 'type="application/json"',
1538
+ "data-sveltekit-fetched",
1539
+ `data-url="${escape_html(fetched.url, true)}"`
1540
+ ];
1541
+ if (fetched.is_b64) {
1542
+ attrs.push("data-b64");
1543
+ }
1544
+ if (fetched.request_headers || fetched.request_body) {
1545
+ const values = [];
1546
+ if (fetched.request_headers) {
1547
+ values.push([...new Headers(fetched.request_headers)].join(","));
1548
+ }
1549
+ if (fetched.request_body) {
1550
+ values.push(fetched.request_body);
1551
+ }
1552
+ attrs.push(`data-hash="${hash(...values)}"`);
1553
+ }
1554
+ if (!prerendering && fetched.method === "GET" && cache_control && !varyAny) {
1555
+ const match = /s-maxage=(\d+)/g.exec(cache_control) ?? /max-age=(\d+)/g.exec(cache_control);
1556
+ if (match) {
1557
+ const ttl = +match[1] - +(age ?? "0");
1558
+ attrs.push(`data-ttl="${ttl}"`);
1559
+ }
1560
+ }
1561
+ return `<script ${attrs.join(" ")}>${safe_payload}<\/script>`;
1562
+ }
1563
+ const s = JSON.stringify;
1564
+ function sha256(data) {
1565
+ if (!key[0]) precompute();
1566
+ const out = init.slice(0);
1567
+ const array2 = encode(data);
1568
+ for (let i = 0; i < array2.length; i += 16) {
1569
+ const w = array2.subarray(i, i + 16);
1570
+ let tmp;
1571
+ let a;
1572
+ let b;
1573
+ let out0 = out[0];
1574
+ let out1 = out[1];
1575
+ let out2 = out[2];
1576
+ let out3 = out[3];
1577
+ let out4 = out[4];
1578
+ let out5 = out[5];
1579
+ let out6 = out[6];
1580
+ let out7 = out[7];
1581
+ for (let i2 = 0; i2 < 64; i2++) {
1582
+ if (i2 < 16) {
1583
+ tmp = w[i2];
1584
+ } else {
1585
+ a = w[i2 + 1 & 15];
1586
+ b = w[i2 + 14 & 15];
1587
+ tmp = w[i2 & 15] = (a >>> 7 ^ a >>> 18 ^ a >>> 3 ^ a << 25 ^ a << 14) + (b >>> 17 ^ b >>> 19 ^ b >>> 10 ^ b << 15 ^ b << 13) + w[i2 & 15] + w[i2 + 9 & 15] | 0;
1588
+ }
1589
+ tmp = tmp + out7 + (out4 >>> 6 ^ out4 >>> 11 ^ out4 >>> 25 ^ out4 << 26 ^ out4 << 21 ^ out4 << 7) + (out6 ^ out4 & (out5 ^ out6)) + key[i2];
1590
+ out7 = out6;
1591
+ out6 = out5;
1592
+ out5 = out4;
1593
+ out4 = out3 + tmp | 0;
1594
+ out3 = out2;
1595
+ out2 = out1;
1596
+ out1 = out0;
1597
+ out0 = tmp + (out1 & out2 ^ out3 & (out1 ^ out2)) + (out1 >>> 2 ^ out1 >>> 13 ^ out1 >>> 22 ^ out1 << 30 ^ out1 << 19 ^ out1 << 10) | 0;
1598
+ }
1599
+ out[0] = out[0] + out0 | 0;
1600
+ out[1] = out[1] + out1 | 0;
1601
+ out[2] = out[2] + out2 | 0;
1602
+ out[3] = out[3] + out3 | 0;
1603
+ out[4] = out[4] + out4 | 0;
1604
+ out[5] = out[5] + out5 | 0;
1605
+ out[6] = out[6] + out6 | 0;
1606
+ out[7] = out[7] + out7 | 0;
1607
+ }
1608
+ const bytes = new Uint8Array(out.buffer);
1609
+ reverse_endianness(bytes);
1610
+ return btoa(String.fromCharCode(...bytes));
1611
+ }
1612
+ const init = new Uint32Array(8);
1613
+ const key = new Uint32Array(64);
1614
+ function precompute() {
1615
+ function frac(x) {
1616
+ return (x - Math.floor(x)) * 4294967296;
1617
+ }
1618
+ let prime = 2;
1619
+ for (let i = 0; i < 64; prime++) {
1620
+ let is_prime = true;
1621
+ for (let factor = 2; factor * factor <= prime; factor++) {
1622
+ if (prime % factor === 0) {
1623
+ is_prime = false;
1624
+ break;
1625
+ }
1626
+ }
1627
+ if (is_prime) {
1628
+ if (i < 8) {
1629
+ init[i] = frac(prime ** (1 / 2));
1630
+ }
1631
+ key[i] = frac(prime ** (1 / 3));
1632
+ i++;
1633
+ }
1634
+ }
1635
+ }
1636
+ function reverse_endianness(bytes) {
1637
+ for (let i = 0; i < bytes.length; i += 4) {
1638
+ const a = bytes[i + 0];
1639
+ const b = bytes[i + 1];
1640
+ const c = bytes[i + 2];
1641
+ const d = bytes[i + 3];
1642
+ bytes[i + 0] = d;
1643
+ bytes[i + 1] = c;
1644
+ bytes[i + 2] = b;
1645
+ bytes[i + 3] = a;
1646
+ }
1647
+ }
1648
+ function encode(str) {
1649
+ const encoded = text_encoder.encode(str);
1650
+ const length = encoded.length * 8;
1651
+ const size = 512 * Math.ceil((length + 65) / 512);
1652
+ const bytes = new Uint8Array(size / 8);
1653
+ bytes.set(encoded);
1654
+ bytes[encoded.length] = 128;
1655
+ reverse_endianness(bytes);
1656
+ const words = new Uint32Array(bytes.buffer);
1657
+ words[words.length - 2] = Math.floor(length / 4294967296);
1658
+ words[words.length - 1] = length;
1659
+ return words;
1660
+ }
1661
+ const array = new Uint8Array(16);
1662
+ function generate_nonce() {
1663
+ crypto.getRandomValues(array);
1664
+ return btoa(String.fromCharCode(...array));
1665
+ }
1666
+ const quoted = /* @__PURE__ */ new Set([
1667
+ "self",
1668
+ "unsafe-eval",
1669
+ "unsafe-hashes",
1670
+ "unsafe-inline",
1671
+ "none",
1672
+ "strict-dynamic",
1673
+ "report-sample",
1674
+ "wasm-unsafe-eval",
1675
+ "script"
1676
+ ]);
1677
+ const crypto_pattern = /^(nonce|sha\d\d\d)-/;
1678
+ class BaseProvider {
1679
+ /** @type {boolean} */
1680
+ #use_hashes;
1681
+ /** @type {boolean} */
1682
+ #script_needs_csp;
1683
+ /** @type {boolean} */
1684
+ #script_src_needs_csp;
1685
+ /** @type {boolean} */
1686
+ #script_src_elem_needs_csp;
1687
+ /** @type {boolean} */
1688
+ #style_needs_csp;
1689
+ /** @type {boolean} */
1690
+ #style_src_needs_csp;
1691
+ /** @type {boolean} */
1692
+ #style_src_attr_needs_csp;
1693
+ /** @type {boolean} */
1694
+ #style_src_elem_needs_csp;
1695
+ /** @type {import('types').CspDirectives} */
1696
+ #directives;
1697
+ /** @type {Set<import('types').Csp.Source>} */
1698
+ #script_src;
1699
+ /** @type {Set<import('types').Csp.Source>} */
1700
+ #script_src_elem;
1701
+ /** @type {Set<import('types').Csp.Source>} */
1702
+ #style_src;
1703
+ /** @type {Set<import('types').Csp.Source>} */
1704
+ #style_src_attr;
1705
+ /** @type {Set<import('types').Csp.Source>} */
1706
+ #style_src_elem;
1707
+ /** @type {boolean} */
1708
+ script_needs_nonce;
1709
+ /** @type {boolean} */
1710
+ style_needs_nonce;
1711
+ /** @type {boolean} */
1712
+ script_needs_hash;
1713
+ /** @type {string} */
1714
+ #nonce;
1715
+ /**
1716
+ * @param {boolean} use_hashes
1717
+ * @param {import('types').CspDirectives} directives
1718
+ * @param {string} nonce
1719
+ */
1720
+ constructor(use_hashes, directives, nonce) {
1721
+ this.#use_hashes = use_hashes;
1722
+ this.#directives = directives;
1723
+ const d = this.#directives;
1724
+ this.#script_src = /* @__PURE__ */ new Set();
1725
+ this.#script_src_elem = /* @__PURE__ */ new Set();
1726
+ this.#style_src = /* @__PURE__ */ new Set();
1727
+ this.#style_src_attr = /* @__PURE__ */ new Set();
1728
+ this.#style_src_elem = /* @__PURE__ */ new Set();
1729
+ const effective_script_src = d["script-src"] || d["default-src"];
1730
+ const script_src_elem = d["script-src-elem"];
1731
+ const effective_style_src = d["style-src"] || d["default-src"];
1732
+ const style_src_attr = d["style-src-attr"];
1733
+ const style_src_elem = d["style-src-elem"];
1734
+ const style_needs_csp = (directive) => !!directive && !directive.some((value) => value === "unsafe-inline");
1735
+ const script_needs_csp = (directive) => !!directive && (!directive.some((value) => value === "unsafe-inline") || directive.some((value) => value === "strict-dynamic"));
1736
+ this.#script_src_needs_csp = script_needs_csp(effective_script_src);
1737
+ this.#script_src_elem_needs_csp = script_needs_csp(script_src_elem);
1738
+ this.#style_src_needs_csp = style_needs_csp(effective_style_src);
1739
+ this.#style_src_attr_needs_csp = style_needs_csp(style_src_attr);
1740
+ this.#style_src_elem_needs_csp = style_needs_csp(style_src_elem);
1741
+ this.#script_needs_csp = this.#script_src_needs_csp || this.#script_src_elem_needs_csp;
1742
+ this.#style_needs_csp = this.#style_src_needs_csp || this.#style_src_attr_needs_csp || this.#style_src_elem_needs_csp;
1743
+ this.script_needs_nonce = this.#script_needs_csp && !this.#use_hashes;
1744
+ this.style_needs_nonce = this.#style_needs_csp && !this.#use_hashes;
1745
+ this.script_needs_hash = this.#script_needs_csp && this.#use_hashes;
1746
+ this.#nonce = nonce;
1747
+ }
1748
+ /** @param {string} content */
1749
+ add_script(content) {
1750
+ if (!this.#script_needs_csp) return;
1751
+ const source = this.#use_hashes ? `sha256-${sha256(content)}` : `nonce-${this.#nonce}`;
1752
+ if (this.#script_src_needs_csp) {
1753
+ this.#script_src.add(source);
1754
+ }
1755
+ if (this.#script_src_elem_needs_csp) {
1756
+ this.#script_src_elem.add(source);
1757
+ }
1758
+ }
1759
+ /** @param {`sha256-${string}`[]} hashes */
1760
+ add_script_hashes(hashes) {
1761
+ for (const hash2 of hashes) {
1762
+ if (this.#script_src_needs_csp) {
1763
+ this.#script_src.add(hash2);
1764
+ }
1765
+ if (this.#script_src_elem_needs_csp) {
1766
+ this.#script_src_elem.add(hash2);
1767
+ }
1768
+ }
1769
+ }
1770
+ /** @param {string} content */
1771
+ add_style(content) {
1772
+ if (!this.#style_needs_csp) return;
1773
+ const source = this.#use_hashes ? `sha256-${sha256(content)}` : `nonce-${this.#nonce}`;
1774
+ if (this.#style_src_needs_csp) {
1775
+ this.#style_src.add(source);
1776
+ }
1777
+ if (this.#style_src_attr_needs_csp) {
1778
+ this.#style_src_attr.add(source);
1779
+ }
1780
+ if (this.#style_src_elem_needs_csp) {
1781
+ const sha256_empty_comment_hash = "sha256-9OlNO0DNEeaVzHL4RZwCLsBHA8WBQ8toBp/4F5XV2nc=";
1782
+ const d = this.#directives;
1783
+ if (d["style-src-elem"] && !d["style-src-elem"].includes(sha256_empty_comment_hash) && !this.#style_src_elem.has(sha256_empty_comment_hash)) {
1784
+ this.#style_src_elem.add(sha256_empty_comment_hash);
1785
+ }
1786
+ if (source !== sha256_empty_comment_hash) {
1787
+ this.#style_src_elem.add(source);
1788
+ }
1789
+ }
1790
+ }
1791
+ /**
1792
+ * @param {boolean} [is_meta]
1793
+ */
1794
+ get_header(is_meta = false) {
1795
+ const header = [];
1796
+ const directives = { ...this.#directives };
1797
+ if (this.#style_src.size > 0) {
1798
+ directives["style-src"] = [
1799
+ ...directives["style-src"] || directives["default-src"] || [],
1800
+ ...this.#style_src
1801
+ ];
1802
+ }
1803
+ if (this.#style_src_attr.size > 0) {
1804
+ directives["style-src-attr"] = [
1805
+ ...directives["style-src-attr"] || [],
1806
+ ...this.#style_src_attr
1807
+ ];
1808
+ }
1809
+ if (this.#style_src_elem.size > 0) {
1810
+ directives["style-src-elem"] = [
1811
+ ...directives["style-src-elem"] || [],
1812
+ ...this.#style_src_elem
1813
+ ];
1814
+ }
1815
+ if (this.#script_src.size > 0) {
1816
+ directives["script-src"] = [
1817
+ ...directives["script-src"] || directives["default-src"] || [],
1818
+ ...this.#script_src
1819
+ ];
1820
+ }
1821
+ if (this.#script_src_elem.size > 0) {
1822
+ directives["script-src-elem"] = [
1823
+ ...directives["script-src-elem"] || [],
1824
+ ...this.#script_src_elem
1825
+ ];
1826
+ }
1827
+ for (const key2 in directives) {
1828
+ if (is_meta && (key2 === "frame-ancestors" || key2 === "report-uri" || key2 === "sandbox")) {
1829
+ continue;
1830
+ }
1831
+ const value = (
1832
+ /** @type {string[] | true} */
1833
+ directives[key2]
1834
+ );
1835
+ if (!value) continue;
1836
+ const directive = [key2];
1837
+ if (Array.isArray(value)) {
1838
+ value.forEach((value2) => {
1839
+ if (quoted.has(value2) || crypto_pattern.test(value2)) {
1840
+ directive.push(`'${value2}'`);
1841
+ } else {
1842
+ directive.push(value2);
1843
+ }
1844
+ });
1845
+ }
1846
+ header.push(directive.join(" "));
1847
+ }
1848
+ return header.join("; ");
1849
+ }
1850
+ }
1851
+ class CspProvider extends BaseProvider {
1852
+ get_meta() {
1853
+ const content = this.get_header(true);
1854
+ if (!content) {
1855
+ return;
1856
+ }
1857
+ return `<meta http-equiv="content-security-policy" content="${escape_html(content, true)}">`;
1858
+ }
1859
+ }
1860
+ class CspReportOnlyProvider extends BaseProvider {
1861
+ /**
1862
+ * @param {boolean} use_hashes
1863
+ * @param {import('types').CspDirectives} directives
1864
+ * @param {string} nonce
1865
+ */
1866
+ constructor(use_hashes, directives, nonce) {
1867
+ super(use_hashes, directives, nonce);
1868
+ if (Object.values(directives).filter((v) => !!v).length > 0) {
1869
+ const has_report_to = directives["report-to"]?.length ?? 0 > 0;
1870
+ const has_report_uri = directives["report-uri"]?.length ?? 0 > 0;
1871
+ if (!has_report_to && !has_report_uri) {
1872
+ throw Error(
1873
+ "`content-security-policy-report-only` must be specified with either the `report-to` or `report-uri` directives, or both"
1874
+ );
1875
+ }
1876
+ }
1877
+ }
1878
+ }
1879
+ class Csp {
1880
+ /** @readonly */
1881
+ nonce = generate_nonce();
1882
+ /** @type {CspProvider} */
1883
+ csp_provider;
1884
+ /** @type {CspReportOnlyProvider} */
1885
+ report_only_provider;
1886
+ /**
1887
+ * @param {import('./types.js').CspConfig} config
1888
+ * @param {import('./types.js').CspOpts} opts
1889
+ */
1890
+ constructor({ mode, directives, reportOnly }, { prerender }) {
1891
+ const use_hashes = mode === "hash" || mode === "auto" && prerender;
1892
+ this.csp_provider = new CspProvider(use_hashes, directives, this.nonce);
1893
+ this.report_only_provider = new CspReportOnlyProvider(use_hashes, reportOnly, this.nonce);
1894
+ }
1895
+ get script_needs_hash() {
1896
+ return this.csp_provider.script_needs_hash || this.report_only_provider.script_needs_hash;
1897
+ }
1898
+ get script_needs_nonce() {
1899
+ return this.csp_provider.script_needs_nonce || this.report_only_provider.script_needs_nonce;
1900
+ }
1901
+ get style_needs_nonce() {
1902
+ return this.csp_provider.style_needs_nonce || this.report_only_provider.style_needs_nonce;
1903
+ }
1904
+ /** @param {string} content */
1905
+ add_script(content) {
1906
+ this.csp_provider.add_script(content);
1907
+ this.report_only_provider.add_script(content);
1908
+ }
1909
+ /** @param {`sha256-${string}`[]} hashes */
1910
+ add_script_hashes(hashes) {
1911
+ this.csp_provider.add_script_hashes(hashes);
1912
+ this.report_only_provider.add_script_hashes(hashes);
1913
+ }
1914
+ /** @param {string} content */
1915
+ add_style(content) {
1916
+ this.csp_provider.add_style(content);
1917
+ this.report_only_provider.add_style(content);
1918
+ }
1919
+ }
1920
+ function generate_route_object(route, url, manifest) {
1921
+ const { errors, layouts, leaf } = route;
1922
+ const nodes = [...errors, ...layouts.map((l) => l?.[1]), leaf[1]].filter((n) => typeof n === "number").map((n) => `'${n}': () => ${create_client_import(manifest._.client.nodes?.[n], url)}`).join(",\n ");
1923
+ return [
1924
+ `{
1925
+ id: ${s(route.id)}`,
1926
+ `errors: ${s(route.errors)}`,
1927
+ `layouts: ${s(route.layouts)}`,
1928
+ `leaf: ${s(route.leaf)}`,
1929
+ `nodes: {
1930
+ ${nodes}
1931
+ }
1932
+ }`
1933
+ ].join(",\n ");
1934
+ }
1935
+ function create_client_import(import_path, url) {
1936
+ if (!import_path) return "Promise.resolve({})";
1937
+ if (import_path[0] === "/") {
1938
+ return `import('${import_path}')`;
1939
+ }
1940
+ if (assets !== "") {
1941
+ return `import('${assets}/${import_path}')`;
1942
+ }
1943
+ let path = get_relative_path(url.pathname, `${base}/${import_path}`);
1944
+ if (path[0] !== ".") path = `./${path}`;
1945
+ return `import('${path}')`;
1946
+ }
1947
+ async function resolve_route(resolved_path, url, manifest) {
1948
+ if (!manifest._.client.routes) {
1949
+ return text("Server-side route resolution disabled", { status: 400 });
1950
+ }
1951
+ const matchers = await manifest._.matchers();
1952
+ const result = find_route(resolved_path, manifest._.client.routes, matchers);
1953
+ return create_server_routing_response(result?.route ?? null, result?.params ?? {}, url, manifest).response;
1954
+ }
1955
+ function create_server_routing_response(route, params, url, manifest) {
1956
+ const headers2 = new Headers({
1957
+ "content-type": "application/javascript; charset=utf-8"
1958
+ });
1959
+ if (route) {
1960
+ const csr_route = generate_route_object(route, url, manifest);
1961
+ const body2 = `${create_css_import(route, url, manifest)}
1962
+ export const route = ${csr_route}; export const params = ${JSON.stringify(params)};`;
1963
+ return { response: text(body2, { headers: headers2 }), body: body2 };
1964
+ } else {
1965
+ return { response: text("", { headers: headers2 }), body: "" };
1966
+ }
1967
+ }
1968
+ function create_css_import(route, url, manifest) {
1969
+ const { errors, layouts, leaf } = route;
1970
+ let css = "";
1971
+ for (const node of [...errors, ...layouts.map((l) => l?.[1]), leaf[1]]) {
1972
+ if (typeof node !== "number") continue;
1973
+ const node_css = manifest._.client.css?.[node];
1974
+ for (const css_path of node_css ?? []) {
1975
+ css += `'${assets || base}/${css_path}',`;
1976
+ }
1977
+ }
1978
+ if (!css) return "";
1979
+ return `${create_client_import(
1980
+ /** @type {string} */
1981
+ manifest._.client.start,
1982
+ url
1983
+ )}.then(x => x.load_css([${css}]));`;
1984
+ }
1985
+ const updated = {
1986
+ ...readable(false),
1987
+ check: () => false
1988
+ };
1989
+ async function render_response({
1990
+ branch,
1991
+ fetched,
1992
+ options: options2,
1993
+ manifest,
1994
+ state,
1995
+ page_config,
1996
+ status,
1997
+ error: error2 = null,
1998
+ event,
1999
+ event_state,
2000
+ resolve_opts,
2001
+ action_result,
2002
+ data_serializer
2003
+ }) {
2004
+ if (state.prerendering) {
2005
+ if (options2.csp.mode === "nonce") {
2006
+ throw new Error('Cannot use prerendering if config.kit.csp.mode === "nonce"');
2007
+ }
2008
+ if (options2.app_template_contains_nonce) {
2009
+ throw new Error("Cannot use prerendering if page template contains %sveltekit.nonce%");
2010
+ }
2011
+ }
2012
+ const { client } = manifest._;
2013
+ const modulepreloads = new Set(client.imports);
2014
+ const stylesheets = new Set(client.stylesheets);
2015
+ const fonts = new Set(client.fonts);
2016
+ const link_headers = /* @__PURE__ */ new Set();
2017
+ const inline_styles = /* @__PURE__ */ new Map();
2018
+ let rendered;
2019
+ const form_value = action_result?.type === "success" || action_result?.type === "failure" ? action_result.data ?? null : null;
2020
+ let base$1 = base;
2021
+ let assets$1 = assets;
2022
+ let base_expression = s(base);
2023
+ const csp = new Csp(options2.csp, {
2024
+ prerender: !!state.prerendering
2025
+ });
2026
+ {
2027
+ if (!state.prerendering?.fallback) {
2028
+ const segments = event.url.pathname.slice(base.length).split("/").slice(2);
2029
+ base$1 = segments.map(() => "..").join("/") || ".";
2030
+ base_expression = `new URL(${s(base$1)}, location).pathname.slice(0, -1)`;
2031
+ if (!assets || assets[0] === "/" && assets !== SVELTE_KIT_ASSETS) {
2032
+ assets$1 = base$1;
2033
+ }
2034
+ } else if (options2.hash_routing) {
2035
+ base_expression = "new URL('.', location).pathname.slice(0, -1)";
2036
+ }
2037
+ }
2038
+ if (page_config.ssr) {
2039
+ const props = {
2040
+ stores: {
2041
+ page: writable(null),
2042
+ navigating: writable(null),
2043
+ updated
2044
+ },
2045
+ constructors: await Promise.all(
2046
+ branch.map(({ node }) => {
2047
+ if (!node.component) {
2048
+ throw new Error(`Missing +page.svelte component for route ${event.route.id}`);
2049
+ }
2050
+ return node.component();
2051
+ })
2052
+ ),
2053
+ form: form_value
2054
+ };
2055
+ let data2 = {};
2056
+ for (let i = 0; i < branch.length; i += 1) {
2057
+ data2 = { ...data2, ...branch[i].data };
2058
+ props[`data_${i}`] = data2;
2059
+ }
2060
+ props.page = {
2061
+ error: error2,
2062
+ params: (
2063
+ /** @type {Record<string, any>} */
2064
+ event.params
2065
+ ),
2066
+ route: event.route,
2067
+ status,
2068
+ url: event.url,
2069
+ data: data2,
2070
+ form: form_value,
2071
+ state: {}
2072
+ };
2073
+ const render_opts = {
2074
+ context: /* @__PURE__ */ new Map([
2075
+ [
2076
+ "__request__",
2077
+ {
2078
+ page: props.page
2079
+ }
2080
+ ]
2081
+ ]),
2082
+ csp: csp.script_needs_nonce ? { nonce: csp.nonce } : { hash: csp.script_needs_hash }
2083
+ };
2084
+ try {
2085
+ if (browser) ;
2086
+ event_state.allows_commands = false;
2087
+ rendered = await with_request_store({ event, state: event_state }, async () => {
2088
+ if (relative) override({ base: base$1, assets: assets$1 });
2089
+ const maybe_promise = options2.root.render(props, render_opts);
2090
+ const rendered2 = options2.async && "then" in maybe_promise ? (
2091
+ /** @type {ReturnType<typeof options.root.render> & Promise<any>} */
2092
+ maybe_promise.then((r) => r)
2093
+ ) : maybe_promise;
2094
+ if (options2.async) {
2095
+ reset();
2096
+ }
2097
+ const { head: head2, html: html2, css, hashes } = (
2098
+ /** @type {ReturnType<typeof options.root.render>} */
2099
+ options2.async ? await rendered2 : rendered2
2100
+ );
2101
+ if (hashes) {
2102
+ csp.add_script_hashes(hashes.script);
2103
+ }
2104
+ return { head: head2, html: html2, css, hashes };
2105
+ });
2106
+ } finally {
2107
+ reset();
2108
+ }
2109
+ for (const { node } of branch) {
2110
+ for (const url of node.imports) modulepreloads.add(url);
2111
+ for (const url of node.stylesheets) stylesheets.add(url);
2112
+ for (const url of node.fonts) fonts.add(url);
2113
+ if (node.inline_styles && !client.inline) {
2114
+ Object.entries(await node.inline_styles()).forEach(([filename, css]) => {
2115
+ if (typeof css === "string") {
2116
+ inline_styles.set(filename, css);
2117
+ return;
2118
+ }
2119
+ inline_styles.set(filename, css(`${assets$1}/${app_dir}/immutable/assets`, assets$1));
2120
+ });
2121
+ }
2122
+ }
2123
+ } else {
2124
+ rendered = { head: "", html: "", css: { code: "", map: null }, hashes: { script: [] } };
2125
+ }
2126
+ const head = new Head(rendered.head, !!state.prerendering);
2127
+ let body2 = rendered.html;
2128
+ const prefixed = (path) => {
2129
+ if (path.startsWith("/")) {
2130
+ return base + path;
2131
+ }
2132
+ return `${assets$1}/${path}`;
2133
+ };
2134
+ const style = client.inline ? client.inline?.style : Array.from(inline_styles.values()).join("\n");
2135
+ if (style) {
2136
+ const attributes = [];
2137
+ if (csp.style_needs_nonce) attributes.push(`nonce="${csp.nonce}"`);
2138
+ csp.add_style(style);
2139
+ head.add_style(style, attributes);
2140
+ }
2141
+ for (const dep of stylesheets) {
2142
+ const path = prefixed(dep);
2143
+ const attributes = ['rel="stylesheet"'];
2144
+ if (inline_styles.has(dep)) {
2145
+ attributes.push("disabled", 'media="(max-width: 0)"');
2146
+ } else {
2147
+ if (resolve_opts.preload({ type: "css", path })) {
2148
+ link_headers.add(`<${encodeURI(path)}>; rel="preload"; as="style"; nopush`);
2149
+ }
2150
+ }
2151
+ head.add_stylesheet(path, attributes);
2152
+ }
2153
+ for (const dep of fonts) {
2154
+ const path = prefixed(dep);
2155
+ if (resolve_opts.preload({ type: "font", path })) {
2156
+ const ext = dep.slice(dep.lastIndexOf(".") + 1);
2157
+ head.add_link_tag(path, ['rel="preload"', 'as="font"', `type="font/${ext}"`, "crossorigin"]);
2158
+ link_headers.add(
2159
+ `<${encodeURI(path)}>; rel="preload"; as="font"; type="font/${ext}"; crossorigin; nopush`
2160
+ );
2161
+ }
2162
+ }
2163
+ const global = get_global_name(options2);
2164
+ const { data, chunks } = data_serializer.get_data(csp);
2165
+ if (page_config.ssr && page_config.csr) {
2166
+ body2 += `
2167
+ ${fetched.map(
2168
+ (item) => serialize_data(item, resolve_opts.filterSerializedResponseHeaders, !!state.prerendering)
2169
+ ).join("\n ")}`;
2170
+ }
2171
+ if (page_config.csr) {
2172
+ const route = manifest._.client.routes?.find((r) => r.id === event.route.id) ?? null;
2173
+ if (client.uses_env_dynamic_public && state.prerendering) {
2174
+ modulepreloads.add(`${app_dir}/env.js`);
2175
+ }
2176
+ if (!client.inline) {
2177
+ const included_modulepreloads = Array.from(modulepreloads, (dep) => prefixed(dep)).filter(
2178
+ (path) => resolve_opts.preload({ type: "js", path })
2179
+ );
2180
+ for (const path of included_modulepreloads) {
2181
+ link_headers.add(`<${encodeURI(path)}>; rel="modulepreload"; nopush`);
2182
+ if (options2.preload_strategy !== "modulepreload") {
2183
+ head.add_script_preload(path);
2184
+ } else {
2185
+ head.add_link_tag(path, ['rel="modulepreload"']);
2186
+ }
2187
+ }
2188
+ }
2189
+ if (manifest._.client.routes && state.prerendering && !state.prerendering.fallback) {
2190
+ const pathname = add_resolution_suffix(event.url.pathname);
2191
+ state.prerendering.dependencies.set(
2192
+ pathname,
2193
+ create_server_routing_response(route, event.params, new URL(pathname, event.url), manifest)
2194
+ );
2195
+ }
2196
+ const blocks = [];
2197
+ const load_env_eagerly = client.uses_env_dynamic_public && state.prerendering;
2198
+ const properties = [`base: ${base_expression}`];
2199
+ if (assets) {
2200
+ properties.push(`assets: ${s(assets)}`);
2201
+ }
2202
+ if (client.uses_env_dynamic_public) {
2203
+ properties.push(`env: ${load_env_eagerly ? "null" : s(public_env)}`);
2204
+ }
2205
+ if (chunks) {
2206
+ blocks.push("const deferred = new Map();");
2207
+ properties.push(`defer: (id) => new Promise((fulfil, reject) => {
2208
+ deferred.set(id, { fulfil, reject });
2209
+ })`);
2210
+ let app_declaration = "";
2211
+ if (Object.keys(options2.hooks.transport).length > 0) {
2212
+ if (client.inline) {
2213
+ app_declaration = `const app = __sveltekit_${options2.version_hash}.app.app;`;
2214
+ } else if (client.app) {
2215
+ app_declaration = `const app = await import(${s(prefixed(client.app))});`;
2216
+ } else {
2217
+ app_declaration = `const { app } = await import(${s(prefixed(client.start))});`;
2218
+ }
2219
+ }
2220
+ const prelude = app_declaration ? `${app_declaration}
2221
+ const [data, error] = fn(app);` : `const [data, error] = fn();`;
2222
+ properties.push(`resolve: async (id, fn) => {
2223
+ ${prelude}
2224
+
2225
+ const try_to_resolve = () => {
2226
+ if (!deferred.has(id)) {
2227
+ setTimeout(try_to_resolve, 0);
2228
+ return;
2229
+ }
2230
+ const { fulfil, reject } = deferred.get(id);
2231
+ deferred.delete(id);
2232
+ if (error) reject(error);
2233
+ else fulfil(data);
2234
+ }
2235
+ try_to_resolve();
2236
+ }`);
2237
+ }
2238
+ blocks.push(`${global} = {
2239
+ ${properties.join(",\n ")}
2240
+ };`);
2241
+ const args = ["element"];
2242
+ blocks.push("const element = document.currentScript.parentElement;");
2243
+ if (page_config.ssr) {
2244
+ const serialized = { form: "null", error: "null" };
2245
+ if (form_value) {
2246
+ serialized.form = uneval_action_response(
2247
+ form_value,
2248
+ /** @type {string} */
2249
+ event.route.id,
2250
+ options2.hooks.transport
2251
+ );
2252
+ }
2253
+ if (error2) {
2254
+ serialized.error = uneval(error2);
2255
+ }
2256
+ const hydrate = [
2257
+ `node_ids: [${branch.map(({ node }) => node.index).join(", ")}]`,
2258
+ `data: ${data}`,
2259
+ `form: ${serialized.form}`,
2260
+ `error: ${serialized.error}`
2261
+ ];
2262
+ if (status !== 200) {
2263
+ hydrate.push(`status: ${status}`);
2264
+ }
2265
+ if (manifest._.client.routes) {
2266
+ if (route) {
2267
+ const stringified = generate_route_object(route, event.url, manifest).replaceAll(
2268
+ "\n",
2269
+ "\n "
2270
+ );
2271
+ hydrate.push(`params: ${uneval(event.params)}`, `server_route: ${stringified}`);
2272
+ }
2273
+ } else if (options2.embedded) {
2274
+ hydrate.push(`params: ${uneval(event.params)}`, `route: ${s(event.route)}`);
2275
+ }
2276
+ const indent = " ".repeat(load_env_eagerly ? 7 : 6);
2277
+ args.push(`{
2278
+ ${indent} ${hydrate.join(`,
2279
+ ${indent} `)}
2280
+ ${indent}}`);
2281
+ }
2282
+ const { remote_data: remote_cache } = event_state;
2283
+ let serialized_remote_data = "";
2284
+ if (remote_cache) {
2285
+ const remote = {};
2286
+ for (const [info, cache] of remote_cache) {
2287
+ if (!info.id) continue;
2288
+ for (const key2 in cache) {
2289
+ remote[create_remote_key(info.id, key2)] = await cache[key2];
2290
+ }
2291
+ }
2292
+ const replacer = (thing) => {
2293
+ for (const key2 in options2.hooks.transport) {
2294
+ const encoded = options2.hooks.transport[key2].encode(thing);
2295
+ if (encoded) {
2296
+ return `app.decode('${key2}', ${uneval(encoded, replacer)})`;
2297
+ }
2298
+ }
2299
+ };
2300
+ serialized_remote_data = `${global}.data = ${uneval(remote, replacer)};
2301
+
2302
+ `;
2303
+ }
2304
+ const boot = client.inline ? `${client.inline.script}
2305
+
2306
+ ${serialized_remote_data}${global}.app.start(${args.join(", ")});` : client.app ? `Promise.all([
2307
+ import(${s(prefixed(client.start))}),
2308
+ import(${s(prefixed(client.app))})
2309
+ ]).then(([kit, app]) => {
2310
+ ${serialized_remote_data}kit.start(app, ${args.join(", ")});
2311
+ });` : `import(${s(prefixed(client.start))}).then((app) => {
2312
+ ${serialized_remote_data}app.start(${args.join(", ")})
2313
+ });`;
2314
+ if (load_env_eagerly) {
2315
+ blocks.push(`import(${s(`${base$1}/${app_dir}/env.js`)}).then(({ env }) => {
2316
+ ${global}.env = env;
2317
+
2318
+ ${boot.replace(/\n/g, "\n ")}
2319
+ });`);
2320
+ } else {
2321
+ blocks.push(boot);
2322
+ }
2323
+ if (options2.service_worker) {
2324
+ let opts = "";
2325
+ if (options2.service_worker_options != null) {
2326
+ const service_worker_options = { ...options2.service_worker_options };
2327
+ opts = `, ${s(service_worker_options)}`;
2328
+ }
2329
+ blocks.push(`if ('serviceWorker' in navigator) {
2330
+ addEventListener('load', function () {
2331
+ navigator.serviceWorker.register('${prefixed("service-worker.js")}'${opts});
2332
+ });
2333
+ }`);
2334
+ }
2335
+ const init_app = `
2336
+ {
2337
+ ${blocks.join("\n\n ")}
2338
+ }
2339
+ `;
2340
+ csp.add_script(init_app);
2341
+ body2 += `
2342
+ <script${csp.script_needs_nonce ? ` nonce="${csp.nonce}"` : ""}>${init_app}<\/script>
2343
+ `;
2344
+ }
2345
+ const headers2 = new Headers({
2346
+ "x-sveltekit-page": "true",
2347
+ "content-type": "text/html"
2348
+ });
2349
+ if (state.prerendering) {
2350
+ const csp_headers = csp.csp_provider.get_meta();
2351
+ if (csp_headers) {
2352
+ head.add_http_equiv(csp_headers);
2353
+ }
2354
+ if (state.prerendering.cache) {
2355
+ head.add_http_equiv(
2356
+ `<meta http-equiv="cache-control" content="${state.prerendering.cache}">`
2357
+ );
2358
+ }
2359
+ } else {
2360
+ const csp_header = csp.csp_provider.get_header();
2361
+ if (csp_header) {
2362
+ headers2.set("content-security-policy", csp_header);
2363
+ }
2364
+ const report_only_header = csp.report_only_provider.get_header();
2365
+ if (report_only_header) {
2366
+ headers2.set("content-security-policy-report-only", report_only_header);
2367
+ }
2368
+ if (link_headers.size) {
2369
+ headers2.set("link", Array.from(link_headers).join(", "));
2370
+ }
2371
+ }
2372
+ const html = options2.templates.app({
2373
+ head: head.build(),
2374
+ body: body2,
2375
+ assets: assets$1,
2376
+ nonce: (
2377
+ /** @type {string} */
2378
+ csp.nonce
2379
+ ),
2380
+ env: public_env
2381
+ });
2382
+ const transformed = await resolve_opts.transformPageChunk({
2383
+ html,
2384
+ done: true
2385
+ }) || "";
2386
+ if (!chunks) {
2387
+ headers2.set("etag", `"${hash(transformed)}"`);
2388
+ }
2389
+ return !chunks ? text(transformed, {
2390
+ status,
2391
+ headers: headers2
2392
+ }) : new Response(
2393
+ new ReadableStream({
2394
+ async start(controller) {
2395
+ controller.enqueue(text_encoder.encode(transformed + "\n"));
2396
+ for await (const chunk of chunks) {
2397
+ if (chunk.length) controller.enqueue(text_encoder.encode(chunk));
2398
+ }
2399
+ controller.close();
2400
+ },
2401
+ type: "bytes"
2402
+ }),
2403
+ {
2404
+ headers: headers2
2405
+ }
2406
+ );
2407
+ }
2408
+ class Head {
2409
+ #rendered;
2410
+ #prerendering;
2411
+ /** @type {string[]} */
2412
+ #http_equiv = [];
2413
+ /** @type {string[]} */
2414
+ #link_tags = [];
2415
+ /** @type {string[]} */
2416
+ #script_preloads = [];
2417
+ /** @type {string[]} */
2418
+ #style_tags = [];
2419
+ /** @type {string[]} */
2420
+ #stylesheet_links = [];
2421
+ /**
2422
+ * @param {string} rendered
2423
+ * @param {boolean} prerendering
2424
+ */
2425
+ constructor(rendered, prerendering) {
2426
+ this.#rendered = rendered;
2427
+ this.#prerendering = prerendering;
2428
+ }
2429
+ build() {
2430
+ return [
2431
+ ...this.#http_equiv,
2432
+ ...this.#link_tags,
2433
+ ...this.#script_preloads,
2434
+ this.#rendered,
2435
+ ...this.#style_tags,
2436
+ ...this.#stylesheet_links
2437
+ ].join("\n ");
2438
+ }
2439
+ /**
2440
+ * @param {string} style
2441
+ * @param {string[]} attributes
2442
+ */
2443
+ add_style(style, attributes) {
2444
+ this.#style_tags.push(
2445
+ `<style${attributes.length ? " " + attributes.join(" ") : ""}>${style}</style>`
2446
+ );
2447
+ }
2448
+ /**
2449
+ * @param {string} href
2450
+ * @param {string[]} attributes
2451
+ */
2452
+ add_stylesheet(href, attributes) {
2453
+ this.#stylesheet_links.push(`<link href="${href}" ${attributes.join(" ")}>`);
2454
+ }
2455
+ /** @param {string} href */
2456
+ add_script_preload(href) {
2457
+ this.#script_preloads.push(
2458
+ `<link rel="preload" as="script" crossorigin="anonymous" href="${href}">`
2459
+ );
2460
+ }
2461
+ /**
2462
+ * @param {string} href
2463
+ * @param {string[]} attributes
2464
+ */
2465
+ add_link_tag(href, attributes) {
2466
+ if (!this.#prerendering) return;
2467
+ this.#link_tags.push(`<link href="${href}" ${attributes.join(" ")}>`);
2468
+ }
2469
+ /** @param {string} tag */
2470
+ add_http_equiv(tag) {
2471
+ if (!this.#prerendering) return;
2472
+ this.#http_equiv.push(tag);
2473
+ }
2474
+ }
2475
+ class PageNodes {
2476
+ data;
2477
+ /**
2478
+ * @param {Array<import('types').SSRNode | undefined>} nodes
2479
+ */
2480
+ constructor(nodes) {
2481
+ this.data = nodes;
2482
+ }
2483
+ layouts() {
2484
+ return this.data.slice(0, -1);
2485
+ }
2486
+ page() {
2487
+ return this.data.at(-1);
2488
+ }
2489
+ validate() {
2490
+ for (const layout of this.layouts()) {
2491
+ if (layout) {
2492
+ validate_layout_server_exports(
2493
+ layout.server,
2494
+ /** @type {string} */
2495
+ layout.server_id
2496
+ );
2497
+ validate_layout_exports(
2498
+ layout.universal,
2499
+ /** @type {string} */
2500
+ layout.universal_id
2501
+ );
2502
+ }
2503
+ }
2504
+ const page = this.page();
2505
+ if (page) {
2506
+ validate_page_server_exports(
2507
+ page.server,
2508
+ /** @type {string} */
2509
+ page.server_id
2510
+ );
2511
+ validate_page_exports(
2512
+ page.universal,
2513
+ /** @type {string} */
2514
+ page.universal_id
2515
+ );
2516
+ }
2517
+ }
2518
+ /**
2519
+ * @template {'prerender' | 'ssr' | 'csr' | 'trailingSlash'} Option
2520
+ * @param {Option} option
2521
+ * @returns {Value | undefined}
2522
+ */
2523
+ #get_option(option) {
2524
+ return this.data.reduce(
2525
+ (value, node) => {
2526
+ return node?.universal?.[option] ?? node?.server?.[option] ?? value;
2527
+ },
2528
+ /** @type {Value | undefined} */
2529
+ void 0
2530
+ );
2531
+ }
2532
+ csr() {
2533
+ return this.#get_option("csr") ?? true;
2534
+ }
2535
+ ssr() {
2536
+ return this.#get_option("ssr") ?? true;
2537
+ }
2538
+ prerender() {
2539
+ return this.#get_option("prerender") ?? false;
2540
+ }
2541
+ trailing_slash() {
2542
+ return this.#get_option("trailingSlash") ?? "never";
2543
+ }
2544
+ get_config() {
2545
+ let current2 = {};
2546
+ for (const node of this.data) {
2547
+ if (!node?.universal?.config && !node?.server?.config) continue;
2548
+ current2 = {
2549
+ ...current2,
2550
+ // TODO: should we override the server config value with the universal value similar to other page options?
2551
+ ...node?.universal?.config,
2552
+ ...node?.server?.config
2553
+ };
2554
+ }
2555
+ return Object.keys(current2).length ? current2 : void 0;
2556
+ }
2557
+ should_prerender_data() {
2558
+ return this.data.some(
2559
+ // prerender in case of trailingSlash because the client retrieves that value from the server
2560
+ (node) => node?.server?.load || node?.server?.trailingSlash !== void 0
2561
+ );
2562
+ }
2563
+ }
2564
+ async function respond_with_error({
2565
+ event,
2566
+ event_state,
2567
+ options: options2,
2568
+ manifest,
2569
+ state,
2570
+ status,
2571
+ error: error2,
2572
+ resolve_opts
2573
+ }) {
2574
+ if (event.request.headers.get("x-sveltekit-error")) {
2575
+ return static_error_page(
2576
+ options2,
2577
+ status,
2578
+ /** @type {Error} */
2579
+ error2.message
2580
+ );
2581
+ }
2582
+ const fetched = [];
2583
+ try {
2584
+ const branch = [];
2585
+ const default_layout = await manifest._.nodes[0]();
2586
+ const nodes = new PageNodes([default_layout]);
2587
+ const ssr = nodes.ssr();
2588
+ const csr = nodes.csr();
2589
+ const data_serializer = server_data_serializer(event, event_state, options2);
2590
+ if (ssr) {
2591
+ state.error = true;
2592
+ const server_data_promise = load_server_data({
2593
+ event,
2594
+ event_state,
2595
+ state,
2596
+ node: default_layout,
2597
+ // eslint-disable-next-line @typescript-eslint/require-await
2598
+ parent: async () => ({})
2599
+ });
2600
+ const server_data = await server_data_promise;
2601
+ data_serializer.add_node(0, server_data);
2602
+ const data = await load_data({
2603
+ event,
2604
+ event_state,
2605
+ fetched,
2606
+ node: default_layout,
2607
+ // eslint-disable-next-line @typescript-eslint/require-await
2608
+ parent: async () => ({}),
2609
+ resolve_opts,
2610
+ server_data_promise,
2611
+ state,
2612
+ csr
2613
+ });
2614
+ branch.push(
2615
+ {
2616
+ node: default_layout,
2617
+ server_data,
2618
+ data
2619
+ },
2620
+ {
2621
+ node: await manifest._.nodes[1](),
2622
+ // 1 is always the root error
2623
+ data: null,
2624
+ server_data: null
2625
+ }
2626
+ );
2627
+ }
2628
+ return await render_response({
2629
+ options: options2,
2630
+ manifest,
2631
+ state,
2632
+ page_config: {
2633
+ ssr,
2634
+ csr
2635
+ },
2636
+ status,
2637
+ error: await handle_error_and_jsonify(event, event_state, options2, error2),
2638
+ branch,
2639
+ fetched,
2640
+ event,
2641
+ event_state,
2642
+ resolve_opts,
2643
+ data_serializer
2644
+ });
2645
+ } catch (e) {
2646
+ if (e instanceof Redirect) {
2647
+ return redirect_response(e.status, e.location);
2648
+ }
2649
+ return static_error_page(
2650
+ options2,
2651
+ get_status(e),
2652
+ (await handle_error_and_jsonify(event, event_state, options2, e)).message
2653
+ );
2654
+ }
2655
+ }
2656
+ async function handle_remote_call(event, state, options2, manifest, id) {
2657
+ return record_span({
2658
+ name: "sveltekit.remote.call",
2659
+ attributes: {
2660
+ "sveltekit.remote.call.id": id
2661
+ },
2662
+ fn: (current2) => {
2663
+ const traced_event = merge_tracing(event, current2);
2664
+ return with_request_store(
2665
+ { event: traced_event, state },
2666
+ () => handle_remote_call_internal(traced_event, state, options2, manifest, id)
2667
+ );
2668
+ }
2669
+ });
2670
+ }
2671
+ async function handle_remote_call_internal(event, state, options2, manifest, id) {
2672
+ const [hash2, name, additional_args] = id.split("/");
2673
+ const remotes = manifest._.remotes;
2674
+ if (!remotes[hash2]) error(404);
2675
+ const module = await remotes[hash2]();
2676
+ const fn = module.default[name];
2677
+ if (!fn) error(404);
2678
+ const info = fn.__;
2679
+ const transport = options2.hooks.transport;
2680
+ event.tracing.current.setAttributes({
2681
+ "sveltekit.remote.call.type": info.type,
2682
+ "sveltekit.remote.call.name": info.name
2683
+ });
2684
+ let form_client_refreshes;
2685
+ try {
2686
+ if (info.type === "query_batch") {
2687
+ if (event.request.method !== "POST") {
2688
+ throw new SvelteKitError(
2689
+ 405,
2690
+ "Method Not Allowed",
2691
+ `\`query.batch\` functions must be invoked via POST request, not ${event.request.method}`
2692
+ );
2693
+ }
2694
+ const { payloads } = await event.request.json();
2695
+ const args = await Promise.all(
2696
+ payloads.map((payload2) => parse_remote_arg(payload2, transport))
2697
+ );
2698
+ const results = await with_request_store({ event, state }, () => info.run(args, options2));
2699
+ return json(
2700
+ /** @type {RemoteFunctionResponse} */
2701
+ {
2702
+ type: "result",
2703
+ result: stringify(results, transport)
2704
+ }
2705
+ );
2706
+ }
2707
+ if (info.type === "form") {
2708
+ if (event.request.method !== "POST") {
2709
+ throw new SvelteKitError(
2710
+ 405,
2711
+ "Method Not Allowed",
2712
+ `\`form\` functions must be invoked via POST request, not ${event.request.method}`
2713
+ );
2714
+ }
2715
+ if (!is_form_content_type(event.request)) {
2716
+ throw new SvelteKitError(
2717
+ 415,
2718
+ "Unsupported Media Type",
2719
+ `\`form\` functions expect form-encoded data — received ${event.request.headers.get(
2720
+ "content-type"
2721
+ )}`
2722
+ );
2723
+ }
2724
+ const { data: data2, meta, form_data } = await deserialize_binary_form(event.request);
2725
+ form_client_refreshes = meta.remote_refreshes;
2726
+ if (additional_args && !("id" in data2)) {
2727
+ data2.id = JSON.parse(decodeURIComponent(additional_args));
2728
+ }
2729
+ const fn2 = info.fn;
2730
+ const result = await with_request_store({ event, state }, () => fn2(data2, meta, form_data));
2731
+ return json(
2732
+ /** @type {RemoteFunctionResponse} */
2733
+ {
2734
+ type: "result",
2735
+ result: stringify(result, transport),
2736
+ refreshes: result.issues ? void 0 : await serialize_refreshes(meta.remote_refreshes)
2737
+ }
2738
+ );
2739
+ }
2740
+ if (info.type === "command") {
2741
+ const { payload: payload2, refreshes } = await event.request.json();
2742
+ const arg = parse_remote_arg(payload2, transport);
2743
+ const data2 = await with_request_store({ event, state }, () => fn(arg));
2744
+ return json(
2745
+ /** @type {RemoteFunctionResponse} */
2746
+ {
2747
+ type: "result",
2748
+ result: stringify(data2, transport),
2749
+ refreshes: await serialize_refreshes(refreshes)
2750
+ }
2751
+ );
2752
+ }
2753
+ const payload = info.type === "prerender" ? additional_args : (
2754
+ /** @type {string} */
2755
+ // new URL(...) necessary because we're hiding the URL from the user in the event object
2756
+ new URL(event.request.url).searchParams.get("payload")
2757
+ );
2758
+ const data = await with_request_store(
2759
+ { event, state },
2760
+ () => fn(parse_remote_arg(payload, transport))
2761
+ );
2762
+ return json(
2763
+ /** @type {RemoteFunctionResponse} */
2764
+ {
2765
+ type: "result",
2766
+ result: stringify(data, transport)
2767
+ }
2768
+ );
2769
+ } catch (error2) {
2770
+ if (error2 instanceof Redirect) {
2771
+ return json(
2772
+ /** @type {RemoteFunctionResponse} */
2773
+ {
2774
+ type: "redirect",
2775
+ location: error2.location,
2776
+ refreshes: await serialize_refreshes(form_client_refreshes)
2777
+ }
2778
+ );
2779
+ }
2780
+ const status = error2 instanceof HttpError || error2 instanceof SvelteKitError ? error2.status : 500;
2781
+ return json(
2782
+ /** @type {RemoteFunctionResponse} */
2783
+ {
2784
+ type: "error",
2785
+ error: await handle_error_and_jsonify(event, state, options2, error2),
2786
+ status
2787
+ },
2788
+ {
2789
+ // By setting a non-200 during prerendering we fail the prerender process (unless handleHttpError handles it).
2790
+ // Errors at runtime will be passed to the client and are handled there
2791
+ status: state.prerendering ? status : void 0,
2792
+ headers: {
2793
+ "cache-control": "private, no-store"
2794
+ }
2795
+ }
2796
+ );
2797
+ }
2798
+ async function serialize_refreshes(client_refreshes) {
2799
+ const refreshes = state.refreshes ?? {};
2800
+ if (client_refreshes) {
2801
+ for (const key2 of client_refreshes) {
2802
+ if (refreshes[key2] !== void 0) continue;
2803
+ const [hash3, name2, payload] = key2.split("/");
2804
+ const loader = manifest._.remotes[hash3];
2805
+ const fn2 = (await loader?.())?.default?.[name2];
2806
+ if (!fn2) error(400, "Bad Request");
2807
+ refreshes[key2] = with_request_store(
2808
+ { event, state },
2809
+ () => fn2(parse_remote_arg(payload, transport))
2810
+ );
2811
+ }
2812
+ }
2813
+ if (Object.keys(refreshes).length === 0) {
2814
+ return void 0;
2815
+ }
2816
+ return stringify(
2817
+ Object.fromEntries(
2818
+ await Promise.all(
2819
+ Object.entries(refreshes).map(async ([key2, promise]) => [key2, await promise])
2820
+ )
2821
+ ),
2822
+ transport
2823
+ );
2824
+ }
2825
+ }
2826
+ async function handle_remote_form_post(event, state, manifest, id) {
2827
+ return record_span({
2828
+ name: "sveltekit.remote.form.post",
2829
+ attributes: {
2830
+ "sveltekit.remote.form.post.id": id
2831
+ },
2832
+ fn: (current2) => {
2833
+ const traced_event = merge_tracing(event, current2);
2834
+ return with_request_store(
2835
+ { event: traced_event, state },
2836
+ () => handle_remote_form_post_internal(traced_event, state, manifest, id)
2837
+ );
2838
+ }
2839
+ });
2840
+ }
2841
+ async function handle_remote_form_post_internal(event, state, manifest, id) {
2842
+ const [hash2, name, action_id] = id.split("/");
2843
+ const remotes = manifest._.remotes;
2844
+ const module = await remotes[hash2]?.();
2845
+ let form = (
2846
+ /** @type {RemoteForm<any, any>} */
2847
+ module?.default[name]
2848
+ );
2849
+ if (!form) {
2850
+ event.setHeaders({
2851
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
2852
+ // "The server must generate an Allow header field in a 405 status code response"
2853
+ allow: "GET"
2854
+ });
2855
+ return {
2856
+ type: "error",
2857
+ error: new SvelteKitError(
2858
+ 405,
2859
+ "Method Not Allowed",
2860
+ `POST method not allowed. No form actions exist for ${"this page"}`
2861
+ )
2862
+ };
2863
+ }
2864
+ if (action_id) {
2865
+ form = with_request_store({ event, state }, () => form.for(JSON.parse(action_id)));
2866
+ }
2867
+ try {
2868
+ const fn = (
2869
+ /** @type {RemoteInfo & { type: 'form' }} */
2870
+ /** @type {any} */
2871
+ form.__.fn
2872
+ );
2873
+ const { data, meta, form_data } = await deserialize_binary_form(event.request);
2874
+ if (action_id && !("id" in data)) {
2875
+ data.id = JSON.parse(decodeURIComponent(action_id));
2876
+ }
2877
+ await with_request_store({ event, state }, () => fn(data, meta, form_data));
2878
+ return {
2879
+ type: "success",
2880
+ status: 200
2881
+ };
2882
+ } catch (e) {
2883
+ const err = normalize_error(e);
2884
+ if (err instanceof Redirect) {
2885
+ return {
2886
+ type: "redirect",
2887
+ status: err.status,
2888
+ location: err.location
2889
+ };
2890
+ }
2891
+ return {
2892
+ type: "error",
2893
+ error: check_incorrect_fail_use(err)
2894
+ };
2895
+ }
2896
+ }
2897
+ function get_remote_id(url) {
2898
+ return url.pathname.startsWith(`${base}/${app_dir}/remote/`) && url.pathname.replace(`${base}/${app_dir}/remote/`, "");
2899
+ }
2900
+ function get_remote_action(url) {
2901
+ return url.searchParams.get("/remote");
2902
+ }
2903
+ const MAX_DEPTH = 10;
2904
+ async function render_page(event, event_state, page, options2, manifest, state, nodes, resolve_opts) {
2905
+ if (state.depth > MAX_DEPTH) {
2906
+ return text(`Not found: ${event.url.pathname}`, {
2907
+ status: 404
2908
+ // TODO in some cases this should be 500. not sure how to differentiate
2909
+ });
2910
+ }
2911
+ if (is_action_json_request(event)) {
2912
+ const node = await manifest._.nodes[page.leaf]();
2913
+ return handle_action_json_request(event, event_state, options2, node?.server);
2914
+ }
2915
+ try {
2916
+ const leaf_node = (
2917
+ /** @type {import('types').SSRNode} */
2918
+ nodes.page()
2919
+ );
2920
+ let status = 200;
2921
+ let action_result = void 0;
2922
+ if (is_action_request(event)) {
2923
+ const remote_id = get_remote_action(event.url);
2924
+ if (remote_id) {
2925
+ action_result = await handle_remote_form_post(event, event_state, manifest, remote_id);
2926
+ } else {
2927
+ action_result = await handle_action_request(event, event_state, leaf_node.server);
2928
+ }
2929
+ if (action_result?.type === "redirect") {
2930
+ return redirect_response(action_result.status, action_result.location);
2931
+ }
2932
+ if (action_result?.type === "error") {
2933
+ status = get_status(action_result.error);
2934
+ }
2935
+ if (action_result?.type === "failure") {
2936
+ status = action_result.status;
2937
+ }
2938
+ }
2939
+ const should_prerender = nodes.prerender();
2940
+ if (should_prerender) {
2941
+ const mod = leaf_node.server;
2942
+ if (mod?.actions) {
2943
+ throw new Error("Cannot prerender pages with actions");
2944
+ }
2945
+ } else if (state.prerendering) {
2946
+ return new Response(void 0, {
2947
+ status: 204
2948
+ });
2949
+ }
2950
+ state.prerender_default = should_prerender;
2951
+ const should_prerender_data = nodes.should_prerender_data();
2952
+ const data_pathname = add_data_suffix(event.url.pathname);
2953
+ const fetched = [];
2954
+ const ssr = nodes.ssr();
2955
+ const csr = nodes.csr();
2956
+ if (ssr === false && !(state.prerendering && should_prerender_data)) {
2957
+ if (browser && action_result && !event.request.headers.has("x-sveltekit-action")) ;
2958
+ return await render_response({
2959
+ branch: [],
2960
+ fetched,
2961
+ page_config: {
2962
+ ssr: false,
2963
+ csr
2964
+ },
2965
+ status,
2966
+ error: null,
2967
+ event,
2968
+ event_state,
2969
+ options: options2,
2970
+ manifest,
2971
+ state,
2972
+ resolve_opts,
2973
+ data_serializer: server_data_serializer(event, event_state, options2)
2974
+ });
2975
+ }
2976
+ const branch = [];
2977
+ let load_error = null;
2978
+ const data_serializer = server_data_serializer(event, event_state, options2);
2979
+ const data_serializer_json = state.prerendering && should_prerender_data ? server_data_serializer_json(event, event_state, options2) : null;
2980
+ const server_promises = nodes.data.map((node, i) => {
2981
+ if (load_error) {
2982
+ throw load_error;
2983
+ }
2984
+ return Promise.resolve().then(async () => {
2985
+ try {
2986
+ if (node === leaf_node && action_result?.type === "error") {
2987
+ throw action_result.error;
2988
+ }
2989
+ const server_data = await load_server_data({
2990
+ event,
2991
+ event_state,
2992
+ state,
2993
+ node,
2994
+ parent: async () => {
2995
+ const data = {};
2996
+ for (let j = 0; j < i; j += 1) {
2997
+ const parent = await server_promises[j];
2998
+ if (parent) Object.assign(data, parent.data);
2999
+ }
3000
+ return data;
3001
+ }
3002
+ });
3003
+ if (node) {
3004
+ data_serializer.add_node(i, server_data);
3005
+ }
3006
+ data_serializer_json?.add_node(i, server_data);
3007
+ return server_data;
3008
+ } catch (e) {
3009
+ load_error = /** @type {Error} */
3010
+ e;
3011
+ throw load_error;
3012
+ }
3013
+ });
3014
+ });
3015
+ const load_promises = nodes.data.map((node, i) => {
3016
+ if (load_error) throw load_error;
3017
+ return Promise.resolve().then(async () => {
3018
+ try {
3019
+ return await load_data({
3020
+ event,
3021
+ event_state,
3022
+ fetched,
3023
+ node,
3024
+ parent: async () => {
3025
+ const data = {};
3026
+ for (let j = 0; j < i; j += 1) {
3027
+ Object.assign(data, await load_promises[j]);
3028
+ }
3029
+ return data;
3030
+ },
3031
+ resolve_opts,
3032
+ server_data_promise: server_promises[i],
3033
+ state,
3034
+ csr
3035
+ });
3036
+ } catch (e) {
3037
+ load_error = /** @type {Error} */
3038
+ e;
3039
+ throw load_error;
3040
+ }
3041
+ });
3042
+ });
3043
+ for (const p of server_promises) p.catch(() => {
3044
+ });
3045
+ for (const p of load_promises) p.catch(() => {
3046
+ });
3047
+ for (let i = 0; i < nodes.data.length; i += 1) {
3048
+ const node = nodes.data[i];
3049
+ if (node) {
3050
+ try {
3051
+ const server_data = await server_promises[i];
3052
+ const data = await load_promises[i];
3053
+ branch.push({ node, server_data, data });
3054
+ } catch (e) {
3055
+ const err = normalize_error(e);
3056
+ if (err instanceof Redirect) {
3057
+ if (state.prerendering && should_prerender_data) {
3058
+ const body2 = JSON.stringify({
3059
+ type: "redirect",
3060
+ location: err.location
3061
+ });
3062
+ state.prerendering.dependencies.set(data_pathname, {
3063
+ response: text(body2),
3064
+ body: body2
3065
+ });
3066
+ }
3067
+ return redirect_response(err.status, err.location);
3068
+ }
3069
+ const status2 = get_status(err);
3070
+ const error2 = await handle_error_and_jsonify(event, event_state, options2, err);
3071
+ while (i--) {
3072
+ if (page.errors[i]) {
3073
+ const index = (
3074
+ /** @type {number} */
3075
+ page.errors[i]
3076
+ );
3077
+ const node2 = await manifest._.nodes[index]();
3078
+ let j = i;
3079
+ while (!branch[j]) j -= 1;
3080
+ data_serializer.set_max_nodes(j + 1);
3081
+ const layouts = compact(branch.slice(0, j + 1));
3082
+ const nodes2 = new PageNodes(layouts.map((layout) => layout.node));
3083
+ return await render_response({
3084
+ event,
3085
+ event_state,
3086
+ options: options2,
3087
+ manifest,
3088
+ state,
3089
+ resolve_opts,
3090
+ page_config: {
3091
+ ssr: nodes2.ssr(),
3092
+ csr: nodes2.csr()
3093
+ },
3094
+ status: status2,
3095
+ error: error2,
3096
+ branch: layouts.concat({
3097
+ node: node2,
3098
+ data: null,
3099
+ server_data: null
3100
+ }),
3101
+ fetched,
3102
+ data_serializer
3103
+ });
3104
+ }
3105
+ }
3106
+ return static_error_page(options2, status2, error2.message);
3107
+ }
3108
+ } else {
3109
+ branch.push(null);
3110
+ }
3111
+ }
3112
+ if (state.prerendering && data_serializer_json) {
3113
+ let { data, chunks } = data_serializer_json.get_data();
3114
+ if (chunks) {
3115
+ for await (const chunk of chunks) {
3116
+ data += chunk;
3117
+ }
3118
+ }
3119
+ state.prerendering.dependencies.set(data_pathname, {
3120
+ response: text(data),
3121
+ body: data
3122
+ });
3123
+ }
3124
+ return await render_response({
3125
+ event,
3126
+ event_state,
3127
+ options: options2,
3128
+ manifest,
3129
+ state,
3130
+ resolve_opts,
3131
+ page_config: {
3132
+ csr,
3133
+ ssr
3134
+ },
3135
+ status,
3136
+ error: null,
3137
+ branch: ssr === false ? [] : compact(branch),
3138
+ action_result,
3139
+ fetched,
3140
+ data_serializer: ssr === false ? server_data_serializer(event, event_state, options2) : data_serializer
3141
+ });
3142
+ } catch (e) {
3143
+ if (e instanceof Redirect) {
3144
+ return redirect_response(e.status, e.location);
3145
+ }
3146
+ return await respond_with_error({
3147
+ event,
3148
+ event_state,
3149
+ options: options2,
3150
+ manifest,
3151
+ state,
3152
+ status: e instanceof HttpError ? e.status : 500,
3153
+ error: e,
3154
+ resolve_opts
3155
+ });
3156
+ }
3157
+ }
3158
+ function once(fn) {
3159
+ let done = false;
3160
+ let result;
3161
+ return () => {
3162
+ if (done) return result;
3163
+ done = true;
3164
+ return result = fn();
3165
+ };
3166
+ }
3167
+ async function render_data(event, event_state, route, options2, manifest, state, invalidated_data_nodes, trailing_slash) {
3168
+ if (!route.page) {
3169
+ return new Response(void 0, {
3170
+ status: 404
3171
+ });
3172
+ }
3173
+ try {
3174
+ const node_ids = [...route.page.layouts, route.page.leaf];
3175
+ const invalidated = invalidated_data_nodes ?? node_ids.map(() => true);
3176
+ let aborted = false;
3177
+ const url = new URL(event.url);
3178
+ url.pathname = normalize_path(url.pathname, trailing_slash);
3179
+ const new_event = { ...event, url };
3180
+ const functions = node_ids.map((n, i) => {
3181
+ return once(async () => {
3182
+ try {
3183
+ if (aborted) {
3184
+ return (
3185
+ /** @type {import('types').ServerDataSkippedNode} */
3186
+ {
3187
+ type: "skip"
3188
+ }
3189
+ );
3190
+ }
3191
+ const node = n == void 0 ? n : await manifest._.nodes[n]();
3192
+ return load_server_data({
3193
+ event: new_event,
3194
+ event_state,
3195
+ state,
3196
+ node,
3197
+ parent: async () => {
3198
+ const data2 = {};
3199
+ for (let j = 0; j < i; j += 1) {
3200
+ const parent = (
3201
+ /** @type {import('types').ServerDataNode | null} */
3202
+ await functions[j]()
3203
+ );
3204
+ if (parent) {
3205
+ Object.assign(data2, parent.data);
3206
+ }
3207
+ }
3208
+ return data2;
3209
+ }
3210
+ });
3211
+ } catch (e) {
3212
+ aborted = true;
3213
+ throw e;
3214
+ }
3215
+ });
3216
+ });
3217
+ const promises = functions.map(async (fn, i) => {
3218
+ if (!invalidated[i]) {
3219
+ return (
3220
+ /** @type {import('types').ServerDataSkippedNode} */
3221
+ {
3222
+ type: "skip"
3223
+ }
3224
+ );
3225
+ }
3226
+ return fn();
3227
+ });
3228
+ let length = promises.length;
3229
+ const nodes = await Promise.all(
3230
+ promises.map(
3231
+ (p, i) => p.catch(async (error2) => {
3232
+ if (error2 instanceof Redirect) {
3233
+ throw error2;
3234
+ }
3235
+ length = Math.min(length, i + 1);
3236
+ return (
3237
+ /** @type {import('types').ServerErrorNode} */
3238
+ {
3239
+ type: "error",
3240
+ error: await handle_error_and_jsonify(event, event_state, options2, error2),
3241
+ status: error2 instanceof HttpError || error2 instanceof SvelteKitError ? error2.status : void 0
3242
+ }
3243
+ );
3244
+ })
3245
+ )
3246
+ );
3247
+ const data_serializer = server_data_serializer_json(event, event_state, options2);
3248
+ for (let i = 0; i < nodes.length; i++) data_serializer.add_node(i, nodes[i]);
3249
+ const { data, chunks } = data_serializer.get_data();
3250
+ if (!chunks) {
3251
+ return json_response(data);
3252
+ }
3253
+ return new Response(
3254
+ new ReadableStream({
3255
+ async start(controller) {
3256
+ controller.enqueue(text_encoder.encode(data));
3257
+ for await (const chunk of chunks) {
3258
+ controller.enqueue(text_encoder.encode(chunk));
3259
+ }
3260
+ controller.close();
3261
+ },
3262
+ type: "bytes"
3263
+ }),
3264
+ {
3265
+ headers: {
3266
+ // we use a proprietary content type to prevent buffering.
3267
+ // the `text` prefix makes it inspectable
3268
+ "content-type": "text/sveltekit-data",
3269
+ "cache-control": "private, no-store"
3270
+ }
3271
+ }
3272
+ );
3273
+ } catch (e) {
3274
+ const error2 = normalize_error(e);
3275
+ if (error2 instanceof Redirect) {
3276
+ return redirect_json_response(error2);
3277
+ } else {
3278
+ return json_response(await handle_error_and_jsonify(event, event_state, options2, error2), 500);
3279
+ }
3280
+ }
3281
+ }
3282
+ function json_response(json2, status = 200) {
3283
+ return text(typeof json2 === "string" ? json2 : JSON.stringify(json2), {
3284
+ status,
3285
+ headers: {
3286
+ "content-type": "application/json",
3287
+ "cache-control": "private, no-store"
3288
+ }
3289
+ });
3290
+ }
3291
+ function redirect_json_response(redirect) {
3292
+ return json_response(
3293
+ /** @type {import('types').ServerRedirectNode} */
3294
+ {
3295
+ type: "redirect",
3296
+ location: redirect.location
3297
+ }
3298
+ );
3299
+ }
3300
+ var cookie = {};
3301
+ var hasRequiredCookie;
3302
+ function requireCookie() {
3303
+ if (hasRequiredCookie) return cookie;
3304
+ hasRequiredCookie = 1;
3305
+ cookie.parse = parse;
3306
+ cookie.serialize = serialize;
3307
+ var __toString = Object.prototype.toString;
3308
+ var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
3309
+ function parse(str, options2) {
3310
+ if (typeof str !== "string") {
3311
+ throw new TypeError("argument str must be a string");
3312
+ }
3313
+ var obj = {};
3314
+ var opt = options2 || {};
3315
+ var dec = opt.decode || decode;
3316
+ var index = 0;
3317
+ while (index < str.length) {
3318
+ var eqIdx = str.indexOf("=", index);
3319
+ if (eqIdx === -1) {
3320
+ break;
3321
+ }
3322
+ var endIdx = str.indexOf(";", index);
3323
+ if (endIdx === -1) {
3324
+ endIdx = str.length;
3325
+ } else if (endIdx < eqIdx) {
3326
+ index = str.lastIndexOf(";", eqIdx - 1) + 1;
3327
+ continue;
3328
+ }
3329
+ var key2 = str.slice(index, eqIdx).trim();
3330
+ if (void 0 === obj[key2]) {
3331
+ var val = str.slice(eqIdx + 1, endIdx).trim();
3332
+ if (val.charCodeAt(0) === 34) {
3333
+ val = val.slice(1, -1);
3334
+ }
3335
+ obj[key2] = tryDecode(val, dec);
3336
+ }
3337
+ index = endIdx + 1;
3338
+ }
3339
+ return obj;
3340
+ }
3341
+ function serialize(name, val, options2) {
3342
+ var opt = options2 || {};
3343
+ var enc = opt.encode || encode2;
3344
+ if (typeof enc !== "function") {
3345
+ throw new TypeError("option encode is invalid");
3346
+ }
3347
+ if (!fieldContentRegExp.test(name)) {
3348
+ throw new TypeError("argument name is invalid");
3349
+ }
3350
+ var value = enc(val);
3351
+ if (value && !fieldContentRegExp.test(value)) {
3352
+ throw new TypeError("argument val is invalid");
3353
+ }
3354
+ var str = name + "=" + value;
3355
+ if (null != opt.maxAge) {
3356
+ var maxAge = opt.maxAge - 0;
3357
+ if (isNaN(maxAge) || !isFinite(maxAge)) {
3358
+ throw new TypeError("option maxAge is invalid");
3359
+ }
3360
+ str += "; Max-Age=" + Math.floor(maxAge);
3361
+ }
3362
+ if (opt.domain) {
3363
+ if (!fieldContentRegExp.test(opt.domain)) {
3364
+ throw new TypeError("option domain is invalid");
3365
+ }
3366
+ str += "; Domain=" + opt.domain;
3367
+ }
3368
+ if (opt.path) {
3369
+ if (!fieldContentRegExp.test(opt.path)) {
3370
+ throw new TypeError("option path is invalid");
3371
+ }
3372
+ str += "; Path=" + opt.path;
3373
+ }
3374
+ if (opt.expires) {
3375
+ var expires = opt.expires;
3376
+ if (!isDate(expires) || isNaN(expires.valueOf())) {
3377
+ throw new TypeError("option expires is invalid");
3378
+ }
3379
+ str += "; Expires=" + expires.toUTCString();
3380
+ }
3381
+ if (opt.httpOnly) {
3382
+ str += "; HttpOnly";
3383
+ }
3384
+ if (opt.secure) {
3385
+ str += "; Secure";
3386
+ }
3387
+ if (opt.partitioned) {
3388
+ str += "; Partitioned";
3389
+ }
3390
+ if (opt.priority) {
3391
+ var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
3392
+ switch (priority) {
3393
+ case "low":
3394
+ str += "; Priority=Low";
3395
+ break;
3396
+ case "medium":
3397
+ str += "; Priority=Medium";
3398
+ break;
3399
+ case "high":
3400
+ str += "; Priority=High";
3401
+ break;
3402
+ default:
3403
+ throw new TypeError("option priority is invalid");
3404
+ }
3405
+ }
3406
+ if (opt.sameSite) {
3407
+ var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
3408
+ switch (sameSite) {
3409
+ case true:
3410
+ str += "; SameSite=Strict";
3411
+ break;
3412
+ case "lax":
3413
+ str += "; SameSite=Lax";
3414
+ break;
3415
+ case "strict":
3416
+ str += "; SameSite=Strict";
3417
+ break;
3418
+ case "none":
3419
+ str += "; SameSite=None";
3420
+ break;
3421
+ default:
3422
+ throw new TypeError("option sameSite is invalid");
3423
+ }
3424
+ }
3425
+ return str;
3426
+ }
3427
+ function decode(str) {
3428
+ return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
3429
+ }
3430
+ function encode2(val) {
3431
+ return encodeURIComponent(val);
3432
+ }
3433
+ function isDate(val) {
3434
+ return __toString.call(val) === "[object Date]" || val instanceof Date;
3435
+ }
3436
+ function tryDecode(str, decode2) {
3437
+ try {
3438
+ return decode2(str);
3439
+ } catch (e) {
3440
+ return str;
3441
+ }
3442
+ }
3443
+ return cookie;
3444
+ }
3445
+ var cookieExports = requireCookie();
3446
+ const INVALID_COOKIE_CHARACTER_REGEX = /[\x00-\x1F\x7F()<>@,;:"/[\]?={} \t]/;
3447
+ function validate_options(options2) {
3448
+ if (options2?.path === void 0) {
3449
+ throw new Error("You must specify a `path` when setting, deleting or serializing cookies");
3450
+ }
3451
+ }
3452
+ function generate_cookie_key(domain, path, name) {
3453
+ return `${domain || ""}${path}?${encodeURIComponent(name)}`;
3454
+ }
3455
+ function get_cookies(request, url) {
3456
+ const header = request.headers.get("cookie") ?? "";
3457
+ const initial_cookies = cookieExports.parse(header, { decode: (value) => value });
3458
+ let normalized_url;
3459
+ const new_cookies = /* @__PURE__ */ new Map();
3460
+ const defaults = {
3461
+ httpOnly: true,
3462
+ sameSite: "lax",
3463
+ secure: url.hostname === "localhost" && url.protocol === "http:" ? false : true
3464
+ };
3465
+ const cookies = {
3466
+ // The JSDoc param annotations appearing below for get, set and delete
3467
+ // are necessary to expose the `cookie` library types to
3468
+ // typescript users. `@type {import('@sveltejs/kit').Cookies}` above is not
3469
+ // sufficient to do so.
3470
+ /**
3471
+ * @param {string} name
3472
+ * @param {import('cookie').CookieParseOptions} [opts]
3473
+ */
3474
+ get(name, opts) {
3475
+ const best_match = Array.from(new_cookies.values()).filter((c) => {
3476
+ return c.name === name && domain_matches(url.hostname, c.options.domain) && path_matches(url.pathname, c.options.path);
3477
+ }).sort((a, b) => b.options.path.length - a.options.path.length)[0];
3478
+ if (best_match) {
3479
+ return best_match.options.maxAge === 0 ? void 0 : best_match.value;
3480
+ }
3481
+ const req_cookies = cookieExports.parse(header, { decode: opts?.decode });
3482
+ const cookie2 = req_cookies[name];
3483
+ return cookie2;
3484
+ },
3485
+ /**
3486
+ * @param {import('cookie').CookieParseOptions} [opts]
3487
+ */
3488
+ getAll(opts) {
3489
+ const cookies2 = cookieExports.parse(header, { decode: opts?.decode });
3490
+ const lookup = /* @__PURE__ */ new Map();
3491
+ for (const c of new_cookies.values()) {
3492
+ if (domain_matches(url.hostname, c.options.domain) && path_matches(url.pathname, c.options.path)) {
3493
+ const existing = lookup.get(c.name);
3494
+ if (!existing || c.options.path.length > existing.options.path.length) {
3495
+ lookup.set(c.name, c);
3496
+ }
3497
+ }
3498
+ }
3499
+ for (const c of lookup.values()) {
3500
+ cookies2[c.name] = c.value;
3501
+ }
3502
+ return Object.entries(cookies2).map(([name, value]) => ({ name, value }));
3503
+ },
3504
+ /**
3505
+ * @param {string} name
3506
+ * @param {string} value
3507
+ * @param {import('./page/types.js').Cookie['options']} options
3508
+ */
3509
+ set(name, value, options2) {
3510
+ const illegal_characters = name.match(INVALID_COOKIE_CHARACTER_REGEX);
3511
+ if (illegal_characters) {
3512
+ console.warn(
3513
+ `The cookie name "${name}" will be invalid in SvelteKit 3.0 as it contains ${illegal_characters.join(
3514
+ " and "
3515
+ )}. See RFC 2616 for more details https://datatracker.ietf.org/doc/html/rfc2616#section-2.2`
3516
+ );
3517
+ }
3518
+ validate_options(options2);
3519
+ set_internal(name, value, { ...defaults, ...options2 });
3520
+ },
3521
+ /**
3522
+ * @param {string} name
3523
+ * @param {import('./page/types.js').Cookie['options']} options
3524
+ */
3525
+ delete(name, options2) {
3526
+ validate_options(options2);
3527
+ cookies.set(name, "", { ...options2, maxAge: 0 });
3528
+ },
3529
+ /**
3530
+ * @param {string} name
3531
+ * @param {string} value
3532
+ * @param {import('./page/types.js').Cookie['options']} options
3533
+ */
3534
+ serialize(name, value, options2) {
3535
+ validate_options(options2);
3536
+ let path = options2.path;
3537
+ if (!options2.domain || options2.domain === url.hostname) {
3538
+ if (!normalized_url) {
3539
+ throw new Error("Cannot serialize cookies until after the route is determined");
3540
+ }
3541
+ path = resolve(normalized_url, path);
3542
+ }
3543
+ return cookieExports.serialize(name, value, { ...defaults, ...options2, path });
3544
+ }
3545
+ };
3546
+ function get_cookie_header(destination, header2) {
3547
+ const combined_cookies = {
3548
+ // cookies sent by the user agent have lowest precedence
3549
+ ...initial_cookies
3550
+ };
3551
+ for (const cookie2 of new_cookies.values()) {
3552
+ if (!domain_matches(destination.hostname, cookie2.options.domain)) continue;
3553
+ if (!path_matches(destination.pathname, cookie2.options.path)) continue;
3554
+ const encoder = cookie2.options.encode || encodeURIComponent;
3555
+ combined_cookies[cookie2.name] = encoder(cookie2.value);
3556
+ }
3557
+ if (header2) {
3558
+ const parsed = cookieExports.parse(header2, { decode: (value) => value });
3559
+ for (const name in parsed) {
3560
+ combined_cookies[name] = parsed[name];
3561
+ }
3562
+ }
3563
+ return Object.entries(combined_cookies).map(([name, value]) => `${name}=${value}`).join("; ");
3564
+ }
3565
+ const internal_queue = [];
3566
+ function set_internal(name, value, options2) {
3567
+ if (!normalized_url) {
3568
+ internal_queue.push(() => set_internal(name, value, options2));
3569
+ return;
3570
+ }
3571
+ let path = options2.path;
3572
+ if (!options2.domain || options2.domain === url.hostname) {
3573
+ path = resolve(normalized_url, path);
3574
+ }
3575
+ const cookie_key = generate_cookie_key(options2.domain, path, name);
3576
+ const cookie2 = { name, value, options: { ...options2, path } };
3577
+ new_cookies.set(cookie_key, cookie2);
3578
+ }
3579
+ function set_trailing_slash(trailing_slash) {
3580
+ normalized_url = normalize_path(url.pathname, trailing_slash);
3581
+ internal_queue.forEach((fn) => fn());
3582
+ }
3583
+ return { cookies, new_cookies, get_cookie_header, set_internal, set_trailing_slash };
3584
+ }
3585
+ function domain_matches(hostname, constraint) {
3586
+ if (!constraint) return true;
3587
+ const normalized = constraint[0] === "." ? constraint.slice(1) : constraint;
3588
+ if (hostname === normalized) return true;
3589
+ return hostname.endsWith("." + normalized);
3590
+ }
3591
+ function path_matches(path, constraint) {
3592
+ if (!constraint) return true;
3593
+ const normalized = constraint.endsWith("/") ? constraint.slice(0, -1) : constraint;
3594
+ if (path === normalized) return true;
3595
+ return path.startsWith(normalized + "/");
3596
+ }
3597
+ function add_cookies_to_headers(headers2, cookies) {
3598
+ for (const new_cookie of cookies) {
3599
+ const { name, value, options: options2 } = new_cookie;
3600
+ headers2.append("set-cookie", cookieExports.serialize(name, value, options2));
3601
+ if (options2.path.endsWith(".html")) {
3602
+ const path = add_data_suffix(options2.path);
3603
+ headers2.append("set-cookie", cookieExports.serialize(name, value, { ...options2, path }));
3604
+ }
3605
+ }
3606
+ }
3607
+ var defaultParseOptions = {
3608
+ decodeValues: true,
3609
+ map: false,
3610
+ silent: false,
3611
+ split: "auto"
3612
+ // auto = split strings but not arrays
3613
+ };
3614
+ function isForbiddenKey(key2) {
3615
+ return typeof key2 !== "string" || key2 in {};
3616
+ }
3617
+ function createNullObj() {
3618
+ return /* @__PURE__ */ Object.create(null);
3619
+ }
3620
+ function isNonEmptyString(str) {
3621
+ return typeof str === "string" && !!str.trim();
3622
+ }
3623
+ function parseString(setCookieValue, options2) {
3624
+ var parts = setCookieValue.split(";").filter(isNonEmptyString);
3625
+ var nameValuePairStr = parts.shift();
3626
+ var parsed = parseNameValuePair(nameValuePairStr);
3627
+ var name = parsed.name;
3628
+ var value = parsed.value;
3629
+ options2 = options2 ? Object.assign({}, defaultParseOptions, options2) : defaultParseOptions;
3630
+ if (isForbiddenKey(name)) {
3631
+ return null;
3632
+ }
3633
+ try {
3634
+ value = options2.decodeValues ? decodeURIComponent(value) : value;
3635
+ } catch (e) {
3636
+ console.error(
3637
+ "set-cookie-parser: failed to decode cookie value. Set options.decodeValues=false to disable decoding.",
3638
+ e
3639
+ );
3640
+ }
3641
+ var cookie2 = createNullObj();
3642
+ cookie2.name = name;
3643
+ cookie2.value = value;
3644
+ parts.forEach(function(part) {
3645
+ var sides = part.split("=");
3646
+ var key2 = sides.shift().trimLeft().toLowerCase();
3647
+ if (isForbiddenKey(key2)) {
3648
+ return;
3649
+ }
3650
+ var value2 = sides.join("=");
3651
+ if (key2 === "expires") {
3652
+ cookie2.expires = new Date(value2);
3653
+ } else if (key2 === "max-age") {
3654
+ var n = parseInt(value2, 10);
3655
+ if (!Number.isNaN(n)) cookie2.maxAge = n;
3656
+ } else if (key2 === "secure") {
3657
+ cookie2.secure = true;
3658
+ } else if (key2 === "httponly") {
3659
+ cookie2.httpOnly = true;
3660
+ } else if (key2 === "samesite") {
3661
+ cookie2.sameSite = value2;
3662
+ } else if (key2 === "partitioned") {
3663
+ cookie2.partitioned = true;
3664
+ } else if (key2) {
3665
+ cookie2[key2] = value2;
3666
+ }
3667
+ });
3668
+ return cookie2;
3669
+ }
3670
+ function parseNameValuePair(nameValuePairStr) {
3671
+ var name = "";
3672
+ var value = "";
3673
+ var nameValueArr = nameValuePairStr.split("=");
3674
+ if (nameValueArr.length > 1) {
3675
+ name = nameValueArr.shift();
3676
+ value = nameValueArr.join("=");
3677
+ } else {
3678
+ value = nameValuePairStr;
3679
+ }
3680
+ return { name, value };
3681
+ }
3682
+ function parseSetCookie(input, options2) {
3683
+ options2 = options2 ? Object.assign({}, defaultParseOptions, options2) : defaultParseOptions;
3684
+ if (!input) {
3685
+ if (!options2.map) {
3686
+ return [];
3687
+ } else {
3688
+ return createNullObj();
3689
+ }
3690
+ }
3691
+ if (input.headers) {
3692
+ if (typeof input.headers.getSetCookie === "function") {
3693
+ input = input.headers.getSetCookie();
3694
+ } else if (input.headers["set-cookie"]) {
3695
+ input = input.headers["set-cookie"];
3696
+ } else {
3697
+ var sch = input.headers[Object.keys(input.headers).find(function(key2) {
3698
+ return key2.toLowerCase() === "set-cookie";
3699
+ })];
3700
+ if (!sch && input.headers.cookie && !options2.silent) {
3701
+ console.warn(
3702
+ "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."
3703
+ );
3704
+ }
3705
+ input = sch;
3706
+ }
3707
+ }
3708
+ var split = options2.split;
3709
+ var isArray = Array.isArray(input);
3710
+ if (split === "auto") {
3711
+ split = !isArray;
3712
+ }
3713
+ if (!isArray) {
3714
+ input = [input];
3715
+ }
3716
+ input = input.filter(isNonEmptyString);
3717
+ if (split) {
3718
+ input = input.map(splitCookiesString).flat();
3719
+ }
3720
+ if (!options2.map) {
3721
+ return input.map(function(str) {
3722
+ return parseString(str, options2);
3723
+ }).filter(Boolean);
3724
+ } else {
3725
+ var cookies = createNullObj();
3726
+ return input.reduce(function(cookies2, str) {
3727
+ var cookie2 = parseString(str, options2);
3728
+ if (cookie2 && !isForbiddenKey(cookie2.name)) {
3729
+ cookies2[cookie2.name] = cookie2;
3730
+ }
3731
+ return cookies2;
3732
+ }, cookies);
3733
+ }
3734
+ }
3735
+ function splitCookiesString(cookiesString) {
3736
+ if (Array.isArray(cookiesString)) {
3737
+ return cookiesString;
3738
+ }
3739
+ if (typeof cookiesString !== "string") {
3740
+ return [];
3741
+ }
3742
+ var cookiesStrings = [];
3743
+ var pos = 0;
3744
+ var start;
3745
+ var ch;
3746
+ var lastComma;
3747
+ var nextStart;
3748
+ var cookiesSeparatorFound;
3749
+ function skipWhitespace() {
3750
+ while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) {
3751
+ pos += 1;
3752
+ }
3753
+ return pos < cookiesString.length;
3754
+ }
3755
+ function notSpecialChar() {
3756
+ ch = cookiesString.charAt(pos);
3757
+ return ch !== "=" && ch !== ";" && ch !== ",";
3758
+ }
3759
+ while (pos < cookiesString.length) {
3760
+ start = pos;
3761
+ cookiesSeparatorFound = false;
3762
+ while (skipWhitespace()) {
3763
+ ch = cookiesString.charAt(pos);
3764
+ if (ch === ",") {
3765
+ lastComma = pos;
3766
+ pos += 1;
3767
+ skipWhitespace();
3768
+ nextStart = pos;
3769
+ while (pos < cookiesString.length && notSpecialChar()) {
3770
+ pos += 1;
3771
+ }
3772
+ if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
3773
+ cookiesSeparatorFound = true;
3774
+ pos = nextStart;
3775
+ cookiesStrings.push(cookiesString.substring(start, lastComma));
3776
+ start = pos;
3777
+ } else {
3778
+ pos = lastComma + 1;
3779
+ }
3780
+ } else {
3781
+ pos += 1;
3782
+ }
3783
+ }
3784
+ if (!cookiesSeparatorFound || pos >= cookiesString.length) {
3785
+ cookiesStrings.push(cookiesString.substring(start, cookiesString.length));
3786
+ }
3787
+ }
3788
+ return cookiesStrings;
3789
+ }
3790
+ parseSetCookie.parseSetCookie = parseSetCookie;
3791
+ parseSetCookie.parse = parseSetCookie;
3792
+ parseSetCookie.parseString = parseString;
3793
+ parseSetCookie.splitCookiesString = splitCookiesString;
3794
+ function create_fetch({ event, options: options2, manifest, state, get_cookie_header, set_internal }) {
3795
+ const server_fetch = async (info, init2) => {
3796
+ const original_request = normalize_fetch_input(info, init2, event.url);
3797
+ let mode = (info instanceof Request ? info.mode : init2?.mode) ?? "cors";
3798
+ let credentials = (info instanceof Request ? info.credentials : init2?.credentials) ?? "same-origin";
3799
+ return options2.hooks.handleFetch({
3800
+ event,
3801
+ request: original_request,
3802
+ fetch: async (info2, init3) => {
3803
+ const request = normalize_fetch_input(info2, init3, event.url);
3804
+ const url = new URL(request.url);
3805
+ if (!request.headers.has("origin")) {
3806
+ request.headers.set("origin", event.url.origin);
3807
+ }
3808
+ if (info2 !== original_request) {
3809
+ mode = (info2 instanceof Request ? info2.mode : init3?.mode) ?? "cors";
3810
+ credentials = (info2 instanceof Request ? info2.credentials : init3?.credentials) ?? "same-origin";
3811
+ }
3812
+ if ((request.method === "GET" || request.method === "HEAD") && (mode === "no-cors" && url.origin !== event.url.origin || url.origin === event.url.origin)) {
3813
+ request.headers.delete("origin");
3814
+ }
3815
+ const decoded = decodeURIComponent(url.pathname);
3816
+ if (url.origin !== event.url.origin || base && decoded !== base && !decoded.startsWith(`${base}/`)) {
3817
+ if (`.${url.hostname}`.endsWith(`.${event.url.hostname}`) && credentials !== "omit") {
3818
+ const cookie2 = get_cookie_header(url, request.headers.get("cookie"));
3819
+ if (cookie2) request.headers.set("cookie", cookie2);
3820
+ }
3821
+ return fetch(request);
3822
+ }
3823
+ const prefix = assets || base;
3824
+ const filename = (decoded.startsWith(prefix) ? decoded.slice(prefix.length) : decoded).slice(1);
3825
+ const filename_html = `${filename}/index.html`;
3826
+ const is_asset = manifest.assets.has(filename) || filename in manifest._.server_assets;
3827
+ const is_asset_html = manifest.assets.has(filename_html) || filename_html in manifest._.server_assets;
3828
+ if (is_asset || is_asset_html) {
3829
+ const file = is_asset ? filename : filename_html;
3830
+ if (state.read) {
3831
+ const type = is_asset ? manifest.mimeTypes[filename.slice(filename.lastIndexOf("."))] : "text/html";
3832
+ return new Response(state.read(file), {
3833
+ headers: type ? { "content-type": type } : {}
3834
+ });
3835
+ } else if (read_implementation && file in manifest._.server_assets) {
3836
+ const length = manifest._.server_assets[file];
3837
+ const type = manifest.mimeTypes[file.slice(file.lastIndexOf("."))];
3838
+ return new Response(read_implementation(file), {
3839
+ headers: {
3840
+ "Content-Length": "" + length,
3841
+ "Content-Type": type
3842
+ }
3843
+ });
3844
+ }
3845
+ return await fetch(request);
3846
+ }
3847
+ if (has_prerendered_path(manifest, base + decoded)) {
3848
+ return await fetch(request);
3849
+ }
3850
+ if (credentials !== "omit") {
3851
+ const cookie2 = get_cookie_header(url, request.headers.get("cookie"));
3852
+ if (cookie2) {
3853
+ request.headers.set("cookie", cookie2);
3854
+ }
3855
+ const authorization = event.request.headers.get("authorization");
3856
+ if (authorization && !request.headers.has("authorization")) {
3857
+ request.headers.set("authorization", authorization);
3858
+ }
3859
+ }
3860
+ if (!request.headers.has("accept")) {
3861
+ request.headers.set("accept", "*/*");
3862
+ }
3863
+ if (!request.headers.has("accept-language")) {
3864
+ request.headers.set(
3865
+ "accept-language",
3866
+ /** @type {string} */
3867
+ event.request.headers.get("accept-language")
3868
+ );
3869
+ }
3870
+ const response = await internal_fetch(request, options2, manifest, state);
3871
+ const set_cookie = response.headers.get("set-cookie");
3872
+ if (set_cookie) {
3873
+ for (const str of splitCookiesString(set_cookie)) {
3874
+ const { name, value, ...options3 } = parseString(str, {
3875
+ decodeValues: false
3876
+ });
3877
+ const path = options3.path ?? (url.pathname.split("/").slice(0, -1).join("/") || "/");
3878
+ set_internal(name, value, {
3879
+ path,
3880
+ encode: (value2) => value2,
3881
+ .../** @type {import('cookie').CookieSerializeOptions} */
3882
+ options3
3883
+ });
3884
+ }
3885
+ }
3886
+ return response;
3887
+ }
3888
+ });
3889
+ };
3890
+ return (input, init2) => {
3891
+ const response = server_fetch(input, init2);
3892
+ response.catch(() => {
3893
+ });
3894
+ return response;
3895
+ };
3896
+ }
3897
+ function normalize_fetch_input(info, init2, url) {
3898
+ if (info instanceof Request) {
3899
+ return info;
3900
+ }
3901
+ return new Request(typeof info === "string" ? new URL(info, url) : info, init2);
3902
+ }
3903
+ async function internal_fetch(request, options2, manifest, state) {
3904
+ if (request.signal) {
3905
+ if (request.signal.aborted) {
3906
+ throw new DOMException("The operation was aborted.", "AbortError");
3907
+ }
3908
+ let remove_abort_listener = () => {
3909
+ };
3910
+ const abort_promise = new Promise((_, reject) => {
3911
+ const on_abort = () => {
3912
+ reject(new DOMException("The operation was aborted.", "AbortError"));
3913
+ };
3914
+ request.signal.addEventListener("abort", on_abort, { once: true });
3915
+ remove_abort_listener = () => request.signal.removeEventListener("abort", on_abort);
3916
+ });
3917
+ const result = await Promise.race([
3918
+ respond(request, options2, manifest, {
3919
+ ...state,
3920
+ depth: state.depth + 1
3921
+ }),
3922
+ abort_promise
3923
+ ]);
3924
+ remove_abort_listener();
3925
+ return result;
3926
+ } else {
3927
+ return await respond(request, options2, manifest, {
3928
+ ...state,
3929
+ depth: state.depth + 1
3930
+ });
3931
+ }
3932
+ }
3933
+ let body;
3934
+ let etag;
3935
+ let headers;
3936
+ function get_public_env(request) {
3937
+ body ??= `export const env=${JSON.stringify(public_env)}`;
3938
+ etag ??= `W/${Date.now()}`;
3939
+ headers ??= new Headers({
3940
+ "content-type": "application/javascript; charset=utf-8",
3941
+ etag
3942
+ });
3943
+ if (request.headers.get("if-none-match") === etag) {
3944
+ return new Response(void 0, { status: 304, headers });
3945
+ }
3946
+ return new Response(body, { headers });
3947
+ }
3948
+ const default_transform = ({ html }) => html;
3949
+ const default_filter = () => false;
3950
+ const default_preload = ({ type }) => type === "js" || type === "css";
3951
+ const page_methods = /* @__PURE__ */ new Set(["GET", "HEAD", "POST"]);
3952
+ const allowed_page_methods = /* @__PURE__ */ new Set(["GET", "HEAD", "OPTIONS"]);
3953
+ const respond = propagate_context(internal_respond);
3954
+ async function internal_respond(request, options2, manifest, state) {
3955
+ const url = new URL(request.url);
3956
+ const is_route_resolution_request = has_resolution_suffix(url.pathname);
3957
+ const is_data_request = has_data_suffix(url.pathname);
3958
+ const remote_id = get_remote_id(url);
3959
+ {
3960
+ const request_origin = request.headers.get("origin");
3961
+ if (remote_id) {
3962
+ if (request.method !== "GET" && request_origin !== url.origin) {
3963
+ const message = "Cross-site remote requests are forbidden";
3964
+ return json({ message }, { status: 403 });
3965
+ }
3966
+ } else if (options2.csrf_check_origin) {
3967
+ const forbidden = is_form_content_type(request) && (request.method === "POST" || request.method === "PUT" || request.method === "PATCH" || request.method === "DELETE") && request_origin !== url.origin && (!request_origin || !options2.csrf_trusted_origins.includes(request_origin));
3968
+ if (forbidden) {
3969
+ const message = `Cross-site ${request.method} form submissions are forbidden`;
3970
+ const opts = { status: 403 };
3971
+ if (request.headers.get("accept") === "application/json") {
3972
+ return json({ message }, opts);
3973
+ }
3974
+ return text(message, opts);
3975
+ }
3976
+ }
3977
+ }
3978
+ if (options2.hash_routing && url.pathname !== base + "/" && url.pathname !== "/[fallback]") {
3979
+ return text("Not found", { status: 404 });
3980
+ }
3981
+ let invalidated_data_nodes;
3982
+ if (is_route_resolution_request) {
3983
+ url.pathname = strip_resolution_suffix(url.pathname);
3984
+ } else if (is_data_request) {
3985
+ url.pathname = strip_data_suffix(url.pathname) + (url.searchParams.get(TRAILING_SLASH_PARAM) === "1" ? "/" : "") || "/";
3986
+ url.searchParams.delete(TRAILING_SLASH_PARAM);
3987
+ invalidated_data_nodes = url.searchParams.get(INVALIDATED_PARAM)?.split("").map((node) => node === "1");
3988
+ url.searchParams.delete(INVALIDATED_PARAM);
3989
+ } else if (remote_id) {
3990
+ url.pathname = request.headers.get("x-sveltekit-pathname") ?? base;
3991
+ url.search = request.headers.get("x-sveltekit-search") ?? "";
3992
+ }
3993
+ const headers2 = {};
3994
+ const { cookies, new_cookies, get_cookie_header, set_internal, set_trailing_slash } = get_cookies(
3995
+ request,
3996
+ url
3997
+ );
3998
+ const event_state = {
3999
+ prerendering: state.prerendering,
4000
+ transport: options2.hooks.transport,
4001
+ handleValidationError: options2.hooks.handleValidationError,
4002
+ tracing: {
4003
+ record_span
4004
+ },
4005
+ is_in_remote_function: false
4006
+ };
4007
+ const event = {
4008
+ cookies,
4009
+ // @ts-expect-error `fetch` needs to be created after the `event` itself
4010
+ fetch: null,
4011
+ getClientAddress: state.getClientAddress || (() => {
4012
+ throw new Error(
4013
+ `${"@sveltejs/adapter-node"} does not specify getClientAddress. Please raise an issue`
4014
+ );
4015
+ }),
4016
+ locals: {},
4017
+ params: {},
4018
+ platform: state.platform,
4019
+ request,
4020
+ route: { id: null },
4021
+ setHeaders: (new_headers) => {
4022
+ for (const key2 in new_headers) {
4023
+ const lower = key2.toLowerCase();
4024
+ const value = new_headers[key2];
4025
+ if (lower === "set-cookie") {
4026
+ throw new Error(
4027
+ "Use `event.cookies.set(name, value, options)` instead of `event.setHeaders` to set cookies"
4028
+ );
4029
+ } else if (lower in headers2) {
4030
+ if (lower === "server-timing") {
4031
+ headers2[lower] += ", " + value;
4032
+ } else {
4033
+ throw new Error(`"${key2}" header is already set`);
4034
+ }
4035
+ } else {
4036
+ headers2[lower] = value;
4037
+ if (state.prerendering && lower === "cache-control") {
4038
+ state.prerendering.cache = /** @type {string} */
4039
+ value;
4040
+ }
4041
+ }
4042
+ }
4043
+ },
4044
+ url,
4045
+ isDataRequest: is_data_request,
4046
+ isSubRequest: state.depth > 0,
4047
+ isRemoteRequest: !!remote_id
4048
+ };
4049
+ event.fetch = create_fetch({
4050
+ event,
4051
+ options: options2,
4052
+ manifest,
4053
+ state,
4054
+ get_cookie_header,
4055
+ set_internal
4056
+ });
4057
+ if (state.emulator?.platform) {
4058
+ event.platform = await state.emulator.platform({
4059
+ config: {},
4060
+ prerender: !!state.prerendering?.fallback
4061
+ });
4062
+ }
4063
+ let resolved_path = url.pathname;
4064
+ if (!remote_id) {
4065
+ const prerendering_reroute_state = state.prerendering?.inside_reroute;
4066
+ try {
4067
+ if (state.prerendering) state.prerendering.inside_reroute = true;
4068
+ resolved_path = await options2.hooks.reroute({ url: new URL(url), fetch: event.fetch }) ?? url.pathname;
4069
+ } catch {
4070
+ return text("Internal Server Error", {
4071
+ status: 500
4072
+ });
4073
+ } finally {
4074
+ if (state.prerendering) state.prerendering.inside_reroute = prerendering_reroute_state;
4075
+ }
4076
+ }
4077
+ try {
4078
+ resolved_path = decode_pathname(resolved_path);
4079
+ } catch {
4080
+ return text("Malformed URI", { status: 400 });
4081
+ }
4082
+ if (
4083
+ // the resolved path has been decoded so it should be compared to the decoded url pathname
4084
+ resolved_path !== decode_pathname(url.pathname) && !state.prerendering?.fallback && has_prerendered_path(manifest, resolved_path)
4085
+ ) {
4086
+ const url2 = new URL(request.url);
4087
+ url2.pathname = is_data_request ? add_data_suffix(resolved_path) : is_route_resolution_request ? add_resolution_suffix(resolved_path) : resolved_path;
4088
+ try {
4089
+ const response = await fetch(url2, request);
4090
+ const headers22 = new Headers(response.headers);
4091
+ if (headers22.has("content-encoding")) {
4092
+ headers22.delete("content-encoding");
4093
+ headers22.delete("content-length");
4094
+ }
4095
+ return new Response(response.body, {
4096
+ headers: headers22,
4097
+ status: response.status,
4098
+ statusText: response.statusText
4099
+ });
4100
+ } catch (error2) {
4101
+ return await handle_fatal_error(event, event_state, options2, error2);
4102
+ }
4103
+ }
4104
+ let route = null;
4105
+ if (base && !state.prerendering?.fallback) {
4106
+ if (!resolved_path.startsWith(base)) {
4107
+ return text("Not found", { status: 404 });
4108
+ }
4109
+ resolved_path = resolved_path.slice(base.length) || "/";
4110
+ }
4111
+ if (is_route_resolution_request) {
4112
+ return resolve_route(resolved_path, new URL(request.url), manifest);
4113
+ }
4114
+ if (resolved_path === `/${app_dir}/env.js`) {
4115
+ return get_public_env(request);
4116
+ }
4117
+ if (!remote_id && resolved_path.startsWith(`/${app_dir}`)) {
4118
+ const headers22 = new Headers();
4119
+ headers22.set("cache-control", "public, max-age=0, must-revalidate");
4120
+ return text("Not found", { status: 404, headers: headers22 });
4121
+ }
4122
+ if (!state.prerendering?.fallback) {
4123
+ const matchers = await manifest._.matchers();
4124
+ const result = find_route(resolved_path, manifest._.routes, matchers);
4125
+ if (result) {
4126
+ route = result.route;
4127
+ event.route = { id: route.id };
4128
+ event.params = result.params;
4129
+ }
4130
+ }
4131
+ let resolve_opts = {
4132
+ transformPageChunk: default_transform,
4133
+ filterSerializedResponseHeaders: default_filter,
4134
+ preload: default_preload
4135
+ };
4136
+ let trailing_slash = "never";
4137
+ try {
4138
+ const page_nodes = route?.page ? new PageNodes(await load_page_nodes(route.page, manifest)) : void 0;
4139
+ if (route && !remote_id) {
4140
+ if (url.pathname === base || url.pathname === base + "/") {
4141
+ trailing_slash = "always";
4142
+ } else if (page_nodes) {
4143
+ if (browser) ;
4144
+ trailing_slash = page_nodes.trailing_slash();
4145
+ } else if (route.endpoint) {
4146
+ const node = await route.endpoint();
4147
+ trailing_slash = node.trailingSlash ?? "never";
4148
+ if (browser) ;
4149
+ }
4150
+ if (!is_data_request) {
4151
+ const normalized = normalize_path(url.pathname, trailing_slash);
4152
+ if (normalized !== url.pathname && !state.prerendering?.fallback) {
4153
+ return new Response(void 0, {
4154
+ status: 308,
4155
+ headers: {
4156
+ "x-sveltekit-normalize": "1",
4157
+ location: (
4158
+ // ensure paths starting with '//' are not treated as protocol-relative
4159
+ (normalized.startsWith("//") ? url.origin + normalized : normalized) + (url.search === "?" ? "" : url.search)
4160
+ )
4161
+ }
4162
+ });
4163
+ }
4164
+ }
4165
+ if (state.before_handle || state.emulator?.platform) {
4166
+ let config = {};
4167
+ let prerender = false;
4168
+ if (route.endpoint) {
4169
+ const node = await route.endpoint();
4170
+ config = node.config ?? config;
4171
+ prerender = node.prerender ?? prerender;
4172
+ } else if (page_nodes) {
4173
+ config = page_nodes.get_config() ?? config;
4174
+ prerender = page_nodes.prerender();
4175
+ }
4176
+ if (state.before_handle) {
4177
+ state.before_handle(event, config, prerender);
4178
+ }
4179
+ if (state.emulator?.platform) {
4180
+ event.platform = await state.emulator.platform({ config, prerender });
4181
+ }
4182
+ }
4183
+ }
4184
+ set_trailing_slash(trailing_slash);
4185
+ if (state.prerendering && !state.prerendering.fallback && !state.prerendering.inside_reroute) {
4186
+ disable_search(url);
4187
+ }
4188
+ const response = await record_span({
4189
+ name: "sveltekit.handle.root",
4190
+ attributes: {
4191
+ "http.route": event.route.id || "unknown",
4192
+ "http.method": event.request.method,
4193
+ "http.url": event.url.href,
4194
+ "sveltekit.is_data_request": is_data_request,
4195
+ "sveltekit.is_sub_request": event.isSubRequest
4196
+ },
4197
+ fn: async (root_span) => {
4198
+ const traced_event = {
4199
+ ...event,
4200
+ tracing: {
4201
+ enabled: true,
4202
+ root: root_span,
4203
+ current: root_span
4204
+ }
4205
+ };
4206
+ event_state.allows_commands = MUTATIVE_METHODS.includes(request.method);
4207
+ return await with_request_store(
4208
+ { event: traced_event, state: event_state },
4209
+ () => options2.hooks.handle({
4210
+ event: traced_event,
4211
+ resolve: (event2, opts) => {
4212
+ return record_span({
4213
+ name: "sveltekit.resolve",
4214
+ attributes: {
4215
+ "http.route": event2.route.id || "unknown"
4216
+ },
4217
+ fn: (resolve_span) => {
4218
+ return with_request_store(
4219
+ null,
4220
+ () => resolve2(merge_tracing(event2, resolve_span), page_nodes, opts).then(
4221
+ (response2) => {
4222
+ for (const key2 in headers2) {
4223
+ const value = headers2[key2];
4224
+ response2.headers.set(
4225
+ key2,
4226
+ /** @type {string} */
4227
+ value
4228
+ );
4229
+ }
4230
+ add_cookies_to_headers(response2.headers, new_cookies.values());
4231
+ if (state.prerendering && event2.route.id !== null) {
4232
+ response2.headers.set("x-sveltekit-routeid", encodeURI(event2.route.id));
4233
+ }
4234
+ resolve_span.setAttributes({
4235
+ "http.response.status_code": response2.status,
4236
+ "http.response.body.size": response2.headers.get("content-length") || "unknown"
4237
+ });
4238
+ return response2;
4239
+ }
4240
+ )
4241
+ );
4242
+ }
4243
+ });
4244
+ }
4245
+ })
4246
+ );
4247
+ }
4248
+ });
4249
+ if (response.status === 200 && response.headers.has("etag")) {
4250
+ let if_none_match_value = request.headers.get("if-none-match");
4251
+ if (if_none_match_value?.startsWith('W/"')) {
4252
+ if_none_match_value = if_none_match_value.substring(2);
4253
+ }
4254
+ const etag2 = (
4255
+ /** @type {string} */
4256
+ response.headers.get("etag")
4257
+ );
4258
+ if (if_none_match_value === etag2) {
4259
+ const headers22 = new Headers({ etag: etag2 });
4260
+ for (const key2 of [
4261
+ "cache-control",
4262
+ "content-location",
4263
+ "date",
4264
+ "expires",
4265
+ "vary",
4266
+ "set-cookie"
4267
+ ]) {
4268
+ const value = response.headers.get(key2);
4269
+ if (value) headers22.set(key2, value);
4270
+ }
4271
+ return new Response(void 0, {
4272
+ status: 304,
4273
+ headers: headers22
4274
+ });
4275
+ }
4276
+ }
4277
+ if (is_data_request && response.status >= 300 && response.status <= 308) {
4278
+ const location = response.headers.get("location");
4279
+ if (location) {
4280
+ return redirect_json_response(new Redirect(
4281
+ /** @type {any} */
4282
+ response.status,
4283
+ location
4284
+ ));
4285
+ }
4286
+ }
4287
+ return response;
4288
+ } catch (e) {
4289
+ if (e instanceof Redirect) {
4290
+ const response = is_data_request || remote_id ? redirect_json_response(e) : route?.page && is_action_json_request(event) ? action_json_redirect(e) : redirect_response(e.status, e.location);
4291
+ add_cookies_to_headers(response.headers, new_cookies.values());
4292
+ return response;
4293
+ }
4294
+ return await handle_fatal_error(event, event_state, options2, e);
4295
+ }
4296
+ async function resolve2(event2, page_nodes, opts) {
4297
+ try {
4298
+ if (opts) {
4299
+ resolve_opts = {
4300
+ transformPageChunk: opts.transformPageChunk || default_transform,
4301
+ filterSerializedResponseHeaders: opts.filterSerializedResponseHeaders || default_filter,
4302
+ preload: opts.preload || default_preload
4303
+ };
4304
+ }
4305
+ if (options2.hash_routing || state.prerendering?.fallback) {
4306
+ return await render_response({
4307
+ event: event2,
4308
+ event_state,
4309
+ options: options2,
4310
+ manifest,
4311
+ state,
4312
+ page_config: { ssr: false, csr: true },
4313
+ status: 200,
4314
+ error: null,
4315
+ branch: [],
4316
+ fetched: [],
4317
+ resolve_opts,
4318
+ data_serializer: server_data_serializer(event2, event_state, options2)
4319
+ });
4320
+ }
4321
+ if (remote_id) {
4322
+ return await handle_remote_call(event2, event_state, options2, manifest, remote_id);
4323
+ }
4324
+ if (route) {
4325
+ const method = (
4326
+ /** @type {import('types').HttpMethod} */
4327
+ event2.request.method
4328
+ );
4329
+ let response2;
4330
+ if (is_data_request) {
4331
+ response2 = await render_data(
4332
+ event2,
4333
+ event_state,
4334
+ route,
4335
+ options2,
4336
+ manifest,
4337
+ state,
4338
+ invalidated_data_nodes,
4339
+ trailing_slash
4340
+ );
4341
+ } else if (route.endpoint && (!route.page || is_endpoint_request(event2))) {
4342
+ response2 = await render_endpoint(event2, event_state, await route.endpoint(), state);
4343
+ } else if (route.page) {
4344
+ if (!page_nodes) {
4345
+ throw new Error("page_nodes not found. This should never happen");
4346
+ } else if (page_methods.has(method)) {
4347
+ response2 = await render_page(
4348
+ event2,
4349
+ event_state,
4350
+ route.page,
4351
+ options2,
4352
+ manifest,
4353
+ state,
4354
+ page_nodes,
4355
+ resolve_opts
4356
+ );
4357
+ } else {
4358
+ const allowed_methods = new Set(allowed_page_methods);
4359
+ const node = await manifest._.nodes[route.page.leaf]();
4360
+ if (node?.server?.actions) {
4361
+ allowed_methods.add("POST");
4362
+ }
4363
+ if (method === "OPTIONS") {
4364
+ response2 = new Response(null, {
4365
+ status: 204,
4366
+ headers: {
4367
+ allow: Array.from(allowed_methods.values()).join(", ")
4368
+ }
4369
+ });
4370
+ } else {
4371
+ const mod = [...allowed_methods].reduce(
4372
+ (acc, curr) => {
4373
+ acc[curr] = true;
4374
+ return acc;
4375
+ },
4376
+ /** @type {Record<string, any>} */
4377
+ {}
4378
+ );
4379
+ response2 = method_not_allowed(mod, method);
4380
+ }
4381
+ }
4382
+ } else {
4383
+ throw new Error("Route is neither page nor endpoint. This should never happen");
4384
+ }
4385
+ if (request.method === "GET" && route.page && route.endpoint) {
4386
+ const vary = response2.headers.get("vary")?.split(",")?.map((v) => v.trim().toLowerCase());
4387
+ if (!(vary?.includes("accept") || vary?.includes("*"))) {
4388
+ response2 = new Response(response2.body, {
4389
+ status: response2.status,
4390
+ statusText: response2.statusText,
4391
+ headers: new Headers(response2.headers)
4392
+ });
4393
+ response2.headers.append("Vary", "Accept");
4394
+ }
4395
+ }
4396
+ return response2;
4397
+ }
4398
+ if (state.error && event2.isSubRequest) {
4399
+ const headers22 = new Headers(request.headers);
4400
+ headers22.set("x-sveltekit-error", "true");
4401
+ return await fetch(request, { headers: headers22 });
4402
+ }
4403
+ if (state.error) {
4404
+ return text("Internal Server Error", {
4405
+ status: 500
4406
+ });
4407
+ }
4408
+ if (state.depth === 0) {
4409
+ if (browser && event2.url.pathname === "/.well-known/appspecific/com.chrome.devtools.json") ;
4410
+ return await respond_with_error({
4411
+ event: event2,
4412
+ event_state,
4413
+ options: options2,
4414
+ manifest,
4415
+ state,
4416
+ status: 404,
4417
+ error: new SvelteKitError(404, "Not Found", `Not found: ${event2.url.pathname}`),
4418
+ resolve_opts
4419
+ });
4420
+ }
4421
+ if (state.prerendering) {
4422
+ return text("not found", { status: 404 });
4423
+ }
4424
+ const response = await fetch(request);
4425
+ return new Response(response.body, response);
4426
+ } catch (e) {
4427
+ return await handle_fatal_error(event2, event_state, options2, e);
4428
+ } finally {
4429
+ event2.cookies.set = () => {
4430
+ throw new Error("Cannot use `cookies.set(...)` after the response has been generated");
4431
+ };
4432
+ event2.setHeaders = () => {
4433
+ throw new Error("Cannot use `setHeaders(...)` after the response has been generated");
4434
+ };
4435
+ }
4436
+ }
4437
+ }
4438
+ function load_page_nodes(page, manifest) {
4439
+ return Promise.all([
4440
+ // we use == here rather than === because [undefined] serializes as "[null]"
4441
+ ...page.layouts.map((n) => n == void 0 ? n : manifest._.nodes[n]()),
4442
+ manifest._.nodes[page.leaf]()
4443
+ ]);
4444
+ }
4445
+ function propagate_context(fn) {
4446
+ return async (req, ...rest) => {
4447
+ if (otel === null) {
4448
+ return fn(req, ...rest);
4449
+ }
4450
+ const { propagation, context } = await otel;
4451
+ const c = propagation.extract(context.active(), Object.fromEntries(req.headers));
4452
+ return context.with(c, async () => {
4453
+ return await fn(req, ...rest);
4454
+ });
4455
+ };
4456
+ }
4457
+ function filter_env(env, allowed, disallowed) {
4458
+ return Object.fromEntries(
4459
+ Object.entries(env).filter(
4460
+ ([k]) => k.startsWith(allowed) && (disallowed === "" || !k.startsWith(disallowed))
4461
+ )
4462
+ );
4463
+ }
4464
+ function set_app(value) {
4465
+ }
4466
+ let init_promise;
4467
+ let current = null;
4468
+ class Server {
4469
+ /** @type {import('types').SSROptions} */
4470
+ #options;
4471
+ /** @type {import('@sveltejs/kit').SSRManifest} */
4472
+ #manifest;
4473
+ /** @param {import('@sveltejs/kit').SSRManifest} manifest */
4474
+ constructor(manifest) {
4475
+ this.#options = options;
4476
+ this.#manifest = manifest;
4477
+ if (IN_WEBCONTAINER) {
4478
+ const respond2 = this.respond.bind(this);
4479
+ this.respond = async (...args) => {
4480
+ const { promise, resolve: resolve2 } = (
4481
+ /** @type {PromiseWithResolvers<void>} */
4482
+ with_resolvers()
4483
+ );
4484
+ const previous = current;
4485
+ current = promise;
4486
+ await previous;
4487
+ return respond2(...args).finally(resolve2);
4488
+ };
4489
+ }
4490
+ }
4491
+ /**
4492
+ * @param {import('@sveltejs/kit').ServerInitOptions} opts
4493
+ */
4494
+ async init({ env, read }) {
4495
+ const { env_public_prefix, env_private_prefix } = this.#options;
4496
+ set_private_env(filter_env(env, env_private_prefix, env_public_prefix));
4497
+ set_public_env(filter_env(env, env_public_prefix, env_private_prefix));
4498
+ if (read) {
4499
+ const wrapped_read = (file) => {
4500
+ const result = read(file);
4501
+ if (result instanceof ReadableStream) {
4502
+ return result;
4503
+ } else {
4504
+ return new ReadableStream({
4505
+ async start(controller) {
4506
+ try {
4507
+ const stream = await Promise.resolve(result);
4508
+ if (!stream) {
4509
+ controller.close();
4510
+ return;
4511
+ }
4512
+ const reader = stream.getReader();
4513
+ while (true) {
4514
+ const { done, value } = await reader.read();
4515
+ if (done) break;
4516
+ controller.enqueue(value);
4517
+ }
4518
+ controller.close();
4519
+ } catch (error2) {
4520
+ controller.error(error2);
4521
+ }
4522
+ }
4523
+ });
4524
+ }
4525
+ };
4526
+ set_read_implementation(wrapped_read);
4527
+ }
4528
+ await (init_promise ??= (async () => {
4529
+ try {
4530
+ const module = await get_hooks();
4531
+ this.#options.hooks = {
4532
+ handle: module.handle || (({ event, resolve: resolve2 }) => resolve2(event)),
4533
+ handleError: module.handleError || (({ status, error: error2, event }) => {
4534
+ const error_message = format_server_error(
4535
+ status,
4536
+ /** @type {Error} */
4537
+ error2,
4538
+ event
4539
+ );
4540
+ console.error(error_message);
4541
+ }),
4542
+ handleFetch: module.handleFetch || (({ request, fetch: fetch2 }) => fetch2(request)),
4543
+ handleValidationError: module.handleValidationError || (({ issues }) => {
4544
+ console.error("Remote function schema validation failed:", issues);
4545
+ return { message: "Bad Request" };
4546
+ }),
4547
+ reroute: module.reroute || (() => {
4548
+ }),
4549
+ transport: module.transport || {}
4550
+ };
4551
+ set_app({
4552
+ decoders: module.transport ? Object.fromEntries(Object.entries(module.transport).map(([k, v]) => [k, v.decode])) : {}
4553
+ });
4554
+ if (module.init) {
4555
+ await module.init();
4556
+ }
4557
+ } catch (e) {
4558
+ {
4559
+ throw e;
4560
+ }
4561
+ }
4562
+ })());
4563
+ }
4564
+ /**
4565
+ * @param {Request} request
4566
+ * @param {import('types').RequestOptions} options
4567
+ */
4568
+ async respond(request, options2) {
4569
+ return respond(request, this.#options, this.#manifest, {
4570
+ ...options2,
4571
+ error: false,
4572
+ depth: 0
4573
+ });
4574
+ }
4575
+ }
4576
+
4577
+ export { Server as S, merge_tracing as m };
4578
+ //# sourceMappingURL=index-D-agccNM.js.map