@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.
Files changed (1080) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +62 -5
  3. package/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +2 -2
  4. package/dist/_internal/server/features/brands/actions.js +78 -4
  5. package/dist/_internal/server/features/checkout/actions.d.ts +36 -13
  6. package/dist/_internal/server/features/checkout/actions.js +668 -183
  7. package/dist/_internal/server/features/checkout/supplier-identity.js +18 -1
  8. package/dist/_internal/server/features/gateway-events/index.d.ts +10 -0
  9. package/dist/_internal/server/features/gateway-events/index.js +10 -0
  10. package/dist/_internal/server/features/gateway-events/ingest.d.ts +127 -0
  11. package/dist/_internal/server/features/gateway-events/ingest.js +188 -0
  12. package/dist/_internal/server/features/gateway-events/redact.d.ts +66 -0
  13. package/dist/_internal/server/features/gateway-events/redact.js +151 -0
  14. package/dist/_internal/server/features/grievance/actions.d.ts +63 -0
  15. package/dist/_internal/server/features/grievance/actions.js +173 -0
  16. package/dist/_internal/server/features/grievance/index.d.ts +8 -0
  17. package/dist/_internal/server/features/grievance/index.js +8 -0
  18. package/dist/_internal/server/features/grouped/data.js +28 -3
  19. package/dist/_internal/server/features/lottery/actions.js +99 -4
  20. package/dist/_internal/server/features/order-completion/actions.d.ts +92 -0
  21. package/dist/_internal/server/features/order-completion/actions.js +336 -0
  22. package/dist/_internal/server/features/order-completion/index.d.ts +7 -0
  23. package/dist/_internal/server/features/order-completion/index.js +7 -0
  24. package/dist/_internal/server/features/orders/actions.d.ts +13 -0
  25. package/dist/_internal/server/features/orders/actions.js +56 -2
  26. package/dist/_internal/server/features/orders/adapters.js +26 -0
  27. package/dist/_internal/server/features/orders/cancellation-refund.d.ts +116 -0
  28. package/dist/_internal/server/features/orders/cancellation-refund.js +466 -0
  29. package/dist/_internal/server/features/orders/index.d.ts +2 -1
  30. package/dist/_internal/server/features/orders/index.js +1 -1
  31. package/dist/_internal/server/features/orders/service.d.ts +60 -0
  32. package/dist/_internal/server/features/orders/service.js +74 -0
  33. package/dist/_internal/server/features/payment-cases/disputes.d.ts +76 -0
  34. package/dist/_internal/server/features/payment-cases/disputes.js +241 -0
  35. package/dist/_internal/server/features/payment-cases/index.d.ts +9 -0
  36. package/dist/_internal/server/features/payment-cases/index.js +9 -0
  37. package/dist/_internal/server/features/payouts/actions.d.ts +28 -3
  38. package/dist/_internal/server/features/payouts/actions.js +84 -10
  39. package/dist/_internal/server/features/points/adjust.d.ts +61 -0
  40. package/dist/_internal/server/features/points/adjust.js +121 -0
  41. package/dist/_internal/server/features/points/award.d.ts +65 -0
  42. package/dist/_internal/server/features/points/award.js +145 -0
  43. package/dist/_internal/server/features/price-index/market.d.ts +33 -0
  44. package/dist/_internal/server/features/price-index/market.js +54 -1
  45. package/dist/_internal/server/features/products/data.js +40 -22
  46. package/dist/_internal/server/features/protection-claims/actions.d.ts +72 -0
  47. package/dist/_internal/server/features/protection-claims/actions.js +228 -0
  48. package/dist/_internal/server/features/protection-claims/index.d.ts +8 -0
  49. package/dist/_internal/server/features/protection-claims/index.js +8 -0
  50. package/dist/_internal/server/features/refunds/actions.d.ts +20 -0
  51. package/dist/_internal/server/features/refunds/actions.js +259 -17
  52. package/dist/_internal/server/features/refunds/capacity.d.ts +29 -0
  53. package/dist/_internal/server/features/refunds/capacity.js +37 -0
  54. package/dist/_internal/server/features/reviews/actions.js +3 -2
  55. package/dist/_internal/server/features/search/index-build/sources.js +20 -1
  56. package/dist/_internal/server/features/shipping/reconcile.d.ts +10 -1
  57. package/dist/_internal/server/features/shipping/reconcile.js +34 -3
  58. package/dist/_internal/server/features/shipping/reimbursement.d.ts +117 -0
  59. package/dist/_internal/server/features/shipping/reimbursement.js +223 -0
  60. package/dist/_internal/server/features/stores/tabs.d.ts +19 -4
  61. package/dist/_internal/server/features/stores/tabs.js +24 -4
  62. package/dist/_internal/server/functions/https.d.ts +31 -1
  63. package/dist/_internal/server/functions/https.js +52 -1
  64. package/dist/_internal/server/functions/scheduled.d.ts +72 -1
  65. package/dist/_internal/server/functions/scheduled.js +124 -1
  66. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +62 -16
  67. package/dist/_internal/server/jobs/core/boxRollupReconcile.d.ts +46 -0
  68. package/dist/_internal/server/jobs/core/boxRollupReconcile.js +142 -0
  69. package/dist/_internal/server/jobs/core/dailyDataCleanup.js +149 -1
  70. package/dist/_internal/server/jobs/core/dailyStatusDigest.d.ts +14 -0
  71. package/dist/_internal/server/jobs/core/dailyStatusDigest.js +79 -1
  72. package/dist/_internal/server/jobs/core/index.d.ts +2 -0
  73. package/dist/_internal/server/jobs/core/index.js +2 -0
  74. package/dist/_internal/server/jobs/core/marketPriceRollup.d.ts +64 -0
  75. package/dist/_internal/server/jobs/core/marketPriceRollup.js +153 -0
  76. package/dist/_internal/server/jobs/core/obligationSweep.d.ts +36 -0
  77. package/dist/_internal/server/jobs/core/obligationSweep.js +503 -0
  78. package/dist/_internal/server/jobs/core/paymentReconcile.d.ts +79 -0
  79. package/dist/_internal/server/jobs/core/paymentReconcile.js +614 -0
  80. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +34 -0
  81. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +35 -4
  82. package/dist/_internal/server/jobs/handlers/boxRollupReconcile.d.ts +2 -0
  83. package/dist/_internal/server/jobs/handlers/boxRollupReconcile.js +15 -0
  84. package/dist/_internal/server/jobs/handlers/countersReconcileNow.d.ts +65 -0
  85. package/dist/_internal/server/jobs/handlers/countersReconcileNow.js +89 -0
  86. package/dist/_internal/server/jobs/handlers/index.d.ts +5 -0
  87. package/dist/_internal/server/jobs/handlers/index.js +5 -0
  88. package/dist/_internal/server/jobs/handlers/marketPriceRollup.d.ts +2 -0
  89. package/dist/_internal/server/jobs/handlers/marketPriceRollup.js +2 -0
  90. package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
  91. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  92. package/dist/_internal/server/jobs/handlers/obligationSweep.d.ts +2 -0
  93. package/dist/_internal/server/jobs/handlers/obligationSweep.js +15 -0
  94. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +30 -1
  95. package/dist/_internal/server/jobs/handlers/paymentReconcile.d.ts +2 -0
  96. package/dist/_internal/server/jobs/handlers/paymentReconcile.js +6 -0
  97. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  98. package/dist/_internal/shared/actions/action-registry.js +71 -0
  99. package/dist/_internal/shared/checkout/coupon-discount.d.ts +73 -0
  100. package/dist/_internal/shared/checkout/coupon-discount.js +103 -0
  101. package/dist/_internal/shared/checkout/lanes.d.ts +42 -0
  102. package/dist/_internal/shared/checkout/lanes.js +46 -0
  103. package/dist/_internal/shared/checkout/order-math.d.ts +149 -1
  104. package/dist/_internal/shared/checkout/order-math.js +251 -3
  105. package/dist/_internal/shared/checkout/refundable-base.d.ts +116 -0
  106. package/dist/_internal/shared/checkout/refundable-base.js +122 -0
  107. package/dist/_internal/shared/features/auctions/config.d.ts +14 -1
  108. package/dist/_internal/shared/features/auctions/config.js +30 -1
  109. package/dist/_internal/shared/features/brands/schema.d.ts +42 -0
  110. package/dist/_internal/shared/features/brands/schema.js +18 -0
  111. package/dist/_internal/shared/features/orders/refund-copy.d.ts +22 -0
  112. package/dist/_internal/shared/features/orders/refund-copy.js +34 -0
  113. package/dist/_internal/shared/features/print/label-profiles.d.ts +198 -0
  114. package/dist/_internal/shared/features/print/label-profiles.js +350 -0
  115. package/dist/_internal/shared/features/products/to-product-item.js +33 -5
  116. package/dist/_internal/shared/fees/calculator.d.ts +31 -2
  117. package/dist/_internal/shared/fees/calculator.js +103 -5
  118. package/dist/_internal/shared/fees/india-states.d.ts +195 -0
  119. package/dist/_internal/shared/fees/india-states.js +190 -0
  120. package/dist/_internal/shared/fees/payout-hold.d.ts +80 -0
  121. package/dist/_internal/shared/fees/payout-hold.js +74 -0
  122. package/dist/_internal/shared/obligations/deadlines.d.ts +94 -0
  123. package/dist/_internal/shared/obligations/deadlines.js +155 -0
  124. package/dist/_internal/shared/shipping/quote.d.ts +96 -0
  125. package/dist/_internal/shared/shipping/quote.js +67 -0
  126. package/dist/_internal/shared/time/business-days.d.ts +91 -0
  127. package/dist/_internal/shared/time/business-days.js +185 -0
  128. package/dist/_internal/shared/types/base-document.d.ts +1 -1
  129. package/dist/cli/index.js +0 -2
  130. package/dist/client.d.ts +9 -4
  131. package/dist/client.js +26 -3
  132. package/dist/configs/tailwind.d.ts +0 -12
  133. package/dist/configs/tailwind.js +28 -15
  134. package/dist/constants/api-endpoints.d.ts +51 -9
  135. package/dist/constants/api-endpoints.js +23 -7
  136. package/dist/constants/index.d.ts +1 -1
  137. package/dist/constants/index.js +1 -1
  138. package/dist/constants/seed-meta.d.ts +113 -0
  139. package/dist/constants/seed-meta.js +91 -0
  140. package/dist/contracts/index.d.ts +1 -1
  141. package/dist/contracts/payment.d.ts +131 -0
  142. package/dist/features/about/components/AboutView.js +1 -1
  143. package/dist/features/about/components/DeveloperView.js +5 -2
  144. package/dist/features/about/components/FAQPageView.js +2 -1
  145. package/dist/features/about/components/FeesView.js +2 -1
  146. package/dist/features/about/components/HelpPageView.js +2 -1
  147. package/dist/features/about/components/HowAuctionsWorkView.js +2 -1
  148. package/dist/features/about/components/HowCheckoutWorksView.js +2 -1
  149. package/dist/features/about/components/HowEmiWorksView.js +2 -1
  150. package/dist/features/about/components/HowOffersWorkView.js +2 -1
  151. package/dist/features/about/components/HowOrdersWorkView.js +2 -1
  152. package/dist/features/about/components/HowPayoutsWorkView.js +2 -1
  153. package/dist/features/about/components/HowPreOrdersWorkView.js +2 -1
  154. package/dist/features/about/components/HowReviewsWorkView.js +2 -1
  155. package/dist/features/about/components/PolicyPageView.js +2 -1
  156. package/dist/features/about/components/ProseHero.d.ts +73 -0
  157. package/dist/features/about/components/ProseHero.js +18 -0
  158. package/dist/features/about/components/SecurityPrivacyView.js +2 -1
  159. package/dist/features/about/components/ShippingPolicyView.js +2 -1
  160. package/dist/features/about/components/TrackOrderView.js +2 -1
  161. package/dist/features/about/components/UnauthorizedView.js +1 -1
  162. package/dist/features/about/index.d.ts +2 -0
  163. package/dist/features/about/index.js +5 -0
  164. package/dist/features/account/actions/address-actions.d.ts +26 -2
  165. package/dist/features/account/actions/address-actions.js +25 -1
  166. package/dist/features/account/components/BuyerShoppingGuideView.js +1 -1
  167. package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
  168. package/dist/features/account/components/UserOrdersView.js +17 -0
  169. package/dist/features/account/components/UserSidebar.js +1 -1
  170. package/dist/features/account/hooks/useNotifications.js +29 -0
  171. package/dist/features/admin/actions/admin-coupon-actions.js +36 -0
  172. package/dist/features/admin/components/AdminBeysView.js +2 -2
  173. package/dist/features/admin/components/AdminBlogEditorView.js +2 -2
  174. package/dist/features/admin/components/AdminBrandEditorView.js +32 -2
  175. package/dist/features/admin/components/AdminBundleEditorView.js +1 -1
  176. package/dist/features/admin/components/AdminCarouselEditorView.js +1 -1
  177. package/dist/features/admin/components/AdminCategoriesView.js +1 -1
  178. package/dist/features/admin/components/AdminCategoryEditorView.js +73 -17
  179. package/dist/features/admin/components/AdminContactEditorView.js +1 -1
  180. package/dist/features/admin/components/AdminCouponEditorView.js +26 -1
  181. package/dist/features/admin/components/AdminFaqEditorView.js +1 -1
  182. package/dist/features/admin/components/AdminFaqsView.js +2 -2
  183. package/dist/features/admin/components/AdminGatewayEventsView.d.ts +54 -0
  184. package/dist/features/admin/components/AdminGatewayEventsView.js +209 -0
  185. package/dist/features/admin/components/AdminGuideHubView.js +1 -1
  186. package/dist/features/admin/components/AdminMoneyCasesView.d.ts +60 -0
  187. package/dist/features/admin/components/AdminMoneyCasesView.js +287 -0
  188. package/dist/features/admin/components/AdminPartsView.js +2 -2
  189. package/dist/features/admin/components/AdminProductsView.js +75 -4
  190. package/dist/features/admin/components/AdminSidebar.js +2 -2
  191. package/dist/features/admin/components/AdminSiteSettingsView.js +65 -7
  192. package/dist/features/admin/components/AdminSublistingCategoriesView.js +2 -0
  193. package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
  194. package/dist/features/admin/components/AdminSupportTicketsView.js +2 -2
  195. package/dist/features/admin/components/AdminTesterChecklistView.js +2 -2
  196. package/dist/features/admin/components/AdminUsersView.js +72 -1
  197. package/dist/features/admin/components/AdminViewCards.d.ts +3 -1
  198. package/dist/features/admin/components/AdminViewCards.js +4 -4
  199. package/dist/features/admin/components/DataListingView.d.ts +28 -0
  200. package/dist/features/admin/components/DataListingView.js +175 -14
  201. package/dist/features/admin/components/DataTable.d.ts +12 -1
  202. package/dist/features/admin/components/DataTable.js +3 -3
  203. package/dist/features/admin/components/OwnerQuickActions.d.ts +1 -1
  204. package/dist/features/admin/components/OwnerQuickActions.js +60 -2
  205. package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +1 -1
  206. package/dist/features/admin/components/RecordOwnerQuickActions.js +61 -14
  207. package/dist/features/admin/components/analytics/AdminStatCard.d.ts +35 -1
  208. package/dist/features/admin/components/analytics/AdminStatCard.js +77 -2
  209. package/dist/features/admin/components/index.d.ts +4 -0
  210. package/dist/features/admin/components/index.js +6 -0
  211. package/dist/features/admin/constants/filter-tabs.d.ts +156 -0
  212. package/dist/features/admin/constants/filter-tabs.js +106 -0
  213. package/dist/features/admin/repository/site-settings.repository.d.ts +22 -0
  214. package/dist/features/admin/repository/site-settings.repository.js +82 -1
  215. package/dist/features/admin/schemas/admin-editor-forms.d.ts +21 -0
  216. package/dist/features/admin/schemas/admin-editor-forms.js +44 -0
  217. package/dist/features/admin/schemas/firestore.js +5 -1
  218. package/dist/features/admin/schemas/site-settings-form.js +30 -1
  219. package/dist/features/auctions/actions/bid-actions.js +13 -1
  220. package/dist/features/auctions/components/AuctionBottomActions.js +2 -2
  221. package/dist/features/auctions/components/AuctionDetailPageView.js +3 -1
  222. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +11 -0
  223. package/dist/features/auctions/components/MarketplaceAuctionCard.js +5 -3
  224. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +8 -1
  225. package/dist/features/auctions/components/PlaceBidFormClient.js +2 -2
  226. package/dist/features/audit-log/schemas/firestore.d.ts +28 -0
  227. package/dist/features/audit-log/schemas/firestore.js +14 -0
  228. package/dist/features/auth/permissions/constants.d.ts +17 -1
  229. package/dist/features/auth/permissions/constants.js +18 -0
  230. package/dist/features/blog/components/BlogPostView.js +1 -1
  231. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +1 -1
  232. package/dist/features/categories/api/[id]/description-template/route.js +107 -1
  233. package/dist/features/categories/components/BrandDetailPageView.js +2 -2
  234. package/dist/features/categories/components/BreadcrumbTrail.js +7 -1
  235. package/dist/features/categories/components/BundleDetailView.js +1 -1
  236. package/dist/features/categories/components/CategoryDetailPageView.js +2 -2
  237. package/dist/features/categories/components/CategoryForm.js +12 -1
  238. package/dist/features/categories/components/CategoryTemplatePicker.js +38 -5
  239. package/dist/features/categories/repository/market-price-index.repository.d.ts +123 -0
  240. package/dist/features/categories/repository/market-price-index.repository.js +105 -0
  241. package/dist/features/categories/repository/price-observation.repository.d.ts +166 -0
  242. package/dist/features/categories/repository/price-observation.repository.js +132 -0
  243. package/dist/features/events/components/EventSaleBanner.js +1 -1
  244. package/dist/features/events/components/EventStatusBadge.js +1 -1
  245. package/dist/features/faq/components/FAQAccordion.js +2 -1
  246. package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
  247. package/dist/features/faq/components/FAQHelpfulButtons.js +4 -4
  248. package/dist/features/faq/components/RelatedFAQs.js +1 -1
  249. package/dist/features/filters/FilterFacetSection.js +1 -1
  250. package/dist/features/filters/SwitchFilter.js +1 -1
  251. package/dist/features/gateway-events/repository/gateway-events.repository.d.ts +117 -0
  252. package/dist/features/gateway-events/repository/gateway-events.repository.js +274 -0
  253. package/dist/features/gateway-events/schemas/firestore.d.ts +217 -0
  254. package/dist/features/gateway-events/schemas/firestore.js +125 -0
  255. package/dist/features/gateway-events/schemas/index.d.ts +81 -0
  256. package/dist/features/gateway-events/schemas/index.js +79 -0
  257. package/dist/features/grouped/components/GroupedListingDetailView.js +1 -1
  258. package/dist/features/homepage/components/AnnouncementBar.js +37 -1
  259. package/dist/features/homepage/components/AnnouncementBar.style.css +30 -0
  260. package/dist/features/homepage/components/BrandsSection.js +1 -1
  261. package/dist/features/homepage/components/CTABannerSection.js +1 -1
  262. package/dist/features/homepage/components/FeaturedBundlesSection.js +14 -24
  263. package/dist/features/homepage/components/HeroCarousel.js +2 -2
  264. package/dist/features/homepage/components/SocialPostCard.js +1 -1
  265. package/dist/features/inventory/components/AdminMoveLedgerView.d.ts +7 -0
  266. package/dist/features/inventory/components/AdminMoveLedgerView.js +157 -0
  267. package/dist/features/inventory/components/AdminStorageBoxesView.d.ts +11 -0
  268. package/dist/features/inventory/components/AdminStorageBoxesView.js +168 -0
  269. package/dist/features/inventory/components/ReceiveStationView.d.ts +39 -0
  270. package/dist/features/inventory/components/ReceiveStationView.js +413 -0
  271. package/dist/features/inventory/components/operator-message.d.ts +29 -0
  272. package/dist/features/inventory/components/operator-message.js +41 -0
  273. package/dist/features/inventory/index.d.ts +13 -0
  274. package/dist/features/inventory/index.js +28 -0
  275. package/dist/features/inventory/repository/inventory-movements.repository.d.ts +97 -0
  276. package/dist/features/inventory/repository/inventory-movements.repository.js +186 -0
  277. package/dist/features/inventory/repository/inventory-placements.repository.d.ts +179 -0
  278. package/dist/features/inventory/repository/inventory-placements.repository.js +345 -0
  279. package/dist/features/inventory/repository/storage-boxes.repository.d.ts +83 -0
  280. package/dist/features/inventory/repository/storage-boxes.repository.js +127 -0
  281. package/dist/features/inventory/schemas/firestore.d.ts +197 -0
  282. package/dist/features/inventory/schemas/firestore.js +159 -0
  283. package/dist/features/layout/AppLayoutShell.d.ts +12 -1
  284. package/dist/features/layout/AppLayoutShell.js +25 -12
  285. package/dist/features/layout/AutoBreadcrumbs.js +162 -3
  286. package/dist/features/layout/AutoBreadcrumbs.style.css +45 -0
  287. package/dist/features/layout/BottomNavbar.d.ts +1 -1
  288. package/dist/features/layout/BottomNavbar.js +2 -2
  289. package/dist/features/media/MediaAvatar.js +1 -1
  290. package/dist/features/media/MediaImage.d.ts +24 -4
  291. package/dist/features/media/MediaImage.js +44 -4
  292. package/dist/features/media/MediaLightbox.js +1 -1
  293. package/dist/features/media/modals/ImageCropModal.js +1 -1
  294. package/dist/features/media/modals/ImageEditor.js +1 -1
  295. package/dist/features/media/upload/MediaUploadField.js +91 -3
  296. package/dist/features/obligations/constants/policies.d.ts +92 -0
  297. package/dist/features/obligations/constants/policies.js +378 -0
  298. package/dist/features/obligations/repository/obligations.repository.d.ts +68 -0
  299. package/dist/features/obligations/repository/obligations.repository.js +158 -0
  300. package/dist/features/obligations/schemas/firestore.d.ts +160 -0
  301. package/dist/features/obligations/schemas/firestore.js +87 -0
  302. package/dist/features/orders/actions/order-actions.d.ts +43 -4
  303. package/dist/features/orders/actions/order-actions.js +60 -3
  304. package/dist/features/orders/actions/refund-actions.js +70 -10
  305. package/dist/features/orders/components/OrderCompletionPanel.d.ts +27 -0
  306. package/dist/features/orders/components/OrderCompletionPanel.js +192 -0
  307. package/dist/features/orders/components/OrdersList.js +2 -2
  308. package/dist/features/orders/components/RefundHistoryTable.js +3 -1
  309. package/dist/features/orders/components/index.d.ts +2 -0
  310. package/dist/features/orders/components/index.js +6 -0
  311. package/dist/features/orders/constants/transitions.d.ts +59 -0
  312. package/dist/features/orders/constants/transitions.js +104 -0
  313. package/dist/features/orders/repository/orders.repository.d.ts +109 -6
  314. package/dist/features/orders/repository/orders.repository.js +464 -21
  315. package/dist/features/orders/schemas/firestore.d.ts +270 -0
  316. package/dist/features/orders/schemas/firestore.js +24 -0
  317. package/dist/features/orders/schemas/index.d.ts +61 -0
  318. package/dist/features/orders/schemas/index.js +22 -0
  319. package/dist/features/orders/types/index.d.ts +79 -0
  320. package/dist/features/parts/components/PartsIndexPageView.js +8 -1
  321. package/dist/features/payment-cases/repository/payment-cases.repository.d.ts +170 -0
  322. package/dist/features/payment-cases/repository/payment-cases.repository.js +342 -0
  323. package/dist/features/payment-cases/schemas/firestore.d.ts +229 -0
  324. package/dist/features/payment-cases/schemas/firestore.js +105 -0
  325. package/dist/features/payment-cases/schemas/resolve-form.d.ts +97 -0
  326. package/dist/features/payment-cases/schemas/resolve-form.js +114 -0
  327. package/dist/features/payments/repository/payout.repository.d.ts +0 -1
  328. package/dist/features/payments/repository/payout.repository.js +0 -1
  329. package/dist/features/points/repository/points.repository.d.ts +122 -0
  330. package/dist/features/points/repository/points.repository.js +304 -1
  331. package/dist/features/points/schemas/adjust-form.d.ts +58 -0
  332. package/dist/features/points/schemas/adjust-form.js +63 -0
  333. package/dist/features/points/schemas/firestore.d.ts +108 -1
  334. package/dist/features/points/schemas/firestore.js +84 -0
  335. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +3 -3
  336. package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
  337. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -1
  338. package/dist/features/price-index/components/PriceIndexToolView.d.ts +23 -4
  339. package/dist/features/price-index/components/PriceIndexToolView.js +71 -6
  340. package/dist/features/price-index/market-stats.d.ts +82 -0
  341. package/dist/features/price-index/market-stats.js +230 -0
  342. package/dist/features/print/components/BoxLabelPrintView.d.ts +25 -0
  343. package/dist/features/print/components/BoxLabelPrintView.js +66 -0
  344. package/dist/features/print/components/LabelProfilePicker.d.ts +13 -0
  345. package/dist/features/print/components/LabelProfilePicker.js +38 -0
  346. package/dist/features/print/components/labels.d.ts +117 -0
  347. package/dist/features/print/components/labels.js +258 -0
  348. package/dist/features/print/components/labels.style.css +46 -0
  349. package/dist/features/print/index.d.ts +6 -0
  350. package/dist/features/print/index.js +16 -0
  351. package/dist/features/products/columns/productTableColumns.js +5 -4
  352. package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
  353. package/dist/features/products/components/MarketplacePrizeDrawCard.js +6 -6
  354. package/dist/features/products/components/PrizeDrawCollage.js +1 -1
  355. package/dist/features/products/components/PrizeDrawItemsEditor.js +1 -1
  356. package/dist/features/products/components/PrizeRevealModal.js +2 -2
  357. package/dist/features/products/components/ProductDetailPageView.js +18 -4
  358. package/dist/features/products/components/ProductForm.js +34 -23
  359. package/dist/features/products/components/ProductGrid.js +86 -62
  360. package/dist/features/products/constants/card-badges.d.ts +97 -0
  361. package/dist/features/products/constants/card-badges.js +100 -0
  362. package/dist/features/products/repository/products.repository.js +34 -1
  363. package/dist/features/products/schemas/firestore.d.ts +46 -3
  364. package/dist/features/products/schemas/firestore.js +21 -0
  365. package/dist/features/promotions/components/PromotionsView.js +1 -1
  366. package/dist/features/promotions/repository/claimed-coupons.repository.d.ts +32 -0
  367. package/dist/features/promotions/repository/claimed-coupons.repository.js +58 -0
  368. package/dist/features/promotions/schemas/firestore.js +30 -3
  369. package/dist/features/promotions/schemas/index.d.ts +6 -6
  370. package/dist/features/protection-claims/repository/protection-claims.repository.d.ts +54 -0
  371. package/dist/features/protection-claims/repository/protection-claims.repository.js +174 -0
  372. package/dist/features/protection-claims/schemas/firestore.d.ts +168 -0
  373. package/dist/features/protection-claims/schemas/firestore.js +130 -0
  374. package/dist/features/reviews/actions/review-actions.js +3 -2
  375. package/dist/features/reviews/components/ReviewModal.js +1 -1
  376. package/dist/features/reviews/components/ReviewsList.js +1 -1
  377. package/dist/features/reviews/schemas/firestore.d.ts +20 -1
  378. package/dist/features/scams/constants/scam-types.d.ts +2 -0
  379. package/dist/features/scams/constants/scam-types.js +18 -0
  380. package/dist/features/scams/schemas/report-form.d.ts +3 -3
  381. package/dist/features/scams/schemas/report-form.js +26 -1
  382. package/dist/features/search/components/Search.js +9 -9
  383. package/dist/features/search/components/SearchResultsClient.js +18 -3
  384. package/dist/features/search/components/SearchResultsPageView.d.ts +1 -6
  385. package/dist/features/search/components/SearchResultsPageView.js +2 -2
  386. package/dist/features/seller/actions/offer-actions.js +16 -1
  387. package/dist/features/seller/actions/seller-actions.js +14 -3
  388. package/dist/features/seller/components/CategoryInlineSelect.js +75 -11
  389. package/dist/features/seller/components/PrintCenterView.d.ts +5 -0
  390. package/dist/features/seller/components/PrintCenterView.js +41 -30
  391. package/dist/features/seller/components/SellerOrdersView.js +1 -1
  392. package/dist/features/seller/components/SellerPayoutRequestView.js +16 -5
  393. package/dist/features/seller/components/SellerPayoutSettingsView.js +1 -1
  394. package/dist/features/seller/components/SellerProductShell.d.ts +16 -0
  395. package/dist/features/seller/components/SellerProductShell.js +123 -13
  396. package/dist/features/seller/components/SellerReviewsView.js +4 -2
  397. package/dist/features/seller/components/SellerSidebar.js +1 -1
  398. package/dist/features/seller/schemas/coupon-form.d.ts +26 -0
  399. package/dist/features/seller/schemas/coupon-form.js +27 -0
  400. package/dist/features/seller/schemas/product-form.d.ts +3 -0
  401. package/dist/features/seller/schemas/product-form.js +5 -0
  402. package/dist/features/shell/FormShell.js +2 -2
  403. package/dist/features/shell/QuickFormDrawer.js +14 -0
  404. package/dist/features/shell/SectionForm.d.ts +19 -0
  405. package/dist/features/shell/SectionForm.js +133 -9
  406. package/dist/features/shell/SectionForm.style.css +54 -0
  407. package/dist/features/shipments/components/AdminShipmentsView.js +16 -1
  408. package/dist/features/shipments/repository/shipment-items.repository.d.ts +9 -0
  409. package/dist/features/shipments/repository/shipment-items.repository.js +14 -0
  410. package/dist/features/site-settings/components/ActionPermissionsManager.js +1 -1
  411. package/dist/features/sticker-trace/components/StickerCommitPanel.js +1 -1
  412. package/dist/features/store-extensions/schemas/report-review-form.d.ts +8 -8
  413. package/dist/features/stores/components/StoreGuideHubView.js +1 -1
  414. package/dist/features/stores/components/StoreHeader.js +1 -1
  415. package/dist/features/support/schemas/firestore.d.ts +73 -2
  416. package/dist/features/support/schemas/firestore.js +59 -0
  417. package/dist/index.d.ts +16 -155
  418. package/dist/index.js +88 -341
  419. package/dist/next/ErrorBoundary.js +1 -1
  420. package/dist/next/routing/route-map.d.ts +24 -0
  421. package/dist/next/routing/route-map.js +40 -0
  422. package/dist/providers/payment-manual/index.d.ts +15 -1
  423. package/dist/providers/payment-manual/index.js +37 -0
  424. package/dist/providers/payment-phonepe/index.d.ts +14 -1
  425. package/dist/providers/payment-phonepe/index.js +36 -0
  426. package/dist/providers/payment-razorpay/index.d.ts +44 -1
  427. package/dist/providers/payment-razorpay/index.js +99 -0
  428. package/dist/providers/shipping-shiprocket/index.d.ts +18 -0
  429. package/dist/providers/shipping-shiprocket/index.js +18 -0
  430. package/dist/schemas/registry.d.ts +44 -11
  431. package/dist/server-entry.d.ts +2 -0
  432. package/dist/server-entry.js +27 -0
  433. package/dist/server.d.ts +42 -69
  434. package/dist/server.js +93 -69
  435. package/dist/styles.css +418 -149
  436. package/dist/tailwind-utilities.css +1 -1
  437. package/dist/tokens/themes/default-dark.js +15 -12
  438. package/dist/tokens/themes/default-light.js +14 -11
  439. package/dist/tokens/tokens.css +106 -23
  440. package/dist/ui/DataTable.style.css +4 -4
  441. package/dist/ui/columns/cell-renderers.d.ts +20 -0
  442. package/dist/ui/columns/cell-renderers.js +26 -1
  443. package/dist/ui/columns/index.d.ts +1 -1
  444. package/dist/ui/columns/index.js +4 -1
  445. package/dist/ui/components/Badge.style.css +1 -1
  446. package/dist/ui/components/Breadcrumb.js +19 -1
  447. package/dist/ui/components/BulkActionBar.style.css +4 -4
  448. package/dist/ui/components/Button.style.css +1 -1
  449. package/dist/ui/components/Checkbox.style.css +1 -1
  450. package/dist/ui/components/FallbackShell.js +1 -1
  451. package/dist/ui/components/Form.d.ts +14 -1
  452. package/dist/ui/components/Form.js +2 -2
  453. package/dist/ui/components/FormField.js +18 -4
  454. package/dist/ui/components/FormField.style.css +43 -3
  455. package/dist/ui/components/GatedPrice.style.css +1 -1
  456. package/dist/ui/components/IconButton.style.css +1 -1
  457. package/dist/ui/components/Input.js +22 -1
  458. package/dist/ui/components/Input.style.css +38 -22
  459. package/dist/ui/components/ListingFilterDrawer.js +1 -1
  460. package/dist/ui/components/ListingToolbar.js +1 -1
  461. package/dist/ui/components/PaginatedSelect.js +0 -0
  462. package/dist/ui/components/Radio.style.css +1 -1
  463. package/dist/ui/components/Repeater.d.ts +53 -0
  464. package/dist/ui/components/Repeater.js +7 -0
  465. package/dist/ui/components/RichTextEditor.d.ts +20 -1
  466. package/dist/ui/components/RichTextEditor.js +23 -2
  467. package/dist/ui/components/Select.style.css +7 -21
  468. package/dist/ui/components/Semantic.js +27 -3
  469. package/dist/ui/components/TagInput.style.css +4 -9
  470. package/dist/ui/components/Textarea.style.css +4 -18
  471. package/dist/ui/components/Toggle.style.css +1 -1
  472. package/dist/ui/components/Typography.d.ts +3 -3
  473. package/dist/ui/components/Typography.js +15 -15
  474. package/dist/ui/components/ViewToggle.style.css +4 -4
  475. package/dist/ui/forms/AddAnotherToggle.d.ts +16 -0
  476. package/dist/ui/forms/AddAnotherToggle.js +56 -0
  477. package/dist/ui/forms/ColorPickerField.js +15 -2
  478. package/dist/ui/forms/FieldCheckbox.js +15 -2
  479. package/dist/ui/forms/FieldInput.d.ts +22 -1
  480. package/dist/ui/forms/FieldInput.js +19 -5
  481. package/dist/ui/forms/FieldLabel.d.ts +35 -0
  482. package/dist/ui/forms/FieldLabel.js +70 -0
  483. package/dist/ui/forms/FieldSelect.d.ts +4 -1
  484. package/dist/ui/forms/FieldSelect.js +27 -5
  485. package/dist/ui/forms/FieldTextarea.d.ts +4 -1
  486. package/dist/ui/forms/FieldTextarea.js +22 -5
  487. package/dist/ui/forms/FormShell.d.ts +17 -1
  488. package/dist/ui/forms/FormShell.js +36 -2
  489. package/dist/ui/forms/FormShell.style.css +41 -33
  490. package/dist/ui/forms/index.d.ts +5 -1
  491. package/dist/ui/forms/index.js +2 -0
  492. package/dist/ui/icons/icon-registry.d.ts +1 -0
  493. package/dist/ui/icons/icon-registry.js +17 -1
  494. package/dist/utils/id-generators.d.ts +80 -0
  495. package/dist/utils/id-generators.js +93 -0
  496. package/dist/utils/search-txt-builders.d.ts +12 -0
  497. package/dist/utils/search-txt-builders.js +17 -0
  498. package/package.json +4 -2
  499. package/scripts/seed-cli.mjs +175 -6
  500. package/dist/features/loyalty/api/admin/loyalty/grant/route.d.ts +0 -12
  501. package/dist/features/loyalty/api/admin/loyalty/grant/route.js +0 -38
  502. package/dist/features/loyalty/api/balance/route.d.ts +0 -12
  503. package/dist/features/loyalty/api/balance/route.js +0 -41
  504. package/dist/features/loyalty/api/earn/route.d.ts +0 -12
  505. package/dist/features/loyalty/api/earn/route.js +0 -38
  506. package/dist/features/loyalty/api/history/route.d.ts +0 -12
  507. package/dist/features/loyalty/api/history/route.js +0 -58
  508. package/dist/features/loyalty/api/redeem/route.d.ts +0 -12
  509. package/dist/features/loyalty/api/redeem/route.js +0 -38
  510. package/dist/features/loyalty/columns/index.d.ts +0 -17
  511. package/dist/features/loyalty/columns/index.js +0 -40
  512. package/dist/features/loyalty/components/CoinsDisplay.d.ts +0 -12
  513. package/dist/features/loyalty/components/CoinsDisplay.js +0 -10
  514. package/dist/features/loyalty/components/index.d.ts +0 -1
  515. package/dist/features/loyalty/components/index.js +0 -1
  516. package/dist/features/loyalty/hooks/useLoyaltyBalance.d.ts +0 -4
  517. package/dist/features/loyalty/hooks/useLoyaltyBalance.js +0 -25
  518. package/dist/features/loyalty/index.d.ts +0 -6
  519. package/dist/features/loyalty/index.js +0 -6
  520. package/dist/features/loyalty/manifest.d.ts +0 -2
  521. package/dist/features/loyalty/manifest.js +0 -16
  522. package/dist/features/loyalty/messages/en.json +0 -19
  523. package/dist/features/loyalty/repository/loyalty.repository.d.ts +0 -8
  524. package/dist/features/loyalty/repository/loyalty.repository.js +0 -22
  525. package/dist/features/loyalty/schemas/index.d.ts +0 -85
  526. package/dist/features/loyalty/schemas/index.js +0 -40
  527. package/dist/features/loyalty/server.d.ts +0 -6
  528. package/dist/features/loyalty/server.js +0 -6
  529. package/dist/features/loyalty/types/index.d.ts +0 -31
  530. package/dist/features/loyalty/types/index.js +0 -1
  531. package/dist/features/loyalty/types/loyalty-config.d.ts +0 -7
  532. package/dist/features/loyalty/types/loyalty-config.js +0 -1
  533. package/dist/features/loyalty/types/loyalty-math.d.ts +0 -9
  534. package/dist/features/loyalty/types/loyalty-math.js +0 -27
  535. package/dist/features/products/components/ProductOwnerQuickActions.d.ts +0 -11
  536. package/dist/features/products/components/ProductOwnerQuickActions.js +0 -120
  537. package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
  538. package/dist/features/tester/seed-data/_happy-path.js +0 -710
  539. package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
  540. package/dist/features/tester/seed-data/_money-flows.js +0 -610
  541. package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
  542. package/dist/features/tester/seed-data/authored/_types.js +0 -35
  543. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
  544. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
  545. package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
  546. package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
  547. package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
  548. package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
  549. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
  550. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
  551. package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
  552. package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
  553. package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
  554. package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
  555. package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
  556. package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
  557. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
  558. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
  559. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
  560. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
  561. package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
  562. package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
  563. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
  564. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
  565. package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
  566. package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
  567. package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
  568. package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
  569. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
  570. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
  571. package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
  572. package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
  573. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
  574. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
  575. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
  576. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
  577. package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
  578. package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
  579. package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
  580. package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
  581. package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
  582. package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
  583. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
  584. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
  585. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
  586. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
  587. package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
  588. package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
  589. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
  590. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
  591. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
  592. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
  593. package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
  594. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
  595. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
  596. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
  597. package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
  598. package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
  599. package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
  600. package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
  601. package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
  602. package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
  603. package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
  604. package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
  605. package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
  606. package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
  607. package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
  608. package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
  609. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
  610. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
  611. package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
  612. package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
  613. package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
  614. package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
  615. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
  616. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
  617. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
  618. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
  619. package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
  620. package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
  621. package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
  622. package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
  623. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
  624. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
  625. package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
  626. package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
  627. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
  628. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
  629. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
  630. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
  631. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
  632. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
  633. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
  634. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
  635. package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
  636. package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
  637. package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
  638. package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
  639. package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
  640. package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
  641. package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
  642. package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
  643. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
  644. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
  645. package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
  646. package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
  647. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
  648. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
  649. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
  650. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
  651. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
  652. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
  653. package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
  654. package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
  655. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
  656. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
  657. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
  658. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
  659. package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
  660. package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
  661. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
  662. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
  663. package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
  664. package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
  665. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
  666. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
  667. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
  668. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
  669. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
  670. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
  671. package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
  672. package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
  673. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
  674. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
  675. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
  676. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
  677. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
  678. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
  679. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
  680. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
  681. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
  682. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
  683. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
  684. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
  685. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
  686. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
  687. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
  688. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
  689. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
  690. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
  691. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
  692. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
  693. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
  694. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
  695. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
  696. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
  697. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
  698. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
  699. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
  700. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
  701. package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
  702. package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
  703. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
  704. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
  705. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
  706. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
  707. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
  708. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
  709. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
  710. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
  711. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
  712. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
  713. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
  714. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
  715. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
  716. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
  717. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
  718. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
  719. package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
  720. package/dist/features/tester/seed-data/authored/index.js +0 -301
  721. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
  722. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
  723. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
  724. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
  725. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
  726. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
  727. package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
  728. package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
  729. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
  730. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
  731. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
  732. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
  733. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
  734. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
  735. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
  736. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
  737. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
  738. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
  739. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
  740. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
  741. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
  742. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
  743. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
  744. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
  745. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
  746. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
  747. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
  748. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
  749. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
  750. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
  751. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
  752. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
  753. package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
  754. package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
  755. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
  756. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
  757. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
  758. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
  759. package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
  760. package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
  761. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
  762. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
  763. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
  764. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
  765. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
  766. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
  767. package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
  768. package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
  769. package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
  770. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
  771. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
  772. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
  773. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
  774. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
  775. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
  776. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
  777. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
  778. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
  779. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
  780. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
  781. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
  782. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
  783. package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
  784. package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
  785. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
  786. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
  787. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
  788. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
  789. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
  790. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
  791. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
  792. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
  793. package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
  794. package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
  795. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
  796. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
  797. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
  798. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
  799. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
  800. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
  801. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
  802. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
  803. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
  804. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
  805. package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
  806. package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
  807. package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
  808. package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
  809. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
  810. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
  811. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
  812. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
  813. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
  814. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
  815. package/dist/features/tester/seed-data/index.d.ts +0 -2
  816. package/dist/features/tester/seed-data/index.js +0 -2
  817. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
  818. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
  819. package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
  820. package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
  821. package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
  822. package/dist/features/tester/seed-data/tester-window.js +0 -66
  823. package/dist/seed/_helpers/brand-rows.d.ts +0 -35
  824. package/dist/seed/_helpers/brand-rows.js +0 -600
  825. package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
  826. package/dist/seed/_helpers/category-content-generated.js +0 -1853
  827. package/dist/seed/_helpers/category-content.d.ts +0 -68
  828. package/dist/seed/_helpers/category-content.js +0 -731
  829. package/dist/seed/_helpers/category-forest.d.ts +0 -4
  830. package/dist/seed/_helpers/category-forest.js +0 -824
  831. package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
  832. package/dist/seed/_helpers/category-images-generated.js +0 -618
  833. package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
  834. package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
  835. package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
  836. package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
  837. package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
  838. package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
  839. package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
  840. package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
  841. package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
  842. package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
  843. package/dist/seed/_helpers/category-models.d.ts +0 -12
  844. package/dist/seed/_helpers/category-models.js +0 -45
  845. package/dist/seed/_helpers/category-names.d.ts +0 -54
  846. package/dist/seed/_helpers/category-names.js +0 -118
  847. package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
  848. package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
  849. package/dist/seed/_helpers/category-parts.d.ts +0 -9
  850. package/dist/seed/_helpers/category-parts.js +0 -15022
  851. package/dist/seed/_helpers/category-tree.d.ts +0 -27
  852. package/dist/seed/_helpers/category-tree.js +0 -119
  853. package/dist/seed/_helpers/character-features.d.ts +0 -10
  854. package/dist/seed/_helpers/character-features.js +0 -120
  855. package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
  856. package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
  857. package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
  858. package/dist/seed/_helpers/franchise-rows.js +0 -189
  859. package/dist/seed/_helpers/media.d.ts +0 -67
  860. package/dist/seed/_helpers/media.js +0 -172
  861. package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
  862. package/dist/seed/_helpers/part-colours-generated.js +0 -273
  863. package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
  864. package/dist/seed/_helpers/product-search-txt.js +0 -23
  865. package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
  866. package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
  867. package/dist/seed/addresses-seed-data.d.ts +0 -2
  868. package/dist/seed/addresses-seed-data.js +0 -78
  869. package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
  870. package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
  871. package/dist/seed/bey-products-seed-data.d.ts +0 -18
  872. package/dist/seed/bey-products-seed-data.js +0 -18011
  873. package/dist/seed/beys/chunk0.d.ts +0 -17
  874. package/dist/seed/beys/chunk0.js +0 -36733
  875. package/dist/seed/beys/chunk1.d.ts +0 -17
  876. package/dist/seed/beys/chunk1.js +0 -35728
  877. package/dist/seed/beys/chunk2.d.ts +0 -17
  878. package/dist/seed/beys/chunk2.js +0 -35857
  879. package/dist/seed/beys/chunk3.d.ts +0 -17
  880. package/dist/seed/beys/chunk3.js +0 -34476
  881. package/dist/seed/beys-seed-data.d.ts +0 -18
  882. package/dist/seed/beys-seed-data.js +0 -11
  883. package/dist/seed/bids-seed-data.d.ts +0 -2
  884. package/dist/seed/bids-seed-data.js +0 -206
  885. package/dist/seed/blog-posts-seed-data.d.ts +0 -6
  886. package/dist/seed/blog-posts-seed-data.js +0 -442
  887. package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
  888. package/dist/seed/carousel-slides-seed-data.js +0 -411
  889. package/dist/seed/carousels-seed-data.d.ts +0 -2
  890. package/dist/seed/carousels-seed-data.js +0 -36
  891. package/dist/seed/cart-seed-data.d.ts +0 -2
  892. package/dist/seed/cart-seed-data.js +0 -241
  893. package/dist/seed/catalogue-seed-data.d.ts +0 -2
  894. package/dist/seed/catalogue-seed-data.js +0 -112
  895. package/dist/seed/categories-seed-data.d.ts +0 -3
  896. package/dist/seed/categories-seed-data.js +0 -816
  897. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
  898. package/dist/seed/claimed-coupons-seed-data.js +0 -85
  899. package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
  900. package/dist/seed/coupon-usage-seed-data.js +0 -55
  901. package/dist/seed/coupons-seed-data.d.ts +0 -2
  902. package/dist/seed/coupons-seed-data.js +0 -226
  903. package/dist/seed/defaults/categories.d.ts +0 -2
  904. package/dist/seed/defaults/categories.js +0 -12
  905. package/dist/seed/defaults/faqs.d.ts +0 -2
  906. package/dist/seed/defaults/faqs.js +0 -40
  907. package/dist/seed/events-seed-data.d.ts +0 -7
  908. package/dist/seed/events-seed-data.js +0 -482
  909. package/dist/seed/factories/address.factory.d.ts +0 -21
  910. package/dist/seed/factories/address.factory.js +0 -44
  911. package/dist/seed/factories/bid.factory.d.ts +0 -15
  912. package/dist/seed/factories/bid.factory.js +0 -33
  913. package/dist/seed/factories/blog-post.factory.d.ts +0 -15
  914. package/dist/seed/factories/blog-post.factory.js +0 -22
  915. package/dist/seed/factories/carousel.factory.d.ts +0 -11
  916. package/dist/seed/factories/carousel.factory.js +0 -17
  917. package/dist/seed/factories/cart.factory.d.ts +0 -25
  918. package/dist/seed/factories/cart.factory.js +0 -35
  919. package/dist/seed/factories/category.factory.d.ts +0 -11
  920. package/dist/seed/factories/category.factory.js +0 -16
  921. package/dist/seed/factories/coupon.factory.d.ts +0 -21
  922. package/dist/seed/factories/coupon.factory.js +0 -43
  923. package/dist/seed/factories/faq.factory.d.ts +0 -10
  924. package/dist/seed/factories/faq.factory.js +0 -15
  925. package/dist/seed/factories/notification.factory.d.ts +0 -18
  926. package/dist/seed/factories/notification.factory.js +0 -39
  927. package/dist/seed/factories/order.factory.d.ts +0 -20
  928. package/dist/seed/factories/order.factory.js +0 -20
  929. package/dist/seed/factories/payout.factory.d.ts +0 -21
  930. package/dist/seed/factories/payout.factory.js +0 -38
  931. package/dist/seed/factories/product.factory.d.ts +0 -27
  932. package/dist/seed/factories/product.factory.js +0 -80
  933. package/dist/seed/factories/review.factory.d.ts +0 -14
  934. package/dist/seed/factories/review.factory.js +0 -52
  935. package/dist/seed/factories/session.factory.d.ts +0 -15
  936. package/dist/seed/factories/session.factory.js +0 -31
  937. package/dist/seed/factories/store.factory.d.ts +0 -23
  938. package/dist/seed/factories/store.factory.js +0 -47
  939. package/dist/seed/factories/user.factory.d.ts +0 -19
  940. package/dist/seed/factories/user.factory.js +0 -56
  941. package/dist/seed/faq-seed-data.d.ts +0 -18
  942. package/dist/seed/faq-seed-data.js +0 -1956
  943. package/dist/seed/firestore-indexes.d.ts +0 -12
  944. package/dist/seed/firestore-indexes.js +0 -31
  945. package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
  946. package/dist/seed/grouped-listings-seed-data.js +0 -283
  947. package/dist/seed/history-seed-data.d.ts +0 -12
  948. package/dist/seed/history-seed-data.js +0 -70
  949. package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
  950. package/dist/seed/homepage-sections-seed-data.js +0 -1034
  951. package/dist/seed/index.d.ts +0 -100
  952. package/dist/seed/index.js +0 -115
  953. package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
  954. package/dist/seed/lottery-entries-seed-data.js +0 -108
  955. package/dist/seed/manifest.d.ts +0 -16
  956. package/dist/seed/manifest.js +0 -235
  957. package/dist/seed/media-assets-seed-data.d.ts +0 -22
  958. package/dist/seed/media-assets-seed-data.js +0 -5593
  959. package/dist/seed/model-composition-seed-data.d.ts +0 -15
  960. package/dist/seed/model-composition-seed-data.js +0 -9032
  961. package/dist/seed/notifications-seed-data.d.ts +0 -2
  962. package/dist/seed/notifications-seed-data.js +0 -606
  963. package/dist/seed/offers-seed-data.d.ts +0 -2
  964. package/dist/seed/offers-seed-data.js +0 -398
  965. package/dist/seed/orders-seed-data.d.ts +0 -2
  966. package/dist/seed/orders-seed-data.js +0 -845
  967. package/dist/seed/part-glossary/chunk0.d.ts +0 -9
  968. package/dist/seed/part-glossary/chunk0.js +0 -35448
  969. package/dist/seed/part-glossary/chunk1.d.ts +0 -9
  970. package/dist/seed/part-glossary/chunk1.js +0 -40494
  971. package/dist/seed/part-glossary/chunk2.d.ts +0 -9
  972. package/dist/seed/part-glossary/chunk2.js +0 -51242
  973. package/dist/seed/part-glossary/chunk3.d.ts +0 -9
  974. package/dist/seed/part-glossary/chunk3.js +0 -53337
  975. package/dist/seed/part-glossary/chunk4.d.ts +0 -9
  976. package/dist/seed/part-glossary/chunk4.js +0 -51454
  977. package/dist/seed/part-glossary-seed-data.d.ts +0 -15
  978. package/dist/seed/part-glossary-seed-data.js +0 -25
  979. package/dist/seed/payouts-seed-data.d.ts +0 -2
  980. package/dist/seed/payouts-seed-data.js +0 -302
  981. package/dist/seed/product-features-seed-data.d.ts +0 -3
  982. package/dist/seed/product-features-seed-data.js +0 -366
  983. package/dist/seed/products-art-seed-data.d.ts +0 -2
  984. package/dist/seed/products-art-seed-data.js +0 -289
  985. package/dist/seed/products-auctions-seed-data.d.ts +0 -2
  986. package/dist/seed/products-auctions-seed-data.js +0 -475
  987. package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
  988. package/dist/seed/products-beyblade-x-seed-data.js +0 -476
  989. package/dist/seed/products-catalogue/chunk0.d.ts +0 -12
  990. package/dist/seed/products-catalogue/chunk0.js +0 -7262
  991. package/dist/seed/products-catalogue/chunk1.d.ts +0 -12
  992. package/dist/seed/products-catalogue/chunk1.js +0 -7290
  993. package/dist/seed/products-catalogue/chunk10.d.ts +0 -12
  994. package/dist/seed/products-catalogue/chunk10.js +0 -7290
  995. package/dist/seed/products-catalogue/chunk11.d.ts +0 -12
  996. package/dist/seed/products-catalogue/chunk11.js +0 -7005
  997. package/dist/seed/products-catalogue/chunk12.d.ts +0 -12
  998. package/dist/seed/products-catalogue/chunk12.js +0 -7002
  999. package/dist/seed/products-catalogue/chunk13.d.ts +0 -12
  1000. package/dist/seed/products-catalogue/chunk13.js +0 -7002
  1001. package/dist/seed/products-catalogue/chunk14.d.ts +0 -12
  1002. package/dist/seed/products-catalogue/chunk14.js +0 -7002
  1003. package/dist/seed/products-catalogue/chunk15.d.ts +0 -12
  1004. package/dist/seed/products-catalogue/chunk15.js +0 -7002
  1005. package/dist/seed/products-catalogue/chunk16.d.ts +0 -12
  1006. package/dist/seed/products-catalogue/chunk16.js +0 -7002
  1007. package/dist/seed/products-catalogue/chunk17.d.ts +0 -12
  1008. package/dist/seed/products-catalogue/chunk17.js +0 -7002
  1009. package/dist/seed/products-catalogue/chunk18.d.ts +0 -12
  1010. package/dist/seed/products-catalogue/chunk18.js +0 -4398
  1011. package/dist/seed/products-catalogue/chunk2.d.ts +0 -12
  1012. package/dist/seed/products-catalogue/chunk2.js +0 -7268
  1013. package/dist/seed/products-catalogue/chunk3.d.ts +0 -12
  1014. package/dist/seed/products-catalogue/chunk3.js +0 -7264
  1015. package/dist/seed/products-catalogue/chunk4.d.ts +0 -12
  1016. package/dist/seed/products-catalogue/chunk4.js +0 -7268
  1017. package/dist/seed/products-catalogue/chunk5.d.ts +0 -12
  1018. package/dist/seed/products-catalogue/chunk5.js +0 -7258
  1019. package/dist/seed/products-catalogue/chunk6.d.ts +0 -12
  1020. package/dist/seed/products-catalogue/chunk6.js +0 -7268
  1021. package/dist/seed/products-catalogue/chunk7.d.ts +0 -12
  1022. package/dist/seed/products-catalogue/chunk7.js +0 -7311
  1023. package/dist/seed/products-catalogue/chunk8.d.ts +0 -12
  1024. package/dist/seed/products-catalogue/chunk8.js +0 -7304
  1025. package/dist/seed/products-catalogue/chunk9.d.ts +0 -12
  1026. package/dist/seed/products-catalogue/chunk9.js +0 -7309
  1027. package/dist/seed/products-catalogue-seed-data.d.ts +0 -2
  1028. package/dist/seed/products-catalogue-seed-data.js +0 -60
  1029. package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
  1030. package/dist/seed/products-classifieds-seed-data.js +0 -435
  1031. package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
  1032. package/dist/seed/products-digital-codes-seed-data.js +0 -395
  1033. package/dist/seed/products-live-items-seed-data.d.ts +0 -7
  1034. package/dist/seed/products-live-items-seed-data.js +0 -269
  1035. package/dist/seed/products-preorders-seed-data.d.ts +0 -2
  1036. package/dist/seed/products-preorders-seed-data.js +0 -360
  1037. package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
  1038. package/dist/seed/products-prize-draws-seed-data.js +0 -427
  1039. package/dist/seed/products-spares-seed-data.d.ts +0 -2
  1040. package/dist/seed/products-spares-seed-data.js +0 -368
  1041. package/dist/seed/products-standard-seed-data.d.ts +0 -2
  1042. package/dist/seed/products-standard-seed-data.js +0 -632
  1043. package/dist/seed/products-stickers-seed-data.d.ts +0 -2
  1044. package/dist/seed/products-stickers-seed-data.js +0 -319
  1045. package/dist/seed/reviews-seed-data.d.ts +0 -1
  1046. package/dist/seed/reviews-seed-data.js +0 -185
  1047. package/dist/seed/runner.d.ts +0 -2
  1048. package/dist/seed/runner.js +0 -125
  1049. package/dist/seed/scammers-seed-data.d.ts +0 -2
  1050. package/dist/seed/scammers-seed-data.js +0 -235
  1051. package/dist/seed/seed-market-config.d.ts +0 -48
  1052. package/dist/seed/seed-market-config.js +0 -199
  1053. package/dist/seed/seed-purpose.d.ts +0 -299
  1054. package/dist/seed/seed-purpose.js +0 -440
  1055. package/dist/seed/sessions-seed-data.d.ts +0 -3
  1056. package/dist/seed/sessions-seed-data.js +0 -116
  1057. package/dist/seed/shipments-seed-data.d.ts +0 -5
  1058. package/dist/seed/shipments-seed-data.js +0 -185
  1059. package/dist/seed/site-settings-seed-data.d.ts +0 -2
  1060. package/dist/seed/site-settings-seed-data.js +0 -1069
  1061. package/dist/seed/store-addresses-seed-data.d.ts +0 -18
  1062. package/dist/seed/store-addresses-seed-data.js +0 -71
  1063. package/dist/seed/store-extensions-seed-data.d.ts +0 -11
  1064. package/dist/seed/store-extensions-seed-data.js +0 -292
  1065. package/dist/seed/stores-seed-data.d.ts +0 -6
  1066. package/dist/seed/stores-seed-data.js +0 -242
  1067. package/dist/seed/support-tickets-seed-data.d.ts +0 -16
  1068. package/dist/seed/support-tickets-seed-data.js +0 -239
  1069. package/dist/seed/tax-codes-seed-data.d.ts +0 -34
  1070. package/dist/seed/tax-codes-seed-data.js +0 -100
  1071. package/dist/seed/test-data-ttl.d.ts +0 -29
  1072. package/dist/seed/test-data-ttl.js +0 -31
  1073. package/dist/seed/test-utils.d.ts +0 -49
  1074. package/dist/seed/test-utils.js +0 -110
  1075. package/dist/seed/types.d.ts +0 -89
  1076. package/dist/seed/types.js +0 -15
  1077. package/dist/seed/users-seed-data.d.ts +0 -2
  1078. package/dist/seed/users-seed-data.js +0 -597
  1079. package/dist/seed/wishlists-seed-data.d.ts +0 -12
  1080. package/dist/seed/wishlists-seed-data.js +0 -54
