@mohasinac/appkit 4.11.1 → 4.11.3
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/_internal/server/features/checkout/actions.d.ts +4 -0
- package/dist/_internal/server/features/checkout/actions.js +138 -27
- package/dist/_internal/server/features/checkout/data.d.ts +10 -0
- package/dist/_internal/server/features/checkout/locked-lines.d.ts +30 -0
- package/dist/_internal/server/features/checkout/locked-lines.js +116 -0
- package/dist/_internal/server/features/orders/adapters.js +7 -0
- package/dist/_internal/server/features/products/data.d.ts +12 -3
- package/dist/_internal/server/features/products/data.js +55 -4
- package/dist/_internal/server/features/products/index.d.ts +2 -1
- package/dist/_internal/server/features/products/index.js +2 -1
- package/dist/_internal/server/features/products/list-public.d.ts +130 -0
- package/dist/_internal/server/features/products/list-public.js +375 -0
- package/dist/_internal/server/features/reviews/data.d.ts +1 -1
- package/dist/_internal/server/features/reviews/data.js +3 -2
- package/dist/_internal/server/features/tester/visibility.js +3 -3
- package/dist/_internal/server/jobs/core/auctionSettlement.js +89 -16
- package/dist/_internal/server/jobs/core/offerExpiry.js +116 -4
- package/dist/_internal/server/jobs/core/testerSandboxCleanup.d.ts +1 -1
- package/dist/_internal/server/jobs/core/testerSandboxCleanup.js +4 -1
- package/dist/_internal/server/jobs/core/testerSandboxRefresh.js +2 -0
- package/dist/_internal/server/jobs/handlers/_helpers.js +4 -1
- package/dist/_internal/server/jobs/handlers/messages.d.ts +5 -0
- package/dist/_internal/server/jobs/handlers/messages.js +5 -0
- package/dist/_internal/shared/checkout/lanes.d.ts +41 -0
- package/dist/_internal/shared/checkout/lanes.js +106 -0
- package/dist/_internal/shared/checkout/order-math.d.ts +19 -0
- package/dist/_internal/shared/checkout/order-math.js +30 -6
- package/dist/_internal/shared/features/promotions/schema.d.ts +0 -16
- package/dist/_internal/shared/features/promotions/schema.js +0 -2
- package/dist/_internal/shared/features/reviews/config.d.ts +8 -1
- package/dist/_internal/shared/features/reviews/config.js +8 -1
- package/dist/_internal/shared/listing-types/_registry.d.ts +88 -1
- package/dist/_internal/shared/listing-types/_registry.js +63 -1
- package/dist/_internal/shared/listing-types/art/config.d.ts +59 -0
- package/dist/_internal/shared/listing-types/art/config.js +12 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +53 -0
- package/dist/_internal/shared/listing-types/auction/config.js +17 -0
- package/dist/_internal/shared/listing-types/classified/config.d.ts +59 -0
- package/dist/_internal/shared/listing-types/classified/config.js +14 -0
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +59 -0
- package/dist/_internal/shared/listing-types/digital-code/config.js +12 -0
- package/dist/_internal/shared/listing-types/feature-flags.d.ts +1 -0
- package/dist/_internal/shared/listing-types/feature-flags.js +24 -10
- package/dist/_internal/shared/listing-types/live/config.d.ts +59 -0
- package/dist/_internal/shared/listing-types/live/config.js +14 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +110 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +14 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +44 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +10 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +59 -0
- package/dist/_internal/shared/listing-types/standard/config.js +9 -0
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +59 -0
- package/dist/_internal/shared/listing-types/stickers/config.js +12 -0
- package/dist/client.d.ts +7 -2
- package/dist/client.js +8 -2
- package/dist/constants/field-names.d.ts +12 -0
- package/dist/constants/field-names.js +12 -0
- package/dist/constants/table-keys.d.ts +2 -0
- package/dist/constants/table-keys.js +2 -0
- package/dist/features/account/components/NotificationBell.js +1 -0
- package/dist/features/account/components/UserOffersPanel.js +8 -1
- package/dist/features/account/components/UserOrdersView.js +27 -5
- package/dist/features/admin/actions/notification-actions.js +1 -1
- package/dist/features/admin/components/AdminAddressesView.js +3 -1
- package/dist/features/admin/components/AdminCouponEditorView.js +1 -4
- package/dist/features/admin/components/AdminPaymentMethodsView.js +3 -1
- package/dist/features/admin/components/AdminProductsView.js +34 -18
- package/dist/features/admin/constants/filter-tabs.d.ts +26 -9
- package/dist/features/admin/constants/filter-tabs.js +22 -9
- package/dist/features/admin/schemas/firestore.d.ts +2 -1
- package/dist/features/admin/schemas/firestore.js +1 -0
- package/dist/features/auctions/actions/bid-actions.d.ts +11 -1
- package/dist/features/auctions/actions/bid-actions.js +29 -15
- package/dist/features/auctions/components/AuctionBidsTable.js +6 -2
- package/dist/features/auctions/components/AuctionBottomActions.js +1 -0
- package/dist/features/auctions/components/AuctionDetailPageView.js +13 -11
- package/dist/features/auctions/components/AuctionsListView.js +12 -53
- package/dist/features/auctions/components/PlaceBidFormClient.js +10 -1
- package/dist/features/auctions/repository/bid.repository.d.ts +15 -0
- package/dist/features/auctions/repository/bid.repository.js +19 -0
- package/dist/features/auctions/schemas/firestore.d.ts +11 -1
- package/dist/features/auctions/schemas/firestore.js +1 -0
- package/dist/features/cart/actions/cart-actions.d.ts +11 -0
- package/dist/features/cart/actions/cart-actions.js +24 -0
- package/dist/features/cart/repository/cart.repository.d.ts +24 -1
- package/dist/features/cart/repository/cart.repository.js +71 -6
- package/dist/features/cart/schemas/firestore.d.ts +23 -4
- package/dist/features/categories/components/BrandDetailTabs.js +31 -11
- package/dist/features/categories/components/CategoryDetailTabs.js +27 -7
- package/dist/features/categories/components/CategoryProductsListing.d.ts +9 -1
- package/dist/features/categories/components/CategoryProductsListing.js +5 -2
- package/dist/features/classified/components/ClassifiedDetailPageView.js +2 -1
- package/dist/features/contact/email.js +56 -1
- package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +17 -16
- package/dist/features/homepage/components/FeaturedResultsSection.js +1 -1
- package/dist/features/homepage/components/SectionCarousel.js +1 -1
- package/dist/features/homepage/components/ShopByCategorySection.js +1 -1
- package/dist/features/layout/AppLayoutShell.js +9 -2
- package/dist/features/layout/BottomActions.js +26 -3
- package/dist/features/layout/BottomActionsContext.d.ts +14 -0
- package/dist/features/layout/BottomActionsContext.js +13 -1
- package/dist/features/layout/hooks/useBottomActions.d.ts +6 -1
- package/dist/features/layout/hooks/useBottomActions.js +4 -1
- package/dist/features/layout/index.d.ts +1 -1
- package/dist/features/live/components/LiveItemDetailPageView.js +7 -6
- package/dist/features/orders/repository/orders.repository.d.ts +4 -15
- package/dist/features/orders/repository/orders.repository.js +4 -27
- package/dist/features/orders/types/index.d.ts +16 -0
- package/dist/features/orders/utils/order-splitter.js +14 -2
- package/dist/features/pre-orders/components/PreOrderBottomActions.d.ts +1 -1
- package/dist/features/pre-orders/components/PreOrderBottomActions.js +3 -19
- package/dist/features/pre-orders/components/PreOrdersListView.js +11 -39
- package/dist/features/products/components/ArtStickersListView.js +10 -49
- package/dist/features/products/components/AuctionsIndexListing.js +1 -2
- package/dist/features/products/components/ListingBottomActions.d.ts +28 -0
- package/dist/features/products/components/ListingBottomActions.js +25 -0
- package/dist/features/products/components/PrizeDrawBottomActions.d.ts +1 -1
- package/dist/features/products/components/PrizeDrawBottomActions.js +3 -21
- package/dist/features/products/components/ProductDetailActions.js +4 -0
- package/dist/features/products/components/ProductDetailPageView.js +7 -7
- package/dist/features/products/components/ProductsIndexPageView.js +9 -62
- package/dist/features/products/constants/listing-tabs.d.ts +43 -198
- package/dist/features/products/constants/listing-tabs.js +71 -58
- package/dist/features/products/constants/sieve.d.ts +104 -1
- package/dist/features/products/constants/sieve.js +27 -7
- package/dist/features/products/repository/products.repository.d.ts +45 -1
- package/dist/features/products/repository/products.repository.js +67 -8
- package/dist/features/products/utils/listing-badge-variant.d.ts +20 -1
- package/dist/features/products/utils/listing-badge-variant.js +26 -1
- package/dist/features/products/utils/listing-type.d.ts +24 -0
- package/dist/features/products/utils/listing-type.js +48 -0
- package/dist/features/promotions/actions/coupon-actions.d.ts +7 -0
- package/dist/features/promotions/actions/coupon-actions.js +12 -1
- package/dist/features/promotions/actions/coupon-stacking.d.ts +24 -0
- package/dist/features/promotions/actions/coupon-stacking.js +21 -0
- package/dist/features/promotions/actions/index.d.ts +1 -0
- package/dist/features/promotions/actions/index.js +1 -0
- package/dist/features/promotions/actions/seller-coupon-actions.d.ts +0 -1
- package/dist/features/promotions/actions/seller-coupon-actions.js +0 -1
- package/dist/features/promotions/components/CouponHelpDetails.d.ts +20 -0
- package/dist/features/promotions/components/CouponHelpDetails.js +17 -0
- package/dist/features/promotions/components/CouponsIndexListing.js +2 -1
- package/dist/features/promotions/components/index.d.ts +2 -0
- package/dist/features/promotions/components/index.js +1 -0
- package/dist/features/promotions/constants/coupon-help.d.ts +27 -0
- package/dist/features/promotions/constants/coupon-help.js +42 -0
- package/dist/features/promotions/repository/coupons.repository.d.ts +10 -1
- package/dist/features/promotions/repository/coupons.repository.js +22 -8
- package/dist/features/promotions/schemas/firestore.d.ts +0 -1
- package/dist/features/promotions/schemas/firestore.js +1 -1
- package/dist/features/promotions/schemas/index.d.ts +0 -20
- package/dist/features/promotions/schemas/index.js +0 -1
- package/dist/features/reviews/actions/review-actions.js +5 -1
- package/dist/features/reviews/components/ReviewDetailPageView.js +2 -1
- package/dist/features/reviews/components/ReviewFilters.d.ts +7 -1
- package/dist/features/reviews/components/ReviewFilters.js +4 -3
- package/dist/features/reviews/components/ReviewsIndexListing.d.ts +6 -0
- package/dist/features/reviews/components/ReviewsIndexListing.js +9 -109
- package/dist/features/reviews/components/ReviewsListingPanel.d.ts +41 -0
- package/dist/features/reviews/components/ReviewsListingPanel.js +226 -0
- package/dist/features/reviews/components/index.d.ts +2 -0
- package/dist/features/reviews/components/index.js +1 -0
- package/dist/features/reviews/hooks/useReviews.d.ts +8 -0
- package/dist/features/reviews/hooks/useReviews.js +14 -6
- package/dist/features/reviews/repository/reviews.repository.d.ts +29 -1
- package/dist/features/reviews/repository/reviews.repository.js +77 -41
- package/dist/features/reviews/types/index.d.ts +8 -1
- package/dist/features/seller/actions/offer-actions.d.ts +6 -0
- package/dist/features/seller/actions/offer-actions.js +8 -9
- package/dist/features/seller/components/SellerOffersView.d.ts +6 -1
- package/dist/features/seller/components/SellerOffersView.js +59 -8
- package/dist/features/seller/components/SellerProductsCards.js +2 -2
- package/dist/features/seller/components/SellerProductsView.js +21 -18
- package/dist/features/seller/repository/offer.repository.d.ts +18 -2
- package/dist/features/seller/repository/offer.repository.js +38 -2
- package/dist/features/seller/schemas/firestore.d.ts +7 -2
- package/dist/features/seller/schemas/firestore.js +3 -0
- package/dist/features/seller/schemas/offer-forms.d.ts +12 -0
- package/dist/features/seller/schemas/offer-forms.js +28 -0
- package/dist/features/stores/actions/store-query-actions.js +1 -1
- package/dist/features/stores/components/StoreAuctionsListing.js +5 -11
- package/dist/features/stores/components/StorePreOrdersListing.js +6 -11
- package/dist/features/stores/components/StoreReviewsListing.d.ts +4 -0
- package/dist/features/stores/components/StoreReviewsListing.js +7 -108
- package/dist/features/stores/schemas/index.d.ts +2 -2
- package/dist/features/tester/seed-data/coupons-tester-seed-data.js +3 -3
- package/dist/features/tester/seed-data/index.d.ts +1 -0
- package/dist/features/tester/seed-data/index.js +1 -0
- package/dist/features/tester/seed-data/offers-tester-seed-data.d.ts +2 -0
- package/dist/features/tester/seed-data/offers-tester-seed-data.js +61 -0
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +337 -1
- package/dist/index.d.ts +11 -4
- package/dist/index.js +15 -3
- package/dist/react/hooks/useListingTypeFlags.d.ts +12 -19
- package/dist/react/hooks/useListingTypeFlags.js +4 -9
- package/dist/schemas/registry.d.ts +0 -12
- package/dist/seed/claimed-coupons-seed-data.js +3 -3
- package/dist/seed/coupons-seed-data.js +29 -10
- package/dist/seed/faq-seed-data.js +2 -2
- package/dist/seed/manifest.js +2 -2
- package/dist/server-entry.d.ts +1 -0
- package/dist/server-entry.js +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +3 -0
- package/dist/styles.css +44 -39
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/FilterChipGroup.d.ts +21 -3
- package/dist/ui/components/FilterChipGroup.js +33 -4
- package/dist/ui/components/HorizontalScroller.d.ts +1 -2
- package/dist/ui/components/HorizontalScroller.js +9 -5
- package/dist/ui/components/HorizontalScroller.style.css +43 -38
- package/package.json +1 -1
|
@@ -1389,10 +1389,8 @@ export declare const SCHEMAS: {
|
|
|
1389
1389
|
excludeProducts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
1390
1390
|
excludeCategories: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
1391
1391
|
firstTimeUserOnly: import("zod").ZodBoolean;
|
|
1392
|
-
combineWithSellerCoupons: import("zod").ZodBoolean;
|
|
1393
1392
|
}, "strip", import("zod").ZodTypeAny, {
|
|
1394
1393
|
firstTimeUserOnly: boolean;
|
|
1395
|
-
combineWithSellerCoupons: boolean;
|
|
1396
1394
|
applicableProducts?: string[] | undefined;
|
|
1397
1395
|
applicableCategories?: string[] | undefined;
|
|
1398
1396
|
applicableSellers?: string[] | undefined;
|
|
@@ -1400,7 +1398,6 @@ export declare const SCHEMAS: {
|
|
|
1400
1398
|
excludeCategories?: string[] | undefined;
|
|
1401
1399
|
}, {
|
|
1402
1400
|
firstTimeUserOnly: boolean;
|
|
1403
|
-
combineWithSellerCoupons: boolean;
|
|
1404
1401
|
applicableProducts?: string[] | undefined;
|
|
1405
1402
|
applicableCategories?: string[] | undefined;
|
|
1406
1403
|
applicableSellers?: string[] | undefined;
|
|
@@ -1418,7 +1415,6 @@ export declare const SCHEMAS: {
|
|
|
1418
1415
|
};
|
|
1419
1416
|
restrictions: {
|
|
1420
1417
|
firstTimeUserOnly: boolean;
|
|
1421
|
-
combineWithSellerCoupons: boolean;
|
|
1422
1418
|
applicableProducts?: string[] | undefined;
|
|
1423
1419
|
applicableCategories?: string[] | undefined;
|
|
1424
1420
|
applicableSellers?: string[] | undefined;
|
|
@@ -1438,7 +1434,6 @@ export declare const SCHEMAS: {
|
|
|
1438
1434
|
};
|
|
1439
1435
|
restrictions: {
|
|
1440
1436
|
firstTimeUserOnly: boolean;
|
|
1441
|
-
combineWithSellerCoupons: boolean;
|
|
1442
1437
|
applicableProducts?: string[] | undefined;
|
|
1443
1438
|
applicableCategories?: string[] | undefined;
|
|
1444
1439
|
applicableSellers?: string[] | undefined;
|
|
@@ -1499,7 +1494,6 @@ export declare const SCHEMAS: {
|
|
|
1499
1494
|
};
|
|
1500
1495
|
restrictions: {
|
|
1501
1496
|
firstTimeUserOnly: boolean;
|
|
1502
|
-
combineWithSellerCoupons: boolean;
|
|
1503
1497
|
applicableProducts?: string[] | undefined;
|
|
1504
1498
|
applicableCategories?: string[] | undefined;
|
|
1505
1499
|
applicableSellers?: string[] | undefined;
|
|
@@ -1540,7 +1534,6 @@ export declare const SCHEMAS: {
|
|
|
1540
1534
|
};
|
|
1541
1535
|
restrictions: {
|
|
1542
1536
|
firstTimeUserOnly: boolean;
|
|
1543
|
-
combineWithSellerCoupons: boolean;
|
|
1544
1537
|
applicableProducts?: string[] | undefined;
|
|
1545
1538
|
applicableCategories?: string[] | undefined;
|
|
1546
1539
|
applicableSellers?: string[] | undefined;
|
|
@@ -1812,10 +1805,8 @@ export declare const SCHEMAS: {
|
|
|
1812
1805
|
excludeProducts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
1813
1806
|
excludeCategories: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
1814
1807
|
firstTimeUserOnly: import("zod").ZodBoolean;
|
|
1815
|
-
combineWithSellerCoupons: import("zod").ZodBoolean;
|
|
1816
1808
|
}, "strip", import("zod").ZodTypeAny, {
|
|
1817
1809
|
firstTimeUserOnly: boolean;
|
|
1818
|
-
combineWithSellerCoupons: boolean;
|
|
1819
1810
|
applicableProducts?: string[] | undefined;
|
|
1820
1811
|
applicableCategories?: string[] | undefined;
|
|
1821
1812
|
applicableSellers?: string[] | undefined;
|
|
@@ -1823,7 +1814,6 @@ export declare const SCHEMAS: {
|
|
|
1823
1814
|
excludeCategories?: string[] | undefined;
|
|
1824
1815
|
}, {
|
|
1825
1816
|
firstTimeUserOnly: boolean;
|
|
1826
|
-
combineWithSellerCoupons: boolean;
|
|
1827
1817
|
applicableProducts?: string[] | undefined;
|
|
1828
1818
|
applicableCategories?: string[] | undefined;
|
|
1829
1819
|
applicableSellers?: string[] | undefined;
|
|
@@ -1884,7 +1874,6 @@ export declare const SCHEMAS: {
|
|
|
1884
1874
|
};
|
|
1885
1875
|
restrictions: {
|
|
1886
1876
|
firstTimeUserOnly: boolean;
|
|
1887
|
-
combineWithSellerCoupons: boolean;
|
|
1888
1877
|
applicableProducts?: string[] | undefined;
|
|
1889
1878
|
applicableCategories?: string[] | undefined;
|
|
1890
1879
|
applicableSellers?: string[] | undefined;
|
|
@@ -1943,7 +1932,6 @@ export declare const SCHEMAS: {
|
|
|
1943
1932
|
};
|
|
1944
1933
|
restrictions: {
|
|
1945
1934
|
firstTimeUserOnly: boolean;
|
|
1946
|
-
combineWithSellerCoupons: boolean;
|
|
1947
1935
|
applicableProducts?: string[] | undefined;
|
|
1948
1936
|
applicableCategories?: string[] | undefined;
|
|
1949
1937
|
applicableSellers?: string[] | undefined;
|
|
@@ -30,7 +30,7 @@ export const claimedCouponsSeedData = [
|
|
|
30
30
|
type: "percentage",
|
|
31
31
|
scope: "admin",
|
|
32
32
|
discount: { value: 10, maxDiscount: 500, minPurchase: 999 },
|
|
33
|
-
restrictions: { firstTimeUserOnly: true
|
|
33
|
+
restrictions: { firstTimeUserOnly: true },
|
|
34
34
|
},
|
|
35
35
|
status: "active",
|
|
36
36
|
expiresAt: daysAhead(14),
|
|
@@ -51,7 +51,7 @@ export const claimedCouponsSeedData = [
|
|
|
51
51
|
type: "fixed",
|
|
52
52
|
scope: "admin",
|
|
53
53
|
discount: { value: 500, minPurchase: 5000 },
|
|
54
|
-
restrictions: { firstTimeUserOnly: false
|
|
54
|
+
restrictions: { firstTimeUserOnly: false },
|
|
55
55
|
},
|
|
56
56
|
status: "expired",
|
|
57
57
|
expiresAt: daysAgo(5),
|
|
@@ -72,7 +72,7 @@ export const claimedCouponsSeedData = [
|
|
|
72
72
|
type: "free_shipping",
|
|
73
73
|
scope: "admin",
|
|
74
74
|
discount: { value: 0, minPurchase: 499 },
|
|
75
|
-
restrictions: { firstTimeUserOnly: false
|
|
75
|
+
restrictions: { firstTimeUserOnly: false },
|
|
76
76
|
},
|
|
77
77
|
status: "used",
|
|
78
78
|
expiresAt: daysAhead(60),
|
|
@@ -28,7 +28,7 @@ export const couponsSeedData = [
|
|
|
28
28
|
discount: { value: 10, maxDiscount: 200, minPurchase: 500 },
|
|
29
29
|
usage: { totalLimit: undefined, perUserLimit: 1, currentUsage: 312 },
|
|
30
30
|
validity: { startDate: daysAgo(90), endDate: daysAhead(180), isActive: true },
|
|
31
|
-
restrictions: { firstTimeUserOnly: true
|
|
31
|
+
restrictions: { firstTimeUserOnly: true },
|
|
32
32
|
createdBy: "user-admin-letitrip",
|
|
33
33
|
createdAt: daysAgo(90),
|
|
34
34
|
updatedAt: daysAgo(5),
|
|
@@ -44,7 +44,7 @@ export const couponsSeedData = [
|
|
|
44
44
|
discount: { value: 500, maxDiscount: 500, minPurchase: 2000 },
|
|
45
45
|
usage: { totalLimit: 500, perUserLimit: 2, currentUsage: 187 },
|
|
46
46
|
validity: { startDate: daysAgo(30), endDate: daysAhead(60), isActive: true },
|
|
47
|
-
restrictions: { firstTimeUserOnly: false
|
|
47
|
+
restrictions: { firstTimeUserOnly: false },
|
|
48
48
|
createdBy: "user-admin-letitrip",
|
|
49
49
|
createdAt: daysAgo(30),
|
|
50
50
|
updatedAt: daysAgo(3),
|
|
@@ -60,7 +60,7 @@ export const couponsSeedData = [
|
|
|
60
60
|
discount: { value: 0, maxDiscount: 0, minPurchase: 499 },
|
|
61
61
|
usage: { totalLimit: undefined, perUserLimit: 5, currentUsage: 1024 },
|
|
62
62
|
validity: { startDate: daysAgo(60), endDate: daysAhead(120), isActive: true },
|
|
63
|
-
restrictions: { firstTimeUserOnly: false
|
|
63
|
+
restrictions: { firstTimeUserOnly: false },
|
|
64
64
|
createdBy: "user-admin-letitrip",
|
|
65
65
|
createdAt: daysAgo(60),
|
|
66
66
|
updatedAt: daysAgo(1),
|
|
@@ -76,7 +76,7 @@ export const couponsSeedData = [
|
|
|
76
76
|
discount: { value: 20, maxDiscount: 400, minPurchase: 1000 },
|
|
77
77
|
usage: { totalLimit: undefined, perUserLimit: 1, currentUsage: 89 },
|
|
78
78
|
validity: { startDate: daysAgo(14), endDate: daysAhead(90), isActive: true },
|
|
79
|
-
restrictions: { firstTimeUserOnly: true
|
|
79
|
+
restrictions: { firstTimeUserOnly: true },
|
|
80
80
|
createdBy: "user-admin-letitrip",
|
|
81
81
|
createdAt: daysAgo(14),
|
|
82
82
|
updatedAt: daysAgo(2),
|
|
@@ -92,7 +92,7 @@ export const couponsSeedData = [
|
|
|
92
92
|
discount: { value: 200, maxDiscount: 200, minPurchase: 1000 },
|
|
93
93
|
usage: { totalLimit: 1000, perUserLimit: 3, currentUsage: 456 },
|
|
94
94
|
validity: { startDate: daysAgo(45), endDate: daysAhead(45), isActive: true },
|
|
95
|
-
restrictions: { firstTimeUserOnly: false
|
|
95
|
+
restrictions: { firstTimeUserOnly: false },
|
|
96
96
|
createdBy: "user-admin-letitrip",
|
|
97
97
|
createdAt: daysAgo(45),
|
|
98
98
|
updatedAt: daysAgo(1),
|
|
@@ -110,7 +110,7 @@ export const couponsSeedData = [
|
|
|
110
110
|
discount: { value: 25, maxDiscount: 500, minPurchase: 1000 },
|
|
111
111
|
usage: { totalLimit: 200, perUserLimit: 2, currentUsage: 67 },
|
|
112
112
|
validity: { startDate: daysAgo(20), endDate: daysAhead(40), isActive: true },
|
|
113
|
-
restrictions: { firstTimeUserOnly: false
|
|
113
|
+
restrictions: { firstTimeUserOnly: false },
|
|
114
114
|
createdBy: "user-tyson-blader",
|
|
115
115
|
createdAt: daysAgo(20),
|
|
116
116
|
updatedAt: daysAgo(4),
|
|
@@ -130,7 +130,6 @@ export const couponsSeedData = [
|
|
|
130
130
|
restrictions: {
|
|
131
131
|
applicableCategories: ["category-beyblade-original", "category-beyblade-metal"],
|
|
132
132
|
firstTimeUserOnly: false,
|
|
133
|
-
combineWithSellerCoupons: false,
|
|
134
133
|
},
|
|
135
134
|
createdBy: "user-tyson-blader",
|
|
136
135
|
createdAt: daysAgo(10),
|
|
@@ -153,7 +152,7 @@ export const couponsSeedData = [
|
|
|
153
152
|
},
|
|
154
153
|
usage: { totalLimit: 100, perUserLimit: 3, currentUsage: 34 },
|
|
155
154
|
validity: { startDate: daysAgo(15), endDate: daysAhead(45), isActive: true },
|
|
156
|
-
restrictions: { firstTimeUserOnly: false
|
|
155
|
+
restrictions: { firstTimeUserOnly: false },
|
|
157
156
|
createdBy: "user-tyson-blader",
|
|
158
157
|
createdAt: daysAgo(15),
|
|
159
158
|
updatedAt: daysAgo(2),
|
|
@@ -173,7 +172,6 @@ export const couponsSeedData = [
|
|
|
173
172
|
restrictions: {
|
|
174
173
|
applicableCategories: ["category-beyblade-burst", "category-beyblade-x"],
|
|
175
174
|
firstTimeUserOnly: false,
|
|
176
|
-
combineWithSellerCoupons: false,
|
|
177
175
|
},
|
|
178
176
|
createdBy: "user-tyson-blader",
|
|
179
177
|
createdAt: daysAgo(7),
|
|
@@ -194,11 +192,32 @@ export const couponsSeedData = [
|
|
|
194
192
|
restrictions: {
|
|
195
193
|
applicableCategories: ["bundle-original-collectors-set", "bundle-metal-fusion-duo", "bundle-burst-battlers-pack", "bundle-x-series-starter"],
|
|
196
194
|
firstTimeUserOnly: false,
|
|
197
|
-
combineWithSellerCoupons: false,
|
|
198
195
|
},
|
|
199
196
|
createdBy: "user-tyson-blader",
|
|
200
197
|
createdAt: daysAgo(5),
|
|
201
198
|
updatedAt: daysAgo(1),
|
|
202
199
|
stats: { totalUses: 19, totalRevenue: 95000, totalDiscount: 11400 },
|
|
203
200
|
},
|
|
201
|
+
// ── Seller coupon (LetItRip Official) ──────────────────────────────────────
|
|
202
|
+
// Deliberately on a SECOND store: every other seller coupon above belongs to
|
|
203
|
+
// store-beyblade-arena, so without this one the "one coupon per store, plus
|
|
204
|
+
// one platform-wide coupon" stacking rule could never be demonstrated on a
|
|
205
|
+
// real multi-store cart.
|
|
206
|
+
{
|
|
207
|
+
id: "coupon-official10",
|
|
208
|
+
code: "OFFICIAL10",
|
|
209
|
+
name: "LetItRip Official — 10% Off",
|
|
210
|
+
description: "10% off anything from the LetItRip Official store. Stacks with other stores' coupons and with a platform-wide coupon.",
|
|
211
|
+
type: COUPON_FIELDS.TYPE_VALUES.PERCENTAGE,
|
|
212
|
+
scope: COUPON_FIELDS.SCOPE_VALUES.SELLER,
|
|
213
|
+
storeId: "store-letitrip-official",
|
|
214
|
+
discount: { value: 10, maxDiscount: 300, minPurchase: 500 },
|
|
215
|
+
usage: { totalLimit: 300, perUserLimit: 2, currentUsage: 41 },
|
|
216
|
+
validity: { startDate: daysAgo(15), endDate: daysAhead(45), isActive: true },
|
|
217
|
+
restrictions: { firstTimeUserOnly: false },
|
|
218
|
+
createdBy: "user-admin-letitrip",
|
|
219
|
+
createdAt: daysAgo(15),
|
|
220
|
+
updatedAt: daysAgo(2),
|
|
221
|
+
stats: { totalUses: 41, totalRevenue: 205000, totalDiscount: 20500 },
|
|
222
|
+
},
|
|
204
223
|
];
|
|
@@ -256,7 +256,7 @@ export const faqSeedData = [
|
|
|
256
256
|
{
|
|
257
257
|
id: "faq-free-shipping-available",
|
|
258
258
|
question: "Is free shipping available?",
|
|
259
|
-
answer: html(`<p>Many sellers offer free shipping on orders above a certain amount. Look for the "Free Shipping" badge on product listings. You can also use the
|
|
259
|
+
answer: html(`<p>Many sellers offer free shipping on orders above a certain amount. Look for the "Free Shipping" badge on product listings. You can also use the FREESHIP499 coupon for free shipping on orders ₹499+.</p>`),
|
|
260
260
|
category: "shipping_delivery",
|
|
261
261
|
showOnHomepage: true,
|
|
262
262
|
showInFooter: false,
|
|
@@ -543,7 +543,7 @@ export const faqSeedData = [
|
|
|
543
543
|
{
|
|
544
544
|
id: "faq-coupons-and-discounts",
|
|
545
545
|
question: "How do I use coupons and discount codes?",
|
|
546
|
-
answer: html(`<p>Enter your coupon code at checkout in the "Apply Coupon" field. Coupons
|
|
546
|
+
answer: html(`<p>Enter your coupon code at checkout in the "Apply Coupon" field. Coupons are either <strong>store coupons</strong> (issued by an individual seller) or <strong>platform-wide coupons</strong> (issued by LetItRip).</p><p><strong>Coupons stack.</strong> You can apply <strong>one coupon per store</strong> — so a cart with items from three stores can carry all three of those stores' coupons at once — <strong>plus one platform-wide coupon</strong> on top. A second coupon for the same store, or a second platform-wide coupon, is declined; remove the first one to swap it.</p><p>A store coupon only discounts that store's items. A platform-wide coupon is spread proportionally across every store in your cart. Because orders are placed per store, each store's order shows its own share of the discount.</p><p>Coupons may also have a minimum order value (measured against the items the coupon actually covers, not your whole cart), an expiry date, a per-user limit, or a total limit across all buyers. Coupons are re-checked when you place the order — if one expired or ran out while it sat in your cart, it is removed and your total is recalculated before payment.</p>`),
|
|
547
547
|
category: "orders_payment",
|
|
548
548
|
showOnHomepage: false,
|
|
549
549
|
showInFooter: false,
|
package/dist/seed/manifest.js
CHANGED
|
@@ -51,7 +51,7 @@ import { offersSeedData } from "./offers-seed-data";
|
|
|
51
51
|
import { couponUsageSeedData } from "./coupon-usage-seed-data";
|
|
52
52
|
import { claimedCouponsSeedData } from "./claimed-coupons-seed-data";
|
|
53
53
|
// Tester sandbox seed fixtures live in ../features/tester/seed-data (isolated on purpose).
|
|
54
|
-
import { testerChecklistSeedData, storesTesterSeedData, categoriesTesterSeedData, productsTesterSeedData, blogTesterSeedData, eventsTesterSeedData, couponsTesterSeedData, bidsTesterSeedData, ordersTesterSeedData, } from "../features/tester/seed-data";
|
|
54
|
+
import { testerChecklistSeedData, storesTesterSeedData, categoriesTesterSeedData, productsTesterSeedData, blogTesterSeedData, eventsTesterSeedData, couponsTesterSeedData, bidsTesterSeedData, ordersTesterSeedData, offersTesterSeedData, } from "../features/tester/seed-data";
|
|
55
55
|
function asArr(items) {
|
|
56
56
|
return items ?? [];
|
|
57
57
|
}
|
|
@@ -199,7 +199,7 @@ export const SEED_MANIFEST = {
|
|
|
199
199
|
...f,
|
|
200
200
|
name: f.label ?? f.id,
|
|
201
201
|
}))),
|
|
202
|
-
offers: pick(asArr(offersSeedData).map((o) => ({
|
|
202
|
+
offers: pick([...asArr(offersSeedData), ...asArr(offersTesterSeedData)].map((o) => ({
|
|
203
203
|
...o,
|
|
204
204
|
name: o.productTitle ?? o.id,
|
|
205
205
|
}))),
|
package/dist/server-entry.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export { StoreClassifiedsPageView } from "./features/stores/components/StoreClas
|
|
|
45
45
|
export { StoreDigitalCodesPageView } from "./features/stores/components/StoreDigitalCodesPageView";
|
|
46
46
|
export { StoreLiveItemsPageView } from "./features/stores/components/StoreLiveItemsPageView";
|
|
47
47
|
export { getProductForDetail, listSitemapProducts, type SitemapProduct, } from "./_internal/server/features/products/index";
|
|
48
|
+
export { listPublicProducts, parsePublicProductParams, PUBLIC_PRODUCT_MAX_PAGE_SIZE, type PublicProductListInput, type PublicProductListResult, type PublicProductListOptions, type PublicProductExecutor, type PublicProductQuery, } from "./_internal/server/features/products/index";
|
|
48
49
|
export { getAuctionForDetail, getProductFeaturesForAuction, } from "./_internal/server/features/auctions/index";
|
|
49
50
|
export { getPreOrderForDetail, getProductFeaturesForPreOrder, } from "./_internal/server/features/pre-orders/index";
|
|
50
51
|
export { getBrandForDetail, getBrandCategoryForDetail, createBrandAction, updateBrandAction, deleteBrandAction, toggleBrandActiveAction, } from "./_internal/server/features/brands/index";
|
package/dist/server-entry.js
CHANGED
|
@@ -51,6 +51,7 @@ export { StoreDigitalCodesPageView } from "./features/stores/components/StoreDig
|
|
|
51
51
|
export { StoreLiveItemsPageView } from "./features/stores/components/StoreLiveItemsPageView";
|
|
52
52
|
// S2: products data layer — deduped via React.cache()
|
|
53
53
|
export { getProductForDetail, listSitemapProducts, } from "./_internal/server/features/products/index";
|
|
54
|
+
export { listPublicProducts, parsePublicProductParams, PUBLIC_PRODUCT_MAX_PAGE_SIZE, } from "./_internal/server/features/products/index";
|
|
54
55
|
// S3: auctions data layer — deduped via React.cache()
|
|
55
56
|
export { getAuctionForDetail, getProductFeaturesForAuction, } from "./_internal/server/features/auctions/index";
|
|
56
57
|
// S3: pre-orders data layer — deduped via React.cache()
|
package/dist/server.d.ts
CHANGED
|
@@ -501,6 +501,7 @@ export type { GoogleReview, GoogleReviewsResult } from "./features/homepage/lib/
|
|
|
501
501
|
export { GoogleReviewsSection } from "./features/homepage/components/GoogleReviewsSection";
|
|
502
502
|
export type { GoogleReviewsSectionProps } from "./features/homepage/components/GoogleReviewsSection";
|
|
503
503
|
export { getProductForDetail, listSitemapProducts, computeRelatedItems, toProductItem, type SitemapProduct, type RelatedItemsResult, } from "./_internal/server/features/products/index";
|
|
504
|
+
export { listPublicProducts, parsePublicProductParams, PUBLIC_PRODUCT_MAX_PAGE_SIZE, type PublicProductListInput, type PublicProductListResult, type PublicProductListOptions, type PublicProductExecutor, type PublicProductQuery, } from "./_internal/server/features/products/index";
|
|
504
505
|
export { getBundleForDetail, listBundleMembers, listFeaturedBundles, getRelatedBundles, resolveBundleMemberIds, resolveBundleOriginalTotal, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, type BundleDataOptions, type BundleMetadataOptions, type BundleOgData, } from "./_internal/server/features/bundles/index";
|
|
505
506
|
export { getGroupsForProduct, getGroupsWithItemsForProduct, getGroupsForCategory, getGroupsForBrand } from "./_internal/server/features/grouped/index";
|
|
506
507
|
export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index";
|
package/dist/server.js
CHANGED
|
@@ -1353,6 +1353,9 @@ export { GoogleReviewsSection } from "./features/homepage/components/GoogleRevie
|
|
|
1353
1353
|
// ---------------------------------------------------------------------------
|
|
1354
1354
|
// Data layers — each wrapped in React.cache for request-scoped dedup
|
|
1355
1355
|
export { getProductForDetail, listSitemapProducts, computeRelatedItems, toProductItem, } from "./_internal/server/features/products/index";
|
|
1356
|
+
// The single public-listing query — every SSR listing view and /api/products
|
|
1357
|
+
// share it so their filter semantics cannot drift (Root Cause #30).
|
|
1358
|
+
export { listPublicProducts, parsePublicProductParams, PUBLIC_PRODUCT_MAX_PAGE_SIZE, } from "./_internal/server/features/products/index";
|
|
1356
1359
|
// S-SBUNI-3/4 2026-05-13 — bundle data/metadata/og layer.
|
|
1357
1360
|
export { getBundleForDetail, listBundleMembers, listFeaturedBundles, getRelatedBundles, resolveBundleMemberIds, resolveBundleOriginalTotal, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, } from "./_internal/server/features/bundles/index";
|
|
1358
1361
|
export { getGroupsForProduct, getGroupsWithItemsForProduct, getGroupsForCategory, getGroupsForBrand } from "./_internal/server/features/grouped/index";
|