@mohasinac/appkit 4.53.0 → 4.53.1

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 (500) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/client/scaffolds/AppShell.js +1 -1
  3. package/dist/_internal/server/features/auctions/og.d.ts +3 -1
  4. package/dist/_internal/server/features/auctions/og.js +3 -1
  5. package/dist/_internal/server/features/bundles/actions.js +1 -1
  6. package/dist/_internal/server/features/business-documents/download.d.ts +41 -0
  7. package/dist/_internal/server/features/business-documents/download.js +91 -0
  8. package/dist/_internal/server/features/categories/adapters.d.ts +1 -1
  9. package/dist/_internal/server/features/categories/adapters.js +10 -0
  10. package/dist/_internal/server/features/checkout/actions.d.ts +14 -0
  11. package/dist/_internal/server/features/checkout/actions.js +106 -12
  12. package/dist/_internal/server/features/checkout/bundle-expansion.js +17 -0
  13. package/dist/_internal/server/features/checkout/data.d.ts +22 -0
  14. package/dist/_internal/server/features/checkout/group-rule-revalidation.d.ts +34 -0
  15. package/dist/_internal/server/features/checkout/group-rule-revalidation.js +124 -0
  16. package/dist/_internal/server/features/checkout/supplier-identity.d.ts +55 -0
  17. package/dist/_internal/server/features/checkout/supplier-identity.js +81 -0
  18. package/dist/_internal/server/features/classified/metadata.js +1 -1
  19. package/dist/_internal/server/features/classified/og.d.ts +3 -1
  20. package/dist/_internal/server/features/classified/og.js +3 -1
  21. package/dist/_internal/server/features/digital-code/metadata.js +1 -1
  22. package/dist/_internal/server/features/digital-code/og.d.ts +3 -1
  23. package/dist/_internal/server/features/digital-code/og.js +3 -1
  24. package/dist/_internal/server/features/digital-code/pool.d.ts +19 -4
  25. package/dist/_internal/server/features/digital-code/pool.js +19 -4
  26. package/dist/_internal/server/features/live/metadata.js +1 -1
  27. package/dist/_internal/server/features/live/og.d.ts +3 -1
  28. package/dist/_internal/server/features/live/og.js +3 -1
  29. package/dist/_internal/server/features/messages/actions.js +1 -1
  30. package/dist/_internal/server/features/parts/og.js +1 -1
  31. package/dist/_internal/server/features/pre-orders/og.d.ts +3 -1
  32. package/dist/_internal/server/features/pre-orders/og.js +3 -1
  33. package/dist/_internal/server/features/price-index/search.d.ts +18 -0
  34. package/dist/_internal/server/features/price-index/search.js +47 -7
  35. package/dist/_internal/server/features/prize-draws/og.d.ts +3 -1
  36. package/dist/_internal/server/features/prize-draws/og.js +3 -1
  37. package/dist/_internal/server/features/products/group-members.d.ts +26 -0
  38. package/dist/_internal/server/features/products/group-members.js +7 -1
  39. package/dist/_internal/server/features/products/og.d.ts +3 -1
  40. package/dist/_internal/server/features/products/og.js +3 -1
  41. package/dist/_internal/server/features/search/scoped-sources.d.ts +26 -0
  42. package/dist/_internal/server/features/search/scoped-sources.js +252 -0
  43. package/dist/_internal/server/features/search/search-everything.d.ts +57 -0
  44. package/dist/_internal/server/features/search/search-everything.js +70 -20
  45. package/dist/_internal/server/features/seo/sitemap.js +6 -0
  46. package/dist/_internal/server/features/shared/listing-adapters.js +4 -2
  47. package/dist/_internal/server/features/sticker-trace/adapters.d.ts +11 -0
  48. package/dist/_internal/server/features/sticker-trace/adapters.js +1 -0
  49. package/dist/_internal/server/features/sticker-trace/promote-to-listings.d.ts +26 -0
  50. package/dist/_internal/server/features/sticker-trace/promote-to-listings.js +264 -0
  51. package/dist/_internal/server/features/sticker-trace/sheet-actions.d.ts +3 -1
  52. package/dist/_internal/server/features/sticker-trace/sheet-actions.js +32 -0
  53. package/dist/_internal/server/features/sticker-trace/storage.d.ts +20 -1
  54. package/dist/_internal/server/features/sticker-trace/storage.js +20 -1
  55. package/dist/_internal/server/features/stores/adapters.d.ts +1 -1
  56. package/dist/_internal/server/features/stores/adapters.js +16 -0
  57. package/dist/_internal/server/features/stores/index.d.ts +1 -0
  58. package/dist/_internal/server/features/stores/index.js +1 -0
  59. package/dist/_internal/server/features/stores/tabs.d.ts +25 -0
  60. package/dist/_internal/server/features/stores/tabs.js +122 -0
  61. package/dist/_internal/shared/checkout/rules/_defaults.js +0 -2
  62. package/dist/_internal/shared/checkout/rules/_limits.d.ts +14 -1
  63. package/dist/_internal/shared/checkout/rules/_limits.js +14 -1
  64. package/dist/_internal/shared/checkout/rules/_registry.js +2 -0
  65. package/dist/_internal/shared/checkout/rules/auction.rule.js +9 -1
  66. package/dist/_internal/shared/checkout/rules/bundle.rule.js +13 -0
  67. package/dist/_internal/shared/checkout/rules/index.d.ts +2 -0
  68. package/dist/_internal/shared/checkout/rules/index.js +9 -0
  69. package/dist/_internal/shared/checkout/rules/offer.rule.js +0 -1
  70. package/dist/_internal/shared/checkout/rules/payment-gate.d.ts +26 -0
  71. package/dist/_internal/shared/checkout/rules/payment-gate.js +133 -0
  72. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +29 -8
  73. package/dist/_internal/shared/checkout/rules/spares.rule.d.ts +16 -0
  74. package/dist/_internal/shared/checkout/rules/spares.rule.js +5 -0
  75. package/dist/_internal/shared/checkout/rules/types.d.ts +26 -2
  76. package/dist/_internal/shared/config/schema.d.ts +122 -0
  77. package/dist/_internal/shared/features/cart/schema.js +3 -2
  78. package/dist/_internal/shared/features/products/group-rules.d.ts +75 -0
  79. package/dist/_internal/shared/features/products/group-rules.js +142 -0
  80. package/dist/_internal/shared/listing-types/_registry.d.ts +24 -0
  81. package/dist/_internal/shared/listing-types/_registry.js +39 -1
  82. package/dist/_internal/shared/listing-types/art/config.d.ts +1 -0
  83. package/dist/_internal/shared/listing-types/art/config.js +2 -0
  84. package/dist/_internal/shared/listing-types/auction/config.d.ts +1 -0
  85. package/dist/_internal/shared/listing-types/auction/config.js +2 -0
  86. package/dist/_internal/shared/listing-types/availability.js +48 -0
  87. package/dist/_internal/shared/listing-types/capabilities.js +19 -0
  88. package/dist/_internal/shared/listing-types/classified/config.d.ts +1 -0
  89. package/dist/_internal/shared/listing-types/classified/config.js +2 -0
  90. package/dist/_internal/shared/listing-types/digital-code/config.d.ts +1 -0
  91. package/dist/_internal/shared/listing-types/digital-code/config.js +2 -0
  92. package/dist/_internal/shared/listing-types/feature-flags.js +1 -0
  93. package/dist/_internal/shared/listing-types/live/config.d.ts +1 -0
  94. package/dist/_internal/shared/listing-types/live/config.js +2 -0
  95. package/dist/_internal/shared/listing-types/pre-order/config.d.ts +1 -0
  96. package/dist/_internal/shared/listing-types/pre-order/config.js +2 -0
  97. package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +1 -0
  98. package/dist/_internal/shared/listing-types/prize-draw/config.js +2 -0
  99. package/dist/_internal/shared/listing-types/spares/config.d.ts +74 -0
  100. package/dist/_internal/shared/listing-types/spares/config.js +60 -0
  101. package/dist/_internal/shared/listing-types/spares/ctas.d.ts +1 -0
  102. package/dist/_internal/shared/listing-types/spares/ctas.js +4 -0
  103. package/dist/_internal/shared/listing-types/spares/og.js +1 -0
  104. package/dist/_internal/shared/listing-types/spares/schema.d.ts +2 -0
  105. package/dist/_internal/shared/listing-types/spares/schema.js +3 -0
  106. package/dist/_internal/shared/listing-types/spares/seed-factory.d.ts +1 -0
  107. package/dist/_internal/shared/listing-types/spares/seed-factory.js +1 -0
  108. package/dist/_internal/shared/listing-types/standard/config.d.ts +1 -0
  109. package/dist/_internal/shared/listing-types/standard/config.js +2 -0
  110. package/dist/_internal/shared/listing-types/stickers/config.d.ts +1 -0
  111. package/dist/_internal/shared/listing-types/stickers/config.js +2 -0
  112. package/dist/_internal/shared/search/match.d.ts +11 -0
  113. package/dist/_internal/shared/search/match.js +2 -1
  114. package/dist/_internal/shared/search/to-groups.d.ts +52 -0
  115. package/dist/_internal/shared/search/to-groups.js +141 -0
  116. package/dist/client.d.ts +8 -2
  117. package/dist/client.js +4 -1
  118. package/dist/constants/api-endpoints.d.ts +39 -15
  119. package/dist/constants/api-endpoints.js +28 -5
  120. package/dist/constants/cache-invalidation.js +3 -1
  121. package/dist/constants/field-names.d.ts +6 -0
  122. package/dist/constants/field-names.js +6 -0
  123. package/dist/features/about/components/PolicyPageView.d.ts +22 -2
  124. package/dist/features/about/components/PolicyPageView.js +14 -2
  125. package/dist/features/about/components/PublicProfileView.js +2 -1
  126. package/dist/features/about/components/ShippingPolicyView.js +42 -2
  127. package/dist/features/account/components/NotificationBell.js +1 -1
  128. package/dist/features/account/hooks/useProfileStats.js +5 -1
  129. package/dist/features/addresses/repository/addresses.repository.d.ts +16 -0
  130. package/dist/features/addresses/repository/addresses.repository.js +21 -0
  131. package/dist/features/admin/actions/admin-actions.js +16 -1
  132. package/dist/features/admin/components/AdminCategoryEditorView.js +19 -2
  133. package/dist/features/admin/components/AdminNavigationView.js +1 -1
  134. package/dist/features/admin/components/AdminPageHeader.js +1 -1
  135. package/dist/features/admin/components/AdminProductEditorView.js +17 -2
  136. package/dist/features/admin/components/AdminSidebar.js +1 -1
  137. package/dist/features/admin/components/AdminSiteSettingsView.js +39 -8
  138. package/dist/features/admin/components/AdminSparesView.d.ts +12 -0
  139. package/dist/features/admin/components/AdminSparesView.js +30 -0
  140. package/dist/features/admin/components/AdminUsersView.js +9 -7
  141. package/dist/features/admin/components/index.d.ts +2 -0
  142. package/dist/features/admin/components/index.js +1 -0
  143. package/dist/features/admin/components/sections/adminSectionsTypes.js +7 -0
  144. package/dist/features/admin/constants/filter-tabs.d.ts +3 -0
  145. package/dist/features/admin/constants/filter-tabs.js +1 -0
  146. package/dist/features/admin/schemas/firestore.d.ts +26 -2
  147. package/dist/features/auctions/components/AuctionDetailPageView.js +4 -11
  148. package/dist/features/auth/repository/user.repository.d.ts +13 -0
  149. package/dist/features/auth/repository/user.repository.js +28 -0
  150. package/dist/features/auth/schemas/firestore.d.ts +2 -0
  151. package/dist/features/auth/schemas/firestore.js +2 -0
  152. package/dist/features/business-documents/repository/business-documents.repository.d.ts +58 -0
  153. package/dist/features/business-documents/repository/business-documents.repository.js +54 -0
  154. package/dist/features/business-documents/schemas/firestore.d.ts +105 -0
  155. package/dist/features/business-documents/schemas/firestore.js +75 -0
  156. package/dist/features/cart/actions/cart-actions.js +83 -6
  157. package/dist/features/cart/repository/cart.repository.js +32 -4
  158. package/dist/features/cart/schemas/firestore.d.ts +20 -0
  159. package/dist/features/cart/schemas/index.d.ts +2 -2
  160. package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +1 -1
  161. package/dist/features/categories/api/[id]/price-guidance/route.d.ts +42 -0
  162. package/dist/features/categories/api/[id]/price-guidance/route.js +113 -0
  163. package/dist/features/categories/components/BrandDetailPageView.js +19 -3
  164. package/dist/features/categories/components/BrandDetailTabs.js +10 -0
  165. package/dist/features/categories/components/CategoriesIndexListing.js +23 -8
  166. package/dist/features/categories/components/CategoryDetailPageView.js +141 -14
  167. package/dist/features/categories/components/CategoryDetailTabs.js +12 -0
  168. package/dist/features/categories/components/CategoryGrid.js +10 -1
  169. package/dist/features/categories/components/PriceGuidanceHint.d.ts +29 -0
  170. package/dist/features/categories/components/PriceGuidanceHint.js +61 -0
  171. package/dist/features/categories/components/SubcategoryCardRow.d.ts +27 -0
  172. package/dist/features/categories/components/SubcategoryCardRow.js +98 -0
  173. package/dist/features/categories/constants/category-tabs.d.ts +20 -25
  174. package/dist/features/categories/constants/category-tabs.js +22 -39
  175. package/dist/features/categories/repository/categories.repository.d.ts +12 -0
  176. package/dist/features/categories/repository/categories.repository.js +20 -0
  177. package/dist/features/categories/schemas/firestore.d.ts +22 -1
  178. package/dist/features/categories/schemas/firestore.js +10 -0
  179. package/dist/features/categories/schemas/index.d.ts +6 -0
  180. package/dist/features/categories/schemas/index.js +2 -0
  181. package/dist/features/categories/types/index.d.ts +8 -0
  182. package/dist/features/categories/utils/taxonomy-visual.d.ts +16 -3
  183. package/dist/features/categories/utils/taxonomy-visual.js +26 -10
  184. package/dist/features/classified/components/ClassifiedDetailPageView.js +4 -9
  185. package/dist/features/contact/components/ContactPageView.d.ts +33 -1
  186. package/dist/features/contact/components/ContactPageView.js +58 -28
  187. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +4 -9
  188. package/dist/features/grouped/components/GroupedListingDetailView.js +9 -1
  189. package/dist/features/grouped/schemas/firestore.d.ts +5 -0
  190. package/dist/features/homepage/actions/homepage-section-actions.d.ts +3 -3
  191. package/dist/features/homepage/components/CollectionCardsSection.d.ts +28 -6
  192. package/dist/features/homepage/components/CollectionCardsSection.js +43 -8
  193. package/dist/features/homepage/components/HowItWorksSection.d.ts +23 -6
  194. package/dist/features/homepage/components/HowItWorksSection.js +4 -4
  195. package/dist/features/homepage/components/PromoGrid.d.ts +31 -2
  196. package/dist/features/homepage/components/PromoGrid.js +12 -3
  197. package/dist/features/homepage/components/TestimonialsCarousel.d.ts +34 -2
  198. package/dist/features/homepage/components/TestimonialsCarousel.js +1 -1
  199. package/dist/features/homepage/components/index.d.ts +0 -20
  200. package/dist/features/homepage/components/index.js +0 -11
  201. package/dist/features/homepage/index.d.ts +0 -2
  202. package/dist/features/homepage/index.js +0 -2
  203. package/dist/features/homepage/lib/section-renderer.d.ts +9 -0
  204. package/dist/features/homepage/lib/section-renderer.js +202 -58
  205. package/dist/features/homepage/repository/homepage-sections.repository.d.ts +35 -3
  206. package/dist/features/homepage/repository/homepage-sections.repository.js +58 -8
  207. package/dist/features/homepage/schemas/firestore.d.ts +106 -3
  208. package/dist/features/homepage/schemas/firestore.js +32 -2
  209. package/dist/features/homepage/schemas/index.d.ts +36 -7
  210. package/dist/features/homepage/schemas/index.js +39 -27
  211. package/dist/features/homepage/server.d.ts +0 -3
  212. package/dist/features/homepage/server.js +0 -3
  213. package/dist/features/homepage/types/index.d.ts +0 -47
  214. package/dist/features/homepage/types/index.js +49 -0
  215. package/dist/features/layout/AppLayoutShell.js +1 -1
  216. package/dist/features/layout/BottomNavItem.js +1 -1
  217. package/dist/features/layout/BottomSheet.js +1 -1
  218. package/dist/features/layout/TitleBarLayout.js +1 -1
  219. package/dist/features/live/components/LiveItemDetailPageView.js +4 -9
  220. package/dist/features/media/hooks/useMedia.js +17 -0
  221. package/dist/features/media/repository/media-assets.repository.d.ts +46 -0
  222. package/dist/features/media/repository/media-assets.repository.js +31 -0
  223. package/dist/features/media/trust-signals.d.ts +85 -0
  224. package/dist/features/media/trust-signals.js +126 -0
  225. package/dist/features/parts/components/PartDetailPageView.d.ts +14 -1
  226. package/dist/features/parts/components/PartDetailPageView.js +2 -2
  227. package/dist/features/parts/components/PartsIndexPageView.d.ts +11 -2
  228. package/dist/features/parts/components/PartsIndexPageView.js +2 -2
  229. package/dist/features/parts/components/PartsSearchBox.d.ts +9 -0
  230. package/dist/features/parts/components/PartsSearchBox.js +57 -0
  231. package/dist/features/parts/schemas/firestore.d.ts +149 -3
  232. package/dist/features/parts/schemas/firestore.js +184 -0
  233. package/dist/features/payments/repository/payout.repository.d.ts +15 -0
  234. package/dist/features/payments/repository/payout.repository.js +21 -0
  235. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +4 -11
  236. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +1 -1
  237. package/dist/features/price-index/components/PriceIndexToolView.d.ts +3 -1
  238. package/dist/features/price-index/components/PriceIndexToolView.js +92 -13
  239. package/dist/features/products/components/CompareOverlay.d.ts +18 -1
  240. package/dist/features/products/components/CompareOverlay.js +21 -2
  241. package/dist/features/products/components/CustomSectionTabContent.d.ts +31 -0
  242. package/dist/features/products/components/CustomSectionTabContent.js +29 -3
  243. package/dist/features/products/components/GroupMemberPicker.d.ts +19 -1
  244. package/dist/features/products/components/GroupMemberPicker.js +46 -8
  245. package/dist/features/products/components/GroupSettingsPanel.d.ts +11 -1
  246. package/dist/features/products/components/GroupSettingsPanel.js +91 -3
  247. package/dist/features/products/components/PrizeDrawDetailPageView.js +1 -1
  248. package/dist/features/products/components/PrizeDrawEntryActions.d.ts +15 -1
  249. package/dist/features/products/components/PrizeDrawEntryActions.js +70 -8
  250. package/dist/features/products/components/ProductDetailPageView.js +74 -15
  251. package/dist/features/products/components/ProductForm.d.ts +13 -1
  252. package/dist/features/products/components/ProductForm.js +16 -2
  253. package/dist/features/products/components/ProductsIndexListing.d.ts +16 -1
  254. package/dist/features/products/components/ProductsIndexListing.js +3 -3
  255. package/dist/features/products/components/ShowGroupSection.js +15 -2
  256. package/dist/features/products/components/SparesListView.d.ts +7 -0
  257. package/dist/features/products/components/SparesListView.js +39 -0
  258. package/dist/features/products/constants/action-defs.d.ts +1 -0
  259. package/dist/features/products/constants/action-defs.js +1 -0
  260. package/dist/features/products/repository/products.repository.d.ts +98 -0
  261. package/dist/features/products/repository/products.repository.js +235 -17
  262. package/dist/features/products/schemas/firestore.d.ts +97 -4
  263. package/dist/features/products/schemas/firestore.js +104 -0
  264. package/dist/features/products/schemas/index.d.ts +10 -19
  265. package/dist/features/products/schemas/index.js +23 -6
  266. package/dist/features/products/types/index.d.ts +45 -1
  267. package/dist/features/products/utils/group-member-image.d.ts +39 -0
  268. package/dist/features/products/utils/group-member-image.js +3 -0
  269. package/dist/features/products/utils/listing-badge-variant.js +4 -0
  270. package/dist/features/reviews/components/ReviewsList.js +1 -1
  271. package/dist/features/scams/components/ScamProfileView.js +1 -1
  272. package/dist/features/search/components/EntityTypeahead.d.ts +44 -0
  273. package/dist/features/search/components/EntityTypeahead.js +92 -0
  274. package/dist/features/search/components/Search.d.ts +12 -1
  275. package/dist/features/search/components/Search.js +47 -3
  276. package/dist/features/search/components/SearchFacetRail.d.ts +11 -0
  277. package/dist/features/search/components/SearchFacetRail.js +92 -0
  278. package/dist/features/search/components/SearchResultsClient.d.ts +33 -0
  279. package/dist/features/search/components/SearchResultsClient.js +103 -0
  280. package/dist/features/search/components/SearchResultsPageView.d.ts +15 -1
  281. package/dist/features/search/components/SearchResultsPageView.js +2 -2
  282. package/dist/features/search/components/index.d.ts +0 -6
  283. package/dist/features/search/components/index.js +0 -3
  284. package/dist/features/search/hooks/useNavSuggestions.d.ts +13 -0
  285. package/dist/features/search/hooks/useScopedSearch.d.ts +34 -0
  286. package/dist/features/search/hooks/useScopedSearch.js +114 -0
  287. package/dist/features/search/hooks/useSiteSearch.d.ts +26 -0
  288. package/dist/features/search/hooks/useSiteSearch.js +149 -0
  289. package/dist/features/search/index.d.ts +0 -4
  290. package/dist/features/search/index.js +0 -4
  291. package/dist/features/search/manifest.d.ts +12 -0
  292. package/dist/features/search/manifest.js +17 -2
  293. package/dist/features/search/server.d.ts +0 -3
  294. package/dist/features/search/server.js +0 -3
  295. package/dist/features/seller/components/SellerListingTypeView.d.ts +1 -1
  296. package/dist/features/seller/components/SellerListingTypeView.js +20 -0
  297. package/dist/features/seller/components/SellerPayoutSettingsView.js +35 -14
  298. package/dist/features/seller/components/SellerProductShell.d.ts +1 -1
  299. package/dist/features/seller/components/SellerProductShell.js +2 -1
  300. package/dist/features/seller/components/SellerSidebar.js +1 -1
  301. package/dist/features/seller/components/SellerSparesView.d.ts +17 -0
  302. package/dist/features/seller/components/SellerSparesView.js +6 -0
  303. package/dist/features/seller/components/index.d.ts +2 -0
  304. package/dist/features/seller/components/index.js +1 -0
  305. package/dist/features/shell/CommandPalette.js +1 -1
  306. package/dist/features/sticker-trace/schemas/firestore.d.ts +19 -0
  307. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -1
  308. package/dist/features/stores/components/StoreDetailLayoutView.js +7 -82
  309. package/dist/features/stores/components/StoreHeader.js +1 -2
  310. package/dist/features/stores/components/StoreSparesPageView.d.ts +27 -0
  311. package/dist/features/stores/components/StoreSparesPageView.js +48 -0
  312. package/dist/features/stores/schemas/firestore.d.ts +19 -0
  313. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +2 -0
  314. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +96 -0
  315. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +2 -0
  316. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +280 -45
  317. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +54 -32
  318. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +3 -2
  319. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +2 -0
  320. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +73 -0
  321. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +2 -0
  322. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +340 -0
  323. package/dist/features/tester/seed-data/authored/index.js +16 -0
  324. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +1 -0
  325. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +57 -0
  326. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +2 -0
  327. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +77 -0
  328. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +2 -0
  329. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +58 -0
  330. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +5 -4
  331. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +372 -18
  332. package/dist/index.d.ts +17 -57
  333. package/dist/index.js +35 -96
  334. package/dist/next/routing/route-map.d.ts +42 -1
  335. package/dist/next/routing/route-map.js +45 -0
  336. package/dist/providers/db-firebase/base.repository.d.ts +22 -0
  337. package/dist/providers/db-firebase/base.repository.js +36 -0
  338. package/dist/schemas/registry.d.ts +15 -6
  339. package/dist/security/blind-index-tokens.d.ts +54 -0
  340. package/dist/security/blind-index-tokens.js +152 -0
  341. package/dist/security/index.d.ts +1 -1
  342. package/dist/security/index.js +1 -1
  343. package/dist/security/settings-encryption.d.ts +35 -0
  344. package/dist/security/settings-encryption.js +91 -0
  345. package/dist/seed/_helpers/brand-rows.js +38 -14
  346. package/dist/seed/_helpers/category-forest.js +73 -7
  347. package/dist/seed/_helpers/category-images-generated.d.ts +25 -6
  348. package/dist/seed/_helpers/category-images-generated.js +81 -6
  349. package/dist/seed/_helpers/category-models.d.ts +1 -1
  350. package/dist/seed/_helpers/category-models.js +7 -1
  351. package/dist/seed/_helpers/category-parts-glossary-map.js +8 -0
  352. package/dist/seed/_helpers/category-parts.d.ts +1 -1
  353. package/dist/seed/_helpers/category-parts.js +50 -2
  354. package/dist/seed/_helpers/character-features.d.ts +1 -1
  355. package/dist/seed/_helpers/character-features.js +2 -1
  356. package/dist/seed/_helpers/franchise-rows.js +10 -2
  357. package/dist/seed/_helpers/media.d.ts +47 -0
  358. package/dist/seed/_helpers/media.js +34 -0
  359. package/dist/seed/authenticity-knowledge-seed-data.d.ts +49 -5
  360. package/dist/seed/authenticity-knowledge-seed-data.js +10001 -549
  361. package/dist/seed/categories-seed-data.js +124 -20
  362. package/dist/seed/grouped-listings-seed-data.js +16 -0
  363. package/dist/seed/homepage-sections-seed-data.js +94 -5
  364. package/dist/seed/index.d.ts +2 -3
  365. package/dist/seed/index.js +2 -2
  366. package/dist/seed/manifest.js +3 -0
  367. package/dist/seed/media-assets-seed-data.d.ts +1 -1
  368. package/dist/seed/media-assets-seed-data.js +746 -196
  369. package/dist/seed/model-composition-seed-data.js +122 -6
  370. package/dist/seed/part-glossary-seed-data.d.ts +1 -1
  371. package/dist/seed/part-glossary-seed-data.js +37219 -463
  372. package/dist/seed/products-art-seed-data.js +7 -18
  373. package/dist/seed/products-auctions-seed-data.js +56 -47
  374. package/dist/seed/products-beyblade-x-seed-data.d.ts +2 -0
  375. package/dist/seed/products-beyblade-x-seed-data.js +441 -0
  376. package/dist/seed/products-catalogue-seed-data.d.ts +5 -5
  377. package/dist/seed/products-catalogue-seed-data.js +1500 -1240
  378. package/dist/seed/products-classifieds-seed-data.js +9 -27
  379. package/dist/seed/products-digital-codes-seed-data.js +9 -18
  380. package/dist/seed/products-live-items-seed-data.js +5 -13
  381. package/dist/seed/products-preorders-seed-data.js +67 -33
  382. package/dist/seed/products-prize-draws-seed-data.js +8 -17
  383. package/dist/seed/products-spares-seed-data.d.ts +2 -0
  384. package/dist/seed/products-spares-seed-data.js +368 -0
  385. package/dist/seed/products-standard-seed-data.js +39 -126
  386. package/dist/seed/products-stickers-seed-data.js +59 -15
  387. package/dist/seed/site-settings-seed-data.js +8 -0
  388. package/dist/seo/json-ld.d.ts +25 -0
  389. package/dist/seo/json-ld.js +28 -0
  390. package/dist/server-entry.d.ts +3 -1
  391. package/dist/server-entry.js +2 -2
  392. package/dist/server.d.ts +9 -9
  393. package/dist/server.js +27 -25
  394. package/dist/styles.css +202 -1
  395. package/dist/tailwind-input.css +31 -17
  396. package/dist/tailwind-utilities.css +1 -1
  397. package/dist/ui/components/Accordion.js +1 -1
  398. package/dist/ui/components/Breadcrumb.js +1 -1
  399. package/dist/ui/components/DetailPageGallery.js +0 -2
  400. package/dist/ui/components/DetailPageHero.js +0 -1
  401. package/dist/ui/components/DetailPageTabs.js +1 -1
  402. package/dist/ui/components/Divider.js +3 -3
  403. package/dist/ui/components/GatedPrice.js +5 -1
  404. package/dist/ui/components/HorizontalScroller.js +1 -1
  405. package/dist/ui/components/ListingLayout.js +3 -3
  406. package/dist/ui/components/MediaTabs.style.css +81 -0
  407. package/dist/ui/components/Pagination.js +1 -1
  408. package/dist/ui/components/PendingValue.d.ts +45 -0
  409. package/dist/ui/components/PendingValue.js +7 -0
  410. package/dist/ui/components/Radio.style.css +119 -0
  411. package/dist/ui/components/RatingDisplay.js +2 -2
  412. package/dist/ui/components/SettingsSection.js +0 -2
  413. package/dist/ui/components/SiteLogo.js +3 -0
  414. package/dist/ui/components/SiteMark.js +3 -0
  415. package/dist/ui/components/SortDropdown.js +1 -1
  416. package/dist/ui/components/SpecTable.d.ts +58 -0
  417. package/dist/ui/components/SpecTable.js +8 -0
  418. package/dist/ui/components/StarRating.js +1 -3
  419. package/dist/ui/components/SummaryCard.js +1 -1
  420. package/dist/ui/components/index.style.css +1 -0
  421. package/dist/ui/icons/icon-registry.d.ts +1 -0
  422. package/dist/ui/icons/icon-registry.js +9 -1
  423. package/dist/ui/index.d.ts +4 -0
  424. package/dist/ui/index.js +2 -0
  425. package/dist/utils/search-txt-query.d.ts +12 -0
  426. package/dist/utils/search-txt-query.js +12 -0
  427. package/package.json +1 -1
  428. package/scripts/dedupe-peer-deps.mjs +18 -0
  429. package/scripts/seed-cli.mjs +135 -26
  430. package/scripts/verify-css-build.mjs +118 -37
  431. package/dist/_internal/server/features/search/actions.d.ts +0 -7
  432. package/dist/_internal/server/features/search/actions.js +0 -21
  433. package/dist/_internal/server/features/search/data.d.ts +0 -15
  434. package/dist/_internal/server/features/search/data.js +0 -18
  435. package/dist/_internal/server/features/search/index.d.ts +0 -3
  436. package/dist/_internal/server/features/search/index.js +0 -2
  437. package/dist/features/homepage/api/[id]/route.d.ts +0 -23
  438. package/dist/features/homepage/api/[id]/route.js +0 -103
  439. package/dist/features/homepage/api/route.d.ts +0 -14
  440. package/dist/features/homepage/api/route.js +0 -140
  441. package/dist/features/homepage/api/sections/[id]/route.d.ts +0 -26
  442. package/dist/features/homepage/api/sections/[id]/route.js +0 -95
  443. package/dist/features/homepage/api/sections/route.d.ts +0 -13
  444. package/dist/features/homepage/api/sections/route.js +0 -82
  445. package/dist/features/homepage/components/AdvertisementBanner.d.ts +0 -14
  446. package/dist/features/homepage/components/AdvertisementBanner.js +0 -35
  447. package/dist/features/homepage/components/BeforeAfterCard.d.ts +0 -9
  448. package/dist/features/homepage/components/BeforeAfterCard.js +0 -73
  449. package/dist/features/homepage/components/FeaturedResultsSection.d.ts +0 -17
  450. package/dist/features/homepage/components/FeaturedResultsSection.js +0 -17
  451. package/dist/features/homepage/components/HeroBanner.d.ts +0 -7
  452. package/dist/features/homepage/components/HeroBanner.js +0 -43
  453. package/dist/features/homepage/components/HeroSection.d.ts +0 -7
  454. package/dist/features/homepage/components/HeroSection.js +0 -6
  455. package/dist/features/homepage/components/HomepageSkeleton.d.ts +0 -2
  456. package/dist/features/homepage/components/HomepageSkeleton.js +0 -21
  457. package/dist/features/homepage/components/HomepageView.d.ts +0 -25
  458. package/dist/features/homepage/components/HomepageView.js +0 -5
  459. package/dist/features/homepage/components/NewsletterBanner.d.ts +0 -23
  460. package/dist/features/homepage/components/NewsletterBanner.js +0 -37
  461. package/dist/features/homepage/components/SiteFeaturesSection.d.ts +0 -14
  462. package/dist/features/homepage/components/SiteFeaturesSection.js +0 -11
  463. package/dist/features/homepage/components/TrustBadges.d.ts +0 -6
  464. package/dist/features/homepage/components/TrustBadges.js +0 -46
  465. package/dist/features/homepage/components/TrustIndicatorsSection.d.ts +0 -12
  466. package/dist/features/homepage/components/TrustIndicatorsSection.js +0 -11
  467. package/dist/features/homepage/hooks/useHomepage.d.ts +0 -11
  468. package/dist/features/homepage/hooks/useHomepage.js +0 -17
  469. package/dist/features/homepage/hooks/useHomepageSections.d.ts +0 -2
  470. package/dist/features/homepage/hooks/useHomepageSections.js +0 -10
  471. package/dist/features/homepage/repository/homepage.repository.d.ts +0 -11
  472. package/dist/features/homepage/repository/homepage.repository.js +0 -25
  473. package/dist/features/search/actions/index.d.ts +0 -1
  474. package/dist/features/search/actions/index.js +0 -1
  475. package/dist/features/search/actions/search-actions.d.ts +0 -18
  476. package/dist/features/search/actions/search-actions.js +0 -43
  477. package/dist/features/search/api/route.d.ts +0 -22
  478. package/dist/features/search/api/route.js +0 -128
  479. package/dist/features/search/columns/index.d.ts +0 -17
  480. package/dist/features/search/columns/index.js +0 -49
  481. package/dist/features/search/components/SearchFiltersRow.d.ts +0 -22
  482. package/dist/features/search/components/SearchFiltersRow.js +0 -21
  483. package/dist/features/search/components/SearchResultsSection.d.ts +0 -53
  484. package/dist/features/search/components/SearchResultsSection.js +0 -35
  485. package/dist/features/search/components/SearchView.d.ts +0 -27
  486. package/dist/features/search/components/SearchView.js +0 -8
  487. package/dist/features/search/hooks/useSearch.d.ts +0 -21
  488. package/dist/features/search/hooks/useSearch.js +0 -33
  489. package/dist/features/search/repository/search.repository.d.ts +0 -14
  490. package/dist/features/search/repository/search.repository.js +0 -59
  491. package/dist/features/search/schemas/index.d.ts +0 -70
  492. package/dist/features/search/schemas/index.js +0 -36
  493. package/dist/features/search/types/index.d.ts +0 -48
  494. package/dist/features/stores/components/StoreScopedSearch.d.ts +0 -17
  495. package/dist/features/stores/components/StoreScopedSearch.js +0 -27
  496. package/dist/seed/defaults/homepage-sections.d.ts +0 -2
  497. package/dist/seed/defaults/homepage-sections.js +0 -60
  498. package/dist/seed/factories/homepage-section.factory.d.ts +0 -10
  499. package/dist/seed/factories/homepage-section.factory.js +0 -13
  500. /package/dist/{features/search/types/index.js → _internal/shared/listing-types/spares/og.d.ts} +0 -0
