@mohasinac/appkit 4.13.1 → 4.15.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/layout/DashboardLayoutClient.js +14 -5
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +3 -0
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +6 -0
- package/dist/_internal/client/features/lottery/LotteryDetailView.d.ts +8 -0
- package/dist/_internal/client/features/lottery/LotteryDetailView.js +4 -1
- package/dist/_internal/client/features/lottery/LotteryListView.d.ts +7 -0
- package/dist/_internal/client/features/lottery/LotteryListView.js +1 -1
- package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +4 -1
- package/dist/_internal/client/features/lottery/slot-collage-items.d.ts +15 -0
- package/dist/_internal/client/features/lottery/slot-collage-items.js +13 -0
- package/dist/_internal/server/features/auctions/actions.js +8 -2
- package/dist/_internal/server/features/bundles/data.d.ts +16 -0
- package/dist/_internal/server/features/bundles/data.js +26 -0
- package/dist/_internal/server/features/bundles/index.d.ts +1 -1
- package/dist/_internal/server/features/bundles/index.js +1 -1
- package/dist/_internal/server/features/cart/service.d.ts +3 -3
- package/dist/_internal/server/features/checkout/actions.js +25 -0
- package/dist/_internal/server/features/checkout/locked-lines.d.ts +38 -0
- package/dist/_internal/server/features/checkout/locked-lines.js +171 -0
- package/dist/_internal/server/features/checkout/source-context.d.ts +5 -0
- package/dist/_internal/server/features/checkout/source-context.js +157 -0
- package/dist/_internal/server/features/homepage/index.d.ts +0 -1
- package/dist/_internal/server/features/homepage/index.js +7 -1
- package/dist/_internal/server/features/lottery/adapters.js +4 -0
- package/dist/_internal/server/features/offers/adapters.d.ts +103 -0
- package/dist/_internal/server/features/offers/adapters.js +88 -0
- package/dist/_internal/server/features/offers/index.d.ts +2 -0
- package/dist/_internal/server/features/offers/index.js +1 -0
- package/dist/_internal/server/features/orders/adapters.js +24 -0
- package/dist/_internal/server/features/products/data.js +15 -37
- package/dist/_internal/server/features/products/index.d.ts +1 -1
- package/dist/_internal/server/features/products/index.js +1 -1
- package/dist/_internal/server/features/products/list-public.d.ts +46 -20
- package/dist/_internal/server/features/products/list-public.js +266 -90
- package/dist/_internal/server/features/products/listing-tab-counts.d.ts +44 -0
- package/dist/_internal/server/features/products/listing-tab-counts.js +97 -0
- package/dist/_internal/server/features/site-settings/adapters.d.ts +51 -0
- package/dist/_internal/server/features/site-settings/adapters.js +75 -0
- package/dist/_internal/server/features/site-settings/index.d.ts +1 -0
- package/dist/_internal/server/features/site-settings/index.js +1 -0
- package/dist/_internal/server/features/stores/adapters.d.ts +56 -0
- package/dist/_internal/server/features/stores/adapters.js +91 -0
- package/dist/_internal/server/features/stores/index.d.ts +1 -0
- package/dist/_internal/server/features/stores/index.js +1 -0
- package/dist/_internal/server/jobs/core/auctionSettlement.js +56 -2
- package/dist/_internal/server/jobs/core/offerExpiry.js +55 -19
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +5 -0
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +33 -1
- package/dist/_internal/server/jobs/handlers/messages.d.ts +7 -0
- package/dist/_internal/server/jobs/handlers/messages.js +10 -0
- package/dist/_internal/shared/actions/action-registry.js +17 -1
- package/dist/_internal/shared/checkout/lanes.d.ts +25 -0
- package/dist/_internal/shared/checkout/lanes.js +26 -0
- package/dist/_internal/shared/features/auctions/config.d.ts +27 -0
- package/dist/_internal/shared/features/auctions/config.js +27 -0
- package/dist/_internal/shared/features/auctions/schema.d.ts +14 -2
- package/dist/_internal/shared/features/auctions/schema.js +13 -1
- package/dist/_internal/shared/features/blog/schema.d.ts +2 -2
- package/dist/_internal/shared/features/cart/schema.d.ts +20 -15
- package/dist/_internal/shared/features/cart/schema.js +15 -0
- package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +32 -32
- package/dist/_internal/shared/features/emi/schedule.d.ts +24 -3
- package/dist/_internal/shared/features/emi/schedule.js +20 -5
- package/dist/_internal/shared/features/events/schema.d.ts +2 -2
- package/dist/_internal/shared/features/homepage/section-gate.d.ts +14 -0
- package/dist/_internal/shared/features/homepage/section-gate.js +51 -0
- package/dist/_internal/shared/features/offers/config.d.ts +30 -0
- package/dist/_internal/shared/features/offers/config.js +59 -0
- package/dist/_internal/shared/features/orders/schema.d.ts +8 -8
- package/dist/_internal/shared/features/products/schema.d.ts +30 -30
- package/dist/_internal/shared/features/products/to-product-item.js +6 -0
- package/dist/_internal/shared/features/reviews/schema.d.ts +2 -2
- package/dist/_internal/shared/features/site-settings/fees.d.ts +60 -0
- package/dist/_internal/shared/features/site-settings/fees.js +39 -0
- package/dist/_internal/shared/features/site-settings/types.d.ts +40 -0
- package/dist/_internal/shared/features/site-settings/types.js +1 -0
- package/dist/_internal/shared/history/history.d.ts +88 -0
- package/dist/_internal/shared/history/history.js +198 -0
- package/dist/_internal/shared/history/index.d.ts +4 -0
- package/dist/_internal/shared/history/index.js +2 -0
- package/dist/_internal/shared/history/types.d.ts +61 -0
- package/dist/_internal/shared/history/types.js +6 -0
- package/dist/_internal/shared/listing-types/_registry.d.ts +54 -1
- package/dist/_internal/shared/listing-types/_registry.js +67 -0
- package/dist/_internal/shared/listing-types/art/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/art/config.js +5 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +13 -0
- package/dist/_internal/shared/listing-types/auction/config.js +21 -0
- package/dist/_internal/shared/listing-types/availability.d.ts +79 -0
- package/dist/_internal/shared/listing-types/availability.js +104 -0
- package/dist/_internal/shared/listing-types/capabilities.d.ts +15 -0
- package/dist/_internal/shared/listing-types/capabilities.js +12 -0
- package/dist/_internal/shared/listing-types/classified/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/classified/config.js +5 -0
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +11 -0
- package/dist/_internal/shared/listing-types/digital-code/config.js +22 -2
- package/dist/_internal/shared/listing-types/live/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/live/config.js +5 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +19 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +11 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +15 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/standard/config.js +5 -0
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/stickers/config.js +5 -0
- package/dist/client.d.ts +20 -7
- package/dist/client.js +22 -4
- package/dist/constants/api-endpoints.d.ts +6 -0
- package/dist/constants/api-endpoints.js +2 -0
- package/dist/constants/field-names.d.ts +57 -8
- package/dist/constants/field-names.js +101 -8
- package/dist/constants/table-keys.d.ts +17 -0
- package/dist/constants/table-keys.js +17 -0
- package/dist/errors/error-codes.d.ts +13 -1
- package/dist/errors/error-codes.js +13 -1
- package/dist/errors/error-display-map.js +12 -3
- package/dist/errors/messages.d.ts +10 -2
- package/dist/errors/messages.js +10 -2
- package/dist/features/about/components/AboutView.d.ts +3 -0
- package/dist/features/about/components/AboutView.js +3 -2
- package/dist/features/about/components/PolicyPageView.d.ts +2 -1
- package/dist/features/about/components/PolicyPageView.js +61 -23
- package/dist/features/about/components/PublicProfileView.js +5 -0
- package/dist/features/about/schemas/firestore.d.ts +3 -0
- package/dist/features/account/components/UserBidsView.js +12 -4
- package/dist/features/account/components/UserOrdersView.js +7 -0
- package/dist/features/account/components/UserReturnsView.d.ts +3 -0
- package/dist/features/account/components/UserReturnsView.js +17 -1
- package/dist/features/account/components/index.d.ts +0 -2
- package/dist/features/account/components/index.js +0 -1
- package/dist/features/account/schemas/index.d.ts +2 -2
- package/dist/features/account/types/index.d.ts +21 -2
- package/dist/features/addresses/schemas/index.d.ts +4 -4
- package/dist/features/admin/components/AdminArtView.js +8 -3
- package/dist/features/admin/components/AdminAuditLogView.js +1 -0
- package/dist/features/admin/components/AdminBidsView.js +15 -2
- package/dist/features/admin/components/AdminBlogEditorView.js +65 -33
- package/dist/features/admin/components/AdminClassifiedView.js +8 -3
- package/dist/features/admin/components/AdminDigitalCodesView.js +8 -3
- package/dist/features/admin/components/AdminFeatureEditorView.js +35 -6
- package/dist/features/admin/components/AdminFeatureFlagsView.js +1 -0
- package/dist/features/admin/components/AdminLiveView.js +8 -3
- package/dist/features/admin/components/AdminNavEditorView.js +15 -5
- package/dist/features/admin/components/AdminNewsletterView.js +18 -2
- package/dist/features/admin/components/AdminOffersView.d.ts +4 -0
- package/dist/features/admin/components/AdminOffersView.js +230 -0
- package/dist/features/admin/components/AdminOrdersView.js +10 -1
- package/dist/features/admin/components/AdminPaymentMethodsView.js +24 -4
- package/dist/features/admin/components/AdminPrizeDrawsView.js +5 -0
- package/dist/features/admin/components/AdminProductsView.js +16 -29
- package/dist/features/admin/components/AdminScammerEditorView.d.ts +2 -1
- package/dist/features/admin/components/AdminScammerEditorView.js +3 -13
- package/dist/features/admin/components/AdminScammersView.js +3 -8
- package/dist/features/admin/components/AdminSectionsView.js +32 -23
- package/dist/features/admin/components/AdminSessionsView.js +17 -2
- package/dist/features/admin/components/AdminSiteSettingsView.js +31 -13
- package/dist/features/admin/components/AdminSiteView.js +6 -2
- package/dist/features/admin/components/AdminStickersView.js +8 -3
- package/dist/features/admin/components/ViewAuditLogEntryModal.js +1 -0
- package/dist/features/admin/components/index.d.ts +2 -0
- package/dist/features/admin/components/index.js +1 -0
- package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +4 -2
- package/dist/features/admin/components/sections/adminSectionsTypes.js +45 -27
- package/dist/features/admin/constants/filter-tabs.d.ts +89 -0
- package/dist/features/admin/constants/filter-tabs.js +56 -0
- package/dist/features/admin/schemas/firestore.d.ts +122 -3
- package/dist/features/admin/schemas/firestore.js +1 -0
- package/dist/features/admin/schemas/homepage-section-form.d.ts +22 -0
- package/dist/features/admin/schemas/homepage-section-form.js +68 -0
- package/dist/features/admin/schemas/nav-item-form.d.ts +74 -0
- package/dist/features/admin/schemas/nav-item-form.js +72 -0
- package/dist/features/auctions/actions/bid-actions.d.ts +20 -5
- package/dist/features/auctions/actions/bid-actions.js +93 -20
- package/dist/features/auctions/components/AuctionBidsTable.d.ts +10 -1
- package/dist/features/auctions/components/AuctionBidsTable.js +22 -4
- package/dist/features/auctions/components/AuctionDetailPageView.js +11 -6
- package/dist/features/auctions/components/AuctionsListView.js +5 -6
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +7 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +19 -2
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +1 -2
- package/dist/features/auctions/components/PlaceBidFormClient.js +8 -4
- package/dist/features/auctions/components/bid-detail-fields.d.ts +29 -0
- package/dist/features/auctions/components/bid-detail-fields.js +103 -0
- package/dist/features/auctions/repository/bid.repository.d.ts +13 -0
- package/dist/features/auctions/repository/bid.repository.js +23 -0
- package/dist/features/auctions/schemas/firestore.d.ts +17 -0
- package/dist/features/auctions/schemas/index.d.ts +12 -12
- package/dist/features/audit-log/schemas/firestore.d.ts +14 -0
- package/dist/features/audit-log/schemas/firestore.js +7 -0
- package/dist/features/auth/permissions/constants.d.ts +1 -1
- package/dist/features/auth/permissions/constants.js +10 -1
- package/dist/features/blog/actions/blog-actions.d.ts +7 -7
- package/dist/features/blog/schemas/blog-form.d.ts +80 -0
- package/dist/features/blog/schemas/blog-form.js +100 -0
- package/dist/features/blog/schemas/index.d.ts +6 -6
- package/dist/features/cart/repository/cart.repository.js +1 -0
- package/dist/features/cart/schemas/firestore.d.ts +15 -0
- package/dist/features/catalogue/schemas/validation.d.ts +4 -4
- package/dist/features/categories/components/BrandDetailPageView.js +23 -40
- package/dist/features/categories/components/BrandDetailTabs.d.ts +7 -7
- package/dist/features/categories/components/BrandDetailTabs.js +8 -12
- package/dist/features/categories/components/BundleCollage.js +1 -1
- package/dist/features/categories/components/CategoryDetailPageView.js +53 -57
- package/dist/features/categories/components/CategoryDetailTabs.d.ts +10 -8
- package/dist/features/categories/components/CategoryDetailTabs.js +11 -16
- package/dist/features/categories/components/CategoryProductsListing.js +11 -1
- package/dist/features/categories/components/ConcernCard.js +7 -1
- package/dist/features/categories/schemas/firestore.d.ts +13 -0
- package/dist/features/categories/schemas/index.d.ts +26 -26
- package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +16 -1
- package/dist/features/classified/components/ClassifiedDetailPageView.js +23 -3
- package/dist/features/events/components/AdminEventEditorView.js +32 -54
- package/dist/features/events/components/AdminEventEntriesView.js +22 -3
- package/dist/features/events/components/AdminEventsView.js +15 -11
- package/dist/features/events/components/EventFilters.d.ts +9 -1
- package/dist/features/events/components/EventFilters.js +45 -21
- package/dist/features/events/components/EventsIndexListing.d.ts +6 -1
- package/dist/features/events/components/EventsIndexListing.js +2 -2
- package/dist/features/events/components/EventsListPageView.js +13 -4
- package/dist/features/events/repository/events.repository.d.ts +17 -0
- package/dist/features/events/repository/events.repository.js +27 -0
- package/dist/features/events/schemas/event-form.d.ts +113 -0
- package/dist/features/events/schemas/event-form.js +82 -0
- package/dist/features/events/schemas/firestore.d.ts +12 -0
- package/dist/features/events/schemas/firestore.js +12 -0
- package/dist/features/events/schemas/index.d.ts +50 -50
- package/dist/features/events/types/index.d.ts +11 -0
- package/dist/features/events/types/index.js +57 -1
- package/dist/features/faq/actions/faq-actions.d.ts +12 -12
- package/dist/features/faq/schemas/index.d.ts +8 -8
- package/dist/features/filters/FilterFacetSection.d.ts +7 -1
- package/dist/features/filters/FilterFacetSection.js +11 -3
- package/dist/features/grouped/schemas/grouped-listing-form.d.ts +101 -0
- package/dist/features/grouped/schemas/grouped-listing-form.js +89 -0
- package/dist/features/grouped/schemas/index.d.ts +4 -4
- package/dist/features/homepage/actions/homepage-section-actions.d.ts +11 -3
- package/dist/features/homepage/actions/homepage-section-actions.js +33 -1
- package/dist/features/homepage/components/AnnouncementBar.d.ts +7 -1
- package/dist/features/homepage/components/AnnouncementBar.js +3 -3
- package/dist/features/homepage/components/MarketplaceHomepageView.js +20 -6
- package/dist/features/homepage/hooks/homepage-query.d.ts +16 -0
- package/dist/features/homepage/hooks/homepage-query.js +45 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +10 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.js +28 -8
- package/dist/features/homepage/hooks/useFeaturedPreOrders.js +17 -8
- package/dist/features/homepage/hooks/useFeaturedProducts.js +15 -8
- package/dist/features/homepage/schemas/index.d.ts +33 -2
- package/dist/features/homepage/schemas/index.js +24 -0
- package/dist/features/layout/AppLayoutShell.d.ts +11 -1
- package/dist/features/layout/AppLayoutShell.js +15 -14
- package/dist/features/layout/BackToTop.d.ts +9 -0
- package/dist/features/layout/BackToTop.js +10 -1
- package/dist/features/layout/BottomActions.js +28 -25
- package/dist/features/layout/BottomChrome.d.ts +34 -0
- package/dist/features/layout/BottomChrome.js +55 -0
- package/dist/features/layout/BottomNavLayout.d.ts +6 -0
- package/dist/features/layout/BottomNavLayout.js +7 -1
- package/dist/features/layout/BottomNavbar.js +15 -2
- package/dist/features/layout/FooterLayout.js +11 -1
- package/dist/features/layout/NavbarLayout.js +1 -1
- package/dist/features/layout/TitleBarLayout.d.ts +7 -0
- package/dist/features/layout/TitleBarLayout.js +28 -5
- package/dist/features/layout/index.d.ts +2 -0
- package/dist/features/layout/index.js +1 -0
- package/dist/features/lottery/types/index.d.ts +3 -0
- package/dist/features/media/MediaPickerModal.js +5 -1
- package/dist/features/messages/schemas/index.d.ts +2 -2
- package/dist/features/orders/components/OrderScopeTabs.d.ts +20 -0
- package/dist/features/orders/components/OrderScopeTabs.js +31 -0
- package/dist/features/orders/components/OrderStatusTimeline.d.ts +5 -1
- package/dist/features/orders/components/OrderStatusTimeline.js +39 -20
- package/dist/features/orders/constants/order-scope.d.ts +48 -0
- package/dist/features/orders/constants/order-scope.js +111 -0
- package/dist/features/orders/repository/orders.repository.d.ts +54 -7
- package/dist/features/orders/repository/orders.repository.js +121 -22
- package/dist/features/orders/schemas/firestore.d.ts +152 -0
- package/dist/features/orders/schemas/firestore.js +30 -0
- package/dist/features/orders/schemas/index.d.ts +18 -18
- package/dist/features/orders/types/index.d.ts +35 -7
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +14 -9
- package/dist/features/pre-orders/components/PreOrdersListView.js +6 -5
- package/dist/features/pre-orders/schemas/index.d.ts +1 -1
- package/dist/features/products/actions/product-actions.d.ts +14 -0
- package/dist/features/products/actions/product-actions.js +49 -11
- package/dist/features/products/api/route.d.ts +12 -0
- package/dist/features/products/api/route.js +42 -100
- package/dist/features/products/components/ArtStickersListView.js +2 -2
- package/dist/features/products/components/AuctionsIndexListing.js +13 -11
- package/dist/features/products/components/AvailabilityTabs.d.ts +11 -0
- package/dist/features/products/components/AvailabilityTabs.js +47 -0
- package/dist/features/products/components/GroupSettingsPanel.js +5 -1
- package/dist/features/products/components/MakeOfferButton.js +48 -49
- package/dist/features/products/components/PrizeDrawCollage.d.ts +20 -4
- package/dist/features/products/components/PrizeDrawCollage.js +9 -1
- package/dist/features/products/components/PrizeDrawsIndexListing.js +14 -12
- package/dist/features/products/components/PrizeDrawsListingView.js +2 -2
- package/dist/features/products/components/PrizeDrawsSection.d.ts +7 -1
- package/dist/features/products/components/PrizeDrawsSection.js +23 -18
- package/dist/features/products/components/ProductDetailPageView.d.ts +4 -1
- package/dist/features/products/components/ProductDetailPageView.js +18 -4
- package/dist/features/products/components/ProductForm.js +5 -2
- package/dist/features/products/components/ProductGrid.js +6 -1
- package/dist/features/products/components/ProductsIndexListing.js +22 -32
- package/dist/features/products/components/ProductsIndexPageView.js +6 -9
- package/dist/features/products/components/index.d.ts +2 -2
- package/dist/features/products/components/index.js +1 -1
- package/dist/features/products/config/listing-type-listing-config.d.ts +20 -0
- package/dist/features/products/config/listing-type-listing-config.js +22 -10
- package/dist/features/products/constants/action-defs.d.ts +2 -0
- package/dist/features/products/constants/action-defs.js +6 -0
- package/dist/features/products/hooks/useAvailabilityScope.d.ts +13 -0
- package/dist/features/products/hooks/useAvailabilityScope.js +19 -0
- package/dist/features/products/hooks/useProducts.d.ts +5 -0
- package/dist/features/products/hooks/useProducts.js +13 -2
- package/dist/features/products/repository/products.repository.d.ts +31 -2
- package/dist/features/products/repository/products.repository.js +53 -21
- package/dist/features/products/schemas/firestore.d.ts +17 -3
- package/dist/features/products/schemas/firestore.js +7 -2
- package/dist/features/products/schemas/index.d.ts +64 -64
- package/dist/features/products/schemas/product-features.validators.d.ts +79 -6
- package/dist/features/products/schemas/product-features.validators.js +63 -0
- package/dist/features/products/types/index.d.ts +16 -1
- package/dist/features/promotions/schemas/index.d.ts +2 -2
- package/dist/features/reviews/schemas/index.d.ts +16 -16
- package/dist/features/scams/constants/scammer-status-display.d.ts +28 -0
- package/dist/features/scams/constants/scammer-status-display.js +79 -0
- package/dist/features/search/schemas/index.d.ts +4 -4
- package/dist/features/seller/actions/offer-actions.js +57 -4
- package/dist/features/seller/components/OfferPhaseTimeline.d.ts +59 -0
- package/dist/features/seller/components/OfferPhaseTimeline.js +107 -0
- package/dist/features/seller/components/SellerArtView.js +5 -0
- package/dist/features/seller/components/SellerAuctionsView.js +13 -15
- package/dist/features/seller/components/SellerBidsView.js +11 -4
- package/dist/features/seller/components/SellerClassifiedView.js +5 -0
- package/dist/features/seller/components/SellerCouponEditorView.js +17 -17
- package/dist/features/seller/components/SellerDigitalCodesView.js +5 -0
- package/dist/features/seller/components/SellerLiveView.js +5 -0
- package/dist/features/seller/components/SellerOffersView.js +2 -1
- package/dist/features/seller/components/SellerOrdersView.js +31 -9
- package/dist/features/seller/components/SellerPayoutSettingsView.js +56 -31
- package/dist/features/seller/components/SellerPreOrdersView.js +5 -0
- package/dist/features/seller/components/SellerPrizeDrawsView.js +14 -16
- package/dist/features/seller/components/SellerProductShell.js +7 -1
- package/dist/features/seller/components/SellerProductsView.js +11 -8
- package/dist/features/seller/components/SellerStickersView.js +5 -0
- package/dist/features/seller/components/index.d.ts +0 -2
- package/dist/features/seller/components/index.js +0 -1
- package/dist/features/seller/repository/offer.repository.d.ts +142 -24
- package/dist/features/seller/repository/offer.repository.js +165 -26
- package/dist/features/seller/schemas/coupon-form.d.ts +72 -0
- package/dist/features/seller/schemas/coupon-form.js +116 -0
- package/dist/features/seller/schemas/firestore.d.ts +56 -2
- package/dist/features/seller/schemas/firestore.js +27 -0
- package/dist/features/seller/schemas/index.d.ts +2 -2
- package/dist/features/seller/schemas/offer-forms.d.ts +46 -0
- package/dist/features/seller/schemas/offer-forms.js +42 -0
- package/dist/features/seller/server.d.ts +0 -1
- package/dist/features/seller/server.js +0 -1
- package/dist/features/shell/SectionForm.d.ts +99 -0
- package/dist/features/shell/SectionForm.js +128 -0
- package/dist/features/shell/build-sections.d.ts +63 -0
- package/dist/features/shell/build-sections.js +207 -0
- package/dist/features/shell/entity-form.d.ts +109 -0
- package/dist/features/shell/entity-form.js +96 -0
- package/dist/features/shell/field-ui-meta.d.ts +115 -0
- package/dist/features/shell/field-ui-meta.js +324 -0
- package/dist/features/shell/index.d.ts +8 -0
- package/dist/features/shell/index.js +4 -0
- package/dist/features/status-history/components/StatusTimeline.d.ts +74 -0
- package/dist/features/status-history/components/StatusTimeline.js +46 -0
- package/dist/features/status-history/index.d.ts +11 -0
- package/dist/features/status-history/index.js +10 -0
- package/dist/features/store-extensions/components/ReviewDecisionModal.d.ts +27 -0
- package/dist/features/store-extensions/components/ReviewDecisionModal.js +82 -0
- package/dist/features/store-extensions/index.d.ts +12 -0
- package/dist/features/store-extensions/index.js +12 -0
- package/dist/features/store-extensions/schemas/admin-notification-form.d.ts +36 -0
- package/dist/features/store-extensions/schemas/admin-notification-form.js +114 -0
- package/dist/features/store-extensions/schemas/analytics-forms.d.ts +57 -0
- package/dist/features/store-extensions/schemas/analytics-forms.js +158 -0
- package/dist/features/store-extensions/schemas/custom-role-form.d.ts +85 -0
- package/dist/features/store-extensions/schemas/custom-role-form.js +118 -0
- package/dist/features/store-extensions/schemas/firestore.d.ts +21 -1
- package/dist/features/store-extensions/schemas/firestore.js +60 -0
- package/dist/features/store-extensions/schemas/google-config-form.d.ts +53 -0
- package/dist/features/store-extensions/schemas/google-config-form.js +105 -0
- package/dist/features/store-extensions/schemas/item-request-create-form.d.ts +28 -0
- package/dist/features/store-extensions/schemas/item-request-create-form.js +80 -0
- package/dist/features/store-extensions/schemas/listing-template-form.d.ts +78 -0
- package/dist/features/store-extensions/schemas/listing-template-form.js +87 -0
- package/dist/features/store-extensions/schemas/moderation-review-form.d.ts +49 -0
- package/dist/features/store-extensions/schemas/moderation-review-form.js +101 -0
- package/dist/features/store-extensions/schemas/payout-method-form.d.ts +153 -0
- package/dist/features/store-extensions/schemas/payout-method-form.js +155 -0
- package/dist/features/store-extensions/schemas/report-create-form.d.ts +25 -0
- package/dist/features/store-extensions/schemas/report-create-form.js +79 -0
- package/dist/features/store-extensions/schemas/report-review-form.d.ts +47 -0
- package/dist/features/store-extensions/schemas/report-review-form.js +111 -0
- package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +148 -0
- package/dist/features/store-extensions/schemas/shipping-config-form.js +104 -0
- package/dist/features/store-extensions/schemas/store-category-form.d.ts +54 -0
- package/dist/features/store-extensions/schemas/store-category-form.js +73 -0
- package/dist/features/stores/api/[storeSlug]/route.js +2 -25
- package/dist/features/stores/components/StoreAuctionsListing.js +15 -1
- package/dist/features/stores/components/StoreClassifiedsListing.js +12 -2
- package/dist/features/stores/components/StoreDetailLayoutView.js +24 -71
- package/dist/features/stores/components/StoreDigitalCodesListing.js +12 -2
- package/dist/features/stores/components/StoreLiveItemsListing.js +12 -2
- package/dist/features/stores/components/StorePreOrdersListing.js +12 -1
- package/dist/features/stores/components/StoreProductsListing.js +11 -1
- package/dist/features/stores/repository/store.repository.js +6 -0
- package/dist/features/stores/schemas/index.d.ts +6 -6
- package/dist/features/support/schemas/index.d.ts +4 -4
- package/dist/features/tester/actions/checklist-item-actions.d.ts +4 -4
- package/dist/features/tester/seed-data/offers-tester-seed-data.js +119 -3
- package/dist/features/tester/seed-data/products-tester-seed-data.js +131 -1
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +431 -1
- package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
- package/dist/index.d.ts +25 -12
- package/dist/index.js +26 -11
- package/dist/next/routing/route-map.d.ts +23 -3
- package/dist/next/routing/route-map.js +14 -2
- package/dist/providers/db-firebase/base.repository.d.ts +30 -0
- package/dist/providers/db-firebase/base.repository.js +50 -1
- package/dist/providers/db-firebase/index.d.ts +1 -1
- package/dist/providers/db-firebase/index.js +1 -1
- package/dist/providers/db-firebase/sieve.d.ts +25 -0
- package/dist/providers/db-firebase/sieve.js +52 -18
- package/dist/react/hooks/useUrlTable.js +10 -1
- package/dist/schemas/firestore-value.d.ts +8 -0
- package/dist/schemas/firestore-value.js +44 -0
- package/dist/schemas/index.d.ts +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/registry.d.ts +702 -69
- package/dist/schemas/registry.js +64 -1
- package/dist/seed/_helpers/category-forest.d.ts +2 -0
- package/dist/seed/_helpers/category-forest.js +309 -0
- package/dist/seed/_helpers/category-tree.d.ts +27 -0
- package/dist/seed/_helpers/category-tree.js +103 -0
- package/dist/seed/bids-seed-data.js +30 -0
- package/dist/seed/catalogue-seed-data.js +12 -12
- package/dist/seed/categories-seed-data.js +177 -162
- package/dist/seed/events-seed-data.js +61 -10
- package/dist/seed/homepage-sections-seed-data.js +5 -1
- package/dist/seed/offers-seed-data.js +244 -34
- package/dist/seed/orders-seed-data.js +336 -1
- package/dist/seed/products-art-seed-data.js +50 -12
- package/dist/seed/products-auctions-seed-data.js +138 -18
- package/dist/seed/products-classifieds-seed-data.js +80 -16
- package/dist/seed/products-digital-codes-seed-data.js +66 -18
- package/dist/seed/products-live-items-seed-data.js +64 -13
- package/dist/seed/products-preorders-seed-data.d.ts +0 -1
- package/dist/seed/products-preorders-seed-data.js +52 -13
- package/dist/seed/products-prize-draws-seed-data.js +63 -14
- package/dist/seed/products-standard-seed-data.js +99 -26
- package/dist/seed/products-stickers-seed-data.js +47 -12
- package/dist/seed/reviews-seed-data.js +6 -1
- package/dist/seed/site-settings-seed-data.d.ts +1 -38
- package/dist/seed/site-settings-seed-data.js +38 -76
- package/dist/seed/stores-seed-data.js +71 -1
- package/dist/seed/users-seed-data.js +15 -5
- package/dist/server-entry.d.ts +1 -2
- package/dist/server-entry.js +4 -3
- package/dist/server.d.ts +6 -3
- package/dist/server.js +13 -4
- package/dist/styles.css +78 -12
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/Button.style.css +19 -4
- package/dist/ui/components/CollapsibleSection.d.ts +17 -1
- package/dist/ui/components/CollapsibleSection.js +6 -2
- package/dist/ui/components/FilterChipGroup.d.ts +25 -1
- package/dist/ui/components/FilterChipGroup.js +21 -4
- package/dist/ui/components/HandMode.style.css +47 -0
- package/dist/ui/components/Layout.d.ts +9 -2
- package/dist/ui/components/Layout.js +1 -1
- package/dist/ui/components/ListingLayout.js +8 -8
- package/dist/ui/components/ListingLayout.style.css +8 -7
- package/dist/ui/components/RecordDetailModal.d.ts +10 -1
- package/dist/ui/components/RecordDetailModal.js +2 -2
- package/dist/ui/components/StickyToolbar.d.ts +3 -1
- package/dist/ui/components/StickyToolbar.js +62 -20
- package/dist/ui/components/bottom-chrome-slot.d.ts +21 -0
- package/dist/ui/components/bottom-chrome-slot.js +29 -0
- package/dist/ui/components/index.style.css +3 -0
- package/dist/ui/forms/FormShell.d.ts +43 -13
- package/dist/ui/forms/FormShell.js +22 -11
- package/dist/ui/forms/index.d.ts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +2 -1
- package/scripts/node-esm-loader.mjs +65 -0
- package/scripts/seed-cli-loader.mjs +6 -49
- package/scripts/seed-cli.mjs +1 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* WHY: There was no single definition of "this listing is still available".
|
|
3
|
+
* The closest thing was a private `isValidRelatedItem()` in
|
|
4
|
+
* `_internal/server/features/products/data.ts`, reachable only from the
|
|
5
|
+
* related-items carousel and carrying three bugs: it read
|
|
6
|
+
* `row.codesAvailable` at the top level when the schema nests it under
|
|
7
|
+
* `digitalCode.codesAvailable`; it filtered on `status` values
|
|
8
|
+
* ("sold", "out_of_stock", "discontinued") that are not members of the
|
|
9
|
+
* real `ProductStatus` union; and it had no branch for classified / live
|
|
10
|
+
* / art / stickers. Meanwhile the listing pages expressed the same idea a
|
|
11
|
+
* fourth way (an `inStock` boolean plus a `dateFrom` cutoff) and the
|
|
12
|
+
* homepage expressed it not at all — which is why the "Live Auctions"
|
|
13
|
+
* strip rendered the most-expired lots first.
|
|
14
|
+
*
|
|
15
|
+
* WHAT: The type-agnostic half of the availability predicate. The per-type
|
|
16
|
+
* half lives on each listing-type plugin as `isAvailable`; the two are
|
|
17
|
+
* combined by `isListingRowAvailable()` in `./_registry`.
|
|
18
|
+
*
|
|
19
|
+
* EXPORTS: AvailabilityRow, UnavailableClause, toDate, num, baseAvailable,
|
|
20
|
+
* isPubliclyVisible, alwaysAvailable, STOCK_ONLY_UNAVAILABLE_CLAUSES
|
|
21
|
+
*
|
|
22
|
+
* @tag domain:products
|
|
23
|
+
* @tag layer:shared
|
|
24
|
+
* @tag pattern:none
|
|
25
|
+
* @tag access:isomorphic
|
|
26
|
+
* @tag consumers:_registry,list-public,data,PrizeDrawsSection
|
|
27
|
+
* @tag sideEffects:none
|
|
28
|
+
*/
|
|
29
|
+
import { PRODUCT_FIELDS } from "../../../constants/field-names";
|
|
30
|
+
/**
|
|
31
|
+
* Firestore Timestamp | Date | ISO string | epoch millis → Date, or null when
|
|
32
|
+
* the value is absent or unparseable. Firestore hands back a `Timestamp` with
|
|
33
|
+
* a `toDate()` method server-side but a plain ISO string once serialised, and
|
|
34
|
+
* a predicate that handles only one of those silently returns the wrong answer
|
|
35
|
+
* on the other runtime.
|
|
36
|
+
*/
|
|
37
|
+
export function toDate(value) {
|
|
38
|
+
if (!value)
|
|
39
|
+
return null;
|
|
40
|
+
if (value instanceof Date)
|
|
41
|
+
return Number.isNaN(value.getTime()) ? null : value;
|
|
42
|
+
if (typeof value === "object" && typeof value.toDate === "function") {
|
|
43
|
+
const converted = value.toDate();
|
|
44
|
+
return converted instanceof Date && !Number.isNaN(converted.getTime()) ? converted : null;
|
|
45
|
+
}
|
|
46
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
47
|
+
const parsed = new Date(value);
|
|
48
|
+
return Number.isNaN(parsed.getTime()) ? null : parsed;
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
/** Read a numeric field, or `null` when absent/non-numeric. */
|
|
53
|
+
export function num(value) {
|
|
54
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The checks every listing type shares, regardless of `listingType`.
|
|
58
|
+
*
|
|
59
|
+
* Note what is NOT here: `status`. Publication state (draft / in_review /
|
|
60
|
+
* archived) is a different axis from availability — an archived listing is
|
|
61
|
+
* hidden from the public entirely, while a sold one is still browsable in the
|
|
62
|
+
* "Sold & Ended" scope. Conflating them is what made `isValidRelatedItem`
|
|
63
|
+
* test for a `status: "sold"` value that has never existed.
|
|
64
|
+
*
|
|
65
|
+
* A field that is absent is treated as "not a reason to hide" — most rows
|
|
66
|
+
* carry `isSold: false` and a real quantity, but older documents predate both
|
|
67
|
+
* and must not vanish from the default scope.
|
|
68
|
+
*/
|
|
69
|
+
export function baseAvailable(row) {
|
|
70
|
+
if (row[PRODUCT_FIELDS.IS_SOLD] === true)
|
|
71
|
+
return false;
|
|
72
|
+
const available = num(row[PRODUCT_FIELDS.AVAILABLE_QUANTITY]);
|
|
73
|
+
if (available !== null && available <= 0)
|
|
74
|
+
return false;
|
|
75
|
+
const stock = num(row[PRODUCT_FIELDS.STOCK_QUANTITY]);
|
|
76
|
+
if (stock !== null && stock <= 0)
|
|
77
|
+
return false;
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Whether a row may be shown on a public surface at all. Separate from
|
|
82
|
+
* availability on purpose — see `baseAvailable`.
|
|
83
|
+
*/
|
|
84
|
+
export function isPubliclyVisible(row) {
|
|
85
|
+
const status = row[PRODUCT_FIELDS.STATUS];
|
|
86
|
+
return status === undefined || status === PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* For types whose only end-state is running out: standard, classified, live,
|
|
90
|
+
* art, stickers. Shared rather than copy-pasted into five plugin configs,
|
|
91
|
+
* which is exactly the duplication the registry exists to prevent.
|
|
92
|
+
*/
|
|
93
|
+
export const STOCK_ONLY_UNAVAILABLE_CLAUSES = [
|
|
94
|
+
{ field: PRODUCT_FIELDS.AVAILABLE_QUANTITY, op: "eq", value: 0 },
|
|
95
|
+
{ field: PRODUCT_FIELDS.IS_SOLD, op: "eq", value: true },
|
|
96
|
+
];
|
|
97
|
+
/**
|
|
98
|
+
* `isAvailable` for a type with no rule beyond `baseAvailable`. Named rather
|
|
99
|
+
* than an inline `() => true` so the five configs that use it read as
|
|
100
|
+
* deliberately sharing one decision, not as five independent stubs.
|
|
101
|
+
*/
|
|
102
|
+
export function alwaysAvailable() {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
@@ -24,6 +24,20 @@ export interface ListingTypeCapability {
|
|
|
24
24
|
requiresJurisdictionCheck: boolean;
|
|
25
25
|
/** Listing fulfills immediately on purchase (no shipping label flow). */
|
|
26
26
|
hasInstantFulfillment: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Buyers can negotiate the price via the Make-an-Offer flow.
|
|
29
|
+
*
|
|
30
|
+
* A per-listing `allowOffers` flag is still required on top of this — the
|
|
31
|
+
* capability says the TYPE can support offers at all, the flag says this
|
|
32
|
+
* particular seller opted in. `makeOffer` checks both.
|
|
33
|
+
*
|
|
34
|
+
* False wherever a negotiated price would collide with the type's own pricing
|
|
35
|
+
* mechanism: an auction already has bidding, a prize-draw sells fixed-price
|
|
36
|
+
* entries, a digital code is a fungible pool item, a pre-order is a deposit
|
|
37
|
+
* against a future price, and a live item is jurisdiction-gated with a
|
|
38
|
+
* verified vendor on the hook for it.
|
|
39
|
+
*/
|
|
40
|
+
canMakeOffer: boolean;
|
|
27
41
|
}
|
|
28
42
|
export declare const LISTING_TYPE_CAPABILITIES: Record<ListingType, ListingTypeCapability>;
|
|
29
43
|
export declare function capabilityFor(type: ListingType): ListingTypeCapability;
|
|
@@ -33,6 +47,7 @@ export declare function supportsShipping(type: ListingType): boolean;
|
|
|
33
47
|
export declare function requiresVendorVerified(type: ListingType): boolean;
|
|
34
48
|
export declare function requiresJurisdictionCheck(type: ListingType): boolean;
|
|
35
49
|
export declare function hasInstantFulfillment(type: ListingType): boolean;
|
|
50
|
+
export declare function canMakeOffer(type: ListingType): boolean;
|
|
36
51
|
/**
|
|
37
52
|
* Exhaustive-switch helper. Use in `switch (type) { case ...: default: assertNever(type); }`
|
|
38
53
|
* so adding a new `ListingType` member is a TS error at every consumer
|
|
@@ -18,6 +18,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
18
18
|
requiresVendorVerified: false,
|
|
19
19
|
requiresJurisdictionCheck: false,
|
|
20
20
|
hasInstantFulfillment: false,
|
|
21
|
+
canMakeOffer: true, // the ordinary negotiable listing
|
|
21
22
|
},
|
|
22
23
|
auction: {
|
|
23
24
|
canAddToCart: false,
|
|
@@ -26,6 +27,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
26
27
|
requiresVendorVerified: false,
|
|
27
28
|
requiresJurisdictionCheck: false,
|
|
28
29
|
hasInstantFulfillment: false,
|
|
30
|
+
canMakeOffer: false, // bidding IS the price mechanism
|
|
29
31
|
},
|
|
30
32
|
"pre-order": {
|
|
31
33
|
canAddToCart: true,
|
|
@@ -34,6 +36,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
34
36
|
requiresVendorVerified: false,
|
|
35
37
|
requiresJurisdictionCheck: false,
|
|
36
38
|
hasInstantFulfillment: false,
|
|
39
|
+
canMakeOffer: false, // deposit against a future price, not a price to haggle
|
|
37
40
|
},
|
|
38
41
|
"prize-draw": {
|
|
39
42
|
canAddToCart: true,
|
|
@@ -42,6 +45,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
42
45
|
requiresVendorVerified: false,
|
|
43
46
|
requiresJurisdictionCheck: false,
|
|
44
47
|
hasInstantFulfillment: false,
|
|
48
|
+
canMakeOffer: false, // fixed-price entries; a discounted entry breaks the draw's economics
|
|
45
49
|
},
|
|
46
50
|
// SB-UNI-F 2026-05-13 — Phase 2 union extension.
|
|
47
51
|
classified: {
|
|
@@ -51,6 +55,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
51
55
|
requiresVendorVerified: false,
|
|
52
56
|
requiresJurisdictionCheck: false,
|
|
53
57
|
hasInstantFulfillment: false,
|
|
58
|
+
canMakeOffer: true, // haggling is the norm here — see the `negotiable` flag
|
|
54
59
|
},
|
|
55
60
|
"digital-code": {
|
|
56
61
|
canAddToCart: true,
|
|
@@ -59,6 +64,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
59
64
|
requiresVendorVerified: false,
|
|
60
65
|
requiresJurisdictionCheck: false,
|
|
61
66
|
hasInstantFulfillment: true, // atomic code claim at order paid
|
|
67
|
+
canMakeOffer: false, // fungible pool item, priced per code
|
|
62
68
|
},
|
|
63
69
|
live: {
|
|
64
70
|
canAddToCart: true, // but jurisdictionAllowed must include buyer's state
|
|
@@ -67,6 +73,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
67
73
|
requiresVendorVerified: true,
|
|
68
74
|
requiresJurisdictionCheck: true,
|
|
69
75
|
hasInstantFulfillment: false,
|
|
76
|
+
canMakeOffer: false, // jurisdiction-gated with a verified vendor accountable for the price
|
|
70
77
|
},
|
|
71
78
|
// Art/stickers session — printed-only physical goods, standard-like checkout.
|
|
72
79
|
art: {
|
|
@@ -76,6 +83,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
76
83
|
requiresVendorVerified: false,
|
|
77
84
|
requiresJurisdictionCheck: false,
|
|
78
85
|
hasInstantFulfillment: false,
|
|
86
|
+
canMakeOffer: true, // printed goods, standard-like
|
|
79
87
|
},
|
|
80
88
|
stickers: {
|
|
81
89
|
canAddToCart: true,
|
|
@@ -84,6 +92,7 @@ export const LISTING_TYPE_CAPABILITIES = {
|
|
|
84
92
|
requiresVendorVerified: false,
|
|
85
93
|
requiresJurisdictionCheck: false,
|
|
86
94
|
hasInstantFulfillment: false,
|
|
95
|
+
canMakeOffer: true, // printed goods, standard-like
|
|
87
96
|
},
|
|
88
97
|
};
|
|
89
98
|
export function capabilityFor(type) {
|
|
@@ -107,6 +116,9 @@ export function requiresJurisdictionCheck(type) {
|
|
|
107
116
|
export function hasInstantFulfillment(type) {
|
|
108
117
|
return LISTING_TYPE_CAPABILITIES[type].hasInstantFulfillment;
|
|
109
118
|
}
|
|
119
|
+
export function canMakeOffer(type) {
|
|
120
|
+
return LISTING_TYPE_CAPABILITIES[type].canMakeOffer;
|
|
121
|
+
}
|
|
110
122
|
/**
|
|
111
123
|
* Exhaustive-switch helper. Use in `switch (type) { case ...: default: assertNever(type); }`
|
|
112
124
|
* so adding a new `ListingType` member is a TS error at every consumer
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { alwaysAvailable } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "classified";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,8 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "sold";
|
|
21
|
+
isAvailable: typeof alwaysAvailable;
|
|
22
|
+
unavailableClauses: readonly import("../availability").UnavailableClause[];
|
|
20
23
|
sortOptions: readonly [{
|
|
21
24
|
readonly value: string;
|
|
22
25
|
readonly label: "Newest First";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
|
+
import { alwaysAvailable, STOCK_ONLY_UNAVAILABLE_CLAUSES, } from "../availability";
|
|
2
3
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
4
|
import { TABLE_KEYS } from "../../../../constants/table-keys";
|
|
4
5
|
import { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
@@ -18,6 +19,10 @@ export const config = {
|
|
|
18
19
|
chipLabel: "Classifieds",
|
|
19
20
|
browseRoute: String(ROUTES.PUBLIC.CLASSIFIED),
|
|
20
21
|
hideDefault: "sold",
|
|
22
|
+
// Runs out rather than ending — no time dimension, so the shared
|
|
23
|
+
// stock-only rules are the whole story for this type.
|
|
24
|
+
isAvailable: alwaysAvailable,
|
|
25
|
+
unavailableClauses: STOCK_ONLY_UNAVAILABLE_CLAUSES,
|
|
21
26
|
sortOptions: STANDARD_SORT_OPTIONS,
|
|
22
27
|
publicSortOptions: STANDARD_PUBLIC_SORT_OPTIONS,
|
|
23
28
|
extraFacetKeys: [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AvailabilityRow } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "digital-code";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,16 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "sold";
|
|
21
|
+
isAvailable: (row: AvailabilityRow) => boolean;
|
|
22
|
+
unavailableClauses: ({
|
|
23
|
+
field: "digitalCode.codesAvailable";
|
|
24
|
+
op: "eq";
|
|
25
|
+
value: number;
|
|
26
|
+
} | {
|
|
27
|
+
field: "availableQuantity";
|
|
28
|
+
op: "eq";
|
|
29
|
+
value: number;
|
|
30
|
+
})[];
|
|
20
31
|
sortOptions: readonly [{
|
|
21
32
|
readonly value: string;
|
|
22
33
|
readonly label: "Newest First";
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
|
+
import { num } from "../availability";
|
|
2
3
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
4
|
import { TABLE_KEYS } from "../../../../constants/table-keys";
|
|
5
|
+
import { PRODUCT_FIELDS } from "../../../../constants/field-names";
|
|
4
6
|
import { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
5
7
|
export const LISTING_TYPE = "digital-code";
|
|
6
8
|
export const capability = LISTING_TYPE_CAPABILITIES["digital-code"];
|
|
9
|
+
/**
|
|
10
|
+
* Read the pool counter from either row shape. A Firestore document nests it
|
|
11
|
+
* under `digitalCode`; a row that has been through a Sieve projection or the
|
|
12
|
+
* listingProcessor Function can carry the flattened dotted key instead.
|
|
13
|
+
*/
|
|
14
|
+
function readCodesAvailable(row) {
|
|
15
|
+
const nested = row.digitalCode;
|
|
16
|
+
if (nested && typeof nested === "object" && !Array.isArray(nested)) {
|
|
17
|
+
return nested.codesAvailable;
|
|
18
|
+
}
|
|
19
|
+
return row[PRODUCT_FIELDS.DIGITAL_CODES_AVAILABLE];
|
|
20
|
+
}
|
|
7
21
|
export const config = {
|
|
8
22
|
listingType: LISTING_TYPE,
|
|
9
23
|
slugPrefix: "digitalcode-",
|
|
@@ -17,9 +31,15 @@ export const config = {
|
|
|
17
31
|
pluralLabel: "Digital Codes",
|
|
18
32
|
chipLabel: "Digital Codes",
|
|
19
33
|
browseRoute: String(ROUTES.PUBLIC.DIGITAL_CODES),
|
|
20
|
-
// "Sold out" for a code pool means codesAvailable hit 0
|
|
21
|
-
// stockQuantity
|
|
34
|
+
// "Sold out" for a code pool means codesAvailable hit 0. That was ASSUMED to
|
|
35
|
+
// be mirrored by stockQuantity, and it isn't — seed and production rows exist
|
|
36
|
+
// with a drained pool and non-zero stock. The pool count is authoritative.
|
|
22
37
|
hideDefault: "sold",
|
|
38
|
+
isAvailable: (row) => num(readCodesAvailable(row)) !== 0,
|
|
39
|
+
unavailableClauses: [
|
|
40
|
+
{ field: PRODUCT_FIELDS.DIGITAL_CODES_AVAILABLE, op: "eq", value: 0 },
|
|
41
|
+
{ field: PRODUCT_FIELDS.AVAILABLE_QUANTITY, op: "eq", value: 0 },
|
|
42
|
+
],
|
|
23
43
|
sortOptions: STANDARD_SORT_OPTIONS,
|
|
24
44
|
publicSortOptions: STANDARD_PUBLIC_SORT_OPTIONS,
|
|
25
45
|
extraFacetKeys: [TABLE_KEYS.DELIVERY_METHOD],
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { alwaysAvailable } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "live";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,8 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "sold";
|
|
21
|
+
isAvailable: typeof alwaysAvailable;
|
|
22
|
+
unavailableClauses: readonly import("../availability").UnavailableClause[];
|
|
20
23
|
sortOptions: readonly [{
|
|
21
24
|
readonly value: string;
|
|
22
25
|
readonly label: "Newest First";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
|
+
import { alwaysAvailable, STOCK_ONLY_UNAVAILABLE_CLAUSES, } from "../availability";
|
|
2
3
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
4
|
import { TABLE_KEYS } from "../../../../constants/table-keys";
|
|
4
5
|
import { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
@@ -18,6 +19,10 @@ export const config = {
|
|
|
18
19
|
chipLabel: "Live Items",
|
|
19
20
|
browseRoute: String(ROUTES.PUBLIC.LIVE),
|
|
20
21
|
hideDefault: "sold",
|
|
22
|
+
// Runs out rather than ending — no time dimension, so the shared
|
|
23
|
+
// stock-only rules are the whole story for this type.
|
|
24
|
+
isAvailable: alwaysAvailable,
|
|
25
|
+
unavailableClauses: STOCK_ONLY_UNAVAILABLE_CLAUSES,
|
|
21
26
|
sortOptions: STANDARD_SORT_OPTIONS,
|
|
22
27
|
publicSortOptions: STANDARD_PUBLIC_SORT_OPTIONS,
|
|
23
28
|
extraFacetKeys: [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AvailabilityRow } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "pre-order";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,8 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "closed";
|
|
21
|
+
isAvailable: (row: AvailabilityRow) => boolean;
|
|
22
|
+
unavailableClauses: readonly import("../availability").UnavailableClause[];
|
|
20
23
|
sortOptions: readonly [{
|
|
21
24
|
readonly value: string;
|
|
22
25
|
readonly label: "Earliest Delivery";
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
|
+
import { num, STOCK_ONLY_UNAVAILABLE_CLAUSES, } from "../availability";
|
|
2
3
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
4
|
import { TABLE_KEYS } from "../../../../constants/table-keys";
|
|
5
|
+
import { PRODUCT_FIELDS } from "../../../../constants/field-names";
|
|
4
6
|
import { PREORDER_SORT_OPTIONS, PREORDER_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
5
7
|
export const LISTING_TYPE = "pre-order";
|
|
6
8
|
export const capability = LISTING_TYPE_CAPABILITIES["pre-order"];
|
|
@@ -18,6 +20,23 @@ export const config = {
|
|
|
18
20
|
chipLabel: "Pre-Orders",
|
|
19
21
|
browseRoute: String(ROUTES.PUBLIC.PRE_ORDERS),
|
|
20
22
|
hideDefault: "closed",
|
|
23
|
+
// A pre-order closes when its allocation fills, NOT when its delivery date
|
|
24
|
+
// passes — a shipped-soon pre-order is still orderable. `preOrderClosed`
|
|
25
|
+
// exists on the schema but no write path has ever set it, so the count pair
|
|
26
|
+
// is the only real signal; it is checked defensively anyway in case one
|
|
27
|
+
// starts.
|
|
28
|
+
isAvailable: (row) => {
|
|
29
|
+
if (row[PRODUCT_FIELDS.PRE_ORDER_CLOSED] === true)
|
|
30
|
+
return false;
|
|
31
|
+
const current = num(row[PRODUCT_FIELDS.PRE_ORDER_CURRENT_COUNT]);
|
|
32
|
+
const max = num(row[PRODUCT_FIELDS.PRE_ORDER_MAX_QUANTITY]);
|
|
33
|
+
if (current !== null && max !== null && max > 0 && current >= max)
|
|
34
|
+
return false;
|
|
35
|
+
return true;
|
|
36
|
+
},
|
|
37
|
+
// A filled allocation always zeroes `availableQuantity`, so the shared
|
|
38
|
+
// stock clauses select exactly the closed set — no extra query needed.
|
|
39
|
+
unavailableClauses: STOCK_ONLY_UNAVAILABLE_CLAUSES,
|
|
21
40
|
sortOptions: PREORDER_SORT_OPTIONS,
|
|
22
41
|
publicSortOptions: PREORDER_PUBLIC_SORT_OPTIONS,
|
|
23
42
|
extraFacetKeys: [
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AvailabilityRow } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "prize-draw";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,16 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "closed";
|
|
21
|
+
isAvailable: (row: AvailabilityRow) => boolean;
|
|
22
|
+
unavailableClauses: ({
|
|
23
|
+
field: "prizeRevealStatus";
|
|
24
|
+
op: "eq";
|
|
25
|
+
value: "closed";
|
|
26
|
+
} | {
|
|
27
|
+
field: "availableQuantity";
|
|
28
|
+
op: "eq";
|
|
29
|
+
value: number;
|
|
30
|
+
})[];
|
|
20
31
|
sortOptions: readonly [{
|
|
21
32
|
readonly value: string;
|
|
22
33
|
readonly label: "Newest First";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
2
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
3
|
import { TABLE_KEYS } from "../../../../constants/table-keys";
|
|
4
|
+
import { PRODUCT_FIELDS } from "../../../../constants/field-names";
|
|
4
5
|
import { PRIZE_DRAW_SORT_OPTIONS, PRIZE_DRAW_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
5
6
|
export const LISTING_TYPE = "prize-draw";
|
|
6
7
|
export const capability = LISTING_TYPE_CAPABILITIES["prize-draw"];
|
|
@@ -18,6 +19,20 @@ export const config = {
|
|
|
18
19
|
chipLabel: "Prize Draws",
|
|
19
20
|
browseRoute: String(ROUTES.PUBLIC.PRIZE_DRAWS),
|
|
20
21
|
hideDefault: "closed",
|
|
22
|
+
// `prizeRevealStatus`, NOT remaining entries: a draw can close with slots
|
|
23
|
+
// unsold (the seller ends it early, or the reveal window lapses), and it can
|
|
24
|
+
// sell every slot while still open pending the reveal. Only the status field
|
|
25
|
+
// answers "can someone still enter this".
|
|
26
|
+
isAvailable: (row) => row[PRODUCT_FIELDS.PRIZE_REVEAL_STATUS] !==
|
|
27
|
+
PRODUCT_FIELDS.PRIZE_REVEAL_STATUS_VALUES.CLOSED,
|
|
28
|
+
unavailableClauses: [
|
|
29
|
+
{
|
|
30
|
+
field: PRODUCT_FIELDS.PRIZE_REVEAL_STATUS,
|
|
31
|
+
op: "eq",
|
|
32
|
+
value: PRODUCT_FIELDS.PRIZE_REVEAL_STATUS_VALUES.CLOSED,
|
|
33
|
+
},
|
|
34
|
+
{ field: PRODUCT_FIELDS.AVAILABLE_QUANTITY, op: "eq", value: 0 },
|
|
35
|
+
],
|
|
21
36
|
sortOptions: PRIZE_DRAW_SORT_OPTIONS,
|
|
22
37
|
publicSortOptions: PRIZE_DRAW_PUBLIC_SORT_OPTIONS,
|
|
23
38
|
extraFacetKeys: [TABLE_KEYS.PRIZE_REVEAL_STATUS],
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { alwaysAvailable } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "standard";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,8 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "sold";
|
|
21
|
+
isAvailable: typeof alwaysAvailable;
|
|
22
|
+
unavailableClauses: readonly import("../availability").UnavailableClause[];
|
|
20
23
|
sortOptions: readonly [{
|
|
21
24
|
readonly value: string;
|
|
22
25
|
readonly label: "Newest First";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
|
+
import { alwaysAvailable, STOCK_ONLY_UNAVAILABLE_CLAUSES, } from "../availability";
|
|
2
3
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
4
|
import { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
4
5
|
export const LISTING_TYPE = "standard";
|
|
@@ -17,6 +18,10 @@ export const config = {
|
|
|
17
18
|
chipLabel: "Standard",
|
|
18
19
|
browseRoute: String(ROUTES.PUBLIC.PRODUCTS),
|
|
19
20
|
hideDefault: "sold",
|
|
21
|
+
// Runs out rather than ending — no time dimension, so the shared
|
|
22
|
+
// stock-only rules are the whole story for this type.
|
|
23
|
+
isAvailable: alwaysAvailable,
|
|
24
|
+
unavailableClauses: STOCK_ONLY_UNAVAILABLE_CLAUSES,
|
|
20
25
|
sortOptions: STANDARD_SORT_OPTIONS,
|
|
21
26
|
publicSortOptions: STANDARD_PUBLIC_SORT_OPTIONS,
|
|
22
27
|
extraFacetKeys: [],
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { alwaysAvailable } from "../availability";
|
|
1
2
|
export declare const LISTING_TYPE: "stickers";
|
|
2
3
|
export declare const capability: import("../capabilities").ListingTypeCapability;
|
|
3
4
|
export declare const config: {
|
|
@@ -17,6 +18,8 @@ export declare const config: {
|
|
|
17
18
|
chipLabel: string;
|
|
18
19
|
browseRoute: string;
|
|
19
20
|
hideDefault: "sold";
|
|
21
|
+
isAvailable: typeof alwaysAvailable;
|
|
22
|
+
unavailableClauses: readonly import("../availability").UnavailableClause[];
|
|
20
23
|
sortOptions: readonly [{
|
|
21
24
|
readonly value: string;
|
|
22
25
|
readonly label: "Newest First";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LISTING_TYPE_CAPABILITIES } from "../capabilities";
|
|
2
|
+
import { alwaysAvailable, STOCK_ONLY_UNAVAILABLE_CLAUSES, } from "../availability";
|
|
2
3
|
import { ROUTES } from "../../../../next/routing/route-map";
|
|
3
4
|
import { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, } from "../../../../features/products/constants/sieve";
|
|
4
5
|
export const LISTING_TYPE = "stickers";
|
|
@@ -20,6 +21,10 @@ export const config = {
|
|
|
20
21
|
// a `/stickers` route that does not exist.
|
|
21
22
|
browseRoute: String(ROUTES.PUBLIC.ART),
|
|
22
23
|
hideDefault: "sold",
|
|
24
|
+
// Runs out rather than ending — no time dimension, so the shared
|
|
25
|
+
// stock-only rules are the whole story for this type.
|
|
26
|
+
isAvailable: alwaysAvailable,
|
|
27
|
+
unavailableClauses: STOCK_ONLY_UNAVAILABLE_CLAUSES,
|
|
23
28
|
sortOptions: STANDARD_SORT_OPTIONS,
|
|
24
29
|
publicSortOptions: STANDARD_PUBLIC_SORT_OPTIONS,
|
|
25
30
|
extraFacetKeys: [],
|
package/dist/client.d.ts
CHANGED
|
@@ -112,6 +112,17 @@ export { useBulkSelection } from "./react/hooks/useBulkSelection";
|
|
|
112
112
|
export type { UseBulkSelectionOptions, UseBulkSelectionReturn } from "./react/hooks/useBulkSelection";
|
|
113
113
|
export { useEntityDelete } from "./react/hooks/useEntityDelete";
|
|
114
114
|
export type { UseEntityDeleteOptions, UseEntityDeleteReturn } from "./react/hooks/useEntityDelete";
|
|
115
|
+
export { storeCategoryFormSchema, storeCategoryCreateSchema, type StoreCategoryFormValues, } from "./features/store-extensions/schemas/store-category-form";
|
|
116
|
+
export { payoutMethodFormSchema, payoutMethodCreateSchema, payoutMethodUpdateSchema, type PayoutMethodFormValues, } from "./features/store-extensions/schemas/payout-method-form";
|
|
117
|
+
export { groupedListingFormSchema, groupedListingCreateSchema, groupedListingUpdateSchema, type GroupedListingFormValues, } from "./features/grouped/schemas/grouped-listing-form";
|
|
118
|
+
export { navItemFormSchema, navItemCreateSchema, navItemUpdateSchema, type NavItemFormValues, } from "./features/admin/schemas/nav-item-form";
|
|
119
|
+
export { customRoleFormSchema, customRoleCreateSchema, customRoleUpdateSchema, isKnownPermission, type CustomRoleFormValues, } from "./features/store-extensions/schemas/custom-role-form";
|
|
120
|
+
export { SCAMMER_STATUS_LABEL, SCAMMER_STATUS_BADGE, SCAMMER_STATUS_OPTIONS, toScammerStatus, } from "./features/scams/constants/scammer-status-display";
|
|
121
|
+
export { ReviewDecisionModal, type ReviewDecisionModalProps, } from "./features/store-extensions/components/ReviewDecisionModal";
|
|
122
|
+
export { moderationReviewFormSchema, moderationReviewUpdateSchema, MODERATION_REVIEWER_STATUSES, type ModerationReviewFormValues, } from "./features/store-extensions/schemas/moderation-review-form";
|
|
123
|
+
export { reportReviewFormSchema, reportReviewUpdateSchema, REPORT_REVIEWER_STATUSES, REPORT_TERMINAL_STATUSES, type ReportReviewFormValues, } from "./features/store-extensions/schemas/report-review-form";
|
|
124
|
+
export { shippingConfigFormSchema, shippingConfigCreateSchema, shippingConfigUpdateSchema, type ShippingConfigFormValues, } from "./features/store-extensions/schemas/shipping-config-form";
|
|
125
|
+
export { listingTemplateFormSchema, listingTemplateCreateSchema, listingTemplateUpdateSchema, type ListingTemplateFormValues, } from "./features/store-extensions/schemas/listing-template-form";
|
|
115
126
|
export { ROUTES, PUBLIC_ROUTES, PROTECTED_ROUTES, AUTH_ROUTES } from "./constants/index";
|
|
116
127
|
export { SORT_DIR, sortBy } from "./constants/sort";
|
|
117
128
|
export { SIEVE_OP, sieveFilter, sieveAnd, sieveMultiEq } from "./utils/sieve-builder";
|
|
@@ -139,7 +150,7 @@ export { OtpInput } from "./ui/components/OtpInput";
|
|
|
139
150
|
export type { OtpInputProps } from "./ui/components/OtpInput";
|
|
140
151
|
export { DateInput, DateRangeInput } from "./ui/components/DateInput";
|
|
141
152
|
export type { DateInputProps, DateRangeInputProps } from "./ui/components/DateInput";
|
|
142
|
-
export type { FormShellProviderProps, FormShellStep, FormShellContextValue, UseFormShellStateResult } from "./ui/forms";
|
|
153
|
+
export type { FormShellProviderProps, FormShellStep, FormShellNav, FormShellContextValue, UseFormShellStateResult } from "./ui/forms";
|
|
143
154
|
export { FormShellProvider, FormShellContext, useFormShell, useFormShellState, applyZodIssues } from "./ui/forms";
|
|
144
155
|
export type { FieldInputProps } from "./ui/forms";
|
|
145
156
|
export { FieldInput } from "./ui/forms";
|
|
@@ -288,8 +299,6 @@ export { ProductFeaturesProvider, useProductFeatures, } from "./features/product
|
|
|
288
299
|
export type { ProductFeaturesProviderProps } from "./features/products/components/ProductFeaturesContext";
|
|
289
300
|
export { FeatureBadge, FeatureBadgeList } from "./features/products/components/FeatureBadge";
|
|
290
301
|
export type { FeatureBadgeProps, FeatureBadgeListProps, } from "./features/products/components/FeatureBadge";
|
|
291
|
-
export { SellerOffersPanel } from "./features/seller/components/SellerOffersPanel";
|
|
292
|
-
export type { SellerOffersPanelProps, SellerOfferAction } from "./features/seller/components/SellerOffersPanel";
|
|
293
302
|
export { UserOffersPanel } from "./features/account/components/UserOffersPanel";
|
|
294
303
|
export type { UserOffersPanelProps } from "./features/account/components/UserOffersPanel";
|
|
295
304
|
export { SellerDashboardView as StoreDashboardView, SellerDashboardView, useSellerDashboard as useStoreDashboard, useSellerDashboard } from "./features/seller/index";
|
|
@@ -308,6 +317,8 @@ export { OrderAddonBadges } from "./features/orders/components/OrderAddonBadges"
|
|
|
308
317
|
export type { OrderAddonBadgesOrder, OrderAddonBadgesProps } from "./features/orders/components/OrderAddonBadges";
|
|
309
318
|
export { MANUAL_PAYMENT_METHODS, isManualPaymentMethod, PAYMENT_REVIEW_QUEUE_MODES, isPaymentReviewQueueMode, PAYMENT_WINDOW_MINUTES, } from "./features/orders/constants/payment-window";
|
|
310
319
|
export type { PaymentReviewQueueMode } from "./features/orders/constants/payment-window";
|
|
320
|
+
export { ORDER_SCOPE_VALUES, ORDER_SCOPE_TABS, isOrderScope, statusesForScope, mergeOrderScopeFilter, } from "./features/orders/constants/order-scope";
|
|
321
|
+
export type { OrderScope } from "./features/orders/constants/order-scope";
|
|
311
322
|
export { UserOrderTrackView } from "./features/account/components/UserOrderTrackView";
|
|
312
323
|
export type { UserOrderTrackViewProps, UserOrderTrackViewLabels } from "./features/account/components/UserOrderTrackView";
|
|
313
324
|
export { useCouponValidate } from "./features/promotions/hooks/useCouponValidate";
|
|
@@ -381,7 +392,7 @@ export { SellerDigitalCodesView } from "./features/seller/components/SellerDigit
|
|
|
381
392
|
export type { SellerDigitalCodesViewProps } from "./features/seller/components/SellerDigitalCodesView";
|
|
382
393
|
export { SellerLiveView } from "./features/seller/components/SellerLiveView";
|
|
383
394
|
export type { SellerLiveViewProps } from "./features/seller/components/SellerLiveView";
|
|
384
|
-
export { SCHEMAS, lookupApiSchema, lookupFirestoreSchema, } from "./schemas/index";
|
|
395
|
+
export { SCHEMAS, lookupApiSchema, lookupFormSchema, lookupFirestoreSchema, } from "./schemas/index";
|
|
385
396
|
export type { ApiRouteKey, ApiRouteSchema, FirestoreDocument, FirestoreValue, FormFieldValue, FormValues, HttpVerb, JsonArray, JsonObject, JsonObjectWithUndefined, JsonPrimitive, JsonValue, JsonValueWithUndefined, RegisteredApiRouteKey, RegisteredFirestoreCollection, RegisteredFormId, RegisteredRtdbChannel, RegisteredSieveCollection, RegisteredStorageOp, RegisteredWebhookProvider, RegistryEntry, SchemaRegistry, SchemasShape, WebhookSchemaBucket, } from "./schemas/index";
|
|
386
397
|
export { normalizeError, getErrorMessage, isApiNormalized, isAppNormalized, isFirebaseAuthNormalized, isFirebaseFirestoreNormalized, isFirebaseStorageNormalized, isNativeNormalized, isNetworkNormalized, isUnknownNormalized, isZodNormalized, } from "./errors/normalize";
|
|
387
398
|
export type { NormalizedError, NormalizedApiError, NormalizedAppError, NormalizedFirebaseAuthError, NormalizedFirebaseFirestoreError, NormalizedFirebaseStorageError, NormalizedNativeError, NormalizedNetworkError, NormalizedUnknownThrownValue, NormalizedZodError, } from "./errors/normalize";
|
|
@@ -390,7 +401,7 @@ export type { PaymentProofReviewMessageInput } from "./features/whatsapp-bot/typ
|
|
|
390
401
|
export type { AdminNotificationDocument, ItemRequestDocument, ModerationQueueDocument, ReportDocument, CustomRoleDocument, AnalyticsCardDocument, ListingTemplateDocument, } from "./features/store-extensions/index";
|
|
391
402
|
export { CommandPalette, useCommandPaletteHotkey } from "./features/shell/index";
|
|
392
403
|
export type { CommandPaletteGroup } from "./features/shell/index";
|
|
393
|
-
export { AdminBlogEditorView, AdminBundleEditorView, AdminCarouselEditorView, AdminCategoryEditorView, AdminCouponEditorView, AdminFaqEditorView, AdminOrderEditorView, AdminPayoutMarkPaidModal, AdminAuditLogView, ViewAuditLogEntryModal, AdminProductEditorView, AdminScammerEditorView, AdminStoreEditorView, AdminSublistingCategoryEditorView, AdminSupportTicketDetailView, } from "./features/admin/index";
|
|
404
|
+
export { AdminBlogEditorView, AdminBundleEditorView, AdminCarouselEditorView, AdminCategoryEditorView, AdminCouponEditorView, AdminFaqEditorView, AdminFeatureEditorView, AdminOrderEditorView, AdminPayoutMarkPaidModal, AdminAuditLogView, ViewAuditLogEntryModal, AdminProductEditorView, AdminScammerEditorView, AdminStoreEditorView, AdminSublistingCategoryEditorView, AdminSupportTicketDetailView, } from "./features/admin/index";
|
|
394
405
|
export type { AdminStoreEditorViewProps, AdminPayoutMarkPaidModalProps, AdminAuditLogViewProps, AuditLogEntryDetail, ViewAuditLogEntryModalProps } from "./features/admin/index";
|
|
395
406
|
export { ADMIN_CHECKOUT_BYPASS_FLAG_KEY } from "./features/admin/schemas/firestore";
|
|
396
407
|
export { SpinWheelView, EventRaffleEntryForm } from "./features/events/index";
|
|
@@ -408,8 +419,10 @@ export { useProduct } from "./features/products/index";
|
|
|
408
419
|
export type { ProductDocument } from "./features/products/index";
|
|
409
420
|
export { BUNDLE_COPY } from "./_internal/shared/features/categories/bundle-copy";
|
|
410
421
|
export { useSiteSettings } from "./core/index";
|
|
411
|
-
export { checkEmiEligibility, computeEmiSchedule, } from "./_internal/shared/features/emi/schedule";
|
|
412
|
-
export type { EmiSettings } from "./_internal/shared/features/emi/schedule";
|
|
422
|
+
export { checkEmiEligibility, computeEmiSchedule, computeBuyerEmiQuote, } from "./_internal/shared/features/emi/schedule";
|
|
423
|
+
export type { EmiSettings, BuyerEmiQuote } from "./_internal/shared/features/emi/schedule";
|
|
424
|
+
export type { BuyerFacingFees, BuyerEmiSettings, } from "./_internal/shared/features/site-settings/fees";
|
|
425
|
+
export type { PublicSiteSettings } from "./_internal/shared/features/site-settings/types";
|
|
413
426
|
export { computeCodHandlingFee } from "./_internal/shared/fees/calculator";
|
|
414
427
|
export type { CodHandlingFeeRates, WhatsAppNotifyFeeRates, GiftWrapFeeRates, ShipmentProtectionFeeRates, } from "./_internal/shared/fees/calculator";
|
|
415
428
|
export { FAQPageContent } from "./features/faq/index";
|