@mohasinac/appkit 4.30.18 → 4.31.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 (557) hide show
  1. package/dist/_internal/client/features/digital-code/CodeRevealPanel.js +5 -2
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +3 -3
  3. package/dist/_internal/client/features/layout/useSidebarSearch.d.ts +21 -5
  4. package/dist/_internal/client/features/layout/useSidebarSearch.js +27 -6
  5. package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +23 -3
  6. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +106 -86
  7. package/dist/_internal/client/features/lottery/LotteryPullForm.d.ts +16 -5
  8. package/dist/_internal/client/features/lottery/LotteryPullForm.js +65 -40
  9. package/dist/_internal/client/features/maintenance/views/AnalysisRunnerView.js +5 -2
  10. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +11 -3
  11. package/dist/_internal/client/hand-mode/HandModeProvider.js +2 -0
  12. package/dist/_internal/server/features/auctions/actions.js +14 -3
  13. package/dist/_internal/server/features/auctions/service.js +1 -1
  14. package/dist/_internal/server/features/auth/permissions.d.ts +2 -0
  15. package/dist/_internal/server/features/auth/permissions.js +3 -2
  16. package/dist/_internal/server/features/blog/data.js +2 -2
  17. package/dist/_internal/server/features/blog/service.js +3 -3
  18. package/dist/_internal/server/features/brands/data.js +1 -1
  19. package/dist/_internal/server/features/brands/service.js +3 -3
  20. package/dist/_internal/server/features/bundles/actions.js +6 -1
  21. package/dist/_internal/server/features/bundles/data.js +21 -4
  22. package/dist/_internal/server/features/cart/data.js +3 -1
  23. package/dist/_internal/server/features/cart/service.js +13 -2
  24. package/dist/_internal/server/features/categories/data.js +26 -6
  25. package/dist/_internal/server/features/classified/index.d.ts +0 -1
  26. package/dist/_internal/server/features/classified/index.js +0 -1
  27. package/dist/_internal/server/features/digital-code/index.d.ts +0 -1
  28. package/dist/_internal/server/features/digital-code/index.js +0 -1
  29. package/dist/_internal/server/features/events/actions.js +17 -4
  30. package/dist/_internal/server/features/events/data.js +1 -1
  31. package/dist/_internal/server/features/events/service.js +1 -1
  32. package/dist/_internal/server/features/grouped/data.js +7 -2
  33. package/dist/_internal/server/features/item-requests/data.js +1 -1
  34. package/dist/_internal/server/features/live/index.d.ts +0 -1
  35. package/dist/_internal/server/features/live/index.js +0 -1
  36. package/dist/_internal/server/features/lottery/actions.js +2 -2
  37. package/dist/_internal/server/features/lottery/data.js +1 -1
  38. package/dist/_internal/server/features/orders/actions.js +7 -7
  39. package/dist/_internal/server/features/orders/data.d.ts +1 -1
  40. package/dist/_internal/server/features/orders/data.js +14 -2
  41. package/dist/_internal/server/features/orders/service.js +1 -1
  42. package/dist/_internal/server/features/pre-orders/service.js +1 -1
  43. package/dist/_internal/server/features/prize-draws/actions.js +1 -1
  44. package/dist/_internal/server/features/products/data.js +21 -6
  45. package/dist/_internal/server/features/products/list-public.d.ts +9 -0
  46. package/dist/_internal/server/features/products/list-public.js +95 -7
  47. package/dist/_internal/server/features/products/service.js +1 -1
  48. package/dist/_internal/server/features/promotions/actions.js +1 -1
  49. package/dist/_internal/server/features/promotions/data.js +1 -1
  50. package/dist/_internal/server/features/promotions/service.js +1 -1
  51. package/dist/_internal/server/features/reviews/data.d.ts +1 -1
  52. package/dist/_internal/server/features/reviews/data.js +6 -1
  53. package/dist/_internal/server/features/reviews/og-data.js +1 -1
  54. package/dist/_internal/server/features/shared/listing-data-factory.js +7 -2
  55. package/dist/_internal/server/features/site-settings/adapters.d.ts +2 -2
  56. package/dist/_internal/server/features/site-settings/adapters.js +8 -5
  57. package/dist/_internal/server/features/stores/data.js +1 -1
  58. package/dist/_internal/server/features/sublisting-categories/data.js +1 -1
  59. package/dist/_internal/server/features/tester/visibility.d.ts +2 -1
  60. package/dist/_internal/server/features/tester/visibility.js +2 -2
  61. package/dist/_internal/server/functions/scheduled.d.ts +3 -1
  62. package/dist/_internal/server/functions/scheduled.js +27 -1
  63. package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -1
  64. package/dist/_internal/server/jobs/core/hardBanCascade.js +4 -0
  65. package/dist/_internal/server/jobs/core/index.d.ts +2 -0
  66. package/dist/_internal/server/jobs/core/index.js +2 -0
  67. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +7 -15
  68. package/dist/_internal/server/jobs/core/pageViewPrune.d.ts +10 -0
  69. package/dist/_internal/server/jobs/core/pageViewPrune.js +44 -0
  70. package/dist/_internal/server/jobs/core/pageViewRollup.d.ts +2 -0
  71. package/dist/_internal/server/jobs/core/pageViewRollup.js +87 -0
  72. package/dist/_internal/server/jobs/core/revenueRollup.js +7 -1
  73. package/dist/_internal/server/jobs/handlers/index.d.ts +2 -0
  74. package/dist/_internal/server/jobs/handlers/index.js +2 -0
  75. package/dist/_internal/server/jobs/handlers/pageViewPrune.d.ts +2 -0
  76. package/dist/_internal/server/jobs/handlers/pageViewPrune.js +2 -0
  77. package/dist/_internal/server/jobs/handlers/pageViewRollup.d.ts +2 -0
  78. package/dist/_internal/server/jobs/handlers/pageViewRollup.js +2 -0
  79. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  80. package/dist/_internal/shared/actions/action-registry.js +69 -22
  81. package/dist/_internal/shared/checkout/rules/classified.rule.d.ts +9 -4
  82. package/dist/_internal/shared/checkout/rules/classified.rule.js +7 -2
  83. package/dist/_internal/shared/features/layout/matchesNavQuery.d.ts +14 -0
  84. package/dist/_internal/shared/features/layout/matchesNavQuery.js +72 -0
  85. package/dist/_internal/shared/features/layout/types.d.ts +37 -1
  86. package/dist/_internal/shared/features/layout/types.js +19 -1
  87. package/dist/_internal/shared/features/notifications/action-url.d.ts +9 -1
  88. package/dist/_internal/shared/features/notifications/action-url.js +47 -0
  89. package/dist/_internal/shared/features/offers/config.d.ts +65 -0
  90. package/dist/_internal/shared/features/offers/config.js +73 -2
  91. package/dist/_internal/shared/features/orders/schema.d.ts +19 -1
  92. package/dist/_internal/shared/features/orders/schema.js +22 -2
  93. package/dist/_internal/shared/features/site-settings/types.d.ts +12 -3
  94. package/dist/_internal/shared/listing-types/capabilities.d.ts +8 -2
  95. package/dist/_internal/shared/listing-types/capabilities.js +6 -1
  96. package/dist/_internal/shared/listing-types/classified/ctas.js +6 -1
  97. package/dist/_internal/shared/listing-types/feature-flags.d.ts +10 -5
  98. package/dist/_internal/shared/listing-types/feature-flags.js +11 -6
  99. package/dist/client/api/useApiQuery.js +17 -6
  100. package/dist/client.d.ts +38 -20
  101. package/dist/client.js +39 -14
  102. package/dist/configs/next.js +10 -2
  103. package/dist/constants/api-endpoints.d.ts +18 -54
  104. package/dist/constants/api-endpoints.js +6 -26
  105. package/dist/constants/field-names.d.ts +6 -24
  106. package/dist/constants/field-names.js +10 -27
  107. package/dist/constants/geo/countries.d.ts +50 -0
  108. package/dist/constants/geo/countries.js +129 -0
  109. package/dist/constants/geo/subdivisions.d.ts +13 -0
  110. package/dist/constants/geo/subdivisions.js +104 -0
  111. package/dist/constants/index.d.ts +2 -2
  112. package/dist/constants/index.js +2 -2
  113. package/dist/constants/table-keys.d.ts +24 -0
  114. package/dist/constants/table-keys.js +28 -0
  115. package/dist/contracts/client-realtime.d.ts +6 -0
  116. package/dist/contracts/extend.d.ts +0 -9
  117. package/dist/contracts/index.d.ts +1 -1
  118. package/dist/contracts/realtime-session.d.ts +12 -12
  119. package/dist/contracts/realtime-session.js +79 -77
  120. package/dist/core/browser.d.ts +1 -1
  121. package/dist/core/browser.js +1 -1
  122. package/dist/core/index.d.ts +1 -1
  123. package/dist/core/index.js +1 -1
  124. package/dist/core/site-config.d.ts +0 -3
  125. package/dist/core/site-config.js +0 -3
  126. package/dist/errors/index.d.ts +1 -1
  127. package/dist/errors/index.js +1 -1
  128. package/dist/errors/messages.d.ts +0 -8
  129. package/dist/errors/messages.js +0 -9
  130. package/dist/features/about/components/DeveloperView.js +7 -2
  131. package/dist/features/about/components/PolicyPageView.js +9 -1
  132. package/dist/features/about/components/PublicProfileView.js +23 -5
  133. package/dist/features/about/schemas/index.d.ts +8 -8
  134. package/dist/features/account/components/AddressFilters.js +32 -11
  135. package/dist/features/account/components/AddressForm.d.ts +26 -25
  136. package/dist/features/account/components/AddressForm.js +81 -103
  137. package/dist/features/account/components/AddressesIndexListing.js +8 -4
  138. package/dist/features/account/components/NotificationBell.js +4 -3
  139. package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
  140. package/dist/features/account/components/UserOffersPanel.js +1 -1
  141. package/dist/features/account/components/UserSidebar.d.ts +3 -4
  142. package/dist/features/account/components/UserSupportView.js +89 -58
  143. package/dist/features/account/components/index.d.ts +1 -7
  144. package/dist/features/account/components/index.js +0 -3
  145. package/dist/features/account/hooks/useAddresses.d.ts +4 -3
  146. package/dist/features/account/hooks/useAddresses.js +4 -6
  147. package/dist/features/account/hooks/useCollapsedSections.d.ts +51 -10
  148. package/dist/features/account/hooks/useCollapsedSections.js +211 -38
  149. package/dist/features/account/hooks/useProfile.d.ts +8 -0
  150. package/dist/features/account/index.d.ts +0 -3
  151. package/dist/features/account/index.js +0 -3
  152. package/dist/features/account/schemas/index.d.ts +0 -92
  153. package/dist/features/account/schemas/index.js +42 -20
  154. package/dist/features/addresses/components/AddressLocationFields.d.ts +13 -0
  155. package/dist/features/addresses/components/AddressLocationFields.js +41 -0
  156. package/dist/features/addresses/hooks/usePostalLookup.d.ts +17 -0
  157. package/dist/features/addresses/hooks/usePostalLookup.js +133 -0
  158. package/dist/features/addresses/schemas/address-form.d.ts +423 -0
  159. package/dist/features/addresses/schemas/address-form.js +212 -0
  160. package/dist/features/addresses/schemas/index.d.ts +1 -0
  161. package/dist/features/addresses/schemas/index.js +8 -0
  162. package/dist/features/admin/actions/admin-read-actions.d.ts +1 -1
  163. package/dist/features/admin/actions/index.d.ts +0 -1
  164. package/dist/features/admin/actions/index.js +0 -1
  165. package/dist/features/admin/actions/notification-actions.js +1 -41
  166. package/dist/features/admin/components/AdminActionIndexView.d.ts +32 -0
  167. package/dist/features/admin/components/AdminActionIndexView.js +128 -0
  168. package/dist/features/admin/components/AdminAdEditorView.js +159 -163
  169. package/dist/features/admin/components/AdminAddressEditorView.js +97 -55
  170. package/dist/features/admin/components/AdminBrandEditorView.d.ts +15 -0
  171. package/dist/features/admin/components/AdminBrandEditorView.js +113 -77
  172. package/dist/features/admin/components/AdminBundleEditorView.d.ts +19 -9
  173. package/dist/features/admin/components/AdminBundleEditorView.js +136 -168
  174. package/dist/features/admin/components/AdminCategoryEditorView.js +120 -43
  175. package/dist/features/admin/components/AdminCouponEditorView.js +145 -109
  176. package/dist/features/admin/components/AdminEmployeeEditorView.js +125 -56
  177. package/dist/features/admin/components/AdminFaqEditorView.js +112 -58
  178. package/dist/features/admin/components/AdminFeatureEditorView.js +108 -68
  179. package/dist/features/admin/components/AdminFulfillmentView.js +5 -2
  180. package/dist/features/admin/components/AdminMediaView.js +3 -3
  181. package/dist/features/admin/components/AdminNavEditorView.js +69 -44
  182. package/dist/features/admin/components/AdminOrderEditorView.js +47 -10
  183. package/dist/features/admin/components/AdminPrizeDrawsView.js +16 -2
  184. package/dist/features/admin/components/AdminSidebar.d.ts +11 -7
  185. package/dist/features/admin/components/AdminSiteSettingsView.js +37 -37
  186. package/dist/features/admin/components/AdminStoreEditorView.js +75 -52
  187. package/dist/features/admin/components/AdminSublistingCategoryEditorView.js +71 -30
  188. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +95 -65
  189. package/dist/features/admin/components/BrandQuickCreateForm.d.ts +10 -0
  190. package/dist/features/admin/components/BrandQuickCreateForm.js +49 -26
  191. package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +11 -0
  192. package/dist/features/admin/components/CategoryQuickCreateForm.js +48 -26
  193. package/dist/features/admin/components/index.d.ts +2 -2
  194. package/dist/features/admin/components/index.js +1 -1
  195. package/dist/features/admin/constants/site-settings-tabs.d.ts +120 -0
  196. package/dist/features/admin/constants/site-settings-tabs.js +152 -0
  197. package/dist/features/admin/index.d.ts +0 -3
  198. package/dist/features/admin/index.js +0 -2
  199. package/dist/features/admin/repository/analytics-rollup.repository.d.ts +35 -0
  200. package/dist/features/admin/repository/analytics-rollup.repository.js +30 -0
  201. package/dist/features/admin/schemas/admin-editor-forms.d.ts +56 -57
  202. package/dist/features/admin/schemas/admin-editor-forms.js +97 -54
  203. package/dist/features/admin/schemas/admin-ops-forms.d.ts +57 -5
  204. package/dist/features/admin/schemas/admin-ops-forms.js +104 -20
  205. package/dist/features/admin/schemas/admin-user-form.js +7 -0
  206. package/dist/features/admin/schemas/firestore.d.ts +48 -95
  207. package/dist/features/admin/schemas/firestore.js +15 -151
  208. package/dist/features/admin/schemas/nav-item-form.js +9 -2
  209. package/dist/features/admin/server.d.ts +0 -4
  210. package/dist/features/admin/server.js +0 -2
  211. package/dist/features/admin/types/index.d.ts +0 -7
  212. package/dist/features/analytics/repository/page-views.repository.d.ts +14 -0
  213. package/dist/features/analytics/repository/page-views.repository.js +24 -0
  214. package/dist/features/analytics/types.d.ts +1 -1
  215. package/dist/features/analytics/types.js +13 -0
  216. package/dist/features/auctions/components/AuctionDetailPageView.js +6 -2
  217. package/dist/features/auctions/components/MarketplaceAuctionCard.js +3 -1
  218. package/dist/features/auth/actions/index.d.ts +0 -1
  219. package/dist/features/auth/actions/index.js +0 -1
  220. package/dist/features/auth/actions/profile-actions.js +4 -3
  221. package/dist/features/auth/actions/realtime-token-actions.js +1 -12
  222. package/dist/features/auth/auth-helpers.js +5 -7
  223. package/dist/features/auth/components/ForgotPasswordView.js +1 -1
  224. package/dist/features/auth/components/Guards.js +2 -1
  225. package/dist/features/auth/components/LoginForm.d.ts +0 -2
  226. package/dist/features/auth/components/LoginForm.js +2 -4
  227. package/dist/features/auth/components/RegisterForm.js +62 -19
  228. package/dist/features/auth/components/ResetPasswordView.js +1 -1
  229. package/dist/features/auth/hooks/useAuth.js +3 -0
  230. package/dist/features/auth/permissions/constants.d.ts +27 -1
  231. package/dist/features/auth/role-predicates.d.ts +75 -7
  232. package/dist/features/auth/role-predicates.js +28 -2
  233. package/dist/features/auth/schemas/firestore.d.ts +22 -0
  234. package/dist/features/auth/schemas/index.d.ts +1 -1
  235. package/dist/features/auth/schemas/index.js +44 -8
  236. package/dist/features/auth/types/index.d.ts +14 -1
  237. package/dist/features/blog/api/route.js +10 -2
  238. package/dist/features/blog/components/BlogIndexListing.js +1 -1
  239. package/dist/features/blog/hooks/useBlog.js +2 -2
  240. package/dist/features/blog/repository/blog.repository.js +3 -1
  241. package/dist/features/blog/schemas/index.d.ts +4 -0
  242. package/dist/features/blog/schemas/index.js +2 -0
  243. package/dist/features/blog/types/index.d.ts +1 -1
  244. package/dist/features/cart/actions/cart-actions.js +13 -4
  245. package/dist/features/cart/utils/pending-ops.js +1 -1
  246. package/dist/features/catalogue/components/CatalogueItemEditorView.d.ts +22 -0
  247. package/dist/features/catalogue/components/CatalogueItemEditorView.js +112 -52
  248. package/dist/features/catalogue/schemas/validation.d.ts +4 -4
  249. package/dist/features/catalogue/schemas/validation.js +47 -10
  250. package/dist/features/categories/components/BrandDetailPageView.js +28 -12
  251. package/dist/features/categories/components/CategoryDetailPageView.js +37 -20
  252. package/dist/features/categories/repository/categories.repository.js +3 -1
  253. package/dist/features/categories/schemas/bundle-form.d.ts +142 -0
  254. package/dist/features/categories/schemas/bundle-form.js +149 -0
  255. package/dist/features/checkout/actions/checkout-value-otp-actions.js +10 -1
  256. package/dist/features/classified/components/ClassifiedContactSellerPanel.js +1 -1
  257. package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +5 -4
  258. package/dist/features/classified/components/ClassifiedDetailPageView.js +47 -18
  259. package/dist/features/consultation/components/ConsultationForm.js +1 -1
  260. package/dist/features/consultation/schemas/index.js +34 -10
  261. package/dist/features/corporate/schemas/index.js +36 -15
  262. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +4 -1
  263. package/dist/features/events/components/EventBanner.js +5 -2
  264. package/dist/features/events/components/EventOfferCard.js +3 -1
  265. package/dist/features/events/components/EventPollWidget.js +1 -1
  266. package/dist/features/events/components/SpinWheelView.js +3 -2
  267. package/dist/features/filters/FilterPanel.js +3 -3
  268. package/dist/features/filters/RangeFilter.d.ts +10 -0
  269. package/dist/features/filters/RangeFilter.js +41 -4
  270. package/dist/features/grouped/components/GroupedListingEditorView.js +2 -1
  271. package/dist/features/history/hooks/useHistory.js +29 -27
  272. package/dist/features/homepage/components/AdSlot.js +3 -1
  273. package/dist/features/homepage/components/GoogleReviewsSection.js +8 -2
  274. package/dist/features/homepage/components/MarketplaceHomepageView.js +58 -15
  275. package/dist/features/homepage/components/SocialFeedSection.js +4 -1
  276. package/dist/features/homepage/hooks/useBlogArticles.js +1 -1
  277. package/dist/features/homepage/lib/live-stats.js +8 -1
  278. package/dist/features/homepage/repository/carousel.repository.js +2 -1
  279. package/dist/features/layout/BottomActions.js +84 -11
  280. package/dist/features/layout/BottomActionsContext.d.ts +1 -6
  281. package/dist/features/layout/BottomActionsContext.js +1 -1
  282. package/dist/features/layout/hooks/useBottomActions.js +2 -2
  283. package/dist/features/layout/hooks/useFormBottomActions.d.ts +12 -1
  284. package/dist/features/layout/hooks/useFormBottomActions.js +12 -6
  285. package/dist/features/live/components/LiveItemDetailPageView.js +4 -1
  286. package/dist/features/lottery/schemas/config-write.d.ts +9 -5
  287. package/dist/features/lottery/schemas/config-write.js +69 -9
  288. package/dist/features/media/finalize.js +3 -1
  289. package/dist/features/media/modals/ImageEditor.js +1 -1
  290. package/dist/features/media/modals/VideoThumbnailSelector.js +5 -2
  291. package/dist/features/media/modals/VideoTrimModal.js +5 -2
  292. package/dist/features/media/upload/MediaUploadField.js +2 -2
  293. package/dist/features/messages/hooks/useConversation.js +18 -4
  294. package/dist/features/messages/hooks/useConversations.js +25 -8
  295. package/dist/features/orders/components/RefundRequestView.js +5 -2
  296. package/dist/features/orders/schemas/buyer-forms.d.ts +6 -3
  297. package/dist/features/orders/schemas/buyer-forms.js +31 -3
  298. package/dist/features/orders/schemas/index.d.ts +2 -2
  299. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +3 -1
  300. package/dist/features/pre-orders/components/PreOrderActionsClient.js +1 -1
  301. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +4 -1
  302. package/dist/features/products/components/GroupSettingsPanel.js +3 -1
  303. package/dist/features/products/components/MakeOfferButton.d.ts +13 -2
  304. package/dist/features/products/components/MakeOfferButton.js +33 -11
  305. package/dist/features/products/components/PrizeDrawDetailPageView.js +4 -1
  306. package/dist/features/products/components/ProductDetailActions.js +0 -1
  307. package/dist/features/products/components/ProductDetailPageView.d.ts +7 -3
  308. package/dist/features/products/components/ProductDetailPageView.js +16 -7
  309. package/dist/features/products/components/ShareButton.js +3 -1
  310. package/dist/features/products/constants/action-defs.d.ts +1 -2
  311. package/dist/features/products/constants/action-defs.js +40 -43
  312. package/dist/features/products/repository/loadProductFeatures.js +10 -2
  313. package/dist/features/products/repository/products.repository.d.ts +5 -1
  314. package/dist/features/products/repository/products.repository.js +25 -2
  315. package/dist/features/products/schemas/firestore.d.ts +7 -3
  316. package/dist/features/products/schemas/product-features.validators.js +3 -0
  317. package/dist/features/promotions/components/CouponCard.js +11 -8
  318. package/dist/features/reviews/actions/review-actions.js +8 -1
  319. package/dist/features/reviews/components/ReviewDetailPageView.js +13 -3
  320. package/dist/features/reviews/components/ReviewDetailShell.js +3 -1
  321. package/dist/features/scams/actions/scam-actions.d.ts +9 -1
  322. package/dist/features/scams/actions/scam-actions.js +52 -12
  323. package/dist/features/scams/components/SellerTrustBadge.d.ts +1 -1
  324. package/dist/features/scams/components/SellerTrustBadge.js +13 -0
  325. package/dist/features/scams/repository/scammer.repository.js +2 -1
  326. package/dist/features/scams/schemas/firestore.d.ts +15 -1
  327. package/dist/features/scams/schemas/report-form.d.ts +5 -5
  328. package/dist/features/scams/schemas/report-form.js +18 -3
  329. package/dist/features/search/action-index/derive.d.ts +49 -0
  330. package/dist/features/search/action-index/derive.js +121 -0
  331. package/dist/features/search/action-index/repository.d.ts +42 -0
  332. package/dist/features/search/action-index/repository.js +100 -0
  333. package/dist/features/search/action-index/settings-entries.d.ts +41 -0
  334. package/dist/features/search/action-index/settings-entries.js +268 -0
  335. package/dist/features/search/action-index/types.d.ts +81 -0
  336. package/dist/features/search/action-index/types.js +102 -0
  337. package/dist/features/search/action-index/validate-entry.d.ts +34 -0
  338. package/dist/features/search/action-index/validate-entry.js +114 -0
  339. package/dist/features/search/hooks/useNavSuggestions.d.ts +5 -1
  340. package/dist/features/search/hooks/useNavSuggestions.js +23 -3
  341. package/dist/features/search/repository/search.repository.js +3 -1
  342. package/dist/features/seller/actions/offer-actions.js +43 -19
  343. package/dist/features/seller/actions/seller-actions.js +29 -5
  344. package/dist/features/seller/components/CategoryChipPicker.d.ts +9 -0
  345. package/dist/features/seller/components/CategoryChipPicker.js +12 -0
  346. package/dist/features/seller/components/FulfillmentView.js +5 -2
  347. package/dist/features/seller/components/PhysicalLocationModal.js +1 -1
  348. package/dist/features/seller/components/PrintCenterView.js +3 -1
  349. package/dist/features/seller/components/SellerAddressesView.js +5 -1
  350. package/dist/features/seller/components/SellerAnalyticsAlertsView.js +83 -43
  351. package/dist/features/seller/components/SellerArtView.d.ts +14 -7
  352. package/dist/features/seller/components/SellerArtView.js +4 -119
  353. package/dist/features/seller/components/SellerBidsView.js +1 -1
  354. package/dist/features/seller/components/SellerClassifiedView.d.ts +14 -7
  355. package/dist/features/seller/components/SellerClassifiedView.js +4 -124
  356. package/dist/features/seller/components/SellerCouponEditorView.d.ts +22 -1
  357. package/dist/features/seller/components/SellerCouponEditorView.js +91 -45
  358. package/dist/features/seller/components/SellerCouponsView.js +1 -1
  359. package/dist/features/seller/components/SellerDigitalCodesView.d.ts +14 -7
  360. package/dist/features/seller/components/SellerDigitalCodesView.js +4 -126
  361. package/dist/features/seller/components/SellerGoogleReviewsView.js +2 -2
  362. package/dist/features/seller/components/SellerListingTypeView.d.ts +66 -0
  363. package/dist/features/seller/components/SellerListingTypeView.js +277 -0
  364. package/dist/features/seller/components/SellerLiveView.d.ts +14 -7
  365. package/dist/features/seller/components/SellerLiveView.js +4 -126
  366. package/dist/features/seller/components/SellerOrdersView.js +3 -3
  367. package/dist/features/seller/components/SellerPayoutMethodsView.js +2 -2
  368. package/dist/features/seller/components/SellerProductShell.d.ts +5 -0
  369. package/dist/features/seller/components/SellerProductShell.js +15 -5
  370. package/dist/features/seller/components/SellerProductsView.js +24 -10
  371. package/dist/features/seller/components/SellerReviewsView.js +47 -16
  372. package/dist/features/seller/components/SellerShippingConfigsView.js +5 -4
  373. package/dist/features/seller/components/SellerSidebar.d.ts +3 -6
  374. package/dist/features/seller/components/SellerStickersView.d.ts +14 -7
  375. package/dist/features/seller/components/SellerStickersView.js +4 -119
  376. package/dist/features/seller/components/SellerStoreCategoriesView.js +3 -2
  377. package/dist/features/seller/components/SellerSupportView.d.ts +31 -0
  378. package/dist/features/seller/components/SellerSupportView.js +100 -0
  379. package/dist/features/seller/components/index.d.ts +4 -8
  380. package/dist/features/seller/components/index.js +2 -4
  381. package/dist/features/seller/index.d.ts +0 -1
  382. package/dist/features/seller/index.js +0 -1
  383. package/dist/features/seller/schemas/coupon-form.d.ts +214 -0
  384. package/dist/features/seller/schemas/coupon-form.js +155 -23
  385. package/dist/features/seller/schemas/offer-forms.d.ts +16 -7
  386. package/dist/features/seller/schemas/offer-forms.js +28 -12
  387. package/dist/features/shell/FormShell.js +2 -2
  388. package/dist/features/shell/QuickFormDrawer.js +2 -2
  389. package/dist/features/shell/SectionForm.d.ts +19 -1
  390. package/dist/features/shell/SectionForm.js +104 -17
  391. package/dist/features/shell/build-sections.d.ts +23 -0
  392. package/dist/features/shell/build-sections.js +106 -8
  393. package/dist/features/shell/field-ui-meta.d.ts +44 -0
  394. package/dist/features/shell/field-ui-meta.js +14 -7
  395. package/dist/features/shell/form-sections.d.ts +46 -0
  396. package/dist/features/shell/form-sections.js +114 -0
  397. package/dist/features/shipments/components/AdminShipmentEditorView.js +87 -64
  398. package/dist/features/shipments/schemas/validation.d.ts +2 -2
  399. package/dist/features/shipments/schemas/validation.js +44 -13
  400. package/dist/features/store-extensions/schemas/custom-role-form.js +6 -2
  401. package/dist/features/store-extensions/schemas/listing-template-form.d.ts +7 -7
  402. package/dist/features/store-extensions/schemas/payout-method-form.js +14 -0
  403. package/dist/features/stores/actions/store-query-actions.js +3 -2
  404. package/dist/features/stores/api/[storeSlug]/auctions/route.js +3 -1
  405. package/dist/features/stores/api/[storeSlug]/products/route.js +3 -1
  406. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -1
  407. package/dist/features/stores/components/StoreDetailLayoutView.js +12 -3
  408. package/dist/features/support/repository/support.repository.d.ts +21 -0
  409. package/dist/features/support/repository/support.repository.js +63 -0
  410. package/dist/features/support/schemas/firestore.d.ts +27 -2
  411. package/dist/features/support/schemas/firestore.js +2 -0
  412. package/dist/features/support/schemas/ticket-create-form.js +7 -0
  413. package/dist/features/tester/schemas/checklist-item-form.d.ts +43 -0
  414. package/dist/features/tester/schemas/checklist-item-form.js +109 -0
  415. package/dist/features/tester/seed-data/blog-tester-seed-data.js +2 -2
  416. package/dist/features/tester/seed-data/categories-tester-seed-data.js +2 -2
  417. package/dist/features/tester/seed-data/events-tester-seed-data.js +5 -5
  418. package/dist/features/tester/seed-data/orders-tester-seed-data.js +2 -2
  419. package/dist/features/tester/seed-data/products-tester-seed-data.js +48 -49
  420. package/dist/features/tester/seed-data/stores-tester-seed-data.js +3 -3
  421. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +291 -30
  422. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +51 -14
  423. package/dist/features/wishlist/hooks/useWishlistToggle.js +8 -1
  424. package/dist/http/api-handler.js +2 -1
  425. package/dist/index.d.ts +25 -104
  426. package/dist/index.js +38 -143
  427. package/dist/jobs.d.ts +1 -1
  428. package/dist/jobs.js +1 -1
  429. package/dist/monitoring/browser.d.ts +0 -2
  430. package/dist/monitoring/browser.js +12 -1
  431. package/dist/monitoring/index.d.ts +0 -2
  432. package/dist/monitoring/index.js +0 -1
  433. package/dist/next/api/routeHandler.js +9 -4
  434. package/dist/next/index.d.ts +1 -2
  435. package/dist/next/index.js +0 -1
  436. package/dist/next/middleware/index.d.ts +0 -2
  437. package/dist/next/middleware/index.js +0 -1
  438. package/dist/next/routing/route-map.d.ts +8 -7
  439. package/dist/next/routing/route-map.js +10 -3
  440. package/dist/providers/auth-firebase/session.js +3 -1
  441. package/dist/providers/db-firebase/admin-app-lite.js +8 -8
  442. package/dist/providers/db-firebase/admin.js +27 -13
  443. package/dist/providers/db-firebase/browser-stub.d.ts +1 -11
  444. package/dist/providers/db-firebase/browser-stub.js +6 -11
  445. package/dist/providers/db-firebase/index.d.ts +0 -1
  446. package/dist/providers/db-firebase/index.js +0 -1
  447. package/dist/providers/db-firebase/rtdb-paths.d.ts +15 -6
  448. package/dist/providers/db-firebase/rtdb-paths.js +15 -6
  449. package/dist/providers/db-firebase/rtdb-url.d.ts +27 -0
  450. package/dist/providers/db-firebase/rtdb-url.js +50 -0
  451. package/dist/providers/db-firebase/sieve.d.ts +22 -0
  452. package/dist/providers/firebase-client/realtime.d.ts +20 -0
  453. package/dist/providers/firebase-client/realtime.js +34 -1
  454. package/dist/providers.d.ts +1 -1
  455. package/dist/providers.js +1 -1
  456. package/dist/react/hooks/use-action-dispatch.js +8 -2
  457. package/dist/react/hooks/useFormStatePreservation.js +3 -1
  458. package/dist/react/hooks/useListingTypeFlags.d.ts +1 -1
  459. package/dist/react/hooks/useListingTypeFlags.js +1 -1
  460. package/dist/react/hooks/usePendingFilters.js +5 -3
  461. package/dist/react/hooks/usePendingTable.js +15 -3
  462. package/dist/react/hooks/useRealtimeEvent.js +20 -9
  463. package/dist/repositories/index.d.ts +0 -1
  464. package/dist/repositories/index.js +0 -1
  465. package/dist/schemas/registry.d.ts +197 -232
  466. package/dist/schemas/registry.js +5 -6
  467. package/dist/schemas/webhooks/razorpay.d.ts +50 -50
  468. package/dist/security/authorization.d.ts +9 -0
  469. package/dist/security/authorization.js +16 -2
  470. package/dist/security/browser.d.ts +1 -3
  471. package/dist/security/browser.js +5 -2
  472. package/dist/security/index.d.ts +1 -3
  473. package/dist/security/index.js +19 -2
  474. package/dist/security/pii-encrypt.js +16 -0
  475. package/dist/security/pii-schemas.d.ts +0 -14
  476. package/dist/security/pii-schemas.js +7 -15
  477. package/dist/seed/_helpers/category-forest.js +2 -2
  478. package/dist/seed/_helpers/media.d.ts +19 -0
  479. package/dist/seed/_helpers/media.js +75 -0
  480. package/dist/seed/blog-posts-seed-data.js +17 -17
  481. package/dist/seed/carousel-slides-seed-data.js +7 -7
  482. package/dist/seed/cart-seed-data.js +13 -13
  483. package/dist/seed/categories-seed-data.js +10 -10
  484. package/dist/seed/events-seed-data.js +24 -24
  485. package/dist/seed/factories/product.factory.js +4 -4
  486. package/dist/seed/factories/store.factory.js +3 -3
  487. package/dist/seed/factories/user.factory.js +2 -2
  488. package/dist/seed/grouped-listings-seed-data.js +11 -11
  489. package/dist/seed/homepage-sections-seed-data.js +2 -2
  490. package/dist/seed/index.d.ts +0 -1
  491. package/dist/seed/index.js +0 -1
  492. package/dist/seed/manifest.d.ts +1 -1
  493. package/dist/seed/manifest.js +0 -5
  494. package/dist/seed/notifications-seed-data.js +20 -1
  495. package/dist/seed/orders-seed-data.js +2 -2
  496. package/dist/seed/products-art-seed-data.js +16 -16
  497. package/dist/seed/products-auctions-seed-data.js +34 -34
  498. package/dist/seed/products-classifieds-seed-data.js +35 -37
  499. package/dist/seed/products-digital-codes-seed-data.js +20 -20
  500. package/dist/seed/products-live-items-seed-data.js +11 -11
  501. package/dist/seed/products-preorders-seed-data.js +13 -13
  502. package/dist/seed/products-prize-draws-seed-data.js +43 -43
  503. package/dist/seed/products-standard-seed-data.js +54 -54
  504. package/dist/seed/products-stickers-seed-data.js +15 -15
  505. package/dist/seed/reviews-seed-data.js +4 -4
  506. package/dist/seed/scammers-seed-data.js +3 -3
  507. package/dist/seed/site-settings-seed-data.js +11 -24
  508. package/dist/seed/store-extensions-seed-data.js +10 -10
  509. package/dist/seed/stores-seed-data.js +11 -11
  510. package/dist/seed/support-tickets-seed-data.d.ts +14 -0
  511. package/dist/seed/support-tickets-seed-data.js +20 -1
  512. package/dist/seed/users-seed-data.js +20 -20
  513. package/dist/server-entry.d.ts +0 -1
  514. package/dist/server-entry.js +0 -1
  515. package/dist/server.d.ts +9 -6
  516. package/dist/server.js +7 -13
  517. package/dist/styles.css +248 -68
  518. package/dist/tailwind-utilities.css +1 -1
  519. package/dist/tokens/themes/default-dark.js +2 -2
  520. package/dist/tokens/themes/default-light.js +2 -2
  521. package/dist/tokens/tokens.css +24 -4
  522. package/dist/ui/components/ActionRow.d.ts +50 -0
  523. package/dist/ui/components/ActionRow.js +53 -0
  524. package/dist/ui/components/ActionRow.style.css +145 -0
  525. package/dist/ui/components/Drawer.d.ts +10 -0
  526. package/dist/ui/components/Drawer.js +2 -1
  527. package/dist/ui/components/FilterDrawer.js +4 -1
  528. package/dist/ui/components/FilterDrawer.style.css +6 -12
  529. package/dist/ui/components/FormActionBar.js +14 -1
  530. package/dist/ui/components/FormActionBar.style.css +12 -11
  531. package/dist/ui/components/ListingLayout.js +8 -1
  532. package/dist/ui/components/ListingLayout.style.css +6 -13
  533. package/dist/ui/components/Modal.d.ts +15 -1
  534. package/dist/ui/components/Modal.js +17 -3
  535. package/dist/ui/components/QuickCreateModal.js +2 -2
  536. package/dist/ui/components/QuickCreateModal.style.css +78 -84
  537. package/dist/ui/components/RecordDetailModal.js +2 -2
  538. package/dist/ui/components/SideDrawer.d.ts +8 -0
  539. package/dist/ui/components/SideDrawer.js +2 -1
  540. package/dist/ui/components/SideDrawer.style.css +6 -3
  541. package/dist/ui/components/SideModal.d.ts +11 -1
  542. package/dist/ui/components/SideModal.js +3 -2
  543. package/dist/ui/components/SideModal.style.css +14 -0
  544. package/dist/ui/components/Typography.style.css +33 -24
  545. package/dist/ui/components/index.style.css +1 -0
  546. package/dist/ui/components/toolbar-collapse.js +1 -2
  547. package/dist/ui/forms/FormShell.style.css +260 -311
  548. package/dist/ui/index.d.ts +2 -0
  549. package/dist/ui/index.js +1 -0
  550. package/dist/utils/index.d.ts +0 -1
  551. package/dist/utils/index.js +0 -1
  552. package/dist/validation/index.d.ts +1 -1
  553. package/dist/validation/index.js +1 -1
  554. package/dist/validation/schemas.d.ts +0 -19
  555. package/dist/validation/schemas.js +8 -19
  556. package/package.json +1 -1
  557. package/scripts/seed-cli.mjs +3 -6
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import { PRODUCT_FIELDS } from "../constants/field-names";
26
26
  import { buildSearchTxt } from "../utils/search-txt";
