@salla.sa/twilight-theme-engine 1.0.101 → 1.0.103
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-ZUQDN5PU.js → AddToCartForm-O7UZDX6G.js} +3 -3
- package/dist/{AddToCartForm-ZUQDN5PU.js.map → AddToCartForm-O7UZDX6G.js.map} +1 -1
- package/dist/{BlogAuthorPage-6REYBEA4.js → BlogAuthorPage-JLU2JWPT.js} +28 -28
- package/dist/{BlogAuthorPage-6REYBEA4.js.map → BlogAuthorPage-JLU2JWPT.js.map} +1 -1
- package/dist/{BlogCategoryPage-ZQLL4DTZ.js → BlogCategoryPage-FTZPLNTL.js} +28 -28
- package/dist/{BlogCategoryPage-ZQLL4DTZ.js.map → BlogCategoryPage-FTZPLNTL.js.map} +1 -1
- package/dist/{BlogPage-Q6K7VYJ4.js → BlogPage-JBVPGHR5.js} +26 -26
- package/dist/{BlogPage-Q6K7VYJ4.js.map → BlogPage-JBVPGHR5.js.map} +1 -1
- package/dist/{BlogSinglePage-T2ZCRQS7.js → BlogSinglePage-V3KQ5HIW.js} +26 -26
- package/dist/{BlogSinglePage-T2ZCRQS7.js.map → BlogSinglePage-V3KQ5HIW.js.map} +1 -1
- package/dist/{BlogTagPage-QAQ5BZZB.js → BlogTagPage-NTYO6TB4.js} +28 -28
- package/dist/{BlogTagPage-QAQ5BZZB.js.map → BlogTagPage-NTYO6TB4.js.map} +1 -1
- package/dist/{BrandsPage-KR2MC5TK.js → BrandsPage-5OSSOWDP.js} +27 -27
- package/dist/{BrandsPage-KR2MC5TK.js.map → BrandsPage-5OSSOWDP.js.map} +1 -1
- package/dist/{Breadcrumb-6S5OVQFO.js → Breadcrumb-GJI3N76F.js} +26 -26
- package/dist/{Breadcrumb-6S5OVQFO.js.map → Breadcrumb-GJI3N76F.js.map} +1 -1
- package/dist/{CartItem-UWXMIP5P.js → CartItem-KO34MYXT.js} +26 -26
- package/dist/{CartItem-UWXMIP5P.js.map → CartItem-KO34MYXT.js.map} +1 -1
- package/dist/{CartSummary-3TNNLC5A.js → CartSummary-NPFAJI7C.js} +26 -26
- package/dist/{CartSummary-3TNNLC5A.js.map → CartSummary-NPFAJI7C.js.map} +1 -1
- package/dist/{Copyright-QHX2TXLI.js → Copyright-VEJV2YTR.js} +3 -3
- package/dist/{Copyright-QHX2TXLI.js.map → Copyright-VEJV2YTR.js.map} +1 -1
- package/dist/{CustomerLayout-2KDONRD4.js → CustomerLayout-L374ZRWY.js} +26 -26
- package/dist/{CustomerLayout-2KDONRD4.js.map → CustomerLayout-L374ZRWY.js.map} +1 -1
- package/dist/{Footer-PJH36KWX.js → Footer-D4YSIM25.js} +4 -4
- package/dist/{Footer-PJH36KWX.js.map → Footer-D4YSIM25.js.map} +1 -1
- package/dist/Header-CXJ3TFHO.js +22 -0
- package/dist/{Header-TTFVFD7G.js.map → Header-CXJ3TFHO.js.map} +1 -1
- package/dist/{LoyaltyPage-GWXNY4NP.js → LoyaltyPage-BTKKAZYT.js} +26 -26
- package/dist/{LoyaltyPage-GWXNY4NP.js.map → LoyaltyPage-BTKKAZYT.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-YBR3ZAZE.js → LoyaltyPointsPage-CBVSWLR6.js} +9 -9
- package/dist/{LoyaltyPointsPage-YBR3ZAZE.js.map → LoyaltyPointsPage-CBVSWLR6.js.map} +1 -1
- package/dist/{MainMenu-FKTMQHEM.js → MainMenu-KCVTEZRG.js} +8 -8
- package/dist/{MainMenu-FKTMQHEM.js.map → MainMenu-KCVTEZRG.js.map} +1 -1
- package/dist/MasterLayout-K6IGPKCD.js +53 -0
- package/dist/{MasterLayout-GQHDA63O.js.map → MasterLayout-K6IGPKCD.js.map} +1 -1
- package/dist/{MobileMenu-KTQAO2DE.js → MobileMenu-KDKARTM5.js} +27 -27
- package/dist/{MobileMenu-KTQAO2DE.js.map → MobileMenu-KDKARTM5.js.map} +1 -1
- package/dist/{NotificationsPage-IC6XXM4W.js → NotificationsPage-A3NZEO52.js} +26 -26
- package/dist/{NotificationsPage-IC6XXM4W.js.map → NotificationsPage-A3NZEO52.js.map} +1 -1
- package/dist/{OrderSinglePage-U2DRGLI4.js → OrderSinglePage-APA3LCWT.js} +27 -27
- package/dist/{OrderSinglePage-U2DRGLI4.js.map → OrderSinglePage-APA3LCWT.js.map} +1 -1
- package/dist/{OrdersPage-MOFIK76Y.js → OrdersPage-N4S2SKXD.js} +26 -26
- package/dist/{OrdersPage-MOFIK76Y.js.map → OrdersPage-N4S2SKXD.js.map} +1 -1
- package/dist/{PageSingle-YS2ALWZZ.js → PageSingle-ED3IQQLS.js} +7 -7
- package/dist/{PageSingle-YS2ALWZZ.js.map → PageSingle-ED3IQQLS.js.map} +1 -1
- package/dist/{ProductDetails-FMY3HST5.js → ProductDetails-MN3GXUXK.js} +8 -8
- package/dist/{ProductDetails-FMY3HST5.js.map → ProductDetails-MN3GXUXK.js.map} +1 -1
- package/dist/{ProfilePage-L6EZE5OV.js → ProfilePage-QQ2GN7RO.js} +26 -26
- package/dist/{ProfilePage-L6EZE5OV.js.map → ProfilePage-QQ2GN7RO.js.map} +1 -1
- package/dist/{ReviewsPage-UXWXPPDM.js → ReviewsPage-YHO2CNZP.js} +3 -3
- package/dist/{ReviewsPage-UXWXPPDM.js.map → ReviewsPage-YHO2CNZP.js.map} +1 -1
- package/dist/{SeoCartWidget-WDZVLEHH.js → SeoCartWidget-DWJT2WXI.js} +26 -26
- package/dist/{SeoCartWidget-WDZVLEHH.js.map → SeoCartWidget-DWJT2WXI.js.map} +1 -1
- package/dist/{SettingsPage-LFYR42O4.js → SettingsPage-BRCNPSRN.js} +26 -26
- package/dist/{SettingsPage-LFYR42O4.js.map → SettingsPage-BRCNPSRN.js.map} +1 -1
- package/dist/StoreClosedNotification-2CIG5LX6.js +54 -0
- package/dist/{StoreClosedNotification-Y6QRDSG6.js.map → StoreClosedNotification-2CIG5LX6.js.map} +1 -1
- package/dist/{TestimonialsPage-3NTMQL2K.js → TestimonialsPage-DDLTHBMM.js} +7 -7
- package/dist/{TestimonialsPage-3NTMQL2K.js.map → TestimonialsPage-DDLTHBMM.js.map} +1 -1
- package/dist/{ThankYouPage-H2LECFWC.js → ThankYouPage-YN6PC4GT.js} +26 -26
- package/dist/{ThankYouPage-H2LECFWC.js.map → ThankYouPage-YN6PC4GT.js.map} +1 -1
- package/dist/{WalletPage-3IDRHX7S.js → WalletPage-YVJYIL52.js} +27 -27
- package/dist/{WalletPage-3IDRHX7S.js.map → WalletPage-YVJYIL52.js.map} +1 -1
- package/dist/{WishlistPage-JYDHC3PQ.js → WishlistPage-PD3SHN27.js} +28 -28
- package/dist/{WishlistPage-JYDHC3PQ.js.map → WishlistPage-PD3SHN27.js.map} +1 -1
- package/dist/api/advertisement.js +5 -5
- package/dist/api/apps.js +5 -5
- package/dist/api/blog.js +7 -7
- package/dist/api/brands.js +7 -7
- package/dist/api/cart.js +7 -7
- package/dist/api/category.js +7 -7
- package/dist/api/client.js +4 -4
- package/dist/api/home.js +5 -5
- package/dist/api/loyalty.js +7 -7
- package/dist/api/menu.js +5 -5
- package/dist/api/notification.js +5 -5
- package/dist/api/order.js +7 -7
- package/dist/api/page.js +7 -7
- package/dist/api/product.js +7 -7
- package/dist/api/profile.js +4 -4
- package/dist/api/store.js +5 -5
- package/dist/api/translations.js +5 -5
- package/dist/api/user.js +5 -5
- package/dist/api/wallet.js +5 -5
- package/dist/api/wishlist.js +8 -8
- package/dist/{chunk-IBSQO6LW.js → chunk-224CL4SD.js} +4 -4
- package/dist/{chunk-IBSQO6LW.js.map → chunk-224CL4SD.js.map} +1 -1
- package/dist/{chunk-TIPR4JUO.js → chunk-3W746XYR.js} +5 -5
- package/dist/{chunk-TIPR4JUO.js.map → chunk-3W746XYR.js.map} +1 -1
- package/dist/{chunk-EV64HPL2.js → chunk-44FMRCHW.js} +3 -3
- package/dist/{chunk-EV64HPL2.js.map → chunk-44FMRCHW.js.map} +1 -1
- package/dist/{chunk-PSR6GPA7.js → chunk-46EXP3AL.js} +8 -8
- package/dist/{chunk-PSR6GPA7.js.map → chunk-46EXP3AL.js.map} +1 -1
- package/dist/{chunk-BH7YNCYB.js → chunk-46JZXQRS.js} +3 -3
- package/dist/{chunk-BH7YNCYB.js.map → chunk-46JZXQRS.js.map} +1 -1
- package/dist/{chunk-N2A72R2I.js → chunk-6EBVVCNI.js} +4 -4
- package/dist/{chunk-N2A72R2I.js.map → chunk-6EBVVCNI.js.map} +1 -1
- package/dist/{chunk-S34G5DL4.js → chunk-6LRTCW27.js} +4 -4
- package/dist/{chunk-S34G5DL4.js.map → chunk-6LRTCW27.js.map} +1 -1
- package/dist/{chunk-QS4EDTEX.js → chunk-6TWQZEPF.js} +4 -4
- package/dist/{chunk-QS4EDTEX.js.map → chunk-6TWQZEPF.js.map} +1 -1
- package/dist/{chunk-QZEQOVA5.js → chunk-6YWW5Y22.js} +3 -3
- package/dist/{chunk-QZEQOVA5.js.map → chunk-6YWW5Y22.js.map} +1 -1
- package/dist/{chunk-O7B5JL6H.js → chunk-7OB2DG2K.js} +4 -4
- package/dist/{chunk-O7B5JL6H.js.map → chunk-7OB2DG2K.js.map} +1 -1
- package/dist/{chunk-DKGJPF2X.js → chunk-7RL4DG54.js} +3 -3
- package/dist/{chunk-DKGJPF2X.js.map → chunk-7RL4DG54.js.map} +1 -1
- package/dist/{chunk-BPL5H33B.js → chunk-7YH3A5BT.js} +5 -5
- package/dist/{chunk-BPL5H33B.js.map → chunk-7YH3A5BT.js.map} +1 -1
- package/dist/{chunk-6FKV2CD3.js → chunk-AVPU5C5V.js} +4 -4
- package/dist/{chunk-6FKV2CD3.js.map → chunk-AVPU5C5V.js.map} +1 -1
- package/dist/{chunk-XHSRSZBR.js → chunk-BXOQ663B.js} +6 -6
- package/dist/{chunk-XHSRSZBR.js.map → chunk-BXOQ663B.js.map} +1 -1
- package/dist/{chunk-D56TVNOG.js → chunk-C7RM335V.js} +3 -3
- package/dist/{chunk-D56TVNOG.js.map → chunk-C7RM335V.js.map} +1 -1
- package/dist/chunk-CXONF653.js +14 -0
- package/dist/{chunk-JMLNYY5Q.js.map → chunk-CXONF653.js.map} +1 -1
- package/dist/{chunk-PGUKRWOY.js → chunk-FV6PNN6N.js} +5 -5
- package/dist/{chunk-PGUKRWOY.js.map → chunk-FV6PNN6N.js.map} +1 -1
- package/dist/{chunk-ENJIX7HX.js → chunk-GLWSJZJZ.js} +5 -5
- package/dist/{chunk-ENJIX7HX.js.map → chunk-GLWSJZJZ.js.map} +1 -1
- package/dist/{chunk-FO4WVGUQ.js → chunk-GNLCPK6N.js} +35 -9
- package/dist/chunk-GNLCPK6N.js.map +1 -0
- package/dist/{chunk-RWBTMHLR.js → chunk-GT2L5IJ4.js} +6 -6
- package/dist/{chunk-RWBTMHLR.js.map → chunk-GT2L5IJ4.js.map} +1 -1
- package/dist/{chunk-N2S25NXP.js → chunk-H3PJJKAQ.js} +16 -3
- package/dist/chunk-H3PJJKAQ.js.map +1 -0
- package/dist/{chunk-W2LNKEBF.js → chunk-HIAHDZI5.js} +3 -3
- package/dist/{chunk-W2LNKEBF.js.map → chunk-HIAHDZI5.js.map} +1 -1
- package/dist/{chunk-7WTUA4WY.js → chunk-HKSDEFQV.js} +3 -3
- package/dist/{chunk-7WTUA4WY.js.map → chunk-HKSDEFQV.js.map} +1 -1
- package/dist/{chunk-Q62YEBIA.js → chunk-IGD4G3SP.js} +4 -4
- package/dist/{chunk-Q62YEBIA.js.map → chunk-IGD4G3SP.js.map} +1 -1
- package/dist/{chunk-GXHJXZBG.js → chunk-IOUOF5KK.js} +4 -4
- package/dist/{chunk-GXHJXZBG.js.map → chunk-IOUOF5KK.js.map} +1 -1
- package/dist/{chunk-ENLKXUCJ.js → chunk-IYD3EN22.js} +7 -7
- package/dist/{chunk-ENLKXUCJ.js.map → chunk-IYD3EN22.js.map} +1 -1
- package/dist/{chunk-G3UTLICK.js → chunk-JDLXT6VI.js} +5 -5
- package/dist/{chunk-G3UTLICK.js.map → chunk-JDLXT6VI.js.map} +1 -1
- package/dist/{chunk-XT6CLGF5.js → chunk-JUUKZRE5.js} +3 -3
- package/dist/{chunk-XT6CLGF5.js.map → chunk-JUUKZRE5.js.map} +1 -1
- package/dist/{chunk-ZEGNYJOR.js → chunk-JZDJO2CK.js} +6 -6
- package/dist/{chunk-ZEGNYJOR.js.map → chunk-JZDJO2CK.js.map} +1 -1
- package/dist/{chunk-XGA7SPWP.js → chunk-L4AWMQPQ.js} +8 -8
- package/dist/{chunk-XGA7SPWP.js.map → chunk-L4AWMQPQ.js.map} +1 -1
- package/dist/{chunk-KNIGLCRV.js → chunk-OOCN4RFV.js} +3 -3
- package/dist/{chunk-KNIGLCRV.js.map → chunk-OOCN4RFV.js.map} +1 -1
- package/dist/{chunk-N45X7D55.js → chunk-OXMUPNMH.js} +2 -2
- package/dist/chunk-OXMUPNMH.js.map +1 -0
- package/dist/{chunk-RV54D2D7.js → chunk-P4XV656A.js} +3 -3
- package/dist/{chunk-RV54D2D7.js.map → chunk-P4XV656A.js.map} +1 -1
- package/dist/{chunk-IU4KTCS3.js → chunk-PENQTLAN.js} +3 -3
- package/dist/{chunk-IU4KTCS3.js.map → chunk-PENQTLAN.js.map} +1 -1
- package/dist/{chunk-CNUBL24W.js → chunk-PXHFHHTW.js} +4 -4
- package/dist/{chunk-CNUBL24W.js.map → chunk-PXHFHHTW.js.map} +1 -1
- package/dist/{chunk-GMXI6V2D.js → chunk-QTH6GGUH.js} +14 -8
- package/dist/chunk-QTH6GGUH.js.map +1 -0
- package/dist/{chunk-56T47K7P.js → chunk-RI5PSI34.js} +5 -5
- package/dist/{chunk-56T47K7P.js.map → chunk-RI5PSI34.js.map} +1 -1
- package/dist/{chunk-5SDCUGYR.js → chunk-RJTIP2L3.js} +4 -4
- package/dist/{chunk-5SDCUGYR.js.map → chunk-RJTIP2L3.js.map} +1 -1
- package/dist/{chunk-VCFNYY3V.js → chunk-RPVHCIR4.js} +4 -4
- package/dist/{chunk-VCFNYY3V.js.map → chunk-RPVHCIR4.js.map} +1 -1
- package/dist/{chunk-JANISEUE.js → chunk-TMN53ONR.js} +7 -7
- package/dist/{chunk-JANISEUE.js.map → chunk-TMN53ONR.js.map} +1 -1
- package/dist/{chunk-OZP2FID7.js → chunk-TSAIM4XM.js} +4 -4
- package/dist/{chunk-OZP2FID7.js.map → chunk-TSAIM4XM.js.map} +1 -1
- package/dist/{chunk-Q2755VB2.js → chunk-U73QOIGZ.js} +8 -8
- package/dist/{chunk-Q2755VB2.js.map → chunk-U73QOIGZ.js.map} +1 -1
- package/dist/{chunk-OU66LX2C.js → chunk-UIXEKYTM.js} +21 -21
- package/dist/{chunk-OU66LX2C.js.map → chunk-UIXEKYTM.js.map} +1 -1
- package/dist/{chunk-2FDLEB5J.js → chunk-UY57T42N.js} +3 -3
- package/dist/{chunk-2FDLEB5J.js.map → chunk-UY57T42N.js.map} +1 -1
- package/dist/{chunk-TJNBUVUA.js → chunk-V7EPED4G.js} +19 -19
- package/dist/chunk-V7EPED4G.js.map +1 -0
- package/dist/{chunk-2FKZAAV7.js → chunk-VEWF3NFM.js} +3 -3
- package/dist/{chunk-2FKZAAV7.js.map → chunk-VEWF3NFM.js.map} +1 -1
- package/dist/{chunk-EWLVLDRP.js → chunk-VPGOT3JO.js} +3 -3
- package/dist/{chunk-EWLVLDRP.js.map → chunk-VPGOT3JO.js.map} +1 -1
- package/dist/{chunk-J5X4LXNM.js → chunk-XMO7HDZZ.js} +3 -3
- package/dist/{chunk-J5X4LXNM.js.map → chunk-XMO7HDZZ.js.map} +1 -1
- package/dist/{chunk-DNPQ2JBM.js → chunk-Y6J6NYNK.js} +4 -4
- package/dist/{chunk-DNPQ2JBM.js.map → chunk-Y6J6NYNK.js.map} +1 -1
- package/dist/{chunk-NZRJOAA7.js → chunk-YXI2ZCXD.js} +4 -4
- package/dist/{chunk-NZRJOAA7.js.map → chunk-YXI2ZCXD.js.map} +1 -1
- package/dist/{chunk-VWVCSD3N.js → chunk-ZMCFSOYF.js} +4 -4
- package/dist/{chunk-VWVCSD3N.js.map → chunk-ZMCFSOYF.js.map} +1 -1
- package/dist/{chunk-6EQ7G3SZ.js → chunk-ZPX4LBQZ.js} +5 -5
- package/dist/{chunk-6EQ7G3SZ.js.map → chunk-ZPX4LBQZ.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 +24 -24
- package/dist/components/home/index.js +28 -28
- package/dist/components/layout/index.js +7 -7
- package/dist/components/product/index.js +25 -25
- package/dist/components/store/index.js +26 -26
- package/dist/components/toast/index.js +5 -5
- package/dist/dev/editor/index.js +4 -4
- package/dist/dev/editor/index.js.map +1 -1
- package/dist/dev/editor/pickers.d.ts +1 -1
- package/dist/dev/editor/pickers.d.ts.map +1 -1
- package/dist/dev/index.js +4 -4
- package/dist/dev/schema-types.d.ts +1 -1
- package/dist/dev/schema-types.d.ts.map +1 -1
- package/dist/document-class-JQ7ZZJAT.js +29 -0
- package/dist/{document-class-F75JZPRM.js.map → document-class-JQ7ZZJAT.js.map} +1 -1
- package/dist/hooks/index.js +24 -24
- package/dist/hooks/useComments.js +4 -4
- package/dist/hooks/useGtm.js +24 -24
- package/dist/hooks/useMoney.js +24 -24
- package/dist/hooks/useProduct.js +4 -4
- package/dist/hooks/useStore.js +24 -24
- package/dist/hooks/useUser.js +6 -6
- package/dist/hooks/useWishlist.js +4 -4
- package/dist/index.js +24 -24
- package/dist/native-app/index.js +4 -4
- package/dist/{navigation-JB2CJXBF.js → navigation-GQA6OA42.js} +8 -8
- package/dist/{navigation-JB2CJXBF.js.map → navigation-GQA6OA42.js.map} +1 -1
- package/dist/navigation-RO3T4FDQ.js +14 -0
- package/dist/{navigation-KTMLD4VB.js.map → navigation-RO3T4FDQ.js.map} +1 -1
- package/dist/{not-found-O4BCTCSH.js → not-found-MTU2BM73.js} +27 -27
- package/dist/{not-found-O4BCTCSH.js.map → not-found-MTU2BM73.js.map} +1 -1
- package/dist/providers/index.js +24 -24
- package/dist/routes/account/orders.js +8 -8
- package/dist/routes/account.js +17 -17
- package/dist/routes/blog.js +12 -12
- 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 +7 -7
- 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/seo-redirects.js +7 -7
- package/dist/routes/testimonials.js +3 -3
- package/dist/routes/thank-you.js +8 -8
- package/dist/skeleton.js +29 -29
- package/dist/{store-lookup-T4TK7CKA.js → store-lookup-C4DMFSBT.js} +13 -13
- package/dist/{store-lookup-T4TK7CKA.js.map → store-lookup-C4DMFSBT.js.map} +1 -1
- package/dist/tanstack/middleware/twilight.d.ts.map +1 -1
- package/dist/tanstack/navigation.d.ts.map +1 -1
- package/dist/tanstack/router.d.ts.map +1 -1
- package/dist/tanstack/store-base.d.ts +5 -2
- package/dist/tanstack/store-base.d.ts.map +1 -1
- package/dist/tanstack.js +27 -22
- package/dist/tanstack.js.map +1 -1
- package/dist/twilight/context.d.ts +7 -0
- package/dist/twilight/context.d.ts.map +1 -1
- package/dist/utils/cookies.d.ts +32 -0
- package/dist/utils/cookies.d.ts.map +1 -1
- package/dist/utils/index.js +6 -6
- package/dist/utils/runtime-env.d.ts +7 -0
- package/dist/utils/runtime-env.d.ts.map +1 -1
- package/dist/utils/store-base.d.ts +12 -2
- package/dist/utils/store-base.d.ts.map +1 -1
- package/dist/utils/store-identity.d.ts +9 -0
- package/dist/utils/store-identity.d.ts.map +1 -1
- package/dist/vite/index.js +11 -5
- package/dist/vite/index.js.map +1 -1
- package/dist/vite/plugins/twilight-schema.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/Header-TTFVFD7G.js +0 -22
- package/dist/MasterLayout-GQHDA63O.js +0 -53
- package/dist/StoreClosedNotification-Y6QRDSG6.js +0 -54
- package/dist/chunk-FO4WVGUQ.js.map +0 -1
- package/dist/chunk-GMXI6V2D.js.map +0 -1
- package/dist/chunk-JMLNYY5Q.js +0 -14
- package/dist/chunk-N2S25NXP.js.map +0 -1
- package/dist/chunk-N45X7D55.js.map +0 -1
- package/dist/chunk-TJNBUVUA.js.map +0 -1
- package/dist/document-class-F75JZPRM.js +0 -29
- package/dist/navigation-KTMLD4VB.js +0 -14
package/dist/tanstack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tanstack/stylesheet.tsx","../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":"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","file":"tanstack.js","sourcesContent":["import { useState, useSyncExternalStore } from 'react';\nimport { Asset, useRouter, useRouterState, useTags } from '@tanstack/react-router';\nimport { CRITICAL_STYLE_HREF } from '../boot/critical-style';\n\nexport interface ThemeStylesheetProps {\n /** The full stylesheet's URL (`app.css?url`). */\n href: string;\n /**\n * Inline critical CSS by route id. A page server-rendered as one of these routes paints from it,\n * and `bootClient` adds `href` once its first screen has painted. Pass the same route ids on the\n * client with empty strings, so hydration renders the same tags without shipping the CSS twice.\n */\n critical?: Readonly<Record<string, string>>;\n}\n\nconst subscribeNothing = () => () => {};\n\n/** The theme's stylesheet: inline critical CSS for the routes that have it, the full sheet otherwise. */\nexport function ThemeStylesheet({ href, critical = {} }: ThemeStylesheetProps) {\n const routeId = useRouterState({\n select: (state): string | undefined =>\n state.matches.find((match) => Object.hasOwn(critical, match.routeId))?.routeId,\n });\n // The route the page was server-rendered as: never added or removed on client-side navigations.\n const [criticalRoute] = useState(routeId);\n const hydrated = useSyncExternalStore(\n subscribeNothing,\n () => true,\n () => false\n );\n\n return (\n <>\n {criticalRoute && (\n // Its own precedence, so it lands before the full sheet; React renders the CSS verbatim.\n <style href={CRITICAL_STYLE_HREF} precedence=\"critical\">\n {critical[criticalRoute]}\n </style>\n )}\n {(!criticalRoute || hydrated) && (\n <link id=\"salla-theme-css\" rel=\"stylesheet\" href={href} precedence=\"default\" />\n )}\n {criticalRoute && (\n <noscript>\n <link rel=\"stylesheet\" href={href} />\n </noscript>\n )}\n </>\n );\n}\n\n/** The route's head tags without module preloads: they raced the LCP image, and the entry loads every chunk anyway. */\nexport function ThemeHeadContent() {\n const tags = useTags();\n const nonce = useRouter().options.ssr?.nonce;\n return tags\n .filter((tag) => !(tag.tag === 'link' && tag.attrs?.rel === 'modulepreload'))\n .map((tag) => <Asset {...tag} key={`tsr-meta-${JSON.stringify(tag)}`} nonce={nonce} />);\n}\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport {\n extractTokenFromCookies,\n resolveRequestScope,\n resolveRequestStore,\n resolveRequestVersionId,\n AUTH_TOKEN_COOKIE_NAME,\n} from '../../utils/cookies';\nimport { runWithTwilightContext } from '../../twilight/context';\nimport { requestHostOf } from '../../utils/request-host';\n\ninterface TwilightMiddlewareOptions {\n cookieName?: string;\n}\n\nexport const twilightMiddleware = (options?: TwilightMiddlewareOptions): AnyRequestMiddleware => {\n const cookieName = options?.cookieName ?? AUTH_TOKEN_COOKIE_NAME;\n\n return createMiddleware().server(({ request, next }) => {\n const cookieHeader = request.headers.get('Cookie');\n const authToken = extractTokenFromCookies(cookieHeader, cookieName);\n // `?scope=` before the cookie: it is how a market is switched (see resolveRequestScope).\n const scope = resolveRequestScope(request.url, cookieHeader);\n const requestHost = requestHostOf(request);\n // Read here and nowhere else: a deployed theme worker has no vars and no\n // bindings, so the request is the only thing that knows which store it is\n // serving. Everything downstream reads it off the context rather than\n // reaching for a build-time constant that is not there in production.\n //\n // The host goes in because it decides whether the request is allowed to name\n // a store at all. On a merchant's own domain it is not: the hostname is the\n // store, and `?storeId=` there would serve a stranger's shop from a domain\n // its owner controls.\n //\n // On those same hosts the store is also the first segment of the path, the\n // root of every URL there, and a store named that way takes the cookie's\n // place: the path is the address the visitor can see.\n const { storeId, storeBase } = resolveRequestStore(request.url, cookieHeader, requestHost);\n // The version is read here for the same reason and behind the same gate. A\n // theme editor previews a draft version of a merchant's settings before it is\n // published, and a partner running the theme locally renders against one —\n // both open the storefront in an iframe and say which version in the URL.\n const versionId = resolveRequestVersionId(request.url, cookieHeader, requestHost);\n\n return runWithTwilightContext(\n { authToken, scope, storeId, storeBase, versionId, requestHost },\n () => next({ context: { authToken } })\n );\n });\n};\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport { tsrStartManifest } from 'tanstack-start-manifest:v';\nimport { rootHead } from '../../routes/root/head';\n\n/** Known critical assets that should always be preloaded */\nconst CRITICAL_ASSETS = [\n { rel: 'preconnect', href: 'https://api.salla.dev' },\n { rel: 'preconnect', href: 'https://cdn.salla.sa' },\n { rel: 'preconnect', href: 'https://cdn.assets.salla.network', crossOrigin: 'anonymous' },\n { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossOrigin: 'anonymous' },\n] as const;\n\n/** Extract locale from URL path (e.g., /ar/products → 'ar') */\nfunction extractLocale(url: string): string | undefined {\n const match = url.match(/^\\/([a-z]{2})(\\/|$)/);\n return match?.[1];\n}\n\n/** Build Link header value from a link descriptor */\nfunction buildLinkHeader(link: Record<string, unknown>): string | null {\n const href = link.href as string | undefined;\n const rel = link.rel as string | undefined;\n if (!href || !rel) return null;\n\n // Skip print-media stylesheets (already non-blocking)\n if (rel === 'stylesheet') {\n const media = link.media as string | undefined;\n if (media === 'print') return null;\n return `<${href}>; rel=preload; as=style`;\n }\n\n if (rel === 'preload') {\n const asType = link.as as string | undefined;\n if (!asType) return null;\n const parts = [`<${href}>`, 'rel=preload', `as=${asType}`];\n if (asType === 'font' || link.crossOrigin) {\n parts.push('crossorigin');\n }\n return parts.join('; ');\n }\n\n if (rel === 'modulepreload') {\n return `<${href}>; rel=modulepreload`;\n }\n\n return null;\n}\n\nexport const earlyHintsMiddleware = (): AnyRequestMiddleware => {\n let cachedManifestPaths: string[] | null = null;\n\n return createMiddleware().server(async ({ request, next }) => {\n const response = await next();\n\n const accept = request.headers.get('Accept') ?? '';\n if (!accept.includes('text/html') && accept !== '*/*') return response;\n if (!(response instanceof Response)) return response;\n\n const linkHeaders: string[] = [];\n\n // 1. Add critical assets from rootHead (fonts, icons, SDK, etc.)\n try {\n const url = new URL(request.url);\n const locale = extractLocale(url.pathname);\n if (locale) {\n const headResult = rootHead({ params: { locale } });\n const links = (headResult.links as Record<string, unknown>[]) ?? [];\n for (const link of links) {\n const header = buildLinkHeader(link);\n if (header) linkHeaders.push(header);\n }\n }\n } catch (e) {\n // rootHead failed — log why, then fall back to known critical assets\n console.warn('[earlyHints] rootHead failed:', e instanceof Error ? e.message : e);\n for (const asset of CRITICAL_ASSETS) {\n const co = 'crossOrigin' in asset ? asset.crossOrigin : undefined;\n linkHeaders.push(`<${asset.href}>; rel=${asset.rel}${co ? '; crossorigin' : ''}`);\n }\n }\n\n // 2. Add CSS from TanStack Start manifest (bundled theme CSS)\n if (!cachedManifestPaths) {\n try {\n const manifest = tsrStartManifest();\n const rootAssets = manifest.routes['__root__']?.assets ?? [];\n const seen = new Set<string>();\n cachedManifestPaths = [];\n for (const asset of rootAssets) {\n if (asset.tag === 'link' && asset.attrs?.href?.endsWith('.css')) {\n if (!seen.has(asset.attrs.href)) {\n seen.add(asset.attrs.href);\n cachedManifestPaths.push(asset.attrs.href);\n }\n }\n }\n } catch (e) {\n // manifest not available — skip\n console.warn('[earlyHints] tsrStartManifest failed:', e instanceof Error ? e.message : e);\n }\n }\n\n if (cachedManifestPaths) {\n for (const href of cachedManifestPaths) {\n linkHeaders.push(`<${href}>; rel=preload; as=style`);\n }\n }\n\n // Apply Link headers if we have any\n if (linkHeaders.length === 0) {\n console.warn('[earlyHints] no critical assets found — no Link headers added');\n return response;\n }\n\n const headers = new Headers(response.headers);\n for (const linkHeader of linkHeaders) {\n headers.append('Link', linkHeader);\n }\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tanstack/stylesheet.tsx","../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":"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","file":"tanstack.js","sourcesContent":["import { useState, useSyncExternalStore } from 'react';\nimport { Asset, useRouter, useRouterState, useTags } from '@tanstack/react-router';\nimport { CRITICAL_STYLE_HREF } from '../boot/critical-style';\n\nexport interface ThemeStylesheetProps {\n /** The full stylesheet's URL (`app.css?url`). */\n href: string;\n /**\n * Inline critical CSS by route id. A page server-rendered as one of these routes paints from it,\n * and `bootClient` adds `href` once its first screen has painted. Pass the same route ids on the\n * client with empty strings, so hydration renders the same tags without shipping the CSS twice.\n */\n critical?: Readonly<Record<string, string>>;\n}\n\nconst subscribeNothing = () => () => {};\n\n/** The theme's stylesheet: inline critical CSS for the routes that have it, the full sheet otherwise. */\nexport function ThemeStylesheet({ href, critical = {} }: ThemeStylesheetProps) {\n const routeId = useRouterState({\n select: (state): string | undefined =>\n state.matches.find((match) => Object.hasOwn(critical, match.routeId))?.routeId,\n });\n // The route the page was server-rendered as: never added or removed on client-side navigations.\n const [criticalRoute] = useState(routeId);\n const hydrated = useSyncExternalStore(\n subscribeNothing,\n () => true,\n () => false\n );\n\n return (\n <>\n {criticalRoute && (\n // Its own precedence, so it lands before the full sheet; React renders the CSS verbatim.\n <style href={CRITICAL_STYLE_HREF} precedence=\"critical\">\n {critical[criticalRoute]}\n </style>\n )}\n {(!criticalRoute || hydrated) && (\n <link id=\"salla-theme-css\" rel=\"stylesheet\" href={href} precedence=\"default\" />\n )}\n {criticalRoute && (\n <noscript>\n <link rel=\"stylesheet\" href={href} />\n </noscript>\n )}\n </>\n );\n}\n\n/** The route's head tags without module preloads: they raced the LCP image, and the entry loads every chunk anyway. */\nexport function ThemeHeadContent() {\n const tags = useTags();\n const nonce = useRouter().options.ssr?.nonce;\n return tags\n .filter((tag) => !(tag.tag === 'link' && tag.attrs?.rel === 'modulepreload'))\n .map((tag) => <Asset {...tag} key={`tsr-meta-${JSON.stringify(tag)}`} nonce={nonce} />);\n}\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport {\n extractTokenFromCookies,\n resolveAddressedStore,\n resolveRequestScope,\n resolveRequestVersionId,\n AUTH_TOKEN_COOKIE_NAME,\n STORE_BASE_HEADER,\n} from '../../utils/cookies';\nimport { runWithTwilightContext } from '../../twilight/context';\nimport { requestHostOf } from '../../utils/request-host';\n\ninterface TwilightMiddlewareOptions {\n cookieName?: string;\n}\n\nexport const twilightMiddleware = (options?: TwilightMiddlewareOptions): AnyRequestMiddleware => {\n const cookieName = options?.cookieName ?? AUTH_TOKEN_COOKIE_NAME;\n\n return createMiddleware().server(({ request, next }) => {\n const cookieHeader = request.headers.get('Cookie');\n const authToken = extractTokenFromCookies(cookieHeader, cookieName);\n // `?scope=` before the cookie: it is how a market is switched (see resolveRequestScope).\n const scope = resolveRequestScope(request.url, cookieHeader);\n const requestHost = requestHostOf(request);\n // Read here and nowhere else: a deployed theme worker has no vars and no\n // bindings, so the request is the only thing that knows which store it is\n // serving. Everything downstream reads it off the context rather than\n // reaching for a build-time constant that is not there in production.\n //\n // The host goes in because it decides whether the request is allowed to name\n // a store at all. On a merchant's own domain it is not: the hostname is the\n // store, and `?storeId=` there would serve a stranger's shop from a domain\n // its owner controls.\n //\n // On those same hosts the store is also the first segment of the path, the\n // root of every URL there, and a store named that way takes the cookie's\n // place: the path is the address the visitor can see.\n //\n // On a Salla shared host the dispatcher names the store instead, from the\n // segment after the locale, and that is where it stays in every URL.\n const { storeId, storeBase, storeBaseFollowsLocale } = resolveAddressedStore(\n request.url,\n cookieHeader,\n requestHost,\n request.headers.get(STORE_BASE_HEADER)\n );\n // The version is read here for the same reason and behind the same gate. A\n // theme editor previews a draft version of a merchant's settings before it is\n // published, and a partner running the theme locally renders against one —\n // both open the storefront in an iframe and say which version in the URL.\n const versionId = resolveRequestVersionId(request.url, cookieHeader, requestHost);\n\n return runWithTwilightContext(\n { authToken, scope, storeId, storeBase, storeBaseFollowsLocale, versionId, requestHost },\n () => next({ context: { authToken } })\n );\n });\n};\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport { tsrStartManifest } from 'tanstack-start-manifest:v';\nimport { rootHead } from '../../routes/root/head';\n\n/** Known critical assets that should always be preloaded */\nconst CRITICAL_ASSETS = [\n { rel: 'preconnect', href: 'https://api.salla.dev' },\n { rel: 'preconnect', href: 'https://cdn.salla.sa' },\n { rel: 'preconnect', href: 'https://cdn.assets.salla.network', crossOrigin: 'anonymous' },\n { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossOrigin: 'anonymous' },\n] as const;\n\n/** Extract locale from URL path (e.g., /ar/products → 'ar') */\nfunction extractLocale(url: string): string | undefined {\n const match = url.match(/^\\/([a-z]{2})(\\/|$)/);\n return match?.[1];\n}\n\n/** Build Link header value from a link descriptor */\nfunction buildLinkHeader(link: Record<string, unknown>): string | null {\n const href = link.href as string | undefined;\n const rel = link.rel as string | undefined;\n if (!href || !rel) return null;\n\n // Skip print-media stylesheets (already non-blocking)\n if (rel === 'stylesheet') {\n const media = link.media as string | undefined;\n if (media === 'print') return null;\n return `<${href}>; rel=preload; as=style`;\n }\n\n if (rel === 'preload') {\n const asType = link.as as string | undefined;\n if (!asType) return null;\n const parts = [`<${href}>`, 'rel=preload', `as=${asType}`];\n if (asType === 'font' || link.crossOrigin) {\n parts.push('crossorigin');\n }\n return parts.join('; ');\n }\n\n if (rel === 'modulepreload') {\n return `<${href}>; rel=modulepreload`;\n }\n\n return null;\n}\n\nexport const earlyHintsMiddleware = (): AnyRequestMiddleware => {\n let cachedManifestPaths: string[] | null = null;\n\n return createMiddleware().server(async ({ request, next }) => {\n const response = await next();\n\n const accept = request.headers.get('Accept') ?? '';\n if (!accept.includes('text/html') && accept !== '*/*') return response;\n if (!(response instanceof Response)) return response;\n\n const linkHeaders: string[] = [];\n\n // 1. Add critical assets from rootHead (fonts, icons, SDK, etc.)\n try {\n const url = new URL(request.url);\n const locale = extractLocale(url.pathname);\n if (locale) {\n const headResult = rootHead({ params: { locale } });\n const links = (headResult.links as Record<string, unknown>[]) ?? [];\n for (const link of links) {\n const header = buildLinkHeader(link);\n if (header) linkHeaders.push(header);\n }\n }\n } catch (e) {\n // rootHead failed — log why, then fall back to known critical assets\n console.warn('[earlyHints] rootHead failed:', e instanceof Error ? e.message : e);\n for (const asset of CRITICAL_ASSETS) {\n const co = 'crossOrigin' in asset ? asset.crossOrigin : undefined;\n linkHeaders.push(`<${asset.href}>; rel=${asset.rel}${co ? '; crossorigin' : ''}`);\n }\n }\n\n // 2. Add CSS from TanStack Start manifest (bundled theme CSS)\n if (!cachedManifestPaths) {\n try {\n const manifest = tsrStartManifest();\n const rootAssets = manifest.routes['__root__']?.assets ?? [];\n const seen = new Set<string>();\n cachedManifestPaths = [];\n for (const asset of rootAssets) {\n if (asset.tag === 'link' && asset.attrs?.href?.endsWith('.css')) {\n if (!seen.has(asset.attrs.href)) {\n seen.add(asset.attrs.href);\n cachedManifestPaths.push(asset.attrs.href);\n }\n }\n }\n } catch (e) {\n // manifest not available — skip\n console.warn('[earlyHints] tsrStartManifest failed:', e instanceof Error ? e.message : e);\n }\n }\n\n if (cachedManifestPaths) {\n for (const href of cachedManifestPaths) {\n linkHeaders.push(`<${href}>; rel=preload; as=style`);\n }\n }\n\n // Apply Link headers if we have any\n if (linkHeaders.length === 0) {\n console.warn('[earlyHints] no critical assets found — no Link headers added');\n return response;\n }\n\n const headers = new Headers(response.headers);\n for (const linkHeader of linkHeaders) {\n headers.append('Link', linkHeader);\n }\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n });\n};\n"]}
|
|
@@ -58,6 +58,12 @@ export interface TwilightContext {
|
|
|
58
58
|
* See {@link resolveRequestStoreBase}.
|
|
59
59
|
*/
|
|
60
60
|
storeBase: string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Where {@link storeBase} sits in this request's paths: behind the locale on a
|
|
63
|
+
* Salla shared host (`/ar/dev-x/cart`, named by the dispatcher), in front of it
|
|
64
|
+
* everywhere else. See {@link resolveAddressedStore}.
|
|
65
|
+
*/
|
|
66
|
+
storeBaseFollowsLocale: boolean;
|
|
61
67
|
/**
|
|
62
68
|
* Which version of the theme's settings this request asked for — the
|
|
63
69
|
* `?versionId=` an editor preview or a local dev session was opened with, or
|
|
@@ -104,6 +110,7 @@ export declare function hasTwilightSettings(): boolean;
|
|
|
104
110
|
export interface RequestAddressing {
|
|
105
111
|
storeId: string | null;
|
|
106
112
|
storeBase: string | null;
|
|
113
|
+
storeBaseFollowsLocale: boolean;
|
|
107
114
|
versionId: string | null;
|
|
108
115
|
requestHost: string | null;
|
|
109
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/twilight/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,WAAW,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;qGACiG;IACjG,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B;oGACgG;IAChG,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/twilight/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMpD,MAAM,WAAW,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;;;;;OAQG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;qGACiG;IACjG,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B;oGACgG;IAChG,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAqKD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAS3F;AAMD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKlE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAM7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAM7C;AAED,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAmBnD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAwEpD;AAED,wCAAwC;AACxC,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
package/dist/utils/cookies.d.ts
CHANGED
|
@@ -173,6 +173,38 @@ export interface RequestStore {
|
|
|
173
173
|
* of them.
|
|
174
174
|
*/
|
|
175
175
|
export declare function resolveRequestStore(url: string, cookieHeader: string | null, host: string | null | undefined): RequestStore;
|
|
176
|
+
/**
|
|
177
|
+
* The header the storefront dispatcher names the store in, on a Salla shared host
|
|
178
|
+
* that routes by username: `demostore.salla.sa/ar/dev-x/cart` is store `dev-x`.
|
|
179
|
+
*
|
|
180
|
+
* There the hostname belongs to every store, so the API cannot be asked about it
|
|
181
|
+
* (it answers 422 and the page reads "Store Unavailable"), and only the dispatcher
|
|
182
|
+
* has already read the username out of the path to choose this theme.
|
|
183
|
+
*
|
|
184
|
+
* Trusted because nothing else can set it. A theme worker is reached only through
|
|
185
|
+
* the dispatcher, which hands it the headers on its own allowlist and then this one;
|
|
186
|
+
* a visitor's copy never arrives. On a merchant's own domain the dispatcher does
|
|
187
|
+
* not send it, so the hostname stays the store there.
|
|
188
|
+
*/
|
|
189
|
+
export declare const STORE_BASE_HEADER = "x-salla-store-base";
|
|
190
|
+
/** {@link RequestStore}, plus where the store segment sits in the path. */
|
|
191
|
+
export interface AddressedStore extends RequestStore {
|
|
192
|
+
/**
|
|
193
|
+
* True when the store segment follows the locale (`/ar/dev-x/cart`), as on a
|
|
194
|
+
* Salla shared host; false when it is the root (`/mtgr-alaatr-2/ar/cart`), as on
|
|
195
|
+
* the preview host and a dev server.
|
|
196
|
+
*/
|
|
197
|
+
storeBaseFollowsLocale: boolean;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The store this request addressed, counting the one the dispatcher named.
|
|
201
|
+
*
|
|
202
|
+
* The dispatcher's answer comes first and replaces the others: on a shared host it
|
|
203
|
+
* is the address the visitor typed, read by the service that routed it here. Any
|
|
204
|
+
* other request is resolved as {@link resolveRequestStore} always has, with the
|
|
205
|
+
* segment at the root.
|
|
206
|
+
*/
|
|
207
|
+
export declare function resolveAddressedStore(url: string, cookieHeader: string | null, host: string | null | undefined, dispatchedStoreBase: string | null | undefined): AddressedStore;
|
|
176
208
|
/**
|
|
177
209
|
* The theme-settings version this request names, on a host permitted to name one.
|
|
178
210
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export { stripUnsafeHtml } from '../chunk-RUHSV4Z6.js';
|
|
2
2
|
export { formatSallaPlural } from '../chunk-BT6HEEAP.js';
|
|
3
|
-
export { dispatchRouteChanged } from '../chunk-
|
|
3
|
+
export { dispatchRouteChanged } from '../chunk-3W746XYR.js';
|
|
4
4
|
export { sortOptions } from '../chunk-3LZJXKVO.js';
|
|
5
5
|
export { color } from '../chunk-VVZNW5CB.js';
|
|
6
|
-
export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-
|
|
6
|
+
export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-HIAHDZI5.js';
|
|
7
7
|
export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
|
|
8
8
|
export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-4SZZPXM2.js';
|
|
9
9
|
export { asset, cdn, isPlaceholder } from '../chunk-ZCH7W7DZ.js';
|
|
10
10
|
export { mergeDocumentDescriptors, mergeElementAttrs, normalizeClasses, syncAttrsToElement, toReactProps } from '../chunk-CW625T2E.js';
|
|
11
|
-
import '../chunk-
|
|
12
|
-
export { getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-
|
|
13
|
-
export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies } from '../chunk-
|
|
14
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-ZPX4LBQZ.js';
|
|
12
|
+
export { getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-VEWF3NFM.js';
|
|
13
|
+
export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies } from '../chunk-GNLCPK6N.js';
|
|
14
|
+
import '../chunk-H3PJJKAQ.js';
|
|
15
15
|
import '../chunk-T72DAX7R.js';
|
|
16
16
|
import '../chunk-DGUM43GV.js';
|
|
17
17
|
|
|
@@ -28,6 +28,13 @@ export interface RuntimeEnv {
|
|
|
28
28
|
* server about the root would hydrate a different page.
|
|
29
29
|
*/
|
|
30
30
|
storeBase?: string;
|
|
31
|
+
/**
|
|
32
|
+
* True when {@link storeBase} sits behind the locale (`/ar/dev-x/cart`), as on a
|
|
33
|
+
* Salla shared host. Published with it: a client router that put the segment in
|
|
34
|
+
* the other place would build every link to a page the dispatcher cannot route.
|
|
35
|
+
* Absent when false, like the other flags here.
|
|
36
|
+
*/
|
|
37
|
+
storeBaseFollowsLocale?: boolean;
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
40
|
* A build-time `import.meta.env` var, falling back to the worker's runtime `process.env`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-env.ts"],"names":[],"mappings":"AAOA,qFAAqF;AACrF,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-env.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-env.ts"],"names":[],"mappings":"AAOA,qFAAqF;AACrF,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUvD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CA2B9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CAGlD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,UAAgC,GAAG,MAAM,GAAG,IAAI,CAK3F"}
|
|
@@ -3,16 +3,25 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Only a whole segment is removed, so `/mtgr-alaatr-2x/cart` is left alone, and a
|
|
5
5
|
* pathname that does not start with the segment comes back unchanged.
|
|
6
|
+
*
|
|
7
|
+
* With `followsLocale` the segment is also taken from behind a leading locale,
|
|
8
|
+
* where Salla's shared hosts put it (`/ar/dev-x/cart` → `/ar/cart`). It is looked
|
|
9
|
+
* for there first, then at the root, which is where a store that is not
|
|
10
|
+
* multilingual has it (`/dev-x/cart`).
|
|
6
11
|
*/
|
|
7
|
-
export declare function stripStoreBase(pathname: string, base: string): string;
|
|
12
|
+
export declare function stripStoreBase(pathname: string, base: string, followsLocale?: boolean): string;
|
|
8
13
|
/**
|
|
9
14
|
* An application path as the browser addresses it, with the store segment in front.
|
|
10
15
|
*
|
|
11
16
|
* It never checks whether the segment is already there, because that cannot be
|
|
12
17
|
* told apart from a page of the same name: a store called `cart` keeps its cart at
|
|
13
18
|
* `/cart/cart`. Callers pass application paths only.
|
|
19
|
+
*
|
|
20
|
+
* With `followsLocale` the segment goes behind a leading locale instead, which is
|
|
21
|
+
* the address Salla gives a store on a shared host (`/ar/cart` → `/ar/dev-x/cart`,
|
|
22
|
+
* the same shape as its `store.url`). A path with no locale still gets it in front.
|
|
14
23
|
*/
|
|
15
|
-
export declare function prefixStoreBase(path: string, base: string): string;
|
|
24
|
+
export declare function prefixStoreBase(path: string, base: string, followsLocale?: boolean): string;
|
|
16
25
|
/**
|
|
17
26
|
* A pathname from a link the Salla API handed out, without the store's username in it.
|
|
18
27
|
*
|
|
@@ -78,5 +87,6 @@ export declare function loginRedirectHref(args: {
|
|
|
78
87
|
searchStr: string;
|
|
79
88
|
origin: string;
|
|
80
89
|
base: string | null;
|
|
90
|
+
baseFollowsLocale?: boolean;
|
|
81
91
|
}): string | null;
|
|
82
92
|
//# sourceMappingURL=store-base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-base.d.ts","sourceRoot":"","sources":["../../src/utils/store-base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store-base.d.ts","sourceRoot":"","sources":["../../src/utils/store-base.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,CAY5F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,CAWzF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,CAeR;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAMT;AAUD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,GAAG,IAAI,CAShB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,MAAM,GAAG,IAAI,CAUhB"}
|
|
@@ -48,6 +48,15 @@ export declare function resolveStoreIdentifier(explicit?: string): string;
|
|
|
48
48
|
* server decision to agree with.
|
|
49
49
|
*/
|
|
50
50
|
export declare function resolveStoreBase(): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Whether {@link resolveStoreBase}'s segment sits behind the locale
|
|
53
|
+
* (`/ar/dev-x/cart`) rather than at the root of the path.
|
|
54
|
+
*
|
|
55
|
+
* True only on a Salla shared host, where the dispatcher named the store. Read
|
|
56
|
+
* from the same place as the segment, so the two always describe one address: the
|
|
57
|
+
* request on the server, what SSR published in the browser.
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolveStoreBaseFollowsLocale(): boolean;
|
|
51
60
|
/**
|
|
52
61
|
* The address this page should be loaded from instead, when the store is the root
|
|
53
62
|
* of every URL on this host and this request did not use it; null otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-identity.d.ts","sourceRoot":"","sources":["../../src/utils/store-identity.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAUhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAIf"}
|
|
1
|
+
{"version":3,"file":"store-identity.d.ts","sourceRoot":"","sources":["../../src/utils/store-identity.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAoBhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAUhD;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAOvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAIf"}
|
package/dist/vite/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { validateTwilightManifest } from '../chunk-X5NK4TZH.js';
|
|
2
2
|
export { REACT_THEME_TYPE, describeThemeTypeIssue, getThemeType, isReactThemeManifest, validateTwilightManifest } from '../chunk-X5NK4TZH.js';
|
|
3
|
-
import { tanstackHeadAdapter } from '../chunk-
|
|
3
|
+
import { tanstackHeadAdapter } from '../chunk-6EBVVCNI.js';
|
|
4
4
|
import { nextjsHeadAdapter } from '../chunk-HOSHJBPS.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import { EMPTY_DEV_SCHEMA, DEV_PREVIEW_GLOBAL, DEV_PREVIEW_ENDPOINT, normalizePreviewState, DEV_PREVIEW_EVENT, DEV_EDITOR_PATH, DEV_PREVIEW_IMAGE_ENDPOINT, DEV_PREVIEW_IMAGE_MAX_BYTES } from '../chunk-
|
|
5
|
+
import '../chunk-P4XV656A.js';
|
|
6
|
+
import { EMPTY_DEV_SCHEMA, DEV_PREVIEW_GLOBAL, DEV_PREVIEW_ENDPOINT, normalizePreviewState, DEV_PREVIEW_EVENT, DEV_EDITOR_PATH, DEV_PREVIEW_IMAGE_ENDPOINT, DEV_PREVIEW_IMAGE_MAX_BYTES } from '../chunk-OXMUPNMH.js';
|
|
7
7
|
import { setHeadAdapter } from '../chunk-GD26FI4J.js';
|
|
8
8
|
import '../chunk-4SZZPXM2.js';
|
|
9
9
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
10
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-H3PJJKAQ.js';
|
|
11
11
|
import '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DGUM43GV.js';
|
|
13
13
|
import { readFile, readdir, writeFile, mkdir } from 'fs/promises';
|
|
@@ -223,7 +223,13 @@ function firstScalar(v) {
|
|
|
223
223
|
}
|
|
224
224
|
return v;
|
|
225
225
|
}
|
|
226
|
-
var ENTITY_SOURCES = [
|
|
226
|
+
var ENTITY_SOURCES = [
|
|
227
|
+
"products",
|
|
228
|
+
"categories",
|
|
229
|
+
"brands",
|
|
230
|
+
"blog_articles",
|
|
231
|
+
"blog_categories"
|
|
232
|
+
];
|
|
227
233
|
function isEntitySource(source) {
|
|
228
234
|
return ENTITY_SOURCES.includes(source);
|
|
229
235
|
}
|