@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,632 +0,0 @@
1
- /*
2
- * WHY: Seeds a minimal, Beyblade-focused catalog of standard product listings — 2 products per
3
- * generation (Original, Metal Fight, Burst), all from the Beyblade Arena store, plus
4
- * 4 video-demo products so the product gallery's video slide (theater-mode playback,
5
- * zoom/rotate, fullscreen) has real, playable fixtures covering every supported video
6
- * source: a raw file from Google's public sample-video bucket (x2, one per Original/X),
7
- * a YouTube-embed URL (Metal Fight — exercises getYouTubeVideoId()'s iframe-embed path,
8
- * 2026-08-21), and a second raw-external-host file from Wikimedia Commons (Burst,
9
- * 2026-08-21). A real MediaUploadField file-upload video can't be reproduced from seed
10
- * data (no Storage object actually exists for a seeded URL to point at) — that path is
11
- * covered by a tester-checklist manual test case instead, not a fixture here.
12
- *
13
- * 🛑 The Beyblade X pair (2 of the original "2 per generation") was REMOVED 2026-10-19 —
14
- * both were fictional (one named itself "Wizard Arrow 4-60F" while filed under the real
15
- * `category-wizardarrow-4-80b`, a different model; the other, "CrimsonGaruda 4-70TP",
16
- * matches nothing in the research corpus). Real, wiki-verified Beyblade X products —
17
- * including a real WizardArrow 4-80B — now live in `products-beyblade-x-seed-data.ts`.
18
- *
19
- * WHAT: Exports 13 standard products with listingType:"standard", covering the Original,
20
- * Metal Fight and Burst generation leaf categories (tagged with both leaf + root
21
- * category slugs). Beyblade X real content is a separate file — see above.
22
- *
23
- * EXPORTS:
24
- * productsStandardSeedData — Array of 13 standard products with listingType:"standard"
25
- *
26
- * @tag domain:products,catalog
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 { PRODUCT_FIELDS } from "../constants/field-names.js";
34
- import { buildSearchTxt } from "../utils/search-txt.js";
35
- import { seedPhoto, seedGallery } from "./_helpers/media.js";
36
- import { withFinalSale } from "./_helpers/final-sale-fixtures.js";
37
- import { withDerivedCategoryNames } from "./_helpers/category-names.js";
38
- /*
39
- * Real Beyblade attributes per fixture — Root Cause #6 (standard was the
40
- * "richest" seed file by fixture count but never exercised customFields/
41
- * customSections/specifications, the actual product-spec render pipeline).
42
- * Keyed by product id, merged into each fixture below.
43
- */
44
- const SPEC_OVERRIDES = {
45
- "product-beyblade-original-dranzer-s": {
46
- specifications: [
47
- { name: "Spin Direction", value: "Right (Right-Spin)" },
48
- { name: "Type", value: "Attack" },
49
- { name: "Weight", value: "31.8", unit: "g" },
50
- { name: "Stamina Rating", value: "5", unit: "/10" },
51
- { name: "Attack Rating", value: "8", unit: "/10" },
52
- ],
53
- customFields: [
54
- { key: "Launcher Included", type: "boolean", value: "true" },
55
- { key: "Ripcord Length", type: "text", value: "Standard (short-pull)" },
56
- ],
57
- },
58
- "product-beyblade-original-driger-v": {
59
- specifications: [
60
- { name: "Spin Direction", value: "Left (Left-Spin)" },
61
- { name: "Type", value: "Attack" },
62
- { name: "Weight", value: "33.1", unit: "g" },
63
- { name: "Stamina Rating", value: "6", unit: "/10" },
64
- { name: "Attack Rating", value: "7", unit: "/10" },
65
- ],
66
- customFields: [{ key: "Launcher Included", type: "boolean", value: "false" }],
67
- customSections: [
68
- {
69
- id: "battle-tips",
70
- title: "Battle Tips",
71
- text: "Driger V's left-spin makes it a strong counter-pick against right-spin attack types — pair with a wide-angle stadium for maximum recoil advantage.",
72
- },
73
- ],
74
- },
75
- "product-beyblade-metal-storm-pegasus": {
76
- specifications: [
77
- { name: "Spin Direction", value: "Right (Right-Spin)" },
78
- { name: "Type", value: "Attack" },
79
- { name: "Weight", value: "50.2", unit: "g" },
80
- { name: "Stamina Rating", value: "4", unit: "/10" },
81
- { name: "Attack Rating", value: "9", unit: "/10" },
82
- { name: "Track & Bottom", value: "105 / RF (Rubber Flat)" },
83
- ],
84
- customFields: [{ key: "Launcher Included", type: "boolean", value: "true" }],
85
- },
86
- "product-beyblade-metal-flame-sagittario": {
87
- specifications: [
88
- { name: "Spin Direction", value: "Right (Right-Spin)" },
89
- { name: "Type", value: "Balance" },
90
- { name: "Weight", value: "56.8", unit: "g" },
91
- { name: "Stamina Rating", value: "7", unit: "/10" },
92
- { name: "Defense Rating", value: "6", unit: "/10" },
93
- { name: "Track & Bottom", value: "C145 / S (Spike)" },
94
- ],
95
- customFields: [{ key: "Tournament Legal", type: "boolean", value: "true" }],
96
- },
97
- "product-beyblade-burst-valkyrie": {
98
- specifications: [
99
- { name: "Spin Direction", value: "Right (Right-Spin)" },
100
- { name: "Type", value: "Attack" },
101
- { name: "Weight", value: "28.6", unit: "g" },
102
- { name: "Stamina Rating", value: "5", unit: "/10" },
103
- { name: "Attack Rating", value: "9", unit: "/10" },
104
- { name: "Layer / Disc / Driver", value: "Valkyrie / Wing / Accel" },
105
- ],
106
- customFields: [
107
- { key: "Launcher Included", type: "boolean", value: "true" },
108
- { key: "Burst Resistance", type: "text", value: "Medium — tighten disc lock before battle" },
109
- ],
110
- customSections: [
111
- {
112
- id: "battle-tips",
113
- title: "Battle Tips",
114
- text: "Accel driver gives Valkyrie an aggressive early-game charge — best used in Attack vs. Stamina matchups where a fast KO matters more than late-game endurance.",
115
- },
116
- ],
117
- },
118
- "product-beyblade-burst-regalia-genesis": {
119
- specifications: [
120
- { name: "Spin Direction", value: "Right (Right-Spin)" },
121
- { name: "Type", value: "Attack" },
122
- { name: "Weight", value: "32.4", unit: "g" },
123
- { name: "Stamina Rating", value: "4", unit: "/10" },
124
- { name: "Attack Rating", value: "8", unit: "/10" },
125
- { name: "Layer / Disc / Driver", value: "Regalia Genesis / .Zt" },
126
- ],
127
- customFields: [{ key: "Switch Launcher Compatible", type: "boolean", value: "true" }],
128
- },
129
- "product-beyblade-x-wizard-arrow": {
130
- specifications: [
131
- { name: "Spin Direction", value: "Right (Right-Spin)" },
132
- { name: "Type", value: "Balance" },
133
- { name: "Weight", value: "34.9", unit: "g" },
134
- { name: "Stamina Rating", value: "6", unit: "/10" },
135
- { name: "Attack Rating", value: "6", unit: "/10" },
136
- { name: "Blade / Ratchet / Bit", value: "Wizard / 4-60 / Flat" },
137
- ],
138
- customFields: [{ key: "Launcher Included", type: "boolean", value: "true" }],
139
- },
140
- "product-beyblade-x-knife-shinobi": {
141
- specifications: [
142
- { name: "Spin Direction", value: "Right (Right-Spin)" },
143
- { name: "Type", value: "Balance" },
144
- { name: "Weight", value: "36.1", unit: "g" },
145
- { name: "Stamina Rating", value: "8", unit: "/10" },
146
- { name: "Defense Rating", value: "6", unit: "/10" },
147
- { name: "Blade / Ratchet / Bit", value: "Knife Shinobi / 3-60 / Glide Flat" },
148
- ],
149
- customFields: [{ key: "Tournament Legal", type: "boolean", value: "true" }],
150
- customSections: [
151
- {
152
- id: "battle-tips",
153
- title: "Battle Tips",
154
- text: "Glide Flat bit gives Knife Shinobi excellent late-game stamina in X-format stadiums with a ring — hold back and let opponents burn attack power first.",
155
- },
156
- ],
157
- },
158
- "product-beyblade-original-dragoon-f-video-demo": {
159
- specifications: [
160
- { name: "Spin Direction", value: "Right (Right-Spin)" },
161
- { name: "Type", value: "Attack" },
162
- { name: "Weight", value: "30.5", unit: "g" },
163
- { name: "Attack Rating", value: "8", unit: "/10" },
164
- ],
165
- customFields: [{ key: "Launcher Included", type: "boolean", value: "true" }],
166
- },
167
- "product-beyblade-x-dran-sword-video-demo": {
168
- specifications: [
169
- { name: "Spin Direction", value: "Right (Right-Spin)" },
170
- { name: "Type", value: "Attack" },
171
- { name: "Weight", value: "35.7", unit: "g" },
172
- { name: "Attack Rating", value: "9", unit: "/10" },
173
- { name: "Blade / Ratchet / Bit", value: "Dran Sword / 3-60 / Flat" },
174
- ],
175
- customFields: [{ key: "Tournament Legal", type: "boolean", value: "true" }],
176
- },
177
- };
178
- function withTokens(p) {
179
- return {
180
- tags: [],
181
- featured: false,
182
- ...p,
183
- searchTxt: buildSearchTxt([
184
- p.title, p.description, p.brand, p.brandSlug,
185
- p.categoryNames, p.tags, p.features, p.condition,
186
- p.specifications?.map((s) => `${s.name} ${s.value}`),
187
- ]),
188
- };
189
- }
190
- const _rawProductsStandardSeedData = [
191
- // ===== Beyblade Original =====
192
- {
193
- id: "product-beyblade-original-dranzer-s",
194
- slug: "product-beyblade-original-dranzer-s",
195
- barcodeId: "LIR-BEY-ORIG-001",
196
- title: "Beyblade Original — Dranzer S",
197
- description: "Plastic Generation era Dranzer S with launcher and ripcord. A classic from the original 1999-2003 Beyblade series.",
198
- categorySlugs: ["category-dranzer-s", "category-original-spin-gear", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
199
- categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
200
- brandSlug: "brand-beyblade",
201
- brand: "Beyblade",
202
- price: 1499,
203
- allowOffers: true,
204
- minOfferPercent: 70,
205
- currency: "INR",
206
- stockQuantity: 4,
207
- availableQuantity: 4,
208
- isSold: false,
209
- mainImage: seedPhoto("product-image-beyblade-original-dranzer-s-1-20260101", 900, 900),
210
- images: seedGallery(seedPhoto("product-image-beyblade-original-dranzer-s-1-20260101", 900, 900), seedPhoto("product-image-beyblade-original-dranzer-s-2-20260101", 900, 900), seedPhoto("product-image-beyblade-original-dranzer-s-3-20260101", 900, 900)),
211
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
212
- condition: PRODUCT_FIELDS.CONDITION_VALUES.LIKE_NEW,
213
- featured: true,
214
- tags: ["attack-type"],
215
- storeId: "store-beyblade-arena",
216
- storeName: "Beyblade Arena",
217
- createdAt: new Date("2026-04-10"),
218
- updatedAt: new Date("2026-05-01"),
219
- },
220
- /*
221
- * 🛑 CROSS-STORE PAIR — these two exist ONLY so the cross-store bundle
222
- * refusal can be exercised. They are deliberately in DIFFERENT stores,
223
- * which is the shape all four bundle write routes must reject via
224
- * findBundleMemberStores().
225
- *
226
- * Added 2026-10-03: CLAUDE.md asserted these were seeded and they were not —
227
- * a full reseed produced 70 products with zero tester fixtures, so the guard
228
- * had nothing that could trigger it and the case was unrunnable. A guard with
229
- * no data that triggers it is a guard nobody can verify.
230
- *
231
- * isTestData marks them for the sandbox cleanup sweep; keep the expiry far
232
- * enough out that a run cannot outlive them.
233
- */
234
- {
235
- id: "product-beyblade-original-driger-v",
236
- slug: "product-beyblade-original-driger-v",
237
- barcodeId: "LIR-BEY-ORIG-002",
238
- title: "Beyblade Original — Driger V",
239
- description: "Vintage Driger V attack-type top from the original series, complete with launcher grip.",
240
- categorySlugs: ["category-driger-v", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
241
- categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
242
- brandSlug: "brand-beyblade",
243
- brand: "Beyblade",
244
- price: 1799,
245
- allowOffers: true,
246
- minOfferPercent: 70,
247
- currency: "INR",
248
- stockQuantity: 2,
249
- availableQuantity: 2,
250
- isSold: false,
251
- mainImage: seedPhoto("product-image-beyblade-original-driger-v-1-20260101", 900, 900),
252
- images: seedGallery(seedPhoto("product-image-beyblade-original-driger-v-1-20260101", 900, 900), seedPhoto("product-image-beyblade-original-driger-v-2-20260101", 900, 900), seedPhoto("product-image-beyblade-original-driger-v-3-20260101", 900, 900)),
253
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
254
- condition: PRODUCT_FIELDS.CONDITION_VALUES.GOOD,
255
- tags: ["vintage-collectible"],
256
- storeId: "store-beyblade-arena",
257
- storeName: "Beyblade Arena",
258
- createdAt: new Date("2026-04-12"),
259
- updatedAt: new Date("2026-05-01"),
260
- },
261
- // ===== Beyblade Metal Fight =====
262
- {
263
- id: "product-beyblade-metal-storm-pegasus",
264
- slug: "product-beyblade-metal-storm-pegasus",
265
- barcodeId: "LIR-BEY-META-001",
266
- title: "Metal Fight Beyblade BB-28 Storm Pegasus",
267
- description: "Storm Pegasus 105RF from the Metal Fusion era — one of the most iconic Metal Fight tops.",
268
- categorySlugs: ["category-storm-pegasus-105rf", "category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
269
- categoryNames: ["Metal Masters", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
270
- brandSlug: "brand-takara-tomy",
271
- brand: "Takara-Tomy",
272
- price: 1299,
273
- allowOffers: true,
274
- minOfferPercent: 70,
275
- currency: "INR",
276
- stockQuantity: 6,
277
- availableQuantity: 6,
278
- isSold: false,
279
- mainImage: seedPhoto("product-image-beyblade-metal-storm-pegasus-1-20260101", 900, 900),
280
- images: seedGallery(seedPhoto("product-image-beyblade-metal-storm-pegasus-1-20260101", 900, 900), seedPhoto("product-image-beyblade-metal-storm-pegasus-2-20260101", 900, 900), seedPhoto("product-image-beyblade-metal-storm-pegasus-3-20260101", 900, 900)),
281
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
282
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
283
- featured: true,
284
- tags: ["attack-type"],
285
- storeId: "store-beyblade-arena",
286
- storeName: "Beyblade Arena",
287
- createdAt: new Date("2026-04-14"),
288
- updatedAt: new Date("2026-05-02"),
289
- },
290
- {
291
- id: "product-beyblade-metal-flame-sagittario",
292
- slug: "product-beyblade-metal-flame-sagittario",
293
- barcodeId: "LIR-BEY-META-002",
294
- title: "Metal Fight Beyblade BB-43 Flame Sagittario",
295
- description: "Flame Sagittario C145S, a balance-type top from the Metal Masters generation.",
296
- categorySlugs: ["category-flame-sagittario-c145s", "category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
297
- categoryNames: ["Metal Fury (4D)", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
298
- brandSlug: "brand-takara-tomy",
299
- brand: "Takara-Tomy",
300
- price: 1199,
301
- allowOffers: true,
302
- minOfferPercent: 70,
303
- currency: "INR",
304
- stockQuantity: 3,
305
- availableQuantity: 3,
306
- isSold: false,
307
- mainImage: seedPhoto("product-image-beyblade-metal-flame-sagittario-1-20260101", 900, 900),
308
- images: seedGallery(seedPhoto("product-image-beyblade-metal-flame-sagittario-1-20260101", 900, 900), seedPhoto("product-image-beyblade-metal-flame-sagittario-2-20260101", 900, 900), seedPhoto("product-image-beyblade-metal-flame-sagittario-3-20260101", 900, 900)),
309
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
310
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
311
- tags: ["balance-type", "tournament-grade"],
312
- storeId: "store-beyblade-arena",
313
- storeName: "Beyblade Arena",
314
- createdAt: new Date("2026-04-16"),
315
- updatedAt: new Date("2026-05-02"),
316
- },
317
- // ===== Beyblade Burst =====
318
- {
319
- id: "product-beyblade-burst-valkyrie",
320
- slug: "product-beyblade-burst-valkyrie",
321
- barcodeId: "LIR-BEY-BURS-001",
322
- title: "Beyblade Burst B-34 Victory Valkyrie Boost Variable",
323
- description: "Starter set Victory Valkyrie Boost Variable with launcher and grip — an early Burst-generation Valkyrie.",
324
- categorySlugs: ["category-victory-valkyrie-boost-variable", "category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
325
- categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
326
- brandSlug: "brand-beyblade",
327
- brand: "Beyblade",
328
- price: 999,
329
- allowOffers: true,
330
- minOfferPercent: 70,
331
- currency: "INR",
332
- stockQuantity: 10,
333
- availableQuantity: 10,
334
- isSold: false,
335
- mainImage: seedPhoto("product-image-beyblade-burst-valkyrie-1-20260101", 900, 900),
336
- images: seedGallery(seedPhoto("product-image-beyblade-burst-valkyrie-1-20260101", 900, 900), seedPhoto("product-image-beyblade-burst-valkyrie-2-20260101", 900, 900), seedPhoto("product-image-beyblade-burst-valkyrie-3-20260101", 900, 900)),
337
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
338
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
339
- featured: true,
340
- tags: ["attack-type", "starter-set"],
341
- storeId: "store-beyblade-arena",
342
- storeName: "Beyblade Arena",
343
- createdAt: new Date("2026-04-18"),
344
- updatedAt: new Date("2026-05-03"),
345
- },
346
- {
347
- id: "product-beyblade-burst-regalia-genesis",
348
- slug: "product-beyblade-burst-regalia-genesis",
349
- barcodeId: "LIR-BEY-BURS-002",
350
- title: "Beyblade Burst Xeno Xcalibur Magnet Loop",
351
- description: "Xeno Xcalibur Magnet Loop with switch launcher — a Burst Classic attack-type top.",
352
- categorySlugs: ["category-xeno-xcalibur-magnet-loop", "category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
353
- categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
354
- brandSlug: "brand-beyblade",
355
- brand: "Beyblade",
356
- price: 1399,
357
- allowOffers: true,
358
- minOfferPercent: 70,
359
- currency: "INR",
360
- stockQuantity: 5,
361
- availableQuantity: 5,
362
- isSold: false,
363
- mainImage: seedPhoto("product-image-beyblade-burst-regalia-genesis-1-20260101", 900, 900),
364
- images: seedGallery(seedPhoto("product-image-beyblade-burst-regalia-genesis-1-20260101", 900, 900), seedPhoto("product-image-beyblade-burst-regalia-genesis-2-20260101", 900, 900), seedPhoto("product-image-beyblade-burst-regalia-genesis-3-20260101", 900, 900)),
365
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
366
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
367
- tags: ["attack-type"],
368
- storeId: "store-beyblade-arena",
369
- storeName: "Beyblade Arena",
370
- createdAt: new Date("2026-04-20"),
371
- updatedAt: new Date("2026-05-03"),
372
- },
373
- /*
374
- * ===== Beyblade X ===== — REMOVED 2026-10-19.
375
- *
376
- * Two fictional fixtures lived here: "Beyblade X BX-01 Wizard Arrow"
377
- * (described as "Wizard Arrow 4-60F" while its own categorySlugs pointed at
378
- * `category-wizardarrow-4-80b` — a different real model, 4-80B not 4-60F)
379
- * and "Beyblade X CrimsonGaruda 4-70TP" (no such model exists in the
380
- * research corpus at all). Both predate the real Beyblade X product seed
381
- * (`products-beyblade-x-seed-data.ts`), which now occupies
382
- * `category-wizardarrow-4-80b` with the real WizardArrow 4-80B Ver.2.0 —
383
- * leaving the old entry in place would have put two differently-named
384
- * "WizardArrow" products in the same category, one of them fictional.
385
- */
386
- // ===== Video-demo fixtures — real playable video field for gallery testing =====
387
- {
388
- id: "product-beyblade-original-dragoon-f-video-demo",
389
- slug: "product-beyblade-original-dragoon-f-video-demo",
390
- barcodeId: "LIR-BEY-VID-001",
391
- title: "Beyblade Original — Dragoon F (Video Demo)",
392
- description: "Dragoon F attack-type top from the original series. Listed with an unboxing/spin video for gallery testing.",
393
- categorySlugs: ["category-dragoon-f", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
394
- categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
395
- brandSlug: "brand-beyblade",
396
- brand: "Beyblade",
397
- price: 1599,
398
- currency: "INR",
399
- stockQuantity: 5,
400
- availableQuantity: 5,
401
- isSold: false,
402
- mainImage: seedPhoto("product-image-beyblade-original-dragoon-f-video-demo-1-20260819", 900, 900),
403
- images: seedGallery(seedPhoto("product-image-beyblade-original-dragoon-f-video-demo-1-20260819", 900, 900), seedPhoto("product-image-beyblade-original-dragoon-f-video-demo-2-20260819", 900, 900)),
404
- video: {
405
- url: "/demo-media/sample-video.mp4",
406
- thumbnailUrl: seedPhoto("product-video-thumb-beyblade-original-dragoon-f-video-demo-20260819", 800, 450),
407
- duration: 15,
408
- },
409
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
410
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
411
- tags: ["vintage-collectible"],
412
- storeId: "store-beyblade-arena",
413
- storeName: "Beyblade Arena",
414
- createdAt: new Date("2026-08-19"),
415
- updatedAt: new Date("2026-08-19"),
416
- },
417
- {
418
- id: "product-beyblade-x-dran-sword-video-demo",
419
- slug: "product-beyblade-x-dran-sword-video-demo",
420
- barcodeId: "LIR-BEY-VID-002",
421
- title: "Beyblade X BX-02 Dran Sword (Video Demo)",
422
- description: "Dran Sword 3-60F attack-type top from the Beyblade X Xtreme Gear generation. Listed with a battle-test video for gallery testing.",
423
- categorySlugs: ["category-dransword-3-60f", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
424
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
425
- brandSlug: "brand-takara-tomy",
426
- brand: "Takara-Tomy",
427
- price: 949,
428
- currency: "INR",
429
- stockQuantity: 8,
430
- availableQuantity: 8,
431
- isSold: false,
432
- mainImage: seedPhoto("product-image-beyblade-x-dran-sword-video-demo-1-20260819", 900, 900),
433
- images: seedGallery(seedPhoto("product-image-beyblade-x-dran-sword-video-demo-1-20260819", 900, 900), seedPhoto("product-image-beyblade-x-dran-sword-video-demo-2-20260819", 900, 900)),
434
- video: {
435
- url: "/demo-media/sample-video.mp4",
436
- thumbnailUrl: seedPhoto("product-video-thumb-beyblade-x-dran-sword-video-demo-20260819", 800, 450),
437
- duration: 20,
438
- },
439
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
440
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
441
- tags: ["attack-type", "tournament-grade"],
442
- storeId: "store-beyblade-arena",
443
- storeName: "Beyblade Arena",
444
- createdAt: new Date("2026-08-19"),
445
- updatedAt: new Date("2026-08-19"),
446
- },
447
- {
448
- // Added 2026-08-21 — the first two video-demo fixtures only covered a raw,
449
- // directly-playable <video src> from one external host (Google's public
450
- // sample-video bucket). MediaUploadField's "YouTube" tab is a real,
451
- // separately-supported video source (see getYouTubeVideoId() /
452
- // Recurrent Root Cause Pattern for the YouTube-embed fix), but until now
453
- // NO permanent seed fixture exercised it — the only reproduction was an
454
- // ephemeral manual edit on a tester-sandbox product that a reseed would
455
- // silently wipe out.
456
- id: "product-beyblade-metal-dark-bull-video-demo",
457
- slug: "product-beyblade-metal-dark-bull-video-demo",
458
- barcodeId: "LIR-BEY-VID-003",
459
- title: "Metal Fight Beyblade BB-118 Dark Bull (Video Demo, YouTube)",
460
- description: "Dark Bull H145SD, a defense-type top from the Metal Masters generation. Listed with a YouTube battle video to exercise the gallery's YouTube-embed video source.",
461
- categorySlugs: ["category-dark-bull-h145sd", "category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
462
- categoryNames: ["Metal Fusion", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
463
- brandSlug: "brand-takara-tomy",
464
- brand: "Takara-Tomy",
465
- price: 1099,
466
- currency: "INR",
467
- stockQuantity: 4,
468
- availableQuantity: 4,
469
- isSold: false,
470
- mainImage: seedPhoto("product-image-beyblade-metal-dark-bull-video-demo-1-20260821", 900, 900),
471
- images: seedGallery(seedPhoto("product-image-beyblade-metal-dark-bull-video-demo-1-20260821", 900, 900), seedPhoto("product-image-beyblade-metal-dark-bull-video-demo-2-20260821", 900, 900)),
472
- video: {
473
- // audit-seed-external-url-ok: MediaUploadField's YouTube tab always stores a
474
- // youtube.com/watch?v= URL — this is exactly that shape, not a raw file.
475
- // getYouTubeVideoId() detects it and MediaVideo/ImageLightbox render a
476
- // youtube-nocookie.com iframe embed instead of a native <video> element.
477
- url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
478
- thumbnailUrl: seedPhoto("product-video-thumb-beyblade-metal-dark-bull-video-demo-20260821", 800, 450),
479
- duration: 212,
480
- },
481
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
482
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
483
- tags: ["defense-type"],
484
- storeId: "store-beyblade-arena",
485
- storeName: "Beyblade Arena",
486
- createdAt: new Date("2026-08-21"),
487
- updatedAt: new Date("2026-08-21"),
488
- },
489
- {
490
- // Added 2026-08-21 — third distinct video source (Wikimedia Commons,
491
- // CC-BY-SA) alongside the Google-sample-bucket and YouTube fixtures above,
492
- // matching the raw-external-URL source already used on the live-tester-
493
- // sandbox live-item fixture (products-tester-seed-data.ts) so a standard
494
- // product exercises the same non-YouTube external-host path too.
495
- id: "product-beyblade-burst-spryzen-video-demo",
496
- slug: "product-beyblade-burst-spryzen-video-demo",
497
- barcodeId: "LIR-BEY-VID-004",
498
- title: "Beyblade Burst B-97 Spryzen S2 (Video Demo, Wikimedia)",
499
- description: "Spryzen S2 stamina-type top from the God Layer generation. Listed with a Wikimedia-hosted spin video to exercise a second raw-external-host video source.",
500
- categorySlugs: ["category-spryzen-s2-0q", "category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
501
- categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
502
- brandSlug: "brand-beyblade",
503
- brand: "Beyblade",
504
- price: 899,
505
- currency: "INR",
506
- stockQuantity: 7,
507
- availableQuantity: 7,
508
- isSold: false,
509
- mainImage: seedPhoto("product-image-beyblade-burst-spryzen-video-demo-1-20260821", 900, 900),
510
- images: seedGallery(seedPhoto("product-image-beyblade-burst-spryzen-video-demo-1-20260821", 900, 900), seedPhoto("product-image-beyblade-burst-spryzen-video-demo-2-20260821", 900, 900)),
511
- video: {
512
- url: "https://upload.wikimedia.org/wikipedia/commons/4/42/Slow_motion_of_running_greyhound.webm", // audit-seed-external-url-ok: raw <video> src, CC-BY-SA 4.0 (Wikimedia Commons)
513
- thumbnailUrl: seedPhoto("product-video-thumb-beyblade-burst-spryzen-video-demo-20260821", 800, 450),
514
- duration: 14,
515
- },
516
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
517
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
518
- tags: ["stamina-type"],
519
- storeId: "store-beyblade-arena",
520
- storeName: "Beyblade Arena",
521
- createdAt: new Date("2026-08-21"),
522
- updatedAt: new Date("2026-08-21"),
523
- },
524
- {
525
- // Two sold-out standard fixtures, so a 24-row page of /products has more
526
- // than one row in the "Sold & Ended" scope. Both stay `published` — an
527
- // archived row is hidden by the status filter before the availability
528
- // predicate ever runs, so it would prove nothing.
529
- id: "product-beyblade-x-dran-buster-sold-out",
530
- slug: "product-beyblade-x-dran-buster-sold-out",
531
- title: "Beyblade X DranDagger 4-60R (Sold Out)",
532
- description: "The DranDagger 4-60R attack type — this batch is fully sold. Watch for the next restock.",
533
- price: 1499,
534
- currency: "INR",
535
- categorySlugs: ["category-drandagger-4-60r", "category-x-basic", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
536
- categoryNames: ["Basic Line", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
537
- brandSlug: "brand-takara-tomy",
538
- brand: "Takara-Tomy",
539
- stockQuantity: 0,
540
- availableQuantity: 0,
541
- isSold: true,
542
- mainImage: seedPhoto("product-image-dran-buster-sold-out-1-20260824", 900, 900),
543
- images: seedGallery(seedPhoto("product-image-dran-buster-sold-out-1-20260824", 900, 900), seedPhoto("product-image-dran-buster-sold-out-2-20260824", 900, 900)),
544
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
545
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
546
- tags: ["attack-type", "sold-out"],
547
- storeId: "store-beyblade-arena",
548
- storeName: "Beyblade Arena",
549
- createdAt: new Date("2026-08-24"),
550
- updatedAt: new Date("2026-08-24"),
551
- },
552
- {
553
- id: "product-beyblade-burst-valtryek-v3-sold-out",
554
- slug: "product-beyblade-burst-valtryek-v3-sold-out",
555
- title: "Beyblade Burst God Valkyrie 6Vortex Reboot (Sold Out)",
556
- description: "God Valkyrie 6Vortex Reboot, the balance-type staple. This run sold through — no units remaining.",
557
- price: 899,
558
- currency: "INR",
559
- categorySlugs: ["category-god-valkyrie-6vortex-reboot", "category-burst-god", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
560
- categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
561
- brandSlug: "brand-beyblade",
562
- brand: "Beyblade",
563
- stockQuantity: 0,
564
- availableQuantity: 0,
565
- isSold: true,
566
- mainImage: seedPhoto("product-image-valtryek-v3-sold-out-1-20260824", 900, 900),
567
- images: seedGallery(seedPhoto("product-image-valtryek-v3-sold-out-1-20260824", 900, 900)),
568
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
569
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
570
- tags: ["balance-type", "sold-out"],
571
- storeId: "store-beyblade-arena",
572
- storeName: "Beyblade Arena",
573
- createdAt: new Date("2026-08-24"),
574
- updatedAt: new Date("2026-08-24"),
575
- },
576
- /*
577
- * B6 — THE ONLY 18% GST ROW IN THE CATALOGUE.
578
- *
579
- * 🛑 `tax-hsn-95030010` (electronic toys, 18%) has existed as a `taxCodes`
580
- * row since B3 with nothing referencing it, so the 18% arm of
581
- * `calculateGst`, `gstByRate` (C0c defect 4), the per-rate invoice table and
582
- * the blended-rate payout all had NO DATA that could exercise them. Four
583
- * code paths that cannot be wrong because nothing reaches them.
584
- *
585
- * A BeyPointer is a battery-powered scoring device, which is what 9503 0010
586
- * covers — so this is a genuinely electronic good rather than a flag planted
587
- * on a convenient row.
588
- *
589
- * 🛑 No `gstRate`/`hsnCode` HERE, deliberately. They derive from
590
- * `category-accessory-counters` through `deriveTaxonomy`, which is the path
591
- * that will carry them in production. Hand-writing 18 would satisfy step 1 of
592
- * the resolution order and leave the DERIVATION untested — a fixture that
593
- * passes while the mechanism it exists to prove is never run, which is the
594
- * shape of Root Cause #101.
595
- *
596
- * It is also what makes a MIXED-RATE cart possible for the first time: this
597
- * row at 18% beside any bey at 5% is the one case C0c's §13 check 6b asks for
598
- * and the catalogue could not previously express.
599
- */
600
- {
601
- id: "product-beypointer-digital-battle-counter",
602
- slug: "product-beypointer-digital-battle-counter",
603
- barcodeId: "LIR-BEY-ACC-018",
604
- title: "BeyPointer Digital Battle Counter",
605
- description: "Battery-powered digital battle counter used for tournament scoring — tracks points across a best-of series, with a reset and a hold. Takes two AAA cells (not included). An electronic accessory, so it is taxed at the 18% electronic-toy rate rather than the 5% that applies to tops and parts.",
606
- categorySlugs: ["category-accessory-counters", "category-accessories", "category-spinning-tops"],
607
- categoryNames: ["Counters & BeyPointers", "Accessories", "Spinning Tops"],
608
- brandSlug: "brand-takara-tomy",
609
- brand: "Takara-Tomy",
610
- price: 1299,
611
- currency: "INR",
612
- stockQuantity: 6,
613
- availableQuantity: 6,
614
- isSold: false,
615
- mainImage: seedPhoto("product-image-beypointer-digital-battle-counter-1-20261012", 900, 900),
616
- images: seedGallery(seedPhoto("product-image-beypointer-digital-battle-counter-1-20261012", 900, 900), seedPhoto("product-image-beypointer-digital-battle-counter-2-20261012", 900, 900)),
617
- status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
618
- condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
619
- tags: ["accessory"],
620
- storeId: "store-beyblade-arena",
621
- storeName: "Beyblade Arena",
622
- createdAt: new Date("2026-10-12"),
623
- updatedAt: new Date("2026-10-12"),
624
- },
625
- ];
626
- export const productsStandardSeedData = [
627
- ..._rawProductsStandardSeedData.map((p) => withTokens({
628
- ...p,
629
- ...(p.id ? SPEC_OVERRIDES[p.id] : undefined),
630
- listingType: PRODUCT_FIELDS.LISTING_TYPE_VALUES.STANDARD,
631
- })),
632
- ].map(withFinalSale).map(withDerivedCategoryNames);
@@ -1,2 +0,0 @@
1
- import { ProductDocument } from "../features/products/schemas/firestore";
2
- export declare const productsStickersSeedData: Partial<ProductDocument>[];