@mohasinac/appkit 4.58.0 → 4.60.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/layout/DashboardLayoutClient.js +62 -5
- package/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +2 -2
- package/dist/_internal/server/features/brands/actions.js +78 -4
- package/dist/_internal/server/features/checkout/actions.d.ts +36 -13
- package/dist/_internal/server/features/checkout/actions.js +668 -183
- package/dist/_internal/server/features/checkout/supplier-identity.js +18 -1
- package/dist/_internal/server/features/gateway-events/index.d.ts +10 -0
- package/dist/_internal/server/features/gateway-events/index.js +10 -0
- package/dist/_internal/server/features/gateway-events/ingest.d.ts +127 -0
- package/dist/_internal/server/features/gateway-events/ingest.js +188 -0
- package/dist/_internal/server/features/gateway-events/redact.d.ts +66 -0
- package/dist/_internal/server/features/gateway-events/redact.js +151 -0
- package/dist/_internal/server/features/grievance/actions.d.ts +63 -0
- package/dist/_internal/server/features/grievance/actions.js +173 -0
- package/dist/_internal/server/features/grievance/index.d.ts +8 -0
- package/dist/_internal/server/features/grievance/index.js +8 -0
- package/dist/_internal/server/features/grouped/data.js +28 -3
- package/dist/_internal/server/features/lottery/actions.js +99 -4
- package/dist/_internal/server/features/order-completion/actions.d.ts +92 -0
- package/dist/_internal/server/features/order-completion/actions.js +336 -0
- package/dist/_internal/server/features/order-completion/index.d.ts +7 -0
- package/dist/_internal/server/features/order-completion/index.js +7 -0
- package/dist/_internal/server/features/orders/actions.d.ts +13 -0
- package/dist/_internal/server/features/orders/actions.js +56 -2
- package/dist/_internal/server/features/orders/adapters.js +26 -0
- package/dist/_internal/server/features/orders/cancellation-refund.d.ts +116 -0
- package/dist/_internal/server/features/orders/cancellation-refund.js +466 -0
- package/dist/_internal/server/features/orders/index.d.ts +2 -1
- package/dist/_internal/server/features/orders/index.js +1 -1
- package/dist/_internal/server/features/orders/service.d.ts +60 -0
- package/dist/_internal/server/features/orders/service.js +74 -0
- package/dist/_internal/server/features/payment-cases/disputes.d.ts +76 -0
- package/dist/_internal/server/features/payment-cases/disputes.js +241 -0
- package/dist/_internal/server/features/payment-cases/index.d.ts +9 -0
- package/dist/_internal/server/features/payment-cases/index.js +9 -0
- package/dist/_internal/server/features/payouts/actions.d.ts +28 -3
- package/dist/_internal/server/features/payouts/actions.js +84 -10
- package/dist/_internal/server/features/points/adjust.d.ts +61 -0
- package/dist/_internal/server/features/points/adjust.js +121 -0
- package/dist/_internal/server/features/points/award.d.ts +65 -0
- package/dist/_internal/server/features/points/award.js +145 -0
- package/dist/_internal/server/features/price-index/market.d.ts +33 -0
- package/dist/_internal/server/features/price-index/market.js +54 -1
- package/dist/_internal/server/features/products/data.js +40 -22
- package/dist/_internal/server/features/protection-claims/actions.d.ts +72 -0
- package/dist/_internal/server/features/protection-claims/actions.js +228 -0
- package/dist/_internal/server/features/protection-claims/index.d.ts +8 -0
- package/dist/_internal/server/features/protection-claims/index.js +8 -0
- package/dist/_internal/server/features/refunds/actions.d.ts +20 -0
- package/dist/_internal/server/features/refunds/actions.js +259 -17
- package/dist/_internal/server/features/refunds/capacity.d.ts +29 -0
- package/dist/_internal/server/features/refunds/capacity.js +37 -0
- package/dist/_internal/server/features/reviews/actions.js +3 -2
- package/dist/_internal/server/features/search/index-build/sources.js +20 -1
- package/dist/_internal/server/features/shipping/reconcile.d.ts +10 -1
- package/dist/_internal/server/features/shipping/reconcile.js +34 -3
- package/dist/_internal/server/features/shipping/reimbursement.d.ts +117 -0
- package/dist/_internal/server/features/shipping/reimbursement.js +223 -0
- package/dist/_internal/server/features/stores/tabs.d.ts +19 -4
- package/dist/_internal/server/features/stores/tabs.js +24 -4
- package/dist/_internal/server/functions/https.d.ts +31 -1
- package/dist/_internal/server/functions/https.js +52 -1
- package/dist/_internal/server/functions/scheduled.d.ts +72 -1
- package/dist/_internal/server/functions/scheduled.js +124 -1
- package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +62 -16
- package/dist/_internal/server/jobs/core/boxRollupReconcile.d.ts +46 -0
- package/dist/_internal/server/jobs/core/boxRollupReconcile.js +142 -0
- package/dist/_internal/server/jobs/core/dailyDataCleanup.js +149 -1
- package/dist/_internal/server/jobs/core/dailyStatusDigest.d.ts +14 -0
- package/dist/_internal/server/jobs/core/dailyStatusDigest.js +79 -1
- package/dist/_internal/server/jobs/core/index.d.ts +2 -0
- package/dist/_internal/server/jobs/core/index.js +2 -0
- package/dist/_internal/server/jobs/core/marketPriceRollup.d.ts +64 -0
- package/dist/_internal/server/jobs/core/marketPriceRollup.js +153 -0
- package/dist/_internal/server/jobs/core/obligationSweep.d.ts +36 -0
- package/dist/_internal/server/jobs/core/obligationSweep.js +503 -0
- package/dist/_internal/server/jobs/core/paymentReconcile.d.ts +79 -0
- package/dist/_internal/server/jobs/core/paymentReconcile.js +614 -0
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +34 -0
- package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +35 -4
- package/dist/_internal/server/jobs/handlers/boxRollupReconcile.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/boxRollupReconcile.js +15 -0
- package/dist/_internal/server/jobs/handlers/countersReconcileNow.d.ts +65 -0
- package/dist/_internal/server/jobs/handlers/countersReconcileNow.js +89 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +5 -0
- package/dist/_internal/server/jobs/handlers/index.js +5 -0
- package/dist/_internal/server/jobs/handlers/marketPriceRollup.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/marketPriceRollup.js +2 -0
- package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
- package/dist/_internal/server/jobs/handlers/messages.js +1 -1
- package/dist/_internal/server/jobs/handlers/obligationSweep.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/obligationSweep.js +15 -0
- package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +30 -1
- package/dist/_internal/server/jobs/handlers/paymentReconcile.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/paymentReconcile.js +6 -0
- package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
- package/dist/_internal/shared/actions/action-registry.js +71 -0
- package/dist/_internal/shared/checkout/coupon-discount.d.ts +73 -0
- package/dist/_internal/shared/checkout/coupon-discount.js +103 -0
- package/dist/_internal/shared/checkout/lanes.d.ts +42 -0
- package/dist/_internal/shared/checkout/lanes.js +46 -0
- package/dist/_internal/shared/checkout/order-math.d.ts +149 -1
- package/dist/_internal/shared/checkout/order-math.js +251 -3
- package/dist/_internal/shared/checkout/refundable-base.d.ts +116 -0
- package/dist/_internal/shared/checkout/refundable-base.js +122 -0
- package/dist/_internal/shared/features/auctions/config.d.ts +14 -1
- package/dist/_internal/shared/features/auctions/config.js +30 -1
- package/dist/_internal/shared/features/brands/schema.d.ts +42 -0
- package/dist/_internal/shared/features/brands/schema.js +18 -0
- package/dist/_internal/shared/features/orders/refund-copy.d.ts +22 -0
- package/dist/_internal/shared/features/orders/refund-copy.js +34 -0
- package/dist/_internal/shared/features/print/label-profiles.d.ts +198 -0
- package/dist/_internal/shared/features/print/label-profiles.js +350 -0
- package/dist/_internal/shared/features/products/to-product-item.js +33 -5
- package/dist/_internal/shared/fees/calculator.d.ts +31 -2
- package/dist/_internal/shared/fees/calculator.js +103 -5
- package/dist/_internal/shared/fees/india-states.d.ts +195 -0
- package/dist/_internal/shared/fees/india-states.js +190 -0
- package/dist/_internal/shared/fees/payout-hold.d.ts +80 -0
- package/dist/_internal/shared/fees/payout-hold.js +74 -0
- package/dist/_internal/shared/obligations/deadlines.d.ts +94 -0
- package/dist/_internal/shared/obligations/deadlines.js +155 -0
- package/dist/_internal/shared/shipping/quote.d.ts +96 -0
- package/dist/_internal/shared/shipping/quote.js +67 -0
- package/dist/_internal/shared/time/business-days.d.ts +91 -0
- package/dist/_internal/shared/time/business-days.js +185 -0
- package/dist/_internal/shared/types/base-document.d.ts +1 -1
- package/dist/cli/index.js +0 -2
- package/dist/client.d.ts +9 -4
- package/dist/client.js +26 -3
- package/dist/configs/tailwind.d.ts +0 -12
- package/dist/configs/tailwind.js +28 -15
- package/dist/constants/api-endpoints.d.ts +51 -9
- package/dist/constants/api-endpoints.js +23 -7
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/constants/seed-meta.d.ts +113 -0
- package/dist/constants/seed-meta.js +91 -0
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/payment.d.ts +131 -0
- package/dist/features/about/components/AboutView.js +1 -1
- package/dist/features/about/components/DeveloperView.js +5 -2
- package/dist/features/about/components/FAQPageView.js +2 -1
- package/dist/features/about/components/FeesView.js +2 -1
- package/dist/features/about/components/HelpPageView.js +2 -1
- package/dist/features/about/components/HowAuctionsWorkView.js +2 -1
- package/dist/features/about/components/HowCheckoutWorksView.js +2 -1
- package/dist/features/about/components/HowEmiWorksView.js +2 -1
- package/dist/features/about/components/HowOffersWorkView.js +2 -1
- package/dist/features/about/components/HowOrdersWorkView.js +2 -1
- package/dist/features/about/components/HowPayoutsWorkView.js +2 -1
- package/dist/features/about/components/HowPreOrdersWorkView.js +2 -1
- package/dist/features/about/components/HowReviewsWorkView.js +2 -1
- package/dist/features/about/components/PolicyPageView.js +2 -1
- package/dist/features/about/components/ProseHero.d.ts +73 -0
- package/dist/features/about/components/ProseHero.js +18 -0
- package/dist/features/about/components/SecurityPrivacyView.js +2 -1
- package/dist/features/about/components/ShippingPolicyView.js +2 -1
- package/dist/features/about/components/TrackOrderView.js +2 -1
- package/dist/features/about/components/UnauthorizedView.js +1 -1
- package/dist/features/about/index.d.ts +2 -0
- package/dist/features/about/index.js +5 -0
- package/dist/features/account/actions/address-actions.d.ts +26 -2
- package/dist/features/account/actions/address-actions.js +25 -1
- package/dist/features/account/components/BuyerShoppingGuideView.js +1 -1
- package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
- package/dist/features/account/components/UserOrdersView.js +17 -0
- package/dist/features/account/components/UserSidebar.js +1 -1
- package/dist/features/account/hooks/useNotifications.js +29 -0
- package/dist/features/admin/actions/admin-coupon-actions.js +36 -0
- package/dist/features/admin/components/AdminBeysView.js +2 -2
- package/dist/features/admin/components/AdminBlogEditorView.js +2 -2
- package/dist/features/admin/components/AdminBrandEditorView.js +32 -2
- package/dist/features/admin/components/AdminBundleEditorView.js +1 -1
- package/dist/features/admin/components/AdminCarouselEditorView.js +1 -1
- package/dist/features/admin/components/AdminCategoriesView.js +1 -1
- package/dist/features/admin/components/AdminCategoryEditorView.js +73 -17
- package/dist/features/admin/components/AdminContactEditorView.js +1 -1
- package/dist/features/admin/components/AdminCouponEditorView.js +26 -1
- package/dist/features/admin/components/AdminFaqEditorView.js +1 -1
- package/dist/features/admin/components/AdminFaqsView.js +2 -2
- package/dist/features/admin/components/AdminGatewayEventsView.d.ts +54 -0
- package/dist/features/admin/components/AdminGatewayEventsView.js +209 -0
- package/dist/features/admin/components/AdminGuideHubView.js +1 -1
- package/dist/features/admin/components/AdminMoneyCasesView.d.ts +60 -0
- package/dist/features/admin/components/AdminMoneyCasesView.js +287 -0
- package/dist/features/admin/components/AdminPartsView.js +2 -2
- package/dist/features/admin/components/AdminProductsView.js +75 -4
- package/dist/features/admin/components/AdminSidebar.js +2 -2
- package/dist/features/admin/components/AdminSiteSettingsView.js +65 -7
- package/dist/features/admin/components/AdminSublistingCategoriesView.js +2 -0
- package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
- package/dist/features/admin/components/AdminSupportTicketsView.js +2 -2
- package/dist/features/admin/components/AdminTesterChecklistView.js +2 -2
- package/dist/features/admin/components/AdminUsersView.js +72 -1
- package/dist/features/admin/components/AdminViewCards.d.ts +3 -1
- package/dist/features/admin/components/AdminViewCards.js +4 -4
- package/dist/features/admin/components/DataListingView.d.ts +28 -0
- package/dist/features/admin/components/DataListingView.js +175 -14
- package/dist/features/admin/components/DataTable.d.ts +12 -1
- package/dist/features/admin/components/DataTable.js +3 -3
- package/dist/features/admin/components/OwnerQuickActions.d.ts +1 -1
- package/dist/features/admin/components/OwnerQuickActions.js +60 -2
- package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +1 -1
- package/dist/features/admin/components/RecordOwnerQuickActions.js +61 -14
- package/dist/features/admin/components/analytics/AdminStatCard.d.ts +35 -1
- package/dist/features/admin/components/analytics/AdminStatCard.js +77 -2
- package/dist/features/admin/components/index.d.ts +4 -0
- package/dist/features/admin/components/index.js +6 -0
- package/dist/features/admin/constants/filter-tabs.d.ts +156 -0
- package/dist/features/admin/constants/filter-tabs.js +106 -0
- package/dist/features/admin/repository/site-settings.repository.d.ts +22 -0
- package/dist/features/admin/repository/site-settings.repository.js +82 -1
- package/dist/features/admin/schemas/admin-editor-forms.d.ts +21 -0
- package/dist/features/admin/schemas/admin-editor-forms.js +44 -0
- package/dist/features/admin/schemas/firestore.js +5 -1
- package/dist/features/admin/schemas/site-settings-form.js +30 -1
- package/dist/features/auctions/actions/bid-actions.js +13 -1
- package/dist/features/auctions/components/AuctionBottomActions.js +2 -2
- package/dist/features/auctions/components/AuctionDetailPageView.js +3 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +11 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +5 -3
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +8 -1
- package/dist/features/auctions/components/PlaceBidFormClient.js +2 -2
- package/dist/features/audit-log/schemas/firestore.d.ts +28 -0
- package/dist/features/audit-log/schemas/firestore.js +14 -0
- package/dist/features/auth/permissions/constants.d.ts +17 -1
- package/dist/features/auth/permissions/constants.js +18 -0
- package/dist/features/blog/components/BlogPostView.js +1 -1
- package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +1 -1
- package/dist/features/categories/api/[id]/description-template/route.js +107 -1
- package/dist/features/categories/components/BrandDetailPageView.js +2 -2
- package/dist/features/categories/components/BreadcrumbTrail.js +7 -1
- package/dist/features/categories/components/BundleDetailView.js +1 -1
- package/dist/features/categories/components/CategoryDetailPageView.js +2 -2
- package/dist/features/categories/components/CategoryForm.js +12 -1
- package/dist/features/categories/components/CategoryTemplatePicker.js +38 -5
- package/dist/features/categories/repository/market-price-index.repository.d.ts +123 -0
- package/dist/features/categories/repository/market-price-index.repository.js +105 -0
- package/dist/features/categories/repository/price-observation.repository.d.ts +166 -0
- package/dist/features/categories/repository/price-observation.repository.js +132 -0
- package/dist/features/events/components/EventSaleBanner.js +1 -1
- package/dist/features/events/components/EventStatusBadge.js +1 -1
- package/dist/features/faq/components/FAQAccordion.js +2 -1
- package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
- package/dist/features/faq/components/FAQHelpfulButtons.js +4 -4
- package/dist/features/faq/components/RelatedFAQs.js +1 -1
- package/dist/features/filters/FilterFacetSection.js +1 -1
- package/dist/features/filters/SwitchFilter.js +1 -1
- package/dist/features/gateway-events/repository/gateway-events.repository.d.ts +117 -0
- package/dist/features/gateway-events/repository/gateway-events.repository.js +274 -0
- package/dist/features/gateway-events/schemas/firestore.d.ts +217 -0
- package/dist/features/gateway-events/schemas/firestore.js +125 -0
- package/dist/features/gateway-events/schemas/index.d.ts +81 -0
- package/dist/features/gateway-events/schemas/index.js +79 -0
- package/dist/features/grouped/components/GroupedListingDetailView.js +1 -1
- package/dist/features/homepage/components/AnnouncementBar.js +37 -1
- package/dist/features/homepage/components/AnnouncementBar.style.css +30 -0
- package/dist/features/homepage/components/BrandsSection.js +1 -1
- package/dist/features/homepage/components/CTABannerSection.js +1 -1
- package/dist/features/homepage/components/FeaturedBundlesSection.js +14 -24
- package/dist/features/homepage/components/HeroCarousel.js +2 -2
- package/dist/features/homepage/components/SocialPostCard.js +1 -1
- package/dist/features/inventory/components/AdminMoveLedgerView.d.ts +7 -0
- package/dist/features/inventory/components/AdminMoveLedgerView.js +157 -0
- package/dist/features/inventory/components/AdminStorageBoxesView.d.ts +11 -0
- package/dist/features/inventory/components/AdminStorageBoxesView.js +168 -0
- package/dist/features/inventory/components/ReceiveStationView.d.ts +39 -0
- package/dist/features/inventory/components/ReceiveStationView.js +413 -0
- package/dist/features/inventory/components/operator-message.d.ts +29 -0
- package/dist/features/inventory/components/operator-message.js +41 -0
- package/dist/features/inventory/index.d.ts +13 -0
- package/dist/features/inventory/index.js +28 -0
- package/dist/features/inventory/repository/inventory-movements.repository.d.ts +97 -0
- package/dist/features/inventory/repository/inventory-movements.repository.js +186 -0
- package/dist/features/inventory/repository/inventory-placements.repository.d.ts +179 -0
- package/dist/features/inventory/repository/inventory-placements.repository.js +345 -0
- package/dist/features/inventory/repository/storage-boxes.repository.d.ts +83 -0
- package/dist/features/inventory/repository/storage-boxes.repository.js +127 -0
- package/dist/features/inventory/schemas/firestore.d.ts +197 -0
- package/dist/features/inventory/schemas/firestore.js +159 -0
- package/dist/features/layout/AppLayoutShell.d.ts +12 -1
- package/dist/features/layout/AppLayoutShell.js +25 -12
- package/dist/features/layout/AutoBreadcrumbs.js +162 -3
- package/dist/features/layout/AutoBreadcrumbs.style.css +45 -0
- package/dist/features/layout/BottomNavbar.d.ts +1 -1
- package/dist/features/layout/BottomNavbar.js +2 -2
- package/dist/features/media/MediaAvatar.js +1 -1
- package/dist/features/media/MediaImage.d.ts +24 -4
- package/dist/features/media/MediaImage.js +44 -4
- package/dist/features/media/MediaLightbox.js +1 -1
- package/dist/features/media/modals/ImageCropModal.js +1 -1
- package/dist/features/media/modals/ImageEditor.js +1 -1
- package/dist/features/media/upload/MediaUploadField.js +91 -3
- package/dist/features/obligations/constants/policies.d.ts +92 -0
- package/dist/features/obligations/constants/policies.js +378 -0
- package/dist/features/obligations/repository/obligations.repository.d.ts +68 -0
- package/dist/features/obligations/repository/obligations.repository.js +158 -0
- package/dist/features/obligations/schemas/firestore.d.ts +160 -0
- package/dist/features/obligations/schemas/firestore.js +87 -0
- package/dist/features/orders/actions/order-actions.d.ts +43 -4
- package/dist/features/orders/actions/order-actions.js +60 -3
- package/dist/features/orders/actions/refund-actions.js +70 -10
- package/dist/features/orders/components/OrderCompletionPanel.d.ts +27 -0
- package/dist/features/orders/components/OrderCompletionPanel.js +192 -0
- package/dist/features/orders/components/OrdersList.js +2 -2
- package/dist/features/orders/components/RefundHistoryTable.js +3 -1
- package/dist/features/orders/components/index.d.ts +2 -0
- package/dist/features/orders/components/index.js +6 -0
- package/dist/features/orders/constants/transitions.d.ts +59 -0
- package/dist/features/orders/constants/transitions.js +104 -0
- package/dist/features/orders/repository/orders.repository.d.ts +109 -6
- package/dist/features/orders/repository/orders.repository.js +464 -21
- package/dist/features/orders/schemas/firestore.d.ts +270 -0
- package/dist/features/orders/schemas/firestore.js +24 -0
- package/dist/features/orders/schemas/index.d.ts +61 -0
- package/dist/features/orders/schemas/index.js +22 -0
- package/dist/features/orders/types/index.d.ts +79 -0
- package/dist/features/parts/components/PartsIndexPageView.js +8 -1
- package/dist/features/payment-cases/repository/payment-cases.repository.d.ts +170 -0
- package/dist/features/payment-cases/repository/payment-cases.repository.js +342 -0
- package/dist/features/payment-cases/schemas/firestore.d.ts +229 -0
- package/dist/features/payment-cases/schemas/firestore.js +105 -0
- package/dist/features/payment-cases/schemas/resolve-form.d.ts +97 -0
- package/dist/features/payment-cases/schemas/resolve-form.js +114 -0
- package/dist/features/payments/repository/payout.repository.d.ts +0 -1
- package/dist/features/payments/repository/payout.repository.js +0 -1
- package/dist/features/points/repository/points.repository.d.ts +122 -0
- package/dist/features/points/repository/points.repository.js +304 -1
- package/dist/features/points/schemas/adjust-form.d.ts +58 -0
- package/dist/features/points/schemas/adjust-form.js +63 -0
- package/dist/features/points/schemas/firestore.d.ts +108 -1
- package/dist/features/points/schemas/firestore.js +84 -0
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +3 -3
- package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -1
- package/dist/features/price-index/components/PriceIndexToolView.d.ts +23 -4
- package/dist/features/price-index/components/PriceIndexToolView.js +71 -6
- package/dist/features/price-index/market-stats.d.ts +82 -0
- package/dist/features/price-index/market-stats.js +230 -0
- package/dist/features/print/components/BoxLabelPrintView.d.ts +25 -0
- package/dist/features/print/components/BoxLabelPrintView.js +66 -0
- package/dist/features/print/components/LabelProfilePicker.d.ts +13 -0
- package/dist/features/print/components/LabelProfilePicker.js +38 -0
- package/dist/features/print/components/labels.d.ts +117 -0
- package/dist/features/print/components/labels.js +258 -0
- package/dist/features/print/components/labels.style.css +46 -0
- package/dist/features/print/index.d.ts +6 -0
- package/dist/features/print/index.js +16 -0
- package/dist/features/products/columns/productTableColumns.js +5 -4
- package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
- package/dist/features/products/components/MarketplacePrizeDrawCard.js +6 -6
- package/dist/features/products/components/PrizeDrawCollage.js +1 -1
- package/dist/features/products/components/PrizeDrawItemsEditor.js +1 -1
- package/dist/features/products/components/PrizeRevealModal.js +2 -2
- package/dist/features/products/components/ProductDetailPageView.js +18 -4
- package/dist/features/products/components/ProductForm.js +34 -23
- package/dist/features/products/components/ProductGrid.js +86 -62
- package/dist/features/products/constants/card-badges.d.ts +97 -0
- package/dist/features/products/constants/card-badges.js +100 -0
- package/dist/features/products/repository/products.repository.js +34 -1
- package/dist/features/products/schemas/firestore.d.ts +46 -3
- package/dist/features/products/schemas/firestore.js +21 -0
- package/dist/features/promotions/components/PromotionsView.js +1 -1
- package/dist/features/promotions/repository/claimed-coupons.repository.d.ts +32 -0
- package/dist/features/promotions/repository/claimed-coupons.repository.js +58 -0
- package/dist/features/promotions/schemas/firestore.js +30 -3
- package/dist/features/promotions/schemas/index.d.ts +6 -6
- package/dist/features/protection-claims/repository/protection-claims.repository.d.ts +54 -0
- package/dist/features/protection-claims/repository/protection-claims.repository.js +174 -0
- package/dist/features/protection-claims/schemas/firestore.d.ts +168 -0
- package/dist/features/protection-claims/schemas/firestore.js +130 -0
- package/dist/features/reviews/actions/review-actions.js +3 -2
- package/dist/features/reviews/components/ReviewModal.js +1 -1
- package/dist/features/reviews/components/ReviewsList.js +1 -1
- package/dist/features/reviews/schemas/firestore.d.ts +20 -1
- package/dist/features/scams/constants/scam-types.d.ts +2 -0
- package/dist/features/scams/constants/scam-types.js +18 -0
- package/dist/features/scams/schemas/report-form.d.ts +3 -3
- package/dist/features/scams/schemas/report-form.js +26 -1
- package/dist/features/search/components/Search.js +9 -9
- package/dist/features/search/components/SearchResultsClient.js +18 -3
- package/dist/features/search/components/SearchResultsPageView.d.ts +1 -6
- package/dist/features/search/components/SearchResultsPageView.js +2 -2
- package/dist/features/seller/actions/offer-actions.js +16 -1
- package/dist/features/seller/actions/seller-actions.js +14 -3
- package/dist/features/seller/components/CategoryInlineSelect.js +75 -11
- package/dist/features/seller/components/PrintCenterView.d.ts +5 -0
- package/dist/features/seller/components/PrintCenterView.js +41 -30
- package/dist/features/seller/components/SellerOrdersView.js +1 -1
- package/dist/features/seller/components/SellerPayoutRequestView.js +16 -5
- package/dist/features/seller/components/SellerPayoutSettingsView.js +1 -1
- package/dist/features/seller/components/SellerProductShell.d.ts +16 -0
- package/dist/features/seller/components/SellerProductShell.js +123 -13
- package/dist/features/seller/components/SellerReviewsView.js +4 -2
- package/dist/features/seller/components/SellerSidebar.js +1 -1
- package/dist/features/seller/schemas/coupon-form.d.ts +26 -0
- package/dist/features/seller/schemas/coupon-form.js +27 -0
- package/dist/features/seller/schemas/product-form.d.ts +3 -0
- package/dist/features/seller/schemas/product-form.js +5 -0
- package/dist/features/shell/FormShell.js +2 -2
- package/dist/features/shell/QuickFormDrawer.js +14 -0
- package/dist/features/shell/SectionForm.d.ts +19 -0
- package/dist/features/shell/SectionForm.js +133 -9
- package/dist/features/shell/SectionForm.style.css +54 -0
- package/dist/features/shipments/components/AdminShipmentsView.js +16 -1
- package/dist/features/shipments/repository/shipment-items.repository.d.ts +9 -0
- package/dist/features/shipments/repository/shipment-items.repository.js +14 -0
- package/dist/features/site-settings/components/ActionPermissionsManager.js +1 -1
- package/dist/features/sticker-trace/components/StickerCommitPanel.js +1 -1
- package/dist/features/store-extensions/schemas/report-review-form.d.ts +8 -8
- package/dist/features/stores/components/StoreGuideHubView.js +1 -1
- package/dist/features/stores/components/StoreHeader.js +1 -1
- package/dist/features/support/schemas/firestore.d.ts +73 -2
- package/dist/features/support/schemas/firestore.js +59 -0
- package/dist/index.d.ts +16 -155
- package/dist/index.js +88 -341
- package/dist/next/ErrorBoundary.js +1 -1
- package/dist/next/routing/route-map.d.ts +24 -0
- package/dist/next/routing/route-map.js +40 -0
- package/dist/providers/payment-manual/index.d.ts +15 -1
- package/dist/providers/payment-manual/index.js +37 -0
- package/dist/providers/payment-phonepe/index.d.ts +14 -1
- package/dist/providers/payment-phonepe/index.js +36 -0
- package/dist/providers/payment-razorpay/index.d.ts +44 -1
- package/dist/providers/payment-razorpay/index.js +99 -0
- package/dist/providers/shipping-shiprocket/index.d.ts +18 -0
- package/dist/providers/shipping-shiprocket/index.js +18 -0
- package/dist/schemas/registry.d.ts +44 -11
- package/dist/server-entry.d.ts +2 -0
- package/dist/server-entry.js +27 -0
- package/dist/server.d.ts +42 -69
- package/dist/server.js +93 -69
- package/dist/styles.css +418 -149
- package/dist/tailwind-utilities.css +1 -1
- package/dist/tokens/themes/default-dark.js +15 -12
- package/dist/tokens/themes/default-light.js +14 -11
- package/dist/tokens/tokens.css +106 -23
- package/dist/ui/DataTable.style.css +4 -4
- package/dist/ui/columns/cell-renderers.d.ts +20 -0
- package/dist/ui/columns/cell-renderers.js +26 -1
- package/dist/ui/columns/index.d.ts +1 -1
- package/dist/ui/columns/index.js +4 -1
- package/dist/ui/components/Badge.style.css +1 -1
- package/dist/ui/components/Breadcrumb.js +19 -1
- package/dist/ui/components/BulkActionBar.style.css +4 -4
- package/dist/ui/components/Button.style.css +1 -1
- package/dist/ui/components/Checkbox.style.css +1 -1
- package/dist/ui/components/FallbackShell.js +1 -1
- package/dist/ui/components/Form.d.ts +14 -1
- package/dist/ui/components/Form.js +2 -2
- package/dist/ui/components/FormField.js +18 -4
- package/dist/ui/components/FormField.style.css +43 -3
- package/dist/ui/components/GatedPrice.style.css +1 -1
- package/dist/ui/components/IconButton.style.css +1 -1
- package/dist/ui/components/Input.js +22 -1
- package/dist/ui/components/Input.style.css +38 -22
- package/dist/ui/components/ListingFilterDrawer.js +1 -1
- package/dist/ui/components/ListingToolbar.js +1 -1
- package/dist/ui/components/PaginatedSelect.js +0 -0
- package/dist/ui/components/Radio.style.css +1 -1
- package/dist/ui/components/Repeater.d.ts +53 -0
- package/dist/ui/components/Repeater.js +7 -0
- package/dist/ui/components/RichTextEditor.d.ts +20 -1
- package/dist/ui/components/RichTextEditor.js +23 -2
- package/dist/ui/components/Select.style.css +7 -21
- package/dist/ui/components/Semantic.js +27 -3
- package/dist/ui/components/TagInput.style.css +4 -9
- package/dist/ui/components/Textarea.style.css +4 -18
- package/dist/ui/components/Toggle.style.css +1 -1
- package/dist/ui/components/Typography.d.ts +3 -3
- package/dist/ui/components/Typography.js +15 -15
- package/dist/ui/components/ViewToggle.style.css +4 -4
- package/dist/ui/forms/AddAnotherToggle.d.ts +16 -0
- package/dist/ui/forms/AddAnotherToggle.js +56 -0
- package/dist/ui/forms/ColorPickerField.js +15 -2
- package/dist/ui/forms/FieldCheckbox.js +15 -2
- package/dist/ui/forms/FieldInput.d.ts +22 -1
- package/dist/ui/forms/FieldInput.js +19 -5
- package/dist/ui/forms/FieldLabel.d.ts +35 -0
- package/dist/ui/forms/FieldLabel.js +70 -0
- package/dist/ui/forms/FieldSelect.d.ts +4 -1
- package/dist/ui/forms/FieldSelect.js +27 -5
- package/dist/ui/forms/FieldTextarea.d.ts +4 -1
- package/dist/ui/forms/FieldTextarea.js +22 -5
- package/dist/ui/forms/FormShell.d.ts +17 -1
- package/dist/ui/forms/FormShell.js +36 -2
- package/dist/ui/forms/FormShell.style.css +41 -33
- package/dist/ui/forms/index.d.ts +5 -1
- package/dist/ui/forms/index.js +2 -0
- package/dist/ui/icons/icon-registry.d.ts +1 -0
- package/dist/ui/icons/icon-registry.js +17 -1
- package/dist/utils/id-generators.d.ts +80 -0
- package/dist/utils/id-generators.js +93 -0
- package/dist/utils/search-txt-builders.d.ts +12 -0
- package/dist/utils/search-txt-builders.js +17 -0
- package/package.json +4 -2
- package/scripts/seed-cli.mjs +175 -6
- package/dist/features/loyalty/api/admin/loyalty/grant/route.d.ts +0 -12
- package/dist/features/loyalty/api/admin/loyalty/grant/route.js +0 -38
- package/dist/features/loyalty/api/balance/route.d.ts +0 -12
- package/dist/features/loyalty/api/balance/route.js +0 -41
- package/dist/features/loyalty/api/earn/route.d.ts +0 -12
- package/dist/features/loyalty/api/earn/route.js +0 -38
- package/dist/features/loyalty/api/history/route.d.ts +0 -12
- package/dist/features/loyalty/api/history/route.js +0 -58
- package/dist/features/loyalty/api/redeem/route.d.ts +0 -12
- package/dist/features/loyalty/api/redeem/route.js +0 -38
- package/dist/features/loyalty/columns/index.d.ts +0 -17
- package/dist/features/loyalty/columns/index.js +0 -40
- package/dist/features/loyalty/components/CoinsDisplay.d.ts +0 -12
- package/dist/features/loyalty/components/CoinsDisplay.js +0 -10
- package/dist/features/loyalty/components/index.d.ts +0 -1
- package/dist/features/loyalty/components/index.js +0 -1
- package/dist/features/loyalty/hooks/useLoyaltyBalance.d.ts +0 -4
- package/dist/features/loyalty/hooks/useLoyaltyBalance.js +0 -25
- package/dist/features/loyalty/index.d.ts +0 -6
- package/dist/features/loyalty/index.js +0 -6
- package/dist/features/loyalty/manifest.d.ts +0 -2
- package/dist/features/loyalty/manifest.js +0 -16
- package/dist/features/loyalty/messages/en.json +0 -19
- package/dist/features/loyalty/repository/loyalty.repository.d.ts +0 -8
- package/dist/features/loyalty/repository/loyalty.repository.js +0 -22
- package/dist/features/loyalty/schemas/index.d.ts +0 -85
- package/dist/features/loyalty/schemas/index.js +0 -40
- package/dist/features/loyalty/server.d.ts +0 -6
- package/dist/features/loyalty/server.js +0 -6
- package/dist/features/loyalty/types/index.d.ts +0 -31
- package/dist/features/loyalty/types/index.js +0 -1
- package/dist/features/loyalty/types/loyalty-config.d.ts +0 -7
- package/dist/features/loyalty/types/loyalty-config.js +0 -1
- package/dist/features/loyalty/types/loyalty-math.d.ts +0 -9
- package/dist/features/loyalty/types/loyalty-math.js +0 -27
- package/dist/features/products/components/ProductOwnerQuickActions.d.ts +0 -11
- package/dist/features/products/components/ProductOwnerQuickActions.js +0 -120
- package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
- package/dist/features/tester/seed-data/_happy-path.js +0 -710
- package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
- package/dist/features/tester/seed-data/_money-flows.js +0 -610
- package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
- package/dist/features/tester/seed-data/authored/_types.js +0 -35
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
- package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
- package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
- package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
- package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
- package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
- package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
- package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
- package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
- package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
- package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
- package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
- package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
- package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
- package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
- package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
- package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
- package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
- package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
- package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
- package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
- package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
- package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
- package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
- package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/index.js +0 -301
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
- package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
- package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
- package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
- package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
- package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
- package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
- package/dist/features/tester/seed-data/index.d.ts +0 -2
- package/dist/features/tester/seed-data/index.js +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
- package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
- package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
- package/dist/features/tester/seed-data/tester-window.js +0 -66
- package/dist/seed/_helpers/brand-rows.d.ts +0 -35
- package/dist/seed/_helpers/brand-rows.js +0 -600
- package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
- package/dist/seed/_helpers/category-content-generated.js +0 -1853
- package/dist/seed/_helpers/category-content.d.ts +0 -68
- package/dist/seed/_helpers/category-content.js +0 -731
- package/dist/seed/_helpers/category-forest.d.ts +0 -4
- package/dist/seed/_helpers/category-forest.js +0 -824
- package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
- package/dist/seed/_helpers/category-images-generated.js +0 -618
- package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
- package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
- package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
- package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
- package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
- package/dist/seed/_helpers/category-models.d.ts +0 -12
- package/dist/seed/_helpers/category-models.js +0 -45
- package/dist/seed/_helpers/category-names.d.ts +0 -54
- package/dist/seed/_helpers/category-names.js +0 -118
- package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
- package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
- package/dist/seed/_helpers/category-parts.d.ts +0 -9
- package/dist/seed/_helpers/category-parts.js +0 -15022
- package/dist/seed/_helpers/category-tree.d.ts +0 -27
- package/dist/seed/_helpers/category-tree.js +0 -119
- package/dist/seed/_helpers/character-features.d.ts +0 -10
- package/dist/seed/_helpers/character-features.js +0 -120
- package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
- package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
- package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
- package/dist/seed/_helpers/franchise-rows.js +0 -189
- package/dist/seed/_helpers/media.d.ts +0 -67
- package/dist/seed/_helpers/media.js +0 -172
- package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
- package/dist/seed/_helpers/part-colours-generated.js +0 -273
- package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
- package/dist/seed/_helpers/product-search-txt.js +0 -23
- package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
- package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
- package/dist/seed/addresses-seed-data.d.ts +0 -2
- package/dist/seed/addresses-seed-data.js +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
- package/dist/seed/bey-products-seed-data.d.ts +0 -18
- package/dist/seed/bey-products-seed-data.js +0 -18011
- package/dist/seed/beys/chunk0.d.ts +0 -17
- package/dist/seed/beys/chunk0.js +0 -36733
- package/dist/seed/beys/chunk1.d.ts +0 -17
- package/dist/seed/beys/chunk1.js +0 -35728
- package/dist/seed/beys/chunk2.d.ts +0 -17
- package/dist/seed/beys/chunk2.js +0 -35857
- package/dist/seed/beys/chunk3.d.ts +0 -17
- package/dist/seed/beys/chunk3.js +0 -34476
- package/dist/seed/beys-seed-data.d.ts +0 -18
- package/dist/seed/beys-seed-data.js +0 -11
- package/dist/seed/bids-seed-data.d.ts +0 -2
- package/dist/seed/bids-seed-data.js +0 -206
- package/dist/seed/blog-posts-seed-data.d.ts +0 -6
- package/dist/seed/blog-posts-seed-data.js +0 -442
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
- package/dist/seed/carousel-slides-seed-data.js +0 -411
- package/dist/seed/carousels-seed-data.d.ts +0 -2
- package/dist/seed/carousels-seed-data.js +0 -36
- package/dist/seed/cart-seed-data.d.ts +0 -2
- package/dist/seed/cart-seed-data.js +0 -241
- package/dist/seed/catalogue-seed-data.d.ts +0 -2
- package/dist/seed/catalogue-seed-data.js +0 -112
- package/dist/seed/categories-seed-data.d.ts +0 -3
- package/dist/seed/categories-seed-data.js +0 -816
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
- package/dist/seed/claimed-coupons-seed-data.js +0 -85
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
- package/dist/seed/coupon-usage-seed-data.js +0 -55
- package/dist/seed/coupons-seed-data.d.ts +0 -2
- package/dist/seed/coupons-seed-data.js +0 -226
- package/dist/seed/defaults/categories.d.ts +0 -2
- package/dist/seed/defaults/categories.js +0 -12
- package/dist/seed/defaults/faqs.d.ts +0 -2
- package/dist/seed/defaults/faqs.js +0 -40
- package/dist/seed/events-seed-data.d.ts +0 -7
- package/dist/seed/events-seed-data.js +0 -482
- package/dist/seed/factories/address.factory.d.ts +0 -21
- package/dist/seed/factories/address.factory.js +0 -44
- package/dist/seed/factories/bid.factory.d.ts +0 -15
- package/dist/seed/factories/bid.factory.js +0 -33
- package/dist/seed/factories/blog-post.factory.d.ts +0 -15
- package/dist/seed/factories/blog-post.factory.js +0 -22
- package/dist/seed/factories/carousel.factory.d.ts +0 -11
- package/dist/seed/factories/carousel.factory.js +0 -17
- package/dist/seed/factories/cart.factory.d.ts +0 -25
- package/dist/seed/factories/cart.factory.js +0 -35
- package/dist/seed/factories/category.factory.d.ts +0 -11
- package/dist/seed/factories/category.factory.js +0 -16
- package/dist/seed/factories/coupon.factory.d.ts +0 -21
- package/dist/seed/factories/coupon.factory.js +0 -43
- package/dist/seed/factories/faq.factory.d.ts +0 -10
- package/dist/seed/factories/faq.factory.js +0 -15
- package/dist/seed/factories/notification.factory.d.ts +0 -18
- package/dist/seed/factories/notification.factory.js +0 -39
- package/dist/seed/factories/order.factory.d.ts +0 -20
- package/dist/seed/factories/order.factory.js +0 -20
- package/dist/seed/factories/payout.factory.d.ts +0 -21
- package/dist/seed/factories/payout.factory.js +0 -38
- package/dist/seed/factories/product.factory.d.ts +0 -27
- package/dist/seed/factories/product.factory.js +0 -80
- package/dist/seed/factories/review.factory.d.ts +0 -14
- package/dist/seed/factories/review.factory.js +0 -52
- package/dist/seed/factories/session.factory.d.ts +0 -15
- package/dist/seed/factories/session.factory.js +0 -31
- package/dist/seed/factories/store.factory.d.ts +0 -23
- package/dist/seed/factories/store.factory.js +0 -47
- package/dist/seed/factories/user.factory.d.ts +0 -19
- package/dist/seed/factories/user.factory.js +0 -56
- package/dist/seed/faq-seed-data.d.ts +0 -18
- package/dist/seed/faq-seed-data.js +0 -1956
- package/dist/seed/firestore-indexes.d.ts +0 -12
- package/dist/seed/firestore-indexes.js +0 -31
- package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
- package/dist/seed/grouped-listings-seed-data.js +0 -283
- package/dist/seed/history-seed-data.d.ts +0 -12
- package/dist/seed/history-seed-data.js +0 -70
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
- package/dist/seed/homepage-sections-seed-data.js +0 -1034
- package/dist/seed/index.d.ts +0 -100
- package/dist/seed/index.js +0 -115
- package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
- package/dist/seed/lottery-entries-seed-data.js +0 -108
- package/dist/seed/manifest.d.ts +0 -16
- package/dist/seed/manifest.js +0 -235
- package/dist/seed/media-assets-seed-data.d.ts +0 -22
- package/dist/seed/media-assets-seed-data.js +0 -5593
- package/dist/seed/model-composition-seed-data.d.ts +0 -15
- package/dist/seed/model-composition-seed-data.js +0 -9032
- package/dist/seed/notifications-seed-data.d.ts +0 -2
- package/dist/seed/notifications-seed-data.js +0 -606
- package/dist/seed/offers-seed-data.d.ts +0 -2
- package/dist/seed/offers-seed-data.js +0 -398
- package/dist/seed/orders-seed-data.d.ts +0 -2
- package/dist/seed/orders-seed-data.js +0 -845
- package/dist/seed/part-glossary/chunk0.d.ts +0 -9
- package/dist/seed/part-glossary/chunk0.js +0 -35448
- package/dist/seed/part-glossary/chunk1.d.ts +0 -9
- package/dist/seed/part-glossary/chunk1.js +0 -40494
- package/dist/seed/part-glossary/chunk2.d.ts +0 -9
- package/dist/seed/part-glossary/chunk2.js +0 -51242
- package/dist/seed/part-glossary/chunk3.d.ts +0 -9
- package/dist/seed/part-glossary/chunk3.js +0 -53337
- package/dist/seed/part-glossary/chunk4.d.ts +0 -9
- package/dist/seed/part-glossary/chunk4.js +0 -51454
- package/dist/seed/part-glossary-seed-data.d.ts +0 -15
- package/dist/seed/part-glossary-seed-data.js +0 -25
- package/dist/seed/payouts-seed-data.d.ts +0 -2
- package/dist/seed/payouts-seed-data.js +0 -302
- package/dist/seed/product-features-seed-data.d.ts +0 -3
- package/dist/seed/product-features-seed-data.js +0 -366
- package/dist/seed/products-art-seed-data.d.ts +0 -2
- package/dist/seed/products-art-seed-data.js +0 -289
- package/dist/seed/products-auctions-seed-data.d.ts +0 -2
- package/dist/seed/products-auctions-seed-data.js +0 -475
- package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
- package/dist/seed/products-beyblade-x-seed-data.js +0 -476
- package/dist/seed/products-catalogue/chunk0.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk0.js +0 -7262
- package/dist/seed/products-catalogue/chunk1.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk1.js +0 -7290
- package/dist/seed/products-catalogue/chunk10.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk10.js +0 -7290
- package/dist/seed/products-catalogue/chunk11.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk11.js +0 -7005
- package/dist/seed/products-catalogue/chunk12.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk12.js +0 -7002
- package/dist/seed/products-catalogue/chunk13.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk13.js +0 -7002
- package/dist/seed/products-catalogue/chunk14.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk14.js +0 -7002
- package/dist/seed/products-catalogue/chunk15.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk15.js +0 -7002
- package/dist/seed/products-catalogue/chunk16.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk16.js +0 -7002
- package/dist/seed/products-catalogue/chunk17.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk17.js +0 -7002
- package/dist/seed/products-catalogue/chunk18.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk18.js +0 -4398
- package/dist/seed/products-catalogue/chunk2.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk2.js +0 -7268
- package/dist/seed/products-catalogue/chunk3.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk3.js +0 -7264
- package/dist/seed/products-catalogue/chunk4.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk4.js +0 -7268
- package/dist/seed/products-catalogue/chunk5.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk5.js +0 -7258
- package/dist/seed/products-catalogue/chunk6.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk6.js +0 -7268
- package/dist/seed/products-catalogue/chunk7.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk7.js +0 -7311
- package/dist/seed/products-catalogue/chunk8.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk8.js +0 -7304
- package/dist/seed/products-catalogue/chunk9.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk9.js +0 -7309
- package/dist/seed/products-catalogue-seed-data.d.ts +0 -2
- package/dist/seed/products-catalogue-seed-data.js +0 -60
- package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
- package/dist/seed/products-classifieds-seed-data.js +0 -435
- package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
- package/dist/seed/products-digital-codes-seed-data.js +0 -395
- package/dist/seed/products-live-items-seed-data.d.ts +0 -7
- package/dist/seed/products-live-items-seed-data.js +0 -269
- package/dist/seed/products-preorders-seed-data.d.ts +0 -2
- package/dist/seed/products-preorders-seed-data.js +0 -360
- package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
- package/dist/seed/products-prize-draws-seed-data.js +0 -427
- package/dist/seed/products-spares-seed-data.d.ts +0 -2
- package/dist/seed/products-spares-seed-data.js +0 -368
- package/dist/seed/products-standard-seed-data.d.ts +0 -2
- package/dist/seed/products-standard-seed-data.js +0 -632
- package/dist/seed/products-stickers-seed-data.d.ts +0 -2
- package/dist/seed/products-stickers-seed-data.js +0 -319
- package/dist/seed/reviews-seed-data.d.ts +0 -1
- package/dist/seed/reviews-seed-data.js +0 -185
- package/dist/seed/runner.d.ts +0 -2
- package/dist/seed/runner.js +0 -125
- package/dist/seed/scammers-seed-data.d.ts +0 -2
- package/dist/seed/scammers-seed-data.js +0 -235
- package/dist/seed/seed-market-config.d.ts +0 -48
- package/dist/seed/seed-market-config.js +0 -199
- package/dist/seed/seed-purpose.d.ts +0 -299
- package/dist/seed/seed-purpose.js +0 -440
- package/dist/seed/sessions-seed-data.d.ts +0 -3
- package/dist/seed/sessions-seed-data.js +0 -116
- package/dist/seed/shipments-seed-data.d.ts +0 -5
- package/dist/seed/shipments-seed-data.js +0 -185
- package/dist/seed/site-settings-seed-data.d.ts +0 -2
- package/dist/seed/site-settings-seed-data.js +0 -1069
- package/dist/seed/store-addresses-seed-data.d.ts +0 -18
- package/dist/seed/store-addresses-seed-data.js +0 -71
- package/dist/seed/store-extensions-seed-data.d.ts +0 -11
- package/dist/seed/store-extensions-seed-data.js +0 -292
- package/dist/seed/stores-seed-data.d.ts +0 -6
- package/dist/seed/stores-seed-data.js +0 -242
- package/dist/seed/support-tickets-seed-data.d.ts +0 -16
- package/dist/seed/support-tickets-seed-data.js +0 -239
- package/dist/seed/tax-codes-seed-data.d.ts +0 -34
- package/dist/seed/tax-codes-seed-data.js +0 -100
- package/dist/seed/test-data-ttl.d.ts +0 -29
- package/dist/seed/test-data-ttl.js +0 -31
- package/dist/seed/test-utils.d.ts +0 -49
- package/dist/seed/test-utils.js +0 -110
- package/dist/seed/types.d.ts +0 -89
- package/dist/seed/types.js +0 -15
- package/dist/seed/users-seed-data.d.ts +0 -2
- package/dist/seed/users-seed-data.js +0 -597
- package/dist/seed/wishlists-seed-data.d.ts +0 -12
- package/dist/seed/wishlists-seed-data.js +0 -54
|
@@ -749,7 +749,28 @@ export interface ProductDocument extends BaseDocument {
|
|
|
749
749
|
w: number;
|
|
750
750
|
h: number;
|
|
751
751
|
};
|
|
752
|
-
/**
|
|
752
|
+
/**
|
|
753
|
+
* @deprecated Free-text storage location. Superseded by `inventoryPlacements`.
|
|
754
|
+
*
|
|
755
|
+
* 🛑 READ-ONLY FROM 2026-10-21. Three uncontrolled text inputs with no
|
|
756
|
+
* registry behind them, so "shelf 3", "Shelf-3" and "AC60 3" all meant one
|
|
757
|
+
* place: no list could group them, no query could find everything on a
|
|
758
|
+
* shelf, and the label printed whichever spelling that one product carried.
|
|
759
|
+
* Three boxes a human types into cannot be made consistent by validation.
|
|
760
|
+
*
|
|
761
|
+
* Where something lives is now a PLACEMENT (`storageBoxes` +
|
|
762
|
+
* `inventoryPlacements`), which carries a quantity and permits one product
|
|
763
|
+
* in two boxes — neither expressible here.
|
|
764
|
+
*
|
|
765
|
+
* 🛑 NOT DELETED, AND THE REASON IS NOT TIMIDITY. The stored strings cannot
|
|
766
|
+
* be mechanically mapped to box codes — that impossibility is exactly why
|
|
767
|
+
* the registry exists — so an automatic migration would either invent boxes
|
|
768
|
+
* from free text or lose the data. Listings that carry a value still show it
|
|
769
|
+
* (the product form and the label both do) until a human has re-placed them
|
|
770
|
+
* in a real box. The inputs are gone, so nothing new accumulates;
|
|
771
|
+
* `audit-no-physical-location-input` keeps it that way, and the field goes
|
|
772
|
+
* when the last value does.
|
|
773
|
+
*/
|
|
753
774
|
physicalLocation?: {
|
|
754
775
|
zone: string;
|
|
755
776
|
shelf: string;
|
|
@@ -757,8 +778,30 @@ export interface ProductDocument extends BaseDocument {
|
|
|
757
778
|
};
|
|
758
779
|
/** Scannable barcode identifier linking this listing to a physical stickered item.
|
|
759
780
|
* Auto-generated as `LIR-{8-char-hex}` on product creation when not supplied.
|
|
760
|
-
* Override by scanning a pre-printed sticker during the create/edit flow.
|
|
781
|
+
* Override by scanning a pre-printed sticker during the create/edit flow.
|
|
782
|
+
*
|
|
783
|
+
* 🛑 THE MACHINE KEY, and it must stay uniform-width. This field used to
|
|
784
|
+
* hold the semantic codes too — 23 seeded products carried
|
|
785
|
+
* `LIR-BEY-X-005` while everything app-created carried the SHA-1 form, so
|
|
786
|
+
* the audit found both printed in one list. Those moved to `sku`; see the
|
|
787
|
+
* note above `generateBarcodeId` for why the widths cannot share a field.
|
|
788
|
+
*/
|
|
761
789
|
barcodeId?: string;
|
|
790
|
+
/**
|
|
791
|
+
* The HUMAN key — a stock-keeping unit a person reads, says aloud and files
|
|
792
|
+
* by. `LIR-BURS-K3F9P` from `generateSku`, or whatever the seller authored.
|
|
793
|
+
*
|
|
794
|
+
* 🛑 Distinct from `barcodeId` ON PURPOSE, and the pair is the whole
|
|
795
|
+
* reconciliation of the audit's two-barcode finding. A barcode is scanned
|
|
796
|
+
* and must be fixed-width for a label to fit; a SKU is spoken and must be
|
|
797
|
+
* meaningful. One field could not be both, and was not.
|
|
798
|
+
*
|
|
799
|
+
* Optional, and absent on most live rows until the backfill runs
|
|
800
|
+
* (`appkit/scripts/backfill-sku.mjs`). 🛑 Nothing may assume its presence:
|
|
801
|
+
* the admin toolbar advertised SKU search for a field that did not exist at
|
|
802
|
+
* all, and every row read "No SKU" as a result.
|
|
803
|
+
*/
|
|
804
|
+
sku?: string;
|
|
762
805
|
/** Normalized edge-n-gram search field. Replaced `searchTokens`. */
|
|
763
806
|
searchTxt?: string[];
|
|
764
807
|
}
|
|
@@ -795,7 +838,7 @@ export declare const PRODUCT_COLLECTION: "products";
|
|
|
795
838
|
export declare const PRODUCT_INDEXED_FIELDS: readonly ["storeId", "status", "category", "categoryIds", "featured", "listingType", "isPromoted", "isOnSale", "isSold", "searchTxt", "createdAt", "barcodeId", "physicalLocation.zone"];
|
|
796
839
|
export declare const DEFAULT_PRODUCT_DATA: Partial<ProductDocument>;
|
|
797
840
|
export declare const PRODUCT_PUBLIC_FIELDS: readonly ["allowOffers", "minOfferPercent", "id", "title", "description", "category", "categoryIds", "categoryIdNames", "subcategory", "brand", "price", "originalPrice", "currency", "stockQuantity", "availableQuantity", "images", "status", "storeName", "featured", "tags", "specifications", "features", "shippingInfo", "returnPolicy", "finalSale", "isLot", "lotSize", "unitLabel", "partGlossaryId", "colourway", "mouldVariant", "assembledFrom", "views7d", "views30d", "unitLabel", "partGlossaryId", "colourway", "mouldVariant", "assembledFrom", "listingType", "auctionEndDate", "startingBid", "currentBid", "bidCount", "reservePrice", "buyNowPrice", "minBidIncrement", "autoExtendable", "auctionExtensionMinutes", "auctionShippingPaidBy", "bidsHaveStarted", "grading", "card", "classified", "digitalCode", "liveItem", "catalogProductId", "preOrderDeliveryDate", "preOrderDepositPercent", "preOrderDepositAmount", "preOrderMaxQuantity", "preOrderCurrentCount", "preOrderProductionStatus", "preOrderCancellable", "condition", "insurance", "insuranceCost", "shippingPaidBy", "isPromoted", "isOnSale", "isSold", "madeToOrder", "sourceStickerSheetId", "sourceStickerPartOrdinal", "slug", "seoTitle", "seoDescription", "seoKeywords", "viewCount", "customFields", "customSections", "sublistingCategoryId", "groupId", "isGroupParent", "groupParentSlug", "groupChildSlugs", "groupTitle", "groupMinMembers", "groupMaxMembers", "groupMaxUnitsPerMember", "groupRequiredMemberIds", "groupDiscountPercent", "createdAt"];
|
|
798
|
-
export declare const PRODUCT_UPDATABLE_FIELDS: readonly ["title", "description", "category", "categoryIds", "subcategory", "brand", "price", "originalPrice", "stockQuantity", "images", "status", "tags", "specifications", "features", "shippingInfo", "returnPolicy", "finalSale", "isLot", "lotSize", "pickupAddressId", "condition", "insurance", "shippingPaidBy", "autoExtendable", "auctionExtensionMinutes", "auctionShippingPaidBy", "reservePrice", "buyNowPrice", "minBidIncrement", "bidsHaveStarted", "grading", "card", "classified", "digitalCode", "liveItem", "catalogProductId", "listingType", "preOrderDeliveryDate", "preOrderDepositPercent", "preOrderDepositAmount", "preOrderMaxQuantity", "preOrderProductionStatus", "preOrderCancellable", "isOnSale", "isSold", "madeToOrder", "sourceStickerSheetId", "sourceStickerPartOrdinal", "allowShipBeforeEmiComplete", "gstRate", "hsnCode", "authenticity", "printMeta", "seoTitle", "seoDescription", "seoKeywords", "customFields", "customSections", "sublistingCategoryId", "groupId", "isGroupParent", "groupParentSlug", "groupChildSlugs", "groupTitle", "groupMinMembers", "groupMaxMembers", "groupMaxUnitsPerMember", "groupRequiredMemberIds", "groupDiscountPercent", "barcodeId"];
|
|
841
|
+
export declare const PRODUCT_UPDATABLE_FIELDS: readonly ["title", "description", "category", "categoryIds", "subcategory", "brand", "price", "originalPrice", "stockQuantity", "images", "status", "tags", "specifications", "features", "shippingInfo", "returnPolicy", "finalSale", "isLot", "lotSize", "physicalLocation", "sku", "pickupAddressId", "condition", "insurance", "shippingPaidBy", "autoExtendable", "auctionExtensionMinutes", "auctionShippingPaidBy", "reservePrice", "buyNowPrice", "minBidIncrement", "bidsHaveStarted", "grading", "card", "classified", "digitalCode", "liveItem", "catalogProductId", "listingType", "preOrderDeliveryDate", "preOrderDepositPercent", "preOrderDepositAmount", "preOrderMaxQuantity", "preOrderProductionStatus", "preOrderCancellable", "isOnSale", "isSold", "madeToOrder", "sourceStickerSheetId", "sourceStickerPartOrdinal", "allowShipBeforeEmiComplete", "gstRate", "hsnCode", "authenticity", "printMeta", "seoTitle", "seoDescription", "seoKeywords", "customFields", "customSections", "sublistingCategoryId", "groupId", "isGroupParent", "groupParentSlug", "groupChildSlugs", "groupTitle", "groupMinMembers", "groupMaxMembers", "groupMaxUnitsPerMember", "groupRequiredMemberIds", "groupDiscountPercent", "barcodeId"];
|
|
799
842
|
export type ProductCreateInput = Omit<ProductDocument, "id" | "createdAt" | "updatedAt" | "availableQuantity" | "bidCount" | "currentBid" | "auctionOriginalEndDate">;
|
|
800
843
|
export type ProductUpdateInput = Partial<Pick<ProductDocument, (typeof PRODUCT_UPDATABLE_FIELDS)[number]>>;
|
|
801
844
|
export type ProductAdminUpdateInput = Partial<Omit<ProductDocument, "id" | "createdAt">>;
|
|
@@ -305,6 +305,27 @@ export const PRODUCT_UPDATABLE_FIELDS = [
|
|
|
305
305
|
* (which both renderers read) was not in this list either. */
|
|
306
306
|
"isLot",
|
|
307
307
|
"lotSize",
|
|
308
|
+
/*
|
|
309
|
+
* 🛑 `physicalLocation` WAS MISSING, and the comment five lines above
|
|
310
|
+
* describes the identical defect one field over: "the form wrote
|
|
311
|
+
* `compareAtPrice`, nothing declared it, and `originalPrice` was not in
|
|
312
|
+
* this list either".
|
|
313
|
+
*
|
|
314
|
+
* `ProductForm` renders three inputs for it — zone, shelf, bin. They
|
|
315
|
+
* accept typing, they parse, and the repository dropped the whole object
|
|
316
|
+
* on every save, so 0 of the catalogue's products carry one. The field is
|
|
317
|
+
* declared on `ProductDocument`, and `physicalLocation.zone` is even in
|
|
318
|
+
* the searchable-field list, so everything existed except the one entry
|
|
319
|
+
* that lets a write through.
|
|
320
|
+
*
|
|
321
|
+
* Added rather than removing the inputs. Phase 5 of the current plan
|
|
322
|
+
* retires this field in favour of a box registry with a move ledger, and
|
|
323
|
+
* until that lands a working field is better than three inputs that lie —
|
|
324
|
+
* a seller who labels a shelf today should find it there tomorrow.
|
|
325
|
+
*/
|
|
326
|
+
"physicalLocation",
|
|
327
|
+
// The human stock key. Seller-authored or generated; see ProductDocument.sku.
|
|
328
|
+
"sku",
|
|
308
329
|
"pickupAddressId",
|
|
309
330
|
"condition",
|
|
310
331
|
"insurance",
|
|
@@ -7,7 +7,7 @@ export function PromotionsViewProductSection({ title, subtitle, renderProducts,
|
|
|
7
7
|
}
|
|
8
8
|
/** Slim hero banner for the promotions page — tabs + content live in the page. */
|
|
9
9
|
export function PromotionsHero({ labels, heroBannerClass = "", }) {
|
|
10
|
-
return (_jsx(Section, { color: "inverse", tone: "accent-banner", className: `${heroBannerClass}`, padding: "y-2-5xl", children: _jsxs(Div, { paddingX: "x-page", className: "max-w-5xl mx-auto text-left", children: [_jsxs(Text, { color: "inverse", className: "mb-2 tracking-widest", size: "sm", weight: "medium", transform: "uppercase", children: ["\uD83C\uDF89 ", labels.exclusiveOffersBadge] }), _jsx(Heading, { color: "inverse", level: 1, variant: "none", className: "mb-4", children: labels.title }), _jsx(Text, { color: "inverse", variant: "none", className: "
|
|
10
|
+
return (_jsx(Section, { color: "inverse", tone: "accent-banner", className: `${heroBannerClass}`, padding: "y-2-5xl", children: _jsxs(Div, { paddingX: "x-page", className: "max-w-5xl mx-auto text-left", children: [_jsxs(Text, { color: "inverse", className: "mb-2 tracking-widest", size: "sm", weight: "medium", transform: "uppercase", children: ["\uD83C\uDF89 ", labels.exclusiveOffersBadge] }), _jsx(Heading, { color: "inverse", level: 1, variant: "none", className: "mb-4", children: labels.title }), _jsx(Text, { color: "inverse-muted", variant: "none", className: "max-w-2xl mx-auto", size: "lg", children: labels.subtitle })] }) }));
|
|
11
11
|
}
|
|
12
12
|
/** @deprecated Use PromotionsHero + per-tab content in your page instead. */
|
|
13
13
|
export function PromotionsView({ labels, hasContent, heroBannerClass = "", renderCoupons, couponsCount = 0, renderDealsSection, renderFeaturedSection, }) {
|
|
@@ -21,6 +21,38 @@ export declare class ClaimedCouponsRepository extends BaseRepository<ClaimedCoup
|
|
|
21
21
|
/** Idempotent claim — returns the existing claim if one already exists. */
|
|
22
22
|
claim(input: ClaimedCouponCreateInput): Promise<ClaimedCouponDocument>;
|
|
23
23
|
listForUser(userId: string): Promise<ClaimedCouponDocument[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Re-sync every wallet copy of a coupon's snapshot after the source coupon
|
|
26
|
+
* is edited (D59).
|
|
27
|
+
*
|
|
28
|
+
* 🛑 WHY THIS EXISTS, and what the defect actually was — the plan overstates
|
|
29
|
+
* it and the correction matters.
|
|
30
|
+
*
|
|
31
|
+
* `ClaimedCouponDocument.couponSnapshot` is a denormalised copy of
|
|
32
|
+
* `discount` + `restrictions` + `type` + `scope`, so `/user/coupons` renders
|
|
33
|
+
* the wallet in ONE indexed read instead of N joins. Nothing re-synced it
|
|
34
|
+
* when an admin edited the source coupon, so it drifted — the mirror shape
|
|
35
|
+
* of Root Cause #42.
|
|
36
|
+
*
|
|
37
|
+
* The plan says the consequence is that "a spin/raffle win keeps the old
|
|
38
|
+
* terms". **It does not.** Verified: redemption goes
|
|
39
|
+
* `validateCouponForCart` → `_fetchAndValidateCoupon` →
|
|
40
|
+
* `getCouponByCode(code)`, which reads the LIVE `CouponDocument`. The
|
|
41
|
+
* snapshot is never consulted when money moves.
|
|
42
|
+
*
|
|
43
|
+
* So this is a DISPLAY defect, not a money one — and still worth fixing,
|
|
44
|
+
* because the wallet advertising "20% off" while checkout applies 10% is a
|
|
45
|
+
* trust problem and a support ticket. Calling it a money bug would have
|
|
46
|
+
* sent someone looking for an exploit that is not there.
|
|
47
|
+
*
|
|
48
|
+
* Re-syncing beats dropping the snapshot: rendering live would cost a join
|
|
49
|
+
* per wallet row, which is the exact thing the denormalisation buys.
|
|
50
|
+
*
|
|
51
|
+
* Best-effort by design — a failed re-sync must never fail the admin's
|
|
52
|
+
* coupon edit, which has already succeeded. The worst case is a stale
|
|
53
|
+
* DISPLAY, i.e. exactly today's behaviour.
|
|
54
|
+
*/
|
|
55
|
+
resyncSnapshotsForCoupon(couponId: string, snapshot: ClaimedCouponSnapshot): Promise<number>;
|
|
24
56
|
markUsed(userId: string, couponCode: string, orderId: string): Promise<void>;
|
|
25
57
|
softRemove(userId: string, couponCode: string): Promise<void>;
|
|
26
58
|
}
|
|
@@ -82,6 +82,64 @@ export class ClaimedCouponsRepository extends BaseRepository {
|
|
|
82
82
|
throw new DatabaseError("Failed to list claimed coupons", error);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Re-sync every wallet copy of a coupon's snapshot after the source coupon
|
|
87
|
+
* is edited (D59).
|
|
88
|
+
*
|
|
89
|
+
* 🛑 WHY THIS EXISTS, and what the defect actually was — the plan overstates
|
|
90
|
+
* it and the correction matters.
|
|
91
|
+
*
|
|
92
|
+
* `ClaimedCouponDocument.couponSnapshot` is a denormalised copy of
|
|
93
|
+
* `discount` + `restrictions` + `type` + `scope`, so `/user/coupons` renders
|
|
94
|
+
* the wallet in ONE indexed read instead of N joins. Nothing re-synced it
|
|
95
|
+
* when an admin edited the source coupon, so it drifted — the mirror shape
|
|
96
|
+
* of Root Cause #42.
|
|
97
|
+
*
|
|
98
|
+
* The plan says the consequence is that "a spin/raffle win keeps the old
|
|
99
|
+
* terms". **It does not.** Verified: redemption goes
|
|
100
|
+
* `validateCouponForCart` → `_fetchAndValidateCoupon` →
|
|
101
|
+
* `getCouponByCode(code)`, which reads the LIVE `CouponDocument`. The
|
|
102
|
+
* snapshot is never consulted when money moves.
|
|
103
|
+
*
|
|
104
|
+
* So this is a DISPLAY defect, not a money one — and still worth fixing,
|
|
105
|
+
* because the wallet advertising "20% off" while checkout applies 10% is a
|
|
106
|
+
* trust problem and a support ticket. Calling it a money bug would have
|
|
107
|
+
* sent someone looking for an exploit that is not there.
|
|
108
|
+
*
|
|
109
|
+
* Re-syncing beats dropping the snapshot: rendering live would cost a join
|
|
110
|
+
* per wallet row, which is the exact thing the denormalisation buys.
|
|
111
|
+
*
|
|
112
|
+
* Best-effort by design — a failed re-sync must never fail the admin's
|
|
113
|
+
* coupon edit, which has already succeeded. The worst case is a stale
|
|
114
|
+
* DISPLAY, i.e. exactly today's behaviour.
|
|
115
|
+
*/
|
|
116
|
+
async resyncSnapshotsForCoupon(couponId, snapshot) {
|
|
117
|
+
try {
|
|
118
|
+
/*
|
|
119
|
+
* Bounded at 500. A coupon claimed by more wallets than that is a
|
|
120
|
+
* campaign, and silently updating only the first page would be worse
|
|
121
|
+
* than saying so — the count is returned and the caller logs it.
|
|
122
|
+
*/
|
|
123
|
+
const snap = await this.db
|
|
124
|
+
.collection(this.collection)
|
|
125
|
+
.where("couponId", "==", couponId)
|
|
126
|
+
.limit(500)
|
|
127
|
+
.get();
|
|
128
|
+
if (snap.empty)
|
|
129
|
+
return 0;
|
|
130
|
+
const writer = this.db.bulkWriter();
|
|
131
|
+
for (const doc of snap.docs) {
|
|
132
|
+
writer.update(doc.ref, { couponSnapshot: snapshot, updatedAt: new Date() });
|
|
133
|
+
}
|
|
134
|
+
await writer.close();
|
|
135
|
+
return snap.size;
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
void normalizeError(error);
|
|
139
|
+
// Deliberately NOT thrown — see the docstring.
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
85
143
|
async markUsed(userId, couponCode, orderId) {
|
|
86
144
|
const id = createClaimedCouponId(userId, couponCode);
|
|
87
145
|
try {
|
|
@@ -204,18 +204,45 @@ export function calculateDiscount(coupon, orderTotal,
|
|
|
204
204
|
lines) {
|
|
205
205
|
if (coupon.discount.minPurchase && orderTotal < coupon.discount.minPurchase)
|
|
206
206
|
return 0;
|
|
207
|
+
/*
|
|
208
|
+
* ── Tiered discounts ──────────────────────────────────────────────────────
|
|
209
|
+
*
|
|
210
|
+
* 🛑 `tiers` HAS BEEN ON `CouponDocument` SINCE IT SHIPPED, AND NOTHING EVER
|
|
211
|
+
* READ IT. `getTieredDiscount` existed, was exported from the barrel, and
|
|
212
|
+
* had ZERO callers — so a coupon carrying tiers was charged at its flat
|
|
213
|
+
* `discount.value` and the tiers did nothing at all. This is the reader.
|
|
214
|
+
*
|
|
215
|
+
* A tier REPLACES `discount.value` rather than adding to it, which is what
|
|
216
|
+
* its own field comment describes: "Percentage (0-100) when the coupon type
|
|
217
|
+
* === percentage; decimal rupees when type === fixed". So the tier is the
|
|
218
|
+
* value for that band, not a bonus on top.
|
|
219
|
+
*
|
|
220
|
+
* 🛑 Only `percentage` and `fixed` consult it. A BOGO's value lives in
|
|
221
|
+
* `bxgy` and free shipping is a shipping-line waiver, so neither has a
|
|
222
|
+
* `discount.value` for a tier to replace — applying one there would be
|
|
223
|
+
* inventing semantics the field does not define.
|
|
224
|
+
*
|
|
225
|
+
* 🛑 `> 0` means "a tier matched". `getTieredDiscount` returns 0 for all
|
|
226
|
+
* three of "no tiers", "no band matched" and "the matched band is worth
|
|
227
|
+
* zero", and those are indistinguishable in its signature. That is fine
|
|
228
|
+
* here ONLY because a zero-value tier is a no-op either way — it would
|
|
229
|
+
* discount nothing whether honoured or ignored. Do not reuse this test for
|
|
230
|
+
* anything where zero is a meaningful outcome.
|
|
231
|
+
*/
|
|
232
|
+
const tieredValue = getTieredDiscount(coupon.tiers, orderTotal);
|
|
233
|
+
const effectiveValue = tieredValue > 0 ? tieredValue : coupon.discount.value;
|
|
207
234
|
let discountAmount = 0;
|
|
208
235
|
switch (coupon.type) {
|
|
209
236
|
case "percentage":
|
|
210
|
-
// audit-money-units-ok: percentage divisor (
|
|
211
|
-
discountAmount = (orderTotal *
|
|
237
|
+
// audit-money-units-ok: percentage divisor (effectiveValue is 0-100), not paise
|
|
238
|
+
discountAmount = (orderTotal * effectiveValue) / 100;
|
|
212
239
|
if (coupon.discount.maxDiscount &&
|
|
213
240
|
discountAmount > coupon.discount.maxDiscount) {
|
|
214
241
|
discountAmount = coupon.discount.maxDiscount;
|
|
215
242
|
}
|
|
216
243
|
break;
|
|
217
244
|
case "fixed":
|
|
218
|
-
discountAmount = Math.min(
|
|
245
|
+
discountAmount = Math.min(effectiveValue, orderTotal);
|
|
219
246
|
break;
|
|
220
247
|
case "buy_x_get_y":
|
|
221
248
|
// Needs the basket — see calculateBxgyDiscount. Capped at the total so a
|
|
@@ -34,11 +34,11 @@ export declare const tieredDiscountSchema: z.ZodObject<{
|
|
|
34
34
|
minAmount: z.ZodEffects<z.ZodNumber, number, number>;
|
|
35
35
|
discountValue: z.ZodNumber;
|
|
36
36
|
}, "strip", z.ZodTypeAny, {
|
|
37
|
-
discountValue: number;
|
|
38
37
|
minAmount: number;
|
|
39
|
-
}, {
|
|
40
38
|
discountValue: number;
|
|
39
|
+
}, {
|
|
41
40
|
minAmount: number;
|
|
41
|
+
discountValue: number;
|
|
42
42
|
}>;
|
|
43
43
|
export declare const usageConfigSchema: z.ZodObject<{
|
|
44
44
|
totalLimit: z.ZodOptional<z.ZodNumber>;
|
|
@@ -177,11 +177,11 @@ export declare const couponFirestoreSchema: z.ZodObject<{
|
|
|
177
177
|
minAmount: z.ZodEffects<z.ZodNumber, number, number>;
|
|
178
178
|
discountValue: z.ZodNumber;
|
|
179
179
|
}, "strip", z.ZodTypeAny, {
|
|
180
|
-
discountValue: number;
|
|
181
180
|
minAmount: number;
|
|
182
|
-
}, {
|
|
183
181
|
discountValue: number;
|
|
182
|
+
}, {
|
|
184
183
|
minAmount: number;
|
|
184
|
+
discountValue: number;
|
|
185
185
|
}>, "many">>;
|
|
186
186
|
usage: z.ZodObject<{
|
|
187
187
|
totalLimit: z.ZodOptional<z.ZodNumber>;
|
|
@@ -320,8 +320,8 @@ export declare const couponFirestoreSchema: z.ZodObject<{
|
|
|
320
320
|
applicableCategories?: string[] | undefined;
|
|
321
321
|
} | undefined;
|
|
322
322
|
tiers?: {
|
|
323
|
-
discountValue: number;
|
|
324
323
|
minAmount: number;
|
|
324
|
+
discountValue: number;
|
|
325
325
|
}[] | undefined;
|
|
326
326
|
}, {
|
|
327
327
|
code: string;
|
|
@@ -378,8 +378,8 @@ export declare const couponFirestoreSchema: z.ZodObject<{
|
|
|
378
378
|
applicableCategories?: string[] | undefined;
|
|
379
379
|
} | undefined;
|
|
380
380
|
tiers?: {
|
|
381
|
-
discountValue: number;
|
|
382
381
|
minAmount: number;
|
|
382
|
+
discountValue: number;
|
|
383
383
|
}[] | undefined;
|
|
384
384
|
}>;
|
|
385
385
|
export declare const couponUsageFirestoreSchema: z.ZodObject<{
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BaseRepository } from "../../../providers/db-firebase";
|
|
2
|
+
import { type ProtectionClaimDocument, type ProtectionClaimReason, type ProtectionClaimStatus } from "../schemas/firestore";
|
|
3
|
+
import type { ClaimFinding, ClaimOutcome, ProtectionKind } from "../../../_internal/shared/features/shipping/protections";
|
|
4
|
+
export interface FileClaimInput {
|
|
5
|
+
kind: ProtectionKind;
|
|
6
|
+
orderId: string;
|
|
7
|
+
storeId: string;
|
|
8
|
+
buyerId: string;
|
|
9
|
+
reason: ProtectionClaimReason;
|
|
10
|
+
detail: string;
|
|
11
|
+
claimedAmount: number;
|
|
12
|
+
itemIds?: string[];
|
|
13
|
+
evidenceUrls?: string[];
|
|
14
|
+
isTestData?: boolean;
|
|
15
|
+
now?: Date;
|
|
16
|
+
}
|
|
17
|
+
export declare class ProtectionClaimsRepository extends BaseRepository<ProtectionClaimDocument> {
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* File a claim. **Refuses a second claim on the same (order, kind).**
|
|
21
|
+
*
|
|
22
|
+
* 🛑 `.create()` with a deterministic id, and the refusal is a 409 rather
|
|
23
|
+
* than a silent no-op — the buyer needs to know their existing claim is the
|
|
24
|
+
* one being worked, not that their second attempt vanished.
|
|
25
|
+
*
|
|
26
|
+
* Why it matters more here than elsewhere: a protected sale claim is
|
|
27
|
+
* refunded **unconditionally** (`adjudicateClaim` refunds on a
|
|
28
|
+
* change-of-mind finding too, and only shifts who pays). So N claims on one
|
|
29
|
+
* order would be N refunds against the same goods.
|
|
30
|
+
*/
|
|
31
|
+
file(input: FileClaimInput): Promise<ProtectionClaimDocument>;
|
|
32
|
+
/**
|
|
33
|
+
* Record the human finding and the outcome `adjudicateClaim` produced.
|
|
34
|
+
*
|
|
35
|
+
* 🛑 It does NOT move money. The refund is `processRefundAction`'s job, and
|
|
36
|
+
* keeping them apart is what lets the refund carry its own idempotency key
|
|
37
|
+
* — a claim that adjudicated and then failed to refund leaves a `upheld`
|
|
38
|
+
* claim with no `refundId`, which is a findable state rather than a lost one.
|
|
39
|
+
*/
|
|
40
|
+
adjudicate(id: string, input: {
|
|
41
|
+
finding: ClaimFinding;
|
|
42
|
+
outcome: ClaimOutcome;
|
|
43
|
+
adjudicatedBy: string;
|
|
44
|
+
now?: Date;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
/** Link the refund that settled this claim. */
|
|
47
|
+
attachRefund(id: string, refundId: string, now?: Date): Promise<void>;
|
|
48
|
+
setStatus(id: string, status: ProtectionClaimStatus, reason: string, now?: Date): Promise<void>;
|
|
49
|
+
findByOrderAndKind(orderId: string, kind: ProtectionKind): Promise<ProtectionClaimDocument | null>;
|
|
50
|
+
/** The admin queue: claims still needing work, oldest first. */
|
|
51
|
+
listActive(limit?: number): Promise<ProtectionClaimDocument[]>;
|
|
52
|
+
listForBuyer(buyerId: string, limit?: number): Promise<ProtectionClaimDocument[]>;
|
|
53
|
+
}
|
|
54
|
+
export declare function protectionClaimsRepository(): ProtectionClaimsRepository;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { BaseRepository, prepareForFirestore } from "../../../providers/db-firebase/index.js";
|
|
2
|
+
import { normalizeError } from "../../../errors/normalize.js";
|
|
3
|
+
import { buildHistoryEntry } from "../../../_internal/shared/history/history.js";
|
|
4
|
+
import { ConflictError } from "../../../errors/index.js";
|
|
5
|
+
import { PROTECTION_CLAIMS_COLLECTION, PROTECTION_CLAIM_ACTIVE_STATUSES, PROTECTION_CLAIM_FIELDS, createProtectionClaimId, } from "../schemas/firestore.js";
|
|
6
|
+
const GRPC_ALREADY_EXISTS = 6;
|
|
7
|
+
function isAlreadyExists(err) {
|
|
8
|
+
if (typeof err !== "object" || err === null)
|
|
9
|
+
return false;
|
|
10
|
+
const code = err.code;
|
|
11
|
+
if (code === GRPC_ALREADY_EXISTS)
|
|
12
|
+
return true;
|
|
13
|
+
if (code === "already-exists" || code === "ALREADY_EXISTS")
|
|
14
|
+
return true;
|
|
15
|
+
const message = err.message;
|
|
16
|
+
return typeof message === "string" && message.includes("ALREADY_EXISTS");
|
|
17
|
+
}
|
|
18
|
+
export class ProtectionClaimsRepository extends BaseRepository {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(PROTECTION_CLAIMS_COLLECTION);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* File a claim. **Refuses a second claim on the same (order, kind).**
|
|
24
|
+
*
|
|
25
|
+
* 🛑 `.create()` with a deterministic id, and the refusal is a 409 rather
|
|
26
|
+
* than a silent no-op — the buyer needs to know their existing claim is the
|
|
27
|
+
* one being worked, not that their second attempt vanished.
|
|
28
|
+
*
|
|
29
|
+
* Why it matters more here than elsewhere: a protected sale claim is
|
|
30
|
+
* refunded **unconditionally** (`adjudicateClaim` refunds on a
|
|
31
|
+
* change-of-mind finding too, and only shifts who pays). So N claims on one
|
|
32
|
+
* order would be N refunds against the same goods.
|
|
33
|
+
*/
|
|
34
|
+
async file(input) {
|
|
35
|
+
const now = input.now ?? new Date();
|
|
36
|
+
const id = createProtectionClaimId(input.orderId, input.kind);
|
|
37
|
+
const doc = {
|
|
38
|
+
id,
|
|
39
|
+
kind: input.kind,
|
|
40
|
+
orderId: input.orderId,
|
|
41
|
+
storeId: input.storeId,
|
|
42
|
+
buyerId: input.buyerId,
|
|
43
|
+
status: "open",
|
|
44
|
+
reason: input.reason,
|
|
45
|
+
detail: input.detail,
|
|
46
|
+
claimedAmount: input.claimedAmount,
|
|
47
|
+
...(input.itemIds?.length ? { itemIds: input.itemIds } : {}),
|
|
48
|
+
...(input.evidenceUrls?.length ? { evidenceUrls: input.evidenceUrls } : {}),
|
|
49
|
+
...(input.isTestData ? { isTestData: true } : {}),
|
|
50
|
+
statusHistory: [
|
|
51
|
+
buildHistoryEntry({
|
|
52
|
+
actor: { role: "buyer", uid: input.buyerId },
|
|
53
|
+
trigger: `protectionClaim:file:${input.kind}`,
|
|
54
|
+
changes: { status: { from: null, to: "open" } },
|
|
55
|
+
reason: input.reason,
|
|
56
|
+
now,
|
|
57
|
+
}),
|
|
58
|
+
],
|
|
59
|
+
createdAt: now,
|
|
60
|
+
updatedAt: now,
|
|
61
|
+
};
|
|
62
|
+
try {
|
|
63
|
+
await this.getCollection().doc(id).create(prepareForFirestore(doc));
|
|
64
|
+
return doc;
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
if (isAlreadyExists(err)) {
|
|
68
|
+
void normalizeError(err);
|
|
69
|
+
throw new ConflictError(`A ${input.kind} protection claim is already open on this order. Add to that claim rather than filing a second one.`);
|
|
70
|
+
}
|
|
71
|
+
void normalizeError(err);
|
|
72
|
+
throw err;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Record the human finding and the outcome `adjudicateClaim` produced.
|
|
77
|
+
*
|
|
78
|
+
* 🛑 It does NOT move money. The refund is `processRefundAction`'s job, and
|
|
79
|
+
* keeping them apart is what lets the refund carry its own idempotency key
|
|
80
|
+
* — a claim that adjudicated and then failed to refund leaves a `upheld`
|
|
81
|
+
* claim with no `refundId`, which is a findable state rather than a lost one.
|
|
82
|
+
*/
|
|
83
|
+
async adjudicate(id, input) {
|
|
84
|
+
const now = input.now ?? new Date();
|
|
85
|
+
const existing = await this.findById(id);
|
|
86
|
+
const status = input.outcome.refundBuyer ? "upheld" : "rejected";
|
|
87
|
+
await this.getCollection()
|
|
88
|
+
.doc(id)
|
|
89
|
+
.update({
|
|
90
|
+
status,
|
|
91
|
+
finding: input.finding,
|
|
92
|
+
outcome: {
|
|
93
|
+
refundBuyer: input.outcome.refundBuyer,
|
|
94
|
+
costBorneBy: input.outcome.costBorneBy,
|
|
95
|
+
raisesReport: input.outcome.raisesReport,
|
|
96
|
+
},
|
|
97
|
+
adjudicatedBy: input.adjudicatedBy,
|
|
98
|
+
adjudicatedAt: now,
|
|
99
|
+
updatedAt: now,
|
|
100
|
+
statusHistory: [
|
|
101
|
+
...(existing?.statusHistory ?? []),
|
|
102
|
+
buildHistoryEntry({
|
|
103
|
+
actor: { role: "admin", uid: input.adjudicatedBy },
|
|
104
|
+
trigger: "protectionClaim:adjudicate",
|
|
105
|
+
changes: {
|
|
106
|
+
status: { from: existing?.status ?? null, to: status },
|
|
107
|
+
finding: { from: null, to: input.finding },
|
|
108
|
+
},
|
|
109
|
+
note: `cost borne by ${input.outcome.costBorneBy}`,
|
|
110
|
+
now,
|
|
111
|
+
}),
|
|
112
|
+
],
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/** Link the refund that settled this claim. */
|
|
116
|
+
async attachRefund(id, refundId, now = new Date()) {
|
|
117
|
+
try {
|
|
118
|
+
await this.getCollection().doc(id).update({ refundId, updatedAt: now });
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
void normalizeError(err);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async setStatus(id, status, reason, now = new Date()) {
|
|
125
|
+
try {
|
|
126
|
+
const existing = await this.findById(id);
|
|
127
|
+
await this.getCollection()
|
|
128
|
+
.doc(id)
|
|
129
|
+
.update({
|
|
130
|
+
status,
|
|
131
|
+
updatedAt: now,
|
|
132
|
+
statusHistory: [
|
|
133
|
+
...(existing?.statusHistory ?? []),
|
|
134
|
+
buildHistoryEntry({
|
|
135
|
+
actor: { role: "system" },
|
|
136
|
+
trigger: "protectionClaim:setStatus",
|
|
137
|
+
changes: { status: { from: existing?.status ?? null, to: status } },
|
|
138
|
+
reason,
|
|
139
|
+
now,
|
|
140
|
+
}),
|
|
141
|
+
],
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
void normalizeError(err);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async findByOrderAndKind(orderId, kind) {
|
|
149
|
+
return this.findById(createProtectionClaimId(orderId, kind));
|
|
150
|
+
}
|
|
151
|
+
/** The admin queue: claims still needing work, oldest first. */
|
|
152
|
+
async listActive(limit = 100) {
|
|
153
|
+
const snap = await this.getCollection()
|
|
154
|
+
.where(PROTECTION_CLAIM_FIELDS.STATUS, "in", [...PROTECTION_CLAIM_ACTIVE_STATUSES])
|
|
155
|
+
.orderBy(PROTECTION_CLAIM_FIELDS.CREATED_AT, "asc")
|
|
156
|
+
.limit(limit)
|
|
157
|
+
.get();
|
|
158
|
+
return snap.docs.map((d) => this.mapDoc(d));
|
|
159
|
+
}
|
|
160
|
+
async listForBuyer(buyerId, limit = 50) {
|
|
161
|
+
const snap = await this.getCollection()
|
|
162
|
+
.where(PROTECTION_CLAIM_FIELDS.BUYER_ID, "==", buyerId)
|
|
163
|
+
.orderBy(PROTECTION_CLAIM_FIELDS.CREATED_AT, "desc")
|
|
164
|
+
.limit(limit)
|
|
165
|
+
.get();
|
|
166
|
+
return snap.docs.map((d) => this.mapDoc(d));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
let cached = null;
|
|
170
|
+
export function protectionClaimsRepository() {
|
|
171
|
+
if (!cached)
|
|
172
|
+
cached = new ProtectionClaimsRepository();
|
|
173
|
+
return cached;
|
|
174
|
+
}
|