@mohasinac/appkit 4.58.0 → 4.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1080) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +62 -5
  3. package/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +2 -2
  4. package/dist/_internal/server/features/brands/actions.js +78 -4
  5. package/dist/_internal/server/features/checkout/actions.d.ts +36 -13
  6. package/dist/_internal/server/features/checkout/actions.js +668 -183
  7. package/dist/_internal/server/features/checkout/supplier-identity.js +18 -1
  8. package/dist/_internal/server/features/gateway-events/index.d.ts +10 -0
  9. package/dist/_internal/server/features/gateway-events/index.js +10 -0
  10. package/dist/_internal/server/features/gateway-events/ingest.d.ts +127 -0
  11. package/dist/_internal/server/features/gateway-events/ingest.js +188 -0
  12. package/dist/_internal/server/features/gateway-events/redact.d.ts +66 -0
  13. package/dist/_internal/server/features/gateway-events/redact.js +151 -0
  14. package/dist/_internal/server/features/grievance/actions.d.ts +63 -0
  15. package/dist/_internal/server/features/grievance/actions.js +173 -0
  16. package/dist/_internal/server/features/grievance/index.d.ts +8 -0
  17. package/dist/_internal/server/features/grievance/index.js +8 -0
  18. package/dist/_internal/server/features/grouped/data.js +28 -3
  19. package/dist/_internal/server/features/lottery/actions.js +99 -4
  20. package/dist/_internal/server/features/order-completion/actions.d.ts +92 -0
  21. package/dist/_internal/server/features/order-completion/actions.js +336 -0
  22. package/dist/_internal/server/features/order-completion/index.d.ts +7 -0
  23. package/dist/_internal/server/features/order-completion/index.js +7 -0
  24. package/dist/_internal/server/features/orders/actions.d.ts +13 -0
  25. package/dist/_internal/server/features/orders/actions.js +56 -2
  26. package/dist/_internal/server/features/orders/adapters.js +26 -0
  27. package/dist/_internal/server/features/orders/cancellation-refund.d.ts +116 -0
  28. package/dist/_internal/server/features/orders/cancellation-refund.js +466 -0
  29. package/dist/_internal/server/features/orders/index.d.ts +2 -1
  30. package/dist/_internal/server/features/orders/index.js +1 -1
  31. package/dist/_internal/server/features/orders/service.d.ts +60 -0
  32. package/dist/_internal/server/features/orders/service.js +74 -0
  33. package/dist/_internal/server/features/payment-cases/disputes.d.ts +76 -0
  34. package/dist/_internal/server/features/payment-cases/disputes.js +241 -0
  35. package/dist/_internal/server/features/payment-cases/index.d.ts +9 -0
  36. package/dist/_internal/server/features/payment-cases/index.js +9 -0
  37. package/dist/_internal/server/features/payouts/actions.d.ts +28 -3
  38. package/dist/_internal/server/features/payouts/actions.js +84 -10
  39. package/dist/_internal/server/features/points/adjust.d.ts +61 -0
  40. package/dist/_internal/server/features/points/adjust.js +121 -0
  41. package/dist/_internal/server/features/points/award.d.ts +65 -0
  42. package/dist/_internal/server/features/points/award.js +145 -0
  43. package/dist/_internal/server/features/price-index/market.d.ts +33 -0
  44. package/dist/_internal/server/features/price-index/market.js +54 -1
  45. package/dist/_internal/server/features/products/data.js +40 -22
  46. package/dist/_internal/server/features/protection-claims/actions.d.ts +72 -0
  47. package/dist/_internal/server/features/protection-claims/actions.js +228 -0
  48. package/dist/_internal/server/features/protection-claims/index.d.ts +8 -0
  49. package/dist/_internal/server/features/protection-claims/index.js +8 -0
  50. package/dist/_internal/server/features/refunds/actions.d.ts +20 -0
  51. package/dist/_internal/server/features/refunds/actions.js +259 -17
  52. package/dist/_internal/server/features/refunds/capacity.d.ts +29 -0
  53. package/dist/_internal/server/features/refunds/capacity.js +37 -0
  54. package/dist/_internal/server/features/reviews/actions.js +3 -2
  55. package/dist/_internal/server/features/search/index-build/sources.js +20 -1
  56. package/dist/_internal/server/features/shipping/reconcile.d.ts +10 -1
  57. package/dist/_internal/server/features/shipping/reconcile.js +34 -3
  58. package/dist/_internal/server/features/shipping/reimbursement.d.ts +117 -0
  59. package/dist/_internal/server/features/shipping/reimbursement.js +223 -0
  60. package/dist/_internal/server/features/stores/tabs.d.ts +19 -4
  61. package/dist/_internal/server/features/stores/tabs.js +24 -4
  62. package/dist/_internal/server/functions/https.d.ts +31 -1
  63. package/dist/_internal/server/functions/https.js +52 -1
  64. package/dist/_internal/server/functions/scheduled.d.ts +72 -1
  65. package/dist/_internal/server/functions/scheduled.js +124 -1
  66. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +62 -16
  67. package/dist/_internal/server/jobs/core/boxRollupReconcile.d.ts +46 -0
  68. package/dist/_internal/server/jobs/core/boxRollupReconcile.js +142 -0
  69. package/dist/_internal/server/jobs/core/dailyDataCleanup.js +149 -1
  70. package/dist/_internal/server/jobs/core/dailyStatusDigest.d.ts +14 -0
  71. package/dist/_internal/server/jobs/core/dailyStatusDigest.js +79 -1
  72. package/dist/_internal/server/jobs/core/index.d.ts +2 -0
  73. package/dist/_internal/server/jobs/core/index.js +2 -0
  74. package/dist/_internal/server/jobs/core/marketPriceRollup.d.ts +64 -0
  75. package/dist/_internal/server/jobs/core/marketPriceRollup.js +153 -0
  76. package/dist/_internal/server/jobs/core/obligationSweep.d.ts +36 -0
  77. package/dist/_internal/server/jobs/core/obligationSweep.js +503 -0
  78. package/dist/_internal/server/jobs/core/paymentReconcile.d.ts +79 -0
  79. package/dist/_internal/server/jobs/core/paymentReconcile.js +614 -0
  80. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +34 -0
  81. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +35 -4
  82. package/dist/_internal/server/jobs/handlers/boxRollupReconcile.d.ts +2 -0
  83. package/dist/_internal/server/jobs/handlers/boxRollupReconcile.js +15 -0
  84. package/dist/_internal/server/jobs/handlers/countersReconcileNow.d.ts +65 -0
  85. package/dist/_internal/server/jobs/handlers/countersReconcileNow.js +89 -0
  86. package/dist/_internal/server/jobs/handlers/index.d.ts +5 -0
  87. package/dist/_internal/server/jobs/handlers/index.js +5 -0
  88. package/dist/_internal/server/jobs/handlers/marketPriceRollup.d.ts +2 -0
  89. package/dist/_internal/server/jobs/handlers/marketPriceRollup.js +2 -0
  90. package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
  91. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  92. package/dist/_internal/server/jobs/handlers/obligationSweep.d.ts +2 -0
  93. package/dist/_internal/server/jobs/handlers/obligationSweep.js +15 -0
  94. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +30 -1
  95. package/dist/_internal/server/jobs/handlers/paymentReconcile.d.ts +2 -0
  96. package/dist/_internal/server/jobs/handlers/paymentReconcile.js +6 -0
  97. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  98. package/dist/_internal/shared/actions/action-registry.js +71 -0
  99. package/dist/_internal/shared/checkout/coupon-discount.d.ts +73 -0
  100. package/dist/_internal/shared/checkout/coupon-discount.js +103 -0
  101. package/dist/_internal/shared/checkout/lanes.d.ts +42 -0
  102. package/dist/_internal/shared/checkout/lanes.js +46 -0
  103. package/dist/_internal/shared/checkout/order-math.d.ts +149 -1
  104. package/dist/_internal/shared/checkout/order-math.js +251 -3
  105. package/dist/_internal/shared/checkout/refundable-base.d.ts +116 -0
  106. package/dist/_internal/shared/checkout/refundable-base.js +122 -0
  107. package/dist/_internal/shared/features/auctions/config.d.ts +14 -1
  108. package/dist/_internal/shared/features/auctions/config.js +30 -1
  109. package/dist/_internal/shared/features/brands/schema.d.ts +42 -0
  110. package/dist/_internal/shared/features/brands/schema.js +18 -0
  111. package/dist/_internal/shared/features/orders/refund-copy.d.ts +22 -0
  112. package/dist/_internal/shared/features/orders/refund-copy.js +34 -0
  113. package/dist/_internal/shared/features/print/label-profiles.d.ts +198 -0
  114. package/dist/_internal/shared/features/print/label-profiles.js +350 -0
  115. package/dist/_internal/shared/features/products/to-product-item.js +33 -5
  116. package/dist/_internal/shared/fees/calculator.d.ts +31 -2
  117. package/dist/_internal/shared/fees/calculator.js +103 -5
  118. package/dist/_internal/shared/fees/india-states.d.ts +195 -0
  119. package/dist/_internal/shared/fees/india-states.js +190 -0
  120. package/dist/_internal/shared/fees/payout-hold.d.ts +80 -0
  121. package/dist/_internal/shared/fees/payout-hold.js +74 -0
  122. package/dist/_internal/shared/obligations/deadlines.d.ts +94 -0
  123. package/dist/_internal/shared/obligations/deadlines.js +155 -0
  124. package/dist/_internal/shared/shipping/quote.d.ts +96 -0
  125. package/dist/_internal/shared/shipping/quote.js +67 -0
  126. package/dist/_internal/shared/time/business-days.d.ts +91 -0
  127. package/dist/_internal/shared/time/business-days.js +185 -0
  128. package/dist/_internal/shared/types/base-document.d.ts +1 -1
  129. package/dist/cli/index.js +0 -2
  130. package/dist/client.d.ts +9 -4
  131. package/dist/client.js +26 -3
  132. package/dist/configs/tailwind.d.ts +0 -12
  133. package/dist/configs/tailwind.js +28 -15
  134. package/dist/constants/api-endpoints.d.ts +51 -9
  135. package/dist/constants/api-endpoints.js +23 -7
  136. package/dist/constants/index.d.ts +1 -1
  137. package/dist/constants/index.js +1 -1
  138. package/dist/constants/seed-meta.d.ts +113 -0
  139. package/dist/constants/seed-meta.js +91 -0
  140. package/dist/contracts/index.d.ts +1 -1
  141. package/dist/contracts/payment.d.ts +131 -0
  142. package/dist/features/about/components/AboutView.js +1 -1
  143. package/dist/features/about/components/DeveloperView.js +5 -2
  144. package/dist/features/about/components/FAQPageView.js +2 -1
  145. package/dist/features/about/components/FeesView.js +2 -1
  146. package/dist/features/about/components/HelpPageView.js +2 -1
  147. package/dist/features/about/components/HowAuctionsWorkView.js +2 -1
  148. package/dist/features/about/components/HowCheckoutWorksView.js +2 -1
  149. package/dist/features/about/components/HowEmiWorksView.js +2 -1
  150. package/dist/features/about/components/HowOffersWorkView.js +2 -1
  151. package/dist/features/about/components/HowOrdersWorkView.js +2 -1
  152. package/dist/features/about/components/HowPayoutsWorkView.js +2 -1
  153. package/dist/features/about/components/HowPreOrdersWorkView.js +2 -1
  154. package/dist/features/about/components/HowReviewsWorkView.js +2 -1
  155. package/dist/features/about/components/PolicyPageView.js +2 -1
  156. package/dist/features/about/components/ProseHero.d.ts +73 -0
  157. package/dist/features/about/components/ProseHero.js +18 -0
  158. package/dist/features/about/components/SecurityPrivacyView.js +2 -1
  159. package/dist/features/about/components/ShippingPolicyView.js +2 -1
  160. package/dist/features/about/components/TrackOrderView.js +2 -1
  161. package/dist/features/about/components/UnauthorizedView.js +1 -1
  162. package/dist/features/about/index.d.ts +2 -0
  163. package/dist/features/about/index.js +5 -0
  164. package/dist/features/account/actions/address-actions.d.ts +26 -2
  165. package/dist/features/account/actions/address-actions.js +25 -1
  166. package/dist/features/account/components/BuyerShoppingGuideView.js +1 -1
  167. package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
  168. package/dist/features/account/components/UserOrdersView.js +17 -0
  169. package/dist/features/account/components/UserSidebar.js +1 -1
  170. package/dist/features/account/hooks/useNotifications.js +29 -0
  171. package/dist/features/admin/actions/admin-coupon-actions.js +36 -0
  172. package/dist/features/admin/components/AdminBeysView.js +2 -2
  173. package/dist/features/admin/components/AdminBlogEditorView.js +2 -2
  174. package/dist/features/admin/components/AdminBrandEditorView.js +32 -2
  175. package/dist/features/admin/components/AdminBundleEditorView.js +1 -1
  176. package/dist/features/admin/components/AdminCarouselEditorView.js +1 -1
  177. package/dist/features/admin/components/AdminCategoriesView.js +1 -1
  178. package/dist/features/admin/components/AdminCategoryEditorView.js +73 -17
  179. package/dist/features/admin/components/AdminContactEditorView.js +1 -1
  180. package/dist/features/admin/components/AdminCouponEditorView.js +26 -1
  181. package/dist/features/admin/components/AdminFaqEditorView.js +1 -1
  182. package/dist/features/admin/components/AdminFaqsView.js +2 -2
  183. package/dist/features/admin/components/AdminGatewayEventsView.d.ts +54 -0
  184. package/dist/features/admin/components/AdminGatewayEventsView.js +209 -0
  185. package/dist/features/admin/components/AdminGuideHubView.js +1 -1
  186. package/dist/features/admin/components/AdminMoneyCasesView.d.ts +60 -0
  187. package/dist/features/admin/components/AdminMoneyCasesView.js +287 -0
  188. package/dist/features/admin/components/AdminPartsView.js +2 -2
  189. package/dist/features/admin/components/AdminProductsView.js +75 -4
  190. package/dist/features/admin/components/AdminSidebar.js +2 -2
  191. package/dist/features/admin/components/AdminSiteSettingsView.js +65 -7
  192. package/dist/features/admin/components/AdminSublistingCategoriesView.js +2 -0
  193. package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
  194. package/dist/features/admin/components/AdminSupportTicketsView.js +2 -2
  195. package/dist/features/admin/components/AdminTesterChecklistView.js +2 -2
  196. package/dist/features/admin/components/AdminUsersView.js +72 -1
  197. package/dist/features/admin/components/AdminViewCards.d.ts +3 -1
  198. package/dist/features/admin/components/AdminViewCards.js +4 -4
  199. package/dist/features/admin/components/DataListingView.d.ts +28 -0
  200. package/dist/features/admin/components/DataListingView.js +175 -14
  201. package/dist/features/admin/components/DataTable.d.ts +12 -1
  202. package/dist/features/admin/components/DataTable.js +3 -3
  203. package/dist/features/admin/components/OwnerQuickActions.d.ts +1 -1
  204. package/dist/features/admin/components/OwnerQuickActions.js +60 -2
  205. package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +1 -1
  206. package/dist/features/admin/components/RecordOwnerQuickActions.js +61 -14
  207. package/dist/features/admin/components/analytics/AdminStatCard.d.ts +35 -1
  208. package/dist/features/admin/components/analytics/AdminStatCard.js +77 -2
  209. package/dist/features/admin/components/index.d.ts +4 -0
  210. package/dist/features/admin/components/index.js +6 -0
  211. package/dist/features/admin/constants/filter-tabs.d.ts +156 -0
  212. package/dist/features/admin/constants/filter-tabs.js +106 -0
  213. package/dist/features/admin/repository/site-settings.repository.d.ts +22 -0
  214. package/dist/features/admin/repository/site-settings.repository.js +82 -1
  215. package/dist/features/admin/schemas/admin-editor-forms.d.ts +21 -0
  216. package/dist/features/admin/schemas/admin-editor-forms.js +44 -0
  217. package/dist/features/admin/schemas/firestore.js +5 -1
  218. package/dist/features/admin/schemas/site-settings-form.js +30 -1
  219. package/dist/features/auctions/actions/bid-actions.js +13 -1
  220. package/dist/features/auctions/components/AuctionBottomActions.js +2 -2
  221. package/dist/features/auctions/components/AuctionDetailPageView.js +3 -1
  222. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +11 -0
  223. package/dist/features/auctions/components/MarketplaceAuctionCard.js +5 -3
  224. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +8 -1
  225. package/dist/features/auctions/components/PlaceBidFormClient.js +2 -2
  226. package/dist/features/audit-log/schemas/firestore.d.ts +28 -0
  227. package/dist/features/audit-log/schemas/firestore.js +14 -0
  228. package/dist/features/auth/permissions/constants.d.ts +17 -1
  229. package/dist/features/auth/permissions/constants.js +18 -0
  230. package/dist/features/blog/components/BlogPostView.js +1 -1
  231. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +1 -1
  232. package/dist/features/categories/api/[id]/description-template/route.js +107 -1
  233. package/dist/features/categories/components/BrandDetailPageView.js +2 -2
  234. package/dist/features/categories/components/BreadcrumbTrail.js +7 -1
  235. package/dist/features/categories/components/BundleDetailView.js +1 -1
  236. package/dist/features/categories/components/CategoryDetailPageView.js +2 -2
  237. package/dist/features/categories/components/CategoryForm.js +12 -1
  238. package/dist/features/categories/components/CategoryTemplatePicker.js +38 -5
  239. package/dist/features/categories/repository/market-price-index.repository.d.ts +123 -0
  240. package/dist/features/categories/repository/market-price-index.repository.js +105 -0
  241. package/dist/features/categories/repository/price-observation.repository.d.ts +166 -0
  242. package/dist/features/categories/repository/price-observation.repository.js +132 -0
  243. package/dist/features/events/components/EventSaleBanner.js +1 -1
  244. package/dist/features/events/components/EventStatusBadge.js +1 -1
  245. package/dist/features/faq/components/FAQAccordion.js +2 -1
  246. package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
  247. package/dist/features/faq/components/FAQHelpfulButtons.js +4 -4
  248. package/dist/features/faq/components/RelatedFAQs.js +1 -1
  249. package/dist/features/filters/FilterFacetSection.js +1 -1
  250. package/dist/features/filters/SwitchFilter.js +1 -1
  251. package/dist/features/gateway-events/repository/gateway-events.repository.d.ts +117 -0
  252. package/dist/features/gateway-events/repository/gateway-events.repository.js +274 -0
  253. package/dist/features/gateway-events/schemas/firestore.d.ts +217 -0
  254. package/dist/features/gateway-events/schemas/firestore.js +125 -0
  255. package/dist/features/gateway-events/schemas/index.d.ts +81 -0
  256. package/dist/features/gateway-events/schemas/index.js +79 -0
  257. package/dist/features/grouped/components/GroupedListingDetailView.js +1 -1
  258. package/dist/features/homepage/components/AnnouncementBar.js +37 -1
  259. package/dist/features/homepage/components/AnnouncementBar.style.css +30 -0
  260. package/dist/features/homepage/components/BrandsSection.js +1 -1
  261. package/dist/features/homepage/components/CTABannerSection.js +1 -1
  262. package/dist/features/homepage/components/FeaturedBundlesSection.js +14 -24
  263. package/dist/features/homepage/components/HeroCarousel.js +2 -2
  264. package/dist/features/homepage/components/SocialPostCard.js +1 -1
  265. package/dist/features/inventory/components/AdminMoveLedgerView.d.ts +7 -0
  266. package/dist/features/inventory/components/AdminMoveLedgerView.js +157 -0
  267. package/dist/features/inventory/components/AdminStorageBoxesView.d.ts +11 -0
  268. package/dist/features/inventory/components/AdminStorageBoxesView.js +168 -0
  269. package/dist/features/inventory/components/ReceiveStationView.d.ts +39 -0
  270. package/dist/features/inventory/components/ReceiveStationView.js +413 -0
  271. package/dist/features/inventory/components/operator-message.d.ts +29 -0
  272. package/dist/features/inventory/components/operator-message.js +41 -0
  273. package/dist/features/inventory/index.d.ts +13 -0
  274. package/dist/features/inventory/index.js +28 -0
  275. package/dist/features/inventory/repository/inventory-movements.repository.d.ts +97 -0
  276. package/dist/features/inventory/repository/inventory-movements.repository.js +186 -0
  277. package/dist/features/inventory/repository/inventory-placements.repository.d.ts +179 -0
  278. package/dist/features/inventory/repository/inventory-placements.repository.js +345 -0
  279. package/dist/features/inventory/repository/storage-boxes.repository.d.ts +83 -0
  280. package/dist/features/inventory/repository/storage-boxes.repository.js +127 -0
  281. package/dist/features/inventory/schemas/firestore.d.ts +197 -0
  282. package/dist/features/inventory/schemas/firestore.js +159 -0
  283. package/dist/features/layout/AppLayoutShell.d.ts +12 -1
  284. package/dist/features/layout/AppLayoutShell.js +25 -12
  285. package/dist/features/layout/AutoBreadcrumbs.js +162 -3
  286. package/dist/features/layout/AutoBreadcrumbs.style.css +45 -0
  287. package/dist/features/layout/BottomNavbar.d.ts +1 -1
  288. package/dist/features/layout/BottomNavbar.js +2 -2
  289. package/dist/features/media/MediaAvatar.js +1 -1
  290. package/dist/features/media/MediaImage.d.ts +24 -4
  291. package/dist/features/media/MediaImage.js +44 -4
  292. package/dist/features/media/MediaLightbox.js +1 -1
  293. package/dist/features/media/modals/ImageCropModal.js +1 -1
  294. package/dist/features/media/modals/ImageEditor.js +1 -1
  295. package/dist/features/media/upload/MediaUploadField.js +91 -3
  296. package/dist/features/obligations/constants/policies.d.ts +92 -0
  297. package/dist/features/obligations/constants/policies.js +378 -0
  298. package/dist/features/obligations/repository/obligations.repository.d.ts +68 -0
  299. package/dist/features/obligations/repository/obligations.repository.js +158 -0
  300. package/dist/features/obligations/schemas/firestore.d.ts +160 -0
  301. package/dist/features/obligations/schemas/firestore.js +87 -0
  302. package/dist/features/orders/actions/order-actions.d.ts +43 -4
  303. package/dist/features/orders/actions/order-actions.js +60 -3
  304. package/dist/features/orders/actions/refund-actions.js +70 -10
  305. package/dist/features/orders/components/OrderCompletionPanel.d.ts +27 -0
  306. package/dist/features/orders/components/OrderCompletionPanel.js +192 -0
  307. package/dist/features/orders/components/OrdersList.js +2 -2
  308. package/dist/features/orders/components/RefundHistoryTable.js +3 -1
  309. package/dist/features/orders/components/index.d.ts +2 -0
  310. package/dist/features/orders/components/index.js +6 -0
  311. package/dist/features/orders/constants/transitions.d.ts +59 -0
  312. package/dist/features/orders/constants/transitions.js +104 -0
  313. package/dist/features/orders/repository/orders.repository.d.ts +109 -6
  314. package/dist/features/orders/repository/orders.repository.js +464 -21
  315. package/dist/features/orders/schemas/firestore.d.ts +270 -0
  316. package/dist/features/orders/schemas/firestore.js +24 -0
  317. package/dist/features/orders/schemas/index.d.ts +61 -0
  318. package/dist/features/orders/schemas/index.js +22 -0
  319. package/dist/features/orders/types/index.d.ts +79 -0
  320. package/dist/features/parts/components/PartsIndexPageView.js +8 -1
  321. package/dist/features/payment-cases/repository/payment-cases.repository.d.ts +170 -0
  322. package/dist/features/payment-cases/repository/payment-cases.repository.js +342 -0
  323. package/dist/features/payment-cases/schemas/firestore.d.ts +229 -0
  324. package/dist/features/payment-cases/schemas/firestore.js +105 -0
  325. package/dist/features/payment-cases/schemas/resolve-form.d.ts +97 -0
  326. package/dist/features/payment-cases/schemas/resolve-form.js +114 -0
  327. package/dist/features/payments/repository/payout.repository.d.ts +0 -1
  328. package/dist/features/payments/repository/payout.repository.js +0 -1
  329. package/dist/features/points/repository/points.repository.d.ts +122 -0
  330. package/dist/features/points/repository/points.repository.js +304 -1
  331. package/dist/features/points/schemas/adjust-form.d.ts +58 -0
  332. package/dist/features/points/schemas/adjust-form.js +63 -0
  333. package/dist/features/points/schemas/firestore.d.ts +108 -1
  334. package/dist/features/points/schemas/firestore.js +84 -0
  335. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +3 -3
  336. package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
  337. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -1
  338. package/dist/features/price-index/components/PriceIndexToolView.d.ts +23 -4
  339. package/dist/features/price-index/components/PriceIndexToolView.js +71 -6
  340. package/dist/features/price-index/market-stats.d.ts +82 -0
  341. package/dist/features/price-index/market-stats.js +230 -0
  342. package/dist/features/print/components/BoxLabelPrintView.d.ts +25 -0
  343. package/dist/features/print/components/BoxLabelPrintView.js +66 -0
  344. package/dist/features/print/components/LabelProfilePicker.d.ts +13 -0
  345. package/dist/features/print/components/LabelProfilePicker.js +38 -0
  346. package/dist/features/print/components/labels.d.ts +117 -0
  347. package/dist/features/print/components/labels.js +258 -0
  348. package/dist/features/print/components/labels.style.css +46 -0
  349. package/dist/features/print/index.d.ts +6 -0
  350. package/dist/features/print/index.js +16 -0
  351. package/dist/features/products/columns/productTableColumns.js +5 -4
  352. package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
  353. package/dist/features/products/components/MarketplacePrizeDrawCard.js +6 -6
  354. package/dist/features/products/components/PrizeDrawCollage.js +1 -1
  355. package/dist/features/products/components/PrizeDrawItemsEditor.js +1 -1
  356. package/dist/features/products/components/PrizeRevealModal.js +2 -2
  357. package/dist/features/products/components/ProductDetailPageView.js +18 -4
  358. package/dist/features/products/components/ProductForm.js +34 -23
  359. package/dist/features/products/components/ProductGrid.js +86 -62
  360. package/dist/features/products/constants/card-badges.d.ts +97 -0
  361. package/dist/features/products/constants/card-badges.js +100 -0
  362. package/dist/features/products/repository/products.repository.js +34 -1
  363. package/dist/features/products/schemas/firestore.d.ts +46 -3
  364. package/dist/features/products/schemas/firestore.js +21 -0
  365. package/dist/features/promotions/components/PromotionsView.js +1 -1
  366. package/dist/features/promotions/repository/claimed-coupons.repository.d.ts +32 -0
  367. package/dist/features/promotions/repository/claimed-coupons.repository.js +58 -0
  368. package/dist/features/promotions/schemas/firestore.js +30 -3
  369. package/dist/features/promotions/schemas/index.d.ts +6 -6
  370. package/dist/features/protection-claims/repository/protection-claims.repository.d.ts +54 -0
  371. package/dist/features/protection-claims/repository/protection-claims.repository.js +174 -0
  372. package/dist/features/protection-claims/schemas/firestore.d.ts +168 -0
  373. package/dist/features/protection-claims/schemas/firestore.js +130 -0
  374. package/dist/features/reviews/actions/review-actions.js +3 -2
  375. package/dist/features/reviews/components/ReviewModal.js +1 -1
  376. package/dist/features/reviews/components/ReviewsList.js +1 -1
  377. package/dist/features/reviews/schemas/firestore.d.ts +20 -1
  378. package/dist/features/scams/constants/scam-types.d.ts +2 -0
  379. package/dist/features/scams/constants/scam-types.js +18 -0
  380. package/dist/features/scams/schemas/report-form.d.ts +3 -3
  381. package/dist/features/scams/schemas/report-form.js +26 -1
  382. package/dist/features/search/components/Search.js +9 -9
  383. package/dist/features/search/components/SearchResultsClient.js +18 -3
  384. package/dist/features/search/components/SearchResultsPageView.d.ts +1 -6
  385. package/dist/features/search/components/SearchResultsPageView.js +2 -2
  386. package/dist/features/seller/actions/offer-actions.js +16 -1
  387. package/dist/features/seller/actions/seller-actions.js +14 -3
  388. package/dist/features/seller/components/CategoryInlineSelect.js +75 -11
  389. package/dist/features/seller/components/PrintCenterView.d.ts +5 -0
  390. package/dist/features/seller/components/PrintCenterView.js +41 -30
  391. package/dist/features/seller/components/SellerOrdersView.js +1 -1
  392. package/dist/features/seller/components/SellerPayoutRequestView.js +16 -5
  393. package/dist/features/seller/components/SellerPayoutSettingsView.js +1 -1
  394. package/dist/features/seller/components/SellerProductShell.d.ts +16 -0
  395. package/dist/features/seller/components/SellerProductShell.js +123 -13
  396. package/dist/features/seller/components/SellerReviewsView.js +4 -2
  397. package/dist/features/seller/components/SellerSidebar.js +1 -1
  398. package/dist/features/seller/schemas/coupon-form.d.ts +26 -0
  399. package/dist/features/seller/schemas/coupon-form.js +27 -0
  400. package/dist/features/seller/schemas/product-form.d.ts +3 -0
  401. package/dist/features/seller/schemas/product-form.js +5 -0
  402. package/dist/features/shell/FormShell.js +2 -2
  403. package/dist/features/shell/QuickFormDrawer.js +14 -0
  404. package/dist/features/shell/SectionForm.d.ts +19 -0
  405. package/dist/features/shell/SectionForm.js +133 -9
  406. package/dist/features/shell/SectionForm.style.css +54 -0
  407. package/dist/features/shipments/components/AdminShipmentsView.js +16 -1
  408. package/dist/features/shipments/repository/shipment-items.repository.d.ts +9 -0
  409. package/dist/features/shipments/repository/shipment-items.repository.js +14 -0
  410. package/dist/features/site-settings/components/ActionPermissionsManager.js +1 -1
  411. package/dist/features/sticker-trace/components/StickerCommitPanel.js +1 -1
  412. package/dist/features/store-extensions/schemas/report-review-form.d.ts +8 -8
  413. package/dist/features/stores/components/StoreGuideHubView.js +1 -1
  414. package/dist/features/stores/components/StoreHeader.js +1 -1
  415. package/dist/features/support/schemas/firestore.d.ts +73 -2
  416. package/dist/features/support/schemas/firestore.js +59 -0
  417. package/dist/index.d.ts +16 -155
  418. package/dist/index.js +88 -341
  419. package/dist/next/ErrorBoundary.js +1 -1
  420. package/dist/next/routing/route-map.d.ts +24 -0
  421. package/dist/next/routing/route-map.js +40 -0
  422. package/dist/providers/payment-manual/index.d.ts +15 -1
  423. package/dist/providers/payment-manual/index.js +37 -0
  424. package/dist/providers/payment-phonepe/index.d.ts +14 -1
  425. package/dist/providers/payment-phonepe/index.js +36 -0
  426. package/dist/providers/payment-razorpay/index.d.ts +44 -1
  427. package/dist/providers/payment-razorpay/index.js +99 -0
  428. package/dist/providers/shipping-shiprocket/index.d.ts +18 -0
  429. package/dist/providers/shipping-shiprocket/index.js +18 -0
  430. package/dist/schemas/registry.d.ts +44 -11
  431. package/dist/server-entry.d.ts +2 -0
  432. package/dist/server-entry.js +27 -0
  433. package/dist/server.d.ts +42 -69
  434. package/dist/server.js +93 -69
  435. package/dist/styles.css +418 -149
  436. package/dist/tailwind-utilities.css +1 -1
  437. package/dist/tokens/themes/default-dark.js +15 -12
  438. package/dist/tokens/themes/default-light.js +14 -11
  439. package/dist/tokens/tokens.css +106 -23
  440. package/dist/ui/DataTable.style.css +4 -4
  441. package/dist/ui/columns/cell-renderers.d.ts +20 -0
  442. package/dist/ui/columns/cell-renderers.js +26 -1
  443. package/dist/ui/columns/index.d.ts +1 -1
  444. package/dist/ui/columns/index.js +4 -1
  445. package/dist/ui/components/Badge.style.css +1 -1
  446. package/dist/ui/components/Breadcrumb.js +19 -1
  447. package/dist/ui/components/BulkActionBar.style.css +4 -4
  448. package/dist/ui/components/Button.style.css +1 -1
  449. package/dist/ui/components/Checkbox.style.css +1 -1
  450. package/dist/ui/components/FallbackShell.js +1 -1
  451. package/dist/ui/components/Form.d.ts +14 -1
  452. package/dist/ui/components/Form.js +2 -2
  453. package/dist/ui/components/FormField.js +18 -4
  454. package/dist/ui/components/FormField.style.css +43 -3
  455. package/dist/ui/components/GatedPrice.style.css +1 -1
  456. package/dist/ui/components/IconButton.style.css +1 -1
  457. package/dist/ui/components/Input.js +22 -1
  458. package/dist/ui/components/Input.style.css +38 -22
  459. package/dist/ui/components/ListingFilterDrawer.js +1 -1
  460. package/dist/ui/components/ListingToolbar.js +1 -1
  461. package/dist/ui/components/PaginatedSelect.js +0 -0
  462. package/dist/ui/components/Radio.style.css +1 -1
  463. package/dist/ui/components/Repeater.d.ts +53 -0
  464. package/dist/ui/components/Repeater.js +7 -0
  465. package/dist/ui/components/RichTextEditor.d.ts +20 -1
  466. package/dist/ui/components/RichTextEditor.js +23 -2
  467. package/dist/ui/components/Select.style.css +7 -21
  468. package/dist/ui/components/Semantic.js +27 -3
  469. package/dist/ui/components/TagInput.style.css +4 -9
  470. package/dist/ui/components/Textarea.style.css +4 -18
  471. package/dist/ui/components/Toggle.style.css +1 -1
  472. package/dist/ui/components/Typography.d.ts +3 -3
  473. package/dist/ui/components/Typography.js +15 -15
  474. package/dist/ui/components/ViewToggle.style.css +4 -4
  475. package/dist/ui/forms/AddAnotherToggle.d.ts +16 -0
  476. package/dist/ui/forms/AddAnotherToggle.js +56 -0
  477. package/dist/ui/forms/ColorPickerField.js +15 -2
  478. package/dist/ui/forms/FieldCheckbox.js +15 -2
  479. package/dist/ui/forms/FieldInput.d.ts +22 -1
  480. package/dist/ui/forms/FieldInput.js +19 -5
  481. package/dist/ui/forms/FieldLabel.d.ts +35 -0
  482. package/dist/ui/forms/FieldLabel.js +70 -0
  483. package/dist/ui/forms/FieldSelect.d.ts +4 -1
  484. package/dist/ui/forms/FieldSelect.js +27 -5
  485. package/dist/ui/forms/FieldTextarea.d.ts +4 -1
  486. package/dist/ui/forms/FieldTextarea.js +22 -5
  487. package/dist/ui/forms/FormShell.d.ts +17 -1
  488. package/dist/ui/forms/FormShell.js +36 -2
  489. package/dist/ui/forms/FormShell.style.css +41 -33
  490. package/dist/ui/forms/index.d.ts +5 -1
  491. package/dist/ui/forms/index.js +2 -0
  492. package/dist/ui/icons/icon-registry.d.ts +1 -0
  493. package/dist/ui/icons/icon-registry.js +17 -1
  494. package/dist/utils/id-generators.d.ts +80 -0
  495. package/dist/utils/id-generators.js +93 -0
  496. package/dist/utils/search-txt-builders.d.ts +12 -0
  497. package/dist/utils/search-txt-builders.js +17 -0
  498. package/package.json +4 -2
  499. package/scripts/seed-cli.mjs +175 -6
  500. package/dist/features/loyalty/api/admin/loyalty/grant/route.d.ts +0 -12
  501. package/dist/features/loyalty/api/admin/loyalty/grant/route.js +0 -38
  502. package/dist/features/loyalty/api/balance/route.d.ts +0 -12
  503. package/dist/features/loyalty/api/balance/route.js +0 -41
  504. package/dist/features/loyalty/api/earn/route.d.ts +0 -12
  505. package/dist/features/loyalty/api/earn/route.js +0 -38
  506. package/dist/features/loyalty/api/history/route.d.ts +0 -12
  507. package/dist/features/loyalty/api/history/route.js +0 -58
  508. package/dist/features/loyalty/api/redeem/route.d.ts +0 -12
  509. package/dist/features/loyalty/api/redeem/route.js +0 -38
  510. package/dist/features/loyalty/columns/index.d.ts +0 -17
  511. package/dist/features/loyalty/columns/index.js +0 -40
  512. package/dist/features/loyalty/components/CoinsDisplay.d.ts +0 -12
  513. package/dist/features/loyalty/components/CoinsDisplay.js +0 -10
  514. package/dist/features/loyalty/components/index.d.ts +0 -1
  515. package/dist/features/loyalty/components/index.js +0 -1
  516. package/dist/features/loyalty/hooks/useLoyaltyBalance.d.ts +0 -4
  517. package/dist/features/loyalty/hooks/useLoyaltyBalance.js +0 -25
  518. package/dist/features/loyalty/index.d.ts +0 -6
  519. package/dist/features/loyalty/index.js +0 -6
  520. package/dist/features/loyalty/manifest.d.ts +0 -2
  521. package/dist/features/loyalty/manifest.js +0 -16
  522. package/dist/features/loyalty/messages/en.json +0 -19
  523. package/dist/features/loyalty/repository/loyalty.repository.d.ts +0 -8
  524. package/dist/features/loyalty/repository/loyalty.repository.js +0 -22
  525. package/dist/features/loyalty/schemas/index.d.ts +0 -85
  526. package/dist/features/loyalty/schemas/index.js +0 -40
  527. package/dist/features/loyalty/server.d.ts +0 -6
  528. package/dist/features/loyalty/server.js +0 -6
  529. package/dist/features/loyalty/types/index.d.ts +0 -31
  530. package/dist/features/loyalty/types/index.js +0 -1
  531. package/dist/features/loyalty/types/loyalty-config.d.ts +0 -7
  532. package/dist/features/loyalty/types/loyalty-config.js +0 -1
  533. package/dist/features/loyalty/types/loyalty-math.d.ts +0 -9
  534. package/dist/features/loyalty/types/loyalty-math.js +0 -27
  535. package/dist/features/products/components/ProductOwnerQuickActions.d.ts +0 -11
  536. package/dist/features/products/components/ProductOwnerQuickActions.js +0 -120
  537. package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
  538. package/dist/features/tester/seed-data/_happy-path.js +0 -710
  539. package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
  540. package/dist/features/tester/seed-data/_money-flows.js +0 -610
  541. package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
  542. package/dist/features/tester/seed-data/authored/_types.js +0 -35
  543. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
  544. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
  545. package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
  546. package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
  547. package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
  548. package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
  549. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
  550. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
  551. package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
  552. package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
  553. package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
  554. package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
  555. package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
  556. package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
  557. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
  558. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
  559. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
  560. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
  561. package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
  562. package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
  563. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
  564. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
  565. package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
  566. package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
  567. package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
  568. package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
  569. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
  570. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
  571. package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
  572. package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
  573. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
  574. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
  575. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
  576. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
  577. package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
  578. package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
  579. package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
  580. package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
  581. package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
  582. package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
  583. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
  584. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
  585. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
  586. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
  587. package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
  588. package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
  589. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
  590. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
  591. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
  592. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
  593. package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
  594. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
  595. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
  596. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
  597. package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
  598. package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
  599. package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
  600. package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
  601. package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
  602. package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
  603. package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
  604. package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
  605. package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
  606. package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
  607. package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
  608. package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
  609. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
  610. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
  611. package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
  612. package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
  613. package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
  614. package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
  615. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
  616. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
  617. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
  618. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
  619. package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
  620. package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
  621. package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
  622. package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
  623. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
  624. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
  625. package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
  626. package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
  627. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
  628. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
  629. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
  630. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
  631. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
  632. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
  633. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
  634. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
  635. package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
  636. package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
  637. package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
  638. package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
  639. package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
  640. package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
  641. package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
  642. package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
  643. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
  644. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
  645. package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
  646. package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
  647. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
  648. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
  649. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
  650. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
  651. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
  652. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
  653. package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
  654. package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
  655. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
  656. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
  657. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
  658. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
  659. package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
  660. package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
  661. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
  662. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
  663. package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
  664. package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
  665. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
  666. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
  667. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
  668. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
  669. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
  670. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
  671. package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
  672. package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
  673. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
  674. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
  675. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
  676. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
  677. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
  678. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
  679. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
  680. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
  681. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
  682. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
  683. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
  684. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
  685. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
  686. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
  687. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
  688. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
  689. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
  690. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
  691. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
  692. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
  693. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
  694. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
  695. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
  696. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
  697. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
  698. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
  699. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
  700. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
  701. package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
  702. package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
  703. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
  704. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
  705. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
  706. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
  707. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
  708. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
  709. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
  710. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
  711. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
  712. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
  713. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
  714. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
  715. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
  716. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
  717. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
  718. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
  719. package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
  720. package/dist/features/tester/seed-data/authored/index.js +0 -301
  721. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
  722. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
  723. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
  724. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
  725. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
  726. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
  727. package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
  728. package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
  729. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
  730. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
  731. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
  732. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
  733. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
  734. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
  735. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
  736. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
  737. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
  738. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
  739. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
  740. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
  741. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
  742. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
  743. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
  744. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
  745. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
  746. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
  747. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
  748. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
  749. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
  750. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
  751. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
  752. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
  753. package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
  754. package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
  755. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
  756. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
  757. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
  758. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
  759. package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
  760. package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
  761. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
  762. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
  763. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
  764. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
  765. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
  766. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
  767. package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
  768. package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
  769. package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
  770. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
  771. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
  772. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
  773. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
  774. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
  775. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
  776. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
  777. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
  778. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
  779. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
  780. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
  781. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
  782. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
  783. package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
  784. package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
  785. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
  786. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
  787. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
  788. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
  789. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
  790. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
  791. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
  792. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
  793. package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
  794. package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
  795. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
  796. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
  797. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
  798. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
  799. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
  800. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
  801. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
  802. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
  803. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
  804. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
  805. package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
  806. package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
  807. package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
  808. package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
  809. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
  810. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
  811. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
  812. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
  813. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
  814. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
  815. package/dist/features/tester/seed-data/index.d.ts +0 -2
  816. package/dist/features/tester/seed-data/index.js +0 -2
  817. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
  818. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
  819. package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
  820. package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
  821. package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
  822. package/dist/features/tester/seed-data/tester-window.js +0 -66
  823. package/dist/seed/_helpers/brand-rows.d.ts +0 -35
  824. package/dist/seed/_helpers/brand-rows.js +0 -600
  825. package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
  826. package/dist/seed/_helpers/category-content-generated.js +0 -1853
  827. package/dist/seed/_helpers/category-content.d.ts +0 -68
  828. package/dist/seed/_helpers/category-content.js +0 -731
  829. package/dist/seed/_helpers/category-forest.d.ts +0 -4
  830. package/dist/seed/_helpers/category-forest.js +0 -824
  831. package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
  832. package/dist/seed/_helpers/category-images-generated.js +0 -618
  833. package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
  834. package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
  835. package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
  836. package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
  837. package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
  838. package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
  839. package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
  840. package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
  841. package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
  842. package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
  843. package/dist/seed/_helpers/category-models.d.ts +0 -12
  844. package/dist/seed/_helpers/category-models.js +0 -45
  845. package/dist/seed/_helpers/category-names.d.ts +0 -54
  846. package/dist/seed/_helpers/category-names.js +0 -118
  847. package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
  848. package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
  849. package/dist/seed/_helpers/category-parts.d.ts +0 -9
  850. package/dist/seed/_helpers/category-parts.js +0 -15022
  851. package/dist/seed/_helpers/category-tree.d.ts +0 -27
  852. package/dist/seed/_helpers/category-tree.js +0 -119
  853. package/dist/seed/_helpers/character-features.d.ts +0 -10
  854. package/dist/seed/_helpers/character-features.js +0 -120
  855. package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
  856. package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
  857. package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
  858. package/dist/seed/_helpers/franchise-rows.js +0 -189
  859. package/dist/seed/_helpers/media.d.ts +0 -67
  860. package/dist/seed/_helpers/media.js +0 -172
  861. package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
  862. package/dist/seed/_helpers/part-colours-generated.js +0 -273
  863. package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
  864. package/dist/seed/_helpers/product-search-txt.js +0 -23
  865. package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
  866. package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
  867. package/dist/seed/addresses-seed-data.d.ts +0 -2
  868. package/dist/seed/addresses-seed-data.js +0 -78
  869. package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
  870. package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
  871. package/dist/seed/bey-products-seed-data.d.ts +0 -18
  872. package/dist/seed/bey-products-seed-data.js +0 -18011
  873. package/dist/seed/beys/chunk0.d.ts +0 -17
  874. package/dist/seed/beys/chunk0.js +0 -36733
  875. package/dist/seed/beys/chunk1.d.ts +0 -17
  876. package/dist/seed/beys/chunk1.js +0 -35728
  877. package/dist/seed/beys/chunk2.d.ts +0 -17
  878. package/dist/seed/beys/chunk2.js +0 -35857
  879. package/dist/seed/beys/chunk3.d.ts +0 -17
  880. package/dist/seed/beys/chunk3.js +0 -34476
  881. package/dist/seed/beys-seed-data.d.ts +0 -18
  882. package/dist/seed/beys-seed-data.js +0 -11
  883. package/dist/seed/bids-seed-data.d.ts +0 -2
  884. package/dist/seed/bids-seed-data.js +0 -206
  885. package/dist/seed/blog-posts-seed-data.d.ts +0 -6
  886. package/dist/seed/blog-posts-seed-data.js +0 -442
  887. package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
  888. package/dist/seed/carousel-slides-seed-data.js +0 -411
  889. package/dist/seed/carousels-seed-data.d.ts +0 -2
  890. package/dist/seed/carousels-seed-data.js +0 -36
  891. package/dist/seed/cart-seed-data.d.ts +0 -2
  892. package/dist/seed/cart-seed-data.js +0 -241
  893. package/dist/seed/catalogue-seed-data.d.ts +0 -2
  894. package/dist/seed/catalogue-seed-data.js +0 -112
  895. package/dist/seed/categories-seed-data.d.ts +0 -3
  896. package/dist/seed/categories-seed-data.js +0 -816
  897. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
  898. package/dist/seed/claimed-coupons-seed-data.js +0 -85
  899. package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
  900. package/dist/seed/coupon-usage-seed-data.js +0 -55
  901. package/dist/seed/coupons-seed-data.d.ts +0 -2
  902. package/dist/seed/coupons-seed-data.js +0 -226
  903. package/dist/seed/defaults/categories.d.ts +0 -2
  904. package/dist/seed/defaults/categories.js +0 -12
  905. package/dist/seed/defaults/faqs.d.ts +0 -2
  906. package/dist/seed/defaults/faqs.js +0 -40
  907. package/dist/seed/events-seed-data.d.ts +0 -7
  908. package/dist/seed/events-seed-data.js +0 -482
  909. package/dist/seed/factories/address.factory.d.ts +0 -21
  910. package/dist/seed/factories/address.factory.js +0 -44
  911. package/dist/seed/factories/bid.factory.d.ts +0 -15
  912. package/dist/seed/factories/bid.factory.js +0 -33
  913. package/dist/seed/factories/blog-post.factory.d.ts +0 -15
  914. package/dist/seed/factories/blog-post.factory.js +0 -22
  915. package/dist/seed/factories/carousel.factory.d.ts +0 -11
  916. package/dist/seed/factories/carousel.factory.js +0 -17
  917. package/dist/seed/factories/cart.factory.d.ts +0 -25
  918. package/dist/seed/factories/cart.factory.js +0 -35
  919. package/dist/seed/factories/category.factory.d.ts +0 -11
  920. package/dist/seed/factories/category.factory.js +0 -16
  921. package/dist/seed/factories/coupon.factory.d.ts +0 -21
  922. package/dist/seed/factories/coupon.factory.js +0 -43
  923. package/dist/seed/factories/faq.factory.d.ts +0 -10
  924. package/dist/seed/factories/faq.factory.js +0 -15
  925. package/dist/seed/factories/notification.factory.d.ts +0 -18
  926. package/dist/seed/factories/notification.factory.js +0 -39
  927. package/dist/seed/factories/order.factory.d.ts +0 -20
  928. package/dist/seed/factories/order.factory.js +0 -20
  929. package/dist/seed/factories/payout.factory.d.ts +0 -21
  930. package/dist/seed/factories/payout.factory.js +0 -38
  931. package/dist/seed/factories/product.factory.d.ts +0 -27
  932. package/dist/seed/factories/product.factory.js +0 -80
  933. package/dist/seed/factories/review.factory.d.ts +0 -14
  934. package/dist/seed/factories/review.factory.js +0 -52
  935. package/dist/seed/factories/session.factory.d.ts +0 -15
  936. package/dist/seed/factories/session.factory.js +0 -31
  937. package/dist/seed/factories/store.factory.d.ts +0 -23
  938. package/dist/seed/factories/store.factory.js +0 -47
  939. package/dist/seed/factories/user.factory.d.ts +0 -19
  940. package/dist/seed/factories/user.factory.js +0 -56
  941. package/dist/seed/faq-seed-data.d.ts +0 -18
  942. package/dist/seed/faq-seed-data.js +0 -1956
  943. package/dist/seed/firestore-indexes.d.ts +0 -12
  944. package/dist/seed/firestore-indexes.js +0 -31
  945. package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
  946. package/dist/seed/grouped-listings-seed-data.js +0 -283
  947. package/dist/seed/history-seed-data.d.ts +0 -12
  948. package/dist/seed/history-seed-data.js +0 -70
  949. package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
  950. package/dist/seed/homepage-sections-seed-data.js +0 -1034
  951. package/dist/seed/index.d.ts +0 -100
  952. package/dist/seed/index.js +0 -115
  953. package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
  954. package/dist/seed/lottery-entries-seed-data.js +0 -108
  955. package/dist/seed/manifest.d.ts +0 -16
  956. package/dist/seed/manifest.js +0 -235
  957. package/dist/seed/media-assets-seed-data.d.ts +0 -22
  958. package/dist/seed/media-assets-seed-data.js +0 -5593
  959. package/dist/seed/model-composition-seed-data.d.ts +0 -15
  960. package/dist/seed/model-composition-seed-data.js +0 -9032
  961. package/dist/seed/notifications-seed-data.d.ts +0 -2
  962. package/dist/seed/notifications-seed-data.js +0 -606
  963. package/dist/seed/offers-seed-data.d.ts +0 -2
  964. package/dist/seed/offers-seed-data.js +0 -398
  965. package/dist/seed/orders-seed-data.d.ts +0 -2
  966. package/dist/seed/orders-seed-data.js +0 -845
  967. package/dist/seed/part-glossary/chunk0.d.ts +0 -9
  968. package/dist/seed/part-glossary/chunk0.js +0 -35448
  969. package/dist/seed/part-glossary/chunk1.d.ts +0 -9
  970. package/dist/seed/part-glossary/chunk1.js +0 -40494
  971. package/dist/seed/part-glossary/chunk2.d.ts +0 -9
  972. package/dist/seed/part-glossary/chunk2.js +0 -51242
  973. package/dist/seed/part-glossary/chunk3.d.ts +0 -9
  974. package/dist/seed/part-glossary/chunk3.js +0 -53337
  975. package/dist/seed/part-glossary/chunk4.d.ts +0 -9
  976. package/dist/seed/part-glossary/chunk4.js +0 -51454
  977. package/dist/seed/part-glossary-seed-data.d.ts +0 -15
  978. package/dist/seed/part-glossary-seed-data.js +0 -25
  979. package/dist/seed/payouts-seed-data.d.ts +0 -2
  980. package/dist/seed/payouts-seed-data.js +0 -302
  981. package/dist/seed/product-features-seed-data.d.ts +0 -3
  982. package/dist/seed/product-features-seed-data.js +0 -366
  983. package/dist/seed/products-art-seed-data.d.ts +0 -2
  984. package/dist/seed/products-art-seed-data.js +0 -289
  985. package/dist/seed/products-auctions-seed-data.d.ts +0 -2
  986. package/dist/seed/products-auctions-seed-data.js +0 -475
  987. package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
  988. package/dist/seed/products-beyblade-x-seed-data.js +0 -476
  989. package/dist/seed/products-catalogue/chunk0.d.ts +0 -12
  990. package/dist/seed/products-catalogue/chunk0.js +0 -7262
  991. package/dist/seed/products-catalogue/chunk1.d.ts +0 -12
  992. package/dist/seed/products-catalogue/chunk1.js +0 -7290
  993. package/dist/seed/products-catalogue/chunk10.d.ts +0 -12
  994. package/dist/seed/products-catalogue/chunk10.js +0 -7290
  995. package/dist/seed/products-catalogue/chunk11.d.ts +0 -12
  996. package/dist/seed/products-catalogue/chunk11.js +0 -7005
  997. package/dist/seed/products-catalogue/chunk12.d.ts +0 -12
  998. package/dist/seed/products-catalogue/chunk12.js +0 -7002
  999. package/dist/seed/products-catalogue/chunk13.d.ts +0 -12
  1000. package/dist/seed/products-catalogue/chunk13.js +0 -7002
  1001. package/dist/seed/products-catalogue/chunk14.d.ts +0 -12
  1002. package/dist/seed/products-catalogue/chunk14.js +0 -7002
  1003. package/dist/seed/products-catalogue/chunk15.d.ts +0 -12
  1004. package/dist/seed/products-catalogue/chunk15.js +0 -7002
  1005. package/dist/seed/products-catalogue/chunk16.d.ts +0 -12
  1006. package/dist/seed/products-catalogue/chunk16.js +0 -7002
  1007. package/dist/seed/products-catalogue/chunk17.d.ts +0 -12
  1008. package/dist/seed/products-catalogue/chunk17.js +0 -7002
  1009. package/dist/seed/products-catalogue/chunk18.d.ts +0 -12
  1010. package/dist/seed/products-catalogue/chunk18.js +0 -4398
  1011. package/dist/seed/products-catalogue/chunk2.d.ts +0 -12
  1012. package/dist/seed/products-catalogue/chunk2.js +0 -7268
  1013. package/dist/seed/products-catalogue/chunk3.d.ts +0 -12
  1014. package/dist/seed/products-catalogue/chunk3.js +0 -7264
  1015. package/dist/seed/products-catalogue/chunk4.d.ts +0 -12
  1016. package/dist/seed/products-catalogue/chunk4.js +0 -7268
  1017. package/dist/seed/products-catalogue/chunk5.d.ts +0 -12
  1018. package/dist/seed/products-catalogue/chunk5.js +0 -7258
  1019. package/dist/seed/products-catalogue/chunk6.d.ts +0 -12
  1020. package/dist/seed/products-catalogue/chunk6.js +0 -7268
  1021. package/dist/seed/products-catalogue/chunk7.d.ts +0 -12
  1022. package/dist/seed/products-catalogue/chunk7.js +0 -7311
  1023. package/dist/seed/products-catalogue/chunk8.d.ts +0 -12
  1024. package/dist/seed/products-catalogue/chunk8.js +0 -7304
  1025. package/dist/seed/products-catalogue/chunk9.d.ts +0 -12
  1026. package/dist/seed/products-catalogue/chunk9.js +0 -7309
  1027. package/dist/seed/products-catalogue-seed-data.d.ts +0 -2
  1028. package/dist/seed/products-catalogue-seed-data.js +0 -60
  1029. package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
  1030. package/dist/seed/products-classifieds-seed-data.js +0 -435
  1031. package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
  1032. package/dist/seed/products-digital-codes-seed-data.js +0 -395
  1033. package/dist/seed/products-live-items-seed-data.d.ts +0 -7
  1034. package/dist/seed/products-live-items-seed-data.js +0 -269
  1035. package/dist/seed/products-preorders-seed-data.d.ts +0 -2
  1036. package/dist/seed/products-preorders-seed-data.js +0 -360
  1037. package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
  1038. package/dist/seed/products-prize-draws-seed-data.js +0 -427
  1039. package/dist/seed/products-spares-seed-data.d.ts +0 -2
  1040. package/dist/seed/products-spares-seed-data.js +0 -368
  1041. package/dist/seed/products-standard-seed-data.d.ts +0 -2
  1042. package/dist/seed/products-standard-seed-data.js +0 -632
  1043. package/dist/seed/products-stickers-seed-data.d.ts +0 -2
  1044. package/dist/seed/products-stickers-seed-data.js +0 -319
  1045. package/dist/seed/reviews-seed-data.d.ts +0 -1
  1046. package/dist/seed/reviews-seed-data.js +0 -185
  1047. package/dist/seed/runner.d.ts +0 -2
  1048. package/dist/seed/runner.js +0 -125
  1049. package/dist/seed/scammers-seed-data.d.ts +0 -2
  1050. package/dist/seed/scammers-seed-data.js +0 -235
  1051. package/dist/seed/seed-market-config.d.ts +0 -48
  1052. package/dist/seed/seed-market-config.js +0 -199
  1053. package/dist/seed/seed-purpose.d.ts +0 -299
  1054. package/dist/seed/seed-purpose.js +0 -440
  1055. package/dist/seed/sessions-seed-data.d.ts +0 -3
  1056. package/dist/seed/sessions-seed-data.js +0 -116
  1057. package/dist/seed/shipments-seed-data.d.ts +0 -5
  1058. package/dist/seed/shipments-seed-data.js +0 -185
  1059. package/dist/seed/site-settings-seed-data.d.ts +0 -2
  1060. package/dist/seed/site-settings-seed-data.js +0 -1069
  1061. package/dist/seed/store-addresses-seed-data.d.ts +0 -18
  1062. package/dist/seed/store-addresses-seed-data.js +0 -71
  1063. package/dist/seed/store-extensions-seed-data.d.ts +0 -11
  1064. package/dist/seed/store-extensions-seed-data.js +0 -292
  1065. package/dist/seed/stores-seed-data.d.ts +0 -6
  1066. package/dist/seed/stores-seed-data.js +0 -242
  1067. package/dist/seed/support-tickets-seed-data.d.ts +0 -16
  1068. package/dist/seed/support-tickets-seed-data.js +0 -239
  1069. package/dist/seed/tax-codes-seed-data.d.ts +0 -34
  1070. package/dist/seed/tax-codes-seed-data.js +0 -100
  1071. package/dist/seed/test-data-ttl.d.ts +0 -29
  1072. package/dist/seed/test-data-ttl.js +0 -31
  1073. package/dist/seed/test-utils.d.ts +0 -49
  1074. package/dist/seed/test-utils.js +0 -110
  1075. package/dist/seed/types.d.ts +0 -89
  1076. package/dist/seed/types.js +0 -15
  1077. package/dist/seed/users-seed-data.d.ts +0 -2
  1078. package/dist/seed/users-seed-data.js +0 -597
  1079. package/dist/seed/wishlists-seed-data.d.ts +0 -12
  1080. package/dist/seed/wishlists-seed-data.js +0 -54
