@mohasinac/appkit 4.58.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.
- package/dist/.build-stamp.json +3 -3
- package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
- package/dist/_internal/server/jobs/handlers/messages.js +1 -1
- package/dist/_internal/shared/types/base-document.d.ts +1 -1
- package/dist/constants/seed-meta.d.ts +113 -0
- package/dist/constants/seed-meta.js +91 -0
- package/dist/index.d.ts +0 -131
- package/dist/index.js +50 -294
- package/dist/server.d.ts +0 -69
- package/dist/server.js +0 -69
- package/package.json +4 -2
- package/scripts/seed-cli.mjs +69 -1
- package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
- package/dist/features/tester/seed-data/_happy-path.js +0 -710
- package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
- package/dist/features/tester/seed-data/_money-flows.js +0 -610
- package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
- package/dist/features/tester/seed-data/authored/_types.js +0 -35
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
- package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
- package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
- package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
- package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
- package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
- package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
- package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
- package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
- package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
- package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
- package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
- package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
- package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
- package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
- package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
- package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
- package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
- package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
- package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
- package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
- package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
- package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
- package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
- package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/index.js +0 -301
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
- package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
- package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
- package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
- package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
- package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
- package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
- package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
- package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
- package/dist/features/tester/seed-data/index.d.ts +0 -2
- package/dist/features/tester/seed-data/index.js +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
- package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
- package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
- package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
- package/dist/features/tester/seed-data/tester-window.js +0 -66
- package/dist/seed/_helpers/brand-rows.d.ts +0 -35
- package/dist/seed/_helpers/brand-rows.js +0 -600
- package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
- package/dist/seed/_helpers/category-content-generated.js +0 -1853
- package/dist/seed/_helpers/category-content.d.ts +0 -68
- package/dist/seed/_helpers/category-content.js +0 -731
- package/dist/seed/_helpers/category-forest.d.ts +0 -4
- package/dist/seed/_helpers/category-forest.js +0 -824
- package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
- package/dist/seed/_helpers/category-images-generated.js +0 -618
- package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
- package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
- package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
- package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
- package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
- package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
- package/dist/seed/_helpers/category-models.d.ts +0 -12
- package/dist/seed/_helpers/category-models.js +0 -45
- package/dist/seed/_helpers/category-names.d.ts +0 -54
- package/dist/seed/_helpers/category-names.js +0 -118
- package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
- package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
- package/dist/seed/_helpers/category-parts.d.ts +0 -9
- package/dist/seed/_helpers/category-parts.js +0 -15022
- package/dist/seed/_helpers/category-tree.d.ts +0 -27
- package/dist/seed/_helpers/category-tree.js +0 -119
- package/dist/seed/_helpers/character-features.d.ts +0 -10
- package/dist/seed/_helpers/character-features.js +0 -120
- package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
- package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
- package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
- package/dist/seed/_helpers/franchise-rows.js +0 -189
- package/dist/seed/_helpers/media.d.ts +0 -67
- package/dist/seed/_helpers/media.js +0 -172
- package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
- package/dist/seed/_helpers/part-colours-generated.js +0 -273
- package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
- package/dist/seed/_helpers/product-search-txt.js +0 -23
- package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
- package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
- package/dist/seed/addresses-seed-data.d.ts +0 -2
- package/dist/seed/addresses-seed-data.js +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
- package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
- package/dist/seed/bey-products-seed-data.d.ts +0 -18
- package/dist/seed/bey-products-seed-data.js +0 -18011
- package/dist/seed/beys/chunk0.d.ts +0 -17
- package/dist/seed/beys/chunk0.js +0 -36733
- package/dist/seed/beys/chunk1.d.ts +0 -17
- package/dist/seed/beys/chunk1.js +0 -35728
- package/dist/seed/beys/chunk2.d.ts +0 -17
- package/dist/seed/beys/chunk2.js +0 -35857
- package/dist/seed/beys/chunk3.d.ts +0 -17
- package/dist/seed/beys/chunk3.js +0 -34476
- package/dist/seed/beys-seed-data.d.ts +0 -18
- package/dist/seed/beys-seed-data.js +0 -11
- package/dist/seed/bids-seed-data.d.ts +0 -2
- package/dist/seed/bids-seed-data.js +0 -206
- package/dist/seed/blog-posts-seed-data.d.ts +0 -6
- package/dist/seed/blog-posts-seed-data.js +0 -442
- package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
- package/dist/seed/carousel-slides-seed-data.js +0 -411
- package/dist/seed/carousels-seed-data.d.ts +0 -2
- package/dist/seed/carousels-seed-data.js +0 -36
- package/dist/seed/cart-seed-data.d.ts +0 -2
- package/dist/seed/cart-seed-data.js +0 -241
- package/dist/seed/catalogue-seed-data.d.ts +0 -2
- package/dist/seed/catalogue-seed-data.js +0 -112
- package/dist/seed/categories-seed-data.d.ts +0 -3
- package/dist/seed/categories-seed-data.js +0 -816
- package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
- package/dist/seed/claimed-coupons-seed-data.js +0 -85
- package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
- package/dist/seed/coupon-usage-seed-data.js +0 -55
- package/dist/seed/coupons-seed-data.d.ts +0 -2
- package/dist/seed/coupons-seed-data.js +0 -226
- package/dist/seed/defaults/categories.d.ts +0 -2
- package/dist/seed/defaults/categories.js +0 -12
- package/dist/seed/defaults/faqs.d.ts +0 -2
- package/dist/seed/defaults/faqs.js +0 -40
- package/dist/seed/events-seed-data.d.ts +0 -7
- package/dist/seed/events-seed-data.js +0 -482
- package/dist/seed/factories/address.factory.d.ts +0 -21
- package/dist/seed/factories/address.factory.js +0 -44
- package/dist/seed/factories/bid.factory.d.ts +0 -15
- package/dist/seed/factories/bid.factory.js +0 -33
- package/dist/seed/factories/blog-post.factory.d.ts +0 -15
- package/dist/seed/factories/blog-post.factory.js +0 -22
- package/dist/seed/factories/carousel.factory.d.ts +0 -11
- package/dist/seed/factories/carousel.factory.js +0 -17
- package/dist/seed/factories/cart.factory.d.ts +0 -25
- package/dist/seed/factories/cart.factory.js +0 -35
- package/dist/seed/factories/category.factory.d.ts +0 -11
- package/dist/seed/factories/category.factory.js +0 -16
- package/dist/seed/factories/coupon.factory.d.ts +0 -21
- package/dist/seed/factories/coupon.factory.js +0 -43
- package/dist/seed/factories/faq.factory.d.ts +0 -10
- package/dist/seed/factories/faq.factory.js +0 -15
- package/dist/seed/factories/notification.factory.d.ts +0 -18
- package/dist/seed/factories/notification.factory.js +0 -39
- package/dist/seed/factories/order.factory.d.ts +0 -20
- package/dist/seed/factories/order.factory.js +0 -20
- package/dist/seed/factories/payout.factory.d.ts +0 -21
- package/dist/seed/factories/payout.factory.js +0 -38
- package/dist/seed/factories/product.factory.d.ts +0 -27
- package/dist/seed/factories/product.factory.js +0 -80
- package/dist/seed/factories/review.factory.d.ts +0 -14
- package/dist/seed/factories/review.factory.js +0 -52
- package/dist/seed/factories/session.factory.d.ts +0 -15
- package/dist/seed/factories/session.factory.js +0 -31
- package/dist/seed/factories/store.factory.d.ts +0 -23
- package/dist/seed/factories/store.factory.js +0 -47
- package/dist/seed/factories/user.factory.d.ts +0 -19
- package/dist/seed/factories/user.factory.js +0 -56
- package/dist/seed/faq-seed-data.d.ts +0 -18
- package/dist/seed/faq-seed-data.js +0 -1956
- package/dist/seed/firestore-indexes.d.ts +0 -12
- package/dist/seed/firestore-indexes.js +0 -31
- package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
- package/dist/seed/grouped-listings-seed-data.js +0 -283
- package/dist/seed/history-seed-data.d.ts +0 -12
- package/dist/seed/history-seed-data.js +0 -70
- package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
- package/dist/seed/homepage-sections-seed-data.js +0 -1034
- package/dist/seed/index.d.ts +0 -100
- package/dist/seed/index.js +0 -115
- package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
- package/dist/seed/lottery-entries-seed-data.js +0 -108
- package/dist/seed/manifest.d.ts +0 -16
- package/dist/seed/manifest.js +0 -235
- package/dist/seed/media-assets-seed-data.d.ts +0 -22
- package/dist/seed/media-assets-seed-data.js +0 -5593
- package/dist/seed/model-composition-seed-data.d.ts +0 -15
- package/dist/seed/model-composition-seed-data.js +0 -9032
- package/dist/seed/notifications-seed-data.d.ts +0 -2
- package/dist/seed/notifications-seed-data.js +0 -606
- package/dist/seed/offers-seed-data.d.ts +0 -2
- package/dist/seed/offers-seed-data.js +0 -398
- package/dist/seed/orders-seed-data.d.ts +0 -2
- package/dist/seed/orders-seed-data.js +0 -845
- package/dist/seed/part-glossary/chunk0.d.ts +0 -9
- package/dist/seed/part-glossary/chunk0.js +0 -35448
- package/dist/seed/part-glossary/chunk1.d.ts +0 -9
- package/dist/seed/part-glossary/chunk1.js +0 -40494
- package/dist/seed/part-glossary/chunk2.d.ts +0 -9
- package/dist/seed/part-glossary/chunk2.js +0 -51242
- package/dist/seed/part-glossary/chunk3.d.ts +0 -9
- package/dist/seed/part-glossary/chunk3.js +0 -53337
- package/dist/seed/part-glossary/chunk4.d.ts +0 -9
- package/dist/seed/part-glossary/chunk4.js +0 -51454
- package/dist/seed/part-glossary-seed-data.d.ts +0 -15
- package/dist/seed/part-glossary-seed-data.js +0 -25
- package/dist/seed/payouts-seed-data.d.ts +0 -2
- package/dist/seed/payouts-seed-data.js +0 -302
- package/dist/seed/product-features-seed-data.d.ts +0 -3
- package/dist/seed/product-features-seed-data.js +0 -366
- package/dist/seed/products-art-seed-data.d.ts +0 -2
- package/dist/seed/products-art-seed-data.js +0 -289
- package/dist/seed/products-auctions-seed-data.d.ts +0 -2
- package/dist/seed/products-auctions-seed-data.js +0 -475
- package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
- package/dist/seed/products-beyblade-x-seed-data.js +0 -476
- package/dist/seed/products-catalogue/chunk0.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk0.js +0 -7262
- package/dist/seed/products-catalogue/chunk1.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk1.js +0 -7290
- package/dist/seed/products-catalogue/chunk10.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk10.js +0 -7290
- package/dist/seed/products-catalogue/chunk11.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk11.js +0 -7005
- package/dist/seed/products-catalogue/chunk12.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk12.js +0 -7002
- package/dist/seed/products-catalogue/chunk13.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk13.js +0 -7002
- package/dist/seed/products-catalogue/chunk14.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk14.js +0 -7002
- package/dist/seed/products-catalogue/chunk15.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk15.js +0 -7002
- package/dist/seed/products-catalogue/chunk16.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk16.js +0 -7002
- package/dist/seed/products-catalogue/chunk17.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk17.js +0 -7002
- package/dist/seed/products-catalogue/chunk18.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk18.js +0 -4398
- package/dist/seed/products-catalogue/chunk2.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk2.js +0 -7268
- package/dist/seed/products-catalogue/chunk3.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk3.js +0 -7264
- package/dist/seed/products-catalogue/chunk4.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk4.js +0 -7268
- package/dist/seed/products-catalogue/chunk5.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk5.js +0 -7258
- package/dist/seed/products-catalogue/chunk6.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk6.js +0 -7268
- package/dist/seed/products-catalogue/chunk7.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk7.js +0 -7311
- package/dist/seed/products-catalogue/chunk8.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk8.js +0 -7304
- package/dist/seed/products-catalogue/chunk9.d.ts +0 -12
- package/dist/seed/products-catalogue/chunk9.js +0 -7309
- package/dist/seed/products-catalogue-seed-data.d.ts +0 -2
- package/dist/seed/products-catalogue-seed-data.js +0 -60
- package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
- package/dist/seed/products-classifieds-seed-data.js +0 -435
- package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
- package/dist/seed/products-digital-codes-seed-data.js +0 -395
- package/dist/seed/products-live-items-seed-data.d.ts +0 -7
- package/dist/seed/products-live-items-seed-data.js +0 -269
- package/dist/seed/products-preorders-seed-data.d.ts +0 -2
- package/dist/seed/products-preorders-seed-data.js +0 -360
- package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
- package/dist/seed/products-prize-draws-seed-data.js +0 -427
- package/dist/seed/products-spares-seed-data.d.ts +0 -2
- package/dist/seed/products-spares-seed-data.js +0 -368
- package/dist/seed/products-standard-seed-data.d.ts +0 -2
- package/dist/seed/products-standard-seed-data.js +0 -632
- package/dist/seed/products-stickers-seed-data.d.ts +0 -2
- package/dist/seed/products-stickers-seed-data.js +0 -319
- package/dist/seed/reviews-seed-data.d.ts +0 -1
- package/dist/seed/reviews-seed-data.js +0 -185
- package/dist/seed/runner.d.ts +0 -2
- package/dist/seed/runner.js +0 -125
- package/dist/seed/scammers-seed-data.d.ts +0 -2
- package/dist/seed/scammers-seed-data.js +0 -235
- package/dist/seed/seed-market-config.d.ts +0 -48
- package/dist/seed/seed-market-config.js +0 -199
- package/dist/seed/seed-purpose.d.ts +0 -299
- package/dist/seed/seed-purpose.js +0 -440
- package/dist/seed/sessions-seed-data.d.ts +0 -3
- package/dist/seed/sessions-seed-data.js +0 -116
- package/dist/seed/shipments-seed-data.d.ts +0 -5
- package/dist/seed/shipments-seed-data.js +0 -185
- package/dist/seed/site-settings-seed-data.d.ts +0 -2
- package/dist/seed/site-settings-seed-data.js +0 -1069
- package/dist/seed/store-addresses-seed-data.d.ts +0 -18
- package/dist/seed/store-addresses-seed-data.js +0 -71
- package/dist/seed/store-extensions-seed-data.d.ts +0 -11
- package/dist/seed/store-extensions-seed-data.js +0 -292
- package/dist/seed/stores-seed-data.d.ts +0 -6
- package/dist/seed/stores-seed-data.js +0 -242
- package/dist/seed/support-tickets-seed-data.d.ts +0 -16
- package/dist/seed/support-tickets-seed-data.js +0 -239
- package/dist/seed/tax-codes-seed-data.d.ts +0 -34
- package/dist/seed/tax-codes-seed-data.js +0 -100
- package/dist/seed/test-data-ttl.d.ts +0 -29
- package/dist/seed/test-data-ttl.js +0 -31
- package/dist/seed/test-utils.d.ts +0 -49
- package/dist/seed/test-utils.js +0 -110
- package/dist/seed/types.d.ts +0 -89
- package/dist/seed/types.js +0 -15
- package/dist/seed/users-seed-data.d.ts +0 -2
- package/dist/seed/users-seed-data.js +0 -597
- package/dist/seed/wishlists-seed-data.d.ts +0 -12
- 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);
|