@mohasinac/appkit 2.4.11 → 2.5.0
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/client/features/products/index.d.ts +1 -0
- package/dist/_internal/client/features/products/index.js +3 -0
- package/dist/_internal/client/i18n/LabelsProvider.d.ts +13 -0
- package/dist/_internal/client/i18n/LabelsProvider.js +38 -0
- package/dist/_internal/client/index.d.ts +0 -0
- package/dist/_internal/client/index.js +4 -0
- package/dist/_internal/client/scaffolds/AppShell.d.ts +39 -0
- package/dist/_internal/client/scaffolds/AppShell.js +9 -0
- package/dist/_internal/client/scaffolds/DashboardScaffold.d.ts +34 -0
- package/dist/_internal/client/scaffolds/DashboardScaffold.js +23 -0
- package/dist/_internal/client/scaffolds/index.d.ts +4 -0
- package/dist/_internal/client/scaffolds/index.js +2 -0
- package/dist/_internal/server/features/account/actions.d.ts +7 -0
- package/dist/_internal/server/features/account/actions.js +7 -0
- package/dist/_internal/server/features/account/data.d.ts +17 -0
- package/dist/_internal/server/features/account/data.js +25 -0
- package/dist/_internal/server/features/account/index.d.ts +2 -0
- package/dist/_internal/server/features/account/index.js +2 -0
- package/dist/_internal/server/features/auctions/actions.d.ts +1 -0
- package/dist/_internal/server/features/auctions/actions.js +44 -0
- package/dist/_internal/server/features/auctions/data.d.ts +4 -0
- package/dist/_internal/server/features/auctions/data.js +9 -0
- package/dist/_internal/server/features/auctions/index.d.ts +5 -0
- package/dist/_internal/server/features/auctions/index.js +5 -0
- package/dist/_internal/server/features/auctions/og.d.ts +19 -0
- package/dist/_internal/server/features/auctions/og.js +51 -0
- package/dist/_internal/server/features/auctions/service.d.ts +13 -0
- package/dist/_internal/server/features/auctions/service.js +57 -0
- package/dist/_internal/server/features/auth/actions.d.ts +8 -0
- package/dist/_internal/server/features/auth/actions.js +8 -0
- package/dist/_internal/server/features/auth/index.d.ts +1 -0
- package/dist/_internal/server/features/auth/index.js +1 -0
- package/dist/_internal/server/features/blog/actions.d.ts +5 -0
- package/dist/_internal/server/features/blog/actions.js +51 -0
- package/dist/_internal/server/features/blog/data.d.ts +2 -0
- package/dist/_internal/server/features/blog/data.js +8 -0
- package/dist/_internal/server/features/blog/index.d.ts +5 -0
- package/dist/_internal/server/features/blog/index.js +5 -0
- package/dist/_internal/server/features/blog/og.d.ts +23 -0
- package/dist/_internal/server/features/blog/og.js +64 -0
- package/dist/_internal/server/features/blog/service.d.ts +3 -0
- package/dist/_internal/server/features/blog/service.js +18 -0
- package/dist/_internal/server/features/brands/actions.d.ts +4 -0
- package/dist/_internal/server/features/brands/actions.js +32 -0
- package/dist/_internal/server/features/brands/data.d.ts +12 -0
- package/dist/_internal/server/features/brands/data.js +16 -0
- package/dist/_internal/server/features/brands/index.d.ts +5 -0
- package/dist/_internal/server/features/brands/index.js +5 -0
- package/dist/_internal/server/features/brands/og.d.ts +17 -0
- package/dist/_internal/server/features/brands/og.js +37 -0
- package/dist/_internal/server/features/brands/service.d.ts +3 -0
- package/dist/_internal/server/features/brands/service.js +14 -0
- package/dist/_internal/server/features/bundles/data.d.ts +9 -0
- package/dist/_internal/server/features/bundles/data.js +9 -0
- package/dist/_internal/server/features/bundles/index.d.ts +2 -0
- package/dist/_internal/server/features/bundles/index.js +2 -0
- package/dist/_internal/server/features/cart/actions.d.ts +12 -0
- package/dist/_internal/server/features/cart/actions.js +35 -0
- package/dist/_internal/server/features/cart/data.d.ts +1 -0
- package/dist/_internal/server/features/cart/data.js +5 -0
- package/dist/_internal/server/features/cart/index.d.ts +4 -0
- package/dist/_internal/server/features/cart/index.js +4 -0
- package/dist/_internal/server/features/cart/service.d.ts +8 -0
- package/dist/_internal/server/features/cart/service.js +25 -0
- package/dist/_internal/server/features/categories/data.d.ts +13 -0
- package/dist/_internal/server/features/categories/data.js +40 -0
- package/dist/_internal/server/features/categories/index.d.ts +2 -0
- package/dist/_internal/server/features/categories/index.js +2 -0
- package/dist/_internal/server/features/checkout/actions.d.ts +35 -0
- package/dist/_internal/server/features/checkout/actions.js +327 -0
- package/dist/_internal/server/features/checkout/data.d.ts +13 -0
- package/dist/_internal/server/features/checkout/data.js +13 -0
- package/dist/_internal/server/features/checkout/index.d.ts +3 -0
- package/dist/_internal/server/features/checkout/index.js +3 -0
- package/dist/_internal/server/features/events/actions.d.ts +4 -0
- package/dist/_internal/server/features/events/actions.js +60 -0
- package/dist/_internal/server/features/events/data.d.ts +1 -0
- package/dist/_internal/server/features/events/data.js +5 -0
- package/dist/_internal/server/features/events/index.d.ts +5 -0
- package/dist/_internal/server/features/events/index.js +5 -0
- package/dist/_internal/server/features/events/og.d.ts +26 -0
- package/dist/_internal/server/features/events/og.js +87 -0
- package/dist/_internal/server/features/events/service.d.ts +2 -0
- package/dist/_internal/server/features/events/service.js +27 -0
- package/dist/_internal/server/features/grouped/data.d.ts +25 -0
- package/dist/_internal/server/features/grouped/data.js +116 -0
- package/dist/_internal/server/features/grouped/index.d.ts +2 -0
- package/dist/_internal/server/features/grouped/index.js +2 -0
- package/dist/_internal/server/features/history/actions.d.ts +8 -0
- package/dist/_internal/server/features/history/actions.js +15 -0
- package/dist/_internal/server/features/history/data.d.ts +7 -0
- package/dist/_internal/server/features/history/data.js +6 -0
- package/dist/_internal/server/features/history/index.d.ts +3 -0
- package/dist/_internal/server/features/history/index.js +3 -0
- package/dist/_internal/server/features/homepage/data.d.ts +18 -0
- package/dist/_internal/server/features/homepage/data.js +39 -0
- package/dist/_internal/server/features/homepage/index.d.ts +2 -0
- package/dist/_internal/server/features/homepage/index.js +2 -0
- package/dist/_internal/server/features/messages/actions.d.ts +6 -0
- package/dist/_internal/server/features/messages/actions.js +6 -0
- package/dist/_internal/server/features/messages/data.d.ts +10 -0
- package/dist/_internal/server/features/messages/data.js +24 -0
- package/dist/_internal/server/features/messages/index.d.ts +2 -0
- package/dist/_internal/server/features/messages/index.js +2 -0
- package/dist/_internal/server/features/orders/actions.d.ts +4 -0
- package/dist/_internal/server/features/orders/actions.js +50 -0
- package/dist/_internal/server/features/orders/adapters.d.ts +3 -0
- package/dist/_internal/server/features/orders/adapters.js +56 -0
- package/dist/_internal/server/features/orders/data.d.ts +10 -0
- package/dist/_internal/server/features/orders/data.js +18 -0
- package/dist/_internal/server/features/orders/index.d.ts +5 -0
- package/dist/_internal/server/features/orders/index.js +5 -0
- package/dist/_internal/server/features/orders/service.d.ts +4 -0
- package/dist/_internal/server/features/orders/service.js +30 -0
- package/dist/_internal/server/features/payments/actions.d.ts +30 -0
- package/dist/_internal/server/features/payments/actions.js +45 -0
- package/dist/_internal/server/features/payments/data.d.ts +11 -0
- package/dist/_internal/server/features/payments/data.js +14 -0
- package/dist/_internal/server/features/payments/index.d.ts +3 -0
- package/dist/_internal/server/features/payments/index.js +3 -0
- package/dist/_internal/server/features/pre-orders/actions.d.ts +7 -0
- package/dist/_internal/server/features/pre-orders/actions.js +26 -0
- package/dist/_internal/server/features/pre-orders/data.d.ts +4 -0
- package/dist/_internal/server/features/pre-orders/data.js +9 -0
- package/dist/_internal/server/features/pre-orders/index.d.ts +5 -0
- package/dist/_internal/server/features/pre-orders/index.js +5 -0
- package/dist/_internal/server/features/pre-orders/og.d.ts +19 -0
- package/dist/_internal/server/features/pre-orders/og.js +49 -0
- package/dist/_internal/server/features/pre-orders/service.d.ts +7 -0
- package/dist/_internal/server/features/pre-orders/service.js +30 -0
- package/dist/_internal/server/features/products/actions.d.ts +7 -0
- package/dist/_internal/server/features/products/actions.js +74 -0
- package/dist/_internal/server/features/products/data.d.ts +14 -0
- package/dist/_internal/server/features/products/data.js +48 -0
- package/dist/_internal/server/features/products/index.d.ts +5 -0
- package/dist/_internal/server/features/products/index.js +5 -0
- package/dist/_internal/server/features/products/og.d.ts +19 -0
- package/dist/_internal/server/features/products/og.js +43 -0
- package/dist/_internal/server/features/products/service.d.ts +11 -0
- package/dist/_internal/server/features/products/service.js +55 -0
- package/dist/_internal/server/features/profile/index.d.ts +1 -0
- package/dist/_internal/server/features/profile/index.js +1 -0
- package/dist/_internal/server/features/profile/og.d.ts +26 -0
- package/dist/_internal/server/features/profile/og.js +91 -0
- package/dist/_internal/server/features/promotions/actions.d.ts +9 -0
- package/dist/_internal/server/features/promotions/actions.js +38 -0
- package/dist/_internal/server/features/promotions/data.d.ts +1 -0
- package/dist/_internal/server/features/promotions/data.js +5 -0
- package/dist/_internal/server/features/promotions/index.d.ts +4 -0
- package/dist/_internal/server/features/promotions/index.js +4 -0
- package/dist/_internal/server/features/promotions/service.d.ts +3 -0
- package/dist/_internal/server/features/promotions/service.js +47 -0
- package/dist/_internal/server/features/reviews/actions.d.ts +4 -0
- package/dist/_internal/server/features/reviews/actions.js +66 -0
- package/dist/_internal/server/features/reviews/data.d.ts +10 -0
- package/dist/_internal/server/features/reviews/data.js +18 -0
- package/dist/_internal/server/features/reviews/index.d.ts +3 -0
- package/dist/_internal/server/features/reviews/index.js +3 -0
- package/dist/_internal/server/features/reviews/service.d.ts +5 -0
- package/dist/_internal/server/features/reviews/service.js +27 -0
- package/dist/_internal/server/features/scams/data.d.ts +10 -0
- package/dist/_internal/server/features/scams/data.js +22 -0
- package/dist/_internal/server/features/scams/index.d.ts +1 -0
- package/dist/_internal/server/features/scams/index.js +1 -0
- package/dist/_internal/server/features/search/actions.d.ts +15 -0
- package/dist/_internal/server/features/search/actions.js +18 -0
- package/dist/_internal/server/features/search/data.d.ts +15 -0
- package/dist/_internal/server/features/search/data.js +18 -0
- package/dist/_internal/server/features/search/index.d.ts +3 -0
- package/dist/_internal/server/features/search/index.js +2 -0
- package/dist/_internal/server/features/stores/data.d.ts +31 -0
- package/dist/_internal/server/features/stores/data.js +58 -0
- package/dist/_internal/server/features/stores/index.d.ts +3 -0
- package/dist/_internal/server/features/stores/index.js +3 -0
- package/dist/_internal/server/features/stores/og.d.ts +19 -0
- package/dist/_internal/server/features/stores/og.js +52 -0
- package/dist/_internal/server/features/sublisting-categories/data.d.ts +1 -0
- package/dist/_internal/server/features/sublisting-categories/data.js +5 -0
- package/dist/_internal/server/features/sublisting-categories/index.d.ts +2 -0
- package/dist/_internal/server/features/sublisting-categories/index.js +2 -0
- package/dist/_internal/server/features/sublisting-categories/og.d.ts +20 -0
- package/dist/_internal/server/features/sublisting-categories/og.js +56 -0
- package/dist/_internal/server/features/wishlist/actions.d.ts +13 -0
- package/dist/_internal/server/features/wishlist/actions.js +40 -0
- package/dist/_internal/server/features/wishlist/data.d.ts +8 -0
- package/dist/_internal/server/features/wishlist/data.js +9 -0
- package/dist/_internal/server/features/wishlist/index.d.ts +4 -0
- package/dist/_internal/server/features/wishlist/index.js +4 -0
- package/dist/_internal/server/index.d.ts +0 -0
- package/dist/_internal/server/index.js +4 -0
- package/dist/_internal/server/jobs/handlers/_helpers.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/_helpers.js +19 -0
- package/dist/_internal/server/jobs/handlers/adminAnalytics.d.ts +28 -0
- package/dist/_internal/server/jobs/handlers/adminAnalytics.js +98 -0
- package/dist/_internal/server/jobs/handlers/auctionSettlement.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/auctionSettlement.js +70 -0
- package/dist/_internal/server/jobs/handlers/autoPayoutEligibility.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/autoPayoutEligibility.js +110 -0
- package/dist/_internal/server/jobs/handlers/cartPrune.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/cartPrune.js +13 -0
- package/dist/_internal/server/jobs/handlers/cleanupRtdbEvents.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/cleanupRtdbEvents.js +45 -0
- package/dist/_internal/server/jobs/handlers/countersReconcile.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/countersReconcile.js +109 -0
- package/dist/_internal/server/jobs/handlers/couponExpiry.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/couponExpiry.js +13 -0
- package/dist/_internal/server/jobs/handlers/dailyDataCleanup.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/dailyDataCleanup.js +20 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +35 -0
- package/dist/_internal/server/jobs/handlers/index.js +35 -0
- package/dist/_internal/server/jobs/handlers/listingProcessor.d.ts +30 -0
- package/dist/_internal/server/jobs/handlers/listingProcessor.js +128 -0
- package/dist/_internal/server/jobs/handlers/mediaTmpCleanup.d.ts +14 -0
- package/dist/_internal/server/jobs/handlers/mediaTmpCleanup.js +69 -0
- package/dist/_internal/server/jobs/handlers/messages.d.ts +45 -0
- package/dist/_internal/server/jobs/handlers/messages.js +45 -0
- package/dist/_internal/server/jobs/handlers/notificationPrune.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/notificationPrune.js +13 -0
- package/dist/_internal/server/jobs/handlers/offerExpiry.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/offerExpiry.js +50 -0
- package/dist/_internal/server/jobs/handlers/onBidPlaced.d.ts +12 -0
- package/dist/_internal/server/jobs/handlers/onBidPlaced.js +63 -0
- package/dist/_internal/server/jobs/handlers/onCategoryWrite.d.ts +10 -0
- package/dist/_internal/server/jobs/handlers/onCategoryWrite.js +136 -0
- package/dist/_internal/server/jobs/handlers/onOrderCreate.d.ts +14 -0
- package/dist/_internal/server/jobs/handlers/onOrderCreate.js +83 -0
- package/dist/_internal/server/jobs/handlers/onOrderStatusChange.d.ts +14 -0
- package/dist/_internal/server/jobs/handlers/onOrderStatusChange.js +141 -0
- package/dist/_internal/server/jobs/handlers/onProductWrite.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/onProductWrite.js +92 -0
- package/dist/_internal/server/jobs/handlers/onReviewWrite.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/onReviewWrite.js +51 -0
- package/dist/_internal/server/jobs/handlers/onStoreWrite.d.ts +10 -0
- package/dist/_internal/server/jobs/handlers/onStoreWrite.js +9 -0
- package/dist/_internal/server/jobs/handlers/payoutBatch.d.ts +11 -0
- package/dist/_internal/server/jobs/handlers/payoutBatch.js +104 -0
- package/dist/_internal/server/jobs/handlers/pendingOrderTimeout.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/pendingOrderTimeout.js +33 -0
- package/dist/_internal/server/jobs/handlers/positionsReconcile.d.ts +7 -0
- package/dist/_internal/server/jobs/handlers/positionsReconcile.js +87 -0
- package/dist/_internal/server/jobs/handlers/productStatsSync.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/productStatsSync.js +36 -0
- package/dist/_internal/server/jobs/handlers/promotions.d.ts +12 -0
- package/dist/_internal/server/jobs/handlers/promotions.js +43 -0
- package/dist/_internal/server/jobs/handlers/storeAnalytics.d.ts +30 -0
- package/dist/_internal/server/jobs/handlers/storeAnalytics.js +109 -0
- package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.d.ts +8 -0
- package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.js +87 -0
- package/dist/_internal/server/jobs/index.d.ts +4 -0
- package/dist/_internal/server/jobs/index.js +3 -0
- package/dist/_internal/server/jobs/runtime/adapters/firebase.d.ts +50 -0
- package/dist/_internal/server/jobs/runtime/adapters/firebase.js +156 -0
- package/dist/_internal/server/jobs/runtime/types.d.ts +52 -0
- package/dist/_internal/server/jobs/runtime/types.js +13 -0
- package/dist/_internal/shared/config/index.d.ts +1 -0
- package/dist/_internal/shared/config/index.js +1 -0
- package/dist/_internal/shared/config/schema.d.ts +82 -0
- package/dist/_internal/shared/config/schema.js +1 -0
- package/dist/_internal/shared/constants/index.d.ts +1 -0
- package/dist/_internal/shared/constants/index.js +1 -0
- package/dist/_internal/shared/errors/index.d.ts +24 -0
- package/dist/_internal/shared/errors/index.js +46 -0
- package/dist/_internal/shared/features/auctions/config.d.ts +6 -0
- package/dist/_internal/shared/features/auctions/config.js +6 -0
- package/dist/_internal/shared/features/auctions/errors.d.ts +16 -0
- package/dist/_internal/shared/features/auctions/errors.js +31 -0
- package/dist/_internal/shared/features/auctions/schema.d.ts +30 -0
- package/dist/_internal/shared/features/auctions/schema.js +12 -0
- package/dist/_internal/shared/features/blog/config.d.ts +6 -0
- package/dist/_internal/shared/features/blog/config.js +6 -0
- package/dist/_internal/shared/features/blog/errors.d.ts +10 -0
- package/dist/_internal/shared/features/blog/errors.js +19 -0
- package/dist/_internal/shared/features/blog/schema.d.ts +81 -0
- package/dist/_internal/shared/features/blog/schema.js +17 -0
- package/dist/_internal/shared/features/brands/config.d.ts +4 -0
- package/dist/_internal/shared/features/brands/config.js +4 -0
- package/dist/_internal/shared/features/brands/errors.d.ts +7 -0
- package/dist/_internal/shared/features/brands/errors.js +13 -0
- package/dist/_internal/shared/features/brands/schema.d.ts +69 -0
- package/dist/_internal/shared/features/brands/schema.js +15 -0
- package/dist/_internal/shared/features/bundles/config.d.ts +6 -0
- package/dist/_internal/shared/features/bundles/config.js +6 -0
- package/dist/_internal/shared/features/cart/config.d.ts +3 -0
- package/dist/_internal/shared/features/cart/config.js +3 -0
- package/dist/_internal/shared/features/cart/errors.d.ts +10 -0
- package/dist/_internal/shared/features/cart/errors.js +19 -0
- package/dist/_internal/shared/features/cart/schema.d.ts +132 -0
- package/dist/_internal/shared/features/cart/schema.js +33 -0
- package/dist/_internal/shared/features/categories/config.d.ts +6 -0
- package/dist/_internal/shared/features/categories/config.js +6 -0
- package/dist/_internal/shared/features/checkout/config.d.ts +8 -0
- package/dist/_internal/shared/features/checkout/config.js +7 -0
- package/dist/_internal/shared/features/events/config.d.ts +5 -0
- package/dist/_internal/shared/features/events/config.js +5 -0
- package/dist/_internal/shared/features/events/errors.d.ts +16 -0
- package/dist/_internal/shared/features/events/errors.js +31 -0
- package/dist/_internal/shared/features/events/schema.d.ts +91 -0
- package/dist/_internal/shared/features/events/schema.js +21 -0
- package/dist/_internal/shared/features/grouped/config.d.ts +3 -0
- package/dist/_internal/shared/features/grouped/config.js +3 -0
- package/dist/_internal/shared/features/history/config.d.ts +2 -0
- package/dist/_internal/shared/features/history/config.js +2 -0
- package/dist/_internal/shared/features/homepage/config.d.ts +3 -0
- package/dist/_internal/shared/features/homepage/config.js +3 -0
- package/dist/_internal/shared/features/orders/config.d.ts +8 -0
- package/dist/_internal/shared/features/orders/config.js +8 -0
- package/dist/_internal/shared/features/orders/errors.d.ts +13 -0
- package/dist/_internal/shared/features/orders/errors.js +25 -0
- package/dist/_internal/shared/features/orders/schema.d.ts +114 -0
- package/dist/_internal/shared/features/orders/schema.js +33 -0
- package/dist/_internal/shared/features/payments/config.d.ts +2 -0
- package/dist/_internal/shared/features/payments/config.js +2 -0
- package/dist/_internal/shared/features/pre-orders/config.d.ts +4 -0
- package/dist/_internal/shared/features/pre-orders/config.js +4 -0
- package/dist/_internal/shared/features/pre-orders/errors.d.ts +13 -0
- package/dist/_internal/shared/features/pre-orders/errors.js +25 -0
- package/dist/_internal/shared/features/pre-orders/schema.d.ts +25 -0
- package/dist/_internal/shared/features/pre-orders/schema.js +10 -0
- package/dist/_internal/shared/features/products/config.d.ts +5 -0
- package/dist/_internal/shared/features/products/config.js +5 -0
- package/dist/_internal/shared/features/products/errors.d.ts +16 -0
- package/dist/_internal/shared/features/products/errors.js +31 -0
- package/dist/_internal/shared/features/products/schema.d.ts +364 -0
- package/dist/_internal/shared/features/products/schema.js +58 -0
- package/dist/_internal/shared/features/products/types.d.ts +46 -0
- package/dist/_internal/shared/features/products/types.js +1 -0
- package/dist/_internal/shared/features/promotions/config.d.ts +3 -0
- package/dist/_internal/shared/features/promotions/config.js +3 -0
- package/dist/_internal/shared/features/promotions/errors.d.ts +19 -0
- package/dist/_internal/shared/features/promotions/errors.js +37 -0
- package/dist/_internal/shared/features/promotions/schema.d.ts +242 -0
- package/dist/_internal/shared/features/promotions/schema.js +37 -0
- package/dist/_internal/shared/features/reviews/config.d.ts +8 -0
- package/dist/_internal/shared/features/reviews/config.js +8 -0
- package/dist/_internal/shared/features/reviews/errors.d.ts +13 -0
- package/dist/_internal/shared/features/reviews/errors.js +25 -0
- package/dist/_internal/shared/features/reviews/schema.d.ts +44 -0
- package/dist/_internal/shared/features/reviews/schema.js +18 -0
- package/dist/_internal/shared/features/stores/config.d.ts +4 -0
- package/dist/_internal/shared/features/stores/config.js +4 -0
- package/dist/_internal/shared/features/wishlist/config.d.ts +2 -0
- package/dist/_internal/shared/features/wishlist/config.js +2 -0
- package/dist/_internal/shared/features/wishlist/errors.d.ts +4 -0
- package/dist/_internal/shared/features/wishlist/errors.js +7 -0
- package/dist/_internal/shared/index.d.ts +2 -0
- package/dist/_internal/shared/index.js +4 -0
- package/dist/_internal/shared/serialization/index.d.ts +17 -0
- package/dist/_internal/shared/serialization/index.js +42 -0
- package/dist/_internal/shared/tokens/index.d.ts +137 -0
- package/dist/_internal/shared/tokens/index.js +159 -0
- package/dist/client-entry.d.ts +23 -0
- package/dist/client-entry.js +27 -0
- package/dist/client.d.ts +47 -5
- package/dist/client.js +68 -33
- package/dist/configs/eslint.d.ts +29 -0
- package/dist/configs/eslint.js +38 -0
- package/dist/configs/index.d.ts +14 -0
- package/dist/configs/index.js +14 -0
- package/dist/configs/next.d.ts +38 -0
- package/dist/configs/next.js +116 -0
- package/dist/configs/postcss.d.ts +22 -0
- package/dist/configs/postcss.js +22 -0
- package/dist/configs/tailwind.d.ts +59 -0
- package/dist/configs/tailwind.js +62 -0
- package/dist/constants/api-endpoints.d.ts +24 -0
- package/dist/constants/api-endpoints.js +8 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +1 -0
- package/dist/constants/limits.d.ts +15 -0
- package/dist/constants/limits.js +15 -0
- package/dist/contracts/client-auth.d.ts +2 -0
- package/dist/errors/messages.d.ts +23 -0
- package/dist/errors/messages.js +25 -0
- package/dist/features/about/components/PublicProfileView.js +16 -9
- package/dist/features/account/components/AddressBook.d.ts +2 -1
- package/dist/features/account/components/AddressBook.js +2 -2
- package/dist/features/account/components/UserReturnsView.d.ts +10 -0
- package/dist/features/account/components/UserReturnsView.js +5 -0
- package/dist/features/account/components/index.d.ts +2 -0
- package/dist/features/account/components/index.js +1 -0
- package/dist/features/account/hooks/useProfile.d.ts +2 -0
- package/dist/features/account/schemas/index.d.ts +18 -18
- package/dist/features/admin/actions/chat-actions.d.ts +1 -1
- package/dist/features/admin/actions/chat-actions.js +10 -10
- package/dist/features/admin/components/AdminBlogEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminBlogEditorView.js +16 -14
- package/dist/features/admin/components/AdminBlogView.js +6 -3
- package/dist/features/admin/components/AdminBrandEditorView.d.ts +3 -1
- package/dist/features/admin/components/AdminBrandEditorView.js +16 -14
- package/dist/features/admin/components/AdminBrandsView.js +6 -3
- package/dist/features/admin/components/AdminCategoriesView.js +6 -3
- package/dist/features/admin/components/AdminCategoryEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminCategoryEditorView.js +16 -14
- package/dist/features/admin/components/AdminCouponEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminCouponEditorView.js +16 -14
- package/dist/features/admin/components/AdminCouponsView.js +6 -3
- package/dist/features/admin/components/AdminFaqEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminFaqEditorView.js +16 -14
- package/dist/features/admin/components/AdminFaqsView.js +6 -3
- package/dist/features/admin/components/AdminFeatureEditorView.d.ts +19 -0
- package/dist/features/admin/components/AdminFeatureEditorView.js +150 -0
- package/dist/features/admin/components/AdminFeaturesView.d.ts +4 -0
- package/dist/features/admin/components/AdminFeaturesView.js +95 -0
- package/dist/features/admin/components/AdminHistoryView.d.ts +4 -0
- package/dist/features/admin/components/AdminHistoryView.js +57 -0
- package/dist/features/admin/components/AdminMediaView.js +64 -2
- package/dist/features/admin/components/AdminOrdersView.js +31 -4
- package/dist/features/admin/components/AdminProductEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminProductEditorView.js +30 -19
- package/dist/features/admin/components/AdminProductsView.js +40 -3
- package/dist/features/admin/components/AdminSectionsView.js +138 -2
- package/dist/features/admin/components/AdminSiteSettingsView.js +22 -2
- package/dist/features/admin/components/AdminStoresView.js +5 -4
- package/dist/features/admin/components/AdminUserEditorView.d.ts +4 -1
- package/dist/features/admin/components/AdminUserEditorView.js +2 -2
- package/dist/features/admin/components/AdminUsersView.js +1 -1
- package/dist/features/admin/components/AdminWishlistsView.js +17 -15
- package/dist/features/admin/components/DataTable.d.ts +2 -1
- package/dist/features/admin/components/DataTable.js +14 -12
- package/dist/features/admin/components/DrawerFormFooter.d.ts +9 -21
- package/dist/features/admin/components/DrawerFormFooter.js +10 -2
- package/dist/features/admin/components/QuickEditMenu.d.ts +20 -0
- package/dist/features/admin/components/QuickEditMenu.js +31 -0
- package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +11 -23
- package/dist/features/admin/components/index.d.ts +8 -0
- package/dist/features/admin/components/index.js +4 -0
- package/dist/features/admin/components/sections/adminSectionsBuildParse.d.ts +9 -1
- package/dist/features/admin/components/sections/adminSectionsBuildParse.js +169 -9
- package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +62 -1
- package/dist/features/admin/components/sections/adminSectionsTypes.js +57 -4
- package/dist/features/admin/hooks/useChat.d.ts +1 -1
- package/dist/features/admin/repository/chat.repository.d.ts +2 -2
- package/dist/features/admin/repository/chat.repository.js +7 -7
- package/dist/features/admin/schemas/firestore.d.ts +42 -7
- package/dist/features/admin/schemas/firestore.js +7 -7
- package/dist/features/admin/types/product.types.d.ts +2 -2
- package/dist/features/auctions/actions/bid-actions.js +3 -2
- package/dist/features/auctions/components/AuctionDetailPageView.d.ts +11 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +80 -68
- package/dist/features/auctions/components/AuctionsListView.js +11 -6
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +2 -1
- package/dist/features/auctions/hooks/useAuctions.js +2 -1
- package/dist/features/auctions/repository/auctions.repository.js +4 -4
- package/dist/features/auctions/schemas/index.d.ts +24 -24
- package/dist/features/auctions/types/index.d.ts +2 -1
- package/dist/features/auth/hooks/useAuth.d.ts +8 -0
- package/dist/features/auth/hooks/useAuth.js +9 -0
- package/dist/features/auth/schemas/index.d.ts +2 -2
- package/dist/features/before-after/schemas/index.d.ts +2 -2
- package/dist/features/blog/actions/blog-actions.d.ts +63 -63
- package/dist/features/blog/components/BlogPostView.d.ts +3 -1
- package/dist/features/blog/components/BlogPostView.js +3 -2
- package/dist/features/blog/schemas/index.d.ts +41 -41
- package/dist/features/bundles/components/AdminBundleEditorView.d.ts +8 -0
- package/dist/features/bundles/components/AdminBundleEditorView.js +7 -0
- package/dist/features/bundles/components/BundleDetailPageView.d.ts +9 -0
- package/dist/features/bundles/components/BundleDetailPageView.js +45 -0
- package/dist/features/bundles/components/BundleForm.d.ts +12 -0
- package/dist/features/bundles/components/BundleForm.js +126 -0
- package/dist/features/bundles/components/BundleItemsPicker.d.ts +9 -0
- package/dist/features/bundles/components/BundleItemsPicker.js +77 -0
- package/dist/features/bundles/components/BundlesListingView.d.ts +17 -0
- package/dist/features/bundles/components/BundlesListingView.js +50 -0
- package/dist/features/bundles/components/FeaturedBundlesSection.d.ts +5 -0
- package/dist/features/bundles/components/FeaturedBundlesSection.js +55 -0
- package/dist/features/bundles/components/SellerBundleCreateView.d.ts +8 -0
- package/dist/features/bundles/components/SellerBundleCreateView.js +7 -0
- package/dist/features/bundles/components/SellerBundleEditView.d.ts +9 -0
- package/dist/features/bundles/components/SellerBundleEditView.js +7 -0
- package/dist/features/bundles/components/index.d.ts +16 -0
- package/dist/features/bundles/components/index.js +8 -0
- package/dist/features/bundles/constants/index.d.ts +32 -0
- package/dist/features/bundles/constants/index.js +35 -0
- package/dist/features/bundles/index.d.ts +2 -0
- package/dist/features/bundles/index.js +2 -0
- package/dist/features/bundles/repository/bundles.repository.d.ts +36 -0
- package/dist/features/bundles/repository/bundles.repository.js +148 -0
- package/dist/features/bundles/repository/index.d.ts +1 -0
- package/dist/features/bundles/repository/index.js +1 -0
- package/dist/features/bundles/schemas/firestore.d.ts +88 -0
- package/dist/features/bundles/schemas/firestore.js +29 -0
- package/dist/features/bundles/schemas/index.d.ts +1 -0
- package/dist/features/bundles/schemas/index.js +1 -0
- package/dist/features/cart/actions/cart-actions.js +2 -1
- package/dist/features/cart/repository/cart.repository.js +1 -2
- package/dist/features/cart/schemas/firestore.d.ts +9 -6
- package/dist/features/cart/schemas/firestore.js +1 -2
- package/dist/features/cart/schemas/index.d.ts +7 -7
- package/dist/features/cart/utils/guest-cart.d.ts +6 -0
- package/dist/features/cart/utils/guest-cart.js +14 -0
- package/dist/features/categories/components/BrandDetailPageView.d.ts +3 -1
- package/dist/features/categories/components/BrandDetailPageView.js +6 -6
- package/dist/features/categories/components/CategoryDetailPageView.js +3 -3
- package/dist/features/categories/components/CategoryProductsListing.js +1 -1
- package/dist/features/categories/schemas/index.d.ts +24 -24
- package/dist/features/collections/schemas/index.d.ts +3 -3
- package/dist/features/consultation/schemas/index.d.ts +7 -7
- package/dist/features/corporate/schemas/index.d.ts +1 -1
- package/dist/features/events/components/AdminEventEditorView.d.ts +2 -1
- package/dist/features/events/components/AdminEventEditorView.js +10 -8
- package/dist/features/events/components/AdminEventsView.js +6 -3
- package/dist/features/events/components/EventDetailView.d.ts +7 -1
- package/dist/features/events/components/EventDetailView.js +4 -1
- package/dist/features/events/components/EventRafflesSection.d.ts +12 -0
- package/dist/features/events/components/EventRafflesSection.js +17 -0
- package/dist/features/events/components/index.d.ts +2 -0
- package/dist/features/events/components/index.js +1 -0
- package/dist/features/events/schemas/index.d.ts +41 -41
- package/dist/features/faq/actions/faq-actions.d.ts +16 -16
- package/dist/features/faq/schemas/index.d.ts +12 -12
- package/dist/features/history/actions/history-actions.d.ts +24 -0
- package/dist/features/history/actions/history-actions.js +43 -0
- package/dist/features/history/actions/index.d.ts +1 -0
- package/dist/features/history/actions/index.js +1 -0
- package/dist/features/history/components/HistoryTracker.d.ts +8 -0
- package/dist/features/history/components/HistoryTracker.js +18 -0
- package/dist/features/history/hooks/useHistory.d.ts +16 -0
- package/dist/features/history/hooks/useHistory.js +148 -0
- package/dist/features/history/hooks/useHistoryMergeOnLogin.d.ts +1 -0
- package/dist/features/history/hooks/useHistoryMergeOnLogin.js +41 -0
- package/dist/features/history/index.d.ts +5 -0
- package/dist/features/history/index.js +4 -0
- package/dist/features/history/repository/user-history.repository.d.ts +59 -0
- package/dist/features/history/repository/user-history.repository.js +203 -0
- package/dist/features/history/server.d.ts +6 -0
- package/dist/features/history/server.js +6 -0
- package/dist/features/history/utils/guest-history.d.ts +24 -0
- package/dist/features/history/utils/guest-history.js +66 -0
- package/dist/features/homepage/actions/homepage-section-actions.d.ts +4 -4
- package/dist/features/homepage/components/BrandsSection.d.ts +7 -1
- package/dist/features/homepage/components/BrandsSection.js +26 -4
- package/dist/features/homepage/components/CollectionCardsSection.d.ts +13 -0
- package/dist/features/homepage/components/CollectionCardsSection.js +41 -0
- package/dist/features/homepage/components/FAQSection.d.ts +14 -4
- package/dist/features/homepage/components/FAQSection.js +63 -13
- package/dist/features/homepage/components/FeaturedProductsSection.d.ts +8 -1
- package/dist/features/homepage/components/FeaturedProductsSection.js +42 -2
- package/dist/features/homepage/components/MarketplaceHomepageView.js +17 -8
- package/dist/features/homepage/components/ShopByCategorySection.d.ts +8 -1
- package/dist/features/homepage/components/ShopByCategorySection.js +44 -4
- package/dist/features/homepage/components/SocialFeedSection.js +22 -2
- package/dist/features/homepage/components/SocialPostCard.js +20 -5
- package/dist/features/homepage/components/WelcomeSection.js +2 -2
- package/dist/features/homepage/components/WhatsAppCommunitySection.d.ts +0 -1
- package/dist/features/homepage/components/WhatsAppCommunitySection.js +4 -4
- package/dist/features/homepage/lib/live-stats.d.ts +18 -5
- package/dist/features/homepage/lib/live-stats.js +60 -29
- package/dist/features/homepage/lib/section-renderer.d.ts +2 -1
- package/dist/features/homepage/lib/section-renderer.js +50 -11
- package/dist/features/homepage/repository/carousels.repository.d.ts +38 -0
- package/dist/features/homepage/repository/carousels.repository.js +142 -0
- package/dist/features/homepage/schemas/firestore.d.ts +177 -21
- package/dist/features/homepage/schemas/firestore.js +24 -0
- package/dist/features/layout/AppLayoutShell.d.ts +3 -1
- package/dist/features/layout/AppLayoutShell.js +2 -2
- package/dist/features/layout/TitleBarLayout.d.ts +3 -1
- package/dist/features/layout/TitleBarLayout.js +5 -4
- package/dist/features/layout/index.d.ts +1 -1
- package/dist/features/media/MediaPickerModal.js +67 -3
- package/dist/features/media/types/index.d.ts +2 -2
- package/dist/features/media/upload/MediaUploadField.js +21 -5
- package/dist/features/messages/actions/index.d.ts +2 -0
- package/dist/features/messages/actions/index.js +2 -0
- package/dist/features/messages/actions/messages-actions.d.ts +15 -0
- package/dist/features/messages/actions/messages-actions.js +33 -0
- package/dist/features/messages/actions/ping-rtdb.d.ts +2 -0
- package/dist/features/messages/actions/ping-rtdb.js +24 -0
- package/dist/features/messages/hooks/useConversation.d.ts +22 -0
- package/dist/features/messages/hooks/useConversation.js +125 -0
- package/dist/features/messages/hooks/useConversations.d.ts +9 -0
- package/dist/features/messages/hooks/useConversations.js +62 -0
- package/dist/features/messages/index.d.ts +6 -0
- package/dist/features/messages/index.js +4 -0
- package/dist/features/messages/realtime.d.ts +32 -0
- package/dist/features/messages/realtime.js +39 -0
- package/dist/features/messages/repository/conversations.repository.d.ts +35 -0
- package/dist/features/messages/repository/conversations.repository.js +180 -0
- package/dist/features/messages/server.d.ts +6 -0
- package/dist/features/messages/server.js +6 -0
- package/dist/features/orders/schemas/firestore.d.ts +21 -0
- package/dist/features/orders/schemas/index.d.ts +28 -28
- package/dist/features/orders/utils/order-splitter.d.ts +12 -2
- package/dist/features/orders/utils/order-splitter.js +13 -2
- package/dist/features/payments/schemas/index.d.ts +6 -6
- package/dist/features/pre-orders/api/route.js +10 -11
- package/dist/features/pre-orders/components/PreOrderDetailPageView.d.ts +11 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +45 -35
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +24 -7
- package/dist/features/pre-orders/components/PreOrdersListView.js +10 -5
- package/dist/features/pre-orders/schemas/index.d.ts +6 -6
- package/dist/features/products/actions/product-actions.d.ts +2 -2
- package/dist/features/products/actions/product-actions.js +21 -16
- package/dist/features/products/api/[id]/route.js +4 -4
- package/dist/features/products/api/route.js +21 -6
- package/dist/features/products/components/AuctionsIndexListing.js +1 -1
- package/dist/features/products/components/CompareOverlay.d.ts +51 -0
- package/dist/features/products/components/CompareOverlay.js +154 -0
- package/dist/features/products/components/FeatureBadge.d.ts +28 -0
- package/dist/features/products/components/FeatureBadge.js +63 -0
- package/dist/features/products/components/GroupSettingsPanel.js +1 -1
- package/dist/features/products/components/NonRefundableConsentModal.d.ts +23 -0
- package/dist/features/products/components/NonRefundableConsentModal.js +55 -0
- package/dist/features/products/components/PrizeDrawsSection.d.ts +12 -0
- package/dist/features/products/components/PrizeDrawsSection.js +17 -0
- package/dist/features/products/components/ProductDetailPageView.d.ts +16 -1
- package/dist/features/products/components/ProductDetailPageView.js +65 -60
- package/dist/features/products/components/ProductFeaturesContext.d.ts +9 -0
- package/dist/features/products/components/ProductFeaturesContext.js +11 -0
- package/dist/features/products/components/ProductFeaturesSelector.d.ts +12 -0
- package/dist/features/products/components/ProductFeaturesSelector.js +72 -0
- package/dist/features/products/components/ProductForm.js +9 -3
- package/dist/features/products/components/ProductGrid.js +9 -3
- package/dist/features/products/components/ProductsIndexListing.js +24 -8
- package/dist/features/products/components/ProductsIndexPageView.js +12 -7
- package/dist/features/products/components/ShowGroupSection.js +2 -1
- package/dist/features/products/components/SublistingCarouselSection.js +3 -2
- package/dist/features/products/components/index.d.ts +12 -0
- package/dist/features/products/components/index.js +6 -0
- package/dist/features/products/constants/action-defs.d.ts +209 -0
- package/dist/features/products/constants/action-defs.js +270 -0
- package/dist/features/products/constants/product-features.constants.d.ts +23 -0
- package/dist/features/products/constants/product-features.constants.js +50 -0
- package/dist/features/products/hooks/useProducts.d.ts +1 -0
- package/dist/features/products/hooks/useProducts.js +15 -6
- package/dist/features/products/hooks/useRelatedProducts.d.ts +5 -0
- package/dist/features/products/hooks/useRelatedProducts.js +9 -1
- package/dist/features/products/index.d.ts +3 -1
- package/dist/features/products/index.js +3 -1
- package/dist/features/products/repository/loadProductFeatures.d.ts +2 -0
- package/dist/features/products/repository/loadProductFeatures.js +23 -0
- package/dist/features/products/repository/product-features.repository.d.ts +27 -0
- package/dist/features/products/repository/product-features.repository.js +141 -0
- package/dist/features/products/repository/product-templates.repository.d.ts +12 -0
- package/dist/features/products/repository/product-templates.repository.js +61 -0
- package/dist/features/products/repository/products.repository.d.ts +16 -1
- package/dist/features/products/repository/products.repository.js +126 -6
- package/dist/features/products/schemas/firestore.d.ts +43 -5
- package/dist/features/products/schemas/firestore.js +6 -7
- package/dist/features/products/schemas/index.d.ts +147 -51
- package/dist/features/products/schemas/index.js +32 -3
- package/dist/features/products/schemas/product-features.d.ts +84 -0
- package/dist/features/products/schemas/product-features.js +33 -0
- package/dist/features/products/schemas/product-features.validators.d.ts +107 -0
- package/dist/features/products/schemas/product-features.validators.js +64 -0
- package/dist/features/products/schemas/product-templates.d.ts +28 -0
- package/dist/features/products/schemas/product-templates.js +6 -0
- package/dist/features/products/types/index.d.ts +13 -5
- package/dist/features/products/utils/listing-type.d.ts +23 -2
- package/dist/features/products/utils/listing-type.js +14 -7
- package/dist/features/products/utils/sanitize.d.ts +2 -0
- package/dist/features/products/utils/sanitize.js +25 -0
- package/dist/features/promotions/actions/coupon-actions.d.ts +2 -2
- package/dist/features/promotions/components/CouponsIndexListing.d.ts +4 -4
- package/dist/features/promotions/components/CouponsIndexListing.js +3 -3
- package/dist/features/promotions/hooks/useCouponValidate.d.ts +2 -2
- package/dist/features/promotions/repository/coupons.repository.d.ts +2 -2
- package/dist/features/promotions/repository/coupons.repository.js +5 -5
- package/dist/features/promotions/schemas/index.d.ts +18 -18
- package/dist/features/reviews/schemas/index.d.ts +16 -16
- package/dist/features/search/actions/search-actions.js +4 -5
- package/dist/features/search/api/route.js +13 -10
- package/dist/features/search/columns/index.d.ts +1 -1
- package/dist/features/search/columns/index.js +4 -4
- package/dist/features/search/repository/search.repository.js +4 -6
- package/dist/features/search/schemas/index.d.ts +5 -5
- package/dist/features/search/types/index.d.ts +4 -3
- package/dist/features/seller/actions/offer-actions.js +1 -2
- package/dist/features/seller/components/BrandInlineSelect.d.ts +9 -0
- package/dist/features/seller/components/BrandInlineSelect.js +26 -0
- package/dist/features/seller/components/CategoryInlineSelect.d.ts +9 -0
- package/dist/features/seller/components/CategoryInlineSelect.js +26 -0
- package/dist/features/seller/components/SellerFeaturesView.d.ts +1 -0
- package/dist/features/seller/components/SellerFeaturesView.js +61 -0
- package/dist/features/seller/components/SellerProductShell.d.ts +15 -1
- package/dist/features/seller/components/SellerProductShell.js +7 -7
- package/dist/features/seller/components/SellerProductsView.js +17 -17
- package/dist/features/seller/components/SellerStorefrontView.d.ts +7 -0
- package/dist/features/seller/components/SellerStorefrontView.js +12 -2
- package/dist/features/seller/components/analytics/SellerRevenueChart.js +9 -17
- package/dist/features/seller/components/index.d.ts +6 -0
- package/dist/features/seller/components/index.js +4 -0
- package/dist/features/seller/schemas/index.d.ts +26 -26
- package/dist/features/shell/FormShell.d.ts +9 -1
- package/dist/features/shell/FormShell.js +5 -3
- package/dist/features/stores/actions/store-query-actions.js +2 -2
- package/dist/features/stores/api/[storeSlug]/auctions/route.js +11 -15
- package/dist/features/stores/api/[storeSlug]/products/route.js +11 -15
- package/dist/features/stores/api/route.js +12 -14
- package/dist/features/stores/components/StoreAuctionsListing.d.ts +2 -4
- package/dist/features/stores/components/StoreAuctionsListing.js +3 -4
- package/dist/features/stores/components/StoreAuctionsPageView.js +1 -1
- package/dist/features/stores/components/StoreDetailLayoutView.js +3 -3
- package/dist/features/stores/components/StorePreOrdersListing.d.ts +1 -3
- package/dist/features/stores/components/StorePreOrdersListing.js +2 -3
- package/dist/features/stores/components/StorePreOrdersPageView.js +1 -1
- package/dist/features/stores/components/StoreProductsListing.d.ts +2 -4
- package/dist/features/stores/components/StoreProductsListing.js +2 -3
- package/dist/features/stores/components/StoreProductsPageView.d.ts +4 -1
- package/dist/features/stores/components/StoreProductsPageView.js +17 -11
- package/dist/features/stores/repository/store.repository.d.ts +10 -0
- package/dist/features/stores/repository/store.repository.js +39 -0
- package/dist/features/stores/schemas/firestore.d.ts +7 -0
- package/dist/features/stores/schemas/index.d.ts +8 -8
- package/dist/features/stores/types/index.d.ts +4 -3
- package/dist/features/wishlist/actions/wishlist-actions.d.ts +8 -6
- package/dist/features/wishlist/actions/wishlist-actions.js +9 -7
- package/dist/features/wishlist/components/WishlistCapWatcher.d.ts +1 -0
- package/dist/features/wishlist/components/WishlistCapWatcher.js +24 -0
- package/dist/features/wishlist/components/index.d.ts +1 -0
- package/dist/features/wishlist/components/index.js +1 -0
- package/dist/features/wishlist/hooks/useWishlistCount.d.ts +17 -0
- package/dist/features/wishlist/hooks/useWishlistCount.js +36 -1
- package/dist/features/wishlist/index.d.ts +2 -0
- package/dist/features/wishlist/index.js +1 -0
- package/dist/features/wishlist/repository/user-wishlist.repository.d.ts +52 -7
- package/dist/features/wishlist/repository/user-wishlist.repository.js +154 -44
- package/dist/features/wishlist/schemas/index.d.ts +2 -2
- package/dist/features/wishlist/server.d.ts +1 -1
- package/dist/features/wishlist/server.js +1 -1
- package/dist/features/wishlist/types/index.d.ts +2 -2
- package/dist/index.d.ts +87 -5
- package/dist/index.js +101 -12
- package/dist/next/api/routeHandler.d.ts +7 -0
- package/dist/next/api/routeHandler.js +8 -0
- package/dist/next/routing/route-map.d.ts +68 -0
- package/dist/next/routing/route-map.js +32 -0
- package/dist/providers/db-firebase/filter-aliases.d.ts +20 -0
- package/dist/providers/db-firebase/filter-aliases.js +29 -0
- package/dist/providers/db-firebase/index.d.ts +2 -2
- package/dist/providers/db-firebase/index.js +1 -1
- package/dist/providers/db-firebase/sieve.d.ts +9 -0
- package/dist/providers/db-firebase/sieve.js +24 -6
- package/dist/providers/firebase-client/auth.d.ts +1 -0
- package/dist/providers/firebase-client/auth.js +9 -1
- package/dist/providers/shipping-shiprocket/index.d.ts +9 -0
- package/dist/providers/shipping-shiprocket/index.js +11 -0
- package/dist/react/hooks/use-action-dispatch.d.ts +25 -0
- package/dist/react/hooks/use-action-dispatch.js +30 -0
- package/dist/react/hooks/use-panel-url-sync.d.ts +15 -0
- package/dist/react/hooks/use-panel-url-sync.js +46 -0
- package/dist/react/hooks/useInfiniteScroll.d.ts +52 -0
- package/dist/react/hooks/useInfiniteScroll.js +45 -0
- package/dist/repositories/index.d.ts +9 -1
- package/dist/repositories/index.js +8 -1
- package/dist/seed/_bundle-constants.d.ts +14 -0
- package/dist/seed/_bundle-constants.js +14 -0
- package/dist/seed/actions/demo-seed-actions.d.ts +1 -1
- package/dist/seed/bids-seed-data.js +165 -0
- package/dist/seed/blog-posts-seed-data.js +393 -0
- package/dist/seed/bundles-seed-data.d.ts +13 -0
- package/dist/seed/bundles-seed-data.js +229 -0
- package/dist/seed/carousels-seed-data.d.ts +2 -0
- package/dist/seed/carousels-seed-data.js +16 -0
- package/dist/seed/cart-seed-data.js +161 -16
- package/dist/seed/categories-seed-data.js +168 -0
- package/dist/seed/coupons-seed-data.js +174 -0
- package/dist/seed/events-seed-data.js +161 -0
- package/dist/seed/history-seed-data.d.ts +19 -0
- package/dist/seed/history-seed-data.js +61 -0
- package/dist/seed/homepage-sections-seed-data.js +97 -1
- package/dist/seed/index.d.ts +4 -3
- package/dist/seed/index.js +9 -3
- package/dist/seed/manifest.js +23 -1
- package/dist/seed/notifications-seed-data.js +60 -0
- package/dist/seed/orders-seed-data.js +2 -2
- package/dist/seed/product-features-seed-data.d.ts +10 -0
- package/dist/seed/product-features-seed-data.js +162 -0
- package/dist/seed/products-auctions-seed-data.d.ts +6 -1
- package/dist/seed/products-auctions-seed-data.js +495 -24
- package/dist/seed/products-preorders-seed-data.d.ts +6 -1
- package/dist/seed/products-preorders-seed-data.js +27 -18
- package/dist/seed/products-standard-seed-data.d.ts +5 -0
- package/dist/seed/products-standard-seed-data.js +208 -297
- package/dist/seed/runner.js +95 -16
- package/dist/seed/server.d.ts +2 -0
- package/dist/seed/server.js +7 -0
- package/dist/seed/site-settings-seed-data.js +11 -1
- package/dist/seed/types.d.ts +58 -1
- package/dist/seed/types.js +14 -1
- package/dist/seed/wishlists-seed-data.d.ts +14 -7
- package/dist/seed/wishlists-seed-data.js +52 -109
- package/dist/seo/json-ld.d.ts +2 -1
- package/dist/server-entry.d.ts +60 -0
- package/dist/server-entry.js +93 -0
- package/dist/server.d.ts +26 -3
- package/dist/server.js +39 -7
- package/dist/stores/panel-store.d.ts +9 -0
- package/dist/stores/panel-store.js +8 -0
- package/dist/tailwind-utilities.css +1 -1
- package/dist/tokens/tokens.css +182 -12
- package/dist/ui/DataTable.style.css +192 -190
- package/dist/ui/components/Accordion.style.css +82 -82
- package/dist/ui/components/ActiveFilterChips.style.css +12 -12
- package/dist/ui/components/Alert.style.css +187 -187
- package/dist/ui/components/Avatar.style.css +71 -71
- package/dist/ui/components/AvatarDisplay.style.css +3 -3
- package/dist/ui/components/Badge.style.css +114 -114
- package/dist/ui/components/BaseListingCard.style.css +86 -86
- package/dist/ui/components/Breadcrumb.style.css +10 -10
- package/dist/ui/components/BulkActionBar.style.css +196 -196
- package/dist/ui/components/BulkActionsBar.d.ts +2 -0
- package/dist/ui/components/BulkActionsBar.js +5 -2
- package/dist/ui/components/Button.d.ts +3 -1
- package/dist/ui/components/Button.js +12 -2
- package/dist/ui/components/Button.style.css +160 -160
- package/dist/ui/components/Card.style.css +190 -190
- package/dist/ui/components/Checkbox.style.css +111 -111
- package/dist/ui/components/ConfirmDeleteModal.style.css +89 -89
- package/dist/ui/components/DashboardStatsCard.style.css +68 -68
- package/dist/ui/components/DescriptionField.style.css +36 -36
- package/dist/ui/components/DetailViewShell.js +1 -2
- package/dist/ui/components/Divider.style.css +39 -39
- package/dist/ui/components/Drawer.style.css +150 -150
- package/dist/ui/components/Dropdown.style.css +110 -110
- package/dist/ui/components/DynamicSelect.style.css +101 -101
- package/dist/ui/components/EmptyState.style.css +2 -2
- package/dist/ui/components/FilterDrawer.style.css +61 -61
- package/dist/ui/components/FlowDiagram.style.css +3 -3
- package/dist/ui/components/Form.style.css +27 -27
- package/dist/ui/components/FormActionBar.d.ts +22 -0
- package/dist/ui/components/FormActionBar.js +8 -0
- package/dist/ui/components/FormActionBar.style.css +77 -0
- package/dist/ui/components/FormField.style.css +30 -30
- package/dist/ui/components/HorizontalScroller.style.css +10 -10
- package/dist/ui/components/IconButton.style.css +103 -103
- package/dist/ui/components/ImageGallery.style.css +4 -4
- package/dist/ui/components/InlineCreateSelect.d.ts +13 -3
- package/dist/ui/components/InlineCreateSelect.js +9 -4
- package/dist/ui/components/Input.style.css +28 -28
- package/dist/ui/components/Layout.d.ts +2 -0
- package/dist/ui/components/Layout.js +2 -0
- package/dist/ui/components/Layout.style.css +22 -5
- package/dist/ui/components/ListingLayout.style.css +491 -491
- package/dist/ui/components/Modal.style.css +106 -106
- package/dist/ui/components/Pagination.style.css +76 -76
- package/dist/ui/components/PasswordStrengthIndicator.style.css +56 -56
- package/dist/ui/components/PriceDisplay.style.css +47 -47
- package/dist/ui/components/Progress.style.css +81 -81
- package/dist/ui/components/Radio.style.css +153 -153
- package/dist/ui/components/RatingDisplay.style.css +50 -50
- package/dist/ui/components/RowActionMenu.style.css +91 -91
- package/dist/ui/components/SectionTabs.style.css +18 -18
- package/dist/ui/components/Select.style.css +177 -177
- package/dist/ui/components/SideDrawer.style.css +206 -206
- package/dist/ui/components/SideModal.style.css +73 -73
- package/dist/ui/components/SiteLogo.d.ts +26 -0
- package/dist/ui/components/SiteLogo.js +18 -0
- package/dist/ui/components/Skeleton.style.css +55 -55
- package/dist/ui/components/SkipToMain.style.css +3 -3
- package/dist/ui/components/Slider.style.css +15 -15
- package/dist/ui/components/Spinner.style.css +84 -84
- package/dist/ui/components/StarRating.style.css +44 -44
- package/dist/ui/components/StatsGrid.style.css +96 -96
- package/dist/ui/components/StepperNav.style.css +110 -110
- package/dist/ui/components/SummaryCard.style.css +80 -82
- package/dist/ui/components/TabStrip.style.css +97 -97
- package/dist/ui/components/TablePagination.style.css +89 -89
- package/dist/ui/components/Tabs.style.css +44 -44
- package/dist/ui/components/TagInput.style.css +121 -121
- package/dist/ui/components/TextLink.style.css +94 -94
- package/dist/ui/components/Textarea.style.css +30 -30
- package/dist/ui/components/Toast.style.css +112 -112
- package/dist/ui/components/Toggle.style.css +105 -105
- package/dist/ui/components/Tooltip.style.css +114 -114
- package/dist/ui/components/Typography.style.css +178 -178
- package/dist/ui/components/UnsavedChangesModal.style.css +1 -1
- package/dist/ui/components/ViewToggle.style.css +8 -8
- package/dist/ui/components/index.style.css +1 -0
- package/dist/ui/index.d.ts +4 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/rich-text/RichText.style.css +40 -40
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/listing-params.d.ts +86 -0
- package/dist/utils/listing-params.js +121 -0
- package/dist/validation/schemas.d.ts +22 -22
- package/package.json +61 -9
- package/scripts/audit-violations.mjs +77 -0
- package/scripts/init-config.mjs +76 -0
- package/scripts/labels-extract.mjs +64 -0
- package/scripts/seed-cli-loader.mjs +37 -0
- package/scripts/seed-cli.mjs +660 -0
- package/scripts/sieve-audit.mjs +475 -0
- package/scripts/smoke-bundle.mjs +60 -0
- package/scripts/smoke-ssr.mjs +81 -0
- package/scripts/smoke-theme.mjs +105 -0
- package/scripts/verify-css-build.mjs +49 -0
- package/scripts/verify-entries.mjs +55 -0
- package/tsconfig.base.json +16 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod validators shared by the admin and store `/api/.../features` route handlers.
|
|
3
|
+
*
|
|
4
|
+
* Kept alongside the schema so the enum sources of truth (category/scope/
|
|
5
|
+
* productType) live in one place. Route handlers compose from these instead
|
|
6
|
+
* of hand-rolling parallel schemas.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
export declare const PRODUCT_FEATURE_PRODUCT_TYPE_ENUM: z.ZodEnum<["product", "auction", "preorder", "all"]>;
|
|
10
|
+
export declare const PRODUCT_FEATURE_CATEGORY_ENUM: z.ZodEnum<["shipping", "seller", "condition", "platform", "auction", "preorder", "custom"]>;
|
|
11
|
+
export declare const PRODUCT_FEATURE_SCOPE_ENUM: z.ZodEnum<["platform", "store"]>;
|
|
12
|
+
/** Shape for POST /api/admin/features — admin creates either scope. */
|
|
13
|
+
export declare const productFeatureAdminCreateSchema: z.ZodObject<{
|
|
14
|
+
label: z.ZodString;
|
|
15
|
+
description: z.ZodOptional<z.ZodString>;
|
|
16
|
+
icon: z.ZodString;
|
|
17
|
+
iconColor: z.ZodOptional<z.ZodString>;
|
|
18
|
+
category: z.ZodEnum<["shipping", "seller", "condition", "platform", "auction", "preorder", "custom"]>;
|
|
19
|
+
scope: z.ZodEnum<["platform", "store"]>;
|
|
20
|
+
productTypes: z.ZodArray<z.ZodEnum<["product", "auction", "preorder", "all"]>, "many">;
|
|
21
|
+
storeId: z.ZodOptional<z.ZodString>;
|
|
22
|
+
isActive: z.ZodBoolean;
|
|
23
|
+
displayOrder: z.ZodNumber;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
label: string;
|
|
26
|
+
scope: "store" | "platform";
|
|
27
|
+
icon: string;
|
|
28
|
+
isActive: boolean;
|
|
29
|
+
category: "seller" | "auction" | "preorder" | "shipping" | "custom" | "condition" | "platform";
|
|
30
|
+
displayOrder: number;
|
|
31
|
+
productTypes: ("all" | "product" | "auction" | "preorder")[];
|
|
32
|
+
storeId?: string | undefined;
|
|
33
|
+
description?: string | undefined;
|
|
34
|
+
iconColor?: string | undefined;
|
|
35
|
+
}, {
|
|
36
|
+
label: string;
|
|
37
|
+
scope: "store" | "platform";
|
|
38
|
+
icon: string;
|
|
39
|
+
isActive: boolean;
|
|
40
|
+
category: "seller" | "auction" | "preorder" | "shipping" | "custom" | "condition" | "platform";
|
|
41
|
+
displayOrder: number;
|
|
42
|
+
productTypes: ("all" | "product" | "auction" | "preorder")[];
|
|
43
|
+
storeId?: string | undefined;
|
|
44
|
+
description?: string | undefined;
|
|
45
|
+
iconColor?: string | undefined;
|
|
46
|
+
}>;
|
|
47
|
+
/** Shape for POST /api/store/features — store-scope only, storeId set server-side. */
|
|
48
|
+
export declare const productFeatureStoreCreateSchema: z.ZodObject<{
|
|
49
|
+
label: z.ZodString;
|
|
50
|
+
description: z.ZodOptional<z.ZodString>;
|
|
51
|
+
icon: z.ZodString;
|
|
52
|
+
iconColor: z.ZodOptional<z.ZodString>;
|
|
53
|
+
category: z.ZodEnum<["shipping", "seller", "condition", "platform", "auction", "preorder", "custom"]>;
|
|
54
|
+
productTypes: z.ZodArray<z.ZodEnum<["product", "auction", "preorder", "all"]>, "many">;
|
|
55
|
+
isActive: z.ZodBoolean;
|
|
56
|
+
displayOrder: z.ZodNumber;
|
|
57
|
+
}, "strip", z.ZodTypeAny, {
|
|
58
|
+
label: string;
|
|
59
|
+
icon: string;
|
|
60
|
+
isActive: boolean;
|
|
61
|
+
category: "seller" | "auction" | "preorder" | "shipping" | "custom" | "condition" | "platform";
|
|
62
|
+
displayOrder: number;
|
|
63
|
+
productTypes: ("all" | "product" | "auction" | "preorder")[];
|
|
64
|
+
description?: string | undefined;
|
|
65
|
+
iconColor?: string | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
label: string;
|
|
68
|
+
icon: string;
|
|
69
|
+
isActive: boolean;
|
|
70
|
+
category: "seller" | "auction" | "preorder" | "shipping" | "custom" | "condition" | "platform";
|
|
71
|
+
displayOrder: number;
|
|
72
|
+
productTypes: ("all" | "product" | "auction" | "preorder")[];
|
|
73
|
+
description?: string | undefined;
|
|
74
|
+
iconColor?: string | undefined;
|
|
75
|
+
}>;
|
|
76
|
+
/** Shape for PUT /api/admin/features/[id] and /api/store/features/[id]. */
|
|
77
|
+
export declare const productFeatureUpdateSchema: z.ZodObject<{
|
|
78
|
+
label: z.ZodOptional<z.ZodString>;
|
|
79
|
+
description: z.ZodOptional<z.ZodString>;
|
|
80
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
81
|
+
iconColor: z.ZodOptional<z.ZodString>;
|
|
82
|
+
category: z.ZodOptional<z.ZodEnum<["shipping", "seller", "condition", "platform", "auction", "preorder", "custom"]>>;
|
|
83
|
+
productTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["product", "auction", "preorder", "all"]>, "many">>;
|
|
84
|
+
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
85
|
+
displayOrder: z.ZodOptional<z.ZodNumber>;
|
|
86
|
+
}, "strip", z.ZodTypeAny, {
|
|
87
|
+
label?: string | undefined;
|
|
88
|
+
icon?: string | undefined;
|
|
89
|
+
isActive?: boolean | undefined;
|
|
90
|
+
category?: "seller" | "auction" | "preorder" | "shipping" | "custom" | "condition" | "platform" | undefined;
|
|
91
|
+
description?: string | undefined;
|
|
92
|
+
iconColor?: string | undefined;
|
|
93
|
+
displayOrder?: number | undefined;
|
|
94
|
+
productTypes?: ("all" | "product" | "auction" | "preorder")[] | undefined;
|
|
95
|
+
}, {
|
|
96
|
+
label?: string | undefined;
|
|
97
|
+
icon?: string | undefined;
|
|
98
|
+
isActive?: boolean | undefined;
|
|
99
|
+
category?: "seller" | "auction" | "preorder" | "shipping" | "custom" | "condition" | "platform" | undefined;
|
|
100
|
+
description?: string | undefined;
|
|
101
|
+
iconColor?: string | undefined;
|
|
102
|
+
displayOrder?: number | undefined;
|
|
103
|
+
productTypes?: ("all" | "product" | "auction" | "preorder")[] | undefined;
|
|
104
|
+
}>;
|
|
105
|
+
export type ProductFeatureAdminCreatePayload = z.infer<typeof productFeatureAdminCreateSchema>;
|
|
106
|
+
export type ProductFeatureStoreCreatePayload = z.infer<typeof productFeatureStoreCreateSchema>;
|
|
107
|
+
export type ProductFeatureUpdatePayload = z.infer<typeof productFeatureUpdateSchema>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod validators shared by the admin and store `/api/.../features` route handlers.
|
|
3
|
+
*
|
|
4
|
+
* Kept alongside the schema so the enum sources of truth (category/scope/
|
|
5
|
+
* productType) live in one place. Route handlers compose from these instead
|
|
6
|
+
* of hand-rolling parallel schemas.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
export const PRODUCT_FEATURE_PRODUCT_TYPE_ENUM = z.enum([
|
|
10
|
+
"product",
|
|
11
|
+
"auction",
|
|
12
|
+
"preorder",
|
|
13
|
+
"all",
|
|
14
|
+
]);
|
|
15
|
+
export const PRODUCT_FEATURE_CATEGORY_ENUM = z.enum([
|
|
16
|
+
"shipping",
|
|
17
|
+
"seller",
|
|
18
|
+
"condition",
|
|
19
|
+
"platform",
|
|
20
|
+
"auction",
|
|
21
|
+
"preorder",
|
|
22
|
+
"custom",
|
|
23
|
+
]);
|
|
24
|
+
export const PRODUCT_FEATURE_SCOPE_ENUM = z.enum(["platform", "store"]);
|
|
25
|
+
const FEATURE_LABEL_MAX = 80;
|
|
26
|
+
const FEATURE_DESCRIPTION_MAX = 500;
|
|
27
|
+
const FEATURE_ICON_MAX = 2000;
|
|
28
|
+
const FEATURE_ICON_COLOR_MAX = 80;
|
|
29
|
+
const FEATURE_DISPLAY_ORDER_MAX = 10000;
|
|
30
|
+
/** Shape for POST /api/admin/features — admin creates either scope. */
|
|
31
|
+
export const productFeatureAdminCreateSchema = z.object({
|
|
32
|
+
label: z.string().min(1).max(FEATURE_LABEL_MAX),
|
|
33
|
+
description: z.string().max(FEATURE_DESCRIPTION_MAX).optional(),
|
|
34
|
+
icon: z.string().min(1).max(FEATURE_ICON_MAX),
|
|
35
|
+
iconColor: z.string().max(FEATURE_ICON_COLOR_MAX).optional(),
|
|
36
|
+
category: PRODUCT_FEATURE_CATEGORY_ENUM,
|
|
37
|
+
scope: PRODUCT_FEATURE_SCOPE_ENUM,
|
|
38
|
+
productTypes: z.array(PRODUCT_FEATURE_PRODUCT_TYPE_ENUM).min(1),
|
|
39
|
+
storeId: z.string().optional(),
|
|
40
|
+
isActive: z.boolean(),
|
|
41
|
+
displayOrder: z.number().int().min(0).max(FEATURE_DISPLAY_ORDER_MAX),
|
|
42
|
+
});
|
|
43
|
+
/** Shape for POST /api/store/features — store-scope only, storeId set server-side. */
|
|
44
|
+
export const productFeatureStoreCreateSchema = z.object({
|
|
45
|
+
label: z.string().min(1).max(FEATURE_LABEL_MAX),
|
|
46
|
+
description: z.string().max(FEATURE_DESCRIPTION_MAX).optional(),
|
|
47
|
+
icon: z.string().min(1).max(FEATURE_ICON_MAX),
|
|
48
|
+
iconColor: z.string().max(FEATURE_ICON_COLOR_MAX).optional(),
|
|
49
|
+
category: PRODUCT_FEATURE_CATEGORY_ENUM,
|
|
50
|
+
productTypes: z.array(PRODUCT_FEATURE_PRODUCT_TYPE_ENUM).min(1),
|
|
51
|
+
isActive: z.boolean(),
|
|
52
|
+
displayOrder: z.number().int().min(0).max(FEATURE_DISPLAY_ORDER_MAX),
|
|
53
|
+
});
|
|
54
|
+
/** Shape for PUT /api/admin/features/[id] and /api/store/features/[id]. */
|
|
55
|
+
export const productFeatureUpdateSchema = z.object({
|
|
56
|
+
label: z.string().min(1).max(FEATURE_LABEL_MAX).optional(),
|
|
57
|
+
description: z.string().max(FEATURE_DESCRIPTION_MAX).optional(),
|
|
58
|
+
icon: z.string().min(1).max(FEATURE_ICON_MAX).optional(),
|
|
59
|
+
iconColor: z.string().max(FEATURE_ICON_COLOR_MAX).optional(),
|
|
60
|
+
category: PRODUCT_FEATURE_CATEGORY_ENUM.optional(),
|
|
61
|
+
productTypes: z.array(PRODUCT_FEATURE_PRODUCT_TYPE_ENUM).min(1).optional(),
|
|
62
|
+
isActive: z.boolean().optional(),
|
|
63
|
+
displayOrder: z.number().int().min(0).max(FEATURE_DISPLAY_ORDER_MAX).optional(),
|
|
64
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProductTemplate — Firestore document schema for seller product templates.
|
|
3
|
+
* Templates let sellers pre-fill common fields when creating new listings.
|
|
4
|
+
*/
|
|
5
|
+
export declare const PRODUCT_TEMPLATE_COLLECTION = "product_templates";
|
|
6
|
+
export declare const PRODUCT_TEMPLATE_PREFIX = "template-";
|
|
7
|
+
export interface ProductTemplateDocument {
|
|
8
|
+
id: string;
|
|
9
|
+
/** Owning store (storeSlug = storeId) */
|
|
10
|
+
storeId: string;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
category?: string;
|
|
14
|
+
brand?: string;
|
|
15
|
+
condition?: string;
|
|
16
|
+
tags?: string[];
|
|
17
|
+
/** Price hint in paise (INR × 100) */
|
|
18
|
+
price?: number;
|
|
19
|
+
currency?: string;
|
|
20
|
+
shippingPaidBy?: "buyer" | "seller";
|
|
21
|
+
pickupAddressId?: string;
|
|
22
|
+
createdAt: Date | string;
|
|
23
|
+
updatedAt: Date | string;
|
|
24
|
+
}
|
|
25
|
+
export interface ProductTemplateCreateInput extends Omit<ProductTemplateDocument, "id" | "createdAt" | "updatedAt"> {
|
|
26
|
+
}
|
|
27
|
+
export interface ProductTemplateUpdateInput extends Partial<Omit<ProductTemplateDocument, "id" | "storeId" | "createdAt">> {
|
|
28
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProductTemplate — Firestore document schema for seller product templates.
|
|
3
|
+
* Templates let sellers pre-fill common fields when creating new listings.
|
|
4
|
+
*/
|
|
5
|
+
export const PRODUCT_TEMPLATE_COLLECTION = "product_templates";
|
|
6
|
+
export const PRODUCT_TEMPLATE_PREFIX = "template-";
|
|
@@ -3,7 +3,14 @@ import type { CustomField, CustomSection } from "../schemas/firestore";
|
|
|
3
3
|
export type { CustomField, CustomSection } from "../schemas/firestore";
|
|
4
4
|
export type ProductStatus = "draft" | "published" | "archived" | "sold" | "out_of_stock" | "discontinued";
|
|
5
5
|
export type ProductCondition = "new" | "like_new" | "good" | "fair" | "poor" | "used" | "refurbished" | "broken";
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Canonical listing-kind discriminator (SB1-G Phase 4).
|
|
8
|
+
*
|
|
9
|
+
* Set on every `ProductDocument` / `ProductItem` at creation. The Sieve adapter
|
|
10
|
+
* accepts legacy alias tokens (`preorder` → `pre-order`, `product` → `standard`)
|
|
11
|
+
* but stored values are always one of these five.
|
|
12
|
+
*/
|
|
13
|
+
export type ListingType = "standard" | "auction" | "pre-order" | "prize-draw" | "bundle";
|
|
7
14
|
export interface ProductImage {
|
|
8
15
|
url: string;
|
|
9
16
|
thumbnailUrl?: string;
|
|
@@ -40,9 +47,8 @@ export interface ProductItem {
|
|
|
40
47
|
sellerAvatar?: string;
|
|
41
48
|
status: ProductStatus;
|
|
42
49
|
condition?: ProductCondition;
|
|
50
|
+
/** Canonical listing-kind discriminator (SB1-G Phase 4 — booleans removed). */
|
|
43
51
|
listingType?: ListingType;
|
|
44
|
-
isAuction?: boolean;
|
|
45
|
-
isPreOrder?: boolean;
|
|
46
52
|
sublistingCategoryId?: string;
|
|
47
53
|
groupId?: string;
|
|
48
54
|
isGroupParent?: boolean;
|
|
@@ -121,6 +127,8 @@ export interface ProductListResponse {
|
|
|
121
127
|
pageSize: number;
|
|
122
128
|
totalPages: number;
|
|
123
129
|
hasMore: boolean;
|
|
130
|
+
/** Set when the query fell back to an empty result due to a DB error (index missing, permission denied). */
|
|
131
|
+
warning?: string;
|
|
124
132
|
}
|
|
125
133
|
export interface ProductListParams {
|
|
126
134
|
q?: string;
|
|
@@ -131,8 +139,8 @@ export interface ProductListParams {
|
|
|
131
139
|
minPrice?: number;
|
|
132
140
|
maxPrice?: number;
|
|
133
141
|
inStock?: boolean;
|
|
134
|
-
|
|
135
|
-
|
|
142
|
+
/** Canonical listing-kind discriminator (SB1-G Phase 4). */
|
|
143
|
+
listingType?: ListingType;
|
|
136
144
|
storeId?: string;
|
|
137
145
|
sort?: string;
|
|
138
146
|
page?: number;
|
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
import type { ListingType
|
|
2
|
-
|
|
1
|
+
import type { ListingType } from "../types/index";
|
|
2
|
+
/**
|
|
3
|
+
* Canonical accessor for the listing-kind discriminator. SB1-G Phase 4
|
|
4
|
+
* (S22 2026-05-12) made `listingType` the single source of truth on every
|
|
5
|
+
* `ProductDocument` / `ProductItem` — the legacy `isAuction` / `isPreOrder`
|
|
6
|
+
* booleans were removed in the same session.
|
|
7
|
+
*
|
|
8
|
+
* Returns `"standard"` when the input is undefined or missing the field, so
|
|
9
|
+
* legacy payloads still classify safely without a separate guard.
|
|
10
|
+
*/
|
|
11
|
+
export declare function normalizeListingType(input?: {
|
|
12
|
+
listingType?: ListingType;
|
|
13
|
+
}): ListingType;
|
|
14
|
+
/** Convenience predicates that read the canonical `listingType` discriminator. */
|
|
15
|
+
export declare const isAuctionListing: (input?: {
|
|
16
|
+
listingType?: ListingType;
|
|
17
|
+
}) => boolean;
|
|
18
|
+
export declare const isPreOrderListing: (input?: {
|
|
19
|
+
listingType?: ListingType;
|
|
20
|
+
}) => boolean;
|
|
21
|
+
export declare const isStandardListing: (input?: {
|
|
22
|
+
listingType?: ListingType;
|
|
23
|
+
}) => boolean;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical accessor for the listing-kind discriminator. SB1-G Phase 4
|
|
3
|
+
* (S22 2026-05-12) made `listingType` the single source of truth on every
|
|
4
|
+
* `ProductDocument` / `ProductItem` — the legacy `isAuction` / `isPreOrder`
|
|
5
|
+
* booleans were removed in the same session.
|
|
6
|
+
*
|
|
7
|
+
* Returns `"standard"` when the input is undefined or missing the field, so
|
|
8
|
+
* legacy payloads still classify safely without a separate guard.
|
|
9
|
+
*/
|
|
1
10
|
export function normalizeListingType(input) {
|
|
2
|
-
|
|
3
|
-
return input.listingType;
|
|
4
|
-
if (input?.isAuction)
|
|
5
|
-
return "auction";
|
|
6
|
-
if (input?.isPreOrder)
|
|
7
|
-
return "pre-order";
|
|
8
|
-
return "standard";
|
|
11
|
+
return input?.listingType ?? "standard";
|
|
9
12
|
}
|
|
13
|
+
/** Convenience predicates that read the canonical `listingType` discriminator. */
|
|
14
|
+
export const isAuctionListing = (input) => normalizeListingType(input) === "auction";
|
|
15
|
+
export const isPreOrderListing = (input) => normalizeListingType(input) === "pre-order";
|
|
16
|
+
export const isStandardListing = (input) => normalizeListingType(input) === "standard";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip seller-identity fields from a product record before returning it from a
|
|
3
|
+
* public API endpoint. Public clients must only see store-scoped identity
|
|
4
|
+
* (`storeId`, `storeName`, `storeSlug`) — never `sellerId` (Firebase UID) or
|
|
5
|
+
* the seller's personal name/email.
|
|
6
|
+
*
|
|
7
|
+
* Use on every public GET response that returns products. Admin/seller-scoped
|
|
8
|
+
* routes must NOT sanitize — they legitimately surface owner identity.
|
|
9
|
+
*/
|
|
10
|
+
const SELLER_IDENTITY_FIELDS = [
|
|
11
|
+
"sellerId",
|
|
12
|
+
"sellerName",
|
|
13
|
+
"sellerEmail",
|
|
14
|
+
"ownerId",
|
|
15
|
+
];
|
|
16
|
+
export function sanitizeProductForPublic(item) {
|
|
17
|
+
const copy = { ...item };
|
|
18
|
+
for (const field of SELLER_IDENTITY_FIELDS) {
|
|
19
|
+
delete copy[field];
|
|
20
|
+
}
|
|
21
|
+
return copy;
|
|
22
|
+
}
|
|
23
|
+
export function sanitizeProductsForPublic(items) {
|
|
24
|
+
return items.map((item) => sanitizeProductForPublic(item));
|
|
25
|
+
}
|
|
@@ -21,8 +21,8 @@ export type CouponCartItem = {
|
|
|
21
21
|
storeId: string;
|
|
22
22
|
price: number;
|
|
23
23
|
quantity: number;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
/** Canonical listing-kind snapshot (SB1-G Phase 4). */
|
|
25
|
+
listingType: "standard" | "auction" | "pre-order" | "prize-draw" | "bundle";
|
|
26
26
|
};
|
|
27
27
|
export declare function validateCoupon(userId: string, code: string, orderTotal: number): Promise<CouponValidationResult>;
|
|
28
28
|
export declare function validateCouponForCart(userId: string, code: string, cartItems: CouponCartItem[]): Promise<CouponCartValidationResult>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export interface CouponsIndexListingProps {
|
|
2
2
|
/** Pre-fetched coupons to show on first render */
|
|
3
3
|
initialCoupons?: any[];
|
|
4
|
-
/** If set, only show coupons from this store */
|
|
4
|
+
/** If set, only show coupons from this store (slug, for display) */
|
|
5
5
|
storeSlug?: string;
|
|
6
|
-
/** If set, only show coupons from this
|
|
7
|
-
|
|
6
|
+
/** If set, only show coupons from this store (id, for filtering) */
|
|
7
|
+
storeId?: string;
|
|
8
8
|
}
|
|
9
|
-
export declare function CouponsIndexListing({ initialCoupons, storeSlug,
|
|
9
|
+
export declare function CouponsIndexListing({ initialCoupons, storeSlug, storeId, }: CouponsIndexListingProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -19,7 +19,7 @@ const COUPON_TYPES = [
|
|
|
19
19
|
{ value: "free_shipping", label: "Free Shipping" },
|
|
20
20
|
{ value: "buy_x_get_y", label: "Buy X Get Y" },
|
|
21
21
|
];
|
|
22
|
-
export function CouponsIndexListing({ initialCoupons, storeSlug,
|
|
22
|
+
export function CouponsIndexListing({ initialCoupons, storeSlug, storeId, }) {
|
|
23
23
|
const table = useUrlTable({ defaults: { pageSize: "12", sort: "-createdAt" } });
|
|
24
24
|
const [searchInput, setSearchInput] = useState(table.get("q") || "");
|
|
25
25
|
const [filterOpen, setFilterOpen] = useState(false);
|
|
@@ -35,8 +35,8 @@ export function CouponsIndexListing({ initialCoupons, storeSlug, sellerId, }) {
|
|
|
35
35
|
const dateTo = table.get("dateTo");
|
|
36
36
|
if (dateTo)
|
|
37
37
|
parts.push(`validity.endDate<=${dateTo}`);
|
|
38
|
-
if (
|
|
39
|
-
parts.push(`
|
|
38
|
+
if (storeId)
|
|
39
|
+
parts.push(`storeId==${storeId}`);
|
|
40
40
|
return parts.join(",");
|
|
41
41
|
};
|
|
42
42
|
const { promotions: coupons, total, totalPages, isLoading } = usePromotions({
|
|
@@ -6,8 +6,8 @@ interface ValidateCouponPayload {
|
|
|
6
6
|
storeId?: string;
|
|
7
7
|
price: number;
|
|
8
8
|
quantity: number;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
/** Canonical listing-kind snapshot (SB1-G Phase 4). */
|
|
10
|
+
listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "bundle";
|
|
11
11
|
}>;
|
|
12
12
|
}
|
|
13
13
|
interface ValidateCouponResult {
|
|
@@ -139,8 +139,8 @@ export declare class CouponsRepository extends BaseRepository<CouponDocument> {
|
|
|
139
139
|
storeId: string;
|
|
140
140
|
price: number;
|
|
141
141
|
quantity: number;
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
/** Canonical listing-kind snapshot (SB1-G Phase 4). */
|
|
143
|
+
listingType: "standard" | "auction" | "pre-order" | "prize-draw" | "bundle";
|
|
144
144
|
}>): Promise<{
|
|
145
145
|
valid: boolean;
|
|
146
146
|
coupon?: CouponDocument;
|
|
@@ -373,14 +373,14 @@ export class CouponsRepository extends BaseRepository {
|
|
|
373
373
|
eligible = eligible.filter((item) => item.storeId === coupon.storeId);
|
|
374
374
|
}
|
|
375
375
|
// Apply product-type filter based on the coupon's own flag:
|
|
376
|
-
// true
|
|
377
|
-
// false
|
|
378
|
-
// undefined
|
|
376
|
+
// true → auction-only coupon
|
|
377
|
+
// false → explicitly excludes auctions (still allows pre-orders + standard)
|
|
378
|
+
// undefined → no restriction; applies to every listing type
|
|
379
379
|
if (coupon.applicableToAuctions === true) {
|
|
380
|
-
eligible = eligible.filter((item) => item.
|
|
380
|
+
eligible = eligible.filter((item) => item.listingType === "auction");
|
|
381
381
|
}
|
|
382
382
|
else if (coupon.applicableToAuctions === false) {
|
|
383
|
-
eligible = eligible.filter((item) =>
|
|
383
|
+
eligible = eligible.filter((item) => item.listingType !== "auction");
|
|
384
384
|
}
|
|
385
385
|
// Apply product/category restrictions from the coupon itself
|
|
386
386
|
const { applicableProducts, applicableCategories, excludeProducts } = coupon.restrictions;
|
|
@@ -40,52 +40,52 @@ export declare const couponItemSchema: z.ZodObject<{
|
|
|
40
40
|
updatedAt: z.ZodString;
|
|
41
41
|
}, "strip", z.ZodTypeAny, {
|
|
42
42
|
id: string;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
updatedAt: string;
|
|
43
45
|
code: string;
|
|
46
|
+
type: "fixed" | "percentage" | "free_shipping" | "buy_x_get_y";
|
|
44
47
|
scope: "admin" | "seller";
|
|
45
48
|
name: string;
|
|
46
|
-
type: "fixed" | "percentage" | "free_shipping" | "buy_x_get_y";
|
|
47
|
-
createdAt: string;
|
|
48
|
-
updatedAt: string;
|
|
49
49
|
isActive: boolean;
|
|
50
50
|
description: string;
|
|
51
|
-
discountValue: number;
|
|
52
51
|
isPublic: boolean;
|
|
52
|
+
discountValue: number;
|
|
53
53
|
usageCount: number;
|
|
54
54
|
storeId?: string | undefined;
|
|
55
|
-
startsAt?: string | undefined;
|
|
56
|
-
perUserLimit?: number | undefined;
|
|
57
55
|
expiresAt?: string | undefined;
|
|
58
56
|
minOrderAmount?: number | undefined;
|
|
59
57
|
maxDiscountAmount?: number | undefined;
|
|
60
58
|
maxUsageCount?: number | undefined;
|
|
59
|
+
perUserLimit?: number | undefined;
|
|
61
60
|
buyQuantity?: number | undefined;
|
|
62
61
|
getQuantity?: number | undefined;
|
|
63
62
|
applicableProductIds?: string[] | undefined;
|
|
64
63
|
applicableCategoryIds?: string[] | undefined;
|
|
64
|
+
startsAt?: string | undefined;
|
|
65
65
|
}, {
|
|
66
66
|
id: string;
|
|
67
|
+
createdAt: string;
|
|
68
|
+
updatedAt: string;
|
|
67
69
|
code: string;
|
|
70
|
+
type: "fixed" | "percentage" | "free_shipping" | "buy_x_get_y";
|
|
68
71
|
scope: "admin" | "seller";
|
|
69
72
|
name: string;
|
|
70
|
-
type: "fixed" | "percentage" | "free_shipping" | "buy_x_get_y";
|
|
71
|
-
createdAt: string;
|
|
72
|
-
updatedAt: string;
|
|
73
73
|
isActive: boolean;
|
|
74
74
|
description: string;
|
|
75
|
-
discountValue: number;
|
|
76
75
|
isPublic: boolean;
|
|
76
|
+
discountValue: number;
|
|
77
77
|
usageCount: number;
|
|
78
78
|
storeId?: string | undefined;
|
|
79
|
-
startsAt?: string | undefined;
|
|
80
|
-
perUserLimit?: number | undefined;
|
|
81
79
|
expiresAt?: string | undefined;
|
|
82
80
|
minOrderAmount?: number | undefined;
|
|
83
81
|
maxDiscountAmount?: number | undefined;
|
|
84
82
|
maxUsageCount?: number | undefined;
|
|
83
|
+
perUserLimit?: number | undefined;
|
|
85
84
|
buyQuantity?: number | undefined;
|
|
86
85
|
getQuantity?: number | undefined;
|
|
87
86
|
applicableProductIds?: string[] | undefined;
|
|
88
87
|
applicableCategoryIds?: string[] | undefined;
|
|
88
|
+
startsAt?: string | undefined;
|
|
89
89
|
}>;
|
|
90
90
|
export declare const promotionsListParamsSchema: z.ZodObject<{
|
|
91
91
|
scope: z.ZodOptional<z.ZodEnum<["admin", "seller"]>>;
|
|
@@ -97,18 +97,18 @@ export declare const promotionsListParamsSchema: z.ZodObject<{
|
|
|
97
97
|
sort: z.ZodOptional<z.ZodString>;
|
|
98
98
|
}, "strip", z.ZodTypeAny, {
|
|
99
99
|
sort?: string | undefined;
|
|
100
|
+
pageSize?: number | undefined;
|
|
101
|
+
storeId?: string | undefined;
|
|
100
102
|
scope?: "admin" | "seller" | undefined;
|
|
101
|
-
isActive?: boolean | undefined;
|
|
102
103
|
page?: number | undefined;
|
|
103
|
-
|
|
104
|
+
isActive?: boolean | undefined;
|
|
104
105
|
filters?: string | undefined;
|
|
105
|
-
storeId?: string | undefined;
|
|
106
106
|
}, {
|
|
107
107
|
sort?: string | undefined;
|
|
108
|
+
pageSize?: number | undefined;
|
|
109
|
+
storeId?: string | undefined;
|
|
108
110
|
scope?: "admin" | "seller" | undefined;
|
|
109
|
-
isActive?: boolean | undefined;
|
|
110
111
|
page?: number | undefined;
|
|
111
|
-
|
|
112
|
+
isActive?: boolean | undefined;
|
|
112
113
|
filters?: string | undefined;
|
|
113
|
-
storeId?: string | undefined;
|
|
114
114
|
}>;
|
|
@@ -95,9 +95,11 @@ export declare const reviewSchema: z.ZodObject<{
|
|
|
95
95
|
id: string;
|
|
96
96
|
status: "pending" | "approved" | "rejected";
|
|
97
97
|
productId: string;
|
|
98
|
-
rating:
|
|
98
|
+
rating: 3 | 1 | 2 | 4 | 5;
|
|
99
99
|
userId: string;
|
|
100
100
|
userName: string;
|
|
101
|
+
createdAt?: string | undefined;
|
|
102
|
+
updatedAt?: string | undefined;
|
|
101
103
|
title?: string | undefined;
|
|
102
104
|
video?: {
|
|
103
105
|
url: string;
|
|
@@ -106,28 +108,28 @@ export declare const reviewSchema: z.ZodObject<{
|
|
|
106
108
|
thumbnailUrl?: string | undefined;
|
|
107
109
|
duration?: number | undefined;
|
|
108
110
|
} | undefined;
|
|
109
|
-
createdAt?: string | undefined;
|
|
110
|
-
updatedAt?: string | undefined;
|
|
111
111
|
productTitle?: string | undefined;
|
|
112
112
|
images?: {
|
|
113
113
|
url: string;
|
|
114
114
|
thumbnailUrl?: string | undefined;
|
|
115
115
|
}[] | undefined;
|
|
116
|
-
comment?: string | undefined;
|
|
117
116
|
featured?: boolean | undefined;
|
|
118
117
|
storeName?: string | undefined;
|
|
119
118
|
storeSlug?: string | undefined;
|
|
120
|
-
userAvatar?: string | undefined;
|
|
121
119
|
verified?: boolean | undefined;
|
|
120
|
+
userAvatar?: string | undefined;
|
|
121
|
+
comment?: string | undefined;
|
|
122
122
|
helpfulCount?: number | undefined;
|
|
123
123
|
reportCount?: number | undefined;
|
|
124
124
|
}, {
|
|
125
125
|
id: string;
|
|
126
126
|
status: "pending" | "approved" | "rejected";
|
|
127
127
|
productId: string;
|
|
128
|
-
rating:
|
|
128
|
+
rating: 3 | 1 | 2 | 4 | 5;
|
|
129
129
|
userId: string;
|
|
130
130
|
userName: string;
|
|
131
|
+
createdAt?: string | undefined;
|
|
132
|
+
updatedAt?: string | undefined;
|
|
131
133
|
title?: string | undefined;
|
|
132
134
|
video?: {
|
|
133
135
|
url: string;
|
|
@@ -136,19 +138,17 @@ export declare const reviewSchema: z.ZodObject<{
|
|
|
136
138
|
thumbnailUrl?: string | undefined;
|
|
137
139
|
duration?: number | undefined;
|
|
138
140
|
} | undefined;
|
|
139
|
-
createdAt?: string | undefined;
|
|
140
|
-
updatedAt?: string | undefined;
|
|
141
141
|
productTitle?: string | undefined;
|
|
142
142
|
images?: {
|
|
143
143
|
url: string;
|
|
144
144
|
thumbnailUrl?: string | undefined;
|
|
145
145
|
}[] | undefined;
|
|
146
|
-
comment?: string | undefined;
|
|
147
146
|
featured?: boolean | undefined;
|
|
148
147
|
storeName?: string | undefined;
|
|
149
148
|
storeSlug?: string | undefined;
|
|
150
|
-
userAvatar?: string | undefined;
|
|
151
149
|
verified?: boolean | undefined;
|
|
150
|
+
userAvatar?: string | undefined;
|
|
151
|
+
comment?: string | undefined;
|
|
152
152
|
helpfulCount?: number | undefined;
|
|
153
153
|
reportCount?: number | undefined;
|
|
154
154
|
}>;
|
|
@@ -165,21 +165,21 @@ export declare const reviewListParamsSchema: z.ZodObject<{
|
|
|
165
165
|
sort: z.ZodOptional<z.ZodString>;
|
|
166
166
|
}, "strip", z.ZodTypeAny, {
|
|
167
167
|
sort?: string | undefined;
|
|
168
|
-
status?: "pending" | "approved" | "rejected" | undefined;
|
|
169
|
-
productId?: string | undefined;
|
|
170
|
-
page?: number | undefined;
|
|
171
168
|
perPage?: number | undefined;
|
|
172
169
|
storeId?: string | undefined;
|
|
170
|
+
status?: "pending" | "approved" | "rejected" | undefined;
|
|
171
|
+
page?: number | undefined;
|
|
172
|
+
productId?: string | undefined;
|
|
173
173
|
rating?: number | undefined;
|
|
174
174
|
userId?: string | undefined;
|
|
175
175
|
featured?: boolean | undefined;
|
|
176
176
|
}, {
|
|
177
177
|
sort?: string | undefined;
|
|
178
|
-
status?: "pending" | "approved" | "rejected" | undefined;
|
|
179
|
-
productId?: string | undefined;
|
|
180
|
-
page?: number | undefined;
|
|
181
178
|
perPage?: number | undefined;
|
|
182
179
|
storeId?: string | undefined;
|
|
180
|
+
status?: "pending" | "approved" | "rejected" | undefined;
|
|
181
|
+
page?: number | undefined;
|
|
182
|
+
productId?: string | undefined;
|
|
183
183
|
rating?: number | undefined;
|
|
184
184
|
userId?: string | undefined;
|
|
185
185
|
featured?: boolean | undefined;
|
|
@@ -11,7 +11,7 @@ import { serverLogger } from "../../../monitoring";
|
|
|
11
11
|
* All filtering criteria are optional — omitting them returns all published products.
|
|
12
12
|
*/
|
|
13
13
|
export async function searchProducts(query = {}) {
|
|
14
|
-
const { q = "", category, subcategory, minPrice = 0, maxPrice = 0, condition,
|
|
14
|
+
const { q = "", category, subcategory, minPrice = 0, maxPrice = 0, condition, listingType, sort = "-createdAt", page = 1, pageSize = 20, } = query;
|
|
15
15
|
const filterParts = ["status==published"];
|
|
16
16
|
if (category)
|
|
17
17
|
filterParts.push(`category==${category}`);
|
|
@@ -23,10 +23,9 @@ export async function searchProducts(query = {}) {
|
|
|
23
23
|
filterParts.push(`price<=${maxPrice}`);
|
|
24
24
|
if (condition)
|
|
25
25
|
filterParts.push(`condition==${condition}`);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
filterParts.push("isPreOrder==true");
|
|
26
|
+
// SB1-G Phase 4 — canonical listingType discriminator.
|
|
27
|
+
if (listingType)
|
|
28
|
+
filterParts.push(`listingType==${listingType}`);
|
|
30
29
|
if (q.trim())
|
|
31
30
|
filterParts.push(`title_=${q.trim()}`);
|
|
32
31
|
const sieveResult = await productRepository.list({
|