@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,96 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for Part Two's buyer-facing surfaces —
3
- * spares, made-to-order, and self-assembled group selections with rules
4
- * and a discount.
5
- * WHAT: 6 case(s), keyed by full checklist id.
6
- *
7
- * 🛑 EVERY CASE IS AN EXPLICIT BEFORE -> AFTER. A spares page or a group picker
8
- * returning 200 with plausible cards is not evidence any of this works — the
9
- * exclusion from the general catalogue, the stock bypass, and the discount
10
- * arithmetic are all silent-failure-shaped.
11
- *
12
- * @tag domain:tester
13
- * @tag layer:seed
14
- * @tag pattern:none
15
- * @tag access:server-only
16
- * @tag consumers:seed-data/authored/index.ts
17
- * @tag sideEffects:none
18
- */
19
- export const authored = {
20
- "checklist-buying-spares-and-groups-spares-not-in-general-catalogue": {
21
- roles: ["buyer"],
22
- startPage: "/products",
23
- steps: [
24
- "Search /products for a known spare's title (e.g. \"Cross Dranzer\" or \"Galeon Bit Chip\").",
25
- "Note whether it appears in the results.",
26
- "Navigate to /spares and search for the same title.",
27
- ],
28
- expectedBehaviour: "`spares` sets `inGeneralCatalogue: false`, so `listPublicProducts` on /products never includes it. The same row is reachable only through /spares, which spans exactly that one listing type.",
29
- expectedUiState: "The spare's title is ABSENT from the /products search results. The same title IS present in the /spares search results, with its own card and price.",
30
- endResult: "BEFORE spares existed, there was no tenth listing type at all. AFTER: a spare is reachable from exactly one place, never two. If it appears on both pages, the catalogue-exclusion flag broke. If it appears on neither, the /spares page or its nav wiring broke.",
31
- },
32
- "checklist-buying-spares-and-groups-spares-nav-entry-present": {
33
- roles: ["buyer"],
34
- startPage: "/",
35
- steps: [
36
- "Open the main nav's \"Products\" dropdown (hover on desktop, tap the caret on mobile).",
37
- "Look for a \"Spares\" entry in the list of children.",
38
- "Click it.",
39
- ],
40
- expectedBehaviour: "Every listing type excluded from the general catalogue must be linked from MAIN_NAV_ITEMS or it is reachable from nowhere. Spares is one of those types, so its nav child is not decoration — it is the only discovery path.",
41
- expectedUiState: "The dropdown shows a \"Spares\" row with a puzzle-piece icon and a one-line description. Clicking it navigates to /spares and the page renders a product grid.",
42
- endResult: "BEFORE: no entry existed because the type did not exist. AFTER: the entry is present, and clicking it lands on a real page, not a 404 or a redirect back to /products.",
43
- },
44
- "checklist-buying-spares-and-groups-made-to-order-buyable-at-zero-stock": {
45
- roles: ["buyer"],
46
- startPage: "/products/sticker-beyblade-custom-print-on-demand",
47
- steps: [
48
- "Open the seeded \"Custom Beyblade Sticker Sheet — Print on Demand\" listing.",
49
- "Read the stock/availability line near the price.",
50
- "Click Add to Cart, then proceed through checkout with a test payment method.",
51
- ],
52
- expectedBehaviour: "This listing has `madeToOrder: true` and `availableQuantity: 0`. `baseAvailable()` returns true unconditionally for a made-to-order row before either quantity check runs, so stock must gate nothing on it — not the PDP badge, not Add to Cart, not checkout.",
53
- expectedUiState: "The page shows \"Made to order — printed when you order, so it never runs out.\" It must NOT show \"Out of Stock\" or any stock count. Add to Cart is enabled and checkout completes normally.",
54
- endResult: "BEFORE the `madeToOrder` flag existed, a listing at zero stock was always sold out — there was no way to sell a print-on-demand item without lying about a fake stock number. AFTER: zero stock and buyable coexist correctly for this one flag.",
55
- },
56
- "checklist-buying-spares-and-groups-group-picker-shows-rules-before-choosing": {
57
- roles: ["buyer"],
58
- startPage: "/products/product-beyblade-burst-valkyrie",
59
- steps: [
60
- "Open any member of the seeded \"Burst & X Attackers You Might Like\" group (e.g. the Valkyrie listing).",
61
- "Scroll to the group/\"Pick what you want\" section and open the full picker (it may be behind a \"Show all\" link once 5+ members exist).",
62
- "Read the picker before selecting anything.",
63
- ],
64
- expectedBehaviour: "The group carries `groupMinMembers: 2`, `groupMaxMembers: 3`, `groupMaxUnitsPerMember: 2`, `groupDiscountPercent: 10`. `describeGroupRules()` must render these as plain text near the top of the picker — stated BEFORE the buyer commits to a selection, not only surfaced as a refusal after submitting.",
65
- expectedUiState: "Text reading something like \"Pick at least 2 · Pick at most 3 · Max 2 of each · 10% off the selection\" is visible above the member rows, before any quantity has been changed from zero.",
66
- endResult: "BEFORE: a group had no rules at all, so there was nothing to state. AFTER: the rules are visible up front. If the picker shows nothing until a violation occurs, the rule-statement UI is missing even though enforcement might still work — that is a real but easy-to-miss partial failure.",
67
- },
68
- "checklist-buying-spares-and-groups-group-picker-blocks-and-explains-invalid-selection": {
69
- roles: ["buyer"],
70
- startPage: "/products/product-beyblade-burst-valkyrie",
71
- steps: [
72
- "On the same group picker, set exactly ONE member's quantity to 1 and leave the rest at 0.",
73
- "Observe the Add button and any message shown.",
74
- "Change the selection to 3 units of a single member instead (0 of the others).",
75
- "Observe the Add button and message again.",
76
- "Correct the selection to 2 different members at 1 unit each.",
77
- ],
78
- expectedBehaviour: "`checkGroupRules()` runs client-side on every change. One item selected violates `groupMinMembers: 2` (\"Pick at least 2 different items\"). Three units of one item violates `groupMaxUnitsPerMember: 2` (\"At most 2 of … per order\"). Both must disable Add; neither should require a page reload to re-enable it once fixed.",
79
- expectedUiState: "Step 1: Add is disabled, a warning box names the minimum-items rule. Step 2 (after changing selection): Add is still disabled, a DIFFERENT warning naming the per-item cap appears — not the same message as step 1. Step 3: both warnings disappear and Add becomes enabled, with no reload.",
80
- endResult: "BEFORE: a group selection had no rules to violate. AFTER: an invalid selection is caught before the buyer wastes a click on a server round-trip, and the message names the SPECIFIC rule broken rather than a generic \"invalid selection\".",
81
- },
82
- "checklist-buying-spares-and-groups-group-discount-applied-and-shown": {
83
- roles: ["buyer"],
84
- startPage: "/products/product-beyblade-burst-valkyrie",
85
- steps: [
86
- "On the group picker, note the individual prices of two different members.",
87
- "Select 1 of each of those two members.",
88
- "Read the total shown in the picker.",
89
- "Add to cart and open the cart page; read the line total there.",
90
- "Proceed to checkout and read the order review total for that line.",
91
- ],
92
- expectedBehaviour: "`groupDiscountPercent: 10` is applied inside `deriveLinePrice` — the single writer of a multi-member line's price — so the discount must be visible and IDENTICAL in all three places: the picker's live total, the cart line, and the checkout review. 10% below the sum of the two members' individual prices, rounded to the paisa.",
93
- expectedUiState: "All three totals show the same discounted figure (sum of the two prices × 0.9, rounded to 2 decimals). The picker additionally shows the pre-discount sum struck through or labelled, so the discount is legible rather than just a smaller number.",
94
- endResult: "BEFORE: a self-assembled group had no price relationship to its members beyond a plain sum. AFTER: the discount is one number, computed once, read identically everywhere — if any of the three disagrees with the other two, the cart total and the invoice have diverged, which is the exact failure Root Cause #75 describes.",
95
- },
96
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,283 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the buying/user-dashboard-extras page.
3
- * WHAT: 15 case(s), keyed by full checklist id.
4
- *
5
- * Written by hand, case by case, against the label each one states. There is no
6
- * generator: the authoring scripts were deleted once it was clear they were
7
- * scaffolding around work that is simply writing.
8
- *
9
- * 🛑 SIX CASES HERE ARE ABOUT THE ORDER TIMELINE, and they turn on two rules that
10
- * are easy to get backwards.
11
- *
12
- * A step with no recorded date renders an em-dash. Not the current time, and not
13
- * a proxy field — the record's last-updated value means "last write of any kind"
14
- * and an expiry date is a deadline, not an event. A fabricated timestamp cannot be
15
- * told from a real one afterwards, which makes it worse than a missing one.
16
- *
17
- * And money churn is deliberately NOT in the timeline. Only the final coupon and
18
- * add-on state is kept, on the order itself. A coupon that lapsed before the order
19
- * existed is not that order's history, and pricing noise would exhaust the
20
- * fifty-entry cap within days and bury the handful of transitions anyone reads.
21
- *
22
- * @tag domain:tester
23
- * @tag layer:seed
24
- * @tag pattern:none
25
- * @tag access:server-only
26
- * @tag consumers:seed-data/authored/index.ts
27
- * @tag sideEffects:none
28
- */
29
- export const authored = {
30
- "checklist-buying-user-dashboard-extras-addresses-crud": {
31
- roles: ["buyer"],
32
- startPage: "/user/addresses",
33
- steps: [
34
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
35
- "Open /user/addresses and read the existing addresses.",
36
- "Create one: 'QA Address dashboard-extras', '15 Test Lane', Indore, Madhya Pradesh, 452010, landmark 'Opposite the arena'.",
37
- "Save, RELOAD, and read every field including the landmark.",
38
- "Edit ONLY the street to '16 Test Lane', save, RELOAD, and read every field again.",
39
- "Set it as the default, save, RELOAD, and check exactly one address is default.",
40
- "Delete it and RELOAD to confirm.",
41
- ],
42
- inputs: {
43
- name: "QA Address dashboard-extras",
44
- streetBefore: "15 Test Lane",
45
- streetAfter: "16 Test Lane",
46
- landmark: "Opposite the arena",
47
- },
48
- expectedBehaviour: "Create, edit, default-set and delete all persist, and an edit to one field leaves the rest alone. Setting a default must unset the previous one — two defaults is a state nothing downstream can resolve. The landmark is the field to watch: a form that cannot name it sends undefined, and undefined overwrites.",
49
- expectedUiState: "After each reload the address holds exactly what was typed, landmark included, and after the street edit the landmark is still there. Exactly one address is marked default.",
50
- expectedData: { defaultAddressCount: 1 },
51
- endResult: "The address is deleted by the final step.",
52
- },
53
- "checklist-buying-user-dashboard-extras-catalogue-crud": {
54
- roles: ["buyer"],
55
- startPage: "/user/catalogue",
56
- steps: [
57
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
58
- "Open the personal catalogue surface and read the existing items.",
59
- "Create one titled 'QA Catalogue dashboard-extras' with a description and public/test-media/sample-image.png attached.",
60
- "Save, RELOAD, and read every field including the photo.",
61
- "Set it to public, save, and open /profile/user-yugi-muto in a private window.",
62
- "Find it under the Catalogue tab and open its own public page.",
63
- "Set it back to private and check it disappears from the public profile.",
64
- "Delete the item.",
65
- ],
66
- inputs: {
67
- title: "QA Catalogue dashboard-extras",
68
- image: "public/test-media/sample-image.png",
69
- },
70
- expectedBehaviour: "A personal catalogue item is a private photo record of something the buyer owns, optionally published. It is NOT a listing type — it lives in its own feature with its own id prefix, and its public visibility is a per-item choice rather than a consequence of creating it.",
71
- expectedUiState: "After the reload every field holds and the photo renders. Set public, the item appears on the owner's public profile Catalogue tab and has its own page. Set private, it disappears from the public profile.",
72
- endResult: "The item is deleted by the final step.",
73
- },
74
- "checklist-buying-user-dashboard-extras-settings-page": {
75
- roles: ["buyer"],
76
- startPage: "/user/settings",
77
- steps: [
78
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
79
- "Open /user/settings and read every tab in the strip.",
80
- "Open each tab and check it renders its fields rather than an empty panel.",
81
- "Note one distinctive value from each tab.",
82
- "Change one field on one tab and save.",
83
- "RELOAD and walk every tab, comparing each noted value.",
84
- "Restore the changed field.",
85
- ],
86
- expectedBehaviour: "Every tab renders, and saving one tab leaves the others untouched. A form that submits its whole object from state populated only by the tabs the user opened blanks the rest — and the save reports success either way, so only the reload shows it.",
87
- expectedUiState: "All tabs render fields. After the reload only the edited field differs and every other noted value is unchanged. A tab that opens empty, or a value silently reset, are both findings.",
88
- expectedData: { unintendedFieldChanges: 0 },
89
- endResult: "The changed field is restored.",
90
- },
91
- "checklist-buying-user-dashboard-extras-my-prize-draws": {
92
- roles: ["buyer"],
93
- startPage: "/user/prize-draws",
94
- steps: [
95
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
96
- "Open the buyer's prize-draws surface and read every row.",
97
- "Check each names the draw, the number of entries bought and the outcome.",
98
- "Find an entry in a REVEALED draw and read the prize it names.",
99
- "Find an entry in a draw that has not yet been drawn and read what it shows.",
100
- "Open one entry and check it reaches the draw or the order behind it.",
101
- "Compare a revealed prize against the same prize on the order page.",
102
- ],
103
- expectedBehaviour: "The list shows what was entered and what came of it. A pending draw and a revealed one are different states and must read differently — a pending entry shown as though it lost, or a revealed one shown as pending, are both wrong and neither errors.",
104
- expectedUiState: "Rows name the draw, the entry count and either the assigned prize or a pending state. The prize matches what the order page shows. Rows open something rather than being inert.",
105
- endResult: "Read-only; nothing persists.",
106
- },
107
- "checklist-buying-user-dashboard-extras-my-digital-codes": {
108
- roles: ["buyer"],
109
- startPage: "/user/digital-codes",
110
- steps: [
111
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
112
- "Open the buyer's digital-codes surface and read every row.",
113
- "Check each names the listing it came from and shows its code or its delivery state.",
114
- "Find an auto-claim purchase and read whether its code is present.",
115
- "Find a manual-delivery purchase and read what it shows instead.",
116
- "Use any copy control and paste the result somewhere to compare it against what is displayed.",
117
- "Reload and check the codes are still there.",
118
- ],
119
- expectedBehaviour: "An auto-claim purchase shows its delivered code immediately; a manual-delivery one shows a pending state until the seller sends it. Any copy control must place exactly the displayed string on the clipboard — a truncated or differently-cased copy produces a redemption failure the buyer cannot explain.",
120
- expectedUiState: "Auto-claim rows show a real code that survives a reload. Manual rows show a pending state rather than an empty cell. The copied value matches the displayed one character for character.",
121
- endResult: "Read-only; nothing persists.",
122
- },
123
- "checklist-buying-user-dashboard-extras-my-offers": {
124
- roles: ["buyer"],
125
- startPage: "/user/offers",
126
- steps: [
127
- "Sign in as vivaan.kapoor@gmail.com / TempPass123!.",
128
- "Open /user/offers and read every row — product, offered amount, listed price, status and round.",
129
- "Read every status filter offered and select each, noting any that returns nothing.",
130
- "For each empty filter, check the unfiltered list for rows of that status.",
131
- "Find an offer that was countered and read how its round is shown.",
132
- "Open one offer and read its detail.",
133
- "Check at least one row action is a view rather than only a mutation.",
134
- ],
135
- expectedBehaviour: "The list shows the negotiation state with enough context to act — the offered amount against the listed price is the whole point. A counter creates a NEW offer document per round, linked forwards and backwards and denormalised to the chain's root, so a row can say which round it is without extra reads.",
136
- expectedUiState: "Rows show product, amounts, status and round. Every status filter returns its own rows or is empty with none unfiltered either — the real statuses include countered and withdrawn, and a chip reading 'Rejected' against a stored 'Declined' matches nothing forever. A view affordance exists.",
137
- endResult: "Read-only; nothing persists beyond the URL.",
138
- },
139
- "checklist-buying-user-dashboard-extras-order-timeline-shows-real-events": {
140
- roles: ["buyer"],
141
- startPage: "/user/orders",
142
- steps: [
143
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
144
- "Open /user/orders and open an order that has moved through several statuses.",
145
- "Open its timeline and read every step in order.",
146
- "Read the date and time against each step.",
147
- "Check the steps the order has NOT reached are shown as upcoming rather than complete.",
148
- "Check any step with no recorded date shows an em-dash rather than a date.",
149
- "Compare one step's date against when that transition actually happened.",
150
- ],
151
- expectedBehaviour: "The timeline is built from the order's own recorded per-status dates. A step with no date renders an em-dash — never the current time, and never a proxy such as the record's last-updated value, which means 'last write of any kind' rather than when the step happened.",
152
- expectedUiState: "Reached steps carry real dates, unreached steps read as upcoming, and any missing date is an em-dash. Every step carrying a plausible date on a recently-placed order is the fabrication failure, and it is indistinguishable from correct data afterwards.",
153
- endResult: "Read-only; nothing persists.",
154
- },
155
- "checklist-buying-user-dashboard-extras-order-partial-refund-in-timeline": {
156
- roles: ["buyer"],
157
- startPage: "/user/orders",
158
- steps: [
159
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
160
- "Open /user/orders and find an order that received a partial refund.",
161
- "Open its timeline and look for an entry describing the refund.",
162
- "Read whether the entry states the amount refunded.",
163
- "Check the entry is not phrased as an array or a count changing.",
164
- "Compare the refunded amount against the order's own refund total.",
165
- ],
166
- expectedBehaviour: "A partial refund changes no tracked status field, so a plain field-diff would leave no trace of it at all — the entry is contributed explicitly. Diffing the refunds collection instead was rejected because it renders as 'an array of one became an array of two', which is true and useless.",
167
- expectedUiState: "The timeline holds an entry naming the refund and its amount, in readable language. An entry describing a list growing, or no entry at all for a refund that demonstrably happened, are both failures.",
168
- endResult: "Read-only. If no partially-refunded order exists, answer null rather than creating one.",
169
- },
170
- "checklist-buying-user-dashboard-extras-order-auction-won-vs-bought-out": {
171
- roles: ["buyer"],
172
- startPage: "/user/orders",
173
- steps: [
174
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
175
- "Open /user/orders and switch to the Auction wins tab.",
176
- "Open an order that came from a WON auction and read what it says about how it was won.",
177
- "Read whether it shows the winning bid and the number of competing bids.",
178
- "Open an order that came from a BUY-NOW purchase on an auction and read the same.",
179
- "Compare the two — check they are described differently.",
180
- "Check the buy-now order's bid count is not assumed to be zero.",
181
- ],
182
- expectedBehaviour: "A settled win and a buyout are both auction orders but different provenance, and the order records which. A buyout is a REAL bid: it is placed as a bid, leaves the auction live, and the count it records is the competitive bids it beat — so a buyout order asserting zero bids by definition is wrong.",
183
- expectedUiState: "The won order names the winning bid and the competing bid count. The buy-now order is described as a buyout rather than as a win, and its bid count reflects the bids that existed rather than being fixed at zero.",
184
- endResult: "Read-only; nothing persists.",
185
- },
186
- "checklist-buying-user-dashboard-extras-order-offer-shows-what-was-saved": {
187
- roles: ["buyer"],
188
- startPage: "/user/orders",
189
- steps: [
190
- "Sign in as vivaan.kapoor@gmail.com / TempPass123!.",
191
- "Open /user/orders and switch to the Offer wins tab.",
192
- "Open an order that came from an accepted offer.",
193
- "Read the price charged and the listing's original price.",
194
- "Check the order states what was saved rather than only the amount paid.",
195
- "Compare the charged price against the offer's agreed amount.",
196
- ],
197
- expectedBehaviour: "An offer order records the agreed price and the listed price it was negotiated down from. The charged figure must be the AGREED one — the rule that decides a line's price knows about locked prices, and three hand-written copies of that rule elsewhere omitted that branch, so the gateway captured the list price while the cart showed the agreed one.",
198
- expectedUiState: "The order shows the agreed price as charged, the original listed price, and the difference. A charged amount equal to the listing price is the copied-rule failure, and the two figures never appear on the same screen anywhere else.",
199
- endResult: "Read-only; nothing persists.",
200
- },
201
- "checklist-buying-user-dashboard-extras-order-history-no-money-churn": {
202
- roles: ["buyer"],
203
- startPage: "/user/orders",
204
- steps: [
205
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
206
- "Open an order that had coupons applied and add-ons selected.",
207
- "Open its timeline and read every entry.",
208
- "Look for entries describing coupons being applied or removed, or add-on fees changing.",
209
- "Count the entries in total.",
210
- "Read the order's own summary and check the final coupon and add-on state is shown there instead.",
211
- ],
212
- expectedBehaviour: "Pricing churn is deliberately absent from the timeline. Only the FINAL coupon and add-on state is kept, and it lives on the order itself — a coupon that lapsed before the order existed is not that order's history, and pricing noise would exhaust the fifty-entry cap within days and bury the handful of transitions anyone actually reads.",
213
- expectedUiState: "The timeline holds status transitions and refunds, and no entries about coupons being applied or removed. The order's summary shows the final applied discounts and add-ons. A timeline full of pricing entries is the failure.",
214
- expectedData: { pricingEntriesInTimeline: 0 },
215
- endResult: "Read-only; nothing persists.",
216
- },
217
- "checklist-buying-user-dashboard-extras-order-history-carries-no-personal-data": {
218
- roles: ["buyer"],
219
- startPage: "/user/orders",
220
- steps: [
221
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
222
- "Open an order and open its timeline.",
223
- "Read every entry for a name, an email address or a phone number.",
224
- "Read how the actor of each change is identified.",
225
- "Open the browser's View Source and search the page for an email address.",
226
- "Check any actor shown is an identifier rather than a person's name.",
227
- ],
228
- expectedBehaviour: "History entries carry no personal data, and this is enforced where the entry is built rather than by convention. The encryption pass is a flat top-level loop that never descends into arrays — so a name or email nested inside a history entry would be stored in PLAINTEXT and never decrypted on the way out, which is why the primitive scrubs those fields itself.",
229
- expectedUiState: "No entry contains a name, email or phone. Actors are identifiers. Neither the rendered timeline nor the page source contains an email address.",
230
- expectedData: { piiInTimeline: 0 },
231
- endResult: "Read-only. A convention saying 'do not put PII in history' is one forgetful writer away from a plaintext leak, which is why this is checked rather than assumed.",
232
- },
233
- "checklist-buying-user-dashboard-extras-my-returns": {
234
- roles: ["buyer"],
235
- startPage: "/user/returns",
236
- steps: [
237
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
238
- "Open the buyer's returns surface and read every row.",
239
- "Check each names the item, the order and the reason given.",
240
- "Read every status filter offered and select each.",
241
- "Open one return and read the full reason and any admin response.",
242
- "Check the returned order also appears under the ACTIVE scope on /user/orders.",
243
- ],
244
- expectedBehaviour: "Returns are a view over orders rather than a separate entity — a return is an order status. That is why a return-requested order sits under Active on the orders list: it is an open item awaiting action, and filing it under Closed removes it from the list the buyer checks.",
245
- expectedUiState: "Rows name the item, the order and the reason, and open to the full text. The same order appears under Active on /user/orders. A return-requested order under Closed is the finding.",
246
- endResult: "Read-only; nothing persists beyond the URL.",
247
- },
248
- "checklist-buying-user-dashboard-extras-my-reviews": {
249
- roles: ["buyer"],
250
- startPage: "/user/reviews",
251
- steps: [
252
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
253
- "Open the buyer's reviews surface and read every row.",
254
- "Check each names the product, the rating and the date.",
255
- "Check any review photos render rather than showing placeholder icons.",
256
- "Open one and check it can be edited.",
257
- "Read whether any seller response is shown alongside.",
258
- "Click a row and confirm it reaches the product or the review.",
259
- ],
260
- expectedBehaviour: "The buyer's own reviews are listed with their photos and any seller response. Review images are plain URL strings — a renderer expecting objects reads undefined off every one and falls back to a placeholder, which makes all the photos vanish at once rather than one being broken.",
261
- expectedUiState: "Rows name the product, rating and date, photos render, and any seller response is visible. Rows reach the product or the review. Placeholder icons in place of every photo is the string-versus-object failure.",
262
- expectedData: { placeholderPhotos: 0 },
263
- endResult: "Read-only; nothing persists.",
264
- },
265
- "checklist-buying-user-dashboard-extras-user-personal-listings-search-sort": {
266
- roles: ["buyer"],
267
- startPage: "/user/digital-codes",
268
- steps: [
269
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
270
- "Open the personal catalogue surface and note the unfiltered item count.",
271
- "Type a word from one item's title into the search box and read the results.",
272
- "Clear it, type zzzznope, and read the count.",
273
- "Read the sort dropdown's options and its default selection.",
274
- "Check the default is one of the offered options.",
275
- "Select each other option and check the order changes each time.",
276
- ],
277
- inputs: { nonsenseQuery: "zzzznope" },
278
- expectedBehaviour: "Search narrows and every sort option reorders. The nonsense query is the control that separates a filtering search from a decorative one — a real term returns plausible rows either way. A default sort that is not among the offered options opens the dropdown blank, which this listing family has done before.",
279
- expectedUiState: "The real term narrows the list; 'zzzznope' returns zero and an empty state rather than everything. The sort dropdown opens with one of its own options selected, and each option visibly reorders the items.",
280
- expectedData: { nonsenseResultCount: 0, inertSortOptions: 0 },
281
- endResult: "Read-only; nothing persists beyond the URL.",
282
- },
283
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,169 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the buying/user-dashboard-navigation page.
3
- * WHAT: 9 case(s), keyed by full checklist id.
4
- *
5
- * Written by hand, case by case, against the label each one states. There is no
6
- * generator: the authoring scripts were deleted once it was clear they were
7
- * scaffolding around work that is simply writing.
8
- *
9
- * 🛑 THE /user SUBTREE IS DIFFERENT FROM /admin AND /store. Its layout reads no
10
- * session server-side — the guard is a client component — so these routes are
11
- * PRERENDERED to a signed-out shell and the session hydrates in the browser. That
12
- * shell is the same bytes for every visitor, which is what makes it safe, and it
13
- * is also why the signed-out case watches for a flash rather than expecting an
14
- * immediate server redirect.
15
- *
16
- * @tag domain:tester
17
- * @tag layer:seed
18
- * @tag pattern:none
19
- * @tag access:server-only
20
- * @tag consumers:seed-data/authored/index.ts
21
- * @tag sideEffects:none
22
- */
23
- export const authored = {
24
- "checklist-buying-user-dashboard-navigation-sidebar-all-links-work": {
25
- roles: ["buyer"],
26
- startPage: "/user",
27
- steps: [
28
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
29
- "Open /user and expand every group in the sidebar.",
30
- "Click each link in turn, reading where it lands and going back each time.",
31
- "Write down any link that 404s, renders an empty shell, or lands somewhere unrelated.",
32
- "Count the links against the pages that exist under /user.",
33
- "Read whether a Testing group is present for this non-tester account.",
34
- ],
35
- expectedBehaviour: "Every sidebar link opens a real page with content. The inverse — a built page with no sidebar entry — is the same defect from the other side, and it is not mechanically blocked: around seventeen pages across the portals were once reachable only by typing their exact URL. The Testing group is injected at runtime for tester accounts and must be absent entirely for others rather than rendering as an empty heading.",
36
- expectedUiState: "Every link resolves to a page with content, not a 404 and not chrome with an empty body. No Testing group appears for this account. Note any page you know exists that has no link — that half has to be spotted by eye.",
37
- expectedData: { brokenLinks: 0 },
38
- endResult: "Read-only; nothing persists.",
39
- },
40
- "checklist-buying-user-dashboard-navigation-sidebar-active-highlight": {
41
- roles: ["buyer"],
42
- startPage: "/user",
43
- steps: [
44
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
45
- "Open /user and note which sidebar entry is highlighted.",
46
- "Navigate to /user/orders and read which entry is highlighted.",
47
- "Open a specific order's detail and read the highlight again.",
48
- "Navigate to /user/addresses and read it again.",
49
- "Press the browser back button and read the highlight.",
50
- ],
51
- expectedBehaviour: "The highlight is derived from the current path, so it follows nested routes where the sidebar has no entry of its own — an order detail still highlights Orders — and it follows a back navigation, which a highlight set from the click cannot.",
52
- expectedUiState: "Exactly one entry is highlighted at a time and it matches the current section, including on the order detail. After the back navigation it matches wherever the browser landed.",
53
- endResult: "Read-only; nothing persists.",
54
- },
55
- "checklist-buying-user-dashboard-navigation-sidebar-mobile-collapse": {
56
- roles: ["buyer"],
57
- startPage: "/user",
58
- steps: [
59
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
60
- "Resize the browser window to 390 pixels wide and open /user.",
61
- "Open the sidebar using the header's hamburger icon.",
62
- "Read its entries, and navigate somewhere.",
63
- "Check whether it closed on navigation.",
64
- "Count the fixed bars at the bottom of the screen and read every one of its slots, including the last ('More').",
65
- "Tap the bottom bar's 'More' slot and read what it opens.",
66
- "Try to scroll the page sideways.",
67
- ],
68
- inputs: { mobileWidth: 390 },
69
- expectedBehaviour: "BEFORE (fixed 2026-09-28): /user rendered a dashboard-specific bottom bar — up to 5 flattened sidebar links, text-only, no icons — while the public bottom bar was suppressed on this route. AFTER: the dashboard sidebar opens from the header hamburger, exactly as on every dashboard route, and closes after navigating. The bottom tab bar itself is now the SAME shared bar every public page uses (same items, same order, same icons) — not a dashboard-specific one — and its own 'More' slot opens the public site menu, not this sidebar. Exactly one bottom bar is mounted either way, since it is the sole publisher of its own height.",
70
- expectedUiState: "The header hamburger opens the dashboard sidebar, collapsed by default, closing after navigation. The bottom bar matches the public site's bar item-for-item, and tapping its 'More' slot opens the public menu rather than the dashboard sidebar. The page does not scroll sideways.",
71
- expectedData: { bottomNavCount: 1 },
72
- endResult: "Read-only; restore the window width afterwards.",
73
- },
74
- "checklist-buying-user-dashboard-navigation-deep-link-direct-load": {
75
- roles: ["buyer"],
76
- startPage: "/user/orders",
77
- steps: [
78
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
79
- "Open /user/orders, apply a filter and a sort, and copy the URL.",
80
- "Open a new tab and paste that URL.",
81
- "Read whether the same filter and sort are applied on first paint.",
82
- "Open a specific order's detail, copy that URL, and open it in a new tab.",
83
- "Read whether it opens on the same order.",
84
- "Reload that tab and read it again.",
85
- ],
86
- expectedBehaviour: "Listing state lives in the URL, so a filtered view is shareable and reproduces on first paint. These routes are prerendered and hydrate their session client-side, so a deep link renders its shell immediately and fills in — what must not happen is the filters arriving and then being replaced by the defaults.",
87
- expectedUiState: "The pasted listing URL shows the same rows, filter and sort as the tab it came from. The order URL opens that order and survives a reload. A filtered link that lands on the unfiltered default is the failure.",
88
- endResult: "Read-only; nothing persists beyond the URL.",
89
- },
90
- "checklist-buying-user-dashboard-navigation-become-seller-crossnav": {
91
- roles: ["buyer"],
92
- startPage: "/user",
93
- steps: [
94
- "Sign in as karthik.new@gmail.com / TempPass123!, a buyer with no store.",
95
- "Open /user and find the route into selling.",
96
- "Click it and read where it lands.",
97
- "Go back and open /sell directly, reading where that lands.",
98
- "Sign out and sign in as tyson@beybladearena.in / TempPass123!, who has a store.",
99
- "Open /user and read what the same area of the sidebar offers now.",
100
- "Follow it and read where it lands.",
101
- ],
102
- expectedBehaviour: "The cross-navigation resolves by whether the account already has a store: a buyer is routed into the become-seller flow, an existing seller into their store dashboard. Offering a seller the become-seller flow, or a buyer a dashboard they cannot use, are the two ways this reads wrong.",
103
- expectedUiState: "The buyer's link opens the become-seller flow with real content. The seller's opens /store. Neither lands on a 404 and neither offers the wrong destination for its account.",
104
- endResult: "Read-only; apply for nothing.",
105
- },
106
- "checklist-buying-user-dashboard-navigation-browser-back-forward": {
107
- roles: ["buyer"],
108
- startPage: "/user",
109
- steps: [
110
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
111
- "Open /user, then /user/orders, then apply a filter, then open an order's detail.",
112
- "Press the browser back button once and read where it lands.",
113
- "Press back again and read where it lands, including whether the filter is still applied.",
114
- "Press back once more.",
115
- "Press forward three times, reading each landing.",
116
- ],
117
- expectedBehaviour: "Each state change that alters the URL is one history entry, so back walks them in reverse one press at a time. A filter change that writes the URL twice — once for the filter and once to reset the page number — produces two entries for one action, and back appears not to work.",
118
- expectedUiState: "Back and forward move one step per press, and the filtered listing returns with its filter applied. Two presses needed to undo a single filter change is the double-navigation failure.",
119
- endResult: "Read-only; nothing persists beyond the URL.",
120
- },
121
- "checklist-buying-user-dashboard-navigation-logged-out-redirect": {
122
- roles: ["guest"],
123
- startPage: "/user",
124
- steps: [
125
- "Open a private window with no session.",
126
- "Open /user and watch the page for 5 seconds.",
127
- "Open /user/orders and watch for 5 seconds.",
128
- "Open /user/addresses and watch for 5 seconds.",
129
- "Read each for any name, email, order or address at any point.",
130
- "Open the browser's View Source on one of them and search for an email address and for a uid.",
131
- "Read where each navigation ends up.",
132
- ],
133
- expectedBehaviour: "These routes are prerendered to a signed-out shell and the session hydrates client-side, so the served HTML is identical for every visitor and cannot contain anyone's data. The redirect therefore happens after hydration — a brief flash of chrome is expected and is the tradeoff being evaluated, while a spinner that never resolves is not.",
134
- expectedUiState: "Each URL shows chrome and a loading state, then lands on the sign-in page. No name, email, order or address appears at any point, and none is present in the page source. Nothing is still spinning after 5 seconds. Record whether the flash feels acceptable.",
135
- expectedData: { userDataInSource: 0 },
136
- endResult: "All three end signed out. Any trace of a real account fails the case outright, separately from the flash question.",
137
- },
138
- "checklist-buying-user-dashboard-navigation-breadcrumbs-accurate": {
139
- roles: ["buyer"],
140
- startPage: "/user",
141
- steps: [
142
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
143
- "Open /user and read any breadcrumb trail shown.",
144
- "Navigate to /user/orders and read the trail.",
145
- "Open a specific order's detail and read the trail.",
146
- "Click each breadcrumb ancestor in turn and check it lands where it says.",
147
- "Check the current page is shown as the last crumb and is not itself a link.",
148
- ],
149
- expectedBehaviour: "The trail reflects the real route hierarchy and every ancestor is a working link. The last crumb is the current page and is not clickable — a self-link reads as a working link and goes nowhere new, the same defect the policy pages' related-links list had.",
150
- expectedUiState: "The trail deepens as the route deepens, every ancestor navigates correctly, and the final crumb is plain text rather than a link.",
151
- endResult: "Read-only; nothing persists.",
152
- },
153
- "checklist-buying-user-dashboard-navigation-sidebar-logout-button": {
154
- roles: ["buyer"],
155
- startPage: "/user",
156
- steps: [
157
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
158
- /* 'Logout' is the rendered label (AppLayoutShell's sidebarProfileLabels). */
159
- "Open /user and find 'Logout' in the sidebar's Profile section.",
160
- "Click it and read where the browser lands.",
161
- "Open /user again and read what happens.",
162
- "Press the browser back button and read what is shown.",
163
- "Open /user/orders directly and read what happens.",
164
- ],
165
- expectedBehaviour: "Log out clears both the server session cookie and the client auth session. Clearing only one leaves the browser able to re-mint a session on the next request, which is why the second navigation rather than the redirect is the real check — and a dashboard restored from the back-forward cache after log-out is a real exposure on a shared machine.",
166
- expectedUiState: "The browser leaves the dashboard. Opening /user or /user/orders afterwards redirects to sign-in rather than rendering, even briefly with real data. The back button does not restore the dashboard from cache.",
167
- endResult: "The session is ended.",
168
- },
169
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;