@mohasinac/appkit 4.65.0 → 4.67.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/.build-stamp.json +3 -3
- package/dist/_internal/client/features/digital-code/CodeRevealPanel.js +4 -1
- package/dist/_internal/client/features/digital-code/DigitalContentPoolManager.js +5 -1
- package/dist/_internal/client/features/layout/DashboardLayoutClient.d.ts +1 -1
- package/dist/_internal/client/features/layout/DashboardLayoutClient.js +3 -1
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +6 -2
- package/dist/_internal/client/features/lottery/LotteryAdminSlotView.js +5 -1
- package/dist/_internal/client/features/lottery/LotteryDetailView.js +6 -1
- package/dist/_internal/client/features/lottery/LotteryEntriesView.js +6 -1
- package/dist/_internal/client/features/lottery/LotteryListView.js +7 -1
- package/dist/_internal/client/features/lottery/LotteryPullForm.js +3 -1
- package/dist/_internal/client/features/lottery/LotterySlotGrid.js +3 -1
- package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +6 -1
- package/dist/_internal/client/features/maintenance/index.d.ts +1 -0
- package/dist/_internal/client/features/maintenance/index.js +1 -0
- package/dist/_internal/client/features/maintenance/views/CacheInvalidationPanel.d.ts +33 -0
- package/dist/_internal/client/features/maintenance/views/CacheInvalidationPanel.js +96 -0
- package/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +2 -1
- package/dist/_internal/client/scaffolds/AppShell.js +3 -1
- package/dist/_internal/server/features/account/data.js +2 -1
- package/dist/_internal/server/features/auctions/service.js +1 -1
- package/dist/_internal/server/features/auth/capabilities.js +1 -1
- package/dist/_internal/server/features/auth/permissions.js +1 -1
- package/dist/_internal/server/features/brands/actions.js +1 -1
- package/dist/_internal/server/features/brands/data.js +1 -1
- package/dist/_internal/server/features/brands/service.js +1 -1
- package/dist/_internal/server/features/bundles/actions.js +1 -1
- package/dist/_internal/server/features/bundles/data.js +2 -2
- package/dist/_internal/server/features/cart/actions.js +1 -1
- package/dist/_internal/server/features/cart/data.js +1 -1
- package/dist/_internal/server/features/cart/service.js +1 -1
- package/dist/_internal/server/features/categories/data.js +1 -1
- package/dist/_internal/server/features/checkout/actions.js +2 -2
- package/dist/_internal/server/features/checkout/group-rule-revalidation.js +1 -1
- package/dist/_internal/server/features/checkout/locked-lines.js +1 -1
- package/dist/_internal/server/features/checkout/upi-resolution.js +2 -1
- package/dist/_internal/server/features/grouped/data.js +2 -1
- package/dist/_internal/server/features/history/actions.d.ts +1 -1
- package/dist/_internal/server/features/history/actions.js +1 -1
- package/dist/_internal/server/features/history/data.d.ts +1 -1
- package/dist/_internal/server/features/history/data.js +1 -1
- package/dist/_internal/server/features/item-requests/data.js +1 -1
- package/dist/_internal/server/features/messages/actions.js +1 -1
- package/dist/_internal/server/features/payouts/actions.js +1 -1
- package/dist/_internal/server/features/pre-orders/actions.js +1 -1
- package/dist/_internal/server/features/pre-orders/service.js +1 -1
- package/dist/_internal/server/features/prize-draws/actions.js +1 -1
- package/dist/_internal/server/features/products/actions.js +1 -1
- package/dist/_internal/server/features/products/data.js +1 -1
- package/dist/_internal/server/features/products/list-public.js +1 -1
- package/dist/_internal/server/features/products/service.js +1 -1
- package/dist/_internal/server/features/products/surface-counts.d.ts +26 -0
- package/dist/_internal/server/features/products/surface-counts.js +60 -0
- package/dist/_internal/server/features/promotions/actions.js +1 -1
- package/dist/_internal/server/features/promotions/adapters.js +9 -0
- package/dist/_internal/server/features/promotions/data.d.ts +24 -3
- package/dist/_internal/server/features/promotions/data.js +41 -6
- package/dist/_internal/server/features/promotions/index.d.ts +1 -1
- package/dist/_internal/server/features/promotions/index.js +1 -1
- package/dist/_internal/server/features/promotions/service.js +1 -1
- package/dist/_internal/server/features/seo/sitemap.js +39 -5
- package/dist/_internal/server/features/shared/listing-data-factory.js +1 -1
- package/dist/_internal/server/features/shipping/courier-block.js +1 -1
- package/dist/_internal/server/features/site-settings/adapters.d.ts +16 -0
- package/dist/_internal/server/features/site-settings/adapters.js +11 -0
- package/dist/_internal/server/features/sticker-trace/promote-to-listings.js +1 -1
- package/dist/_internal/server/features/stores/data.js +1 -1
- package/dist/_internal/server/features/sublisting-categories/data.js +1 -1
- package/dist/_internal/server/features/wishlist/actions.d.ts +1 -1
- package/dist/_internal/server/features/wishlist/actions.js +1 -1
- package/dist/_internal/server/features/wishlist/data.d.ts +1 -1
- package/dist/_internal/server/features/wishlist/data.js +1 -1
- package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +1 -1
- package/dist/_internal/server/jobs/core/cartPrune.js +1 -1
- package/dist/_internal/server/jobs/core/catalogueImageStalenessReminder.js +1 -1
- package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +1 -1
- package/dist/_internal/server/jobs/core/couponExpiry.js +1 -1
- package/dist/_internal/server/jobs/core/dailyDataCleanup.js +2 -1
- package/dist/_internal/server/jobs/core/draftPrune.js +1 -1
- package/dist/_internal/server/jobs/core/hardBanReinstatement.js +1 -1
- package/dist/_internal/server/jobs/core/newsletterExport.js +1 -1
- package/dist/_internal/server/jobs/core/notificationPrune.js +1 -1
- package/dist/_internal/server/jobs/core/onJobCreated.js +1 -1
- package/dist/_internal/server/jobs/core/onOrderCreate.js +3 -1
- package/dist/_internal/server/jobs/core/onProductWrite.js +35 -1
- package/dist/_internal/server/jobs/core/onScamReportCreate.js +2 -1
- package/dist/_internal/server/jobs/core/onScamReportRejected.js +1 -1
- package/dist/_internal/server/jobs/core/onScamReportVerified.js +1 -1
- package/dist/_internal/server/jobs/core/revenueRollup.js +1 -1
- package/dist/_internal/server/jobs/core/runJobOnce.js +1 -1
- package/dist/_internal/server/jobs/core/sellerStandingRollup.js +1 -1
- package/dist/_internal/server/jobs/core/surfaceCountsRollup.d.ts +55 -0
- package/dist/_internal/server/jobs/core/surfaceCountsRollup.js +128 -0
- package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +1 -1
- package/dist/_internal/server/jobs/handlers/countersReconcile.js +54 -1
- package/dist/_internal/server/jobs/handlers/onCatalogueSubmittedForApproval.js +1 -1
- package/dist/_internal/shared/actions/action-registry.js +28 -0
- package/dist/_internal/shared/cache/revalidate-targets.js +66 -47
- package/dist/_internal/shared/features/blog/schema.d.ts +12 -12
- package/dist/_internal/shared/features/brands/schema.d.ts +19 -19
- package/dist/_internal/shared/features/cart/schema.d.ts +17 -17
- package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +60 -60
- package/dist/_internal/shared/features/events/schema.d.ts +4 -4
- package/dist/_internal/shared/features/orders/schema.d.ts +8 -8
- package/dist/_internal/shared/features/products/schema.d.ts +2 -2
- package/dist/_internal/shared/features/promotions/schema.d.ts +12 -12
- package/dist/_internal/shared/features/reviews/schema.d.ts +3 -3
- package/dist/_internal/shared/features/site-settings/types.d.ts +17 -0
- package/dist/_internal/shared/listing-types/feature-flags.d.ts +45 -0
- package/dist/_internal/shared/listing-types/feature-flags.js +51 -0
- package/dist/client.d.ts +225 -118
- package/dist/client.js +150 -74
- package/dist/constants/api-endpoints.d.ts +3 -0
- package/dist/constants/api-endpoints.js +11 -0
- package/dist/errors/error-handler.d.ts +1 -1
- package/dist/features/about/components/AboutView.js +9 -1
- package/dist/features/about/components/DeveloperView.js +8 -2
- package/dist/features/about/components/FAQPageView.js +5 -2
- package/dist/features/about/components/FeesView.js +4 -1
- package/dist/features/about/components/GstExplainerView.js +6 -1
- package/dist/features/about/components/GuidesHubView.js +5 -1
- package/dist/features/about/components/HelpPageView.js +6 -2
- package/dist/features/about/components/HowAuctionsWorkView.js +6 -2
- package/dist/features/about/components/HowCheckoutWorksView.js +6 -2
- package/dist/features/about/components/HowEmiWorksView.js +7 -2
- package/dist/features/about/components/HowOffersWorkView.js +6 -2
- package/dist/features/about/components/HowOrdersWorkView.js +6 -2
- package/dist/features/about/components/HowPayoutsWorkView.js +6 -2
- package/dist/features/about/components/HowPreOrdersWorkView.js +6 -2
- package/dist/features/about/components/HowReviewsWorkView.js +6 -2
- package/dist/features/about/components/PolicyPageView.js +6 -3
- package/dist/features/about/components/ProseHero.js +3 -1
- package/dist/features/about/components/PublicProfileView.js +6 -1
- package/dist/features/about/components/SecurityPrivacyView.js +6 -2
- package/dist/features/about/components/ShippingPolicyView.js +7 -3
- package/dist/features/about/components/SpotAFakeView.js +6 -1
- package/dist/features/about/components/TrackOrderView.js +5 -2
- package/dist/features/about/components/UnauthorizedView.js +5 -2
- package/dist/features/about/schemas/index.d.ts +18 -18
- package/dist/features/account/components/AddressBook.js +4 -1
- package/dist/features/account/components/AddressFilters.js +1 -1
- package/dist/features/account/components/AddressForm.js +1 -1
- package/dist/features/account/components/AddressSelectorCreate.js +2 -1
- package/dist/features/account/components/AddressesIndexListing.js +5 -1
- package/dist/features/account/components/BecomeSellerView.js +2 -1
- package/dist/features/account/components/BuyerAccountGuideView.js +6 -1
- package/dist/features/account/components/BuyerAuctionsGuideView.js +5 -1
- package/dist/features/account/components/BuyerOrdersGuideView.js +5 -1
- package/dist/features/account/components/BuyerShoppingGuideView.js +5 -1
- package/dist/features/account/components/LinkedAccountsSection.js +5 -1
- package/dist/features/account/components/NotificationBell.js +8 -1
- package/dist/features/account/components/NotificationPreferencesPanel.js +6 -1
- package/dist/features/account/components/OrderDetailView.d.ts +1 -1
- package/dist/features/account/components/OrderDetailView.js +1 -1
- package/dist/features/account/components/ProfileView.d.ts +1 -1
- package/dist/features/account/components/ProfileView.js +1 -1
- package/dist/features/account/components/UserAccountHubView.d.ts +1 -1
- package/dist/features/account/components/UserAccountHubView.js +1 -1
- package/dist/features/account/components/UserBidsView.js +5 -1
- package/dist/features/account/components/UserOffersPanel.js +9 -1
- package/dist/features/account/components/UserOrderTrackView.d.ts +1 -1
- package/dist/features/account/components/UserOrderTrackView.js +1 -1
- package/dist/features/account/components/UserOrdersView.js +6 -1
- package/dist/features/account/components/UserReturnsView.js +3 -1
- package/dist/features/account/components/UserSidebar.js +8 -1
- package/dist/features/account/schemas/index.d.ts +10 -10
- package/dist/features/addresses/schemas/address-form.d.ts +16 -16
- package/dist/features/addresses/schemas/index.d.ts +2 -2
- package/dist/features/admin/actions/admin-actions.d.ts +3 -3
- package/dist/features/admin/actions/admin-coupon-actions.d.ts +1 -1
- package/dist/features/admin/actions/admin-read-actions.d.ts +3 -3
- package/dist/features/admin/components/AdminActionIndexView.d.ts +1 -1
- package/dist/features/admin/components/AdminActionIndexView.js +7 -1
- package/dist/features/admin/components/AdminAdEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminAdEditorView.js +8 -1
- package/dist/features/admin/components/AdminAddressBookView.js +8 -1
- package/dist/features/admin/components/AdminAddressClustersView.js +7 -1
- package/dist/features/admin/components/AdminAddressEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminAddressEditorView.js +4 -1
- package/dist/features/admin/components/AdminAddressesView.js +6 -1
- package/dist/features/admin/components/AdminAllEventEntriesView.d.ts +1 -1
- package/dist/features/admin/components/AdminAllEventEntriesView.js +5 -1
- package/dist/features/admin/components/AdminAnalyticsGuideView.js +5 -1
- package/dist/features/admin/components/AdminAnalyticsView.js +4 -2
- package/dist/features/admin/components/AdminArtView.d.ts +1 -1
- package/dist/features/admin/components/AdminArtView.js +1 -1
- package/dist/features/admin/components/AdminAuditLogView.d.ts +1 -1
- package/dist/features/admin/components/AdminAuditLogView.js +5 -1
- package/dist/features/admin/components/AdminBeysView.d.ts +1 -1
- package/dist/features/admin/components/AdminBeysView.js +3 -1
- package/dist/features/admin/components/AdminBidsView.d.ts +1 -1
- package/dist/features/admin/components/AdminBidsView.js +7 -2
- package/dist/features/admin/components/AdminBlogEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminBlogEditorView.js +14 -2
- package/dist/features/admin/components/AdminBlogView.d.ts +1 -1
- package/dist/features/admin/components/AdminBlogView.js +2 -1
- package/dist/features/admin/components/AdminBrandEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminBrandEditorView.js +7 -2
- package/dist/features/admin/components/AdminBrandsView.d.ts +1 -1
- package/dist/features/admin/components/AdminBrandsView.js +4 -2
- package/dist/features/admin/components/AdminBundleEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminBundleEditorView.js +3 -1
- package/dist/features/admin/components/AdminBundlesView.js +7 -1
- package/dist/features/admin/components/AdminCarouselEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminCarouselEditorView.js +12 -2
- package/dist/features/admin/components/AdminCarouselGroupEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminCarouselView.d.ts +1 -1
- package/dist/features/admin/components/AdminCarouselView.js +16 -2
- package/dist/features/admin/components/AdminCartsView.d.ts +1 -1
- package/dist/features/admin/components/AdminCartsView.js +3 -1
- package/dist/features/admin/components/AdminCatalogGuideView.js +5 -1
- package/dist/features/admin/components/AdminCategoriesView.d.ts +1 -1
- package/dist/features/admin/components/AdminCategoriesView.js +3 -1
- package/dist/features/admin/components/AdminCategoryEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminCategoryEditorView.js +2 -2
- package/dist/features/admin/components/AdminClassifiedView.d.ts +1 -1
- package/dist/features/admin/components/AdminClassifiedView.js +1 -1
- package/dist/features/admin/components/AdminContactView.d.ts +1 -1
- package/dist/features/admin/components/AdminContactView.js +5 -1
- package/dist/features/admin/components/AdminContentGuideView.js +5 -1
- package/dist/features/admin/components/AdminCouponEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminCouponEditorView.js +5 -1
- package/dist/features/admin/components/AdminCouponsView.d.ts +1 -1
- package/dist/features/admin/components/AdminCouponsView.js +6 -1
- package/dist/features/admin/components/AdminDashboardView.d.ts +1 -1
- package/dist/features/admin/components/AdminDashboardView.js +2 -2
- package/dist/features/admin/components/AdminDigitalCodesView.d.ts +1 -1
- package/dist/features/admin/components/AdminDigitalCodesView.js +1 -1
- package/dist/features/admin/components/AdminFaqEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminFaqEditorView.js +12 -2
- package/dist/features/admin/components/AdminFaqsView.d.ts +1 -1
- package/dist/features/admin/components/AdminFaqsView.js +3 -1
- package/dist/features/admin/components/AdminFeatureEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminFeatureEditorView.js +6 -1
- package/dist/features/admin/components/AdminFeaturesView.d.ts +1 -1
- package/dist/features/admin/components/AdminFeaturesView.js +2 -1
- package/dist/features/admin/components/AdminFulfillmentView.js +2 -1
- package/dist/features/admin/components/AdminGatewayEventsView.d.ts +1 -1
- package/dist/features/admin/components/AdminGatewayEventsView.js +8 -1
- package/dist/features/admin/components/AdminGroupedListingsView.d.ts +1 -1
- package/dist/features/admin/components/AdminGroupedListingsView.js +7 -2
- package/dist/features/admin/components/AdminGuideHubView.js +6 -1
- package/dist/features/admin/components/AdminHistoryView.d.ts +1 -1
- package/dist/features/admin/components/AdminHistoryView.js +1 -1
- package/dist/features/admin/components/AdminIntegrationsView.js +6 -1
- package/dist/features/admin/components/AdminInvoicingView.js +6 -1
- package/dist/features/admin/components/AdminLiveView.d.ts +1 -1
- package/dist/features/admin/components/AdminLiveView.js +1 -1
- package/dist/features/admin/components/AdminMediaView.d.ts +1 -1
- package/dist/features/admin/components/AdminMediaView.js +11 -1
- package/dist/features/admin/components/AdminMoneyCasesView.d.ts +1 -1
- package/dist/features/admin/components/AdminMoneyCasesView.js +7 -1
- package/dist/features/admin/components/AdminNavEditorView.js +3 -1
- package/dist/features/admin/components/AdminNavigationView.d.ts +1 -1
- package/dist/features/admin/components/AdminNavigationView.js +10 -1
- package/dist/features/admin/components/AdminNewsletterView.d.ts +1 -1
- package/dist/features/admin/components/AdminNewsletterView.js +7 -1
- package/dist/features/admin/components/AdminNotificationsView.d.ts +1 -1
- package/dist/features/admin/components/AdminNotificationsView.js +5 -1
- package/dist/features/admin/components/AdminOffersView.d.ts +1 -1
- package/dist/features/admin/components/AdminOffersView.js +5 -1
- package/dist/features/admin/components/AdminOrderEditorView.js +8 -2
- package/dist/features/admin/components/AdminOrdersGuideView.js +4 -1
- package/dist/features/admin/components/AdminOrdersView.d.ts +1 -1
- package/dist/features/admin/components/AdminOrdersView.js +3 -1
- package/dist/features/admin/components/AdminPartsView.d.ts +1 -1
- package/dist/features/admin/components/AdminPartsView.js +3 -1
- package/dist/features/admin/components/AdminPaymentClustersView.js +7 -1
- package/dist/features/admin/components/AdminPaymentMethodsView.js +7 -1
- package/dist/features/admin/components/AdminPaymentsGuideView.js +4 -1
- package/dist/features/admin/components/AdminPayoutsView.d.ts +1 -1
- package/dist/features/admin/components/AdminPayoutsView.js +5 -1
- package/dist/features/admin/components/AdminPrizeDrawsView.d.ts +1 -1
- package/dist/features/admin/components/AdminPrizeDrawsView.js +7 -1
- package/dist/features/admin/components/AdminProductEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminProductEditorView.js +1 -1
- package/dist/features/admin/components/AdminProductsView.d.ts +1 -1
- package/dist/features/admin/components/AdminProductsView.js +5 -2
- package/dist/features/admin/components/AdminReturnRequestsView.js +3 -1
- package/dist/features/admin/components/AdminReviewsView.d.ts +1 -1
- package/dist/features/admin/components/AdminReviewsView.js +8 -1
- package/dist/features/admin/components/AdminScammersView.d.ts +1 -1
- package/dist/features/admin/components/AdminScammersView.js +5 -1
- package/dist/features/admin/components/AdminSectionsView.js +1 -1
- package/dist/features/admin/components/AdminSessionsManager.js +1 -1
- package/dist/features/admin/components/AdminSessionsView.d.ts +1 -1
- package/dist/features/admin/components/AdminSessionsView.js +6 -1
- package/dist/features/admin/components/AdminSidebar.js +7 -1
- package/dist/features/admin/components/AdminSiteConfigGuideView.js +5 -1
- package/dist/features/admin/components/AdminSiteSettingsView.d.ts +1 -1
- package/dist/features/admin/components/AdminSiteSettingsView.js +2 -2
- package/dist/features/admin/components/AdminSparesView.d.ts +1 -1
- package/dist/features/admin/components/AdminSparesView.js +1 -1
- package/dist/features/admin/components/AdminStickersView.d.ts +1 -1
- package/dist/features/admin/components/AdminStickersView.js +1 -1
- package/dist/features/admin/components/AdminStoreAddressesView.js +1 -1
- package/dist/features/admin/components/AdminStoreEditorView.js +7 -1
- package/dist/features/admin/components/AdminStoresGuideView.js +5 -1
- package/dist/features/admin/components/AdminStoresView.d.ts +1 -1
- package/dist/features/admin/components/AdminStoresView.js +4 -1
- package/dist/features/admin/components/AdminSublistingCategoryEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminSublistingCategoryEditorView.js +8 -3
- package/dist/features/admin/components/AdminSupportTicketDetailView.js +12 -1
- package/dist/features/admin/components/AdminSupportTicketsView.d.ts +1 -1
- package/dist/features/admin/components/AdminSupportTicketsView.js +4 -1
- package/dist/features/admin/components/AdminTaxCodeEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminTaxCodeEditorView.js +4 -1
- package/dist/features/admin/components/AdminTaxCodesView.d.ts +1 -1
- package/dist/features/admin/components/AdminTaxCodesView.js +1 -1
- package/dist/features/admin/components/AdminTeamGuideView.js +5 -1
- package/dist/features/admin/components/AdminTeamView.d.ts +1 -1
- package/dist/features/admin/components/AdminTeamView.js +4 -1
- package/dist/features/admin/components/AdminTesterChecklistItemEditorView.d.ts +1 -1
- package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +4 -1
- package/dist/features/admin/components/AdminTesterChecklistView.d.ts +1 -1
- package/dist/features/admin/components/AdminTesterChecklistView.js +4 -1
- package/dist/features/admin/components/AdminTopBar.js +1 -1
- package/dist/features/admin/components/AdminTrustGuideView.js +5 -1
- package/dist/features/admin/components/AdminUserEditorView.js +12 -1
- package/dist/features/admin/components/AdminUsersGuideView.js +5 -1
- package/dist/features/admin/components/AdminUsersView.d.ts +1 -1
- package/dist/features/admin/components/AdminViewCards.js +4 -1
- package/dist/features/admin/components/AdminWishlistsView.d.ts +1 -1
- package/dist/features/admin/components/AdminWishlistsView.js +1 -1
- package/dist/features/admin/components/DashboardStats.js +3 -1
- package/dist/features/admin/components/DataListingView.d.ts +1 -1
- package/dist/features/admin/components/DataListingView.js +14 -2
- package/dist/features/admin/components/DataTable.js +7 -1
- package/dist/features/admin/components/OwnerQuickActions.js +2 -1
- package/dist/features/admin/components/QuickEditMenu.js +2 -1
- package/dist/features/admin/components/ViewAuditLogEntryModal.js +6 -1
- package/dist/features/admin/components/ViewNotificationModal.js +6 -1
- package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +2 -1
- package/dist/features/admin/components/analytics/AdminStatCard.js +3 -1
- package/dist/features/admin/components/analytics/AdminTopProductsTable.js +3 -1
- package/dist/features/admin/components/sections/adminSectionsTypes.js +1 -0
- package/dist/features/admin/constants/site-settings-tabs.d.ts +1 -1
- package/dist/features/admin/hooks/useAdminListing.d.ts +1 -1
- package/dist/features/admin/hooks/useOptimisticRowFlag.js +1 -1
- package/dist/features/admin/schemas/action-index-form.d.ts +2 -2
- package/dist/features/admin/schemas/admin-editor-forms.d.ts +12 -12
- package/dist/features/admin/schemas/admin-ops-forms.d.ts +8 -8
- package/dist/features/admin/schemas/admin-user-form.d.ts +8 -8
- package/dist/features/admin/schemas/nav-item-form.d.ts +8 -8
- package/dist/features/auctions/actions/bid-actions.js +1 -1
- package/dist/features/auctions/components/AuctionBidsTable.js +6 -1
- package/dist/features/auctions/components/AuctionBottomActions.js +1 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +11 -2
- package/dist/features/auctions/components/AuctionFilters.js +1 -1
- package/dist/features/auctions/components/AuctionLiveStatusBadge.js +1 -1
- package/dist/features/auctions/components/AuctionsListView.js +3 -1
- package/dist/features/auctions/components/CollapsibleBidHistory.js +4 -1
- package/dist/features/auctions/components/LiveBidPrice.js +3 -1
- package/dist/features/auctions/components/LiveMinIncrement.js +1 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +1 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +9 -3
- package/dist/features/auctions/components/MarketplaceAuctionGrid.d.ts +1 -1
- package/dist/features/auctions/components/MarketplaceAuctionGrid.js +3 -1
- package/dist/features/auctions/components/PlaceBidFormClient.js +8 -1
- package/dist/features/auctions/schemas/index.d.ts +34 -34
- package/dist/features/auth/components/ForgotPasswordView.js +6 -1
- package/dist/features/auth/components/Guards.js +4 -1
- package/dist/features/auth/components/LoginForm.js +7 -1
- package/dist/features/auth/components/OAuthLoadingView.js +3 -1
- package/dist/features/auth/components/RegisterForm.js +5 -1
- package/dist/features/auth/components/ResetPasswordView.js +6 -1
- package/dist/features/auth/components/SocialAuthButtons.js +4 -1
- package/dist/features/auth/components/VerifyEmailView.js +4 -1
- package/dist/features/auth/schemas/index.d.ts +2 -2
- package/dist/features/before-after/components/BeforeAfterGallery.js +3 -1
- package/dist/features/before-after/components/BeforeAfterSlider.js +3 -1
- package/dist/features/before-after/schemas/index.d.ts +4 -4
- package/dist/features/beys/components/BeyDetailPageView.js +7 -1
- package/dist/features/blog/actions/blog-actions.d.ts +39 -39
- package/dist/features/blog/components/BlogFeaturedCard.js +6 -1
- package/dist/features/blog/components/BlogFilters.js +1 -1
- package/dist/features/blog/components/BlogIndexListing.js +7 -1
- package/dist/features/blog/components/BlogIndexPageView.js +3 -1
- package/dist/features/blog/components/BlogListView.js +6 -1
- package/dist/features/blog/components/BlogPostForm.js +9 -2
- package/dist/features/blog/components/BlogPostView.js +5 -1
- package/dist/features/blog/schemas/blog-form.d.ts +10 -10
- package/dist/features/blog/schemas/index.d.ts +80 -80
- package/dist/features/cart/components/CartDrawer.js +6 -1
- package/dist/features/cart/components/CartGroupLineRow.js +5 -1
- package/dist/features/cart/components/CartPriceBreakdown.js +4 -1
- package/dist/features/cart/components/CartSummary.js +2 -1
- package/dist/features/cart/components/CartView.js +3 -1
- package/dist/features/cart/components/CheckoutAddressStep.js +3 -1
- package/dist/features/cart/components/CheckoutSuccessView.d.ts +1 -1
- package/dist/features/cart/components/CheckoutSuccessView.js +1 -1
- package/dist/features/cart/components/CheckoutView.js +3 -1
- package/dist/features/cart/components/PointsTenderPicker.js +3 -1
- package/dist/features/cart/components/ShippingPicker.js +4 -1
- package/dist/features/cart/components/StoreAddonsPicker.js +3 -1
- package/dist/features/cart/schemas/index.d.ts +30 -30
- package/dist/features/catalogue/actions/approve-catalogue-listing.js +1 -1
- package/dist/features/catalogue/actions/list-from-catalogue.js +2 -1
- package/dist/features/catalogue/actions/submit-for-approval.js +1 -1
- package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +6 -1
- package/dist/features/catalogue/components/CatalogueItemEditorView.js +1 -1
- package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +6 -1
- package/dist/features/catalogue/components/PublicCatalogueView.js +5 -1
- package/dist/features/catalogue/components/UserCatalogueView.js +7 -1
- package/dist/features/catalogue/schemas/validation.d.ts +12 -12
- package/dist/features/catalogue/utils/product-from-item.js +1 -1
- package/dist/features/categories/components/BrandDetailPageView.js +6 -2
- package/dist/features/categories/components/BrandDetailTabs.js +2 -1
- package/dist/features/categories/components/BreadcrumbTrail.js +4 -2
- package/dist/features/categories/components/BundleBuyNowCta.js +5 -2
- package/dist/features/categories/components/BundleCollage.js +5 -1
- package/dist/features/categories/components/BundleDetailView.js +6 -1
- package/dist/features/categories/components/BundleDynamicRuleEditor.js +6 -1
- package/dist/features/categories/components/BundleItemsPicker.js +7 -1
- package/dist/features/categories/components/BundlesListView.js +4 -2
- package/dist/features/categories/components/CategoriesIndexListing.js +8 -1
- package/dist/features/categories/components/CategoriesIndexPageView.js +3 -1
- package/dist/features/categories/components/CategoryBundlesListing.js +8 -2
- package/dist/features/categories/components/CategoryDetailPageView.js +7 -2
- package/dist/features/categories/components/CategoryDetailTabs.js +2 -1
- package/dist/features/categories/components/CategoryFilters.js +1 -1
- package/dist/features/categories/components/CategoryForm.js +3 -1
- package/dist/features/categories/components/CategoryGrid.js +3 -1
- package/dist/features/categories/components/CategoryHighlightsAndFaqSection.js +3 -1
- package/dist/features/categories/components/CategoryProductsListing.js +8 -1
- package/dist/features/categories/components/CategorySelectorCreate.js +6 -1
- package/dist/features/categories/components/CategorySortSelect.js +4 -1
- package/dist/features/categories/components/CategoryStoresListing.js +2 -1
- package/dist/features/categories/components/CategoryTableColumns.js +6 -2
- package/dist/features/categories/components/CategoryTemplatePicker.js +4 -1
- package/dist/features/categories/components/CategoryTree.js +2 -1
- package/dist/features/categories/components/ConcernCard.js +3 -1
- package/dist/features/categories/components/ConcernGrid.js +1 -1
- package/dist/features/categories/components/PriceGuidanceHint.js +3 -1
- package/dist/features/categories/components/SubcategoryCardRow.js +4 -1
- package/dist/features/categories/schemas/bundle-form.d.ts +22 -22
- package/dist/features/categories/schemas/index.d.ts +100 -100
- package/dist/features/checkout/components/CheckoutStepper.js +3 -1
- package/dist/features/classified/components/ClassifiedDetailPageView.js +7 -1
- package/dist/features/classified/components/ClassifiedFilters.js +3 -1
- package/dist/features/collections/components/CollectionCard.js +4 -1
- package/dist/features/collections/schemas/index.d.ts +9 -9
- package/dist/features/consultation/components/ConsultationForm.js +3 -1
- package/dist/features/consultation/schemas/index.d.ts +8 -8
- package/dist/features/contact/components/ContactForm.js +5 -2
- package/dist/features/contact/components/ContactInfoSidebar.js +4 -1
- package/dist/features/contact/components/ContactPageView.js +6 -1
- package/dist/features/corporate/components/CorporateInquiryForm.js +3 -1
- package/dist/features/dashboard/components/DashboardHubView.js +7 -1
- package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +7 -1
- package/dist/features/digital-codes/components/DigitalCodeFilters.js +1 -1
- package/dist/features/dispute-reasons/components/AdminDisputeReasonsView.js +4 -1
- package/dist/features/events/components/AdminEventEditorView.d.ts +1 -1
- package/dist/features/events/components/AdminEventEditorView.js +13 -2
- package/dist/features/events/components/AdminEventEntriesView.js +10 -2
- package/dist/features/events/components/AdminEventsView.d.ts +1 -1
- package/dist/features/events/components/AdminEventsView.js +2 -1
- package/dist/features/events/components/EventBanner.js +3 -1
- package/dist/features/events/components/EventCard.js +7 -1
- package/dist/features/events/components/EventDetailView.d.ts +1 -1
- package/dist/features/events/components/EventDetailView.js +1 -1
- package/dist/features/events/components/EventFilters.js +1 -1
- package/dist/features/events/components/EventFormDrawer.js +1 -1
- package/dist/features/events/components/EventInsights.js +3 -1
- package/dist/features/events/components/EventLeaderboard.js +3 -1
- package/dist/features/events/components/EventLikeButton.js +4 -1
- package/dist/features/events/components/EventLikersRail.js +5 -1
- package/dist/features/events/components/EventOfferCard.js +3 -1
- package/dist/features/events/components/EventParticipateView.js +1 -1
- package/dist/features/events/components/EventPollWidget.js +8 -1
- package/dist/features/events/components/EventRaffleEntryForm.js +3 -1
- package/dist/features/events/components/EventRaffleWinnerView.js +6 -1
- package/dist/features/events/components/EventRafflesSection.js +3 -1
- package/dist/features/events/components/EventSaleBanner.js +4 -1
- package/dist/features/events/components/EventStatusBadge.js +1 -1
- package/dist/features/events/components/EventTypeBadge.js +1 -1
- package/dist/features/events/components/EventsIndexListing.js +7 -1
- package/dist/features/events/components/EventsListPageView.js +3 -1
- package/dist/features/events/components/EventsListView.js +4 -1
- package/dist/features/events/components/RelatedEventsCarousel.js +3 -1
- package/dist/features/events/components/SpinWheel.js +1 -1
- package/dist/features/events/components/SpinWheelView.js +7 -1
- package/dist/features/events/schemas/event-form.d.ts +5 -0
- package/dist/features/events/schemas/event-form.js +17 -0
- package/dist/features/events/schemas/firestore.d.ts +49 -1
- package/dist/features/events/schemas/index.d.ts +184 -184
- package/dist/features/events/utils/carousel-slide.d.ts +0 -9
- package/dist/features/events/utils/carousel-slide.js +38 -1
- package/dist/features/faq/actions/faq-actions.d.ts +12 -12
- package/dist/features/faq/components/ContactCTA.js +5 -1
- package/dist/features/faq/components/FAQAccordion.js +6 -1
- package/dist/features/faq/components/FAQCategorySidebar.js +5 -1
- package/dist/features/faq/components/FAQHelpfulButtons.js +3 -1
- package/dist/features/faq/components/FAQPageContent.js +8 -1
- package/dist/features/faq/components/FAQSearchableList.js +2 -1
- package/dist/features/faq/components/FAQSortDropdown.js +4 -1
- package/dist/features/faq/components/RelatedFAQs.js +4 -1
- package/dist/features/faq/schemas/index.d.ts +14 -14
- package/dist/features/filters/AsyncFacetSection.js +6 -1
- package/dist/features/filters/FilterFacetSection.js +6 -1
- package/dist/features/filters/FilterPanel.js +1 -1
- package/dist/features/filters/RangeFilter.js +6 -1
- package/dist/features/filters/SwitchFilter.js +5 -1
- package/dist/features/forms/Checkbox.js +3 -1
- package/dist/features/forms/Input.js +2 -1
- package/dist/features/forms/Radio.js +3 -1
- package/dist/features/forms/Select.js +2 -1
- package/dist/features/forms/Slider.js +3 -1
- package/dist/features/forms/Textarea.js +3 -1
- package/dist/features/forms/Toggle.js +3 -1
- package/dist/features/gateway-events/schemas/index.d.ts +10 -10
- package/dist/features/grouped/components/GroupedListingDetailView.js +4 -1
- package/dist/features/grouped/components/GroupedListingEditorView.js +5 -2
- package/dist/features/grouped/components/GroupedListingsCarousel.js +1 -1
- package/dist/features/grouped/schemas/grouped-listing-form.d.ts +2 -2
- package/dist/features/grouped/schemas/index.d.ts +6 -6
- package/dist/features/history/hooks/useHistory.js +1 -1
- package/dist/features/homepage/actions/homepage-section-actions.d.ts +4 -4
- package/dist/features/homepage/components/AdSlot.js +3 -1
- package/dist/features/homepage/components/BrandsSection.js +6 -1
- package/dist/features/homepage/components/CTABannerSection.js +6 -1
- package/dist/features/homepage/components/CharacterHotspot.js +5 -1
- package/dist/features/homepage/components/CharacterHotspotForm.js +8 -1
- package/dist/features/homepage/components/CollectionCardsSection.js +4 -1
- package/dist/features/homepage/components/CustomCardsSection.js +6 -1
- package/dist/features/homepage/components/CustomerReviewsSection.js +5 -1
- package/dist/features/homepage/components/FAQSection.js +8 -1
- package/dist/features/homepage/components/FeaturedBundlesSection.js +3 -1
- package/dist/features/homepage/components/GoogleReviewsSection.js +6 -1
- package/dist/features/homepage/components/HeroCarousel.js +6 -1
- package/dist/features/homepage/components/HomepageCouponsSection.d.ts +25 -0
- package/dist/features/homepage/components/HomepageCouponsSection.js +42 -0
- package/dist/features/homepage/components/HowItWorksSection.d.ts +1 -1
- package/dist/features/homepage/components/HowItWorksSection.js +7 -1
- package/dist/features/homepage/components/MarketplaceHomepageView.js +52 -4
- package/dist/features/homepage/components/NewsletterSection.js +4 -1
- package/dist/features/homepage/components/PromoGrid.js +4 -1
- package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
- package/dist/features/homepage/components/SectionCarousel.js +6 -1
- package/dist/features/homepage/components/SecurityHighlightsSection.js +6 -1
- package/dist/features/homepage/components/ShopByCategorySection.js +7 -1
- package/dist/features/homepage/components/SocialFeedSection.js +6 -1
- package/dist/features/homepage/components/SocialPostCard.js +4 -1
- package/dist/features/homepage/components/StatsCounterSection.js +5 -1
- package/dist/features/homepage/components/TestimonialsCarousel.js +4 -1
- package/dist/features/homepage/components/TrustFeaturesSection.js +5 -1
- package/dist/features/homepage/components/WelcomeSection.js +10 -1
- package/dist/features/homepage/components/WhatsAppCommunitySection.js +8 -1
- package/dist/features/homepage/lib/section-renderer.d.ts +2 -0
- package/dist/features/homepage/lib/section-renderer.js +8 -0
- package/dist/features/homepage/schemas/firestore.d.ts +23 -2
- package/dist/features/homepage/schemas/firestore.js +2 -0
- package/dist/features/homepage/schemas/index.d.ts +133 -133
- package/dist/features/inventory/components/ReceiveStationView.js +9 -1
- package/dist/features/jobs/actions/enqueue-job.js +1 -1
- package/dist/features/layout/AutoBreadcrumbs.js +3 -1
- package/dist/features/layout/BackToTop.js +2 -1
- package/dist/features/layout/BottomActions.js +5 -1
- package/dist/features/layout/BottomActionsContext.d.ts +1 -1
- package/dist/features/layout/BottomChrome.js +1 -1
- package/dist/features/layout/BottomNavItem.js +2 -1
- package/dist/features/layout/BottomNavLayout.js +1 -1
- package/dist/features/layout/BottomSheet.js +4 -1
- package/dist/features/layout/Breadcrumbs.js +2 -1
- package/dist/features/layout/FooterLayout.js +5 -1
- package/dist/features/layout/LocaleSwitcher.js +1 -1
- package/dist/features/layout/NavItem.js +2 -1
- package/dist/features/layout/NavbarLayout.js +5 -1
- package/dist/features/layout/PageTabs.js +1 -1
- package/dist/features/layout/SideActionDock.js +7 -1
- package/dist/features/layout/SidebarLayout.d.ts +1 -1
- package/dist/features/layout/SidebarLayout.js +2 -1
- package/dist/features/layout/TitleBarLayout.js +9 -1
- package/dist/features/live/components/LiveItemDetailPageView.js +7 -1
- package/dist/features/live/components/LiveItemFilters.js +3 -1
- package/dist/features/lottery/schemas/config-write.d.ts +10 -10
- package/dist/features/lottery/schemas/zod.d.ts +6 -6
- package/dist/features/media/modals/ImageCropModal.js +6 -1
- package/dist/features/media/modals/ImageEditor.js +6 -1
- package/dist/features/media/modals/VideoTrimModal.js +6 -1
- package/dist/features/media/types/index.d.ts +4 -4
- package/dist/features/media/upload/MediaUploadList.js +7 -1
- package/dist/features/orders/components/OrderAddonBadges.js +2 -1
- package/dist/features/orders/components/OrderFilters.js +1 -1
- package/dist/features/orders/components/OrderPaymentSummary.js +4 -1
- package/dist/features/orders/components/OrderProvenanceCard.js +5 -1
- package/dist/features/orders/components/OrderScopeTabs.js +1 -1
- package/dist/features/orders/components/OrderSiblingPayments.js +3 -1
- package/dist/features/orders/components/OrderStatusTimeline.js +4 -1
- package/dist/features/orders/components/OrdersList.js +4 -1
- package/dist/features/orders/components/RefundHistoryTable.js +4 -1
- package/dist/features/orders/components/RefundRequestView.js +1 -1
- package/dist/features/orders/components/YourPurchaseStrip.js +5 -1
- package/dist/features/orders/schemas/index.d.ts +86 -86
- package/dist/features/parts/components/AssemblyDrawer.js +8 -1
- package/dist/features/parts/components/ModelCompositionPanel.js +5 -1
- package/dist/features/parts/components/PartDetailPageView.js +7 -1
- package/dist/features/parts/components/PartsIndexPageView.js +6 -1
- package/dist/features/parts/components/PartsSearchBox.js +5 -1
- package/dist/features/payments/schemas/index.d.ts +10 -10
- package/dist/features/points/schemas/adjust-form.d.ts +2 -2
- package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +1 -1
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +10 -3
- package/dist/features/pre-orders/components/PreOrderActionsClient.js +6 -1
- package/dist/features/pre-orders/components/PreOrderBadge.js +2 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +9 -2
- package/dist/features/pre-orders/components/PreOrderFilters.js +1 -1
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +11 -2
- package/dist/features/pre-orders/components/PreOrdersListView.js +3 -1
- package/dist/features/pre-orders/components/PreorderCard.js +1 -1
- package/dist/features/pre-orders/schemas/index.d.ts +15 -15
- package/dist/features/price-index/components/PriceIndexToolView.js +4 -1
- package/dist/features/pricing/components/AdminPricingView.js +4 -1
- package/dist/features/print/components/BoxLabelPrintView.js +5 -1
- package/dist/features/print/components/LabelProfilePicker.js +3 -1
- package/dist/features/print/components/labels.js +3 -1
- package/dist/features/products/columns/productTableColumns.js +5 -1
- package/dist/features/products/components/ArtStickersListView.js +3 -1
- package/dist/features/products/components/AuctionDetailView.d.ts +1 -1
- package/dist/features/products/components/AuctionDetailView.js +2 -1
- package/dist/features/products/components/AuctionsIndexListing.js +10 -2
- package/dist/features/products/components/AvailabilityScopeHint.js +3 -1
- package/dist/features/products/components/AvailabilityTabs.js +1 -1
- package/dist/features/products/components/BidHistory.js +4 -1
- package/dist/features/products/components/CityCollectiblesView.js +6 -1
- package/dist/features/products/components/CompareOverlay.js +6 -1
- package/dist/features/products/components/CustomFieldsEditor.js +6 -1
- package/dist/features/products/components/CustomSectionTabContent.js +4 -1
- package/dist/features/products/components/CustomSectionsEditor.js +6 -1
- package/dist/features/products/components/FeatureBadge.js +2 -1
- package/dist/features/products/components/GroupMemberPicker.js +8 -1
- package/dist/features/products/components/GroupSettingsPanel.js +12 -1
- package/dist/features/products/components/MakeOfferButton.js +6 -1
- package/dist/features/products/components/MarketplaceBundleCard.js +6 -1
- package/dist/features/products/components/MarketplacePrizeDrawCard.js +7 -1
- package/dist/features/products/components/NonRefundableConsentModal.js +6 -1
- package/dist/features/products/components/PreOrderDetailView.d.ts +1 -1
- package/dist/features/products/components/PreOrderDetailView.js +1 -1
- package/dist/features/products/components/PrizeDrawCollage.js +6 -1
- package/dist/features/products/components/PrizeDrawDetailPageView.js +6 -1
- package/dist/features/products/components/PrizeDrawEntryActions.js +7 -1
- package/dist/features/products/components/PrizeDrawWinnerMappingView.js +7 -1
- package/dist/features/products/components/PrizeDrawsIndexListing.js +8 -1
- package/dist/features/products/components/PrizeDrawsListingView.js +3 -1
- package/dist/features/products/components/PrizeDrawsSection.js +3 -1
- package/dist/features/products/components/PrizeRevealModal.js +6 -1
- package/dist/features/products/components/ProductCardMetadataSection.js +3 -1
- package/dist/features/products/components/ProductDetailActions.js +4 -1
- package/dist/features/products/components/ProductDetailPageView.js +10 -2
- package/dist/features/products/components/ProductDetailView.d.ts +1 -1
- package/dist/features/products/components/ProductDetailView.js +1 -1
- package/dist/features/products/components/ProductFeatureBadges.js +4 -1
- package/dist/features/products/components/ProductFeaturesSelector.js +3 -1
- package/dist/features/products/components/ProductFilters.js +2 -1
- package/dist/features/products/components/ProductForm.js +1 -1
- package/dist/features/products/components/ProductGalleryClient.js +4 -1
- package/dist/features/products/components/ProductGradingTab.js +4 -1
- package/dist/features/products/components/ProductGrid.d.ts +1 -1
- package/dist/features/products/components/ProductGrid.js +7 -1
- package/dist/features/products/components/ProductsIndexListing.js +11 -3
- package/dist/features/products/components/ProductsIndexPageView.js +6 -2
- package/dist/features/products/components/RelatedItemsSection.js +1 -1
- package/dist/features/products/components/RelatedProducts.js +3 -1
- package/dist/features/products/components/ShowGroupSection.js +7 -1
- package/dist/features/products/components/SparesListView.js +4 -1
- package/dist/features/products/components/SublistingCarouselSection.js +4 -1
- package/dist/features/products/components/SublistingCategorySelect.js +2 -1
- package/dist/features/products/hooks/useProducts.js +1 -1
- package/dist/features/products/schemas/index.d.ts +70 -70
- package/dist/features/products/schemas/product-features.validators.d.ts +52 -52
- package/dist/features/products/schemas/surface-counts.d.ts +83 -0
- package/dist/features/products/schemas/surface-counts.js +58 -0
- package/dist/features/promotions/actions/promotions-actions.js +22 -6
- package/dist/features/promotions/components/AttachedCouponsSection.js +5 -2
- package/dist/features/promotions/components/CouponCard.js +8 -1
- package/dist/features/promotions/components/CouponCodeCopyRow.js +2 -1
- package/dist/features/promotions/components/CouponHelpDetails.js +4 -1
- package/dist/features/promotions/components/CouponsIndexListing.js +12 -1
- package/dist/features/promotions/components/PromotionsView.js +4 -1
- package/dist/features/promotions/constants/attached-coupons.d.ts +14 -0
- package/dist/features/promotions/repository/coupons.repository.js +32 -2
- package/dist/features/promotions/schemas/firestore.d.ts +33 -0
- package/dist/features/promotions/schemas/firestore.js +44 -0
- package/dist/features/promotions/schemas/index.d.ts +108 -108
- package/dist/features/reviews/components/ReviewDetailPageView.js +4 -1
- package/dist/features/reviews/components/ReviewDetailShell.js +8 -1
- package/dist/features/reviews/components/ReviewFilters.js +1 -1
- package/dist/features/reviews/components/ReviewModal.js +7 -2
- package/dist/features/reviews/components/ReviewSummary.js +4 -2
- package/dist/features/reviews/components/ReviewsIndexPageView.js +3 -1
- package/dist/features/reviews/components/ReviewsList.js +7 -2
- package/dist/features/reviews/components/ReviewsListingPanel.js +7 -1
- package/dist/features/reviews/schemas/index.d.ts +40 -40
- package/dist/features/scams/components/ScamAwarenessModal.js +7 -1
- package/dist/features/scams/components/ScamProfileView.js +11 -1
- package/dist/features/scams/constants/scammer-status-display.d.ts +1 -1
- package/dist/features/scams/schemas/index.d.ts +22 -22
- package/dist/features/scams/schemas/report-form.d.ts +4 -4
- package/dist/features/search/components/EntityTypeahead.js +5 -1
- package/dist/features/search/components/Search.js +7 -1
- package/dist/features/search/components/SearchFacetRail.js +4 -1
- package/dist/features/search/components/SearchResultsClient.js +1 -1
- package/dist/features/search/components/SearchResultsPageView.js +5 -1
- package/dist/features/seller/components/BulkStockModal.js +2 -1
- package/dist/features/seller/components/CategoryChipPicker.js +3 -1
- package/dist/features/seller/components/FulfillmentView.js +2 -1
- package/dist/features/seller/components/GroupInlineSelect.js +1 -1
- package/dist/features/seller/components/SellerAddressesView.js +11 -2
- package/dist/features/seller/components/SellerAnalyticsAlertsView.js +9 -1
- package/dist/features/seller/components/SellerAnalyticsView.d.ts +1 -1
- package/dist/features/seller/components/SellerAnalyticsView.js +4 -1
- package/dist/features/seller/components/SellerBidsView.js +8 -2
- package/dist/features/seller/components/SellerBundlesView.js +7 -1
- package/dist/features/seller/components/SellerCouponEditorView.js +5 -1
- package/dist/features/seller/components/SellerCouponsView.d.ts +1 -1
- package/dist/features/seller/components/SellerCouponsView.js +5 -1
- package/dist/features/seller/components/SellerDashboardView.d.ts +1 -1
- package/dist/features/seller/components/SellerDashboardView.js +4 -1
- package/dist/features/seller/components/SellerFeaturesView.js +8 -1
- package/dist/features/seller/components/SellerGoogleReviewsView.js +7 -1
- package/dist/features/seller/components/SellerGroupedListingsView.js +4 -1
- package/dist/features/seller/components/SellerGuideView.d.ts +1 -1
- package/dist/features/seller/components/SellerGuideView.js +1 -1
- package/dist/features/seller/components/SellerListingTypeView.js +4 -1
- package/dist/features/seller/components/SellerOffersView.d.ts +1 -1
- package/dist/features/seller/components/SellerOffersView.js +4 -1
- package/dist/features/seller/components/SellerOrdersView.js +8 -1
- package/dist/features/seller/components/SellerPayoutHistoryTable.js +2 -1
- package/dist/features/seller/components/SellerPayoutMethodsView.js +7 -1
- package/dist/features/seller/components/SellerPayoutRequestView.js +8 -1
- package/dist/features/seller/components/SellerPayoutSettingsView.js +3 -2
- package/dist/features/seller/components/SellerPayoutStats.js +1 -1
- package/dist/features/seller/components/SellerPayoutsView.d.ts +1 -1
- package/dist/features/seller/components/SellerPayoutsView.js +10 -1
- package/dist/features/seller/components/SellerProductsCards.js +7 -1
- package/dist/features/seller/components/SellerProductsFilterDrawer.js +4 -1
- package/dist/features/seller/components/SellerProductsView.js +7 -1
- package/dist/features/seller/components/SellerReviewsView.js +11 -1
- package/dist/features/seller/components/SellerShippingConfigsView.js +6 -1
- package/dist/features/seller/components/SellerShippingView.js +2 -2
- package/dist/features/seller/components/SellerSidebar.js +7 -1
- package/dist/features/seller/components/SellerStoreCategoriesView.js +5 -1
- package/dist/features/seller/components/SellerStoreSetupView.js +2 -1
- package/dist/features/seller/components/SellerStorefrontView.js +1 -1
- package/dist/features/seller/components/SellerSupportView.d.ts +1 -1
- package/dist/features/seller/components/SellerSupportView.js +4 -1
- package/dist/features/seller/components/SellersListView.d.ts +1 -1
- package/dist/features/seller/components/SellersListView.js +1 -1
- package/dist/features/seller/components/analytics/SellerAnalyticsStats.js +1 -1
- package/dist/features/seller/components/analytics/SellerRevenueChart.js +2 -1
- package/dist/features/seller/components/analytics/SellerTopProducts.js +3 -1
- package/dist/features/seller/schemas/coupon-form.d.ts +50 -50
- package/dist/features/seller/schemas/index.d.ts +22 -22
- package/dist/features/seller/schemas/order-forms.d.ts +12 -12
- package/dist/features/server-errors/schemas/index.d.ts +4 -4
- package/dist/features/shell/CommandPalette.js +7 -1
- package/dist/features/shell/FormShell.js +5 -1
- package/dist/features/shell/SectionForm.js +4 -1
- package/dist/features/shipments/components/AdminShipmentEditorView.js +9 -1
- package/dist/features/shipments/components/AdminShipmentLotItemsView.js +11 -1
- package/dist/features/shipments/components/AdminShipmentProjectionsView.js +10 -1
- package/dist/features/shipments/components/AdminShipmentsView.d.ts +1 -1
- package/dist/features/shipments/components/AdminShipmentsView.js +3 -1
- package/dist/features/shipments/components/ShipmentItemLinkModal.js +7 -1
- package/dist/features/shipments/schemas/validation.d.ts +44 -44
- package/dist/features/site-settings/components/ActionPermissionsManager.js +7 -2
- package/dist/features/site-settings/components/NavPermissionsManager.js +6 -2
- package/dist/features/site-settings/components/ThemeManagerView.js +9 -1
- package/dist/features/status-history/components/StatusTimeline.js +4 -1
- package/dist/features/sticker-trace/components/StickerPrintPanel.js +6 -1
- package/dist/features/sticker-trace/components/StickerRetryPanel.js +4 -1
- package/dist/features/sticker-trace/components/StickerRunHistoryPanel.js +5 -1
- package/dist/features/sticker-trace/components/StickerTraceStudio.js +5 -1
- package/dist/features/store-extensions/schemas/admin-notification-form.d.ts +5 -5
- package/dist/features/store-extensions/schemas/custom-role-form.d.ts +12 -12
- package/dist/features/store-extensions/schemas/item-request-create-form.d.ts +2 -2
- package/dist/features/store-extensions/schemas/listing-template-form.d.ts +13 -13
- package/dist/features/store-extensions/schemas/payout-method-form.d.ts +10 -10
- package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +12 -12
- package/dist/features/store-extensions/schemas/store-category-form.d.ts +10 -10
- package/dist/features/stores/components/InteractiveStoreCard.js +6 -1
- package/dist/features/stores/components/SellerStandingPanel.js +3 -1
- package/dist/features/stores/components/SellerTierBadge.js +2 -1
- package/dist/features/stores/components/StoreAboutView.js +5 -1
- package/dist/features/stores/components/StoreAddressSelectorCreate.js +2 -1
- package/dist/features/stores/components/StoreAuctionsListing.js +8 -1
- package/dist/features/stores/components/StoreAuctionsView.d.ts +1 -1
- package/dist/features/stores/components/StoreAuctionsView.js +1 -1
- package/dist/features/stores/components/StoreBundlesPageView.js +1 -1
- package/dist/features/stores/components/StoreCapabilitiesGuideView.js +6 -1
- package/dist/features/stores/components/StoreClassifiedsListing.js +7 -1
- package/dist/features/stores/components/StoreCreateForm.js +3 -1
- package/dist/features/stores/components/StoreDetailLayoutView.js +5 -2
- package/dist/features/stores/components/StoreDigitalCodesListing.js +7 -1
- package/dist/features/stores/components/StoreFilters.js +1 -1
- package/dist/features/stores/components/StoreFinanceGuideView.js +6 -1
- package/dist/features/stores/components/StoreGuideHubView.js +6 -1
- package/dist/features/stores/components/StoreHeader.js +6 -1
- package/dist/features/stores/components/StoreListingsGuideView.js +6 -1
- package/dist/features/stores/components/StoreLiveItemsListing.js +7 -1
- package/dist/features/stores/components/StoreNavTabs.js +3 -1
- package/dist/features/stores/components/StoreOrdersGuideView.js +7 -1
- package/dist/features/stores/components/StorePreOrdersListing.js +7 -1
- package/dist/features/stores/components/StoreProductsListing.js +8 -1
- package/dist/features/stores/components/StoreProductsView.js +5 -1
- package/dist/features/stores/components/StoreReviewsView.d.ts +1 -1
- package/dist/features/stores/components/StoreReviewsView.js +1 -1
- package/dist/features/stores/components/StoreSettingsGuideView.js +6 -1
- package/dist/features/stores/components/StoresIndexListing.js +9 -2
- package/dist/features/stores/components/StoresIndexPageView.js +4 -2
- package/dist/features/stores/hooks/useStoreAddressSelector.d.ts +1 -1
- package/dist/features/stores/schemas/index.d.ts +28 -28
- package/dist/features/support/schemas/index.d.ts +14 -14
- package/dist/features/support/schemas/ticket-create-form.d.ts +4 -4
- package/dist/features/tax-codes/schemas/tax-code-form.d.ts +4 -4
- package/dist/features/tax-codes/schemas/tax-codes.validators.d.ts +10 -10
- package/dist/features/tester/actions/checklist-item-actions.d.ts +3 -3
- package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +7 -1
- package/dist/features/tester/components/AdminTesterFeedbackListView.js +5 -1
- package/dist/features/tester/components/AdminTesterFeedbackReportView.js +2 -1
- package/dist/features/tester/components/AdminTesterFeedbackView.js +5 -1
- package/dist/features/tester/components/TesterChecklistStepRow.js +8 -1
- package/dist/features/tester/components/TesterFeedbackChart.js +3 -1
- package/dist/features/tester/schemas/checklist-item-form.d.ts +2 -2
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +8 -1
- package/dist/features/wishlist/components/WishlistCapWatcher.js +1 -1
- package/dist/features/wishlist/components/WishlistHeartButton.js +2 -1
- package/dist/features/wishlist/components/WishlistPage.js +5 -1
- package/dist/features/wishlist/components/WishlistView.js +3 -1
- package/dist/features/wishlist/hooks/useWishlistToggle.js +1 -1
- package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
- package/dist/features/wishlist/schemas/index.d.ts +2 -2
- package/dist/index.d.ts +2496 -2453
- package/dist/index.js +1545 -1500
- package/dist/next/api/routeHandler.js +1 -1
- package/dist/react/hooks/use-action-dispatch.d.ts +1 -1
- package/dist/react/hooks/use-action-dispatch.js +1 -1
- package/dist/react/hooks/useListingSurfaceVisibility.d.ts +44 -0
- package/dist/react/hooks/useListingSurfaceVisibility.js +20 -0
- package/dist/schemas/registry.d.ts +488 -483
- package/dist/schemas/sieve.d.ts +5 -5
- package/dist/schemas/webhooks/google-oauth.d.ts +4 -4
- package/dist/server.d.ts +371 -362
- package/dist/server.js +367 -351
- package/dist/ui/components/HorizontalScroller.js +27 -2
- package/dist/ui/components/Repeater.js +4 -1
- package/dist/validation/schemas.d.ts +26 -26
- package/package.json +121 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* request.
|
|
8
8
|
*/
|
|
9
9
|
import { cache } from "react";
|
|
10
|
-
import { itemRequestsRepository } from "../../../../
|
|
10
|
+
import { itemRequestsRepository } from "../../../../features/store-extensions/repository/store-extensions.repositories.js";
|
|
11
11
|
/**
|
|
12
12
|
* Fetch a single item-request by id. Returns null when the id is empty
|
|
13
13
|
* or no matching document exists.
|
|
@@ -13,7 +13,7 @@ import { finalizeStagedMediaArray } from "../../../../features/media/finalize.js
|
|
|
13
13
|
import { sendNotification } from "../../../../features/admin/actions/notification-actions.js";
|
|
14
14
|
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
15
15
|
import { normalizeListingType } from "../../../../features/products/utils/listing-type.js";
|
|
16
|
-
import { siteSettingsRepository } from "../../../../
|
|
16
|
+
import { siteSettingsRepository } from "../../../../features/admin/repository/site-settings.repository.js";
|
|
17
17
|
const MESSAGE_MAX_LENGTH = 2000;
|
|
18
18
|
/**
|
|
19
19
|
* Off by default — `undefined` reads as OFF, never a default-true `??`. A
|
|
@@ -60,7 +60,7 @@ import { wrapAction } from "../../../shared/types/action-result.js";
|
|
|
60
60
|
* this change buys is that the loss is now VISIBLE — a durable row with the
|
|
61
61
|
* store, the order and the amount — instead of silently absorbed.
|
|
62
62
|
*/
|
|
63
|
-
import { payoutRepository } from "../../../../
|
|
63
|
+
import { payoutRepository } from "../../../../features/payments/repository/payout.repository.js";
|
|
64
64
|
import { serverErrorsRepository } from "../../../../features/server-errors/repository/server-errors.repository.js";
|
|
65
65
|
import { ValidationError } from "../../../../errors/index.js";
|
|
66
66
|
import { roundRupees } from "../../../../utils/number.formatter.js";
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* .wasm files, naming none of the responsible files. Root Cause #18.
|
|
12
12
|
*/
|
|
13
13
|
import { wrapAction } from "../../../shared/types/action-result.js";
|
|
14
|
-
import { productRepository } from "../../../../
|
|
14
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
15
15
|
import { requireRoleUser } from "../../../../providers/auth-firebase/helpers.js";
|
|
16
16
|
import { reservePreOrderSchema } from "../../../shared/features/pre-orders/schema.js";
|
|
17
17
|
import { assertPreOrderAvailable, computeDeposit } from "./service.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { productRepository } from "../../../../
|
|
1
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
2
2
|
import { isPreOrderListing } from "../../../../features/products/utils/listing-type.js";
|
|
3
3
|
import { roundRupees } from "../../../../utils/number.formatter.js";
|
|
4
4
|
import { PreOrderNotFoundError, PreOrderSoldOutError, PreOrderNotOpenError, } from "../../../shared/features/pre-orders/errors.js";
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* .wasm files, naming none of the responsible files. Root Cause #18.
|
|
12
12
|
*/
|
|
13
13
|
import { wrapAction } from "../../../shared/types/action-result.js";
|
|
14
|
-
import { productRepository } from "../../../../
|
|
14
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
15
15
|
import { requireRoleUser } from "../../../../providers/auth-firebase/helpers.js";
|
|
16
16
|
import { assertPrizeDrawOpen } from "./service.js";
|
|
17
17
|
export async function enterPrizeDrawAction(input) {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* .wasm files, naming none of the responsible files. Root Cause #18.
|
|
12
12
|
*/
|
|
13
13
|
import { wrapAction } from "../../../shared/types/action-result.js";
|
|
14
|
-
import { productRepository } from "../../../../
|
|
14
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
15
15
|
import { requireRoleUser } from "../../../../providers/auth-firebase/helpers.js";
|
|
16
16
|
import { isAdminUser } from "../../../../features/auth/role-predicates.js";
|
|
17
17
|
import { productInputSchema, productUpdateSchema, auctionInputSchema, preOrderInputSchema, setFeaturedSchema, setStatusSchema } from "../../../shared/features/products/schema.js";
|
|
@@ -4,7 +4,7 @@ import { cache } from "react";
|
|
|
4
4
|
// without dragging this file's firebase-admin chain into the client bundle.
|
|
5
5
|
import { toProductItem } from "../../../shared/features/products/to-product-item.js";
|
|
6
6
|
export { toProductItem };
|
|
7
|
-
import { productRepository } from "../../../../
|
|
7
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
8
8
|
import { reviewRepository } from "../../../../repositories/index.js";
|
|
9
9
|
import { getAdminDb } from "../../../../providers/db-firebase/index.js";
|
|
10
10
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* @tag consumers:ProductsIndexPageView,ArtStickersListView,AuctionsListView,PreOrdersListView,api/products
|
|
34
34
|
* @tag sideEffects:firestore-read
|
|
35
35
|
*/
|
|
36
|
-
import { productRepository } from "../../../../
|
|
36
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
37
37
|
import { filterTestDataForViewer } from "../tester/visibility.js";
|
|
38
38
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
39
39
|
import { serverLogger } from "../../../../monitoring/server-logger.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { productRepository } from "../../../../
|
|
1
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
2
2
|
import { isAuctionListing, isPreOrderListing, } from "../../../../features/products/utils/listing-type.js";
|
|
3
3
|
import { ProductNotFoundError, ProductOwnershipError, ProductStatusError, ProductStockError, } from "../../../shared/features/products/errors.js";
|
|
4
4
|
import { ValidationError } from "../../../shared/errors/index.js";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read `surfaceCounts/global` — one document, for the public settings payload
|
|
3
|
+
* and the server-side page guards.
|
|
4
|
+
*
|
|
5
|
+
* 🛑 FAILS OPEN, AND "OPEN" HERE MEANS `undefined`, NOT `{}`.
|
|
6
|
+
*
|
|
7
|
+
* Every failure path — missing document, unreadable document, malformed
|
|
8
|
+
* payload — returns `undefined`, which `isListingSurfaceVisible` reads as
|
|
9
|
+
* "unknown, show it". Returning an empty object instead would read as
|
|
10
|
+
* "measured, everything is empty" and would 404 every browse page on the site
|
|
11
|
+
* the first time Firestore hiccuped.
|
|
12
|
+
*
|
|
13
|
+
* This is the same failure posture as `guardBrowsePage`'s settings read ("a
|
|
14
|
+
* Firestore blip must not 404 the catalogue") and `getLiveCategoryCounts`
|
|
15
|
+
* ("a missing document is `undefined`, never 0").
|
|
16
|
+
*
|
|
17
|
+
* @tag domain:products
|
|
18
|
+
* @tag layer:server-feature
|
|
19
|
+
* @tag access:server-only
|
|
20
|
+
* @tag sideEffects:firestore-read
|
|
21
|
+
*/
|
|
22
|
+
export interface PublicSurfaceCounts {
|
|
23
|
+
listingTypes?: Record<string, number>;
|
|
24
|
+
surfaces?: Record<string, number>;
|
|
25
|
+
}
|
|
26
|
+
export declare function getSurfaceCounts(): Promise<PublicSurfaceCounts | undefined>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read `surfaceCounts/global` — one document, for the public settings payload
|
|
3
|
+
* and the server-side page guards.
|
|
4
|
+
*
|
|
5
|
+
* 🛑 FAILS OPEN, AND "OPEN" HERE MEANS `undefined`, NOT `{}`.
|
|
6
|
+
*
|
|
7
|
+
* Every failure path — missing document, unreadable document, malformed
|
|
8
|
+
* payload — returns `undefined`, which `isListingSurfaceVisible` reads as
|
|
9
|
+
* "unknown, show it". Returning an empty object instead would read as
|
|
10
|
+
* "measured, everything is empty" and would 404 every browse page on the site
|
|
11
|
+
* the first time Firestore hiccuped.
|
|
12
|
+
*
|
|
13
|
+
* This is the same failure posture as `guardBrowsePage`'s settings read ("a
|
|
14
|
+
* Firestore blip must not 404 the catalogue") and `getLiveCategoryCounts`
|
|
15
|
+
* ("a missing document is `undefined`, never 0").
|
|
16
|
+
*
|
|
17
|
+
* @tag domain:products
|
|
18
|
+
* @tag layer:server-feature
|
|
19
|
+
* @tag access:server-only
|
|
20
|
+
* @tag sideEffects:firestore-read
|
|
21
|
+
*/
|
|
22
|
+
import { normalizeError } from "../../../../errors/normalize.js";
|
|
23
|
+
import { serverLogger } from "../../../../monitoring/server-logger.js";
|
|
24
|
+
import { getAdminDb } from "../../../../providers/db-firebase/index.js";
|
|
25
|
+
import { SURFACE_COUNTS_COLLECTION, SURFACE_COUNTS_DOC_ID, } from "../../../../features/products/schemas/surface-counts.js";
|
|
26
|
+
/** Keep only numeric entries — a malformed value must not read as a zero. */
|
|
27
|
+
function sanitize(input) {
|
|
28
|
+
if (!input || typeof input !== "object")
|
|
29
|
+
return undefined;
|
|
30
|
+
const out = {};
|
|
31
|
+
for (const [k, v] of Object.entries(input)) {
|
|
32
|
+
if (typeof v === "number" && Number.isFinite(v) && v >= 0)
|
|
33
|
+
out[k] = v;
|
|
34
|
+
}
|
|
35
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
36
|
+
}
|
|
37
|
+
export async function getSurfaceCounts() {
|
|
38
|
+
try {
|
|
39
|
+
const db = getAdminDb();
|
|
40
|
+
const snap = await db
|
|
41
|
+
.collection(SURFACE_COUNTS_COLLECTION)
|
|
42
|
+
.doc(SURFACE_COUNTS_DOC_ID)
|
|
43
|
+
.get();
|
|
44
|
+
if (!snap.exists)
|
|
45
|
+
return undefined;
|
|
46
|
+
const data = snap.data() ?? {};
|
|
47
|
+
const listingTypes = sanitize(data.listingTypes);
|
|
48
|
+
const surfaces = sanitize(data.surfaces);
|
|
49
|
+
// Both empty -> `undefined`, not `{}`. A document that exists but holds
|
|
50
|
+
// nothing usable is not a measurement.
|
|
51
|
+
if (!listingTypes && !surfaces)
|
|
52
|
+
return undefined;
|
|
53
|
+
return { listingTypes, surfaces };
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
void normalizeError(err);
|
|
57
|
+
serverLogger.warn("surfaceCounts read failed — surfaces will all render visible");
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* .wasm files, naming none of the responsible files. Root Cause #18.
|
|
12
12
|
*/
|
|
13
13
|
import { wrapAction } from "../../../shared/types/action-result.js";
|
|
14
|
-
import { couponsRepository } from "../../../../
|
|
14
|
+
import { couponsRepository } from "../../../../features/promotions/repository/coupons.repository.js";
|
|
15
15
|
import { requireRoleUser } from "../../../../providers/auth-firebase/helpers.js";
|
|
16
16
|
import { applyCouponSchema, createCouponSchema, updateCouponSchema, } from "../../../shared/features/promotions/schema.js";
|
|
17
17
|
import { validateCoupon, computeDiscount } from "./service.js";
|
|
@@ -39,5 +39,14 @@ export function toAttachedCoupon(doc) {
|
|
|
39
39
|
* missing `endsAt` as expired hides every open-ended coupon.
|
|
40
40
|
*/
|
|
41
41
|
endsAt: doc.validity.endDate ? new Date(doc.validity.endDate).toISOString() : undefined,
|
|
42
|
+
/*
|
|
43
|
+
* Emitted ONLY when it is in the future, so the renderer never has to
|
|
44
|
+
* re-ask the question. A start date in the past is the ordinary case and
|
|
45
|
+
* says nothing worth printing — carrying it anyway would invite a card to
|
|
46
|
+
* announce "Opens 6 Nov" for the rest of time.
|
|
47
|
+
*/
|
|
48
|
+
startsAt: doc.validity.startDate && new Date(doc.validity.startDate) > new Date()
|
|
49
|
+
? new Date(doc.validity.startDate).toISOString()
|
|
50
|
+
: undefined,
|
|
42
51
|
};
|
|
43
52
|
}
|
|
@@ -15,13 +15,34 @@ export declare const getCouponByCode: (code: string) => Promise<import("../../..
|
|
|
15
15
|
* 🛑 EXPIRED AND INACTIVE COUPONS ARE DROPPED HERE, not in the renderer.
|
|
16
16
|
* A blog post from March that still advertises a code which now errors at
|
|
17
17
|
* checkout is worse than one that advertises nothing: the reader does the
|
|
18
|
-
* work of copying it and is refused at the till.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* work of copying it and is refused at the till.
|
|
19
|
+
*
|
|
20
|
+
* 🛑 BUT A NOT-YET-OPEN CODE IS KEPT — `isCouponDisplayable`, not
|
|
21
|
+
* `isCouponValid`. This used to be the checkout predicate, which also requires
|
|
22
|
+
* `startDate <= now`, and that single clause is why the Diwali event rendered
|
|
23
|
+
* ONE coupon where it carries five: all four attached codes open on Dhanteras.
|
|
24
|
+
* Publishing a code ahead of time is deliberate ("save it ahead of time," says
|
|
25
|
+
* the event's own copy); hiding it breaks the page's own promise.
|
|
21
26
|
*
|
|
22
27
|
* It does NOT check `perUserLimit` — that is per-reader and unknowable on a
|
|
23
28
|
* cached public page. A reader who has personally exhausted a still-valid
|
|
24
29
|
* coupon is refused at checkout with a message that can explain why; that is
|
|
25
30
|
* the correct place for it.
|
|
26
31
|
*/
|
|
32
|
+
/**
|
|
33
|
+
* Every live coupon, for the homepage `coupons` rail.
|
|
34
|
+
*
|
|
35
|
+
* 🛑 SAME DISPLAY PREDICATE AS `/promotions` AND THE EVENT PAGE, deliberately.
|
|
36
|
+
* These are the same claim made in three places; a code visible on one and
|
|
37
|
+
* absent from another reads as a broken link. One `isCouponDisplayable` call
|
|
38
|
+
* is what keeps them from drifting — this codebase has paid for hand-written
|
|
39
|
+
* copies of a money predicate before (Root Cause #75), and these three had in
|
|
40
|
+
* fact already drifted from `/api/coupons`, which never applied the
|
|
41
|
+
* start-date clause and so rendered codes the server surfaces swore did not
|
|
42
|
+
* exist.
|
|
43
|
+
*
|
|
44
|
+
* `limit` is applied LAST, after filtering, so an expired code can never
|
|
45
|
+
* occupy one of the rail's slots and silently push a live one off the end.
|
|
46
|
+
*/
|
|
47
|
+
export declare const getHomepageCoupons: (limit: number) => Promise<AttachedCoupon[]>;
|
|
27
48
|
export declare const getAttachedCoupons: (couponIds: readonly string[] | undefined) => Promise<AttachedCoupon[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cache } from "react";
|
|
2
|
-
import { couponsRepository } from "../../../../
|
|
3
|
-
import {
|
|
2
|
+
import { couponsRepository } from "../../../../features/promotions/repository/coupons.repository.js";
|
|
3
|
+
import { isCouponDisplayable } from "../../../../features/promotions/schemas/index.js";
|
|
4
4
|
import { toAttachedCoupon } from "./adapters.js";
|
|
5
5
|
import { safeRead } from "../../../../errors/safe-read.js";
|
|
6
6
|
export const getCouponByCode = cache(async (code) => {
|
|
@@ -21,15 +21,50 @@ export const getCouponByCode = cache(async (code) => {
|
|
|
21
21
|
* 🛑 EXPIRED AND INACTIVE COUPONS ARE DROPPED HERE, not in the renderer.
|
|
22
22
|
* A blog post from March that still advertises a code which now errors at
|
|
23
23
|
* checkout is worse than one that advertises nothing: the reader does the
|
|
24
|
-
* work of copying it and is refused at the till.
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* work of copying it and is refused at the till.
|
|
25
|
+
*
|
|
26
|
+
* 🛑 BUT A NOT-YET-OPEN CODE IS KEPT — `isCouponDisplayable`, not
|
|
27
|
+
* `isCouponValid`. This used to be the checkout predicate, which also requires
|
|
28
|
+
* `startDate <= now`, and that single clause is why the Diwali event rendered
|
|
29
|
+
* ONE coupon where it carries five: all four attached codes open on Dhanteras.
|
|
30
|
+
* Publishing a code ahead of time is deliberate ("save it ahead of time," says
|
|
31
|
+
* the event's own copy); hiding it breaks the page's own promise.
|
|
27
32
|
*
|
|
28
33
|
* It does NOT check `perUserLimit` — that is per-reader and unknowable on a
|
|
29
34
|
* cached public page. A reader who has personally exhausted a still-valid
|
|
30
35
|
* coupon is refused at checkout with a message that can explain why; that is
|
|
31
36
|
* the correct place for it.
|
|
32
37
|
*/
|
|
38
|
+
/**
|
|
39
|
+
* Every live coupon, for the homepage `coupons` rail.
|
|
40
|
+
*
|
|
41
|
+
* 🛑 SAME DISPLAY PREDICATE AS `/promotions` AND THE EVENT PAGE, deliberately.
|
|
42
|
+
* These are the same claim made in three places; a code visible on one and
|
|
43
|
+
* absent from another reads as a broken link. One `isCouponDisplayable` call
|
|
44
|
+
* is what keeps them from drifting — this codebase has paid for hand-written
|
|
45
|
+
* copies of a money predicate before (Root Cause #75), and these three had in
|
|
46
|
+
* fact already drifted from `/api/coupons`, which never applied the
|
|
47
|
+
* start-date clause and so rendered codes the server surfaces swore did not
|
|
48
|
+
* exist.
|
|
49
|
+
*
|
|
50
|
+
* `limit` is applied LAST, after filtering, so an expired code can never
|
|
51
|
+
* occupy one of the rail's slots and silently push a live one off the end.
|
|
52
|
+
*/
|
|
53
|
+
export const getHomepageCoupons = cache(async (limit) => {
|
|
54
|
+
/*
|
|
55
|
+
* `safeRead`, for the reason given on `getAttachedCoupons` below: the
|
|
56
|
+
* homepage is prerendered and an unguarded throw during the prerender
|
|
57
|
+
* ATTEMPT is fatal to the production build. A failed read costs the page
|
|
58
|
+
* its coupon rail and records a DEGRADED_READ — it does not cost the
|
|
59
|
+
* homepage.
|
|
60
|
+
*/
|
|
61
|
+
const docs = await safeRead(() => couponsRepository.getActiveCoupons(), {
|
|
62
|
+
route: "/",
|
|
63
|
+
key: "promotions.getActiveCoupons",
|
|
64
|
+
fallback: [],
|
|
65
|
+
});
|
|
66
|
+
return docs.filter(isCouponDisplayable).map(toAttachedCoupon).slice(0, limit);
|
|
67
|
+
});
|
|
33
68
|
export const getAttachedCoupons = cache(async (couponIds) => {
|
|
34
69
|
if (!couponIds || couponIds.length === 0)
|
|
35
70
|
return [];
|
|
@@ -46,5 +81,5 @@ export const getAttachedCoupons = cache(async (couponIds) => {
|
|
|
46
81
|
key: "promotions.findByIds",
|
|
47
82
|
fallback: [],
|
|
48
83
|
});
|
|
49
|
-
return docs.filter(
|
|
84
|
+
return docs.filter(isCouponDisplayable).map(toAttachedCoupon);
|
|
50
85
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getCouponByCode, getAttachedCoupons } from "./data";
|
|
1
|
+
export { getCouponByCode, getAttachedCoupons, getHomepageCoupons } from "./data";
|
|
2
2
|
export { toAttachedCoupon } from "./adapters";
|
|
3
3
|
export { validateCoupon, computeDiscount } from "./service";
|
|
4
4
|
export { applyCouponAction, createCouponAction, updateCouponAction, deactivateCouponAction } from "./actions";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getCouponByCode, getAttachedCoupons } from "./data.js";
|
|
1
|
+
export { getCouponByCode, getAttachedCoupons, getHomepageCoupons } from "./data.js";
|
|
2
2
|
export { toAttachedCoupon } from "./adapters.js";
|
|
3
3
|
export { validateCoupon, computeDiscount } from "./service.js";
|
|
4
4
|
export { applyCouponAction, createCouponAction, updateCouponAction, deactivateCouponAction } from "./actions.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { couponsRepository } from "../../../../
|
|
1
|
+
import { couponsRepository } from "../../../../features/promotions/repository/coupons.repository.js";
|
|
2
2
|
import { roundRupees } from "../../../../utils/number.formatter.js";
|
|
3
3
|
import { CouponNotFoundError, CouponExpiredError, CouponUsageLimitError, CouponPerUserLimitError, CouponMinPurchaseError, CouponScopeError, } from "../../../shared/features/promotions/errors.js";
|
|
4
4
|
export async function validateCoupon(input, userId) {
|
|
@@ -2,7 +2,7 @@ import { normalizeError } from "../../../../errors/normalize.js";
|
|
|
2
2
|
import { getAdminDb } from "../../../../providers/db-firebase/index.js";
|
|
3
3
|
import { ROUTES } from "../../../../next/routing/route-map.js";
|
|
4
4
|
import { PRODUCT_COLLECTION } from "../../../../features/products/schemas/firestore.js";
|
|
5
|
-
import { EVENTS_COLLECTION, EVENT_FIELDS } from "../../../../features/events/
|
|
5
|
+
import { EVENTS_COLLECTION, EVENT_FIELDS } from "../../../../features/events/schemas/firestore.js";
|
|
6
6
|
import { BLOG_POSTS_COLLECTION, BLOG_POST_FIELDS } from "../../../../features/blog/schemas/firestore.js";
|
|
7
7
|
import { CATEGORIES_COLLECTION, CATEGORY_FIELDS } from "../../../../features/categories/schemas/firestore.js";
|
|
8
8
|
// Imported from the DEFINING module, not the feature barrel (Root Cause #18).
|
|
@@ -15,8 +15,10 @@ import { serverLogger } from "../../../../monitoring/server-logger.js";
|
|
|
15
15
|
import { PRODUCT_FIELDS } from "../../../../constants/field-names.js";
|
|
16
16
|
import { PRODUCT_DETAIL_LISTING_TYPES } from "./product-detail-types.js";
|
|
17
17
|
import { safeRead } from "../../../../errors/safe-read.js";
|
|
18
|
-
import { siteSettingsRepository } from "../../../../
|
|
19
|
-
import { ALL_BROWSE_PAGES, browsePageForPath, isBrowsePageEnabled, } from "../../../shared/listing-types/feature-flags.js";
|
|
18
|
+
import { siteSettingsRepository } from "../../../../features/admin/repository/site-settings.repository.js";
|
|
19
|
+
import { ALL_BROWSE_PAGES, ALL_LISTING_TYPES, browsePageForPath, isBrowsePageEnabled, isListingSurfaceVisible, } from "../../../shared/listing-types/feature-flags.js";
|
|
20
|
+
import { pluginFor } from "../../../shared/listing-types/_registry.js";
|
|
21
|
+
import { getSurfaceCounts } from "../products/surface-counts.js";
|
|
20
22
|
// Product field strings — matches consumer field-names.ts
|
|
21
23
|
const PRODUCT_STATUS = "status";
|
|
22
24
|
const PRODUCT_STATUS_PUBLISHED = "published";
|
|
@@ -648,12 +650,44 @@ export async function buildSitemap({ baseUrl }) {
|
|
|
648
650
|
fallback: null,
|
|
649
651
|
});
|
|
650
652
|
const closed = new Set(ALL_BROWSE_PAGES.filter((p) => !isBrowsePageEnabled(p, settings)));
|
|
653
|
+
/*
|
|
654
|
+
* The same treatment for a listing-type surface that is switched off or
|
|
655
|
+
* measured as holding nothing — `/auctions`, `/art`, `/spares`, …
|
|
656
|
+
*
|
|
657
|
+
* 🛑 BROWSE ROUTES ONLY, matched on the exact path. Detail URLs are NOT
|
|
658
|
+
* dropped here and that is deliberate: art, stickers, spares and standard
|
|
659
|
+
* all detail at `/products/{slug}`, so a path test cannot tell them apart,
|
|
660
|
+
* and a prefix rule would silently delist the entire standard catalogue the
|
|
661
|
+
* day `spares` emptied. An empty type contributes no detail URLs anyway —
|
|
662
|
+
* its fetcher returns none — so the exact-path rule loses nothing real.
|
|
663
|
+
*
|
|
664
|
+
* 🛑 Fails OPEN twice: `settings` is already `safeRead`-wrapped above, and
|
|
665
|
+
* `getSurfaceCounts` returns `undefined` on any failure, which
|
|
666
|
+
* `isListingSurfaceVisible` reads as visible. An unmeasured surface stays in
|
|
667
|
+
* the sitemap rather than being withdrawn by a job that has not run.
|
|
668
|
+
*/
|
|
669
|
+
const counts = await getSurfaceCounts();
|
|
670
|
+
const hiddenSurfacePaths = new Set(ALL_LISTING_TYPES.filter((t) => !isListingSurfaceVisible(t, settings, counts))
|
|
671
|
+
.map((t) => String(pluginFor(t).browseRoute ?? ""))
|
|
672
|
+
.filter(Boolean));
|
|
673
|
+
/*
|
|
674
|
+
* A route shared by several types survives while ANY of them is visible —
|
|
675
|
+
* `/art` spans art and stickers. Without this, hiding stickers alone would
|
|
676
|
+
* delist a page art still fills.
|
|
677
|
+
*/
|
|
678
|
+
for (const t of ALL_LISTING_TYPES) {
|
|
679
|
+
if (isListingSurfaceVisible(t, settings, counts)) {
|
|
680
|
+
hiddenSurfacePaths.delete(String(pluginFor(t).browseRoute ?? ""));
|
|
681
|
+
}
|
|
682
|
+
}
|
|
651
683
|
const keep = (entry) => {
|
|
652
|
-
if (closed.size === 0)
|
|
653
|
-
return true;
|
|
654
684
|
const path = entry.url.startsWith("http")
|
|
655
685
|
? new URL(entry.url).pathname
|
|
656
686
|
: entry.url;
|
|
687
|
+
if (hiddenSurfacePaths.has(path.replace(/\/+$/, "") || "/"))
|
|
688
|
+
return false;
|
|
689
|
+
if (closed.size === 0)
|
|
690
|
+
return true;
|
|
657
691
|
const page = browsePageForPath(path);
|
|
658
692
|
return page === null || !closed.has(page);
|
|
659
693
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cache } from "react";
|
|
2
|
-
import { productRepository } from "../../../../
|
|
2
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
3
3
|
import { safeRead } from "../../../../errors/safe-read.js";
|
|
4
4
|
import { loadProductFeaturesForStore } from "../../../../features/products/repository/loadProductFeatures.js";
|
|
5
5
|
import { isPubliclyVisible } from "../../../shared/listing-types/availability.js";
|
|
@@ -28,7 +28,7 @@ import { EmailContainer, EmailDoc, EmailRow, } from "../../../../features/email/
|
|
|
28
28
|
import { paymentCasesRepository } from "../../../../features/payment-cases/repository/payment-cases.repository.js";
|
|
29
29
|
// `adminNotificationsRepository` lives behind the repositories barrel — the
|
|
30
30
|
// same import the two existing staff-signal call sites use.
|
|
31
|
-
import { adminNotificationsRepository } from "../../../../
|
|
31
|
+
import { adminNotificationsRepository } from "../../../../features/store-extensions/repository/rbac.repositories.js";
|
|
32
32
|
import { siteSettingsRepository } from "../../../../features/admin/repository/site-settings.repository.js";
|
|
33
33
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
34
34
|
import { serverLogger } from "../../../../monitoring/server-logger.js";
|
|
@@ -47,5 +47,21 @@ export interface ToPublicSiteSettingsOptions {
|
|
|
47
47
|
* (`src/lib/watermark/resolve-effective-watermark.ts`), not in appkit.
|
|
48
48
|
*/
|
|
49
49
|
effectiveWatermark?: MediaVideoWatermark;
|
|
50
|
+
/**
|
|
51
|
+
* The `surfaceCounts/global` document, when one exists.
|
|
52
|
+
*
|
|
53
|
+
* Injected rather than read here for the same reason as the watermark: this
|
|
54
|
+
* adapter is a pure projection over a document it is handed, and giving it
|
|
55
|
+
* a Firestore read of its own would make every caller pay for it.
|
|
56
|
+
*
|
|
57
|
+
* 🛑 Pass `undefined` when the document is missing OR the read failed. Those
|
|
58
|
+
* two must not be distinguished here and must never become `{}`: an absent
|
|
59
|
+
* key means "unknown, show it", and an empty object measured as all-zero
|
|
60
|
+
* would hide every browse surface on the site.
|
|
61
|
+
*/
|
|
62
|
+
surfaceCounts?: {
|
|
63
|
+
listingTypes?: Record<string, number>;
|
|
64
|
+
surfaces?: Record<string, number>;
|
|
65
|
+
};
|
|
50
66
|
}
|
|
51
67
|
export declare function toPublicSiteSettings(doc: SiteSettingsDocument, opts?: ToPublicSiteSettingsOptions): PublicSiteSettings;
|
|
@@ -186,6 +186,17 @@ export function toPublicSiteSettings(doc, opts) {
|
|
|
186
186
|
// and leave the next person wondering whether the projection ran at all.
|
|
187
187
|
disabledRoutes: doc.disabledRoutes ?? [],
|
|
188
188
|
effectiveWatermark: opts?.effectiveWatermark,
|
|
189
|
+
/*
|
|
190
|
+
* 🛑 Passed through as-is, INCLUDING `undefined` — the exact opposite of
|
|
191
|
+
* the `disabledRoutes` line three above, and the contrast is deliberate.
|
|
192
|
+
*
|
|
193
|
+
* There, defaulting to `[]` is right because the proxy fails open and an
|
|
194
|
+
* absent list and an empty list already mean the same thing. Here they
|
|
195
|
+
* mean OPPOSITE things: absent is "never measured, show everything",
|
|
196
|
+
* `{}` is "measured, and every surface is empty". Defaulting this one
|
|
197
|
+
* would take the entire catalogue off the navbar.
|
|
198
|
+
*/
|
|
199
|
+
surfaceCounts: opts?.surfaceCounts,
|
|
189
200
|
// D9 — undefined reads as OFF, never a default-true `??`.
|
|
190
201
|
chat: { enabled: doc.chat?.enabled === true },
|
|
191
202
|
/*
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
import { ValidationError } from "../../../../errors/validation-error.js";
|
|
35
35
|
import { serverLogger } from "../../../../monitoring/server-logger.js";
|
|
36
36
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
37
|
-
import { productRepository } from "../../../../
|
|
37
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
38
38
|
import { mediaAssetsRepository } from "../../../../features/media/repository/media-assets.repository.js";
|
|
39
39
|
import { stickerSheetsRepository } from "../../../../features/sticker-trace/repository/sticker-sheets.repository.js";
|
|
40
40
|
/** A part that becomes its own listing: unique, and actually rendered. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use server";
|
|
2
2
|
import { cache } from "react";
|
|
3
|
-
import { storeRepository } from "../../../../
|
|
3
|
+
import { storeRepository } from "../../../../features/stores/repository/store.repository.js";
|
|
4
4
|
import { STORES_PRODUCTS_PAGE_SIZE, STORES_SITEMAP_LIMIT, } from "../../../shared/features/stores/config.js";
|
|
5
5
|
import { makeGetStoreListingsInitial } from "../shared/listing-data-factory.js";
|
|
6
6
|
import { safeRead } from "../../../../errors/safe-read.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cache } from "react";
|
|
2
|
-
import { categoriesRepository } from "../../../../
|
|
2
|
+
import { categoriesRepository } from "../../../../features/categories/repository/categories.repository.js";
|
|
3
3
|
export const getSublistingCategoryForDetail = cache(async (slug) => {
|
|
4
4
|
return categoriesRepository.findBySlugAndType(slug, "sublisting");
|
|
5
5
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ActionResult } from "../../../shared/types/action-result";
|
|
2
|
-
import {
|
|
2
|
+
import type { UserWishlistItem as WishlistItem } from "../../../../features/wishlist/repository/user-wishlist.repository";
|
|
3
3
|
export declare function addToWishlistAction(productId: string, extras?: {
|
|
4
4
|
productType?: WishlistItem["productType"];
|
|
5
5
|
priceAtAdd?: number;
|
|
@@ -13,7 +13,7 @@ import { normalizeError } from "../../../../errors/normalize.js";
|
|
|
13
13
|
*/
|
|
14
14
|
import { wrapAction } from "../../../shared/types/action-result.js";
|
|
15
15
|
import { requireRoleUser } from "../../../../providers/auth-firebase/helpers.js";
|
|
16
|
-
import { wishlistRepository, WishlistFullError
|
|
16
|
+
import { wishlistRepository, WishlistFullError } from "../../../../features/wishlist/repository/user-wishlist.repository.js";
|
|
17
17
|
import { WISHLIST_MAX } from "../../../shared/features/wishlist/config.js";
|
|
18
18
|
import { WishlistCapError } from "../../../shared/features/wishlist/errors.js";
|
|
19
19
|
export async function addToWishlistAction(productId, extras) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { UserWishlistItem as WishlistItem } from "../../../../features/wishlist/repository/user-wishlist.repository";
|
|
2
2
|
export declare const getWishlistForUser: (userId: string) => Promise<{
|
|
3
3
|
items: WishlistItem[];
|
|
4
4
|
meta: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cache } from "react";
|
|
2
|
-
import { wishlistRepository } from "../../../../
|
|
2
|
+
import { wishlistRepository } from "../../../../features/wishlist/repository/user-wishlist.repository.js";
|
|
3
3
|
export const getWishlistForUser = cache(async (userId) => {
|
|
4
4
|
const items = await wishlistRepository.getWishlistItems(userId).catch(() => []);
|
|
5
5
|
return { items, meta: { total: items.length } };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { orderRepository, payoutRepository, storeRepository, userRepository, siteSettingsRepository, } from "../../../../repositories/index.js";
|
|
2
|
-
import { getDefaultCurrency } from "../../../../core/
|
|
2
|
+
import { getDefaultCurrency } from "../../../../core/baseline-resolver.js";
|
|
3
3
|
import { computePayoutDeduction } from "../../../shared/fees/calculator.js";
|
|
4
4
|
import { payoutCutoff } from "../../../shared/fees/payout-hold.js";
|
|
5
5
|
import { PROTECTION_CLAIM_WINDOW_HOURS } from "../../../shared/features/shipping/protections.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cartRepository } from "../../../../
|
|
1
|
+
import { cartRepository } from "../../../../features/cart/repository/cart.repository.js";
|
|
2
2
|
import { CART_TTL_DAYS } from "../handlers/messages.js";
|
|
3
3
|
import { batchDelete } from "../handlers/_helpers.js";
|
|
4
4
|
export async function runCartPrune(ctx) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
2
2
|
import { sendNotification } from "../../../../features/admin/actions/notification-actions.js";
|
|
3
|
-
import { catalogueRepository } from "../../../../
|
|
3
|
+
import { catalogueRepository } from "../../../../features/catalogue/repository/catalogue.repository.js";
|
|
4
4
|
import { CATALOGUE_IMAGE_FRESHNESS_DAYS } from "../../../../features/catalogue/schemas/firestore.js";
|
|
5
5
|
const REMINDER_LEAD_DAYS = 5;
|
|
6
6
|
const DAY_MS = 86400000;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
2
2
|
import { getAdminAuth, getAdminRealtimeDb } from "../../../../providers/db-firebase/index.js";
|
|
3
3
|
import { RTDB_PATHS } from "../../../../providers/db-firebase/rtdb-paths.js";
|
|
4
|
-
import { jobsRepository } from "../../../../
|
|
4
|
+
import { jobsRepository } from "../../../../features/jobs/repository/jobs.repository.js";
|
|
5
5
|
import { batchDelete } from "../handlers/_helpers.js";
|
|
6
6
|
const AUTH_STALE_MS = 3 * 60 * 1000;
|
|
7
7
|
const PAYMENT_STALE_MS = 15 * 60 * 1000;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { couponsRepository } from "../../../../
|
|
1
|
+
import { couponsRepository } from "../../../../features/promotions/repository/coupons.repository.js";
|
|
2
2
|
export async function runCouponExpiry(ctx) {
|
|
3
3
|
ctx.logger.info("Starting coupon expiry sweep");
|
|
4
4
|
const refs = await couponsRepository.getExpiredActiveRefs(ctx.now);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { sessionRepository
|
|
1
|
+
import { sessionRepository } from "../../../../features/auth/repository/session.repository.js";
|
|
2
|
+
import { tokenRepository } from "../../../../features/auth/repository/token.repository.js";
|
|
2
3
|
import { gatewayEventsRepository } from "../../../../features/gateway-events/repository/gateway-events.repository.js";
|
|
3
4
|
import { pointsRepository } from "../../../../features/points/repository/points.repository.js";
|
|
4
5
|
import { paymentCasesRepository } from "../../../../features/payment-cases/repository/payment-cases.repository.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { productRepository } from "../../../../
|
|
1
|
+
import { productRepository } from "../../../../features/products/repository/products.repository.js";
|
|
2
2
|
import { batchDelete } from "../handlers/_helpers.js";
|
|
3
3
|
const DRAFT_TTL_DAYS = 30;
|
|
4
4
|
export async function runDraftPrune(ctx) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normalizeError } from "../../../../errors/normalize.js";
|
|
2
|
-
import { userRepository } from "../../../../
|
|
2
|
+
import { userRepository } from "../../../../features/auth/repository/user.repository.js";
|
|
3
3
|
import { sendNotification } from "../../../../features/admin/actions/notification-actions.js";
|
|
4
4
|
import { getAdminAuth } from "../../../../providers/db-firebase/index.js";
|
|
5
5
|
/**
|