@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
package/dist/client.js
CHANGED
|
@@ -178,6 +178,24 @@ export { useUrlTable } from "./react/hooks/useUrlTable";
|
|
|
178
178
|
export { useBulkSelection } from "./react/hooks/useBulkSelection";
|
|
179
179
|
export { useEntityDelete } from "./react/hooks/useEntityDelete";
|
|
180
180
|
// Client-safe constants, UI primitives, and views
|
|
181
|
+
// Storefront-category form schema — isomorphic (the page parses it client-side,
|
|
182
|
+
// the route parses the same one server-side).
|
|
183
|
+
export { storeCategoryFormSchema, storeCategoryCreateSchema, } from "./features/store-extensions/schemas/store-category-form";
|
|
184
|
+
// Payout-method + listing-template form schemas — isomorphic: the pages parse
|
|
185
|
+
// them client-side and the routes parse the SAME ones server-side.
|
|
186
|
+
export { payoutMethodFormSchema, payoutMethodCreateSchema, payoutMethodUpdateSchema, } from "./features/store-extensions/schemas/payout-method-form";
|
|
187
|
+
export { groupedListingFormSchema, groupedListingCreateSchema, groupedListingUpdateSchema, } from "./features/grouped/schemas/grouped-listing-form";
|
|
188
|
+
export { navItemFormSchema, navItemCreateSchema, navItemUpdateSchema, } from "./features/admin/schemas/nav-item-form";
|
|
189
|
+
export { customRoleFormSchema, customRoleCreateSchema, customRoleUpdateSchema, isKnownPermission, } from "./features/store-extensions/schemas/custom-role-form";
|
|
190
|
+
// Client-only: deliberately NOT added to `features/store-extensions/index.ts`,
|
|
191
|
+
// which the schema registry's import chain reaches — a "use client" React tree
|
|
192
|
+
// re-exported from there would be pulled into every API route (the W4 trap).
|
|
193
|
+
export { SCAMMER_STATUS_LABEL, SCAMMER_STATUS_BADGE, SCAMMER_STATUS_OPTIONS, toScammerStatus, } from "./features/scams/constants/scammer-status-display";
|
|
194
|
+
export { ReviewDecisionModal, } from "./features/store-extensions/components/ReviewDecisionModal";
|
|
195
|
+
export { moderationReviewFormSchema, moderationReviewUpdateSchema, MODERATION_REVIEWER_STATUSES, } from "./features/store-extensions/schemas/moderation-review-form";
|
|
196
|
+
export { reportReviewFormSchema, reportReviewUpdateSchema, REPORT_REVIEWER_STATUSES, REPORT_TERMINAL_STATUSES, } from "./features/store-extensions/schemas/report-review-form";
|
|
197
|
+
export { shippingConfigFormSchema, shippingConfigCreateSchema, shippingConfigUpdateSchema, } from "./features/store-extensions/schemas/shipping-config-form";
|
|
198
|
+
export { listingTemplateFormSchema, listingTemplateCreateSchema, listingTemplateUpdateSchema, } from "./features/store-extensions/schemas/listing-template-form";
|
|
181
199
|
export { ROUTES, PUBLIC_ROUTES, PROTECTED_ROUTES, AUTH_ROUTES } from "./constants/index";
|
|
182
200
|
export { SORT_DIR, sortBy } from "./constants/sort";
|
|
183
201
|
export { SIEVE_OP, sieveFilter, sieveAnd, sieveMultiEq } from "./utils/sieve-builder";
|
|
@@ -295,7 +313,6 @@ export { ProductDetailActions } from "./features/products/components/ProductDeta
|
|
|
295
313
|
// productFeatures (FI6) — client-safe components + context
|
|
296
314
|
export { ProductFeaturesProvider, useProductFeatures, } from "./features/products/components/ProductFeaturesContext";
|
|
297
315
|
export { FeatureBadge, FeatureBadgeList } from "./features/products/components/FeatureBadge";
|
|
298
|
-
export { SellerOffersPanel } from "./features/seller/components/SellerOffersPanel";
|
|
299
316
|
export { UserOffersPanel } from "./features/account/components/UserOffersPanel";
|
|
300
317
|
export { SellerDashboardView as StoreDashboardView, SellerDashboardView, useSellerDashboard as useStoreDashboard, useSellerDashboard } from "./features/seller/index";
|
|
301
318
|
export { SellerPayoutSettingsView, SellerShippingView, SellerReviewsView, SellerPayoutRequestView, SellerAnalyticsStats, SellerTopProducts, SellerAnalyticsView, SellerPayoutsView, SellerCouponEditorView, SellerBidsView, SellerAddressesView, SellerPreOrdersView, SellerPrizeDrawsView, PrintCenterView, SellerOffersView, SellerGroupedListingsView, StoreGroupedListingsView, SellerAnalyticsAlertsView, StoreAnalyticsAlertsView, BarcodeField, FulfillmentView } from "./features/seller/components/index";
|
|
@@ -307,6 +324,7 @@ export { OrderAddonBadges } from "./features/orders/components/OrderAddonBadges"
|
|
|
307
324
|
// Manual-payment (cash / UPI / EMI) shared constants — pure data + predicates,
|
|
308
325
|
// no server deps. Used by the buyer proof-upload page and order-detail CTAs.
|
|
309
326
|
export { MANUAL_PAYMENT_METHODS, isManualPaymentMethod, PAYMENT_REVIEW_QUEUE_MODES, isPaymentReviewQueueMode, PAYMENT_WINDOW_MINUTES, } from "./features/orders/constants/payment-window";
|
|
327
|
+
export { ORDER_SCOPE_VALUES, ORDER_SCOPE_TABS, isOrderScope, statusesForScope, mergeOrderScopeFilter, } from "./features/orders/constants/order-scope";
|
|
310
328
|
export { UserOrderTrackView } from "./features/account/components/UserOrderTrackView";
|
|
311
329
|
export { useCouponValidate } from "./features/promotions/hooks/useCouponValidate";
|
|
312
330
|
export { BlogPostView } from "./features/blog/components/BlogPostView";
|
|
@@ -368,7 +386,7 @@ export { SellerLiveView } from "./features/seller/components/SellerLiveView";
|
|
|
368
386
|
// ── Central schema registry (W1) ──────────────────────────────────────────────
|
|
369
387
|
// Pure Zod, isomorphic — re-exported here so client code can resolve schemas
|
|
370
388
|
// without pulling in the full server barrel.
|
|
371
|
-
export { SCHEMAS, lookupApiSchema, lookupFirestoreSchema, } from "./schemas/index";
|
|
389
|
+
export { SCHEMAS, lookupApiSchema, lookupFormSchema, lookupFirestoreSchema, } from "./schemas/index";
|
|
372
390
|
// ── W3 catch-clause normalizer ──────────────────────────────────────────────
|
|
373
391
|
export { normalizeError, getErrorMessage, isApiNormalized, isAppNormalized, isFirebaseAuthNormalized, isFirebaseFirestoreNormalized, isFirebaseStorageNormalized, isNativeNormalized, isNetworkNormalized, isUnknownNormalized, isZodNormalized, } from "./errors/normalize";
|
|
374
392
|
// [CLIENT-SAFE] Pure wa.me share-link message builder — imported directly
|
|
@@ -376,7 +394,7 @@ export { normalizeError, getErrorMessage, isApiNormalized, isAppNormalized, isFi
|
|
|
376
394
|
// never touches the sibling crypto-importing helpers.
|
|
377
395
|
export { buildPaymentProofReviewMessage } from "./features/whatsapp-bot/helpers/payment-proof-message";
|
|
378
396
|
export { CommandPalette, useCommandPaletteHotkey } from "./features/shell/index";
|
|
379
|
-
export { AdminBlogEditorView, AdminBundleEditorView, AdminCarouselEditorView, AdminCategoryEditorView, AdminCouponEditorView, AdminFaqEditorView, AdminOrderEditorView, AdminPayoutMarkPaidModal, AdminAuditLogView, ViewAuditLogEntryModal, AdminProductEditorView, AdminScammerEditorView, AdminStoreEditorView, AdminSublistingCategoryEditorView, AdminSupportTicketDetailView, } from "./features/admin/index";
|
|
397
|
+
export { AdminBlogEditorView, AdminBundleEditorView, AdminCarouselEditorView, AdminCategoryEditorView, AdminCouponEditorView, AdminFaqEditorView, AdminFeatureEditorView, AdminOrderEditorView, AdminPayoutMarkPaidModal, AdminAuditLogView, ViewAuditLogEntryModal, AdminProductEditorView, AdminScammerEditorView, AdminStoreEditorView, AdminSublistingCategoryEditorView, AdminSupportTicketDetailView, } from "./features/admin/index";
|
|
380
398
|
export { ADMIN_CHECKOUT_BYPASS_FLAG_KEY } from "./features/admin/schemas/firestore";
|
|
381
399
|
export { SpinWheelView, EventRaffleEntryForm } from "./features/events/index";
|
|
382
400
|
export { Card, CardBody } from "./ui/index";
|
|
@@ -388,7 +406,7 @@ export { PrizeRevealModal } from "./features/products/components/PrizeRevealModa
|
|
|
388
406
|
export { useProduct } from "./features/products/index";
|
|
389
407
|
export { BUNDLE_COPY } from "./_internal/shared/features/categories/bundle-copy";
|
|
390
408
|
export { useSiteSettings } from "./core/index";
|
|
391
|
-
export { checkEmiEligibility, computeEmiSchedule, } from "./_internal/shared/features/emi/schedule";
|
|
409
|
+
export { checkEmiEligibility, computeEmiSchedule, computeBuyerEmiQuote, } from "./_internal/shared/features/emi/schedule";
|
|
392
410
|
export { computeCodHandlingFee } from "./_internal/shared/fees/calculator"; // reexport-from-internal-ok: pure fee-calc utility consumed directly by public checkout UI (CheckoutRouteClient.tsx), same category as the sibling computeEmiSchedule/checkEmiEligibility re-export two lines above
|
|
393
411
|
export { FAQPageContent } from "./features/faq/index";
|
|
394
412
|
export { CategoryInlineSelect } from "./features/seller/components/CategoryInlineSelect";
|
|
@@ -106,6 +106,8 @@ export declare const ADMIN_ENDPOINTS: {
|
|
|
106
106
|
readonly REVIEW_BY_ID: (id: string) => string;
|
|
107
107
|
readonly BIDS: "/api/admin/bids";
|
|
108
108
|
readonly BID_BY_ID: (id: string) => string;
|
|
109
|
+
readonly OFFERS: "/api/admin/offers";
|
|
110
|
+
readonly OFFER_BY_ID: (id: string) => string;
|
|
109
111
|
readonly BLOG: "/api/admin/blog";
|
|
110
112
|
readonly BLOG_BY_ID: (id: string) => string;
|
|
111
113
|
readonly BUNDLES: "/api/admin/bundles";
|
|
@@ -560,6 +562,8 @@ export declare const API_ENDPOINTS: {
|
|
|
560
562
|
readonly REVIEW_BY_ID: (id: string) => string;
|
|
561
563
|
readonly BIDS: "/api/admin/bids";
|
|
562
564
|
readonly BID_BY_ID: (id: string) => string;
|
|
565
|
+
readonly OFFERS: "/api/admin/offers";
|
|
566
|
+
readonly OFFER_BY_ID: (id: string) => string;
|
|
563
567
|
readonly BLOG: "/api/admin/blog";
|
|
564
568
|
readonly BLOG_BY_ID: (id: string) => string;
|
|
565
569
|
readonly BUNDLES: "/api/admin/bundles";
|
|
@@ -1016,6 +1020,8 @@ export declare const API_ROUTES: {
|
|
|
1016
1020
|
readonly REVIEW_BY_ID: (id: string) => string;
|
|
1017
1021
|
readonly BIDS: "/api/admin/bids";
|
|
1018
1022
|
readonly BID_BY_ID: (id: string) => string;
|
|
1023
|
+
readonly OFFERS: "/api/admin/offers";
|
|
1024
|
+
readonly OFFER_BY_ID: (id: string) => string;
|
|
1019
1025
|
readonly BLOG: "/api/admin/blog";
|
|
1020
1026
|
readonly BLOG_BY_ID: (id: string) => string;
|
|
1021
1027
|
readonly BUNDLES: "/api/admin/bundles";
|
|
@@ -133,6 +133,8 @@ export const ADMIN_ENDPOINTS = {
|
|
|
133
133
|
REVIEW_BY_ID: (id) => `/api/admin/reviews/${id}`,
|
|
134
134
|
BIDS: "/api/admin/bids",
|
|
135
135
|
BID_BY_ID: (id) => `/api/admin/bids/${id}`,
|
|
136
|
+
OFFERS: "/api/admin/offers",
|
|
137
|
+
OFFER_BY_ID: (id) => `/api/admin/offers/${id}`,
|
|
136
138
|
BLOG: "/api/admin/blog",
|
|
137
139
|
BLOG_BY_ID: (id) => `/api/admin/blog/${id}`,
|
|
138
140
|
BUNDLES: "/api/admin/bundles",
|
|
@@ -7,6 +7,30 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Consumer app re-exports from "@mohasinac/appkit" — never edit src/constants/field-names.ts directly.
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* The three-state scope every listing surface (public browse, store tabs,
|
|
12
|
+
* category/brand panels, admin/seller dashboards) offers as a tab bar.
|
|
13
|
+
*
|
|
14
|
+
* DELIBERATELY NOT a Firestore field. "Unavailable" means different things to
|
|
15
|
+
* different listing types — an auction ENDS, a product SELLS OUT, a prize draw
|
|
16
|
+
* CLOSES, a code pool DEPLETES — so there is no single column to filter on.
|
|
17
|
+
* The per-type meaning lives on each listing-type plugin
|
|
18
|
+
* (`isAvailable` / `unavailableClauses` in `_internal/shared/listing-types/`),
|
|
19
|
+
* and `availabilityTabsFor()` derives the middle tab's label from the plugin's
|
|
20
|
+
* `hideDefault`. Do not add a mirror field to ProductDocument to "simplify"
|
|
21
|
+
* this — a denormalised mirror drifts the first time a write path forgets it
|
|
22
|
+
* (Recurrent Root Cause #42).
|
|
23
|
+
*/
|
|
24
|
+
export declare const AVAILABILITY_VALUES: {
|
|
25
|
+
/** Still buyable / biddable / enterable. The default when the param is absent. */
|
|
26
|
+
readonly AVAILABLE: "available";
|
|
27
|
+
/** Sold out, ended, closed, or depleted — the archive. */
|
|
28
|
+
readonly UNAVAILABLE: "unavailable";
|
|
29
|
+
/** No availability predicate at all. The only scope with an exact total. */
|
|
30
|
+
readonly ALL: "all";
|
|
31
|
+
};
|
|
32
|
+
export type AvailabilityFilter = (typeof AVAILABILITY_VALUES)[keyof typeof AVAILABILITY_VALUES];
|
|
33
|
+
export declare function isAvailabilityFilter(value: string): value is AvailabilityFilter;
|
|
10
34
|
export declare const PRODUCT_FIELDS: {
|
|
11
35
|
readonly ID: "id";
|
|
12
36
|
readonly TITLE: "title";
|
|
@@ -81,6 +105,16 @@ export declare const PRODUCT_FIELDS: {
|
|
|
81
105
|
readonly IS_TEST_DATA: "isTestData";
|
|
82
106
|
readonly BIDS_HAVE_STARTED: "bidsHaveStarted";
|
|
83
107
|
readonly PRE_ORDER_CLOSED: "preOrderClosed";
|
|
108
|
+
/**
|
|
109
|
+
* Digital-code pool counters. NESTED under `digitalCode.*` on the document —
|
|
110
|
+
* reading `row.codesAvailable` at the top level silently returns `undefined`
|
|
111
|
+
* for every row, which is exactly the bug the old `isValidRelatedItem`
|
|
112
|
+
* carried. Both paths are allowlisted in the products repository's
|
|
113
|
+
* SIEVE_FIELDS.
|
|
114
|
+
*/
|
|
115
|
+
readonly DIGITAL_CODES_AVAILABLE: "digitalCode.codesAvailable";
|
|
116
|
+
readonly DIGITAL_CODE_POOL_SIZE: "digitalCode.codePoolSize";
|
|
117
|
+
readonly DIGITAL_CODE_DELIVERY_METHOD: "digitalCode.codeDeliveryMethod";
|
|
84
118
|
/**
|
|
85
119
|
* The Firestore field. NOTE the `Id` suffix: the URL/table key is
|
|
86
120
|
* `sublistingCategory` (TABLE_KEYS.SUBLISTING_CATEGORY) but the stored field
|
|
@@ -117,10 +151,9 @@ export declare const PRODUCT_FIELDS: {
|
|
|
117
151
|
readonly WINNER: "winner";
|
|
118
152
|
};
|
|
119
153
|
readonly PRE_ORDER_PRODUCTION_STATUS_VALUES: {
|
|
154
|
+
readonly UPCOMING: "upcoming";
|
|
120
155
|
readonly IN_PRODUCTION: "in_production";
|
|
121
|
-
readonly
|
|
122
|
-
readonly DELAYED: "delayed";
|
|
123
|
-
readonly CANCELLED: "cancelled";
|
|
156
|
+
readonly READY_TO_SHIP: "ready_to_ship";
|
|
124
157
|
};
|
|
125
158
|
readonly PRIZE_REVEAL_STATUS_VALUES: {
|
|
126
159
|
readonly PENDING: "pending";
|
|
@@ -212,9 +245,11 @@ export declare const ORDER_FIELDS: {
|
|
|
212
245
|
};
|
|
213
246
|
readonly PAYMENT_STATUS_VALUES: {
|
|
214
247
|
readonly PENDING: "pending";
|
|
248
|
+
readonly PROCESSING: "processing";
|
|
215
249
|
readonly PAID: "paid";
|
|
216
250
|
readonly FAILED: "failed";
|
|
217
251
|
readonly REFUNDED: "refunded";
|
|
252
|
+
readonly PARTIAL_REFUND: "partial_refund";
|
|
218
253
|
};
|
|
219
254
|
readonly PAYOUT_STATUS_VALUES: {
|
|
220
255
|
readonly ELIGIBLE: "eligible";
|
|
@@ -288,6 +323,8 @@ export declare const BID_FIELDS: {
|
|
|
288
323
|
readonly WON: "won";
|
|
289
324
|
readonly LOST: "lost";
|
|
290
325
|
readonly CANCELLED: "cancelled";
|
|
326
|
+
/** Won, then the buyer let the payment window lapse. Was missing here. */
|
|
327
|
+
readonly FORFEITED: "forfeited";
|
|
291
328
|
};
|
|
292
329
|
};
|
|
293
330
|
export declare const AD_FIELDS: {
|
|
@@ -333,14 +370,25 @@ export declare const EVENT_FIELDS: {
|
|
|
333
370
|
readonly ALLOW_GUEST_PARTICIPATION: "allowGuestParticipation";
|
|
334
371
|
readonly CREATED_AT: "createdAt";
|
|
335
372
|
readonly UPDATED_AT: "updatedAt";
|
|
373
|
+
/**
|
|
374
|
+
* Mirrors the `EventStatus` union in `features/events/types/index.ts`, which
|
|
375
|
+
* is the source of truth. A `PUBLISHED: "published"` entry lived here until
|
|
376
|
+
* 2026-08-24 — `EventStatus` never had that value, so any filter built from
|
|
377
|
+
* it matched zero rows forever. It had no consumers and was removed; verified
|
|
378
|
+
* by grep before deleting (Root Cause #34).
|
|
379
|
+
*/
|
|
336
380
|
readonly STATUS_VALUES: {
|
|
337
381
|
readonly DRAFT: "draft";
|
|
338
|
-
readonly PUBLISHED: "published";
|
|
339
382
|
readonly ACTIVE: "active";
|
|
383
|
+
readonly PAUSED: "paused";
|
|
340
384
|
readonly ENDED: "ended";
|
|
341
385
|
readonly CANCELLED: "cancelled";
|
|
342
|
-
readonly PAUSED: "paused";
|
|
343
386
|
};
|
|
387
|
+
/**
|
|
388
|
+
* Mirrors the `EventType` union. `LOTTERY` was missing until 2026-08-24,
|
|
389
|
+
* which is why `events-seed-data.ts` had to write `type: "lottery"` as a raw
|
|
390
|
+
* string literal while every other row used this map.
|
|
391
|
+
*/
|
|
344
392
|
readonly TYPE_VALUES: {
|
|
345
393
|
readonly SALE: "sale";
|
|
346
394
|
readonly OFFER: "offer";
|
|
@@ -349,6 +397,7 @@ export declare const EVENT_FIELDS: {
|
|
|
349
397
|
readonly FEEDBACK: "feedback";
|
|
350
398
|
readonly RAFFLE: "raffle";
|
|
351
399
|
readonly SPIN_WHEEL: "spin_wheel";
|
|
400
|
+
readonly LOTTERY: "lottery";
|
|
352
401
|
};
|
|
353
402
|
readonly RAFFLE_TYPE_VALUES: {
|
|
354
403
|
readonly OPEN_RAFFLE: "open_raffle";
|
|
@@ -397,7 +446,6 @@ export declare const PAYOUT_FIELDS: {
|
|
|
397
446
|
readonly PROCESSING: "processing";
|
|
398
447
|
readonly PAID: "paid";
|
|
399
448
|
readonly FAILED: "failed";
|
|
400
|
-
readonly CANCELLED: "cancelled";
|
|
401
449
|
};
|
|
402
450
|
};
|
|
403
451
|
export declare const STORE_FIELDS: {
|
|
@@ -641,9 +689,10 @@ export declare const SCAMMER_FIELDS: {
|
|
|
641
689
|
readonly VERIFIED_BY: "verifiedBy";
|
|
642
690
|
readonly CREATED_AT: "createdAt";
|
|
643
691
|
readonly STATUS_VALUES: {
|
|
644
|
-
readonly
|
|
692
|
+
readonly PENDING_REVIEW: "pending_review";
|
|
645
693
|
readonly VERIFIED: "verified";
|
|
646
694
|
readonly REJECTED: "rejected";
|
|
695
|
+
readonly REMOVED: "removed";
|
|
647
696
|
};
|
|
648
697
|
};
|
|
649
698
|
export declare const SUPPORT_TICKET_FIELDS: {
|
|
@@ -666,7 +715,6 @@ export declare const SUPPORT_TICKET_FIELDS: {
|
|
|
666
715
|
readonly PRIORITY_VALUES: {
|
|
667
716
|
readonly LOW: "low";
|
|
668
717
|
readonly NORMAL: "normal";
|
|
669
|
-
readonly MEDIUM: "medium";
|
|
670
718
|
readonly HIGH: "high";
|
|
671
719
|
readonly URGENT: "urgent";
|
|
672
720
|
};
|
|
@@ -857,6 +905,7 @@ export declare const SITE_SETTINGS_FIELDS: {
|
|
|
857
905
|
readonly NOTIFICATIONS: "featureFlags.notifications";
|
|
858
906
|
readonly SELLER_REGISTRATION: "featureFlags.sellerRegistration";
|
|
859
907
|
readonly PRE_ORDERS: "featureFlags.preOrders";
|
|
908
|
+
readonly OFFERS: "featureFlags.offers";
|
|
860
909
|
};
|
|
861
910
|
readonly LEGAL_PAGES: "legalPages";
|
|
862
911
|
readonly SHIPPING: "shipping";
|
|
@@ -8,6 +8,34 @@
|
|
|
8
8
|
* Consumer app re-exports from "@mohasinac/appkit" — never edit src/constants/field-names.ts directly.
|
|
9
9
|
*/
|
|
10
10
|
// ============================================================================
|
|
11
|
+
// AVAILABILITY SCOPE (not a stored field — a derived listing-surface scope)
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* The three-state scope every listing surface (public browse, store tabs,
|
|
15
|
+
* category/brand panels, admin/seller dashboards) offers as a tab bar.
|
|
16
|
+
*
|
|
17
|
+
* DELIBERATELY NOT a Firestore field. "Unavailable" means different things to
|
|
18
|
+
* different listing types — an auction ENDS, a product SELLS OUT, a prize draw
|
|
19
|
+
* CLOSES, a code pool DEPLETES — so there is no single column to filter on.
|
|
20
|
+
* The per-type meaning lives on each listing-type plugin
|
|
21
|
+
* (`isAvailable` / `unavailableClauses` in `_internal/shared/listing-types/`),
|
|
22
|
+
* and `availabilityTabsFor()` derives the middle tab's label from the plugin's
|
|
23
|
+
* `hideDefault`. Do not add a mirror field to ProductDocument to "simplify"
|
|
24
|
+
* this — a denormalised mirror drifts the first time a write path forgets it
|
|
25
|
+
* (Recurrent Root Cause #42).
|
|
26
|
+
*/
|
|
27
|
+
export const AVAILABILITY_VALUES = {
|
|
28
|
+
/** Still buyable / biddable / enterable. The default when the param is absent. */
|
|
29
|
+
AVAILABLE: "available",
|
|
30
|
+
/** Sold out, ended, closed, or depleted — the archive. */
|
|
31
|
+
UNAVAILABLE: "unavailable",
|
|
32
|
+
/** No availability predicate at all. The only scope with an exact total. */
|
|
33
|
+
ALL: "all",
|
|
34
|
+
};
|
|
35
|
+
export function isAvailabilityFilter(value) {
|
|
36
|
+
return Object.values(AVAILABILITY_VALUES).includes(value);
|
|
37
|
+
}
|
|
38
|
+
// ============================================================================
|
|
11
39
|
// PRODUCT FIELDS
|
|
12
40
|
// ============================================================================
|
|
13
41
|
export const PRODUCT_FIELDS = {
|
|
@@ -86,6 +114,16 @@ export const PRODUCT_FIELDS = {
|
|
|
86
114
|
IS_TEST_DATA: "isTestData",
|
|
87
115
|
BIDS_HAVE_STARTED: "bidsHaveStarted",
|
|
88
116
|
PRE_ORDER_CLOSED: "preOrderClosed",
|
|
117
|
+
/**
|
|
118
|
+
* Digital-code pool counters. NESTED under `digitalCode.*` on the document —
|
|
119
|
+
* reading `row.codesAvailable` at the top level silently returns `undefined`
|
|
120
|
+
* for every row, which is exactly the bug the old `isValidRelatedItem`
|
|
121
|
+
* carried. Both paths are allowlisted in the products repository's
|
|
122
|
+
* SIEVE_FIELDS.
|
|
123
|
+
*/
|
|
124
|
+
DIGITAL_CODES_AVAILABLE: "digitalCode.codesAvailable",
|
|
125
|
+
DIGITAL_CODE_POOL_SIZE: "digitalCode.codePoolSize",
|
|
126
|
+
DIGITAL_CODE_DELIVERY_METHOD: "digitalCode.codeDeliveryMethod",
|
|
89
127
|
/**
|
|
90
128
|
* The Firestore field. NOTE the `Id` suffix: the URL/table key is
|
|
91
129
|
* `sublistingCategory` (TABLE_KEYS.SUBLISTING_CATEGORY) but the stored field
|
|
@@ -121,11 +159,19 @@ export const PRODUCT_FIELDS = {
|
|
|
121
159
|
SELLER: "seller",
|
|
122
160
|
WINNER: "winner",
|
|
123
161
|
},
|
|
162
|
+
/*
|
|
163
|
+
* Corrected 2026-08-24 (W3). This block used to read
|
|
164
|
+
* {in_production, ready, delayed, cancelled} — and `ready`, `delayed` and
|
|
165
|
+
* `cancelled` were values no product has ever held. `ProductDocument`
|
|
166
|
+
* declares "upcoming" | "in_production" | "ready_to_ship", the write schema
|
|
167
|
+
* agrees, and all 9 seeded pre-orders store one of those three. It had zero
|
|
168
|
+
* consumers, which is the only reason it never produced a visibly broken
|
|
169
|
+
* filter chip (Recurrent Root Cause #33).
|
|
170
|
+
*/
|
|
124
171
|
PRE_ORDER_PRODUCTION_STATUS_VALUES: {
|
|
172
|
+
UPCOMING: "upcoming",
|
|
125
173
|
IN_PRODUCTION: "in_production",
|
|
126
|
-
|
|
127
|
-
DELAYED: "delayed",
|
|
128
|
-
CANCELLED: "cancelled",
|
|
174
|
+
READY_TO_SHIP: "ready_to_ship",
|
|
129
175
|
},
|
|
130
176
|
PRIZE_REVEAL_STATUS_VALUES: {
|
|
131
177
|
PENDING: "pending",
|
|
@@ -223,11 +269,19 @@ export const ORDER_FIELDS = {
|
|
|
223
269
|
RETURN_REQUESTED: "return_requested",
|
|
224
270
|
REFUNDED: "refunded",
|
|
225
271
|
},
|
|
272
|
+
/*
|
|
273
|
+
* Corrected 2026-08-24 (W3) — `processing` and `partial_refund` were
|
|
274
|
+
* missing, so this listed 4 of the real 6. `PaymentStatus`
|
|
275
|
+
* (features/orders/types/index.ts) is the source; a partial refund is a
|
|
276
|
+
* state real orders reach, and W2 put it on the order timeline.
|
|
277
|
+
*/
|
|
226
278
|
PAYMENT_STATUS_VALUES: {
|
|
227
279
|
PENDING: "pending",
|
|
280
|
+
PROCESSING: "processing",
|
|
228
281
|
PAID: "paid",
|
|
229
282
|
FAILED: "failed",
|
|
230
283
|
REFUNDED: "refunded",
|
|
284
|
+
PARTIAL_REFUND: "partial_refund",
|
|
231
285
|
},
|
|
232
286
|
PAYOUT_STATUS_VALUES: {
|
|
233
287
|
ELIGIBLE: "eligible",
|
|
@@ -301,12 +355,22 @@ export const BID_FIELDS = {
|
|
|
301
355
|
AUTO_MAX_BID: "autoMaxBid",
|
|
302
356
|
CREATED_AT: "createdAt",
|
|
303
357
|
UPDATED_AT: "updatedAt",
|
|
358
|
+
/*
|
|
359
|
+
* Corrected 2026-08-24 (W3). Verified against the feature's own union AND
|
|
360
|
+
* against what is actually stored. This file is a deliberate LEAF — it
|
|
361
|
+
* imports nothing, and `features/products/types/index.ts` imports IT — so it
|
|
362
|
+
* cannot re-export the feature unions without a cycle. The values are
|
|
363
|
+
* therefore duplicated on purpose, and `audit-field-names-union-parity`
|
|
364
|
+
* blocks them drifting again.
|
|
365
|
+
*/
|
|
304
366
|
STATUS_VALUES: {
|
|
305
367
|
ACTIVE: "active",
|
|
306
368
|
OUTBID: "outbid",
|
|
307
369
|
WON: "won",
|
|
308
370
|
LOST: "lost",
|
|
309
371
|
CANCELLED: "cancelled",
|
|
372
|
+
/** Won, then the buyer let the payment window lapse. Was missing here. */
|
|
373
|
+
FORFEITED: "forfeited",
|
|
310
374
|
},
|
|
311
375
|
};
|
|
312
376
|
// ============================================================================
|
|
@@ -361,14 +425,25 @@ export const EVENT_FIELDS = {
|
|
|
361
425
|
ALLOW_GUEST_PARTICIPATION: "allowGuestParticipation",
|
|
362
426
|
CREATED_AT: "createdAt",
|
|
363
427
|
UPDATED_AT: "updatedAt",
|
|
428
|
+
/**
|
|
429
|
+
* Mirrors the `EventStatus` union in `features/events/types/index.ts`, which
|
|
430
|
+
* is the source of truth. A `PUBLISHED: "published"` entry lived here until
|
|
431
|
+
* 2026-08-24 — `EventStatus` never had that value, so any filter built from
|
|
432
|
+
* it matched zero rows forever. It had no consumers and was removed; verified
|
|
433
|
+
* by grep before deleting (Root Cause #34).
|
|
434
|
+
*/
|
|
364
435
|
STATUS_VALUES: {
|
|
365
436
|
DRAFT: "draft",
|
|
366
|
-
PUBLISHED: "published",
|
|
367
437
|
ACTIVE: "active",
|
|
438
|
+
PAUSED: "paused",
|
|
368
439
|
ENDED: "ended",
|
|
369
440
|
CANCELLED: "cancelled",
|
|
370
|
-
PAUSED: "paused",
|
|
371
441
|
},
|
|
442
|
+
/**
|
|
443
|
+
* Mirrors the `EventType` union. `LOTTERY` was missing until 2026-08-24,
|
|
444
|
+
* which is why `events-seed-data.ts` had to write `type: "lottery"` as a raw
|
|
445
|
+
* string literal while every other row used this map.
|
|
446
|
+
*/
|
|
372
447
|
TYPE_VALUES: {
|
|
373
448
|
SALE: "sale",
|
|
374
449
|
OFFER: "offer",
|
|
@@ -377,6 +452,7 @@ export const EVENT_FIELDS = {
|
|
|
377
452
|
FEEDBACK: "feedback",
|
|
378
453
|
RAFFLE: "raffle",
|
|
379
454
|
SPIN_WHEEL: "spin_wheel",
|
|
455
|
+
LOTTERY: "lottery",
|
|
380
456
|
},
|
|
381
457
|
RAFFLE_TYPE_VALUES: {
|
|
382
458
|
OPEN_RAFFLE: "open_raffle",
|
|
@@ -426,12 +502,17 @@ export const PAYOUT_FIELDS = {
|
|
|
426
502
|
STATUS: "status",
|
|
427
503
|
CREATED_AT: "createdAt",
|
|
428
504
|
UPDATED_AT: "updatedAt",
|
|
505
|
+
/*
|
|
506
|
+
* Corrected 2026-08-24 (W3) — `cancelled` was listed here and is NOT a
|
|
507
|
+
* member of `PayoutStatus` (features/payments/schemas/firestore.ts:18,
|
|
508
|
+
* pending|processing|paid|failed). A chip or badge keyed on it could only
|
|
509
|
+
* ever match zero rows (Recurrent Root Cause #33).
|
|
510
|
+
*/
|
|
429
511
|
STATUS_VALUES: {
|
|
430
512
|
PENDING: "pending",
|
|
431
513
|
PROCESSING: "processing",
|
|
432
514
|
PAID: "paid",
|
|
433
515
|
FAILED: "failed",
|
|
434
|
-
CANCELLED: "cancelled",
|
|
435
516
|
},
|
|
436
517
|
};
|
|
437
518
|
// ============================================================================
|
|
@@ -721,10 +802,17 @@ export const SCAMMER_FIELDS = {
|
|
|
721
802
|
REPORTED_BY: "reportedBy",
|
|
722
803
|
VERIFIED_BY: "verifiedBy",
|
|
723
804
|
CREATED_AT: "createdAt",
|
|
805
|
+
/*
|
|
806
|
+
* Corrected 2026-08-24 (W3). Two defects: the real stored value is
|
|
807
|
+
* `pending_review`, not `pending` (the seeded scammer profile stores
|
|
808
|
+
* `pending_review`), and `removed` was missing entirely. Already flagged in
|
|
809
|
+
* CLAUDE.md's Root Cause #34 and never actioned.
|
|
810
|
+
*/
|
|
724
811
|
STATUS_VALUES: {
|
|
725
|
-
|
|
812
|
+
PENDING_REVIEW: "pending_review",
|
|
726
813
|
VERIFIED: "verified",
|
|
727
814
|
REJECTED: "rejected",
|
|
815
|
+
REMOVED: "removed",
|
|
728
816
|
},
|
|
729
817
|
};
|
|
730
818
|
// ============================================================================
|
|
@@ -747,10 +835,14 @@ export const SUPPORT_TICKET_FIELDS = {
|
|
|
747
835
|
RESOLVED: "resolved",
|
|
748
836
|
CLOSED: "closed",
|
|
749
837
|
},
|
|
838
|
+
/*
|
|
839
|
+
* Corrected 2026-08-24 (W3) — `medium` is not a member of
|
|
840
|
+
* `TicketPriorityValues` (low|normal|high|urgent). `normal` is the
|
|
841
|
+
* middle value.
|
|
842
|
+
*/
|
|
750
843
|
PRIORITY_VALUES: {
|
|
751
844
|
LOW: "low",
|
|
752
845
|
NORMAL: "normal",
|
|
753
|
-
MEDIUM: "medium",
|
|
754
846
|
HIGH: "high",
|
|
755
847
|
URGENT: "urgent",
|
|
756
848
|
},
|
|
@@ -956,6 +1048,7 @@ export const SITE_SETTINGS_FIELDS = {
|
|
|
956
1048
|
NOTIFICATIONS: "featureFlags.notifications",
|
|
957
1049
|
SELLER_REGISTRATION: "featureFlags.sellerRegistration",
|
|
958
1050
|
PRE_ORDERS: "featureFlags.preOrders",
|
|
1051
|
+
OFFERS: "featureFlags.offers",
|
|
959
1052
|
},
|
|
960
1053
|
LEGAL_PAGES: "legalPages",
|
|
961
1054
|
SHIPPING: "shipping",
|
|
@@ -5,6 +5,8 @@ export declare const TABLE_KEYS: {
|
|
|
5
5
|
readonly PAGE: "page";
|
|
6
6
|
readonly PAGE_SIZE: "pageSize";
|
|
7
7
|
readonly TAB: "tab";
|
|
8
|
+
/** Open section(s) of a `<SectionForm>`. Non-resetting — see NON_RESETTING_KEYS. */
|
|
9
|
+
readonly SECTION: "section";
|
|
8
10
|
readonly QUERY: "q";
|
|
9
11
|
readonly STATUS: "status";
|
|
10
12
|
readonly CATEGORY: "category";
|
|
@@ -17,6 +19,21 @@ export declare const TABLE_KEYS: {
|
|
|
17
19
|
readonly TAGS: "tags";
|
|
18
20
|
readonly DATE_FROM: "dateFrom";
|
|
19
21
|
readonly DATE_TO: "dateTo";
|
|
22
|
+
/**
|
|
23
|
+
* Three-state availability tab on every listing surface, public and
|
|
24
|
+
* dashboard: "available" (default) | "unavailable" | "all". Replaces the
|
|
25
|
+
* SHOW_SOLD/SHOW_ENDED/SHOW_CLOSED toggle trio below, which widened the
|
|
26
|
+
* list instead of scoping it and had three spellings of one intent.
|
|
27
|
+
*/
|
|
28
|
+
readonly AVAILABILITY: "availability";
|
|
29
|
+
/** Order lifecycle scope tab: "active" | "closed" | "all". */
|
|
30
|
+
readonly ORDER_SCOPE: "orderScope";
|
|
31
|
+
/**
|
|
32
|
+
* Superseded by AVAILABILITY. Retained ONLY so `readAvailability()` can map
|
|
33
|
+
* bookmarked `?showSold=true` URLs onto `availability=all`, and because the
|
|
34
|
+
* seller auction/prize-draw dashboards still read them during migration.
|
|
35
|
+
* Never write these from new code.
|
|
36
|
+
*/
|
|
20
37
|
readonly SHOW_SOLD: "showSold";
|
|
21
38
|
readonly SHOW_ENDED: "showEnded";
|
|
22
39
|
readonly SHOW_CLOSED: "showClosed";
|
|
@@ -5,6 +5,8 @@ export const TABLE_KEYS = {
|
|
|
5
5
|
PAGE: "page",
|
|
6
6
|
PAGE_SIZE: "pageSize",
|
|
7
7
|
TAB: "tab",
|
|
8
|
+
/** Open section(s) of a `<SectionForm>`. Non-resetting — see NON_RESETTING_KEYS. */
|
|
9
|
+
SECTION: "section",
|
|
8
10
|
QUERY: "q",
|
|
9
11
|
STATUS: "status",
|
|
10
12
|
CATEGORY: "category",
|
|
@@ -17,6 +19,21 @@ export const TABLE_KEYS = {
|
|
|
17
19
|
TAGS: "tags",
|
|
18
20
|
DATE_FROM: "dateFrom",
|
|
19
21
|
DATE_TO: "dateTo",
|
|
22
|
+
/**
|
|
23
|
+
* Three-state availability tab on every listing surface, public and
|
|
24
|
+
* dashboard: "available" (default) | "unavailable" | "all". Replaces the
|
|
25
|
+
* SHOW_SOLD/SHOW_ENDED/SHOW_CLOSED toggle trio below, which widened the
|
|
26
|
+
* list instead of scoping it and had three spellings of one intent.
|
|
27
|
+
*/
|
|
28
|
+
AVAILABILITY: "availability",
|
|
29
|
+
/** Order lifecycle scope tab: "active" | "closed" | "all". */
|
|
30
|
+
ORDER_SCOPE: "orderScope",
|
|
31
|
+
/**
|
|
32
|
+
* Superseded by AVAILABILITY. Retained ONLY so `readAvailability()` can map
|
|
33
|
+
* bookmarked `?showSold=true` URLs onto `availability=all`, and because the
|
|
34
|
+
* seller auction/prize-draw dashboards still read them during migration.
|
|
35
|
+
* Never write these from new code.
|
|
36
|
+
*/
|
|
20
37
|
SHOW_SOLD: "showSold",
|
|
21
38
|
SHOW_ENDED: "showEnded",
|
|
22
39
|
SHOW_CLOSED: "showClosed",
|
|
@@ -6,9 +6,21 @@ export declare const BID_ERROR_CODES: {
|
|
|
6
6
|
readonly INCREMENT_VIOLATED: "BID_INCREMENT_TOO_LOW";
|
|
7
7
|
readonly SELF_BID: "BID_SELF_BID";
|
|
8
8
|
readonly USER_BANNED: "BID_USER_BANNED";
|
|
9
|
+
/**
|
|
10
|
+
* The buyout price is no longer better than the standing bid. Replaced
|
|
11
|
+
* `BUY_NOW_BIDS_STARTED` (deleted 2026-08-24), which fired the instant anyone
|
|
12
|
+
* bid at all — that eBay rule hid Buy Now on nearly every live auction.
|
|
13
|
+
*/
|
|
9
14
|
readonly BUY_NOW_UNAVAILABLE: "BID_BUY_NOW_UNAVAILABLE";
|
|
10
|
-
readonly BUY_NOW_BIDS_STARTED: "BID_BUY_NOW_BIDS_STARTED";
|
|
11
15
|
readonly BUY_NOW_NO_PRICE: "BID_BUY_NOW_NO_PRICE";
|
|
16
|
+
/** The buyout hold expired (or was cancelled) before checkout completed. */
|
|
17
|
+
readonly BUYOUT_LAPSED: "BID_BUYOUT_LAPSED";
|
|
18
|
+
/** Bidding passed the buyout price while the buyer was in checkout. */
|
|
19
|
+
readonly BUYOUT_OUTBID: "BID_BUYOUT_OUTBID";
|
|
20
|
+
/** Another buyer's buyout claimed the auction first. */
|
|
21
|
+
readonly AUCTION_ALREADY_SOLD: "BID_AUCTION_ALREADY_SOLD";
|
|
22
|
+
/** The auction's clock ran out mid-checkout, so it settled to a real bidder. */
|
|
23
|
+
readonly AUCTION_ENDED_BEFORE_CHECKOUT: "BID_AUCTION_ENDED_BEFORE_CHECKOUT";
|
|
12
24
|
};
|
|
13
25
|
export declare const OFFER_ERROR_CODES: {
|
|
14
26
|
readonly DISABLED: "OFFER_DISABLED";
|
|
@@ -6,9 +6,21 @@ export const BID_ERROR_CODES = {
|
|
|
6
6
|
INCREMENT_VIOLATED: "BID_INCREMENT_TOO_LOW",
|
|
7
7
|
SELF_BID: "BID_SELF_BID",
|
|
8
8
|
USER_BANNED: "BID_USER_BANNED",
|
|
9
|
+
/**
|
|
10
|
+
* The buyout price is no longer better than the standing bid. Replaced
|
|
11
|
+
* `BUY_NOW_BIDS_STARTED` (deleted 2026-08-24), which fired the instant anyone
|
|
12
|
+
* bid at all — that eBay rule hid Buy Now on nearly every live auction.
|
|
13
|
+
*/
|
|
9
14
|
BUY_NOW_UNAVAILABLE: "BID_BUY_NOW_UNAVAILABLE",
|
|
10
|
-
BUY_NOW_BIDS_STARTED: "BID_BUY_NOW_BIDS_STARTED",
|
|
11
15
|
BUY_NOW_NO_PRICE: "BID_BUY_NOW_NO_PRICE",
|
|
16
|
+
/** The buyout hold expired (or was cancelled) before checkout completed. */
|
|
17
|
+
BUYOUT_LAPSED: "BID_BUYOUT_LAPSED",
|
|
18
|
+
/** Bidding passed the buyout price while the buyer was in checkout. */
|
|
19
|
+
BUYOUT_OUTBID: "BID_BUYOUT_OUTBID",
|
|
20
|
+
/** Another buyer's buyout claimed the auction first. */
|
|
21
|
+
AUCTION_ALREADY_SOLD: "BID_AUCTION_ALREADY_SOLD",
|
|
22
|
+
/** The auction's clock ran out mid-checkout, so it settled to a real bidder. */
|
|
23
|
+
AUCTION_ENDED_BEFORE_CHECKOUT: "BID_AUCTION_ENDED_BEFORE_CHECKOUT",
|
|
12
24
|
};
|
|
13
25
|
export const OFFER_ERROR_CODES = {
|
|
14
26
|
DISABLED: "OFFER_DISABLED",
|
|
@@ -137,12 +137,21 @@ export const ERROR_DISPLAY_MAP = {
|
|
|
137
137
|
[BID_ERROR_CODES.BUY_NOW_UNAVAILABLE]: {
|
|
138
138
|
messageKey: k(BID_ERROR_CODES.BUY_NOW_UNAVAILABLE),
|
|
139
139
|
},
|
|
140
|
-
[BID_ERROR_CODES.BUY_NOW_BIDS_STARTED]: {
|
|
141
|
-
messageKey: k(BID_ERROR_CODES.BUY_NOW_BIDS_STARTED),
|
|
142
|
-
},
|
|
143
140
|
[BID_ERROR_CODES.BUY_NOW_NO_PRICE]: {
|
|
144
141
|
messageKey: k(BID_ERROR_CODES.BUY_NOW_NO_PRICE),
|
|
145
142
|
},
|
|
143
|
+
[BID_ERROR_CODES.BUYOUT_LAPSED]: {
|
|
144
|
+
messageKey: k(BID_ERROR_CODES.BUYOUT_LAPSED),
|
|
145
|
+
},
|
|
146
|
+
[BID_ERROR_CODES.BUYOUT_OUTBID]: {
|
|
147
|
+
messageKey: k(BID_ERROR_CODES.BUYOUT_OUTBID),
|
|
148
|
+
},
|
|
149
|
+
[BID_ERROR_CODES.AUCTION_ALREADY_SOLD]: {
|
|
150
|
+
messageKey: k(BID_ERROR_CODES.AUCTION_ALREADY_SOLD),
|
|
151
|
+
},
|
|
152
|
+
[BID_ERROR_CODES.AUCTION_ENDED_BEFORE_CHECKOUT]: {
|
|
153
|
+
messageKey: k(BID_ERROR_CODES.AUCTION_ENDED_BEFORE_CHECKOUT),
|
|
154
|
+
},
|
|
146
155
|
// ---------- Offers ----------
|
|
147
156
|
[OFFER_ERROR_CODES.DISABLED]: { messageKey: k(OFFER_ERROR_CODES.DISABLED) },
|
|
148
157
|
[OFFER_ERROR_CODES.PRICE_TOO_LOW]: {
|
|
@@ -347,9 +347,12 @@ export declare const ERROR_MESSAGES: {
|
|
|
347
347
|
readonly BID_TOO_LOW: "Your bid must be higher than the current bid";
|
|
348
348
|
readonly INCREMENT_TOO_LOW: "Your bid does not meet the minimum increment requirement";
|
|
349
349
|
readonly OWN_AUCTION: "You cannot bid on your own auction";
|
|
350
|
-
readonly BUY_NOW_UNAVAILABLE: "Buy Now is
|
|
351
|
-
readonly BUY_NOW_BIDS_STARTED: "Buy Now is no longer available — bids have already been placed";
|
|
350
|
+
readonly BUY_NOW_UNAVAILABLE: "Buy Now is unavailable — bidding has already passed the Buy Now price";
|
|
352
351
|
readonly BUY_NOW_NO_PRICE: "This auction does not have a Buy Now price";
|
|
352
|
+
readonly BUYOUT_LAPSED: "Your Buy Now claim expired. Head back to the auction to bid or try again.";
|
|
353
|
+
readonly BUYOUT_OUTBID: "Bidding passed the Buy Now price while you were checking out, so this purchase can no longer go through.";
|
|
354
|
+
readonly AUCTION_ALREADY_SOLD: "Another buyer completed their purchase first, so this auction is already sold.";
|
|
355
|
+
readonly AUCTION_ENDED_BEFORE_CHECKOUT: "The auction ended before you completed payment, so it went to the winning bidder.";
|
|
353
356
|
};
|
|
354
357
|
readonly CONTACT: {
|
|
355
358
|
readonly SEND_FAILED: "Failed to send your message. Please try again.";
|
|
@@ -424,6 +427,11 @@ export declare const ERROR_MESSAGES: {
|
|
|
424
427
|
readonly INVALID_STATUS_TRANSITION: "This status transition is not allowed";
|
|
425
428
|
};
|
|
426
429
|
readonly OFFER: {
|
|
430
|
+
/**
|
|
431
|
+
* The site-wide `featureFlags.offers` kill switch is off. Existing offers
|
|
432
|
+
* can still be responded to and paid for — only new ones are refused.
|
|
433
|
+
*/
|
|
434
|
+
readonly DISABLED: "Offers are currently turned off across the site.";
|
|
427
435
|
readonly LIMIT_REACHED: "You have reached the maximum of 3 offers for this product. Wait for the seller to update the listing.";
|
|
428
436
|
readonly COUNTER_RANGE: "Your counter must be within 20% of the seller's counter price.";
|
|
429
437
|
readonly NOT_COUNTERED: "There is no seller counter to respond to.";
|