@salla.sa/twilight-theme-engine 1.0.37 → 1.0.38
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-BAXWUVBW.js → AddToCartForm-NS4UB73S.js} +3 -3
- package/dist/{AddToCartForm-BAXWUVBW.js.map → AddToCartForm-NS4UB73S.js.map} +1 -1
- package/dist/{BlogAuthorPage-C7ENIUKC.js → BlogAuthorPage-Z7VWPXE5.js} +7 -7
- package/dist/{BlogAuthorPage-C7ENIUKC.js.map → BlogAuthorPage-Z7VWPXE5.js.map} +1 -1
- package/dist/{BlogCategoryPage-QODJTKFE.js → BlogCategoryPage-ZB5IQAHL.js} +7 -7
- package/dist/{BlogCategoryPage-QODJTKFE.js.map → BlogCategoryPage-ZB5IQAHL.js.map} +1 -1
- package/dist/{BlogPage-N5BKRIWD.js → BlogPage-IQQWDW4A.js} +6 -6
- package/dist/{BlogPage-N5BKRIWD.js.map → BlogPage-IQQWDW4A.js.map} +1 -1
- package/dist/{BlogSinglePage-HVSCXCCV.js → BlogSinglePage-YXMOWFET.js} +6 -6
- package/dist/{BlogSinglePage-HVSCXCCV.js.map → BlogSinglePage-YXMOWFET.js.map} +1 -1
- package/dist/{BlogTagPage-YXYYHD5S.js → BlogTagPage-6ZNUK36E.js} +7 -7
- package/dist/{BlogTagPage-YXYYHD5S.js.map → BlogTagPage-6ZNUK36E.js.map} +1 -1
- package/dist/{BrandsPage-UP3HKHGR.js → BrandsPage-SRSDK6DP.js} +6 -6
- package/dist/{BrandsPage-UP3HKHGR.js.map → BrandsPage-SRSDK6DP.js.map} +1 -1
- package/dist/{Breadcrumb-5464BOGG.js → Breadcrumb-DNLZTRKM.js} +6 -6
- package/dist/{Breadcrumb-5464BOGG.js.map → Breadcrumb-DNLZTRKM.js.map} +1 -1
- package/dist/{CartItem-TARZW35A.js → CartItem-RVA2ZQGR.js} +6 -6
- package/dist/{CartItem-TARZW35A.js.map → CartItem-RVA2ZQGR.js.map} +1 -1
- package/dist/{CartSummary-2KSBKQM7.js → CartSummary-EDCVRCEG.js} +6 -6
- package/dist/{CartSummary-2KSBKQM7.js.map → CartSummary-EDCVRCEG.js.map} +1 -1
- package/dist/{Copyright-2D7W6OS4.js → Copyright-E3L2IWRR.js} +3 -3
- package/dist/{Copyright-2D7W6OS4.js.map → Copyright-E3L2IWRR.js.map} +1 -1
- package/dist/{CustomerLayout-Z3JGXMO7.js → CustomerLayout-4MWXBPRF.js} +6 -6
- package/dist/{CustomerLayout-Z3JGXMO7.js.map → CustomerLayout-4MWXBPRF.js.map} +1 -1
- package/dist/{Footer-DFZFOH5E.js → Footer-6CAS63OH.js} +6 -6
- package/dist/{Footer-DFZFOH5E.js.map → Footer-6CAS63OH.js.map} +1 -1
- package/dist/{Header-CF5TQMWR.js → Header-DNTX6HW4.js} +4 -4
- package/dist/{Header-CF5TQMWR.js.map → Header-DNTX6HW4.js.map} +1 -1
- package/dist/{LoyaltyPage-TOXOPXEU.js → LoyaltyPage-NRKL6GTJ.js} +6 -6
- package/dist/{LoyaltyPage-TOXOPXEU.js.map → LoyaltyPage-NRKL6GTJ.js.map} +1 -1
- package/dist/{MainMenu-6VTPCMMJ.js → MainMenu-P5BQYKOA.js} +3 -3
- package/dist/{MainMenu-6VTPCMMJ.js.map → MainMenu-P5BQYKOA.js.map} +1 -1
- package/dist/{MasterLayout-PQ2XGL6A.js → MasterLayout-YHPOUKFI.js} +6 -6
- package/dist/{MasterLayout-PQ2XGL6A.js.map → MasterLayout-YHPOUKFI.js.map} +1 -1
- package/dist/{MobileMenu-UWDB2BHQ.js → MobileMenu-EC7EBF5I.js} +6 -6
- package/dist/{MobileMenu-UWDB2BHQ.js.map → MobileMenu-EC7EBF5I.js.map} +1 -1
- package/dist/{NotificationsPage-3WUAFRTU.js → NotificationsPage-G2Z6UV6J.js} +6 -6
- package/dist/{NotificationsPage-3WUAFRTU.js.map → NotificationsPage-G2Z6UV6J.js.map} +1 -1
- package/dist/{OrderSinglePage-T2UE2EJI.js → OrderSinglePage-BULRAABK.js} +6 -6
- package/dist/{OrderSinglePage-T2UE2EJI.js.map → OrderSinglePage-BULRAABK.js.map} +1 -1
- package/dist/{OrdersPage-762O24YK.js → OrdersPage-YFNYQREC.js} +6 -6
- package/dist/{OrdersPage-762O24YK.js.map → OrdersPage-YFNYQREC.js.map} +1 -1
- package/dist/{PageSingle-Y6IVAY3E.js → PageSingle-EQPKQGNU.js} +3 -3
- package/dist/{PageSingle-Y6IVAY3E.js.map → PageSingle-EQPKQGNU.js.map} +1 -1
- package/dist/{ProductDetails-7G7QOLTB.js → ProductDetails-GR5PQOHW.js} +3 -3
- package/dist/{ProductDetails-7G7QOLTB.js.map → ProductDetails-GR5PQOHW.js.map} +1 -1
- package/dist/{ProfilePage-H2JWTJJY.js → ProfilePage-YMLTVERJ.js} +6 -6
- package/dist/{ProfilePage-H2JWTJJY.js.map → ProfilePage-YMLTVERJ.js.map} +1 -1
- package/dist/{SeoCartWidget-XYWATIV3.js → SeoCartWidget-PZXSPNZI.js} +6 -6
- package/dist/{SeoCartWidget-XYWATIV3.js.map → SeoCartWidget-PZXSPNZI.js.map} +1 -1
- package/dist/{SettingsPage-WQX22FTS.js → SettingsPage-4T6VLWRX.js} +6 -6
- package/dist/{SettingsPage-WQX22FTS.js.map → SettingsPage-4T6VLWRX.js.map} +1 -1
- package/dist/{StoreClosedNotification-TL4XY6OS.js → StoreClosedNotification-JK4VNQJJ.js} +7 -7
- package/dist/{StoreClosedNotification-TL4XY6OS.js.map → StoreClosedNotification-JK4VNQJJ.js.map} +1 -1
- package/dist/{TestimonialsPage-PWVTHBOS.js → TestimonialsPage-NMHIF3RD.js} +3 -3
- package/dist/{TestimonialsPage-PWVTHBOS.js.map → TestimonialsPage-NMHIF3RD.js.map} +1 -1
- package/dist/{ThankYouPage-C573J2KJ.js → ThankYouPage-UYWL3TLE.js} +6 -6
- package/dist/{ThankYouPage-C573J2KJ.js.map → ThankYouPage-UYWL3TLE.js.map} +1 -1
- package/dist/{WalletPage-7JE6PELL.js → WalletPage-SE7QXD2E.js} +6 -6
- package/dist/{WalletPage-7JE6PELL.js.map → WalletPage-SE7QXD2E.js.map} +1 -1
- package/dist/{WishlistPage-XTQ6IRG7.js → WishlistPage-KIXGHGO3.js} +8 -7
- package/dist/WishlistPage-KIXGHGO3.js.map +1 -0
- package/dist/api/product.d.ts +40 -12
- package/dist/api/product.d.ts.map +1 -1
- package/dist/api/product.js +1 -1
- package/dist/api/wishlist.d.ts +10 -4
- package/dist/api/wishlist.d.ts.map +1 -1
- package/dist/api/wishlist.js +5 -1
- package/dist/{chunk-SSRNIBVV.js → chunk-3U26OMNO.js} +4 -4
- package/dist/chunk-3U26OMNO.js.map +1 -0
- package/dist/{chunk-XLVAVCUV.js → chunk-46W6R5ZI.js} +5 -5
- package/dist/{chunk-XLVAVCUV.js.map → chunk-46W6R5ZI.js.map} +1 -1
- package/dist/{chunk-FKOBOGLQ.js → chunk-4F6BCPN4.js} +4 -4
- package/dist/{chunk-FKOBOGLQ.js.map → chunk-4F6BCPN4.js.map} +1 -1
- package/dist/{chunk-5R5IGGI3.js → chunk-5N5YKYIY.js} +3 -3
- package/dist/{chunk-5R5IGGI3.js.map → chunk-5N5YKYIY.js.map} +1 -1
- package/dist/{chunk-63WNORBK.js → chunk-IXDDHM7D.js} +5 -5
- package/dist/{chunk-63WNORBK.js.map → chunk-IXDDHM7D.js.map} +1 -1
- package/dist/{chunk-KLTQ2UST.js → chunk-KOZYZQH4.js} +8 -5
- package/dist/chunk-KOZYZQH4.js.map +1 -0
- package/dist/{chunk-4PLGRQAS.js → chunk-QTBH2A72.js} +3 -3
- package/dist/{chunk-4PLGRQAS.js.map → chunk-QTBH2A72.js.map} +1 -1
- package/dist/chunk-SR6GZ6DD.js +14 -0
- package/dist/{chunk-BK4VEUF3.js.map → chunk-SR6GZ6DD.js.map} +1 -1
- package/dist/{chunk-CZS4ZHQK.js → chunk-TDPAK42O.js} +3 -3
- package/dist/{chunk-CZS4ZHQK.js.map → chunk-TDPAK42O.js.map} +1 -1
- package/dist/{chunk-EFHSAWDQ.js → chunk-W47EYBH2.js} +7 -7
- package/dist/{chunk-EFHSAWDQ.js.map → chunk-W47EYBH2.js.map} +1 -1
- package/dist/chunk-XLJPUFN4.js +141 -0
- package/dist/chunk-XLJPUFN4.js.map +1 -0
- package/dist/{chunk-YOA3UVDE.js → chunk-XOJDJW3H.js} +4 -4
- package/dist/{chunk-YOA3UVDE.js.map → chunk-XOJDJW3H.js.map} +1 -1
- package/dist/{chunk-ZZA7L3RI.js → chunk-XXWH2MUF.js} +6 -6
- package/dist/{chunk-ZZA7L3RI.js.map → chunk-XXWH2MUF.js.map} +1 -1
- package/dist/{chunk-5FH6E2FQ.js → chunk-Y7AHVMVQ.js} +7 -3
- package/dist/chunk-Y7AHVMVQ.js.map +1 -0
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/drawer/index.js +4 -4
- package/dist/components/home/index.js +7 -7
- package/dist/components/layout/index.js +5 -5
- package/dist/components/product/index.js +5 -5
- package/dist/components/store/index.js +6 -6
- package/dist/{document-class-5BBGX5LN.js → document-class-N2TRN7J5.js} +4 -3
- package/dist/{document-class-5BBGX5LN.js.map → document-class-N2TRN7J5.js.map} +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/useGtm.js +4 -4
- package/dist/hooks/useMoney.js +4 -4
- package/dist/hooks/useProduct.d.ts +12 -2
- package/dist/hooks/useProduct.d.ts.map +1 -1
- package/dist/hooks/useProduct.js +1 -1
- package/dist/hooks/useStore.js +4 -4
- package/dist/index.js +4 -4
- package/dist/{not-found-QM2L2D7P.js → not-found-SMNPMHRL.js} +6 -6
- package/dist/{not-found-QM2L2D7P.js.map → not-found-SMNPMHRL.js.map} +1 -1
- package/dist/providers/index.js +4 -4
- package/dist/routes/account/orders.js +1 -1
- package/dist/routes/account.js +8 -7
- package/dist/routes/account.js.map +1 -1
- package/dist/routes/blog.js +5 -5
- package/dist/routes/brands.js +1 -1
- package/dist/routes/cart.js +9 -9
- package/dist/routes/home.js +8 -8
- package/dist/routes/loyalty.js +1 -1
- package/dist/routes/page.js +1 -1
- package/dist/routes/product-listing.js +7 -7
- package/dist/routes/product.js +7 -7
- package/dist/routes/testimonials.js +1 -1
- package/dist/routes/thank-you.js +1 -1
- package/dist/skeleton.js +8 -8
- package/dist/tanstack/router.d.ts.map +1 -1
- package/dist/tanstack.js +3 -2
- package/dist/tanstack.js.map +1 -1
- package/package.json +1 -1
- package/dist/WishlistPage-XTQ6IRG7.js.map +0 -1
- package/dist/chunk-5FH6E2FQ.js.map +0 -1
- package/dist/chunk-BK4VEUF3.js +0 -14
- package/dist/chunk-KLTQ2UST.js.map +0 -1
- package/dist/chunk-SSRNIBVV.js.map +0 -1
- package/dist/chunk-VZHYSYKG.js +0 -67
- package/dist/chunk-VZHYSYKG.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/not-found.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAAS,YAAA,CAAa,KAAA,GAA2B,EAAC,EAAG;AAC1D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM;AAAA,IACJ,KAAA,GAAQ,CAAA,CAAE,mBAAmB,CAAA,IAAK,gBAAA;AAAA,IAClC,OAAA,GAAU,CAAA,CAAE,8BAA8B,CAAA,IACxC,gEAAA;AAAA,IACF,YAAA,GAAe,IAAA;AAAA,IACf,YAAA,GAAe,CAAA,CAAE,2BAA2B,CAAA,IAAK,cAAA;AAAA,IACjD;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,uBACE,IAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,GAAA;AAAA,MACN,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY,YAAA;AAAA,MACZ,aAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,gBAAA,EAAiB,CAAA;AAAA,wBAChC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,kBAAA,EAAmB,CAAA;AAAA,wBAClC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,cAAA,EAAe;AAAA;AAAA;AAAA,GAChC;AAEJ","file":"not-found-
|
|
1
|
+
{"version":3,"sources":["../src/routes/not-found.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAAS,YAAA,CAAa,KAAA,GAA2B,EAAC,EAAG;AAC1D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM;AAAA,IACJ,KAAA,GAAQ,CAAA,CAAE,mBAAmB,CAAA,IAAK,gBAAA;AAAA,IAClC,OAAA,GAAU,CAAA,CAAE,8BAA8B,CAAA,IACxC,gEAAA;AAAA,IACF,YAAA,GAAe,IAAA;AAAA,IACf,YAAA,GAAe,CAAA,CAAE,2BAA2B,CAAA,IAAK,cAAA;AAAA,IACjD;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,uBACE,IAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,GAAA;AAAA,MACN,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY,YAAA;AAAA,MACZ,aAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,gBAAA,EAAiB,CAAA;AAAA,wBAChC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,kBAAA,EAAmB,CAAA;AAAA,wBAClC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,cAAA,EAAe;AAAA;AAAA;AAAA,GAChC;AAEJ","file":"not-found-SMNPMHRL.js","sourcesContent":["import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-W47EYBH2.js';
|
|
2
|
+
import '../chunk-IXDDHM7D.js';
|
|
3
3
|
import '../chunk-JKIRRMBU.js';
|
|
4
4
|
import '../chunk-2JV6WZ6O.js';
|
|
5
5
|
import '../chunk-6IATCGID.js';
|
|
@@ -17,7 +17,7 @@ export { SettingsError } from '../chunk-6XWMNQ52.js';
|
|
|
17
17
|
import '../chunk-TP3LCGE7.js';
|
|
18
18
|
import '../chunk-Z653O7MX.js';
|
|
19
19
|
import '../chunk-ZCH7W7DZ.js';
|
|
20
|
-
import '../chunk-
|
|
20
|
+
import '../chunk-3U26OMNO.js';
|
|
21
21
|
export { DocumentClassProvider, useDocumentClassContext, useDocumentClassOutput } from '../chunk-JWXJPJBO.js';
|
|
22
22
|
import '../chunk-CW625T2E.js';
|
|
23
23
|
import '../chunk-BVSJPBJ6.js';
|
|
@@ -29,7 +29,7 @@ import '../chunk-YMVLYYLU.js';
|
|
|
29
29
|
import '../chunk-RJPPO3ET.js';
|
|
30
30
|
import '../chunk-Q7VWURUR.js';
|
|
31
31
|
import '../chunk-GU2KUQVD.js';
|
|
32
|
-
import '../chunk-
|
|
32
|
+
import '../chunk-TDPAK42O.js';
|
|
33
33
|
import '../chunk-AXW67SY7.js';
|
|
34
34
|
export { LinkProvider, LinkProviderError, createLinkWithAdapter, useLinkAdapter } from '../chunk-BYMOPN2S.js';
|
|
35
35
|
import '../chunk-6BZ5TKEV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-
|
|
1
|
+
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-4F6BCPN4.js';
|
|
2
2
|
import '../../chunk-MCYEMXFY.js';
|
|
3
3
|
import '../../chunk-TZ3E5BN4.js';
|
|
4
4
|
import '../../chunk-XLGVT7QF.js';
|
package/dist/routes/account.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { wallet } from '../chunk-OGGWNPF3.js';
|
|
2
|
-
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-
|
|
2
|
+
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-4F6BCPN4.js';
|
|
3
3
|
import '../chunk-MCYEMXFY.js';
|
|
4
4
|
import { notification } from '../chunk-CCCKRNO4.js';
|
|
5
|
-
import { wishlist } from '../chunk-
|
|
5
|
+
import { wishlist } from '../chunk-KOZYZQH4.js';
|
|
6
6
|
import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
|
|
7
|
+
import '../chunk-XLJPUFN4.js';
|
|
7
8
|
import { unauthorized, orUnauthorized } from '../chunk-XLGVT7QF.js';
|
|
8
9
|
import { RouteId } from '../chunk-MTONGOJD.js';
|
|
9
10
|
import '../chunk-AZ5HAIYQ.js';
|
|
@@ -28,7 +29,7 @@ async function profileLoader(_ctx) {
|
|
|
28
29
|
|
|
29
30
|
// src/routes/account/profile/index.tsx
|
|
30
31
|
var LazyProfilePage = lazy(
|
|
31
|
-
() => import('../ProfilePage-
|
|
32
|
+
() => import('../ProfilePage-YMLTVERJ.js').then((m) => ({ default: m.ProfilePage }))
|
|
32
33
|
);
|
|
33
34
|
var ProfilePage = LazyProfilePage;
|
|
34
35
|
var Profile = {
|
|
@@ -69,7 +70,7 @@ async function wishlistLoader(ctx) {
|
|
|
69
70
|
|
|
70
71
|
// src/routes/account/wishlist/index.tsx
|
|
71
72
|
var LazyWishlistPage = lazy(
|
|
72
|
-
() => import('../WishlistPage-
|
|
73
|
+
() => import('../WishlistPage-KIXGHGO3.js').then((m) => ({ default: m.WishlistPage }))
|
|
73
74
|
);
|
|
74
75
|
var WishlistPage = LazyWishlistPage;
|
|
75
76
|
var Wishlist = {
|
|
@@ -110,7 +111,7 @@ async function walletLoader(ctx) {
|
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
// src/routes/account/wallet/index.tsx
|
|
113
|
-
var LazyWalletPage = lazy(() => import('../WalletPage-
|
|
114
|
+
var LazyWalletPage = lazy(() => import('../WalletPage-SE7QXD2E.js').then((m) => ({ default: m.WalletPage })));
|
|
114
115
|
var WalletPage = LazyWalletPage;
|
|
115
116
|
var Wallet = {
|
|
116
117
|
id: RouteId.CUSTOMER_WALLET,
|
|
@@ -145,7 +146,7 @@ async function notificationsLoader(_ctx) {
|
|
|
145
146
|
|
|
146
147
|
// src/routes/account/notifications/index.tsx
|
|
147
148
|
var LazyNotificationsPage = lazy(
|
|
148
|
-
() => import('../NotificationsPage-
|
|
149
|
+
() => import('../NotificationsPage-G2Z6UV6J.js').then((m) => ({ default: m.NotificationsPage }))
|
|
149
150
|
);
|
|
150
151
|
var NotificationsPage = LazyNotificationsPage;
|
|
151
152
|
var Notifications = {
|
|
@@ -177,7 +178,7 @@ async function settingsLoader(_ctx) {
|
|
|
177
178
|
|
|
178
179
|
// src/routes/account/settings/index.tsx
|
|
179
180
|
var LazySettingsPage = lazy(
|
|
180
|
-
() => import('../SettingsPage-
|
|
181
|
+
() => import('../SettingsPage-4T6VLWRX.js').then((m) => ({ default: m.SettingsPage }))
|
|
181
182
|
);
|
|
182
183
|
var SettingsPage = LazySettingsPage;
|
|
183
184
|
var Settings = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/account/profile/loader.ts","../../src/routes/account/profile/index.tsx","../../src/routes/account/wishlist/loader.ts","../../src/routes/account/wishlist/index.tsx","../../src/routes/account/wallet/loader.ts","../../src/routes/account/wallet/index.tsx","../../src/routes/account/notifications/loader.ts","../../src/routes/account/notifications/index.tsx","../../src/routes/account/settings/loader.ts","../../src/routes/account/settings/index.tsx"],"names":["lazy"],"mappings":"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","file":"account.js","sourcesContent":["import type { ProfilePageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function profileLoader(_ctx: { locale: string }): Promise<ProfilePageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: {\n title: i18n.t('common.titles.profile') || 'Profile',\n slug: 'profile',\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { profileLoader } from './loader';\nimport type { ProfilePageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyProfilePage = lazy(() =>\n import('./ProfilePage').then((m) => ({ default: m.ProfilePage }))\n);\n\nexport const ProfilePage = LazyProfilePage;\nexport { profileLoader } from './loader';\nexport type { ProfilePageProps } from './types';\n\nexport const Profile = {\n id: RouteId.CUSTOMER_PROFILE,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: ProfilePageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<ProfilePageProps> => {\n const data = await profileLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as ProfilePageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: ProfilePageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyProfilePage,\n} as const;\n","import type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wishlist } from '../../../api/wishlist';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function wishlistLoader(ctx: LoaderContext): Promise<WishlistPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wishlist.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wishlist') || 'Wishlist',\n slug: 'wishlist',\n },\n query: { page: pageNum },\n products: data.items,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { wishlistLoader } from './loader';\nimport type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWishlistPage = lazy(() =>\n import('./WishlistPage').then((m) => ({ default: m.WishlistPage }))\n);\n\nexport const WishlistPage = LazyWishlistPage;\nexport { wishlistLoader } from './loader';\nexport type { WishlistPageProps } from './types';\n\nexport const Wishlist = {\n id: RouteId.CUSTOMER_WISHLIST,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WishlistPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WishlistPageProps> => {\n const data = await wishlistLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WishlistPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WishlistPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWishlistPage,\n} as const;\n","import type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wallet } from '../../../api/wallet';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function walletLoader(ctx: LoaderContext): Promise<WalletPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wallet.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wallet') || 'Wallet',\n slug: 'wallet',\n },\n query: { page: pageNum },\n transactions: data.items,\n balance: data.balance,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { walletLoader } from './loader';\nimport type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWalletPage = lazy(() => import('./WalletPage').then((m) => ({ default: m.WalletPage })));\n\nexport const WalletPage = LazyWalletPage;\nexport { walletLoader } from './loader';\nexport type { WalletPageProps } from './types';\n\nexport const Wallet = {\n id: RouteId.CUSTOMER_WALLET,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WalletPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WalletPageProps> => {\n const data = await walletLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WalletPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WalletPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWalletPage,\n} as const;\n","import { notification } from '../../../api/notification';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { NotificationsPageProps } from './types';\n\nexport async function notificationsLoader(_ctx: {\n locale: string;\n}): Promise<NotificationsPageProps> {\n const i18n = getTwilightContext().i18n;\n const response = await orUnauthorized(notification.list());\n\n return {\n page: {\n title: i18n.t('common.titles.notifications') || 'Notifications',\n slug: 'notifications',\n },\n notifications: response.data,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { notificationsLoader } from './loader';\nimport type { NotificationsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyNotificationsPage = lazy(() =>\n import('./NotificationsPage').then((m) => ({ default: m.NotificationsPage }))\n);\n\nexport const NotificationsPage = LazyNotificationsPage;\nexport { notificationsLoader } from './loader';\nexport type { NotificationsPageProps, Notification } from './types';\n\nexport const Notifications = {\n id: RouteId.CUSTOMER_NOTIFICATIONS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: NotificationsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<NotificationsPageProps> => {\n const data = await notificationsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as NotificationsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: NotificationsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyNotificationsPage,\n} as const;\n","import type { SettingsPageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function settingsLoader(_ctx: { locale: string }): Promise<SettingsPageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: { title: i18n.t('common.titles.settings') || 'Settings', slug: 'settings' },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { settingsLoader } from './loader';\nimport type { SettingsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazySettingsPage = lazy(() =>\n import('./SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\n\nexport const SettingsPage = LazySettingsPage;\nexport { settingsLoader } from './loader';\nexport type { SettingsPageProps } from './types';\n\nexport const Settings = {\n id: RouteId.CUSTOMER_SETTINGS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: SettingsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<SettingsPageProps> => {\n const data = await settingsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as SettingsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: SettingsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazySettingsPage,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/routes/account/profile/loader.ts","../../src/routes/account/profile/index.tsx","../../src/routes/account/wishlist/loader.ts","../../src/routes/account/wishlist/index.tsx","../../src/routes/account/wallet/loader.ts","../../src/routes/account/wallet/index.tsx","../../src/routes/account/notifications/loader.ts","../../src/routes/account/notifications/index.tsx","../../src/routes/account/settings/loader.ts","../../src/routes/account/settings/index.tsx"],"names":["lazy"],"mappings":"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","file":"account.js","sourcesContent":["import type { ProfilePageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function profileLoader(_ctx: { locale: string }): Promise<ProfilePageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: {\n title: i18n.t('common.titles.profile') || 'Profile',\n slug: 'profile',\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { profileLoader } from './loader';\nimport type { ProfilePageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyProfilePage = lazy(() =>\n import('./ProfilePage').then((m) => ({ default: m.ProfilePage }))\n);\n\nexport const ProfilePage = LazyProfilePage;\nexport { profileLoader } from './loader';\nexport type { ProfilePageProps } from './types';\n\nexport const Profile = {\n id: RouteId.CUSTOMER_PROFILE,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: ProfilePageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<ProfilePageProps> => {\n const data = await profileLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as ProfilePageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: ProfilePageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyProfilePage,\n} as const;\n","import type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wishlist } from '../../../api/wishlist';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function wishlistLoader(ctx: LoaderContext): Promise<WishlistPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wishlist.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wishlist') || 'Wishlist',\n slug: 'wishlist',\n },\n query: { page: pageNum },\n products: data.items,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { wishlistLoader } from './loader';\nimport type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWishlistPage = lazy(() =>\n import('./WishlistPage').then((m) => ({ default: m.WishlistPage }))\n);\n\nexport const WishlistPage = LazyWishlistPage;\nexport { wishlistLoader } from './loader';\nexport type { WishlistPageProps } from './types';\n\nexport const Wishlist = {\n id: RouteId.CUSTOMER_WISHLIST,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WishlistPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WishlistPageProps> => {\n const data = await wishlistLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WishlistPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WishlistPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWishlistPage,\n} as const;\n","import type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wallet } from '../../../api/wallet';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function walletLoader(ctx: LoaderContext): Promise<WalletPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wallet.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wallet') || 'Wallet',\n slug: 'wallet',\n },\n query: { page: pageNum },\n transactions: data.items,\n balance: data.balance,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { walletLoader } from './loader';\nimport type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWalletPage = lazy(() => import('./WalletPage').then((m) => ({ default: m.WalletPage })));\n\nexport const WalletPage = LazyWalletPage;\nexport { walletLoader } from './loader';\nexport type { WalletPageProps } from './types';\n\nexport const Wallet = {\n id: RouteId.CUSTOMER_WALLET,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WalletPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WalletPageProps> => {\n const data = await walletLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WalletPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WalletPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWalletPage,\n} as const;\n","import { notification } from '../../../api/notification';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { NotificationsPageProps } from './types';\n\nexport async function notificationsLoader(_ctx: {\n locale: string;\n}): Promise<NotificationsPageProps> {\n const i18n = getTwilightContext().i18n;\n const response = await orUnauthorized(notification.list());\n\n return {\n page: {\n title: i18n.t('common.titles.notifications') || 'Notifications',\n slug: 'notifications',\n },\n notifications: response.data,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { notificationsLoader } from './loader';\nimport type { NotificationsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyNotificationsPage = lazy(() =>\n import('./NotificationsPage').then((m) => ({ default: m.NotificationsPage }))\n);\n\nexport const NotificationsPage = LazyNotificationsPage;\nexport { notificationsLoader } from './loader';\nexport type { NotificationsPageProps, Notification } from './types';\n\nexport const Notifications = {\n id: RouteId.CUSTOMER_NOTIFICATIONS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: NotificationsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<NotificationsPageProps> => {\n const data = await notificationsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as NotificationsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: NotificationsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyNotificationsPage,\n} as const;\n","import type { SettingsPageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function settingsLoader(_ctx: { locale: string }): Promise<SettingsPageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: { title: i18n.t('common.titles.settings') || 'Settings', slug: 'settings' },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { settingsLoader } from './loader';\nimport type { SettingsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazySettingsPage = lazy(() =>\n import('./SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\n\nexport const SettingsPage = LazySettingsPage;\nexport { settingsLoader } from './loader';\nexport type { SettingsPageProps } from './types';\n\nexport const Settings = {\n id: RouteId.CUSTOMER_SETTINGS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: SettingsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<SettingsPageProps> => {\n const data = await settingsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as SettingsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: SettingsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazySettingsPage,\n} as const;\n"]}
|
package/dist/routes/blog.js
CHANGED
|
@@ -133,18 +133,18 @@ async function blogTagLoader({
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
// src/routes/blog/index.tsx
|
|
136
|
-
var LazyBlogPage = lazy(() => import('../BlogPage-
|
|
136
|
+
var LazyBlogPage = lazy(() => import('../BlogPage-IQQWDW4A.js').then((m) => ({ default: m.BlogPage })));
|
|
137
137
|
var LazyBlogSinglePage = lazy(
|
|
138
|
-
() => import('../BlogSinglePage-
|
|
138
|
+
() => import('../BlogSinglePage-YXMOWFET.js').then((m) => ({ default: m.BlogSinglePage }))
|
|
139
139
|
);
|
|
140
140
|
var LazyBlogAuthorPage = lazy(
|
|
141
|
-
() => import('../BlogAuthorPage-
|
|
141
|
+
() => import('../BlogAuthorPage-Z7VWPXE5.js').then((m) => ({ default: m.BlogAuthorPage }))
|
|
142
142
|
);
|
|
143
143
|
var LazyBlogCategoryPage = lazy(
|
|
144
|
-
() => import('../BlogCategoryPage-
|
|
144
|
+
() => import('../BlogCategoryPage-ZB5IQAHL.js').then((m) => ({ default: m.BlogCategoryPage }))
|
|
145
145
|
);
|
|
146
146
|
var LazyBlogTagPage = lazy(
|
|
147
|
-
() => import('../BlogTagPage-
|
|
147
|
+
() => import('../BlogTagPage-6ZNUK36E.js').then((m) => ({ default: m.BlogTagPage }))
|
|
148
148
|
);
|
|
149
149
|
var BlogPage = LazyBlogPage;
|
|
150
150
|
var BlogSinglePage = LazyBlogSinglePage;
|
package/dist/routes/brands.js
CHANGED
|
@@ -33,7 +33,7 @@ async function brandsLoader() {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// src/routes/brands/index.tsx
|
|
36
|
-
var LazyBrandsPage = lazy(() => import('../BrandsPage-
|
|
36
|
+
var LazyBrandsPage = lazy(() => import('../BrandsPage-SRSDK6DP.js').then((m) => ({ default: m.BrandsPage })));
|
|
37
37
|
var BrandsPage = LazyBrandsPage;
|
|
38
38
|
async function brandsLoaderWithExtend(_ctx, extend) {
|
|
39
39
|
const data = await brandsLoader();
|
package/dist/routes/cart.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { cart } from '../chunk-KFH3OBFW.js';
|
|
2
2
|
import { loyalty } from '../chunk-ZNWNJZSM.js';
|
|
3
3
|
import { CartSkeleton } from '../chunk-N7CCSGZF.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-5N5YKYIY.js';
|
|
5
5
|
import '../chunk-QG2Q6HB5.js';
|
|
6
6
|
import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-46W6R5ZI.js';
|
|
8
|
+
import '../chunk-XLJPUFN4.js';
|
|
9
|
+
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-SR6GZ6DD.js';
|
|
10
|
+
import '../chunk-XXWH2MUF.js';
|
|
11
11
|
import '../chunk-342EPVXN.js';
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
12
|
+
import '../chunk-W47EYBH2.js';
|
|
13
|
+
import '../chunk-IXDDHM7D.js';
|
|
14
14
|
import '../chunk-JKIRRMBU.js';
|
|
15
15
|
import '../chunk-2JV6WZ6O.js';
|
|
16
16
|
import '../chunk-6IATCGID.js';
|
|
@@ -28,7 +28,7 @@ import { getTwilightContext } from '../chunk-6XWMNQ52.js';
|
|
|
28
28
|
import '../chunk-TP3LCGE7.js';
|
|
29
29
|
import '../chunk-Z653O7MX.js';
|
|
30
30
|
import '../chunk-ZCH7W7DZ.js';
|
|
31
|
-
import '../chunk-
|
|
31
|
+
import '../chunk-3U26OMNO.js';
|
|
32
32
|
import '../chunk-JWXJPJBO.js';
|
|
33
33
|
import '../chunk-CW625T2E.js';
|
|
34
34
|
import '../chunk-BVSJPBJ6.js';
|
|
@@ -40,7 +40,7 @@ import '../chunk-YMVLYYLU.js';
|
|
|
40
40
|
import '../chunk-RJPPO3ET.js';
|
|
41
41
|
import { HookSlot } from '../chunk-Q7VWURUR.js';
|
|
42
42
|
import '../chunk-GU2KUQVD.js';
|
|
43
|
-
import { LazyBreadcrumb, LazyNoContent } from '../chunk-
|
|
43
|
+
import { LazyBreadcrumb, LazyNoContent } from '../chunk-TDPAK42O.js';
|
|
44
44
|
import '../chunk-AXW67SY7.js';
|
|
45
45
|
import '../chunk-BYMOPN2S.js';
|
|
46
46
|
import '../chunk-6BZ5TKEV.js';
|
package/dist/routes/home.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { Home, HomeSkeleton, homeLoader } from '../chunk-
|
|
1
|
+
export { Home, HomeSkeleton, homeLoader } from '../chunk-5N5YKYIY.js';
|
|
2
2
|
import '../chunk-QG2Q6HB5.js';
|
|
3
3
|
import '../chunk-TZ3E5BN4.js';
|
|
4
|
-
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
4
|
+
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-46W6R5ZI.js';
|
|
5
|
+
import '../chunk-XLJPUFN4.js';
|
|
6
|
+
import '../chunk-XXWH2MUF.js';
|
|
7
7
|
import '../chunk-342EPVXN.js';
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-W47EYBH2.js';
|
|
9
|
+
import '../chunk-IXDDHM7D.js';
|
|
10
10
|
import '../chunk-JKIRRMBU.js';
|
|
11
11
|
import '../chunk-2JV6WZ6O.js';
|
|
12
12
|
import '../chunk-6IATCGID.js';
|
|
@@ -24,7 +24,7 @@ import '../chunk-6XWMNQ52.js';
|
|
|
24
24
|
import '../chunk-TP3LCGE7.js';
|
|
25
25
|
import '../chunk-Z653O7MX.js';
|
|
26
26
|
import '../chunk-ZCH7W7DZ.js';
|
|
27
|
-
import '../chunk-
|
|
27
|
+
import '../chunk-3U26OMNO.js';
|
|
28
28
|
import '../chunk-JWXJPJBO.js';
|
|
29
29
|
import '../chunk-CW625T2E.js';
|
|
30
30
|
import '../chunk-BVSJPBJ6.js';
|
|
@@ -36,7 +36,7 @@ import '../chunk-YMVLYYLU.js';
|
|
|
36
36
|
import '../chunk-RJPPO3ET.js';
|
|
37
37
|
import '../chunk-Q7VWURUR.js';
|
|
38
38
|
import '../chunk-GU2KUQVD.js';
|
|
39
|
-
import '../chunk-
|
|
39
|
+
import '../chunk-TDPAK42O.js';
|
|
40
40
|
import '../chunk-AXW67SY7.js';
|
|
41
41
|
import '../chunk-BYMOPN2S.js';
|
|
42
42
|
import '../chunk-6BZ5TKEV.js';
|
package/dist/routes/loyalty.js
CHANGED
|
@@ -18,7 +18,7 @@ async function loyaltyLoader() {
|
|
|
18
18
|
|
|
19
19
|
// src/routes/loyalty/index.tsx
|
|
20
20
|
var LazyLoyaltyPage = lazy(
|
|
21
|
-
() => import('../LoyaltyPage-
|
|
21
|
+
() => import('../LoyaltyPage-NRKL6GTJ.js').then((m) => ({ default: m.LoyaltyPage }))
|
|
22
22
|
);
|
|
23
23
|
var LoyaltyPage = LazyLoyaltyPage;
|
|
24
24
|
async function loader(_ctx, extend) {
|
package/dist/routes/page.js
CHANGED
|
@@ -27,7 +27,7 @@ async function pageSingleLoader({ params }) {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
// src/routes/page/index.tsx
|
|
30
|
-
var LazyPageSingle = lazy(() => import('../PageSingle-
|
|
30
|
+
var LazyPageSingle = lazy(() => import('../PageSingle-EQPKQGNU.js').then((m) => ({ default: m.PageSingle })));
|
|
31
31
|
var PageSingleLazy = LazyPageSingle;
|
|
32
32
|
async function loader(ctx, extend) {
|
|
33
33
|
const data = await pageSingleLoader({ params: ctx.params });
|
|
@@ -2,13 +2,13 @@ import { sortOptions } from '../chunk-6Z4MOC4S.js';
|
|
|
2
2
|
import { category } from '../chunk-ULQMJUO2.js';
|
|
3
3
|
import { brand } from '../chunk-2AGMXJVP.js';
|
|
4
4
|
import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
|
|
5
|
-
import { LazyTestimonials } from '../chunk-
|
|
6
|
-
import { product } from '../chunk-
|
|
5
|
+
import { LazyTestimonials } from '../chunk-46W6R5ZI.js';
|
|
6
|
+
import { product } from '../chunk-XLJPUFN4.js';
|
|
7
7
|
import { Drawer } from '../chunk-6TKIUG5C.js';
|
|
8
|
-
import { ProductCard } from '../chunk-
|
|
8
|
+
import { ProductCard } from '../chunk-XXWH2MUF.js';
|
|
9
9
|
import '../chunk-342EPVXN.js';
|
|
10
|
-
import { useStore } from '../chunk-
|
|
11
|
-
import '../chunk-
|
|
10
|
+
import { useStore } from '../chunk-W47EYBH2.js';
|
|
11
|
+
import '../chunk-IXDDHM7D.js';
|
|
12
12
|
import '../chunk-JKIRRMBU.js';
|
|
13
13
|
import '../chunk-2JV6WZ6O.js';
|
|
14
14
|
import '../chunk-6IATCGID.js';
|
|
@@ -26,7 +26,7 @@ import { getTwilightContext } from '../chunk-6XWMNQ52.js';
|
|
|
26
26
|
import '../chunk-TP3LCGE7.js';
|
|
27
27
|
import '../chunk-Z653O7MX.js';
|
|
28
28
|
import '../chunk-ZCH7W7DZ.js';
|
|
29
|
-
import '../chunk-
|
|
29
|
+
import '../chunk-3U26OMNO.js';
|
|
30
30
|
import '../chunk-JWXJPJBO.js';
|
|
31
31
|
import '../chunk-CW625T2E.js';
|
|
32
32
|
import '../chunk-BVSJPBJ6.js';
|
|
@@ -38,7 +38,7 @@ import '../chunk-YMVLYYLU.js';
|
|
|
38
38
|
import '../chunk-RJPPO3ET.js';
|
|
39
39
|
import { HookSlot } from '../chunk-Q7VWURUR.js';
|
|
40
40
|
import '../chunk-GU2KUQVD.js';
|
|
41
|
-
import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-
|
|
41
|
+
import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-TDPAK42O.js';
|
|
42
42
|
import '../chunk-AXW67SY7.js';
|
|
43
43
|
import '../chunk-BYMOPN2S.js';
|
|
44
44
|
import '../chunk-6BZ5TKEV.js';
|
package/dist/routes/product.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
|
|
2
|
-
import { ProductsSlider, LazyTestimonials } from '../chunk-
|
|
3
|
-
import { product } from '../chunk-
|
|
4
|
-
import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-
|
|
2
|
+
import { ProductsSlider, LazyTestimonials } from '../chunk-46W6R5ZI.js';
|
|
3
|
+
import { product } from '../chunk-XLJPUFN4.js';
|
|
4
|
+
import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-XXWH2MUF.js';
|
|
5
5
|
import '../chunk-342EPVXN.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-W47EYBH2.js';
|
|
7
|
+
import '../chunk-IXDDHM7D.js';
|
|
8
8
|
import '../chunk-JKIRRMBU.js';
|
|
9
9
|
import '../chunk-2JV6WZ6O.js';
|
|
10
10
|
import '../chunk-6IATCGID.js';
|
|
@@ -22,7 +22,7 @@ import { getTwilightContext } from '../chunk-6XWMNQ52.js';
|
|
|
22
22
|
import '../chunk-TP3LCGE7.js';
|
|
23
23
|
import '../chunk-Z653O7MX.js';
|
|
24
24
|
import '../chunk-ZCH7W7DZ.js';
|
|
25
|
-
import { useProduct } from '../chunk-
|
|
25
|
+
import { useProduct } from '../chunk-3U26OMNO.js';
|
|
26
26
|
import '../chunk-JWXJPJBO.js';
|
|
27
27
|
import '../chunk-CW625T2E.js';
|
|
28
28
|
import '../chunk-BVSJPBJ6.js';
|
|
@@ -34,7 +34,7 @@ import { useComments } from '../chunk-YMVLYYLU.js';
|
|
|
34
34
|
import '../chunk-RJPPO3ET.js';
|
|
35
35
|
import { HookSlot } from '../chunk-Q7VWURUR.js';
|
|
36
36
|
import '../chunk-GU2KUQVD.js';
|
|
37
|
-
import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-
|
|
37
|
+
import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-TDPAK42O.js';
|
|
38
38
|
import '../chunk-AXW67SY7.js';
|
|
39
39
|
import '../chunk-BYMOPN2S.js';
|
|
40
40
|
import '../chunk-6BZ5TKEV.js';
|
|
@@ -18,7 +18,7 @@ async function testimonialsLoader(_ctx) {
|
|
|
18
18
|
|
|
19
19
|
// src/routes/testimonials/index.tsx
|
|
20
20
|
var LazyTestimonialsPage = lazy(
|
|
21
|
-
() => import('../TestimonialsPage-
|
|
21
|
+
() => import('../TestimonialsPage-NMHIF3RD.js').then((m) => ({ default: m.TestimonialsPage }))
|
|
22
22
|
);
|
|
23
23
|
var TestimonialsPage = LazyTestimonialsPage;
|
|
24
24
|
async function loader(ctx, extend) {
|
package/dist/routes/thank-you.js
CHANGED
|
@@ -38,7 +38,7 @@ async function thankYouLoader({
|
|
|
38
38
|
|
|
39
39
|
// src/routes/thank-you/index.tsx
|
|
40
40
|
var LazyThankYouPage = lazy(
|
|
41
|
-
() => import('../ThankYouPage-
|
|
41
|
+
() => import('../ThankYouPage-UYWL3TLE.js').then((m) => ({ default: m.ThankYouPage }))
|
|
42
42
|
);
|
|
43
43
|
var ThankYouPage = LazyThankYouPage;
|
|
44
44
|
async function loader(ctx, extend) {
|
package/dist/skeleton.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
|
|
2
|
-
export { HomeSkeleton } from './chunk-
|
|
2
|
+
export { HomeSkeleton } from './chunk-5N5YKYIY.js';
|
|
3
3
|
import './chunk-QG2Q6HB5.js';
|
|
4
4
|
import './chunk-TZ3E5BN4.js';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
5
|
+
import './chunk-46W6R5ZI.js';
|
|
6
|
+
import './chunk-XLJPUFN4.js';
|
|
7
|
+
import './chunk-XXWH2MUF.js';
|
|
8
8
|
import './chunk-342EPVXN.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
9
|
+
import './chunk-W47EYBH2.js';
|
|
10
|
+
import './chunk-IXDDHM7D.js';
|
|
11
11
|
import './chunk-JKIRRMBU.js';
|
|
12
12
|
import './chunk-2JV6WZ6O.js';
|
|
13
13
|
import './chunk-6IATCGID.js';
|
|
@@ -25,7 +25,7 @@ import './chunk-6XWMNQ52.js';
|
|
|
25
25
|
import './chunk-TP3LCGE7.js';
|
|
26
26
|
import './chunk-Z653O7MX.js';
|
|
27
27
|
import './chunk-ZCH7W7DZ.js';
|
|
28
|
-
import './chunk-
|
|
28
|
+
import './chunk-3U26OMNO.js';
|
|
29
29
|
import './chunk-JWXJPJBO.js';
|
|
30
30
|
import './chunk-CW625T2E.js';
|
|
31
31
|
import './chunk-BVSJPBJ6.js';
|
|
@@ -37,7 +37,7 @@ import './chunk-YMVLYYLU.js';
|
|
|
37
37
|
import './chunk-RJPPO3ET.js';
|
|
38
38
|
import './chunk-Q7VWURUR.js';
|
|
39
39
|
import './chunk-GU2KUQVD.js';
|
|
40
|
-
import './chunk-
|
|
40
|
+
import './chunk-TDPAK42O.js';
|
|
41
41
|
import './chunk-AXW67SY7.js';
|
|
42
42
|
import './chunk-BYMOPN2S.js';
|
|
43
43
|
import './chunk-6BZ5TKEV.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tanstack/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tanstack/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAMnF,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAqC7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAoED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,KAG7B,SAAS,GAAG,kRAOrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,sCAkBhE;AAmHD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,uGAgIzE;AAED,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;KACzC;IAED,UAAU,aAAc,SAAQ,oBAAoB;KAAG;CACxD"}
|
package/dist/tanstack.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { rootHead } from './chunk-
|
|
2
|
-
export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-
|
|
1
|
+
import { rootHead } from './chunk-Y7AHVMVQ.js';
|
|
2
|
+
export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-Y7AHVMVQ.js';
|
|
3
3
|
export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-BWIESZJK.js';
|
|
4
4
|
import './chunk-Z4Y55HWX.js';
|
|
5
5
|
export { tanstackHeadAdapter as head, withHead } from './chunk-5TRRUV7N.js';
|
|
@@ -8,6 +8,7 @@ import './chunk-B3EFOE57.js';
|
|
|
8
8
|
import './chunk-2KZORZZN.js';
|
|
9
9
|
import './chunk-XTOXFAP7.js';
|
|
10
10
|
import './chunk-TZ3E5BN4.js';
|
|
11
|
+
import './chunk-XLJPUFN4.js';
|
|
11
12
|
import './chunk-6IATCGID.js';
|
|
12
13
|
import './chunk-E5EH32L7.js';
|
|
13
14
|
import './chunk-6KI2QCPL.js';
|
package/dist/tanstack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/request-host.ts","../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":"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","file":"tanstack.js","sourcesContent":["/**\n * What the request itself is enough to describe: its host.\n *\n * Small, and deliberately its own module rather than a helper inside the\n * middleware. This value decides two things — which store a live storefront is,\n * and whether the request is allowed to name a store at all — so it is worth\n * testing directly instead of only through the wiring that calls it.\n */\n\n/** The part of a `Request` this needs, so a test does not have to build a whole one. */\nexport interface HostSource {\n url: string;\n headers: { get(name: string): string | null };\n}\n\n/**\n * The host this request arrived on, with its port when it has one.\n *\n * Taken from the request URL, which in a Worker is the address the platform\n * actually routed on, and from the `Host` header only when that fails.\n *\n * **`X-Forwarded-Host` is deliberately not consulted.** A client can set it, and\n * this value gates `allowsRequestStoreId` — so honouring it would be a way to\n * talk a merchant's own domain into behaving like the preview host, and from\n * there into serving a stranger's shop. The dispatcher strips that header today;\n * a theme must not be one edit to another repository's allowlist away from a\n * spoofable identity.\n */\nexport function requestHostOf(request: HostSource): string | null {\n try {\n const fromUrl = new URL(request.url).host;\n if (fromUrl) return fromUrl;\n } catch {\n /* an unparseable URL falls through to the header */\n }\n\n return request.headers.get('Host')?.trim() || null;\n}\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport {\n extractTokenFromCookies,\n extractScopeFromCookies,\n resolveRequestStoreId,\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 const scope = extractScopeFromCookies(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 const storeId = resolveRequestStoreId(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({ authToken, scope, storeId, 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: 'modulepreload', href: 'https://cdn.assets.salla.network/static/lit/3.3.3/lit.js' },\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/utils/request-host.ts","../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":"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","file":"tanstack.js","sourcesContent":["/**\n * What the request itself is enough to describe: its host.\n *\n * Small, and deliberately its own module rather than a helper inside the\n * middleware. This value decides two things — which store a live storefront is,\n * and whether the request is allowed to name a store at all — so it is worth\n * testing directly instead of only through the wiring that calls it.\n */\n\n/** The part of a `Request` this needs, so a test does not have to build a whole one. */\nexport interface HostSource {\n url: string;\n headers: { get(name: string): string | null };\n}\n\n/**\n * The host this request arrived on, with its port when it has one.\n *\n * Taken from the request URL, which in a Worker is the address the platform\n * actually routed on, and from the `Host` header only when that fails.\n *\n * **`X-Forwarded-Host` is deliberately not consulted.** A client can set it, and\n * this value gates `allowsRequestStoreId` — so honouring it would be a way to\n * talk a merchant's own domain into behaving like the preview host, and from\n * there into serving a stranger's shop. The dispatcher strips that header today;\n * a theme must not be one edit to another repository's allowlist away from a\n * spoofable identity.\n */\nexport function requestHostOf(request: HostSource): string | null {\n try {\n const fromUrl = new URL(request.url).host;\n if (fromUrl) return fromUrl;\n } catch {\n /* an unparseable URL falls through to the header */\n }\n\n return request.headers.get('Host')?.trim() || null;\n}\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport {\n extractTokenFromCookies,\n extractScopeFromCookies,\n resolveRequestStoreId,\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 const scope = extractScopeFromCookies(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 const storeId = resolveRequestStoreId(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({ authToken, scope, storeId, 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: 'modulepreload', href: 'https://cdn.assets.salla.network/static/lit/3.3.3/lit.js' },\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"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/account/wishlist/WishlistPage.tsx"],"names":[],"mappings":"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","file":"WishlistPage-XTQ6IRG7.js","sourcesContent":["import { useRef } from 'react';\nimport { ItemsList } from '@salla.sa/twilight-components-react';\nimport { SallaAddProductButton } from '@salla.sa/twilight-components-react/add-product-button';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { wishlist } from '../../../api/wishlist';\nimport type { Product } from '../../../types';\nimport { HookSlot, useWishlist, useMoney } from '../../../hooks';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { WishlistPageProps } from './types';\nimport { NoContent, Image } from '../../../components/common';\nimport { useLocation } from '../../../providers/NavigationProvider';\n\nfunction WishlistCard({ product: prod }: { product: Product }) {\n const { remove } = useWishlist();\n const { format } = useMoney();\n\n const handleRemove = () => {\n if (prod.id) {\n remove(Number(prod.id));\n }\n };\n\n const displayPrice = prod.sale_price ?? prod.price;\n const regularPrice = prod.regular_price;\n\n return (\n <div id={`wishlist-product-${prod.id}`} className=\"product-entry product-entry--wishlist\">\n <div className=\"flex items-center mb-4 sm:mb-0\">\n <a href={prod.url} className=\"product-entry__image\">\n <Image\n className=\"object-cover w-full h-full\"\n src={prod.image?.url}\n alt={prod.image?.alt ?? prod.name}\n aspectRatio=\"1/1\"\n />\n </a>\n <div className=\"flex-1 rtl:pr-5 ltr:pl-5\">\n <h3 className=\"text-sm text-gray-800 leading-6 mb-1.5 rtl:pl-5 ltr:pr-5 rtl:md:pl-8 ltr:md:pr-8 line-clamp-1\">\n <a href={prod.url}>{prod.name}</a>\n </h3>\n <div className=\"w-full center-between\">\n {prod.is_on_sale && regularPrice ? (\n <div className=\"space-x-1 rtl:space-x-reverse\">\n <h4 className=\"inline-block text-sm font-bold text-red-400\">\n {format(displayPrice)}\n </h4>\n <span className=\"text-sm text-gray-500 line-through\">{format(regularPrice)}</span>\n </div>\n ) : (\n <h4 className=\"text-sm font-bold\">{format(displayPrice)}</h4>\n )}\n </div>\n </div>\n </div>\n <div className=\"flex items-center space-x-4 rtl:space-x-reverse\">\n <SallaAddProductButton\n productStatus={prod.status}\n productId={prod.id}\n productType={prod.type}\n loaderPosition=\"center\"\n fill=\"outline\"\n className=\"flex-grow w-full sm:grow-0 md:w-40\"\n />\n <SallaButton\n loaderPosition=\"center\"\n shape=\"icon\"\n size=\"small\"\n color=\"danger\"\n className=\"btn--delete\"\n onClick={handleRemove}\n >\n <i className=\"sicon-cancel\" />\n </SallaButton>\n </div>\n </div>\n );\n}\n\nexport function WishlistPage({ query, products, pagination }: WishlistPageProps) {\n const { t } = useTranslation();\n const { pathname, searchStr } = useLocation();\n\n // Track the next page to load (starts at page 2 since page 1 is SSR)\n const nextPageRef = useRef(query.page + 1);\n\n const loader = async () => {\n const pageToLoad = nextPageRef.current;\n const result = await wishlist.list({ page: pageToLoad });\n\n nextPageRef.current = pageToLoad + 1;\n\n return {\n items: result.items,\n next: result.next,\n };\n };\n\n return (\n <div className=\"space-y-5\" id=\"wishlist\">\n <HookSlot name=\"customer:wishlist.items.start\" />\n <ItemsList<Product>\n items={products}\n loader={loader}\n mode={pagination?.next ? 'infinite' : 'static'}\n pageUrl={pathname + searchStr}\n className=\"s-products-list\"\n itemsClassName=\"s-products-list-wrapper s-products-list-row-cards\"\n empty={\n <div className=\"text-center py-16\">\n <NoContent\n icon=\"sicon-heart\"\n message={t('common.errors.no_wishlist', \"You don't have any wishes\")}\n actionLabel={t('pages.offer.continue_shopping', 'Continue shopping')}\n actionUrl=\"/\"\n />\n </div>\n }\n t={(key, fallback) => t(key, fallback || key)}\n >\n {(items) => items.map((prod) => <WishlistCard key={prod.id} product={prod} />)}\n </ItemsList>\n <HookSlot name=\"customer:wishlist.items.end\" />\n </div>\n );\n}\n"]}
|