@mohasinac/appkit 4.57.0 → 4.59.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 (574) hide show
  1. package/dist/.build-stamp.json +4 -4
  2. package/dist/_internal/server/features/beys/data.d.ts +44 -0
  3. package/dist/_internal/server/features/beys/data.js +107 -0
  4. package/dist/_internal/server/features/beys/og.d.ts +42 -0
  5. package/dist/_internal/server/features/beys/og.js +89 -0
  6. package/dist/_internal/server/features/parts/data.js +3 -2
  7. package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
  8. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  9. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  10. package/dist/_internal/shared/actions/action-registry.js +86 -0
  11. package/dist/_internal/shared/types/base-document.d.ts +1 -1
  12. package/dist/client.d.ts +2 -0
  13. package/dist/client.js +1 -0
  14. package/dist/constants/api-endpoints.d.ts +12 -0
  15. package/dist/constants/api-endpoints.js +10 -0
  16. package/dist/constants/field-names.d.ts +46 -0
  17. package/dist/constants/field-names.js +46 -0
  18. package/dist/constants/seed-meta.d.ts +113 -0
  19. package/dist/constants/seed-meta.js +91 -0
  20. package/dist/features/admin/components/AdminBeysView.d.ts +27 -0
  21. package/dist/features/admin/components/AdminBeysView.js +178 -0
  22. package/dist/features/admin/components/AdminPartsView.d.ts +27 -0
  23. package/dist/features/admin/components/AdminPartsView.js +160 -0
  24. package/dist/features/admin/components/OwnerQuickActions.d.ts +19 -2
  25. package/dist/features/admin/components/OwnerQuickActions.js +31 -3
  26. package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +31 -0
  27. package/dist/features/admin/components/RecordOwnerQuickActions.js +128 -0
  28. package/dist/features/admin/components/ReferenceRecordEditor.d.ts +45 -0
  29. package/dist/features/admin/components/ReferenceRecordEditor.js +153 -0
  30. package/dist/features/admin/schemas/firestore.d.ts +1 -1
  31. package/dist/features/auctions/components/MarketplaceAuctionCard.js +15 -2
  32. package/dist/features/auth/permissions/constants.d.ts +1 -1
  33. package/dist/features/auth/permissions/constants.js +12 -1
  34. package/dist/features/beys/components/BeyDetailPageView.d.ts +50 -0
  35. package/dist/features/beys/components/BeyDetailPageView.js +98 -0
  36. package/dist/features/beys/schemas/firestore.d.ts +417 -0
  37. package/dist/features/beys/schemas/firestore.js +65 -0
  38. package/dist/features/blog/components/BlogFeaturedCard.js +15 -2
  39. package/dist/features/blog/components/BlogPostView.js +2 -2
  40. package/dist/features/categories/components/BrandDetailPageView.js +4 -2
  41. package/dist/features/categories/components/BundleDetailView.js +2 -2
  42. package/dist/features/categories/components/CategoryDetailPageView.js +36 -3
  43. package/dist/features/categories/components/CategoryGrid.js +24 -2
  44. package/dist/features/categories/components/FranchiseDetailPageView.js +2 -3
  45. package/dist/features/events/components/EventCard.js +15 -2
  46. package/dist/features/grouped/components/GroupedListingDetailView.js +2 -3
  47. package/dist/features/homepage/components/CustomCardsSection.js +67 -50
  48. package/dist/features/homepage/components/ShopByCategorySection.js +23 -10
  49. package/dist/features/homepage/schemas/index.d.ts +10 -10
  50. package/dist/features/parts/components/PartDetailPageView.js +5 -3
  51. package/dist/features/parts/components/PartsSearchBox.js +79 -4
  52. package/dist/features/parts/schemas/admin-edit.d.ts +81 -0
  53. package/dist/features/parts/schemas/admin-edit.js +89 -0
  54. package/dist/features/parts/schemas/firestore.d.ts +2 -1
  55. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +15 -2
  56. package/dist/features/products/components/MarketplaceBundleCard.js +15 -2
  57. package/dist/features/products/components/MarketplacePrizeDrawCard.js +15 -2
  58. package/dist/features/products/components/ProductGrid.js +18 -2
  59. package/dist/features/products/schemas/firestore.d.ts +18 -0
  60. package/dist/features/seller/components/CategoryInlineSelect.d.ts +10 -1
  61. package/dist/features/seller/components/CategoryInlineSelect.js +53 -5
  62. package/dist/features/seller/components/SellerProductShell.d.ts +39 -0
  63. package/dist/features/seller/components/SellerProductShell.js +31 -3
  64. package/dist/index.d.ts +6 -129
  65. package/dist/index.js +61 -292
  66. package/dist/next/routing/route-map.d.ts +13 -1
  67. package/dist/next/routing/route-map.js +37 -0
  68. package/dist/schemas/registry.d.ts +6 -6
  69. package/dist/server.d.ts +2 -69
  70. package/dist/server.js +8 -69
  71. package/dist/styles.css +468 -1
  72. package/dist/tailwind-utilities.css +1 -1
  73. package/dist/ui/components/PosterCard.d.ts +99 -0
  74. package/dist/ui/components/PosterCard.js +109 -0
  75. package/dist/ui/components/PosterCard.style.css +466 -0
  76. package/dist/ui/components/index.style.css +1 -0
  77. package/dist/ui/index.d.ts +2 -0
  78. package/dist/ui/index.js +2 -0
  79. package/package.json +4 -2
  80. package/scripts/seed-cli.mjs +177 -2
  81. package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
  82. package/dist/features/tester/seed-data/_happy-path.js +0 -710
  83. package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
  84. package/dist/features/tester/seed-data/_money-flows.js +0 -610
  85. package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
  86. package/dist/features/tester/seed-data/authored/_types.js +0 -35
  87. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
  88. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
  89. package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
  90. package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
  91. package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
  92. package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
  93. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
  94. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
  95. package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
  96. package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
  97. package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
  98. package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
  99. package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
  100. package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
  101. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
  102. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
  103. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
  104. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
  105. package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
  106. package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
  107. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
  108. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
  109. package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
  110. package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
  111. package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
  112. package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
  113. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
  114. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
  115. package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
  116. package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
  117. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
  118. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
  119. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
  120. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
  121. package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
  122. package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
  123. package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
  124. package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
  125. package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
  126. package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
  127. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
  128. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
  129. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
  130. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
  131. package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
  132. package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
  133. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
  134. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
  135. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
  136. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
  137. package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
  138. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
  139. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
  140. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
  141. package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
  142. package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
  143. package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
  144. package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
  145. package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
  146. package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
  147. package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
  148. package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
  149. package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
  150. package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
  151. package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
  152. package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
  153. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
  154. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
  155. package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
  156. package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
  157. package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
  158. package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
  159. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
  160. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
  161. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
  162. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
  163. package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
  164. package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
  165. package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
  166. package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
  167. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
  168. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
  169. package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
  170. package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
  171. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
  172. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
  173. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
  174. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
  175. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
  176. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
  177. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
  178. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
  179. package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
  180. package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
  181. package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
  182. package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
  183. package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
  184. package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
  185. package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
  186. package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
  187. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
  188. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
  189. package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
  190. package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
  191. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
  192. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
  193. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
  194. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
  195. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
  196. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
  197. package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
  198. package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
  199. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
  200. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
  201. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
  202. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
  203. package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
  204. package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
  205. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
  206. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
  207. package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
  208. package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
  209. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
  210. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
  211. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
  212. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
  213. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
  214. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
  215. package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
  216. package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
  217. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
  218. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
  219. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
  220. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
  221. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
  222. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
  223. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
  224. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
  225. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
  226. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
  227. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
  228. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
  229. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
  230. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
  231. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
  232. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
  233. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
  234. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
  235. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
  236. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
  237. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
  238. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
  239. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
  240. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
  241. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
  242. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
  243. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
  244. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
  245. package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
  246. package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
  247. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
  248. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
  249. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
  250. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
  251. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
  252. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
  253. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
  254. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
  255. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
  256. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
  257. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
  258. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
  259. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
  260. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
  261. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
  262. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
  263. package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
  264. package/dist/features/tester/seed-data/authored/index.js +0 -301
  265. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
  266. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
  267. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
  268. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
  269. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
  270. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
  271. package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
  272. package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
  273. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
  274. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
  275. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
  276. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
  277. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
  278. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
  279. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
  280. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
  281. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
  282. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
  283. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
  284. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
  285. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
  286. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
  287. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
  288. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
  289. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
  290. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
  291. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
  292. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
  293. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
  294. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
  295. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
  296. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
  297. package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
  298. package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
  299. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
  300. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
  301. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
  302. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
  303. package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
  304. package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
  305. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
  306. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
  307. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
  308. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
  309. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
  310. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
  311. package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
  312. package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
  313. package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
  314. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
  315. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
  316. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
  317. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
  318. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
  319. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
  320. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
  321. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
  322. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
  323. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
  324. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
  325. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
  326. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
  327. package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
  328. package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
  329. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
  330. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
  331. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
  332. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
  333. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
  334. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
  335. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
  336. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
  337. package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
  338. package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
  339. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
  340. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
  341. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
  342. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
  343. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
  344. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
  345. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
  346. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
  347. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
  348. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
  349. package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
  350. package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
  351. package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
  352. package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
  353. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
  354. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
  355. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
  356. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
  357. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
  358. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
  359. package/dist/features/tester/seed-data/index.d.ts +0 -2
  360. package/dist/features/tester/seed-data/index.js +0 -2
  361. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
  362. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
  363. package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
  364. package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
  365. package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
  366. package/dist/features/tester/seed-data/tester-window.js +0 -66
  367. package/dist/seed/_helpers/brand-rows.d.ts +0 -35
  368. package/dist/seed/_helpers/brand-rows.js +0 -600
  369. package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
  370. package/dist/seed/_helpers/category-content-generated.js +0 -1853
  371. package/dist/seed/_helpers/category-content.d.ts +0 -68
  372. package/dist/seed/_helpers/category-content.js +0 -731
  373. package/dist/seed/_helpers/category-forest.d.ts +0 -4
  374. package/dist/seed/_helpers/category-forest.js +0 -824
  375. package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
  376. package/dist/seed/_helpers/category-images-generated.js +0 -618
  377. package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
  378. package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
  379. package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
  380. package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
  381. package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
  382. package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
  383. package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
  384. package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
  385. package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
  386. package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
  387. package/dist/seed/_helpers/category-models.d.ts +0 -12
  388. package/dist/seed/_helpers/category-models.js +0 -45
  389. package/dist/seed/_helpers/category-names.d.ts +0 -54
  390. package/dist/seed/_helpers/category-names.js +0 -118
  391. package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
  392. package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
  393. package/dist/seed/_helpers/category-parts.d.ts +0 -9
  394. package/dist/seed/_helpers/category-parts.js +0 -15022
  395. package/dist/seed/_helpers/category-tree.d.ts +0 -27
  396. package/dist/seed/_helpers/category-tree.js +0 -119
  397. package/dist/seed/_helpers/character-features.d.ts +0 -10
  398. package/dist/seed/_helpers/character-features.js +0 -120
  399. package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
  400. package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
  401. package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
  402. package/dist/seed/_helpers/franchise-rows.js +0 -189
  403. package/dist/seed/_helpers/media.d.ts +0 -67
  404. package/dist/seed/_helpers/media.js +0 -172
  405. package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
  406. package/dist/seed/_helpers/part-colours-generated.js +0 -273
  407. package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
  408. package/dist/seed/_helpers/product-search-txt.js +0 -23
  409. package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
  410. package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
  411. package/dist/seed/addresses-seed-data.d.ts +0 -2
  412. package/dist/seed/addresses-seed-data.js +0 -78
  413. package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
  414. package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
  415. package/dist/seed/bids-seed-data.d.ts +0 -2
  416. package/dist/seed/bids-seed-data.js +0 -206
  417. package/dist/seed/blog-posts-seed-data.d.ts +0 -6
  418. package/dist/seed/blog-posts-seed-data.js +0 -442
  419. package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
  420. package/dist/seed/carousel-slides-seed-data.js +0 -411
  421. package/dist/seed/carousels-seed-data.d.ts +0 -2
  422. package/dist/seed/carousels-seed-data.js +0 -36
  423. package/dist/seed/cart-seed-data.d.ts +0 -2
  424. package/dist/seed/cart-seed-data.js +0 -241
  425. package/dist/seed/catalogue-seed-data.d.ts +0 -2
  426. package/dist/seed/catalogue-seed-data.js +0 -112
  427. package/dist/seed/categories-seed-data.d.ts +0 -3
  428. package/dist/seed/categories-seed-data.js +0 -816
  429. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
  430. package/dist/seed/claimed-coupons-seed-data.js +0 -85
  431. package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
  432. package/dist/seed/coupon-usage-seed-data.js +0 -55
  433. package/dist/seed/coupons-seed-data.d.ts +0 -2
  434. package/dist/seed/coupons-seed-data.js +0 -226
  435. package/dist/seed/defaults/categories.d.ts +0 -2
  436. package/dist/seed/defaults/categories.js +0 -12
  437. package/dist/seed/defaults/faqs.d.ts +0 -2
  438. package/dist/seed/defaults/faqs.js +0 -40
  439. package/dist/seed/events-seed-data.d.ts +0 -7
  440. package/dist/seed/events-seed-data.js +0 -482
  441. package/dist/seed/factories/address.factory.d.ts +0 -21
  442. package/dist/seed/factories/address.factory.js +0 -44
  443. package/dist/seed/factories/bid.factory.d.ts +0 -15
  444. package/dist/seed/factories/bid.factory.js +0 -33
  445. package/dist/seed/factories/blog-post.factory.d.ts +0 -15
  446. package/dist/seed/factories/blog-post.factory.js +0 -22
  447. package/dist/seed/factories/carousel.factory.d.ts +0 -11
  448. package/dist/seed/factories/carousel.factory.js +0 -17
  449. package/dist/seed/factories/cart.factory.d.ts +0 -25
  450. package/dist/seed/factories/cart.factory.js +0 -35
  451. package/dist/seed/factories/category.factory.d.ts +0 -11
  452. package/dist/seed/factories/category.factory.js +0 -16
  453. package/dist/seed/factories/coupon.factory.d.ts +0 -21
  454. package/dist/seed/factories/coupon.factory.js +0 -43
  455. package/dist/seed/factories/faq.factory.d.ts +0 -10
  456. package/dist/seed/factories/faq.factory.js +0 -15
  457. package/dist/seed/factories/notification.factory.d.ts +0 -18
  458. package/dist/seed/factories/notification.factory.js +0 -39
  459. package/dist/seed/factories/order.factory.d.ts +0 -20
  460. package/dist/seed/factories/order.factory.js +0 -20
  461. package/dist/seed/factories/payout.factory.d.ts +0 -21
  462. package/dist/seed/factories/payout.factory.js +0 -38
  463. package/dist/seed/factories/product.factory.d.ts +0 -27
  464. package/dist/seed/factories/product.factory.js +0 -80
  465. package/dist/seed/factories/review.factory.d.ts +0 -14
  466. package/dist/seed/factories/review.factory.js +0 -52
  467. package/dist/seed/factories/session.factory.d.ts +0 -15
  468. package/dist/seed/factories/session.factory.js +0 -31
  469. package/dist/seed/factories/store.factory.d.ts +0 -23
  470. package/dist/seed/factories/store.factory.js +0 -47
  471. package/dist/seed/factories/user.factory.d.ts +0 -19
  472. package/dist/seed/factories/user.factory.js +0 -56
  473. package/dist/seed/faq-seed-data.d.ts +0 -18
  474. package/dist/seed/faq-seed-data.js +0 -1956
  475. package/dist/seed/firestore-indexes.d.ts +0 -12
  476. package/dist/seed/firestore-indexes.js +0 -31
  477. package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
  478. package/dist/seed/grouped-listings-seed-data.js +0 -283
  479. package/dist/seed/history-seed-data.d.ts +0 -12
  480. package/dist/seed/history-seed-data.js +0 -70
  481. package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
  482. package/dist/seed/homepage-sections-seed-data.js +0 -1018
  483. package/dist/seed/index.d.ts +0 -98
  484. package/dist/seed/index.js +0 -112
  485. package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
  486. package/dist/seed/lottery-entries-seed-data.js +0 -108
  487. package/dist/seed/manifest.d.ts +0 -16
  488. package/dist/seed/manifest.js +0 -235
  489. package/dist/seed/media-assets-seed-data.d.ts +0 -22
  490. package/dist/seed/media-assets-seed-data.js +0 -5593
  491. package/dist/seed/model-composition-seed-data.d.ts +0 -15
  492. package/dist/seed/model-composition-seed-data.js +0 -9032
  493. package/dist/seed/notifications-seed-data.d.ts +0 -2
  494. package/dist/seed/notifications-seed-data.js +0 -606
  495. package/dist/seed/offers-seed-data.d.ts +0 -2
  496. package/dist/seed/offers-seed-data.js +0 -398
  497. package/dist/seed/orders-seed-data.d.ts +0 -2
  498. package/dist/seed/orders-seed-data.js +0 -845
  499. package/dist/seed/part-glossary/chunk0.d.ts +0 -9
  500. package/dist/seed/part-glossary/chunk0.js +0 -35448
  501. package/dist/seed/part-glossary/chunk1.d.ts +0 -9
  502. package/dist/seed/part-glossary/chunk1.js +0 -40494
  503. package/dist/seed/part-glossary/chunk2.d.ts +0 -9
  504. package/dist/seed/part-glossary/chunk2.js +0 -51242
  505. package/dist/seed/part-glossary/chunk3.d.ts +0 -9
  506. package/dist/seed/part-glossary/chunk3.js +0 -53337
  507. package/dist/seed/part-glossary/chunk4.d.ts +0 -9
  508. package/dist/seed/part-glossary/chunk4.js +0 -51454
  509. package/dist/seed/part-glossary-seed-data.d.ts +0 -15
  510. package/dist/seed/part-glossary-seed-data.js +0 -25
  511. package/dist/seed/payouts-seed-data.d.ts +0 -2
  512. package/dist/seed/payouts-seed-data.js +0 -302
  513. package/dist/seed/product-features-seed-data.d.ts +0 -3
  514. package/dist/seed/product-features-seed-data.js +0 -366
  515. package/dist/seed/products-art-seed-data.d.ts +0 -2
  516. package/dist/seed/products-art-seed-data.js +0 -289
  517. package/dist/seed/products-auctions-seed-data.d.ts +0 -2
  518. package/dist/seed/products-auctions-seed-data.js +0 -475
  519. package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
  520. package/dist/seed/products-beyblade-x-seed-data.js +0 -476
  521. package/dist/seed/products-catalogue-seed-data.d.ts +0 -22
  522. package/dist/seed/products-catalogue-seed-data.js +0 -86384
  523. package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
  524. package/dist/seed/products-classifieds-seed-data.js +0 -435
  525. package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
  526. package/dist/seed/products-digital-codes-seed-data.js +0 -395
  527. package/dist/seed/products-live-items-seed-data.d.ts +0 -7
  528. package/dist/seed/products-live-items-seed-data.js +0 -269
  529. package/dist/seed/products-preorders-seed-data.d.ts +0 -2
  530. package/dist/seed/products-preorders-seed-data.js +0 -360
  531. package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
  532. package/dist/seed/products-prize-draws-seed-data.js +0 -427
  533. package/dist/seed/products-spares-seed-data.d.ts +0 -2
  534. package/dist/seed/products-spares-seed-data.js +0 -368
  535. package/dist/seed/products-standard-seed-data.d.ts +0 -2
  536. package/dist/seed/products-standard-seed-data.js +0 -632
  537. package/dist/seed/products-stickers-seed-data.d.ts +0 -2
  538. package/dist/seed/products-stickers-seed-data.js +0 -319
  539. package/dist/seed/reviews-seed-data.d.ts +0 -1
  540. package/dist/seed/reviews-seed-data.js +0 -185
  541. package/dist/seed/runner.d.ts +0 -2
  542. package/dist/seed/runner.js +0 -125
  543. package/dist/seed/scammers-seed-data.d.ts +0 -2
  544. package/dist/seed/scammers-seed-data.js +0 -235
  545. package/dist/seed/seed-market-config.d.ts +0 -48
  546. package/dist/seed/seed-market-config.js +0 -199
  547. package/dist/seed/seed-purpose.d.ts +0 -299
  548. package/dist/seed/seed-purpose.js +0 -431
  549. package/dist/seed/sessions-seed-data.d.ts +0 -3
  550. package/dist/seed/sessions-seed-data.js +0 -116
  551. package/dist/seed/shipments-seed-data.d.ts +0 -5
  552. package/dist/seed/shipments-seed-data.js +0 -185
  553. package/dist/seed/site-settings-seed-data.d.ts +0 -2
  554. package/dist/seed/site-settings-seed-data.js +0 -1069
  555. package/dist/seed/store-addresses-seed-data.d.ts +0 -18
  556. package/dist/seed/store-addresses-seed-data.js +0 -71
  557. package/dist/seed/store-extensions-seed-data.d.ts +0 -11
  558. package/dist/seed/store-extensions-seed-data.js +0 -292
  559. package/dist/seed/stores-seed-data.d.ts +0 -6
  560. package/dist/seed/stores-seed-data.js +0 -242
  561. package/dist/seed/support-tickets-seed-data.d.ts +0 -16
  562. package/dist/seed/support-tickets-seed-data.js +0 -239
  563. package/dist/seed/tax-codes-seed-data.d.ts +0 -34
  564. package/dist/seed/tax-codes-seed-data.js +0 -100
  565. package/dist/seed/test-data-ttl.d.ts +0 -29
  566. package/dist/seed/test-data-ttl.js +0 -31
  567. package/dist/seed/test-utils.d.ts +0 -49
  568. package/dist/seed/test-utils.js +0 -110
  569. package/dist/seed/types.d.ts +0 -89
  570. package/dist/seed/types.js +0 -15
  571. package/dist/seed/users-seed-data.d.ts +0 -2
  572. package/dist/seed/users-seed-data.js +0 -597
  573. package/dist/seed/wishlists-seed-data.d.ts +0 -12
  574. package/dist/seed/wishlists-seed-data.js +0 -54
