@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
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The payout hold — how long a seller's money is held after delivery, and the
|
|
3
|
+
* ONE place that number is decided.
|
|
4
|
+
*
|
|
5
|
+
* WHY: there were three payout paths and one intended hold, honoured by zero
|
|
6
|
+
* of the three (D25).
|
|
7
|
+
*
|
|
8
|
+
* · `weeklyPayoutEligibility` (Saturday) queried
|
|
9
|
+
* `payoutStatus == "eligible" && status == "delivered"` with **no time
|
|
10
|
+
* cutoff at all**, so it paid out an order delivered yesterday.
|
|
11
|
+
* · `autoPayoutEligibility` (daily) applied a 7-day window, but computed
|
|
12
|
+
* it with CALENDAR days while calling them business days — measured,
|
|
13
|
+
* that reached 4 calendar days less far back than it should on a
|
|
14
|
+
* Monday, so a "7 business day" hold was really about 5.
|
|
15
|
+
* · The manual seller "Request payout" (`seller-actions.ts`) had no time
|
|
16
|
+
* check whatsoever.
|
|
17
|
+
*
|
|
18
|
+
* And `commissions.payoutHoldDays` — the admin-facing setting that looks
|
|
19
|
+
* like it controls all this — was read by NOTHING. It is seeded **2**,
|
|
20
|
+
* which is the trap below.
|
|
21
|
+
*
|
|
22
|
+
* WHAT: `resolvePayoutHoldDays(commissions, returns)` → the honoured number,
|
|
23
|
+
* and `payoutCutoff(...)` → the instant to compare an order's delivery
|
|
24
|
+
* anchor against.
|
|
25
|
+
*/
|
|
26
|
+
import { businessDayCutoff, } from "../time/business-days.js";
|
|
27
|
+
/**
|
|
28
|
+
* The hold can never be shorter than any window during which money can still
|
|
29
|
+
* flow back OUT of the order.
|
|
30
|
+
*
|
|
31
|
+
* 🛑 WIRING `payoutHoldDays` NAIVELY MAKES THINGS WORSE, which is why this
|
|
32
|
+
* function exists rather than a bare settings read. The setting is seeded at
|
|
33
|
+
* **2 days**; the hardcoded window it would replace is **7**; and the
|
|
34
|
+
* sale-protection claim window is **7 days** (168h). So honouring the stored
|
|
35
|
+
* value as-is would *shorten* the hold from 7 to 2 and release a seller's
|
|
36
|
+
* money four days before the buyer's protection claim window even closes —
|
|
37
|
+
* i.e. we would have sold cover we had already paid out against.
|
|
38
|
+
*
|
|
39
|
+
* The floor is therefore `max(returnWindow, claimWindow)`, and the setting can
|
|
40
|
+
* only ever EXTEND it. An admin who wants a shorter hold has to shorten the
|
|
41
|
+
* return window first, which is the honest ordering of that decision.
|
|
42
|
+
*/
|
|
43
|
+
export const PAYOUT_HOLD_FLOOR_DAYS = 7;
|
|
44
|
+
/**
|
|
45
|
+
* Resolve the honoured hold.
|
|
46
|
+
*
|
|
47
|
+
* Returns the SOURCE as well as the number, deliberately: a hold silently
|
|
48
|
+
* raised from the admin's configured 2 to a floor of 7 reads as a bug to
|
|
49
|
+
* whoever set it, so the job logs which one applied rather than leaving the
|
|
50
|
+
* seller and the admin to disagree about it.
|
|
51
|
+
*/
|
|
52
|
+
export function resolvePayoutHoldDays(inputs) {
|
|
53
|
+
const claimDays = inputs.maxClaimWindowHours
|
|
54
|
+
? Math.ceil(inputs.maxClaimWindowHours / 24)
|
|
55
|
+
: 0;
|
|
56
|
+
const floor = Math.max(PAYOUT_HOLD_FLOOR_DAYS, inputs.returnWindowDays ?? 0, claimDays);
|
|
57
|
+
const configured = inputs.payoutHoldDays;
|
|
58
|
+
if (typeof configured === "number" && Number.isFinite(configured) && configured > floor) {
|
|
59
|
+
return { days: Math.floor(configured), source: "setting", floor };
|
|
60
|
+
}
|
|
61
|
+
return { days: floor, source: "floor", floor };
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The cutoff instant: an order whose delivery anchor is at or before this is
|
|
65
|
+
* past its hold.
|
|
66
|
+
*
|
|
67
|
+
* 🛑 BUSINESS days, via `businessDayCutoff` — weekends and the Indian holiday
|
|
68
|
+
* list. The previous implementation subtracted calendar days, so every hold
|
|
69
|
+
* spanning a weekend released early.
|
|
70
|
+
*/
|
|
71
|
+
export function payoutCutoff(inputs, opts, now) {
|
|
72
|
+
const hold = resolvePayoutHoldDays(inputs);
|
|
73
|
+
return { cutoff: businessDayCutoff(hold.days, opts, now), hold };
|
|
74
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `deadlinesFor(order)` — every deadline an order currently owes, derived.
|
|
3
|
+
*
|
|
4
|
+
* ## Pure, so a page can render it for free
|
|
5
|
+
*
|
|
6
|
+
* No reads, no writes, no `obligations` lookup. A buyer or seller page calls
|
|
7
|
+
* this on an order it already has and renders "Dispatch by Thu 3 Nov".
|
|
8
|
+
*
|
|
9
|
+
* 🛑 That is why deadlines are DERIVED rather than stored on the order. A
|
|
10
|
+
* stored `dispatchDueAt` would need a backfill for every existing order, and
|
|
11
|
+
* would drift from the policy the moment an admin changed the duration — the
|
|
12
|
+
* denormalised-mirror trap (Root Cause #42). The `obligations` collection
|
|
13
|
+
* stores one too, and that copy is explicitly a due-date INDEX for the sweep
|
|
14
|
+
* to query, not the answer.
|
|
15
|
+
*
|
|
16
|
+
* ## Test-window compression is PER SUBJECT
|
|
17
|
+
*
|
|
18
|
+
* 🛑 A tester run must be able to watch a 3-day acceptance window close inside
|
|
19
|
+
* a 90-minute session, and a hard-coded duration cannot be shortened — which is
|
|
20
|
+
* what made those cases untestable in any run shorter than the literal. So
|
|
21
|
+
* durations scale by `TESTER_WINDOW_MINUTES`, but **only when the subject
|
|
22
|
+
* itself carries `isTestData: true`.** A global switch would compress every
|
|
23
|
+
* live buyer's deadline the moment somebody ran the tester, which is the one
|
|
24
|
+
* mistake this must not make.
|
|
25
|
+
*/
|
|
26
|
+
import { type Duration, type ObligationPolicy } from "../../../features/obligations/constants/policies";
|
|
27
|
+
import { type ObligationKind } from "../../../features/obligations/schemas/firestore";
|
|
28
|
+
import type { OrderDocument } from "../../../features/orders/schemas/firestore";
|
|
29
|
+
export interface ResolvedDeadline {
|
|
30
|
+
kind: ObligationKind;
|
|
31
|
+
dueAt: Date;
|
|
32
|
+
/** The fact the clock started from. */
|
|
33
|
+
anchoredAt: Date;
|
|
34
|
+
policy: ObligationPolicy;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve one duration into an absolute date.
|
|
38
|
+
*
|
|
39
|
+
* 🛑 `business` goes through `addBusinessDays`, which counts weekends AND the
|
|
40
|
+
* Indian holiday calendar. The predecessor helper subtracted CALENDAR days and
|
|
41
|
+
* called them business days, so the "7-business-day" payout hold was really
|
|
42
|
+
* about 5 — and a missed holiday silently SHORTENS a deadline, which is why
|
|
43
|
+
* the calendar has an owner and a horizon warning.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveDueAt(anchor: Date, duration: Duration, opts?: {
|
|
46
|
+
isTestData?: boolean;
|
|
47
|
+
}): Date;
|
|
48
|
+
/**
|
|
49
|
+
* Every deadline this order currently owes.
|
|
50
|
+
*
|
|
51
|
+
* Only kinds whose `precondition` holds AND whose `anchor` has fired appear —
|
|
52
|
+
* an order that has not shipped owes no delivery confirmation, and that is the
|
|
53
|
+
* difference between "not yet" and "overdue".
|
|
54
|
+
*/
|
|
55
|
+
export declare function deadlinesFor(order: OrderDocument): ResolvedDeadline[];
|
|
56
|
+
/**
|
|
57
|
+
* Which obligations this order should have open, and which should be closed.
|
|
58
|
+
*
|
|
59
|
+
* Called from the order's own write (`updateWithHistory`), where the current
|
|
60
|
+
* document is already in hand — so reconciling costs **zero extra reads**.
|
|
61
|
+
*
|
|
62
|
+
* 🛑 Derived from the POLICY's own `precondition`, not from a hand-written
|
|
63
|
+
* `Record<OrderStatus, {opens, closes}>` table.
|
|
64
|
+
*
|
|
65
|
+
* The plan proposed that table, and building it this way instead is a
|
|
66
|
+
* deliberate departure worth stating: a status→opens/closes map is a SECOND
|
|
67
|
+
* encoding of the same facts the preconditions already express, and the two
|
|
68
|
+
* would drift exactly as the plan's own proposed transition map had already
|
|
69
|
+
* drifted from the census (it omitted `pending → processing`, which a live
|
|
70
|
+
* sweep writes). One source, evaluated twice — once for display, once for
|
|
71
|
+
* reconciliation — cannot disagree with itself.
|
|
72
|
+
*/
|
|
73
|
+
export declare function reconcileObligations(order: OrderDocument,
|
|
74
|
+
/**
|
|
75
|
+
* The order as it was BEFORE this write, when the caller has it.
|
|
76
|
+
*
|
|
77
|
+
* 🛑 THIS PARAMETER IS A COST FIX, not an optimisation. My first version
|
|
78
|
+
* closed "every kind not currently open", which on an 11-kind union meant
|
|
79
|
+
* **11 Firestore update attempts on every single order write** — each one a
|
|
80
|
+
* billed write against a document that mostly does not exist, on the hottest
|
|
81
|
+
* collection in the project. Rule #6 exists for exactly that.
|
|
82
|
+
*
|
|
83
|
+
* With `previous` in hand the close set is `was-open MINUS is-open`, which is
|
|
84
|
+
* usually empty and never larger than the number of obligations that
|
|
85
|
+
* genuinely just completed. Zero reads either way, because `updateWithHistory`
|
|
86
|
+
* already holds the pre-write document.
|
|
87
|
+
*
|
|
88
|
+
* Omitting it falls back to the full set, which is correct for a deliberate
|
|
89
|
+
* backfill over existing orders and wrong for the write path.
|
|
90
|
+
*/
|
|
91
|
+
previous?: OrderDocument | null): {
|
|
92
|
+
open: ResolvedDeadline[];
|
|
93
|
+
close: ObligationKind[];
|
|
94
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `deadlinesFor(order)` — every deadline an order currently owes, derived.
|
|
3
|
+
*
|
|
4
|
+
* ## Pure, so a page can render it for free
|
|
5
|
+
*
|
|
6
|
+
* No reads, no writes, no `obligations` lookup. A buyer or seller page calls
|
|
7
|
+
* this on an order it already has and renders "Dispatch by Thu 3 Nov".
|
|
8
|
+
*
|
|
9
|
+
* 🛑 That is why deadlines are DERIVED rather than stored on the order. A
|
|
10
|
+
* stored `dispatchDueAt` would need a backfill for every existing order, and
|
|
11
|
+
* would drift from the policy the moment an admin changed the duration — the
|
|
12
|
+
* denormalised-mirror trap (Root Cause #42). The `obligations` collection
|
|
13
|
+
* stores one too, and that copy is explicitly a due-date INDEX for the sweep
|
|
14
|
+
* to query, not the answer.
|
|
15
|
+
*
|
|
16
|
+
* ## Test-window compression is PER SUBJECT
|
|
17
|
+
*
|
|
18
|
+
* 🛑 A tester run must be able to watch a 3-day acceptance window close inside
|
|
19
|
+
* a 90-minute session, and a hard-coded duration cannot be shortened — which is
|
|
20
|
+
* what made those cases untestable in any run shorter than the literal. So
|
|
21
|
+
* durations scale by `TESTER_WINDOW_MINUTES`, but **only when the subject
|
|
22
|
+
* itself carries `isTestData: true`.** A global switch would compress every
|
|
23
|
+
* live buyer's deadline the moment somebody ran the tester, which is the one
|
|
24
|
+
* mistake this must not make.
|
|
25
|
+
*/
|
|
26
|
+
/*
|
|
27
|
+
* 🛑 `addBusinessDays` ONLY — `resolveHolidays` is module-private and takes
|
|
28
|
+
* `(startYear, endYear, opts)`, not a Date. I imported it first and it would
|
|
29
|
+
* not have compiled; `addBusinessDays` already resolves the holiday set
|
|
30
|
+
* internally for every year the window spans, so the correct call passes no
|
|
31
|
+
* holiday argument at all.
|
|
32
|
+
*/
|
|
33
|
+
import { addBusinessDays } from "../time/business-days.js";
|
|
34
|
+
import { OBLIGATION_POLICIES, durationToMinutes, } from "../../../features/obligations/constants/policies.js";
|
|
35
|
+
import { ALL_OBLIGATION_KINDS, } from "../../../features/obligations/schemas/firestore.js";
|
|
36
|
+
import { windowMinutes } from "../../../features/tester/seed-data/tester-window.js";
|
|
37
|
+
/**
|
|
38
|
+
* How much a test fixture's deadlines are compressed.
|
|
39
|
+
*
|
|
40
|
+
* The real window is scaled so the LONGEST obligation (14-day delivery
|
|
41
|
+
* confirmation) still fits inside one tester window, while the shortest
|
|
42
|
+
* (24-hour proof re-upload) stays long enough to observe. Expressed as a
|
|
43
|
+
* fraction of `TESTER_WINDOW_MINUTES` per real day.
|
|
44
|
+
*/
|
|
45
|
+
const TEST_MINUTES_PER_REAL_DAY = 1 / 14;
|
|
46
|
+
function compressForTest(minutes) {
|
|
47
|
+
const realDays = minutes / (24 * 60);
|
|
48
|
+
const scaled = realDays * windowMinutes() * TEST_MINUTES_PER_REAL_DAY;
|
|
49
|
+
/*
|
|
50
|
+
* Floored at one minute. A deadline computed as zero would fire on the same
|
|
51
|
+
* sweep tick that created it, so the tester could never observe the BEFORE
|
|
52
|
+
* state — and a case written as "before → after" needs both halves.
|
|
53
|
+
*/
|
|
54
|
+
return Math.max(1, scaled);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resolve one duration into an absolute date.
|
|
58
|
+
*
|
|
59
|
+
* 🛑 `business` goes through `addBusinessDays`, which counts weekends AND the
|
|
60
|
+
* Indian holiday calendar. The predecessor helper subtracted CALENDAR days and
|
|
61
|
+
* called them business days, so the "7-business-day" payout hold was really
|
|
62
|
+
* about 5 — and a missed holiday silently SHORTENS a deadline, which is why
|
|
63
|
+
* the calendar has an owner and a horizon warning.
|
|
64
|
+
*/
|
|
65
|
+
export function resolveDueAt(anchor, duration, opts) {
|
|
66
|
+
if (opts?.isTestData) {
|
|
67
|
+
/*
|
|
68
|
+
* A compressed fixture is always wall-clock. Business-day arithmetic on a
|
|
69
|
+
* 6-minute window is meaningless, and worse: a fixture seeded on a Friday
|
|
70
|
+
* would land its "2 business day" deadline on Tuesday regardless of
|
|
71
|
+
* compression, so the case could never run.
|
|
72
|
+
*/
|
|
73
|
+
return new Date(anchor.getTime() + compressForTest(durationToMinutes(duration)) * 60000);
|
|
74
|
+
}
|
|
75
|
+
if (duration.calendar === "business" && duration.unit === "days") {
|
|
76
|
+
return addBusinessDays(anchor, duration.value);
|
|
77
|
+
}
|
|
78
|
+
return new Date(anchor.getTime() + durationToMinutes(duration) * 60000);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Every deadline this order currently owes.
|
|
82
|
+
*
|
|
83
|
+
* Only kinds whose `precondition` holds AND whose `anchor` has fired appear —
|
|
84
|
+
* an order that has not shipped owes no delivery confirmation, and that is the
|
|
85
|
+
* difference between "not yet" and "overdue".
|
|
86
|
+
*/
|
|
87
|
+
export function deadlinesFor(order) {
|
|
88
|
+
const out = [];
|
|
89
|
+
const isTestData = order.isTestData === true;
|
|
90
|
+
for (const kind of ALL_OBLIGATION_KINDS) {
|
|
91
|
+
const policy = OBLIGATION_POLICIES[kind];
|
|
92
|
+
const anchor = policy.anchor(order);
|
|
93
|
+
if (!anchor)
|
|
94
|
+
continue;
|
|
95
|
+
if (!policy.precondition(order))
|
|
96
|
+
continue;
|
|
97
|
+
out.push({
|
|
98
|
+
kind,
|
|
99
|
+
anchoredAt: anchor,
|
|
100
|
+
dueAt: resolveDueAt(anchor, policy.duration, { isTestData }),
|
|
101
|
+
policy,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return out.sort((a, b) => a.dueAt.getTime() - b.dueAt.getTime());
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Which obligations this order should have open, and which should be closed.
|
|
108
|
+
*
|
|
109
|
+
* Called from the order's own write (`updateWithHistory`), where the current
|
|
110
|
+
* document is already in hand — so reconciling costs **zero extra reads**.
|
|
111
|
+
*
|
|
112
|
+
* 🛑 Derived from the POLICY's own `precondition`, not from a hand-written
|
|
113
|
+
* `Record<OrderStatus, {opens, closes}>` table.
|
|
114
|
+
*
|
|
115
|
+
* The plan proposed that table, and building it this way instead is a
|
|
116
|
+
* deliberate departure worth stating: a status→opens/closes map is a SECOND
|
|
117
|
+
* encoding of the same facts the preconditions already express, and the two
|
|
118
|
+
* would drift exactly as the plan's own proposed transition map had already
|
|
119
|
+
* drifted from the census (it omitted `pending → processing`, which a live
|
|
120
|
+
* sweep writes). One source, evaluated twice — once for display, once for
|
|
121
|
+
* reconciliation — cannot disagree with itself.
|
|
122
|
+
*/
|
|
123
|
+
export function reconcileObligations(order,
|
|
124
|
+
/**
|
|
125
|
+
* The order as it was BEFORE this write, when the caller has it.
|
|
126
|
+
*
|
|
127
|
+
* 🛑 THIS PARAMETER IS A COST FIX, not an optimisation. My first version
|
|
128
|
+
* closed "every kind not currently open", which on an 11-kind union meant
|
|
129
|
+
* **11 Firestore update attempts on every single order write** — each one a
|
|
130
|
+
* billed write against a document that mostly does not exist, on the hottest
|
|
131
|
+
* collection in the project. Rule #6 exists for exactly that.
|
|
132
|
+
*
|
|
133
|
+
* With `previous` in hand the close set is `was-open MINUS is-open`, which is
|
|
134
|
+
* usually empty and never larger than the number of obligations that
|
|
135
|
+
* genuinely just completed. Zero reads either way, because `updateWithHistory`
|
|
136
|
+
* already holds the pre-write document.
|
|
137
|
+
*
|
|
138
|
+
* Omitting it falls back to the full set, which is correct for a deliberate
|
|
139
|
+
* backfill over existing orders and wrong for the write path.
|
|
140
|
+
*/
|
|
141
|
+
previous) {
|
|
142
|
+
const shouldBeOpen = deadlinesFor(order);
|
|
143
|
+
const openKinds = new Set(shouldBeOpen.map((d) => d.kind));
|
|
144
|
+
if (previous) {
|
|
145
|
+
const wasOpen = deadlinesFor(previous).map((d) => d.kind);
|
|
146
|
+
return {
|
|
147
|
+
open: shouldBeOpen,
|
|
148
|
+
close: wasOpen.filter((k) => !openKinds.has(k)),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
open: shouldBeOpen,
|
|
153
|
+
close: ALL_OBLIGATION_KINDS.filter((k) => !openKinds.has(k)),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
@@ -114,6 +114,45 @@ export interface ShippingReconciliation {
|
|
|
114
114
|
sellerAbsorbs: number;
|
|
115
115
|
/** Points credited to the buyer, 1 point = ₹1. */
|
|
116
116
|
buyerPoints: number;
|
|
117
|
+
/**
|
|
118
|
+
* Rupees the seller is REIMBURSED for postage — `min(spent, charged)`.
|
|
119
|
+
*
|
|
120
|
+
* ## 🛑 This is the D45 decision, and it applies to BOTH branches
|
|
121
|
+
*
|
|
122
|
+
* Owner, 2026-10-21: *"if seller ships on their own then they have to upload
|
|
123
|
+
* the receipt of the shipment with the tracking number so that it is paid to
|
|
124
|
+
* them directly; if they use our platform's integration (Shiprocket) they do
|
|
125
|
+
* not get the money, the platform keeps it."* Plus: reimbursement **capped at
|
|
126
|
+
* what the buyer paid**, and the saving goes to the **buyer as points**.
|
|
127
|
+
*
|
|
128
|
+
* So shipping stops being revenue to allocate and becomes a COST TO
|
|
129
|
+
* REIMBURSE. The third output completes a formula whose other two terms this
|
|
130
|
+
* function already computed from the same two inputs:
|
|
131
|
+
*
|
|
132
|
+
* ```
|
|
133
|
+
* reimbursable = min(spent, charged)
|
|
134
|
+
* sellerAbsorbs = max(0, spent − charged)
|
|
135
|
+
* buyerPoints = max(0, charged − spent)
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
* 🛑 **The platform nets exactly zero on shipping in every case**, which is
|
|
139
|
+
* the property that makes it defensible to both sides and is worth stating as
|
|
140
|
+
* an invariant rather than leaving to be inferred:
|
|
141
|
+
*
|
|
142
|
+
* | buyer paid | receipt | seller gets | buyer gets | platform |
|
|
143
|
+
* |---|---|---|---|---|
|
|
144
|
+
* | ₹120 | ₹80 | ₹80 | ₹40 points | **₹0** |
|
|
145
|
+
* | ₹80 | ₹120 | ₹80 | — | **₹0** |
|
|
146
|
+
* | ₹100 | ₹100 | ₹100 | — | **₹0** |
|
|
147
|
+
*
|
|
148
|
+
* It is computed here for every order rather than only on the self-shipped
|
|
149
|
+
* branch, because today the platform keeps shipping in the QUOTED path too —
|
|
150
|
+
* so this is the fix for both, not a new rule for one. Whether it is actually
|
|
151
|
+
* PAID is gated separately: a Shiprocket-booked parcel was paid for by us, so
|
|
152
|
+
* `reimbursable` must not reach the payout base there. See
|
|
153
|
+
* `isReimbursableShipment`.
|
|
154
|
+
*/
|
|
155
|
+
reimbursable: number;
|
|
117
156
|
/** True when the seller shipped with a courier the buyer did not choose. */
|
|
118
157
|
courierChanged: boolean;
|
|
119
158
|
}
|
|
@@ -133,6 +172,63 @@ export interface ShippingReconciliation {
|
|
|
133
172
|
* buyer's (rounding down).
|
|
134
173
|
*/
|
|
135
174
|
export declare function reconcileShipping(quote: Pick<SelectedShippingQuote, "chargedRate" | "courierId">, actual: ActualShipmentCost): ShippingReconciliation;
|
|
175
|
+
/**
|
|
176
|
+
* May this order's postage be reimbursed to the seller at all?
|
|
177
|
+
*
|
|
178
|
+
* ## 🛑 Gated on WHO BOOKED, never on whether a receipt exists
|
|
179
|
+
*
|
|
180
|
+
* Owner's rule: a seller who ships themselves is paid the approved amount on
|
|
181
|
+
* proof; a seller who uses our Shiprocket integration gets nothing, because we
|
|
182
|
+
* already paid the courier.
|
|
183
|
+
*
|
|
184
|
+
* Testing for a receipt instead would be the exploitable version — a seller
|
|
185
|
+
* could upload a receipt for a parcel the platform paid for and be reimbursed
|
|
186
|
+
* for someone else's spend. The discriminator has to be the booking, which is
|
|
187
|
+
* a fact about how the shipment was created and not something the claimant
|
|
188
|
+
* supplies.
|
|
189
|
+
*
|
|
190
|
+
* ## 🛑 It fails OPEN on an unknown booker, and the previous docstring claimed
|
|
191
|
+
* the opposite
|
|
192
|
+
*
|
|
193
|
+
* That text read: *"It returns FALSE when the booker is unknown, and that
|
|
194
|
+
* direction is deliberate: paying out on an unverified premise is the error
|
|
195
|
+
* that cannot be undone."* **The code has always returned TRUE.** Corrected
|
|
196
|
+
* 2026-10-21 — the code is right and the comment was wrong, which is the
|
|
197
|
+
* dangerous way round: a reader trusted a safety property that was not there.
|
|
198
|
+
*
|
|
199
|
+
* Fail-open is correct here because **nothing writes
|
|
200
|
+
* `platformBookedShipment`.** A self-shipped parcel has no flag to set, so a
|
|
201
|
+
* fail-closed gate would refuse every seller and the reimbursement feature
|
|
202
|
+
* would be entirely dead. Absence means "self-shipped", which is the common
|
|
203
|
+
* case, and the real protection on that path is the evidence-plus-approval
|
|
204
|
+
* step — a seller is paid the amount an admin approves from an uploaded
|
|
205
|
+
* receipt, never an amount they assert.
|
|
206
|
+
*
|
|
207
|
+
* ## 🛑 THE GATE IS THEREFORE INERT, and that is a prerequisite, not a bug
|
|
208
|
+
*
|
|
209
|
+
* Measured 2026-10-21: `platformBookedShipment` has ZERO writers — only this
|
|
210
|
+
* declaration, the `ShippingReconciliation` field and the order schema. The
|
|
211
|
+
* exposure is nil **today** because nothing creates a platform booking either:
|
|
212
|
+
* `ShiprocketShippingProvider` is registered in `providers.config.ts` but
|
|
213
|
+
* nothing calls its `createShipment`.
|
|
214
|
+
*
|
|
215
|
+
* So the day that booking path is wired, THE SAME COMMIT must write this flag.
|
|
216
|
+
* Otherwise the gate fails open on a parcel the platform paid for and the
|
|
217
|
+
* seller is reimbursed for our spend — the exact double-payment this function
|
|
218
|
+
* exists to prevent.
|
|
219
|
+
*
|
|
220
|
+
* Gated on WHO BOOKED rather than on whether a receipt exists, because testing
|
|
221
|
+
* for a receipt is the exploitable version: a seller could upload a receipt for
|
|
222
|
+
* a parcel the platform paid for. The discriminator has to be a fact about how
|
|
223
|
+
* the shipment was created, not something the claimant supplies — which is
|
|
224
|
+
* also why this function deliberately does NOT look at
|
|
225
|
+
* `shippingReimbursement`. That parameter was accepted and never read, and an
|
|
226
|
+
* unread parameter invites exactly the misuse it was meant to forbid, so it is
|
|
227
|
+
* gone.
|
|
228
|
+
*/
|
|
229
|
+
export declare function isReimbursableShipment(order: {
|
|
230
|
+
platformBookedShipment?: boolean;
|
|
231
|
+
}): boolean;
|
|
136
232
|
/**
|
|
137
233
|
* Turn carrier serviceability results into offerable options.
|
|
138
234
|
*
|
|
@@ -82,9 +82,76 @@ export function reconcileShipping(quote, actual) {
|
|
|
82
82
|
return {
|
|
83
83
|
sellerAbsorbs: delta < 0 ? Math.abs(delta) : 0,
|
|
84
84
|
buyerPoints: delta > 0 ? delta : 0,
|
|
85
|
+
/*
|
|
86
|
+
* `min(spent, charged)` — capped at what the buyer paid, per the owner's
|
|
87
|
+
* decision. Rounded through the same helper as the others: a bare
|
|
88
|
+
* `Math.min` of two 2dp figures is safe, but keeping all three terms on one
|
|
89
|
+
* rounding path is what stops `reimbursable + buyerPoints` drifting a paisa
|
|
90
|
+
* away from `charged`, which is the invariant an auditor would check.
|
|
91
|
+
*/
|
|
92
|
+
reimbursable: roundMoney(Math.min(spent, charged)),
|
|
85
93
|
courierChanged: quote.courierId !== actual.courierId,
|
|
86
94
|
};
|
|
87
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* May this order's postage be reimbursed to the seller at all?
|
|
98
|
+
*
|
|
99
|
+
* ## 🛑 Gated on WHO BOOKED, never on whether a receipt exists
|
|
100
|
+
*
|
|
101
|
+
* Owner's rule: a seller who ships themselves is paid the approved amount on
|
|
102
|
+
* proof; a seller who uses our Shiprocket integration gets nothing, because we
|
|
103
|
+
* already paid the courier.
|
|
104
|
+
*
|
|
105
|
+
* Testing for a receipt instead would be the exploitable version — a seller
|
|
106
|
+
* could upload a receipt for a parcel the platform paid for and be reimbursed
|
|
107
|
+
* for someone else's spend. The discriminator has to be the booking, which is
|
|
108
|
+
* a fact about how the shipment was created and not something the claimant
|
|
109
|
+
* supplies.
|
|
110
|
+
*
|
|
111
|
+
* ## 🛑 It fails OPEN on an unknown booker, and the previous docstring claimed
|
|
112
|
+
* the opposite
|
|
113
|
+
*
|
|
114
|
+
* That text read: *"It returns FALSE when the booker is unknown, and that
|
|
115
|
+
* direction is deliberate: paying out on an unverified premise is the error
|
|
116
|
+
* that cannot be undone."* **The code has always returned TRUE.** Corrected
|
|
117
|
+
* 2026-10-21 — the code is right and the comment was wrong, which is the
|
|
118
|
+
* dangerous way round: a reader trusted a safety property that was not there.
|
|
119
|
+
*
|
|
120
|
+
* Fail-open is correct here because **nothing writes
|
|
121
|
+
* `platformBookedShipment`.** A self-shipped parcel has no flag to set, so a
|
|
122
|
+
* fail-closed gate would refuse every seller and the reimbursement feature
|
|
123
|
+
* would be entirely dead. Absence means "self-shipped", which is the common
|
|
124
|
+
* case, and the real protection on that path is the evidence-plus-approval
|
|
125
|
+
* step — a seller is paid the amount an admin approves from an uploaded
|
|
126
|
+
* receipt, never an amount they assert.
|
|
127
|
+
*
|
|
128
|
+
* ## 🛑 THE GATE IS THEREFORE INERT, and that is a prerequisite, not a bug
|
|
129
|
+
*
|
|
130
|
+
* Measured 2026-10-21: `platformBookedShipment` has ZERO writers — only this
|
|
131
|
+
* declaration, the `ShippingReconciliation` field and the order schema. The
|
|
132
|
+
* exposure is nil **today** because nothing creates a platform booking either:
|
|
133
|
+
* `ShiprocketShippingProvider` is registered in `providers.config.ts` but
|
|
134
|
+
* nothing calls its `createShipment`.
|
|
135
|
+
*
|
|
136
|
+
* So the day that booking path is wired, THE SAME COMMIT must write this flag.
|
|
137
|
+
* Otherwise the gate fails open on a parcel the platform paid for and the
|
|
138
|
+
* seller is reimbursed for our spend — the exact double-payment this function
|
|
139
|
+
* exists to prevent.
|
|
140
|
+
*
|
|
141
|
+
* Gated on WHO BOOKED rather than on whether a receipt exists, because testing
|
|
142
|
+
* for a receipt is the exploitable version: a seller could upload a receipt for
|
|
143
|
+
* a parcel the platform paid for. The discriminator has to be a fact about how
|
|
144
|
+
* the shipment was created, not something the claimant supplies — which is
|
|
145
|
+
* also why this function deliberately does NOT look at
|
|
146
|
+
* `shippingReimbursement`. That parameter was accepted and never read, and an
|
|
147
|
+
* unread parameter invites exactly the misuse it was meant to forbid, so it is
|
|
148
|
+
* gone.
|
|
149
|
+
*/
|
|
150
|
+
export function isReimbursableShipment(order) {
|
|
151
|
+
if (order.platformBookedShipment === true)
|
|
152
|
+
return false;
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
88
155
|
/**
|
|
89
156
|
* Two decimal places.
|
|
90
157
|
*
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Business-day arithmetic for India, with an admin-maintained holiday list.
|
|
3
|
+
*
|
|
4
|
+
* WHY: every deadline in the order lifecycle that matters commercially is
|
|
5
|
+
* quoted in *business* days — the payout hold, the seller dispatch
|
|
6
|
+
* window, the return-response window, the inspection window. Before this
|
|
7
|
+
* module the only implementation was `getBusinessDayCutoff` in
|
|
8
|
+
* `autoPayoutEligibility.ts`, which did this:
|
|
9
|
+
*
|
|
10
|
+
* cutoff.setUTCDate(cutoff.getUTCDate() - daysAgo)
|
|
11
|
+
*
|
|
12
|
+
* i.e. it subtracted CALENDAR days and called them business days. A
|
|
13
|
+
* 7-"business"-day hold computed on a Monday reached back to the previous
|
|
14
|
+
* Monday — 5 business days, not 7 — so every payout over a weekend was
|
|
15
|
+
* released two business days early, in the seller's favour, with no
|
|
16
|
+
* record that the stated hold had not been honoured.
|
|
17
|
+
*
|
|
18
|
+
* WHAT: `addBusinessDays` / `subBusinessDays` / `isBusinessDay` /
|
|
19
|
+
* `businessDaysBetween`, all operating on IST calendar days and all
|
|
20
|
+
* taking the holiday list as an explicit parameter.
|
|
21
|
+
*
|
|
22
|
+
* 🛑 A MISSED HOLIDAY SILENTLY SHORTENS A DEADLINE. There is no error, no
|
|
23
|
+
* log, and nothing to notice — the hold simply releases a day early. So the
|
|
24
|
+
* list below needs an owner and a review before each financial year; it is
|
|
25
|
+
* not fire-and-forget config. That hazard is the reason the list is DATA
|
|
26
|
+
* (admin-editable, see `resolveHolidays`) rather than a constant someone has
|
|
27
|
+
* to ship a release to change.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* 🛑 IST, not UTC, and this is not a preference.
|
|
31
|
+
*
|
|
32
|
+
* A business day is a property of the *place the business operates in*. India
|
|
33
|
+
* is UTC+5:30, so 23:00 UTC on a Friday is already Saturday morning in
|
|
34
|
+
* Mumbai. Computing weekends in UTC therefore misclassifies a 5.5-hour band
|
|
35
|
+
* at the edge of every single day — which is 23% of a working Friday evening
|
|
36
|
+
* treated as a working day when the office is shut, and the inverse on Sunday
|
|
37
|
+
* night.
|
|
38
|
+
*
|
|
39
|
+
* The old helper's `setUTCHours(4, 30, 0, 0)` was reaching for exactly this
|
|
40
|
+
* (04:30 UTC = 10:00 IST) without saying so. Making the offset explicit is
|
|
41
|
+
* what lets the weekend test be correct rather than approximately correct.
|
|
42
|
+
*/
|
|
43
|
+
import type { JsonValue } from "../../../schemas/types";
|
|
44
|
+
/** `YYYY-MM-DD` in IST. The key format the holiday list uses. */
|
|
45
|
+
export declare function toIstDateKey(d: Date): string;
|
|
46
|
+
/**
|
|
47
|
+
* Indian public holidays on which we do not count a business day.
|
|
48
|
+
*
|
|
49
|
+
* Deliberately NARROW: only the days on which banking and courier movement
|
|
50
|
+
* genuinely stop nationwide. A regional festival that closes one state's
|
|
51
|
+
* offices is not here, because treating it as a national holiday would
|
|
52
|
+
* *lengthen* every seller's deadline across the country — and unlike a missed
|
|
53
|
+
* holiday, that error is invisible in the seller's favour and compounds.
|
|
54
|
+
*
|
|
55
|
+
* 🛑 Dates are LITERAL, never computed. Several of these move year to year
|
|
56
|
+
* (they follow lunar calendars), so a formula would be wrong rather than
|
|
57
|
+
* stale — and stale is detectable while wrong is not. Entries end at the last
|
|
58
|
+
* declared year on purpose: `resolveHolidays` warns past that horizon instead
|
|
59
|
+
* of silently treating an unlisted Diwali as a working day.
|
|
60
|
+
*/
|
|
61
|
+
export declare const INDIA_HOLIDAYS_BY_YEAR: Readonly<Record<number, readonly string[]>>;
|
|
62
|
+
/** The last year with a curated list — past this, `resolveHolidays` warns. */
|
|
63
|
+
export declare const HOLIDAY_HORIZON_YEAR: number;
|
|
64
|
+
export interface BusinessDayOptions {
|
|
65
|
+
/**
|
|
66
|
+
* Extra closure dates (`YYYY-MM-DD`, IST), from
|
|
67
|
+
* `siteSettings.platformLimits.businessHolidays` once that field exists.
|
|
68
|
+
* Merged with the built-in list rather than replacing it, so an admin
|
|
69
|
+
* cannot accidentally delete Independence Day by saving an empty field.
|
|
70
|
+
*/
|
|
71
|
+
extraHolidays?: readonly string[];
|
|
72
|
+
/** Injected for the warning path; defaults to no-op so pure callers stay pure. */
|
|
73
|
+
onWarn?: (message: string, meta?: Record<string, JsonValue>) => void;
|
|
74
|
+
}
|
|
75
|
+
/** Saturday/Sunday in IST, or a listed holiday. */
|
|
76
|
+
export declare function isBusinessDay(d: Date, holidays: ReadonlySet<string>): boolean;
|
|
77
|
+
/** A deadline: `count` business days after `start`. */
|
|
78
|
+
export declare function addBusinessDays(start: Date, count: number, opts?: BusinessDayOptions): Date;
|
|
79
|
+
/** A cutoff: `count` business days before `start`. */
|
|
80
|
+
export declare function subBusinessDays(start: Date, count: number, opts?: BusinessDayOptions): Date;
|
|
81
|
+
/**
|
|
82
|
+
* The cutoff instant for "delivered at least `days` business days ago".
|
|
83
|
+
*
|
|
84
|
+
* Normalised to **10:00 IST** on the cutoff day, which is what the old helper's
|
|
85
|
+
* unexplained `setUTCHours(4, 30)` meant. It matters: without a fixed
|
|
86
|
+
* time-of-day the cutoff drifts with the hour the job happens to run, so an
|
|
87
|
+
* order can be eligible on one run and not the next.
|
|
88
|
+
*/
|
|
89
|
+
export declare function businessDayCutoff(days: number, opts?: BusinessDayOptions, now?: Date): Date;
|
|
90
|
+
/** Inclusive-of-neither count of business days in `[from, to)`. */
|
|
91
|
+
export declare function businessDaysBetween(from: Date, to: Date, opts?: BusinessDayOptions): number;
|