@mohasinac/appkit 4.57.0 → 4.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. package/dist/.build-stamp.json +4 -4
  2. package/dist/_internal/server/features/beys/data.d.ts +44 -0
  3. package/dist/_internal/server/features/beys/data.js +107 -0
  4. package/dist/_internal/server/features/beys/og.d.ts +42 -0
  5. package/dist/_internal/server/features/beys/og.js +89 -0
  6. package/dist/_internal/server/features/parts/data.js +3 -2
  7. package/dist/_internal/server/jobs/handlers/messages.d.ts +1 -1
  8. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  9. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  10. package/dist/_internal/shared/actions/action-registry.js +86 -0
  11. package/dist/_internal/shared/types/base-document.d.ts +1 -1
  12. package/dist/client.d.ts +2 -0
  13. package/dist/client.js +1 -0
  14. package/dist/constants/api-endpoints.d.ts +12 -0
  15. package/dist/constants/api-endpoints.js +10 -0
  16. package/dist/constants/field-names.d.ts +46 -0
  17. package/dist/constants/field-names.js +46 -0
  18. package/dist/constants/seed-meta.d.ts +113 -0
  19. package/dist/constants/seed-meta.js +91 -0
  20. package/dist/features/admin/components/AdminBeysView.d.ts +27 -0
  21. package/dist/features/admin/components/AdminBeysView.js +178 -0
  22. package/dist/features/admin/components/AdminPartsView.d.ts +27 -0
  23. package/dist/features/admin/components/AdminPartsView.js +160 -0
  24. package/dist/features/admin/components/OwnerQuickActions.d.ts +19 -2
  25. package/dist/features/admin/components/OwnerQuickActions.js +31 -3
  26. package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +31 -0
  27. package/dist/features/admin/components/RecordOwnerQuickActions.js +128 -0
  28. package/dist/features/admin/components/ReferenceRecordEditor.d.ts +45 -0
  29. package/dist/features/admin/components/ReferenceRecordEditor.js +153 -0
  30. package/dist/features/admin/schemas/firestore.d.ts +1 -1
  31. package/dist/features/auctions/components/MarketplaceAuctionCard.js +15 -2
  32. package/dist/features/auth/permissions/constants.d.ts +1 -1
  33. package/dist/features/auth/permissions/constants.js +12 -1
  34. package/dist/features/beys/components/BeyDetailPageView.d.ts +50 -0
  35. package/dist/features/beys/components/BeyDetailPageView.js +98 -0
  36. package/dist/features/beys/schemas/firestore.d.ts +417 -0
  37. package/dist/features/beys/schemas/firestore.js +65 -0
  38. package/dist/features/blog/components/BlogFeaturedCard.js +15 -2
  39. package/dist/features/blog/components/BlogPostView.js +2 -2
  40. package/dist/features/categories/components/BrandDetailPageView.js +4 -2
  41. package/dist/features/categories/components/BundleDetailView.js +2 -2
  42. package/dist/features/categories/components/CategoryDetailPageView.js +36 -3
  43. package/dist/features/categories/components/CategoryGrid.js +24 -2
  44. package/dist/features/categories/components/FranchiseDetailPageView.js +2 -3
  45. package/dist/features/events/components/EventCard.js +15 -2
  46. package/dist/features/grouped/components/GroupedListingDetailView.js +2 -3
  47. package/dist/features/homepage/components/CustomCardsSection.js +67 -50
  48. package/dist/features/homepage/components/ShopByCategorySection.js +23 -10
  49. package/dist/features/homepage/schemas/index.d.ts +10 -10
  50. package/dist/features/parts/components/PartDetailPageView.js +5 -3
  51. package/dist/features/parts/components/PartsSearchBox.js +79 -4
  52. package/dist/features/parts/schemas/admin-edit.d.ts +81 -0
  53. package/dist/features/parts/schemas/admin-edit.js +89 -0
  54. package/dist/features/parts/schemas/firestore.d.ts +2 -1
  55. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +15 -2
  56. package/dist/features/products/components/MarketplaceBundleCard.js +15 -2
  57. package/dist/features/products/components/MarketplacePrizeDrawCard.js +15 -2
  58. package/dist/features/products/components/ProductGrid.js +18 -2
  59. package/dist/features/products/schemas/firestore.d.ts +18 -0
  60. package/dist/features/seller/components/CategoryInlineSelect.d.ts +10 -1
  61. package/dist/features/seller/components/CategoryInlineSelect.js +53 -5
  62. package/dist/features/seller/components/SellerProductShell.d.ts +39 -0
  63. package/dist/features/seller/components/SellerProductShell.js +31 -3
  64. package/dist/index.d.ts +6 -129
  65. package/dist/index.js +61 -292
  66. package/dist/next/routing/route-map.d.ts +13 -1
  67. package/dist/next/routing/route-map.js +37 -0
  68. package/dist/schemas/registry.d.ts +6 -6
  69. package/dist/server.d.ts +2 -69
  70. package/dist/server.js +8 -69
  71. package/dist/styles.css +468 -1
  72. package/dist/tailwind-utilities.css +1 -1
  73. package/dist/ui/components/PosterCard.d.ts +99 -0
  74. package/dist/ui/components/PosterCard.js +109 -0
  75. package/dist/ui/components/PosterCard.style.css +466 -0
  76. package/dist/ui/components/index.style.css +1 -0
  77. package/dist/ui/index.d.ts +2 -0
  78. package/dist/ui/index.js +2 -0
  79. package/package.json +4 -2
  80. package/scripts/seed-cli.mjs +177 -2
  81. package/dist/features/tester/seed-data/_happy-path.d.ts +0 -23
  82. package/dist/features/tester/seed-data/_happy-path.js +0 -710
  83. package/dist/features/tester/seed-data/_money-flows.d.ts +0 -23
  84. package/dist/features/tester/seed-data/_money-flows.js +0 -610
  85. package/dist/features/tester/seed-data/authored/_types.d.ts +0 -57
  86. package/dist/features/tester/seed-data/authored/_types.js +0 -35
  87. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.d.ts +0 -2
  88. package/dist/features/tester/seed-data/authored/account-auth__profile-settings.js +0 -226
  89. package/dist/features/tester/seed-data/authored/account-auth__signup-login.d.ts +0 -2
  90. package/dist/features/tester/seed-data/authored/account-auth__signup-login.js +0 -329
  91. package/dist/features/tester/seed-data/authored/addresses__address-filters.d.ts +0 -2
  92. package/dist/features/tester/seed-data/authored/addresses__address-filters.js +0 -41
  93. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.d.ts +0 -2
  94. package/dist/features/tester/seed-data/authored/addresses__postal-lookup.js +0 -76
  95. package/dist/features/tester/seed-data/authored/addresses__postal-validation.d.ts +0 -2
  96. package/dist/features/tester/seed-data/authored/addresses__postal-validation.js +0 -78
  97. package/dist/features/tester/seed-data/authored/addresses__state-picker.d.ts +0 -2
  98. package/dist/features/tester/seed-data/authored/addresses__state-picker.js +0 -59
  99. package/dist/features/tester/seed-data/authored/addresses__unban-request.d.ts +0 -2
  100. package/dist/features/tester/seed-data/authored/addresses__unban-request.js +0 -77
  101. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.d.ts +0 -2
  102. package/dist/features/tester/seed-data/authored/admin__admin-detail-round-trips.js +0 -151
  103. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.d.ts +0 -2
  104. package/dist/features/tester/seed-data/authored/admin__bans-and-trust.js +0 -265
  105. package/dist/features/tester/seed-data/authored/admin__blog-faqs.d.ts +0 -2
  106. package/dist/features/tester/seed-data/authored/admin__blog-faqs.js +0 -131
  107. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.d.ts +0 -2
  108. package/dist/features/tester/seed-data/authored/admin__bug-hunter-rewards.js +0 -143
  109. package/dist/features/tester/seed-data/authored/admin__bulk-actions.d.ts +0 -2
  110. package/dist/features/tester/seed-data/authored/admin__bulk-actions.js +0 -207
  111. package/dist/features/tester/seed-data/authored/admin__bundles.d.ts +0 -2
  112. package/dist/features/tester/seed-data/authored/admin__bundles.js +0 -144
  113. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.d.ts +0 -2
  114. package/dist/features/tester/seed-data/authored/admin__buyer-data-admin.js +0 -265
  115. package/dist/features/tester/seed-data/authored/admin__catalog-listings.d.ts +0 -2
  116. package/dist/features/tester/seed-data/authored/admin__catalog-listings.js +0 -318
  117. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.d.ts +0 -2
  118. package/dist/features/tester/seed-data/authored/admin__category-brand-authoring.js +0 -177
  119. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.d.ts +0 -2
  120. package/dist/features/tester/seed-data/authored/admin__classifieds-digitalcodes-live.js +0 -165
  121. package/dist/features/tester/seed-data/authored/admin__content-deletes.d.ts +0 -2
  122. package/dist/features/tester/seed-data/authored/admin__content-deletes.js +0 -267
  123. package/dist/features/tester/seed-data/authored/admin__content-marketing.d.ts +0 -2
  124. package/dist/features/tester/seed-data/authored/admin__content-marketing.js +0 -188
  125. package/dist/features/tester/seed-data/authored/admin__coupons.d.ts +0 -2
  126. package/dist/features/tester/seed-data/authored/admin__coupons.js +0 -215
  127. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.d.ts +0 -2
  128. package/dist/features/tester/seed-data/authored/admin__events-raffles-spin.js +0 -202
  129. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.d.ts +0 -2
  130. package/dist/features/tester/seed-data/authored/admin__firebase-function-effects.js +0 -249
  131. package/dist/features/tester/seed-data/authored/admin__media-watermark.d.ts +0 -2
  132. package/dist/features/tester/seed-data/authored/admin__media-watermark.js +0 -148
  133. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.d.ts +0 -2
  134. package/dist/features/tester/seed-data/authored/admin__orders-fulfillment.js +0 -350
  135. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.d.ts +0 -2
  136. package/dist/features/tester/seed-data/authored/admin__prize-draws-lotteries.js +0 -129
  137. package/dist/features/tester/seed-data/authored/admin__site-system.d.ts +0 -2
  138. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -586
  139. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.d.ts +0 -2
  140. package/dist/features/tester/seed-data/authored/admin__uncovered-admin-pages.js +0 -260
  141. package/dist/features/tester/seed-data/authored/admin__users-trust.d.ts +0 -2
  142. package/dist/features/tester/seed-data/authored/admin__users-trust.js +0 -569
  143. package/dist/features/tester/seed-data/authored/buying__bidding.d.ts +0 -2
  144. package/dist/features/tester/seed-data/authored/buying__bidding.js +0 -449
  145. package/dist/features/tester/seed-data/authored/buying__browsing-search.d.ts +0 -2
  146. package/dist/features/tester/seed-data/authored/buying__browsing-search.js +0 -684
  147. package/dist/features/tester/seed-data/authored/buying__buying-checkout.d.ts +0 -2
  148. package/dist/features/tester/seed-data/authored/buying__buying-checkout.js +0 -546
  149. package/dist/features/tester/seed-data/authored/buying__buying-coupons.d.ts +0 -2
  150. package/dist/features/tester/seed-data/authored/buying__buying-coupons.js +0 -379
  151. package/dist/features/tester/seed-data/authored/buying__cart.d.ts +0 -2
  152. package/dist/features/tester/seed-data/authored/buying__cart.js +0 -1264
  153. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.d.ts +0 -2
  154. package/dist/features/tester/seed-data/authored/buying__image-tile-layout.js +0 -122
  155. package/dist/features/tester/seed-data/authored/buying__my-orders.d.ts +0 -2
  156. package/dist/features/tester/seed-data/authored/buying__my-orders.js +0 -279
  157. package/dist/features/tester/seed-data/authored/buying__offers.d.ts +0 -2
  158. package/dist/features/tester/seed-data/authored/buying__offers.js +0 -1127
  159. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.d.ts +0 -2
  160. package/dist/features/tester/seed-data/authored/buying__order-detail-actions.js +0 -153
  161. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.d.ts +0 -2
  162. package/dist/features/tester/seed-data/authored/buying__order-status-lifecycle.js +0 -252
  163. package/dist/features/tester/seed-data/authored/buying__product-detail.d.ts +0 -2
  164. package/dist/features/tester/seed-data/authored/buying__product-detail.js +0 -474
  165. package/dist/features/tester/seed-data/authored/buying__return-request.d.ts +0 -2
  166. package/dist/features/tester/seed-data/authored/buying__return-request.js +0 -165
  167. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.d.ts +0 -2
  168. package/dist/features/tester/seed-data/authored/buying__reviews-pagination.js +0 -260
  169. package/dist/features/tester/seed-data/authored/buying__reviews.d.ts +0 -2
  170. package/dist/features/tester/seed-data/authored/buying__reviews.js +0 -128
  171. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.d.ts +0 -2
  172. package/dist/features/tester/seed-data/authored/buying__spares-and-groups.js +0 -96
  173. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.d.ts +0 -2
  174. package/dist/features/tester/seed-data/authored/buying__user-dashboard-extras.js +0 -283
  175. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.d.ts +0 -2
  176. package/dist/features/tester/seed-data/authored/buying__user-dashboard-navigation.js +0 -169
  177. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.d.ts +0 -2
  178. package/dist/features/tester/seed-data/authored/buying__user-uncovered-pages.js +0 -105
  179. package/dist/features/tester/seed-data/authored/buying__wishlist-history.d.ts +0 -2
  180. package/dist/features/tester/seed-data/authored/buying__wishlist-history.js +0 -374
  181. package/dist/features/tester/seed-data/authored/community-support__messages.d.ts +0 -2
  182. package/dist/features/tester/seed-data/authored/community-support__messages.js +0 -200
  183. package/dist/features/tester/seed-data/authored/community-support__public-profile.d.ts +0 -2
  184. package/dist/features/tester/seed-data/authored/community-support__public-profile.js +0 -54
  185. package/dist/features/tester/seed-data/authored/community-support__support-tickets.d.ts +0 -2
  186. package/dist/features/tester/seed-data/authored/community-support__support-tickets.js +0 -76
  187. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.d.ts +0 -4
  188. package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +0 -590
  189. package/dist/features/tester/seed-data/authored/content-discovery__blog.d.ts +0 -2
  190. package/dist/features/tester/seed-data/authored/content-discovery__blog.js +0 -110
  191. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.d.ts +0 -2
  192. package/dist/features/tester/seed-data/authored/content-discovery__category-brand-relations.js +0 -149
  193. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.d.ts +0 -2
  194. package/dist/features/tester/seed-data/authored/content-discovery__category-counts-and-rollup.js +0 -145
  195. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.d.ts +0 -2
  196. package/dist/features/tester/seed-data/authored/content-discovery__category-tabs-franchise-bundles.js +0 -174
  197. package/dist/features/tester/seed-data/authored/content-discovery__coupons.d.ts +0 -2
  198. package/dist/features/tester/seed-data/authored/content-discovery__coupons.js +0 -169
  199. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.d.ts +0 -2
  200. package/dist/features/tester/seed-data/authored/content-discovery__event-detail-subroutes.js +0 -209
  201. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.d.ts +0 -2
  202. package/dist/features/tester/seed-data/authored/content-discovery__event-participation.js +0 -207
  203. package/dist/features/tester/seed-data/authored/content-discovery__events.d.ts +0 -2
  204. package/dist/features/tester/seed-data/authored/content-discovery__events.js +0 -377
  205. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.d.ts +0 -2
  206. package/dist/features/tester/seed-data/authored/content-discovery__faq-help.js +0 -87
  207. package/dist/features/tester/seed-data/authored/content-discovery__notifications.d.ts +0 -2
  208. package/dist/features/tester/seed-data/authored/content-discovery__notifications.js +0 -147
  209. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.d.ts +0 -2
  210. package/dist/features/tester/seed-data/authored/content-discovery__overflowing-pill-rows.js +0 -209
  211. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +0 -2
  212. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +0 -167
  213. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.d.ts +0 -2
  214. package/dist/features/tester/seed-data/authored/content-discovery__price-index-and-compare.js +0 -73
  215. package/dist/features/tester/seed-data/authored/content-discovery__search.d.ts +0 -2
  216. package/dist/features/tester/seed-data/authored/content-discovery__search.js +0 -363
  217. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.d.ts +0 -2
  218. package/dist/features/tester/seed-data/authored/content-discovery__site-wide-index.js +0 -340
  219. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.d.ts +0 -2
  220. package/dist/features/tester/seed-data/authored/content-discovery__store-reviews-aggregate.js +0 -88
  221. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.d.ts +0 -2
  222. package/dist/features/tester/seed-data/authored/cta-layout__checkout-bottom-bar.js +0 -78
  223. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.d.ts +0 -2
  224. package/dist/features/tester/seed-data/authored/cta-layout__dialog-footers.js +0 -76
  225. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.d.ts +0 -2
  226. package/dist/features/tester/seed-data/authored/cta-layout__editor-action-bar.js +0 -62
  227. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.d.ts +0 -2
  228. package/dist/features/tester/seed-data/authored/cta-layout__navbar-ctas.js +0 -163
  229. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.d.ts +0 -2
  230. package/dist/features/tester/seed-data/authored/cta-layout__product-bottom-bar.js +0 -61
  231. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.d.ts +0 -2
  232. package/dist/features/tester/seed-data/authored/design-ux__action-bar-placement.js +0 -89
  233. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.d.ts +0 -2
  234. package/dist/features/tester/seed-data/authored/design-ux__back-to-top-button.js +0 -95
  235. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.d.ts +0 -2
  236. package/dist/features/tester/seed-data/authored/design-ux__carousel-arrow-bounds.js +0 -191
  237. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.d.ts +0 -2
  238. package/dist/features/tester/seed-data/authored/design-ux__dashboard-layout.js +0 -158
  239. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.d.ts +0 -2
  240. package/dist/features/tester/seed-data/authored/design-ux__feature-badge-picker.js +0 -82
  241. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.d.ts +0 -2
  242. package/dist/features/tester/seed-data/authored/design-ux__footer-theme.js +0 -106
  243. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.d.ts +0 -2
  244. package/dist/features/tester/seed-data/authored/design-ux__form-validation-errors.js +0 -88
  245. package/dist/features/tester/seed-data/authored/design-ux__general-design.d.ts +0 -2
  246. package/dist/features/tester/seed-data/authored/design-ux__general-design.js +0 -204
  247. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.d.ts +0 -2
  248. package/dist/features/tester/seed-data/authored/design-ux__hand-mode-layout.js +0 -301
  249. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.d.ts +0 -2
  250. package/dist/features/tester/seed-data/authored/design-ux__header-brand-mark-centring.js +0 -90
  251. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.d.ts +0 -2
  252. package/dist/features/tester/seed-data/authored/design-ux__header-controls-and-messages.js +0 -85
  253. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.d.ts +0 -2
  254. package/dist/features/tester/seed-data/authored/design-ux__homepage-carousels.js +0 -407
  255. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.d.ts +0 -2
  256. package/dist/features/tester/seed-data/authored/design-ux__nav-reachability.js +0 -88
  257. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.d.ts +0 -2
  258. package/dist/features/tester/seed-data/authored/design-ux__rich-text-readability.js +0 -84
  259. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.d.ts +0 -2
  260. package/dist/features/tester/seed-data/authored/design-ux__status-badge-legibility.js +0 -214
  261. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.d.ts +0 -2
  262. package/dist/features/tester/seed-data/authored/design-ux__sticky-cta-bar.js +0 -275
  263. package/dist/features/tester/seed-data/authored/index.d.ts +0 -2
  264. package/dist/features/tester/seed-data/authored/index.js +0 -301
  265. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.d.ts +0 -2
  266. package/dist/features/tester/seed-data/authored/page-wiring__data-loss.js +0 -125
  267. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.d.ts +0 -2
  268. package/dist/features/tester/seed-data/authored/page-wiring__detail-pages.js +0 -85
  269. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.d.ts +0 -2
  270. package/dist/features/tester/seed-data/authored/page-wiring__drawer-pages.js +0 -92
  271. package/dist/features/tester/seed-data/authored/page-wiring__reachability.d.ts +0 -2
  272. package/dist/features/tester/seed-data/authored/page-wiring__reachability.js +0 -115
  273. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.d.ts +0 -2
  274. package/dist/features/tester/seed-data/authored/public-pages__auth-error-pages.js +0 -137
  275. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.d.ts +0 -2
  276. package/dist/features/tester/seed-data/authored/public-pages__core-listing-pages.js +0 -263
  277. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.d.ts +0 -2
  278. package/dist/features/tester/seed-data/authored/public-pages__help-how-it-works.js +0 -229
  279. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.d.ts +0 -2
  280. package/dist/features/tester/seed-data/authored/public-pages__help-scams-guides-subpages.js +0 -325
  281. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.d.ts +0 -2
  282. package/dist/features/tester/seed-data/authored/public-pages__legal-policy-pages.js +0 -126
  283. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.d.ts +0 -2
  284. package/dist/features/tester/seed-data/authored/public-pages__newly-wired-browse-indexes.js +0 -141
  285. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.d.ts +0 -2
  286. package/dist/features/tester/seed-data/authored/public-pages__store-tabs.js +0 -115
  287. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.d.ts +0 -2
  288. package/dist/features/tester/seed-data/authored/public-pages__stores-sellers-directories.js +0 -253
  289. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.d.ts +0 -2
  290. package/dist/features/tester/seed-data/authored/search-and-nav__employee-permissions.js +0 -93
  291. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.d.ts +0 -3
  292. package/dist/features/tester/seed-data/authored/search-and-nav__header-search.js +0 -185
  293. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.d.ts +0 -2
  294. package/dist/features/tester/seed-data/authored/search-and-nav__settings-deep-links.js +0 -82
  295. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.d.ts +0 -2
  296. package/dist/features/tester/seed-data/authored/search-and-nav__sidebar-search.js +0 -60
  297. package/dist/features/tester/seed-data/authored/selling__become-seller.d.ts +0 -2
  298. package/dist/features/tester/seed-data/authored/selling__become-seller.js +0 -117
  299. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.d.ts +0 -2
  300. package/dist/features/tester/seed-data/authored/selling__digital-content-delivery.js +0 -148
  301. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.d.ts +0 -2
  302. package/dist/features/tester/seed-data/authored/selling__final-sale-authoring.js +0 -108
  303. package/dist/features/tester/seed-data/authored/selling__listing-a-product.d.ts +0 -2
  304. package/dist/features/tester/seed-data/authored/selling__listing-a-product.js +0 -274
  305. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.d.ts +0 -2
  306. package/dist/features/tester/seed-data/authored/selling__listing-edit-roundtrip.js +0 -145
  307. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.d.ts +0 -2
  308. package/dist/features/tester/seed-data/authored/selling__listing-lifecycle.js +0 -336
  309. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.d.ts +0 -2
  310. package/dist/features/tester/seed-data/authored/selling__listing-type-fields-roundtrip.js +0 -136
  311. package/dist/features/tester/seed-data/authored/selling__media-limits.d.ts +0 -2
  312. package/dist/features/tester/seed-data/authored/selling__media-limits.js +0 -135
  313. package/dist/features/tester/seed-data/authored/selling__product-upload-details.d.ts +0 -2
  314. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +0 -155
  315. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.d.ts +0 -2
  316. package/dist/features/tester/seed-data/authored/selling__quick-add-minimum-details.js +0 -138
  317. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.d.ts +0 -2
  318. package/dist/features/tester/seed-data/authored/selling__sectionised-forms.js +0 -191
  319. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.d.ts +0 -2
  320. package/dist/features/tester/seed-data/authored/selling__seller-analytics-payouts.js +0 -138
  321. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.d.ts +0 -2
  322. package/dist/features/tester/seed-data/authored/selling__seller-bids-bundles-filters.js +0 -106
  323. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.d.ts +0 -2
  324. package/dist/features/tester/seed-data/authored/selling__seller-catalog-org.js +0 -192
  325. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.d.ts +0 -2
  326. package/dist/features/tester/seed-data/authored/selling__seller-custom-brands.js +0 -109
  327. package/dist/features/tester/seed-data/authored/selling__seller-guide.d.ts +0 -2
  328. package/dist/features/tester/seed-data/authored/selling__seller-guide.js +0 -34
  329. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.d.ts +0 -2
  330. package/dist/features/tester/seed-data/authored/selling__seller-listing-types.js +0 -348
  331. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.d.ts +0 -2
  332. package/dist/features/tester/seed-data/authored/selling__seller-marketing-extras.js +0 -87
  333. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.d.ts +0 -2
  334. package/dist/features/tester/seed-data/authored/selling__seller-ops-comms.js +0 -90
  335. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.d.ts +0 -2
  336. package/dist/features/tester/seed-data/authored/selling__seller-orders-at-scale.js +0 -85
  337. package/dist/features/tester/seed-data/authored/selling__seller-orders.d.ts +0 -2
  338. package/dist/features/tester/seed-data/authored/selling__seller-orders.js +0 -213
  339. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.d.ts +0 -2
  340. package/dist/features/tester/seed-data/authored/selling__seller-shipping-payouts-setup.js +0 -192
  341. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.d.ts +0 -2
  342. package/dist/features/tester/seed-data/authored/selling__spares-and-group-editing.js +0 -77
  343. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.d.ts +0 -2
  344. package/dist/features/tester/seed-data/authored/selling__store-dashboard-navigation.js +0 -165
  345. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.d.ts +0 -2
  346. package/dist/features/tester/seed-data/authored/selling__store-uncovered-pages.js +0 -116
  347. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.d.ts +0 -2
  348. package/dist/features/tester/seed-data/authored/seo__canonical-and-host.js +0 -127
  349. package/dist/features/tester/seed-data/authored/seo__og-images.d.ts +0 -2
  350. package/dist/features/tester/seed-data/authored/seo__og-images.js +0 -107
  351. package/dist/features/tester/seed-data/authored/seo__page-metadata.d.ts +0 -2
  352. package/dist/features/tester/seed-data/authored/seo__page-metadata.js +0 -120
  353. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.d.ts +0 -2
  354. package/dist/features/tester/seed-data/authored/seo__sitemap-and-robots.js +0 -105
  355. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.d.ts +0 -2
  356. package/dist/features/tester/seed-data/authored/tools__sticker-promote-to-listings.js +0 -58
  357. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.d.ts +0 -2
  358. package/dist/features/tester/seed-data/authored/tools__sticker-tracer.js +0 -284
  359. package/dist/features/tester/seed-data/index.d.ts +0 -2
  360. package/dist/features/tester/seed-data/index.js +0 -2
  361. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +0 -2
  362. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +0 -7601
  363. package/dist/features/tester/seed-data/tester-responses-seed-data.d.ts +0 -2
  364. package/dist/features/tester/seed-data/tester-responses-seed-data.js +0 -95
  365. package/dist/features/tester/seed-data/tester-window.d.ts +0 -25
  366. package/dist/features/tester/seed-data/tester-window.js +0 -66
  367. package/dist/seed/_helpers/brand-rows.d.ts +0 -35
  368. package/dist/seed/_helpers/brand-rows.js +0 -600
  369. package/dist/seed/_helpers/category-content-generated.d.ts +0 -24
  370. package/dist/seed/_helpers/category-content-generated.js +0 -1853
  371. package/dist/seed/_helpers/category-content.d.ts +0 -68
  372. package/dist/seed/_helpers/category-content.js +0 -731
  373. package/dist/seed/_helpers/category-forest.d.ts +0 -4
  374. package/dist/seed/_helpers/category-forest.js +0 -824
  375. package/dist/seed/_helpers/category-images-generated.d.ts +0 -57
  376. package/dist/seed/_helpers/category-images-generated.js +0 -618
  377. package/dist/seed/_helpers/category-models/chunk0.d.ts +0 -2
  378. package/dist/seed/_helpers/category-models/chunk0.js +0 -2648
  379. package/dist/seed/_helpers/category-models/chunk1.d.ts +0 -2
  380. package/dist/seed/_helpers/category-models/chunk1.js +0 -2318
  381. package/dist/seed/_helpers/category-models/chunk2.d.ts +0 -2
  382. package/dist/seed/_helpers/category-models/chunk2.js +0 -2560
  383. package/dist/seed/_helpers/category-models/chunk3.d.ts +0 -2
  384. package/dist/seed/_helpers/category-models/chunk3.js +0 -2196
  385. package/dist/seed/_helpers/category-models/chunk4.d.ts +0 -2
  386. package/dist/seed/_helpers/category-models/chunk4.js +0 -1732
  387. package/dist/seed/_helpers/category-models.d.ts +0 -12
  388. package/dist/seed/_helpers/category-models.js +0 -45
  389. package/dist/seed/_helpers/category-names.d.ts +0 -54
  390. package/dist/seed/_helpers/category-names.js +0 -118
  391. package/dist/seed/_helpers/category-parts-glossary-map.d.ts +0 -1
  392. package/dist/seed/_helpers/category-parts-glossary-map.js +0 -2499
  393. package/dist/seed/_helpers/category-parts.d.ts +0 -9
  394. package/dist/seed/_helpers/category-parts.js +0 -15022
  395. package/dist/seed/_helpers/category-tree.d.ts +0 -27
  396. package/dist/seed/_helpers/category-tree.js +0 -119
  397. package/dist/seed/_helpers/character-features.d.ts +0 -10
  398. package/dist/seed/_helpers/character-features.js +0 -120
  399. package/dist/seed/_helpers/final-sale-fixtures.d.ts +0 -35
  400. package/dist/seed/_helpers/final-sale-fixtures.js +0 -61
  401. package/dist/seed/_helpers/franchise-rows.d.ts +0 -43
  402. package/dist/seed/_helpers/franchise-rows.js +0 -189
  403. package/dist/seed/_helpers/media.d.ts +0 -67
  404. package/dist/seed/_helpers/media.js +0 -172
  405. package/dist/seed/_helpers/part-colours-generated.d.ts +0 -18
  406. package/dist/seed/_helpers/part-colours-generated.js +0 -273
  407. package/dist/seed/_helpers/product-search-txt.d.ts +0 -18
  408. package/dist/seed/_helpers/product-search-txt.js +0 -23
  409. package/dist/seed/_helpers/search-txt-wrappers.d.ts +0 -26
  410. package/dist/seed/_helpers/search-txt-wrappers.js +0 -58
  411. package/dist/seed/addresses-seed-data.d.ts +0 -2
  412. package/dist/seed/addresses-seed-data.js +0 -78
  413. package/dist/seed/authenticity-knowledge-seed-data.d.ts +0 -78
  414. package/dist/seed/authenticity-knowledge-seed-data.js +0 -10729
  415. package/dist/seed/bids-seed-data.d.ts +0 -2
  416. package/dist/seed/bids-seed-data.js +0 -206
  417. package/dist/seed/blog-posts-seed-data.d.ts +0 -6
  418. package/dist/seed/blog-posts-seed-data.js +0 -442
  419. package/dist/seed/carousel-slides-seed-data.d.ts +0 -2
  420. package/dist/seed/carousel-slides-seed-data.js +0 -411
  421. package/dist/seed/carousels-seed-data.d.ts +0 -2
  422. package/dist/seed/carousels-seed-data.js +0 -36
  423. package/dist/seed/cart-seed-data.d.ts +0 -2
  424. package/dist/seed/cart-seed-data.js +0 -241
  425. package/dist/seed/catalogue-seed-data.d.ts +0 -2
  426. package/dist/seed/catalogue-seed-data.js +0 -112
  427. package/dist/seed/categories-seed-data.d.ts +0 -3
  428. package/dist/seed/categories-seed-data.js +0 -816
  429. package/dist/seed/claimed-coupons-seed-data.d.ts +0 -2
  430. package/dist/seed/claimed-coupons-seed-data.js +0 -85
  431. package/dist/seed/coupon-usage-seed-data.d.ts +0 -9
  432. package/dist/seed/coupon-usage-seed-data.js +0 -55
  433. package/dist/seed/coupons-seed-data.d.ts +0 -2
  434. package/dist/seed/coupons-seed-data.js +0 -226
  435. package/dist/seed/defaults/categories.d.ts +0 -2
  436. package/dist/seed/defaults/categories.js +0 -12
  437. package/dist/seed/defaults/faqs.d.ts +0 -2
  438. package/dist/seed/defaults/faqs.js +0 -40
  439. package/dist/seed/events-seed-data.d.ts +0 -7
  440. package/dist/seed/events-seed-data.js +0 -482
  441. package/dist/seed/factories/address.factory.d.ts +0 -21
  442. package/dist/seed/factories/address.factory.js +0 -44
  443. package/dist/seed/factories/bid.factory.d.ts +0 -15
  444. package/dist/seed/factories/bid.factory.js +0 -33
  445. package/dist/seed/factories/blog-post.factory.d.ts +0 -15
  446. package/dist/seed/factories/blog-post.factory.js +0 -22
  447. package/dist/seed/factories/carousel.factory.d.ts +0 -11
  448. package/dist/seed/factories/carousel.factory.js +0 -17
  449. package/dist/seed/factories/cart.factory.d.ts +0 -25
  450. package/dist/seed/factories/cart.factory.js +0 -35
  451. package/dist/seed/factories/category.factory.d.ts +0 -11
  452. package/dist/seed/factories/category.factory.js +0 -16
  453. package/dist/seed/factories/coupon.factory.d.ts +0 -21
  454. package/dist/seed/factories/coupon.factory.js +0 -43
  455. package/dist/seed/factories/faq.factory.d.ts +0 -10
  456. package/dist/seed/factories/faq.factory.js +0 -15
  457. package/dist/seed/factories/notification.factory.d.ts +0 -18
  458. package/dist/seed/factories/notification.factory.js +0 -39
  459. package/dist/seed/factories/order.factory.d.ts +0 -20
  460. package/dist/seed/factories/order.factory.js +0 -20
  461. package/dist/seed/factories/payout.factory.d.ts +0 -21
  462. package/dist/seed/factories/payout.factory.js +0 -38
  463. package/dist/seed/factories/product.factory.d.ts +0 -27
  464. package/dist/seed/factories/product.factory.js +0 -80
  465. package/dist/seed/factories/review.factory.d.ts +0 -14
  466. package/dist/seed/factories/review.factory.js +0 -52
  467. package/dist/seed/factories/session.factory.d.ts +0 -15
  468. package/dist/seed/factories/session.factory.js +0 -31
  469. package/dist/seed/factories/store.factory.d.ts +0 -23
  470. package/dist/seed/factories/store.factory.js +0 -47
  471. package/dist/seed/factories/user.factory.d.ts +0 -19
  472. package/dist/seed/factories/user.factory.js +0 -56
  473. package/dist/seed/faq-seed-data.d.ts +0 -18
  474. package/dist/seed/faq-seed-data.js +0 -1956
  475. package/dist/seed/firestore-indexes.d.ts +0 -12
  476. package/dist/seed/firestore-indexes.js +0 -31
  477. package/dist/seed/grouped-listings-seed-data.d.ts +0 -2
  478. package/dist/seed/grouped-listings-seed-data.js +0 -283
  479. package/dist/seed/history-seed-data.d.ts +0 -12
  480. package/dist/seed/history-seed-data.js +0 -70
  481. package/dist/seed/homepage-sections-seed-data.d.ts +0 -2
  482. package/dist/seed/homepage-sections-seed-data.js +0 -1018
  483. package/dist/seed/index.d.ts +0 -98
  484. package/dist/seed/index.js +0 -112
  485. package/dist/seed/lottery-entries-seed-data.d.ts +0 -2
  486. package/dist/seed/lottery-entries-seed-data.js +0 -108
  487. package/dist/seed/manifest.d.ts +0 -16
  488. package/dist/seed/manifest.js +0 -235
  489. package/dist/seed/media-assets-seed-data.d.ts +0 -22
  490. package/dist/seed/media-assets-seed-data.js +0 -5593
  491. package/dist/seed/model-composition-seed-data.d.ts +0 -15
  492. package/dist/seed/model-composition-seed-data.js +0 -9032
  493. package/dist/seed/notifications-seed-data.d.ts +0 -2
  494. package/dist/seed/notifications-seed-data.js +0 -606
  495. package/dist/seed/offers-seed-data.d.ts +0 -2
  496. package/dist/seed/offers-seed-data.js +0 -398
  497. package/dist/seed/orders-seed-data.d.ts +0 -2
  498. package/dist/seed/orders-seed-data.js +0 -845
  499. package/dist/seed/part-glossary/chunk0.d.ts +0 -9
  500. package/dist/seed/part-glossary/chunk0.js +0 -35448
  501. package/dist/seed/part-glossary/chunk1.d.ts +0 -9
  502. package/dist/seed/part-glossary/chunk1.js +0 -40494
  503. package/dist/seed/part-glossary/chunk2.d.ts +0 -9
  504. package/dist/seed/part-glossary/chunk2.js +0 -51242
  505. package/dist/seed/part-glossary/chunk3.d.ts +0 -9
  506. package/dist/seed/part-glossary/chunk3.js +0 -53337
  507. package/dist/seed/part-glossary/chunk4.d.ts +0 -9
  508. package/dist/seed/part-glossary/chunk4.js +0 -51454
  509. package/dist/seed/part-glossary-seed-data.d.ts +0 -15
  510. package/dist/seed/part-glossary-seed-data.js +0 -25
  511. package/dist/seed/payouts-seed-data.d.ts +0 -2
  512. package/dist/seed/payouts-seed-data.js +0 -302
  513. package/dist/seed/product-features-seed-data.d.ts +0 -3
  514. package/dist/seed/product-features-seed-data.js +0 -366
  515. package/dist/seed/products-art-seed-data.d.ts +0 -2
  516. package/dist/seed/products-art-seed-data.js +0 -289
  517. package/dist/seed/products-auctions-seed-data.d.ts +0 -2
  518. package/dist/seed/products-auctions-seed-data.js +0 -475
  519. package/dist/seed/products-beyblade-x-seed-data.d.ts +0 -2
  520. package/dist/seed/products-beyblade-x-seed-data.js +0 -476
  521. package/dist/seed/products-catalogue-seed-data.d.ts +0 -22
  522. package/dist/seed/products-catalogue-seed-data.js +0 -86384
  523. package/dist/seed/products-classifieds-seed-data.d.ts +0 -7
  524. package/dist/seed/products-classifieds-seed-data.js +0 -435
  525. package/dist/seed/products-digital-codes-seed-data.d.ts +0 -7
  526. package/dist/seed/products-digital-codes-seed-data.js +0 -395
  527. package/dist/seed/products-live-items-seed-data.d.ts +0 -7
  528. package/dist/seed/products-live-items-seed-data.js +0 -269
  529. package/dist/seed/products-preorders-seed-data.d.ts +0 -2
  530. package/dist/seed/products-preorders-seed-data.js +0 -360
  531. package/dist/seed/products-prize-draws-seed-data.d.ts +0 -7
  532. package/dist/seed/products-prize-draws-seed-data.js +0 -427
  533. package/dist/seed/products-spares-seed-data.d.ts +0 -2
  534. package/dist/seed/products-spares-seed-data.js +0 -368
  535. package/dist/seed/products-standard-seed-data.d.ts +0 -2
  536. package/dist/seed/products-standard-seed-data.js +0 -632
  537. package/dist/seed/products-stickers-seed-data.d.ts +0 -2
  538. package/dist/seed/products-stickers-seed-data.js +0 -319
  539. package/dist/seed/reviews-seed-data.d.ts +0 -1
  540. package/dist/seed/reviews-seed-data.js +0 -185
  541. package/dist/seed/runner.d.ts +0 -2
  542. package/dist/seed/runner.js +0 -125
  543. package/dist/seed/scammers-seed-data.d.ts +0 -2
  544. package/dist/seed/scammers-seed-data.js +0 -235
  545. package/dist/seed/seed-market-config.d.ts +0 -48
  546. package/dist/seed/seed-market-config.js +0 -199
  547. package/dist/seed/seed-purpose.d.ts +0 -299
  548. package/dist/seed/seed-purpose.js +0 -431
  549. package/dist/seed/sessions-seed-data.d.ts +0 -3
  550. package/dist/seed/sessions-seed-data.js +0 -116
  551. package/dist/seed/shipments-seed-data.d.ts +0 -5
  552. package/dist/seed/shipments-seed-data.js +0 -185
  553. package/dist/seed/site-settings-seed-data.d.ts +0 -2
  554. package/dist/seed/site-settings-seed-data.js +0 -1069
  555. package/dist/seed/store-addresses-seed-data.d.ts +0 -18
  556. package/dist/seed/store-addresses-seed-data.js +0 -71
  557. package/dist/seed/store-extensions-seed-data.d.ts +0 -11
  558. package/dist/seed/store-extensions-seed-data.js +0 -292
  559. package/dist/seed/stores-seed-data.d.ts +0 -6
  560. package/dist/seed/stores-seed-data.js +0 -242
  561. package/dist/seed/support-tickets-seed-data.d.ts +0 -16
  562. package/dist/seed/support-tickets-seed-data.js +0 -239
  563. package/dist/seed/tax-codes-seed-data.d.ts +0 -34
  564. package/dist/seed/tax-codes-seed-data.js +0 -100
  565. package/dist/seed/test-data-ttl.d.ts +0 -29
  566. package/dist/seed/test-data-ttl.js +0 -31
  567. package/dist/seed/test-utils.d.ts +0 -49
  568. package/dist/seed/test-utils.js +0 -110
  569. package/dist/seed/types.d.ts +0 -89
  570. package/dist/seed/types.js +0 -15
  571. package/dist/seed/users-seed-data.d.ts +0 -2
  572. package/dist/seed/users-seed-data.js +0 -597
  573. package/dist/seed/wishlists-seed-data.d.ts +0 -12
  574. package/dist/seed/wishlists-seed-data.js +0 -54
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "stampVersion": 1,
3
- "version": "4.57.0",
4
- "head": "de32aea7a1bbb5fe9970959866c5278c2f9e4e49",
3
+ "version": "4.59.0",
4
+ "head": "9ed0a060b327ed1ceeca35d28dd23879aa60cf5d",
5
5
  "branch": "main",