@@ -27,7 +27,7 @@
27
27
  import { withProductSearchTxt } from "./_helpers/product-search-txt.js";
28
28
  import { PRODUCT_FIELDS } from "../constants/field-names.js";
29
29
  import { buildSearchTxt } from "../utils/search-txt.js";
30
- import { seedPhoto } from "./_helpers/media.js";
30
+ import { seedPhoto, seedGallery } from "./_helpers/media.js";
31
31
  import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
32
32
  import { withDerivedCategoryNames } from "./_helpers/category-names.js";
33
33
  const _rawproductsClassifiedsSeedData = [
@@ -72,10 +72,7 @@ const _rawproductsClassifiedsSeedData = [
72
72
  availableQuantity: 1,
73
73
  isSold: false,
74
74
  mainImage: seedPhoto("classified-image-beyblade-stadium-set-1-20260101", 900, 900),
75
- images: [
76
- seedPhoto("classified-image-beyblade-stadium-set-1-20260101", 900, 900),
77
- seedPhoto("classified-image-beyblade-stadium-set-2-20260101", 900, 900),
78
- ],
75
+ images: seedGallery(seedPhoto("classified-image-beyblade-stadium-set-1-20260101", 900, 900), seedPhoto("classified-image-beyblade-stadium-set-2-20260101", 900, 900)),
79
76
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
80
77
  condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
81
78
  listingType: "classified",
@@ -120,10 +117,7 @@ const _rawproductsClassifiedsSeedData = [
120
117
  availableQuantity: 1,
121
118
  isSold: false,
122
119
  mainImage: seedPhoto("classified-image-beyblade-burst-bengaluru-1-20260813", 900, 900),
123
- images: [
124
- seedPhoto("classified-image-beyblade-burst-bengaluru-1-20260813", 900, 900),
125
- seedPhoto("classified-image-beyblade-burst-bengaluru-2-20260813", 900, 900),
126
- ],
120
+ images: seedGallery(seedPhoto("classified-image-beyblade-burst-bengaluru-1-20260813", 900, 900), seedPhoto("classified-image-beyblade-burst-bengaluru-2-20260813", 900, 900)),
127
121
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
128
122
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
129
123
  listingType: "classified",
@@ -173,7 +167,7 @@ const _rawproductsClassifiedsSeedData = [
173
167
  availableQuantity: 1,
174
168
  isSold: false,
175
169
  mainImage: seedPhoto("classified-image-beyblade-x-pune-1-20260814", 900, 900),
176
- images: [seedPhoto("classified-image-beyblade-x-pune-1-20260814", 900, 900)],
170
+ images: seedGallery(seedPhoto("classified-image-beyblade-x-pune-1-20260814", 900, 900)),
177
171
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
178
172
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
179
173
  listingType: "classified",
@@ -218,11 +212,7 @@ const _rawproductsClassifiedsSeedData = [
218
212
  availableQuantity: 1,
219
213
  isSold: false,
220
214
  mainImage: seedPhoto("classified-image-beyblade-metal-delhi-1-20260815", 900, 900),
221
- images: [
222
- seedPhoto("classified-image-beyblade-metal-delhi-1-20260815", 900, 900),
223
- seedPhoto("classified-image-beyblade-metal-delhi-2-20260815", 900, 900),
224
- seedPhoto("classified-image-beyblade-metal-delhi-3-20260815", 900, 900),
225
- ],
215
+ images: seedGallery(seedPhoto("classified-image-beyblade-metal-delhi-1-20260815", 900, 900), seedPhoto("classified-image-beyblade-metal-delhi-2-20260815", 900, 900), seedPhoto("classified-image-beyblade-metal-delhi-3-20260815", 900, 900)),
226
216
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
227
217
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
228
218
  listingType: "classified",
@@ -271,10 +261,7 @@ const _rawproductsClassifiedsSeedData = [
271
261
  availableQuantity: 1,
272
262
  isSold: false,
273
263
  mainImage: seedPhoto("classified-image-beyblade-original-chennai-1-20260816", 900, 900),
274
- images: [
275
- seedPhoto("classified-image-beyblade-original-chennai-1-20260816", 900, 900),
276
- seedPhoto("classified-image-beyblade-original-chennai-2-20260816", 900, 900),
277
- ],
264
+ images: seedGallery(seedPhoto("classified-image-beyblade-original-chennai-1-20260816", 900, 900), seedPhoto("classified-image-beyblade-original-chennai-2-20260816", 900, 900)),
278
265
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
279
266
  condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
280
267
  listingType: "classified",
@@ -324,10 +311,7 @@ const _rawproductsClassifiedsSeedData = [
324
311
  availableQuantity: 1,
325
312
  isSold: false,
326
313
  mainImage: seedPhoto("classified-image-beyblade-x-hyderabad-1-20260817", 900, 900),
327
- images: [
328
- seedPhoto("classified-image-beyblade-x-hyderabad-1-20260817", 900, 900),
329
- seedPhoto("classified-image-beyblade-x-hyderabad-2-20260817", 900, 900),
330
- ],
314
+ images: seedGallery(seedPhoto("classified-image-beyblade-x-hyderabad-1-20260817", 900, 900), seedPhoto("classified-image-beyblade-x-hyderabad-2-20260817", 900, 900)),
331
315
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
332
316
  condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
333
317
  listingType: "classified",
@@ -377,7 +361,7 @@ const _rawproductsClassifiedsSeedData = [
377
361
  availableQuantity: 1,
378
362
  isSold: false,
379
363
  mainImage: seedPhoto("classified-image-beyblade-burst-mumbai-1-20260818", 900, 900),
380
- images: [seedPhoto("classified-image-beyblade-burst-mumbai-1-20260818", 900, 900)],
364
+ images: seedGallery(seedPhoto("classified-image-beyblade-burst-mumbai-1-20260818", 900, 900)),
381
365
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
382
366
  condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
383
367
  listingType: "classified",
@@ -422,9 +406,7 @@ const _rawproductsClassifiedsSeedData = [
422
406
  availableQuantity: 0,
423
407
  isSold: true,
424
408
  mainImage: seedPhoto("classified-image-galaxy-pegasus-sold-1-20260824", 900, 900),
425
- images: [
426
- seedPhoto("classified-image-galaxy-pegasus-sold-1-20260824", 900, 900),
427
- ],
409
+ images: seedGallery(seedPhoto("classified-image-galaxy-pegasus-sold-1-20260824", 900, 900)),
428
410
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
429
411
  condition: PRODUCT_FIELDS.CONDITION_VALUES.USED,
430
412
  listingType: "classified",
@@ -20,7 +20,7 @@
20
20
  import { withProductSearchTxt } from "./_helpers/product-search-txt.js";
21
21
  import { PRODUCT_FIELDS } from "../constants/field-names.js";
22
22
  import { buildSearchTxt } from "../utils/search-txt.js";
23
- import { seedPhoto } from "./_helpers/media.js";
23
+ import { seedPhoto, seedGallery } from "./_helpers/media.js";
24
24
  import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
25
25
  import { withDerivedCategoryNames } from "./_helpers/category-names.js";
26
26
  const _rawproductsDigitalCodesSeedData = [
@@ -39,10 +39,7 @@ const _rawproductsDigitalCodesSeedData = [
39
39
  availableQuantity: 25,
40
40
  isSold: false,
41
41
  mainImage: seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900),
42
- images: [
43
- seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900),
44
- seedPhoto("digitalcode-image-beyblade-x-starter-2-20260101", 900, 900),
45
- ],
42
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900), seedPhoto("digitalcode-image-beyblade-x-starter-2-20260101", 900, 900)),
46
43
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
47
44
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
48
45
  listingType: "digital-code",
@@ -86,7 +83,7 @@ const _rawproductsDigitalCodesSeedData = [
86
83
  availableQuantity: 6,
87
84
  isSold: false,
88
85
  mainImage: seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900),
89
- images: [seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900)],
86
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900)),
90
87
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
91
88
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
92
89
  listingType: "digital-code",
@@ -136,7 +133,7 @@ const _rawproductsDigitalCodesSeedData = [
136
133
  availableQuantity: 0,
137
134
  isSold: true,
138
135
  mainImage: seedPhoto("digitalcode-image-beyblade-burst-sold-out-1-20260810", 900, 900),
139
- images: [seedPhoto("digitalcode-image-beyblade-burst-sold-out-1-20260810", 900, 900)],
136
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-burst-sold-out-1-20260810", 900, 900)),
140
137
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
141
138
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
142
139
  listingType: "digital-code",
@@ -180,10 +177,7 @@ const _rawproductsDigitalCodesSeedData = [
180
177
  availableQuantity: 32,
181
178
  isSold: false,
182
179
  mainImage: seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900),
183
- images: [
184
- seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900),
185
- seedPhoto("digitalcode-image-beyblade-x-tournament-2-20260815", 900, 900),
186
- ],
180
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900), seedPhoto("digitalcode-image-beyblade-x-tournament-2-20260815", 900, 900)),
187
181
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
188
182
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
189
183
  listingType: "digital-code",
@@ -228,7 +222,7 @@ const _rawproductsDigitalCodesSeedData = [
228
222
  availableQuantity: 30,
229
223
  isSold: false,
230
224
  mainImage: seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900),
231
- images: [seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900)],
225
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900)),
232
226
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
233
227
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
234
228
  listingType: "digital-code",