@@ -0,0 +1,170 @@
1
+ import type { DocumentReference } from "firebase-admin/firestore";
2
+ import type { FirebaseSieveFields, FirebaseSieveResult, SieveModel } from "../../../providers/db-firebase";
3
+ import { BaseRepository } from "../../../providers/db-firebase";
4
+ import { type PaymentCaseDocument, type PaymentCaseKind, type PaymentCaseSeverity, type PaymentCaseStatus } from "../schemas/firestore";
5
+ export interface OpenCaseInput {
6
+ kind: PaymentCaseKind;
7
+ /** Identifies THE PROBLEM, not the observation — see `createPaymentCaseId`. */
8
+ subjectId: string;
9
+ severity: PaymentCaseSeverity;
10
+ title: string;
11
+ detail: string;
12
+ entityType: PaymentCaseDocument["entityType"];
13
+ entityId: string;
14
+ dueAt?: Date;
15
+ amountAtRisk?: number;
16
+ gatewayEventIds?: string[];
17
+ orderIds?: string[];
18
+ gatewayPaymentId?: string;
19
+ now?: Date;
20
+ }
21
+ export type OpenCaseResult = {
22
+ id: string;
23
+ /** `true` on first sight; `false` when an existing case was observed again. */
24
+ created: boolean;
25
+ };
26
+ export interface ResolveCaseInput {
27
+ /** `actioned` (a human did something) or `dismissed` (nothing was wrong). */
28
+ status: Extract<PaymentCaseStatus, "actioned" | "dismissed">;
29
+ /** Required, min 10 chars — see the 🛑 on `resolve`. */
30
+ resolution: string;
31
+ /**
32
+ * The admin uid. 🛑 There is no overload accepting `"system"`, and that
33
+ * absence is the enforcement — see `resolve`.
34
+ */
35
+ resolvedBy: string;
36
+ now?: Date;
37
+ }
38
+ export declare class PaymentCasesRepository extends BaseRepository<PaymentCaseDocument> {
39
+ static readonly SIEVE_FIELDS: FirebaseSieveFields;
40
+ constructor();
41
+ /**
42
+ * Open a case, or record another observation of one that already exists.
43
+ *
44
+ * 🛑 THIS IS WHAT MAKES IT SAFE TO RUN RECONCILERS ON A HOT CADENCE, and it
45
+ * is the reason the dedupe key is the document id. A reconciler that re-finds
46
+ * the same problem every 5 minutes for 30 days produces **one** case and
47
+ * **one** notification. Without that property the queue fills with duplicates
48
+ * of the same fact, an operator learns to ignore it, and the first real
49
+ * chargeback is lost in 8,000 rows of noise — which is a worse outcome than
50
+ * having no queue at all.
51
+ *
52
+ * On an existing case it increments `observedCount`, bumps `lastObservedAt`,
53
+ * and ESCALATES severity if the new observation is worse. It deliberately
54
+ * does not touch `title`, `detail`, `status`, `assignedTo` or `resolution` —
55
+ * a human may have edited those, and a sweep must not overwrite a human.
56
+ *
57
+ * 🛑 Severity escalates and never falls. A reconciler seeing a smaller
58
+ * manifestation of a known problem must not be able to quietly downgrade an
59
+ * `error` an operator has already been paged about.
60
+ */
61
+ openOrObserve(input: OpenCaseInput): Promise<OpenCaseResult>;
62
+ /**
63
+ * Resolve a case. **Humans only.**
64
+ *
65
+ * 🛑 A CASE IS NEVER AUTO-CLOSABLE, AND THAT IS ENFORCED BY THE ABSENCE OF A
66
+ * CODE PATH RATHER THAN BY A FLAG.
67
+ *
68
+ * There is no overload a job can call: `resolvedBy` is required, `"system"`
69
+ * is rejected at runtime, and `resolution` has a length floor. A rule
70
+ * enforced by a boolean can be flipped by whoever is in a hurry; a rule
71
+ * enforced by there being no function to call cannot.
72
+ *
73
+ * The reason this matters more than it looks: every case here is money, and
74
+ * the thing that closes a money case is a human understanding what happened.
75
+ * A sweep that closed its own cases would turn the queue into a log — and a
76
+ * log that scrolls is exactly what the 2026-10-21 incident had instead of a
77
+ * record.
78
+ *
79
+ * A reconciler that no longer sees the problem calls `markSelfHealed`.
80
+ */
81
+ resolve(id: string, input: ResolveCaseInput): Promise<void>;
82
+ /**
83
+ * A reconciler no longer observes the problem.
84
+ *
85
+ * 🛑 Writes `selfHealedAt` and NOTHING ELSE — the status stays whatever it
86
+ * was. "The symptom is gone" and "somebody understands why" are different
87
+ * facts, and conflating them on a money case is how a hand-refunded payment
88
+ * gets filed as fixed.
89
+ */
90
+ markSelfHealed(id: string, now?: Date): Promise<void>;
91
+ assign(id: string, assignedTo: string, now?: Date): Promise<void>;
92
+ /**
93
+ * Open + under-review, worst first, then most-recently-observed first.
94
+ *
95
+ * ## 🛑 `orderBy(SEVERITY)` IS THE BUG THIS FIXES — never put it back
96
+ *
97
+ * This read `.orderBy(SEVERITY, "desc").orderBy(LAST_OBSERVED_AT, "desc")`
98
+ * under the docstring "worst first". **It returned the opposite.** `severity`
99
+ * stores the STRINGS `error` / `warning` / `info`, and Firestore orders
100
+ * strings lexicographically — so `desc` yields **warning, info, error**, the
101
+ * most urgent cases last, in the one query whose whole job is to put them
102
+ * first. Nothing errored; the list was simply backwards.
103
+ *
104
+ * So the QUERY now selects its window by `lastObservedAt` — always written by
105
+ * `openOrObserve`, one index, no composite on an enum — and the ORDER is
106
+ * applied in memory from `PAYMENT_CASE_SEVERITY_RANK`, which already exists
107
+ * and is exact. A stored numeric rank would also work and is worse: a second
108
+ * representation of severity that can drift from the first.
109
+ *
110
+ * ## Why it SURVIVED, and what measuring corrected
111
+ *
112
+ * The order was wrong and harmless, because **neither consumer reads it** —
113
+ * `countActiveBySeverity` tallies and `activeGatewayEventIds` collects into a
114
+ * Set. Two of my own assumptions were false and are recorded so they are not
115
+ * re-assumed:
116
+ *
117
+ * · *"the digest reads this"* — it does NOT. `dailyStatusDigest` runs three
118
+ * `.count()` queries, one per severity, so it never ordered by severity
119
+ * and was correct throughout.
120
+ * · *"it has zero consumers, so delete it"* — it has TWO, both in this
121
+ * file. A grep for `listActive()` with empty parentheses missed
122
+ * `listActive(500)` twice, and deleting on that basis would have broken
123
+ * the digest's counts and the gateway-event retention exclusion.
124
+ *
125
+ * 🛑 The order DOES still matter to those two, via the WINDOW: at >500 active
126
+ * cases, a severity-ordered window filled with alphabetically-first
127
+ * `warning`s would have cut `error`s out of the count entirely. Theoretical
128
+ * at this volume, real in principle, and fixed by the same change.
129
+ *
130
+ * `/admin/money-cases` deliberately does NOT use this — `DataListingView`
131
+ * needs pagination, filters and a sort dropdown, so it goes through the Sieve
132
+ * `list()` below. That view's `sortOptions` carries the matching 🛑 about why
133
+ * it offers no severity sort: same arithmetic, found at the same time.
134
+ */
135
+ listActive(limit?: number): Promise<PaymentCaseDocument[]>;
136
+ /**
137
+ * Active cases whose external deadline falls inside `horizon`.
138
+ *
139
+ * 🛑 One equality (`status in`) and one inequality (`dueAt <=`), ordered by
140
+ * `dueAt` — the only shape Firestore serves without demanding the inequality
141
+ * field lead the sort (Root Cause #59).
142
+ *
143
+ * 🛑 A case with NO `dueAt` is structurally absent from this query, because a
144
+ * Firestore inequality excludes documents lacking the field (Root Cause
145
+ * #100). That is correct here and is worth stating so nobody "fixes" it: a
146
+ * case without a deadline cannot be nearly-overdue. It is NOT correct for
147
+ * `listActive`, which is why that one filters on `status` only.
148
+ */
149
+ listDueBefore(horizon: Date, limit?: number): Promise<PaymentCaseDocument[]>;
150
+ /**
151
+ * Counts by severity over active cases.
152
+ *
153
+ * 🛑 Its docstring said *"what the daily digest prints"* and that is FALSE,
154
+ * measured 2026-10-21: `dailyStatusDigest` runs its own three `.count()`
155
+ * aggregations against the collection directly — deliberately, because that
156
+ * file is reachable from the Functions bundle and avoids the repository. So
157
+ * this method currently has no caller, and the digest does not depend on it.
158
+ *
159
+ * Kept rather than deleted because `activeGatewayEventIds` beside it is live
160
+ * and shares `listActive`, so the pair earns its keep — but do not "wire the
161
+ * digest to it" on the strength of the old comment: three `.count()`s are
162
+ * cheaper than paging 500 documents to tally them.
163
+ */
164
+ countActiveBySeverity(): Promise<Record<PaymentCaseSeverity, number>>;
165
+ /** Every gateway-event id referenced by an ACTIVE case — the retention exclusion. */
166
+ activeGatewayEventIds(): Promise<Set<string>>;
167
+ listRefs(limit?: number): Promise<DocumentReference[]>;
168
+ list(model: SieveModel): Promise<FirebaseSieveResult<PaymentCaseDocument>>;
169
+ }
170
+ export declare function paymentCasesRepository(): PaymentCasesRepository;
@@ -0,0 +1,342 @@
1
+ import { BaseRepository, applySieveToFirestore, parseSieveDateValue, prepareForFirestore, } from "../../../providers/db-firebase/index.js";
2
+ import { normalizeError } from "../../../errors/normalize.js";
3
+ import { buildHistoryEntry } from "../../../_internal/shared/history/history.js";
4
+ import { PAYMENT_CASES_COLLECTION, PAYMENT_CASE_ACTIVE_STATUSES, PAYMENT_CASE_FIELDS, PAYMENT_CASE_RESOLUTION_MIN, PAYMENT_CASE_SEVERITY_RANK, createPaymentCaseId, } from "../schemas/firestore.js";
5
+ /** gRPC `ALREADY_EXISTS` — the one `.create()` failure meaning "we have it". */
6
+ const GRPC_ALREADY_EXISTS = 6;
7
+ function isAlreadyExists(err) {
8
+ if (typeof err !== "object" || err === null)
9
+ return false;
10
+ const code = err.code;
11
+ if (code === GRPC_ALREADY_EXISTS)
12
+ return true;
13
+ if (code === "already-exists" || code === "ALREADY_EXISTS")
14
+ return true;
15
+ const message = err.message;
16
+ return typeof message === "string" && message.includes("ALREADY_EXISTS");
17
+ }
18
+ export class PaymentCasesRepository extends BaseRepository {
19
+ constructor() {
20
+ super(PAYMENT_CASES_COLLECTION);
21
+ }
22
+ /**
23
+ * Open a case, or record another observation of one that already exists.
24
+ *
25
+ * 🛑 THIS IS WHAT MAKES IT SAFE TO RUN RECONCILERS ON A HOT CADENCE, and it
26
+ * is the reason the dedupe key is the document id. A reconciler that re-finds
27
+ * the same problem every 5 minutes for 30 days produces **one** case and
28
+ * **one** notification. Without that property the queue fills with duplicates
29
+ * of the same fact, an operator learns to ignore it, and the first real
30
+ * chargeback is lost in 8,000 rows of noise — which is a worse outcome than
31
+ * having no queue at all.
32
+ *
33
+ * On an existing case it increments `observedCount`, bumps `lastObservedAt`,
34
+ * and ESCALATES severity if the new observation is worse. It deliberately
35
+ * does not touch `title`, `detail`, `status`, `assignedTo` or `resolution` —
36
+ * a human may have edited those, and a sweep must not overwrite a human.
37
+ *
38
+ * 🛑 Severity escalates and never falls. A reconciler seeing a smaller
39
+ * manifestation of a known problem must not be able to quietly downgrade an
40
+ * `error` an operator has already been paged about.
41
+ */
42
+ async openOrObserve(input) {
43
+ const now = input.now ?? new Date();
44
+ const id = createPaymentCaseId(input.kind, input.subjectId);
45
+ const ref = this.getCollection().doc(id);
46
+ const doc = {
47
+ id,
48
+ kind: input.kind,
49
+ status: "open",
50
+ severity: input.severity,
51
+ title: input.title,
52
+ detail: input.detail,
53
+ entityType: input.entityType,
54
+ entityId: input.entityId,
55
+ dedupeKey: id,
56
+ observedCount: 1,
57
+ lastObservedAt: now,
58
+ ...(input.dueAt ? { dueAt: input.dueAt } : {}),
59
+ ...(typeof input.amountAtRisk === "number"
60
+ ? { amountAtRisk: input.amountAtRisk }
61
+ : {}),
62
+ ...(input.gatewayEventIds?.length ? { gatewayEventIds: input.gatewayEventIds } : {}),
63
+ ...(input.orderIds?.length ? { orderIds: input.orderIds } : {}),
64
+ ...(input.gatewayPaymentId ? { gatewayPaymentId: input.gatewayPaymentId } : {}),
65
+ statusHistory: [
66
+ buildHistoryEntry({
67
+ actor: { role: "system" },
68
+ trigger: `paymentCase:open:${input.kind}`,
69
+ changes: { status: { from: null, to: "open" } },
70
+ now,
71
+ }),
72
+ ],
73
+ createdAt: now,
74
+ updatedAt: now,
75
+ };
76
+ try {
77
+ await ref.create(prepareForFirestore(doc));
78
+ return { id, created: true };
79
+ }
80
+ catch (err) {
81
+ if (!isAlreadyExists(err)) {
82
+ void normalizeError(err);
83
+ throw err;
84
+ }
85
+ }
86
+ /*
87
+ * Already open. A transaction, because `observedCount` is a read-modify-
88
+ * write and two reconcilers can observe the same problem in the same tick —
89
+ * `FieldValue.increment` would handle the counter but not the conditional
90
+ * severity escalation, which needs the current value to compare.
91
+ */
92
+ try {
93
+ await this.db.runTransaction(async (tx) => {
94
+ const snap = await tx.get(ref);
95
+ if (!snap.exists)
96
+ return; // raced a delete; nothing to observe
97
+ const current = this.mapDoc(snap);
98
+ const escalate = PAYMENT_CASE_SEVERITY_RANK[input.severity] >
99
+ PAYMENT_CASE_SEVERITY_RANK[current.severity];
100
+ tx.update(ref, {
101
+ observedCount: (current.observedCount ?? 0) + 1,
102
+ lastObservedAt: now,
103
+ updatedAt: now,
104
+ ...(escalate ? { severity: input.severity } : {}),
105
+ /*
106
+ * A fresh observation clears `selfHealedAt`: the problem is back (or
107
+ * never left), so a stale "looks resolved" banner would actively
108
+ * mislead. Cleared with `null` rather than `undefined` because
109
+ * `prepareForFirestore` strips undefined, which would leave the old
110
+ * value in place — a delete that silently does nothing.
111
+ */
112
+ selfHealedAt: null,
113
+ });
114
+ });
115
+ }
116
+ catch (err) {
117
+ void normalizeError(err);
118
+ throw err;
119
+ }
120
+ return { id, created: false };
121
+ }
122
+ /**
123
+ * Resolve a case. **Humans only.**
124
+ *
125
+ * 🛑 A CASE IS NEVER AUTO-CLOSABLE, AND THAT IS ENFORCED BY THE ABSENCE OF A
126
+ * CODE PATH RATHER THAN BY A FLAG.
127
+ *
128
+ * There is no overload a job can call: `resolvedBy` is required, `"system"`
129
+ * is rejected at runtime, and `resolution` has a length floor. A rule
130
+ * enforced by a boolean can be flipped by whoever is in a hurry; a rule
131
+ * enforced by there being no function to call cannot.
132
+ *
133
+ * The reason this matters more than it looks: every case here is money, and
134
+ * the thing that closes a money case is a human understanding what happened.
135
+ * A sweep that closed its own cases would turn the queue into a log — and a
136
+ * log that scrolls is exactly what the 2026-10-21 incident had instead of a
137
+ * record.
138
+ *
139
+ * A reconciler that no longer sees the problem calls `markSelfHealed`.
140
+ */
141
+ async resolve(id, input) {
142
+ const resolution = input.resolution?.trim() ?? "";
143
+ if (resolution.length < PAYMENT_CASE_RESOLUTION_MIN) {
144
+ throw new Error(`A payment case resolution must be at least ${PAYMENT_CASE_RESOLUTION_MIN} characters — "${resolution}" says nothing a later reader can use`);
145
+ }
146
+ if (!input.resolvedBy || input.resolvedBy === "system") {
147
+ throw new Error("A payment case can only be resolved by a human: `resolvedBy` must be an admin uid, never 'system'");
148
+ }
149
+ const now = input.now ?? new Date();
150
+ const ref = this.getCollection().doc(id);
151
+ const existing = await this.findById(id);
152
+ await ref.update({
153
+ status: input.status,
154
+ resolution,
155
+ resolvedBy: input.resolvedBy,
156
+ resolvedAt: now,
157
+ updatedAt: now,
158
+ statusHistory: [
159
+ ...(existing?.statusHistory ?? []),
160
+ buildHistoryEntry({
161
+ actor: { role: "admin", uid: input.resolvedBy },
162
+ trigger: "paymentCase:resolve",
163
+ changes: { status: { from: existing?.status ?? null, to: input.status } },
164
+ reason: resolution,
165
+ now,
166
+ }),
167
+ ],
168
+ });
169
+ }
170
+ /**
171
+ * A reconciler no longer observes the problem.
172
+ *
173
+ * 🛑 Writes `selfHealedAt` and NOTHING ELSE — the status stays whatever it
174
+ * was. "The symptom is gone" and "somebody understands why" are different
175
+ * facts, and conflating them on a money case is how a hand-refunded payment
176
+ * gets filed as fixed.
177
+ */
178
+ async markSelfHealed(id, now = new Date()) {
179
+ try {
180
+ await this.getCollection().doc(id).update({ selfHealedAt: now, updatedAt: now });
181
+ }
182
+ catch (err) {
183
+ // A case deleted between the sweep's read and this write is not a fault.
184
+ void normalizeError(err);
185
+ }
186
+ }
187
+ async assign(id, assignedTo, now = new Date()) {
188
+ await this.getCollection()
189
+ .doc(id)
190
+ .update({ assignedTo, status: "under-review", updatedAt: now });
191
+ }
192
+ /**
193
+ * Open + under-review, worst first, then most-recently-observed first.
194
+ *
195
+ * ## 🛑 `orderBy(SEVERITY)` IS THE BUG THIS FIXES — never put it back
196
+ *
197
+ * This read `.orderBy(SEVERITY, "desc").orderBy(LAST_OBSERVED_AT, "desc")`
198
+ * under the docstring "worst first". **It returned the opposite.** `severity`
199
+ * stores the STRINGS `error` / `warning` / `info`, and Firestore orders
200
+ * strings lexicographically — so `desc` yields **warning, info, error**, the
201
+ * most urgent cases last, in the one query whose whole job is to put them
202
+ * first. Nothing errored; the list was simply backwards.
203
+ *
204
+ * So the QUERY now selects its window by `lastObservedAt` — always written by
205
+ * `openOrObserve`, one index, no composite on an enum — and the ORDER is
206
+ * applied in memory from `PAYMENT_CASE_SEVERITY_RANK`, which already exists
207
+ * and is exact. A stored numeric rank would also work and is worse: a second
208
+ * representation of severity that can drift from the first.
209
+ *
210
+ * ## Why it SURVIVED, and what measuring corrected
211
+ *
212
+ * The order was wrong and harmless, because **neither consumer reads it** —
213
+ * `countActiveBySeverity` tallies and `activeGatewayEventIds` collects into a
214
+ * Set. Two of my own assumptions were false and are recorded so they are not
215
+ * re-assumed:
216
+ *
217
+ * · *"the digest reads this"* — it does NOT. `dailyStatusDigest` runs three
218
+ * `.count()` queries, one per severity, so it never ordered by severity
219
+ * and was correct throughout.
220
+ * · *"it has zero consumers, so delete it"* — it has TWO, both in this
221
+ * file. A grep for `listActive()` with empty parentheses missed
222
+ * `listActive(500)` twice, and deleting on that basis would have broken
223
+ * the digest's counts and the gateway-event retention exclusion.
224
+ *
225
+ * 🛑 The order DOES still matter to those two, via the WINDOW: at >500 active
226
+ * cases, a severity-ordered window filled with alphabetically-first
227
+ * `warning`s would have cut `error`s out of the count entirely. Theoretical
228
+ * at this volume, real in principle, and fixed by the same change.
229
+ *
230
+ * `/admin/money-cases` deliberately does NOT use this — `DataListingView`
231
+ * needs pagination, filters and a sort dropdown, so it goes through the Sieve
232
+ * `list()` below. That view's `sortOptions` carries the matching 🛑 about why
233
+ * it offers no severity sort: same arithmetic, found at the same time.
234
+ */
235
+ async listActive(limit = 100) {
236
+ const snap = await this.getCollection()
237
+ .where(PAYMENT_CASE_FIELDS.STATUS, "in", [...PAYMENT_CASE_ACTIVE_STATUSES])
238
+ .orderBy(PAYMENT_CASE_FIELDS.LAST_OBSERVED_AT, "desc")
239
+ .limit(limit)
240
+ .get();
241
+ const rows = snap.docs.map((d) => this.mapDoc(d));
242
+ return rows.sort((a, b) => {
243
+ const bySeverity = (PAYMENT_CASE_SEVERITY_RANK[b.severity] ?? 0) -
244
+ (PAYMENT_CASE_SEVERITY_RANK[a.severity] ?? 0);
245
+ if (bySeverity !== 0)
246
+ return bySeverity;
247
+ return b.lastObservedAt.getTime() - a.lastObservedAt.getTime();
248
+ });
249
+ }
250
+ /**
251
+ * Active cases whose external deadline falls inside `horizon`.
252
+ *
253
+ * 🛑 One equality (`status in`) and one inequality (`dueAt <=`), ordered by
254
+ * `dueAt` — the only shape Firestore serves without demanding the inequality
255
+ * field lead the sort (Root Cause #59).
256
+ *
257
+ * 🛑 A case with NO `dueAt` is structurally absent from this query, because a
258
+ * Firestore inequality excludes documents lacking the field (Root Cause
259
+ * #100). That is correct here and is worth stating so nobody "fixes" it: a
260
+ * case without a deadline cannot be nearly-overdue. It is NOT correct for
261
+ * `listActive`, which is why that one filters on `status` only.
262
+ */
263
+ async listDueBefore(horizon, limit = 50) {
264
+ const snap = await this.getCollection()
265
+ .where(PAYMENT_CASE_FIELDS.STATUS, "in", [...PAYMENT_CASE_ACTIVE_STATUSES])
266
+ .where(PAYMENT_CASE_FIELDS.DUE_AT, "<=", horizon)
267
+ .orderBy(PAYMENT_CASE_FIELDS.DUE_AT, "asc")
268
+ .limit(limit)
269
+ .get();
270
+ return snap.docs.map((d) => this.mapDoc(d));
271
+ }
272
+ /**
273
+ * Counts by severity over active cases.
274
+ *
275
+ * 🛑 Its docstring said *"what the daily digest prints"* and that is FALSE,
276
+ * measured 2026-10-21: `dailyStatusDigest` runs its own three `.count()`
277
+ * aggregations against the collection directly — deliberately, because that
278
+ * file is reachable from the Functions bundle and avoids the repository. So
279
+ * this method currently has no caller, and the digest does not depend on it.
280
+ *
281
+ * Kept rather than deleted because `activeGatewayEventIds` beside it is live
282
+ * and shares `listActive`, so the pair earns its keep — but do not "wire the
283
+ * digest to it" on the strength of the old comment: three `.count()`s are
284
+ * cheaper than paging 500 documents to tally them.
285
+ */
286
+ async countActiveBySeverity() {
287
+ const rows = await this.listActive(500);
288
+ const out = { info: 0, warning: 0, error: 0 };
289
+ for (const row of rows)
290
+ out[row.severity] = (out[row.severity] ?? 0) + 1;
291
+ return out;
292
+ }
293
+ /** Every gateway-event id referenced by an ACTIVE case — the retention exclusion. */
294
+ async activeGatewayEventIds() {
295
+ const rows = await this.listActive(500);
296
+ const ids = new Set();
297
+ for (const row of rows)
298
+ for (const id of row.gatewayEventIds ?? [])
299
+ ids.add(id);
300
+ return ids;
301
+ }
302
+ async listRefs(limit = 500) {
303
+ const snap = await this.getCollection().limit(limit).get();
304
+ return snap.docs.map((d) => d.ref);
305
+ }
306
+ async list(model) {
307
+ return applySieveToFirestore({
308
+ baseQuery: this.getCollection(),
309
+ model,
310
+ fields: PaymentCasesRepository.SIEVE_FIELDS,
311
+ });
312
+ }
313
+ }
314
+ PaymentCasesRepository.SIEVE_FIELDS = {
315
+ kind: { canFilter: true, canSort: false },
316
+ status: { canFilter: true, canSort: false },
317
+ severity: { canFilter: true, canSort: true },
318
+ entityType: { canFilter: true, canSort: false },
319
+ entityId: { canFilter: true, canSort: false },
320
+ dedupeKey: { canFilter: true, canSort: false },
321
+ assignedTo: { canFilter: true, canSort: false },
322
+ observedCount: { canFilter: true, canSort: true },
323
+ amountAtRisk: { canFilter: true, canSort: true },
324
+ gatewayPaymentId: { canFilter: true, canSort: false },
325
+ /*
326
+ * Every date field needs `parseValue` — these are stored Timestamps and
327
+ * sievejs' default coercion leaves an ISO string as a string, which
328
+ * Firestore cannot compare to a Timestamp and so matches ZERO documents
329
+ * with no error (Root Cause #47).
330
+ */
331
+ dueAt: { canFilter: true, canSort: true, parseValue: parseSieveDateValue },
332
+ lastObservedAt: { canFilter: true, canSort: true, parseValue: parseSieveDateValue },
333
+ resolvedAt: { canFilter: true, canSort: true, parseValue: parseSieveDateValue },
334
+ selfHealedAt: { canFilter: true, canSort: true, parseValue: parseSieveDateValue },
335
+ createdAt: { canFilter: true, canSort: true, parseValue: parseSieveDateValue },
336
+ };
337
+ let cached = null;
338
+ export function paymentCasesRepository() {
339
+ if (!cached)
340
+ cached = new PaymentCasesRepository();
341
+ return cached;
342
+ }