6
- "dirty": true,
7
- "builtAt": "2026-10-20T18:02:32.256Z"
6
+ "dirty": false,
7
+ "builtAt": "2026-10-20T22:11:20.387Z"
8
8
  }
@@ -0,0 +1,44 @@
1
+ import { type BeyDocument, type BeyProductDocument } from "../../../../features/beys/schemas/firestore";
2
+ /**
3
+ * One bey, by slug.
4
+ *
5
+ * 🛑 A DIRECT DOC READ — `id === slug`, so this needs no query, no index and
6
+ * no scan. That is the whole reason the id is the slug.
7
+ */
8
+ export declare const getBeyBySlug: (slug: string) => Promise<BeyDocument | null>;
9
+ /**
10
+ * The bey(s) paired with a category leaf — the inverse of `BeyDocument.categoryId`.
11
+ *
12
+ * 🛑 ONE INDEXED EQUALITY, no composite index, which is the same shape
13
+ * `getCompositionsForCategory` uses for the parts side of this exact job. A
14
+ * single-field `==` is served by Firestore's automatic index, so this adds no
15
+ * index to declare and no deploy to wait on.
16
+ *
17
+ * 🛑 NOT `.limit(1)`, and that is measured rather than cautious. 1,880 beys
18
+ * carry a `categoryId` across 1,858 distinct leaves — so **22 leaves pair with
19
+ * TWO beys**, which are the vendor pairs (a Takara-Tomy release and its Hasbro
20
+ * equivalent merged onto one taxonomy leaf). `limit(1)` would render one of
21
+ * them and silently drop the other on 22 pages, with nothing to indicate a
22
+ * second existed. The cap is small and the extra rows are the point.
23
+ *
24
+ * Fails OPEN to an empty list for the same reason as below: a category page
25
+ * missing its reference link is a worse page, a category page that throws is no
26
+ * page at all.
27
+ */
28
+ export declare const getBeysForCategory: (categoryId: string) => Promise<BeyDocument[]>;
29
+ /**
30
+ * The products that ship a bey.
31
+ *
32
+ * 🛑 A QUERY, unlike `getModelsUsingPart`'s `getAll`, and the difference is a
33
+ * real asymmetry in the data rather than an inconsistency: a part row carries
34
+ * `usedBy` so its models are ids already in hand, whereas the product→bey edge
35
+ * lives on the PRODUCT (`assortment[].beyId`). A bey has no stored list of the
36
+ * products containing it.
37
+ *
38
+ * So this is one `array-contains` over a denormalised id array, bounded at 12.
39
+ * 🛑 It needs `assortmentBeyIds` on the product — a flat array of the ids
40
+ * inside `assortment[]`, because Firestore cannot `array-contains` on a field
41
+ * nested inside objects in an array. Until the seed carries that field this
42
+ * returns [] and says so, rather than running a scan.
43
+ */
44
+ export declare const getProductsContainingBey: (beyId: string) => Promise<BeyProductDocument[]>;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Reads for the public bey surfaces.
3
+ *
4
+ * 🛑 Wrapped in `React.cache` because a page and its `generateMetadata` share
5
+ * the call — and the NARROWEST shared call is what gets cached, not whatever
6
+ * is convenient to export. `React.cache` memoises per argument list, so two
7
+ * call sites passing different arguments get two entries and dedupe nothing
8
+ * (the `getStoreBySlug(slug)` vs `getStoreBySlug(slug, viewer)` trap).
9
+ */
10
+ import { cache } from "react";
11
+ import { BEYS_COLLECTION, BEY_PRODUCTS_COLLECTION, } from "../../../../features/beys/schemas/firestore.js";
12
+ import { getAdminDb } from "../../../../providers/db-firebase/index.js";
13
+ import { BEY_FIELDS } from "../../../../constants/field-names.js";
14
+ import { serverLogger } from "../../../../monitoring/server-logger.js";
15
+ import { normalizeError } from "../../../../errors/normalize.js";
16
+ /**
17
+ * One bey, by slug.
18
+ *
19
+ * 🛑 A DIRECT DOC READ — `id === slug`, so this needs no query, no index and
20
+ * no scan. That is the whole reason the id is the slug.
21
+ */
22
+ export const getBeyBySlug = cache(async (slug) => {
23
+ try {
24
+ const snap = await getAdminDb().collection(BEYS_COLLECTION).doc(slug).get();
25
+ return snap.exists ? { id: snap.id, ...snap.data() } : null;
26
+ }
27
+ catch (err) {
28
+ const e = normalizeError(err);
29
+ serverLogger.warn("getBeyBySlug failed", { slug, error: e.message });
30
+ return null;
31
+ }
32
+ });
33
+ /**
34
+ * The bey(s) paired with a category leaf — the inverse of `BeyDocument.categoryId`.
35
+ *
36
+ * 🛑 ONE INDEXED EQUALITY, no composite index, which is the same shape
37
+ * `getCompositionsForCategory` uses for the parts side of this exact job. A
38
+ * single-field `==` is served by Firestore's automatic index, so this adds no
39
+ * index to declare and no deploy to wait on.
40
+ *
41
+ * 🛑 NOT `.limit(1)`, and that is measured rather than cautious. 1,880 beys
42
+ * carry a `categoryId` across 1,858 distinct leaves — so **22 leaves pair with
43
+ * TWO beys**, which are the vendor pairs (a Takara-Tomy release and its Hasbro
44
+ * equivalent merged onto one taxonomy leaf). `limit(1)` would render one of
45
+ * them and silently drop the other on 22 pages, with nothing to indicate a
46
+ * second existed. The cap is small and the extra rows are the point.
47
+ *
48
+ * Fails OPEN to an empty list for the same reason as below: a category page
49
+ * missing its reference link is a worse page, a category page that throws is no
50
+ * page at all.
51
+ */
52
+ export const getBeysForCategory = cache(async (categoryId) => {
53
+ try {
54
+ const snap = await getAdminDb()
55
+ .collection(BEYS_COLLECTION)
56
+ .where(BEY_FIELDS.CATEGORY_ID, "==", categoryId)
57
+ .limit(4)
58
+ .get();
59
+ return snap.docs.map((d) => ({ id: d.id, ...d.data() }));
60
+ }
61
+ catch (err) {
62
+ const e = normalizeError(err);
63
+ serverLogger.warn("getBeysForCategory failed", { categoryId, error: e.message });
64
+ return [];
65
+ }
66
+ });
67
+ /**
68
+ * The products that ship a bey.
69
+ *
70
+ * 🛑 A QUERY, unlike `getModelsUsingPart`'s `getAll`, and the difference is a
71
+ * real asymmetry in the data rather than an inconsistency: a part row carries
72
+ * `usedBy` so its models are ids already in hand, whereas the product→bey edge
73
+ * lives on the PRODUCT (`assortment[].beyId`). A bey has no stored list of the
74
+ * products containing it.
75
+ *
76
+ * So this is one `array-contains` over a denormalised id array, bounded at 12.
77
+ * 🛑 It needs `assortmentBeyIds` on the product — a flat array of the ids
78
+ * inside `assortment[]`, because Firestore cannot `array-contains` on a field
79
+ * nested inside objects in an array. Until the seed carries that field this
80
+ * returns [] and says so, rather than running a scan.
81
+ */
82
+ export const getProductsContainingBey = cache(async (beyId) => {
83
+ try {
84
+ const snap = await getAdminDb()
85
+ .collection(BEY_PRODUCTS_COLLECTION)
86
+ .where("assortmentBeyIds", "array-contains", beyId)
87
+ .limit(12)
88
+ .get();
89
+ return snap.docs.map((d) => ({ id: d.id, ...d.data() }));
90
+ }
91
+ catch (err) {
92
+ const e = normalizeError(err);
93
+ /*
94
+ * Fails OPEN to an empty list. A missing composite index throws
95
+ * `FAILED_PRECONDITION`, and the right outcome is a bey page without its
96
+ * "found in" section rather than a broken page — the caller wraps this in
97
+ * `safeRead` as well, so the degradation is recorded rather than silent.
98
+ *
99
+ * 🛑 `normalizeError` is the FIRST statement on purpose. It was below
100
+ * this comment, which put it outside audit-catch-normalize's proximity
101
+ * window — so the audit correctly reported it as missing even though the
102
+ * call was right there. Comment after the call, never before it.
103
+ */
104
+ serverLogger.warn("getProductsContainingBey failed", { beyId, error: e.message });
105
+ return [];
106
+ }
107
+ });
@@ -0,0 +1,42 @@
1
+ /**
2
+ * OG card for `/beys/{slug}`.
3
+ *
4
+ * ── 🛑 NO IMAGE FETCHES, FOR THE REASON THE PARTS CARDS DO NOT EITHER ─────
5
+ *
6
+ * Beys DO have photographs — 1,903 of 1,988 — so this is a deliberate refusal
7
+ * rather than a gap. The project was suspended for **Fast Origin Transfer at
8
+ * 5.25× its allowance** (52.52 GB against 10 GB), traced to render-time image
9
+ * proxying (Root Cause #104). 1,988 bey routes with one remote fetch each, on
10
+ * a crawler sweep, is precisely the amplification that was just removed. Type
11
+ * on a gradient costs one lambda and nothing else.
12
+ *
13
+ * ── 🛑 NO MONEY ON THE CANVAS ─────────────────────────────────────────────
14
+ *
15
+ * All eight money-bearing OG renderers were stripped, and the rule is stated
16
+ * in CLAUDE.md: an OG image is a public image URL with the amount burned into
17
+ * the pixels, so no sign-in gate reaches it and no paywall markup describes
18
+ * it. 1,309 beys carry a price in the research data and none of it appears
19
+ * here.
20
+ *
21
+ * `audit-guest-price-leak`'s R1 blocks a `₹` in any `og.tsx`, so this is
22
+ * mechanically enforced rather than left to discipline.
23
+ */
24
+ import type { ReactElement } from "react";
25
+ import type { BeyDocument } from "../../../../features/beys/schemas/firestore";
26
+ /**
27
+ * One bey's card.
28
+ *
29
+ * 🛑 EVERY CLAUSE IS CONDITIONAL, because the coverage genuinely varies: 93%
30
+ * of beys have a mass but only 248 state it directly, and `system` is on 94%
31
+ * while `type` and `spinDirection` are lower. A card reading "0 g" or an empty
32
+ * separator would be a claim the data does not support — the same reason the
33
+ * parts card builds its detail line by filtering.
34
+ *
35
+ * 🛑 The mass is marked `≈` when it was SUMMED from the parts rather than
36
+ * stated, which is the same honesty the detail page applies. A derived figure
37
+ * printed as an exact one is the single easiest way for this dataset to start
38
+ * lying.
39
+ */
40
+ export declare function renderBeyOg(bey: BeyDocument | null | undefined, opts: {
41
+ siteName: string;
42
+ }): ReactElement;
@@ -0,0 +1,89 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const BG = "#0f172a";
3
+ const GRADIENT = "linear-gradient(135deg, #0f172a 0%, #1e293b 100%)";
4
+ const MUTED = "#94a3b8";
5
+ const ACCENT = "#5eead4";
6
+ /*
7
+ * 🛑 A COPY of the parts shell, not an import, and that is a considered
8
+ * choice rather than laziness.
9
+ *
10
+ * The Duplication Decision Framework's Rule of Three says extract on the
11
+ * THIRD copy, not the second — "two copies is observation; three is a
12
+ * pattern". There are now exactly two OG shells of this shape. Lifting it to
13
+ * a shared module today would also put a third consumer between every OG
14
+ * renderer and its layout for no behavioural gain.
15
+ *
16
+ * When a third appears, extract then. The constants above are duplicated for
17
+ * the same reason and in the same breath.
18
+ */
19
+ function shell(eyebrow, title, detail, siteName) {
20
+ return (_jsxs("div", { style: {
21
+ display: "flex",
22
+ width: "100%",
23
+ height: "100%",
24
+ background: BG,
25
+ fontFamily: "sans-serif",
26
+ position: "relative",
27
+ overflow: "hidden",
28
+ alignItems: "center",
29
+ justifyContent: "center",
30
+ }, children: [_jsx("div", { style: { position: "absolute", inset: 0, background: GRADIENT } }), _jsxs("div", { style: {
31
+ position: "relative",
32
+ display: "flex",
33
+ flexDirection: "column",
34
+ alignItems: "center",
35
+ gap: 24,
36
+ padding: "60px",
37
+ textAlign: "center",
38
+ }, children: [_jsx("div", { style: {
39
+ fontSize: 20,
40
+ color: ACCENT,
41
+ fontWeight: 600,
42
+ letterSpacing: 3,
43
+ textTransform: "uppercase",
44
+ }, children: eyebrow }), _jsx("div", { style: {
45
+ fontSize: title.length > 34 ? 56 : 76,
46
+ color: "#ffffff",
47
+ fontWeight: 700,
48
+ lineHeight: 1.1,
49
+ }, children: title }), detail && _jsx("div", { style: { fontSize: 28, color: MUTED }, children: detail }), _jsx("div", { style: { fontSize: 20, color: MUTED, marginTop: 8 }, children: siteName })] })] }));
50
+ }
51
+ /**
52
+ * One bey's card.
53
+ *
54
+ * 🛑 EVERY CLAUSE IS CONDITIONAL, because the coverage genuinely varies: 93%
55
+ * of beys have a mass but only 248 state it directly, and `system` is on 94%
56
+ * while `type` and `spinDirection` are lower. A card reading "0 g" or an empty
57
+ * separator would be a claim the data does not support — the same reason the
58
+ * parts card builds its detail line by filtering.
59
+ *
60
+ * 🛑 The mass is marked `≈` when it was SUMMED from the parts rather than
61
+ * stated, which is the same honesty the detail page applies. A derived figure
62
+ * printed as an exact one is the single easiest way for this dataset to start
63
+ * lying.
64
+ */
65
+ export function renderBeyOg(bey, opts) {
66
+ if (!bey)
67
+ return shell("Beyblades", "Beyblade database", "", opts.siteName);
68
+ const statedMass = typeof bey.weightG === "number" ? bey.weightG : null;
69
+ const summedMass = typeof bey.weightGFromParts === "number" ? bey.weightGFromParts : null;
70
+ const mass = statedMass !== null
71
+ ? `${statedMass} g`
72
+ : summedMass !== null
73
+ ? `≈ ${Math.round(summedMass * 10) / 10} g`
74
+ : null;
75
+ const bits = [
76
+ bey.type ? `${bey.type} type` : null,
77
+ bey.spinDirection ?? null,
78
+ mass,
79
+ bey.composition?.length ? `${bey.composition.length} parts` : null,
80
+ ].filter((b) => b !== null);
81
+ /*
82
+ * The eyebrow is the SYSTEM (Hybrid Wheel System, Burst Ultimate…) because
83
+ * that is the one line a collector uses to place a bey in time, and it is
84
+ * present on 94% of them. `series` is the fallback and "Beyblade" the floor
85
+ * — never an empty eyebrow, which reads as a broken template.
86
+ */
87
+ const eyebrow = bey.system ?? bey.series ?? "Beyblade";
88
+ return shell(eyebrow, bey.name, bits.join(" · "), opts.siteName);
89
+ }
@@ -11,6 +11,7 @@ import { PART_GLOSSARY_COLLECTION, MODEL_COMPOSITION_COLLECTION, partGlossaryId,
11
11
  import { getAdminDb } from "../../../../providers/db-firebase/index.js";
12
12
  import { serverLogger } from "../../../../monitoring/server-logger.js";
13
13
  import { normalizeError } from "../../../../errors/normalize.js";
14
+ import { MODEL_COMPOSITION_FIELDS, PART_GLOSSARY_FIELDS, } from "../../../../constants/field-names.js";
14
15
  /** The bucket cap. 87 is the largest real classification, so this clears it. */
15
16
  export const PART_SLOT_PAGE_SIZE = 120;
16
17
  /** One part, by `(slot, code|name)` — the only key this collection has. */
@@ -125,7 +126,7 @@ export const getCompositionsForCategory = cache(async (categoryId) => {
125
126
  try {
126
127
  const snap = await getAdminDb()
127
128
  .collection(MODEL_COMPOSITION_COLLECTION)
128
- .where("categoryId", "==", categoryId)
129
+ .where(MODEL_COMPOSITION_FIELDS.CATEGORY_ID, "==", categoryId)
129
130
  .limit(8)
130
131
  .get();
131
132
  return snap.docs.map((d) => ({ id: d.id, ...d.data() }));
@@ -154,7 +155,7 @@ export const listPartsBySlot = cache(async (slot) => {
154
155
  try {
155
156
  const snap = await getAdminDb()
156
157
  .collection(PART_GLOSSARY_COLLECTION)
157
- .where("slot", "==", slot)
158
+ .where(PART_GLOSSARY_FIELDS.SLOT, "==", slot)
158
159
  .limit(PART_SLOT_PAGE_SIZE)
159
160
  .get();
160
161
  const parts = snap.docs
@@ -59,7 +59,7 @@ export declare const NOTIFICATION_TTL_DAYS = 30;
59
59
  * Test-data TTL in days. RE-EXPORTED, not re-declared — this was a second
60
60
  * literal `7` whose only tie to the real one was a comment saying it matched.
61
61
  */
62
- export { TEST_DATA_TTL_DAYS } from "../../../../seed/test-data-ttl";
62
+ export { TEST_DATA_TTL_DAYS } from "../../../../constants/seed-meta";
63
63
  /** Firestore batch write hard ceiling. */
64
64
  export declare const BATCH_LIMIT = 500;
65
65
  /** Firestore single-query soft ceiling for reconcile sweeps. */
@@ -62,7 +62,7 @@ export const NOTIFICATION_TTL_DAYS = 30;
62
62
  * Test-data TTL in days. RE-EXPORTED, not re-declared — this was a second
63
63
  * literal `7` whose only tie to the real one was a comment saying it matched.
64
64
  */
65
- export { TEST_DATA_TTL_DAYS } from "../../../../seed/test-data-ttl.js";
65
+ export { TEST_DATA_TTL_DAYS } from "../../../../constants/seed-meta.js";
66
66
  /** Firestore batch write hard ceiling. */
67
67
  export const BATCH_LIMIT = 500;
68
68
  /** Firestore single-query soft ceiling for reconcile sweeps. */
@@ -29,7 +29,7 @@ import type { IconKey } from "../../../ui/icons/icon-registry";
29
29
  /** What KIND of action — drives default UI affordance (link vs button vs danger). */
30
30
  export type ActionKind = "primary" | "secondary" | "danger" | "ghost" | "link" | "chip";
31
31
  /** Resource bucket — keyed top-level in the ACTIONS tree. */
32
- export type ActionResource = "PRODUCT" | "AUCTION" | "PRE_ORDER" | "PRIZE_DRAW" | "DIGITAL_CODE" | "BUNDLE" | "GROUP" | "CATEGORY" | "BRAND" | "SUBLISTING" | "STORE" | "BLOG" | "EVENT" | "REVIEW" | "SHIPMENT" | "CATALOGUE" | "USER" | "SELLER" | "ADMIN" | "CART" | "CHECKOUT" | "NAV" | "MEDIA" | "SUPPORT" | "LOTTERY" | "TESTER";
32
+ export type ActionResource = "PRODUCT" | "AUCTION" | "PRE_ORDER" | "PRIZE_DRAW" | "DIGITAL_CODE" | "BUNDLE" | "GROUP" | "CATEGORY" | "BRAND" | "PART" | "BEY" | "SUBLISTING" | "STORE" | "BLOG" | "EVENT" | "REVIEW" | "SHIPMENT" | "CATALOGUE" | "USER" | "SELLER" | "ADMIN" | "CART" | "CHECKOUT" | "NAV" | "MEDIA" | "SUPPORT" | "LOTTERY" | "TESTER";
33
33
  /** Confirmation modal config — when set, <Button action={...}> opens
34
34
  * a confirm dialog before firing the actual handler. */
35
35
  export interface ActionConfirmation {
@@ -432,6 +432,92 @@ export const ACTIONS = {
432
432
  },
433
433
  },
434
434
  },
435
+ /*
436
+ * ── 🛑 THE TWO GENERATED REFERENCE DATABASES ─────────────────────────────
437
+ *
438
+ * `partGlossary` (2,488) and `beys` (1,988) are built by committed
439
+ * generators from a crawled corpus. That shapes every leaf below:
440
+ *
441
+ * · NO `create`. A row authored by hand has no source, vanishes on the
442
+ * next regeneration, and makes "this dataset rebuilds from the repo"
443
+ * false. Adding a part is a change to the generator, not a button.
444
+ * · `edit` is CORRECT-A-WRONG-EXTRACTION, and says so, because that is
445
+ * what it is for — the corpus was measurably wrong five times in one
446
+ * session on mode data alone.
447
+ * · `delete`'s confirmation does NOT say "cannot be undone", because that
448
+ * would be a lie: the row is in a committed seed file and the next
449
+ * reseed restores it. It says what actually happens.
450
+ */
451
+ PART: {
452
+ view: {
453
+ iconKey: "view",
454
+ id: "part.view",
455
+ label: "View",
456
+ ariaLabel: "View part",
457
+ description: "Open the part reference page.",
458
+ kind: "secondary",
459
+ },
460
+ edit: {
461
+ iconKey: "edit",
462
+ id: "part.edit",
463
+ label: "Edit",
464
+ ariaLabel: "Edit part",
465
+ description: "Correct this part's recorded details. The correction is kept when the database is regenerated.",
466
+ kind: "secondary",
467
+ permissions: ["admin"],
468
+ },
469
+ delete: {
470
+ iconKey: "delete",
471
+ id: "part.delete",
472
+ label: "Delete",
473
+ ariaLabel: "Delete part",
474
+ description: "Remove this part from the live database.",
475
+ kind: "danger",
476
+ permissions: ["admin"],
477
+ confirmation: {
478
+ title: "Remove this part from the live database?",
479
+ body: "Beyblades built from it keep their parts list and will show its name without a link. " +
480
+ "This part is also in the committed seed data, so regenerating the database will bring it " +
481
+ "back — to remove it for good, take it out of the generator.",
482
+ confirmLabel: "Remove",
483
+ },
484
+ },
485
+ },
486
+ BEY: {
487
+ view: {
488
+ iconKey: "view",
489
+ id: "bey.view",
490
+ label: "View",
491
+ ariaLabel: "View Beyblade",
492
+ description: "Open the Beyblade reference page.",
493
+ kind: "secondary",
494
+ },
495
+ edit: {
496
+ iconKey: "edit",
497
+ id: "bey.edit",
498
+ label: "Edit",
499
+ ariaLabel: "Edit Beyblade",
500
+ description: "Correct this Beyblade's recorded details. The correction is kept when the database is regenerated.",
501
+ kind: "secondary",
502
+ permissions: ["admin"],
503
+ },
504
+ delete: {
505
+ iconKey: "delete",
506
+ id: "bey.delete",
507
+ label: "Delete",
508
+ ariaLabel: "Delete Beyblade",
509
+ description: "Remove this Beyblade from the live database.",
510
+ kind: "danger",
511
+ permissions: ["admin"],
512
+ confirmation: {
513
+ title: "Remove this Beyblade from the live database?",
514
+ body: "Its category page and any listings under it are not touched, and boxed sets that include " +
515
+ "it keep their contents list. It is also in the committed seed data, so regenerating the " +
516
+ "database will bring it back — to remove it for good, take it out of the generator.",
517
+ confirmLabel: "Remove",
518
+ },
519
+ },
520
+ },
435
521
  CATEGORY: {
436
522
  view: {
437
523
  iconKey: "view",
@@ -1,4 +1,4 @@
1
- import type { SeedPurpose } from "../../../seed/seed-purpose";
1
+ import type { SeedPurpose } from "../../../constants/seed-meta";
2
2
  export interface BaseDocument {
3
3
  id: string;
4
4
  createdAt: Date;
package/dist/client.d.ts CHANGED
@@ -437,6 +437,8 @@ export type { ListingTypeCapability } from "./_internal/shared/listing-types/cap
437
437
  export { LISTING_TYPE_REGISTRY, pluginFor, detectListingTypeFromSlug } from "./_internal/shared/listing-types/_registry";
438
438
  export { useStoreListingEntitlements } from "./features/seller/hooks/useStoreListingEntitlements";
439
439
  export { OwnerQuickActions } from "./features/admin/components/OwnerQuickActions";
440
+ export { RecordOwnerQuickActions } from "./features/admin/components/RecordOwnerQuickActions";
441
+ export type { RecordOwnerQuickActionsProps, RecordQuickActionResource } from "./features/admin/components/RecordOwnerQuickActions";
440
442
  export { YourPurchaseStrip } from "./features/orders/components/YourPurchaseStrip";
441
443
  export { ReviewFormDrawer, reviewFormSchema } from "./features/reviews/components/ReviewFormDrawer";
442
444
  export type { ReviewFormDrawerProps, ReviewFormValues } from "./features/reviews/components/ReviewFormDrawer";
package/dist/client.js CHANGED
@@ -460,6 +460,7 @@ export { LISTING_TYPE_REGISTRY, pluginFor, detectListingTypeFromSlug } from "./_
460
460
  export { useStoreListingEntitlements } from "./features/seller/hooks/useStoreListingEntitlements.js";
461
461
  // Pencil / clone / bin for whoever owns the record, on a PUBLIC surface.
462
462
  export { OwnerQuickActions } from "./features/admin/components/OwnerQuickActions.js";
463
+ export { RecordOwnerQuickActions } from "./features/admin/components/RecordOwnerQuickActions.js";
463
464
  // "You ordered this - track it" / "your review - edit it", on a product page.
464
465
  export { YourPurchaseStrip } from "./features/orders/components/YourPurchaseStrip.js";
465
466
  // The first review form this app has had - see the component's header.
@@ -126,6 +126,10 @@ export declare const ADMIN_ENDPOINTS: {
126
126
  readonly BUNDLE_REBUILD: (id: string) => string;
127
127
  readonly CATEGORIES: "/api/admin/categories";
128
128
  readonly CATEGORY_BY_ID: (id: string) => string;
129
+ readonly PARTS: "/api/admin/parts";
130
+ readonly PART_BY_ID: (id: string) => string;
131
+ readonly BEYS: "/api/admin/beys";
132
+ readonly BEY_BY_ID: (id: string) => string;
129
133
  readonly BRANDS: "/api/admin/brands";
130
134
  readonly BRAND_BY_ID: (id: string) => string;
131
135
  readonly FAQS: "/api/admin/faqs";
@@ -690,6 +694,10 @@ export declare const API_ENDPOINTS: {
690
694
  readonly BUNDLE_REBUILD: (id: string) => string;
691
695
  readonly CATEGORIES: "/api/admin/categories";
692
696
  readonly CATEGORY_BY_ID: (id: string) => string;
697
+ readonly PARTS: "/api/admin/parts";
698
+ readonly PART_BY_ID: (id: string) => string;
699
+ readonly BEYS: "/api/admin/beys";
700
+ readonly BEY_BY_ID: (id: string) => string;
693
701
  readonly BRANDS: "/api/admin/brands";
694
702
  readonly BRAND_BY_ID: (id: string) => string;
695
703
  readonly FAQS: "/api/admin/faqs";
@@ -1219,6 +1227,10 @@ export declare const API_ROUTES: {
1219
1227
  readonly BUNDLE_REBUILD: (id: string) => string;
1220
1228
  readonly CATEGORIES: "/api/admin/categories";
1221
1229
  readonly CATEGORY_BY_ID: (id: string) => string;
1230
+ readonly PARTS: "/api/admin/parts";
1231
+ readonly PART_BY_ID: (id: string) => string;
1232
+ readonly BEYS: "/api/admin/beys";
1233
+ readonly BEY_BY_ID: (id: string) => string;
1222
1234
  readonly BRANDS: "/api/admin/brands";
1223
1235
  readonly BRAND_BY_ID: (id: string) => string;
1224
1236
  readonly FAQS: "/api/admin/faqs";
@@ -157,6 +157,16 @@ export const ADMIN_ENDPOINTS = {
157
157
  BUNDLE_REBUILD: (id) => `/api/admin/bundles/${id}/rebuild`,
158
158
  CATEGORIES: "/api/admin/categories",
159
159
  CATEGORY_BY_ID: (id) => `/api/admin/categories/${id}`,
160
+ /*
161
+ * The generated reference databases. PATCH corrects a wrong extraction;
162
+ * DELETE removes a row that should not exist. No POST — see the note on
163
+ * `ROUTES.ADMIN.PARTS` for why creating one by hand is not a supported
164
+ * operation on generated data.
165
+ */
166
+ PARTS: "/api/admin/parts",
167
+ PART_BY_ID: (id) => `/api/admin/parts/${id}`,
168
+ BEYS: "/api/admin/beys",
169
+ BEY_BY_ID: (id) => `/api/admin/beys/${id}`,
160
170
  BRANDS: "/api/admin/brands",
161
171
  BRAND_BY_ID: (id) => `/api/admin/brands/${id}`,
162
172
  FAQS: "/api/admin/faqs",
@@ -509,6 +509,52 @@ export declare const STORE_FIELDS: {
509
509
  readonly TOTAL_PRODUCTS: "stats.totalProducts";
510
510
  };
511
511
  };
512
+ /**
513
+ * The two GENERATED reference databases.
514
+ *
515
+ * 🛑 NOT reused from `CATEGORY_FIELDS`. `audit-route-nav-field-constants`
516
+ * suggested `CATEGORY_FIELDS.NAME` for a query against `partGlossary`, and the
517
+ * string would have been identical — which is exactly why that would be the
518
+ * wrong fix. A constant's job is to say WHICH collection's field is meant, so
519
+ * that renaming one collection's field cannot silently retarget another's
520
+ * query. Same bytes, different claim.
521
+ */
522
+ /**
523
+ * `modelComposition` — which parts a model is built from.
524
+ *
525
+ * 🛑 ITS OWN `CATEGORY_ID`, not `BEY_FIELDS.CATEGORY_ID`. The audit suggested
526
+ * the bey constant for a query against THIS collection, and the string is
527
+ * identical — which is precisely the substitution the comment on
528
+ * `PART_GLOSSARY_FIELDS` warns about. A composition row's `categoryId` points
529
+ * at the model leaf it describes; a bey's points at its own paired leaf. Same
530
+ * bytes, two different facts, and only one of them moves if either is renamed.
531
+ */
532
+ export declare const MODEL_COMPOSITION_FIELDS: {
533
+ readonly ID: "id";
534
+ readonly CATEGORY_ID: "categoryId";
535
+ readonly SLOT: "slot";
536
+ };
537
+ export declare const PART_GLOSSARY_FIELDS: {
538
+ readonly ID: "id";
539
+ readonly NAME: "name";
540
+ readonly SLOT: "slot";
541
+ readonly CLASSIFICATION: "classification";
542
+ readonly CODE: "code";
543
+ readonly WEIGHT_G: "weightG";
544
+ /** Set by `applyAdminEdit`; the seed loader queries on it. */
545
+ readonly ADMIN_EDITED: "adminEdited";
546
+ readonly ADMIN_EDITED_FIELDS: "adminEditedFields";
547
+ };
548
+ export declare const BEY_FIELDS: {
549
+ readonly ID: "id";
550
+ readonly SLUG: "slug";
551
+ readonly NAME: "name";
552
+ readonly TYPE: "type";
553
+ readonly SYSTEM: "system";
554
+ readonly CATEGORY_ID: "categoryId";
555
+ readonly ADMIN_EDITED: "adminEdited";
556
+ readonly ADMIN_EDITED_FIELDS: "adminEditedFields";
557
+ };
512
558
  export declare const CATEGORY_FIELDS: {
513
559
  readonly ID: "id";
514
560
  readonly NAME: "name";
@@ -613,6 +613,52 @@ export const STORE_FIELDS = {
613
613
  // ============================================================================
614
614
  // CATEGORY FIELDS
615
615
  // ============================================================================
616
+ /**
617
+ * The two GENERATED reference databases.
618
+ *
619
+ * 🛑 NOT reused from `CATEGORY_FIELDS`. `audit-route-nav-field-constants`
620
+ * suggested `CATEGORY_FIELDS.NAME` for a query against `partGlossary`, and the
621
+ * string would have been identical — which is exactly why that would be the
622
+ * wrong fix. A constant's job is to say WHICH collection's field is meant, so
623
+ * that renaming one collection's field cannot silently retarget another's
624
+ * query. Same bytes, different claim.
625
+ */
626
+ /**
627
+ * `modelComposition` — which parts a model is built from.
628
+ *
629
+ * 🛑 ITS OWN `CATEGORY_ID`, not `BEY_FIELDS.CATEGORY_ID`. The audit suggested
630
+ * the bey constant for a query against THIS collection, and the string is
631
+ * identical — which is precisely the substitution the comment on
632
+ * `PART_GLOSSARY_FIELDS` warns about. A composition row's `categoryId` points
633
+ * at the model leaf it describes; a bey's points at its own paired leaf. Same
634
+ * bytes, two different facts, and only one of them moves if either is renamed.
635
+ */
636
+ export const MODEL_COMPOSITION_FIELDS = {
637
+ ID: "id",
638
+ CATEGORY_ID: "categoryId",
639
+ SLOT: "slot",
640
+ };
641
+ export const PART_GLOSSARY_FIELDS = {
642
+ ID: "id",
643
+ NAME: "name",
644
+ SLOT: "slot",
645
+ CLASSIFICATION: "classification",
646
+ CODE: "code",
647
+ WEIGHT_G: "weightG",
648
+ /** Set by `applyAdminEdit`; the seed loader queries on it. */
649
+ ADMIN_EDITED: "adminEdited",
650
+ ADMIN_EDITED_FIELDS: "adminEditedFields",
651
+ };
652
+ export const BEY_FIELDS = {
653
+ ID: "id",
654
+ SLUG: "slug",
655
+ NAME: "name",
656
+ TYPE: "type",
657
+ SYSTEM: "system",
658
+ CATEGORY_ID: "categoryId",
659
+ ADMIN_EDITED: "adminEdited",
660
+ ADMIN_EDITED_FIELDS: "adminEditedFields",
661
+ };
616
662
  export const CATEGORY_FIELDS = {
617
663
  ID: "id",
618
664
  NAME: "name",