@@ -272,7 +266,7 @@ const _rawproductsDigitalCodesSeedData = [
272
266
  availableQuantity: 41,
273
267
  isSold: false,
274
268
  mainImage: seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900),
275
- images: [seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900)],
269
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900)),
276
270
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
277
271
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
278
272
  listingType: "digital-code",
@@ -316,10 +310,7 @@ const _rawproductsDigitalCodesSeedData = [
316
310
  availableQuantity: 3,
317
311
  isSold: false,
318
312
  mainImage: seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900),
319
- images: [
320
- seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900),
321
- seedPhoto("digitalcode-image-beyblade-x-coaching-2-20260818", 900, 900),
322
- ],
313
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900), seedPhoto("digitalcode-image-beyblade-x-coaching-2-20260818", 900, 900)),
323
314
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
324
315
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
325
316
  listingType: "digital-code",
@@ -374,7 +365,7 @@ const _rawproductsDigitalCodesSeedData = [
374
365
  availableQuantity: 5,
375
366
  isSold: false,
376
367
  mainImage: seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900),
377
- images: [seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900)],
368
+ images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900)),
378
369
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
379
370
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
380
371
  listingType: "digital-code",
@@ -33,7 +33,7 @@
33
33
  import { withProductSearchTxt } from "./_helpers/product-search-txt.js";
