@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,67 +0,0 @@
1
- /**
2
- * Seed-time media URL helper.
3
- *
4
- * Wraps a 3rd-party image/video URL in the /api/media/ext proxy path so
5
- * seed data never persists raw upstream URLs. The proxy adds watermarking,
6
- * survives upstream rate-limits, and keeps CSP / image hosts under our
7
- * control.
8
- *
9
- * Companion runtime helper: `resolveMediaUrl()` in ../../utils/media-url.ts
10
- * — defends consumers that still see raw URLs (e.g. live Firestore reads
11
- * from older docs). Both produce the same `/api/media/ext?url=<encoded>`
12
- * shape for external https URLs.
13
- *
14
- * Idempotent: already-proxied URLs (`/media/...` or `/api/media/ext?url=...`)
15
- * pass through untouched, so wrapping a wrapped URL is safe.
16
- */
17
- import type { ProductImage } from "../../features/products/types";
18
- export declare function seedExtMedia(url: string): string;
19
- /**
20
- * Is this cover value a generated PLACEHOLDER rather than a real image?
21
- *
22
- * 🛑 Load-bearing for `withGeneratedCoverImage`, which otherwise treats any
23
- * non-empty `display.coverImage` as hand-authored and skips the row — so a
24
- * `seedPhoto(...)` tile BLOCKED every fetched wordmark, and a logo could be
25
- * downloaded, uploaded, mapped and still never appear.
26
- *
27
- * The distinction is the honest one: a tile is what the seed emits when it has
28
- * nothing better, so it is a default to be improved on. A real path (a
29
- * `/media/<slug>` or an admin upload) is a decision, and that still wins.
30
- */
31
- export declare function isSeedPlaceholderImage(value: string | undefined | null): boolean;
32
- /**
33
- * Turn a seed key into something a person would read.
34
- *
35
- * `art-image-dranzer-phoenix-2-20260817` → `Dranzer Phoenix`
36
- *
37
- * Strips the trailing `-YYYYMMDD` stamp, a trailing image index, and the
38
- * leading `<kind>-image-` prefix that every seed key carries — all of which are
39
- * bookkeeping, not the name of the thing.
40
- */
41
- export declare function seedPhotoLabel(seed: string): string;
42
- /**
43
- * A seed gallery as `ProductImage[]` — plan A6 changed
44
- * `ProductDocument.images` from `string[]` to `ProductImage[]`, and these
45
- * fixtures hold bare URLs.
46
- *
47
- * 🛑 Deliberately sets NO `alt`. The only string available at these call
48
- * sites is the product title, and "Dranzer S" repeated as the alt of all
49
- * three of its photos is the naive fill that screen-reader users correctly
50
- * treat as noise — worse than absent, because it claims to describe. The
51
- * GENERATED catalogue does emit real alt ("Chain Kerbeus — Aquilon-Q
52
- * (Disc)") because its join knows what each photo is OF; a hand-written
53
- * fixture does not, and should say so by omission.
54
- *
55
- * Nor does it set `width`/`height`: a seed tile is one SVG serving every
56
- * aspect (see `seedPhoto` below), so there is no honest intrinsic size.
57
- */
58
- export declare function seedGallery(...urls: string[]): ProductImage[];
59
- /**
60
- * A deterministic, labelled placeholder image for seed data, already wrapped in
61
- * the media proxy.
62
- *
63
- * Deterministic on purpose — Root Cause #25: a seed file is re-executed on every
64
- * `appkit-seed` invocation, so anything non-stable here would give the same
65
- * fixture a different URL on every run.
66
- */
67
- export declare function seedPhoto(seed: string, _width?: number, _height?: number): string;
@@ -1,172 +0,0 @@
1
- /**
2
- * Seed-time media URL helper.
3
- *
4
- * Wraps a 3rd-party image/video URL in the /api/media/ext proxy path so
5
- * seed data never persists raw upstream URLs. The proxy adds watermarking,
6
- * survives upstream rate-limits, and keeps CSP / image hosts under our
7
- * control.
8
- *
9
- * Companion runtime helper: `resolveMediaUrl()` in ../../utils/media-url.ts
10
- * — defends consumers that still see raw URLs (e.g. live Firestore reads
11
- * from older docs). Both produce the same `/api/media/ext?url=<encoded>`
12
- * shape for external https URLs.
13
- *
14
- * Idempotent: already-proxied URLs (`/media/...` or `/api/media/ext?url=...`)
15
- * pass through untouched, so wrapping a wrapped URL is safe.
16
- */
17
- import { MEDIA_ENDPOINTS } from "../../constants/api-endpoints.js";
18
- const PROXY_PREFIX = "/media/";
19
- // audit-hardcoded-api-routes-ok: idempotency prefix check for MEDIA_ENDPOINTS.EXT_URL's own output shape, not a call site
20
- const EXT_PREFIX = "/api/media/ext?url=";
21
- export function seedExtMedia(url) {
22
- if (url.startsWith(PROXY_PREFIX))
23
- return url;
24
- if (url.startsWith(EXT_PREFIX))
25
- return url;
26
- return MEDIA_ENDPOINTS.EXT_URL(url);
27
- }
28
- /* ── Seed photography ────────────────────────────────────────────────────── */
29
- /*
30
- * WHY THIS EXISTS
31
- *
32
- * The seed catalogue used to name its image host **409 times**, in 30 files, as
33
- * `https://picsum.photos/seed/<seed>/<w>/<h>` literals. On 2026-08-31 picsum
34
- * went down — 503 from its origin AND its Fastly CDN — and because the host was
35
- * written into every URL rather than referenced from one place, virtually every
36
- * image on the production site broke at once and there was no single edit that
37
- * could move them.
38
- *
39
- * That is the actual defect. A third party going down is not preventable; being
40
- * unable to react to it in one line is.
41
- *
42
- * Measured the same day, direct: picsum 503 · fastly.picsum 503 (10.5s) ·
43
- * placekitten 521 · loremflickr 200 but 5.4s, which exceeds the proxy's own 4s
44
- * fetch timeout · placehold.co 200 in 0.58s. Hence placehold.co.
45
- *
46
- * It renders the item's own NAME on the tile, which is a real gain over random
47
- * photography for a demo catalogue: every card now says what it is, and nobody
48
- * can mistake seeded data for real inventory.
49
- */
50
- /*
51
- * 🛑 SUPERSEDED 2026-10-09 — seed photography is now LOCAL and costs nothing.
52
- *
53
- * The reasoning above is still correct about third-party fragility, and the
54
- * one-line-to-move property is still the goal. What it missed is the cost: every
55
- * one of these URLs was persisted as `/api/media/ext?url=…`, so every render of
56
- * every card was a Node lambda doing a third-party fetch (up to 2 × 4 s) plus a
57
- * full sharp decode/watermark/encode — ONE INVOCATION PER IMAGE. The homepage
58
- * alone referenced 160 of them at ~49.5 KB; `52.52 GB of origin transfer ÷
59
- * 49.5 KB ≈ 1.06 M` proxy responses in a week, which suspended the project
60
- * (HTTP 402).
61
- *
62
- * A placeholder is synthetic by definition, so there was never anything to
63
- * fetch. Six static tiles ship in `public/images/seed-tiles/`, chosen by the
64
- * same deterministic hash, and the homepage goes 160 images → 6.
65
- *
66
- * The trade accepted: the tile no longer renders the item's NAME. That text was
67
- * a genuine gain and it is lost here — but it cost a function invocation per
68
- * card to render text the card already displays beside the image, and `alt` still
69
- * carries it for assistive tech. `seedPhotoLabel` is kept and still exported for
70
- * exactly that use.
71
- *
72
- * 🛑 Do NOT reintroduce a third-party host here, and do NOT encode width/height
73
- * into the path — a per-size URL is a per-size CDN cache key, which is how 6
74
- * files become 400 again. `audit-media-proxy-hosts` blocks the first; this
75
- * comment is the only thing guarding the second.
76
- */
77
- const SEED_TILE_PREFIX = "/images/seed-tiles/";
78
- /**
79
- * Is this cover value a generated PLACEHOLDER rather than a real image?
80
- *
81
- * 🛑 Load-bearing for `withGeneratedCoverImage`, which otherwise treats any
82
- * non-empty `display.coverImage` as hand-authored and skips the row — so a
83
- * `seedPhoto(...)` tile BLOCKED every fetched wordmark, and a logo could be
84
- * downloaded, uploaded, mapped and still never appear.
85
- *
86
- * The distinction is the honest one: a tile is what the seed emits when it has
87
- * nothing better, so it is a default to be improved on. A real path (a
88
- * `/media/<slug>` or an admin upload) is a decision, and that still wins.
89
- */
90
- export function isSeedPlaceholderImage(value) {
91
- return typeof value === "string" && value.startsWith(SEED_TILE_PREFIX);
92
- }
93
- /**
94
- * Muted backgrounds, all dark enough for the same light foreground.
95
- *
96
- * Raw hex rather than theme tokens because an SVG served as the body of an
97
- * `<img>` has no stylesheet and no `var(--appkit-color-*)` in scope — the same
98
- * reason `_placeholder.ts` keeps its artwork in an asset file.
99
- *
100
- * 🛑 These six values ARE the filenames in `public/images/seed-tiles/`, and they
101
- * are mirrored a third time in `PLACEHOLDER_MEDIA_HOSTS`' sibling
102
- * `SEED_TILE_COLOURS` (`appkit/src/utils/media-url.ts`), which maps a legacy
103
- * stored `placehold.co` URL back to the same tile. Add a colour and all three
104
- * must move together; a missing one degrades to a deterministic fallback tile
105
- * rather than a broken image, so the failure mode is "less variety", never a 404.
106
- */
107
- const SEED_PHOTO_COLOURS = ["1e293b", "334155", "3f3f46", "44403c", "312e81", "164e63"];
108
- /** Deterministic 32-bit hash. Same seed, same colour, every reseed. */
109
- function seedHash(input) {
110
- let h = 2166136261;
111
- for (let i = 0; i < input.length; i += 1) {
112
- h ^= input.charCodeAt(i);
113
- h = Math.imul(h, 16777619);
114
- }
115
- return h >>> 0;
116
- }
117
- /**
118
- * Turn a seed key into something a person would read.
119
- *
120
- * `art-image-dranzer-phoenix-2-20260817` → `Dranzer Phoenix`
121
- *
122
- * Strips the trailing `-YYYYMMDD` stamp, a trailing image index, and the
123
- * leading `<kind>-image-` prefix that every seed key carries — all of which are
124
- * bookkeeping, not the name of the thing.
125
- */
126
- export function seedPhotoLabel(seed) {
127
- const cleaned = seed
128
- .replace(/-\d{8}$/, "")
129
- .replace(/-\d+$/, "")
130
- .replace(/^(?:product|art|sticker|stickers|auction|preorder|prizedraw|classified|digitalcode|live|blog|event|store|user|category|brand|bundle|group|review|ad|carousel|slide)-(?:image|cover|banner|logo|avatar|photo)-/, "")
131
- .replace(/^(?:image|cover|banner|logo|avatar|photo)-/, "")
132
- .replace(/-/g, " ")
133
- .trim();
134
- if (!cleaned)
135
- return "LetItRip";
136
- return cleaned.replace(/\b[a-z]/g, (c) => c.toUpperCase());
137
- }
138
- /**
139
- * A seed gallery as `ProductImage[]` — plan A6 changed
140
- * `ProductDocument.images` from `string[]` to `ProductImage[]`, and these
141
- * fixtures hold bare URLs.
142
- *
143
- * 🛑 Deliberately sets NO `alt`. The only string available at these call
144
- * sites is the product title, and "Dranzer S" repeated as the alt of all
145
- * three of its photos is the naive fill that screen-reader users correctly
146
- * treat as noise — worse than absent, because it claims to describe. The
147
- * GENERATED catalogue does emit real alt ("Chain Kerbeus — Aquilon-Q
148
- * (Disc)") because its join knows what each photo is OF; a hand-written
149
- * fixture does not, and should say so by omission.
150
- *
151
- * Nor does it set `width`/`height`: a seed tile is one SVG serving every
152
- * aspect (see `seedPhoto` below), so there is no honest intrinsic size.
153
- */
154
- export function seedGallery(...urls) {
155
- return urls.filter(Boolean).map((url) => ({ url }));
156
- }
157
- /**
158
- * A deterministic, labelled placeholder image for seed data, already wrapped in
159
- * the media proxy.
160
- *
161
- * Deterministic on purpose — Root Cause #25: a seed file is re-executed on every
162
- * `appkit-seed` invocation, so anything non-stable here would give the same
163
- * fixture a different URL on every run.
164
- */
165
- export function seedPhoto(seed, _width, _height) {
166
- const bg = SEED_PHOTO_COLOURS[seedHash(seed) % SEED_PHOTO_COLOURS.length];
167
- // Width/height are accepted and ignored. All 366 call sites pass them, and the
168
- // tiles carry `preserveAspectRatio="xMidYMid slice"` so one file fits every
169
- // aspect — baking the dimensions into the path would mint a separate cache
170
- // entry per size, which is the thing this change removes.
171
- return `${SEED_TILE_PREFIX}${bg}.svg`;
172
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * GENERATED by scripts/derive-part-colours.mjs — do not edit by hand.
3
- *
4
- * Part glossary id -> the dominant colour MEASURED from that part's cached
5
- * reference photograph. Not invented: the pixels are the evidence.
6
- *
7
- * 🛑 The wiki exposes ONE photo per part, so for a part released in several
8
- * models this is the colour of the photographed release — exact for that one,
9
- * indicative for the others. The MODEL half of a colourway is always exact
10
- * (it comes from `usedBy`); this half carries that caveat. Replacing these
11
- * with real per-release photography is the intended fix.
12
- *
13
- * White is excluded before counting, because the fetcher flattens transparent
14
- * PNGs onto white and a naive dominant-colour read returns White for almost
15
- * everything.
16
- */
17
- export declare const GENERATED_PART_COLOURS: Readonly<Record<string, string>>;
18
- export declare const GENERATED_PART_COLOUR_COUNT = 254;
@@ -1,273 +0,0 @@
1
- /**
2
- * GENERATED by scripts/derive-part-colours.mjs — do not edit by hand.
3
- *
4
- * Part glossary id -> the dominant colour MEASURED from that part's cached
5
- * reference photograph. Not invented: the pixels are the evidence.
6
- *
7
- * 🛑 The wiki exposes ONE photo per part, so for a part released in several
8
- * models this is the colour of the photographed release — exact for that one,
9
- * indicative for the others. The MODEL half of a colourway is always exact
10
- * (it comes from `usedBy`); this half carries that caveat. Replacing these
11
- * with real per-release photography is the intended fix.
12
- *
13
- * White is excluded before counting, because the fetcher flattens transparent
14
- * PNGs onto white and a naive dominant-colour read returns White for almost
15
- * everything.
16
- */
17
- export const GENERATED_PART_COLOURS = {
18
- "attack-ring--circle-upper": "Maroon",
19
- "attack-ring--cross-attacker": "Navy",
20
- "attack-ring--cross-dranzer": "Blue",
21
- "attack-ring--cross-fang": "Brown",
22
- "attack-ring--cross-griffon": "Teal",
23
- "attack-ring--cross-spike": "Black",
24
- "attack-ring--cross-spiker": "Green",
25
- "attack-ring--cybernetic-dragon": "Black",
26
- "attack-ring--devil-crusher": "Grey",
27
- "attack-ring--double-horn": "Gold",
28
- "attack-ring--double-wing": "Blue",
29
- "attack-ring--dragon-breaker": "Navy",
30
- "attack-ring--dragon-saucer": "Navy",
31
- "attack-ring--eight-attacker": "Brown",
32
- "attack-ring--eight-spike": "Silver",
33
- "attack-ring--flame-wing": "Navy",
34
- "attack-ring--g-upper": "Bronze",
35
- "attack-ring--genocide-circle": "Red",
36
- "attack-ring--gigantic-claw": "Bronze",
37
- "attack-ring--great-dragon": "Black",
38
- "attack-ring--hammer-tusk": "Blue",
39
- "attack-ring--howling-leo": "Silver",
40
- "attack-ring--jiraiya-blade": "Silver",
41
- "attack-ring--metal-ape": "Grey",
42
- "attack-ring--metal-attacker": "Grey",
43
- "attack-ring--metal-defense": "Grey",
44
- "attack-ring--metal-saucer": "Purple",
45
- "attack-ring--mountain-hammer": "Maroon",
46
- "attack-ring--panther-claw": "Navy",
47
- "attack-ring--panther-head": "Maroon",
48
- "attack-ring--penta-wing": "Navy",
49
- "attack-ring--reverse-dragon": "Maroon",
50
- "attack-ring--sharkrash": "Navy",
51
- "attack-ring--shield-hammer": "Green",
52
- "attack-ring--sonic-tiger": "Black",
53
- "attack-ring--spike-dragon": "Brown",
54
- "attack-ring--spiral-upper": "Navy",
55
- "attack-ring--star-wolf": "Purple",
56
- "attack-ring--strike-turtle": "Black",
57
- "attack-ring--ten-spike": "Black",
58
- "attack-ring--tiger-defenser": "Red",
59
- "attack-ring--triangle-wing": "Navy",
60
- "attack-ring--triple-beak": "Red",
61
- "attack-ring--turtle-survivor": "Navy",
62
- "attack-ring--ultimate-attacker": "Grey",
63
- "attack-ring--upper-claw": "Black",
64
- "attack-ring--upper-dragon": "Bronze",
65
- "attack-ring--vanishing-moot": "Teal",
66
- "attack-ring--war-lion": "Maroon",
67
- "attack-ring--war-monkey": "Grey",
68
- "attack-ring--wing-survivor": "Blue",
69
- "attack-ring--wing-upper": "Silver",
70
- "attack-ring--wolf-crusher": "Brown",
71
- "bit--accel": "Navy",
72
- "bit--disk-ball": "Gold",
73
- "bit--flat": "Teal",
74
- "bit--free-ball": "Yellow",
75
- "bit--gear-ball": "Yellow",
76
- "bit--hexa": "Maroon",
77
- "bit--point": "Maroon",
78
- "bit--taper": "Red",
79
- "bit--trans-point": "Red",
80
- "bit--vortex": "Navy",
81
- "blade--aeropegasus": "Navy",
82
- "blade--cobaltdragoon": "Blue",
83
- "blade--cobaltdrake": "Blue",
84
- "blade--crimsongaruda": "Maroon",
85
- "blade--dranbuster": "Navy",
86
- "blade--drandagger": "Navy",
87
- "blade--dransword": "Black",
88
- "blade--dranzerspiral": "Blue",
89
- "blade--drigerslash": "Red",
90
- "blade--ghostcircle": "Maroon",
91
- "blade--hellshammer": "Maroon",
92
- "blade--hellsscythe": "Black",
93
- "blade--knightshield": "Black",
94
- "blade--leonclaw": "Navy",
95
- "blade--phoenixwing": "Maroon",
96
- "blade--savior": "Blue",
97
- "blade--sharkedge": "Navy",
98
- "blade--silverwolf": "Grey",
99
- "blade--tyrannobeat": "Maroon",
100
- "blade--unicornsting": "Black",
101
- "blade--vipertail": "Black",
102
- "blade--wizardarrow": "Yellow",
103
- "blade--wizardrod": "Gold",
104
- "blade-base--customize-clutch-base": "Blue",
105
- "blade-base--customize-grip-base": "Navy",
106
- "blade-base--customize-metal-sharp": "Red",
107
- "blade-base--engine-stopper-base": "Silver",
108
- "blade-base--first-clutch-base": "Green",
109
- "blade-base--flame-change-base": "Navy",
110
- "blade-base--fortress-base": "Navy",
111
- "blade-base--full-auto-clutch-base": "Brown",
112
- "blade-base--griffolyon-base": "Grey",
113
- "blade-base--instant-release": "Grey",
114
- "blade-base--jumping-base": "Brown",
115
- "blade-base--magne-flat-base": "Grey",
116
- "blade-base--metal-change-base": "Grey",
117
- "blade-base--metal-sharp-base": "Black",
118
- "blade-base--sg-flat": "Red",
119
- "blade-base--sg-flat-base": "Red",
120
- "blade-base--sg-jumping-base-2": "Grey",
121
- "blade-base--sg-metal-ball": "Green",
122
- "blade-base--sg-metal-flat-2": "Purple",
123
- "blade-base--sg-metal-flat-base": "Brown",
124
- "blade-base--viper-metal-ball-base": "Black",
125
- "blade-base--volcano-change-base": "Navy",
126
- "chrome-wheel--dragoon": "White",
127
- "disc--0": "Grey",
128
- "disc--00": "Grey",
129
- "disc--1": "Grey",
130
- "disc--10": "Grey",
131
- "disc--11": "Navy",
132
- "disc--7": "Grey",
133
- "disc--8": "Grey",
134
- "disc--aquilon-q": "Grey",
135
- "disc--around": "Maroon",
136
- "disc--blitz": "Red",
137
- "disc--boost": "Grey",
138
- "disc--drake": "Navy",
139
- "disc--force": "Grey",
140
- "disc--karma": "Grey",
141
- "disc--knuckle": "Grey",
142
- "disc--legacy": "Grey",
143
- "disc--limited": "Grey",
144
- "disc--nexus": "Grey",
145
- "disc--nine": "Teal",
146
- "disc--over": "Navy",
147
- "disc--sting": "Navy",
148
- "disc--tapered": "Grey",
149
- "disc--triple": "Navy",
150
- "disc--vanguard": "Red",
151
- "disc--vertical": "Black",
152
- "disc--yell": "Brown",
153
- "disc--zenith": "Pink",
154
- "driver--atomic": "Gold",
155
- "driver--bullet": "Maroon",
156
- "driver--charge": "Teal",
157
- "driver--destroy-dash": "Teal",
158
- "driver--dimension": "Red",
159
- "driver--dimension-dash": "Red",
160
- "driver--drift": "Grey",
161
- "driver--evolution-dash": "Teal",
162
- "driver--iron": "Teal",
163
- "driver--jaggy": "Navy",
164
- "driver--loop": "Black",
165
- "driver--merge": "Maroon",
166
- "driver--mobius": "Black",
167
- "driver--nothing": "Red",
168
- "driver--press": "Black",
169
- "driver--reboot": "Blue",
170
- "driver--revolve-q": "Purple",
171
- "driver--spiral": "Grey",
172
- "driver--unite": "Maroon",
173
- "driver--unite-dash": "Gold",
174
- "driver--variable": "Teal",
175
- "driver--variable-dash": "Navy",
176
- "driver--xceed-x": "Bronze",
177
- "driver--xtend": "Red",
178
- "driver--zone-z": "Blue",
179
- "energy-ring--4d-clear-wheel-orion": "Maroon",
180
- "energy-ring--blaze": "Bronze",
181
- "energy-ring--bull": "Navy",
182
- "energy-ring--capricorn": "Green",
183
- "energy-ring--capricorne": "Green",
184
- "energy-ring--clear-wheel-wolf": "Navy",
185
- "energy-ring--nemesis-x": "Yellow",
186
- "energy-ring--sagittario": "Green",
187
- "energy-ring--sagittario-i": "Green",
188
- "energy-ring--striker-ii": "Maroon",
189
- "energy-ring--wolf": "Navy",
190
- "energy-ring--zurafa": "Black",
191
- "engine-gear--left-engine-gear": "Grey",
192
- "fusion-wheel--4d-metal-wheel-phantom": "Purple",
193
- "fusion-wheel--burn": "Grey",
194
- "fusion-wheel--earth": "Silver",
195
- "fusion-wheel--flame": "Grey",
196
- "fusion-wheel--forbidden": "Grey",
197
- "fusion-wheel--metal-wheel-mercury": "Navy",
198
- "fusion-wheel--proto": "Grey",
199
- "fusion-wheel--rock": "Gold",
200
- "layer--dark-deathscyther": "Black",
201
- "layer--draciel-fortress": "Grey",
202
- "layer--drain-fafnir": "Blue",
203
- "layer--dranzer-flame": "Navy",
204
- "layer--engine-gear": "Brown",
205
- "layer--gaia-dragoon": "Purple",
206
- "layer--genesis-valtryek-v3": "Grey",
207
- "layer--god-valkyrie": "Blue",
208
- "layer--kaiser-kerbeus": "Teal",
209
- "layer--king-kerbeus-k2": "Grey",
210
- "layer--legend-spriggan": "Pink",
211
- "layer--maximum-garuda": "Yellow",
212
- "layer--obelisk-odin": "Silver",
213
- "layer--sieg-xcalibur": "Blue",
214
- "layer--spryzen-requiem-s3": "Maroon",
215
- "layer--storm-spriggan": "Pink",
216
- "layer--victory-valkyrie": "Blue",
217
- "layer--wild-wyvern": "Black",
218
- "layer--wolborg": "Silver",
219
- "layer--xeno-xcalibur": "Red",
220
- "performance-tip--as": "Silver",
221
- "performance-tip--bs": "Grey",
222
- "performance-tip--cf": "Red",
223
- "performance-tip--cs": "Navy",
224
- "performance-tip--evolution": "Blue",
225
- "performance-tip--ewd": "Gold",
226
- "performance-tip--f": "Grey",
227
- "performance-tip--f-d": "Gold",
228
- "performance-tip--gf": "Black",
229
- "performance-tip--ms": "Grey",
230
- "performance-tip--r-f": "Navy",
231
- "performance-tip--rb": "Grey",
232
- "performance-tip--rf": "Bronze",
233
- "performance-tip--sf": "Grey",
234
- "performance-tip--tb": "Black",
235
- "performance-tip--wb": "White",
236
- "performance-tip--wsf": "Brown",
237
- "ratchet--0-80": "Navy",
238
- "ratchet--1-60": "Navy",
239
- "ratchet--3-60": "Navy",
240
- "ratchet--3-70": "Bronze",
241
- "ratchet--3-80": "Green",
242
- "ratchet--4-60": "Maroon",
243
- "ratchet--4-70": "Silver",
244
- "ratchet--4-80": "Gold",
245
- "ratchet--5-60": "Black",
246
- "ratchet--5-70": "Gold",
247
- "ratchet--5-80": "Red",
248
- "ratchet--9-60": "Maroon",
249
- "running-core--flat-core": "Brown",
250
- "running-core--grip-flat-core": "Grey",
251
- "running-core--manual-change-core": "White",
252
- "running-core--semi-flat-core": "Grey",
253
- "running-core--sharp-core": "Grey",
254
- "spin-gear--heavy-metal-core": "Brown",
255
- "spin-gear--neo-right-sg": "Maroon",
256
- "spin-track--135": "Grey",
257
- "spin-track--a230": "Maroon",
258
- "spin-track--sa165": "Brown",
259
- "spin-track--sp230": "Grey",
260
- "spin-track--t125": "Yellow",
261
- "spin-track--v145": "Red",
262
- "spin-track--w105": "Navy",
263
- "weight-disk--circle-balance": "Grey",
264
- "weight-disk--eight-heavy": "Grey",
265
- "weight-disk--heavy-attack": "White",
266
- "weight-disk--magne-weight-disk": "Grey",
267
- "weight-disk--star-attack": "Grey",
268
- "weight-disk--ten-balance": "White",
269
- "weight-disk--ten-heavy": "Grey",
270
- "weight-disk--ten-wide": "Grey",
271
- "weight-disk--wing-attacker": "Red",
272
- };
273
- export const GENERATED_PART_COLOUR_COUNT = 254;
@@ -1,18 +0,0 @@
1
- import type { ProductDocument } from "../../features/products/schemas";
2
- /**
3
- * Derive `searchTxt` for a seeded product from its own content.
4
- *
5
- * Applied to the WHOLE array at each file's export rather than written per
6
- * record. Four of the product seed files built records as inline literals with
7
- * an inline `searchTxt:`, and in every one of them the last record — the
8
- * "sold"/"depleted" fixture appended at the bottom — had been added without it.
9
- * Those are exactly the rows the "Sold & Ended" scope exists to exercise, so
10
- * they were invisible to search in the one view built to show them.
11
- *
12
- * The `...p` spread comes FIRST so a record cannot override or omit the field:
13
- * that ordering is the actual guarantee, not the convention around it.
14
- *
15
- * Pure function of the record's content — deterministic, so this does not
16
- * reintroduce the `appkit-seed` idempotency problem of Root Cause #25.
17
- */
18
- export declare function withProductSearchTxt(p: Partial<ProductDocument>): Partial<ProductDocument>;
@@ -1,23 +0,0 @@
1
- import { buildProductSearchTxt } from "../../utils/search-txt-builders.js";
2
- /**
3
- * Derive `searchTxt` for a seeded product from its own content.
4
- *
5
- * Applied to the WHOLE array at each file's export rather than written per
6
- * record. Four of the product seed files built records as inline literals with
7
- * an inline `searchTxt:`, and in every one of them the last record — the
8
- * "sold"/"depleted" fixture appended at the bottom — had been added without it.
9
- * Those are exactly the rows the "Sold & Ended" scope exists to exercise, so
10
- * they were invisible to search in the one view built to show them.
11
- *
12
- * The `...p` spread comes FIRST so a record cannot override or omit the field:
13
- * that ordering is the actual guarantee, not the convention around it.
14
- *
15
- * Pure function of the record's content — deterministic, so this does not
16
- * reintroduce the `appkit-seed` idempotency problem of Root Cause #25.
17
- */
18
- export function withProductSearchTxt(p) {
19
- // Delegates rather than re-deriving. This wrapper listed 9 sources while the
20
- // write path indexed 12, so a seeded product was findable by fewer terms than
21
- // the identical product created through the app — with no error on either side.
22
- return { ...p, searchTxt: buildProductSearchTxt(p) };
23
- }
@@ -1,26 +0,0 @@
1
- import type { CategoryDocument } from "../../features/categories/schemas/firestore";
2
- import type { StoreDocument } from "../../features/stores/schemas/firestore";
3
- import type { ScammerDocument } from "../../features/scams/schemas/firestore";
4
- import type { EventDocument } from "../../features/events/schemas/firestore";
5
- import type { BlogPostDocument } from "../../features/blog/schemas/firestore";
6
- import type { ReviewPlain } from "../../features/reviews/schemas/firestore";
7
- import type { OrderPlain } from "../../features/orders/schemas/firestore";
8
- import type { CouponDocument } from "../../features/promotions/schemas/firestore";
9
- import type { OfferPlain } from "../../features/seller/schemas/firestore";
10
- /**
11
- * 🛑 Apply AFTER `buildCategoryTree`, never before.
12
- *
13
- * `buildCategorySearchTxt` indexes `path` and `ancestors[].name`, and both are
14
- * DERIVED by the tree builder — a row wrapped before derivation gets tokens
15
- * from `name`/`slug`/`description` only, and silently loses the lineage search
16
- * that is the whole reason ancestors are indexed.
17
- */
18
- export declare function withCategorySearchTxt<T extends Partial<CategoryDocument>>(p: T): T;
19
- export declare function withStoreSearchTxt<T extends Partial<StoreDocument>>(p: T): T;
20
- export declare function withEventSearchTxt<T extends Partial<EventDocument>>(p: T): T;
21
- export declare function withBlogSearchTxt<T extends Partial<BlogPostDocument>>(p: T): T;
22
- export declare function withReviewSearchTxt<T extends Partial<ReviewPlain>>(p: T): T;
23
- export declare function withOrderSearchTxt<T extends Partial<OrderPlain>>(p: T): T;
24
- export declare function withCouponSearchTxt<T extends Partial<CouponDocument>>(p: T): T;
25
- export declare function withOfferSearchTxt<T extends Partial<OfferPlain>>(p: T): T;
26
- export declare function withScammerSearchTxt<T extends Partial<ScammerDocument>>(p: T): T;
@@ -1,58 +0,0 @@
1
- import { buildCategorySearchTxt, buildStoreSearchTxt, buildEventSearchTxt, buildBlogSearchTxt, buildReviewSearchTxt, buildOrderSearchTxt, buildCouponSearchTxt, buildOfferSearchTxt, buildScammerSearchTxt, } from "../../utils/search-txt-builders.js";
2
- /**
3
- * 🛑 Apply AFTER `buildCategoryTree`, never before.
4
- *
5
- * `buildCategorySearchTxt` indexes `path` and `ancestors[].name`, and both are
6
- * DERIVED by the tree builder — a row wrapped before derivation gets tokens
7
- * from `name`/`slug`/`description` only, and silently loses the lineage search
8
- * that is the whole reason ancestors are indexed.
9
- */
10
- export function withCategorySearchTxt(p) {
11
- return { ...p, searchTxt: buildCategorySearchTxt(p) };
12
- }
13
- export function withStoreSearchTxt(p) {
14
- return { ...p, searchTxt: buildStoreSearchTxt(p) };
15
- }
16
- export function withEventSearchTxt(p) {
17
- return { ...p, searchTxt: buildEventSearchTxt(p) };
18
- }
19
- export function withBlogSearchTxt(p) {
20
- return { ...p, searchTxt: buildBlogSearchTxt(p) };
21
- }
22
- /*
23
- * Bounded by `ReviewPlain` for the same reason as the offer wrapper: seed
24
- * fixtures hold plaintext and `seed-cli` encrypts on write, and
25
- * `string`/`Encrypted<string>` are incompatible in both directions.
26
- * `buildReviewSearchTxt` deliberately does NOT read `userName` — it is
27
- * encrypted, and indexing it would undo the encryption (D1).
28
- */
29
- export function withReviewSearchTxt(p) {
30
- return { ...p, searchTxt: buildReviewSearchTxt(p) };
31
- }
32
- /*
33
- * Bounded by `OrderPlain`: seed fixtures hold plaintext and `seed-cli`
34
- * encrypts on write. `buildOrderSearchTxt` reads the product, store, tracking
35
- * number, items and location — never `userEmail` (D1).
36
- */
37
- export function withOrderSearchTxt(p) {
38
- return { ...p, searchTxt: buildOrderSearchTxt(p) };
39
- }
40
- export function withCouponSearchTxt(p) {
41
- return { ...p, searchTxt: buildCouponSearchTxt(p) };
42
- }
43
- /*
44
- * Bounded by `OfferPlain`, not `OfferDocument`.
45
- *
46
- * Seed fixtures hold plaintext and `seed-cli` encrypts on write, so the array
47
- * this maps over is `Partial<OfferPlain>[]`. `string` and `Encrypted<string>`
48
- * are incompatible in both directions, so a document-bounded generic rejects
49
- * the plain shape outright. The function reads `buyerName` for tokens and does
50
- * not care which it gets — and `buildOfferSearchTxt` is deliberately given the
51
- * PLAINTEXT one: tokenising ciphertext would index base64.
52
- */
53
- export function withOfferSearchTxt(p) {
54
- return { ...p, searchTxt: buildOfferSearchTxt(p) };
55
- }
56
- export function withScammerSearchTxt(p) {
57
- return { ...p, searchTxt: buildScammerSearchTxt(p) };
58
- }
@@ -1,2 +0,0 @@
1
- import type { AddressPlain } from "../features/addresses/schemas/firestore";
2
- export declare const addressesSeedData: AddressPlain[];