@@ -1,731 +0,0 @@
1
- /*
2
- * WHY: ~382 category nodes need description templates and product defaults,
3
- * and inlining them per node is 382 places a fix has to land. The crawl
4
- * is the evidence that this is the right shape: worldhobbyshop reuses
5
- * exactly TWO bodies across 1,195 listings, so the bodies are a small
6
- * closed set and the per-category part is which set applies.
7
- * WHAT: The five reusable description bodies, the measured day-1 market bands,
8
- * and per-vertical `productDefaults` factories. Authored ONCE.
9
- *
10
- * EXPORTS:
11
- * TEMPLATES — the five bodies, by variant
12
- * templateSet — pick a subset by variant for a category
13
- * marketBand — a measured {p25, median, p75, sampleSize, asOf} band
14
- * beyDefaults / partDefaults / launcherDefaults / stadiumDefaults
15
- * tcgDefaults / figureDefaults / diecastDefaults / accessoryDefaults
16
- *
17
- * 🛑 Every number in MARKET_BANDS is MEASURED, from
18
- * docs/research/competitor-crawl-2026-10/price-bands.md, with its real
19
- * sample size. A band with no evidence is omitted rather than guessed —
20
- * a fabricated "typical price" is worse than no hint, because a seller
21
- * prices against it.
22
- *
23
- * 🛑 `sold` is never seeded. It is OUR completed sales and we have none for
24
- * most leaves; `priceIndexRollup` (C1) is its only writer, and it must
25
- * never touch `market`.
26
- *
27
- * @tag domain:categories
28
- * @tag layer:seed
29
- * @tag pattern:shared-literal
30
- * @tag access:server-only
31
- * @tag consumers:seed/_helpers/category-forest.ts
32
- * @tag sideEffects:none
33
- */
34
- /**
35
- * When the competitor crawl was taken. Fixed, never `new Date()` — a seed file
36
- * is re-executed on every `appkit-seed` invocation, so a moving timestamp makes
37
- * `load` non-idempotent (Root Cause #25).
38
- */
39
- export const CRAWL_AS_OF = new Date("2026-10-09T00:00:00.000Z");
40
- // ─────────────────────────────────────────────────────────────────────────────
41
- // The five description bodies
42
- //
43
- // Shapes taken from the crawl; every word is ours. The counter-example is
44
- // raikagesbeybladestore, whose 114-char bodies are lifted verbatim from the
45
- // Beyblade Wiki and one of which ships with the literal UI string "Add to
46
- // Wishlist Add to Wishlist" welded into the product body.
47
- //
48
- // 🛑 No `{{price}}` slot, deliberately. A price in free text is an ungated
49
- // public price that `<GatedPrice>` cannot wrap, and `audit-guest-price-leak`
50
- // R2 blocks it.
51
- // ─────────────────────────────────────────────────────────────────────────────
52
- const PRE_OWNED_BODY = `<h2>{{title}}</h2>
53
- <p>A pre-owned {{category}} listing from the {{series}} line, sold as pictured.</p>
54
- <h3>Important things to know</h3>
55
- <ul>
56
- <li><strong>Condition:</strong> {{condition}}. The photographs are of the actual item, not a stock image.</li>
57
- <li><strong>What is included:</strong> only what is shown. Launchers, ripcords and stadiums are sold separately unless pictured.</li>
58
- <li><strong>Wear:</strong> a used {{category}} will show handling marks. Anything structural — a chip, a crack, a stripped tooth — is called out above and photographed.</li>
59
- <li><strong>Authenticity:</strong> stated on this listing. Reproduction parts are labelled as such and never described as original.</li>
60
- </ul>
61
- <p>Sold by a verified seller on {{siteName}}, with buyer protection on every order.</p>`;
62
- const NEW_IN_BOX_BODY = `<h2>{{title}}</h2>
63
- <p>Sealed, unopened {{category}} from the {{series}} line.</p>
64
- <h3>Specification</h3>
65
- <ul>
66
- <li><strong>Manufacturer:</strong> {{brand}}</li>
67
- <li><strong>Condition:</strong> {{condition}}</li>
68
- <li><strong>Series:</strong> {{series}}</li>
69
- <li><strong>System:</strong> {{system}}</li>
70
- <li><strong>Category:</strong> {{categoryPath}}</li>
71
- </ul>
72
- <h3>What is in the box?</h3>
73
- <p>Factory contents, unopened. Where a release includes a launcher or ripcord it is listed in the specification above; where it does not, it is a top-only release.</p>
74
- <p>Listed by a verified seller on {{siteName}}.</p>`;
75
- const NEW_IN_PACKET_BODY = `<h2>{{title}}</h2>
76
- <p>New {{category}} on its original card or in its original polybag — never used, packaging unopened.</p>
77
- <ul>
78
- <li><strong>Manufacturer:</strong> {{brand}}</li>
79
- <li><strong>Condition:</strong> {{condition}}</li>
80
- <li><strong>Series:</strong> {{series}}</li>
81
- </ul>
82
- <p>Card and bag wear is normal on stock of this age and is photographed where present. The item itself is untouched.</p>`;
83
- const REPLICA_BODY = `<h2>{{title}}</h2>
84
- <p><strong>This is a reproduction, not an original {{brand}} release.</strong> It is listed as one deliberately, because knowing which you are buying is the point.</p>
85
- <h3>What that means</h3>
86
- <ul>
87
- <li>A reproduction is an unlicensed copy of an original design. It carries no manufacturer's marque.</li>
88
- <li>Build quality on reproductions varies. Weight and balance may differ from the original, which matters in competitive play.</li>
89
- <li>Some tournament formats permit certain reproduction parts and some do not — check your local format before buying to compete.</li>
90
- <li>This is <em>not</em> a counterfeit sold as genuine. If you believe a listing misrepresents a reproduction as original, report it.</li>
91
- </ul>
92
- <p><strong>Condition:</strong> {{condition}}. Sold as pictured.</p>`;
93
- const DEFAULT_BODY = `<h2>{{title}}</h2>
94
- <p>{{category}} from the {{series}} line, listed by a verified seller on {{siteName}}.</p>
95
- <ul>
96
- <li><strong>Manufacturer:</strong> {{brand}}</li>
97
- <li><strong>Condition:</strong> {{condition}}</li>
98
- <li><strong>Category:</strong> {{categoryPath}}</li>
99
- </ul>
100
- <p>Condition and authenticity are stated on every listing. Photographs are of the actual item.</p>`;
101
- /**
102
- * The five bodies, by variant.
103
- *
104
- * `placeholders` is deliberately LEFT ABSENT on all five: the field's contract
105
- * is that absent means "re-parse", and `extractPlaceholders(body)` is the one
106
- * implementation. Writing the list here by hand would be a second copy that
107
- * drifts the first time a body is edited — and the failure mode is a published
108
- * description containing a literal `{{series}}`.
109
- */
110
- export const TEMPLATES = {
111
- default: {
112
- id: "tpl-default",
113
- label: "Standard — manufacturer, condition, category",
114
- variant: "default",
115
- body: DEFAULT_BODY,
116
- version: 1,
117
- },
118
- new_in_box: {
119
- id: "tpl-new-in-box",
120
- label: "New in box — sealed, with a specification table",
121
- variant: "new_in_box",
122
- body: NEW_IN_BOX_BODY,
123
- version: 1,
124
- },
125
- new_in_packet: {
126
- id: "tpl-new-in-packet",
127
- label: "New in packet — carded or bagged, unopened",
128
- variant: "new_in_packet",
129
- body: NEW_IN_PACKET_BODY,
130
- version: 1,
131
- },
132
- pre_owned: {
133
- id: "tpl-pre-owned",
134
- label: "Pre-owned — condition exactly as pictured",
135
- variant: "pre_owned",
136
- body: PRE_OWNED_BODY,
137
- version: 1,
138
- },
139
- replica: {
140
- id: "tpl-replica",
141
- label: "Reproduction — disclosed, with a what-this-means panel",
142
- variant: "replica",
143
- body: REPLICA_BODY,
144
- version: 1,
145
- },
146
- };
147
- /**
148
- * ── D12: the BEYBLADE bodies, which are the only ones that state PARTS ─────
149
- *
150
- * 🛑 A separate set rather than adding the slot to the shared bodies, and the
151
- * reason is mechanical: `COLLECTIBLE_TEMPLATES` is also what every figure,
152
- * Hot Wheels and TCG category uses, and a `{{partBreakdown}}` on a Marvel
153
- * Legends listing resolves to nothing. The endpoint strips the line when
154
- * there is no composition, so the artifact would be invisible rather than
155
- * wrong — but it would also be a read attempted on four roots that can never
156
- * satisfy it, on an endpoint the seller form hits on every category change.
157
- *
158
- * Assigned to the 21 `line(...)` nodes, which are Beyblade generation lines
159
- * and nothing else — their children are `MODEL_LEAVES`. A model leaf carries
160
- * no body of its own and INHERITS this one, while the slot resolves against
161
- * the leaf's OWN composition. That is the whole design: one body per
162
- * generation, 216 models' worth of parts.
163
- */
164
- const BEY_PARTS_LINE = ` <li><strong>Parts:</strong> {{partBreakdown}}</li>`;
165
- /** The slot sits on its own source line, because the strip is line-based. */
166
- function withPartsLine(body) {
167
- return body.replace("</ul>", `${BEY_PARTS_LINE}
168
- </ul>`);
169
- }
170
- const BEY_TEMPLATE_VARIANTS = [
171
- "new_in_box",
172
- "pre_owned",
173
- "replica",
174
- "default",
175
- ];
176
- export const BEY_TEMPLATES = BEY_TEMPLATE_VARIANTS.map((v) => ({ ...TEMPLATES[v], body: withPartsLine(TEMPLATES[v].body) }));
177
- /** The set a normal collectible category offers. */
178
- export const COLLECTIBLE_TEMPLATES = [
179
- TEMPLATES.new_in_box,
180
- TEMPLATES.pre_owned,
181
- TEMPLATES.replica,
182
- TEMPLATES.default,
183
- ];
184
- /** Parts and small accessories arrive carded or loose, not boxed. */
185
- export const PART_TEMPLATES = [
186
- TEMPLATES.new_in_packet,
187
- TEMPLATES.pre_owned,
188
- TEMPLATES.replica,
189
- TEMPLATES.default,
190
- ];
191
- /** Sealed-only verticals (TCG sealed product, model kits) — no repro tier. */
192
- export const SEALED_TEMPLATES = [
193
- TEMPLATES.new_in_box,
194
- TEMPLATES.pre_owned,
195
- TEMPLATES.default,
196
- ];
197
- export function templateSet(...variants) {
198
- return variants.map((v) => TEMPLATES[v]);
199
- }
200
- /*
201
- * Day-1 bands, keyed by the leaf they belong to.
202
- *
203
- * 🛑 EVERY ROW HERE TRACES TO A LINE IN
204
- * docs/research/competitor-crawl-2026-10/price-bands.md. Nothing is
205
- * interpolated, averaged across sources, or extrapolated from a
206
- * neighbouring leaf. A leaf the crawl has no evidence for is ABSENT from
207
- * this map and renders no hint at all — ten of them are, and they are
208
- * listed at the bottom so their absence is a recorded decision rather than
209
- * an oversight.
210
- *
211
- * 🛑 An earlier draft of this map invented a sample size for all 21 Beyblade
212
- * top lines, because the type required one. The crawl's own rule is the
213
- * reason that matters: *"quote `n`, because a band with n=2 is not
214
- * evidence"* — so a fabricated n is not a cosmetic liberty, it is the
215
- * confidence signal replaced with a guess. `sampleSize` is optional now,
216
- * and these 21 rows legitimately have none.
217
- *
218
- * SOURCE PRIORITY: worldhobbyshop first wherever it has data, which is every
219
- * Beyblade band except HMS. HMS is beybladeshopindia at n=39 against WHS's
220
- * n=2, and `src` records that so the decision is reviewable rather than
221
- * buried. Parts pricing is raikages-only (the sole component-level source in
222
- * the crawl), and TCG / figures / Hot Wheels come from the sites that sell
223
- * them, since WHS carries none of those verticals.
224
- */
225
- const MARKET_BANDS = {
226
- // ── Beyblade tops, by line. WHS + beybladeshopindia; no per-leaf n ────────
227
- "category-original-plastic-gen": { p25: 799, median: 899, p75: 1499, src: "worldhobbyshop (plastic-3-layer)" },
228
- "category-original-spin-gear": { p25: 799, median: 1399, p75: 1799, src: "worldhobbyshop (spin-gear-sf)" },
229
- "category-original-magnacore": { p25: 999, median: 1699, p75: 1999, src: "worldhobbyshop (magna-core-v-force)" },
230
- // 🛑 The one row where a larger sample beat worldhobbyshop, and it is
231
- // recorded because the gap is enormous: beybladeshopindia n=39 against WHS
232
- // n=2. HMS is also the highest-value Beyblade tier on the site, so getting
233
- // it from a coin-flip sample would mis-anchor every HMS listing.
234
- "category-original-hms": { p25: 2999, median: 3999, p75: 9999, n: 39, src: "beybladeshopindia n=39 (worldhobbyshop had n=2)" },
235
- "category-metal-phws": { p25: 799, median: 899, p75: 999, src: "worldhobbyshop (phws-metal-system)" },
236
- "category-metal-fusion": { p25: 799, median: 999, p75: 1499, src: "worldhobbyshop (metal-fusion)" },
237
- "category-metal-masters": { p25: 1099, median: 1499, p75: 1999, src: "worldhobbyshop (metal-masters)" },
238
- "category-metal-fury-4d": { p25: 1799, median: 2399, p75: 2999, src: "worldhobbyshop (metal-fury-4d)" },
239
- "category-metal-shogun-steel": { p25: 1599, median: 2499, p75: 2999, src: "worldhobbyshop (shogun-steel-zero-g)" },
240
- // The crawl lists single-layer (299/299/399) and dual-layer (299/399/399)
241
- // separately and the taxonomy collapses them to one leaf, so the band
242
- // collapses with them — to the documented 299/399/399, not to a midpoint
243
- // somebody computed.
244
- "category-burst-classic": { p25: 299, median: 399, p75: 399, src: "worldhobbyshop (single-layer + dual-layer, collapsed)" },
245
- "category-burst-god": { p25: 599, median: 599, p75: 999, src: "worldhobbyshop (burst-god-evolution)" },
246
- "category-burst-cho-z": { p25: 599, median: 799, p75: 999, src: "worldhobbyshop (burst-cho-z-turbo)" },
247
- "category-burst-gt": { p25: 799, median: 999, p75: 1099, src: "worldhobbyshop (burst-gt-rise)" },
248
- "category-burst-superking": { p25: 999, median: 999, p75: 1499, src: "worldhobbyshop (burst-superking-surge)" },
249
- "category-burst-db": { p25: 999, median: 1399, p75: 1799, src: "worldhobbyshop (burst-db-quaddrive)" },
250
- "category-burst-bu": { p25: 1499, median: 1599, p75: 1799, src: "worldhobbyshop (burst-bu-quadstrike)" },
251
- "category-x-basic": { p25: 799, median: 999, p75: 1499, src: "worldhobbyshop (x-basic-s1)" },
252
- "category-x-unique-ux": { p25: 1199, median: 1399, p75: 1699, src: "worldhobbyshop (x-unique-ux)" },
253
- "category-x-custom-cx": { p25: 1299, median: 1499, p75: 1799, src: "worldhobbyshop (x-custom-cx)" },
254
- "category-x-over": { p25: 999, median: 1099, p75: 1499, src: "worldhobbyshop (x-over-remakes)" },
255
- // ── Parts. raikages is the ONLY component-level source in the crawl ───────
256
- "category-metal-energy-rings": { p25: 149, median: 199, p75: 249, n: 68, src: "raikages n=68" },
257
- "category-metal-fusion-wheels": { p25: 149, median: 249, p75: 299, n: 52, src: "raikages n=52" },
258
- "category-metal-spin-tracks": { p25: 149, median: 199, p75: 249, n: 53, src: "raikages n=53" },
259
- "category-metal-performance-tips": { p25: 129, median: 139, p75: 149, n: 25, src: "raikages n=25" },
260
- // WHS prices Burst parts as ONE pool (n=82) and X parts as one pool (n=14);
261
- // it does not split layers from discs from drivers. The three leaves share
262
- // the pooled band, and `src` says so rather than implying three measurements.
263
- "category-burst-layers": { p25: 99, median: 149, p75: 249, n: 82, src: "worldhobbyshop n=82, POOLED across all Burst parts" },
264
- "category-burst-discs": { p25: 99, median: 149, p75: 249, n: 82, src: "worldhobbyshop n=82, POOLED across all Burst parts" },
265
- "category-burst-drivers": { p25: 99, median: 149, p75: 249, n: 82, src: "worldhobbyshop n=82, POOLED across all Burst parts" },
266
- "category-x-blades": { p25: 199, median: 299, p75: 299, n: 14, src: "worldhobbyshop n=14, POOLED across all X parts" },
267
- "category-x-ratchets": { p25: 199, median: 299, p75: 299, n: 14, src: "worldhobbyshop n=14, POOLED across all X parts" },
268
- "category-x-bits": { p25: 199, median: 299, p75: 299, n: 14, src: "worldhobbyshop n=14, POOLED across all X parts" },
269
- // ── Launchers. One pooled band per generation, again as WHS measured it ───
270
- "category-original-ripcord-launchers": { p25: 199, median: 299, p75: 899, n: 32, src: "worldhobbyshop n=32, POOLED across original-era launchers" },
271
- "category-original-winders": { p25: 199, median: 299, p75: 899, n: 32, src: "worldhobbyshop n=32, POOLED across original-era launchers" },
272
- "category-metal-string-launchers": { p25: 399, median: 599, p75: 849, n: 37, src: "worldhobbyshop n=37, POOLED across Metal Fight launchers" },
273
- "category-metal-ripcord-launchers": { p25: 399, median: 599, p75: 849, n: 37, src: "worldhobbyshop n=37, POOLED across Metal Fight launchers" },
274
- "category-metal-lr-launchers": { p25: 399, median: 599, p75: 849, n: 37, src: "worldhobbyshop n=37, POOLED across Metal Fight launchers" },
275
- "category-burst-string-launchers": { p25: 399, median: 599, p75: 699, n: 78, src: "worldhobbyshop n=78, POOLED across Burst launchers" },
276
- "category-burst-lr-launchers": { p25: 399, median: 599, p75: 699, n: 78, src: "worldhobbyshop n=78, POOLED across Burst launchers" },
277
- "category-burst-grips": { p25: 399, median: 599, p75: 699, n: 78, src: "worldhobbyshop n=78, POOLED across Burst launchers" },
278
- "category-x-string-launchers": { p25: 299, median: 599, p75: 700, n: 34, src: "worldhobbyshop n=34, POOLED across X launchers" },
279
- "category-x-winders": { p25: 299, median: 599, p75: 700, n: 34, src: "worldhobbyshop n=34, POOLED across X launchers" },
280
- "category-x-grips": { p25: 299, median: 599, p75: 700, n: 34, src: "worldhobbyshop n=34, POOLED across X launchers" },
281
- // ── Stadiums. ONE band, EIGHT leaves ──────────────────────────────────────
282
- // WHS does not split stadiums by generation — its single "Stadiums & Arenas"
283
- // category states the split in PROSE, because WooCommerce's flat taxonomy
284
- // could not hold it. So there is no per-generation evidence, and inventing
285
- // four bands from one sample of seven would be fabrication. The leaves stay
286
- // split (a BX-10 Xtreme Stadium is a Beyblade X product); the band does not.
287
- "category-original-bakuten-arena": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
288
- "category-original-attack-stadium": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
289
- "category-metal-standard-stadiums": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
290
- "category-metal-zero-g-stadiums": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
291
- "category-burst-standard-stadiums": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
292
- "category-burst-stadium-variants": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
293
- "category-x-xtreme-stadiums": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
294
- "category-x-standard-stadiums": { p25: 2000, median: 2999, p75: 3499, n: 7, src: "worldhobbyshop n=7, ALL generations pooled" },
295
- // ── TCG. tcgrepublic + hobbykart. WHS sells no cards ─────────────────────
296
- "category-pokemon-singles": { p25: 350, median: 400, p75: 500, n: 545, src: "tcgrepublic n=545 (singles, all games)" },
297
- "category-one-piece-singles": { p25: 350, median: 400, p75: 500, n: 545, src: "tcgrepublic n=545 (singles, all games)" },
298
- "category-pokemon-graded": { p25: 4600, median: 8000, p75: 11000, n: 15, src: "hobbykart n=15 (graded slabs)" },
299
- "category-one-piece-graded": { p25: 4600, median: 8000, p75: 11000, n: 15, src: "hobbykart n=15 (graded slabs)" },
300
- "category-tcg-weiss-schwarz": { p25: 3500, median: 6500, p75: 7500, n: 14, src: "tcgrepublic n=14" },
301
- "category-card-sleeves-toploaders": { p25: 250, median: 800, p75: 1800, n: 31, src: "tcgrepublic n=31 (supplies, pooled)" },
302
- "category-card-binders-boxes": { p25: 250, median: 800, p75: 1800, n: 31, src: "tcgrepublic n=31 (supplies, pooled)" },
303
- "category-card-slab-display": { p25: 250, median: 800, p75: 1800, n: 31, src: "tcgrepublic n=31 (supplies, pooled)" },
304
- // ── Figures. hobson + redeyemerch ────────────────────────────────────────
305
- "category-anime-scale-1-12": { p25: 3499, median: 5900, p75: 7999, n: 34, src: "hobson n=34 (1/12 scale)" },
306
- // The only band the crawl has for mid-scale statues is its general "Anime
307
- // Figures" tag, not a 1/7-or-1/8 measurement. Used, and labelled as general.
308
- "category-anime-scale-1-7-1-8": { p25: 1199, median: 1699, p75: 2499, n: 94, src: "redeyemerch n=94, GENERAL anime-figure band (not scale-specific)" },
309
- "category-anime-prize-figures": { p25: 1999, median: 2699, p75: 2999, n: 23, src: "hobson n=23 (prize figures)" },
310
- "category-comic-marvel-legends": { p25: 2999, median: 3999, p75: 5499, n: 41, src: "hobson n=41" },
311
- "category-comic-vintage-toybiz": { p25: 3499, median: 3999, p75: 4499, n: 22, src: "hobson n=22" },
312
- // ── Hot Wheels. toycollectorsindia ───────────────────────────────────────
313
- // 🛑 NO QUARTILES EXIST for either row. The crawl recorded a median and a
314
- // RANGE (₹99–36,500 for the pooled 1:64 band; ₹130–999 for their own plain
315
- // mainline collection), and a range is not a quartile. So these two carry a
316
- // median only, which is why `p25`/`p75` are optional at all.
317
- "category-hw-mainline-series": { median: 399, n: 27, src: "toycollectorsindia n=27 (their own plain mainline collection); range 130-999, no quartiles measured" },
318
- "category-hw-treasure-hunt": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
319
- "category-hw-car-culture": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
320
- "category-hw-boulevard": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
321
- "category-hw-team-transport": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
322
- "category-hw-fast-and-furious": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
323
- "category-hw-pop-culture": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
324
- "category-hw-rlc": { median: 850, n: 7418, src: "toycollectorsindia n=7418, 1:64 POOLED across mainline and premium; range 99-36500, no quartiles" },
325
- /*
326
- * 🛑 DELIBERATELY ABSENT — the crawl measured no band for these, and a
327
- * plausible-looking number would be worse than no hint, because a seller
328
- * prices against whatever we show them:
329
- *
330
- * category-original-engine-gear WHS bands plastic / spin-gear / magnacore
331
- * / HMS and NOT Engine Gear. An earlier
332
- * draft of this map invented 899/1499/1899
333
- * for it, interpolated from its neighbours.
334
- * category-metal-face-bolts raikages prices rings, wheels, tracks and
335
- * category-burst-chips-armour tips — not face bolts, chips or armour.
336
- * category-anime-scale-1-6 No 1/6 measurement. S.H.Figuarts (n=25)
337
- * is a 1/12 line and is not a substitute.
338
- * category-anime-nendoroid-chibi No band. Good Smile's n=17 in the crawl
339
- * is a TAG COUNT, not a price sample.
340
- * category-comic-dc No DC band at all.
341
- * category-game-* Three leaves, no franchise-level bands.
342
- * the TCG expansion-set leaves Booster pack / box / ETB are a FORMAT
343
- * axis (the `tcg-format` feature group),
344
- * and a set leaf holds all of them mixed.
345
- * No single band describes it honestly.
346
- * the Gunpla grade leaves No model-kit pricing in any of the
347
- * fifteen crawls.
348
- * category-hw-multipacks children No multipack band.
349
- * the accessory leaves No band for cases, tools or counters.
350
- * the living-collectibles leaves Not a market we crawled, and would not
351
- * want a competitor-derived band for.
352
- */
353
- };
354
- export function marketBand(leafId) {
355
- const b = MARKET_BANDS[leafId];
356
- if (!b)
357
- return undefined;
358
- return {
359
- currency: "INR",
360
- market: {
361
- median: b.median,
362
- ...(b.p25 == null ? {} : { p25: b.p25 }),
363
- ...(b.p75 == null ? {} : { p75: b.p75 }),
364
- ...(b.n == null ? {} : { sampleSize: b.n }),
365
- asOf: CRAWL_AS_OF,
366
- /*
367
- * Measured across the five largest competitors: 92.8 / 88.5 / 87.0 /
368
- * 81.1 / 76.0% of their listings are sold out. Carried so the seller
369
- * hint can say "this is a typical ASK, and most asks at this level do
370
- * not convert" rather than presenting it as a clearing price.
371
- */
372
- soldOutShare: 0.85,
373
- source: b.src,
374
- },
375
- };
376
- }
377
- /** Every leaf id this map claims a band for — the seed asserts they all exist. */
378
- export const MARKET_BAND_LEAF_IDS = Object.keys(MARKET_BANDS);
379
- // ─────────────────────────────────────────────────────────────────────────────
380
- // Per-vertical productDefaults
381
- //
382
- // 🛑 taxCodeId, not gstRate/hsnCode. The reference is for AUTHORING; the
383
- // scalars are resolved onto the PRODUCT by `deriveTaxonomy` and snapshotted
384
- // again onto the order item. Without that layering, editing a tax code
385
- // would retroactively re-rate an invoice already issued.
386
- // ─────────────────────────────────────────────────────────────────────────────
387
- const TAX_TOY = "tax-hsn-95030020"; // non-electronic toys incl. spinning tops — 5%
388
- const TAX_TOY_OTHER = "tax-hsn-95030099"; // other toys — 5%
389
- const TAX_EXEMPT = "tax-exempt-0";
390
- /**
391
- * B6 — the ROOT-LEVEL tax fallback, one per root.
392
- *
393
- * 🛑 Measured 2026-10-12: the tax code sat on tiers 1–3 only (t1=4, t2=47,
394
- * t3=71) and on NO root, so **3 of 70 live products resolved no tax code at
395
- * all** and would have fallen to `DEFAULT_GST_RATE` — a listing filed at
396
- * `category-spinning-tops`, `category-burst-tops` or `category-x-tops`.
397
- *
398
- * C0c's own rule is that reaching that constant is a TRIAGE SIGNAL, not a
399
- * feature: "a listing reaching step 3 at all means its category has no tax
400
- * code — and that, not the constant, is the defect to fix. The measure of
401
- * success is that step 3 fires for nothing."
402
- *
403
- * Putting it at the root is what makes that true for every branch, including
404
- * branches nobody has filed under yet — `resolveCategoryDefaults` walks the
405
- * chain nearest-first, so a tier-2 or tier-3 entry still WINS as a
406
- * more-specific override. This is a floor, not a replacement.
407
- *
408
- * 🛑 Deliberately NOT a single shared constant. Each root is a different HSN
409
- * question and a wrong HSN on a real invoice is worse than an absent one —
410
- * printed cards are chapter 4911, not 9503, and a live plant is exempt. Only
411
- * 9503 was verified (section 3.2); the three non-9503 roots therefore take the
412
- * closest VERIFIED code rather than an unverified guess, and say so.
413
- */
414
- export const ROOT_AUTHENTICITY_DEFAULT = "unverified";
415
- export const ROOT_TAX_DEFAULTS = {
416
- // Verified: HSN 9503 0020 — non-electronic toys including spinning tops, 5%.
417
- "category-spinning-tops": { taxCodeId: TAX_TOY },
418
- // Verified: HSN 9503 0099 — "other toys", 5%. A built model kit and a
419
- // die-cast car are both toys under 9503; neither is a spinning top.
420
- "category-hot-wheels": { taxCodeId: TAX_TOY_OTHER },
421
- "category-model-kits": { taxCodeId: TAX_TOY_OTHER },
422
- "category-collectible-figures": { taxCodeId: TAX_TOY_OTHER },
423
- /*
424
- * 🛑 Trading cards are chapter 4911 (printed matter) or 9504 (playing cards)
425
- * and NEITHER was verified — section 3.2 confirmed 9503 only, and § "Still
426
- * open" records "verify each before seeding; 9503 is the only one I
427
- * confirmed". `9503 0099` is used as the floor because a TCG single sold as
428
- * a collectible is a toy-chapter good at the same 5% rate, so the RATE is
429
- * right even where the chapter may not be. It must be re-chaptered before
430
- * the first real TCG invoice, and that is a data task with a source, not a
431
- * guess to make here.
432
- */
433
- "category-trading-cards": { taxCodeId: TAX_TOY_OTHER },
434
- // A live plant or animal is nil-rated — a deliberate exemption, which is
435
- // exactly why `gstRate: 0` must survive derivation rather than be "corrected".
436
- "category-living-collectibles": { taxCodeId: TAX_EXEMPT },
437
- };
438
- /** Shared across every Beyblade-family node. */
439
- const BEY_FAQ_TEMPLATES = [
440
- {
441
- question: "Is {{title}} an original {{brand}} release?",
442
- answer: "The authenticity of every listing is stated on the listing itself — original, reproduction, or unverified. A reproduction is an unlicensed copy with no manufacturer's marque and is always labelled as one; it is not the same thing as a counterfeit sold as genuine.",
443
- },
444
- {
445
- question: "What condition is {{title}} in?",
446
- answer: "This listing is graded {{condition}}, and the photographs are of the actual item rather than a stock image. Structural damage — a chip, a crack, a stripped tooth — is called out in the description and photographed.",
447
- },
448
- {
449
- question: "Does {{title}} include a launcher?",
450
- answer: "Only if the description says so. Starter releases include a launcher and ripcord; booster releases are top-only. Where a used listing is involved, what is pictured is what ships.",
451
- },
452
- {
453
- question: "Can I return {{title}} if it is not as described?",
454
- answer: "Yes. A listing that misrepresents condition or authenticity is covered by buyer protection, and the return window opens from delivery. Report the listing as well as opening the return — a misdescribed reproduction is a listing problem, not just an order problem.",
455
- },
456
- ];
457
- const SPEC = (name, value, unit) => unit ? { name, value, unit } : { name, value };
458
- /** A complete top. */
459
- export function beyDefaults(leafId, series, system) {
460
- return {
461
- taxCodeId: TAX_TOY,
462
- specifications: [SPEC("Series", series), SPEC("System", system)],
463
- inTheBox: ["Beyblade top", "Manual (where supplied)"],
464
- defaultAuthenticity: "unverified",
465
- priceGuidance: marketBand(leafId),
466
- seoTitleTemplate: "{{title}} — {{series}} | {{siteName}}",
467
- seoDescriptionTemplate: "Buy {{title}}, a {{series}} {{category}}, from a verified seller on {{siteName}}. Condition {{condition}}, authenticity stated, buyer protection on every order.",
468
- seoKeywords: ["beyblade", series.toLowerCase()],
469
- weightG: 120,
470
- dimensionsCm: { l: 12, w: 10, h: 6 },
471
- fragile: false,
472
- faqTemplates: BEY_FAQ_TEMPLATES,
473
- };
474
- }
475
- /** A loose component. */
476
- export function partDefaults(leafId, partKind) {
477
- return {
478
- taxCodeId: TAX_TOY,
479
- specifications: [SPEC("Part type", partKind)],
480
- inTheBox: [`${partKind} only — no complete top`],
481
- defaultAuthenticity: "unverified",
482
- priceGuidance: marketBand(leafId),
483
- seoTitleTemplate: "{{title}} — {{category}} | {{siteName}}",
484
- seoDescriptionTemplate: "Buy {{title}}, a loose {{category}} for custom builds, on {{siteName}}. Condition {{condition}}, sold as pictured.",
485
- seoKeywords: ["beyblade parts", partKind.toLowerCase()],
486
- weightG: 25,
487
- dimensionsCm: { l: 8, w: 6, h: 3 },
488
- fragile: false,
489
- /*
490
- * A part listing answers a different question from a complete top: the
491
- * buyer already owns a bey and wants to know whether this fits it. So the
492
- * first FAQ is compatibility, not authenticity — which is also the single
493
- * most common pre-purchase question on used-part listings.
494
- */
495
- faqTemplates: [
496
- {
497
- question: "Will {{title}} fit my Beyblade?",
498
- answer: "Parts are compatible within a generation, not across them. A {{series}} component fits other {{series}} tops; it will not fit a different generation's system, because each generation uses its own locking geometry.",
499
- },
500
- BEY_FAQ_TEMPLATES[1],
501
- BEY_FAQ_TEMPLATES[3],
502
- ],
503
- };
504
- }
505
- export function launcherDefaults(leafId, series) {
506
- return {
507
- taxCodeId: TAX_TOY,
508
- specifications: [SPEC("Series", series), SPEC("Accessory type", "Launcher")],
509
- inTheBox: ["Launcher", "Ripcord or winder (where supplied)"],
510
- defaultAuthenticity: "unverified",
511
- priceGuidance: marketBand(leafId),
512
- seoTitleTemplate: "{{title}} — {{series}} launcher | {{siteName}}",
513
- seoDescriptionTemplate: "Buy {{title}}, a {{series}} launcher, on {{siteName}}. Condition {{condition}}, tested where the seller states so.",
514
- seoKeywords: ["beyblade launcher", series.toLowerCase()],
515
- weightG: 90,
516
- dimensionsCm: { l: 16, w: 10, h: 4 },
517
- fragile: false,
518
- faqTemplates: [
519
- {
520
- question: "Which Beyblades does {{title}} launch?",
521
- answer: "A {{series}} launcher drives {{series}} tops. Launchers are not interchangeable across generations — the ripcord, the prongs and the lock all changed between them.",
522
- },
523
- {
524
- question: "Is the ripcord included with {{title}}?",
525
- answer: "Check the description. A ripcord is a wear part and is frequently sold separately or replaced; where one is included the listing says so and it is in the photographs.",
526
- },
527
- BEY_FAQ_TEMPLATES[1],
528
- ],
529
- };
530
- }
531
- export function stadiumDefaults(leafId, series) {
532
- return {
533
- taxCodeId: TAX_TOY,
534
- specifications: [SPEC("Series", series), SPEC("Accessory type", "Stadium")],
535
- inTheBox: ["Stadium", "Assembly parts where the design requires them"],
536
- defaultAuthenticity: "unverified",
537
- priceGuidance: marketBand(leafId),
538
- seoTitleTemplate: "{{title}} — {{series}} stadium | {{siteName}}",
539
- seoDescriptionTemplate: "Buy {{title}}, a {{series}} Beyblade stadium, on {{siteName}}. Condition {{condition}}, dimensions and compatibility in the description.",
540
- seoKeywords: ["beyblade stadium", "beystadium", series.toLowerCase()],
541
- /*
542
- * 🛑 Stadiums are the one Beyblade node where shipping actually bites — a
543
- * ~35 cm dish is volumetric freight, not a 120 g parcel. The weight and
544
- * dimensions here are what a courier rate is computed from, so getting
545
- * them wrong under-quotes every stadium listing.
546
- */
547
- weightG: 900,
548
- dimensionsCm: { l: 40, w: 40, h: 12 },
549
- fragile: true,
550
- faqTemplates: [
551
- {
552
- question: "Can I use {{title}} with every Beyblade generation?",
553
- answer: "Mostly. Round stadiums handle Original, Metal Fight and Burst play. Beyblade X's Xtreme Line stadiums add a rail feature X tops are designed around, so serious X play wants an X-format stadium rather than a round one.",
554
- },
555
- {
556
- question: "Does {{title}} ship assembled?",
557
- answer: "A stadium ships flat or in its original packaging wherever the design allows it, because a rigid dish is volumetric freight. Any assembly required is noted in the description.",
558
- },
559
- BEY_FAQ_TEMPLATES[1],
560
- ],
561
- };
562
- }
563
- export function tcgDefaults(leafId, game, format) {
564
- return {
565
- /*
566
- * Chapter 9504 (playing cards) is the likelier correct HSN for a TCG
567
- * single and it is deliberately NOT seeded: its current rate is
568
- * UNVERIFIED, and a wrong HSN on a real invoice is worse than a
569
- * conservative one. 9503 0099 ("other toys", 5%) is the rate the Indian
570
- * hobby trade actually invoices sealed product at, and it is the one
571
- * chapter here that was confirmed. Revisit when 9504 is verified.
572
- */
573
- taxCodeId: TAX_TOY_OTHER,
574
- specifications: [SPEC("Game", game), SPEC("Format", format)],
575
- defaultAuthenticity: "unverified",
576
- priceGuidance: marketBand(leafId),
577
- seoTitleTemplate: "{{title}} — {{category}} | {{siteName}}",
578
- seoDescriptionTemplate: "Buy {{title}}, a {{categoryPath}} listing on {{siteName}}. Condition {{condition}}, language and print run stated on the listing.",
579
- seoKeywords: [game.toLowerCase(), "trading cards", format.toLowerCase()],
580
- weightG: format === "Sealed" ? 450 : 15,
581
- dimensionsCm: format === "Sealed" ? { l: 20, w: 15, h: 10 } : { l: 10, w: 7, h: 1 },
582
- fragile: false,
583
- /*
584
- * The tcgindia model — five templated FAQs per product, three of which
585
- * interpolate the name. Nobody else in the crawl of fifteen does it, and
586
- * it is the cheapest structured-data win available to us.
587
- */
588
- faqTemplates: [
589
- {
590
- question: "Is {{title}} authentic?",
591
- answer: "Yes. Cards and sealed product listed here come from verified sellers, and a listing that misrepresents authenticity is covered by buyer protection. Language and print run are stated because a Japanese print and an English print of the same card are different products.",
592
- },
593
- {
594
- question: "Is {{title}} sealed?",
595
- answer: "The listing states it. Sealed product is unopened and factory-wrapped; a single is an individual card whose condition is graded on the listing.",
596
- },
597
- {
598
- question: "Can I request {{title}} if it is out of stock?",
599
- answer: "Yes — add it to your wishlist and you will be notified when a seller lists it again. Sold listings stay visible here on purpose, so you can see what has been available and at what price.",
600
- },
601
- {
602
- question: "Are specific pulls guaranteed from {{title}}?",
603
- answer: "No. Sealed product is random by design and no seller here guarantees a particular card from a pack or box. Any listing claiming a guaranteed pull from sealed product should be reported.",
604
- },
605
- {
606
- question: "Can I return {{title}}?",
607
- answer: "A misdescribed card or a damaged delivery is returnable within the stated window. Opened sealed product is not returnable on the basis of what was inside it, for the reason above.",
608
- },
609
- ],
610
- };
611
- }
612
- export function figureDefaults(leafId, scaleOrLine) {
613
- return {
614
- taxCodeId: TAX_TOY_OTHER,
615
- specifications: [SPEC("Scale / line", scaleOrLine)],
616
- inTheBox: ["Figure", "Stand and accessories as supplied by the maker"],
617
- defaultAuthenticity: "unverified",
618
- priceGuidance: marketBand(leafId),
619
- seoTitleTemplate: "{{title}} — {{category}} | {{siteName}}",
620
- seoDescriptionTemplate: "Buy {{title}}, a {{category}} collectible figure, on {{siteName}}. Condition {{condition}}, box state stated, buyer protection on every order.",
621
- seoKeywords: ["collectible figure", "anime figure", scaleOrLine.toLowerCase()],
622
- weightG: 700,
623
- dimensionsCm: { l: 30, w: 20, h: 20 },
624
- /*
625
- * PVC at scale is genuinely fragile — a 1/7 figure has thin painted
626
- * extremities and the box is part of the value. This is the one vertical
627
- * where `fragile` drives packaging instructions rather than being advisory.
628
- */
629
- fragile: true,
630
- faqTemplates: [
631
- {
632
- question: "Is {{title}} an authentic {{brand}} figure?",
633
- answer: "Authenticity is stated on the listing. Bootleg figures are common at scale and are identified by paint quality, seam finish and box printing — a seller listing a bootleg must label it as a reproduction.",
634
- },
635
- {
636
- question: "What condition is the box of {{title}} in?",
637
- answer: "Box condition is called out separately from figure condition, because for a collectible figure the two are priced differently. A \"without box\" listing says so in its title.",
638
- },
639
- BEY_FAQ_TEMPLATES[3],
640
- ],
641
- };
642
- }
643
- export function diecastDefaults(leafId, line) {
644
- return {
645
- taxCodeId: TAX_TOY,
646
- specifications: [SPEC("Line", line), SPEC("Scale", "1:64")],
647
- inTheBox: ["Die-cast model on its original card where carded"],
648
- defaultAuthenticity: "unverified",
649
- priceGuidance: marketBand(leafId),
650
- seoTitleTemplate: "{{title}} — Hot Wheels {{category}} | {{siteName}}",
651
- seoDescriptionTemplate: "Buy {{title}}, a Hot Wheels {{category}} die-cast, on {{siteName}}. Card condition stated; chase variants identified on the listing.",
652
- seoKeywords: ["hot wheels", "diecast", "1:64", line.toLowerCase()],
653
- weightG: 60,
654
- dimensionsCm: { l: 17, w: 9, h: 4 },
655
- fragile: false,
656
- faqTemplates: [
657
- {
658
- question: "Is {{title}} a Treasure Hunt?",
659
- answer: "Chase variants are identified on the listing itself, not inferred. A Treasure Hunt carries the flame circle logo; a Super Treasure Hunt additionally has Real Riders rubber tyres and Spectraflame paint. A listing that claims a chase without showing it should be reported.",
660
- },
661
- {
662
- question: "Is the card for {{title}} in good condition?",
663
- answer: "Card condition is graded separately from the car, because carded collectors price it separately. Creases, bends and blister clouding are photographed where present.",
664
- },
665
- {
666
- question: "Is {{title}} an Indian-card release?",
667
- answer: "Where it is, the listing says so. The Indian-market blister card differs from the US one and collectors here price the two differently, so it is called out rather than left for the buyer to spot.",
668
- },
669
- ],
670
- };
671
- }
672
- const TAX_TOY_ELECTRONIC = "tax-hsn-95030010"; // electronic toys — 18%
673
- /**
674
- * 🛑 THE ONLY 18% BRANCH IN THE CATALOGUE, and it is derived rather than
675
- * hand-written on a product.
676
- *
677
- * `tax-hsn-95030010` (electronic toys, 18%) has existed as a `taxCodes` row
678
- * since B3 with **nothing referencing it** — so the 18% arm of `calculateGst`
679
- * and every mixed-rate path (C0c defect 4's `gstByRate`, the per-rate invoice
680
- * table, the blended-rate payout) had no data that could exercise it. A code
681
- * with no referrer is the vocabulary-with-no-rows shape of Root Cause #90.
682
- *
683
- * Counters and BeyPointers are battery-powered scoring devices, which is what
684
- * 9503 0010 covers — so this is the honest home for it, not a flag planted on
685
- * an arbitrary row. Putting it on the CATEGORY rather than on a product means
686
- * the 18% is proven through `deriveTaxonomy`, i.e. through the mechanism that
687
- * will actually carry it in production, instead of through a literal that
688
- * would pass while the derivation stayed untested.
689
- */
690
- const ELECTRONIC_ACCESSORY_LEAVES = new Set(["category-accessory-counters"]);
691
- export function accessoryDefaults(leafId, kind) {
692
- return {
693
- taxCodeId: ELECTRONIC_ACCESSORY_LEAVES.has(leafId) ? TAX_TOY_ELECTRONIC : TAX_TOY_OTHER,
694
- specifications: [SPEC("Accessory type", kind)],
695
- defaultAuthenticity: "unverified",
696
- priceGuidance: marketBand(leafId),
697
- seoTitleTemplate: "{{title}} — {{category}} | {{siteName}}",
698
- seoDescriptionTemplate: "Buy {{title}}, a {{category}}, on {{siteName}}. Condition {{condition}}, capacity and dimensions in the description.",
699
- seoKeywords: [kind.toLowerCase(), "collectible accessories"],
700
- weightG: 400,
701
- dimensionsCm: { l: 28, w: 20, h: 8 },
702
- fragile: false,
703
- faqTemplates: [
704
- {
705
- question: "What fits in {{title}}?",
706
- answer: "Capacity is in the description. Storage designed for complete tops and storage designed for loose parts are different products, and the listing states which this is.",
707
- },
708
- BEY_FAQ_TEMPLATES[1],
709
- ],
710
- };
711
- }
712
- /** Live animals and plants — exempt, and nothing about them is a toy. */
713
- export function livingDefaults() {
714
- return {
715
- taxCodeId: TAX_EXEMPT,
716
- defaultAuthenticity: "original",
717
- seoTitleTemplate: "{{title}} — {{category}} | {{siteName}}",
718
- seoDescriptionTemplate: "{{title}}, a {{category}} listing from a verified seller on {{siteName}}. Species, age and provenance disclosed; jurisdiction checked before payment.",
719
- fragile: true,
720
- faqTemplates: [
721
- {
722
- question: "Can {{title}} be shipped to me?",
723
- answer: "The jurisdiction check runs at checkout, before payment rather than after. Most live listings are local-collection only and the listing states the collection area; where courier transport is lawful and appropriate the seller arranges a specialist live service.",
724
- },
725
- {
726
- question: "What welfare information comes with {{title}}?",
727
- answer: "Species, age, sex where known, and provenance are recorded on the listing, and a seller must be verified before any live listing goes public.",
728
- },
729
- ],
730
- };
731
- }