34
34
  import { PRODUCT_FIELDS } from "../constants/field-names.js";
35
35
  import { buildSearchTxt } from "../utils/search-txt.js";
36
- import { seedPhoto } from "./_helpers/media.js";
36
+ import { seedPhoto, seedGallery } from "./_helpers/media.js";
37
37
  import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
38
38
  import { withDerivedCategoryNames } from "./_helpers/category-names.js";
39
39
  const _rawproductsLiveItemsSeedData = [
@@ -52,10 +52,7 @@ const _rawproductsLiveItemsSeedData = [
52
52
  availableQuantity: 1,
53
53
  isSold: false,
54
54
  mainImage: seedPhoto("live-image-golden-retriever-1-20260816", 900, 900),
55
- images: [
56
- seedPhoto("live-image-golden-retriever-1-20260816", 900, 900),
57
- seedPhoto("live-image-golden-retriever-2-20260816", 900, 900),
58
- ],
55
+ images: seedGallery(seedPhoto("live-image-golden-retriever-1-20260816", 900, 900), seedPhoto("live-image-golden-retriever-2-20260816", 900, 900)),
59
56
  /*
60
57
  * 🛑 A LIVE LISTING WITHOUT A VIDEO IS NOT A LISTING THE PRODUCT WOULD ACCEPT.
61
58
  *
@@ -123,7 +120,7 @@ const _rawproductsLiveItemsSeedData = [
123
120
  availableQuantity: 1,
124
121
  isSold: false,
125
122
  mainImage: seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900),
126
- images: [seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900)],
123
+ images: seedGallery(seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900)),
127
124
  // Required for a live listing — see the note on the retriever above.
128
125
  video: {
129
126
  url: "/demo-media/sample-video.mp4",
@@ -177,10 +174,7 @@ const _rawproductsLiveItemsSeedData = [
177
174
  availableQuantity: 1,
178
175
  isSold: false,
179
176
  mainImage: seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900),
180
- images: [
181
- seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900),
182
- seedPhoto("live-image-bonsai-juniper-2-20260818", 900, 900),
183
- ],
177
+ images: seedGallery(seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900), seedPhoto("live-image-bonsai-juniper-2-20260818", 900, 900)),
184
178
  // Required for a live listing — see the note on the retriever above.
185
179
  video: {
186
180
  url: "/demo-media/sample-video.mp4",
@@ -234,9 +228,7 @@ const _rawproductsLiveItemsSeedData = [
234
228
  availableQuantity: 0,
235
229
  isSold: true,
236
230
  mainImage: seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900),
237
- images: [
238
- seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900),
239
- ],
231
+ images: seedGallery(seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900)),
240
232
  // Required for a live listing — see the note on the retriever above. A SOLD
241
233
  // fixture needs it just as much: it is the row the "Sold & Ended" scope
242
234
  // renders, and a sold listing that could never have been created is no
@@ -4,13 +4,14 @@
4
4
  * enum values ("upcoming"/"ready_to_ship"), a sold-out reservation, and a
5
5
  * non-cancellable pre-order were structurally impossible to test against permanent
6
6
  * data (see CLAUDE.md seed-data blandness sweep, 2026-08-20 session).
7
- * WHAT: Exports 7 pre-order products with listingType:"pre-order" — the original fixture
8
- * (now with multiple images + customFields/customSections populated) plus 6 new
9
- * ones covering every production-status value, a sold-out reservation, and a
10
- * non-cancellable deposit-only pre-order.
7
+ * WHAT: Exports 8 pre-order products with listingType:"pre-order" — the original fixture
8
+ * (now with multiple images + customFields/customSections populated) plus 6 covering
9
+ * every production-status value, a sold-out reservation, and a non-cancellable
10
+ * deposit-only pre-order — plus 1 real CX-20 Customize Set C added 2026-10-19,
11
+ * genuinely unreleased (confirmed via the wiki's own {{Unreleased}} tag).
11
12
  *
12
13
  * EXPORTS:
13
- * productsPreordersSeedData — Array of 7 pre-order products with listingType:"pre-order"
14
+ * productsPreordersSeedData — Array of 8 pre-order products with listingType:"pre-order"
14
15
  *
15
16
  * @tag domain:products,pre-orders
16
17
  * @tag layer:seed
@@ -21,7 +22,7 @@
21
22
  */
22
23
  import { PRODUCT_FIELDS } from "../constants/field-names.js";
23
24
  import { buildSearchTxt } from "../utils/search-txt.js";
24
- import { seedPhoto } from "./_helpers/media.js";
25
+ import { seedPhoto, seedGallery } from "./_helpers/media.js";
25
26
  import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
26
27
  import { withDerivedCategoryNames } from "./_helpers/category-names.js";
27
28
  const _rawPreordersSeedData = [
@@ -41,10 +42,7 @@ const _rawPreordersSeedData = [
41
42
  categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
42
43
  categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
43
44
  brand: "Takara-Tomy",
44
- images: [
45
- seedPhoto("preorder-image-beyblade-x-bx-08-wave-1-20260101", 900, 900),
46
- seedPhoto("preorder-image-beyblade-x-bx-08-wave-2-20260101", 900, 900),
47
- ],
45
+ images: seedGallery(seedPhoto("preorder-image-beyblade-x-bx-08-wave-1-20260101", 900, 900), seedPhoto("preorder-image-beyblade-x-bx-08-wave-2-20260101", 900, 900)),
48
46
  isSold: false,
49
47
  availableQuantity: 1,
50
48
  tags: ["booster-wave"],
@@ -83,10 +81,7 @@ const _rawPreordersSeedData = [
83
81
  categorySlugs: ["category-unicornsting-5-60gp", "category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
84
82
  categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
85
83
  brand: "Takara-Tomy",
86
- images: [
87
- seedPhoto("preorder-image-beyblade-x-bx-09-glide-ring-1-20260814", 900, 900),
88
- seedPhoto("preorder-image-beyblade-x-bx-09-glide-ring-2-20260814", 900, 900),
89
- ],
84
+ images: seedGallery(seedPhoto("preorder-image-beyblade-x-bx-09-glide-ring-1-20260814", 900, 900), seedPhoto("preorder-image-beyblade-x-bx-09-glide-ring-2-20260814", 900, 900)),
90
85
  isSold: false,
91
86
  availableQuantity: 1,
92
87
  tags: ["booster-wave"],
@@ -119,10 +114,7 @@ const _rawPreordersSeedData = [
119
114
  categorySlugs: ["category-union-achilles-cn-xt-retsu", "category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
120
115
  categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
121
116
  brand: "Beyblade",
122
- images: [
123
- seedPhoto("preorder-image-beyblade-burst-b-210-union-1-20260814", 900, 900),
124
- seedPhoto("preorder-image-beyblade-burst-b-210-union-2-20260814", 900, 900),
125
- ],
117
+ images: seedGallery(seedPhoto("preorder-image-beyblade-burst-b-210-union-1-20260814", 900, 900), seedPhoto("preorder-image-beyblade-burst-b-210-union-2-20260814", 900, 900)),
126
118
  isSold: false,
127
119
  availableQuantity: 1,
128
120
  tags: ["stamina-type"],
@@ -159,9 +151,7 @@ const _rawPreordersSeedData = [
159
151
  categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
160
152
  categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
161
153
  brand: "Takara-Tomy",
162
- images: [
163
- seedPhoto("preorder-image-beyblade-x-bx-11-sold-out-1-20260812", 900, 900),
164
- ],
154
+ images: seedGallery(seedPhoto("preorder-image-beyblade-x-bx-11-sold-out-1-20260812", 900, 900)),
165
155
  // `isSold: false` until 2026-08-24, contradicting both the zero
166
156
  // availability and the filled allocation immediately below it — so the
167
157
  // one fixture whose whole purpose is to be sold out read as available to
@@ -198,10 +188,7 @@ const _rawPreordersSeedData = [
198
188
  categorySlugs: ["category-dark-deathscyther-force-jaggy", "category-burst-god", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
199
189
  categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
200
190
  brand: "Beyblade",
201
- images: [
202
- seedPhoto("preorder-image-beyblade-burst-b-215-hells-scythe-1-20260817", 900, 900),
203
- seedPhoto("preorder-image-beyblade-burst-b-215-hells-scythe-2-20260817", 900, 900),
204
- ],
191
+ images: seedGallery(seedPhoto("preorder-image-beyblade-burst-b-215-hells-scythe-1-20260817", 900, 900), seedPhoto("preorder-image-beyblade-burst-b-215-hells-scythe-2-20260817", 900, 900)),
205
192
  isSold: false,
206
193
  availableQuantity: 1,
207
194
  tags: ["attack-type", "limited-run"],
@@ -238,10 +225,7 @@ const _rawPreordersSeedData = [
238
225
  categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
239
226
  categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
240
227
  brand: "Beyblade",
241
- images: [
242
- seedPhoto("preorder-image-beyblade-original-remaster-1-20260818", 900, 900),
243
- seedPhoto("preorder-image-beyblade-original-remaster-2-20260818", 900, 900),
244
- ],
228
+ images: seedGallery(seedPhoto("preorder-image-beyblade-original-remaster-1-20260818", 900, 900), seedPhoto("preorder-image-beyblade-original-remaster-2-20260818", 900, 900)),
245
229
  isSold: false,
246
230
  availableQuantity: 1,
247
231
  tags: ["vintage-collectible", "limited-run"],
@@ -280,9 +264,7 @@ const _rawPreordersSeedData = [
280
264
  categorySlugs: ["category-tyrannobeat-4-70q", "category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
281
265
  categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
282
266
  brand: "Takara-Tomy",
283
- images: [
284
- seedPhoto("preorder-image-beyblade-x-bx-12-closed-1-20260824", 900, 900),
285
- ],
267
+ images: seedGallery(seedPhoto("preorder-image-beyblade-x-bx-12-closed-1-20260824", 900, 900)),
286
268
  isSold: true,
287
269
  availableQuantity: 0,
288
270
  tags: ["limited-run"],
@@ -300,11 +282,63 @@ const _rawPreordersSeedData = [
300
282
  createdAt: new Date("2026-08-24"),
301
283
  updatedAt: new Date("2026-08-24"),
302
284
  },
285
+ /*
286
+ * Added 2026-10-19 — CX-20 "Customize Set C", a GENUINELY unreleased real
287
+ * product. The wiki marks it {{Unreleased}} with a confirmed Japan release
288
+ * date of 21 Nov 2026 — this is why it is a pre-order rather than a
289
+ * standard listing, not a stylistic choice. Listed as one SKU for now ("for
290
+ * now whole set") rather than broken into its 11 named components the way
291
+ * the BX-53 set was; see docs/research for the real contents list captured
292
+ * from the wiki's own infobox.
293
+ */
294
+ {
295
+ id: "preorder-beyblade-x-customize-set-c-cx-20",
296
+ isLot: false,
297
+ storeId: "store-letitrip-official",
298
+ brandSlug: "brand-takara-tomy",
299
+ title: "Beyblade X Customize Set C (CX-20)",
300
+ slug: "preorder-beyblade-x-customize-set-c-cx-20",
301
+ description: "Customize Set C (CX-20) — a Custom Line kit confirmed for Japan release 21 November 2026, not yet available. Contains the complete PhoenixForce WHM-65MT top plus three extra Blades (HellsScythe Ver.2.0, WizardRod in Metal Coat: Blue, SharkScale), two Ratchets (1-70, 8-80) and five Bits (Kick, Low Rush, High Needle, Low Orb, Under Flat) — enough parts to build several distinct combinations from one box. Reserve now; ships on Japan release.",
302
+ price: 7500,
303
+ currency: "INR",
304
+ condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
305
+ status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
306
+ listingType: "pre-order",
307
+ categorySlugs: ["category-x-customize-sets"],
308
+ brand: "Takara-Tomy",
309
+ images: seedGallery("/media/product-customize-set-c-cx-20-image"),
310
+ isSold: false,
311
+ availableQuantity: 10,
312
+ tags: ["custom-line", "cx", "unreleased"],
313
+ customFields: [
314
+ { key: "Includes complete top", type: "text", value: "PhoenixForce WHM-65MT" },
315
+ { key: "Extra Blades", type: "text", value: "HellsScythe (Ver.2.0), WizardRod (Metal Coat: Blue), SharkScale" },
316
+ { key: "Ratchets", type: "text", value: "1-70, 8-80" },
317
+ { key: "Bits", type: "text", value: "Kick, Low Rush, High Needle, Low Orb, Under Flat" },
318
+ ],
319
+ featured: true,
320
+ isOnSale: false,
321
+ preOrderDeliveryDate: new Date("2026-11-21"),
322
+ preOrderProductionStatus: "upcoming",
323
+ preOrderDepositPercent: 30,
324
+ preOrderMaxQuantity: 10,
325
+ preOrderCurrentCount: 0,
326
+ preOrderCancellable: true,
327
+ createdAt: new Date("2026-10-19"),
328
+ updatedAt: new Date("2026-10-19"),
329
+ /*
330
+ * 🛑 Real content, so `permanent` — the `products` collection defaults to
331
+ * `test` and `appkit-seed purge` deletes everything resolving `test`.
332
+ * Every OTHER row in this file is a demo fixture and correctly keeps the
333
+ * default; this one is a genuine listing and must survive a purge.
334
+ */
335
+ seedPurpose: "permanent",
336
+ },
303
337
  ];
304
338
  export const productsPreordersSeedData = _rawPreordersSeedData.map((p) => withDerivedCategoryNames(withFinalSale({
305
339
  tags: [],
306
340
  stockQuantity: p.availableQuantity ?? 1,
307
- mainImage: p.images?.[0] ?? "",
341
+ mainImage: (typeof p.images?.[0] === "string" ? p.images[0] : p.images?.[0]?.url) ?? "",
308
342
  ...p,
309
343
  listingType: "pre-order",
310
344
  /*
@@ -21,7 +21,7 @@
21
21
  import { withProductSearchTxt } from "./_helpers/product-search-txt.js";
22
22
  import { PRODUCT_FIELDS } from "../constants/field-names.js";
23
23
  import { buildSearchTxt } from "../utils/search-txt.js";
24
- import { seedPhoto } from "./_helpers/media.js";
24
+ import { seedPhoto, seedGallery } from "./_helpers/media.js";
25
25
  import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
26
26
  import { withDerivedCategoryNames } from "./_helpers/category-names.js";
27
27
  const _rawproductsPrizeDrawsSeedData = [
@@ -52,7 +52,7 @@ const _rawproductsPrizeDrawsSeedData = [
52
52
  availableQuantity: 4,
53
53
  isSold: false,
54
54
  mainImage: seedPhoto("prizedraw-image-beyblade-mystery-box-1-20260101", 900, 900),
55
- images: [seedPhoto("prizedraw-image-beyblade-mystery-box-1-20260101", 900, 900)],
55
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-mystery-box-1-20260101", 900, 900)),
56
56
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
57
57
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
58
58
  listingType: "prize-draw",
@@ -112,7 +112,7 @@ const _rawproductsPrizeDrawsSeedData = [
112
112
  availableQuantity: 2,
113
113
  isSold: false,
114
114
  mainImage: seedPhoto("prizedraw-image-beyblade-scheduled-1-20260101", 900, 900),
115
- images: [seedPhoto("prizedraw-image-beyblade-scheduled-1-20260101", 900, 900)],
115
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-scheduled-1-20260101", 900, 900)),
116
116
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
117
117
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
118
118
  listingType: "prize-draw",
@@ -165,10 +165,7 @@ const _rawproductsPrizeDrawsSeedData = [
165
165
  availableQuantity: 2,
166
166
  isSold: false,
167
167
  mainImage: seedPhoto("prizedraw-image-beyblade-x-legendary-vault-1-20260815", 900, 900),
168
- images: [
169
- seedPhoto("prizedraw-image-beyblade-x-legendary-vault-1-20260815", 900, 900),
170
- seedPhoto("prizedraw-image-beyblade-x-legendary-vault-2-20260815", 900, 900),
171
- ],
168
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-x-legendary-vault-1-20260815", 900, 900), seedPhoto("prizedraw-image-beyblade-x-legendary-vault-2-20260815", 900, 900)),
172
169
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
173
170
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
174
171
  listingType: "prize-draw",
@@ -225,7 +222,7 @@ const _rawproductsPrizeDrawsSeedData = [
225
222
  availableQuantity: 0,
226
223
  isSold: true,
227
224
  mainImage: seedPhoto("prizedraw-image-beyblade-metal-closed-1-20260805", 900, 900),
228
- images: [seedPhoto("prizedraw-image-beyblade-metal-closed-1-20260805", 900, 900)],
225
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-metal-closed-1-20260805", 900, 900)),
229
226
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
230
227
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
231
228
  listingType: "prize-draw",
@@ -279,10 +276,7 @@ const _rawproductsPrizeDrawsSeedData = [
279
276
  availableQuantity: 1,
280
277
  isSold: false,
281
278
  mainImage: seedPhoto("prizedraw-image-beyblade-burst-collectors-1-20260817", 900, 900),
282
- images: [
283
- seedPhoto("prizedraw-image-beyblade-burst-collectors-1-20260817", 900, 900),
284
- seedPhoto("prizedraw-image-beyblade-burst-collectors-2-20260817", 900, 900),
285
- ],
279
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-burst-collectors-1-20260817", 900, 900), seedPhoto("prizedraw-image-beyblade-burst-collectors-2-20260817", 900, 900)),
286
280
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
287
281
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
288
282
  listingType: "prize-draw",
@@ -337,10 +331,7 @@ const _rawproductsPrizeDrawsSeedData = [
337
331
  availableQuantity: 3,
338
332
  isSold: false,
339
333
  mainImage: seedPhoto("prizedraw-image-beyblade-original-vault-1-20260818", 900, 900),
340
- images: [
341
- seedPhoto("prizedraw-image-beyblade-original-vault-1-20260818", 900, 900),
342
- seedPhoto("prizedraw-image-beyblade-original-vault-2-20260818", 900, 900),
343
- ],
334
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-original-vault-1-20260818", 900, 900), seedPhoto("prizedraw-image-beyblade-original-vault-2-20260818", 900, 900)),
344
335
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
345
336
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
346
337
  listingType: "prize-draw",
@@ -399,7 +390,7 @@ const _rawproductsPrizeDrawsSeedData = [
399
390
  availableQuantity: 3,
400
391
  isSold: false,
401
392
  mainImage: seedPhoto("prizedraw-image-beyblade-x-vault-closed-1-20260824", 900, 900),
402
- images: [seedPhoto("prizedraw-image-beyblade-x-vault-closed-1-20260824", 900, 900)],
393
+ images: seedGallery(seedPhoto("prizedraw-image-beyblade-x-vault-closed-1-20260824", 900, 900)),
403
394
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
404
395
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
405
396
  listingType: "prize-draw",
@@ -0,0 +1,2 @@
1
+ import { ProductDocument } from "../features/products/schemas/firestore";
2
+ export declare const productsSparesSeedData: Partial<ProductDocument>[];