@better-svelte-email/preview-server 2.1.1 → 2.1.2
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.
- package/build/client/_app/immutable/assets/0.By7obJiv.css +1 -0
- package/build/client/_app/immutable/assets/0.By7obJiv.css.br +0 -0
- package/build/client/_app/immutable/assets/0.By7obJiv.css.gz +0 -0
- package/build/client/_app/immutable/chunks/2pZ28JA1.js +1 -0
- package/build/client/_app/immutable/chunks/2pZ28JA1.js.br +0 -0
- package/build/client/_app/immutable/chunks/2pZ28JA1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/8PwUyIlP2.js +1 -0
- package/build/client/_app/immutable/chunks/8PwUyIlP2.js.br +0 -0
- package/build/client/_app/immutable/chunks/8PwUyIlP2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/AoC3-GXO2.js +1 -0
- package/build/client/_app/immutable/chunks/AoC3-GXO2.js.br +0 -0
- package/build/client/_app/immutable/chunks/AoC3-GXO2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B0iNQslz.js +1 -0
- package/build/client/_app/immutable/chunks/B0iNQslz.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0iNQslz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1eC0VY6.js +1 -0
- package/build/client/_app/immutable/chunks/B1eC0VY6.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1eC0VY6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B2gwz-sJ2.js +1 -0
- package/build/client/_app/immutable/chunks/B2gwz-sJ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2gwz-sJ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B3OdPoN_.js +1 -0
- package/build/client/_app/immutable/chunks/B3OdPoN_.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3OdPoN_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B4nfriop.js +1 -0
- package/build/client/_app/immutable/chunks/B4nfriop.js.br +0 -0
- package/build/client/_app/immutable/chunks/B4nfriop.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B92yCKkz2.js +1 -0
- package/build/client/_app/immutable/chunks/B92yCKkz2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B92yCKkz2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BCyR5SPb.js +1 -0
- package/build/client/_app/immutable/chunks/BCyR5SPb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BCyR5SPb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHIi3qVr2.js +1 -0
- package/build/client/_app/immutable/chunks/BHIi3qVr2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BHIi3qVr2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BHpQb5nM.js +1 -0
- package/build/client/_app/immutable/chunks/BHpQb5nM.js.br +0 -0
- package/build/client/_app/immutable/chunks/BHpQb5nM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BL4DOeuO.js +1 -0
- package/build/client/_app/immutable/chunks/BL4DOeuO.js.br +0 -0
- package/build/client/_app/immutable/chunks/BL4DOeuO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLb6t9Lh.js +1 -0
- package/build/client/_app/immutable/chunks/BLb6t9Lh.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLb6t9Lh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BLs_XbWi2.js +1 -0
- package/build/client/_app/immutable/chunks/BLs_XbWi2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BLs_XbWi2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BML5mF2J.js +1 -0
- package/build/client/_app/immutable/chunks/BML5mF2J.js.br +0 -0
- package/build/client/_app/immutable/chunks/BML5mF2J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BO_NcNPW.js +1 -0
- package/build/client/_app/immutable/chunks/BO_NcNPW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BO_NcNPW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPpVW1t9.js +1 -0
- package/build/client/_app/immutable/chunks/BPpVW1t9.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPpVW1t9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BYnGhZoM.js +1 -0
- package/build/client/_app/immutable/chunks/BYnGhZoM.js.br +0 -0
- package/build/client/_app/immutable/chunks/BYnGhZoM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_bV9PQ92.js +1 -0
- package/build/client/_app/immutable/chunks/B_bV9PQ92.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_bV9PQ92.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bf_OO4m5.js +1 -0
- package/build/client/_app/immutable/chunks/Bf_OO4m5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bf_OO4m5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BiFt_7mu2.js +1 -0
- package/build/client/_app/immutable/chunks/BiFt_7mu2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BiFt_7mu2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bj7E1mRn.js +1 -0
- package/build/client/_app/immutable/chunks/Bj7E1mRn.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bj7E1mRn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js +81 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bjy-W4x2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BmuOG9ZW.js +1 -0
- package/build/client/_app/immutable/chunks/BmuOG9ZW.js.br +0 -0
- package/build/client/_app/immutable/chunks/BmuOG9ZW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bozd7klA.js +1 -0
- package/build/client/_app/immutable/chunks/Bozd7klA.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bozd7klA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuyVToAU.js +1 -0
- package/build/client/_app/immutable/chunks/BuyVToAU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuyVToAU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BxpfTIzt.js +1 -0
- package/build/client/_app/immutable/chunks/BxpfTIzt.js.br +0 -0
- package/build/client/_app/immutable/chunks/BxpfTIzt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzltqjU8.js +1 -0
- package/build/client/_app/immutable/chunks/BzltqjU8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzltqjU8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C0MpOrj4.js +1 -0
- package/build/client/_app/immutable/chunks/C0MpOrj4.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0MpOrj4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1IUL_tW2.js +1 -0
- package/build/client/_app/immutable/chunks/C1IUL_tW2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1IUL_tW2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2pBCSgt.js +1 -0
- package/build/client/_app/immutable/chunks/C2pBCSgt.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2pBCSgt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C2tE-Xb62.js +1 -0
- package/build/client/_app/immutable/chunks/C2tE-Xb62.js.br +0 -0
- package/build/client/_app/immutable/chunks/C2tE-Xb62.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3eVgNwp2.js +1 -0
- package/build/client/_app/immutable/chunks/C3eVgNwp2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3eVgNwp2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C4aeQxkf2.js +1 -0
- package/build/client/_app/immutable/chunks/C4aeQxkf2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C4aeQxkf2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C5bbMRzS.js +1 -0
- package/build/client/_app/immutable/chunks/C5bbMRzS.js.br +0 -0
- package/build/client/_app/immutable/chunks/C5bbMRzS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C8oCnwJJ2.js +1 -0
- package/build/client/_app/immutable/chunks/C8oCnwJJ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C8oCnwJJ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C9Q5zVZY.js +1 -0
- package/build/client/_app/immutable/chunks/C9Q5zVZY.js.br +0 -0
- package/build/client/_app/immutable/chunks/C9Q5zVZY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CA9gdOdF.js +1 -0
- package/build/client/_app/immutable/chunks/CA9gdOdF.js.br +0 -0
- package/build/client/_app/immutable/chunks/CA9gdOdF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCSX75yM2.js +1 -0
- package/build/client/_app/immutable/chunks/CCSX75yM2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCSX75yM2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDG3PAdG.js +1 -0
- package/build/client/_app/immutable/chunks/CDG3PAdG.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDG3PAdG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJteGSc7.js +1 -0
- package/build/client/_app/immutable/chunks/CJteGSc7.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJteGSc7.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJy9scTx2.js +1 -0
- package/build/client/_app/immutable/chunks/CJy9scTx2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJy9scTx2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLbN30Ww2.js +1 -0
- package/build/client/_app/immutable/chunks/CLbN30Ww2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLbN30Ww2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CVhNsCIr.js +1 -0
- package/build/client/_app/immutable/chunks/CVhNsCIr.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVhNsCIr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWbY0LAI.js +1 -0
- package/build/client/_app/immutable/chunks/CWbY0LAI.js.br +0 -0
- package/build/client/_app/immutable/chunks/CWbY0LAI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CYIUgYqB2.js +1 -0
- package/build/client/_app/immutable/chunks/CYIUgYqB2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CYIUgYqB2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C_ew8g7J2.js +1 -0
- package/build/client/_app/immutable/chunks/C_ew8g7J2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C_ew8g7J2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cc8H0qaz.js +1 -0
- package/build/client/_app/immutable/chunks/Cc8H0qaz.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cc8H0qaz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CjNLYCLg2.js +1 -0
- package/build/client/_app/immutable/chunks/CjNLYCLg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjNLYCLg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CjRP0NjD2.js +1 -0
- package/build/client/_app/immutable/chunks/CjRP0NjD2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CjRP0NjD2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CmhtYr-H.js +1 -0
- package/build/client/_app/immutable/chunks/CmhtYr-H.js.br +0 -0
- package/build/client/_app/immutable/chunks/CmhtYr-H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CogqGmtf2.js +1 -0
- package/build/client/_app/immutable/chunks/CogqGmtf2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CogqGmtf2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cs6JJXT5.js +1 -0
- package/build/client/_app/immutable/chunks/Cs6JJXT5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cs6JJXT5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CsCG9XlY2.js +1 -0
- package/build/client/_app/immutable/chunks/CsCG9XlY2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CsCG9XlY2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CtfBBspg2.js +1 -0
- package/build/client/_app/immutable/chunks/CtfBBspg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CtfBBspg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CtsyrtPq.js +1 -0
- package/build/client/_app/immutable/chunks/CtsyrtPq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CtsyrtPq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cx4VUS55.js +1 -0
- package/build/client/_app/immutable/chunks/Cx4VUS55.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cx4VUS55.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyEgAFGc.js +1 -0
- package/build/client/_app/immutable/chunks/CyEgAFGc.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyEgAFGc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyOMC1H12.js +1 -0
- package/build/client/_app/immutable/chunks/CyOMC1H12.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyOMC1H12.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyoNGCRj2.js +1 -0
- package/build/client/_app/immutable/chunks/CyoNGCRj2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyoNGCRj2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D0apG41V2.js +1 -0
- package/build/client/_app/immutable/chunks/D0apG41V2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0apG41V2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2hLgkL3.js +1 -0
- package/build/client/_app/immutable/chunks/D2hLgkL3.js.br +0 -0
- package/build/client/_app/immutable/chunks/D2hLgkL3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3_lVCrH.js +3 -0
- package/build/client/_app/immutable/chunks/D3_lVCrH.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3_lVCrH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8mc0qWB.js +1 -0
- package/build/client/_app/immutable/chunks/D8mc0qWB.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8mc0qWB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8qrblp8.js +1 -0
- package/build/client/_app/immutable/chunks/D8qrblp8.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8qrblp8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8y1tx0e2.js +1 -0
- package/build/client/_app/immutable/chunks/D8y1tx0e2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8y1tx0e2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DBj4K9d_2.js +1 -0
- package/build/client/_app/immutable/chunks/DBj4K9d_2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DBj4K9d_2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DET9eGgo.js +1 -0
- package/build/client/_app/immutable/chunks/DET9eGgo.js.br +0 -0
- package/build/client/_app/immutable/chunks/DET9eGgo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHYfO66s2.js +1 -0
- package/build/client/_app/immutable/chunks/DHYfO66s2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DHYfO66s2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DHhcNfbx.js +1 -0
- package/build/client/_app/immutable/chunks/DHhcNfbx.js.br +0 -0
- package/build/client/_app/immutable/chunks/DHhcNfbx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIA3aJp6.js +1 -0
- package/build/client/_app/immutable/chunks/DIA3aJp6.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIA3aJp6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJARFHrx.js +1 -0
- package/build/client/_app/immutable/chunks/DJARFHrx.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJARFHrx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJoGK9kf.js +1 -0
- package/build/client/_app/immutable/chunks/DJoGK9kf.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJoGK9kf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DMgNhnYS.js +1 -0
- package/build/client/_app/immutable/chunks/DMgNhnYS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DMgNhnYS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNvRKwb02.js +1 -0
- package/build/client/_app/immutable/chunks/DNvRKwb02.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNvRKwb02.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DO-qXg-I2.js +1 -0
- package/build/client/_app/immutable/chunks/DO-qXg-I2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DO-qXg-I2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DOwzaHZ02.js +1 -0
- package/build/client/_app/immutable/chunks/DOwzaHZ02.js.br +0 -0
- package/build/client/_app/immutable/chunks/DOwzaHZ02.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPeYfO_X.js +1 -0
- package/build/client/_app/immutable/chunks/DPeYfO_X.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPeYfO_X.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DRtTh9R_.js +1 -0
- package/build/client/_app/immutable/chunks/DRtTh9R_.js.br +0 -0
- package/build/client/_app/immutable/chunks/DRtTh9R_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DX1BQOs82.js +1 -0
- package/build/client/_app/immutable/chunks/DX1BQOs82.js.br +0 -0
- package/build/client/_app/immutable/chunks/DX1BQOs82.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DXvs48Yn.js +1 -0
- package/build/client/_app/immutable/chunks/DXvs48Yn.js.br +0 -0
- package/build/client/_app/immutable/chunks/DXvs48Yn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYvRD3hg2.js +1 -0
- package/build/client/_app/immutable/chunks/DYvRD3hg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYvRD3hg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_kqbw5z.js +1 -0
- package/build/client/_app/immutable/chunks/D_kqbw5z.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_kqbw5z.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DaM5BcfV.js +1 -0
- package/build/client/_app/immutable/chunks/DaM5BcfV.js.br +0 -0
- package/build/client/_app/immutable/chunks/DaM5BcfV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DatEshCS.js +1 -0
- package/build/client/_app/immutable/chunks/DatEshCS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DatEshCS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dbkyqgda2.js +1 -0
- package/build/client/_app/immutable/chunks/Dbkyqgda2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dbkyqgda2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dc2A3rbH2.js +1 -0
- package/build/client/_app/immutable/chunks/Dc2A3rbH2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dc2A3rbH2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DeSyfjfB.js +1 -0
- package/build/client/_app/immutable/chunks/DeSyfjfB.js.br +0 -0
- package/build/client/_app/immutable/chunks/DeSyfjfB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dgaz7aur.js +1 -0
- package/build/client/_app/immutable/chunks/Dgaz7aur.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dgaz7aur.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dgfk8zCU.js +1 -0
- package/build/client/_app/immutable/chunks/Dgfk8zCU.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dgfk8zCU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DgjMoLWr.js +1 -0
- package/build/client/_app/immutable/chunks/DgjMoLWr.js.br +0 -0
- package/build/client/_app/immutable/chunks/DgjMoLWr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dh5ihWbf.js +1 -0
- package/build/client/_app/immutable/chunks/Dh5ihWbf.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dh5ihWbf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DjuaAJKi.js +1 -0
- package/build/client/_app/immutable/chunks/DjuaAJKi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DjuaAJKi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DlX1gWpk.js +1 -0
- package/build/client/_app/immutable/chunks/DlX1gWpk.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlX1gWpk.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DmoyGeAS2.js +1 -0
- package/build/client/_app/immutable/chunks/DmoyGeAS2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DmoyGeAS2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DqHOMS-s.js +1 -0
- package/build/client/_app/immutable/chunks/DqHOMS-s.js.br +0 -0
- package/build/client/_app/immutable/chunks/DqHOMS-s.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DqNF_brF2.js +1 -0
- package/build/client/_app/immutable/chunks/DqNF_brF2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DqNF_brF2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dtn6NLbI.js +1 -0
- package/build/client/_app/immutable/chunks/Dtn6NLbI.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dtn6NLbI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dtv7UOty2.js +1 -0
- package/build/client/_app/immutable/chunks/Dtv7UOty2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dtv7UOty2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuBRPxYg.js +1 -0
- package/build/client/_app/immutable/chunks/DuBRPxYg.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuBRPxYg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuQiBVJu.js +29 -0
- package/build/client/_app/immutable/chunks/DuQiBVJu.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuQiBVJu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DuqgYnXA.js +1 -0
- package/build/client/_app/immutable/chunks/DuqgYnXA.js.br +0 -0
- package/build/client/_app/immutable/chunks/DuqgYnXA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ft8OTbFq2.js +1 -0
- package/build/client/_app/immutable/chunks/Ft8OTbFq2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ft8OTbFq2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/GPf5fMLC2.js +1 -0
- package/build/client/_app/immutable/chunks/GPf5fMLC2.js.br +0 -0
- package/build/client/_app/immutable/chunks/GPf5fMLC2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/KFGFyKwG.js +1 -0
- package/build/client/_app/immutable/chunks/KFGFyKwG.js.br +0 -0
- package/build/client/_app/immutable/chunks/KFGFyKwG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/KNb_0kK5.js +1 -0
- package/build/client/_app/immutable/chunks/KNb_0kK5.js.br +0 -0
- package/build/client/_app/immutable/chunks/KNb_0kK5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/MfeErNn-.js +1 -0
- package/build/client/_app/immutable/chunks/MfeErNn-.js.br +0 -0
- package/build/client/_app/immutable/chunks/MfeErNn-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OOMz51rW.js +1 -0
- package/build/client/_app/immutable/chunks/OOMz51rW.js.br +0 -0
- package/build/client/_app/immutable/chunks/OOMz51rW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/PMQDBV5J.js +1 -0
- package/build/client/_app/immutable/chunks/PMQDBV5J.js.br +0 -0
- package/build/client/_app/immutable/chunks/PMQDBV5J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QtN_jOZp.js +1 -0
- package/build/client/_app/immutable/chunks/QtN_jOZp.js.br +0 -0
- package/build/client/_app/immutable/chunks/QtN_jOZp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/QuimFY2S.js +1 -0
- package/build/client/_app/immutable/chunks/QuimFY2S.js.br +0 -0
- package/build/client/_app/immutable/chunks/QuimFY2S.js.gz +0 -0
- package/build/client/_app/immutable/chunks/R8nAf1vR.js +1 -0
- package/build/client/_app/immutable/chunks/R8nAf1vR.js.br +0 -0
- package/build/client/_app/immutable/chunks/R8nAf1vR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/SCjQUq34.js +1 -0
- package/build/client/_app/immutable/chunks/SCjQUq34.js.br +0 -0
- package/build/client/_app/immutable/chunks/SCjQUq34.js.gz +0 -0
- package/build/client/_app/immutable/chunks/UdsmMDCL2.js +1 -0
- package/build/client/_app/immutable/chunks/UdsmMDCL2.js.br +0 -0
- package/build/client/_app/immutable/chunks/UdsmMDCL2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/V5Yjt9wD2.js +1 -0
- package/build/client/_app/immutable/chunks/V5Yjt9wD2.js.br +0 -0
- package/build/client/_app/immutable/chunks/V5Yjt9wD2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/XT7mgm2-.js +1 -0
- package/build/client/_app/immutable/chunks/XT7mgm2-.js.br +0 -0
- package/build/client/_app/immutable/chunks/XT7mgm2-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_6rzW9BS.js +1 -0
- package/build/client/_app/immutable/chunks/_6rzW9BS.js.br +0 -0
- package/build/client/_app/immutable/chunks/_6rzW9BS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aMsaMD1D2.js +1 -0
- package/build/client/_app/immutable/chunks/aMsaMD1D2.js.br +0 -0
- package/build/client/_app/immutable/chunks/aMsaMD1D2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aviLwsDM.js +2 -0
- package/build/client/_app/immutable/chunks/aviLwsDM.js.br +0 -0
- package/build/client/_app/immutable/chunks/aviLwsDM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/b1-zR7XP.js +1 -0
- package/build/client/_app/immutable/chunks/b1-zR7XP.js.br +0 -0
- package/build/client/_app/immutable/chunks/b1-zR7XP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/b4xeCETc.js +1 -0
- package/build/client/_app/immutable/chunks/b4xeCETc.js.br +0 -0
- package/build/client/_app/immutable/chunks/b4xeCETc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/cM1P9coc.js +1 -0
- package/build/client/_app/immutable/chunks/cM1P9coc.js.br +0 -0
- package/build/client/_app/immutable/chunks/cM1P9coc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/c_oH4hRZ.js +1 -0
- package/build/client/_app/immutable/chunks/c_oH4hRZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/c_oH4hRZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/fg40_ntQ.js +1 -0
- package/build/client/_app/immutable/chunks/fg40_ntQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/fg40_ntQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/fhodw31A2.js +1 -0
- package/build/client/_app/immutable/chunks/fhodw31A2.js.br +0 -0
- package/build/client/_app/immutable/chunks/fhodw31A2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/i9_wZDsL2.js +1 -0
- package/build/client/_app/immutable/chunks/i9_wZDsL2.js.br +0 -0
- package/build/client/_app/immutable/chunks/i9_wZDsL2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/nQErZH7l.js +24 -0
- package/build/client/_app/immutable/chunks/nQErZH7l.js.br +0 -0
- package/build/client/_app/immutable/chunks/nQErZH7l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/o5QeSYPS2.js +1 -0
- package/build/client/_app/immutable/chunks/o5QeSYPS2.js.br +0 -0
- package/build/client/_app/immutable/chunks/o5QeSYPS2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pk7CcyRt2.js +1 -0
- package/build/client/_app/immutable/chunks/pk7CcyRt2.js.br +0 -0
- package/build/client/_app/immutable/chunks/pk7CcyRt2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/qdxAdBWQ2.js +1 -0
- package/build/client/_app/immutable/chunks/qdxAdBWQ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/qdxAdBWQ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/sDfmG-q52.js +1 -0
- package/build/client/_app/immutable/chunks/sDfmG-q52.js.br +0 -0
- package/build/client/_app/immutable/chunks/sDfmG-q52.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Cf1kynW5.js +2 -0
- package/build/client/_app/immutable/entry/app.Cf1kynW5.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Cf1kynW5.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BzFDNUTP.js +1 -0
- package/build/client/_app/immutable/entry/start.BzFDNUTP.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BzFDNUTP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.Di6pZ7QE.js +1 -0
- package/build/client/_app/immutable/nodes/0.Di6pZ7QE.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Di6pZ7QE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Dqv2_VBm.js +1 -0
- package/build/client/_app/immutable/nodes/1.Dqv2_VBm.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.Dqv2_VBm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CjcBXjcg.js +1 -0
- package/build/client/_app/immutable/nodes/2.CjcBXjcg.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CjcBXjcg.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CjcBXjcg.js +1 -0
- package/build/client/_app/immutable/nodes/3.CjcBXjcg.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CjcBXjcg.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/env.js +9 -33
- package/build/env.js.map +1 -0
- package/build/handler.js +24 -1493
- package/build/handler.js.map +1 -0
- package/build/index.js +34 -231
- package/build/index.js.map +1 -0
- package/build/server/chunks/chunks/client.js-D_n8ztuu.js +37 -0
- package/build/server/chunks/chunks/client.js-D_n8ztuu.js.map +1 -0
- package/build/server/chunks/chunks/dist.js-Cjy4fJ8I.js +215 -0
- package/build/server/chunks/chunks/dist.js-Cjy4fJ8I.js.map +1 -0
- package/build/server/chunks/chunks/env.js-l0sNRNKZ.js +2 -0
- package/build/server/chunks/chunks/env.js-l0sNRNKZ.js.map +1 -0
- package/build/server/chunks/chunks/exports.js-M407IRCT.js +367 -0
- package/build/server/chunks/chunks/exports.js-M407IRCT.js.map +1 -0
- package/build/server/chunks/chunks/internal.js-JDOUzQXG.js +4925 -0
- package/build/server/chunks/chunks/internal.js-JDOUzQXG.js.map +1 -0
- package/build/server/chunks/chunks/internal2.js-Bkb6J7OW.js +471 -0
- package/build/server/chunks/chunks/internal2.js-Bkb6J7OW.js.map +1 -0
- package/build/server/chunks/chunks/preview-api.js-DFLf7Qia.js +66 -0
- package/build/server/chunks/chunks/preview-api.js-DFLf7Qia.js.map +1 -0
- package/build/server/chunks/chunks/preview-workbench.js-r46FAtaD.js +10453 -0
- package/build/server/chunks/chunks/preview-workbench.js-r46FAtaD.js.map +1 -0
- package/build/server/chunks/chunks/send-email-config.js-kjBFi9BP.js +9 -0
- package/build/server/chunks/chunks/send-email-config.js-kjBFi9BP.js.map +1 -0
- package/build/server/chunks/chunks/shared-server.js-X-h81DQm.js +22 -0
- package/build/server/chunks/chunks/shared-server.js-X-h81DQm.js.map +1 -0
- package/build/server/chunks/chunks/shared.js-CMUZRVdw.js +599 -0
- package/build/server/chunks/chunks/shared.js-CMUZRVdw.js.map +1 -0
- package/build/server/chunks/chunks/state.js-c_5yT7l3.js +61 -0
- package/build/server/chunks/chunks/state.js-c_5yT7l3.js.map +1 -0
- package/build/server/chunks/chunks/utils.js-BulZbGp_.js +748 -0
- package/build/server/chunks/chunks/utils.js-BulZbGp_.js.map +1 -0
- package/build/server/chunks/entries/fallbacks/error.svelte.js-Bqmfe4zf.js +19 -0
- package/build/server/chunks/entries/fallbacks/error.svelte.js-Bqmfe4zf.js.map +1 -0
- package/build/server/chunks/entries/hooks.server.js-Cyi_B_F7.js +11 -0
- package/build/server/chunks/entries/hooks.server.js-Cyi_B_F7.js.map +1 -0
- package/build/server/chunks/entries/pages/_...email_/_page.server.ts.js-veRKlqKf.js +30 -0
- package/build/server/chunks/entries/pages/_...email_/_page.server.ts.js-veRKlqKf.js.map +1 -0
- package/build/server/chunks/entries/pages/_...email_/_page.svelte.js-BZIBolly.js +24 -0
- package/build/server/chunks/entries/pages/_...email_/_page.svelte.js-BZIBolly.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-CxDOHZpA.js +25 -0
- package/build/server/chunks/entries/pages/_layout.server.ts.js-CxDOHZpA.js.map +1 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-CjwKzgJn.js +29 -0
- package/build/server/chunks/entries/pages/_layout.svelte.js-CjwKzgJn.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.server.ts.js-CmdnlMr9.js +24 -0
- package/build/server/chunks/entries/pages/_page.server.ts.js-CmdnlMr9.js.map +1 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-B7d-Pkg8.js +24 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-B7d-Pkg8.js.map +1 -0
- package/build/server/chunks/handler-C6XD7uxC.js +1206 -0
- package/build/server/chunks/handler-C6XD7uxC.js.map +1 -0
- package/build/server/chunks/index.js-FWva2MxP.js +3701 -0
- package/build/server/chunks/index.js-FWva2MxP.js.map +1 -0
- package/build/server/chunks/manifest.js-Cs6Il7RU.js +50 -0
- package/build/server/chunks/manifest.js-Cs6Il7RU.js.map +1 -0
- package/build/server/chunks/nodes/0.js-C09MpjVZ.js +15 -0
- package/build/server/chunks/nodes/0.js-C09MpjVZ.js.map +1 -0
- package/build/server/chunks/nodes/1.js-B3hAPkEQ.js +9 -0
- package/build/server/chunks/nodes/1.js-B3hAPkEQ.js.map +1 -0
- package/build/server/chunks/nodes/2.js-Cugi_VAS.js +15 -0
- package/build/server/chunks/nodes/2.js-Cugi_VAS.js.map +1 -0
- package/build/server/chunks/nodes/3.js-BAAob8rz.js +15 -0
- package/build/server/chunks/nodes/3.js-BAAob8rz.js.map +1 -0
- package/build/shims.js +2 -30
- package/build/shims.js.map +1 -0
- package/package.json +10 -10
- package/build/client/_app/immutable/assets/0.DDKrVtzt.css +0 -1
- package/build/client/_app/immutable/assets/0.DDKrVtzt.css.br +0 -0
- package/build/client/_app/immutable/assets/0.DDKrVtzt.css.gz +0 -0
- package/build/client/_app/immutable/chunks/-17pq3dv.js +0 -1
- package/build/client/_app/immutable/chunks/-17pq3dv.js.br +0 -0
- package/build/client/_app/immutable/chunks/-17pq3dv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/-HmGlDdd.js +0 -1
- package/build/client/_app/immutable/chunks/-HmGlDdd.js.br +0 -0
- package/build/client/_app/immutable/chunks/-HmGlDdd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/0W20VsaO2.js +0 -1
- package/build/client/_app/immutable/chunks/0W20VsaO2.js.br +0 -0
- package/build/client/_app/immutable/chunks/0W20VsaO2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/3VR1Za6u2.js +0 -1
- package/build/client/_app/immutable/chunks/3VR1Za6u2.js.br +0 -0
- package/build/client/_app/immutable/chunks/3VR1Za6u2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/8hFPv34g2.js +0 -1
- package/build/client/_app/immutable/chunks/8hFPv34g2.js.br +0 -0
- package/build/client/_app/immutable/chunks/8hFPv34g2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B16xEiuN.js +0 -1
- package/build/client/_app/immutable/chunks/B16xEiuN.js.br +0 -0
- package/build/client/_app/immutable/chunks/B16xEiuN.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1IS1UjX.js +0 -1
- package/build/client/_app/immutable/chunks/B1IS1UjX.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1IS1UjX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1aemsqp.js +0 -1
- package/build/client/_app/immutable/chunks/B1aemsqp.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1aemsqp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B1oJTuiP.js +0 -1
- package/build/client/_app/immutable/chunks/B1oJTuiP.js.br +0 -0
- package/build/client/_app/immutable/chunks/B1oJTuiP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B2ZjjTQN2.js +0 -1
- package/build/client/_app/immutable/chunks/B2ZjjTQN2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B2ZjjTQN2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B4R74twV.js +0 -1
- package/build/client/_app/immutable/chunks/B4R74twV.js.br +0 -0
- package/build/client/_app/immutable/chunks/B4R74twV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B8P2RnGF.js +0 -1
- package/build/client/_app/immutable/chunks/B8P2RnGF.js.br +0 -0
- package/build/client/_app/immutable/chunks/B8P2RnGF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B98XyvsZ.js +0 -1
- package/build/client/_app/immutable/chunks/B98XyvsZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B98XyvsZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B9nnXTul.js +0 -1
- package/build/client/_app/immutable/chunks/B9nnXTul.js.br +0 -0
- package/build/client/_app/immutable/chunks/B9nnXTul.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BAv3TVTh.js +0 -1
- package/build/client/_app/immutable/chunks/BAv3TVTh.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAv3TVTh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BFHwR3_K2.js +0 -1
- package/build/client/_app/immutable/chunks/BFHwR3_K2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BFHwR3_K2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGGCY6bA2.js +0 -1
- package/build/client/_app/immutable/chunks/BGGCY6bA2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGGCY6bA2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJRYOnBV.js +0 -1
- package/build/client/_app/immutable/chunks/BJRYOnBV.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJRYOnBV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJqTYE0q.js +0 -1
- package/build/client/_app/immutable/chunks/BJqTYE0q.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJqTYE0q.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BN08jTvb.js +0 -1
- package/build/client/_app/immutable/chunks/BN08jTvb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BN08jTvb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BPRmScrq2.js +0 -1
- package/build/client/_app/immutable/chunks/BPRmScrq2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPRmScrq2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BQ4d5aaZ.js +0 -1
- package/build/client/_app/immutable/chunks/BQ4d5aaZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BQ4d5aaZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BSLxv6zn2.js +0 -1
- package/build/client/_app/immutable/chunks/BSLxv6zn2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BSLxv6zn2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BSmT1qUT.js +0 -1
- package/build/client/_app/immutable/chunks/BSmT1qUT.js.br +0 -0
- package/build/client/_app/immutable/chunks/BSmT1qUT.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BXfVp92A.js +0 -1
- package/build/client/_app/immutable/chunks/BXfVp92A.js.br +0 -0
- package/build/client/_app/immutable/chunks/BXfVp92A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZ_LzKzd.js +0 -3
- package/build/client/_app/immutable/chunks/BZ_LzKzd.js.br +0 -0
- package/build/client/_app/immutable/chunks/BZ_LzKzd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_2b09HZ2.js +0 -1
- package/build/client/_app/immutable/chunks/B_2b09HZ2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_2b09HZ2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B_aWORvf2.js +0 -1
- package/build/client/_app/immutable/chunks/B_aWORvf2.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_aWORvf2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BdB92CPq.js +0 -1
- package/build/client/_app/immutable/chunks/BdB92CPq.js.br +0 -0
- package/build/client/_app/immutable/chunks/BdB92CPq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BgCJLMeH.js +0 -1
- package/build/client/_app/immutable/chunks/BgCJLMeH.js.br +0 -0
- package/build/client/_app/immutable/chunks/BgCJLMeH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bk4SNUv9.js +0 -1
- package/build/client/_app/immutable/chunks/Bk4SNUv9.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bk4SNUv9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BkL0c1yp.js +0 -29
- package/build/client/_app/immutable/chunks/BkL0c1yp.js.br +0 -0
- package/build/client/_app/immutable/chunks/BkL0c1yp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BkgvMgsI.js +0 -1
- package/build/client/_app/immutable/chunks/BkgvMgsI.js.br +0 -0
- package/build/client/_app/immutable/chunks/BkgvMgsI.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bkvf4V-c.js +0 -1
- package/build/client/_app/immutable/chunks/Bkvf4V-c.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bkvf4V-c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bmzj9gkB2.js +0 -1
- package/build/client/_app/immutable/chunks/Bmzj9gkB2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bmzj9gkB2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bo4NYOV-2.js +0 -1
- package/build/client/_app/immutable/chunks/Bo4NYOV-2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bo4NYOV-2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BoSgizvQ.js +0 -1
- package/build/client/_app/immutable/chunks/BoSgizvQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoSgizvQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BooTrami.js +0 -1
- package/build/client/_app/immutable/chunks/BooTrami.js.br +0 -0
- package/build/client/_app/immutable/chunks/BooTrami.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BqLGMj_J.js +0 -1
- package/build/client/_app/immutable/chunks/BqLGMj_J.js.br +0 -0
- package/build/client/_app/immutable/chunks/BqLGMj_J.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BrsZFFmf2.js +0 -1
- package/build/client/_app/immutable/chunks/BrsZFFmf2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BrsZFFmf2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BsRQq5mF2.js +0 -1
- package/build/client/_app/immutable/chunks/BsRQq5mF2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsRQq5mF2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BthvhNj62.js +0 -1
- package/build/client/_app/immutable/chunks/BthvhNj62.js.br +0 -0
- package/build/client/_app/immutable/chunks/BthvhNj62.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bvj-fe0b.js +0 -1
- package/build/client/_app/immutable/chunks/Bvj-fe0b.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bvj-fe0b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzQDf8nc.js +0 -1
- package/build/client/_app/immutable/chunks/BzQDf8nc.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzQDf8nc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BzYEjzvh2.js +0 -1
- package/build/client/_app/immutable/chunks/BzYEjzvh2.js.br +0 -0
- package/build/client/_app/immutable/chunks/BzYEjzvh2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C6vDhewU2.js +0 -1
- package/build/client/_app/immutable/chunks/C6vDhewU2.js.br +0 -0
- package/build/client/_app/immutable/chunks/C6vDhewU2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCwZ4IZg2.js +0 -1
- package/build/client/_app/immutable/chunks/CCwZ4IZg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCwZ4IZg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDP4bMou2.js +0 -1
- package/build/client/_app/immutable/chunks/CDP4bMou2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CDP4bMou2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CGtDVq-d.js +0 -1
- package/build/client/_app/immutable/chunks/CGtDVq-d.js.br +0 -0
- package/build/client/_app/immutable/chunks/CGtDVq-d.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJ3rzSJv2.js +0 -1
- package/build/client/_app/immutable/chunks/CJ3rzSJv2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJ3rzSJv2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJt204Rd2.js +0 -1
- package/build/client/_app/immutable/chunks/CJt204Rd2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJt204Rd2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CKzVLygQ.js +0 -1
- package/build/client/_app/immutable/chunks/CKzVLygQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/CKzVLygQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLCfMLGq.js +0 -1
- package/build/client/_app/immutable/chunks/CLCfMLGq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLCfMLGq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CTweb8Dz.js +0 -1
- package/build/client/_app/immutable/chunks/CTweb8Dz.js.br +0 -0
- package/build/client/_app/immutable/chunks/CTweb8Dz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWnYOMnW.js +0 -1
- package/build/client/_app/immutable/chunks/CWnYOMnW.js.br +0 -0
- package/build/client/_app/immutable/chunks/CWnYOMnW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CWz8FtVL.js +0 -1
- package/build/client/_app/immutable/chunks/CWz8FtVL.js.br +0 -0
- package/build/client/_app/immutable/chunks/CWz8FtVL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CXtmUGW6.js +0 -1
- package/build/client/_app/immutable/chunks/CXtmUGW6.js.br +0 -0
- package/build/client/_app/immutable/chunks/CXtmUGW6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CaWjb8XO.js +0 -1
- package/build/client/_app/immutable/chunks/CaWjb8XO.js.br +0 -0
- package/build/client/_app/immutable/chunks/CaWjb8XO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CbNiRIh-.js +0 -1
- package/build/client/_app/immutable/chunks/CbNiRIh-.js.br +0 -4
- package/build/client/_app/immutable/chunks/CbNiRIh-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CbSgvYap2.js +0 -1
- package/build/client/_app/immutable/chunks/CbSgvYap2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CbSgvYap2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cc44KRCO.js +0 -1
- package/build/client/_app/immutable/chunks/Cc44KRCO.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cc44KRCO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CdkpiU2Y.js +0 -1
- package/build/client/_app/immutable/chunks/CdkpiU2Y.js.br +0 -0
- package/build/client/_app/immutable/chunks/CdkpiU2Y.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CiiDBU1e2.js +0 -1
- package/build/client/_app/immutable/chunks/CiiDBU1e2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CiiDBU1e2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cip0aZkd.js +0 -1
- package/build/client/_app/immutable/chunks/Cip0aZkd.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cip0aZkd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cm23YOpf.js +0 -1
- package/build/client/_app/immutable/chunks/Cm23YOpf.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cm23YOpf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cp2uCuqX.js +0 -1
- package/build/client/_app/immutable/chunks/Cp2uCuqX.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cp2uCuqX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ct-N23RA.js +0 -1
- package/build/client/_app/immutable/chunks/Ct-N23RA.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ct-N23RA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CwAfbKce2.js +0 -1
- package/build/client/_app/immutable/chunks/CwAfbKce2.js.br +0 -0
- package/build/client/_app/immutable/chunks/CwAfbKce2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-SYTocK2.js +0 -1
- package/build/client/_app/immutable/chunks/D-SYTocK2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-SYTocK2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-hUJG0B.js +0 -1
- package/build/client/_app/immutable/chunks/D-hUJG0B.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-hUJG0B.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D1RDc8F4.js +0 -1
- package/build/client/_app/immutable/chunks/D1RDc8F4.js.br +0 -0
- package/build/client/_app/immutable/chunks/D1RDc8F4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D3lp4efA.js +0 -24
- package/build/client/_app/immutable/chunks/D3lp4efA.js.br +0 -0
- package/build/client/_app/immutable/chunks/D3lp4efA.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4M0hln8.js +0 -1
- package/build/client/_app/immutable/chunks/D4M0hln8.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4M0hln8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4Vgedfg2.js +0 -1
- package/build/client/_app/immutable/chunks/D4Vgedfg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4Vgedfg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5Xp3sXg.js +0 -1
- package/build/client/_app/immutable/chunks/D5Xp3sXg.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5Xp3sXg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D5rtTcwt2.js +0 -1
- package/build/client/_app/immutable/chunks/D5rtTcwt2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5rtTcwt2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DAP-xmEs2.js +0 -1
- package/build/client/_app/immutable/chunks/DAP-xmEs2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAP-xmEs2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DE70LPWp.js +0 -1
- package/build/client/_app/immutable/chunks/DE70LPWp.js.br +0 -0
- package/build/client/_app/immutable/chunks/DE70LPWp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DETTlOr02.js +0 -1
- package/build/client/_app/immutable/chunks/DETTlOr02.js.br +0 -0
- package/build/client/_app/immutable/chunks/DETTlOr02.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DI99ib-x.js +0 -1
- package/build/client/_app/immutable/chunks/DI99ib-x.js.br +0 -0
- package/build/client/_app/immutable/chunks/DI99ib-x.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DIGJJ_pR.js +0 -1
- package/build/client/_app/immutable/chunks/DIGJJ_pR.js.br +0 -0
- package/build/client/_app/immutable/chunks/DIGJJ_pR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DJ5XKQeo.js +0 -1
- package/build/client/_app/immutable/chunks/DJ5XKQeo.js.br +0 -0
- package/build/client/_app/immutable/chunks/DJ5XKQeo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DKOlJaKm.js +0 -1
- package/build/client/_app/immutable/chunks/DKOlJaKm.js.br +0 -0
- package/build/client/_app/immutable/chunks/DKOlJaKm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DKYcEghF2.js +0 -1
- package/build/client/_app/immutable/chunks/DKYcEghF2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DKYcEghF2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DLo_doFS.js +0 -1
- package/build/client/_app/immutable/chunks/DLo_doFS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DLo_doFS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DMQGE0ep.js +0 -1
- package/build/client/_app/immutable/chunks/DMQGE0ep.js.br +0 -0
- package/build/client/_app/immutable/chunks/DMQGE0ep.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNbQjlRi.js +0 -1
- package/build/client/_app/immutable/chunks/DNbQjlRi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNbQjlRi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPqtD3GE.js +0 -1
- package/build/client/_app/immutable/chunks/DPqtD3GE.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPqtD3GE.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DSh2HLQt2.js +0 -1
- package/build/client/_app/immutable/chunks/DSh2HLQt2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DSh2HLQt2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DV17i1UV2.js +0 -1
- package/build/client/_app/immutable/chunks/DV17i1UV2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DV17i1UV2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWJF1LvW.js +0 -1
- package/build/client/_app/immutable/chunks/DWJF1LvW.js.br +0 -0
- package/build/client/_app/immutable/chunks/DWJF1LvW.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWtOEHum.js +0 -1
- package/build/client/_app/immutable/chunks/DWtOEHum.js.br +0 -0
- package/build/client/_app/immutable/chunks/DWtOEHum.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYhrFGRu.js +0 -1
- package/build/client/_app/immutable/chunks/DYhrFGRu.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYhrFGRu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DYnBP6_5.js +0 -1
- package/build/client/_app/immutable/chunks/DYnBP6_5.js.br +0 -0
- package/build/client/_app/immutable/chunks/DYnBP6_5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D_BNbkN3.js +0 -1
- package/build/client/_app/immutable/chunks/D_BNbkN3.js.br +0 -0
- package/build/client/_app/immutable/chunks/D_BNbkN3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Db0FcQF5.js +0 -1
- package/build/client/_app/immutable/chunks/Db0FcQF5.js.br +0 -0
- package/build/client/_app/immutable/chunks/Db0FcQF5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DcLAeLz52.js +0 -1
- package/build/client/_app/immutable/chunks/DcLAeLz52.js.br +0 -0
- package/build/client/_app/immutable/chunks/DcLAeLz52.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dez8vKl4.js +0 -1
- package/build/client/_app/immutable/chunks/Dez8vKl4.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dez8vKl4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dg85fqjY2.js +0 -1
- package/build/client/_app/immutable/chunks/Dg85fqjY2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dg85fqjY2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Djn5o6TS2.js +0 -1
- package/build/client/_app/immutable/chunks/Djn5o6TS2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Djn5o6TS2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DmnnY3QQ.js +0 -1
- package/build/client/_app/immutable/chunks/DmnnY3QQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DmnnY3QQ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DnXou9Ir2.js +0 -1
- package/build/client/_app/immutable/chunks/DnXou9Ir2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DnXou9Ir2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DonLKvLd.js +0 -1
- package/build/client/_app/immutable/chunks/DonLKvLd.js.br +0 -0
- package/build/client/_app/immutable/chunks/DonLKvLd.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DshXNtvi2.js +0 -1
- package/build/client/_app/immutable/chunks/DshXNtvi2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DshXNtvi2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DwIHMF0Q2.js +0 -1
- package/build/client/_app/immutable/chunks/DwIHMF0Q2.js.br +0 -0
- package/build/client/_app/immutable/chunks/DwIHMF0Q2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FMPmPwt6.js +0 -1
- package/build/client/_app/immutable/chunks/FMPmPwt6.js.br +0 -0
- package/build/client/_app/immutable/chunks/FMPmPwt6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FagB-xkq2.js +0 -1
- package/build/client/_app/immutable/chunks/FagB-xkq2.js.br +0 -0
- package/build/client/_app/immutable/chunks/FagB-xkq2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/FwRTkJ1A.js +0 -1
- package/build/client/_app/immutable/chunks/FwRTkJ1A.js.br +0 -0
- package/build/client/_app/immutable/chunks/FwRTkJ1A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/K91LO6St.js +0 -1
- package/build/client/_app/immutable/chunks/K91LO6St.js.br +0 -0
- package/build/client/_app/immutable/chunks/K91LO6St.js.gz +0 -0
- package/build/client/_app/immutable/chunks/LxULFDih2.js +0 -1
- package/build/client/_app/immutable/chunks/LxULFDih2.js.br +0 -0
- package/build/client/_app/immutable/chunks/LxULFDih2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/OTjmBuCE2.js +0 -1
- package/build/client/_app/immutable/chunks/OTjmBuCE2.js.br +0 -0
- package/build/client/_app/immutable/chunks/OTjmBuCE2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/SemFz8562.js +0 -1
- package/build/client/_app/immutable/chunks/SemFz8562.js.br +0 -0
- package/build/client/_app/immutable/chunks/SemFz8562.js.gz +0 -0
- package/build/client/_app/immutable/chunks/VAyPSnFM.js +0 -1
- package/build/client/_app/immutable/chunks/VAyPSnFM.js.br +0 -0
- package/build/client/_app/immutable/chunks/VAyPSnFM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/WVgW_Yn5.js +0 -1
- package/build/client/_app/immutable/chunks/WVgW_Yn5.js.br +0 -0
- package/build/client/_app/immutable/chunks/WVgW_Yn5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZfbyBpFw2.js +0 -1
- package/build/client/_app/immutable/chunks/ZfbyBpFw2.js.br +0 -0
- package/build/client/_app/immutable/chunks/ZfbyBpFw2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_WBxvWKO.js +0 -1
- package/build/client/_app/immutable/chunks/_WBxvWKO.js.br +0 -0
- package/build/client/_app/immutable/chunks/_WBxvWKO.js.gz +0 -0
- package/build/client/_app/immutable/chunks/_x9L4_0l.js +0 -1
- package/build/client/_app/immutable/chunks/_x9L4_0l.js.br +0 -0
- package/build/client/_app/immutable/chunks/_x9L4_0l.js.gz +0 -0
- package/build/client/_app/immutable/chunks/aTknR1v9.js +0 -1
- package/build/client/_app/immutable/chunks/aTknR1v9.js.br +0 -0
- package/build/client/_app/immutable/chunks/aTknR1v9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/hon4tzzS2.js +0 -1
- package/build/client/_app/immutable/chunks/hon4tzzS2.js.br +0 -0
- package/build/client/_app/immutable/chunks/hon4tzzS2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pcaL3nV52.js +0 -1
- package/build/client/_app/immutable/chunks/pcaL3nV52.js.br +0 -0
- package/build/client/_app/immutable/chunks/pcaL3nV52.js.gz +0 -0
- package/build/client/_app/immutable/chunks/vHuN1awK.js +0 -3
- package/build/client/_app/immutable/chunks/vHuN1awK.js.br +0 -0
- package/build/client/_app/immutable/chunks/vHuN1awK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/vZmcsNee.js +0 -1
- package/build/client/_app/immutable/chunks/vZmcsNee.js.br +0 -0
- package/build/client/_app/immutable/chunks/vZmcsNee.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yHfhbx61.js +0 -1
- package/build/client/_app/immutable/chunks/yHfhbx61.js.br +0 -0
- package/build/client/_app/immutable/chunks/yHfhbx61.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.D3wgtDG9.js +0 -2
- package/build/client/_app/immutable/entry/app.D3wgtDG9.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D3wgtDG9.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.O0FFu8_0.js +0 -1
- package/build/client/_app/immutable/entry/start.O0FFu8_0.js.br +0 -1
- package/build/client/_app/immutable/entry/start.O0FFu8_0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.-bLgee87.js +0 -1
- package/build/client/_app/immutable/nodes/0.-bLgee87.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.-bLgee87.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Cv2FjOpD.js +0 -1
- package/build/client/_app/immutable/nodes/1.Cv2FjOpD.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.Cv2FjOpD.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CvZgARQ8.js +0 -1
- package/build/client/_app/immutable/nodes/2.CvZgARQ8.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CvZgARQ8.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CvZgARQ8.js +0 -1
- package/build/client/_app/immutable/nodes/3.CvZgARQ8.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CvZgARQ8.js.gz +0 -0
- package/build/server/chunks/0-BMs5qwPn.js +0 -32
- package/build/server/chunks/0-BMs5qwPn.js.map +0 -1
- package/build/server/chunks/1-DlcOl1ee.js +0 -9
- package/build/server/chunks/1-DlcOl1ee.js.map +0 -1
- package/build/server/chunks/2-BweW21WZ.js +0 -33
- package/build/server/chunks/2-BweW21WZ.js.map +0 -1
- package/build/server/chunks/3-uvCLP4aZ.js +0 -39
- package/build/server/chunks/3-uvCLP4aZ.js.map +0 -1
- package/build/server/chunks/_layout.svelte-D3bZoFdR.js +0 -26
- package/build/server/chunks/_layout.svelte-D3bZoFdR.js.map +0 -1
- package/build/server/chunks/_page.svelte-B9hJc3P0.js +0 -22
- package/build/server/chunks/_page.svelte-B9hJc3P0.js.map +0 -1
- package/build/server/chunks/_page.svelte-D1e0LSg3.js +0 -22
- package/build/server/chunks/_page.svelte-D1e0LSg3.js.map +0 -1
- package/build/server/chunks/client-D-xCtO_w.js +0 -34
- package/build/server/chunks/client-D-xCtO_w.js.map +0 -1
- package/build/server/chunks/dist-DPv-_2q0.js +0 -215
- package/build/server/chunks/dist-DPv-_2q0.js.map +0 -1
- package/build/server/chunks/error.svelte-DxLuKrYl.js +0 -16
- package/build/server/chunks/error.svelte-DxLuKrYl.js.map +0 -1
- package/build/server/chunks/hooks.server-Cyi_B_F7.js +0 -11
- package/build/server/chunks/hooks.server-Cyi_B_F7.js.map +0 -1
- package/build/server/chunks/internal-Nx8Rcxrk.js +0 -6290
- package/build/server/chunks/internal-Nx8Rcxrk.js.map +0 -1
- package/build/server/chunks/preview-api-DTcDkNE9.js +0 -72
- package/build/server/chunks/preview-api-DTcDkNE9.js.map +0 -1
- package/build/server/chunks/preview-workbench-C63y6d-R.js +0 -10449
- package/build/server/chunks/preview-workbench-C63y6d-R.js.map +0 -1
- package/build/server/chunks/shared-server-CB6hj8Uq.js +0 -22
- package/build/server/chunks/shared-server-CB6hj8Uq.js.map +0 -1
- package/build/server/chunks/state-elHCYq4i.js +0 -61
- package/build/server/chunks/state-elHCYq4i.js.map +0 -1
- package/build/server/index.js +0 -4368
- package/build/server/index.js.map +0 -1
- package/build/server/manifest.js +0 -54
- package/build/server/manifest.js.map +0 -1
- /package/build/client/_app/immutable/chunks/{9MfHhQsQ2.js → 9MfHhQsQ.js} +0 -0
- /package/build/client/_app/immutable/chunks/{9MfHhQsQ2.js.br → 9MfHhQsQ.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{9MfHhQsQ2.js.gz → 9MfHhQsQ.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{B5W6OYN7.js → B5W6OYN72.js} +0 -0
- /package/build/client/_app/immutable/chunks/{B5W6OYN7.js.br → B5W6OYN72.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{B5W6OYN7.js.gz → B5W6OYN72.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{B5eOa1yu2.js → B5eOa1yu.js} +0 -0
- /package/build/client/_app/immutable/chunks/{B5eOa1yu2.js.br → B5eOa1yu.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{B5eOa1yu2.js.gz → B5eOa1yu.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BRdr0IET.js → BRdr0IET2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BRdr0IET.js.br → BRdr0IET2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BRdr0IET.js.gz → BRdr0IET2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BSWPekZh.js → BSWPekZh2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BSWPekZh.js.br → BSWPekZh2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BSWPekZh.js.gz → BSWPekZh2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BWXHIvNe.js → BWXHIvNe2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BWXHIvNe.js.br → BWXHIvNe2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BWXHIvNe.js.gz → BWXHIvNe2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BZCL-v6S2.js → BZCL-v6S.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BZCL-v6S2.js.br → BZCL-v6S.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BZCL-v6S2.js.gz → BZCL-v6S.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Bm3Qr25_.js → Bm3Qr25_2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Bm3Qr25_.js.br → Bm3Qr25_2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Bm3Qr25_.js.gz → Bm3Qr25_2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BnjxR4X62.js → BnjxR4X6.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BnjxR4X62.js.br → BnjxR4X6.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BnjxR4X62.js.gz → BnjxR4X6.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{BnlCZFoB2.js → BnlCZFoB.js} +0 -0
- /package/build/client/_app/immutable/chunks/{BnlCZFoB2.js.br → BnlCZFoB.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{BnlCZFoB2.js.gz → BnlCZFoB.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Bqwy1Gya2.js → Bqwy1Gya.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Bqwy1Gya2.js.br → Bqwy1Gya.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Bqwy1Gya2.js.gz → Bqwy1Gya.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{C3h-C4tm2.js → C3h-C4tm.js} +0 -0
- /package/build/client/_app/immutable/chunks/{C3h-C4tm2.js.br → C3h-C4tm.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{C3h-C4tm2.js.gz → C3h-C4tm.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{C5JeTiTv.js → C5JeTiTv2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{C5JeTiTv.js.br → C5JeTiTv2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{C5JeTiTv.js.gz → C5JeTiTv2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CBce3t8t.js → CBce3t8t2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CBce3t8t.js.br → CBce3t8t2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CBce3t8t.js.gz → CBce3t8t2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CDeNXAV02.js → CDeNXAV0.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CDeNXAV02.js.br → CDeNXAV0.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CDeNXAV02.js.gz → CDeNXAV0.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CDv2pdJW2.js → CDv2pdJW.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CDv2pdJW2.js.br → CDv2pdJW.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CDv2pdJW2.js.gz → CDv2pdJW.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CHQ94UKr.js → CHQ94UKr2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CHQ94UKr.js.br → CHQ94UKr2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CHQ94UKr.js.gz → CHQ94UKr2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CZbG8q4J2.js → CZbG8q4J.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CZbG8q4J2.js.br → CZbG8q4J.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CZbG8q4J2.js.gz → CZbG8q4J.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CZd0xW_V.js → CZd0xW_V2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CZd0xW_V.js.br → CZd0xW_V2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CZd0xW_V.js.gz → CZd0xW_V2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CcmNWLt0.js → CcmNWLt02.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CcmNWLt0.js.br → CcmNWLt02.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CcmNWLt0.js.gz → CcmNWLt02.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Cfkwpbl8.js → Cfkwpbl82.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Cfkwpbl8.js.br → Cfkwpbl82.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Cfkwpbl8.js.gz → Cfkwpbl82.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{CohzipZa.js → CohzipZa2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{CohzipZa.js.br → CohzipZa2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{CohzipZa.js.gz → CohzipZa2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Cv5bFMCO2.js → Cv5bFMCO.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Cv5bFMCO2.js.br → Cv5bFMCO.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Cv5bFMCO2.js.gz → Cv5bFMCO.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DB4EqR-F2.js → DB4EqR-F.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DB4EqR-F2.js.br → DB4EqR-F.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DB4EqR-F2.js.gz → DB4EqR-F.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DCQb3MpD2.js → DCQb3MpD.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DCQb3MpD2.js.br → DCQb3MpD.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DCQb3MpD2.js.gz → DCQb3MpD.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DDpmG2fV.js → DDpmG2fV2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DDpmG2fV.js.br → DDpmG2fV2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DDpmG2fV.js.gz → DDpmG2fV2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DMoTqEGO.js → DMoTqEGO2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DMoTqEGO.js.br → DMoTqEGO2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DMoTqEGO.js.gz → DMoTqEGO2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DcIDlBhZ2.js → DcIDlBhZ.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DcIDlBhZ2.js.br → DcIDlBhZ.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DcIDlBhZ2.js.gz → DcIDlBhZ.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DhmEMT88.js → DhmEMT882.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DhmEMT88.js.br → DhmEMT882.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DhmEMT88.js.gz → DhmEMT882.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DluEY0Gj2.js → DluEY0Gj.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DluEY0Gj2.js.br → DluEY0Gj.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DluEY0Gj2.js.gz → DluEY0Gj.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DsUTQ-LC2.js → DsUTQ-LC.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DsUTQ-LC2.js.br → DsUTQ-LC.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DsUTQ-LC2.js.gz → DsUTQ-LC.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{DswuEJGm.js → DswuEJGm2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{DswuEJGm.js.br → DswuEJGm2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{DswuEJGm.js.gz → DswuEJGm2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Fe1Jh2GI2.js → Fe1Jh2GI.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Fe1Jh2GI2.js.br → Fe1Jh2GI.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Fe1Jh2GI2.js.gz → Fe1Jh2GI.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{IvuFDN5E.js → IvuFDN5E2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{IvuFDN5E.js.br → IvuFDN5E2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{IvuFDN5E.js.gz → IvuFDN5E2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{R4sQ-3Hc.js → R4sQ-3Hc2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{R4sQ-3Hc.js.br → R4sQ-3Hc2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{R4sQ-3Hc.js.gz → R4sQ-3Hc2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{VbXTXTou2.js → VbXTXTou.js} +0 -0
- /package/build/client/_app/immutable/chunks/{VbXTXTou2.js.br → VbXTXTou.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{VbXTXTou2.js.gz → VbXTXTou.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{Yf0g_uY-.js → Yf0g_uY-2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{Yf0g_uY-.js.br → Yf0g_uY-2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{Yf0g_uY-.js.gz → Yf0g_uY-2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{eJ-hLW7d.js → eJ-hLW7d2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{eJ-hLW7d.js.br → eJ-hLW7d2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{eJ-hLW7d.js.gz → eJ-hLW7d2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{iXnhIJG72.js → iXnhIJG7.js} +0 -0
- /package/build/client/_app/immutable/chunks/{iXnhIJG72.js.br → iXnhIJG7.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{iXnhIJG72.js.gz → iXnhIJG7.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{oeQT6MSM2.js → oeQT6MSM.js} +0 -0
- /package/build/client/_app/immutable/chunks/{oeQT6MSM2.js.br → oeQT6MSM.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{oeQT6MSM2.js.gz → oeQT6MSM.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{sltzmVWM.js → sltzmVWM2.js} +0 -0
- /package/build/client/_app/immutable/chunks/{sltzmVWM.js.br → sltzmVWM2.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{sltzmVWM.js.gz → sltzmVWM2.js.gz} +0 -0
- /package/build/client/_app/immutable/chunks/{vGVdxbeo2.js → vGVdxbeo.js} +0 -0
- /package/build/client/_app/immutable/chunks/{vGVdxbeo2.js.br → vGVdxbeo.js.br} +0 -0
- /package/build/client/_app/immutable/chunks/{vGVdxbeo2.js.gz → vGVdxbeo.js.gz} +0 -0
|
@@ -0,0 +1,3701 @@
|
|
|
1
|
+
import { _ as __commonJSMin, o as options, g as get_hooks, r as read_implementation, w as writable, a as readable, s as set_read_implementation } from './chunks/internal.js-JDOUzQXG.js';
|
|
2
|
+
import { n as noop, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, g as get_status, t as text_encoder, o as once, b as normalize_error, d as get_relative_path, e as create_remote_key, f as parse_remote_arg, s as stringify, h as stringify$1, i as split_remote_key, j as base64_encode } from './chunks/shared.js-CMUZRVdw.js';
|
|
3
|
+
import { f as base, u as uneval, o as override, h as assets, r as reset, j as app_dir } from './chunks/internal2.js-Bkb6J7OW.js';
|
|
4
|
+
import { f as format_server_error, i as is_form_content_type, h as has_prerendered_path, a as handle_fatal_error, r as redirect_response, g as get_set_cookies, n as negotiate, m as method_not_allowed, p as parseString, s as static_error_page, b as handle_error_and_jsonify, c as get_global_name, d as create_replacer, e as serialize_uses, j as clarify_devalue_error, E as ENDPOINT_METHODS, P as PAGE_METHODS, k as get_node_type, l as escape_html, o as deserialize_binary_form } from './chunks/utils.js-BulZbGp_.js';
|
|
5
|
+
import { s as set_private_env, a as set_public_env, p as public_env } from './chunks/shared-server.js-X-h81DQm.js';
|
|
6
|
+
import { h as has_resolution_suffix, a as has_data_suffix, s as strip_resolution_suffix, b as strip_data_suffix, d as decode_pathname, c as add_data_suffix, e as add_resolution_suffix, f as find_route, n as normalize_path, g as disable_search, v as validate_layout_server_exports, i as validate_layout_exports, j as validate_page_server_exports, k as validate_page_exports, l as noop_span, r as resolve, m as hash, o as compact, p as make_trackable } from './chunks/exports.js-M407IRCT.js';
|
|
7
|
+
import { json, text, isRedirect, error } from '@sveltejs/kit';
|
|
8
|
+
import { Redirect, SvelteKitError, HttpError, ActionFailure } from '@sveltejs/kit/internal';
|
|
9
|
+
import { with_request_store, merge_tracing } from '@sveltejs/kit/internal/server';
|
|
10
|
+
|
|
11
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/utils/promise.js
|
|
12
|
+
/** @see https://github.com/microsoft/TypeScript/blob/904e7dd97dc8da1352c8e05d70829dff17c73214/src/lib/es2024.promise.d.ts */
|
|
13
|
+
/**
|
|
14
|
+
* @template T
|
|
15
|
+
* @typedef {{
|
|
16
|
+
* promise: Promise<T>;
|
|
17
|
+
* resolve: (value: T | PromiseLike<T>) => void;
|
|
18
|
+
* reject: (reason?: any) => void;
|
|
19
|
+
* }} PromiseWithResolvers<T>
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* TODO: Whenever Node >21 is minimum supported version, we can use `Promise.withResolvers` to avoid this ceremony
|
|
23
|
+
*
|
|
24
|
+
* @template T
|
|
25
|
+
* @returns {PromiseWithResolvers<T>}
|
|
26
|
+
*/
|
|
27
|
+
function with_resolvers() {
|
|
28
|
+
let resolve;
|
|
29
|
+
let reject;
|
|
30
|
+
return {
|
|
31
|
+
promise: new Promise((res, rej) => {
|
|
32
|
+
resolve = res;
|
|
33
|
+
reject = rej;
|
|
34
|
+
}),
|
|
35
|
+
resolve,
|
|
36
|
+
reject
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/constants.js
|
|
41
|
+
var NULL_BODY_STATUS = [
|
|
42
|
+
101,
|
|
43
|
+
103,
|
|
44
|
+
204,
|
|
45
|
+
205,
|
|
46
|
+
304
|
|
47
|
+
];
|
|
48
|
+
var IN_WEBCONTAINER = !!globalThis.process?.versions?.webcontainer;
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/utils/misc.js
|
|
51
|
+
var s = JSON.stringify;
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/endpoint.js
|
|
54
|
+
/**
|
|
55
|
+
* @param {import('@sveltejs/kit').RequestEvent} event
|
|
56
|
+
* @param {import('types').RequestState} event_state
|
|
57
|
+
* @param {import('types').SSREndpoint} mod
|
|
58
|
+
* @param {import('types').SSRState} state
|
|
59
|
+
* @returns {Promise<Response>}
|
|
60
|
+
*/
|
|
61
|
+
async function render_endpoint(event, event_state, mod, state) {
|
|
62
|
+
const method = event.request.method;
|
|
63
|
+
let handler = mod[method] || mod.fallback;
|
|
64
|
+
if (method === "HEAD" && !mod.HEAD && mod.GET) handler = mod.GET;
|
|
65
|
+
if (!handler) return method_not_allowed(mod, method);
|
|
66
|
+
const prerender = mod.prerender ?? state.prerender_default;
|
|
67
|
+
if (prerender && (mod.POST || mod.PATCH || mod.PUT || mod.DELETE)) throw new Error("Cannot prerender endpoints that have mutative methods");
|
|
68
|
+
if (state.prerendering && !state.prerendering.inside_reroute && !prerender) {
|
|
69
|
+
if (state.depth > 0) throw new Error(`${event.route.id} is not prerenderable`);
|
|
70
|
+
else return new Response(void 0, { status: 204 });
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const response = await with_request_store({
|
|
74
|
+
event,
|
|
75
|
+
state: event_state
|
|
76
|
+
}, () => handler(event));
|
|
77
|
+
if (!(response instanceof Response)) throw new Error(`Invalid response from route ${event.url.pathname}: handler should return a Response object`);
|
|
78
|
+
if (state.prerendering && (!state.prerendering.inside_reroute || prerender)) {
|
|
79
|
+
const cloned = new Response(response.clone().body, {
|
|
80
|
+
status: response.status,
|
|
81
|
+
statusText: response.statusText,
|
|
82
|
+
headers: new Headers(response.headers)
|
|
83
|
+
});
|
|
84
|
+
cloned.headers.set("x-sveltekit-prerender", String(prerender));
|
|
85
|
+
if (state.prerendering.inside_reroute && prerender) {
|
|
86
|
+
cloned.headers.set("x-sveltekit-routeid", encodeURI(event.route.id));
|
|
87
|
+
state.prerendering.dependencies.set(event.url.pathname, {
|
|
88
|
+
response: cloned,
|
|
89
|
+
body: null
|
|
90
|
+
});
|
|
91
|
+
} else return cloned;
|
|
92
|
+
}
|
|
93
|
+
return response;
|
|
94
|
+
} catch (e) {
|
|
95
|
+
if (e instanceof Redirect) return new Response(void 0, {
|
|
96
|
+
status: e.status,
|
|
97
|
+
headers: { location: e.location }
|
|
98
|
+
});
|
|
99
|
+
throw e;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @param {import('@sveltejs/kit').RequestEvent} event
|
|
104
|
+
*/
|
|
105
|
+
function is_endpoint_request(event) {
|
|
106
|
+
const { method, headers } = event.request;
|
|
107
|
+
if (ENDPOINT_METHODS.includes(method) && !PAGE_METHODS.includes(method)) return true;
|
|
108
|
+
if (method === "POST" && headers.get("x-sveltekit-action") === "true") return false;
|
|
109
|
+
const accept = event.request.headers.get("accept") ?? "*/*";
|
|
110
|
+
return negotiate(accept, ["*", "text/html"]) !== "text/html";
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/telemetry/record_span.js
|
|
114
|
+
/** @import { RecordSpan } from 'types' */
|
|
115
|
+
/** @type {RecordSpan} */
|
|
116
|
+
async function record_span({ name, attributes, fn }) {
|
|
117
|
+
return fn(noop_span);
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/actions.js
|
|
121
|
+
/** @import { RequestEvent, ActionResult, Actions } from '@sveltejs/kit' */
|
|
122
|
+
/** @import { SSROptions, SSRNode, ServerNode, ServerHooks } from 'types' */
|
|
123
|
+
/** @param {RequestEvent} event */
|
|
124
|
+
function is_action_json_request(event) {
|
|
125
|
+
return negotiate(event.request.headers.get("accept") ?? "*/*", ["application/json", "text/html"]) === "application/json" && event.request.method === "POST";
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* @param {RequestEvent} event
|
|
129
|
+
* @param {import('types').RequestState} event_state
|
|
130
|
+
* @param {SSROptions} options
|
|
131
|
+
* @param {SSRNode['server'] | undefined} server
|
|
132
|
+
*/
|
|
133
|
+
async function handle_action_json_request(event, event_state, options, server) {
|
|
134
|
+
const actions = server?.actions;
|
|
135
|
+
if (!actions) {
|
|
136
|
+
const no_actions_error = new SvelteKitError(405, "Method Not Allowed", `POST method not allowed. No form actions exist for this page`);
|
|
137
|
+
return action_json({
|
|
138
|
+
type: "error",
|
|
139
|
+
error: await handle_error_and_jsonify(event, event_state, options, no_actions_error)
|
|
140
|
+
}, {
|
|
141
|
+
status: no_actions_error.status,
|
|
142
|
+
headers: { allow: "GET" }
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
check_named_default_separate(actions);
|
|
146
|
+
try {
|
|
147
|
+
const data = await call_action(event, event_state, actions);
|
|
148
|
+
if (data instanceof ActionFailure) return action_json({
|
|
149
|
+
type: "failure",
|
|
150
|
+
status: data.status,
|
|
151
|
+
data: stringify_action_response(data.data, event.route.id, options.hooks.transport)
|
|
152
|
+
});
|
|
153
|
+
else return action_json({
|
|
154
|
+
type: "success",
|
|
155
|
+
status: data ? 200 : 204,
|
|
156
|
+
data: stringify_action_response(data, event.route.id, options.hooks.transport)
|
|
157
|
+
});
|
|
158
|
+
} catch (e) {
|
|
159
|
+
const err = normalize_error(e);
|
|
160
|
+
if (err instanceof Redirect) return action_json_redirect(err);
|
|
161
|
+
return action_json({
|
|
162
|
+
type: "error",
|
|
163
|
+
error: await handle_error_and_jsonify(event, event_state, options, check_incorrect_fail_use(err))
|
|
164
|
+
}, { status: get_status(err) });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* @param {HttpError | Error} error
|
|
169
|
+
*/
|
|
170
|
+
function check_incorrect_fail_use(error) {
|
|
171
|
+
return error instanceof ActionFailure ? /* @__PURE__ */ new Error("Cannot \"throw fail()\". Use \"return fail()\"") : error;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @param {Redirect} redirect
|
|
175
|
+
*/
|
|
176
|
+
function action_json_redirect(redirect) {
|
|
177
|
+
return action_json({
|
|
178
|
+
type: "redirect",
|
|
179
|
+
status: redirect.status,
|
|
180
|
+
location: redirect.location
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @param {ActionResult} data
|
|
185
|
+
* @param {ResponseInit} [init]
|
|
186
|
+
*/
|
|
187
|
+
function action_json(data, init) {
|
|
188
|
+
return json(data, init);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* @param {RequestEvent} event
|
|
192
|
+
*/
|
|
193
|
+
function is_action_request(event) {
|
|
194
|
+
return event.request.method === "POST";
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* @param {RequestEvent} event
|
|
198
|
+
* @param {import('types').RequestState} event_state
|
|
199
|
+
* @param {SSRNode['server'] | undefined} server
|
|
200
|
+
* @returns {Promise<ActionResult>}
|
|
201
|
+
*/
|
|
202
|
+
async function handle_action_request(event, event_state, server) {
|
|
203
|
+
const actions = server?.actions;
|
|
204
|
+
if (!actions) {
|
|
205
|
+
event.setHeaders({ allow: "GET" });
|
|
206
|
+
return {
|
|
207
|
+
type: "error",
|
|
208
|
+
error: new SvelteKitError(405, "Method Not Allowed", `POST method not allowed. No form actions exist for this page`)
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
check_named_default_separate(actions);
|
|
212
|
+
try {
|
|
213
|
+
const data = await call_action(event, event_state, actions);
|
|
214
|
+
if (data instanceof ActionFailure) return {
|
|
215
|
+
type: "failure",
|
|
216
|
+
status: data.status,
|
|
217
|
+
data: data.data
|
|
218
|
+
};
|
|
219
|
+
else return {
|
|
220
|
+
type: "success",
|
|
221
|
+
status: 200,
|
|
222
|
+
data
|
|
223
|
+
};
|
|
224
|
+
} catch (e) {
|
|
225
|
+
const err = normalize_error(e);
|
|
226
|
+
if (err instanceof Redirect) return {
|
|
227
|
+
type: "redirect",
|
|
228
|
+
status: err.status,
|
|
229
|
+
location: err.location
|
|
230
|
+
};
|
|
231
|
+
return {
|
|
232
|
+
type: "error",
|
|
233
|
+
error: check_incorrect_fail_use(err)
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* @param {Actions} actions
|
|
239
|
+
*/
|
|
240
|
+
function check_named_default_separate(actions) {
|
|
241
|
+
if (actions.default && Object.keys(actions).length > 1) throw new Error("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");
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* @param {RequestEvent} event
|
|
245
|
+
* @param {import('types').RequestState} event_state
|
|
246
|
+
* @param {NonNullable<ServerNode['actions']>} actions
|
|
247
|
+
* @throws {Redirect | HttpError | SvelteKitError | Error}
|
|
248
|
+
*/
|
|
249
|
+
async function call_action(event, event_state, actions) {
|
|
250
|
+
const url = new URL(event.request.url);
|
|
251
|
+
let name = "default";
|
|
252
|
+
for (const param of url.searchParams) if (param[0].startsWith("/")) {
|
|
253
|
+
name = param[0].slice(1);
|
|
254
|
+
if (name === "default") throw new Error("Cannot use reserved action name \"default\"");
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
const action = actions[name];
|
|
258
|
+
if (!action) throw new SvelteKitError(404, "Not Found", `No action with name '${name}' found`);
|
|
259
|
+
if (!is_form_content_type(event.request)) throw new SvelteKitError(415, "Unsupported Media Type", `Form actions expect form-encoded data — received ${event.request.headers.get("content-type")}`);
|
|
260
|
+
return record_span({
|
|
261
|
+
name: "sveltekit.form_action",
|
|
262
|
+
attributes: {
|
|
263
|
+
"http.route": event.route.id || "unknown"
|
|
264
|
+
},
|
|
265
|
+
fn: async (current) => {
|
|
266
|
+
const traced_event = merge_tracing(event, current);
|
|
267
|
+
const result = await with_request_store({
|
|
268
|
+
event: traced_event,
|
|
269
|
+
state: event_state
|
|
270
|
+
}, () => action(traced_event));
|
|
271
|
+
if (result instanceof ActionFailure) current.setAttributes({
|
|
272
|
+
"sveltekit.form_action.result.type": "failure",
|
|
273
|
+
"sveltekit.form_action.result.status": result.status
|
|
274
|
+
});
|
|
275
|
+
return result;
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Try to `devalue.uneval` the data object, and if it fails, return a proper Error with context
|
|
281
|
+
* @param {any} data
|
|
282
|
+
* @param {string} route_id
|
|
283
|
+
* @param {ServerHooks['transport']} transport
|
|
284
|
+
*/
|
|
285
|
+
function uneval_action_response(data, route_id, transport) {
|
|
286
|
+
const replacer = create_replacer(transport);
|
|
287
|
+
return try_serialize(data, (value) => uneval(value, replacer), route_id);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Try to `devalue.stringify` the data object, and if it fails, return a proper Error with context
|
|
291
|
+
* @param {any} data
|
|
292
|
+
* @param {string} route_id
|
|
293
|
+
* @param {ServerHooks['transport']} transport
|
|
294
|
+
*/
|
|
295
|
+
function stringify_action_response(data, route_id, transport) {
|
|
296
|
+
const encoders = Object.fromEntries(Object.entries(transport).map(([key, value]) => [key, value.encode]));
|
|
297
|
+
return try_serialize(data, (value) => stringify$1(value, encoders), route_id);
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* @param {any} data
|
|
301
|
+
* @param {(data: any) => string} fn
|
|
302
|
+
* @param {string} route_id
|
|
303
|
+
*/
|
|
304
|
+
function try_serialize(data, fn, route_id) {
|
|
305
|
+
try {
|
|
306
|
+
return fn(data);
|
|
307
|
+
} catch (e) {
|
|
308
|
+
const error = e;
|
|
309
|
+
if (data instanceof Response) throw new Error(`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" });`, { cause: e });
|
|
310
|
+
if ("path" in error) {
|
|
311
|
+
let message = `Data returned from action inside ${route_id} is not serializable: ${error.message}`;
|
|
312
|
+
if (error.path !== "") message += ` (data.${error.path})`;
|
|
313
|
+
throw new Error(message, { cause: e });
|
|
314
|
+
}
|
|
315
|
+
throw error;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/utils/streaming.js
|
|
320
|
+
/**
|
|
321
|
+
* Create an async iterator and a function to push values into it
|
|
322
|
+
* @template T
|
|
323
|
+
* @returns {{
|
|
324
|
+
* iterate: (transform?: (input: T) => T) => AsyncIterable<T>;
|
|
325
|
+
* add: (promise: Promise<T>) => void;
|
|
326
|
+
* }}
|
|
327
|
+
*/
|
|
328
|
+
function create_async_iterator() {
|
|
329
|
+
let resolved = -1;
|
|
330
|
+
let returned = -1;
|
|
331
|
+
/** @type {import('./promise.js').PromiseWithResolvers<T>[]} */
|
|
332
|
+
const deferred = [];
|
|
333
|
+
return {
|
|
334
|
+
iterate: (transform = (x) => x) => {
|
|
335
|
+
return { [Symbol.asyncIterator]() {
|
|
336
|
+
return { next: async () => {
|
|
337
|
+
const next = deferred[++returned];
|
|
338
|
+
if (!next) return {
|
|
339
|
+
value: null,
|
|
340
|
+
done: true
|
|
341
|
+
};
|
|
342
|
+
return {
|
|
343
|
+
value: transform(await next.promise),
|
|
344
|
+
done: false
|
|
345
|
+
};
|
|
346
|
+
} };
|
|
347
|
+
} };
|
|
348
|
+
},
|
|
349
|
+
add: (promise) => {
|
|
350
|
+
/** @type {import('./promise.js').PromiseWithResolvers<T>} */
|
|
351
|
+
const next = with_resolvers();
|
|
352
|
+
next.promise.catch(noop);
|
|
353
|
+
deferred.push(next);
|
|
354
|
+
promise.then((value) => {
|
|
355
|
+
deferred[++resolved].resolve(value);
|
|
356
|
+
}, (error) => {
|
|
357
|
+
deferred[++resolved].reject(error);
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
//#endregion
|
|
363
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/data_serializer.js
|
|
364
|
+
/**
|
|
365
|
+
* If the serialized data contains promises, `chunks` will be an
|
|
366
|
+
* async iterable containing their resolutions
|
|
367
|
+
* @param {import('@sveltejs/kit').RequestEvent} event
|
|
368
|
+
* @param {import('types').RequestState} event_state
|
|
369
|
+
* @param {import('types').SSROptions} options
|
|
370
|
+
* @returns {import('./types.js').ServerDataSerializer}
|
|
371
|
+
*/
|
|
372
|
+
function server_data_serializer(event, event_state, options) {
|
|
373
|
+
let promise_id = 1;
|
|
374
|
+
let max_nodes = -1;
|
|
375
|
+
const iterator = create_async_iterator();
|
|
376
|
+
const global = get_global_name(options);
|
|
377
|
+
/** @param {number} index */
|
|
378
|
+
function get_replacer(index) {
|
|
379
|
+
/** @param {any} thing */
|
|
380
|
+
return function replacer(thing) {
|
|
381
|
+
if (typeof thing?.then === "function") {
|
|
382
|
+
const id = promise_id++;
|
|
383
|
+
const promise = thing.then(
|
|
384
|
+
/** @param {any} data */
|
|
385
|
+
(data) => ({ data })
|
|
386
|
+
).catch(
|
|
387
|
+
/** @param {any} error */
|
|
388
|
+
async (error) => ({ error: await handle_error_and_jsonify(event, event_state, options, error) })
|
|
389
|
+
).then(
|
|
390
|
+
/**
|
|
391
|
+
* @param {{data: any; error: any}} result
|
|
392
|
+
*/
|
|
393
|
+
async ({ data, error }) => {
|
|
394
|
+
let str;
|
|
395
|
+
try {
|
|
396
|
+
str = uneval(error ? [, error] : [data], replacer);
|
|
397
|
+
} catch {
|
|
398
|
+
error = await handle_error_and_jsonify(event, event_state, options, /* @__PURE__ */ new Error(`Failed to serialize promise while rendering ${event.route.id}`));
|
|
399
|
+
str = uneval([, error], replacer);
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
index,
|
|
403
|
+
str: `${global}.resolve(${id}, ${str.includes("app.decode") ? `(app) => ${str}` : `() => ${str}`})`
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
);
|
|
407
|
+
iterator.add(promise);
|
|
408
|
+
return `${global}.defer(${id})`;
|
|
409
|
+
} else for (const key in options.hooks.transport) {
|
|
410
|
+
const encoded = options.hooks.transport[key].encode(thing);
|
|
411
|
+
if (encoded) return `app.decode('${key}', ${uneval(encoded, replacer)})`;
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
const strings = [];
|
|
416
|
+
return {
|
|
417
|
+
set_max_nodes(i) {
|
|
418
|
+
max_nodes = i;
|
|
419
|
+
},
|
|
420
|
+
add_node(i, node) {
|
|
421
|
+
try {
|
|
422
|
+
if (!node) {
|
|
423
|
+
strings[i] = "null";
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
/** @type {any} */
|
|
427
|
+
const payload = {
|
|
428
|
+
type: "data",
|
|
429
|
+
data: node.data,
|
|
430
|
+
uses: serialize_uses(node)
|
|
431
|
+
};
|
|
432
|
+
if (node.slash) payload.slash = node.slash;
|
|
433
|
+
strings[i] = uneval(payload, get_replacer(i));
|
|
434
|
+
} catch (e) {
|
|
435
|
+
e.path = e.path.slice(1);
|
|
436
|
+
throw new Error(clarify_devalue_error(event, e), { cause: e });
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
get_data(csp) {
|
|
440
|
+
const open = `<script${csp.script_needs_nonce ? ` nonce="${csp.nonce}"` : ""}>`;
|
|
441
|
+
const close = `<\/script>\n`;
|
|
442
|
+
return {
|
|
443
|
+
data: `[${compact(max_nodes > -1 ? strings.slice(0, max_nodes) : strings).join(",")}]`,
|
|
444
|
+
chunks: promise_id > 1 ? iterator.iterate(({ index, str }) => {
|
|
445
|
+
if (max_nodes > -1 && index >= max_nodes) return "";
|
|
446
|
+
return open + str + close;
|
|
447
|
+
}) : null
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* If the serialized data contains promises, `chunks` will be an
|
|
454
|
+
* async iterable containing their resolutions
|
|
455
|
+
* @param {import('@sveltejs/kit').RequestEvent} event
|
|
456
|
+
* @param {import('types').RequestState} event_state
|
|
457
|
+
* @param {import('types').SSROptions} options
|
|
458
|
+
* @returns {import('./types.js').ServerDataSerializerJson}
|
|
459
|
+
*/
|
|
460
|
+
function server_data_serializer_json(event, event_state, options) {
|
|
461
|
+
let promise_id = 1;
|
|
462
|
+
const iterator = create_async_iterator();
|
|
463
|
+
const reducers = {
|
|
464
|
+
...Object.fromEntries(Object.entries(options.hooks.transport).map(([key, value]) => [key, value.encode])),
|
|
465
|
+
/** @param {any} thing */
|
|
466
|
+
Promise: (thing) => {
|
|
467
|
+
if (typeof thing?.then !== "function") return;
|
|
468
|
+
const id = promise_id++;
|
|
469
|
+
/** @type {'data' | 'error'} */
|
|
470
|
+
let key = "data";
|
|
471
|
+
const promise = thing.catch(
|
|
472
|
+
/** @param {any} e */
|
|
473
|
+
async (e) => {
|
|
474
|
+
key = "error";
|
|
475
|
+
return handle_error_and_jsonify(event, event_state, options, e);
|
|
476
|
+
}
|
|
477
|
+
).then(
|
|
478
|
+
/** @param {any} value */
|
|
479
|
+
async (value) => {
|
|
480
|
+
let str;
|
|
481
|
+
try {
|
|
482
|
+
str = stringify$1(value, reducers);
|
|
483
|
+
} catch {
|
|
484
|
+
const error = await handle_error_and_jsonify(event, event_state, options, /* @__PURE__ */ new Error(`Failed to serialize promise while rendering ${event.route.id}`));
|
|
485
|
+
key = "error";
|
|
486
|
+
str = stringify$1(error, reducers);
|
|
487
|
+
}
|
|
488
|
+
return `{"type":"chunk","id":${id},"${key}":${str}}\n`;
|
|
489
|
+
}
|
|
490
|
+
);
|
|
491
|
+
iterator.add(promise);
|
|
492
|
+
return id;
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
const strings = [];
|
|
496
|
+
return {
|
|
497
|
+
add_node(i, node) {
|
|
498
|
+
try {
|
|
499
|
+
if (!node) {
|
|
500
|
+
strings[i] = "null";
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
if (node.type === "error" || node.type === "skip") {
|
|
504
|
+
strings[i] = JSON.stringify(node);
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
strings[i] = `{"type":"data","data":${stringify$1(node.data, reducers)},"uses":${JSON.stringify(serialize_uses(node))}${node.slash ? `,"slash":${JSON.stringify(node.slash)}` : ""}}`;
|
|
508
|
+
} catch (e) {
|
|
509
|
+
e.path = "data" + e.path;
|
|
510
|
+
throw new Error(clarify_devalue_error(event, e), { cause: e });
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
get_data() {
|
|
514
|
+
return {
|
|
515
|
+
data: `{"type":"data","nodes":[${strings.join(",")}]}\n`,
|
|
516
|
+
chunks: promise_id > 1 ? iterator.iterate() : null
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
//#endregion
|
|
522
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js
|
|
523
|
+
/**
|
|
524
|
+
* Calls the user's server `load` function.
|
|
525
|
+
* @param {{
|
|
526
|
+
* event: import('@sveltejs/kit').RequestEvent;
|
|
527
|
+
* event_state: import('types').RequestState;
|
|
528
|
+
* state: import('types').SSRState;
|
|
529
|
+
* node: import('types').SSRNode | undefined;
|
|
530
|
+
* parent: () => Promise<Record<string, any>>;
|
|
531
|
+
* }} opts
|
|
532
|
+
* @returns {Promise<import('types').ServerDataNode | null>}
|
|
533
|
+
*/
|
|
534
|
+
async function load_server_data({ event, event_state, state, node, parent }) {
|
|
535
|
+
if (!node?.server) return null;
|
|
536
|
+
let is_tracking = true;
|
|
537
|
+
const uses = {
|
|
538
|
+
dependencies: /* @__PURE__ */ new Set(),
|
|
539
|
+
params: /* @__PURE__ */ new Set(),
|
|
540
|
+
parent: false,
|
|
541
|
+
route: false,
|
|
542
|
+
url: false,
|
|
543
|
+
search_params: /* @__PURE__ */ new Set()
|
|
544
|
+
};
|
|
545
|
+
const load = node.server.load;
|
|
546
|
+
const slash = node.server.trailingSlash;
|
|
547
|
+
if (!load) return {
|
|
548
|
+
type: "data",
|
|
549
|
+
data: null,
|
|
550
|
+
uses,
|
|
551
|
+
slash
|
|
552
|
+
};
|
|
553
|
+
const url = make_trackable(event.url, () => {
|
|
554
|
+
if (is_tracking) uses.url = true;
|
|
555
|
+
}, (param) => {
|
|
556
|
+
if (is_tracking) uses.search_params.add(param);
|
|
557
|
+
});
|
|
558
|
+
if (state.prerendering) disable_search(url);
|
|
559
|
+
return {
|
|
560
|
+
type: "data",
|
|
561
|
+
data: await record_span({
|
|
562
|
+
name: "sveltekit.load",
|
|
563
|
+
attributes: {
|
|
564
|
+
"sveltekit.load.node_id": node.server_id || "unknown",
|
|
565
|
+
"sveltekit.load.node_type": get_node_type(node.server_id),
|
|
566
|
+
"http.route": event.route.id || "unknown"
|
|
567
|
+
},
|
|
568
|
+
fn: async (current) => {
|
|
569
|
+
const traced_event = merge_tracing(event, current);
|
|
570
|
+
return await with_request_store({
|
|
571
|
+
event: traced_event,
|
|
572
|
+
state: event_state
|
|
573
|
+
}, () => load.call(null, {
|
|
574
|
+
...traced_event,
|
|
575
|
+
fetch: (info, init) => {
|
|
576
|
+
new URL(info instanceof Request ? info.url : info, event.url);
|
|
577
|
+
return event.fetch(info, init);
|
|
578
|
+
},
|
|
579
|
+
/** @param {string[]} deps */
|
|
580
|
+
depends: (...deps) => {
|
|
581
|
+
for (const dep of deps) {
|
|
582
|
+
const { href } = new URL(dep, event.url);
|
|
583
|
+
uses.dependencies.add(href);
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
params: new Proxy(event.params, { get: (target, key) => {
|
|
587
|
+
if (is_tracking) uses.params.add(key);
|
|
588
|
+
return target[key];
|
|
589
|
+
} }),
|
|
590
|
+
parent: async () => {
|
|
591
|
+
if (is_tracking) uses.parent = true;
|
|
592
|
+
return parent();
|
|
593
|
+
},
|
|
594
|
+
route: new Proxy(event.route, { get: (target, key) => {
|
|
595
|
+
if (is_tracking) uses.route = true;
|
|
596
|
+
return target[key];
|
|
597
|
+
} }),
|
|
598
|
+
url,
|
|
599
|
+
untrack(fn) {
|
|
600
|
+
is_tracking = false;
|
|
601
|
+
try {
|
|
602
|
+
return fn();
|
|
603
|
+
} finally {
|
|
604
|
+
is_tracking = true;
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
}));
|
|
608
|
+
}
|
|
609
|
+
}) ?? null,
|
|
610
|
+
uses,
|
|
611
|
+
slash
|
|
612
|
+
};
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Calls the user's `load` function.
|
|
616
|
+
* @param {{
|
|
617
|
+
* event: import('@sveltejs/kit').RequestEvent;
|
|
618
|
+
* event_state: import('types').RequestState;
|
|
619
|
+
* fetched: import('./types.js').Fetched[];
|
|
620
|
+
* node: import('types').SSRNode | undefined;
|
|
621
|
+
* parent: () => Promise<Record<string, any>>;
|
|
622
|
+
* resolve_opts: import('types').RequiredResolveOptions;
|
|
623
|
+
* server_data_promise: Promise<import('types').ServerDataNode | null>;
|
|
624
|
+
* state: import('types').SSRState;
|
|
625
|
+
* csr: boolean;
|
|
626
|
+
* }} opts
|
|
627
|
+
* @returns {Promise<Record<string, any | Promise<any>> | null>}
|
|
628
|
+
*/
|
|
629
|
+
async function load_data({ event, event_state, fetched, node, parent, server_data_promise, state, resolve_opts, csr }) {
|
|
630
|
+
const server_data_node = await server_data_promise;
|
|
631
|
+
const load = node?.universal?.load;
|
|
632
|
+
if (!load) return server_data_node?.data ?? null;
|
|
633
|
+
return await record_span({
|
|
634
|
+
name: "sveltekit.load",
|
|
635
|
+
attributes: {
|
|
636
|
+
"sveltekit.load.node_id": node.universal_id || "unknown",
|
|
637
|
+
"sveltekit.load.node_type": get_node_type(node.universal_id),
|
|
638
|
+
"http.route": event.route.id || "unknown"
|
|
639
|
+
},
|
|
640
|
+
fn: async (current) => {
|
|
641
|
+
const traced_event = merge_tracing(event, current);
|
|
642
|
+
const child_state = {
|
|
643
|
+
...event_state,
|
|
644
|
+
is_in_universal_load: true
|
|
645
|
+
};
|
|
646
|
+
return await with_request_store({
|
|
647
|
+
event: traced_event,
|
|
648
|
+
state: child_state
|
|
649
|
+
}, () => load.call(null, {
|
|
650
|
+
url: event.url,
|
|
651
|
+
params: event.params,
|
|
652
|
+
data: server_data_node?.data ?? null,
|
|
653
|
+
route: event.route,
|
|
654
|
+
fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts),
|
|
655
|
+
setHeaders: event.setHeaders,
|
|
656
|
+
depends: noop,
|
|
657
|
+
parent,
|
|
658
|
+
untrack: (fn) => fn(),
|
|
659
|
+
tracing: traced_event.tracing
|
|
660
|
+
}));
|
|
661
|
+
}
|
|
662
|
+
}) ?? null;
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* @param {Pick<import('@sveltejs/kit').RequestEvent, 'fetch' | 'url' | 'request' | 'route'>} event
|
|
666
|
+
* @param {import('types').SSRState} state
|
|
667
|
+
* @param {import('./types.js').Fetched[]} fetched
|
|
668
|
+
* @param {boolean} csr
|
|
669
|
+
* @param {Pick<Required<import('@sveltejs/kit').ResolveOptions>, 'filterSerializedResponseHeaders'>} resolve_opts
|
|
670
|
+
* @returns {typeof fetch}
|
|
671
|
+
*/
|
|
672
|
+
function create_universal_fetch(event, state, fetched, csr, resolve_opts) {
|
|
673
|
+
/**
|
|
674
|
+
* @param {URL | RequestInfo} input
|
|
675
|
+
* @param {RequestInit} [init]
|
|
676
|
+
*/
|
|
677
|
+
const universal_fetch = async (input, init) => {
|
|
678
|
+
const cloned_body = input instanceof Request && input.body ? input.clone().body : null;
|
|
679
|
+
const cloned_headers = input instanceof Request && [...input.headers].length ? new Headers(input.headers) : init?.headers;
|
|
680
|
+
let response = await event.fetch(input, init);
|
|
681
|
+
const url = new URL(input instanceof Request ? input.url : input, event.url);
|
|
682
|
+
const same_origin = url.origin === event.url.origin;
|
|
683
|
+
/** @type {import('types').PrerenderDependency} */
|
|
684
|
+
let dependency;
|
|
685
|
+
if (same_origin) {
|
|
686
|
+
if (state.prerendering) {
|
|
687
|
+
dependency = {
|
|
688
|
+
response,
|
|
689
|
+
body: null
|
|
690
|
+
};
|
|
691
|
+
state.prerendering.dependencies.set(url.pathname, dependency);
|
|
692
|
+
}
|
|
693
|
+
} else if (url.protocol === "https:" || url.protocol === "http:") {
|
|
694
|
+
if ((input instanceof Request ? input.mode : init?.mode ?? "cors") === "no-cors") response = new Response("", {
|
|
695
|
+
status: response.status,
|
|
696
|
+
statusText: response.statusText,
|
|
697
|
+
headers: response.headers
|
|
698
|
+
});
|
|
699
|
+
else {
|
|
700
|
+
const acao = response.headers.get("access-control-allow-origin");
|
|
701
|
+
if (!acao || acao !== event.url.origin && acao !== "*") throw new Error(`CORS error: ${acao ? "Incorrect" : "No"} 'Access-Control-Allow-Origin' header is present on the requested resource`);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
/** @type {ReadableStream<Uint8Array>} */
|
|
705
|
+
let teed_body;
|
|
706
|
+
const proxy = new Proxy(response, { get(response, key, receiver) {
|
|
707
|
+
/**
|
|
708
|
+
* @param {string | undefined} body
|
|
709
|
+
* @param {boolean} is_b64
|
|
710
|
+
*/
|
|
711
|
+
async function push_fetched(body, is_b64) {
|
|
712
|
+
const status_number = Number(response.status);
|
|
713
|
+
if (isNaN(status_number)) throw new Error(`response.status is not a number. value: "${response.status}" type: ${typeof response.status}`);
|
|
714
|
+
fetched.push({
|
|
715
|
+
url: same_origin ? url.href.slice(event.url.origin.length) : url.href,
|
|
716
|
+
method: event.request.method,
|
|
717
|
+
request_body: input instanceof Request && cloned_body ? await stream_to_string(cloned_body) : init?.body,
|
|
718
|
+
request_headers: cloned_headers,
|
|
719
|
+
response_body: body,
|
|
720
|
+
response,
|
|
721
|
+
is_b64
|
|
722
|
+
});
|
|
723
|
+
}
|
|
724
|
+
if (key === "body") {
|
|
725
|
+
if (response.body === null) return null;
|
|
726
|
+
if (teed_body) return teed_body;
|
|
727
|
+
const [a, b] = response.body.tee();
|
|
728
|
+
(async () => {
|
|
729
|
+
let result = /* @__PURE__ */ new Uint8Array();
|
|
730
|
+
for await (const chunk of a) {
|
|
731
|
+
const combined = new Uint8Array(result.length + chunk.length);
|
|
732
|
+
combined.set(result, 0);
|
|
733
|
+
combined.set(chunk, result.length);
|
|
734
|
+
result = combined;
|
|
735
|
+
}
|
|
736
|
+
if (dependency) dependency.body = new Uint8Array(result);
|
|
737
|
+
push_fetched(base64_encode(result), true);
|
|
738
|
+
})().catch(noop);
|
|
739
|
+
return teed_body = b;
|
|
740
|
+
}
|
|
741
|
+
if (key === "arrayBuffer") return async () => {
|
|
742
|
+
const buffer = await response.arrayBuffer();
|
|
743
|
+
const bytes = new Uint8Array(buffer);
|
|
744
|
+
if (dependency) dependency.body = bytes;
|
|
745
|
+
if (buffer instanceof ArrayBuffer) await push_fetched(base64_encode(bytes), true);
|
|
746
|
+
return buffer;
|
|
747
|
+
};
|
|
748
|
+
async function text() {
|
|
749
|
+
const body = await response.text();
|
|
750
|
+
if (body === "" && NULL_BODY_STATUS.includes(response.status)) {
|
|
751
|
+
await push_fetched(void 0, false);
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
if (!body || typeof body === "string") await push_fetched(body, false);
|
|
755
|
+
if (dependency) dependency.body = body;
|
|
756
|
+
return body;
|
|
757
|
+
}
|
|
758
|
+
if (key === "text") return text;
|
|
759
|
+
if (key === "json") return async () => {
|
|
760
|
+
const body = await text();
|
|
761
|
+
return body ? JSON.parse(body) : void 0;
|
|
762
|
+
};
|
|
763
|
+
const value = Reflect.get(response, key, response);
|
|
764
|
+
if (value instanceof Function) return Object.defineProperties(
|
|
765
|
+
/**
|
|
766
|
+
* @this {any}
|
|
767
|
+
*/
|
|
768
|
+
function() {
|
|
769
|
+
return Reflect.apply(value, this === receiver ? response : this, arguments);
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
name: { value: value.name },
|
|
773
|
+
length: { value: value.length }
|
|
774
|
+
}
|
|
775
|
+
);
|
|
776
|
+
return value;
|
|
777
|
+
} });
|
|
778
|
+
if (csr) {
|
|
779
|
+
const get = response.headers.get;
|
|
780
|
+
response.headers.get = (key) => {
|
|
781
|
+
const lower = key.toLowerCase();
|
|
782
|
+
const value = get.call(response.headers, lower);
|
|
783
|
+
if (value && !lower.startsWith("x-sveltekit-")) {
|
|
784
|
+
if (!resolve_opts.filterSerializedResponseHeaders(lower, value)) throw new Error(`Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://svelte.dev/docs/kit/hooks#handle (at ${event.route.id})`);
|
|
785
|
+
}
|
|
786
|
+
return value;
|
|
787
|
+
};
|
|
788
|
+
}
|
|
789
|
+
return proxy;
|
|
790
|
+
};
|
|
791
|
+
return (input, init) => {
|
|
792
|
+
const response = universal_fetch(input, init);
|
|
793
|
+
response.catch(noop);
|
|
794
|
+
return response;
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* @param {ReadableStream<Uint8Array>} stream
|
|
799
|
+
*/
|
|
800
|
+
async function stream_to_string(stream) {
|
|
801
|
+
let result = "";
|
|
802
|
+
const reader = stream.getReader();
|
|
803
|
+
const decoder = new TextDecoder();
|
|
804
|
+
while (true) {
|
|
805
|
+
const { done, value } = await reader.read();
|
|
806
|
+
if (done) {
|
|
807
|
+
result += decoder.decode();
|
|
808
|
+
break;
|
|
809
|
+
}
|
|
810
|
+
result += decoder.decode(value, { stream: true });
|
|
811
|
+
}
|
|
812
|
+
return result;
|
|
813
|
+
}
|
|
814
|
+
//#endregion
|
|
815
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/serialize_data.js
|
|
816
|
+
/**
|
|
817
|
+
* Inside a script element, only `<\/script` and `<!--` hold special meaning to the HTML parser.
|
|
818
|
+
*
|
|
819
|
+
* The first closes the script element, so everything after is treated as raw HTML.
|
|
820
|
+
* The second disables further parsing until `-->`, so the script element might be unexpectedly
|
|
821
|
+
* kept open up until an unrelated HTML comment in the page.
|
|
822
|
+
*
|
|
823
|
+
* U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR are escaped for the sake of pre-2018
|
|
824
|
+
* browsers.
|
|
825
|
+
*
|
|
826
|
+
* @see tests for unsafe parsing examples.
|
|
827
|
+
* @see https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
|
|
828
|
+
* @see https://html.spec.whatwg.org/multipage/syntax.html#cdata-rcdata-restrictions
|
|
829
|
+
* @see https://html.spec.whatwg.org/multipage/parsing.html#script-data-state
|
|
830
|
+
* @see https://html.spec.whatwg.org/multipage/parsing.html#script-data-double-escaped-state
|
|
831
|
+
* @see https://github.com/tc39/proposal-json-superset
|
|
832
|
+
* @type {Record<string, string>}
|
|
833
|
+
*/
|
|
834
|
+
var replacements = {
|
|
835
|
+
"<": "\\u003C",
|
|
836
|
+
"\u2028": "\\u2028",
|
|
837
|
+
"\u2029": "\\u2029"
|
|
838
|
+
};
|
|
839
|
+
var pattern = new RegExp(`[${Object.keys(replacements).join("")}]`, "g");
|
|
840
|
+
/**
|
|
841
|
+
* Generates a raw HTML string containing a safe script element carrying data and associated attributes.
|
|
842
|
+
*
|
|
843
|
+
* It escapes all the special characters needed to guarantee the element is unbroken, but care must
|
|
844
|
+
* be taken to ensure it is inserted in the document at an acceptable position for a script element,
|
|
845
|
+
* and that the resulting string isn't further modified.
|
|
846
|
+
*
|
|
847
|
+
* @param {import('./types.js').Fetched} fetched
|
|
848
|
+
* @param {(name: string, value: string) => boolean} filter
|
|
849
|
+
* @param {boolean} [prerendering]
|
|
850
|
+
* @returns {string} The raw HTML of a script element carrying the JSON payload.
|
|
851
|
+
* @example const html = serialize_data('/data.json', null, { foo: 'bar' });
|
|
852
|
+
*/
|
|
853
|
+
function serialize_data(fetched, filter, prerendering = false) {
|
|
854
|
+
/** @type {Record<string, string>} */
|
|
855
|
+
const headers = {};
|
|
856
|
+
let cache_control = null;
|
|
857
|
+
let age = null;
|
|
858
|
+
let varyAny = false;
|
|
859
|
+
for (const [key, value] of fetched.response.headers) {
|
|
860
|
+
if (filter(key, value)) headers[key] = value;
|
|
861
|
+
if (key === "cache-control") cache_control = value;
|
|
862
|
+
else if (key === "age") age = value;
|
|
863
|
+
else if (key === "vary" && value.trim() === "*") varyAny = true;
|
|
864
|
+
}
|
|
865
|
+
const payload = {
|
|
866
|
+
status: fetched.response.status,
|
|
867
|
+
statusText: fetched.response.statusText,
|
|
868
|
+
headers,
|
|
869
|
+
body: fetched.response_body
|
|
870
|
+
};
|
|
871
|
+
const safe_payload = JSON.stringify(payload).replace(pattern, (match) => replacements[match]);
|
|
872
|
+
const attrs = [
|
|
873
|
+
"type=\"application/json\"",
|
|
874
|
+
"data-sveltekit-fetched",
|
|
875
|
+
`data-url="${escape_html(fetched.url, true)}"`
|
|
876
|
+
];
|
|
877
|
+
if (fetched.is_b64) attrs.push("data-b64");
|
|
878
|
+
if (fetched.request_headers || fetched.request_body) {
|
|
879
|
+
/** @type {import('types').StrictBody[]} */
|
|
880
|
+
const values = [];
|
|
881
|
+
if (fetched.request_headers) values.push([...new Headers(fetched.request_headers)].join(","));
|
|
882
|
+
if (fetched.request_body) values.push(fetched.request_body);
|
|
883
|
+
attrs.push(`data-hash="${hash(...values)}"`);
|
|
884
|
+
}
|
|
885
|
+
if (!prerendering && fetched.method === "GET" && cache_control && !varyAny) {
|
|
886
|
+
const match = /s-maxage=(\d+)/g.exec(cache_control) ?? /max-age=(\d+)/g.exec(cache_control);
|
|
887
|
+
if (match) {
|
|
888
|
+
const ttl = +match[1] - +(age ?? "0");
|
|
889
|
+
attrs.push(`data-ttl="${ttl}"`);
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
return `<script ${attrs.join(" ")}>${safe_payload}<\/script>`;
|
|
893
|
+
}
|
|
894
|
+
//#endregion
|
|
895
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/crypto.js
|
|
896
|
+
/**
|
|
897
|
+
* SHA-256 hashing function adapted from https://bitwiseshiftleft.github.io/sjcl
|
|
898
|
+
* modified and redistributed under BSD license
|
|
899
|
+
* @param {string} data
|
|
900
|
+
*/
|
|
901
|
+
function sha256(data) {
|
|
902
|
+
if (!key[0]) precompute();
|
|
903
|
+
const out = init.slice(0);
|
|
904
|
+
const array = encode(data);
|
|
905
|
+
for (let i = 0; i < array.length; i += 16) {
|
|
906
|
+
const w = array.subarray(i, i + 16);
|
|
907
|
+
let tmp;
|
|
908
|
+
let a;
|
|
909
|
+
let b;
|
|
910
|
+
let out0 = out[0];
|
|
911
|
+
let out1 = out[1];
|
|
912
|
+
let out2 = out[2];
|
|
913
|
+
let out3 = out[3];
|
|
914
|
+
let out4 = out[4];
|
|
915
|
+
let out5 = out[5];
|
|
916
|
+
let out6 = out[6];
|
|
917
|
+
let out7 = out[7];
|
|
918
|
+
for (let i = 0; i < 64; i++) {
|
|
919
|
+
if (i < 16) tmp = w[i];
|
|
920
|
+
else {
|
|
921
|
+
a = w[i + 1 & 15];
|
|
922
|
+
b = w[i + 14 & 15];
|
|
923
|
+
tmp = w[i & 15] = (a >>> 7 ^ a >>> 18 ^ a >>> 3 ^ a << 25 ^ a << 14) + (b >>> 17 ^ b >>> 19 ^ b >>> 10 ^ b << 15 ^ b << 13) + w[i & 15] + w[i + 9 & 15] | 0;
|
|
924
|
+
}
|
|
925
|
+
tmp = tmp + out7 + (out4 >>> 6 ^ out4 >>> 11 ^ out4 >>> 25 ^ out4 << 26 ^ out4 << 21 ^ out4 << 7) + (out6 ^ out4 & (out5 ^ out6)) + key[i];
|
|
926
|
+
out7 = out6;
|
|
927
|
+
out6 = out5;
|
|
928
|
+
out5 = out4;
|
|
929
|
+
out4 = out3 + tmp | 0;
|
|
930
|
+
out3 = out2;
|
|
931
|
+
out2 = out1;
|
|
932
|
+
out1 = out0;
|
|
933
|
+
out0 = tmp + (out1 & out2 ^ out3 & (out1 ^ out2)) + (out1 >>> 2 ^ out1 >>> 13 ^ out1 >>> 22 ^ out1 << 30 ^ out1 << 19 ^ out1 << 10) | 0;
|
|
934
|
+
}
|
|
935
|
+
out[0] = out[0] + out0 | 0;
|
|
936
|
+
out[1] = out[1] + out1 | 0;
|
|
937
|
+
out[2] = out[2] + out2 | 0;
|
|
938
|
+
out[3] = out[3] + out3 | 0;
|
|
939
|
+
out[4] = out[4] + out4 | 0;
|
|
940
|
+
out[5] = out[5] + out5 | 0;
|
|
941
|
+
out[6] = out[6] + out6 | 0;
|
|
942
|
+
out[7] = out[7] + out7 | 0;
|
|
943
|
+
}
|
|
944
|
+
const bytes = new Uint8Array(out.buffer);
|
|
945
|
+
reverse_endianness(bytes);
|
|
946
|
+
return btoa(String.fromCharCode(...bytes));
|
|
947
|
+
}
|
|
948
|
+
/** The SHA-256 initialization vector */
|
|
949
|
+
var init = /* @__PURE__ */ new Uint32Array(8);
|
|
950
|
+
/** The SHA-256 hash key */
|
|
951
|
+
var key = /* @__PURE__ */ new Uint32Array(64);
|
|
952
|
+
/** Function to precompute init and key. */
|
|
953
|
+
function precompute() {
|
|
954
|
+
/** @param {number} x */
|
|
955
|
+
function frac(x) {
|
|
956
|
+
return (x - Math.floor(x)) * 4294967296;
|
|
957
|
+
}
|
|
958
|
+
let prime = 2;
|
|
959
|
+
for (let i = 0; i < 64; prime++) {
|
|
960
|
+
let is_prime = true;
|
|
961
|
+
for (let factor = 2; factor * factor <= prime; factor++) if (prime % factor === 0) {
|
|
962
|
+
is_prime = false;
|
|
963
|
+
break;
|
|
964
|
+
}
|
|
965
|
+
if (is_prime) {
|
|
966
|
+
if (i < 8) init[i] = frac(prime ** (1 / 2));
|
|
967
|
+
key[i] = frac(prime ** (1 / 3));
|
|
968
|
+
i++;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
/** @param {Uint8Array} bytes */
|
|
973
|
+
function reverse_endianness(bytes) {
|
|
974
|
+
for (let i = 0; i < bytes.length; i += 4) {
|
|
975
|
+
const a = bytes[i + 0];
|
|
976
|
+
const b = bytes[i + 1];
|
|
977
|
+
const c = bytes[i + 2];
|
|
978
|
+
const d = bytes[i + 3];
|
|
979
|
+
bytes[i + 0] = d;
|
|
980
|
+
bytes[i + 1] = c;
|
|
981
|
+
bytes[i + 2] = b;
|
|
982
|
+
bytes[i + 3] = a;
|
|
983
|
+
}
|
|
984
|
+
}
|
|
985
|
+
/** @param {string} str */
|
|
986
|
+
function encode(str) {
|
|
987
|
+
const encoded = text_encoder.encode(str);
|
|
988
|
+
const length = encoded.length * 8;
|
|
989
|
+
const size = 512 * Math.ceil((length + 65) / 512);
|
|
990
|
+
const bytes = new Uint8Array(size / 8);
|
|
991
|
+
bytes.set(encoded);
|
|
992
|
+
bytes[encoded.length] = 128;
|
|
993
|
+
reverse_endianness(bytes);
|
|
994
|
+
const words = new Uint32Array(bytes.buffer);
|
|
995
|
+
words[words.length - 2] = Math.floor(length / 4294967296);
|
|
996
|
+
words[words.length - 1] = length;
|
|
997
|
+
return words;
|
|
998
|
+
}
|
|
999
|
+
//#endregion
|
|
1000
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/csp.js
|
|
1001
|
+
var array = /* @__PURE__ */ new Uint8Array(16);
|
|
1002
|
+
function generate_nonce() {
|
|
1003
|
+
crypto.getRandomValues(array);
|
|
1004
|
+
return btoa(String.fromCharCode(...array));
|
|
1005
|
+
}
|
|
1006
|
+
var quoted = /* @__PURE__ */ new Set([
|
|
1007
|
+
"self",
|
|
1008
|
+
"unsafe-eval",
|
|
1009
|
+
"unsafe-hashes",
|
|
1010
|
+
"unsafe-inline",
|
|
1011
|
+
"none",
|
|
1012
|
+
"strict-dynamic",
|
|
1013
|
+
"report-sample",
|
|
1014
|
+
"wasm-unsafe-eval",
|
|
1015
|
+
"script"
|
|
1016
|
+
]);
|
|
1017
|
+
var crypto_pattern = /^(nonce|sha\d\d\d)-/;
|
|
1018
|
+
var BaseProvider = class {
|
|
1019
|
+
/** @type {boolean} */
|
|
1020
|
+
#use_hashes;
|
|
1021
|
+
/** @type {boolean} */
|
|
1022
|
+
#script_needs_csp;
|
|
1023
|
+
/** @type {boolean} */
|
|
1024
|
+
#script_src_needs_csp;
|
|
1025
|
+
/** @type {boolean} */
|
|
1026
|
+
#script_src_elem_needs_csp;
|
|
1027
|
+
/** @type {boolean} */
|
|
1028
|
+
#style_needs_csp;
|
|
1029
|
+
/** @type {boolean} */
|
|
1030
|
+
#style_src_needs_csp;
|
|
1031
|
+
/** @type {boolean} */
|
|
1032
|
+
#style_src_attr_needs_csp;
|
|
1033
|
+
/** @type {boolean} */
|
|
1034
|
+
#style_src_elem_needs_csp;
|
|
1035
|
+
/** @type {import('types').CspDirectives} */
|
|
1036
|
+
#directives;
|
|
1037
|
+
/** @type {Set<import('types').Csp.Source>} */
|
|
1038
|
+
#script_src;
|
|
1039
|
+
/** @type {Set<import('types').Csp.Source>} */
|
|
1040
|
+
#script_src_elem;
|
|
1041
|
+
/** @type {Set<import('types').Csp.Source>} */
|
|
1042
|
+
#style_src;
|
|
1043
|
+
/** @type {Set<import('types').Csp.Source>} */
|
|
1044
|
+
#style_src_attr;
|
|
1045
|
+
/** @type {Set<import('types').Csp.Source>} */
|
|
1046
|
+
#style_src_elem;
|
|
1047
|
+
/** @type {boolean} */
|
|
1048
|
+
script_needs_nonce;
|
|
1049
|
+
/** @type {boolean} */
|
|
1050
|
+
style_needs_nonce;
|
|
1051
|
+
/** @type {boolean} */
|
|
1052
|
+
script_needs_hash;
|
|
1053
|
+
/** @type {string} */
|
|
1054
|
+
#nonce;
|
|
1055
|
+
/**
|
|
1056
|
+
* @param {boolean} use_hashes
|
|
1057
|
+
* @param {import('types').CspDirectives} directives
|
|
1058
|
+
* @param {string} nonce
|
|
1059
|
+
*/
|
|
1060
|
+
constructor(use_hashes, directives, nonce) {
|
|
1061
|
+
this.#use_hashes = use_hashes;
|
|
1062
|
+
this.#directives = directives;
|
|
1063
|
+
const d = this.#directives;
|
|
1064
|
+
this.#script_src = /* @__PURE__ */ new Set();
|
|
1065
|
+
this.#script_src_elem = /* @__PURE__ */ new Set();
|
|
1066
|
+
this.#style_src = /* @__PURE__ */ new Set();
|
|
1067
|
+
this.#style_src_attr = /* @__PURE__ */ new Set();
|
|
1068
|
+
this.#style_src_elem = /* @__PURE__ */ new Set();
|
|
1069
|
+
const effective_script_src = d["script-src"] || d["default-src"];
|
|
1070
|
+
const script_src_elem = d["script-src-elem"];
|
|
1071
|
+
const effective_style_src = d["style-src"] || d["default-src"];
|
|
1072
|
+
const style_src_attr = d["style-src-attr"];
|
|
1073
|
+
const style_src_elem = d["style-src-elem"];
|
|
1074
|
+
/** @param {(import('types').Csp.Source | import('types').Csp.ActionSource)[] | undefined} directive */
|
|
1075
|
+
const style_needs_csp = (directive) => !!directive && !directive.some((value) => value === "unsafe-inline");
|
|
1076
|
+
/** @param {(import('types').Csp.Source | import('types').Csp.ActionSource)[] | undefined} directive */
|
|
1077
|
+
const script_needs_csp = (directive) => !!directive && (!directive.some((value) => value === "unsafe-inline") || directive.some((value) => value === "strict-dynamic"));
|
|
1078
|
+
this.#script_src_needs_csp = script_needs_csp(effective_script_src);
|
|
1079
|
+
this.#script_src_elem_needs_csp = script_needs_csp(script_src_elem);
|
|
1080
|
+
this.#style_src_needs_csp = style_needs_csp(effective_style_src);
|
|
1081
|
+
this.#style_src_attr_needs_csp = style_needs_csp(style_src_attr);
|
|
1082
|
+
this.#style_src_elem_needs_csp = style_needs_csp(style_src_elem);
|
|
1083
|
+
this.#script_needs_csp = this.#script_src_needs_csp || this.#script_src_elem_needs_csp;
|
|
1084
|
+
this.#style_needs_csp = this.#style_src_needs_csp || this.#style_src_attr_needs_csp || this.#style_src_elem_needs_csp;
|
|
1085
|
+
this.script_needs_nonce = this.#script_needs_csp && !this.#use_hashes;
|
|
1086
|
+
this.style_needs_nonce = this.#style_needs_csp && !this.#use_hashes;
|
|
1087
|
+
this.script_needs_hash = this.#script_needs_csp && this.#use_hashes;
|
|
1088
|
+
this.#nonce = nonce;
|
|
1089
|
+
}
|
|
1090
|
+
/** @param {string} content */
|
|
1091
|
+
add_script(content) {
|
|
1092
|
+
if (!this.#script_needs_csp) return;
|
|
1093
|
+
/** @type {`nonce-${string}` | `sha256-${string}`} */
|
|
1094
|
+
const source = this.#use_hashes ? `sha256-${sha256(content)}` : `nonce-${this.#nonce}`;
|
|
1095
|
+
if (this.#script_src_needs_csp) this.#script_src.add(source);
|
|
1096
|
+
if (this.#script_src_elem_needs_csp) this.#script_src_elem.add(source);
|
|
1097
|
+
}
|
|
1098
|
+
/** @param {`sha256-${string}`[]} hashes */
|
|
1099
|
+
add_script_hashes(hashes) {
|
|
1100
|
+
for (const hash of hashes) {
|
|
1101
|
+
if (this.#script_src_needs_csp) this.#script_src.add(hash);
|
|
1102
|
+
if (this.#script_src_elem_needs_csp) this.#script_src_elem.add(hash);
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
/** @param {string} content */
|
|
1106
|
+
add_style(content) {
|
|
1107
|
+
if (!this.#style_needs_csp) return;
|
|
1108
|
+
/** @type {`nonce-${string}` | `sha256-${string}`} */
|
|
1109
|
+
const source = this.#use_hashes ? `sha256-${sha256(content)}` : `nonce-${this.#nonce}`;
|
|
1110
|
+
if (this.#style_src_needs_csp) this.#style_src.add(source);
|
|
1111
|
+
if (this.#style_src_attr_needs_csp) this.#style_src_attr.add(source);
|
|
1112
|
+
if (this.#style_src_elem_needs_csp) {
|
|
1113
|
+
const sha256_empty_comment_hash = "sha256-9OlNO0DNEeaVzHL4RZwCLsBHA8WBQ8toBp/4F5XV2nc=";
|
|
1114
|
+
const d = this.#directives;
|
|
1115
|
+
if (d["style-src-elem"] && !d["style-src-elem"].includes(sha256_empty_comment_hash) && !this.#style_src_elem.has(sha256_empty_comment_hash)) this.#style_src_elem.add(sha256_empty_comment_hash);
|
|
1116
|
+
if (source !== sha256_empty_comment_hash) this.#style_src_elem.add(source);
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
/**
|
|
1120
|
+
* @param {boolean} [is_meta]
|
|
1121
|
+
*/
|
|
1122
|
+
get_header(is_meta = false) {
|
|
1123
|
+
const header = [];
|
|
1124
|
+
const directives = { ...this.#directives };
|
|
1125
|
+
if (this.#style_src.size > 0) directives["style-src"] = [...directives["style-src"] || directives["default-src"] || [], ...this.#style_src];
|
|
1126
|
+
if (this.#style_src_attr.size > 0) directives["style-src-attr"] = [...directives["style-src-attr"] || [], ...this.#style_src_attr];
|
|
1127
|
+
if (this.#style_src_elem.size > 0) directives["style-src-elem"] = [...directives["style-src-elem"] || [], ...this.#style_src_elem];
|
|
1128
|
+
if (this.#script_src.size > 0) directives["script-src"] = [...directives["script-src"] || directives["default-src"] || [], ...this.#script_src];
|
|
1129
|
+
if (this.#script_src_elem.size > 0) directives["script-src-elem"] = [...directives["script-src-elem"] || [], ...this.#script_src_elem];
|
|
1130
|
+
for (const key in directives) {
|
|
1131
|
+
if (is_meta && (key === "frame-ancestors" || key === "report-uri" || key === "sandbox")) continue;
|
|
1132
|
+
const value = directives[key];
|
|
1133
|
+
if (!value) continue;
|
|
1134
|
+
const directive = [key];
|
|
1135
|
+
if (Array.isArray(value)) value.forEach((value) => {
|
|
1136
|
+
if (quoted.has(value) || crypto_pattern.test(value)) directive.push(`'${value}'`);
|
|
1137
|
+
else directive.push(value);
|
|
1138
|
+
});
|
|
1139
|
+
header.push(directive.join(" "));
|
|
1140
|
+
}
|
|
1141
|
+
return header.join("; ");
|
|
1142
|
+
}
|
|
1143
|
+
};
|
|
1144
|
+
var CspProvider = class extends BaseProvider {
|
|
1145
|
+
get_meta() {
|
|
1146
|
+
const content = this.get_header(true);
|
|
1147
|
+
if (!content) return;
|
|
1148
|
+
return `<meta http-equiv="content-security-policy" content="${escape_html(content, true)}">`;
|
|
1149
|
+
}
|
|
1150
|
+
};
|
|
1151
|
+
var CspReportOnlyProvider = class extends BaseProvider {
|
|
1152
|
+
/**
|
|
1153
|
+
* @param {boolean} use_hashes
|
|
1154
|
+
* @param {import('types').CspDirectives} directives
|
|
1155
|
+
* @param {string} nonce
|
|
1156
|
+
*/
|
|
1157
|
+
constructor(use_hashes, directives, nonce) {
|
|
1158
|
+
super(use_hashes, directives, nonce);
|
|
1159
|
+
if (Object.values(directives).filter((v) => !!v).length > 0) {
|
|
1160
|
+
const has_report_to = directives["report-to"]?.length ?? false;
|
|
1161
|
+
const has_report_uri = directives["report-uri"]?.length ?? false;
|
|
1162
|
+
if (!has_report_to && !has_report_uri) throw Error("`content-security-policy-report-only` must be specified with either the `report-to` or `report-uri` directives, or both");
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
};
|
|
1166
|
+
var Csp = class {
|
|
1167
|
+
/** @readonly */
|
|
1168
|
+
nonce = generate_nonce();
|
|
1169
|
+
/** @type {CspProvider} */
|
|
1170
|
+
csp_provider;
|
|
1171
|
+
/** @type {CspReportOnlyProvider} */
|
|
1172
|
+
report_only_provider;
|
|
1173
|
+
/**
|
|
1174
|
+
* @param {import('./types.js').CspConfig} config
|
|
1175
|
+
* @param {import('./types.js').CspOpts} opts
|
|
1176
|
+
*/
|
|
1177
|
+
constructor({ mode, directives, reportOnly }, { prerender }) {
|
|
1178
|
+
const use_hashes = mode === "hash" || mode === "auto" && prerender;
|
|
1179
|
+
this.csp_provider = new CspProvider(use_hashes, directives, this.nonce);
|
|
1180
|
+
this.report_only_provider = new CspReportOnlyProvider(use_hashes, reportOnly, this.nonce);
|
|
1181
|
+
}
|
|
1182
|
+
get script_needs_hash() {
|
|
1183
|
+
return this.csp_provider.script_needs_hash || this.report_only_provider.script_needs_hash;
|
|
1184
|
+
}
|
|
1185
|
+
get script_needs_nonce() {
|
|
1186
|
+
return this.csp_provider.script_needs_nonce || this.report_only_provider.script_needs_nonce;
|
|
1187
|
+
}
|
|
1188
|
+
get style_needs_nonce() {
|
|
1189
|
+
return this.csp_provider.style_needs_nonce || this.report_only_provider.style_needs_nonce;
|
|
1190
|
+
}
|
|
1191
|
+
/** @param {string} content */
|
|
1192
|
+
add_script(content) {
|
|
1193
|
+
this.csp_provider.add_script(content);
|
|
1194
|
+
this.report_only_provider.add_script(content);
|
|
1195
|
+
}
|
|
1196
|
+
/** @param {`sha256-${string}`[]} hashes */
|
|
1197
|
+
add_script_hashes(hashes) {
|
|
1198
|
+
this.csp_provider.add_script_hashes(hashes);
|
|
1199
|
+
this.report_only_provider.add_script_hashes(hashes);
|
|
1200
|
+
}
|
|
1201
|
+
/** @param {string} content */
|
|
1202
|
+
add_style(content) {
|
|
1203
|
+
this.csp_provider.add_style(content);
|
|
1204
|
+
this.report_only_provider.add_style(content);
|
|
1205
|
+
}
|
|
1206
|
+
};
|
|
1207
|
+
//#endregion
|
|
1208
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/server_routing.js
|
|
1209
|
+
/** @import { SSRManifest } from '@sveltejs/kit' */
|
|
1210
|
+
/**
|
|
1211
|
+
* @param {import('types').SSRClientRoute} route
|
|
1212
|
+
* @param {URL} url
|
|
1213
|
+
* @param {NonNullable<SSRManifest['_']['client']>} client
|
|
1214
|
+
* @returns {string}
|
|
1215
|
+
*/
|
|
1216
|
+
function generate_route_object(route, url, client) {
|
|
1217
|
+
const { errors, layouts, leaf } = route;
|
|
1218
|
+
const nodes = [
|
|
1219
|
+
...errors,
|
|
1220
|
+
...layouts.map((l) => l?.[1]),
|
|
1221
|
+
leaf[1]
|
|
1222
|
+
].filter((n) => typeof n === "number").map((n) => `'${n}': () => ${create_client_import(client.nodes?.[n], url)}`).join(",\n ");
|
|
1223
|
+
/** @type {import('types').CSRRouteServer} */
|
|
1224
|
+
return [
|
|
1225
|
+
`{\n\tid: ${s(route.id)}`,
|
|
1226
|
+
`errors: ${s(route.errors)}`,
|
|
1227
|
+
`layouts: ${s(route.layouts)}`,
|
|
1228
|
+
`leaf: ${s(route.leaf)}`,
|
|
1229
|
+
`nodes: {\n\t\t${nodes}\n\t}\n}`
|
|
1230
|
+
].join(",\n ");
|
|
1231
|
+
}
|
|
1232
|
+
/**
|
|
1233
|
+
* @param {string | undefined} import_path
|
|
1234
|
+
* @param {URL} url
|
|
1235
|
+
*/
|
|
1236
|
+
function create_client_import(import_path, url) {
|
|
1237
|
+
if (!import_path) return "Promise.resolve({})";
|
|
1238
|
+
if (import_path[0] === "/") return `import('${import_path}')`;
|
|
1239
|
+
if (assets !== "") return `import('${assets}/${import_path}')`;
|
|
1240
|
+
let path = get_relative_path(url.pathname, `${base}/${import_path}`);
|
|
1241
|
+
if (path[0] !== ".") path = `./${path}`;
|
|
1242
|
+
return `import('${path}')`;
|
|
1243
|
+
}
|
|
1244
|
+
/**
|
|
1245
|
+
* @param {string} resolved_path
|
|
1246
|
+
* @param {URL} url
|
|
1247
|
+
* @param {SSRManifest} manifest
|
|
1248
|
+
* @returns {Promise<Response>}
|
|
1249
|
+
*/
|
|
1250
|
+
async function resolve_route(resolved_path, url, manifest) {
|
|
1251
|
+
if (!manifest._.client?.routes) return text("Server-side route resolution disabled", { status: 400 });
|
|
1252
|
+
const matchers = await manifest._.matchers();
|
|
1253
|
+
const result = find_route(resolved_path, manifest._.client.routes, matchers);
|
|
1254
|
+
return create_server_routing_response(result?.route ?? null, result?.params ?? {}, url, manifest._.client).response;
|
|
1255
|
+
}
|
|
1256
|
+
/**
|
|
1257
|
+
* @param {import('types').SSRClientRoute | null} route
|
|
1258
|
+
* @param {Partial<Record<string, string>>} params
|
|
1259
|
+
* @param {URL} url
|
|
1260
|
+
* @param {NonNullable<SSRManifest['_']['client']>} client
|
|
1261
|
+
* @returns {{response: Response, body: string}}
|
|
1262
|
+
*/
|
|
1263
|
+
function create_server_routing_response(route, params, url, client) {
|
|
1264
|
+
const headers = new Headers({ "content-type": "application/javascript; charset=utf-8" });
|
|
1265
|
+
if (route) {
|
|
1266
|
+
const csr_route = generate_route_object(route, url, client);
|
|
1267
|
+
const body = `${create_css_import(route, url, client)}\nexport const route = ${csr_route}; export const params = ${JSON.stringify(params)};`;
|
|
1268
|
+
return {
|
|
1269
|
+
response: text(body, { headers }),
|
|
1270
|
+
body
|
|
1271
|
+
};
|
|
1272
|
+
} else return {
|
|
1273
|
+
response: text("", { headers }),
|
|
1274
|
+
body: ""
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1277
|
+
/**
|
|
1278
|
+
* This function generates the client-side import for the CSS files that are
|
|
1279
|
+
* associated with the current route. Vite takes care of that when using
|
|
1280
|
+
* client-side route resolution, but for server-side resolution it does
|
|
1281
|
+
* not know about the CSS files automatically.
|
|
1282
|
+
*
|
|
1283
|
+
* @param {import('types').SSRClientRoute} route
|
|
1284
|
+
* @param {URL} url
|
|
1285
|
+
* @param {NonNullable<SSRManifest['_']['client']>} client
|
|
1286
|
+
* @returns {string}
|
|
1287
|
+
*/
|
|
1288
|
+
function create_css_import(route, url, client) {
|
|
1289
|
+
const { errors, layouts, leaf } = route;
|
|
1290
|
+
let css = "";
|
|
1291
|
+
for (const node of [
|
|
1292
|
+
...errors,
|
|
1293
|
+
...layouts.map((l) => l?.[1]),
|
|
1294
|
+
leaf[1]
|
|
1295
|
+
]) {
|
|
1296
|
+
if (typeof node !== "number") continue;
|
|
1297
|
+
const node_css = client.css?.[node];
|
|
1298
|
+
for (const css_path of node_css ?? []) css += `'${assets || base}/${css_path}',`;
|
|
1299
|
+
}
|
|
1300
|
+
if (!css) return "";
|
|
1301
|
+
return `${create_client_import(client.start, url)}.then(x => x.load_css([${css}]));`;
|
|
1302
|
+
}
|
|
1303
|
+
//#endregion
|
|
1304
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/remote.js
|
|
1305
|
+
/** @import { ActionResult, RemoteForm, RequestEvent, SSRManifest } from '@sveltejs/kit' */
|
|
1306
|
+
/** @import { RemoteFormInternals, RemoteFunctionData, RemoteFunctionResponse, RemoteInternals, RequestState, SSROptions } from 'types' */
|
|
1307
|
+
/** @type {typeof handle_remote_call_internal} */
|
|
1308
|
+
async function handle_remote_call(event, state, options, manifest, id) {
|
|
1309
|
+
return record_span({
|
|
1310
|
+
name: "sveltekit.remote.call",
|
|
1311
|
+
attributes: { },
|
|
1312
|
+
fn: (current) => {
|
|
1313
|
+
const traced_event = merge_tracing(event, current);
|
|
1314
|
+
return with_request_store({
|
|
1315
|
+
event: traced_event,
|
|
1316
|
+
state
|
|
1317
|
+
}, () => handle_remote_call_internal(traced_event, state, options, manifest, id));
|
|
1318
|
+
}
|
|
1319
|
+
});
|
|
1320
|
+
}
|
|
1321
|
+
/**
|
|
1322
|
+
* @param {RequestEvent} event
|
|
1323
|
+
* @param {RequestState} state
|
|
1324
|
+
* @param {SSROptions} options
|
|
1325
|
+
* @param {SSRManifest} manifest
|
|
1326
|
+
* @param {string} id
|
|
1327
|
+
*/
|
|
1328
|
+
async function handle_remote_call_internal(event, state, options, manifest, id) {
|
|
1329
|
+
const [hash, name, additional_args] = id.split("/");
|
|
1330
|
+
const remotes = manifest._.remotes;
|
|
1331
|
+
if (!remotes[hash]) error(404);
|
|
1332
|
+
const fn = (await remotes[hash]()).default[name];
|
|
1333
|
+
if (!fn) error(404);
|
|
1334
|
+
/** @type {RemoteInternals} */
|
|
1335
|
+
const internals = fn.__;
|
|
1336
|
+
const transport = options.hooks.transport;
|
|
1337
|
+
event.tracing.current.setAttributes({
|
|
1338
|
+
"sveltekit.remote.call.type": internals.type,
|
|
1339
|
+
"sveltekit.remote.call.name": internals.name
|
|
1340
|
+
});
|
|
1341
|
+
/** @type {HeadersInit | undefined} */
|
|
1342
|
+
const headers = state.prerendering ? void 0 : { "cache-control": "private, no-store" };
|
|
1343
|
+
try {
|
|
1344
|
+
/** @type {RemoteFunctionData} */
|
|
1345
|
+
const data = {};
|
|
1346
|
+
switch (internals.type) {
|
|
1347
|
+
case "query_live": {
|
|
1348
|
+
if (event.request.method !== "GET") throw new SvelteKitError(405, "Method Not Allowed", `\`query.live\` functions must be invoked via GET request, not ${event.request.method}`);
|
|
1349
|
+
const payload = new URL(event.request.url).searchParams.get("payload");
|
|
1350
|
+
const generator = internals.run(event, state, parse_remote_arg(payload, transport));
|
|
1351
|
+
const encoder = new TextEncoder();
|
|
1352
|
+
/**
|
|
1353
|
+
* @param {ReadableStreamDefaultController} controller
|
|
1354
|
+
* @param {any} payload
|
|
1355
|
+
*/
|
|
1356
|
+
function send(controller, payload) {
|
|
1357
|
+
controller.enqueue(encoder.encode("data: " + JSON.stringify(payload) + "\n\n"));
|
|
1358
|
+
}
|
|
1359
|
+
let closed = false;
|
|
1360
|
+
/** @type {string | undefined} */
|
|
1361
|
+
let result = void 0;
|
|
1362
|
+
async function cancel() {
|
|
1363
|
+
if (closed) return;
|
|
1364
|
+
closed = true;
|
|
1365
|
+
await generator.return(void 0);
|
|
1366
|
+
}
|
|
1367
|
+
event.request.signal.addEventListener("abort", cancel, { once: true });
|
|
1368
|
+
return new Response(new ReadableStream({
|
|
1369
|
+
async pull(controller) {
|
|
1370
|
+
if (event.request.signal.aborted) {
|
|
1371
|
+
await cancel();
|
|
1372
|
+
controller.close();
|
|
1373
|
+
return;
|
|
1374
|
+
}
|
|
1375
|
+
try {
|
|
1376
|
+
while (true) {
|
|
1377
|
+
const { value, done } = await generator.next();
|
|
1378
|
+
if (done) {
|
|
1379
|
+
await cancel();
|
|
1380
|
+
controller.close();
|
|
1381
|
+
return;
|
|
1382
|
+
}
|
|
1383
|
+
if (result !== (result = stringify(value, transport))) {
|
|
1384
|
+
send(controller, {
|
|
1385
|
+
type: "result",
|
|
1386
|
+
result
|
|
1387
|
+
});
|
|
1388
|
+
return;
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
} catch (error) {
|
|
1392
|
+
if (!event.request.signal.aborted) {
|
|
1393
|
+
if (error instanceof Redirect) send(controller, {
|
|
1394
|
+
type: "redirect",
|
|
1395
|
+
location: error.location
|
|
1396
|
+
});
|
|
1397
|
+
else {
|
|
1398
|
+
const status = error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500;
|
|
1399
|
+
send(controller, {
|
|
1400
|
+
type: "error",
|
|
1401
|
+
error: await handle_error_and_jsonify(event, state, options, error),
|
|
1402
|
+
status
|
|
1403
|
+
});
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
await cancel();
|
|
1407
|
+
controller.close();
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
cancel
|
|
1411
|
+
}), { headers: {
|
|
1412
|
+
"cache-control": "private, no-store",
|
|
1413
|
+
"content-type": "text/event-stream"
|
|
1414
|
+
} });
|
|
1415
|
+
}
|
|
1416
|
+
case "query_batch": {
|
|
1417
|
+
if (event.request.method !== "POST") throw new SvelteKitError(405, "Method Not Allowed", `\`query.batch\` functions must be invoked via POST request, not ${event.request.method}`);
|
|
1418
|
+
/** @type {{ payloads: string[] }} */
|
|
1419
|
+
const { payloads } = await event.request.json();
|
|
1420
|
+
const args = await Promise.all(payloads.map((payload) => parse_remote_arg(payload, transport)));
|
|
1421
|
+
data._ = await with_request_store({
|
|
1422
|
+
event,
|
|
1423
|
+
state
|
|
1424
|
+
}, () => internals.run(args, options));
|
|
1425
|
+
break;
|
|
1426
|
+
}
|
|
1427
|
+
case "form": {
|
|
1428
|
+
if (event.request.method !== "POST") throw new SvelteKitError(405, "Method Not Allowed", `\`form\` functions must be invoked via POST request, not ${event.request.method}`);
|
|
1429
|
+
if (!is_form_content_type(event.request)) throw new SvelteKitError(415, "Unsupported Media Type", `\`form\` functions expect form-encoded data — received ${event.request.headers.get("content-type")}`);
|
|
1430
|
+
const { data: input, meta, form_data } = await deserialize_binary_form(event.request);
|
|
1431
|
+
state.remote.requested = create_requested_map(meta.remote_refreshes);
|
|
1432
|
+
if (additional_args && !("id" in input)) input.id = JSON.parse(decodeURIComponent(additional_args));
|
|
1433
|
+
const fn = internals.fn;
|
|
1434
|
+
data._ = await with_request_store({
|
|
1435
|
+
event,
|
|
1436
|
+
state: {
|
|
1437
|
+
...state,
|
|
1438
|
+
is_in_remote_form_or_command: true
|
|
1439
|
+
}
|
|
1440
|
+
}, () => fn(input, meta, form_data));
|
|
1441
|
+
if (data._.issues) return json({
|
|
1442
|
+
type: "result",
|
|
1443
|
+
data: stringify(data, transport)
|
|
1444
|
+
}, { headers });
|
|
1445
|
+
break;
|
|
1446
|
+
}
|
|
1447
|
+
case "command": {
|
|
1448
|
+
/** @type {{ payload: string, refreshes?: string[] }} */
|
|
1449
|
+
const { payload, refreshes } = await event.request.json();
|
|
1450
|
+
state.remote.requested = create_requested_map(refreshes);
|
|
1451
|
+
const arg = parse_remote_arg(payload, transport);
|
|
1452
|
+
data._ = await with_request_store({
|
|
1453
|
+
event,
|
|
1454
|
+
state: {
|
|
1455
|
+
...state,
|
|
1456
|
+
is_in_remote_form_or_command: true
|
|
1457
|
+
}
|
|
1458
|
+
}, () => fn(arg));
|
|
1459
|
+
break;
|
|
1460
|
+
}
|
|
1461
|
+
case "prerender":
|
|
1462
|
+
data._ = await with_request_store({
|
|
1463
|
+
event,
|
|
1464
|
+
state
|
|
1465
|
+
}, () => fn(parse_remote_arg(additional_args, transport)));
|
|
1466
|
+
break;
|
|
1467
|
+
case "query": {
|
|
1468
|
+
const payload = new URL(event.request.url).searchParams.get("payload");
|
|
1469
|
+
data._ = await with_request_store({
|
|
1470
|
+
event,
|
|
1471
|
+
state
|
|
1472
|
+
}, () => fn(parse_remote_arg(payload, transport)));
|
|
1473
|
+
break;
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
await collect_remote_data(data, event, state, options);
|
|
1477
|
+
return json({
|
|
1478
|
+
type: "result",
|
|
1479
|
+
data: stringify(data, transport)
|
|
1480
|
+
}, { headers });
|
|
1481
|
+
} catch (error) {
|
|
1482
|
+
if (error instanceof Redirect) {
|
|
1483
|
+
const data = await collect_remote_data({ redirect: error.location }, event, state, options);
|
|
1484
|
+
return json({
|
|
1485
|
+
type: "result",
|
|
1486
|
+
data: stringify(data, transport)
|
|
1487
|
+
}, { headers });
|
|
1488
|
+
}
|
|
1489
|
+
const status = error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500;
|
|
1490
|
+
return json({
|
|
1491
|
+
type: "error",
|
|
1492
|
+
error: await handle_error_and_jsonify(event, state, options, error),
|
|
1493
|
+
status
|
|
1494
|
+
}, {
|
|
1495
|
+
status: state.prerendering ? status : void 0,
|
|
1496
|
+
headers: { "cache-control": "private, no-store" }
|
|
1497
|
+
});
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1500
|
+
/**
|
|
1501
|
+
* Collects all the query/prerender data that was retrieved
|
|
1502
|
+
* during the request and adds it to `data`
|
|
1503
|
+
* @param {RemoteFunctionData} data
|
|
1504
|
+
* @param {RequestEvent} event
|
|
1505
|
+
* @param {RequestState} state
|
|
1506
|
+
* @param {SSROptions} options
|
|
1507
|
+
*/
|
|
1508
|
+
async function collect_remote_data(data, event, state, options) {
|
|
1509
|
+
/**
|
|
1510
|
+
*
|
|
1511
|
+
* @param {unknown} error
|
|
1512
|
+
* @returns {Promise<[status: number, error: App.Error]>}
|
|
1513
|
+
*/
|
|
1514
|
+
async function convert_error(error) {
|
|
1515
|
+
return [error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500, await handle_error_and_jsonify(event, state, options, error)];
|
|
1516
|
+
}
|
|
1517
|
+
/** @type {Promise<any>[]} */
|
|
1518
|
+
const promises = [];
|
|
1519
|
+
if (state.remote.explicit) for (const [remote_key, { internals, promise }] of state.remote.explicit) {
|
|
1520
|
+
data.r = true;
|
|
1521
|
+
const type = internals.type === "query_live" ? "l" : internals.type[0];
|
|
1522
|
+
await promise.then((v) => {
|
|
1523
|
+
((data[type] ??= {})[remote_key] ??= {}).v = v;
|
|
1524
|
+
}, async (e) => {
|
|
1525
|
+
if (e instanceof Redirect) return;
|
|
1526
|
+
((data[type] ??= {})[remote_key] ??= {}).e = await convert_error(e);
|
|
1527
|
+
});
|
|
1528
|
+
}
|
|
1529
|
+
await Promise.all(promises);
|
|
1530
|
+
if (state.remote.implicit) for (const [internals, record] of state.remote.implicit) {
|
|
1531
|
+
if (!internals.id) continue;
|
|
1532
|
+
for (const key in record) {
|
|
1533
|
+
const remote_key = internals.type === "form" ? key : create_remote_key(internals.id, key);
|
|
1534
|
+
const type = internals.type === "query_live" ? "l" : internals.type[0];
|
|
1535
|
+
const promise = state.remote.data?.get(internals)?.[key] ?? record[key]();
|
|
1536
|
+
let resolved = true;
|
|
1537
|
+
await Promise.race([Promise.resolve(promise).then((v) => {
|
|
1538
|
+
if (resolved) ((data[type] ??= {})[remote_key] ??= {}).v = v;
|
|
1539
|
+
}, (e) => {
|
|
1540
|
+
if (e instanceof Redirect) return;
|
|
1541
|
+
if (resolved) promises.push(convert_error(e).then((e) => {
|
|
1542
|
+
((data[type] ??= {})[remote_key] ??= {}).e = e;
|
|
1543
|
+
}));
|
|
1544
|
+
}), Promise.resolve().then(() => resolved = false)]);
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
await Promise.all(promises);
|
|
1548
|
+
return data;
|
|
1549
|
+
}
|
|
1550
|
+
/**
|
|
1551
|
+
* @param {string[] | undefined} refreshes
|
|
1552
|
+
*/
|
|
1553
|
+
function create_requested_map(refreshes) {
|
|
1554
|
+
/** @type {Map<string, string[]>} */
|
|
1555
|
+
const requested = /* @__PURE__ */ new Map();
|
|
1556
|
+
for (const key of refreshes ?? []) {
|
|
1557
|
+
const parts = split_remote_key(key);
|
|
1558
|
+
const existing = requested.get(parts.id);
|
|
1559
|
+
if (existing) existing.push(parts.payload);
|
|
1560
|
+
else requested.set(parts.id, [parts.payload]);
|
|
1561
|
+
}
|
|
1562
|
+
return requested;
|
|
1563
|
+
}
|
|
1564
|
+
/** @type {typeof handle_remote_form_post_internal} */
|
|
1565
|
+
async function handle_remote_form_post(event, state, manifest, id) {
|
|
1566
|
+
return record_span({
|
|
1567
|
+
name: "sveltekit.remote.form.post",
|
|
1568
|
+
attributes: { },
|
|
1569
|
+
fn: (current) => {
|
|
1570
|
+
const traced_event = merge_tracing(event, current);
|
|
1571
|
+
return with_request_store({
|
|
1572
|
+
event: traced_event,
|
|
1573
|
+
state
|
|
1574
|
+
}, () => handle_remote_form_post_internal(traced_event, state, manifest, id));
|
|
1575
|
+
}
|
|
1576
|
+
});
|
|
1577
|
+
}
|
|
1578
|
+
/**
|
|
1579
|
+
* @param {RequestEvent} event
|
|
1580
|
+
* @param {RequestState} state
|
|
1581
|
+
* @param {SSRManifest} manifest
|
|
1582
|
+
* @param {string} id
|
|
1583
|
+
* @returns {Promise<ActionResult>}
|
|
1584
|
+
*/
|
|
1585
|
+
async function handle_remote_form_post_internal(event, state, manifest, id) {
|
|
1586
|
+
const [hash, name, ...rest] = id.split("/");
|
|
1587
|
+
const action_id = rest.join("/");
|
|
1588
|
+
let form = (await manifest._.remotes[hash]?.())?.default[name];
|
|
1589
|
+
if (!form) {
|
|
1590
|
+
event.setHeaders({ allow: "GET" });
|
|
1591
|
+
return {
|
|
1592
|
+
type: "error",
|
|
1593
|
+
error: new SvelteKitError(405, "Method Not Allowed", `POST method not allowed. No form actions exist for this page`)
|
|
1594
|
+
};
|
|
1595
|
+
}
|
|
1596
|
+
if (action_id) form = with_request_store({
|
|
1597
|
+
event,
|
|
1598
|
+
state
|
|
1599
|
+
}, () => form.for(JSON.parse(action_id)));
|
|
1600
|
+
try {
|
|
1601
|
+
const fn = form.__.fn;
|
|
1602
|
+
const { data, meta, form_data } = await deserialize_binary_form(event.request);
|
|
1603
|
+
if (action_id && !("id" in data)) data.id = JSON.parse(decodeURIComponent(action_id));
|
|
1604
|
+
await with_request_store({
|
|
1605
|
+
event,
|
|
1606
|
+
state: {
|
|
1607
|
+
...state,
|
|
1608
|
+
is_in_remote_form_or_command: true
|
|
1609
|
+
}
|
|
1610
|
+
}, () => fn(data, meta, form_data));
|
|
1611
|
+
return {
|
|
1612
|
+
type: "success",
|
|
1613
|
+
status: 200
|
|
1614
|
+
};
|
|
1615
|
+
} catch (e) {
|
|
1616
|
+
const err = normalize_error(e);
|
|
1617
|
+
if (err instanceof Redirect) return {
|
|
1618
|
+
type: "redirect",
|
|
1619
|
+
status: err.status,
|
|
1620
|
+
location: err.location
|
|
1621
|
+
};
|
|
1622
|
+
return {
|
|
1623
|
+
type: "error",
|
|
1624
|
+
error: check_incorrect_fail_use(err)
|
|
1625
|
+
};
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
/**
|
|
1629
|
+
* @param {URL} url
|
|
1630
|
+
*/
|
|
1631
|
+
function get_remote_id(url) {
|
|
1632
|
+
return url.pathname.startsWith(`${base}/_app/remote/`) && url.pathname.replace(`${base}/_app/remote/`, "");
|
|
1633
|
+
}
|
|
1634
|
+
/**
|
|
1635
|
+
* @param {URL} url
|
|
1636
|
+
*/
|
|
1637
|
+
function get_remote_action(url) {
|
|
1638
|
+
return url.searchParams.get("/remote");
|
|
1639
|
+
}
|
|
1640
|
+
//#endregion
|
|
1641
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/render.js
|
|
1642
|
+
var updated = {
|
|
1643
|
+
...readable(false),
|
|
1644
|
+
check: () => false
|
|
1645
|
+
};
|
|
1646
|
+
/**
|
|
1647
|
+
* Creates the HTML response.
|
|
1648
|
+
* @param {{
|
|
1649
|
+
* branch: Array<import('./types.js').Loaded>;
|
|
1650
|
+
* fetched: Array<import('./types.js').Fetched>;
|
|
1651
|
+
* options: import('types').SSROptions;
|
|
1652
|
+
* manifest: import('@sveltejs/kit').SSRManifest;
|
|
1653
|
+
* state: import('types').SSRState;
|
|
1654
|
+
* page_config: { ssr: boolean; csr: boolean };
|
|
1655
|
+
* status: number;
|
|
1656
|
+
* error: App.Error | null;
|
|
1657
|
+
* event: import('@sveltejs/kit').RequestEvent;
|
|
1658
|
+
* event_state: import('types').RequestState;
|
|
1659
|
+
* resolve_opts: import('types').RequiredResolveOptions;
|
|
1660
|
+
* action_result?: import('@sveltejs/kit').ActionResult;
|
|
1661
|
+
* data_serializer: import('./types.js').ServerDataSerializer;
|
|
1662
|
+
* error_components?: Array<import('types').SSRComponent | undefined>
|
|
1663
|
+
* }} opts
|
|
1664
|
+
*/
|
|
1665
|
+
async function render_response({ branch, fetched, options, manifest, state, page_config, status, error = null, event, event_state, resolve_opts, action_result, data_serializer, error_components }) {
|
|
1666
|
+
if (state.prerendering) {
|
|
1667
|
+
if (options.csp.mode === "nonce") throw new Error("Cannot use prerendering if config.kit.csp.mode === \"nonce\"");
|
|
1668
|
+
if (options.app_template_contains_nonce) throw new Error("Cannot use prerendering if page template contains %sveltekit.nonce%");
|
|
1669
|
+
}
|
|
1670
|
+
const { client } = manifest._;
|
|
1671
|
+
const modulepreloads = new Set(client?.imports);
|
|
1672
|
+
const stylesheets = new Set(client?.stylesheets);
|
|
1673
|
+
const fonts = new Set(client?.fonts);
|
|
1674
|
+
/**
|
|
1675
|
+
* The value of the Link header that is added to the response when not prerendering
|
|
1676
|
+
* @type {Set<string>}
|
|
1677
|
+
*/
|
|
1678
|
+
const link_headers = /* @__PURE__ */ new Set();
|
|
1679
|
+
/** @type {Map<string, string>} */
|
|
1680
|
+
const inline_styles = /* @__PURE__ */ new Map();
|
|
1681
|
+
/** @type {ReturnType<typeof options.root.render>} */
|
|
1682
|
+
let rendered;
|
|
1683
|
+
const form_value = action_result?.type === "success" || action_result?.type === "failure" ? action_result.data ?? null : null;
|
|
1684
|
+
/** @type {string} */
|
|
1685
|
+
let base$1 = base;
|
|
1686
|
+
/** @type {string} */
|
|
1687
|
+
let assets$1 = assets;
|
|
1688
|
+
/**
|
|
1689
|
+
* An expression that will evaluate in the client to determine the resolved base path.
|
|
1690
|
+
* We use a relative path when possible to support IPFS, the internet archive, etc.
|
|
1691
|
+
*/
|
|
1692
|
+
let base_expression = s(base);
|
|
1693
|
+
const csp = new Csp(options.csp, { prerender: !!state.prerendering });
|
|
1694
|
+
if (!state.prerendering?.fallback) {
|
|
1695
|
+
base$1 = (event.isDataRequest ? add_data_suffix(event.url.pathname) : event.url.pathname).slice(base.length).split("/").slice(2).map(() => "..").join("/") || ".";
|
|
1696
|
+
base_expression = `new URL(${s(base$1)}, location).pathname.slice(0, -1)`;
|
|
1697
|
+
if (!assets || assets[0] === "/" && assets !== "/_svelte_kit_assets") assets$1 = base$1;
|
|
1698
|
+
} else if (options.hash_routing) base_expression = "new URL('.', location).pathname.slice(0, -1)";
|
|
1699
|
+
if (page_config.ssr) {
|
|
1700
|
+
/** @type {Record<string, any>} */
|
|
1701
|
+
const props = {
|
|
1702
|
+
stores: {
|
|
1703
|
+
page: writable(null),
|
|
1704
|
+
navigating: writable(null),
|
|
1705
|
+
updated
|
|
1706
|
+
},
|
|
1707
|
+
constructors: await Promise.all(branch.map(({ node }) => {
|
|
1708
|
+
if (!node.component) throw new Error(`Missing +page.svelte component for route ${event.route.id}`);
|
|
1709
|
+
return node.component();
|
|
1710
|
+
})),
|
|
1711
|
+
form: form_value
|
|
1712
|
+
};
|
|
1713
|
+
if (error_components) {
|
|
1714
|
+
if (error) props.error = error;
|
|
1715
|
+
props.errors = error_components;
|
|
1716
|
+
}
|
|
1717
|
+
let data = {};
|
|
1718
|
+
for (let i = 0; i < branch.length; i += 1) {
|
|
1719
|
+
data = {
|
|
1720
|
+
...data,
|
|
1721
|
+
...branch[i].data
|
|
1722
|
+
};
|
|
1723
|
+
props[`data_${i}`] = data;
|
|
1724
|
+
}
|
|
1725
|
+
props.page = {
|
|
1726
|
+
error,
|
|
1727
|
+
params: event.params,
|
|
1728
|
+
route: event.route,
|
|
1729
|
+
status,
|
|
1730
|
+
url: event.url,
|
|
1731
|
+
data,
|
|
1732
|
+
form: form_value,
|
|
1733
|
+
state: {}
|
|
1734
|
+
};
|
|
1735
|
+
const render_opts = {
|
|
1736
|
+
context: /* @__PURE__ */ new Map([["__request__", { page: props.page }]]),
|
|
1737
|
+
csp: csp.script_needs_nonce ? { nonce: csp.nonce } : { hash: csp.script_needs_hash },
|
|
1738
|
+
transformError: error_components ? async (e) => {
|
|
1739
|
+
if (isRedirect(e)) throw e;
|
|
1740
|
+
const transformed = await handle_error_and_jsonify(event, event_state, options, e);
|
|
1741
|
+
props.page.error = props.error = error = transformed;
|
|
1742
|
+
props.page.status = status = get_status(e);
|
|
1743
|
+
return transformed;
|
|
1744
|
+
} : void 0
|
|
1745
|
+
};
|
|
1746
|
+
try {
|
|
1747
|
+
const state = {
|
|
1748
|
+
...event_state,
|
|
1749
|
+
is_in_render: true
|
|
1750
|
+
};
|
|
1751
|
+
rendered = await with_request_store({
|
|
1752
|
+
event,
|
|
1753
|
+
state
|
|
1754
|
+
}, async () => {
|
|
1755
|
+
override({
|
|
1756
|
+
base: base$1,
|
|
1757
|
+
assets: assets$1
|
|
1758
|
+
});
|
|
1759
|
+
const maybe_promise = options.root.render(props, render_opts);
|
|
1760
|
+
const rendered = options.async && "then" in maybe_promise ? maybe_promise.then((r) => r) : maybe_promise;
|
|
1761
|
+
if (options.async) reset();
|
|
1762
|
+
const { head, html, css, hashes } = options.async ? await rendered : rendered;
|
|
1763
|
+
if (hashes) csp.add_script_hashes(hashes.script);
|
|
1764
|
+
return {
|
|
1765
|
+
head,
|
|
1766
|
+
html,
|
|
1767
|
+
css,
|
|
1768
|
+
hashes
|
|
1769
|
+
};
|
|
1770
|
+
});
|
|
1771
|
+
} finally {
|
|
1772
|
+
reset();
|
|
1773
|
+
}
|
|
1774
|
+
} else rendered = {
|
|
1775
|
+
head: "",
|
|
1776
|
+
html: "",
|
|
1777
|
+
css: {
|
|
1778
|
+
code: "",
|
|
1779
|
+
map: null
|
|
1780
|
+
},
|
|
1781
|
+
hashes: { script: [] }
|
|
1782
|
+
};
|
|
1783
|
+
for (const { node } of branch) {
|
|
1784
|
+
for (const url of node.imports) modulepreloads.add(url);
|
|
1785
|
+
for (const url of node.stylesheets) stylesheets.add(url);
|
|
1786
|
+
for (const url of node.fonts) fonts.add(url);
|
|
1787
|
+
if (node.inline_styles && !client?.inline) Object.entries(await node.inline_styles()).forEach(([filename, css]) => {
|
|
1788
|
+
if (typeof css === "string") {
|
|
1789
|
+
inline_styles.set(filename, css);
|
|
1790
|
+
return;
|
|
1791
|
+
}
|
|
1792
|
+
inline_styles.set(filename, css(`${assets$1}/${app_dir}/immutable/assets`, assets$1));
|
|
1793
|
+
});
|
|
1794
|
+
}
|
|
1795
|
+
const head = new Head(rendered.head, !!state.prerendering);
|
|
1796
|
+
let body = rendered.html;
|
|
1797
|
+
/** @param {string} path */
|
|
1798
|
+
const prefixed = (path) => {
|
|
1799
|
+
if (path.startsWith("/")) return base + path;
|
|
1800
|
+
return `${assets$1}/${path}`;
|
|
1801
|
+
};
|
|
1802
|
+
const style = client?.inline ? client.inline?.style : Array.from(inline_styles.values()).join("\n");
|
|
1803
|
+
if (style) {
|
|
1804
|
+
const attributes = [];
|
|
1805
|
+
if (csp.style_needs_nonce) attributes.push(`nonce="${csp.nonce}"`);
|
|
1806
|
+
csp.add_style(style);
|
|
1807
|
+
head.add_style(style, attributes);
|
|
1808
|
+
}
|
|
1809
|
+
for (const dep of stylesheets) {
|
|
1810
|
+
const path = prefixed(dep);
|
|
1811
|
+
const attributes = ["rel=\"stylesheet\""];
|
|
1812
|
+
if (inline_styles.has(dep)) attributes.push("disabled", "media=\"(max-width: 0)\"");
|
|
1813
|
+
else if (resolve_opts.preload({
|
|
1814
|
+
type: "css",
|
|
1815
|
+
path
|
|
1816
|
+
})) link_headers.add(`<${encodeURI(path)}>; rel="preload"; as="style"; nopush`);
|
|
1817
|
+
head.add_stylesheet(path, attributes);
|
|
1818
|
+
}
|
|
1819
|
+
for (const dep of fonts) {
|
|
1820
|
+
const path = prefixed(dep);
|
|
1821
|
+
if (resolve_opts.preload({
|
|
1822
|
+
type: "font",
|
|
1823
|
+
path
|
|
1824
|
+
})) {
|
|
1825
|
+
const ext = dep.slice(dep.lastIndexOf(".") + 1);
|
|
1826
|
+
head.add_link_tag(path, [
|
|
1827
|
+
"rel=\"preload\"",
|
|
1828
|
+
"as=\"font\"",
|
|
1829
|
+
`type="font/${ext}"`,
|
|
1830
|
+
"crossorigin"
|
|
1831
|
+
]);
|
|
1832
|
+
link_headers.add(`<${encodeURI(path)}>; rel="preload"; as="font"; type="font/${ext}"; crossorigin; nopush`);
|
|
1833
|
+
}
|
|
1834
|
+
}
|
|
1835
|
+
const global = get_global_name(options);
|
|
1836
|
+
const { data, chunks } = data_serializer.get_data(csp);
|
|
1837
|
+
if (page_config.ssr && page_config.csr) body += `\n\t\t\t${fetched.map((item) => serialize_data(item, resolve_opts.filterSerializedResponseHeaders, !!state.prerendering)).join("\n ")}`;
|
|
1838
|
+
if (page_config.csr && client) {
|
|
1839
|
+
const route = client.routes?.find((r) => r.id === event.route.id) ?? null;
|
|
1840
|
+
const load_env_eagerly = client.uses_env_dynamic_public && !!state.prerendering;
|
|
1841
|
+
if (load_env_eagerly) modulepreloads.add(`${app_dir}/env.js`);
|
|
1842
|
+
if (!client.inline) {
|
|
1843
|
+
const included_modulepreloads = Array.from(modulepreloads, (dep) => prefixed(dep)).filter((path) => resolve_opts.preload({
|
|
1844
|
+
type: "js",
|
|
1845
|
+
path
|
|
1846
|
+
}));
|
|
1847
|
+
for (const path of included_modulepreloads) {
|
|
1848
|
+
link_headers.add(`<${encodeURI(path)}>; rel="modulepreload"; nopush`);
|
|
1849
|
+
if (options.preload_strategy !== "modulepreload") head.add_script_preload(path);
|
|
1850
|
+
else head.add_link_tag(path, ["rel=\"modulepreload\""]);
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
if (client.routes && state.prerendering && !state.prerendering.fallback) {
|
|
1854
|
+
const pathname = add_resolution_suffix(event.url.pathname);
|
|
1855
|
+
state.prerendering.dependencies.set(pathname, create_server_routing_response(route, event.params, new URL(pathname, event.url), client));
|
|
1856
|
+
}
|
|
1857
|
+
const blocks = [];
|
|
1858
|
+
const properties = [`base: ${base_expression}`];
|
|
1859
|
+
if (assets) properties.push(`assets: ${s(assets)}`);
|
|
1860
|
+
if (client.uses_env_dynamic_public) properties.push(`env: ${load_env_eagerly ? "null" : s(public_env)}`);
|
|
1861
|
+
if (chunks) {
|
|
1862
|
+
blocks.push("const deferred = new Map();");
|
|
1863
|
+
properties.push(`defer: (id) => new Promise((fulfil, reject) => {
|
|
1864
|
+
deferred.set(id, { fulfil, reject });
|
|
1865
|
+
})`);
|
|
1866
|
+
let app_declaration = "";
|
|
1867
|
+
if (Object.keys(options.hooks.transport).length > 0) {
|
|
1868
|
+
if (client.inline) app_declaration = `const app = ${global}.app.app;`;
|
|
1869
|
+
else if (client.app) app_declaration = `const app = await import(${s(prefixed(client.app))});`;
|
|
1870
|
+
else app_declaration = `const { app } = await import(${s(prefixed(client.start))});`;
|
|
1871
|
+
}
|
|
1872
|
+
const prelude = app_declaration ? `${app_declaration}
|
|
1873
|
+
const [data, error] = fn(app);` : `const [data, error] = fn();`;
|
|
1874
|
+
properties.push(`resolve: async (id, fn) => {
|
|
1875
|
+
${prelude}
|
|
1876
|
+
|
|
1877
|
+
const try_to_resolve = () => {
|
|
1878
|
+
if (!deferred.has(id)) {
|
|
1879
|
+
setTimeout(try_to_resolve, 0);
|
|
1880
|
+
return;
|
|
1881
|
+
}
|
|
1882
|
+
const { fulfil, reject } = deferred.get(id);
|
|
1883
|
+
deferred.delete(id);
|
|
1884
|
+
if (error) reject(error);
|
|
1885
|
+
else fulfil(data);
|
|
1886
|
+
}
|
|
1887
|
+
try_to_resolve();
|
|
1888
|
+
}`);
|
|
1889
|
+
}
|
|
1890
|
+
blocks.push(`${global} = {
|
|
1891
|
+
${properties.join(",\n ")}
|
|
1892
|
+
};`);
|
|
1893
|
+
const args = ["element"];
|
|
1894
|
+
blocks.push("const element = document.currentScript.parentElement;");
|
|
1895
|
+
if (page_config.ssr) {
|
|
1896
|
+
const serialized = {
|
|
1897
|
+
form: "null",
|
|
1898
|
+
error: "null"
|
|
1899
|
+
};
|
|
1900
|
+
if (form_value) serialized.form = uneval_action_response(form_value, event.route.id, options.hooks.transport);
|
|
1901
|
+
if (error) serialized.error = uneval(error);
|
|
1902
|
+
const hydrate = [
|
|
1903
|
+
`node_ids: [${branch.map(({ node }) => node.index).join(", ")}]`,
|
|
1904
|
+
`data: ${data}`,
|
|
1905
|
+
`form: ${serialized.form}`,
|
|
1906
|
+
`error: ${serialized.error}`
|
|
1907
|
+
];
|
|
1908
|
+
if (status !== 200) hydrate.push(`status: ${status}`);
|
|
1909
|
+
if (client.routes) {
|
|
1910
|
+
if (route) {
|
|
1911
|
+
const stringified = generate_route_object(route, event.url, client).replaceAll("\n", "\n ");
|
|
1912
|
+
hydrate.push(`params: ${uneval(event.params)}`, `server_route: ${stringified}`);
|
|
1913
|
+
}
|
|
1914
|
+
} else if (options.embedded) hydrate.push(`params: ${uneval(event.params)}`, `route: ${s(event.route)}`);
|
|
1915
|
+
const indent = " ".repeat(load_env_eagerly ? 7 : 6);
|
|
1916
|
+
args.push(`{\n${indent}\t${hydrate.join(`,\n${indent}\t`)}\n${indent}}`);
|
|
1917
|
+
}
|
|
1918
|
+
const remote_data = await collect_remote_data({}, event, event_state, options);
|
|
1919
|
+
const serialized_data = Object.keys(remote_data).length > 0 ? `${global}.data = ${uneval(remote_data, create_replacer(options.hooks.transport))};\n\n\t\t\t\t\t\t` : "";
|
|
1920
|
+
const boot = client.inline ? `${client.inline.script}
|
|
1921
|
+
|
|
1922
|
+
${serialized_data}${global}.app.start(${args.join(", ")});` : client.app ? `Promise.all([
|
|
1923
|
+
import(${s(prefixed(client.start))}),
|
|
1924
|
+
import(${s(prefixed(client.app))})
|
|
1925
|
+
]).then(([kit, app]) => {
|
|
1926
|
+
${serialized_data}kit.start(app, ${args.join(", ")});
|
|
1927
|
+
});` : `import(${s(prefixed(client.start))}).then((app) => {
|
|
1928
|
+
${serialized_data}app.start(${args.join(", ")})
|
|
1929
|
+
});`;
|
|
1930
|
+
if (load_env_eagerly) blocks.push(`import(${s(`${base$1}/${app_dir}/env.js`)}).then(({ env }) => {
|
|
1931
|
+
${global}.env = env;
|
|
1932
|
+
|
|
1933
|
+
${boot.replace(/\n/g, "\n ")}
|
|
1934
|
+
});`);
|
|
1935
|
+
else blocks.push(boot);
|
|
1936
|
+
if (options.service_worker) {
|
|
1937
|
+
let opts = "";
|
|
1938
|
+
if (options.service_worker_options != null) opts = `, ${s({ ...options.service_worker_options })}`;
|
|
1939
|
+
blocks.push(`if ('serviceWorker' in navigator) {
|
|
1940
|
+
const script_url = '${prefixed("service-worker.js")}';
|
|
1941
|
+
const policy = globalThis?.window?.trustedTypes?.createPolicy(
|
|
1942
|
+
'sveltekit-trusted-url',
|
|
1943
|
+
{ createScriptURL(url) { return url; } }
|
|
1944
|
+
);
|
|
1945
|
+
const sanitised = policy?.createScriptURL(script_url) ?? script_url;
|
|
1946
|
+
addEventListener('load', function () {
|
|
1947
|
+
navigator.serviceWorker.register(sanitised${opts});
|
|
1948
|
+
});
|
|
1949
|
+
}`);
|
|
1950
|
+
}
|
|
1951
|
+
const init_app = `
|
|
1952
|
+
{
|
|
1953
|
+
${blocks.join("\n\n ")}
|
|
1954
|
+
}
|
|
1955
|
+
`;
|
|
1956
|
+
csp.add_script(init_app);
|
|
1957
|
+
body += `\n\t\t\t<script${csp.script_needs_nonce ? ` nonce="${csp.nonce}"` : ""}>${init_app}<\/script>\n\t\t`;
|
|
1958
|
+
}
|
|
1959
|
+
const headers = new Headers({
|
|
1960
|
+
"x-sveltekit-page": "true",
|
|
1961
|
+
"content-type": "text/html"
|
|
1962
|
+
});
|
|
1963
|
+
if (state.prerendering) {
|
|
1964
|
+
const csp_headers = csp.csp_provider.get_meta();
|
|
1965
|
+
if (csp_headers) head.add_http_equiv(csp_headers);
|
|
1966
|
+
if (state.prerendering.cache) head.add_http_equiv(`<meta http-equiv="cache-control" content="${state.prerendering.cache}">`);
|
|
1967
|
+
} else {
|
|
1968
|
+
const csp_header = csp.csp_provider.get_header();
|
|
1969
|
+
if (csp_header) headers.set("content-security-policy", csp_header);
|
|
1970
|
+
const report_only_header = csp.report_only_provider.get_header();
|
|
1971
|
+
if (report_only_header) headers.set("content-security-policy-report-only", report_only_header);
|
|
1972
|
+
if (link_headers.size) headers.set("link", Array.from(link_headers).join(", "));
|
|
1973
|
+
}
|
|
1974
|
+
const html = options.templates.app({
|
|
1975
|
+
head: head.build(),
|
|
1976
|
+
body,
|
|
1977
|
+
assets: assets$1,
|
|
1978
|
+
nonce: csp.nonce,
|
|
1979
|
+
env: public_env
|
|
1980
|
+
});
|
|
1981
|
+
const transformed = await resolve_opts.transformPageChunk({
|
|
1982
|
+
html,
|
|
1983
|
+
done: true
|
|
1984
|
+
}) || "";
|
|
1985
|
+
if (!chunks) headers.set("etag", `"${hash(transformed)}"`);
|
|
1986
|
+
return !chunks ? text(transformed, {
|
|
1987
|
+
status,
|
|
1988
|
+
headers
|
|
1989
|
+
}) : new Response(new ReadableStream({
|
|
1990
|
+
async start(controller) {
|
|
1991
|
+
controller.enqueue(text_encoder.encode(transformed + "\n"));
|
|
1992
|
+
for await (const chunk of chunks) if (chunk.length) controller.enqueue(text_encoder.encode(chunk));
|
|
1993
|
+
controller.close();
|
|
1994
|
+
},
|
|
1995
|
+
type: "bytes"
|
|
1996
|
+
}), { headers });
|
|
1997
|
+
}
|
|
1998
|
+
var Head = class {
|
|
1999
|
+
#rendered;
|
|
2000
|
+
#prerendering;
|
|
2001
|
+
/** @type {string[]} */
|
|
2002
|
+
#http_equiv = [];
|
|
2003
|
+
/** @type {string[]} */
|
|
2004
|
+
#link_tags = [];
|
|
2005
|
+
/** @type {string[]} */
|
|
2006
|
+
#script_preloads = [];
|
|
2007
|
+
/** @type {string[]} */
|
|
2008
|
+
#style_tags = [];
|
|
2009
|
+
/** @type {string[]} */
|
|
2010
|
+
#stylesheet_links = [];
|
|
2011
|
+
/**
|
|
2012
|
+
* @param {string} rendered
|
|
2013
|
+
* @param {boolean} prerendering
|
|
2014
|
+
*/
|
|
2015
|
+
constructor(rendered, prerendering) {
|
|
2016
|
+
this.#rendered = rendered;
|
|
2017
|
+
this.#prerendering = prerendering;
|
|
2018
|
+
}
|
|
2019
|
+
build() {
|
|
2020
|
+
return [
|
|
2021
|
+
...this.#http_equiv,
|
|
2022
|
+
...this.#link_tags,
|
|
2023
|
+
...this.#script_preloads,
|
|
2024
|
+
this.#rendered,
|
|
2025
|
+
...this.#style_tags,
|
|
2026
|
+
...this.#stylesheet_links
|
|
2027
|
+
].join("\n ");
|
|
2028
|
+
}
|
|
2029
|
+
/**
|
|
2030
|
+
* @param {string} style
|
|
2031
|
+
* @param {string[]} attributes
|
|
2032
|
+
*/
|
|
2033
|
+
add_style(style, attributes) {
|
|
2034
|
+
this.#style_tags.push(`<style${attributes.length ? " " + attributes.join(" ") : ""}>${style}</style>`);
|
|
2035
|
+
}
|
|
2036
|
+
/**
|
|
2037
|
+
* @param {string} href
|
|
2038
|
+
* @param {string[]} attributes
|
|
2039
|
+
*/
|
|
2040
|
+
add_stylesheet(href, attributes) {
|
|
2041
|
+
this.#stylesheet_links.push(`<link href="${href}" ${attributes.join(" ")}>`);
|
|
2042
|
+
}
|
|
2043
|
+
/** @param {string} href */
|
|
2044
|
+
add_script_preload(href) {
|
|
2045
|
+
this.#script_preloads.push(`<link rel="preload" as="script" crossorigin="anonymous" href="${href}">`);
|
|
2046
|
+
}
|
|
2047
|
+
/**
|
|
2048
|
+
* @param {string} href
|
|
2049
|
+
* @param {string[]} attributes
|
|
2050
|
+
*/
|
|
2051
|
+
add_link_tag(href, attributes) {
|
|
2052
|
+
if (!this.#prerendering) return;
|
|
2053
|
+
this.#link_tags.push(`<link href="${href}" ${attributes.join(" ")}>`);
|
|
2054
|
+
}
|
|
2055
|
+
/** @param {string} tag */
|
|
2056
|
+
add_http_equiv(tag) {
|
|
2057
|
+
if (!this.#prerendering) return;
|
|
2058
|
+
this.#http_equiv.push(tag);
|
|
2059
|
+
}
|
|
2060
|
+
};
|
|
2061
|
+
//#endregion
|
|
2062
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/utils/page_nodes.js
|
|
2063
|
+
var PageNodes = class {
|
|
2064
|
+
/** All layout nodes and the page node, if any */
|
|
2065
|
+
data;
|
|
2066
|
+
/**
|
|
2067
|
+
* @param {Array<import('types').SSRNode | undefined>} nodes
|
|
2068
|
+
*/
|
|
2069
|
+
constructor(nodes) {
|
|
2070
|
+
this.data = nodes;
|
|
2071
|
+
}
|
|
2072
|
+
layouts() {
|
|
2073
|
+
return this.data.slice(0, -1);
|
|
2074
|
+
}
|
|
2075
|
+
page() {
|
|
2076
|
+
return this.data.at(-1);
|
|
2077
|
+
}
|
|
2078
|
+
validate() {
|
|
2079
|
+
for (const layout of this.layouts()) if (layout) {
|
|
2080
|
+
validate_layout_server_exports(layout.server, layout.server_id);
|
|
2081
|
+
validate_layout_exports(layout.universal, layout.universal_id);
|
|
2082
|
+
}
|
|
2083
|
+
const page = this.page();
|
|
2084
|
+
if (page) {
|
|
2085
|
+
validate_page_server_exports(page.server, page.server_id);
|
|
2086
|
+
validate_page_exports(page.universal, page.universal_id);
|
|
2087
|
+
}
|
|
2088
|
+
}
|
|
2089
|
+
/**
|
|
2090
|
+
* @template {'prerender' | 'ssr' | 'csr' | 'trailingSlash'} Option
|
|
2091
|
+
* @param {Option} option
|
|
2092
|
+
* @returns {Value | undefined}
|
|
2093
|
+
*/
|
|
2094
|
+
#get_option(option) {
|
|
2095
|
+
/** @typedef {(import('types').UniversalNode | import('types').ServerNode)[Option]} Value */
|
|
2096
|
+
return this.data.reduce((value, node) => {
|
|
2097
|
+
return node?.universal?.[option] ?? node?.server?.[option] ?? value;
|
|
2098
|
+
}, void 0);
|
|
2099
|
+
}
|
|
2100
|
+
csr() {
|
|
2101
|
+
return this.#get_option("csr") ?? true;
|
|
2102
|
+
}
|
|
2103
|
+
ssr() {
|
|
2104
|
+
return this.#get_option("ssr") ?? true;
|
|
2105
|
+
}
|
|
2106
|
+
prerender() {
|
|
2107
|
+
return this.#get_option("prerender") ?? false;
|
|
2108
|
+
}
|
|
2109
|
+
trailing_slash() {
|
|
2110
|
+
return this.#get_option("trailingSlash") ?? "never";
|
|
2111
|
+
}
|
|
2112
|
+
get_config() {
|
|
2113
|
+
/** @type {any} */
|
|
2114
|
+
let current = {};
|
|
2115
|
+
for (const node of this.data) {
|
|
2116
|
+
if (!node?.universal?.config && !node?.server?.config) continue;
|
|
2117
|
+
current = {
|
|
2118
|
+
...current,
|
|
2119
|
+
...node?.universal?.config,
|
|
2120
|
+
...node?.server?.config
|
|
2121
|
+
};
|
|
2122
|
+
}
|
|
2123
|
+
return Object.keys(current).length ? current : void 0;
|
|
2124
|
+
}
|
|
2125
|
+
should_prerender_data() {
|
|
2126
|
+
return this.data.some((node) => node?.server?.load || node?.server?.trailingSlash !== void 0);
|
|
2127
|
+
}
|
|
2128
|
+
};
|
|
2129
|
+
//#endregion
|
|
2130
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/respond_with_error.js
|
|
2131
|
+
/**
|
|
2132
|
+
* @typedef {import('./types.js').Loaded} Loaded
|
|
2133
|
+
*/
|
|
2134
|
+
/**
|
|
2135
|
+
* @param {{
|
|
2136
|
+
* event: import('@sveltejs/kit').RequestEvent;
|
|
2137
|
+
* event_state: import('types').RequestState;
|
|
2138
|
+
* options: import('types').SSROptions;
|
|
2139
|
+
* manifest: import('@sveltejs/kit').SSRManifest;
|
|
2140
|
+
* state: import('types').SSRState;
|
|
2141
|
+
* status: number;
|
|
2142
|
+
* error: unknown;
|
|
2143
|
+
* resolve_opts: import('types').RequiredResolveOptions;
|
|
2144
|
+
* }} opts
|
|
2145
|
+
*/
|
|
2146
|
+
async function respond_with_error({ event, event_state, options, manifest, state, status, error, resolve_opts }) {
|
|
2147
|
+
if (event.request.headers.get("x-sveltekit-error")) return static_error_page(
|
|
2148
|
+
options,
|
|
2149
|
+
status,
|
|
2150
|
+
/** @type {Error} */
|
|
2151
|
+
error.message
|
|
2152
|
+
);
|
|
2153
|
+
/** @type {import('./types.js').Fetched[]} */
|
|
2154
|
+
const fetched = [];
|
|
2155
|
+
try {
|
|
2156
|
+
const branch = [];
|
|
2157
|
+
const default_layout = await manifest._.nodes[0]();
|
|
2158
|
+
const nodes = new PageNodes([default_layout]);
|
|
2159
|
+
const ssr = nodes.ssr();
|
|
2160
|
+
const csr = nodes.csr();
|
|
2161
|
+
const data_serializer = server_data_serializer(event, event_state, options);
|
|
2162
|
+
if (ssr) {
|
|
2163
|
+
state.error = true;
|
|
2164
|
+
const server_data_promise = load_server_data({
|
|
2165
|
+
event,
|
|
2166
|
+
event_state,
|
|
2167
|
+
state,
|
|
2168
|
+
node: default_layout,
|
|
2169
|
+
parent: async () => ({})
|
|
2170
|
+
});
|
|
2171
|
+
const server_data = await server_data_promise;
|
|
2172
|
+
data_serializer.add_node(0, server_data);
|
|
2173
|
+
const data = await load_data({
|
|
2174
|
+
event,
|
|
2175
|
+
event_state,
|
|
2176
|
+
fetched,
|
|
2177
|
+
node: default_layout,
|
|
2178
|
+
parent: async () => ({}),
|
|
2179
|
+
resolve_opts,
|
|
2180
|
+
server_data_promise,
|
|
2181
|
+
state,
|
|
2182
|
+
csr
|
|
2183
|
+
});
|
|
2184
|
+
branch.push({
|
|
2185
|
+
node: default_layout,
|
|
2186
|
+
server_data,
|
|
2187
|
+
data
|
|
2188
|
+
}, {
|
|
2189
|
+
node: await manifest._.nodes[1](),
|
|
2190
|
+
data: null,
|
|
2191
|
+
server_data: null
|
|
2192
|
+
});
|
|
2193
|
+
}
|
|
2194
|
+
return await render_response({
|
|
2195
|
+
options,
|
|
2196
|
+
manifest,
|
|
2197
|
+
state,
|
|
2198
|
+
page_config: {
|
|
2199
|
+
ssr,
|
|
2200
|
+
csr
|
|
2201
|
+
},
|
|
2202
|
+
status,
|
|
2203
|
+
error: await handle_error_and_jsonify(event, event_state, options, error),
|
|
2204
|
+
branch,
|
|
2205
|
+
error_components: [],
|
|
2206
|
+
fetched,
|
|
2207
|
+
event,
|
|
2208
|
+
event_state,
|
|
2209
|
+
resolve_opts,
|
|
2210
|
+
data_serializer
|
|
2211
|
+
});
|
|
2212
|
+
} catch (e) {
|
|
2213
|
+
if (e instanceof Redirect) return redirect_response(e.status, e.location);
|
|
2214
|
+
return static_error_page(options, get_status(e), (await handle_error_and_jsonify(event, event_state, options, e)).message);
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2217
|
+
//#endregion
|
|
2218
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/page/index.js
|
|
2219
|
+
/** @import { ActionResult, RequestEvent, SSRManifest } from '@sveltejs/kit' */
|
|
2220
|
+
/** @import { PageNodeIndexes, RequestState, RequiredResolveOptions, ServerDataNode, SSRComponent, SSRNode, SSROptions, SSRState } from 'types' */
|
|
2221
|
+
/**
|
|
2222
|
+
* The maximum request depth permitted before assuming we're stuck in an infinite loop
|
|
2223
|
+
*/
|
|
2224
|
+
var MAX_DEPTH = 10;
|
|
2225
|
+
/**
|
|
2226
|
+
* @param {RequestEvent} event
|
|
2227
|
+
* @param {RequestState} event_state
|
|
2228
|
+
* @param {PageNodeIndexes} page
|
|
2229
|
+
* @param {SSROptions} options
|
|
2230
|
+
* @param {SSRManifest} manifest
|
|
2231
|
+
* @param {SSRState} state
|
|
2232
|
+
* @param {import('../../../utils/page_nodes.js').PageNodes} nodes
|
|
2233
|
+
* @param {RequiredResolveOptions} resolve_opts
|
|
2234
|
+
* @returns {Promise<Response>}
|
|
2235
|
+
*/
|
|
2236
|
+
async function render_page(event, event_state, page, options, manifest, state, nodes, resolve_opts) {
|
|
2237
|
+
if (state.depth > MAX_DEPTH) return text(`Not found: ${event.url.pathname}`, { status: 404 });
|
|
2238
|
+
if (is_action_json_request(event)) return handle_action_json_request(event, event_state, options, (await manifest._.nodes[page.leaf]())?.server);
|
|
2239
|
+
try {
|
|
2240
|
+
const leaf_node = nodes.page();
|
|
2241
|
+
let status = 200;
|
|
2242
|
+
/** @type {ActionResult | undefined} */
|
|
2243
|
+
let action_result = void 0;
|
|
2244
|
+
if (is_action_request(event)) {
|
|
2245
|
+
const remote_id = get_remote_action(event.url);
|
|
2246
|
+
if (remote_id) action_result = await handle_remote_form_post(event, event_state, manifest, remote_id);
|
|
2247
|
+
else action_result = await handle_action_request(event, event_state, leaf_node.server);
|
|
2248
|
+
if (action_result?.type === "redirect") return redirect_response(action_result.status, action_result.location);
|
|
2249
|
+
if (action_result?.type === "error") status = get_status(action_result.error);
|
|
2250
|
+
if (action_result?.type === "failure") status = action_result.status;
|
|
2251
|
+
}
|
|
2252
|
+
const should_prerender = nodes.prerender();
|
|
2253
|
+
if (should_prerender) {
|
|
2254
|
+
if (leaf_node.server?.actions) throw new Error("Cannot prerender pages with actions");
|
|
2255
|
+
} else if (state.prerendering) return new Response(void 0, { status: 204 });
|
|
2256
|
+
state.prerender_default = should_prerender;
|
|
2257
|
+
const should_prerender_data = nodes.should_prerender_data();
|
|
2258
|
+
const data_pathname = add_data_suffix(event.url.pathname);
|
|
2259
|
+
/** @type {import('./types.js').Fetched[]} */
|
|
2260
|
+
const fetched = [];
|
|
2261
|
+
const ssr = nodes.ssr();
|
|
2262
|
+
const csr = nodes.csr();
|
|
2263
|
+
if (ssr === false && !(state.prerendering && should_prerender_data)) return await render_response({
|
|
2264
|
+
branch: compact(nodes.data).map((node) => {
|
|
2265
|
+
return {
|
|
2266
|
+
node,
|
|
2267
|
+
data: null,
|
|
2268
|
+
server_data: null
|
|
2269
|
+
};
|
|
2270
|
+
}),
|
|
2271
|
+
fetched,
|
|
2272
|
+
page_config: {
|
|
2273
|
+
ssr: false,
|
|
2274
|
+
csr
|
|
2275
|
+
},
|
|
2276
|
+
status,
|
|
2277
|
+
error: null,
|
|
2278
|
+
event,
|
|
2279
|
+
event_state,
|
|
2280
|
+
options,
|
|
2281
|
+
manifest,
|
|
2282
|
+
state,
|
|
2283
|
+
resolve_opts,
|
|
2284
|
+
data_serializer: server_data_serializer(event, event_state, options)
|
|
2285
|
+
});
|
|
2286
|
+
/** @type {Array<import('./types.js').Loaded | null>} */
|
|
2287
|
+
const branch = [];
|
|
2288
|
+
/** @type {Error | null} */
|
|
2289
|
+
let load_error = null;
|
|
2290
|
+
const data_serializer = server_data_serializer(event, event_state, options);
|
|
2291
|
+
const data_serializer_json = state.prerendering && should_prerender_data ? server_data_serializer_json(event, event_state, options) : null;
|
|
2292
|
+
/** @type {Array<Promise<ServerDataNode | null>>} */
|
|
2293
|
+
const server_promises = nodes.data.map((node, i) => {
|
|
2294
|
+
if (load_error) throw load_error;
|
|
2295
|
+
return Promise.resolve().then(async () => {
|
|
2296
|
+
try {
|
|
2297
|
+
if (node === leaf_node && action_result?.type === "error") throw action_result.error;
|
|
2298
|
+
const server_data = await load_server_data({
|
|
2299
|
+
event,
|
|
2300
|
+
event_state,
|
|
2301
|
+
state,
|
|
2302
|
+
node,
|
|
2303
|
+
parent: async () => {
|
|
2304
|
+
/** @type {Record<string, any>} */
|
|
2305
|
+
const data = {};
|
|
2306
|
+
for (let j = 0; j < i; j += 1) {
|
|
2307
|
+
const parent = await server_promises[j];
|
|
2308
|
+
if (parent) Object.assign(data, parent.data);
|
|
2309
|
+
}
|
|
2310
|
+
return data;
|
|
2311
|
+
}
|
|
2312
|
+
});
|
|
2313
|
+
if (node) data_serializer.add_node(i, server_data);
|
|
2314
|
+
data_serializer_json?.add_node(i, server_data);
|
|
2315
|
+
return server_data;
|
|
2316
|
+
} catch (e) {
|
|
2317
|
+
load_error = e;
|
|
2318
|
+
throw load_error;
|
|
2319
|
+
}
|
|
2320
|
+
});
|
|
2321
|
+
});
|
|
2322
|
+
/** @type {Array<Promise<Record<string, any> | null>>} */
|
|
2323
|
+
const load_promises = nodes.data.map((node, i) => {
|
|
2324
|
+
if (load_error) throw load_error;
|
|
2325
|
+
return Promise.resolve().then(async () => {
|
|
2326
|
+
try {
|
|
2327
|
+
return await load_data({
|
|
2328
|
+
event,
|
|
2329
|
+
event_state,
|
|
2330
|
+
fetched,
|
|
2331
|
+
node,
|
|
2332
|
+
parent: async () => {
|
|
2333
|
+
const data = {};
|
|
2334
|
+
for (let j = 0; j < i; j += 1) Object.assign(data, await load_promises[j]);
|
|
2335
|
+
return data;
|
|
2336
|
+
},
|
|
2337
|
+
resolve_opts,
|
|
2338
|
+
server_data_promise: server_promises[i],
|
|
2339
|
+
state,
|
|
2340
|
+
csr
|
|
2341
|
+
});
|
|
2342
|
+
} catch (e) {
|
|
2343
|
+
load_error = e;
|
|
2344
|
+
throw load_error;
|
|
2345
|
+
}
|
|
2346
|
+
});
|
|
2347
|
+
});
|
|
2348
|
+
for (const p of server_promises) p.catch(noop);
|
|
2349
|
+
for (const p of load_promises) p.catch(noop);
|
|
2350
|
+
for (let i = 0; i < nodes.data.length; i += 1) {
|
|
2351
|
+
const node = nodes.data[i];
|
|
2352
|
+
if (node) try {
|
|
2353
|
+
const server_data = await server_promises[i];
|
|
2354
|
+
const data = await load_promises[i];
|
|
2355
|
+
branch.push({
|
|
2356
|
+
node,
|
|
2357
|
+
server_data,
|
|
2358
|
+
data
|
|
2359
|
+
});
|
|
2360
|
+
} catch (e) {
|
|
2361
|
+
const err = normalize_error(e);
|
|
2362
|
+
if (err instanceof Redirect) {
|
|
2363
|
+
if (state.prerendering && should_prerender_data) {
|
|
2364
|
+
const body = JSON.stringify({
|
|
2365
|
+
type: "redirect",
|
|
2366
|
+
location: err.location
|
|
2367
|
+
});
|
|
2368
|
+
state.prerendering.dependencies.set(data_pathname, {
|
|
2369
|
+
response: text(body),
|
|
2370
|
+
body
|
|
2371
|
+
});
|
|
2372
|
+
}
|
|
2373
|
+
return redirect_response(err.status, err.location);
|
|
2374
|
+
}
|
|
2375
|
+
const status = get_status(err);
|
|
2376
|
+
const error = await handle_error_and_jsonify(event, event_state, options, err);
|
|
2377
|
+
while (i--) if (page.errors[i]) {
|
|
2378
|
+
const index = page.errors[i];
|
|
2379
|
+
const node = await manifest._.nodes[index]();
|
|
2380
|
+
let j = i;
|
|
2381
|
+
while (!branch[j]) j -= 1;
|
|
2382
|
+
data_serializer.set_max_nodes(j + 1);
|
|
2383
|
+
const layouts = compact(branch.slice(0, j + 1));
|
|
2384
|
+
const nodes = new PageNodes(layouts.map((layout) => layout.node));
|
|
2385
|
+
const error_branch = layouts.concat({
|
|
2386
|
+
node,
|
|
2387
|
+
data: null,
|
|
2388
|
+
server_data: null
|
|
2389
|
+
});
|
|
2390
|
+
return await render_response({
|
|
2391
|
+
event,
|
|
2392
|
+
event_state,
|
|
2393
|
+
options,
|
|
2394
|
+
manifest,
|
|
2395
|
+
state,
|
|
2396
|
+
resolve_opts,
|
|
2397
|
+
page_config: {
|
|
2398
|
+
ssr: nodes.ssr(),
|
|
2399
|
+
csr: nodes.csr()
|
|
2400
|
+
},
|
|
2401
|
+
status,
|
|
2402
|
+
error,
|
|
2403
|
+
error_components: await load_error_components(options, ssr, error_branch, page, manifest),
|
|
2404
|
+
branch: error_branch,
|
|
2405
|
+
fetched,
|
|
2406
|
+
data_serializer
|
|
2407
|
+
});
|
|
2408
|
+
}
|
|
2409
|
+
return static_error_page(options, status, error.message);
|
|
2410
|
+
}
|
|
2411
|
+
else branch.push(null);
|
|
2412
|
+
}
|
|
2413
|
+
if (state.prerendering && data_serializer_json) {
|
|
2414
|
+
let { data, chunks } = data_serializer_json.get_data();
|
|
2415
|
+
if (chunks) for await (const chunk of chunks) data += chunk;
|
|
2416
|
+
state.prerendering.dependencies.set(data_pathname, {
|
|
2417
|
+
response: text(data),
|
|
2418
|
+
body: data
|
|
2419
|
+
});
|
|
2420
|
+
}
|
|
2421
|
+
return await render_response({
|
|
2422
|
+
event,
|
|
2423
|
+
event_state,
|
|
2424
|
+
options,
|
|
2425
|
+
manifest,
|
|
2426
|
+
state,
|
|
2427
|
+
resolve_opts,
|
|
2428
|
+
page_config: {
|
|
2429
|
+
csr,
|
|
2430
|
+
ssr
|
|
2431
|
+
},
|
|
2432
|
+
status,
|
|
2433
|
+
error: null,
|
|
2434
|
+
branch: compact(branch),
|
|
2435
|
+
action_result,
|
|
2436
|
+
fetched,
|
|
2437
|
+
data_serializer: !ssr ? server_data_serializer(event, event_state, options) : data_serializer,
|
|
2438
|
+
error_components: await load_error_components(options, ssr, branch, page, manifest)
|
|
2439
|
+
});
|
|
2440
|
+
} catch (e) {
|
|
2441
|
+
if (e instanceof Redirect) return redirect_response(e.status, e.location);
|
|
2442
|
+
return await respond_with_error({
|
|
2443
|
+
event,
|
|
2444
|
+
event_state,
|
|
2445
|
+
options,
|
|
2446
|
+
manifest,
|
|
2447
|
+
state,
|
|
2448
|
+
status: e instanceof HttpError ? e.status : 500,
|
|
2449
|
+
error: e,
|
|
2450
|
+
resolve_opts
|
|
2451
|
+
});
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
/**
|
|
2455
|
+
*
|
|
2456
|
+
* @param {SSROptions} options
|
|
2457
|
+
* @param {boolean} ssr
|
|
2458
|
+
* @param {Array<import('./types.js').Loaded | null>} branch
|
|
2459
|
+
* @param {PageNodeIndexes} page
|
|
2460
|
+
* @param {SSRManifest} manifest
|
|
2461
|
+
*/
|
|
2462
|
+
async function load_error_components(options, ssr, branch, page, manifest) {
|
|
2463
|
+
/** @type {Array<SSRComponent | undefined> | undefined} */
|
|
2464
|
+
let error_components;
|
|
2465
|
+
if (options.server_error_boundaries && ssr) {
|
|
2466
|
+
let last_idx = -1;
|
|
2467
|
+
error_components = await Promise.all(branch.map((b, i) => {
|
|
2468
|
+
if (i === 0) return void 0;
|
|
2469
|
+
if (!b) return null;
|
|
2470
|
+
i--;
|
|
2471
|
+
while (i > last_idx + 1 && page.errors[i] === void 0) i -= 1;
|
|
2472
|
+
last_idx = i;
|
|
2473
|
+
const idx = page.errors[i];
|
|
2474
|
+
if (idx == null) return void 0;
|
|
2475
|
+
return manifest._.nodes[idx]?.().then((e) => e.component?.()).catch(() => void 0);
|
|
2476
|
+
}).filter((e) => e !== null));
|
|
2477
|
+
}
|
|
2478
|
+
return error_components;
|
|
2479
|
+
}
|
|
2480
|
+
//#endregion
|
|
2481
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/data/index.js
|
|
2482
|
+
/**
|
|
2483
|
+
* @param {import('@sveltejs/kit').RequestEvent} event
|
|
2484
|
+
* @param {import('types').RequestState} event_state
|
|
2485
|
+
* @param {import('types').SSRRoute} route
|
|
2486
|
+
* @param {import('types').SSROptions} options
|
|
2487
|
+
* @param {import('@sveltejs/kit').SSRManifest} manifest
|
|
2488
|
+
* @param {import('types').SSRState} state
|
|
2489
|
+
* @param {boolean[] | undefined} invalidated_data_nodes
|
|
2490
|
+
* @param {import('types').TrailingSlash} trailing_slash
|
|
2491
|
+
* @returns {Promise<Response>}
|
|
2492
|
+
*/
|
|
2493
|
+
async function render_data(event, event_state, route, options, manifest, state, invalidated_data_nodes, trailing_slash) {
|
|
2494
|
+
if (!route.page) return new Response(void 0, { status: 404 });
|
|
2495
|
+
try {
|
|
2496
|
+
const node_ids = [...route.page.layouts, route.page.leaf];
|
|
2497
|
+
const invalidated = invalidated_data_nodes ?? node_ids.map(() => true);
|
|
2498
|
+
let aborted = false;
|
|
2499
|
+
const url = new URL(event.url);
|
|
2500
|
+
url.pathname = normalize_path(url.pathname, trailing_slash);
|
|
2501
|
+
const new_event = {
|
|
2502
|
+
...event,
|
|
2503
|
+
url
|
|
2504
|
+
};
|
|
2505
|
+
const functions = node_ids.map((n, i) => {
|
|
2506
|
+
return once(async () => {
|
|
2507
|
+
try {
|
|
2508
|
+
if (aborted) return { type: "skip" };
|
|
2509
|
+
const node = n == void 0 ? n : await manifest._.nodes[n]();
|
|
2510
|
+
return load_server_data({
|
|
2511
|
+
event: new_event,
|
|
2512
|
+
event_state,
|
|
2513
|
+
state,
|
|
2514
|
+
node,
|
|
2515
|
+
parent: async () => {
|
|
2516
|
+
/** @type {Record<string, any>} */
|
|
2517
|
+
const data = {};
|
|
2518
|
+
for (let j = 0; j < i; j += 1) {
|
|
2519
|
+
const parent = await functions[j]();
|
|
2520
|
+
if (parent) Object.assign(data, parent.data);
|
|
2521
|
+
}
|
|
2522
|
+
return data;
|
|
2523
|
+
}
|
|
2524
|
+
});
|
|
2525
|
+
} catch (e) {
|
|
2526
|
+
aborted = true;
|
|
2527
|
+
throw e;
|
|
2528
|
+
}
|
|
2529
|
+
});
|
|
2530
|
+
});
|
|
2531
|
+
const promises = functions.map(async (fn, i) => {
|
|
2532
|
+
if (!invalidated[i]) return { type: "skip" };
|
|
2533
|
+
return fn();
|
|
2534
|
+
});
|
|
2535
|
+
let length = promises.length;
|
|
2536
|
+
const nodes = await Promise.all(promises.map((p, i) => p.catch(async (error) => {
|
|
2537
|
+
if (error instanceof Redirect) throw error;
|
|
2538
|
+
length = Math.min(length, i + 1);
|
|
2539
|
+
return {
|
|
2540
|
+
type: "error",
|
|
2541
|
+
error: await handle_error_and_jsonify(event, event_state, options, error),
|
|
2542
|
+
status: error instanceof HttpError || error instanceof SvelteKitError ? error.status : void 0
|
|
2543
|
+
};
|
|
2544
|
+
})));
|
|
2545
|
+
const data_serializer = server_data_serializer_json(event, event_state, options);
|
|
2546
|
+
for (let i = 0; i < nodes.length; i++) data_serializer.add_node(i, nodes[i]);
|
|
2547
|
+
const { data, chunks } = data_serializer.get_data();
|
|
2548
|
+
if (!chunks) return json_response(data);
|
|
2549
|
+
return new Response(new ReadableStream({
|
|
2550
|
+
async start(controller) {
|
|
2551
|
+
controller.enqueue(text_encoder.encode(data));
|
|
2552
|
+
for await (const chunk of chunks) controller.enqueue(text_encoder.encode(chunk));
|
|
2553
|
+
controller.close();
|
|
2554
|
+
},
|
|
2555
|
+
type: "bytes"
|
|
2556
|
+
}), { headers: {
|
|
2557
|
+
"content-type": "text/sveltekit-data",
|
|
2558
|
+
"cache-control": "private, no-store"
|
|
2559
|
+
} });
|
|
2560
|
+
} catch (e) {
|
|
2561
|
+
const error = normalize_error(e);
|
|
2562
|
+
if (error instanceof Redirect) return redirect_json_response(error);
|
|
2563
|
+
else return json_response(await handle_error_and_jsonify(event, event_state, options, error), 500);
|
|
2564
|
+
}
|
|
2565
|
+
}
|
|
2566
|
+
/**
|
|
2567
|
+
* @param {Record<string, any> | string} json
|
|
2568
|
+
* @param {number} [status]
|
|
2569
|
+
*/
|
|
2570
|
+
function json_response(json, status = 200) {
|
|
2571
|
+
return text(typeof json === "string" ? json : JSON.stringify(json), {
|
|
2572
|
+
status,
|
|
2573
|
+
headers: {
|
|
2574
|
+
"content-type": "application/json",
|
|
2575
|
+
"cache-control": "private, no-store"
|
|
2576
|
+
}
|
|
2577
|
+
});
|
|
2578
|
+
}
|
|
2579
|
+
/**
|
|
2580
|
+
* @param {Redirect} redirect
|
|
2581
|
+
*/
|
|
2582
|
+
function redirect_json_response(redirect) {
|
|
2583
|
+
return json_response({
|
|
2584
|
+
type: "redirect",
|
|
2585
|
+
location: redirect.location
|
|
2586
|
+
});
|
|
2587
|
+
}
|
|
2588
|
+
/*!
|
|
2589
|
+
* cookie
|
|
2590
|
+
* Copyright(c) 2012-2014 Roman Shtylman
|
|
2591
|
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
2592
|
+
* MIT Licensed
|
|
2593
|
+
*/
|
|
2594
|
+
//#endregion
|
|
2595
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/cookie.js
|
|
2596
|
+
var import_cookie = (/* @__PURE__ */ __commonJSMin(((exports$1) => {
|
|
2597
|
+
/**
|
|
2598
|
+
* Module exports.
|
|
2599
|
+
* @public
|
|
2600
|
+
*/
|
|
2601
|
+
exports$1.parse = parse;
|
|
2602
|
+
exports$1.serialize = serialize;
|
|
2603
|
+
/**
|
|
2604
|
+
* Module variables.
|
|
2605
|
+
* @private
|
|
2606
|
+
*/
|
|
2607
|
+
var __toString = Object.prototype.toString;
|
|
2608
|
+
/**
|
|
2609
|
+
* RegExp to match field-content in RFC 7230 sec 3.2
|
|
2610
|
+
*
|
|
2611
|
+
* field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
|
|
2612
|
+
* field-vchar = VCHAR / obs-text
|
|
2613
|
+
* obs-text = %x80-FF
|
|
2614
|
+
*/
|
|
2615
|
+
var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
|
|
2616
|
+
/**
|
|
2617
|
+
* Parse a cookie header.
|
|
2618
|
+
*
|
|
2619
|
+
* Parse the given cookie header string into an object
|
|
2620
|
+
* The object has the various cookies as keys(names) => values
|
|
2621
|
+
*
|
|
2622
|
+
* @param {string} str
|
|
2623
|
+
* @param {object} [options]
|
|
2624
|
+
* @return {object}
|
|
2625
|
+
* @public
|
|
2626
|
+
*/
|
|
2627
|
+
function parse(str, options) {
|
|
2628
|
+
if (typeof str !== "string") throw new TypeError("argument str must be a string");
|
|
2629
|
+
var obj = {};
|
|
2630
|
+
var dec = (options || {}).decode || decode;
|
|
2631
|
+
var index = 0;
|
|
2632
|
+
while (index < str.length) {
|
|
2633
|
+
var eqIdx = str.indexOf("=", index);
|
|
2634
|
+
if (eqIdx === -1) break;
|
|
2635
|
+
var endIdx = str.indexOf(";", index);
|
|
2636
|
+
if (endIdx === -1) endIdx = str.length;
|
|
2637
|
+
else if (endIdx < eqIdx) {
|
|
2638
|
+
index = str.lastIndexOf(";", eqIdx - 1) + 1;
|
|
2639
|
+
continue;
|
|
2640
|
+
}
|
|
2641
|
+
var key = str.slice(index, eqIdx).trim();
|
|
2642
|
+
if (void 0 === obj[key]) {
|
|
2643
|
+
var val = str.slice(eqIdx + 1, endIdx).trim();
|
|
2644
|
+
if (val.charCodeAt(0) === 34) val = val.slice(1, -1);
|
|
2645
|
+
obj[key] = tryDecode(val, dec);
|
|
2646
|
+
}
|
|
2647
|
+
index = endIdx + 1;
|
|
2648
|
+
}
|
|
2649
|
+
return obj;
|
|
2650
|
+
}
|
|
2651
|
+
/**
|
|
2652
|
+
* Serialize data into a cookie header.
|
|
2653
|
+
*
|
|
2654
|
+
* Serialize the a name value pair into a cookie string suitable for
|
|
2655
|
+
* http headers. An optional options object specified cookie parameters.
|
|
2656
|
+
*
|
|
2657
|
+
* serialize('foo', 'bar', { httpOnly: true })
|
|
2658
|
+
* => "foo=bar; httpOnly"
|
|
2659
|
+
*
|
|
2660
|
+
* @param {string} name
|
|
2661
|
+
* @param {string} val
|
|
2662
|
+
* @param {object} [options]
|
|
2663
|
+
* @return {string}
|
|
2664
|
+
* @public
|
|
2665
|
+
*/
|
|
2666
|
+
function serialize(name, val, options) {
|
|
2667
|
+
var opt = options || {};
|
|
2668
|
+
var enc = opt.encode || encode;
|
|
2669
|
+
if (typeof enc !== "function") throw new TypeError("option encode is invalid");
|
|
2670
|
+
if (!fieldContentRegExp.test(name)) throw new TypeError("argument name is invalid");
|
|
2671
|
+
var value = enc(val);
|
|
2672
|
+
if (value && !fieldContentRegExp.test(value)) throw new TypeError("argument val is invalid");
|
|
2673
|
+
var str = name + "=" + value;
|
|
2674
|
+
if (null != opt.maxAge) {
|
|
2675
|
+
var maxAge = opt.maxAge - 0;
|
|
2676
|
+
if (isNaN(maxAge) || !isFinite(maxAge)) throw new TypeError("option maxAge is invalid");
|
|
2677
|
+
str += "; Max-Age=" + Math.floor(maxAge);
|
|
2678
|
+
}
|
|
2679
|
+
if (opt.domain) {
|
|
2680
|
+
if (!fieldContentRegExp.test(opt.domain)) throw new TypeError("option domain is invalid");
|
|
2681
|
+
str += "; Domain=" + opt.domain;
|
|
2682
|
+
}
|
|
2683
|
+
if (opt.path) {
|
|
2684
|
+
if (!fieldContentRegExp.test(opt.path)) throw new TypeError("option path is invalid");
|
|
2685
|
+
str += "; Path=" + opt.path;
|
|
2686
|
+
}
|
|
2687
|
+
if (opt.expires) {
|
|
2688
|
+
var expires = opt.expires;
|
|
2689
|
+
if (!isDate(expires) || isNaN(expires.valueOf())) throw new TypeError("option expires is invalid");
|
|
2690
|
+
str += "; Expires=" + expires.toUTCString();
|
|
2691
|
+
}
|
|
2692
|
+
if (opt.httpOnly) str += "; HttpOnly";
|
|
2693
|
+
if (opt.secure) str += "; Secure";
|
|
2694
|
+
if (opt.partitioned) str += "; Partitioned";
|
|
2695
|
+
if (opt.priority) switch (typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority) {
|
|
2696
|
+
case "low":
|
|
2697
|
+
str += "; Priority=Low";
|
|
2698
|
+
break;
|
|
2699
|
+
case "medium":
|
|
2700
|
+
str += "; Priority=Medium";
|
|
2701
|
+
break;
|
|
2702
|
+
case "high":
|
|
2703
|
+
str += "; Priority=High";
|
|
2704
|
+
break;
|
|
2705
|
+
default: throw new TypeError("option priority is invalid");
|
|
2706
|
+
}
|
|
2707
|
+
if (opt.sameSite) switch (typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite) {
|
|
2708
|
+
case true:
|
|
2709
|
+
str += "; SameSite=Strict";
|
|
2710
|
+
break;
|
|
2711
|
+
case "lax":
|
|
2712
|
+
str += "; SameSite=Lax";
|
|
2713
|
+
break;
|
|
2714
|
+
case "strict":
|
|
2715
|
+
str += "; SameSite=Strict";
|
|
2716
|
+
break;
|
|
2717
|
+
case "none":
|
|
2718
|
+
str += "; SameSite=None";
|
|
2719
|
+
break;
|
|
2720
|
+
default: throw new TypeError("option sameSite is invalid");
|
|
2721
|
+
}
|
|
2722
|
+
return str;
|
|
2723
|
+
}
|
|
2724
|
+
/**
|
|
2725
|
+
* URL-decode string value. Optimized to skip native call when no %.
|
|
2726
|
+
*
|
|
2727
|
+
* @param {string} str
|
|
2728
|
+
* @returns {string}
|
|
2729
|
+
*/
|
|
2730
|
+
function decode(str) {
|
|
2731
|
+
return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
|
|
2732
|
+
}
|
|
2733
|
+
/**
|
|
2734
|
+
* URL-encode value.
|
|
2735
|
+
*
|
|
2736
|
+
* @param {string} val
|
|
2737
|
+
* @returns {string}
|
|
2738
|
+
*/
|
|
2739
|
+
function encode(val) {
|
|
2740
|
+
return encodeURIComponent(val);
|
|
2741
|
+
}
|
|
2742
|
+
/**
|
|
2743
|
+
* Determine if value is a Date.
|
|
2744
|
+
*
|
|
2745
|
+
* @param {*} val
|
|
2746
|
+
* @private
|
|
2747
|
+
*/
|
|
2748
|
+
function isDate(val) {
|
|
2749
|
+
return __toString.call(val) === "[object Date]" || val instanceof Date;
|
|
2750
|
+
}
|
|
2751
|
+
/**
|
|
2752
|
+
* Try decoding a string using a decoding function.
|
|
2753
|
+
*
|
|
2754
|
+
* @param {string} str
|
|
2755
|
+
* @param {function} decode
|
|
2756
|
+
* @private
|
|
2757
|
+
*/
|
|
2758
|
+
function tryDecode(str, decode) {
|
|
2759
|
+
try {
|
|
2760
|
+
return decode(str);
|
|
2761
|
+
} catch (e) {
|
|
2762
|
+
return str;
|
|
2763
|
+
}
|
|
2764
|
+
}
|
|
2765
|
+
})))();
|
|
2766
|
+
var INVALID_COOKIE_CHARACTER_REGEX = /[\x00-\x1F\x7F()<>@,;:"/[\]?={} \t]/;
|
|
2767
|
+
/** @param {import('./page/types.js').Cookie['options']} options */
|
|
2768
|
+
function validate_options(options) {
|
|
2769
|
+
if (options?.path === void 0) throw new Error("You must specify a `path` when setting, deleting or serializing cookies");
|
|
2770
|
+
}
|
|
2771
|
+
/**
|
|
2772
|
+
* Generates a unique key for a cookie based on its domain, path, and name in
|
|
2773
|
+
* the format: `<domain>/<path>?<name>`.
|
|
2774
|
+
* If domain is undefined, it will be omitted.
|
|
2775
|
+
* For example: `/?name`, `example.com/foo?name`.
|
|
2776
|
+
*
|
|
2777
|
+
* @param {string | undefined} domain
|
|
2778
|
+
* @param {string} path
|
|
2779
|
+
* @param {string} name
|
|
2780
|
+
* @returns {string}
|
|
2781
|
+
*/
|
|
2782
|
+
function generate_cookie_key(domain, path, name) {
|
|
2783
|
+
return `${domain || ""}${path}?${encodeURIComponent(name)}`;
|
|
2784
|
+
}
|
|
2785
|
+
/**
|
|
2786
|
+
* @param {Request} request
|
|
2787
|
+
* @param {URL} url
|
|
2788
|
+
*/
|
|
2789
|
+
function get_cookies(request, url) {
|
|
2790
|
+
const header = request.headers.get("cookie") ?? "";
|
|
2791
|
+
const initial_cookies = (0, import_cookie.parse)(header, { decode: (value) => value });
|
|
2792
|
+
/** @type {string | undefined} */
|
|
2793
|
+
let normalized_url;
|
|
2794
|
+
/** @type {Map<string, import('./page/types.js').Cookie>} */
|
|
2795
|
+
const new_cookies = /* @__PURE__ */ new Map();
|
|
2796
|
+
/** @type {import('cookie').CookieSerializeOptions} */
|
|
2797
|
+
const defaults = {
|
|
2798
|
+
httpOnly: true,
|
|
2799
|
+
sameSite: "lax",
|
|
2800
|
+
secure: url.hostname === "localhost" && url.protocol === "http:" ? false : true
|
|
2801
|
+
};
|
|
2802
|
+
/** @type {import('@sveltejs/kit').Cookies} */
|
|
2803
|
+
const cookies = {
|
|
2804
|
+
/**
|
|
2805
|
+
* @param {string} name
|
|
2806
|
+
* @param {import('cookie').CookieParseOptions} [opts]
|
|
2807
|
+
*/
|
|
2808
|
+
get(name, opts) {
|
|
2809
|
+
const best_match = Array.from(new_cookies.values()).filter((c) => {
|
|
2810
|
+
return c.name === name && domain_matches(url.hostname, c.options.domain) && path_matches(url.pathname, c.options.path);
|
|
2811
|
+
}).sort((a, b) => b.options.path.length - a.options.path.length)[0];
|
|
2812
|
+
if (best_match) return best_match.options.maxAge === 0 ? void 0 : best_match.value;
|
|
2813
|
+
return (0, import_cookie.parse)(header, { decode: opts?.decode })[name];
|
|
2814
|
+
},
|
|
2815
|
+
/**
|
|
2816
|
+
* @param {import('cookie').CookieParseOptions} [opts]
|
|
2817
|
+
*/
|
|
2818
|
+
getAll(opts) {
|
|
2819
|
+
const cookies = (0, import_cookie.parse)(header, { decode: opts?.decode });
|
|
2820
|
+
const lookup = /* @__PURE__ */ new Map();
|
|
2821
|
+
for (const c of new_cookies.values()) if (domain_matches(url.hostname, c.options.domain) && path_matches(url.pathname, c.options.path)) {
|
|
2822
|
+
const existing = lookup.get(c.name);
|
|
2823
|
+
if (!existing || c.options.path.length > existing.options.path.length) lookup.set(c.name, c);
|
|
2824
|
+
}
|
|
2825
|
+
for (const c of lookup.values()) cookies[c.name] = c.value;
|
|
2826
|
+
return Object.entries(cookies).map(([name, value]) => ({
|
|
2827
|
+
name,
|
|
2828
|
+
value
|
|
2829
|
+
}));
|
|
2830
|
+
},
|
|
2831
|
+
/**
|
|
2832
|
+
* @param {string} name
|
|
2833
|
+
* @param {string} value
|
|
2834
|
+
* @param {import('./page/types.js').Cookie['options']} options
|
|
2835
|
+
*/
|
|
2836
|
+
set(name, value, options) {
|
|
2837
|
+
const illegal_characters = name.match(INVALID_COOKIE_CHARACTER_REGEX);
|
|
2838
|
+
if (illegal_characters) console.warn(`The cookie name "${name}" will be invalid in SvelteKit 3.0 as it contains ${illegal_characters.join(" and ")}. See RFC 2616 for more details https://datatracker.ietf.org/doc/html/rfc2616#section-2.2`);
|
|
2839
|
+
validate_options(options);
|
|
2840
|
+
set_internal(name, value, {
|
|
2841
|
+
...defaults,
|
|
2842
|
+
...options
|
|
2843
|
+
});
|
|
2844
|
+
},
|
|
2845
|
+
/**
|
|
2846
|
+
* @param {string} name
|
|
2847
|
+
* @param {import('./page/types.js').Cookie['options']} options
|
|
2848
|
+
*/
|
|
2849
|
+
delete(name, options) {
|
|
2850
|
+
validate_options(options);
|
|
2851
|
+
cookies.set(name, "", {
|
|
2852
|
+
...options,
|
|
2853
|
+
maxAge: 0
|
|
2854
|
+
});
|
|
2855
|
+
},
|
|
2856
|
+
/**
|
|
2857
|
+
* @param {string} name
|
|
2858
|
+
* @param {string} value
|
|
2859
|
+
* @param {import('./page/types.js').Cookie['options']} options
|
|
2860
|
+
*/
|
|
2861
|
+
serialize(name, value, options) {
|
|
2862
|
+
validate_options(options);
|
|
2863
|
+
let path = options.path;
|
|
2864
|
+
if (!options.domain || options.domain === url.hostname) {
|
|
2865
|
+
if (!normalized_url) throw new Error("Cannot serialize cookies until after the route is determined");
|
|
2866
|
+
path = resolve(normalized_url, path);
|
|
2867
|
+
}
|
|
2868
|
+
return (0, import_cookie.serialize)(name, value, {
|
|
2869
|
+
...defaults,
|
|
2870
|
+
...options,
|
|
2871
|
+
path
|
|
2872
|
+
});
|
|
2873
|
+
}
|
|
2874
|
+
};
|
|
2875
|
+
/**
|
|
2876
|
+
* @param {URL} destination
|
|
2877
|
+
* @param {string | null} header
|
|
2878
|
+
*/
|
|
2879
|
+
function get_cookie_header(destination, header) {
|
|
2880
|
+
/** @type {Record<string, string>} */
|
|
2881
|
+
const combined_cookies = { ...initial_cookies };
|
|
2882
|
+
for (const cookie of new_cookies.values()) {
|
|
2883
|
+
if (!domain_matches(destination.hostname, cookie.options.domain)) continue;
|
|
2884
|
+
if (!path_matches(destination.pathname, cookie.options.path)) continue;
|
|
2885
|
+
const encoder = cookie.options.encode || encodeURIComponent;
|
|
2886
|
+
combined_cookies[cookie.name] = encoder(cookie.value);
|
|
2887
|
+
}
|
|
2888
|
+
if (header) {
|
|
2889
|
+
const parsed = (0, import_cookie.parse)(header, { decode: (value) => value });
|
|
2890
|
+
for (const name in parsed) combined_cookies[name] = parsed[name];
|
|
2891
|
+
}
|
|
2892
|
+
return Object.entries(combined_cookies).map(([name, value]) => `${name}=${value}`).join("; ");
|
|
2893
|
+
}
|
|
2894
|
+
/** @type {Array<() => void>} */
|
|
2895
|
+
const internal_queue = [];
|
|
2896
|
+
/**
|
|
2897
|
+
* @param {string} name
|
|
2898
|
+
* @param {string} value
|
|
2899
|
+
* @param {import('./page/types.js').Cookie['options']} options
|
|
2900
|
+
*/
|
|
2901
|
+
function set_internal(name, value, options) {
|
|
2902
|
+
if (!normalized_url) {
|
|
2903
|
+
internal_queue.push(() => set_internal(name, value, options));
|
|
2904
|
+
return;
|
|
2905
|
+
}
|
|
2906
|
+
let path = options.path;
|
|
2907
|
+
if (!options.domain || options.domain === url.hostname) path = resolve(normalized_url, path);
|
|
2908
|
+
const cookie_key = generate_cookie_key(options.domain, path, name);
|
|
2909
|
+
const cookie = {
|
|
2910
|
+
name,
|
|
2911
|
+
value,
|
|
2912
|
+
options: {
|
|
2913
|
+
...options,
|
|
2914
|
+
path
|
|
2915
|
+
}
|
|
2916
|
+
};
|
|
2917
|
+
new_cookies.set(cookie_key, cookie);
|
|
2918
|
+
}
|
|
2919
|
+
/**
|
|
2920
|
+
* @param {import('types').TrailingSlash} trailing_slash
|
|
2921
|
+
*/
|
|
2922
|
+
function set_trailing_slash(trailing_slash) {
|
|
2923
|
+
normalized_url = normalize_path(url.pathname, trailing_slash);
|
|
2924
|
+
internal_queue.forEach((fn) => fn());
|
|
2925
|
+
}
|
|
2926
|
+
return {
|
|
2927
|
+
cookies,
|
|
2928
|
+
new_cookies,
|
|
2929
|
+
get_cookie_header,
|
|
2930
|
+
set_internal,
|
|
2931
|
+
set_trailing_slash
|
|
2932
|
+
};
|
|
2933
|
+
}
|
|
2934
|
+
/**
|
|
2935
|
+
* @param {string} hostname
|
|
2936
|
+
* @param {string} [constraint]
|
|
2937
|
+
*/
|
|
2938
|
+
function domain_matches(hostname, constraint) {
|
|
2939
|
+
if (!constraint) return true;
|
|
2940
|
+
const normalized = constraint[0] === "." ? constraint.slice(1) : constraint;
|
|
2941
|
+
if (hostname === normalized) return true;
|
|
2942
|
+
return hostname.endsWith("." + normalized);
|
|
2943
|
+
}
|
|
2944
|
+
/**
|
|
2945
|
+
* @param {string} path
|
|
2946
|
+
* @param {string} [constraint]
|
|
2947
|
+
*/
|
|
2948
|
+
function path_matches(path, constraint) {
|
|
2949
|
+
if (!constraint) return true;
|
|
2950
|
+
const normalized = constraint.endsWith("/") ? constraint.slice(0, -1) : constraint;
|
|
2951
|
+
if (path === normalized) return true;
|
|
2952
|
+
return path.startsWith(normalized + "/");
|
|
2953
|
+
}
|
|
2954
|
+
/**
|
|
2955
|
+
* @param {Headers} headers
|
|
2956
|
+
* @param {MapIterator<import('./page/types.js').Cookie>} cookies
|
|
2957
|
+
*/
|
|
2958
|
+
function add_cookies_to_headers(headers, cookies) {
|
|
2959
|
+
for (const new_cookie of cookies) {
|
|
2960
|
+
const { name, value, options } = new_cookie;
|
|
2961
|
+
headers.append("set-cookie", (0, import_cookie.serialize)(name, value, options));
|
|
2962
|
+
if (options.path.endsWith(".html")) {
|
|
2963
|
+
const path = add_data_suffix(options.path);
|
|
2964
|
+
headers.append("set-cookie", (0, import_cookie.serialize)(name, value, {
|
|
2965
|
+
...options,
|
|
2966
|
+
path
|
|
2967
|
+
}));
|
|
2968
|
+
}
|
|
2969
|
+
}
|
|
2970
|
+
}
|
|
2971
|
+
//#endregion
|
|
2972
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/fetch.js
|
|
2973
|
+
/**
|
|
2974
|
+
* @param {{
|
|
2975
|
+
* event: import('@sveltejs/kit').RequestEvent;
|
|
2976
|
+
* options: import('types').SSROptions;
|
|
2977
|
+
* manifest: import('@sveltejs/kit').SSRManifest;
|
|
2978
|
+
* state: import('types').SSRState;
|
|
2979
|
+
* get_cookie_header: (url: URL, header: string | null) => string;
|
|
2980
|
+
* set_internal: (name: string, value: string, opts: import('./page/types.js').Cookie['options']) => void;
|
|
2981
|
+
* }} opts
|
|
2982
|
+
* @returns {typeof fetch}
|
|
2983
|
+
*/
|
|
2984
|
+
function create_fetch({ event, options, manifest, state, get_cookie_header, set_internal }) {
|
|
2985
|
+
/**
|
|
2986
|
+
* @type {typeof fetch}
|
|
2987
|
+
*/
|
|
2988
|
+
const server_fetch = async (info, init) => {
|
|
2989
|
+
const original_request = normalize_fetch_input(info, init, event.url);
|
|
2990
|
+
let mode = (info instanceof Request ? info.mode : init?.mode) ?? "cors";
|
|
2991
|
+
let credentials = (info instanceof Request ? info.credentials : init?.credentials) ?? "same-origin";
|
|
2992
|
+
return options.hooks.handleFetch({
|
|
2993
|
+
event,
|
|
2994
|
+
request: original_request,
|
|
2995
|
+
fetch: async (info, init) => {
|
|
2996
|
+
const request = normalize_fetch_input(info, init, event.url);
|
|
2997
|
+
const url = new URL(request.url);
|
|
2998
|
+
if (!request.headers.has("origin")) request.headers.set("origin", event.url.origin);
|
|
2999
|
+
if (info !== original_request) {
|
|
3000
|
+
mode = (info instanceof Request ? info.mode : init?.mode) ?? "cors";
|
|
3001
|
+
credentials = (info instanceof Request ? info.credentials : init?.credentials) ?? "same-origin";
|
|
3002
|
+
}
|
|
3003
|
+
if ((request.method === "GET" || request.method === "HEAD") && (mode === "no-cors" && url.origin !== event.url.origin || url.origin === event.url.origin)) request.headers.delete("origin");
|
|
3004
|
+
const decoded = decodeURIComponent(url.pathname);
|
|
3005
|
+
if (url.origin !== event.url.origin || base && decoded !== base && !decoded.startsWith(`${base}/`)) {
|
|
3006
|
+
if (`.${url.hostname}`.endsWith(`.${event.url.hostname}`) && credentials !== "omit") {
|
|
3007
|
+
const cookie = get_cookie_header(url, request.headers.get("cookie"));
|
|
3008
|
+
if (cookie) request.headers.set("cookie", cookie);
|
|
3009
|
+
}
|
|
3010
|
+
return fetch(request);
|
|
3011
|
+
}
|
|
3012
|
+
const prefix = assets || base;
|
|
3013
|
+
const filename = (decoded.startsWith(prefix) ? decoded.slice(prefix.length) : decoded).slice(1);
|
|
3014
|
+
const filename_html = `${filename}/index.html`;
|
|
3015
|
+
const is_asset = manifest.assets.has(filename) || filename in manifest._.server_assets;
|
|
3016
|
+
const is_asset_html = manifest.assets.has(filename_html) || filename_html in manifest._.server_assets;
|
|
3017
|
+
if (is_asset || is_asset_html) {
|
|
3018
|
+
const file = is_asset ? filename : filename_html;
|
|
3019
|
+
if (state.read) {
|
|
3020
|
+
const type = is_asset ? manifest.mimeTypes[filename.slice(filename.lastIndexOf("."))] : "text/html";
|
|
3021
|
+
return new Response(state.read(file), { headers: type ? { "content-type": type } : {} });
|
|
3022
|
+
} else if (read_implementation && file in manifest._.server_assets) {
|
|
3023
|
+
const length = manifest._.server_assets[file];
|
|
3024
|
+
const type = manifest.mimeTypes[file.slice(file.lastIndexOf("."))];
|
|
3025
|
+
return new Response(read_implementation(file), { headers: {
|
|
3026
|
+
"Content-Length": "" + length,
|
|
3027
|
+
"Content-Type": type
|
|
3028
|
+
} });
|
|
3029
|
+
}
|
|
3030
|
+
return await fetch(request);
|
|
3031
|
+
}
|
|
3032
|
+
if (has_prerendered_path(manifest, base + decoded)) return await fetch(request);
|
|
3033
|
+
if (credentials !== "omit") {
|
|
3034
|
+
const cookie = get_cookie_header(url, request.headers.get("cookie"));
|
|
3035
|
+
if (cookie) request.headers.set("cookie", cookie);
|
|
3036
|
+
const authorization = event.request.headers.get("authorization");
|
|
3037
|
+
if (authorization && !request.headers.has("authorization")) request.headers.set("authorization", authorization);
|
|
3038
|
+
}
|
|
3039
|
+
if (!request.headers.has("accept")) request.headers.set("accept", "*/*");
|
|
3040
|
+
if (!request.headers.has("accept-language")) request.headers.set("accept-language", event.request.headers.get("accept-language"));
|
|
3041
|
+
const response = await internal_fetch(request, options, manifest, state);
|
|
3042
|
+
for (const str of get_set_cookies(response.headers)) {
|
|
3043
|
+
const { name, value, ...options } = parseString(str, { decodeValues: false });
|
|
3044
|
+
set_internal(name, value, {
|
|
3045
|
+
path: options.path ?? (url.pathname.split("/").slice(0, -1).join("/") || "/"),
|
|
3046
|
+
encode: (value) => value,
|
|
3047
|
+
...options
|
|
3048
|
+
});
|
|
3049
|
+
}
|
|
3050
|
+
return response;
|
|
3051
|
+
}
|
|
3052
|
+
});
|
|
3053
|
+
};
|
|
3054
|
+
return (input, init) => {
|
|
3055
|
+
const response = server_fetch(input, init);
|
|
3056
|
+
response.catch(noop);
|
|
3057
|
+
return response;
|
|
3058
|
+
};
|
|
3059
|
+
}
|
|
3060
|
+
/**
|
|
3061
|
+
* @param {RequestInfo | URL} info
|
|
3062
|
+
* @param {RequestInit | undefined} init
|
|
3063
|
+
* @param {URL} url
|
|
3064
|
+
*/
|
|
3065
|
+
function normalize_fetch_input(info, init, url) {
|
|
3066
|
+
if (info instanceof Request) return info;
|
|
3067
|
+
return new Request(typeof info === "string" ? new URL(info, url) : info, init);
|
|
3068
|
+
}
|
|
3069
|
+
/**
|
|
3070
|
+
* @param {Request} request
|
|
3071
|
+
* @param {import('types').SSROptions} options
|
|
3072
|
+
* @param {import('@sveltejs/kit').SSRManifest} manifest
|
|
3073
|
+
* @param {import('types').SSRState} state
|
|
3074
|
+
* @returns {Promise<Response>}
|
|
3075
|
+
*/
|
|
3076
|
+
async function internal_fetch(request, options, manifest, state) {
|
|
3077
|
+
if (request.signal) {
|
|
3078
|
+
if (request.signal.aborted) throw new DOMException("The operation was aborted.", "AbortError");
|
|
3079
|
+
let remove_abort_listener = noop;
|
|
3080
|
+
/** @type {Promise<never>} */
|
|
3081
|
+
const abort_promise = new Promise((_, reject) => {
|
|
3082
|
+
const on_abort = () => {
|
|
3083
|
+
reject(new DOMException("The operation was aborted.", "AbortError"));
|
|
3084
|
+
};
|
|
3085
|
+
request.signal.addEventListener("abort", on_abort, { once: true });
|
|
3086
|
+
remove_abort_listener = () => request.signal.removeEventListener("abort", on_abort);
|
|
3087
|
+
});
|
|
3088
|
+
const result = await Promise.race([respond(request, options, manifest, {
|
|
3089
|
+
...state,
|
|
3090
|
+
depth: state.depth + 1
|
|
3091
|
+
}), abort_promise]);
|
|
3092
|
+
remove_abort_listener();
|
|
3093
|
+
return result;
|
|
3094
|
+
} else return await respond(request, options, manifest, {
|
|
3095
|
+
...state,
|
|
3096
|
+
depth: state.depth + 1
|
|
3097
|
+
});
|
|
3098
|
+
}
|
|
3099
|
+
//#endregion
|
|
3100
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/env_module.js
|
|
3101
|
+
/** @type {string} */
|
|
3102
|
+
var payload;
|
|
3103
|
+
/** @type {string} */
|
|
3104
|
+
var etag;
|
|
3105
|
+
/** @type {Headers} */
|
|
3106
|
+
var headers;
|
|
3107
|
+
/**
|
|
3108
|
+
* @param {Request} request
|
|
3109
|
+
* @returns {Response}
|
|
3110
|
+
*/
|
|
3111
|
+
function get_public_env(request) {
|
|
3112
|
+
const script = request.url.endsWith(".script.js");
|
|
3113
|
+
payload ??= uneval(public_env);
|
|
3114
|
+
etag ??= `W/${Date.now()}`;
|
|
3115
|
+
headers ??= new Headers({
|
|
3116
|
+
"content-type": "application/javascript; charset=utf-8",
|
|
3117
|
+
etag
|
|
3118
|
+
});
|
|
3119
|
+
if (request.headers.get("if-none-match") === etag) return new Response(void 0, {
|
|
3120
|
+
status: 304,
|
|
3121
|
+
headers
|
|
3122
|
+
});
|
|
3123
|
+
if (script) return new Response(`globalThis.__sveltekit_sw={env:${payload}}`, { headers });
|
|
3124
|
+
return new Response(`export const env=${payload}`, { headers });
|
|
3125
|
+
}
|
|
3126
|
+
//#endregion
|
|
3127
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/respond.js
|
|
3128
|
+
/** @import { RequestState, SSRNode } from 'types' */
|
|
3129
|
+
/** @type {import('types').RequiredResolveOptions['transformPageChunk']} */
|
|
3130
|
+
var default_transform = ({ html }) => html;
|
|
3131
|
+
/** @type {import('types').RequiredResolveOptions['filterSerializedResponseHeaders']} */
|
|
3132
|
+
var default_filter = () => false;
|
|
3133
|
+
/** @type {import('types').RequiredResolveOptions['preload']} */
|
|
3134
|
+
var default_preload = ({ type }) => type === "js" || type === "css";
|
|
3135
|
+
var page_methods = /* @__PURE__ */ new Set([
|
|
3136
|
+
"GET",
|
|
3137
|
+
"HEAD",
|
|
3138
|
+
"POST"
|
|
3139
|
+
]);
|
|
3140
|
+
var allowed_page_methods = /* @__PURE__ */ new Set([
|
|
3141
|
+
"GET",
|
|
3142
|
+
"HEAD",
|
|
3143
|
+
"OPTIONS"
|
|
3144
|
+
]);
|
|
3145
|
+
var respond = propagate_context(internal_respond);
|
|
3146
|
+
/**
|
|
3147
|
+
* @param {Request} request
|
|
3148
|
+
* @param {import('types').SSROptions} options
|
|
3149
|
+
* @param {import('@sveltejs/kit').SSRManifest} manifest
|
|
3150
|
+
* @param {import('types').SSRState} state
|
|
3151
|
+
* @returns {Promise<Response>}
|
|
3152
|
+
*/
|
|
3153
|
+
async function internal_respond(request, options, manifest, state) {
|
|
3154
|
+
/** URL but stripped from the potential `/__data.json` suffix and its search param */
|
|
3155
|
+
const url = new URL(request.url);
|
|
3156
|
+
const is_route_resolution_request = has_resolution_suffix(url.pathname);
|
|
3157
|
+
const is_data_request = has_data_suffix(url.pathname);
|
|
3158
|
+
const remote_id = get_remote_id(url);
|
|
3159
|
+
{
|
|
3160
|
+
const request_origin = request.headers.get("origin");
|
|
3161
|
+
if (remote_id) {
|
|
3162
|
+
if (request.method !== "GET" && request_origin !== url.origin) return json({ message: "Cross-site remote requests are forbidden" }, { status: 403 });
|
|
3163
|
+
} else if (options.csrf_check_origin) {
|
|
3164
|
+
if (is_form_content_type(request) && (request.method === "POST" || request.method === "PUT" || request.method === "PATCH" || request.method === "DELETE") && request_origin !== url.origin && (!request_origin || !options.csrf_trusted_origins.includes(request_origin))) {
|
|
3165
|
+
const message = `Cross-site ${request.method} form submissions are forbidden`;
|
|
3166
|
+
const opts = { status: 403 };
|
|
3167
|
+
if (request.headers.get("accept") === "application/json") return json({ message }, opts);
|
|
3168
|
+
return text(message, opts);
|
|
3169
|
+
}
|
|
3170
|
+
}
|
|
3171
|
+
}
|
|
3172
|
+
if (options.hash_routing && url.pathname !== base + "/" && url.pathname !== "/[fallback]") return text("Not found", { status: 404 });
|
|
3173
|
+
/** @type {boolean[] | undefined} */
|
|
3174
|
+
let invalidated_data_nodes;
|
|
3175
|
+
if (is_route_resolution_request)
|
|
3176
|
+
/**
|
|
3177
|
+
* If the request is for a route resolution, first modify the URL, then continue as normal
|
|
3178
|
+
* for path resolution, then return the route object as a JS file.
|
|
3179
|
+
*/
|
|
3180
|
+
url.pathname = strip_resolution_suffix(url.pathname);
|
|
3181
|
+
else if (is_data_request) {
|
|
3182
|
+
url.pathname = strip_data_suffix(url.pathname) + (url.searchParams.get("x-sveltekit-trailing-slash") === "1" ? "/" : "") || "/";
|
|
3183
|
+
url.searchParams.delete(TRAILING_SLASH_PARAM);
|
|
3184
|
+
invalidated_data_nodes = url.searchParams.get(INVALIDATED_PARAM)?.split("").map((node) => node === "1");
|
|
3185
|
+
url.searchParams.delete(INVALIDATED_PARAM);
|
|
3186
|
+
} else if (remote_id) {
|
|
3187
|
+
url.pathname = request.headers.get("x-sveltekit-pathname") ?? base;
|
|
3188
|
+
url.search = request.headers.get("x-sveltekit-search") ?? "";
|
|
3189
|
+
}
|
|
3190
|
+
/** @type {Record<string, string>} */
|
|
3191
|
+
const headers = {};
|
|
3192
|
+
const { cookies, new_cookies, get_cookie_header, set_internal, set_trailing_slash } = get_cookies(request, url);
|
|
3193
|
+
/** @type {RequestState} */
|
|
3194
|
+
const event_state = {
|
|
3195
|
+
prerendering: state.prerendering,
|
|
3196
|
+
transport: options.hooks.transport,
|
|
3197
|
+
handleValidationError: options.hooks.handleValidationError,
|
|
3198
|
+
tracing: { record_span },
|
|
3199
|
+
remote: {
|
|
3200
|
+
data: null,
|
|
3201
|
+
explicit: null,
|
|
3202
|
+
implicit: null,
|
|
3203
|
+
forms: null,
|
|
3204
|
+
requested: null,
|
|
3205
|
+
batches: null,
|
|
3206
|
+
live_iterators: null
|
|
3207
|
+
},
|
|
3208
|
+
is_in_remote_function: false,
|
|
3209
|
+
is_in_remote_form_or_command: false,
|
|
3210
|
+
is_in_remote_query: false,
|
|
3211
|
+
is_in_render: false,
|
|
3212
|
+
is_in_universal_load: false
|
|
3213
|
+
};
|
|
3214
|
+
/** @type {import('@sveltejs/kit').RequestEvent} */
|
|
3215
|
+
const event = {
|
|
3216
|
+
cookies,
|
|
3217
|
+
fetch: null,
|
|
3218
|
+
getClientAddress: state.getClientAddress || (() => {
|
|
3219
|
+
throw new Error(`@sveltejs/adapter-node does not specify getClientAddress. Please raise an issue`);
|
|
3220
|
+
}),
|
|
3221
|
+
locals: {},
|
|
3222
|
+
params: {},
|
|
3223
|
+
platform: state.platform,
|
|
3224
|
+
request,
|
|
3225
|
+
route: { id: null },
|
|
3226
|
+
setHeaders: (new_headers) => {
|
|
3227
|
+
for (const key in new_headers) {
|
|
3228
|
+
const lower = key.toLowerCase();
|
|
3229
|
+
const value = new_headers[key];
|
|
3230
|
+
if (lower === "set-cookie") throw new Error("Use `event.cookies.set(name, value, options)` instead of `event.setHeaders` to set cookies");
|
|
3231
|
+
else if (lower in headers) {
|
|
3232
|
+
if (lower === "server-timing") headers[lower] += ", " + value;
|
|
3233
|
+
else throw new Error(`"${key}" header is already set`);
|
|
3234
|
+
} else {
|
|
3235
|
+
headers[lower] = value;
|
|
3236
|
+
if (state.prerendering && lower === "cache-control") state.prerendering.cache = value;
|
|
3237
|
+
}
|
|
3238
|
+
}
|
|
3239
|
+
},
|
|
3240
|
+
url,
|
|
3241
|
+
isDataRequest: is_data_request,
|
|
3242
|
+
isSubRequest: state.depth > 0,
|
|
3243
|
+
isRemoteRequest: !!remote_id
|
|
3244
|
+
};
|
|
3245
|
+
event.fetch = create_fetch({
|
|
3246
|
+
event,
|
|
3247
|
+
options,
|
|
3248
|
+
manifest,
|
|
3249
|
+
state,
|
|
3250
|
+
get_cookie_header,
|
|
3251
|
+
set_internal
|
|
3252
|
+
});
|
|
3253
|
+
if (state.emulator?.platform) event.platform = await state.emulator.platform({
|
|
3254
|
+
config: {},
|
|
3255
|
+
prerender: !!state.prerendering?.fallback
|
|
3256
|
+
});
|
|
3257
|
+
/** @type {string | null} */
|
|
3258
|
+
let resolved_path = url.pathname;
|
|
3259
|
+
if (!remote_id) {
|
|
3260
|
+
const prerendering_reroute_state = state.prerendering?.inside_reroute;
|
|
3261
|
+
try {
|
|
3262
|
+
if (state.prerendering) state.prerendering.inside_reroute = true;
|
|
3263
|
+
resolved_path = await options.hooks.reroute({
|
|
3264
|
+
url: new URL(url),
|
|
3265
|
+
fetch: event.fetch
|
|
3266
|
+
}) ?? url.pathname;
|
|
3267
|
+
} catch {
|
|
3268
|
+
return text("Internal Server Error", { status: 500 });
|
|
3269
|
+
} finally {
|
|
3270
|
+
if (state.prerendering) state.prerendering.inside_reroute = prerendering_reroute_state;
|
|
3271
|
+
}
|
|
3272
|
+
}
|
|
3273
|
+
/** @type {import('types').RequiredResolveOptions} */
|
|
3274
|
+
let resolve_opts = {
|
|
3275
|
+
transformPageChunk: default_transform,
|
|
3276
|
+
filterSerializedResponseHeaders: default_filter,
|
|
3277
|
+
preload: default_preload
|
|
3278
|
+
};
|
|
3279
|
+
/** @type {import('types').TrailingSlash} */
|
|
3280
|
+
let trailing_slash = "never";
|
|
3281
|
+
/** @type {PageNodes | undefined} */
|
|
3282
|
+
let page_nodes;
|
|
3283
|
+
try {
|
|
3284
|
+
resolved_path = decode_pathname(resolved_path);
|
|
3285
|
+
} catch {
|
|
3286
|
+
resolved_path = null;
|
|
3287
|
+
return await handle();
|
|
3288
|
+
}
|
|
3289
|
+
if (resolved_path !== decode_pathname(url.pathname) && !state.prerendering?.fallback && has_prerendered_path(manifest, resolved_path)) {
|
|
3290
|
+
const url = new URL(request.url);
|
|
3291
|
+
url.pathname = is_data_request ? add_data_suffix(resolved_path) : is_route_resolution_request ? add_resolution_suffix(resolved_path) : resolved_path;
|
|
3292
|
+
try {
|
|
3293
|
+
const response = await fetch(url, request);
|
|
3294
|
+
const headers = new Headers(response.headers);
|
|
3295
|
+
if (headers.has("content-encoding")) {
|
|
3296
|
+
headers.delete("content-encoding");
|
|
3297
|
+
headers.delete("content-length");
|
|
3298
|
+
}
|
|
3299
|
+
return new Response(response.body, {
|
|
3300
|
+
headers,
|
|
3301
|
+
status: response.status,
|
|
3302
|
+
statusText: response.statusText
|
|
3303
|
+
});
|
|
3304
|
+
} catch (error) {
|
|
3305
|
+
return await handle_fatal_error(event, event_state, options, error);
|
|
3306
|
+
}
|
|
3307
|
+
}
|
|
3308
|
+
/** @type {import('types').SSRRoute | null} */
|
|
3309
|
+
let route = null;
|
|
3310
|
+
if (base && !state.prerendering?.fallback) {
|
|
3311
|
+
if (!resolved_path.startsWith(base)) return text("Not found", { status: 404 });
|
|
3312
|
+
resolved_path = resolved_path.slice(base.length) || "/";
|
|
3313
|
+
}
|
|
3314
|
+
if (is_route_resolution_request) return resolve_route(resolved_path, new URL(request.url), manifest);
|
|
3315
|
+
if (resolved_path === `/_app/env.js` || resolved_path === `/_app/env.script.js`) return get_public_env(request);
|
|
3316
|
+
if (!remote_id && resolved_path.startsWith(`/_app`)) {
|
|
3317
|
+
const headers = new Headers();
|
|
3318
|
+
headers.set("cache-control", "public, max-age=0, must-revalidate");
|
|
3319
|
+
return text("Not found", {
|
|
3320
|
+
status: 404,
|
|
3321
|
+
headers
|
|
3322
|
+
});
|
|
3323
|
+
}
|
|
3324
|
+
if (!state.prerendering?.fallback) {
|
|
3325
|
+
const matchers = await manifest._.matchers();
|
|
3326
|
+
const result = find_route(resolved_path, manifest._.routes, matchers);
|
|
3327
|
+
if (result) {
|
|
3328
|
+
route = result.route;
|
|
3329
|
+
event.route = { id: route.id };
|
|
3330
|
+
event.params = result.params;
|
|
3331
|
+
}
|
|
3332
|
+
}
|
|
3333
|
+
try {
|
|
3334
|
+
page_nodes = route?.page ? new PageNodes(await load_page_nodes(route.page, manifest)) : void 0;
|
|
3335
|
+
if (route && !remote_id) {
|
|
3336
|
+
if (url.pathname === base || url.pathname === base + "/") trailing_slash = "always";
|
|
3337
|
+
else if (page_nodes) trailing_slash = page_nodes.trailing_slash();
|
|
3338
|
+
else if (route.endpoint) trailing_slash = (await route.endpoint()).trailingSlash ?? "never";
|
|
3339
|
+
if (!is_data_request) {
|
|
3340
|
+
const normalized = normalize_path(url.pathname, trailing_slash);
|
|
3341
|
+
if (normalized !== url.pathname && !state.prerendering?.fallback) return new Response(void 0, {
|
|
3342
|
+
status: 308,
|
|
3343
|
+
headers: {
|
|
3344
|
+
"x-sveltekit-normalize": "1",
|
|
3345
|
+
location: (normalized.startsWith("//") ? url.origin + normalized : normalized) + (url.search === "?" ? "" : url.search)
|
|
3346
|
+
}
|
|
3347
|
+
});
|
|
3348
|
+
}
|
|
3349
|
+
if (state.before_handle || state.emulator?.platform) {
|
|
3350
|
+
let config = {};
|
|
3351
|
+
/** @type {import('types').PrerenderOption} */
|
|
3352
|
+
let prerender = false;
|
|
3353
|
+
if (route.endpoint) {
|
|
3354
|
+
const node = await route.endpoint();
|
|
3355
|
+
config = node.config ?? config;
|
|
3356
|
+
prerender = node.prerender ?? prerender;
|
|
3357
|
+
} else if (page_nodes) {
|
|
3358
|
+
config = page_nodes.get_config() ?? config;
|
|
3359
|
+
prerender = page_nodes.prerender();
|
|
3360
|
+
}
|
|
3361
|
+
if (state.emulator?.platform) event.platform = await state.emulator.platform({
|
|
3362
|
+
config,
|
|
3363
|
+
prerender
|
|
3364
|
+
});
|
|
3365
|
+
if (state.before_handle) return await state.before_handle(event, config, prerender, handle);
|
|
3366
|
+
}
|
|
3367
|
+
}
|
|
3368
|
+
return await handle();
|
|
3369
|
+
} catch (e) {
|
|
3370
|
+
if (e instanceof Redirect) try {
|
|
3371
|
+
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);
|
|
3372
|
+
add_cookies_to_headers(response.headers, new_cookies.values());
|
|
3373
|
+
return response;
|
|
3374
|
+
} catch (err) {
|
|
3375
|
+
return await handle_fatal_error(event, event_state, options, err);
|
|
3376
|
+
}
|
|
3377
|
+
return await handle_fatal_error(event, event_state, options, e);
|
|
3378
|
+
}
|
|
3379
|
+
async function handle() {
|
|
3380
|
+
set_trailing_slash(trailing_slash);
|
|
3381
|
+
if (state.prerendering && !state.prerendering.fallback && !state.prerendering.inside_reroute) disable_search(url);
|
|
3382
|
+
const response = await record_span({
|
|
3383
|
+
name: "sveltekit.handle.root",
|
|
3384
|
+
attributes: {
|
|
3385
|
+
"http.route": event.route.id || "unknown",
|
|
3386
|
+
"http.method": event.request.method,
|
|
3387
|
+
"http.url": event.url.href,
|
|
3388
|
+
"sveltekit.is_sub_request": event.isSubRequest
|
|
3389
|
+
},
|
|
3390
|
+
fn: async (root_span) => {
|
|
3391
|
+
const traced_event = {
|
|
3392
|
+
...event,
|
|
3393
|
+
tracing: {
|
|
3394
|
+
enabled: false,
|
|
3395
|
+
root: root_span,
|
|
3396
|
+
current: root_span
|
|
3397
|
+
}
|
|
3398
|
+
};
|
|
3399
|
+
return await with_request_store({
|
|
3400
|
+
event: traced_event,
|
|
3401
|
+
state: event_state
|
|
3402
|
+
}, () => options.hooks.handle({
|
|
3403
|
+
event: traced_event,
|
|
3404
|
+
resolve: (event, opts) => {
|
|
3405
|
+
return record_span({
|
|
3406
|
+
name: "sveltekit.resolve",
|
|
3407
|
+
attributes: { "http.route": event.route.id || "unknown" },
|
|
3408
|
+
fn: (resolve_span) => {
|
|
3409
|
+
return with_request_store(null, () => resolve(merge_tracing(event, resolve_span), page_nodes, opts).then((response) => {
|
|
3410
|
+
for (const key in headers) {
|
|
3411
|
+
const value = headers[key];
|
|
3412
|
+
response.headers.set(key, value);
|
|
3413
|
+
}
|
|
3414
|
+
add_cookies_to_headers(response.headers, new_cookies.values());
|
|
3415
|
+
if (state.prerendering && event.route.id !== null) response.headers.set("x-sveltekit-routeid", encodeURI(event.route.id));
|
|
3416
|
+
resolve_span.setAttributes({
|
|
3417
|
+
"http.response.status_code": response.status,
|
|
3418
|
+
"http.response.body.size": response.headers.get("content-length") || "unknown"
|
|
3419
|
+
});
|
|
3420
|
+
return response;
|
|
3421
|
+
}));
|
|
3422
|
+
}
|
|
3423
|
+
});
|
|
3424
|
+
}
|
|
3425
|
+
}));
|
|
3426
|
+
}
|
|
3427
|
+
});
|
|
3428
|
+
if (response.status === 200 && response.headers.has("etag")) {
|
|
3429
|
+
let if_none_match_value = request.headers.get("if-none-match");
|
|
3430
|
+
if (if_none_match_value?.startsWith("W/\"")) if_none_match_value = if_none_match_value.substring(2);
|
|
3431
|
+
const etag = response.headers.get("etag");
|
|
3432
|
+
if (if_none_match_value === etag) {
|
|
3433
|
+
const headers = new Headers({ etag });
|
|
3434
|
+
for (const key of [
|
|
3435
|
+
"cache-control",
|
|
3436
|
+
"content-location",
|
|
3437
|
+
"date",
|
|
3438
|
+
"expires",
|
|
3439
|
+
"vary"
|
|
3440
|
+
]) {
|
|
3441
|
+
const value = response.headers.get(key);
|
|
3442
|
+
if (value) headers.set(key, value);
|
|
3443
|
+
}
|
|
3444
|
+
for (const cookie of get_set_cookies(response.headers)) headers.append("set-cookie", cookie);
|
|
3445
|
+
return new Response(void 0, {
|
|
3446
|
+
status: 304,
|
|
3447
|
+
headers
|
|
3448
|
+
});
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
3451
|
+
if (is_data_request && response.status >= 300 && response.status <= 308) {
|
|
3452
|
+
const location = response.headers.get("location");
|
|
3453
|
+
if (location) return redirect_json_response(new Redirect(response.status, location));
|
|
3454
|
+
}
|
|
3455
|
+
return response;
|
|
3456
|
+
}
|
|
3457
|
+
/**
|
|
3458
|
+
* @param {import('@sveltejs/kit').RequestEvent} event
|
|
3459
|
+
* @param {PageNodes | undefined} page_nodes
|
|
3460
|
+
* @param {import('@sveltejs/kit').ResolveOptions} [opts]
|
|
3461
|
+
*/
|
|
3462
|
+
async function resolve(event, page_nodes, opts) {
|
|
3463
|
+
try {
|
|
3464
|
+
if (opts) resolve_opts = {
|
|
3465
|
+
transformPageChunk: opts.transformPageChunk || default_transform,
|
|
3466
|
+
filterSerializedResponseHeaders: opts.filterSerializedResponseHeaders || default_filter,
|
|
3467
|
+
preload: opts.preload || default_preload
|
|
3468
|
+
};
|
|
3469
|
+
if (resolved_path === null) return await respond_with_error({
|
|
3470
|
+
event,
|
|
3471
|
+
event_state,
|
|
3472
|
+
options,
|
|
3473
|
+
manifest,
|
|
3474
|
+
state,
|
|
3475
|
+
status: 400,
|
|
3476
|
+
error: new SvelteKitError(400, "Malformed URI", `Failed to decode URI: ${event.url.pathname}`),
|
|
3477
|
+
resolve_opts
|
|
3478
|
+
});
|
|
3479
|
+
if (options.hash_routing || state.prerendering?.fallback) return await render_response({
|
|
3480
|
+
event,
|
|
3481
|
+
event_state,
|
|
3482
|
+
options,
|
|
3483
|
+
manifest,
|
|
3484
|
+
state,
|
|
3485
|
+
page_config: {
|
|
3486
|
+
ssr: false,
|
|
3487
|
+
csr: true
|
|
3488
|
+
},
|
|
3489
|
+
status: 200,
|
|
3490
|
+
error: null,
|
|
3491
|
+
branch: [{
|
|
3492
|
+
node: await manifest._.nodes[0](),
|
|
3493
|
+
data: null,
|
|
3494
|
+
server_data: null
|
|
3495
|
+
}],
|
|
3496
|
+
fetched: [],
|
|
3497
|
+
resolve_opts,
|
|
3498
|
+
data_serializer: server_data_serializer(event, event_state, options)
|
|
3499
|
+
});
|
|
3500
|
+
if (remote_id) return await handle_remote_call(event, event_state, options, manifest, remote_id);
|
|
3501
|
+
if (route) {
|
|
3502
|
+
const method = event.request.method;
|
|
3503
|
+
/** @type {Response} */
|
|
3504
|
+
let response;
|
|
3505
|
+
if (is_data_request) response = await render_data(event, event_state, route, options, manifest, state, invalidated_data_nodes, trailing_slash);
|
|
3506
|
+
else if (route.endpoint && (!route.page || !state.prerendering && is_endpoint_request(event))) response = await render_endpoint(event, event_state, await route.endpoint(), state);
|
|
3507
|
+
else if (route.page) {
|
|
3508
|
+
if (!page_nodes) throw new Error("page_nodes not found. This should never happen");
|
|
3509
|
+
else if (page_methods.has(method)) response = await render_page(event, event_state, route.page, options, manifest, state, page_nodes, resolve_opts);
|
|
3510
|
+
else {
|
|
3511
|
+
const allowed_methods = new Set(allowed_page_methods);
|
|
3512
|
+
if ((await manifest._.nodes[route.page.leaf]())?.server?.actions) allowed_methods.add("POST");
|
|
3513
|
+
if (method === "OPTIONS") response = new Response(null, {
|
|
3514
|
+
status: 204,
|
|
3515
|
+
headers: { allow: Array.from(allowed_methods.values()).join(", ") }
|
|
3516
|
+
});
|
|
3517
|
+
else {
|
|
3518
|
+
const mod = [...allowed_methods].reduce((acc, curr) => {
|
|
3519
|
+
acc[curr] = true;
|
|
3520
|
+
return acc;
|
|
3521
|
+
}, {});
|
|
3522
|
+
response = method_not_allowed(mod, method);
|
|
3523
|
+
}
|
|
3524
|
+
}
|
|
3525
|
+
} else throw new Error("Route is neither page nor endpoint. This should never happen");
|
|
3526
|
+
if (request.method === "GET" && route.page && route.endpoint) {
|
|
3527
|
+
const vary = response.headers.get("vary")?.split(",")?.map((v) => v.trim().toLowerCase());
|
|
3528
|
+
if (!(vary?.includes("accept") || vary?.includes("*"))) {
|
|
3529
|
+
response = new Response(response.body, {
|
|
3530
|
+
status: response.status,
|
|
3531
|
+
statusText: response.statusText,
|
|
3532
|
+
headers: new Headers(response.headers)
|
|
3533
|
+
});
|
|
3534
|
+
response.headers.append("Vary", "Accept");
|
|
3535
|
+
}
|
|
3536
|
+
}
|
|
3537
|
+
return response;
|
|
3538
|
+
}
|
|
3539
|
+
if (state.error && event.isSubRequest) {
|
|
3540
|
+
const headers = new Headers(request.headers);
|
|
3541
|
+
headers.set("x-sveltekit-error", "true");
|
|
3542
|
+
return await fetch(request, { headers });
|
|
3543
|
+
}
|
|
3544
|
+
if (state.error) return text("Internal Server Error", { status: 500 });
|
|
3545
|
+
if (state.depth === 0) return await respond_with_error({
|
|
3546
|
+
event,
|
|
3547
|
+
event_state,
|
|
3548
|
+
options,
|
|
3549
|
+
manifest,
|
|
3550
|
+
state,
|
|
3551
|
+
status: 404,
|
|
3552
|
+
error: new SvelteKitError(404, "Not Found", `Not found: ${event.url.pathname}`),
|
|
3553
|
+
resolve_opts
|
|
3554
|
+
});
|
|
3555
|
+
if (state.prerendering) return text("not found", { status: 404 });
|
|
3556
|
+
const response = await fetch(request);
|
|
3557
|
+
return new Response(response.body, response);
|
|
3558
|
+
} catch (e) {
|
|
3559
|
+
return await handle_fatal_error(event, event_state, options, e);
|
|
3560
|
+
} finally {
|
|
3561
|
+
event.cookies.set = () => {
|
|
3562
|
+
throw new Error("Cannot use `cookies.set(...)` after the response has been generated");
|
|
3563
|
+
};
|
|
3564
|
+
event.setHeaders = () => {
|
|
3565
|
+
throw new Error("Cannot use `setHeaders(...)` after the response has been generated");
|
|
3566
|
+
};
|
|
3567
|
+
}
|
|
3568
|
+
}
|
|
3569
|
+
}
|
|
3570
|
+
/**
|
|
3571
|
+
* @param {import('types').PageNodeIndexes} page
|
|
3572
|
+
* @param {import('@sveltejs/kit').SSRManifest} manifest
|
|
3573
|
+
*/
|
|
3574
|
+
function load_page_nodes(page, manifest) {
|
|
3575
|
+
return Promise.all([...page.layouts.map((n) => n == void 0 ? n : manifest._.nodes[n]()), manifest._.nodes[page.leaf]()]);
|
|
3576
|
+
}
|
|
3577
|
+
/**
|
|
3578
|
+
* It's likely that, in a distributed system, there are spans starting outside the SvelteKit server -- eg.
|
|
3579
|
+
* started on the frontend client, or in a service that calls the SvelteKit server. There are standardized
|
|
3580
|
+
* ways to represent this context in HTTP headers, so we can extract that context and run our tracing inside of it
|
|
3581
|
+
* so that when our traces are exported, they are associated with the correct parent context.
|
|
3582
|
+
* @param {typeof internal_respond} fn
|
|
3583
|
+
* @returns {typeof internal_respond}
|
|
3584
|
+
*/
|
|
3585
|
+
function propagate_context(fn) {
|
|
3586
|
+
return async (req, ...rest) => {
|
|
3587
|
+
return fn(req, ...rest);
|
|
3588
|
+
};
|
|
3589
|
+
}
|
|
3590
|
+
//#endregion
|
|
3591
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/utils/env.js
|
|
3592
|
+
/**
|
|
3593
|
+
* @param {Record<string, string>} env
|
|
3594
|
+
* @param {string} allowed
|
|
3595
|
+
* @param {string} disallowed
|
|
3596
|
+
* @returns {Record<string, string>}
|
|
3597
|
+
*/
|
|
3598
|
+
function filter_env(env, allowed, disallowed) {
|
|
3599
|
+
return Object.fromEntries(Object.entries(env).filter(([k]) => k.startsWith(allowed) && (disallowed === "" || !k.startsWith(disallowed))));
|
|
3600
|
+
}
|
|
3601
|
+
//#endregion
|
|
3602
|
+
//#region ../../node_modules/.bun/@sveltejs+kit@2.70.2+f9e48d733d44469f/node_modules/@sveltejs/kit/src/runtime/server/index.js
|
|
3603
|
+
/** @import { PromiseWithResolvers } from '../../utils/promise.js' */
|
|
3604
|
+
/** @type {Promise<any>} */
|
|
3605
|
+
var init_promise;
|
|
3606
|
+
/** @type {Promise<void> | null} */
|
|
3607
|
+
var current = null;
|
|
3608
|
+
var Server = class {
|
|
3609
|
+
/** @type {import('types').SSROptions} */
|
|
3610
|
+
#options;
|
|
3611
|
+
/** @type {import('@sveltejs/kit').SSRManifest} */
|
|
3612
|
+
#manifest;
|
|
3613
|
+
/** @param {import('@sveltejs/kit').SSRManifest} manifest */
|
|
3614
|
+
constructor(manifest) {
|
|
3615
|
+
/** @type {import('types').SSROptions} */
|
|
3616
|
+
this.#options = options;
|
|
3617
|
+
this.#manifest = manifest;
|
|
3618
|
+
if (IN_WEBCONTAINER) {
|
|
3619
|
+
const respond = this.respond.bind(this);
|
|
3620
|
+
/** @type {typeof respond} */
|
|
3621
|
+
this.respond = async (...args) => {
|
|
3622
|
+
const { promise, resolve } = with_resolvers();
|
|
3623
|
+
const previous = current;
|
|
3624
|
+
current = promise;
|
|
3625
|
+
await previous;
|
|
3626
|
+
return respond(...args).finally(resolve);
|
|
3627
|
+
};
|
|
3628
|
+
}
|
|
3629
|
+
}
|
|
3630
|
+
/**
|
|
3631
|
+
* @param {import('@sveltejs/kit').ServerInitOptions} opts
|
|
3632
|
+
*/
|
|
3633
|
+
async init({ env, read }) {
|
|
3634
|
+
const { env_public_prefix, env_private_prefix } = this.#options;
|
|
3635
|
+
set_private_env(filter_env(env, env_private_prefix, env_public_prefix));
|
|
3636
|
+
set_public_env(filter_env(env, env_public_prefix, env_private_prefix));
|
|
3637
|
+
if (read) {
|
|
3638
|
+
/** @param {string} file */
|
|
3639
|
+
const wrapped_read = (file) => {
|
|
3640
|
+
const result = read(file);
|
|
3641
|
+
if (result instanceof ReadableStream) return result;
|
|
3642
|
+
else return new ReadableStream({ async start(controller) {
|
|
3643
|
+
try {
|
|
3644
|
+
const stream = await Promise.resolve(result);
|
|
3645
|
+
if (!stream) {
|
|
3646
|
+
controller.close();
|
|
3647
|
+
return;
|
|
3648
|
+
}
|
|
3649
|
+
const reader = stream.getReader();
|
|
3650
|
+
while (true) {
|
|
3651
|
+
const { done, value } = await reader.read();
|
|
3652
|
+
if (done) break;
|
|
3653
|
+
controller.enqueue(value);
|
|
3654
|
+
}
|
|
3655
|
+
controller.close();
|
|
3656
|
+
} catch (error) {
|
|
3657
|
+
controller.error(error);
|
|
3658
|
+
}
|
|
3659
|
+
} });
|
|
3660
|
+
};
|
|
3661
|
+
set_read_implementation(wrapped_read);
|
|
3662
|
+
}
|
|
3663
|
+
await (init_promise ??= (async () => {
|
|
3664
|
+
try {
|
|
3665
|
+
const module = await get_hooks();
|
|
3666
|
+
this.#options.hooks = {
|
|
3667
|
+
handle: module.handle || (({ event, resolve }) => resolve(event)),
|
|
3668
|
+
handleError: module.handleError || (({ status, error, event }) => {
|
|
3669
|
+
const error_message = format_server_error(status, error, event);
|
|
3670
|
+
console.error(error_message);
|
|
3671
|
+
}),
|
|
3672
|
+
handleFetch: module.handleFetch || (({ request, fetch }) => fetch(request)),
|
|
3673
|
+
handleValidationError: module.handleValidationError || (({ issues }) => {
|
|
3674
|
+
console.error("Remote function schema validation failed:", issues);
|
|
3675
|
+
return { message: "Bad Request" };
|
|
3676
|
+
}),
|
|
3677
|
+
reroute: module.reroute || noop,
|
|
3678
|
+
transport: module.transport || {}
|
|
3679
|
+
};
|
|
3680
|
+
module.transport && Object.fromEntries(Object.entries(module.transport).map(([k, v]) => [k, v.decode]));
|
|
3681
|
+
if (module.init) await module.init();
|
|
3682
|
+
} catch (e) {
|
|
3683
|
+
throw e;
|
|
3684
|
+
}
|
|
3685
|
+
})());
|
|
3686
|
+
}
|
|
3687
|
+
/**
|
|
3688
|
+
* @param {Request} request
|
|
3689
|
+
* @param {import('types').RequestOptions} options
|
|
3690
|
+
*/
|
|
3691
|
+
async respond(request, options) {
|
|
3692
|
+
return respond(request, this.#options, this.#manifest, {
|
|
3693
|
+
...options,
|
|
3694
|
+
error: false,
|
|
3695
|
+
depth: 0
|
|
3696
|
+
});
|
|
3697
|
+
}
|
|
3698
|
+
};
|
|
3699
|
+
|
|
3700
|
+
export { Server as S };
|
|
3701
|
+
//# sourceMappingURL=index.js-FWva2MxP.js.map
|