@@ -1,395 +0,0 @@
1
- /*
2
- * WHY: Seeds a Beyblade digital-code catalog with real pool/redemption variety. The
3
- * original 1-fixture file only ever exercised `codeDeliveryMethod:"auto-claim"` with
4
- * `codesAvailable === codePoolSize` (i.e. no fixture ever showed a partially-redeemed
5
- * or sold-out pool, and `manual-email` delivery was never exercised at all) — see
6
- * CLAUDE.md seed-data blandness sweep, 2026-08-20 session.
7
- * WHAT: Exports 8 digital-code listings on Beyblade Arena — mixed auto-claim/manual-email
8
- * delivery, partially-redeemed and fully-sold-out pools, and expiring codes.
9
- *
10
- * EXPORTS:
11
- * productsDigitalCodesSeedData — Array of 8 Partial<ProductDocument> with listingType:"digital-code"
12
- *
13
- * @tag domain:products,digital-codes
14
- * @tag layer:seed
15
- * @tag pattern:none
16
- * @tag access:server-only
17
- * @tag consumers:seed/index.ts,seed/runner.ts
18
- * @tag sideEffects:none
19
- */
20
- import { withProductSearchTxt } from "./_helpers/product-search-txt.js";
21
- import { PRODUCT_FIELDS } from "../constants/field-names.js";
22
- import { buildSearchTxt } from "../utils/search-txt.js";
23
- import { seedPhoto, seedGallery } from "./_helpers/media.js";
24
- import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
25
- import { withDerivedCategoryNames } from "./_helpers/category-names.js";
26
- const _rawproductsDigitalCodesSeedData = [
27
- {
28
- id: "digitalcode-beyblade-x-app-starter-pack",
29
- slug: "digitalcode-beyblade-x-app-starter-pack",
30
- title: "Beyblade X App — Starter Pack Code",
31
- description: "Digital redemption code for the Beyblade X companion app's Starter Pack — instantly unlocks 5 exclusive digital tops.",
32
- categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
33
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
34
- brandSlug: "brand-takara-tomy",
35
- brand: "Takara-Tomy",
36
- price: 199,
37
- currency: "INR",
38
- stockQuantity: 25,
39
- availableQuantity: 25,
40
- isSold: false,
41
- mainImage: seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900),
42
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-starter-1-20260101", 900, 900), seedPhoto("digitalcode-image-beyblade-x-starter-2-20260101", 900, 900)),
43
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
44
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
45
- listingType: "digital-code",
46
- storeId: "store-beyblade-arena",
47
- storeName: "Beyblade Arena",
48
- digitalCode: {
49
- codeDeliveryMethod: "auto-claim",
50
- codePoolSize: 25,
51
- codesAvailable: 25,
52
- redemptionInstructions: "Open the Beyblade X app, go to Settings → Redeem Code, and paste your code to unlock the Starter Pack instantly.",
53
- },
54
- customFields: [],
55
- customSections: [],
56
- featured: false,
57
- isPromoted: false,
58
- isOnSale: false,
59
- tags: ["digital-code", "app-content"],
60
- createdAt: new Date("2026-05-06"),
61
- updatedAt: new Date("2026-05-06"),
62
- searchTxt: buildSearchTxt([
63
- "Beyblade X App — Starter Pack Code",
64
- "Digital redemption code for the Beyblade X companion app.",
65
- "Takara-Tomy",
66
- "brand-takara-tomy",
67
- ["Beyblade X", "Spinning Tops"],
68
- ["digital-code", "app-content"],
69
- ]),
70
- },
71
- {
72
- id: "digitalcode-beyblade-x-app-legendary-pack",
73
- slug: "digitalcode-beyblade-x-app-legendary-pack",
74
- title: "Beyblade X App — Legendary Pack Code (Partially Claimed)",
75
- description: "Unlocks 3 legendary digital tops in the companion app. Popular pack — most of the batch has already been claimed.",
76
- categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
77
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
78
- brandSlug: "brand-takara-tomy",
79
- brand: "Takara-Tomy",
80
- price: 349,
81
- currency: "INR",
82
- stockQuantity: 40,
83
- availableQuantity: 6,
84
- isSold: false,
85
- mainImage: seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900),
86
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-legendary-1-20260814", 900, 900)),
87
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
88
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
89
- listingType: "digital-code",
90
- storeId: "store-beyblade-arena",
91
- storeName: "Beyblade Arena",
92
- digitalCode: {
93
- codeDeliveryMethod: "auto-claim",
94
- codePoolSize: 40,
95
- codesAvailable: 6,
96
- redemptionInstructions: "Open the Beyblade X app, go to Settings → Redeem Code, and paste your code to unlock the Legendary Pack instantly.",
97
- expiresAt: new Date(Date.now() + 60 * 24 * 60 * 60 * 1000),
98
- },
99
- customFields: [],
100
- customSections: [],
101
- featured: true,
102
- isPromoted: true,
103
- isOnSale: false,
104
- tags: ["digital-code", "app-content"],
105
- createdAt: new Date("2026-08-14"),
106
- updatedAt: new Date("2026-08-19"),
107
- searchTxt: buildSearchTxt([
108
- "Beyblade X App — Legendary Pack Code (Partially Claimed)",
109
- "Unlocks 3 legendary digital tops, most of the batch already claimed.",
110
- "Takara-Tomy",
111
- "brand-takara-tomy",
112
- ["Beyblade X", "Spinning Tops"],
113
- ["digital-code", "app-content"],
114
- ]),
115
- },
116
- {
117
- id: "digitalcode-beyblade-burst-app-sold-out",
118
- slug: "digitalcode-beyblade-burst-app-sold-out",
119
- title: "Beyblade Burst App — Anniversary Pack Code (Sold Out)",
120
- description: "Limited-run anniversary code pack for the Beyblade Burst app — every code in this batch has been claimed.",
121
- categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
122
- categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
123
- brandSlug: "brand-beyblade",
124
- brand: "Beyblade",
125
- price: 299,
126
- currency: "INR",
127
- // `stockQuantity: 15` / `isSold: false` until 2026-08-24, contradicting
128
- // both `availableQuantity: 0` and the drained `codesAvailable` below.
129
- // digital-code's own config comment claimed stockQuantity mirrors the pool
130
- // count; this fixture is the proof it does not, which is why the per-type
131
- // predicate reads the nested pool counter rather than trusting the mirror.
132
- stockQuantity: 0,
133
- availableQuantity: 0,
134
- isSold: true,
135
- mainImage: 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)),
137
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
138
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
139
- listingType: "digital-code",
140
- storeId: "store-beyblade-arena",
141
- storeName: "Beyblade Arena",
142
- digitalCode: {
143
- codeDeliveryMethod: "auto-claim",
144
- codePoolSize: 15,
145
- codesAvailable: 0,
146
- redemptionInstructions: "Open the Beyblade Burst app, go to Settings → Redeem Code, and paste your code to unlock the Anniversary Pack.",
147
- },
148
- customFields: [],
149
- customSections: [],
150
- featured: false,
151
- isPromoted: false,
152
- isOnSale: false,
153
- tags: ["digital-code", "app-content", "limited-run"],
154
- createdAt: new Date("2026-08-01"),
155
- updatedAt: new Date("2026-08-10"),
156
- searchTxt: buildSearchTxt([
157
- "Beyblade Burst App — Anniversary Pack Code (Sold Out)",
158
- "Limited-run anniversary code pack, every code claimed.",
159
- "Beyblade",
160
- "brand-beyblade",
161
- ["Beyblade Burst", "Spinning Tops"],
162
- ["digital-code", "app-content", "limited-run"],
163
- ]),
164
- },
165
- {
166
- id: "digitalcode-beyblade-x-manual-tournament-pass",
167
- slug: "digitalcode-beyblade-x-manual-tournament-pass",
168
- title: "Beyblade X Regional Tournament — Digital Entry Pass",
169
- description: "Digital entry pass for the next regional tournament, emailed manually by the organizer within 24 hours of purchase.",
170
- categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
171
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
172
- brandSlug: "brand-takara-tomy",
173
- brand: "Takara-Tomy",
174
- price: 499,
175
- currency: "INR",
176
- stockQuantity: 50,
177
- availableQuantity: 32,
178
- isSold: false,
179
- mainImage: seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900),
180
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-tournament-1-20260815", 900, 900), seedPhoto("digitalcode-image-beyblade-x-tournament-2-20260815", 900, 900)),
181
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
182
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
183
- listingType: "digital-code",
184
- storeId: "store-beyblade-arena",
185
- storeName: "Beyblade Arena",
186
- digitalCode: {
187
- codeDeliveryMethod: "manual-email",
188
- codePoolSize: 50,
189
- codesAvailable: 32,
190
- redemptionInstructions: "Your tournament entry pass will be emailed within 24 hours of purchase. Check your spam folder if it doesn't arrive.",
191
- expiresAt: new Date(Date.now() + 20 * 24 * 60 * 60 * 1000),
192
- },
193
- customFields: [{ key: "Manual Fulfillment", type: "boolean", value: "true" }],
194
- customSections: [],
195
- featured: false,
196
- isPromoted: false,
197
- isOnSale: false,
198
- tags: ["digital-code", "tournament-grade"],
199
- createdAt: new Date("2026-08-15"),
200
- updatedAt: new Date("2026-08-15"),
201
- searchTxt: buildSearchTxt([
202
- "Beyblade X Regional Tournament — Digital Entry Pass",
203
- "Digital entry pass, emailed manually by the organizer.",
204
- "Takara-Tomy",
205
- "brand-takara-tomy",
206
- ["Beyblade X", "Spinning Tops"],
207
- ["digital-code", "tournament-grade"],
208
- ]),
209
- },
210
- {
211
- id: "digitalcode-beyblade-metal-app-classic-pack",
212
- slug: "digitalcode-beyblade-metal-app-classic-pack",
213
- title: "Beyblade Metal Fight App — Classic Pack Code",
214
- description: "Unlocks the Metal Fight classic-era top roster in the companion app — Storm Pegasus, Lightning L-Drago, and more.",
215
- categorySlugs: ["category-metal-fury-4d", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
216
- categoryNames: ["Metal Fury (4D)", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
217
- brandSlug: "brand-takara-tomy",
218
- brand: "Takara-Tomy",
219
- price: 249,
220
- currency: "INR",
221
- stockQuantity: 30,
222
- availableQuantity: 30,
223
- isSold: false,
224
- mainImage: seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900),
225
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-metal-classic-1-20260816", 900, 900)),
226
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
227
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
228
- listingType: "digital-code",
229
- storeId: "store-beyblade-arena",
230
- storeName: "Beyblade Arena",
231
- digitalCode: {
232
- codeDeliveryMethod: "auto-claim",
233
- codePoolSize: 30,
234
- codesAvailable: 30,
235
- redemptionInstructions: "Open the Beyblade Metal Fight app, go to Settings → Redeem Code, and paste your code to unlock the Classic Pack instantly.",
236
- },
237
- customFields: [],
238
- customSections: [],
239
- featured: false,
240
- isPromoted: false,
241
- isOnSale: false,
242
- tags: ["digital-code", "app-content"],
243
- createdAt: new Date("2026-08-16"),
244
- updatedAt: new Date("2026-08-16"),
245
- searchTxt: buildSearchTxt([
246
- "Beyblade Metal Fight App — Classic Pack Code",
247
- "Unlocks the Metal Fight classic-era top roster.",
248
- "Takara-Tomy",
249
- "brand-takara-tomy",
250
- ["Beyblade Metal Fight", "Spinning Tops"],
251
- ["digital-code", "app-content"],
252
- ]),
253
- },
254
- {
255
- id: "digitalcode-beyblade-burst-app-avatar-skins",
256
- slug: "digitalcode-beyblade-burst-app-avatar-skins",
257
- title: "Beyblade Burst App — Avatar Skin Bundle Code",
258
- description: "Cosmetic-only code bundle — unlocks 8 exclusive player avatar skins in the Beyblade Burst app, no gameplay advantage.",
259
- categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
260
- categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
261
- brandSlug: "brand-beyblade",
262
- brand: "Beyblade",
263
- price: 149,
264
- currency: "INR",
265
- stockQuantity: 60,
266
- availableQuantity: 41,
267
- isSold: false,
268
- mainImage: seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900),
269
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-burst-avatar-1-20260817", 900, 900)),
270
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
271
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
272
- listingType: "digital-code",
273
- storeId: "store-beyblade-arena",
274
- storeName: "Beyblade Arena",
275
- digitalCode: {
276
- codeDeliveryMethod: "auto-claim",
277
- codePoolSize: 60,
278
- codesAvailable: 41,
279
- redemptionInstructions: "Open the Beyblade Burst app, go to Settings → Redeem Code, and paste your code to unlock all 8 avatar skins instantly.",
280
- },
281
- customFields: [{ key: "Cosmetic Only", type: "boolean", value: "true" }],
282
- customSections: [],
283
- featured: false,
284
- isPromoted: false,
285
- isOnSale: true,
286
- tags: ["digital-code", "app-content", "cosmetic"],
287
- createdAt: new Date("2026-08-17"),
288
- updatedAt: new Date("2026-08-19"),
289
- searchTxt: buildSearchTxt([
290
- "Beyblade Burst App — Avatar Skin Bundle Code",
291
- "Cosmetic-only code bundle, 8 exclusive player avatar skins.",
292
- "Beyblade",
293
- "brand-beyblade",
294
- ["Beyblade Burst", "Spinning Tops"],
295
- ["digital-code", "app-content", "cosmetic"],
296
- ]),
297
- },
298
- {
299
- id: "digitalcode-beyblade-x-manual-coaching-session",
300
- slug: "digitalcode-beyblade-x-manual-coaching-session",
301
- title: "1-on-1 Beyblade X Coaching Session — Digital Booking Code",
302
- description: "Redeem this code for a 30-minute 1-on-1 video coaching session with a tournament-ranked Beyblade X player. Booking link emailed manually.",
303
- categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
304
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
305
- brandSlug: "brand-takara-tomy",
306
- brand: "Takara-Tomy",
307
- price: 799,
308
- currency: "INR",
309
- stockQuantity: 10,
310
- availableQuantity: 3,
311
- isSold: false,
312
- mainImage: seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900),
313
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-coaching-1-20260818", 900, 900), seedPhoto("digitalcode-image-beyblade-x-coaching-2-20260818", 900, 900)),
314
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
315
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
316
- listingType: "digital-code",
317
- storeId: "store-beyblade-arena",
318
- storeName: "Beyblade Arena",
319
- digitalCode: {
320
- codeDeliveryMethod: "manual-email",
321
- codePoolSize: 10,
322
- codesAvailable: 3,
323
- redemptionInstructions: "Your booking link and coach's availability calendar will be emailed within 24 hours of purchase.",
324
- expiresAt: new Date(Date.now() + 45 * 24 * 60 * 60 * 1000),
325
- },
326
- customFields: [
327
- { key: "Session Length", type: "text", value: "30 minutes" },
328
- { key: "Manual Fulfillment", type: "boolean", value: "true" },
329
- ],
330
- customSections: [],
331
- featured: true,
332
- isPromoted: false,
333
- isOnSale: false,
334
- tags: ["digital-code", "coaching"],
335
- createdAt: new Date("2026-08-18"),
336
- updatedAt: new Date("2026-08-18"),
337
- searchTxt: buildSearchTxt([
338
- "1-on-1 Beyblade X Coaching Session — Digital Booking Code",
339
- "30-minute 1-on-1 video coaching session, booking link emailed manually.",
340
- "Takara-Tomy",
341
- "brand-takara-tomy",
342
- ["Beyblade X", "Spinning Tops"],
343
- ["digital-code", "coaching"],
344
- ]),
345
- },
346
- {
347
- // Pool drained, but `stockQuantity: 5` and `isSold: false`.
348
- //
349
- // The NESTED-field fixture: the only row that fails purely on
350
- // `digitalCode.codesAvailable`. The old related-items predicate read
351
- // `row.codesAvailable` at the TOP level, which is undefined on every
352
- // document, so its digital-code branch had never once fired. Without a
353
- // fixture in this exact shape that bug is untestable.
354
- id: "digitalcode-beyblade-x-app-launch-codes-depleted",
355
- slug: "digitalcode-beyblade-x-app-launch-codes-depleted",
356
- title: "Beyblade X App — Launch Bonus Code (Pool Empty)",
357
- description: "Launch-bonus codes for the Beyblade X app. Every code in the pool has been claimed; restock pending.",
358
- categorySlugs: ["category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
359
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
360
- brandSlug: "brand-takara-tomy",
361
- brand: "Takara-Tomy",
362
- price: 399,
363
- currency: "INR",
364
- stockQuantity: 5,
365
- availableQuantity: 5,
366
- isSold: false,
367
- mainImage: seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900),
368
- images: seedGallery(seedPhoto("digitalcode-image-beyblade-x-depleted-1-20260824", 900, 900)),
369
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
370
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
371
- listingType: "digital-code",
372
- storeId: "store-beyblade-arena",
373
- storeName: "Beyblade Arena",
374
- digitalCode: {
375
- codeDeliveryMethod: "auto-claim",
376
- codePoolSize: 30,
377
- codesAvailable: 0,
378
- redemptionInstructions: "Open the Beyblade X app, tap Settings → Redeem, and paste your code.",
379
- },
380
- customFields: [],
381
- customSections: [],
382
- featured: false,
383
- isPromoted: false,
384
- isOnSale: false,
385
- tags: ["digital-code"],
386
- createdAt: new Date("2026-08-24"),
387
- updatedAt: new Date("2026-08-24"),
388
- },
389
- ];
390
- /**
391
- * Every record gains `searchTxt` here rather than inline, so a fixture added at
392
- * the bottom of the array cannot ship without it — which is exactly how the
393
- * sold/depleted fixture in this file ended up unsearchable.
394
- */
395
- export const productsDigitalCodesSeedData = _rawproductsDigitalCodesSeedData.map(withProductSearchTxt).map(withFinalSale).map(withDerivedCategoryNames);
@@ -1,7 +0,0 @@
1
- import { ProductDocument } from "../features/products/schemas/firestore";
2
- /**
3
- * Every record gains `searchTxt` here rather than inline, so a fixture added at
4
- * the bottom of the array cannot ship without it — which is exactly how the
5
- * sold/depleted fixture in this file ended up unsearchable.
6
- */
7
- export declare const productsLiveItemsSeedData: Partial<ProductDocument>[];
@@ -1,269 +0,0 @@
1
- /*
2
- * WHY: `listingType: "live"` requires ProductLiveItemMeta (species, age, sex, jurisdiction,
3
- * CITES, vendor verification) — fields that only make sense for live animals/plants,
4
- * genuinely inapplicable to this catalog's spinning-tops theme. The type was
5
- * previously left as an empty stub, meaning it had ZERO permanent-catalog examples —
6
- * only the disposable 7-day tester sandbox ever exercised it (see CLAUDE.md seed-data
7
- * blandness sweep, 2026-08-20 session). This file adds a small set of real fixtures,
8
- * explicitly off-catalog-theme, so the feature (species/jurisdiction/transport/CITES
9
- * panels, the Phase 4 full-parity detail page) has permanent data to exercise —
10
- * following the shape already established by the tester-sandbox's dog fixture.
11
- * Deliberately kept small (3 items) since this doesn't fit the demo brand.
12
- * WHAT: Exports 4 live listings on Beyblade Arena — a dog, a reptile, and a plant —
13
- * covering varied transport methods, vendor-verification states, and one CITES-
14
- * restricted example.
15
- *
16
- * These carried `categorySlugs: []` and a `brand: "Beyblade Arena"` string (a
17
- * STORE name in a brand field, matching no brand row) until 2026-08-24, which
18
- * made them unreachable from every category and brand page. Once empty tabs
19
- * started hiding, that would have meant the Live Items tab never appeared
20
- * anywhere at all. They now sit under the `category-living-collectibles` root
21
- * added for exactly this purpose, with the `brand-independent-keepers` brand.
22
- *
23
- * EXPORTS:
24
- * productsLiveItemsSeedData — Array of 4 Partial<ProductDocument> with listingType:"live"
25
- *
26
- * @tag domain:products,live-items
27
- * @tag layer:seed
28
- * @tag pattern:none
29
- * @tag access:server-only
30
- * @tag consumers:seed/index.ts,seed/runner.ts
31
- * @tag sideEffects:none
32
- */
33
- import { withProductSearchTxt } from "./_helpers/product-search-txt.js";
34
- import { PRODUCT_FIELDS } from "../constants/field-names.js";
35
- import { buildSearchTxt } from "../utils/search-txt.js";
36
- import { seedPhoto, seedGallery } from "./_helpers/media.js";
37
- import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
38
- import { withDerivedCategoryNames } from "./_helpers/category-names.js";
39
- const _rawproductsLiveItemsSeedData = [
40
- {
41
- id: "live-golden-retriever-puppy",
42
- slug: "live-golden-retriever-puppy",
43
- title: "Golden Retriever Puppy — 6 Months, Vaccinated",
44
- description: "Friendly, vaccinated Golden Retriever puppy from a verified breeder. Comes with vaccination records and a starter care guide.",
45
- categorySlugs: ["category-dogs-retrievers", "category-animals-dogs", "category-companion-animals", "category-living-collectibles"],
46
- categoryNames: ["Retrievers", "Dogs", "Companion Animals", "Living Collectibles"],
47
- brand: "Independent Keepers",
48
- brandSlug: "brand-independent-keepers",
49
- price: 25000,
50
- currency: "INR",
51
- stockQuantity: 1,
52
- availableQuantity: 1,
53
- isSold: false,
54
- mainImage: seedPhoto("live-image-golden-retriever-1-20260816", 900, 900),
55
- images: seedGallery(seedPhoto("live-image-golden-retriever-1-20260816", 900, 900), seedPhoto("live-image-golden-retriever-2-20260816", 900, 900)),
56
- /*
57
- * 🛑 A LIVE LISTING WITHOUT A VIDEO IS NOT A LISTING THE PRODUCT WOULD ACCEPT.
58
- *
59
- * `/store/live/new` refuses to save one — "a buyer purchasing an animal or
60
- * plant needs to see it move" — so a seeded live fixture carrying only
61
- * stills is data no seller could have created through the form, and every
62
- * case written against the real creation flow then asserts against a
63
- * fixture that contradicts it. Found 2026-10-04 driving
64
- * `live-item-detail`, whose expectation that the gallery strip offers a
65
- * "View video" entry was correct about the product and wrong about the
66
- * data: the page shipped `video: undefined` and rendered 2 image slides.
67
- *
68
- * `url` stays RAW and unwrapped (Root Cause #27) — the media proxy is
69
- * image-only and 400s on video/mp4 — while `thumbnailUrl` is wrapped,
70
- * because a poster frame IS an image and should carry the watermark.
71
- */
72
- video: {
73
- url: "/demo-media/sample-video.mp4",
74
- thumbnailUrl: seedPhoto("live-video-thumb-golden-retriever-20261004", 800, 450),
75
- duration: 15,
76
- },
77
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
78
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
79
- listingType: "live",
80
- storeId: "store-beyblade-arena",
81
- storeName: "Beyblade Arena",
82
- liveItem: {
83
- species: "Dog (Golden Retriever)",
84
- ageMonths: 6,
85
- sex: "male",
86
- careInfo: "Feed twice daily with vet-recommended puppy food. Vaccination records included; next booster due at 8 months.",
87
- transport: { method: "in-person", insuranceIncluded: false },
88
- jurisdictionAllowed: ["IN-MH", "IN-KA", "IN-DL"],
89
- vendorVerified: true,
90
- },
91
- customFields: [],
92
- customSections: [],
93
- featured: false,
94
- isPromoted: false,
95
- isOnSale: false,
96
- tags: ["live-item"],
97
- createdAt: new Date("2026-08-16"),
98
- updatedAt: new Date("2026-08-16"),
99
- searchTxt: buildSearchTxt([
100
- "Golden Retriever Puppy — 6 Months, Vaccinated",
101
- "Friendly, vaccinated Golden Retriever puppy from a verified breeder.",
102
- "Beyblade Arena",
103
- undefined,
104
- [],
105
- ["live-item"],
106
- ]),
107
- },
108
- {
109
- id: "live-bearded-dragon-juvenile",
110
- slug: "live-bearded-dragon-juvenile",
111
- title: "Bearded Dragon — Juvenile, Captive-Bred",
112
- description: "Healthy captive-bred bearded dragon, eating well on a staple diet of greens and insects. Specialist courier transport only.",
113
- categorySlugs: ["category-reptiles-lizards", "category-animals-reptiles", "category-companion-animals", "category-living-collectibles"],
114
- categoryNames: ["Lizards", "Reptiles", "Companion Animals", "Living Collectibles"],
115
- brand: "Independent Keepers",
116
- brandSlug: "brand-independent-keepers",
117
- price: 6500,
118
- currency: "INR",
119
- stockQuantity: 1,
120
- availableQuantity: 1,
121
- isSold: false,
122
- mainImage: seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900),
123
- images: seedGallery(seedPhoto("live-image-bearded-dragon-1-20260817", 900, 900)),
124
- // Required for a live listing — see the note on the retriever above.
125
- video: {
126
- url: "/demo-media/sample-video.mp4",
127
- thumbnailUrl: seedPhoto("live-video-thumb-bearded-dragon-20261004", 800, 450),
128
- duration: 15,
129
- },
130
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
131
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
132
- listingType: "live",
133
- storeId: "store-beyblade-arena",
134
- storeName: "Beyblade Arena",
135
- liveItem: {
136
- species: "Bearded Dragon (Pogona vitticeps)",
137
- ageMonths: 4,
138
- sex: "unknown",
139
- careInfo: "Requires a UVB-lit terrarium at 35-40°C basking zone. Staple diet: leafy greens + gut-loaded insects 3x/week.",
140
- transport: { method: "specialist", handlingFee: 800, insuranceIncluded: true },
141
- jurisdictionAllowed: ["IN-MH", "IN-KA"],
142
- vendorVerified: false,
143
- cites: "CITES-II-2026-0417",
144
- },
145
- customFields: [],
146
- customSections: [],
147
- featured: false,
148
- isPromoted: false,
149
- isOnSale: false,
150
- tags: ["live-item"],
151
- createdAt: new Date("2026-08-17"),
152
- updatedAt: new Date("2026-08-17"),
153
- searchTxt: buildSearchTxt([
154
- "Bearded Dragon — Juvenile, Captive-Bred",
155
- "Healthy captive-bred bearded dragon, specialist courier transport only.",
156
- "Beyblade Arena",
157
- undefined,
158
- [],
159
- ["live-item"],
160
- ]),
161
- },
162
- {
163
- id: "live-bonsai-juniper-10yr",
164
- slug: "live-bonsai-juniper-10yr",
165
- title: "Juniper Bonsai — 10 Years Trained",
166
- description: "A 10-year trained juniper bonsai in a glazed ceramic pot. Low-maintenance, shipped by courier with root-ball protection.",
167
- categorySlugs: ["category-bonsai-juniper", "category-plants-bonsai", "category-live-plants", "category-living-collectibles"],
168
- categoryNames: ["Juniper Bonsai", "Bonsai", "Live Plants", "Living Collectibles"],
169
- brand: "Independent Keepers",
170
- brandSlug: "brand-independent-keepers",
171
- price: 3200,
172
- currency: "INR",
173
- stockQuantity: 1,
174
- availableQuantity: 1,
175
- isSold: false,
176
- mainImage: seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900),
177
- images: seedGallery(seedPhoto("live-image-bonsai-juniper-1-20260818", 900, 900), seedPhoto("live-image-bonsai-juniper-2-20260818", 900, 900)),
178
- // Required for a live listing — see the note on the retriever above.
179
- video: {
180
- url: "/demo-media/sample-video.mp4",
181
- thumbnailUrl: seedPhoto("live-video-thumb-bonsai-juniper-20261004", 800, 450),
182
- duration: 15,
183
- },
184
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
185
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
186
- listingType: "live",
187
- storeId: "store-beyblade-arena",
188
- storeName: "Beyblade Arena",
189
- liveItem: {
190
- species: "Juniper (Juniperus procumbens)",
191
- sex: "n/a",
192
- careInfo: "Keep outdoors in indirect sunlight, water when topsoil is dry to the touch. Prune new growth every spring.",
193
- transport: { method: "courier", handlingFee: 300, insuranceIncluded: false },
194
- jurisdictionAllowed: ["IN-MH", "IN-KA", "IN-DL", "IN-TN", "IN-TG"],
195
- vendorVerified: true,
196
- },
197
- customFields: [{ key: "Training Age", type: "text", value: "10 years" }],
198
- customSections: [],
199
- featured: false,
200
- isPromoted: false,
201
- isOnSale: false,
202
- tags: ["live-item"],
203
- createdAt: new Date("2026-08-18"),
204
- updatedAt: new Date("2026-08-18"),
205
- searchTxt: buildSearchTxt([
206
- "Juniper Bonsai — 10 Years Trained",
207
- "A 10-year trained juniper bonsai in a glazed ceramic pot.",
208
- "Beyblade Arena",
209
- undefined,
210
- [],
211
- ["live-item"],
212
- ]),
213
- },
214
- {
215
- // Sold live item. Keeps species / sex / jurisdiction populated so those
216
- // per-type facets still have a row inside the Sold scope.
217
- id: "live-bonsai-juniper-5yr-sold",
218
- slug: "live-bonsai-juniper-5yr-sold",
219
- title: "Juniper Bonsai, 5 Years — Sold",
220
- description: "A five-year-old shimpaku juniper bonsai, already rehomed. Listing kept up for reference.",
221
- categorySlugs: ["category-bonsai-juniper", "category-plants-bonsai", "category-live-plants", "category-living-collectibles"],
222
- categoryNames: ["Juniper Bonsai", "Bonsai", "Live Plants", "Living Collectibles"],
223
- brandSlug: "brand-independent-keepers",
224
- brand: "Independent Keepers",
225
- price: 4500,
226
- currency: "INR",
227
- stockQuantity: 0,
228
- availableQuantity: 0,
229
- isSold: true,
230
- mainImage: seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900),
231
- images: seedGallery(seedPhoto("live-image-juniper-bonsai-sold-1-20260824", 900, 900)),
232
- // Required for a live listing — see the note on the retriever above. A SOLD
233
- // fixture needs it just as much: it is the row the "Sold & Ended" scope
234
- // renders, and a sold listing that could never have been created is no
235
- // more representative than an available one.
236
- video: {
237
- url: "/demo-media/sample-video.mp4",
238
- thumbnailUrl: seedPhoto("live-video-thumb-juniper-bonsai-sold-20261004", 800, 450),
239
- duration: 15,
240
- },
241
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
242
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
243
- listingType: "live",
244
- storeId: "store-beyblade-arena",
245
- storeName: "Beyblade Arena",
246
- liveItem: {
247
- species: "Juniperus chinensis Shimpaku",
248
- ageMonths: 60,
249
- careInfo: "Full sun, water when the topsoil dries, wire-trained.",
250
- transport: { method: "in-person", insuranceIncluded: false },
251
- jurisdictionAllowed: ["MH", "KA", "DL"],
252
- vendorVerified: true,
253
- },
254
- customFields: [],
255
- customSections: [],
256
- featured: false,
257
- isPromoted: false,
258
- isOnSale: false,
259
- tags: ["bonsai", "sold"],
260
- createdAt: new Date("2026-08-24"),
261
- updatedAt: new Date("2026-08-24"),
262
- },
263
- ];
264
- /**
265
- * Every record gains `searchTxt` here rather than inline, so a fixture added at
266
- * the bottom of the array cannot ship without it — which is exactly how the
267
- * sold/depleted fixture in this file ended up unsearchable.
268
- */
269
- export const productsLiveItemsSeedData = _rawproductsLiveItemsSeedData.map(withProductSearchTxt).map(withFinalSale).map(withDerivedCategoryNames);