27
- import { seedExtMedia } from "./_helpers/media";
27
+ import { seedPhoto } from "./_helpers/media";
28
28
  function withTokens(p) {
29
29
  return {
30
30
  tags: [],
@@ -64,11 +64,11 @@ const _rawProductsAuctionsSeedData = [
64
64
  bidCount: 3,
65
65
  bidsHaveStarted: true,
66
66
  isSold: false,
67
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-dragoon-storm-1-20260101/900/900"),
67
+ mainImage: seedPhoto("auction-image-beyblade-original-dragoon-storm-1-20260101", 900, 900),
68
68
  images: [
69
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-dragoon-storm-1-20260101/900/900"),
70
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-dragoon-storm-2-20260101/900/900"),
71
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-dragoon-storm-3-20260101/900/900"),
69
+ seedPhoto("auction-image-beyblade-original-dragoon-storm-1-20260101", 900, 900),
70
+ seedPhoto("auction-image-beyblade-original-dragoon-storm-2-20260101", 900, 900),
71
+ seedPhoto("auction-image-beyblade-original-dragoon-storm-3-20260101", 900, 900),
72
72
  ],
73
73
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
74
74
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -83,7 +83,7 @@ const _rawProductsAuctionsSeedData = [
83
83
  // on a non-standard listing type.
84
84
  video: {
85
85
  url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
86
- thumbnailUrl: seedExtMedia("https://picsum.photos/seed/auction-video-thumb-beyblade-original-dragoon-storm-20260821/800/450"),
86
+ thumbnailUrl: seedPhoto("auction-video-thumb-beyblade-original-dragoon-storm-20260821", 800, 450),
87
87
  duration: 212,
88
88
  },
89
89
  storeId: "store-beyblade-arena",
@@ -108,11 +108,11 @@ const _rawProductsAuctionsSeedData = [
108
108
  bidCount: 13,
109
109
  bidsHaveStarted: true,
110
110
  isSold: false,
111
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-lightning-l-drago-1-20260101/900/900"),
111
+ mainImage: seedPhoto("auction-image-beyblade-metal-lightning-l-drago-1-20260101", 900, 900),
112
112
  images: [
113
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-lightning-l-drago-1-20260101/900/900"),
114
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-lightning-l-drago-2-20260101/900/900"),
115
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-lightning-l-drago-3-20260101/900/900"),
113
+ seedPhoto("auction-image-beyblade-metal-lightning-l-drago-1-20260101", 900, 900),
114
+ seedPhoto("auction-image-beyblade-metal-lightning-l-drago-2-20260101", 900, 900),
115
+ seedPhoto("auction-image-beyblade-metal-lightning-l-drago-3-20260101", 900, 900),
116
116
  ],
117
117
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
118
118
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
@@ -149,10 +149,10 @@ const _rawProductsAuctionsSeedData = [
149
149
  bidCount: 0,
150
150
  bidsHaveStarted: false,
151
151
  isSold: false,
152
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-x-shark-edge-1-20260814/900/900"),
152
+ mainImage: seedPhoto("auction-image-beyblade-x-shark-edge-1-20260814", 900, 900),
153
153
  images: [
154
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-x-shark-edge-1-20260814/900/900"),
155
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-x-shark-edge-2-20260814/900/900"),
154
+ seedPhoto("auction-image-beyblade-x-shark-edge-1-20260814", 900, 900),
155
+ seedPhoto("auction-image-beyblade-x-shark-edge-2-20260814", 900, 900),
156
156
  ],
157
157
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
158
158
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -190,10 +190,10 @@ const _rawProductsAuctionsSeedData = [
190
190
  bidCount: 7,
191
191
  bidsHaveStarted: true,
192
192
  isSold: false,
193
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-xcalius-1-20260824/900/900"),
193
+ mainImage: seedPhoto("auction-image-beyblade-burst-xcalius-1-20260824", 900, 900),
194
194
  images: [
195
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-xcalius-1-20260824/900/900"),
196
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-xcalius-2-20260824/900/900"),
195
+ seedPhoto("auction-image-beyblade-burst-xcalius-1-20260824", 900, 900),
196
+ seedPhoto("auction-image-beyblade-burst-xcalius-2-20260824", 900, 900),
197
197
  ],
198
198
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
199
199
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -226,10 +226,10 @@ const _rawProductsAuctionsSeedData = [
226
226
  bidCount: 4,
227
227
  bidsHaveStarted: true,
228
228
  isSold: false,
229
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-seaborg-1-20260814/900/900"),
229
+ mainImage: seedPhoto("auction-image-beyblade-original-seaborg-1-20260814", 900, 900),
230
230
  images: [
231
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-seaborg-1-20260814/900/900"),
232
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-original-seaborg-2-20260814/900/900"),
231
+ seedPhoto("auction-image-beyblade-original-seaborg-1-20260814", 900, 900),
232
+ seedPhoto("auction-image-beyblade-original-seaborg-2-20260814", 900, 900),
233
233
  ],
234
234
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
235
235
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
@@ -263,11 +263,11 @@ const _rawProductsAuctionsSeedData = [
263
263
  bidsHaveStarted: true,
264
264
  leadingBidderId: "user-rohit-collector",
265
265
  isSold: true,
266
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-diablo-nemesis-1-20260810/900/900"),
266
+ mainImage: seedPhoto("auction-image-beyblade-metal-diablo-nemesis-1-20260810", 900, 900),
267
267
  images: [
268
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-diablo-nemesis-1-20260810/900/900"),
269
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-diablo-nemesis-2-20260810/900/900"),
270
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-metal-diablo-nemesis-3-20260810/900/900"),
268
+ seedPhoto("auction-image-beyblade-metal-diablo-nemesis-1-20260810", 900, 900),
269
+ seedPhoto("auction-image-beyblade-metal-diablo-nemesis-2-20260810", 900, 900),
270
+ seedPhoto("auction-image-beyblade-metal-diablo-nemesis-3-20260810", 900, 900),
271
271
  ],
272
272
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
273
273
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
@@ -306,10 +306,10 @@ const _rawProductsAuctionsSeedData = [
306
306
  bidsHaveStarted: true,
307
307
  leadingBidderId: "user-seto-kaiba",
308
308
  isSold: true,
309
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-spriggan-requiem-1-20260810/900/900"),
309
+ mainImage: seedPhoto("auction-image-beyblade-burst-spriggan-requiem-1-20260810", 900, 900),
310
310
  images: [
311
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-spriggan-requiem-1-20260810/900/900"),
312
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-spriggan-requiem-2-20260810/900/900"),
311
+ seedPhoto("auction-image-beyblade-burst-spriggan-requiem-1-20260810", 900, 900),
312
+ seedPhoto("auction-image-beyblade-burst-spriggan-requiem-2-20260810", 900, 900),
313
313
  ],
314
314
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
315
315
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
@@ -342,10 +342,10 @@ const _rawProductsAuctionsSeedData = [
342
342
  bidCount: 2,
343
343
  bidsHaveStarted: true,
344
344
  isSold: false,
345
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-cho-z-achilles-1-20260815/900/900"),
345
+ mainImage: seedPhoto("auction-image-beyblade-burst-cho-z-achilles-1-20260815", 900, 900),
346
346
  images: [
347
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-cho-z-achilles-1-20260815/900/900"),
348
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-burst-cho-z-achilles-2-20260815/900/900"),
347
+ seedPhoto("auction-image-beyblade-burst-cho-z-achilles-1-20260815", 900, 900),
348
+ seedPhoto("auction-image-beyblade-burst-cho-z-achilles-2-20260815", 900, 900),
349
349
  ],
350
350
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
351
351
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
@@ -377,10 +377,10 @@ const _rawProductsAuctionsSeedData = [
377
377
  bidCount: 3,
378
378
  bidsHaveStarted: true,
379
379
  isSold: false,
380
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-x-wizard-fafnir-1-20260816/900/900"),
380
+ mainImage: seedPhoto("auction-image-beyblade-x-wizard-fafnir-1-20260816", 900, 900),
381
381
  images: [
382
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-x-wizard-fafnir-1-20260816/900/900"),
383
- seedExtMedia("https://picsum.photos/seed/auction-image-beyblade-x-wizard-fafnir-2-20260816/900/900"),
382
+ seedPhoto("auction-image-beyblade-x-wizard-fafnir-1-20260816", 900, 900),
383
+ seedPhoto("auction-image-beyblade-x-wizard-fafnir-2-20260816", 900, 900),
384
384
  ],
385
385
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
386
386
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -430,9 +430,9 @@ export const productsAuctionsSeedData = [
430
430
  bidCount: 0,
431
431
  bidsHaveStarted: false,
432
432
  isSold: false,
433
- mainImage: seedExtMedia("https://picsum.photos/seed/auction-image-lord-spryzen-ended-1-20260824/900/900"),
433
+ mainImage: seedPhoto("auction-image-lord-spryzen-ended-1-20260824", 900, 900),
434
434
  images: [
435
- seedExtMedia("https://picsum.photos/seed/auction-image-lord-spryzen-ended-1-20260824/900/900"),
435
+ seedPhoto("auction-image-lord-spryzen-ended-1-20260824", 900, 900),
436
436
  ],
437
437
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
438
438
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
@@ -1,12 +1,18 @@
1
1
  /*
2
2
  * WHY: Seeds a Beyblade classifieds catalog with real geographic and meta-field variety.
3
- * The original 1-fixture file only ever exercised one city (Mumbai), one
4
- * `contactMethod` ("both"), and always `acceptsShipping:false`/`negotiable:true` —
5
- * no variety to exercise the classifieds filter UI or the contact-method-specific
6
- * copy on the detail page (see CLAUDE.md seed-data blandness sweep, 2026-08-20).
3
+ * The original 1-fixture file only ever exercised one city (Mumbai) and always
4
+ * `acceptsShipping:false`/`negotiable:true` — no variety to exercise the
5
+ * classifieds filter UI (see CLAUDE.md seed-data blandness sweep, 2026-08-20).
7
6
  * WHAT: Exports 8 classified listings on Beyblade Arena — local meetups across 5 Indian
8
- * cities, covering all 3 contactMethod values and both true/false states of
9
- * acceptsShipping/negotiable.
7
+ * cities, covering both true/false states of acceptsShipping/negotiable.
8
+ *
9
+ * 🛑 The `allowOffers` split is the point of this file now. A classified has
10
+ * no cart, so the offer IS the purchase path: the 4 fixtures WITH
11
+ * `allowOffers: true` exercise the negotiate flow (floor at
12
+ * `minOfferPercent`), and the 4 WITHOUT it exercise the request-to-buy
13
+ * flow (amount pinned to the asking price). Keep both sets populated —
14
+ * drop either and half of `resolveOfferBounds` becomes untestable by hand.
15
+ * A `contactMethod` field was removed 2026-08-31; see ProductClassifiedMeta.
10
16
  *
11
17
  * EXPORTS:
12
18
  * productsClassifiedsSeedData — Array of 8 Partial<ProductDocument> with listingType:"classified"
@@ -21,7 +27,7 @@
21
27
  import { withProductSearchTxt } from "./_helpers/product-search-txt";
22
28
  import { PRODUCT_FIELDS } from "../constants/field-names";
23
29
  import { buildSearchTxt } from "../utils/search-txt";
24
- import { seedExtMedia } from "./_helpers/media";
30
+ import { seedPhoto } from "./_helpers/media";
25
31
  const _rawproductsClassifiedsSeedData = [
26
32
  {
27
33
  id: "classified-beyblade-stadium-set",
@@ -43,10 +49,10 @@ const _rawproductsClassifiedsSeedData = [
43
49
  stockQuantity: 1,
44
50
  availableQuantity: 1,
45
51
  isSold: false,
46
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-stadium-set-1-20260101/900/900"),
52
+ mainImage: seedPhoto("classified-image-beyblade-stadium-set-1-20260101", 900, 900),
47
53
  images: [
48
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-stadium-set-1-20260101/900/900"),
49
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-stadium-set-2-20260101/900/900"),
54
+ seedPhoto("classified-image-beyblade-stadium-set-1-20260101", 900, 900),
55
+ seedPhoto("classified-image-beyblade-stadium-set-2-20260101", 900, 900),
50
56
  ],
51
57
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
52
58
  condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
@@ -55,7 +61,6 @@ const _rawproductsClassifiedsSeedData = [
55
61
  storeName: "Beyblade Arena",
56
62
  classified: {
57
63
  meetupArea: { city: "Mumbai", locality: "Andheri West", pincode: "400058" },
58
- contactMethod: "both",
59
64
  acceptsShipping: false,
60
65
  negotiable: true,
61
66
  },
@@ -90,10 +95,10 @@ const _rawproductsClassifiedsSeedData = [
90
95
  stockQuantity: 1,
91
96
  availableQuantity: 1,
92
97
  isSold: false,
93
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-burst-bengaluru-1-20260813/900/900"),
98
+ mainImage: seedPhoto("classified-image-beyblade-burst-bengaluru-1-20260813", 900, 900),
94
99
  images: [
95
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-burst-bengaluru-1-20260813/900/900"),
96
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-burst-bengaluru-2-20260813/900/900"),
100
+ seedPhoto("classified-image-beyblade-burst-bengaluru-1-20260813", 900, 900),
101
+ seedPhoto("classified-image-beyblade-burst-bengaluru-2-20260813", 900, 900),
97
102
  ],
98
103
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
99
104
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
@@ -102,7 +107,6 @@ const _rawproductsClassifiedsSeedData = [
102
107
  storeName: "Beyblade Arena",
103
108
  classified: {
104
109
  meetupArea: { city: "Bengaluru", locality: "Koramangala", pincode: "560034" },
105
- contactMethod: "chat",
106
110
  acceptsShipping: true,
107
111
  negotiable: false,
108
112
  },
@@ -143,8 +147,8 @@ const _rawproductsClassifiedsSeedData = [
143
147
  stockQuantity: 1,
144
148
  availableQuantity: 1,
145
149
  isSold: false,
146
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-x-pune-1-20260814/900/900"),
147
- images: [seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-x-pune-1-20260814/900/900")],
150
+ mainImage: seedPhoto("classified-image-beyblade-x-pune-1-20260814", 900, 900),
151
+ images: [seedPhoto("classified-image-beyblade-x-pune-1-20260814", 900, 900)],
148
152
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
149
153
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
150
154
  listingType: "classified",
@@ -152,7 +156,6 @@ const _rawproductsClassifiedsSeedData = [
152
156
  storeName: "Beyblade Arena",
153
157
  classified: {
154
158
  meetupArea: { city: "Pune", locality: "Kothrud", pincode: "411038" },
155
- contactMethod: "phone",
156
159
  acceptsShipping: false,
157
160
  negotiable: true,
158
161
  },
@@ -187,11 +190,11 @@ const _rawproductsClassifiedsSeedData = [
187
190
  stockQuantity: 1,
188
191
  availableQuantity: 1,
189
192
  isSold: false,
190
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-metal-delhi-1-20260815/900/900"),
193
+ mainImage: seedPhoto("classified-image-beyblade-metal-delhi-1-20260815", 900, 900),
191
194
  images: [
192
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-metal-delhi-1-20260815/900/900"),
193
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-metal-delhi-2-20260815/900/900"),
194
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-metal-delhi-3-20260815/900/900"),
195
+ seedPhoto("classified-image-beyblade-metal-delhi-1-20260815", 900, 900),
196
+ seedPhoto("classified-image-beyblade-metal-delhi-2-20260815", 900, 900),
197
+ seedPhoto("classified-image-beyblade-metal-delhi-3-20260815", 900, 900),
195
198
  ],
196
199
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
197
200
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
@@ -200,7 +203,6 @@ const _rawproductsClassifiedsSeedData = [
200
203
  storeName: "Beyblade Arena",
201
204
  classified: {
202
205
  meetupArea: { city: "New Delhi", locality: "Rajouri Garden", pincode: "110027" },
203
- contactMethod: "both",
204
206
  acceptsShipping: true,
205
207
  negotiable: false,
206
208
  },
@@ -241,10 +243,10 @@ const _rawproductsClassifiedsSeedData = [
241
243
  stockQuantity: 1,
242
244
  availableQuantity: 1,
243
245
  isSold: false,
244
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-original-chennai-1-20260816/900/900"),
246
+ mainImage: seedPhoto("classified-image-beyblade-original-chennai-1-20260816", 900, 900),
245
247
  images: [
246
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-original-chennai-1-20260816/900/900"),
247
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-original-chennai-2-20260816/900/900"),
248
+ seedPhoto("classified-image-beyblade-original-chennai-1-20260816", 900, 900),
249
+ seedPhoto("classified-image-beyblade-original-chennai-2-20260816", 900, 900),
248
250
  ],
249
251
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
250
252
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
@@ -253,7 +255,6 @@ const _rawproductsClassifiedsSeedData = [
253
255
  storeName: "Beyblade Arena",
254
256
  classified: {
255
257
  meetupArea: { city: "Chennai", locality: "T. Nagar", pincode: "600017" },
256
- contactMethod: "chat",
257
258
  acceptsShipping: false,
258
259
  negotiable: false,
259
260
  },
@@ -294,10 +295,10 @@ const _rawproductsClassifiedsSeedData = [
294
295
  stockQuantity: 1,
295
296
  availableQuantity: 1,
296
297
  isSold: false,
297
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-x-hyderabad-1-20260817/900/900"),
298
+ mainImage: seedPhoto("classified-image-beyblade-x-hyderabad-1-20260817", 900, 900),
298
299
  images: [
299
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-x-hyderabad-1-20260817/900/900"),
300
- seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-x-hyderabad-2-20260817/900/900"),
300
+ seedPhoto("classified-image-beyblade-x-hyderabad-1-20260817", 900, 900),
301
+ seedPhoto("classified-image-beyblade-x-hyderabad-2-20260817", 900, 900),
301
302
  ],
302
303
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
303
304
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
@@ -306,7 +307,6 @@ const _rawproductsClassifiedsSeedData = [
306
307
  storeName: "Beyblade Arena",
307
308
  classified: {
308
309
  meetupArea: { city: "Hyderabad", locality: "Banjara Hills", pincode: "500034" },
309
- contactMethod: "phone",
310
310
  acceptsShipping: true,
311
311
  negotiable: true,
312
312
  },
@@ -347,8 +347,8 @@ const _rawproductsClassifiedsSeedData = [
347
347
  stockQuantity: 1,
348
348
  availableQuantity: 1,
349
349
  isSold: false,
350
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-burst-mumbai-1-20260818/900/900"),
351
- images: [seedExtMedia("https://picsum.photos/seed/classified-image-beyblade-burst-mumbai-1-20260818/900/900")],
350
+ mainImage: seedPhoto("classified-image-beyblade-burst-mumbai-1-20260818", 900, 900),
351
+ images: [seedPhoto("classified-image-beyblade-burst-mumbai-1-20260818", 900, 900)],
352
352
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
353
353
  condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
354
354
  listingType: "classified",
@@ -356,7 +356,6 @@ const _rawproductsClassifiedsSeedData = [
356
356
  storeName: "Beyblade Arena",
357
357
  classified: {
358
358
  meetupArea: { city: "Mumbai", locality: "Powai", pincode: "400076" },
359
- contactMethod: "both",
360
359
  acceptsShipping: true,
361
360
  negotiable: true,
362
361
  },
@@ -393,9 +392,9 @@ const _rawproductsClassifiedsSeedData = [
393
392
  stockQuantity: 0,
394
393
  availableQuantity: 0,
395
394
  isSold: true,
396
- mainImage: seedExtMedia("https://picsum.photos/seed/classified-image-galaxy-pegasus-sold-1-20260824/900/900"),
395
+ mainImage: seedPhoto("classified-image-galaxy-pegasus-sold-1-20260824", 900, 900),
397
396
  images: [
398
- seedExtMedia("https://picsum.photos/seed/classified-image-galaxy-pegasus-sold-1-20260824/900/900"),
397
+ seedPhoto("classified-image-galaxy-pegasus-sold-1-20260824", 900, 900),
399
398
  ],
400
399
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
401
400
  condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
@@ -404,7 +403,6 @@ const _rawproductsClassifiedsSeedData = [
404
403
  storeName: "Beyblade Arena",
405
404
  classified: {
406
405
  meetupArea: { city: "Mumbai", locality: "Dadar", pincode: "400014" },
407
- contactMethod: "chat",
408
406
  acceptsShipping: false,
409
407
  negotiable: false,
410
408
  },
@@ -20,7 +20,7 @@
20
20
  import { withProductSearchTxt } from "./_helpers/product-search-txt";
21
21
  import { PRODUCT_FIELDS } from "../constants/field-names";
22
22
  import { buildSearchTxt } from "../utils/search-txt";
23
- import { seedExtMedia } from "./_helpers/media";
23
+ import { seedPhoto } from "./_helpers/media";
24
24
  const _rawproductsDigitalCodesSeedData = [
25
25
  {
26
26
  id: "digitalcode-beyblade-x-app-starter-pack",
@@ -36,10 +36,10 @@ const _rawproductsDigitalCodesSeedData = [
36
36
  stockQuantity: 25,
37
37
  availableQuantity: 25,
38
38
  isSold: false,
39
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-starter-1-20260101/900/900"),
39
+ mainImage: seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900),
40
40
  images: [
41
- seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-starter-1-20260101/900/900"),
42
- seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-starter-2-20260101/900/900"),
41
+ seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900),
42
+ seedPhoto("digitalcode-image-beyblade-x-starter-2-20260101", 900, 900),
43
43
  ],
44
44
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
45
45
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -83,8 +83,8 @@ const _rawproductsDigitalCodesSeedData = [
83
83
  stockQuantity: 40,
84
84
  availableQuantity: 6,
85
85
  isSold: false,
86
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-legendary-1-20260814/900/900"),
87
- images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-legendary-1-20260814/900/900")],
86
+ mainImage: seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900),
87
+ images: [seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900)],
88
88
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
89
89
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
90
90
  listingType: "digital-code",
@@ -133,8 +133,8 @@ const _rawproductsDigitalCodesSeedData = [
133
133
  stockQuantity: 0,
134
134
  availableQuantity: 0,
135
135
  isSold: true,
136
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-sold-out-1-20260810/900/900"),
137
- images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-sold-out-1-20260810/900/900")],
136
+ mainImage: seedPhoto("digitalcode-image-beyblade-burst-sold-out-1-20260810", 900, 900),
137
+ images: [seedPhoto("digitalcode-image-beyblade-burst-sold-out-1-20260810", 900, 900)],
138
138
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
139
139
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
140
140
  listingType: "digital-code",
@@ -177,10 +177,10 @@ const _rawproductsDigitalCodesSeedData = [
177
177
  stockQuantity: 50,
178
178
  availableQuantity: 32,
179
179
  isSold: false,
180
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-tournament-1-20260815/900/900"),
180
+ mainImage: seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900),
181
181
  images: [
182
- seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-tournament-1-20260815/900/900"),
183
- seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-tournament-2-20260815/900/900"),
182
+ seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900),
183
+ seedPhoto("digitalcode-image-beyblade-x-tournament-2-20260815", 900, 900),
184
184
  ],
185
185
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
186
186
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -225,8 +225,8 @@ const _rawproductsDigitalCodesSeedData = [
225
225
  stockQuantity: 30,
226
226
  availableQuantity: 30,
227
227
  isSold: false,
228
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-metal-classic-1-20260816/900/900"),
229
- images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-metal-classic-1-20260816/900/900")],
228
+ mainImage: seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900),
229
+ images: [seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900)],
230
230
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
231
231
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
232
232
  listingType: "digital-code",
@@ -269,8 +269,8 @@ const _rawproductsDigitalCodesSeedData = [
269
269
  stockQuantity: 60,
270
270
  availableQuantity: 41,
271
271
  isSold: false,
272
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-avatar-1-20260817/900/900"),
273
- images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-avatar-1-20260817/900/900")],
272
+ mainImage: seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900),
273
+ images: [seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900)],
274
274
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
275
275
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
276
276
  listingType: "digital-code",
@@ -313,10 +313,10 @@ const _rawproductsDigitalCodesSeedData = [
313
313
  stockQuantity: 10,
314
314
  availableQuantity: 3,
315
315
  isSold: false,
316
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-coaching-1-20260818/900/900"),
316
+ mainImage: seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900),
317
317
  images: [
318
- seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-coaching-1-20260818/900/900"),
319
- seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-coaching-2-20260818/900/900"),
318
+ seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900),
319
+ seedPhoto("digitalcode-image-beyblade-x-coaching-2-20260818", 900, 900),
320
320
  ],
321
321
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
322
322
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -371,8 +371,8 @@ const _rawproductsDigitalCodesSeedData = [
371
371
  stockQuantity: 5,
372
372
  availableQuantity: 5,
373
373
  isSold: false,
374
- mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-depleted-1-20260824/900/900"),
375
- images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-depleted-1-20260824/900/900")],
374
+ mainImage: seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900),
375
+ images: [seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900)],
376
376
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
377
377
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
378
378
  listingType: "digital-code",
@@ -33,7 +33,7 @@
33
33
  import { withProductSearchTxt } from "./_helpers/product-search-txt";
34
34
  import { PRODUCT_FIELDS } from "../constants/field-names";
35
35
  import { buildSearchTxt } from "../utils/search-txt";
36
- import { seedExtMedia } from "./_helpers/media";
36
+ import { seedPhoto } from "./_helpers/media";
37
37
  const _rawproductsLiveItemsSeedData = [
38
38
  {
39
39
  id: "live-golden-retriever-puppy",
@@ -49,10 +49,10 @@ const _rawproductsLiveItemsSeedData = [
49
49
  stockQuantity: 1,
50
50
  availableQuantity: 1,
51
51
  isSold: false,
52
- mainImage: seedExtMedia("https://picsum.photos/seed/live-image-golden-retriever-1-20260816/900/900"),
52
+ mainImage: seedPhoto("live-image-golden-retriever-1-20260816", 900, 900),
53
53
  images: [
54
- seedExtMedia("https://picsum.photos/seed/live-image-golden-retriever-1-20260816/900/900"),
55
- seedExtMedia("https://picsum.photos/seed/live-image-golden-retriever-2-20260816/900/900"),
54
+ seedPhoto("live-image-golden-retriever-1-20260816", 900, 900),
55
+ seedPhoto("live-image-golden-retriever-2-20260816", 900, 900),
56
56
  ],
57
57
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
58
58
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -99,8 +99,8 @@ const _rawproductsLiveItemsSeedData = [
99
99
  stockQuantity: 1,
100
100
  availableQuantity: 1,
101
101
  isSold: false,
102
- mainImage: seedExtMedia("https://picsum.photos/seed/live-image-bearded-dragon-1-20260817/900/900"),
103
- images: [seedExtMedia("https://picsum.photos/seed/live-image-bearded-dragon-1-20260817/900/900")],
102
+ mainImage: seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900),
103
+ images: [seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900)],
104
104
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
105
105
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
106
106
  listingType: "live",
@@ -147,10 +147,10 @@ const _rawproductsLiveItemsSeedData = [
147
147
  stockQuantity: 1,
148
148
  availableQuantity: 1,
149
149
  isSold: false,
150
- mainImage: seedExtMedia("https://picsum.photos/seed/live-image-bonsai-juniper-1-20260818/900/900"),
150
+ mainImage: seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900),
151
151
  images: [
152
- seedExtMedia("https://picsum.photos/seed/live-image-bonsai-juniper-1-20260818/900/900"),
153
- seedExtMedia("https://picsum.photos/seed/live-image-bonsai-juniper-2-20260818/900/900"),
152
+ seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900),
153
+ seedPhoto("live-image-bonsai-juniper-2-20260818", 900, 900),
154
154
  ],
155
155
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
156
156
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -198,9 +198,9 @@ const _rawproductsLiveItemsSeedData = [
198
198
  stockQuantity: 0,
199
199
  availableQuantity: 0,
200
200
  isSold: true,
201
- mainImage: seedExtMedia("https://picsum.photos/seed/live-image-juniper-bonsai-sold-1-20260824/900/900"),
201
+ mainImage: seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900),
202
202
  images: [
203
- seedExtMedia("https://picsum.photos/seed/live-image-juniper-bonsai-sold-1-20260824/900/900"),
203
+ seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900),
204
204
  ],
205
205
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
206
206
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
@@ -21,7 +21,7 @@
21
21
  */
22
22
  import { PRODUCT_FIELDS } from "../constants/field-names";
23
23
  import { buildSearchTxt } from "../utils/search-txt";
24
- import { seedExtMedia } from "./_helpers/media";
24
+ import { seedPhoto } from "./_helpers/media";
25
25
  const _rawPreordersSeedData = [
26
26
  {
27
27
  id: "preorder-beyblade-x-bx-08-wave",
@@ -39,8 +39,8 @@ const _rawPreordersSeedData = [
39
39
  categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
40
40
  brand: "Takara-Tomy",
41
41
  images: [
42
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-08-wave-1-20260101/900/900"),
43
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-08-wave-2-20260101/900/900"),
42
+ seedPhoto("preorder-image-beyblade-x-bx-08-wave-1-20260101", 900, 900),
43
+ seedPhoto("preorder-image-beyblade-x-bx-08-wave-2-20260101", 900, 900),
44
44
  ],
45
45
  isSold: false,
46
46
  availableQuantity: 1,
@@ -81,8 +81,8 @@ const _rawPreordersSeedData = [
81
81
  categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
82
82
  brand: "Takara-Tomy",
83
83
  images: [
84
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-09-glide-ring-1-20260814/900/900"),
85
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-09-glide-ring-2-20260814/900/900"),
84
+ seedPhoto("preorder-image-beyblade-x-bx-09-glide-ring-1-20260814", 900, 900),
85
+ seedPhoto("preorder-image-beyblade-x-bx-09-glide-ring-2-20260814", 900, 900),
86
86
  ],
87
87
  isSold: false,
88
88
  availableQuantity: 1,
@@ -117,8 +117,8 @@ const _rawPreordersSeedData = [
117
117
  categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
118
118
  brand: "Beyblade",
119
119
  images: [
120
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-210-union-1-20260814/900/900"),
121
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-210-union-2-20260814/900/900"),
120
+ seedPhoto("preorder-image-beyblade-burst-b-210-union-1-20260814", 900, 900),
121
+ seedPhoto("preorder-image-beyblade-burst-b-210-union-2-20260814", 900, 900),
122
122
  ],
123
123
  isSold: false,
124
124
  availableQuantity: 1,
@@ -156,7 +156,7 @@ const _rawPreordersSeedData = [
156
156
  categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
157
157
  brand: "Takara-Tomy",
158
158
  images: [
159
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-11-sold-out-1-20260812/900/900"),
159
+ seedPhoto("preorder-image-beyblade-x-bx-11-sold-out-1-20260812", 900, 900),
160
160
  ],
161
161
  // `isSold: false` until 2026-08-24, contradicting both the zero
162
162
  // availability and the filled allocation immediately below it — so the
@@ -195,8 +195,8 @@ const _rawPreordersSeedData = [
195
195
  categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
196
196
  brand: "Beyblade",
197
197
  images: [
198
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-215-hells-scythe-1-20260817/900/900"),
199
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-215-hells-scythe-2-20260817/900/900"),
198
+ seedPhoto("preorder-image-beyblade-burst-b-215-hells-scythe-1-20260817", 900, 900),
199
+ seedPhoto("preorder-image-beyblade-burst-b-215-hells-scythe-2-20260817", 900, 900),
200
200
  ],
201
201
  isSold: false,
202
202
  availableQuantity: 1,
@@ -234,8 +234,8 @@ const _rawPreordersSeedData = [
234
234
  categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
235
235
  brand: "Beyblade",
236
236
  images: [
237
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-original-remaster-1-20260818/900/900"),
238
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-original-remaster-2-20260818/900/900"),
237
+ seedPhoto("preorder-image-beyblade-original-remaster-1-20260818", 900, 900),
238
+ seedPhoto("preorder-image-beyblade-original-remaster-2-20260818", 900, 900),
239
239
  ],
240
240
  isSold: false,
241
241
  availableQuantity: 1,
@@ -276,7 +276,7 @@ const _rawPreordersSeedData = [
276
276
  categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
277
277
  brand: "Takara-Tomy",
278
278
  images: [
279
- seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-12-closed-1-20260824/900/900"),
279
+ seedPhoto("preorder-image-beyblade-x-bx-12-closed-1-20260824", 900, 900),
280
280
  ],
281
281
  isSold: true,
282
282
  availableQuantity: 0,