@salla.sa/twilight-theme-engine 1.0.144 → 1.0.146
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/dist/{AddToCartForm-LWT2QINY.js → AddToCartForm-ZZMT3ZRO.js} +3 -3
- package/dist/{AddToCartForm-LWT2QINY.js.map → AddToCartForm-ZZMT3ZRO.js.map} +1 -1
- package/dist/{BlogAuthorPage-52C2OHXW.js → BlogAuthorPage-LVRGWFOC.js} +27 -27
- package/dist/{BlogAuthorPage-52C2OHXW.js.map → BlogAuthorPage-LVRGWFOC.js.map} +1 -1
- package/dist/{BlogCategoryPage-LBLIAN6Q.js → BlogCategoryPage-CONL6QSN.js} +27 -27
- package/dist/{BlogCategoryPage-LBLIAN6Q.js.map → BlogCategoryPage-CONL6QSN.js.map} +1 -1
- package/dist/{BlogPage-U56CLHI4.js → BlogPage-6ZA474IU.js} +25 -25
- package/dist/{BlogPage-U56CLHI4.js.map → BlogPage-6ZA474IU.js.map} +1 -1
- package/dist/{BlogSinglePage-NQJDYUFB.js → BlogSinglePage-W7WYKP7W.js} +25 -25
- package/dist/{BlogSinglePage-NQJDYUFB.js.map → BlogSinglePage-W7WYKP7W.js.map} +1 -1
- package/dist/{BlogTagPage-XP3XGVCO.js → BlogTagPage-G5JX7FSN.js} +27 -27
- package/dist/{BlogTagPage-XP3XGVCO.js.map → BlogTagPage-G5JX7FSN.js.map} +1 -1
- package/dist/{BrandsPage-22AET7DW.js → BrandsPage-TB5NDSGL.js} +26 -26
- package/dist/{BrandsPage-22AET7DW.js.map → BrandsPage-TB5NDSGL.js.map} +1 -1
- package/dist/{Breadcrumb-YTYXSTKO.js → Breadcrumb-EVZDJG7H.js} +25 -25
- package/dist/{Breadcrumb-YTYXSTKO.js.map → Breadcrumb-EVZDJG7H.js.map} +1 -1
- package/dist/{CartItem-UTU4GLDN.js → CartItem-D2LJIFGL.js} +25 -25
- package/dist/{CartItem-UTU4GLDN.js.map → CartItem-D2LJIFGL.js.map} +1 -1
- package/dist/{CartSummary-4UGWZ3B3.js → CartSummary-V4HYUEPB.js} +25 -25
- package/dist/{CartSummary-4UGWZ3B3.js.map → CartSummary-V4HYUEPB.js.map} +1 -1
- package/dist/{Copyright-B2GYPZBZ.js → Copyright-JLIFLENS.js} +3 -3
- package/dist/{Copyright-B2GYPZBZ.js.map → Copyright-JLIFLENS.js.map} +1 -1
- package/dist/{CustomerLayout-I4XFBCOH.js → CustomerLayout-JSIYPWY4.js} +25 -25
- package/dist/{CustomerLayout-I4XFBCOH.js.map → CustomerLayout-JSIYPWY4.js.map} +1 -1
- package/dist/{Footer-OWOF2AGC.js → Footer-BNIVXKRM.js} +4 -4
- package/dist/{Footer-OWOF2AGC.js.map → Footer-BNIVXKRM.js.map} +1 -1
- package/dist/{Header-KDJL4YRP.js → Header-DI3OK5TC.js} +11 -11
- package/dist/{Header-KDJL4YRP.js.map → Header-DI3OK5TC.js.map} +1 -1
- package/dist/{LatestProducts-YBFHXG5V.js → LatestProducts-PEIN355E.js} +27 -27
- package/dist/{LatestProducts-YBFHXG5V.js.map → LatestProducts-PEIN355E.js.map} +1 -1
- package/dist/{LoyaltyPage-GFWTFQA7.js → LoyaltyPage-GV6WMYVE.js} +25 -25
- package/dist/{LoyaltyPage-GFWTFQA7.js.map → LoyaltyPage-GV6WMYVE.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-WJDZL6G4.js → LoyaltyPointsPage-QNOVSCKB.js} +8 -8
- package/dist/{LoyaltyPointsPage-WJDZL6G4.js.map → LoyaltyPointsPage-QNOVSCKB.js.map} +1 -1
- package/dist/{MainMenu-AWSLHAEE.js → MainMenu-IN5HUX3U.js} +7 -7
- package/dist/{MainMenu-AWSLHAEE.js.map → MainMenu-IN5HUX3U.js.map} +1 -1
- package/dist/{MasterLayout-ZMHHLGYL.js → MasterLayout-GHAXKYOR.js} +25 -25
- package/dist/{MasterLayout-ZMHHLGYL.js.map → MasterLayout-GHAXKYOR.js.map} +1 -1
- package/dist/{MobileMenu-56MF2EAS.js → MobileMenu-XU45EZMG.js} +26 -26
- package/dist/{MobileMenu-56MF2EAS.js.map → MobileMenu-XU45EZMG.js.map} +1 -1
- package/dist/{NotificationsPage-7QC66446.js → NotificationsPage-AMY7TARF.js} +25 -25
- package/dist/{NotificationsPage-7QC66446.js.map → NotificationsPage-AMY7TARF.js.map} +1 -1
- package/dist/{OrderSinglePage-WXJHUJ6C.js → OrderSinglePage-L2E6YH3Z.js} +26 -26
- package/dist/{OrderSinglePage-WXJHUJ6C.js.map → OrderSinglePage-L2E6YH3Z.js.map} +1 -1
- package/dist/{OrdersPage-ZNM4YGXR.js → OrdersPage-76ORWMJY.js} +25 -25
- package/dist/{OrdersPage-ZNM4YGXR.js.map → OrdersPage-76ORWMJY.js.map} +1 -1
- package/dist/{PageSingle-NQZM6O5A.js → PageSingle-D7I6EHBF.js} +6 -6
- package/dist/{PageSingle-NQZM6O5A.js.map → PageSingle-D7I6EHBF.js.map} +1 -1
- package/dist/{ProductDetails-N4KYBKBG.js → ProductDetails-BZVRXSCD.js} +7 -7
- package/dist/{ProductDetails-N4KYBKBG.js.map → ProductDetails-BZVRXSCD.js.map} +1 -1
- package/dist/{ProfilePage-XOGVATHX.js → ProfilePage-65NYRBON.js} +25 -25
- package/dist/{ProfilePage-XOGVATHX.js.map → ProfilePage-65NYRBON.js.map} +1 -1
- package/dist/{ReviewsPage-WOLLCLAY.js → ReviewsPage-C7NSCMBE.js} +3 -3
- package/dist/{ReviewsPage-WOLLCLAY.js.map → ReviewsPage-C7NSCMBE.js.map} +1 -1
- package/dist/{SeoCartWidget-EVJOTXPO.js → SeoCartWidget-GK3KC2M3.js} +25 -25
- package/dist/{SeoCartWidget-EVJOTXPO.js.map → SeoCartWidget-GK3KC2M3.js.map} +1 -1
- package/dist/{SettingsPage-LYDZFUF3.js → SettingsPage-7VGJBA5K.js} +25 -25
- package/dist/{SettingsPage-LYDZFUF3.js.map → SettingsPage-7VGJBA5K.js.map} +1 -1
- package/dist/{StoreClosedNotification-62SFSGRH.js → StoreClosedNotification-44JN2FZV.js} +26 -26
- package/dist/{StoreClosedNotification-62SFSGRH.js.map → StoreClosedNotification-44JN2FZV.js.map} +1 -1
- package/dist/{TestimonialsPage-WPZBQQO2.js → TestimonialsPage-KGCGTUJQ.js} +6 -6
- package/dist/{TestimonialsPage-WPZBQQO2.js.map → TestimonialsPage-KGCGTUJQ.js.map} +1 -1
- package/dist/{ThankYouPage-44VMBXGI.js → ThankYouPage-XWB4X236.js} +25 -25
- package/dist/{ThankYouPage-44VMBXGI.js.map → ThankYouPage-XWB4X236.js.map} +1 -1
- package/dist/{WalletPage-YVSIECSM.js → WalletPage-J3CX6MLS.js} +26 -26
- package/dist/{WalletPage-YVSIECSM.js.map → WalletPage-J3CX6MLS.js.map} +1 -1
- package/dist/{WebMcpTools-VA2A62E3.js → WebMcpTools-3MV53OMT.js} +9 -9
- package/dist/{WebMcpTools-VA2A62E3.js.map → WebMcpTools-3MV53OMT.js.map} +1 -1
- package/dist/{WishlistPage-IGWDG4HC.js → WishlistPage-HHX3OVOF.js} +27 -27
- package/dist/{WishlistPage-IGWDG4HC.js.map → WishlistPage-HHX3OVOF.js.map} +1 -1
- package/dist/api/advertisement.js +4 -4
- package/dist/api/apps.js +4 -4
- package/dist/api/blog.js +6 -6
- package/dist/api/brands.js +6 -6
- package/dist/api/cart.js +6 -6
- package/dist/api/category.js +6 -6
- package/dist/api/client.js +3 -3
- package/dist/api/home.js +4 -4
- package/dist/api/loyalty.js +6 -6
- package/dist/api/menu.js +4 -4
- package/dist/api/notification.js +4 -4
- package/dist/api/order.js +6 -6
- package/dist/api/page.js +6 -6
- package/dist/api/product.js +6 -6
- package/dist/api/profile.js +3 -3
- package/dist/api/store.js +5 -5
- package/dist/api/translations.js +4 -4
- package/dist/api/user.js +4 -4
- package/dist/api/wallet.js +4 -4
- package/dist/api/wishlist.js +7 -7
- package/dist/{chunk-G3NCSKQ3.js → chunk-2DUN6DZK.js} +5 -5
- package/dist/{chunk-G3NCSKQ3.js.map → chunk-2DUN6DZK.js.map} +1 -1
- package/dist/{chunk-S4KV6QGP.js → chunk-3G4YCXOR.js} +27 -20
- package/dist/chunk-3G4YCXOR.js.map +1 -0
- package/dist/{chunk-IVZNTLAA.js → chunk-3O6BB7SI.js} +3 -3
- package/dist/{chunk-IVZNTLAA.js.map → chunk-3O6BB7SI.js.map} +1 -1
- package/dist/{chunk-5XWGYFZ2.js → chunk-3QOALQQJ.js} +4 -4
- package/dist/{chunk-5XWGYFZ2.js.map → chunk-3QOALQQJ.js.map} +1 -1
- package/dist/{chunk-7IQFONJR.js → chunk-5EN3XZ32.js} +3 -3
- package/dist/{chunk-7IQFONJR.js.map → chunk-5EN3XZ32.js.map} +1 -1
- package/dist/{chunk-N6ZE6HUX.js → chunk-5V4W3GBI.js} +5 -5
- package/dist/{chunk-N6ZE6HUX.js.map → chunk-5V4W3GBI.js.map} +1 -1
- package/dist/{chunk-3E3ABCPC.js → chunk-6TFM3UTF.js} +3 -3
- package/dist/{chunk-3E3ABCPC.js.map → chunk-6TFM3UTF.js.map} +1 -1
- package/dist/{chunk-WATFGHFK.js → chunk-7PPNAVBF.js} +4 -4
- package/dist/{chunk-WATFGHFK.js.map → chunk-7PPNAVBF.js.map} +1 -1
- package/dist/{chunk-GCXFTIHV.js → chunk-7ZTSYUCJ.js} +4 -4
- package/dist/{chunk-GCXFTIHV.js.map → chunk-7ZTSYUCJ.js.map} +1 -1
- package/dist/{chunk-BBQATCYN.js → chunk-A4Y5BVJN.js} +3 -3
- package/dist/{chunk-BBQATCYN.js.map → chunk-A4Y5BVJN.js.map} +1 -1
- package/dist/{chunk-IAM44RPN.js → chunk-AECYX56P.js} +4 -4
- package/dist/{chunk-IAM44RPN.js.map → chunk-AECYX56P.js.map} +1 -1
- package/dist/{chunk-AT6YLLT4.js → chunk-B36NISD2.js} +4 -4
- package/dist/{chunk-AT6YLLT4.js.map → chunk-B36NISD2.js.map} +1 -1
- package/dist/{chunk-BXMU3ARO.js → chunk-BEYWTFOR.js} +4 -4
- package/dist/{chunk-BXMU3ARO.js.map → chunk-BEYWTFOR.js.map} +1 -1
- package/dist/{chunk-AXTVBTO4.js → chunk-BKSVKSAW.js} +22 -22
- package/dist/{chunk-AXTVBTO4.js.map → chunk-BKSVKSAW.js.map} +1 -1
- package/dist/{chunk-KVBWIXXG.js → chunk-C5P2C2NR.js} +3 -3
- package/dist/{chunk-KVBWIXXG.js.map → chunk-C5P2C2NR.js.map} +1 -1
- package/dist/{chunk-PYUTATUY.js → chunk-C6PNF2OT.js} +3 -3
- package/dist/{chunk-PYUTATUY.js.map → chunk-C6PNF2OT.js.map} +1 -1
- package/dist/{chunk-VNEMV6IC.js → chunk-CFG6PGUZ.js} +4 -4
- package/dist/{chunk-VNEMV6IC.js.map → chunk-CFG6PGUZ.js.map} +1 -1
- package/dist/{chunk-GN7V2QHO.js → chunk-DHKZCR6U.js} +6 -6
- package/dist/{chunk-GN7V2QHO.js.map → chunk-DHKZCR6U.js.map} +1 -1
- package/dist/{chunk-WU5Z4JGX.js → chunk-DMGSEY7F.js} +3 -3
- package/dist/{chunk-WU5Z4JGX.js.map → chunk-DMGSEY7F.js.map} +1 -1
- package/dist/{chunk-VV7MDVGS.js → chunk-EF3PLLLA.js} +8 -8
- package/dist/{chunk-VV7MDVGS.js.map → chunk-EF3PLLLA.js.map} +1 -1
- package/dist/{chunk-WQPG22DY.js → chunk-EGI7F57E.js} +3 -3
- package/dist/{chunk-WQPG22DY.js.map → chunk-EGI7F57E.js.map} +1 -1
- package/dist/{chunk-W6KPVZZR.js → chunk-F7S2QA3D.js} +7 -7
- package/dist/{chunk-W6KPVZZR.js.map → chunk-F7S2QA3D.js.map} +1 -1
- package/dist/{chunk-P3WHN7JA.js → chunk-FTH3XLIN.js} +3 -3
- package/dist/{chunk-P3WHN7JA.js.map → chunk-FTH3XLIN.js.map} +1 -1
- package/dist/{chunk-CRO7DXS3.js → chunk-FXW6H6J3.js} +3 -3
- package/dist/{chunk-CRO7DXS3.js.map → chunk-FXW6H6J3.js.map} +1 -1
- package/dist/{chunk-TF6HFXTW.js → chunk-H7LRGY7U.js} +3 -3
- package/dist/{chunk-TF6HFXTW.js.map → chunk-H7LRGY7U.js.map} +1 -1
- package/dist/{chunk-RWAOBMAK.js → chunk-HZWTDQVJ.js} +6 -6
- package/dist/{chunk-RWAOBMAK.js.map → chunk-HZWTDQVJ.js.map} +1 -1
- package/dist/{chunk-HOJ5E2PG.js → chunk-IHOUADLX.js} +3 -3
- package/dist/{chunk-HOJ5E2PG.js.map → chunk-IHOUADLX.js.map} +1 -1
- package/dist/{chunk-GUODUINX.js → chunk-JOHFXU4C.js} +5 -5
- package/dist/{chunk-GUODUINX.js.map → chunk-JOHFXU4C.js.map} +1 -1
- package/dist/{chunk-MZ4LTJQD.js → chunk-K4YRFOFA.js} +7 -7
- package/dist/{chunk-MZ4LTJQD.js.map → chunk-K4YRFOFA.js.map} +1 -1
- package/dist/{chunk-LFHYQ6AN.js → chunk-M5WTY3EH.js} +3 -3
- package/dist/{chunk-LFHYQ6AN.js.map → chunk-M5WTY3EH.js.map} +1 -1
- package/dist/{chunk-RYGEIQWO.js → chunk-MGG4XAJ5.js} +3 -3
- package/dist/{chunk-RYGEIQWO.js.map → chunk-MGG4XAJ5.js.map} +1 -1
- package/dist/{chunk-O7OFWC34.js → chunk-O6RZ6AWT.js} +4 -4
- package/dist/{chunk-O7OFWC34.js.map → chunk-O6RZ6AWT.js.map} +1 -1
- package/dist/{chunk-LVUH4FOB.js → chunk-PBT52UWY.js} +5 -5
- package/dist/{chunk-LVUH4FOB.js.map → chunk-PBT52UWY.js.map} +1 -1
- package/dist/{chunk-C6WYORKW.js → chunk-PCYZMJUC.js} +3 -3
- package/dist/{chunk-C6WYORKW.js.map → chunk-PCYZMJUC.js.map} +1 -1
- package/dist/{chunk-ODP2N7CD.js → chunk-QBVXQHVJ.js} +4 -4
- package/dist/{chunk-ODP2N7CD.js.map → chunk-QBVXQHVJ.js.map} +1 -1
- package/dist/{chunk-MWYKP7CI.js → chunk-QMWP2ZP6.js} +3 -3
- package/dist/{chunk-MWYKP7CI.js.map → chunk-QMWP2ZP6.js.map} +1 -1
- package/dist/{chunk-LNTLWEYI.js → chunk-QXWCIK6D.js} +4 -4
- package/dist/{chunk-LNTLWEYI.js.map → chunk-QXWCIK6D.js.map} +1 -1
- package/dist/{chunk-5UWRPWK2.js → chunk-R7VWIXFX.js} +3 -3
- package/dist/{chunk-5UWRPWK2.js.map → chunk-R7VWIXFX.js.map} +1 -1
- package/dist/{chunk-Q7E4TNN7.js → chunk-SLBO4SEE.js} +3 -3
- package/dist/{chunk-Q7E4TNN7.js.map → chunk-SLBO4SEE.js.map} +1 -1
- package/dist/{chunk-FXVII733.js → chunk-T2752RH7.js} +27 -3
- package/dist/chunk-T2752RH7.js.map +1 -0
- package/dist/{chunk-4L5RHZHJ.js → chunk-T2O2IQJQ.js} +4 -4
- package/dist/{chunk-4L5RHZHJ.js.map → chunk-T2O2IQJQ.js.map} +1 -1
- package/dist/{chunk-YVQXIZY7.js → chunk-TQQN5AE2.js} +6 -6
- package/dist/{chunk-YVQXIZY7.js.map → chunk-TQQN5AE2.js.map} +1 -1
- package/dist/{chunk-3KTDODC5.js → chunk-VDY3VY7S.js} +3 -3
- package/dist/{chunk-3KTDODC5.js.map → chunk-VDY3VY7S.js.map} +1 -1
- package/dist/{chunk-2ZR562TA.js → chunk-VEVFVWF3.js} +5 -5
- package/dist/{chunk-2ZR562TA.js.map → chunk-VEVFVWF3.js.map} +1 -1
- package/dist/{chunk-W5LVGFHX.js → chunk-VNHYMLGK.js} +6 -6
- package/dist/{chunk-W5LVGFHX.js.map → chunk-VNHYMLGK.js.map} +1 -1
- package/dist/{chunk-MDU7ERR3.js → chunk-VQO4TTPE.js} +4 -4
- package/dist/{chunk-MDU7ERR3.js.map → chunk-VQO4TTPE.js.map} +1 -1
- package/dist/{chunk-JYPIPQ3V.js → chunk-X6WDFQYL.js} +3 -3
- package/dist/{chunk-JYPIPQ3V.js.map → chunk-X6WDFQYL.js.map} +1 -1
- package/dist/{chunk-NHA4SBKG.js → chunk-XMRNYUQY.js} +3 -3
- package/dist/{chunk-NHA4SBKG.js.map → chunk-XMRNYUQY.js.map} +1 -1
- package/dist/{chunk-6JH4QYKT.js → chunk-YDRURQ2W.js} +4 -4
- package/dist/{chunk-6JH4QYKT.js.map → chunk-YDRURQ2W.js.map} +1 -1
- package/dist/{chunk-AD4QPYNG.js → chunk-YEBA44IV.js} +4 -4
- package/dist/{chunk-AD4QPYNG.js.map → chunk-YEBA44IV.js.map} +1 -1
- package/dist/{chunk-V46O3Z7J.js → chunk-Z4EQHB26.js} +5 -5
- package/dist/{chunk-V46O3Z7J.js.map → chunk-Z4EQHB26.js.map} +1 -1
- package/dist/{chunk-TAVF4E7T.js → chunk-ZSEECSDV.js} +8 -8
- package/dist/{chunk-TAVF4E7T.js.map → chunk-ZSEECSDV.js.map} +1 -1
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/drawer/index.js +23 -23
- package/dist/components/home/index.js +28 -28
- package/dist/components/layout/index.js +6 -6
- package/dist/components/product/index.js +25 -25
- package/dist/components/store/index.js +24 -24
- package/dist/components/toast/index.js +4 -4
- package/dist/dev/editor/index.js +2 -2
- package/dist/dev/index.js +2 -2
- package/dist/document-class-SWL4NCC6.js +32 -0
- package/dist/{document-class-TRLFCQHJ.js.map → document-class-SWL4NCC6.js.map} +1 -1
- package/dist/hooks/index.js +23 -23
- package/dist/hooks/useComments.js +3 -3
- package/dist/hooks/useGtm.js +23 -23
- package/dist/hooks/useMoney.js +23 -23
- package/dist/hooks/useProduct.js +3 -3
- package/dist/hooks/useStore.js +23 -23
- package/dist/hooks/useUser.js +5 -5
- package/dist/hooks/useWishlist.js +3 -3
- package/dist/index.js +23 -23
- package/dist/native-app/index.js +3 -3
- package/dist/{navigation-HWFEKUG6.js → navigation-7V4CSVG5.js} +8 -8
- package/dist/{navigation-HWFEKUG6.js.map → navigation-7V4CSVG5.js.map} +1 -1
- package/dist/{navigation-E75N4EU3.js → navigation-VMR4V27L.js} +7 -7
- package/dist/{navigation-E75N4EU3.js.map → navigation-VMR4V27L.js.map} +1 -1
- package/dist/{not-found-7SZU5K7G.js → not-found-S33EUV2Q.js} +26 -26
- package/dist/{not-found-7SZU5K7G.js.map → not-found-S33EUV2Q.js.map} +1 -1
- package/dist/providers/index.js +23 -23
- package/dist/routes/account/orders.js +8 -8
- package/dist/routes/account.js +17 -17
- package/dist/routes/blog/loader.d.ts.map +1 -1
- package/dist/routes/blog.js +27 -19
- package/dist/routes/blog.js.map +1 -1
- package/dist/routes/brands.js +8 -8
- package/dist/routes/cart.js +32 -32
- package/dist/routes/home.js +29 -29
- package/dist/routes/index.js +6 -6
- package/dist/routes/loyalty.js +9 -9
- package/dist/routes/page.js +8 -8
- package/dist/routes/product-listing.js +30 -30
- package/dist/routes/product.js +28 -28
- package/dist/routes/root/beforeLoad.d.ts.map +1 -1
- package/dist/routes/seo-redirects.js +6 -6
- package/dist/routes/testimonials.js +4 -4
- package/dist/routes/thank-you.js +8 -8
- package/dist/skeleton.js +29 -29
- package/dist/{store-lookup-LGYGZ4PU.js → store-lookup-D5C2LNXK.js} +11 -11
- package/dist/{store-lookup-LGYGZ4PU.js.map → store-lookup-D5C2LNXK.js.map} +1 -1
- package/dist/tanstack.js +19 -19
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/baseHead.js +2 -2
- package/dist/utils/index.js +6 -6
- package/dist/utils/store-base.d.ts +30 -0
- package/dist/utils/store-base.d.ts.map +1 -1
- package/dist/utils/store-identity.d.ts +8 -0
- package/dist/utils/store-identity.d.ts.map +1 -1
- package/dist/vite/index.js +3 -3
- package/package.json +1 -1
- package/tailwind/routes/blog/loader.ts.txt +26 -8
- package/tailwind/routes/root/beforeLoad.ts.txt +27 -9
- package/dist/chunk-FXVII733.js.map +0 -1
- package/dist/chunk-S4KV6QGP.js.map +0 -1
- package/dist/document-class-TRLFCQHJ.js +0 -32
package/dist/routes/blog.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { blog } from '../chunk-
|
|
2
|
-
import { buildHreflangAlternates } from '../chunk-
|
|
3
|
-
import { notFound, orThrow } from '../chunk-
|
|
1
|
+
import { blog } from '../chunk-3QOALQQJ.js';
|
|
2
|
+
import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
|
|
3
|
+
import { notFound, orThrow, responseStatusOf } from '../chunk-VEVFVWF3.js';
|
|
4
4
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-2DUN6DZK.js';
|
|
6
6
|
import '../chunk-Z5M4YYWT.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-6TFM3UTF.js';
|
|
8
|
+
import '../chunk-XMRNYUQY.js';
|
|
9
|
+
import '../chunk-T2752RH7.js';
|
|
10
10
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
11
11
|
import '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
|
@@ -14,6 +14,14 @@ import { lazyComponent } from '../chunk-VYGA5AT5.js';
|
|
|
14
14
|
import '../chunk-DGUM43GV.js';
|
|
15
15
|
|
|
16
16
|
// src/routes/blog/loader.ts
|
|
17
|
+
async function blogOrNotFound(promise) {
|
|
18
|
+
try {
|
|
19
|
+
return await orThrow(promise);
|
|
20
|
+
} catch (error) {
|
|
21
|
+
if (responseStatusOf(error) === 403) return notFound();
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
17
25
|
async function blogLoader() {
|
|
18
26
|
const i18n = getTwilightContext().i18n;
|
|
19
27
|
const breadcrumbs = [
|
|
@@ -50,7 +58,7 @@ async function blogSingleLoader({
|
|
|
50
58
|
const { id } = params;
|
|
51
59
|
const i18n = getTwilightContext().i18n;
|
|
52
60
|
if (!/^\d+$/.test(id)) throw notFound();
|
|
53
|
-
const article = await blog.articles.
|
|
61
|
+
const article = await blogOrNotFound(blog.articles.find(id));
|
|
54
62
|
const breadcrumbs = [
|
|
55
63
|
{ name: i18n.t("common.titles.home"), url: "/" },
|
|
56
64
|
{ name: i18n.t("blocks.footer.blog"), url: "/blog" },
|
|
@@ -73,8 +81,8 @@ async function blogAuthorLoader({
|
|
|
73
81
|
const { id } = params;
|
|
74
82
|
const i18n = getTwilightContext().i18n;
|
|
75
83
|
const [response, overview] = await Promise.all([
|
|
76
|
-
|
|
77
|
-
blog.get()
|
|
84
|
+
blogOrNotFound(blog.articles.list({ author: id })),
|
|
85
|
+
blogOrNotFound(blog.get())
|
|
78
86
|
]);
|
|
79
87
|
const author = response.author;
|
|
80
88
|
if (!author) throw notFound();
|
|
@@ -102,8 +110,8 @@ async function blogCategoryLoader({
|
|
|
102
110
|
const { id } = params;
|
|
103
111
|
const i18n = getTwilightContext().i18n;
|
|
104
112
|
const [response, overview] = await Promise.all([
|
|
105
|
-
|
|
106
|
-
blog.get()
|
|
113
|
+
blogOrNotFound(blog.articles.list({ category: id })),
|
|
114
|
+
blogOrNotFound(blog.get())
|
|
107
115
|
]);
|
|
108
116
|
const category = response.category;
|
|
109
117
|
if (!category) throw notFound();
|
|
@@ -126,8 +134,8 @@ async function blogTagLoader({
|
|
|
126
134
|
const { id } = params;
|
|
127
135
|
const i18n = getTwilightContext().i18n;
|
|
128
136
|
const [response, overview] = await Promise.all([
|
|
129
|
-
|
|
130
|
-
blog.get()
|
|
137
|
+
blogOrNotFound(blog.articles.list({ tag: id })),
|
|
138
|
+
blogOrNotFound(blog.get())
|
|
131
139
|
]);
|
|
132
140
|
const tag = response.tag;
|
|
133
141
|
if (!tag) throw notFound();
|
|
@@ -147,19 +155,19 @@ async function blogTagLoader({
|
|
|
147
155
|
|
|
148
156
|
// src/routes/blog/index.tsx
|
|
149
157
|
var LazyBlogPage = lazyComponent(
|
|
150
|
-
() => import('../BlogPage-
|
|
158
|
+
() => import('../BlogPage-6ZA474IU.js').then((m) => ({ default: m.BlogPage }))
|
|
151
159
|
);
|
|
152
160
|
var LazyBlogSinglePage = lazyComponent(
|
|
153
|
-
() => import('../BlogSinglePage-
|
|
161
|
+
() => import('../BlogSinglePage-W7WYKP7W.js').then((m) => ({ default: m.BlogSinglePage }))
|
|
154
162
|
);
|
|
155
163
|
var LazyBlogAuthorPage = lazyComponent(
|
|
156
|
-
() => import('../BlogAuthorPage-
|
|
164
|
+
() => import('../BlogAuthorPage-LVRGWFOC.js').then((m) => ({ default: m.BlogAuthorPage }))
|
|
157
165
|
);
|
|
158
166
|
var LazyBlogCategoryPage = lazyComponent(
|
|
159
|
-
() => import('../BlogCategoryPage-
|
|
167
|
+
() => import('../BlogCategoryPage-CONL6QSN.js').then((m) => ({ default: m.BlogCategoryPage }))
|
|
160
168
|
);
|
|
161
169
|
var LazyBlogTagPage = lazyComponent(
|
|
162
|
-
() => import('../BlogTagPage-
|
|
170
|
+
() => import('../BlogTagPage-G5JX7FSN.js').then((m) => ({ default: m.BlogTagPage }))
|
|
163
171
|
);
|
|
164
172
|
var BlogPage = LazyBlogPage;
|
|
165
173
|
var BlogSinglePage = LazyBlogSinglePage;
|
package/dist/routes/blog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/blog/loader.ts","../../src/routes/blog/index.tsx"],"names":[],"mappings":"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","file":"blog.js","sourcesContent":["import { blog } from '../../api/blog';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { notFound, orThrow } from '../../providers/NavigationProvider';\nimport type { Breadcrumb } from '../../types';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\n\nexport async function blogLoader(): Promise<BlogPageProps> {\n const i18n = getTwilightContext().i18n;\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n ];\n\n const page = {\n slug: RouteId.BLOG_INDEX,\n title: i18n.t('blocks.footer.blog') || 'Blog',\n breadcrumbs,\n };\n\n try {\n const overview = await blog.get();\n return {\n page,\n articles: overview.articles,\n categories: overview.categories,\n slides: overview.slides,\n popular: overview.popular,\n };\n } catch (_error) {\n return {\n page,\n articles: [],\n categories: [],\n slides: [],\n popular: [],\n };\n }\n}\n\nexport async function blogSingleLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogSinglePageProps> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n // The API answers a non-numeric id with 417, which `orThrow` would pass through as an error.\n if (!/^\\d+$/.test(id)) throw notFound();\n const article = await blog.articles.findOrThrow(id);\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: article.name, url: article.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_SINGLE,\n id: article.id,\n title: article.name,\n breadcrumbs,\n },\n article,\n related: article.related,\n };\n}\n\nexport async function blogAuthorLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<BlogAuthorLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ author: id })),\n blog.get(),\n ]);\n const author = response.author;\n // The API answers an unknown id without the author object: 404 instead of a TypeError (500).\n if (!author) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: author.name, url: author.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_INDEX_AUTHOR,\n id,\n title: author.name,\n breadcrumbs,\n },\n author,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogCategoryLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogCategoryLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ category: id })),\n blog.get(),\n ]);\n const category = response.category;\n if (!category) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: category.name, url: category.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_CATEGORY, id: category.id, title: category.name, breadcrumbs },\n blogCategory: category,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogTagLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogTagLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ tag: id })),\n blog.get(),\n ]);\n const tag = response.tag;\n if (!tag) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: tag.name, url: tag.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_TAG, id: tag.id, title: tag.name, breadcrumbs },\n blogTag: tag,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategory as BlogCategoryType,\n CategoryMeta,\n BlogTag as BlogTagType,\n BlogAuthor as BlogAuthorType,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nconst LazyBlogPage = lazyComponent(() =>\n import('./BlogPage').then((m) => ({ default: m.BlogPage }))\n);\nconst LazyBlogSinglePage = lazyComponent(() =>\n import('./BlogSinglePage').then((m) => ({ default: m.BlogSinglePage }))\n);\nconst LazyBlogAuthorPage = lazyComponent(() =>\n import('./BlogAuthorPage').then((m) => ({ default: m.BlogAuthorPage }))\n);\nconst LazyBlogCategoryPage = lazyComponent(() =>\n import('./BlogCategoryPage').then((m) => ({ default: m.BlogCategoryPage }))\n);\nconst LazyBlogTagPage = lazyComponent(() =>\n import('./BlogTagPage').then((m) => ({ default: m.BlogTagPage }))\n);\n\nexport const BlogPage = LazyBlogPage;\nexport const BlogSinglePage = LazyBlogSinglePage;\nexport const BlogAuthorPage = LazyBlogAuthorPage;\nexport const BlogCategoryPage = LazyBlogCategoryPage;\nexport const BlogTagPage = LazyBlogTagPage;\nexport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport { lazyComponent } from '../../utils/lazy-component';\nexport type {\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n BlogPageProps,\n BlogSinglePageProps,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategoryType,\n CategoryMeta,\n BlogTagType,\n BlogAuthorType,\n};\n\nasync function blogLoaderWithExtend(\n _ctx?: { locale?: string },\n extend?: (\n data: BlogPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogPageProps> {\n const data = await blogLoader();\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as BlogPageProps;\n }\n return data;\n}\n\nfunction blogHead(ctx: TwilightContext, data: BlogPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogSingleLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogSinglePageProps,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogSinglePageProps> {\n const data = await blogSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogSinglePageProps;\n }\n return data;\n}\n\nfunction blogSingleHead(ctx: TwilightContext, data: BlogSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.article.meta?.title ?? data.article.name,\n description: data.article.meta?.description ?? data.article.description,\n canonical: data.article.meta?.canonical ?? data.article.url,\n openGraph: {\n title: data.article.meta?.title ?? data.article.name,\n images: data.article.meta?.og_image ?? data.article.image,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogAuthorLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: BlogAuthorLoaderData,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogAuthorLoaderData> {\n const data = await blogAuthorLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogAuthorLoaderData;\n }\n return data;\n}\n\nfunction blogAuthorHead(ctx: TwilightContext, data: BlogAuthorLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.author.name,\n description: `Articles by ${data.author.name}`,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogCategoryLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogCategoryLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogCategoryLoaderData> {\n const data = await blogCategoryLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogCategoryLoaderData;\n }\n return data;\n}\n\nfunction blogCategoryHead(ctx: TwilightContext, data: BlogCategoryLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogCategory.meta?.title ?? data.blogCategory.name,\n description: data.blogCategory.meta?.description ?? `Articles in ${data.blogCategory.name}`,\n canonical: data.blogCategory.meta?.canonical ?? data.blogCategory.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogTagLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogTagLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogTagLoaderData> {\n const data = await blogTagLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogTagLoaderData;\n }\n return data;\n}\n\nfunction blogTagHead(ctx: TwilightContext, data: BlogTagLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogTag.name,\n description: `Articles tagged with ${data.blogTag.name}`,\n canonical: data.blogTag.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Blog = {\n id: RouteId.BLOG_INDEX,\n loader: blogLoaderWithExtend,\n head: blogHead,\n Component: LazyBlogPage,\n} as const;\nexport const BlogSingle = {\n id: RouteId.BLOG_SINGLE,\n loader: blogSingleLoaderWithExtend,\n head: blogSingleHead,\n Component: LazyBlogSinglePage,\n} as const;\nexport const BlogAuthorRoute = {\n id: RouteId.BLOG_INDEX_AUTHOR,\n loader: blogAuthorLoaderWithExtend,\n head: blogAuthorHead,\n Component: LazyBlogAuthorPage,\n} as const;\nexport const BlogCategoryRoute = {\n id: RouteId.BLOG_INDEX_CATEGORY,\n loader: blogCategoryLoaderWithExtend,\n head: blogCategoryHead,\n Component: LazyBlogCategoryPage,\n} as const;\nexport const BlogTagRoute = {\n id: RouteId.BLOG_INDEX_TAG,\n loader: blogTagLoaderWithExtend,\n head: blogTagHead,\n Component: LazyBlogTagPage,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/routes/blog/loader.ts","../../src/routes/blog/index.tsx"],"names":[],"mappings":"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","file":"blog.js","sourcesContent":["import { blog } from '../../api/blog';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { notFound, orThrow, responseStatusOf } from '../../providers/NavigationProvider';\nimport type { Breadcrumb } from '../../types';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\n\n/**\n * {@link orThrow} for the blog, which also answers 404 when the store's plan lacks the blog.\n *\n * Every blog endpoint sits behind `feature:store-blog`, which answers 403 (\"الميزة غير متاحة في\n * الوقت الحالي\") on such a store, so an article a crawler still links to was a 500. There is no\n * page to show, so the route answers the router's not-found like a missing article. Twig answers\n * the same store's `/blog` with its 403 page and an article with a 302 home. Kept to the blog:\n * elsewhere a 403 can mean the shopper must sign in.\n */\nasync function blogOrNotFound<T>(promise: Promise<T>): Promise<T> {\n try {\n return await orThrow(promise);\n } catch (error) {\n if (responseStatusOf(error) === 403) return notFound();\n throw error;\n }\n}\n\nexport async function blogLoader(): Promise<BlogPageProps> {\n const i18n = getTwilightContext().i18n;\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n ];\n\n const page = {\n slug: RouteId.BLOG_INDEX,\n title: i18n.t('blocks.footer.blog') || 'Blog',\n breadcrumbs,\n };\n\n try {\n const overview = await blog.get();\n return {\n page,\n articles: overview.articles,\n categories: overview.categories,\n slides: overview.slides,\n popular: overview.popular,\n };\n } catch (_error) {\n return {\n page,\n articles: [],\n categories: [],\n slides: [],\n popular: [],\n };\n }\n}\n\nexport async function blogSingleLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogSinglePageProps> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n // The API answers a non-numeric id with 417, which `orThrow` would pass through as an error.\n if (!/^\\d+$/.test(id)) throw notFound();\n const article = await blogOrNotFound(blog.articles.find(id));\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: article.name, url: article.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_SINGLE,\n id: article.id,\n title: article.name,\n breadcrumbs,\n },\n article,\n related: article.related,\n };\n}\n\nexport async function blogAuthorLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<BlogAuthorLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n blogOrNotFound(blog.articles.list({ author: id })),\n blogOrNotFound(blog.get()),\n ]);\n const author = response.author;\n // The API answers an unknown id without the author object: 404 instead of a TypeError (500).\n if (!author) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: author.name, url: author.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_INDEX_AUTHOR,\n id,\n title: author.name,\n breadcrumbs,\n },\n author,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogCategoryLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogCategoryLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n blogOrNotFound(blog.articles.list({ category: id })),\n blogOrNotFound(blog.get()),\n ]);\n const category = response.category;\n if (!category) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: category.name, url: category.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_CATEGORY, id: category.id, title: category.name, breadcrumbs },\n blogCategory: category,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogTagLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogTagLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n blogOrNotFound(blog.articles.list({ tag: id })),\n blogOrNotFound(blog.get()),\n ]);\n const tag = response.tag;\n if (!tag) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: tag.name, url: tag.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_TAG, id: tag.id, title: tag.name, breadcrumbs },\n blogTag: tag,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategory as BlogCategoryType,\n CategoryMeta,\n BlogTag as BlogTagType,\n BlogAuthor as BlogAuthorType,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nconst LazyBlogPage = lazyComponent(() =>\n import('./BlogPage').then((m) => ({ default: m.BlogPage }))\n);\nconst LazyBlogSinglePage = lazyComponent(() =>\n import('./BlogSinglePage').then((m) => ({ default: m.BlogSinglePage }))\n);\nconst LazyBlogAuthorPage = lazyComponent(() =>\n import('./BlogAuthorPage').then((m) => ({ default: m.BlogAuthorPage }))\n);\nconst LazyBlogCategoryPage = lazyComponent(() =>\n import('./BlogCategoryPage').then((m) => ({ default: m.BlogCategoryPage }))\n);\nconst LazyBlogTagPage = lazyComponent(() =>\n import('./BlogTagPage').then((m) => ({ default: m.BlogTagPage }))\n);\n\nexport const BlogPage = LazyBlogPage;\nexport const BlogSinglePage = LazyBlogSinglePage;\nexport const BlogAuthorPage = LazyBlogAuthorPage;\nexport const BlogCategoryPage = LazyBlogCategoryPage;\nexport const BlogTagPage = LazyBlogTagPage;\nexport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport { lazyComponent } from '../../utils/lazy-component';\nexport type {\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n BlogPageProps,\n BlogSinglePageProps,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategoryType,\n CategoryMeta,\n BlogTagType,\n BlogAuthorType,\n};\n\nasync function blogLoaderWithExtend(\n _ctx?: { locale?: string },\n extend?: (\n data: BlogPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogPageProps> {\n const data = await blogLoader();\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as BlogPageProps;\n }\n return data;\n}\n\nfunction blogHead(ctx: TwilightContext, data: BlogPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogSingleLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogSinglePageProps,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogSinglePageProps> {\n const data = await blogSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogSinglePageProps;\n }\n return data;\n}\n\nfunction blogSingleHead(ctx: TwilightContext, data: BlogSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.article.meta?.title ?? data.article.name,\n description: data.article.meta?.description ?? data.article.description,\n canonical: data.article.meta?.canonical ?? data.article.url,\n openGraph: {\n title: data.article.meta?.title ?? data.article.name,\n images: data.article.meta?.og_image ?? data.article.image,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogAuthorLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: BlogAuthorLoaderData,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogAuthorLoaderData> {\n const data = await blogAuthorLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogAuthorLoaderData;\n }\n return data;\n}\n\nfunction blogAuthorHead(ctx: TwilightContext, data: BlogAuthorLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.author.name,\n description: `Articles by ${data.author.name}`,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogCategoryLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogCategoryLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogCategoryLoaderData> {\n const data = await blogCategoryLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogCategoryLoaderData;\n }\n return data;\n}\n\nfunction blogCategoryHead(ctx: TwilightContext, data: BlogCategoryLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogCategory.meta?.title ?? data.blogCategory.name,\n description: data.blogCategory.meta?.description ?? `Articles in ${data.blogCategory.name}`,\n canonical: data.blogCategory.meta?.canonical ?? data.blogCategory.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogTagLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogTagLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogTagLoaderData> {\n const data = await blogTagLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogTagLoaderData;\n }\n return data;\n}\n\nfunction blogTagHead(ctx: TwilightContext, data: BlogTagLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogTag.name,\n description: `Articles tagged with ${data.blogTag.name}`,\n canonical: data.blogTag.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Blog = {\n id: RouteId.BLOG_INDEX,\n loader: blogLoaderWithExtend,\n head: blogHead,\n Component: LazyBlogPage,\n} as const;\nexport const BlogSingle = {\n id: RouteId.BLOG_SINGLE,\n loader: blogSingleLoaderWithExtend,\n head: blogSingleHead,\n Component: LazyBlogSinglePage,\n} as const;\nexport const BlogAuthorRoute = {\n id: RouteId.BLOG_INDEX_AUTHOR,\n loader: blogAuthorLoaderWithExtend,\n head: blogAuthorHead,\n Component: LazyBlogAuthorPage,\n} as const;\nexport const BlogCategoryRoute = {\n id: RouteId.BLOG_INDEX_CATEGORY,\n loader: blogCategoryLoaderWithExtend,\n head: blogCategoryHead,\n Component: LazyBlogCategoryPage,\n} as const;\nexport const BlogTagRoute = {\n id: RouteId.BLOG_INDEX_TAG,\n loader: blogTagLoaderWithExtend,\n head: blogTagHead,\n Component: LazyBlogTagPage,\n} as const;\n"]}
|
package/dist/routes/brands.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { brand } from '../chunk-
|
|
2
|
-
import { buildHreflangAlternates } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
import { brand } from '../chunk-QXWCIK6D.js';
|
|
2
|
+
import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
|
|
3
|
+
import '../chunk-VEVFVWF3.js';
|
|
4
4
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-2DUN6DZK.js';
|
|
6
6
|
import '../chunk-Z5M4YYWT.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-6TFM3UTF.js';
|
|
8
|
+
import '../chunk-XMRNYUQY.js';
|
|
9
|
+
import '../chunk-T2752RH7.js';
|
|
10
10
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
11
11
|
import '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
|
@@ -26,7 +26,7 @@ async function brandsLoader() {
|
|
|
26
26
|
|
|
27
27
|
// src/routes/brands/index.tsx
|
|
28
28
|
var LazyBrandsPage = lazyComponent(
|
|
29
|
-
() => import('../BrandsPage-
|
|
29
|
+
() => import('../BrandsPage-TB5NDSGL.js').then((m) => ({ default: m.BrandsPage }))
|
|
30
30
|
);
|
|
31
31
|
var BrandsPage = LazyBrandsPage;
|
|
32
32
|
async function brandsLoaderWithExtend(_ctx, extend) {
|
package/dist/routes/cart.js
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { cart } from '../chunk-
|
|
2
|
-
import { loyalty } from '../chunk-
|
|
1
|
+
import { cart } from '../chunk-PBT52UWY.js';
|
|
2
|
+
import { loyalty } from '../chunk-B36NISD2.js';
|
|
3
3
|
import { CartSkeleton } from '../chunk-N7CCSGZF.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-HZWTDQVJ.js';
|
|
5
5
|
import '../chunk-IXHM24Z4.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-ZSEECSDV.js';
|
|
7
|
+
import '../chunk-FXW6H6J3.js';
|
|
8
|
+
import '../chunk-7PPNAVBF.js';
|
|
9
|
+
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-Z4EQHB26.js';
|
|
10
|
+
import '../chunk-DHKZCR6U.js';
|
|
11
|
+
import '../chunk-JOHFXU4C.js';
|
|
12
12
|
import '../chunk-Y32RHCOH.js';
|
|
13
|
-
import '../chunk-
|
|
13
|
+
import '../chunk-BKSVKSAW.js';
|
|
14
14
|
import '../chunk-Q77J3D2W.js';
|
|
15
|
-
import '../chunk-
|
|
16
|
-
import '../chunk-
|
|
17
|
-
import '../chunk-
|
|
15
|
+
import '../chunk-F7S2QA3D.js';
|
|
16
|
+
import '../chunk-PCYZMJUC.js';
|
|
17
|
+
import '../chunk-5V4W3GBI.js';
|
|
18
18
|
import '../chunk-X55R4VVK.js';
|
|
19
19
|
import '../chunk-YL6X3ZMG.js';
|
|
20
|
-
import '../chunk-
|
|
20
|
+
import '../chunk-YEBA44IV.js';
|
|
21
21
|
import '../chunk-OXMUPNMH.js';
|
|
22
|
-
import '../chunk-
|
|
22
|
+
import '../chunk-5EN3XZ32.js';
|
|
23
23
|
import '../chunk-VVZNW5CB.js';
|
|
24
|
-
import '../chunk-
|
|
24
|
+
import '../chunk-EGI7F57E.js';
|
|
25
25
|
import '../chunk-GD26FI4J.js';
|
|
26
|
-
import '../chunk-
|
|
27
|
-
import { buildHreflangAlternates } from '../chunk-
|
|
28
|
-
import '../chunk-
|
|
26
|
+
import '../chunk-SLBO4SEE.js';
|
|
27
|
+
import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
|
|
28
|
+
import '../chunk-VEVFVWF3.js';
|
|
29
29
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
30
|
-
import '../chunk-
|
|
30
|
+
import '../chunk-IHOUADLX.js';
|
|
31
31
|
import '../chunk-HI5V5X3S.js';
|
|
32
|
-
import '../chunk-
|
|
33
|
-
import '../chunk-
|
|
32
|
+
import '../chunk-3O6BB7SI.js';
|
|
33
|
+
import '../chunk-A4Y5BVJN.js';
|
|
34
34
|
import '../chunk-MVT5AF2A.js';
|
|
35
35
|
import '../chunk-Z653O7MX.js';
|
|
36
36
|
import '../chunk-ZCH7W7DZ.js';
|
|
37
|
-
import '../chunk-
|
|
37
|
+
import '../chunk-H7LRGY7U.js';
|
|
38
38
|
import '../chunk-JWXJPJBO.js';
|
|
39
39
|
import '../chunk-CW625T2E.js';
|
|
40
40
|
import '../chunk-7V36I5GT.js';
|
|
41
41
|
import '../chunk-6WI7R2BD.js';
|
|
42
|
-
import '../chunk-
|
|
42
|
+
import '../chunk-M5WTY3EH.js';
|
|
43
43
|
import '../chunk-OAMIDZKW.js';
|
|
44
|
-
import '../chunk-
|
|
44
|
+
import '../chunk-YDRURQ2W.js';
|
|
45
45
|
import '../chunk-OQIIJRAS.js';
|
|
46
46
|
import '../chunk-V2ZDTY6H.js';
|
|
47
|
-
import '../chunk-
|
|
47
|
+
import '../chunk-VDY3VY7S.js';
|
|
48
48
|
import { HookSlot } from '../chunk-5XDPAKF5.js';
|
|
49
49
|
import '../chunk-GCPEMNSU.js';
|
|
50
|
-
import '../chunk-
|
|
50
|
+
import '../chunk-2DUN6DZK.js';
|
|
51
51
|
import '../chunk-Z5M4YYWT.js';
|
|
52
52
|
import { useTranslation } from '../chunk-TYNZ5B2B.js';
|
|
53
|
-
import { LazyBreadcrumb, LazyNoContent } from '../chunk-
|
|
53
|
+
import { LazyBreadcrumb, LazyNoContent } from '../chunk-FTH3XLIN.js';
|
|
54
54
|
import '../chunk-AXW67SY7.js';
|
|
55
55
|
import '../chunk-BYMOPN2S.js';
|
|
56
56
|
import '../chunk-SKLEJJ6M.js';
|
|
@@ -58,10 +58,10 @@ import '../chunk-6BZ5TKEV.js';
|
|
|
58
58
|
import '../chunk-FZKRSGLP.js';
|
|
59
59
|
import '../chunk-KYMWEUN2.js';
|
|
60
60
|
import '../chunk-YA6ABQB7.js';
|
|
61
|
-
import '../chunk-
|
|
62
|
-
import '../chunk-
|
|
63
|
-
import '../chunk-
|
|
64
|
-
import '../chunk-
|
|
61
|
+
import '../chunk-QMWP2ZP6.js';
|
|
62
|
+
import '../chunk-6TFM3UTF.js';
|
|
63
|
+
import '../chunk-XMRNYUQY.js';
|
|
64
|
+
import '../chunk-T2752RH7.js';
|
|
65
65
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
66
66
|
import '../chunk-T72DAX7R.js';
|
|
67
67
|
import { useTwilight } from '../chunk-DF6FBKDN.js';
|
package/dist/routes/home.js
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
export { Home, HomeSkeleton, homeLoader } from '../chunk-
|
|
1
|
+
export { Home, HomeSkeleton, homeLoader } from '../chunk-HZWTDQVJ.js';
|
|
2
2
|
import '../chunk-IXHM24Z4.js';
|
|
3
|
-
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
3
|
+
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-ZSEECSDV.js';
|
|
4
|
+
import '../chunk-FXW6H6J3.js';
|
|
5
|
+
import '../chunk-7PPNAVBF.js';
|
|
6
|
+
import '../chunk-DHKZCR6U.js';
|
|
7
|
+
import '../chunk-JOHFXU4C.js';
|
|
8
8
|
import '../chunk-Y32RHCOH.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-BKSVKSAW.js';
|
|
10
10
|
import '../chunk-Q77J3D2W.js';
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-F7S2QA3D.js';
|
|
12
|
+
import '../chunk-PCYZMJUC.js';
|
|
13
|
+
import '../chunk-5V4W3GBI.js';
|
|
14
14
|
import '../chunk-X55R4VVK.js';
|
|
15
15
|
import '../chunk-YL6X3ZMG.js';
|
|
16
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-YEBA44IV.js';
|
|
17
17
|
import '../chunk-OXMUPNMH.js';
|
|
18
|
-
import '../chunk-
|
|
18
|
+
import '../chunk-5EN3XZ32.js';
|
|
19
19
|
import '../chunk-VVZNW5CB.js';
|
|
20
|
-
import '../chunk-
|
|
20
|
+
import '../chunk-EGI7F57E.js';
|
|
21
21
|
import '../chunk-GD26FI4J.js';
|
|
22
|
-
import '../chunk-
|
|
23
|
-
import '../chunk-
|
|
24
|
-
import '../chunk-
|
|
22
|
+
import '../chunk-SLBO4SEE.js';
|
|
23
|
+
import '../chunk-MGG4XAJ5.js';
|
|
24
|
+
import '../chunk-VEVFVWF3.js';
|
|
25
25
|
import '../chunk-OUW6WESU.js';
|
|
26
|
-
import '../chunk-
|
|
26
|
+
import '../chunk-IHOUADLX.js';
|
|
27
27
|
import '../chunk-HI5V5X3S.js';
|
|
28
|
-
import '../chunk-
|
|
29
|
-
import '../chunk-
|
|
28
|
+
import '../chunk-3O6BB7SI.js';
|
|
29
|
+
import '../chunk-A4Y5BVJN.js';
|
|
30
30
|
import '../chunk-MVT5AF2A.js';
|
|
31
31
|
import '../chunk-Z653O7MX.js';
|
|
32
32
|
import '../chunk-ZCH7W7DZ.js';
|
|
33
|
-
import '../chunk-
|
|
33
|
+
import '../chunk-H7LRGY7U.js';
|
|
34
34
|
import '../chunk-JWXJPJBO.js';
|
|
35
35
|
import '../chunk-CW625T2E.js';
|
|
36
36
|
import '../chunk-7V36I5GT.js';
|
|
37
37
|
import '../chunk-6WI7R2BD.js';
|
|
38
|
-
import '../chunk-
|
|
38
|
+
import '../chunk-M5WTY3EH.js';
|
|
39
39
|
import '../chunk-OAMIDZKW.js';
|
|
40
|
-
import '../chunk-
|
|
40
|
+
import '../chunk-YDRURQ2W.js';
|
|
41
41
|
import '../chunk-OQIIJRAS.js';
|
|
42
42
|
import '../chunk-V2ZDTY6H.js';
|
|
43
|
-
import '../chunk-
|
|
43
|
+
import '../chunk-VDY3VY7S.js';
|
|
44
44
|
import '../chunk-5XDPAKF5.js';
|
|
45
45
|
import '../chunk-GCPEMNSU.js';
|
|
46
|
-
import '../chunk-
|
|
46
|
+
import '../chunk-2DUN6DZK.js';
|
|
47
47
|
import '../chunk-Z5M4YYWT.js';
|
|
48
48
|
import '../chunk-TYNZ5B2B.js';
|
|
49
|
-
import '../chunk-
|
|
49
|
+
import '../chunk-FTH3XLIN.js';
|
|
50
50
|
import '../chunk-AXW67SY7.js';
|
|
51
51
|
import '../chunk-BYMOPN2S.js';
|
|
52
52
|
import '../chunk-SKLEJJ6M.js';
|
|
@@ -54,10 +54,10 @@ import '../chunk-6BZ5TKEV.js';
|
|
|
54
54
|
import '../chunk-FZKRSGLP.js';
|
|
55
55
|
import '../chunk-KYMWEUN2.js';
|
|
56
56
|
import '../chunk-YA6ABQB7.js';
|
|
57
|
-
import '../chunk-
|
|
58
|
-
import '../chunk-
|
|
59
|
-
import '../chunk-
|
|
60
|
-
import '../chunk-
|
|
57
|
+
import '../chunk-QMWP2ZP6.js';
|
|
58
|
+
import '../chunk-6TFM3UTF.js';
|
|
59
|
+
import '../chunk-XMRNYUQY.js';
|
|
60
|
+
import '../chunk-T2752RH7.js';
|
|
61
61
|
import '../chunk-6K34BCUP.js';
|
|
62
62
|
import '../chunk-T72DAX7R.js';
|
|
63
63
|
import '../chunk-DF6FBKDN.js';
|
package/dist/routes/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { slugBrandRedirectLoader } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { slugBrandRedirectLoader } from '../chunk-BEYWTFOR.js';
|
|
2
|
+
import '../chunk-VEVFVWF3.js';
|
|
3
3
|
import '../chunk-OUW6WESU.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-2DUN6DZK.js';
|
|
5
5
|
import '../chunk-Z5M4YYWT.js';
|
|
6
6
|
import '../chunk-TYNZ5B2B.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-6TFM3UTF.js';
|
|
8
|
+
import '../chunk-XMRNYUQY.js';
|
|
9
|
+
import '../chunk-T2752RH7.js';
|
|
10
10
|
import '../chunk-6K34BCUP.js';
|
|
11
11
|
export { FALLBACK_LOCALE, SUPPORTED_LOCALES, getLanguageInfo, isLocale } from '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
package/dist/routes/loyalty.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { loyalty } from '../chunk-
|
|
2
|
-
import { buildHreflangAlternates } from '../chunk-
|
|
3
|
-
import { unauthorized, orUnauthorized, redirect } from '../chunk-
|
|
1
|
+
import { loyalty } from '../chunk-B36NISD2.js';
|
|
2
|
+
import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
|
|
3
|
+
import { unauthorized, orUnauthorized, redirect } from '../chunk-VEVFVWF3.js';
|
|
4
4
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
5
|
-
import { getAuthToken } from '../chunk-
|
|
5
|
+
import { getAuthToken } from '../chunk-2DUN6DZK.js';
|
|
6
6
|
import '../chunk-Z5M4YYWT.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-6TFM3UTF.js';
|
|
8
|
+
import '../chunk-XMRNYUQY.js';
|
|
9
|
+
import '../chunk-T2752RH7.js';
|
|
10
10
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
11
11
|
import { FALLBACK_LOCALE } from '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
|
@@ -59,10 +59,10 @@ async function loyaltyPointsLoader(locale) {
|
|
|
59
59
|
|
|
60
60
|
// src/routes/loyalty/index.tsx
|
|
61
61
|
var LazyLoyaltyPage = lazyComponent(
|
|
62
|
-
() => import('../LoyaltyPage-
|
|
62
|
+
() => import('../LoyaltyPage-GV6WMYVE.js').then((m) => ({ default: m.LoyaltyPage }))
|
|
63
63
|
);
|
|
64
64
|
var LazyLoyaltyPointsPage = lazyComponent(
|
|
65
|
-
() => import('../LoyaltyPointsPage-
|
|
65
|
+
() => import('../LoyaltyPointsPage-QNOVSCKB.js').then((m) => ({ default: m.LoyaltyPointsPage }))
|
|
66
66
|
);
|
|
67
67
|
var LoyaltyPage = LazyLoyaltyPage;
|
|
68
68
|
var LoyaltyPointsPage = LazyLoyaltyPointsPage;
|
package/dist/routes/page.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { page } from '../chunk-
|
|
2
|
-
import { buildHreflangAlternates } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
import { page } from '../chunk-AECYX56P.js';
|
|
2
|
+
import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
|
|
3
|
+
import '../chunk-VEVFVWF3.js';
|
|
4
4
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-2DUN6DZK.js';
|
|
6
6
|
import '../chunk-Z5M4YYWT.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-6TFM3UTF.js';
|
|
8
|
+
import '../chunk-XMRNYUQY.js';
|
|
9
|
+
import '../chunk-T2752RH7.js';
|
|
10
10
|
import '../chunk-6K34BCUP.js';
|
|
11
11
|
import '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
|
@@ -31,7 +31,7 @@ async function pageSingleLoader({ params }) {
|
|
|
31
31
|
|
|
32
32
|
// src/routes/page/index.tsx
|
|
33
33
|
var LazyPageSingle = lazyComponent(
|
|
34
|
-
() => import('../PageSingle-
|
|
34
|
+
() => import('../PageSingle-D7I6EHBF.js').then((m) => ({ default: m.PageSingle }))
|
|
35
35
|
);
|
|
36
36
|
var PageSingleLazy = LazyPageSingle;
|
|
37
37
|
async function loader(ctx, extend) {
|
|
@@ -1,54 +1,54 @@
|
|
|
1
1
|
import { SORT_IDS, availableSortIds, sortOptions } from '../chunk-3LZJXKVO.js';
|
|
2
|
-
import { category } from '../chunk-
|
|
3
|
-
import { brand } from '../chunk-
|
|
4
|
-
import { useReorderButtons, LazyTestimonials } from '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import { product, parseNextPageToken } from '../chunk-
|
|
2
|
+
import { category } from '../chunk-O6RZ6AWT.js';
|
|
3
|
+
import { brand } from '../chunk-QXWCIK6D.js';
|
|
4
|
+
import { useReorderButtons, LazyTestimonials } from '../chunk-ZSEECSDV.js';
|
|
5
|
+
import '../chunk-FXW6H6J3.js';
|
|
6
|
+
import { product, parseNextPageToken } from '../chunk-7PPNAVBF.js';
|
|
7
7
|
import { Drawer } from '../chunk-6TKIUG5C.js';
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import { ProductCard } from '../chunk-
|
|
8
|
+
import '../chunk-DHKZCR6U.js';
|
|
9
|
+
import { ProductCard } from '../chunk-JOHFXU4C.js';
|
|
10
10
|
import { registry, COMPONENT_KEYS } from '../chunk-Y32RHCOH.js';
|
|
11
|
-
import { useStore } from '../chunk-
|
|
11
|
+
import { useStore } from '../chunk-BKSVKSAW.js';
|
|
12
12
|
import '../chunk-Q77J3D2W.js';
|
|
13
|
-
import '../chunk-
|
|
14
|
-
import '../chunk-
|
|
15
|
-
import '../chunk-
|
|
13
|
+
import '../chunk-F7S2QA3D.js';
|
|
14
|
+
import '../chunk-PCYZMJUC.js';
|
|
15
|
+
import '../chunk-5V4W3GBI.js';
|
|
16
16
|
import '../chunk-X55R4VVK.js';
|
|
17
17
|
import '../chunk-YL6X3ZMG.js';
|
|
18
|
-
import '../chunk-
|
|
18
|
+
import '../chunk-YEBA44IV.js';
|
|
19
19
|
import '../chunk-OXMUPNMH.js';
|
|
20
|
-
import '../chunk-
|
|
20
|
+
import '../chunk-5EN3XZ32.js';
|
|
21
21
|
import '../chunk-VVZNW5CB.js';
|
|
22
|
-
import '../chunk-
|
|
22
|
+
import '../chunk-EGI7F57E.js';
|
|
23
23
|
import '../chunk-GD26FI4J.js';
|
|
24
|
-
import '../chunk-
|
|
25
|
-
import { buildHreflangAlternates, storePageUrl } from '../chunk-
|
|
26
|
-
import { unauthorized, notFound, orThrow, useNavigate, useLocation } from '../chunk-
|
|
24
|
+
import '../chunk-SLBO4SEE.js';
|
|
25
|
+
import { buildHreflangAlternates, storePageUrl } from '../chunk-MGG4XAJ5.js';
|
|
26
|
+
import { unauthorized, notFound, orThrow, useNavigate, useLocation } from '../chunk-VEVFVWF3.js';
|
|
27
27
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
28
|
-
import '../chunk-
|
|
28
|
+
import '../chunk-IHOUADLX.js';
|
|
29
29
|
import '../chunk-HI5V5X3S.js';
|
|
30
|
-
import '../chunk-
|
|
31
|
-
import '../chunk-
|
|
30
|
+
import '../chunk-3O6BB7SI.js';
|
|
31
|
+
import '../chunk-A4Y5BVJN.js';
|
|
32
32
|
import '../chunk-MVT5AF2A.js';
|
|
33
33
|
import '../chunk-Z653O7MX.js';
|
|
34
34
|
import '../chunk-ZCH7W7DZ.js';
|
|
35
|
-
import '../chunk-
|
|
35
|
+
import '../chunk-H7LRGY7U.js';
|
|
36
36
|
import '../chunk-JWXJPJBO.js';
|
|
37
37
|
import '../chunk-CW625T2E.js';
|
|
38
38
|
import '../chunk-7V36I5GT.js';
|
|
39
39
|
import '../chunk-6WI7R2BD.js';
|
|
40
|
-
import '../chunk-
|
|
40
|
+
import '../chunk-M5WTY3EH.js';
|
|
41
41
|
import '../chunk-OAMIDZKW.js';
|
|
42
|
-
import '../chunk-
|
|
42
|
+
import '../chunk-YDRURQ2W.js';
|
|
43
43
|
import '../chunk-OQIIJRAS.js';
|
|
44
44
|
import '../chunk-V2ZDTY6H.js';
|
|
45
|
-
import '../chunk-
|
|
45
|
+
import '../chunk-VDY3VY7S.js';
|
|
46
46
|
import { HookSlot } from '../chunk-5XDPAKF5.js';
|
|
47
47
|
import '../chunk-GCPEMNSU.js';
|
|
48
|
-
import { getAuthToken } from '../chunk-
|
|
48
|
+
import { getAuthToken } from '../chunk-2DUN6DZK.js';
|
|
49
49
|
import '../chunk-Z5M4YYWT.js';
|
|
50
50
|
import { useTranslation } from '../chunk-TYNZ5B2B.js';
|
|
51
|
-
import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-
|
|
51
|
+
import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-FTH3XLIN.js';
|
|
52
52
|
import '../chunk-AXW67SY7.js';
|
|
53
53
|
import '../chunk-BYMOPN2S.js';
|
|
54
54
|
import '../chunk-SKLEJJ6M.js';
|
|
@@ -56,10 +56,10 @@ import '../chunk-6BZ5TKEV.js';
|
|
|
56
56
|
import '../chunk-FZKRSGLP.js';
|
|
57
57
|
import '../chunk-KYMWEUN2.js';
|
|
58
58
|
import '../chunk-YA6ABQB7.js';
|
|
59
|
-
import '../chunk-
|
|
60
|
-
import '../chunk-
|
|
61
|
-
import { onSallaEvent } from '../chunk-
|
|
62
|
-
import '../chunk-
|
|
59
|
+
import '../chunk-QMWP2ZP6.js';
|
|
60
|
+
import '../chunk-6TFM3UTF.js';
|
|
61
|
+
import { onSallaEvent } from '../chunk-XMRNYUQY.js';
|
|
62
|
+
import '../chunk-T2752RH7.js';
|
|
63
63
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
64
64
|
import '../chunk-T72DAX7R.js';
|
|
65
65
|
import { useTwilight } from '../chunk-DF6FBKDN.js';
|