@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,600 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WHY: The seed carried FOUR brand rows for a catalogue that was about to span
|
|
3
|
-
* Beyblade, trading cards, figures and die-cast. A product's `brand`
|
|
4
|
-
* string that matches no brand row is invisible on every brand page, and
|
|
5
|
-
* the four existing rows cover none of the three new verticals.
|
|
6
|
-
* WHAT: One factory plus 28 compact declarations. The boilerplate every brand
|
|
7
|
-
* row needs — tier-0 coordinates, isBrand, searchability, the seo block —
|
|
8
|
-
* is written once; each brand declares only what differs.
|
|
9
|
-
*
|
|
10
|
-
* EXPORTS:
|
|
11
|
-
* BRAND_ROWS — Partial<CategoryDocument>[], categoryType:"brand"
|
|
12
|
-
* BRAND_ROW_COUNT — asserted by the seed so a silent drop is loud
|
|
13
|
-
*
|
|
14
|
-
* ## 🛑 Three traps, all of them live
|
|
15
|
-
*
|
|
16
|
-
* 1. **`BrandDetailPageView` filters products on the brand's DISPLAY NAME**
|
|
17
|
-
* (`sieveFilter("brand", EQ, brandName)`), not on `brandSlug`. So renaming
|
|
18
|
-
* a brand silently orphans its entire catalogue — which is why
|
|
19
|
-
* `Takara-Tomy` keeps its existing hyphenated spelling even though the
|
|
20
|
-
* company writes it "Takara Tomy". Keep `brand` and `brandSlug` in lockstep
|
|
21
|
-
* on the product side.
|
|
22
|
-
*
|
|
23
|
-
* 2. **`display.icon` BEATS `display.coverImage`.** `BrandsSection` reads
|
|
24
|
-
* `brand.display?.icon` first and only falls back to `coverImage`. The
|
|
25
|
-
* existing seed uses `icon` for EMOJI, so an emoji left there wins over a
|
|
26
|
-
* real logo. Every row here leaves `icon` unset.
|
|
27
|
-
*
|
|
28
|
-
* 3. **A brand row with no product is a DEAD FACET, and worse than absent** —
|
|
29
|
-
* it renders as a card in the brands grid that opens an empty page. That is
|
|
30
|
-
* the whole reason there is no standalone `Tomy` row: Takara is the
|
|
31
|
-
* pre-merger Beyblade maker and Takara Tomy is the merged entity, while
|
|
32
|
-
* Tomy's own pre-merger role is established by NO source we hold (zero
|
|
33
|
-
* `Tomy`-only brand values across all fifteen crawls, and the local corpus
|
|
34
|
-
* never attributes a product code to Tomy alone). Every row below is one
|
|
35
|
-
* B6 can put at least one real product behind.
|
|
36
|
-
*
|
|
37
|
-
* ## 🛑 Real logos, decided 2026-10-20 — and what the earlier caution was right about
|
|
38
|
-
*
|
|
39
|
-
* This block used to argue for neutral `seedPhoto` tiles over real logos, on
|
|
40
|
-
* the grounds that 26 of these are marques we do not own and "shipping drawn
|
|
41
|
-
* approximations of their logos is trademark reproduction for commercial
|
|
42
|
-
* use… a licensed-asset task, not a seed task."
|
|
43
|
-
*
|
|
44
|
-
* That call was reversed deliberately, not forgotten. Real wordmarks are now
|
|
45
|
-
* used to IDENTIFY the line a listing belongs to, which is nominative use, and
|
|
46
|
-
* the help pages carry an explicit fair-use and non-affiliation notice naming
|
|
47
|
-
* every marque. Provenance for each file is recorded per-image in
|
|
48
|
-
* `docs/research/taxonomy-images-2026-10/image-provenance.json`, so
|
|
49
|
-
* attribution is possible and a takedown is mechanical.
|
|
50
|
-
*
|
|
51
|
-
* 🛑 Two things the old reasoning got right and this did NOT change:
|
|
52
|
-
*
|
|
53
|
-
* 1. **Never `seedExtMedia`.** A persisted `/api/media/ext?url=…` costs a
|
|
54
|
-
* lambda plus a third-party fetch plus a sharp encode PER RENDER — Root
|
|
55
|
-
* Cause #104, which took Fast Origin Transfer to 52.52 GB against a
|
|
56
|
-
* 10 GB cap. These are fetched ONCE, stored in our own bucket, and
|
|
57
|
-
* referenced as `/media/<slug>`.
|
|
58
|
-
* 2. **No drawn approximations.** Nothing here is an imitation of a logo we
|
|
59
|
-
* traced; each is the actual wordmark, cited.
|
|
60
|
-
*
|
|
61
|
-
* Only three brands resolve an image today (Beyblade, Hasbro, Sonokong). The
|
|
62
|
-
* other 25 have no verified source yet and show no cover rather than a guessed
|
|
63
|
-
* one — see `knownGaps` in the manifest.
|
|
64
|
-
*
|
|
65
|
-
* @tag domain:categories
|
|
66
|
-
* @tag layer:seed
|
|
67
|
-
* @tag pattern:shared-literal
|
|
68
|
-
* @tag access:server-only
|
|
69
|
-
* @tag consumers:seed/categories-seed-data.ts
|
|
70
|
-
* @tag sideEffects:none
|
|
71
|
-
*/
|
|
72
|
-
/*
|
|
73
|
-
* 🛑 `constants/field-names`, NOT `features/categories/schemas/firestore`.
|
|
74
|
-
* There are TWO `CATEGORY_FIELDS` constants in this codebase and they have
|
|
75
|
-
* drifted — only this one carries `CATEGORY_TYPE_VALUES`, and the schema copy
|
|
76
|
-
* carries `PRODUCT_DEFAULTS_TAX_CODE_ID`, which this one does not.
|
|
77
|
-
* `categories-seed-data.ts` imports this copy; matching it is what keeps the
|
|
78
|
-
* brand discriminator a single spelling.
|
|
79
|
-
*/
|
|
80
|
-
import { CATEGORY_FIELDS } from "../../constants/field-names.js";
|
|
81
|
-
import { seedPhoto } from "./media.js";
|
|
82
|
-
export function brandRow(input, order, stamps) {
|
|
83
|
-
const id = `brand-${input.slug}`;
|
|
84
|
-
return {
|
|
85
|
-
id,
|
|
86
|
-
slug: id,
|
|
87
|
-
name: input.name,
|
|
88
|
-
categoryType: CATEGORY_FIELDS.CATEGORY_TYPE_VALUES.BRAND,
|
|
89
|
-
description: input.description,
|
|
90
|
-
...(input.website ? { brandWebsite: input.website } : {}),
|
|
91
|
-
brandCountry: input.country,
|
|
92
|
-
...(input.founded ? { brandFounded: input.founded } : {}),
|
|
93
|
-
highlights: input.highlights,
|
|
94
|
-
...(input.faqs ? { faqs: input.faqs } : {}),
|
|
95
|
-
rootId: id,
|
|
96
|
-
parentIds: [],
|
|
97
|
-
childrenIds: [],
|
|
98
|
-
ancestors: [],
|
|
99
|
-
tier: 0,
|
|
100
|
-
path: id,
|
|
101
|
-
isLeaf: true,
|
|
102
|
-
order,
|
|
103
|
-
/*
|
|
104
|
-
* 🛑 `icon` deliberately UNSET — see trap 2. A cover image only.
|
|
105
|
-
* `position` is NOT set here: brand rows live outside the category
|
|
106
|
-
* forest's DFS numbering, and giving them a position inside it would
|
|
107
|
-
* corrupt the ranges `onCategoryWrite` shifts on insert.
|
|
108
|
-
*/
|
|
109
|
-
/*
|
|
110
|
-
* A placeholder tile, which a real logo now OVERRIDES rather than being
|
|
111
|
-
* blocked by — `withGeneratedCoverImage` treats a `/images/seed-tiles/`
|
|
112
|
-
* path as a default to improve on, not as a hand-authored decision
|
|
113
|
-
* (`isSeedPlaceholderImage`).
|
|
114
|
-
*
|
|
115
|
-
* 🛑 So keep it. Three brands resolve a real wordmark today (Beyblade,
|
|
116
|
-
* Hasbro, Sonokong) and override this; the other 25 have no verified
|
|
117
|
-
* source and fall back to the tile. Removing the line would give those 25
|
|
118
|
-
* an EMPTY grey box, because a brand row carries no `color` and no `icon`
|
|
119
|
-
* either — strictly worse than a neutral tile.
|
|
120
|
-
*
|
|
121
|
-
* `icon` stays unset — see trap 2. An emoji here would outrank the logo.
|
|
122
|
-
*/
|
|
123
|
-
display: {
|
|
124
|
-
coverImage: seedPhoto(`brand-logo-${input.slug}-20260101`, 800, 800),
|
|
125
|
-
showInMenu: false,
|
|
126
|
-
showInFooter: input.footer ?? false,
|
|
127
|
-
},
|
|
128
|
-
isFeatured: input.featured ?? false,
|
|
129
|
-
isBrand: true,
|
|
130
|
-
isActive: true,
|
|
131
|
-
isSearchable: true,
|
|
132
|
-
createdBy: stamps.createdBy,
|
|
133
|
-
createdAt: stamps.createdAt,
|
|
134
|
-
updatedAt: stamps.updatedAt,
|
|
135
|
-
seo: {
|
|
136
|
-
title: `${input.name} | LetItRip`,
|
|
137
|
-
description: input.seoDescription,
|
|
138
|
-
keywords: input.keywords,
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
143
|
-
// Beyblade — EIGHT rows, and the count is the interesting part
|
|
144
|
-
//
|
|
145
|
-
// Takara is the pre-2006 maker (beybladeshopindia's Brand field is literally
|
|
146
|
-
// `Takara` on 2,011 products, and the local corpus attributes Gen-1 codes to
|
|
147
|
-
// `(Takara)` while BX-era codes carry `(TT)`). Takara Tomy is the merged
|
|
148
|
-
// entity. There is NO standalone Tomy row — see trap 3.
|
|
149
|
-
//
|
|
150
|
-
// `Beyblade` itself stays a row because the existing seed has it and products
|
|
151
|
-
// reference it; it is the FRANCHISE rather than a manufacturer, the same
|
|
152
|
-
// precedent `Hot Wheels` follows on the die-cast side.
|
|
153
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
154
|
-
const BEYBLADE_BRANDS = [
|
|
155
|
-
{
|
|
156
|
-
slug: "takara-tomy",
|
|
157
|
-
// 🛑 Hyphenated, matching what products already carry. The company writes
|
|
158
|
-
// it "Takara Tomy"; renaming to match them orphans the catalogue.
|
|
159
|
-
name: "Takara-Tomy",
|
|
160
|
-
description: "The Japanese toy company behind every Beyblade generation since the 2006 merger, plus Tomica, Transformers (Japan) and Duel Masters. Known for premium tooling and Japan-exclusive releases.",
|
|
161
|
-
country: "Japan",
|
|
162
|
-
founded: 2006,
|
|
163
|
-
website: "https://www.takaratomy.co.jp",
|
|
164
|
-
highlights: [
|
|
165
|
-
"Manufactures every Beyblade generation from 2006 onward",
|
|
166
|
-
"Also behind Tomica, Transformers (Japan region) and Duel Masters",
|
|
167
|
-
"Japan-exclusive releases and the tighter tolerances competitive players prefer",
|
|
168
|
-
],
|
|
169
|
-
faqs: [
|
|
170
|
-
{ question: "Is Takara-Tomy the same company as Hasbro's Beyblade line?", answer: "No. Takara-Tomy manufactures and sells Beyblade in Japan and most of Asia; Hasbro licenses and distributes a separate — sometimes genuinely different — product line internationally, primarily in North America." },
|
|
171
|
-
{ question: "Are Takara-Tomy imports compatible with Hasbro Beyblade parts?", answer: "Within the same generation, almost always yes. Across generations, no: the launcher and locking systems changed every time." },
|
|
172
|
-
],
|
|
173
|
-
footer: true,
|
|
174
|
-
featured: true,
|
|
175
|
-
keywords: ["takara tomy", "takara tomy beyblade", "tomica takara", "beyblade japan"],
|
|
176
|
-
seoDescription: "Shop Takara-Tomy collectibles — Beyblade across every generation, plus Tomica and Transformers Japan releases.",
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
slug: "takara",
|
|
180
|
-
name: "Takara",
|
|
181
|
-
description: "The pre-merger company that created Beyblade in 1999 and made every Plastic Generation, Spin Gear, Magnacore, Engine Gear and HMS release until it merged with Tomy in 2006.",
|
|
182
|
-
country: "Japan",
|
|
183
|
-
founded: 1955,
|
|
184
|
-
highlights: [
|
|
185
|
-
"Created Beyblade in 1999 — every original-generation top is a Takara product",
|
|
186
|
-
"The marque on Gen-1 product codes (A-xx, MA-xx) before the 2006 merger",
|
|
187
|
-
"Vintage Takara pieces in playable condition are the scarcest Beyblade tier",
|
|
188
|
-
],
|
|
189
|
-
faqs: [
|
|
190
|
-
{ question: "What is the difference between Takara and Takara-Tomy?", answer: "Takara made Beyblade alone from 1999 until it merged with Tomy in 2006 to form Takara Tomy. A top with an A-xx or MA-xx code is a Takara release; a BB-xx, B-xx or BX-xx code is Takara Tomy." },
|
|
191
|
-
{ question: "Is a Takara-era top still usable?", answer: "Yes, though plastic from 1999–2003 has aged. Check the listing for stress marks around the Blade Base and for a clean spin gear — a cracked base is not repairable." },
|
|
192
|
-
],
|
|
193
|
-
featured: true,
|
|
194
|
-
keywords: ["takara", "takara beyblade", "plastic generation", "vintage beyblade"],
|
|
195
|
-
seoDescription: "Shop Takara-era Beyblade — the original 1999–2003 generations, from Spin Gear through HMS.",
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
slug: "beyblade",
|
|
199
|
-
name: "Beyblade",
|
|
200
|
-
description: "The spinning-top battle franchise itself, by Takara-Tomy in Japan and Hasbro internationally — spanning the Original series, Metal Fight, Burst and Beyblade X.",
|
|
201
|
-
country: "Japan",
|
|
202
|
-
founded: 1999,
|
|
203
|
-
website: "https://beyblade.takaratomy.co.jp",
|
|
204
|
-
highlights: [
|
|
205
|
-
"Four generations since 1999, all of them traded here",
|
|
206
|
-
"One of the best-selling spinning-top toy lines in the world",
|
|
207
|
-
"A live competitive tournament scene alongside collecting",
|
|
208
|
-
],
|
|
209
|
-
faqs: [
|
|
210
|
-
{ question: "What age range is Beyblade designed for?", answer: "Most sets are labelled 8+ for small parts and launcher spring mechanisms. Check the age rating on the listing before buying for a younger child." },
|
|
211
|
-
{ question: "Where can I find official tournament rules?", answer: "Takara-Tomy and Hasbro each publish rules for their own regions, and the World Beyblade Organization runs the community formats most Indian events use. The manufacturer link on this page goes to the current official rulebook." },
|
|
212
|
-
],
|
|
213
|
-
footer: true,
|
|
214
|
-
featured: true,
|
|
215
|
-
keywords: ["beyblade", "beyblade x", "beyblade burst", "spinning top battle", "beyblade india"],
|
|
216
|
-
seoDescription: "Shop Beyblade in India — Original, Metal Fight, Burst and Beyblade X tops, parts, launchers and stadiums.",
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
slug: "hasbro",
|
|
220
|
-
name: "Hasbro",
|
|
221
|
-
description: "The international Beyblade licensee. Hasbro distributes its own product line outside Japan with different packaging, different part names and occasionally different mould tolerances from the Takara-Tomy originals.",
|
|
222
|
-
country: "United States",
|
|
223
|
-
founded: 1923,
|
|
224
|
-
website: "https://shop.hasbro.com",
|
|
225
|
-
highlights: [
|
|
226
|
-
"The Beyblade line most collectors outside Japan grew up with",
|
|
227
|
-
"Widely available and generally cheaper than Japanese imports",
|
|
228
|
-
"Same-generation parts are usually cross-compatible with Takara-Tomy",
|
|
229
|
-
],
|
|
230
|
-
faqs: [
|
|
231
|
-
{ question: "Is a Hasbro Beyblade worse than the Takara-Tomy version?", answer: "Not worse, but often different. Hasbro releases can use softer plastics and slightly looser tolerances, which competitive players notice and casual players generally do not." },
|
|
232
|
-
{ question: "Why does my Hasbro top have a different name?", answer: "Hasbro renames most releases for western markets — Lost Longinus is sold as Lost Luinor L2, Spriggan as Spryzen. They are the same mould. Both names are indexed here, so either one finds the listing." },
|
|
233
|
-
],
|
|
234
|
-
keywords: ["hasbro", "hasbro beyblade", "beyblade burst hasbro", "luinor"],
|
|
235
|
-
seoDescription: "Shop Hasbro Beyblade — the international product line, with both Hasbro and Takara-Tomy names searchable.",
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
slug: "sonokong",
|
|
239
|
-
name: "Sonokong",
|
|
240
|
-
description: "The South Korean Beyblade licensee, distributing localised releases across Korea with its own packaging and occasional market-exclusive colourways.",
|
|
241
|
-
country: "South Korea",
|
|
242
|
-
founded: 1979,
|
|
243
|
-
highlights: [
|
|
244
|
-
"Korean-market releases, including colourways sold nowhere else",
|
|
245
|
-
"Same moulds as the Takara-Tomy originals under Korean packaging",
|
|
246
|
-
],
|
|
247
|
-
keywords: ["sonokong", "korean beyblade", "sonokong beyblade"],
|
|
248
|
-
seoDescription: "Shop Sonokong Beyblade — Korean-market releases and market-exclusive colourways.",
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
slug: "funskool",
|
|
252
|
-
name: "Funskool",
|
|
253
|
-
description: "The Indian licensee for several Hasbro lines, including locally packaged Beyblade releases — the version many Indian collectors owned first.",
|
|
254
|
-
country: "India",
|
|
255
|
-
founded: 1987,
|
|
256
|
-
highlights: [
|
|
257
|
-
"Indian-market packaging, and the release many local collectors started with",
|
|
258
|
-
"Locally distributed, so no import duty in the original purchase price",
|
|
259
|
-
],
|
|
260
|
-
faqs: [
|
|
261
|
-
{ question: "Is a Funskool Beyblade genuine?", answer: "Yes. Funskool is a licensed Indian distributor, not a reproduction — the product inside is the licensed release under Indian packaging." },
|
|
262
|
-
],
|
|
263
|
-
keywords: ["funskool", "funskool beyblade", "beyblade india original"],
|
|
264
|
-
seoDescription: "Shop Funskool Beyblade — the licensed Indian-market releases.",
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
slug: "young-toys",
|
|
268
|
-
name: "Young Toys",
|
|
269
|
-
description: "A Korean toy manufacturer and regional Beyblade licensee, also known for its own spinning-top lines.",
|
|
270
|
-
country: "South Korea",
|
|
271
|
-
highlights: ["Korean regional releases", "Also produces its own spinning-top lines"],
|
|
272
|
-
keywords: ["young toys", "young toys beyblade", "korean spinning tops"],
|
|
273
|
-
seoDescription: "Shop Young Toys releases — Korean regional Beyblade and spinning-top lines.",
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
slug: "newboy",
|
|
277
|
-
name: "NewBoy",
|
|
278
|
-
description: "The Middle East regional licensee, distributing Beyblade across the Gulf states with localised packaging.",
|
|
279
|
-
country: "United Arab Emirates",
|
|
280
|
-
highlights: ["Gulf-market packaging", "Licensed regional distribution, not a reproduction"],
|
|
281
|
-
keywords: ["newboy", "newboy beyblade", "middle east beyblade"],
|
|
282
|
-
seoDescription: "Shop NewBoy Beyblade — licensed Middle East regional releases.",
|
|
283
|
-
},
|
|
284
|
-
];
|
|
285
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
286
|
-
// Trading card publishers — FIVE
|
|
287
|
-
//
|
|
288
|
-
// 🛑 Nintendo and Creatures Inc. are deliberately absent despite co-owning
|
|
289
|
-
// Pokémon. Their names appear on no card a buyer searches by, so a row for
|
|
290
|
-
// either is trap 3: a card in the brands grid that opens an empty page.
|
|
291
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
292
|
-
const TCG_BRANDS = [
|
|
293
|
-
{
|
|
294
|
-
slug: "pokemon-company",
|
|
295
|
-
name: "The Pokémon Company",
|
|
296
|
-
description: "Publisher of the Pokémon Trading Card Game, and the marque on every modern Japanese and English set since Wizards of the Coast's licence ended in 2003.",
|
|
297
|
-
country: "Japan",
|
|
298
|
-
founded: 1998,
|
|
299
|
-
website: "https://www.pokemon.co.jp",
|
|
300
|
-
highlights: [
|
|
301
|
-
"Publishes every modern Pokémon TCG set in both Japanese and English",
|
|
302
|
-
"Japanese print runs are smaller and card stock is generally better regarded",
|
|
303
|
-
],
|
|
304
|
-
faqs: [
|
|
305
|
-
{ question: "Why do Japanese and English Pokémon cards differ in price?", answer: "Different print runs, different pull rates and a different collector base. Japanese sets often have higher card quality and smaller runs; English sets have the larger market. They are genuinely different products, which is why language is a filter here." },
|
|
306
|
-
],
|
|
307
|
-
footer: true,
|
|
308
|
-
featured: true,
|
|
309
|
-
keywords: ["pokemon company", "pokemon tcg", "pokemon cards india", "pokemon japanese"],
|
|
310
|
-
seoDescription: "Shop Pokémon Trading Card Game product — singles, sealed boxes and ETBs in Japanese and English.",
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
slug: "wizards-of-the-coast",
|
|
314
|
-
name: "Wizards of the Coast",
|
|
315
|
-
description: "Held the English-language Pokémon TCG licence from 1999 to 2003, and publishes Magic: The Gathering. WotC-era Pokémon cards are the vintage tier of the game.",
|
|
316
|
-
country: "United States",
|
|
317
|
-
founded: 1990,
|
|
318
|
-
website: "https://company.wizards.com",
|
|
319
|
-
highlights: [
|
|
320
|
-
"The 1999–2003 English Pokémon sets — Base Set through e-Card",
|
|
321
|
-
"A WotC copyright line on the card is the single fastest vintage check",
|
|
322
|
-
],
|
|
323
|
-
faqs: [
|
|
324
|
-
{ question: "How do I tell a WotC-era Pokémon card from a modern reprint?", answer: "The copyright line at the bottom names Wizards of the Coast and the year. A modern reprint of the same artwork carries The Pokémon Company instead, and the two are priced very differently." },
|
|
325
|
-
],
|
|
326
|
-
keywords: ["wizards of the coast", "wotc pokemon", "base set", "vintage pokemon cards"],
|
|
327
|
-
seoDescription: "Shop Wizards of the Coast-era Pokémon — the 1999–2003 English vintage sets.",
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
slug: "bandai",
|
|
331
|
-
name: "Bandai",
|
|
332
|
-
description: "Publisher of the One Piece Card Game, Digimon Card Game and Gundam Card Game, and — through Bandai Spirits — one of the largest collectible figure and model-kit makers in the world.",
|
|
333
|
-
country: "Japan",
|
|
334
|
-
founded: 1950,
|
|
335
|
-
website: "https://www.bandai.com",
|
|
336
|
-
highlights: [
|
|
337
|
-
"One Piece, Digimon and Gundam card games",
|
|
338
|
-
"Bandai Spirits figures and the entire Gunpla model-kit range",
|
|
339
|
-
"The broadest single catalogue of any publisher here",
|
|
340
|
-
],
|
|
341
|
-
footer: true,
|
|
342
|
-
featured: true,
|
|
343
|
-
keywords: ["bandai", "one piece card game", "gunpla", "digimon tcg", "bandai spirits"],
|
|
344
|
-
seoDescription: "Shop Bandai — One Piece and Digimon card games, Gunpla model kits and Bandai Spirits figures.",
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
slug: "konami",
|
|
348
|
-
name: "Konami",
|
|
349
|
-
description: "Publisher of the Yu-Gi-Oh! Trading Card Game worldwide.",
|
|
350
|
-
country: "Japan",
|
|
351
|
-
founded: 1969,
|
|
352
|
-
website: "https://www.konami.com",
|
|
353
|
-
highlights: ["Yu-Gi-Oh! TCG structure decks, boosters and singles"],
|
|
354
|
-
keywords: ["konami", "yu-gi-oh", "yugioh cards india"],
|
|
355
|
-
seoDescription: "Shop Konami's Yu-Gi-Oh! Trading Card Game — structure decks, boosters and singles.",
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
slug: "bushiroad",
|
|
359
|
-
name: "Bushiroad",
|
|
360
|
-
description: "Publisher of Weiss Schwarz and Union Arena — crossover card games that license dozens of anime properties into one playable system.",
|
|
361
|
-
country: "Japan",
|
|
362
|
-
founded: 2007,
|
|
363
|
-
website: "https://bushiroad.com",
|
|
364
|
-
highlights: [
|
|
365
|
-
"Weiss Schwarz and Union Arena",
|
|
366
|
-
"Crossover sets licensing dozens of anime properties into one game",
|
|
367
|
-
],
|
|
368
|
-
keywords: ["bushiroad", "weiss schwarz", "union arena"],
|
|
369
|
-
seoDescription: "Shop Bushiroad card games — Weiss Schwarz and Union Arena sealed product and singles.",
|
|
370
|
-
},
|
|
371
|
-
];
|
|
372
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
373
|
-
// Figure makers — THIRTEEN, ordered by their measured tag counts in the crawl
|
|
374
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
375
|
-
const FIGURE_BRANDS = [
|
|
376
|
-
{
|
|
377
|
-
slug: "banpresto",
|
|
378
|
-
name: "Banpresto",
|
|
379
|
-
description: "A Bandai Spirits label producing prize figures for Japanese arcade machines — the largest single figure line in the crawl, and the entry price point for collecting at scale.",
|
|
380
|
-
country: "Japan",
|
|
381
|
-
founded: 1977,
|
|
382
|
-
highlights: [
|
|
383
|
-
"Prize figures made for Japanese arcade machines, not retail",
|
|
384
|
-
"Usually unarticulated and genuinely cheaper rather than lower value",
|
|
385
|
-
"The broadest anime-figure selection at the ₹1,200–2,200 tier",
|
|
386
|
-
],
|
|
387
|
-
faqs: [
|
|
388
|
-
{ question: "Are Banpresto prize figures lower quality?", answer: "They are simpler — fewer parts, no articulation, less complex paint — and priced accordingly. For display they hold up well, which is why prize figures are a tier rather than a compromise." },
|
|
389
|
-
],
|
|
390
|
-
footer: true,
|
|
391
|
-
featured: true,
|
|
392
|
-
keywords: ["banpresto", "prize figure", "anime figure india"],
|
|
393
|
-
seoDescription: "Shop Banpresto prize figures — the broadest anime-figure selection at the entry tier.",
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
slug: "tamashii-nations",
|
|
397
|
-
name: "Tamashii Nations",
|
|
398
|
-
description: "Bandai Spirits' collector label, best known for S.H.Figuarts — highly articulated 1/12-scale figures aimed at adult collectors.",
|
|
399
|
-
country: "Japan",
|
|
400
|
-
founded: 2008,
|
|
401
|
-
highlights: ["S.H.Figuarts and the Tamashii collector lines", "The articulation benchmark at 1/12 scale"],
|
|
402
|
-
keywords: ["tamashii nations", "s.h.figuarts", "shf", "articulated figures"],
|
|
403
|
-
seoDescription: "Shop Tamashii Nations — S.H.Figuarts and the Bandai Spirits collector lines.",
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
slug: "max-factory",
|
|
407
|
-
name: "Max Factory",
|
|
408
|
-
description: "Japanese figure maker behind the Figma articulated line and a large catalogue of scale statues.",
|
|
409
|
-
country: "Japan",
|
|
410
|
-
founded: 1987,
|
|
411
|
-
highlights: ["The Figma articulated line", "Scale statues across a wide anime licence range"],
|
|
412
|
-
keywords: ["max factory", "figma", "anime figures"],
|
|
413
|
-
seoDescription: "Shop Max Factory — Figma articulated figures and scale statues.",
|
|
414
|
-
},
|
|
415
|
-
{
|
|
416
|
-
slug: "good-smile-company",
|
|
417
|
-
name: "Good Smile Company",
|
|
418
|
-
description: "Creator of the Nendoroid line — stylised chibi figures with swappable faces and parts — alongside a premium scale-statue catalogue.",
|
|
419
|
-
country: "Japan",
|
|
420
|
-
founded: 2001,
|
|
421
|
-
highlights: ["Nendoroid, the definitive chibi collectible line", "Swappable faces and parts on every Nendoroid"],
|
|
422
|
-
keywords: ["good smile company", "nendoroid", "chibi figure"],
|
|
423
|
-
seoDescription: "Shop Good Smile Company — Nendoroid chibi figures and premium scale statues.",
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
slug: "megahouse",
|
|
427
|
-
name: "MegaHouse",
|
|
428
|
-
description: "A Bandai Namco figure label known for its One Piece and Gundam scale statues.",
|
|
429
|
-
country: "Japan",
|
|
430
|
-
founded: 2001,
|
|
431
|
-
highlights: ["One Piece Portrait.Of.Pirates and Gundam scale lines"],
|
|
432
|
-
keywords: ["megahouse", "portrait of pirates", "one piece figure"],
|
|
433
|
-
seoDescription: "Shop MegaHouse figures — One Piece Portrait.Of.Pirates and Gundam scale statues.",
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
slug: "furyu",
|
|
437
|
-
name: "FuRyu",
|
|
438
|
-
description: "Japanese prize-figure and scale-figure maker across a broad anime licence range.",
|
|
439
|
-
country: "Japan",
|
|
440
|
-
founded: 2007,
|
|
441
|
-
highlights: ["Prize and scale figures at the mid tier"],
|
|
442
|
-
keywords: ["furyu", "anime prize figure"],
|
|
443
|
-
seoDescription: "Shop FuRyu figures — prize and scale anime collectibles.",
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
slug: "taito",
|
|
447
|
-
name: "Taito",
|
|
448
|
-
description: "Arcade operator and prize-figure maker, whose figures come from its own crane machines.",
|
|
449
|
-
country: "Japan",
|
|
450
|
-
founded: 1953,
|
|
451
|
-
highlights: ["Arcade prize figures from Taito's own machines"],
|
|
452
|
-
keywords: ["taito", "taito prize figure"],
|
|
453
|
-
seoDescription: "Shop Taito prize figures — arcade-exclusive anime collectibles.",
|
|
454
|
-
},
|
|
455
|
-
{
|
|
456
|
-
slug: "medicom-toy",
|
|
457
|
-
name: "Medicom Toy",
|
|
458
|
-
description: "Japanese maker behind Mafex — highly articulated 1/12-scale comic and film figures — and the Be@rbrick line.",
|
|
459
|
-
country: "Japan",
|
|
460
|
-
founded: 1996,
|
|
461
|
-
highlights: ["The Mafex articulated line", "Be@rbrick designer collectibles"],
|
|
462
|
-
keywords: ["medicom", "mafex", "bearbrick"],
|
|
463
|
-
seoDescription: "Shop Medicom Toy — Mafex articulated figures and Be@rbrick collectibles.",
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
slug: "toy-biz",
|
|
467
|
-
name: "Toy Biz",
|
|
468
|
-
description: "The pre-Hasbro Marvel licensee. Its 1990s figures are a genuine vintage tier, and an unopened Toy Biz card is one of the scarcer things in this catalogue.",
|
|
469
|
-
country: "United States",
|
|
470
|
-
founded: 1990,
|
|
471
|
-
highlights: [
|
|
472
|
-
"1990s Marvel figures — the vintage tier of comic collecting",
|
|
473
|
-
"Carded examples are scarce and priced well above loose ones",
|
|
474
|
-
],
|
|
475
|
-
faqs: [
|
|
476
|
-
{ question: "Why are Toy Biz figures collectible?", answer: "They are the Marvel figures a generation grew up with, they predate Hasbro's licence, and the cards were rarely kept. Condition of the blister and card drives most of the price." },
|
|
477
|
-
],
|
|
478
|
-
keywords: ["toy biz", "vintage marvel figures", "1990s marvel"],
|
|
479
|
-
seoDescription: "Shop Toy Biz — vintage 1990s Marvel figures, carded and loose.",
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
slug: "mcfarlane-toys",
|
|
483
|
-
name: "McFarlane Toys",
|
|
484
|
-
description: "Holder of the DC figure licence, producing the DC Multiverse line alongside sports and game properties.",
|
|
485
|
-
country: "United States",
|
|
486
|
-
founded: 1994,
|
|
487
|
-
highlights: ["DC Multiverse — the current DC figure line", "Sports and video-game licences alongside it"],
|
|
488
|
-
keywords: ["mcfarlane", "dc multiverse", "dc figures"],
|
|
489
|
-
seoDescription: "Shop McFarlane Toys — DC Multiverse figures and licensed sports and game lines.",
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
slug: "mattel",
|
|
493
|
-
name: "Mattel",
|
|
494
|
-
description: "American toy company behind Hot Wheels, the Pixar Cars die-cast line and a long history of licensed action figures.",
|
|
495
|
-
country: "United States",
|
|
496
|
-
founded: 1945,
|
|
497
|
-
website: "https://shop.mattel.com",
|
|
498
|
-
highlights: ["Hot Wheels and Pixar Cars", "A deep back catalogue of licensed figures"],
|
|
499
|
-
keywords: ["mattel", "pixar cars", "mattel figures"],
|
|
500
|
-
seoDescription: "Shop Mattel — Pixar Cars die-cast and licensed figure lines.",
|
|
501
|
-
},
|
|
502
|
-
{
|
|
503
|
-
slug: "hot-toys",
|
|
504
|
-
name: "Hot Toys",
|
|
505
|
-
description: "Hong Kong maker of 1/6-scale film collectibles with tailored fabric costumes and portrait likenesses — the premium ceiling of this catalogue.",
|
|
506
|
-
country: "Hong Kong",
|
|
507
|
-
founded: 2000,
|
|
508
|
-
highlights: ["1/6-scale film figures with fabric costumes", "The premium end of collectible figures"],
|
|
509
|
-
keywords: ["hot toys", "1/6 scale", "movie masterpiece"],
|
|
510
|
-
seoDescription: "Shop Hot Toys — 1/6-scale premium film collectibles.",
|
|
511
|
-
},
|
|
512
|
-
{
|
|
513
|
-
slug: "mezco",
|
|
514
|
-
name: "Mezco Toyz",
|
|
515
|
-
description: "American maker of the One:12 Collective — 1/12-scale figures with fabric costumes.",
|
|
516
|
-
country: "United States",
|
|
517
|
-
founded: 1999,
|
|
518
|
-
highlights: ["The One:12 Collective line at 1/12 scale with fabric costumes"],
|
|
519
|
-
keywords: ["mezco", "one 12 collective"],
|
|
520
|
-
seoDescription: "Shop Mezco Toyz — One:12 Collective figures.",
|
|
521
|
-
},
|
|
522
|
-
];
|
|
523
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
524
|
-
// Die-cast — ONE
|
|
525
|
-
//
|
|
526
|
-
// 🛑 Hot Wheels only, and it is the LINE rather than its parent company —
|
|
527
|
-
// matching the precedent `Beyblade` already set. The twenty other marques the
|
|
528
|
-
// crawl surfaced (Matchbox, Tomica, Mini GT, M2, Greenlight, Maisto, Kyosho …)
|
|
529
|
-
// are out of scope; their data stays in docs/research/ so re-adding one is a
|
|
530
|
-
// seed change and not another crawl.
|
|
531
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
532
|
-
const DIECAST_BRANDS = [
|
|
533
|
-
{
|
|
534
|
-
slug: "hot-wheels",
|
|
535
|
-
name: "Hot Wheels",
|
|
536
|
-
description: "Mattel's 1:64 die-cast line since 1968 — Mainline blister singles, Premium series with metal bases and Real Riders tyres, and the members-only Red Line Club.",
|
|
537
|
-
country: "United States",
|
|
538
|
-
founded: 1968,
|
|
539
|
-
website: "https://creations.mattel.com",
|
|
540
|
-
highlights: [
|
|
541
|
-
"Mainline, Premium and Red Line Club, all at 1:64",
|
|
542
|
-
"Treasure Hunt and Super Treasure Hunt chase variants identified on every listing",
|
|
543
|
-
"Indian-card releases flagged, because collectors here price them differently",
|
|
544
|
-
],
|
|
545
|
-
faqs: [
|
|
546
|
-
{ question: "What is a Super Treasure Hunt?", answer: "A chase variant within a mainline wave carrying Spectraflame paint, Real Riders rubber tyres and the TH logo — usually one per case. A regular Treasure Hunt has the flame-circle logo without the premium paint and tyres." },
|
|
547
|
-
{ question: "Why does the Indian blister card matter?", answer: "It is printed differently from the US release and collectors here value the two differently, so listings state which card a car is on rather than leaving you to compare photographs." },
|
|
548
|
-
],
|
|
549
|
-
footer: true,
|
|
550
|
-
featured: true,
|
|
551
|
-
keywords: ["hot wheels", "hot wheels india", "treasure hunt", "car culture", "diecast 1:64"],
|
|
552
|
-
seoDescription: "Shop Hot Wheels in India — Mainline, Premium, Red Line Club and chase variants at 1:64.",
|
|
553
|
-
},
|
|
554
|
-
];
|
|
555
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
556
|
-
// Living collectibles — ONE
|
|
557
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
558
|
-
const LIVING_BRANDS = [
|
|
559
|
-
{
|
|
560
|
-
slug: "independent-keepers",
|
|
561
|
-
name: "Independent Keepers",
|
|
562
|
-
description: "Live animals and plants come from individual keepers, breeders and growers rather than a manufacturer. This entry groups those listings so they are reachable from brand browsing like everything else.",
|
|
563
|
-
country: "India",
|
|
564
|
-
highlights: [
|
|
565
|
-
"Every seller is verified before a live listing can go public",
|
|
566
|
-
"Provenance, age and health information disclosed per listing",
|
|
567
|
-
],
|
|
568
|
-
faqs: [
|
|
569
|
-
{ question: "Why is there a \"brand\" for living things at all?", answer: "Purely so live listings behave like every other listing in browse and search. It identifies the class of seller, not a manufacturer." },
|
|
570
|
-
],
|
|
571
|
-
keywords: ["independent keepers", "breeders", "live plants"],
|
|
572
|
-
seoDescription: "Live animals and plants from verified independent keepers and growers.",
|
|
573
|
-
},
|
|
574
|
-
];
|
|
575
|
-
/** Declaration order is display order; `order` is assigned from it. */
|
|
576
|
-
export const BRAND_SEED_INPUTS = [
|
|
577
|
-
...BEYBLADE_BRANDS,
|
|
578
|
-
...TCG_BRANDS,
|
|
579
|
-
...FIGURE_BRANDS,
|
|
580
|
-
...DIECAST_BRANDS,
|
|
581
|
-
...LIVING_BRANDS,
|
|
582
|
-
];
|
|
583
|
-
export function buildBrandRows(stamps) {
|
|
584
|
-
const seen = new Set();
|
|
585
|
-
return BRAND_SEED_INPUTS.map((input, i) => {
|
|
586
|
-
const id = `brand-${input.slug}`;
|
|
587
|
-
/*
|
|
588
|
-
* 🛑 Fatal, not last-write-wins. A brand id derives from the slug, so two
|
|
589
|
-
* rows at one id write the first and SILENTLY overwrite it — and
|
|
590
|
-
* `appkit-seed status` cannot see it, because it counts ids and the id
|
|
591
|
-
* exists either way.
|
|
592
|
-
*/
|
|
593
|
-
if (seen.has(id))
|
|
594
|
-
throw new Error(`duplicate brand id ${id}`);
|
|
595
|
-
seen.add(id);
|
|
596
|
-
return brandRow(input, i + 1, stamps);
|
|
597
|
-
});
|
|
598
|
-
}
|
|
599
|
-
/** Asserted by the seed so a silently dropped row is loud. */
|
|
600
|
-
export const BRAND_ROW_COUNT = BRAND_SEED_INPUTS.length;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GENERATED by scripts/gen-category-content.mjs — do not edit by hand.
|
|
3
|
-
*
|
|
4
|
-
* `contentBody` per category, composed from FACTS ONLY (I7). Every clause
|
|
5
|
-
* traces to a committed source: canonical-beys.json for a model leaf,
|
|
6
|
-
* part-glossary.json for a part leaf, the forest's own child lists above them.
|
|
7
|
-
*
|
|
8
|
-
* 🛑 A node with nothing factual to say is ABSENT from this map rather than
|
|
9
|
-
* carrying an empty body — `CategoryHighlightsAndFaqSection` renders nothing
|
|
10
|
-
* when its inputs are empty, and an empty paragraph reads as a defect.
|
|
11
|
-
*
|
|
12
|
-
* 🛑 No price band appears here. `MARKET_BANDS` omits a band rather than
|
|
13
|
-
* guessing one, and a body that stated an unmeasured "typical price" would be
|
|
14
|
-
* the same guess with better typography.
|
|
15
|
-
*
|
|
16
|
-
* 🛑 No listing COUNT appears here either. Counts live in `categoryCounts` and
|
|
17
|
-
* move; a sentence saying "48 listings" is wrong the next day and nothing
|
|
18
|
-
* reports it.
|
|
19
|
-
*
|
|
20
|
-
* Model leaves with a body: 217 of 220
|
|
21
|
-
* Part leaves with a body: 534 of 752
|
|
22
|
-
*/
|
|
23
|
-
export declare const GENERATED_CATEGORY_CONTENT: Record<string, string>;
|
|
24
|
-
export declare const GENERATED_CATEGORY_CONTENT_COUNT = 751;
|