@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,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `paymentCases` — ONE operator queue for everything where money is at risk.
|
|
3
|
+
*
|
|
4
|
+
* ## Why one collection and not several
|
|
5
|
+
*
|
|
6
|
+
* A missing order, an unprocessed webhook, a chargeback, a refund mismatch and
|
|
7
|
+
* a dead job are different problems with the same audience: one person, once a
|
|
8
|
+
* day, asking "is anything wrong with the money". Three collections would mean
|
|
9
|
+
* three places to look and three chances to not look at one — and the one you
|
|
10
|
+
* forget is the one with the deadline.
|
|
11
|
+
*
|
|
12
|
+
* `kind` discriminates. Adding a seventh kind is a union edit, not a new
|
|
13
|
+
* collection.
|
|
14
|
+
*
|
|
15
|
+
* ## It mirrors `ReportDocument` on purpose
|
|
16
|
+
*
|
|
17
|
+
* `status` / `assignedTo` / `resolution` / `resolvedAt` / `entityType` /
|
|
18
|
+
* `entityId` are field-for-field the same as `store-extensions`'
|
|
19
|
+
* `ReportDocument`, so the admin list and detail views are a near-copy of the
|
|
20
|
+
* reports ones rather than a new UI. The four status values are identical too.
|
|
21
|
+
* Where it differs it is because a payment case has things a report does not: a
|
|
22
|
+
* **external deadline**, an **amount at risk**, and an **observation count**.
|
|
23
|
+
*/
|
|
24
|
+
import type { BaseDocument } from "../../../_internal/shared/types/base-document";
|
|
25
|
+
import type { StatusChangeEntry } from "../../../_internal/shared/history/types";
|
|
26
|
+
export declare const PAYMENT_CASES_COLLECTION = "paymentCases";
|
|
27
|
+
/**
|
|
28
|
+
* What kind of problem this is.
|
|
29
|
+
*
|
|
30
|
+
* | kind | opened when |
|
|
31
|
+
* |---|---|
|
|
32
|
+
* | `missing_order` | the gateway has a captured payment and we have no order — **the D64 shape** |
|
|
33
|
+
* | `unprocessed_event` | a `gatewayEvents` row never reached a terminal status |
|
|
34
|
+
* | `status_conflict` | a late event would have regressed an order's status |
|
|
35
|
+
* | `dispute` | a chargeback. The only kind with a deadline we do not control |
|
|
36
|
+
* | `refund_mismatch` | the gateway's `amount_refunded` disagrees with our `refunds[]` |
|
|
37
|
+
* | `amount_mismatch` | captured amount ≠ the order's recorded total |
|
|
38
|
+
* | `dead_job` | a job exhausted its retries (Phase 8) |
|
|
39
|
+
* | `grievance` | a statutory grievance with a clock (Phase 10) |
|
|
40
|
+
* | `shipping_unpriced` | a store's shipping could not be priced, so we shipped free |
|
|
41
|
+
* | `manual_refund_due` | a cancellation owes money that no automatic rail can move |
|
|
42
|
+
* | `protection_claim` | a buyer claimed against cover they paid for |
|
|
43
|
+
* | `ledger_drift` | a buyer's points mirror disagreed with their ledger |
|
|
44
|
+
*
|
|
45
|
+
* 🛑 `shipping_unpriced` is a CONFIGURATION fault with a money consequence,
|
|
46
|
+
* which is why it belongs in this queue rather than in `serverErrors`. An
|
|
47
|
+
* `estimate`-mode store with no carrier rate quoted `unavailable`, which the
|
|
48
|
+
* checkout mapped to `shippingFee: 0` — so every parcel for that store shipped
|
|
49
|
+
* free at our expense, silently, for as long as nobody looked (D44). Keyed on
|
|
50
|
+
* the STORE, so a misconfigured seller produces one case however many
|
|
51
|
+
* checkouts hit them.
|
|
52
|
+
*/
|
|
53
|
+
export type PaymentCaseKind = "missing_order" | "unprocessed_event" | "status_conflict" | "dispute" | "refund_mismatch" | "amount_mismatch" | "dead_job" | "grievance" | "shipping_unpriced"
|
|
54
|
+
/**
|
|
55
|
+
* A buyer has claimed against protection cover they paid for.
|
|
56
|
+
*
|
|
57
|
+
* 🛑 Its own kind rather than borrowed from `refund_mismatch`, which is what
|
|
58
|
+
* I reached for first and is wrong: a claim is not a disagreement with the
|
|
59
|
+
* gateway about refund totals, it is a human decision about who absorbs a
|
|
60
|
+
* loss. Filing it under a kind that means something else makes the queue's
|
|
61
|
+
* own filters lie, and the kind chips are what an operator triages by.
|
|
62
|
+
*/
|
|
63
|
+
| "protection_claim"
|
|
64
|
+
/**
|
|
65
|
+
* A cancelled order owes the buyer money and nothing can move it
|
|
66
|
+
* automatically — see `_internal/server/features/orders/cancellation-refund.ts`.
|
|
67
|
+
*
|
|
68
|
+
* Three situations produce it, and they share this kind because they share
|
|
69
|
+
* the operator's next action (send money, record the reference): the order
|
|
70
|
+
* was paid by cash / UPI-manual / EMI so there is no gateway transaction to
|
|
71
|
+
* reverse; it was cancelled after dispatch, so how much is owed is a human
|
|
72
|
+
* decision about who bears the outbound leg; or the gateway refund was
|
|
73
|
+
* attempted and failed.
|
|
74
|
+
*
|
|
75
|
+
* 🛑 Distinct from `refund_mismatch`, which means the gateway and our
|
|
76
|
+
* `refunds[]` DISAGREE about a refund that happened. Here nothing has
|
|
77
|
+
* happened and that is the point. Filing this under a kind that means
|
|
78
|
+
* something else is the shortcut I took once already with protection claims,
|
|
79
|
+
* and it is attractive precisely because a plausible kind exists.
|
|
80
|
+
*
|
|
81
|
+
* The amount is on the order too (`refundAmount` + `refundStatus: "pending"`,
|
|
82
|
+
* written in the same patch as the cancellation), so the case and the order
|
|
83
|
+
* cannot disagree about what is owed — and the order carries it even if this
|
|
84
|
+
* write fails.
|
|
85
|
+
*/
|
|
86
|
+
| "manual_refund_due"
|
|
87
|
+
/**
|
|
88
|
+
* A buyer's `users/{uid}.pointsBalance` mirror disagrees with the sum of
|
|
89
|
+
* their `pointsLedger` entries.
|
|
90
|
+
*
|
|
91
|
+
* The ledger is append-only and therefore authoritative; the mirror exists
|
|
92
|
+
* only so a balance read is one document instead of a scan. So drift always
|
|
93
|
+
* means the mirror is wrong — and the reconciler repairs it. The case is
|
|
94
|
+
* raised anyway, because **a repaired mirror hides the write path that broke
|
|
95
|
+
* it.** Root Cause #102 is the same shape one domain over: a counter that
|
|
96
|
+
* drifted silently, where nothing errored because a wrong number is just a
|
|
97
|
+
* number.
|
|
98
|
+
*
|
|
99
|
+
* 🛑 Its own kind rather than `amount_mismatch`, which means the GATEWAY and
|
|
100
|
+
* our order total disagree. Nothing external is involved here; this is two of
|
|
101
|
+
* our own records disagreeing. The kind chips are what an operator triages
|
|
102
|
+
* by, and the third time this file has had to say so.
|
|
103
|
+
*
|
|
104
|
+
* `severity: "warning"` not `"error"`: the buyer's spendable balance is
|
|
105
|
+
* whatever the repair sets it to, so no money is at risk by the time anyone
|
|
106
|
+
* reads the case — but a recurring one means a writer is losing entries.
|
|
107
|
+
* Keyed on the USER, so a persistently broken mirror is one case with a
|
|
108
|
+
* rising `observedCount` rather than a new row every night.
|
|
109
|
+
*/
|
|
110
|
+
| "ledger_drift";
|
|
111
|
+
/**
|
|
112
|
+
* Identical to `ReportStatus`, deliberately — see the header. `actioned` means
|
|
113
|
+
* a human did something; `dismissed` means a human decided nothing was wrong.
|
|
114
|
+
* Both require a `resolution`.
|
|
115
|
+
*/
|
|
116
|
+
export type PaymentCaseStatus = "open" | "under-review" | "actioned" | "dismissed";
|
|
117
|
+
/**
|
|
118
|
+
* Three values, matching `adminNotifications`' own severity vocabulary so one
|
|
119
|
+
* maps onto the other without a translation table.
|
|
120
|
+
*
|
|
121
|
+
* 🛑 Severity only ever ESCALATES — see `openOrObserve`. A reconciler that
|
|
122
|
+
* re-finds a problem it has already reported must not be able to quietly
|
|
123
|
+
* downgrade it.
|
|
124
|
+
*/
|
|
125
|
+
export type PaymentCaseSeverity = "info" | "warning" | "error";
|
|
126
|
+
export interface PaymentCaseDocument extends BaseDocument {
|
|
127
|
+
kind: PaymentCaseKind;
|
|
128
|
+
status: PaymentCaseStatus;
|
|
129
|
+
severity: PaymentCaseSeverity;
|
|
130
|
+
/** Human-readable one-liner. The row an operator scans. */
|
|
131
|
+
title: string;
|
|
132
|
+
/** What was observed, in enough detail to act without opening the gateway. */
|
|
133
|
+
detail: string;
|
|
134
|
+
/** Mirrors `ReportDocument` — what the case is ABOUT. */
|
|
135
|
+
entityType: "order" | "payment" | "refund" | "event" | "job" | "store" | "user";
|
|
136
|
+
entityId: string;
|
|
137
|
+
/**
|
|
138
|
+
* The dedupe key, which is ALSO the document id.
|
|
139
|
+
*
|
|
140
|
+
* 🛑 Stored as a field as well, redundantly, because a Firestore id is not
|
|
141
|
+
* queryable as data — `where("dedupeKey","==",…)` is sometimes what a caller
|
|
142
|
+
* has, and `orderBy(documentId())` has its own restrictions. The redundancy
|
|
143
|
+
* is one short string and it is never written twice: `openOrObserve` derives
|
|
144
|
+
* both from the same value.
|
|
145
|
+
*/
|
|
146
|
+
dedupeKey: string;
|
|
147
|
+
/** How many times a reconciler has independently re-found this problem. */
|
|
148
|
+
observedCount: number;
|
|
149
|
+
lastObservedAt: Date;
|
|
150
|
+
/**
|
|
151
|
+
* An EXTERNAL hard deadline, never an SLA we invented.
|
|
152
|
+
*
|
|
153
|
+
* 🛑 This is the field that justifies the collection existing. For a dispute
|
|
154
|
+
* it is the gateway's own `respond_by`: miss it and we lose by default,
|
|
155
|
+
* irrespective of who was right. For a grievance it is statutory. Nothing
|
|
156
|
+
* else sets it, and a case with no `dueAt` is a case with no clock — which is
|
|
157
|
+
* most of them, and that is correct.
|
|
158
|
+
*/
|
|
159
|
+
dueAt?: Date;
|
|
160
|
+
/** Decimal rupees. What this case could cost if it goes the wrong way. */
|
|
161
|
+
amountAtRisk?: number;
|
|
162
|
+
assignedTo?: string;
|
|
163
|
+
resolution?: string;
|
|
164
|
+
resolvedAt?: Date;
|
|
165
|
+
resolvedBy?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Set by a reconciler that no longer observes the problem.
|
|
168
|
+
*
|
|
169
|
+
* 🛑 This is NOT a resolution and must never be rendered as one. The UI shows
|
|
170
|
+
* "looks resolved — confirm?" and the case stays `open`. The distinction:
|
|
171
|
+
* "the symptom went away" and "a human understands why" are different facts,
|
|
172
|
+
* and on money the second is the one that matters. A self-healed
|
|
173
|
+
* `missing_order` might mean the retry worked — or might mean somebody
|
|
174
|
+
* refunded it by hand and the order will never exist.
|
|
175
|
+
*/
|
|
176
|
+
selfHealedAt?: Date;
|
|
177
|
+
/** Gateway / event / order cross-references, for the detail view's links. */
|
|
178
|
+
gatewayEventIds?: string[];
|
|
179
|
+
orderIds?: string[];
|
|
180
|
+
gatewayPaymentId?: string;
|
|
181
|
+
statusHistory?: StatusChangeEntry[];
|
|
182
|
+
statusHistoryTruncated?: number;
|
|
183
|
+
}
|
|
184
|
+
export declare const PAYMENT_CASE_FIELDS: {
|
|
185
|
+
readonly ID: "id";
|
|
186
|
+
readonly KIND: "kind";
|
|
187
|
+
readonly STATUS: "status";
|
|
188
|
+
readonly SEVERITY: "severity";
|
|
189
|
+
readonly TITLE: "title";
|
|
190
|
+
readonly DETAIL: "detail";
|
|
191
|
+
readonly ENTITY_TYPE: "entityType";
|
|
192
|
+
readonly ENTITY_ID: "entityId";
|
|
193
|
+
readonly DEDUPE_KEY: "dedupeKey";
|
|
194
|
+
readonly OBSERVED_COUNT: "observedCount";
|
|
195
|
+
readonly LAST_OBSERVED_AT: "lastObservedAt";
|
|
196
|
+
readonly DUE_AT: "dueAt";
|
|
197
|
+
readonly AMOUNT_AT_RISK: "amountAtRisk";
|
|
198
|
+
readonly ASSIGNED_TO: "assignedTo";
|
|
199
|
+
readonly RESOLUTION: "resolution";
|
|
200
|
+
readonly RESOLVED_AT: "resolvedAt";
|
|
201
|
+
readonly RESOLVED_BY: "resolvedBy";
|
|
202
|
+
readonly SELF_HEALED_AT: "selfHealedAt";
|
|
203
|
+
readonly GATEWAY_PAYMENT_ID: "gatewayPaymentId";
|
|
204
|
+
};
|
|
205
|
+
/** Severity rank, for the escalate-only rule. */
|
|
206
|
+
export declare const PAYMENT_CASE_SEVERITY_RANK: Record<PaymentCaseSeverity, number>;
|
|
207
|
+
/** A resolution must say something. Ten characters is the same floor the admin offer-cancel reason uses. */
|
|
208
|
+
export declare const PAYMENT_CASE_RESOLUTION_MIN = 10;
|
|
209
|
+
/**
|
|
210
|
+
* Statuses a case can be in while still needing attention.
|
|
211
|
+
*
|
|
212
|
+
* 🛑 Exported so the digest, the escalation query and the retention exclusion
|
|
213
|
+
* all read ONE definition. Three hand-written copies of "which statuses are
|
|
214
|
+
* open" is how a case stops appearing in one of three places.
|
|
215
|
+
*/
|
|
216
|
+
export declare const PAYMENT_CASE_ACTIVE_STATUSES: readonly PaymentCaseStatus[];
|
|
217
|
+
export declare const PAYMENT_CASE_KINDS: PaymentCaseKind[];
|
|
218
|
+
export declare const PAYMENT_CASE_STATUSES: PaymentCaseStatus[];
|
|
219
|
+
/**
|
|
220
|
+
* Build the dedupe key, which becomes the document id.
|
|
221
|
+
*
|
|
222
|
+
* 🛑 The key must identify THE PROBLEM, not the observation — that is the whole
|
|
223
|
+
* mechanism. `missing_order:pay_abc123` is the same problem whether a
|
|
224
|
+
* reconciler notices it once or thirty times, so thirty runs produce ONE case
|
|
225
|
+
* and ONE notification. Including a timestamp or a run id here would produce
|
|
226
|
+
* thirty cases and make the queue unusable within a week, which is the failure
|
|
227
|
+
* mode that makes operators stop opening it.
|
|
228
|
+
*/
|
|
229
|
+
export declare function createPaymentCaseId(kind: PaymentCaseKind, subjectId: string): string;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `paymentCases` — ONE operator queue for everything where money is at risk.
|
|
3
|
+
*
|
|
4
|
+
* ## Why one collection and not several
|
|
5
|
+
*
|
|
6
|
+
* A missing order, an unprocessed webhook, a chargeback, a refund mismatch and
|
|
7
|
+
* a dead job are different problems with the same audience: one person, once a
|
|
8
|
+
* day, asking "is anything wrong with the money". Three collections would mean
|
|
9
|
+
* three places to look and three chances to not look at one — and the one you
|
|
10
|
+
* forget is the one with the deadline.
|
|
11
|
+
*
|
|
12
|
+
* `kind` discriminates. Adding a seventh kind is a union edit, not a new
|
|
13
|
+
* collection.
|
|
14
|
+
*
|
|
15
|
+
* ## It mirrors `ReportDocument` on purpose
|
|
16
|
+
*
|
|
17
|
+
* `status` / `assignedTo` / `resolution` / `resolvedAt` / `entityType` /
|
|
18
|
+
* `entityId` are field-for-field the same as `store-extensions`'
|
|
19
|
+
* `ReportDocument`, so the admin list and detail views are a near-copy of the
|
|
20
|
+
* reports ones rather than a new UI. The four status values are identical too.
|
|
21
|
+
* Where it differs it is because a payment case has things a report does not: a
|
|
22
|
+
* **external deadline**, an **amount at risk**, and an **observation count**.
|
|
23
|
+
*/
|
|
24
|
+
export const PAYMENT_CASES_COLLECTION = "paymentCases";
|
|
25
|
+
export const PAYMENT_CASE_FIELDS = {
|
|
26
|
+
ID: "id",
|
|
27
|
+
KIND: "kind",
|
|
28
|
+
STATUS: "status",
|
|
29
|
+
SEVERITY: "severity",
|
|
30
|
+
TITLE: "title",
|
|
31
|
+
DETAIL: "detail",
|
|
32
|
+
ENTITY_TYPE: "entityType",
|
|
33
|
+
ENTITY_ID: "entityId",
|
|
34
|
+
DEDUPE_KEY: "dedupeKey",
|
|
35
|
+
OBSERVED_COUNT: "observedCount",
|
|
36
|
+
LAST_OBSERVED_AT: "lastObservedAt",
|
|
37
|
+
DUE_AT: "dueAt",
|
|
38
|
+
AMOUNT_AT_RISK: "amountAtRisk",
|
|
39
|
+
ASSIGNED_TO: "assignedTo",
|
|
40
|
+
RESOLUTION: "resolution",
|
|
41
|
+
RESOLVED_AT: "resolvedAt",
|
|
42
|
+
RESOLVED_BY: "resolvedBy",
|
|
43
|
+
SELF_HEALED_AT: "selfHealedAt",
|
|
44
|
+
GATEWAY_PAYMENT_ID: "gatewayPaymentId",
|
|
45
|
+
};
|
|
46
|
+
/** Severity rank, for the escalate-only rule. */
|
|
47
|
+
export const PAYMENT_CASE_SEVERITY_RANK = {
|
|
48
|
+
info: 0,
|
|
49
|
+
warning: 1,
|
|
50
|
+
error: 2,
|
|
51
|
+
};
|
|
52
|
+
/** A resolution must say something. Ten characters is the same floor the admin offer-cancel reason uses. */
|
|
53
|
+
export const PAYMENT_CASE_RESOLUTION_MIN = 10;
|
|
54
|
+
/**
|
|
55
|
+
* Statuses a case can be in while still needing attention.
|
|
56
|
+
*
|
|
57
|
+
* 🛑 Exported so the digest, the escalation query and the retention exclusion
|
|
58
|
+
* all read ONE definition. Three hand-written copies of "which statuses are
|
|
59
|
+
* open" is how a case stops appearing in one of three places.
|
|
60
|
+
*/
|
|
61
|
+
export const PAYMENT_CASE_ACTIVE_STATUSES = [
|
|
62
|
+
"open",
|
|
63
|
+
"under-review",
|
|
64
|
+
];
|
|
65
|
+
/**
|
|
66
|
+
* Runtime companions, keyed `Record<Union, true>` so BOTH mistakes are compile
|
|
67
|
+
* errors: a union member missing here, and a key here that is not a member. An
|
|
68
|
+
* array literal catches neither — which is how ten independent enumerations of
|
|
69
|
+
* `ListingType` came to disagree (Root Cause #61).
|
|
70
|
+
*/
|
|
71
|
+
const PAYMENT_CASE_KIND_MAP = {
|
|
72
|
+
missing_order: true,
|
|
73
|
+
unprocessed_event: true,
|
|
74
|
+
status_conflict: true,
|
|
75
|
+
dispute: true,
|
|
76
|
+
refund_mismatch: true,
|
|
77
|
+
amount_mismatch: true,
|
|
78
|
+
dead_job: true,
|
|
79
|
+
grievance: true,
|
|
80
|
+
shipping_unpriced: true,
|
|
81
|
+
protection_claim: true,
|
|
82
|
+
manual_refund_due: true,
|
|
83
|
+
ledger_drift: true,
|
|
84
|
+
};
|
|
85
|
+
export const PAYMENT_CASE_KINDS = Object.keys(PAYMENT_CASE_KIND_MAP);
|
|
86
|
+
const PAYMENT_CASE_STATUS_MAP = {
|
|
87
|
+
open: true,
|
|
88
|
+
"under-review": true,
|
|
89
|
+
actioned: true,
|
|
90
|
+
dismissed: true,
|
|
91
|
+
};
|
|
92
|
+
export const PAYMENT_CASE_STATUSES = Object.keys(PAYMENT_CASE_STATUS_MAP);
|
|
93
|
+
/**
|
|
94
|
+
* Build the dedupe key, which becomes the document id.
|
|
95
|
+
*
|
|
96
|
+
* 🛑 The key must identify THE PROBLEM, not the observation — that is the whole
|
|
97
|
+
* mechanism. `missing_order:pay_abc123` is the same problem whether a
|
|
98
|
+
* reconciler notices it once or thirty times, so thirty runs produce ONE case
|
|
99
|
+
* and ONE notification. Including a timestamp or a run id here would produce
|
|
100
|
+
* thirty cases and make the queue unusable within a week, which is the failure
|
|
101
|
+
* mode that makes operators stop opening it.
|
|
102
|
+
*/
|
|
103
|
+
export function createPaymentCaseId(kind, subjectId) {
|
|
104
|
+
return `${kind}:${subjectId}`.replace(/[^A-Za-z0-9_.:-]/g, "_").slice(0, 1500);
|
|
105
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract for resolving a payment case — ONE schema, three readers.
|
|
3
|
+
*
|
|
4
|
+
* ## Why a schema and not just the repository's check
|
|
5
|
+
*
|
|
6
|
+
* `PaymentCasesRepository.resolve()` already refuses a resolution shorter than
|
|
7
|
+
* `PAYMENT_CASE_RESOLUTION_MIN`, and that check is load-bearing and stays. But
|
|
8
|
+
* a runtime throw from the repository reaches the operator as a failed request
|
|
9
|
+
* after they have typed and submitted — the note is gone and the error has no
|
|
10
|
+
* field to land on, so it renders as a banner. That is precisely the shape
|
|
11
|
+
* `ReviewDecisionModal` was built to replace on the moderation and report
|
|
12
|
+
* surfaces.
|
|
13
|
+
*
|
|
14
|
+
* So the same floor is declared here, where the modal, the route and the
|
|
15
|
+
* repository can all read it:
|
|
16
|
+
*
|
|
17
|
+
* · the MODAL parses before submitting, so the message lands on the textarea;
|
|
18
|
+
* · the ROUTE parses the body, so a caller bypassing the UI gets a 400 with
|
|
19
|
+
* `issues` rather than a 500 from a repository assertion;
|
|
20
|
+
* · the REPOSITORY keeps its own assertion, because it is the last line and
|
|
21
|
+
* a schema cannot be relied on by a caller that does not use it.
|
|
22
|
+
*
|
|
23
|
+
* Modelled field-for-field on `reportReviewFormSchema`, which exists for the
|
|
24
|
+
* identical reason on a collection `PaymentCaseDocument` deliberately mirrors.
|
|
25
|
+
*
|
|
26
|
+
* ## 🛑 `resolvedBy` and `resolvedAt` are NOT fields, and that is the point
|
|
27
|
+
*
|
|
28
|
+
* `reportReviewFormSchema`'s header records what happened when a client was
|
|
29
|
+
* allowed to send its own `resolvedAt`: `new Date()` does not survive
|
|
30
|
+
* `JSON.stringify`, so an ISO **string** was written into a field declared
|
|
31
|
+
* `Date`, and the collection ended up holding both shapes for one field.
|
|
32
|
+
*
|
|
33
|
+
* Here it would be worse than a type split. `resolve()` asserts
|
|
34
|
+
* `resolvedBy !== "system"` — that assertion is the whole mechanism keeping a
|
|
35
|
+
* case human-closed — and a client-supplied `resolvedBy` would let any caller
|
|
36
|
+
* name itself whatever it liked. The server stamps both from the session.
|
|
37
|
+
*
|
|
38
|
+
* EXPORTS:
|
|
39
|
+
* paymentCaseResolveFormSchema, paymentCaseResolveUpdateSchema,
|
|
40
|
+
* PAYMENT_CASE_REVIEWER_STATUSES, type PaymentCaseResolveFormValues
|
|
41
|
+
*
|
|
42
|
+
* @tag domain:payment-cases
|
|
43
|
+
* @tag layer:schema
|
|
44
|
+
* @tag pattern:none
|
|
45
|
+
* @tag access:isomorphic
|
|
46
|
+
* @tag consumers:admin/money-cases,/api/admin/payment-cases/[id]
|
|
47
|
+
* @tag sideEffects:none
|
|
48
|
+
*/
|
|
49
|
+
import { z } from "zod";
|
|
50
|
+
/**
|
|
51
|
+
* The statuses a human review can set. `open` is the state a case is born in
|
|
52
|
+
* and nothing may set it back — a case that has been looked at has been looked
|
|
53
|
+
* at.
|
|
54
|
+
*
|
|
55
|
+
* `satisfies readonly PaymentCaseStatus[]` rather than restated, so a value
|
|
56
|
+
* outside the real union is a COMPILE error instead of a chip that silently
|
|
57
|
+
* matches nothing (Root Cause #33).
|
|
58
|
+
*/
|
|
59
|
+
export declare const PAYMENT_CASE_REVIEWER_STATUSES: readonly ["under-review", "actioned", "dismissed"];
|
|
60
|
+
/**
|
|
61
|
+
* 🛑 `annotate()` must be the OUTERMOST call on each field — it keys a WeakMap
|
|
62
|
+
* by schema instance and every zod wrapper returns a new one.
|
|
63
|
+
*/
|
|
64
|
+
export declare const paymentCaseResolveFormSchema: z.ZodEffects<z.ZodObject<{
|
|
65
|
+
status: z.ZodEnum<["under-review", "actioned", "dismissed"]>;
|
|
66
|
+
resolution: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, "strict", z.ZodTypeAny, {
|
|
68
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
69
|
+
resolution?: string | undefined;
|
|
70
|
+
}, {
|
|
71
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
72
|
+
resolution?: string | undefined;
|
|
73
|
+
}>, {
|
|
74
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
75
|
+
resolution?: string | undefined;
|
|
76
|
+
}, {
|
|
77
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
78
|
+
resolution?: string | undefined;
|
|
79
|
+
}>;
|
|
80
|
+
export type PaymentCaseResolveFormValues = z.infer<typeof paymentCaseResolveFormSchema>;
|
|
81
|
+
/** Route contract — identical; resolving a case is one atomic decision. */
|
|
82
|
+
export declare const paymentCaseResolveUpdateSchema: z.ZodEffects<z.ZodObject<{
|
|
83
|
+
status: z.ZodEnum<["under-review", "actioned", "dismissed"]>;
|
|
84
|
+
resolution: z.ZodOptional<z.ZodString>;
|
|
85
|
+
}, "strict", z.ZodTypeAny, {
|
|
86
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
87
|
+
resolution?: string | undefined;
|
|
88
|
+
}, {
|
|
89
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
90
|
+
resolution?: string | undefined;
|
|
91
|
+
}>, {
|
|
92
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
93
|
+
resolution?: string | undefined;
|
|
94
|
+
}, {
|
|
95
|
+
status: "under-review" | "actioned" | "dismissed";
|
|
96
|
+
resolution?: string | undefined;
|
|
97
|
+
}>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract for resolving a payment case — ONE schema, three readers.
|
|
3
|
+
*
|
|
4
|
+
* ## Why a schema and not just the repository's check
|
|
5
|
+
*
|
|
6
|
+
* `PaymentCasesRepository.resolve()` already refuses a resolution shorter than
|
|
7
|
+
* `PAYMENT_CASE_RESOLUTION_MIN`, and that check is load-bearing and stays. But
|
|
8
|
+
* a runtime throw from the repository reaches the operator as a failed request
|
|
9
|
+
* after they have typed and submitted — the note is gone and the error has no
|
|
10
|
+
* field to land on, so it renders as a banner. That is precisely the shape
|
|
11
|
+
* `ReviewDecisionModal` was built to replace on the moderation and report
|
|
12
|
+
* surfaces.
|
|
13
|
+
*
|
|
14
|
+
* So the same floor is declared here, where the modal, the route and the
|
|
15
|
+
* repository can all read it:
|
|
16
|
+
*
|
|
17
|
+
* · the MODAL parses before submitting, so the message lands on the textarea;
|
|
18
|
+
* · the ROUTE parses the body, so a caller bypassing the UI gets a 400 with
|
|
19
|
+
* `issues` rather than a 500 from a repository assertion;
|
|
20
|
+
* · the REPOSITORY keeps its own assertion, because it is the last line and
|
|
21
|
+
* a schema cannot be relied on by a caller that does not use it.
|
|
22
|
+
*
|
|
23
|
+
* Modelled field-for-field on `reportReviewFormSchema`, which exists for the
|
|
24
|
+
* identical reason on a collection `PaymentCaseDocument` deliberately mirrors.
|
|
25
|
+
*
|
|
26
|
+
* ## 🛑 `resolvedBy` and `resolvedAt` are NOT fields, and that is the point
|
|
27
|
+
*
|
|
28
|
+
* `reportReviewFormSchema`'s header records what happened when a client was
|
|
29
|
+
* allowed to send its own `resolvedAt`: `new Date()` does not survive
|
|
30
|
+
* `JSON.stringify`, so an ISO **string** was written into a field declared
|
|
31
|
+
* `Date`, and the collection ended up holding both shapes for one field.
|
|
32
|
+
*
|
|
33
|
+
* Here it would be worse than a type split. `resolve()` asserts
|
|
34
|
+
* `resolvedBy !== "system"` — that assertion is the whole mechanism keeping a
|
|
35
|
+
* case human-closed — and a client-supplied `resolvedBy` would let any caller
|
|
36
|
+
* name itself whatever it liked. The server stamps both from the session.
|
|
37
|
+
*
|
|
38
|
+
* EXPORTS:
|
|
39
|
+
* paymentCaseResolveFormSchema, paymentCaseResolveUpdateSchema,
|
|
40
|
+
* PAYMENT_CASE_REVIEWER_STATUSES, type PaymentCaseResolveFormValues
|
|
41
|
+
*
|
|
42
|
+
* @tag domain:payment-cases
|
|
43
|
+
* @tag layer:schema
|
|
44
|
+
* @tag pattern:none
|
|
45
|
+
* @tag access:isomorphic
|
|
46
|
+
* @tag consumers:admin/money-cases,/api/admin/payment-cases/[id]
|
|
47
|
+
* @tag sideEffects:none
|
|
48
|
+
*/
|
|
49
|
+
import { z } from "zod";
|
|
50
|
+
import { annotate } from "../../shell/field-ui-meta.js";
|
|
51
|
+
import { PAYMENT_CASE_RESOLUTION_MIN, } from "./firestore.js";
|
|
52
|
+
/**
|
|
53
|
+
* The statuses a human review can set. `open` is the state a case is born in
|
|
54
|
+
* and nothing may set it back — a case that has been looked at has been looked
|
|
55
|
+
* at.
|
|
56
|
+
*
|
|
57
|
+
* `satisfies readonly PaymentCaseStatus[]` rather than restated, so a value
|
|
58
|
+
* outside the real union is a COMPILE error instead of a chip that silently
|
|
59
|
+
* matches nothing (Root Cause #33).
|
|
60
|
+
*/
|
|
61
|
+
export const PAYMENT_CASE_REVIEWER_STATUSES = [
|
|
62
|
+
"under-review",
|
|
63
|
+
"actioned",
|
|
64
|
+
"dismissed",
|
|
65
|
+
];
|
|
66
|
+
/**
|
|
67
|
+
* 🛑 `annotate()` must be the OUTERMOST call on each field — it keys a WeakMap
|
|
68
|
+
* by schema instance and every zod wrapper returns a new one.
|
|
69
|
+
*/
|
|
70
|
+
export const paymentCaseResolveFormSchema = z
|
|
71
|
+
.object({
|
|
72
|
+
status: annotate(z.enum(PAYMENT_CASE_REVIEWER_STATUSES), {
|
|
73
|
+
section: "review",
|
|
74
|
+
sectionLabel: "Case decision",
|
|
75
|
+
sectionRequired: true,
|
|
76
|
+
quick: true,
|
|
77
|
+
order: 1,
|
|
78
|
+
row: "pair",
|
|
79
|
+
}),
|
|
80
|
+
resolution: annotate(z.string().max(2000, "Keep the resolution under 2000 characters.").optional(), {
|
|
81
|
+
section: "review",
|
|
82
|
+
order: 2,
|
|
83
|
+
row: "full",
|
|
84
|
+
kind: "textarea",
|
|
85
|
+
help: "Required when actioning or dismissing — say what you did, and what you checked.",
|
|
86
|
+
}),
|
|
87
|
+
})
|
|
88
|
+
.strict()
|
|
89
|
+
.superRefine((v, ctx) => {
|
|
90
|
+
/*
|
|
91
|
+
* Taking a case for review needs no note; closing one does.
|
|
92
|
+
*
|
|
93
|
+
* 🛑 The floor is `PAYMENT_CASE_RESOLUTION_MIN`, imported rather than
|
|
94
|
+
* retyped, and it is higher than a non-empty check for a measured reason:
|
|
95
|
+
* the case queue's whole value is that a closed case explains itself to the
|
|
96
|
+
* next person, and "done", "ok" and "fixed" explain nothing. On money that
|
|
97
|
+
* matters more than elsewhere — a `missing_order` closed with "ok" leaves
|
|
98
|
+
* no way to tell "I refunded the buyer" from "I decided it was a duplicate".
|
|
99
|
+
*
|
|
100
|
+
* Trimmed before measuring, so ten spaces is not a resolution.
|
|
101
|
+
*/
|
|
102
|
+
if (v.status === "under-review")
|
|
103
|
+
return;
|
|
104
|
+
const note = v.resolution?.trim() ?? "";
|
|
105
|
+
if (note.length < PAYMENT_CASE_RESOLUTION_MIN) {
|
|
106
|
+
ctx.addIssue({
|
|
107
|
+
code: z.ZodIssueCode.custom,
|
|
108
|
+
path: ["resolution"],
|
|
109
|
+
message: `Say what was done about this case — at least ${PAYMENT_CASE_RESOLUTION_MIN} characters.`,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
/** Route contract — identical; resolving a case is one atomic decision. */
|
|
114
|
+
export const paymentCaseResolveUpdateSchema = paymentCaseResolveFormSchema;
|
|
@@ -74,7 +74,6 @@ export declare class PayoutRepository extends BaseRepository<PayoutDocument> {
|
|
|
74
74
|
* encryption path with one extra step on top, rather than two parallel paths
|
|
75
75
|
* that have to agree — which is what the hand-rolled override was.
|
|
76
76
|
*/
|
|
77
|
-
/** Override mapDoc to auto-decrypt PII on every Firestore read */
|
|
78
77
|
/**
|
|
79
78
|
* Create a new payout request
|
|
80
79
|
*/
|
|
@@ -104,7 +104,6 @@ export class PayoutRepository extends BaseRepository {
|
|
|
104
104
|
* `PayoutBankAccount` carries no secret field to encrypt. See the tombstone
|
|
105
105
|
* in `security/pii-encrypt.ts`.
|
|
106
106
|
*/
|
|
107
|
-
/** Override mapDoc to auto-decrypt PII on every Firestore read */
|
|
108
107
|
/**
|
|
109
108
|
* Create a new payout request
|
|
110
109
|
*/
|