@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
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { TesterCaseRole } from "../schemas";
|
|
2
|
-
interface MoneyFlowCase {
|
|
3
|
-
key: string;
|
|
4
|
-
label: string;
|
|
5
|
-
/** Every role the case affects; per-role detail goes inline in the expectations. */
|
|
6
|
-
roles: TesterCaseRole[];
|
|
7
|
-
startPage?: string;
|
|
8
|
-
steps: string[];
|
|
9
|
-
inputs?: Record<string, string | number | boolean>;
|
|
10
|
-
expectedBehaviour: string;
|
|
11
|
-
expectedUiState: string;
|
|
12
|
-
expectedData?: Record<string, string | number | boolean>;
|
|
13
|
-
endResult: string;
|
|
14
|
-
href?: string;
|
|
15
|
-
}
|
|
16
|
-
interface MoneyFlowPage {
|
|
17
|
-
pageKey: string;
|
|
18
|
-
pageLabel: string;
|
|
19
|
-
href?: string;
|
|
20
|
-
cases: MoneyFlowCase[];
|
|
21
|
-
}
|
|
22
|
-
export declare const moneyFlowsPages: MoneyFlowPage[];
|
|
23
|
-
export {};
|
|
@@ -1,610 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: End-to-end money flows — offers, auction wins, payments and the refusals
|
|
3
|
-
* that guard them. This was the largest hole in the catalogue: offers had
|
|
4
|
-
* cases for MAKING one but none for the seller accepting it and the buyer
|
|
5
|
-
* then paying, and a won auction had no payment path tested at all — which
|
|
6
|
-
* is exactly where Root Cause #60 lived (settlement wrote an order nobody
|
|
7
|
-
* could pay for, and no case would have caught it).
|
|
8
|
-
*
|
|
9
|
-
* WHAT: Exports moneyFlowsPages — the page definitions consumed by group() in
|
|
10
|
-
* tester-checklist-seed-data.ts.
|
|
11
|
-
*
|
|
12
|
-
* 🛑 THIS FILE IS THE REFERENCE for the six-part case contract. Every other page
|
|
13
|
-
* is authored against it, so it must never be the odd one out: role, startPage,
|
|
14
|
-
* steps, expectedBehaviour, expectedUiState, endResult — all six, every case,
|
|
15
|
-
* with literal values and named fixtures.
|
|
16
|
-
*
|
|
17
|
-
* @tag domain:tester
|
|
18
|
-
* @tag layer:seed
|
|
19
|
-
* @tag access:server-only
|
|
20
|
-
* @tag consumers:tester-checklist-seed-data.ts
|
|
21
|
-
* @tag sideEffects:none
|
|
22
|
-
*/
|
|
23
|
-
/** Reused so the wording cannot drift between cases that mean the same thing. */
|
|
24
|
-
const STEP_SIGNIN_BUYER = "Sign in as the buyer ash@pokemonpalace.in.";
|
|
25
|
-
const STEP_PLACE_ORDER = "Click 'Place order'.";
|
|
26
|
-
const STEP_RELOAD_ORDERS = "Reload /user/orders.";
|
|
27
|
-
export const moneyFlowsPages = [
|
|
28
|
-
{
|
|
29
|
-
pageKey: "offer-to-purchase",
|
|
30
|
-
pageLabel: "Offer → accept → pay",
|
|
31
|
-
href: "/products/product-beyblade-burst-valkyrie",
|
|
32
|
-
cases: [
|
|
33
|
-
{
|
|
34
|
-
key: "buyer-makes-offer",
|
|
35
|
-
label: "A buyer can make an offer on a seller's product and it appears in their own offers list",
|
|
36
|
-
roles: ["buyer"],
|
|
37
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
38
|
-
steps: [
|
|
39
|
-
STEP_SIGNIN_BUYER,
|
|
40
|
-
"Open /products/product-beyblade-burst-valkyrie.",
|
|
41
|
-
"Confirm the signed-in account is ash@pokemonpalace.in and NOT rehan.sheikh@gmail.com. The seeded pending 780 on this product belongs to rehan, who is also the harness default buyer, so running this case as rehan trips the guard that allows only one active offer per listing and Make Offer is refused — which reads as a broken control rather than as the wrong identity.",
|
|
42
|
-
"Click 'Make Offer'.",
|
|
43
|
-
"Enter 815 as the offer amount. NOT 780: the seed already ships offer-yugi-burst-valkyrie-pending, a pending 780 from a different buyer on this same product, and two pending rows at the same amount on the same listing are tellable apart only by buyer name.",
|
|
44
|
-
/*
|
|
45
|
-
* Named `QA note buyer-makes-offer`, not `QA offer offer-to-purchase-…`.
|
|
46
|
-
* R7 reads `offer-…` as a FIXTURE CITATION wherever it appears in a
|
|
47
|
-
* step — including inside a name the tester is being told to type — so
|
|
48
|
-
* the page-qualified key read as an offer id that does not exist. The
|
|
49
|
-
* fixture reference documents this exact trap; renaming the record is
|
|
50
|
-
* cheaper than weakening the rule.
|
|
51
|
-
*/
|
|
52
|
-
"Enter the note 'QA note buyer-makes-offer'.",
|
|
53
|
-
"Click the primary button. It reads 'Send offer of ₹815.00' — the label carries the amount, so it doubles as a check that what you typed reached the button. The label is interpolated, so it is not a fixed string to search for.",
|
|
54
|
-
"Open /user/offers.",
|
|
55
|
-
],
|
|
56
|
-
expectedBehaviour: "An offer is created for 815 against product-beyblade-burst-valkyrie, owned by the signed-in buyer, and the owning seller receives an offer-received notification.",
|
|
57
|
-
expectedUiState: "The offer modal closes and a success confirmation appears. /user/offers lists a row for the product with amount ₹815 and status Pending. The page does NOT read 'No offers yet'. Only THIS buyer's offers appear here, so the seeded 780 from another buyer must not be listed.",
|
|
58
|
-
endResult: "After reloading /user/offers the row is still listed at ₹815 with status Pending.",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
key: "duplicate-offer-refused",
|
|
62
|
-
label: "A second offer on the same listing while one is still pending is refused",
|
|
63
|
-
roles: ["buyer"],
|
|
64
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
65
|
-
steps: [
|
|
66
|
-
"Sign in as the buyer ash@pokemonpalace.in, holding the pending 815 offer from the previous case.",
|
|
67
|
-
"Open /products/product-beyblade-burst-valkyrie.",
|
|
68
|
-
"Click 'Make Offer'.",
|
|
69
|
-
"Enter 800 as the offer amount.",
|
|
70
|
-
"Click the primary button, which now reads 'Send offer of ₹800.00'.",
|
|
71
|
-
],
|
|
72
|
-
expectedBehaviour: "The second offer is rejected. No new offer document is created; the existing 815 offer is untouched.",
|
|
73
|
-
expectedUiState: "An error states that an active offer already exists on this listing. The amount field keeps the entered 800 rather than clearing silently.",
|
|
74
|
-
endResult: "After reloading /user/offers there is still exactly ONE pending row for this product, at ₹815 — not two, and not one at ₹800. The rule is per buyer per listing, so the other buyer's seeded 780 is unaffected and is not visible here anyway.",
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
key: "seller-sees-and-accepts",
|
|
78
|
-
label: "The owning seller sees the inbound offer and can accept it",
|
|
79
|
-
roles: ["seller"],
|
|
80
|
-
startPage: "/store/offers",
|
|
81
|
-
steps: [
|
|
82
|
-
"Sign in as tyson@beybladearena.in / TempPass123!, who owns store-beyblade-arena.",
|
|
83
|
-
"Open /store/offers.",
|
|
84
|
-
"Find the row for offer-yugi-burst-valkyrie-pending — product-beyblade-burst-valkyrie, offered ₹780 against a listed ₹999, from buyer Mock User 3. If the previous cases ran there is also an ₹815 row from a different buyer on the same product; accept the ₹780 one.",
|
|
85
|
-
"Open the row actions menu.",
|
|
86
|
-
"Click 'Accept'.",
|
|
87
|
-
"Confirm in the dialog.",
|
|
88
|
-
"Reload /store/offers.",
|
|
89
|
-
],
|
|
90
|
-
expectedBehaviour: "The offer moves to Accepted, a locked price of 780 is recorded, and the buyer receives an offer-responded notification.",
|
|
91
|
-
expectedUiState: "Before acting, the row menu offers Accept, Decline and Counter as enabled controls. After confirming, the row's status badge reads Accepted.",
|
|
92
|
-
endResult: "After reloading /store/offers the status still reads Accepted — not Pending.",
|
|
93
|
-
href: "/store/offers",
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
key: "accepted-offer-locks-price",
|
|
97
|
-
label: "🛑 Checkout bills the AGREED price, never the listing price",
|
|
98
|
-
roles: ["buyer"],
|
|
99
|
-
startPage: "/user/offers",
|
|
100
|
-
steps: [
|
|
101
|
-
"Sign in as vivaan.kapoor@gmail.com / TempPass123!, who holds offer-kaiba-dranzer-s-accepted on product-beyblade-original-dranzer-s (listed ₹1499, agreed ₹1250).",
|
|
102
|
-
"Open /user/offers.",
|
|
103
|
-
"Click through to checkout from the accepted offer.",
|
|
104
|
-
"Read the line item price in the checkout summary.",
|
|
105
|
-
"Continue to the payment step.",
|
|
106
|
-
"Read the order total.",
|
|
107
|
-
],
|
|
108
|
-
expectedBehaviour: "Every price computed for this line uses the locked 1250, not the product's current 1499.",
|
|
109
|
-
expectedUiState: "The line item reads ₹1,250.00 and the order total reflects 1250 plus fees. ₹1,499 appears nowhere on the checkout screen for this line.",
|
|
110
|
-
endResult: "Nothing is placed in this case — stop at the payment step. The check is that the two numbers never appear together for the same line.",
|
|
111
|
-
href: "/user/offers",
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
key: "owning-seller-cannot-offer",
|
|
115
|
-
label: "The owning seller sees no Make Offer control on their own listing",
|
|
116
|
-
roles: ["seller"],
|
|
117
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
118
|
-
steps: [
|
|
119
|
-
"Sign in as tyson@beybladearena.in / TempPass123!, who owns store-beyblade-arena.",
|
|
120
|
-
"Open /products/product-beyblade-burst-valkyrie, a listing owned by that store.",
|
|
121
|
-
"Read the action controls on the listing.",
|
|
122
|
-
],
|
|
123
|
-
expectedBehaviour: "The seller is not offered any purchase path on their own listing — you cannot make an offer on, or buy, your own item.",
|
|
124
|
-
expectedUiState: "'Make Offer' is ABSENT, not merely disabled. A seller-facing control such as 'Edit listing' is shown instead.",
|
|
125
|
-
endResult: "Nothing is persisted; this is a read-only check of which controls render for the owner.",
|
|
126
|
-
href: "/products/product-beyblade-burst-valkyrie",
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
key: "offer-lane-blocks-other-items",
|
|
130
|
-
label: "An accepted offer in the cart blocks unrelated items from being checked out alongside it",
|
|
131
|
-
roles: ["buyer"],
|
|
132
|
-
startPage: "/cart",
|
|
133
|
-
steps: [
|
|
134
|
-
"Sign in as vivaan.kapoor@gmail.com / TempPass123!, who holds offer-kaiba-dranzer-s-accepted.",
|
|
135
|
-
"Open /user/offers and start checkout from that accepted offer so its locked line enters the cart, then return to /products.",
|
|
136
|
-
"Open /products/product-beyblade-burst-valkyrie and click 'Add to cart'.",
|
|
137
|
-
"Open /cart.",
|
|
138
|
-
"Read which lane or tab each line sits in.",
|
|
139
|
-
"Attempt to check out the standard item.",
|
|
140
|
-
],
|
|
141
|
-
expectedBehaviour: "The cart separates the offer line from the standard line, and only the higher-priority offer lane may be checked out while it is pending.",
|
|
142
|
-
expectedUiState: "The two lines appear under different lane labels, and the standard lane's checkout control is disabled with a stated reason — not silently inert.",
|
|
143
|
-
endResult: "After reloading /cart both lines are still present and still in separate lanes.",
|
|
144
|
-
href: "/cart",
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
key: "expired-offer-cannot-checkout",
|
|
148
|
-
label: "An offer past its window can no longer be paid",
|
|
149
|
-
roles: ["buyer"],
|
|
150
|
-
startPage: "/user/offers",
|
|
151
|
-
steps: [
|
|
152
|
-
"Sign in as vivaan.kapoor@gmail.com / TempPass123!.",
|
|
153
|
-
"Open /user/offers and find offer-kaiba-x-wizard-arrow-expired (product-beyblade-x-wizard-arrow, ₹700), whose window closed two days ago.",
|
|
154
|
-
"Read the row's status badge and the date it names.",
|
|
155
|
-
"Read every control the row offers.",
|
|
156
|
-
"Attempt to start checkout from that offer.",
|
|
157
|
-
],
|
|
158
|
-
expectedBehaviour: "Checkout is refused once the window has passed; the offer is treated as expired rather than payable.",
|
|
159
|
-
expectedUiState: "The row reads Expired and offers no checkout control. It must not silently proceed at ₹700.",
|
|
160
|
-
endResult: "After reloading /user/offers the row still reads Expired.",
|
|
161
|
-
href: "/user/offers",
|
|
162
|
-
},
|
|
163
|
-
],
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
pageKey: "auction-win-to-payment",
|
|
167
|
-
pageLabel: "Win an auction → get notified → pay",
|
|
168
|
-
href: "/auctions/auction-money-flows-closing",
|
|
169
|
-
cases: [
|
|
170
|
-
{
|
|
171
|
-
key: "winning-bid-recorded",
|
|
172
|
-
label: "Placing the highest bid on a closing auction records you as the winner",
|
|
173
|
-
roles: ["buyer"],
|
|
174
|
-
// Batch-scoped fixture, seeded by
|
|
175
|
-
// seed-data/fixtures/money-flows__auction-win-to-payment.mjs and closing
|
|
176
|
-
// ~3 minutes after this batch starts.
|
|
177
|
-
//
|
|
178
|
-
// It used to cite auction-beyblade-original-dragoon-storm, which 46 OTHER
|
|
179
|
-
// citations need LIVE — one fixture with two contradictory
|
|
180
|
-
// requirements, so this case could never pass its final step and the
|
|
181
|
-
// rig notes recorded it as unpassable-by-design.
|
|
182
|
-
startPage: "/auctions/auction-money-flows-closing",
|
|
183
|
-
steps: [
|
|
184
|
-
STEP_SIGNIN_BUYER,
|
|
185
|
-
"Open /auctions/auction-money-flows-closing, which starts at ₹15,000 with a ₹1,000 increment and closes about three minutes from now.",
|
|
186
|
-
"Note the current bid and the end time.",
|
|
187
|
-
"Enter 16000 as the bid amount.",
|
|
188
|
-
"Click 'Place Bid'.",
|
|
189
|
-
"Wait past the auction end time, reloading the page.",
|
|
190
|
-
],
|
|
191
|
-
expectedBehaviour: "The bid is accepted at 16000, becomes the winning bid, and after the end time the auction settles with this buyer as winner.",
|
|
192
|
-
expectedUiState: "Immediately after bidding the page shows '1 bid' and ₹16,000.00 without a manual refresh. After the end time it shows the auction as ended and names you as the winning bidder.",
|
|
193
|
-
endResult: "After reloading, the auction still reads ended with your winning bid at ₹16,000.00, and Bid History lists it with other bidders' names masked.",
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
key: "win-notification-arrives",
|
|
197
|
-
label: "🛑 Winning an auction produces a notification that links somewhere payable",
|
|
198
|
-
roles: ["buyer"],
|
|
199
|
-
startPage: "/user/notifications",
|
|
200
|
-
steps: [
|
|
201
|
-
"Sign in as the buyer who won auction-money-flows-closing.",
|
|
202
|
-
"🛑 WAIT FOR SETTLEMENT FIRST. The auction closes three minutes after the batch starts, but `auctionSettlement` is a scheduled function running every 15 minutes — so the win is not processed the moment the clock runs out. Nothing in this case or the two after it can be judged until it has run; an empty list before then is the schedule, not a defect.",
|
|
203
|
-
"Open the notifications bell in the header.",
|
|
204
|
-
"Find the auction-won notification.",
|
|
205
|
-
"Read its text.",
|
|
206
|
-
"Click it.",
|
|
207
|
-
],
|
|
208
|
-
expectedBehaviour: "A notification exists for the win, names the item, and its action URL resolves to a page from which the win can be paid.",
|
|
209
|
-
expectedUiState: "The notification names the auction. Following it lands on a page showing the amount due and a payment control — not a generic listing page and not a 404.",
|
|
210
|
-
endResult: "The notification remains in the list after reload, marked read.",
|
|
211
|
-
href: "/user/notifications",
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
key: "won-auction-is-payable",
|
|
215
|
-
label: "🛑 A won auction can actually be paid for",
|
|
216
|
-
roles: ["buyer"],
|
|
217
|
-
startPage: "/cart",
|
|
218
|
-
steps: [
|
|
219
|
-
"Sign in as the buyer who won auction-money-flows-closing.",
|
|
220
|
-
"Open /cart, NOT /user/orders. A win does not create an order — settlement adds a LOCKED CART LINE, and the buyer pays through the ordinary checkout in the auction lane. An order only exists after payment.",
|
|
221
|
-
"Locate the won auction line and read its price.",
|
|
222
|
-
"Click through to checkout from that line.",
|
|
223
|
-
"Read the amount due.",
|
|
224
|
-
"Proceed as far as the payment method selection.",
|
|
225
|
-
],
|
|
226
|
-
expectedBehaviour: "A reachable payment path exists and the amount due equals the winning bid of ₹16,000.",
|
|
227
|
-
expectedUiState: "The cart line reads ₹16,000.00 and checkout is reachable from it, arriving at a payment method selection. Root Cause #60 is exactly this failing — settlement once wrote an ORDER with no payment route at all, so 'the record exists' is NOT a pass; a payment step must be reachable. A line that is present but leads nowhere is the same defect wearing a different shape.",
|
|
228
|
-
endResult: "Stop at the payment method step and place nothing. After reloading /cart the locked line is still there at ₹16,000.00.",
|
|
229
|
-
href: "/cart",
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
key: "won-auction-line-is-locked",
|
|
233
|
-
label: "A won-auction line cannot be removed from the cart or have its quantity changed",
|
|
234
|
-
roles: ["buyer"],
|
|
235
|
-
startPage: "/cart",
|
|
236
|
-
steps: [
|
|
237
|
-
"Sign in as the buyer holding the won auction line.",
|
|
238
|
-
"Open /cart.",
|
|
239
|
-
"Attempt to change the quantity on the won-auction line.",
|
|
240
|
-
"Attempt to remove that line.",
|
|
241
|
-
"Click 'Remove all'.",
|
|
242
|
-
],
|
|
243
|
-
expectedBehaviour: "Quantity is fixed at 1 and removal is refused for the won line. 'Remove all' clears other lines but keeps this one.",
|
|
244
|
-
expectedUiState: "The quantity stepper is absent or disabled on that line, and the remove control is refused with a stated reason. After 'Remove all', a message explicitly says the awaiting-payment line was kept.",
|
|
245
|
-
endResult: "After reloading /cart the won-auction line is still present.",
|
|
246
|
-
href: "/cart",
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
key: "unpaid-win-forfeits",
|
|
250
|
-
label: "An unpaid win past its deadline is forfeited and the buyer is told",
|
|
251
|
-
roles: ["buyer"],
|
|
252
|
-
startPage: "/user/orders",
|
|
253
|
-
steps: [
|
|
254
|
-
"Sign in as the buyer holding an unpaid won auction.",
|
|
255
|
-
"Leave it unpaid until its payment deadline passes.",
|
|
256
|
-
STEP_RELOAD_ORDERS,
|
|
257
|
-
"Open the notifications bell.",
|
|
258
|
-
],
|
|
259
|
-
expectedBehaviour: "The win is forfeited or cancelled rather than remaining payable, and the buyer is notified.",
|
|
260
|
-
expectedUiState: "The order reads Forfeited or Cancelled and offers no payment control. A notification explains the forfeit.",
|
|
261
|
-
endResult: "After reloading, the order still reads forfeited and the line is gone from /cart — it must not sit there payable forever.",
|
|
262
|
-
href: "/user/orders",
|
|
263
|
-
},
|
|
264
|
-
],
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
pageKey: "payment-methods",
|
|
268
|
-
pageLabel: "Making payments",
|
|
269
|
-
href: "/checkout",
|
|
270
|
-
cases: [
|
|
271
|
-
{
|
|
272
|
-
key: "cod-order-places",
|
|
273
|
-
label: "A cash-on-delivery order can be placed and shows the COD fee before confirming",
|
|
274
|
-
roles: ["buyer"],
|
|
275
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
276
|
-
steps: [
|
|
277
|
-
STEP_SIGNIN_BUYER,
|
|
278
|
-
"Open /products/product-beyblade-burst-valkyrie and click 'Add to cart'.",
|
|
279
|
-
"Open /checkout and complete the address step.",
|
|
280
|
-
"Continue to the add-ons and fees step.",
|
|
281
|
-
"Select 'Cash on Delivery'.",
|
|
282
|
-
"Read every fee line in the order summary and note the total.",
|
|
283
|
-
STEP_PLACE_ORDER,
|
|
284
|
-
STEP_RELOAD_ORDERS,
|
|
285
|
-
],
|
|
286
|
-
expectedBehaviour: "A COD order is created, and the COD handling fee and deposit are included in the recorded total.",
|
|
287
|
-
expectedUiState: "Before confirming, the summary lists the COD handling fee and any deposit as their own lines, and the total includes them.",
|
|
288
|
-
endResult: "After reloading /user/orders the order exists with a total exactly equal to the figure shown at checkout.",
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
key: "manual-payment-proof-upload",
|
|
292
|
-
label: "🛑 A manual (UPI) order reaches a page where proof can actually be uploaded",
|
|
293
|
-
roles: ["buyer"],
|
|
294
|
-
startPage: "/checkout",
|
|
295
|
-
steps: [
|
|
296
|
-
"Sign in as the buyer ash@pokemonpalace.in with product-beyblade-original-dranzer-s in the cart.",
|
|
297
|
-
"Open /checkout and complete the address step.",
|
|
298
|
-
"Select UPI / manual payment.",
|
|
299
|
-
STEP_PLACE_ORDER,
|
|
300
|
-
"Follow the redirect that appears after placing it.",
|
|
301
|
-
"Read the UPI id and the countdown shown.",
|
|
302
|
-
"Upload public/test-media/sample-image.png as payment proof.",
|
|
303
|
-
"Reload the page.",
|
|
304
|
-
],
|
|
305
|
-
expectedBehaviour: "The order is created awaiting manual payment, and the uploaded proof is attached to it for admin review.",
|
|
306
|
-
expectedUiState: "The page shows a UPI id, a visible deadline countdown, and a working upload control. It must NOT read 'This order does not require manual payment upload' — that message on a manual order is the Root Cause #57 failure.",
|
|
307
|
-
endResult: "After reloading, the uploaded proof is still shown attached to the order.",
|
|
308
|
-
href: "/user/orders",
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
key: "payment-page-reachable-later",
|
|
312
|
-
label: "The payment page for an unpaid order is reachable again after navigating away",
|
|
313
|
-
roles: ["buyer"],
|
|
314
|
-
startPage: "/user/orders",
|
|
315
|
-
steps: [
|
|
316
|
-
"Sign in as the buyer holding an unpaid manual-payment order.",
|
|
317
|
-
"Open the homepage without paying.",
|
|
318
|
-
"Open /user/orders.",
|
|
319
|
-
"Open the unpaid order.",
|
|
320
|
-
],
|
|
321
|
-
expectedBehaviour: "The order detail exposes a route back to the payment and proof-upload page.",
|
|
322
|
-
expectedUiState: "A 'Complete payment' or 'Re-upload proof' control is visible on the order detail.",
|
|
323
|
-
endResult: "Following that control lands on the payment page for the same order, and it still shows the amount due after a reload.",
|
|
324
|
-
href: "/user/orders",
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
key: "fees-match-between-preview-and-order",
|
|
328
|
-
label: "🛑 The total shown at checkout equals the total recorded on the order",
|
|
329
|
-
roles: ["buyer"],
|
|
330
|
-
startPage: "/checkout",
|
|
331
|
-
steps: [
|
|
332
|
-
STEP_SIGNIN_BUYER,
|
|
333
|
-
"Add product-beyblade-burst-valkyrie (store-beyblade-arena) to the cart.",
|
|
334
|
-
"Add prizedraw-beyblade-mystery-box (store-letitrip-official) to the cart, so the cart spans two sellers.",
|
|
335
|
-
"Open /checkout and reach the payment step.",
|
|
336
|
-
"Write down the exact total and every fee line.",
|
|
337
|
-
STEP_PLACE_ORDER,
|
|
338
|
-
"Open /user/orders and add up the totals of the orders just produced.",
|
|
339
|
-
],
|
|
340
|
-
expectedBehaviour: "A two-seller cart splits into one order per seller, and the platform commission is charged ONCE for the checkout rather than once per seller.",
|
|
341
|
-
expectedUiState: "The checkout summary shows a single platform-fee line, qualified by the number of stores where relevant.",
|
|
342
|
-
endResult: "After reload, the sum of the recorded order totals equals the checkout figure to the rupee.",
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
key: "coupon-applies-and-persists",
|
|
346
|
-
label: "A coupon applied at checkout is reflected in the placed order",
|
|
347
|
-
roles: ["buyer"],
|
|
348
|
-
startPage: "/checkout",
|
|
349
|
-
steps: [
|
|
350
|
-
STEP_SIGNIN_BUYER,
|
|
351
|
-
"Add product-beyblade-burst-valkyrie to the cart.",
|
|
352
|
-
"Open /checkout and reach the payment step.",
|
|
353
|
-
"Enter the coupon code ARENA25 and apply it.",
|
|
354
|
-
"Note the discount line and the new total.",
|
|
355
|
-
STEP_PLACE_ORDER,
|
|
356
|
-
STEP_RELOAD_ORDERS,
|
|
357
|
-
],
|
|
358
|
-
expectedBehaviour: "The discount is applied to the order that is created, and the coupon's usage count increments.",
|
|
359
|
-
expectedUiState: "A discount line appears naming ARENA25, and the total drops accordingly before the order is placed.",
|
|
360
|
-
endResult: "After reloading the order, ARENA25 and the same discount amount are still recorded on it.",
|
|
361
|
-
},
|
|
362
|
-
/*
|
|
363
|
-
* PhonePe replaced Razorpay entirely in this migration. Unlike Razorpay,
|
|
364
|
-
* PhonePe never hands the browser a verifiable signature — the checkout
|
|
365
|
-
* iframe's own callback is not authoritative, and either the buyer's own
|
|
366
|
-
* /api/payment/verify call OR the async webhook (buyer may be gone) can
|
|
367
|
-
* be the one that actually places the order. A Firestore claim doc
|
|
368
|
-
* (phonepeOrderClaims/{merchantOrderId}) makes whichever caller arrives
|
|
369
|
-
* first the sole placer, which is the one behavior with no Razorpay
|
|
370
|
-
* precedent and the reason these five cases exist as their own group.
|
|
371
|
-
*/
|
|
372
|
-
{
|
|
373
|
-
key: "phonepe-iframe-payment-completes",
|
|
374
|
-
label: "🛑 A PhonePe online payment completes inside the checkout iframe and places the order",
|
|
375
|
-
roles: ["buyer"],
|
|
376
|
-
startPage: "/checkout",
|
|
377
|
-
steps: [
|
|
378
|
-
"Sign in as admin@letitrip.in / TempPass123!, open /admin/site, switch to the Shipping tab, and confirm the toggle reading 'PhonePe (online card/UPI) enabled — disabled by default, manual payment is the default' is ON. It is OFF on a fresh install, which is what that label is telling you.",
|
|
379
|
-
STEP_SIGNIN_BUYER,
|
|
380
|
-
"Open /products/product-beyblade-burst-valkyrie (₹999) and click 'Add to cart'.",
|
|
381
|
-
"Open /checkout and complete the address step.",
|
|
382
|
-
"On the payment step, click 'Pay Online (PhonePe)'.",
|
|
383
|
-
"Complete the payment inside the PhonePe checkout iframe using a sandbox test instrument.",
|
|
384
|
-
"Wait for the iframe to close and the page to react.",
|
|
385
|
-
],
|
|
386
|
-
expectedBehaviour: "The iframe's own callback is NOT trusted — the app calls /api/payment/verify immediately afterward, which asks PhonePe's Order Status API what actually happened and only then places the order.",
|
|
387
|
-
expectedUiState: "A brief 'processing' state appears after the iframe closes (this is the verify call in flight), then the page redirects to order confirmation with a success toast. It must not hang indefinitely or show a generic failure while the payment genuinely succeeded.",
|
|
388
|
-
endResult: "After reloading /user/orders, exactly one order exists for this purchase with status reflecting a confirmed payment.",
|
|
389
|
-
href: "/checkout",
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
key: "phonepe-webhook-places-order-alone",
|
|
393
|
-
label: "🛑 If the buyer leaves before /api/payment/verify runs, the PhonePe webhook alone places the order",
|
|
394
|
-
roles: ["buyer"],
|
|
395
|
-
startPage: "/checkout",
|
|
396
|
-
steps: [
|
|
397
|
-
"Confirm PhonePe is enabled (Site Settings → Shipping → 'PhonePe (online card/UPI) enabled').",
|
|
398
|
-
STEP_SIGNIN_BUYER,
|
|
399
|
-
"Open /products/product-beyblade-original-dranzer-s and click 'Add to cart'.",
|
|
400
|
-
"Open /checkout, complete the address step, and click 'Pay Online (PhonePe)'.",
|
|
401
|
-
"Complete the payment inside the PhonePe iframe using a sandbox test instrument.",
|
|
402
|
-
"The instant the iframe reports success, close the browser tab entirely — before the app's own confirmation screen or processing state can appear.",
|
|
403
|
-
"Wait about 30 seconds for PhonePe's server-to-server webhook to arrive.",
|
|
404
|
-
"Sign back in and open /user/orders.",
|
|
405
|
-
],
|
|
406
|
-
expectedBehaviour: "PhonePe never hands the browser a verifiable proof of payment, so with the tab closed before the buyer-present verify call ran, only the async webhook (POST /api/payment/webhook, event checkout.order.completed) is left to place the order — and it does, using the buyer identity packed into PhonePe's metaInfo at order-creation time rather than a session.",
|
|
407
|
-
expectedUiState: "There is no UI to observe during this case — the tab is gone. The check is entirely in what /user/orders shows afterward.",
|
|
408
|
-
endResult: "The order for product-beyblade-original-dranzer-s exists in /user/orders with a confirmed payment, even though the buyer's browser never received a success screen.",
|
|
409
|
-
href: "/user/orders",
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
key: "phonepe-verify-and-webhook-race-no-duplicate-order",
|
|
413
|
-
label: "A PhonePe payment confirmed by BOTH the buyer's browser and the webhook produces exactly ONE order, never two",
|
|
414
|
-
roles: ["buyer"],
|
|
415
|
-
startPage: "/checkout",
|
|
416
|
-
steps: [
|
|
417
|
-
"Confirm PhonePe is enabled.",
|
|
418
|
-
STEP_SIGNIN_BUYER,
|
|
419
|
-
"Open /products/product-beyblade-x-dran-sword-video-demo and click 'Add to cart'.",
|
|
420
|
-
"Open /checkout, complete the address step, and click 'Pay Online (PhonePe)'.",
|
|
421
|
-
"Complete the payment inside the PhonePe iframe and let the tab stay open normally (do NOT close it) — the ordinary happy path, where the buyer's own verify call and PhonePe's webhook can both arrive for the same payment.",
|
|
422
|
-
"After the confirmation page loads, open /user/orders and count how many orders exist for this one purchase.",
|
|
423
|
-
],
|
|
424
|
-
expectedBehaviour: "A Firestore claim doc keyed on the payment's merchantOrderId, created with .create() (which throws on conflict), makes whichever of the two callers — the buyer's browser or the webhook — arrives first the sole placer of the order. The second caller's attempt is a no-op.",
|
|
425
|
-
expectedUiState: "The confirmation page shows exactly one order.",
|
|
426
|
-
expectedData: { ordersCreatedForThisPurchase: 1 },
|
|
427
|
-
endResult: "After reloading /user/orders, still exactly one order exists for product-beyblade-x-dran-sword-video-demo from this checkout — not two, and not zero.",
|
|
428
|
-
href: "/user/orders",
|
|
429
|
-
},
|
|
430
|
-
{
|
|
431
|
-
key: "phonepe-failed-payment-creates-no-order",
|
|
432
|
-
label: "A PhonePe payment the buyer abandons or fails produces NO order and the item stays in the cart",
|
|
433
|
-
roles: ["buyer"],
|
|
434
|
-
startPage: "/checkout",
|
|
435
|
-
steps: [
|
|
436
|
-
"Confirm PhonePe is enabled.",
|
|
437
|
-
STEP_SIGNIN_BUYER,
|
|
438
|
-
"Open /products/product-beyblade-metal-dark-bull-video-demo and click 'Add to cart'.",
|
|
439
|
-
"Open /checkout, complete the address step, and click 'Pay Online (PhonePe)'.",
|
|
440
|
-
"Inside the PhonePe iframe, either close it without paying or use a sandbox instrument that simulates a decline.",
|
|
441
|
-
"Observe the checkout page's reaction.",
|
|
442
|
-
"Open /user/orders.",
|
|
443
|
-
],
|
|
444
|
-
expectedBehaviour: "A failed or abandoned PhonePe payment must never place an order — the webhook's checkout.order.failed handler only signals the failure, it never calls order placement, and a subsequent /api/payment/verify call reports the payment as not completed rather than creating one anyway.",
|
|
445
|
-
expectedUiState: "The checkout page shows a payment-failed error and returns to the payment step rather than redirecting to a confirmation page.",
|
|
446
|
-
expectedData: { ordersCreated: 0 },
|
|
447
|
-
endResult: "After reloading /user/orders, no order exists for this attempt, and the item is still in /cart to retry.",
|
|
448
|
-
href: "/cart",
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
key: "phonepe-auto-refund-on-skipped-item",
|
|
452
|
-
label: "🛑 An item dropped by the \"skip unavailable items\" policy on a paid PhonePe order is automatically refunded through PhonePe's real refund API",
|
|
453
|
-
roles: ["buyer"],
|
|
454
|
-
startPage: "/checkout",
|
|
455
|
-
steps: [
|
|
456
|
-
"Sign in as admin@letitrip.in / TempPass123! and confirm PhonePe is enabled on Site Settings, Shipping tab.",
|
|
457
|
-
"🛑 The out-of-stock policy is NOT an admin setting — there is no Checkout tab in Site Settings, and no control by the name this step used to give. It is a BUYER choice made at checkout, under the heading 'If an item goes out of stock', offering \"Ship what's available and refund the rest\" and \"Cancel my whole order\". The first is already the default, so nothing needs changing; just confirm it is selected when you reach checkout.",
|
|
458
|
-
STEP_SIGNIN_BUYER,
|
|
459
|
-
"Add product-beyblade-burst-valkyrie (₹999, stock available) and product-beyblade-original-dranzer-s (₹1,499) to the cart.",
|
|
460
|
-
"Open /checkout, complete the address step, and click 'Pay Online (PhonePe)'.",
|
|
461
|
-
"While on the PhonePe iframe (before completing payment), have the admin or another session reduce product-beyblade-original-dranzer-s's stock to 0.",
|
|
462
|
-
"Complete the PhonePe payment for the FULL cart total shown (both items) inside the iframe.",
|
|
463
|
-
"Open the resulting order's detail page.",
|
|
464
|
-
],
|
|
465
|
-
inputs: { policy: "Skip unavailable items", goesOutOfStock: "product-beyblade-original-dranzer-s" },
|
|
466
|
-
expectedBehaviour: "PhonePe already captured payment for the whole cart before the stock check ran, so the value of the dropped item (₹1,499) is refunded back to the buyer automatically via a real PhonePe refund call (processRefundAction, reason 'not_received'), keyed off the order's own merchantOrderId — not just recorded as a database adjustment.",
|
|
467
|
-
expectedUiState: "The order confirmation shows only product-beyblade-burst-valkyrie with a notice that product-beyblade-original-dranzer-s was unavailable and refunded. The order detail's refund history / status timeline shows a partial refund of ₹1,499 with reason 'not_received'.",
|
|
468
|
-
endResult: "After reloading the order detail page, the ₹1,499 partial refund is still listed in the timeline. If the automatic refund call itself fails (rare), the order is flagged refundPending and an admin-inbox notification 'Automatic refund failed' appears instead — that is the documented fallback, not a silent loss of the buyer's money.",
|
|
469
|
-
href: "/user/orders",
|
|
470
|
-
},
|
|
471
|
-
{
|
|
472
|
-
key: "phonepe-manual-refund-has-no-admin-control",
|
|
473
|
-
label: "🛑 There is currently no admin control that triggers a real PhonePe refund on a completed order — surfacing this, not asserting it works",
|
|
474
|
-
roles: ["admin"],
|
|
475
|
-
startPage: "/admin/orders",
|
|
476
|
-
steps: [
|
|
477
|
-
"Sign in as admin@letitrip.in / TempPass123!.",
|
|
478
|
-
"Open any order paid via PhonePe from /admin/orders and open its detail/editor.",
|
|
479
|
-
"Look for a control to issue a refund (a button, a 'Refund' action, or a status change to 'Refunded' with an amount field).",
|
|
480
|
-
"If a 'Refunded' status option with a refund-amount field exists, set it, save, and reload the order.",
|
|
481
|
-
],
|
|
482
|
-
expectedBehaviour: "A dedicated route (POST /api/admin/orders/[id]/refund) exists and does call PhonePe's real refund API when hit directly, but as of this migration nothing in the admin UI calls it. The generic order editor's status field can be set to 'Refunded' with a refund amount, but that PATCH goes through a schema (updateOrderSchema) that does not declare a refundAmount field at all — Zod's default object schema silently strips it, so the amount typed in is never persisted and PhonePe is never contacted.",
|
|
483
|
-
expectedUiState: "Setting status to 'Refunded' with an amount appears to save successfully (a 200 / success toast), which is the failure mode to watch for — a save that LOOKS like it worked.",
|
|
484
|
-
endResult: "After reloading the order, confirm whether the refund amount you entered is actually present on the order. If it is missing, this case should be answered 'no' — an admin currently has no working way to manually refund a PhonePe payment, and the money-moving path that exists (POST /api/admin/orders/[id]/refund) is only reachable automatically, from the checkout out-of-stock flow, never from a click in the dashboard.",
|
|
485
|
-
href: "/admin/orders",
|
|
486
|
-
},
|
|
487
|
-
{
|
|
488
|
-
key: "phonepe-preorder-deposit-charge-matches-shown-amount",
|
|
489
|
-
label: "A pre-order paid via PhonePe charges exactly the shown DEPOSIT amount, never the full listing price",
|
|
490
|
-
roles: ["buyer"],
|
|
491
|
-
startPage: "/pre-orders/preorder-beyblade-x-bx-08-wave",
|
|
492
|
-
steps: [
|
|
493
|
-
"Confirm PhonePe is enabled.",
|
|
494
|
-
STEP_SIGNIN_BUYER,
|
|
495
|
-
"Open /pre-orders/preorder-beyblade-x-bx-08-wave (listed at ₹799, 25% deposit) and click its buy/reserve control.",
|
|
496
|
-
"Open /checkout and complete the address step.",
|
|
497
|
-
"On the payment step, note the exact deposit amount shown in the Order Summary.",
|
|
498
|
-
"Click 'Pay Online (PhonePe)' and read the amount shown inside the PhonePe iframe before paying.",
|
|
499
|
-
"Complete the payment.",
|
|
500
|
-
"Open the resulting order's detail page.",
|
|
501
|
-
],
|
|
502
|
-
inputs: { productId: "preorder-beyblade-x-bx-08-wave", listedPrice: 799, depositPercent: 25 },
|
|
503
|
-
expectedBehaviour: "The PhonePe order is created for the deposit amount only (roughly 25% of ₹799), never the full ₹799 — a pre-order's checkout flow computes the deposit before ever calling PhonePe's create-order API.",
|
|
504
|
-
expectedUiState: "The amount inside the PhonePe iframe is identical, to the rupee, to the deposit figure shown in the Order Summary a moment earlier — not the full listing price.",
|
|
505
|
-
endResult: "The order detail page shows the deposit amount as paid and the remaining balance as due later, matching what was charged through PhonePe.",
|
|
506
|
-
href: "/user/orders",
|
|
507
|
-
},
|
|
508
|
-
],
|
|
509
|
-
},
|
|
510
|
-
{
|
|
511
|
-
pageKey: "blockers",
|
|
512
|
-
pageLabel: "Blockers and refusals",
|
|
513
|
-
href: "/cart",
|
|
514
|
-
cases: [
|
|
515
|
-
{
|
|
516
|
-
key: "out-of-stock-blocked",
|
|
517
|
-
label: "A sold-out item cannot be added to the cart or checked out",
|
|
518
|
-
roles: ["buyer"],
|
|
519
|
-
startPage: "/products/product-beyblade-burst-valtryek-v3-sold-out",
|
|
520
|
-
steps: [
|
|
521
|
-
STEP_SIGNIN_BUYER,
|
|
522
|
-
"Open /products/product-beyblade-burst-valtryek-v3-sold-out, a deliberately sold-out fixture.",
|
|
523
|
-
"Attempt to add it to the cart.",
|
|
524
|
-
],
|
|
525
|
-
expectedBehaviour: "The add is refused and no cart line is created for an unavailable item.",
|
|
526
|
-
expectedUiState: "The add control is disabled or replaced by a Sold Out state, with the reason stated on the page.",
|
|
527
|
-
endResult: "After reloading /cart the item is absent.",
|
|
528
|
-
href: "/products/product-beyblade-burst-valtryek-v3-sold-out",
|
|
529
|
-
},
|
|
530
|
-
{
|
|
531
|
-
/*
|
|
532
|
-
* 🛑 THIS CASE MOVED FROM THE CART TO THE BUNDLE EDITOR, 2026-09-15.
|
|
533
|
-
*
|
|
534
|
-
* It used to open a deliberately-banned pair of fixtures — two products
|
|
535
|
-
* in different stores wired into one group — and assert that the cart's
|
|
536
|
-
* picker refused them. Those fixtures are gone, and no replacement can
|
|
537
|
-
* be seeded: the guard the case tests is applied at SAVE time, so a
|
|
538
|
-
* cross-store group cannot exist to be opened.
|
|
539
|
-
*
|
|
540
|
-
* The refusal is therefore tested where it actually fires — an admin
|
|
541
|
-
* ATTEMPTS the banned shape and is refused before it is stored.
|
|
542
|
-
*/
|
|
543
|
-
key: "cross-store-group-refused",
|
|
544
|
-
label: "A bundle whose members span two stores is refused when saved",
|
|
545
|
-
roles: ["admin"],
|
|
546
|
-
startPage: "/admin/bundles",
|
|
547
|
-
steps: [
|
|
548
|
-
"Sign in as admin@letitrip.in / TempPass123!.",
|
|
549
|
-
"Open /admin/bundles and start a new bundle.",
|
|
550
|
-
"Name it 'QA cross-store bundle'.",
|
|
551
|
-
"Add THREE members, because the form refuses fewer: product-beyblade-burst-valkyrie and product-beyblade-x-wizard-arrow (both store-beyblade-arena), plus prizedraw-beyblade-mystery-box (store-letitrip-official) — a different store.",
|
|
552
|
-
"🛑 Two members is not enough to reach the cross-store check at all. BUNDLE_MIN_ITEMS is 3, and a two-member save is refused with 'Select at least 3 products (currently 2).' — a refusal for the wrong reason, which reads as a pass if the message is not read.",
|
|
553
|
-
"Set the bundle price to 1000 and click Save.",
|
|
554
|
-
],
|
|
555
|
-
inputs: { bundleName: "QA cross-store bundle", bundlePrice: 1000 },
|
|
556
|
-
expectedBehaviour: "The save is refused because an order belongs to exactly one seller, and a bundle spanning two stores would produce an order containing another seller's product — with no notification, no shipping resolution and no payout for that second seller. The refusal is at save time, not at add-to-cart time, so bundles already stored keep working.",
|
|
557
|
-
expectedUiState: "An error names how many sellers the members span, or at least states that a bundle cannot span sellers. Read the message: a minimum-members error means the cross-store guard never ran. The editor stays open with the entered members intact rather than clearing.",
|
|
558
|
-
endResult: "After reloading /admin/bundles there is no bundle named 'QA cross-store bundle'.",
|
|
559
|
-
href: "/admin/bundles",
|
|
560
|
-
},
|
|
561
|
-
{
|
|
562
|
-
key: "classified-has-no-cart",
|
|
563
|
-
label: "A classified listing offers contact, never Add to Cart",
|
|
564
|
-
roles: ["buyer"],
|
|
565
|
-
startPage: "/classified/classified-beyblade-stadium-set",
|
|
566
|
-
steps: [
|
|
567
|
-
STEP_SIGNIN_BUYER,
|
|
568
|
-
"Open /classified/classified-beyblade-stadium-set.",
|
|
569
|
-
"Read every action control on the listing.",
|
|
570
|
-
],
|
|
571
|
-
expectedBehaviour: "A classified is a contact-only listing type with no cart path at all.",
|
|
572
|
-
expectedUiState: "Exactly one of 'Make Offer', 'Request to Buy' or a contact-seller control is present. 'Add to Cart' and 'Buy Now' are ABSENT, not disabled.",
|
|
573
|
-
endResult: "Nothing is persisted; this is a read-only check of which controls render.",
|
|
574
|
-
href: "/classified/classified-beyblade-stadium-set",
|
|
575
|
-
},
|
|
576
|
-
{
|
|
577
|
-
key: "guest-gated-action-prompts-signin",
|
|
578
|
-
label: "A gated action while signed out prompts sign-in and then completes the original action",
|
|
579
|
-
roles: ["guest"],
|
|
580
|
-
startPage: "/products/product-beyblade-burst-valkyrie",
|
|
581
|
-
steps: [
|
|
582
|
-
"Sign out completely.",
|
|
583
|
-
"Open /products/product-beyblade-burst-valkyrie.",
|
|
584
|
-
"Click the wishlist heart.",
|
|
585
|
-
"Sign in as ash@pokemonpalace.in through the prompt that appears.",
|
|
586
|
-
],
|
|
587
|
-
expectedBehaviour: "The click is held while signing in and then replayed, so the item ends up on the wishlist.",
|
|
588
|
-
expectedUiState: "A sign-in prompt appears rather than the click doing nothing. After signing in, the heart shows the saved state.",
|
|
589
|
-
endResult: "After reloading /wishlist the item is listed.",
|
|
590
|
-
href: "/products/product-beyblade-burst-valkyrie",
|
|
591
|
-
},
|
|
592
|
-
{
|
|
593
|
-
key: "banned-account-blocked",
|
|
594
|
-
label: "A disabled account cannot sign in and is told why",
|
|
595
|
-
roles: ["guest"],
|
|
596
|
-
startPage: "/auth/login",
|
|
597
|
-
steps: [
|
|
598
|
-
"Sign out completely.",
|
|
599
|
-
"Open /auth/login.",
|
|
600
|
-
"Enter the credentials of an account an admin has disabled.",
|
|
601
|
-
"Click 'Sign in'.",
|
|
602
|
-
],
|
|
603
|
-
expectedBehaviour: "Authentication is refused for a disabled account; no session cookie is issued.",
|
|
604
|
-
expectedUiState: "A clear message states the account is disabled. The form must not appear to succeed and then fail on the next page.",
|
|
605
|
-
endResult: "After reloading, the user is still signed out and /user/profile redirects to login.",
|
|
606
|
-
href: "/auth/login",
|
|
607
|
-
},
|
|
608
|
-
],
|
|
609
|
-
},
|
|
610
|
-
];
|