@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,77 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the addresses/unban-request page.
3
- * WHAT: 1 case, 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
- * @tag domain:tester
10
- * @tag layer:seed
11
- * @tag pattern:none
12
- * @tag access:server-only
13
- * @tag consumers:seed-data/authored/index.ts
14
- * @tag sideEffects:none
15
- */
16
- /*
17
- * Verified against the drawer on 2026-09-29, and every assertion the case
18
- * makes is correct: the trigger reads 'Request Unban' and renders only when
19
- * the address is banned; the drawer's field is 'Reason for unban request';
20
- * its submit is 'Submit request' and is DELIBERATELY not disabled on an empty
21
- * note, with a source comment saying why; and addressUnbanRequestSchema
22
- * carries a .min(20) whose message is
23
- *
24
- * 'Explain what happened — at least 20 characters. This is all the reviewer sees.'
25
- *
26
- * So the 20 the case names is real, and so is the error text.
27
- *
28
- * 🛑 WHAT IS MISSING IS THE PRECONDITION. This buyer has no addresses at all,
29
- * and no seeded address is banned, so 'find an address showing a banned state'
30
- * finds nothing. Worse, there is no UI path to ban one: ban-address is a row
31
- * action on the Banned Addresses queue, which is fed only by
32
- * GET /api/admin/addresses?banStatus=..., and its chips are banned,
33
- * unban_requested and suspicious. The All chip sends no banStatus and the
34
- * route then returns an empty list — so that queue can only act on rows
35
- * already in it, and nothing in the product puts a clean address there.
36
- *
37
- * The one real producer is hardBanCascade, which bans every address belonging
38
- * to a hard-banned user. But /unban reverses exactly that via
39
- * unbanAutoForOwner, so lifting the user's ban clears the address too. The two
40
- * states this case needs together — an ACTIVE buyer with a BANNED address —
41
- * cannot be reached from the UI at all.
42
- *
43
- * So the case attempts the setup, RECORDS the gap, and runs the real
44
- * assertions only if a banned address does exist. Recorded in OUTOFSCOPE.
45
- */
46
- export const authored = {
47
- "checklist-addresses-unban-request-empty-note-says-why": {
48
- roles: ["buyer"],
49
- startPage: "/user/addresses",
50
- steps: [
51
- "Sign in as admin@letitrip.in / TempPass123! and open the Banned Addresses queue.",
52
- "Select the All chip and read how many rows are listed, then try the Banned, Unban Requested and Suspicious chips in turn.",
53
- "Record whether ANY route in the product lets an admin ban a single address on an otherwise-active account — if none does, this case cannot be set up, and that is the finding.",
54
- "If a banned address belonging to rehan.sheikh@gmail.com does exist, continue. Otherwise stop here and answer no, quoting what each chip returned.",
55
- "Sign in as rehan.sheikh@gmail.com / TempPass123! and open /user/addresses.",
56
- "Find the banned address and click 'Request Unban'.",
57
- "Leave 'Reason for unban request' completely empty and click 'Submit request'. The button must be clickable, not greyed out.",
58
- "Read where the message appears.",
59
- "Type 'Too short' and click 'Submit request' again.",
60
- "Type 'This address was banned in error; it is my registered home address.' and submit.",
61
- ],
62
- inputs: {
63
- shortNote: "Too short",
64
- validNote: "This address was banned in error; it is my registered home address.",
65
- minimumLength: 20,
66
- trigger: "Request Unban",
67
- field: "Reason for unban request",
68
- submit: "Submit request",
69
- },
70
- expectedBehaviour: "Submitting with an empty or too-short note fails loudly ON THE FIELD and names the 20-character minimum. The note is the entire case a reviewer reads, so a request without one is not a request — but a greyed-out button with a bare return in its handler tells the user nothing about why, which is what this replaced.",
71
- expectedUiState: "The submit button is enabled even with the box empty. Pressing it puts an error on the note field naming the minimum length; the schema message reads 'Explain what happened — at least 20 characters. This is all the reviewer sees.' 'Too short' produces the same error. The full sentence is accepted and a confirmation appears.\n\n🛑 If no banned address exists, answer NO for the precondition rather than null: there is no UI path to ban one, which is a product gap and not a missing test channel.",
72
- expectedData: { minimumNoteLength: 20, submitEnabledWhenEmpty: true },
73
- endResult: "If the request was submitted, the address reads as unban-requested and carries the full note. A silently disabled button that does nothing when pressed is the failure — the user cannot tell it from a broken page.",
74
- needsReview: true,
75
- reviewNote: "The assertions are verified correct against the drawer and its schema. What is unsettled is whether an admin should be able to ban a single address on an otherwise-active account at all; today they cannot, so this case has no reachable setup.",
76
- },
77
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,151 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for admin/admin-detail-round-trips.
3
- * WHAT: 7 cases, keyed by full checklist id.
4
- *
5
- * 🛑 THERE ARE 33 `[id]` DIRECTORIES UNDER `admin/` AND ALMOST ALL SAT AT ZERO.
6
- *
7
- * Every case here is a ROUND TRIP: open, change ONE field, save, RELOAD, then
8
- * check the fields you did NOT touch. That shape is what catches an editor
9
- * seeded from the wrong object — a form that opens blank and then saves its own
10
- * emptiness passes any case that merely asks whether the page loads. It is
11
- * exactly how the 2026-09-14 data-loss bug survived (Root Cause #98), and it is
12
- * also Root Cause #38's shape, where saving one field silently stripped tester
13
- * flags and un-verified a store because the list row never carried them.
14
- *
15
- * @tag domain:tester
16
- * @tag layer:seed
17
- * @tag pattern:none
18
- * @tag access:server-only
19
- * @tag consumers:seed-data/authored/index.ts
20
- * @tag sideEffects:none
21
- */
22
- export const authored = {
23
- "checklist-admin-admin-detail-round-trips-coupon-edit-round-trip": {
24
- roles: ["admin"],
25
- startPage: "/admin/coupons",
26
- steps: [
27
- "Sign in as admin@letitrip.in / TempPass123!.",
28
- "Open /admin/coupons and find the coupon with code ARENA25.",
29
- "Open its Edit action and write down its discount value, its usage limits and its validity dates.",
30
- "Change ONLY the description — append the word roundtrip.",
31
- "Press Save.",
32
- "Reload the page and open the same coupon again.",
33
- "Read the discount value, the usage limits and the validity dates.",
34
- "Restore the description by deleting the word you appended, then save again. coupons is SEED_OWNED so a reseed would fix it either way, but a run does not reseed — three earlier runs left this text reading 'roundtrip roundtrip roundtrip', and a later case reading this description would be reading what this one wrote.",
35
- "Note the editor keeps Limits and Validity in COLLAPSIBLE sections. After the reload they are closed, so their fields are absent from the page rather than empty — read those four numbers off the coupon card in the list, which renders them directly, or expand the sections again before judging.",
36
- ],
37
- inputs: { couponCode: "ARENA25", descriptionSuffix: "roundtrip" },
38
- expectedBehaviour: "Editing one field writes that field and leaves the rest as they were. A handler that merges a partial validity or restrictions object wholesale wipes whatever the caller did not resend — and a handler that never calls the repository at all returns a 200 that echoes the submission back, which is indistinguishable from a save.",
39
- expectedUiState: "The description carries the appended word. The discount value, both usage limits and both validity dates are exactly as written down.",
40
- expectedData: { unrelatedFieldsChanged: 0 },
41
- endResult: "All of it survives a second reload — the change was stored, not just rendered.",
42
- },
43
- "checklist-admin-admin-detail-round-trips-faq-edit-preserves-answer-shape": {
44
- roles: ["admin"],
45
- startPage: "/admin/faqs",
46
- steps: [
47
- "Sign in as admin@letitrip.in / TempPass123!.",
48
- "Open /admin/faqs and pick the FAQ whose slug is coupons-and-discounts.",
49
- "Open its Edit action and read how the answer renders in the editor.",
50
- "Append the sentence: Edited during a round-trip check.",
51
- "Press Save.",
52
- "Reload and reopen the same FAQ.",
53
- "Open the public /faqs page and find the same question. Answers are collapsed accordions — click the question to expand it before reading.",
54
- "Remove the sentence you appended and save again. Append it with the KEYBOARD at the caret, never by filling the field: this is a contenteditable holding real HTML, and a fill replaces the whole answer with plain text, destroying five bold runs on a buyer-facing page.",
55
- ],
56
- inputs: { faqSlug: "coupons-and-discounts", appended: "Edited during a round-trip check." },
57
- expectedBehaviour: "The answer is a structured value, not a bare string. A create path that wraps it and an update path that writes it flat produce a document every reader expects to be an object and finds is a string — which renders as nothing, or as raw markup, on the public page.",
58
- expectedUiState: "The editor still shows formatted rich text after the reload, and the public FAQ renders the answer as prose rather than as visible markup or an empty block.",
59
- expectedData: { answerRendersAsRichText: true },
60
- endResult: "The appended sentence is present on both the admin editor and the public page.",
61
- },
62
- "checklist-admin-admin-detail-round-trips-category-edit-keeps-hierarchy": {
63
- roles: ["admin"],
64
- startPage: "/admin/categories",
65
- steps: [
66
- "Sign in as admin@letitrip.in / TempPass123!.",
67
- "Open /categories/category-x-basic as a visitor in a second tab and write down its product count. Note the FULL id — /categories/x-basic serves 'Category Not Found'; every category id carries the category- prefix.",
68
- "In the first tab open /admin/categories and find Basic Line — that is the display name of category-x-basic; there is no category called 'X Basic'.",
69
- "Write down its parent and how many children it has.",
70
- "Open its Edit action, change ONLY its description, and press Save.",
71
- "Reload the admin list and reopen it.",
72
- "Reload the public category page in the second tab.",
73
- "Restore the description by removing the word you appended, then save again. Three of the cases on this page append a marker and this one accumulated 'roundtrip' from an earlier run — categories is SEED_OWNED, but a run does not reseed.",
74
- ],
75
- inputs: { categorySlug: "x-basic" },
76
- expectedBehaviour: "A rename or a description edit touches that field alone. The hierarchy fields — parent, children, ancestors, tier — are derived and must never be rewritten from form state, and the product count is derived from a trigger rather than typed.",
77
- expectedUiState: "The parent and the child count are unchanged, and the public page shows the same product count as before.",
78
- expectedData: { hierarchyChanged: false, countChanged: false },
79
- endResult: "Everything except the description is identical after a reload.",
80
- },
81
- "checklist-admin-admin-detail-round-trips-user-edit-keeps-tester-flags": {
82
- roles: ["admin"],
83
- startPage: "/admin/users",
84
- steps: [
85
- "Sign in as admin@letitrip.in / TempPass123!.",
86
- "Open /admin/users and find the account rehan.sheikh@gmail.com.",
87
- "Open its Edit action, turn BOTH tester flags on, and save — no seeded account carries them, so the case has to set up the field it is about.",
88
- "Reopen the same account and confirm both flags read as on.",
89
- "WRITE DOWN the bio exactly as it stands, then change ONLY the bio — append the word roundtrip.",
90
- "Press Save.",
91
- "Reload the list and reopen the same account.",
92
- "Read the tester flags again.",
93
- "Turn both tester flags back off AND restore the bio to what you wrote down, then save. users is PRESERVE-tier — never wiped, never reseeded — so an appended word left behind is permanent, and after a few runs the bio reads roundtrip roundtrip roundtrip.",
94
- ],
95
- inputs: { account: "rehan.sheikh@gmail.com", bioSuffix: "roundtrip" },
96
- expectedBehaviour: "An editor seeded from a LIST row can only send back what that row carried. If the list serializer omits a field the update schema accepts, the editor state defaults to false and the save rewrites it — so editing any other field silently strips it. That is why the check is on a field the form did not touch.",
97
- expectedUiState: "Both tester flags are still on after the reload, and the bio carries the appended word.",
98
- expectedData: { testerFlagsPreserved: true },
99
- endResult: "The flags survive a second reload, and the final step leaves the account back on its seeded settings with both flags off.",
100
- },
101
- "checklist-admin-admin-detail-round-trips-store-edit-keeps-verified": {
102
- roles: ["admin"],
103
- startPage: "/admin/stores",
104
- steps: [
105
- "Sign in as admin@letitrip.in / TempPass123!.",
106
- "Open /admin/stores and find Beyblade Arena.",
107
- "Note whether it is marked Verified and whether it is Featured.",
108
- "Note the admin notes as they stand, then open its Edit action and change ONLY the admin notes — append the word roundtrip. Restore them before you finish. Unlike the user bio in the sibling case, stores is SEED_OWNED and a reseed would put this back either way — so this is hygiene rather than damage control, and it keeps a later case from reading notes this one wrote.",
109
- "Press Save.",
110
- "Reload the list.",
111
- "Read the Verified and Featured markers again.",
112
- ],
113
- inputs: { store: "store-beyblade-arena", notesSuffix: "roundtrip" },
114
- expectedBehaviour: "Same failure mode as the tester flags, with a worse consequence: un-verifying a store is visible to shoppers. A store's capabilities can be reset to a two-item default by the same mechanism, which is invisible until a seller reports that a feature disappeared.",
115
- expectedUiState: "Verified and Featured are unchanged, and the admin notes carry the appended word.",
116
- expectedData: { verifiedPreserved: true, featuredPreserved: true },
117
- endResult: "Both markers are still correct after a reload.",
118
- },
119
- "checklist-admin-admin-detail-round-trips-order-view-matches-drawer": {
120
- roles: ["admin"],
121
- startPage: "/admin/orders",
122
- steps: [
123
- "Sign in as admin@letitrip.in / TempPass123!.",
124
- "Open /admin/orders and open the row drawer for order-1-20251107-11joon.",
125
- "Write down the item titles, the shipping address, the payment method and the status.",
126
- "Close the drawer and use that row's Open full page action.",
127
- "Read the same four things on the full page.",
128
- ],
129
- inputs: { orderId: "order-1-20251107-11joon" },
130
- expectedBehaviour: "The drawer and the full page are two renderings of one record, so they must agree. Where they differ, one of them is reading a field the other is not — and the full page is the bookmarkable one an admin will send to somebody else.",
131
- expectedUiState: "Item titles, address, payment method and status are identical in both, and the full page is at a real bookmarkable URL rather than a modal over the list.",
132
- expectedData: { drawerAndPageAgree: true },
133
- endResult: "Nothing is changed; this case only reads.",
134
- },
135
- "checklist-admin-admin-detail-round-trips-admin-detail-missing-id-404s": {
136
- roles: ["admin"],
137
- startPage: "/admin/coupons",
138
- steps: [
139
- "Sign in as admin@letitrip.in / TempPass123!.",
140
- "Navigate to /admin/coupons/zzzznope-not-a-coupon-42/edit — a deliberately invented id, not a fixture.",
141
- "Read what the page shows.",
142
- "Navigate to /admin/orders/zzzznope-not-an-order-42/view.",
143
- "Read that page too.",
144
- ],
145
- inputs: { couponId: "zzzznope-not-a-coupon-42", orderId: "zzzznope-not-an-order-42" },
146
- expectedBehaviour: "An id that resolves to nothing must 404. An empty editor here is the tell that the page never checked what it received — and an empty editor with a Save button is how a record gets created or overwritten from a typo.",
147
- expectedUiState: "Both show a not-found page. Neither shows an editable form, and neither shows a Save button.",
148
- expectedData: { showsEditForm: false },
149
- endResult: "Nothing is created and nothing is saved.",
150
- },
151
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,265 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the admin/bans-and-trust page.
3
- * WHAT: 12 case(s), keyed by full checklist id.
4
- *
5
- * 🛑 THESE CASES BAN REAL SEEDED ACCOUNTS AND EVERY ONE RESTORES WHAT IT CHANGED.
6
- * `users` is in the PRESERVE tier — a tester run never re-seeds it — so a ban left
7
- * in place outlives every reseed and quietly breaks whichever other checklist page
8
- * signs in as that persona. Each procedure names its restore step for that reason,
9
- * and each uses a persona reserved for this page rather than one another page
10
- * depends on.
11
- *
12
- * The unban case is the load-bearing one. Session role fields refresh only
13
- * periodically, so a guard reading the cached snapshot keeps blocking a user who
14
- * was unbanned a moment ago — the fix is to re-read on navigation, not to widen
15
- * the refresh interval.
16
- *
17
- * 🛑 A SOFT BAN DOES NOT BLOCK SIGN-IN (corrected 2026-09-29). Three cases and
18
- * one catalogue label said it did. It does not, and the code is unambiguous:
19
- *
20
- * soft ban POST /api/admin/users/{uid}/soft-ban appends to `user.softBans[]`
21
- * as `{ action, reason, bannedBy, bannedAt, expiresAt }`, where
22
- * `action` is one of EIGHT: write_reviews, write_blog_comments,
23
- * join_events, place_bids, create_listings, send_messages,
24
- * create_support_tickets, report_scammers. It is a PER-ACTION
25
- * restriction. Sign-in is untouched.
26
- * lift DELETE /api/admin/users/{uid}/soft-ban/{action} — one action at a
27
- * time. `/unban` does NOT clear softBans.
28
- * hard ban POST …/hard-ban sets `disabled: true` on the Auth record and
29
- * enqueues the 8-stage `hardBanCascade` job. `/api/auth/login`
30
- * refuses on `userRecord.disabled` alone — so THIS is the ban that
31
- * blocks sign-in.
32
- * unban POST …/unban sets `disabled: false` on Auth and the user doc and
33
- * clears the hard-ban fields only.
34
- *
35
- * So the sign-in case now exercises a HARD ban for the sign-in half and a soft
36
- * ban for the restriction half, and says plainly that a soft-banned account
37
- * signing in normally is CORRECT — otherwise the first tester to run it reports
38
- * a defect that is really the case being wrong.
39
- *
40
- * `reason` is `z.string().min(1)`, so a ONE-CHARACTER reason is accepted. The
41
- * requires-reason case hedged on "if a minimum length applies"; it now states
42
- * the contract so a one-character reason being accepted is not written up.
43
- *
44
- * @tag domain:tester
45
- * @tag layer:seed
46
- * @tag pattern:none
47
- * @tag access:server-only
48
- * @tag consumers:seed-data/authored/index.ts
49
- * @tag sideEffects:none
50
- */
51
- const SIGN_IN_ADMIN = "Sign in as admin@letitrip.in / TempPass123!.";
52
- export const authored = {
53
- "checklist-admin-bans-and-trust-soft-ban-blocks-signin": {
54
- roles: ["admin", "buyer"],
55
- startPage: "/admin/users",
56
- steps: [
57
- SIGN_IN_ADMIN,
58
- "Open /admin/users and find the account rohit.collect@gmail.com.",
59
- "Soft-ban it from place_bids with the reason 'QA ban probe — checklist case, will be lifted.'",
60
- "Sign out and sign in as rohit.collect@gmail.com / TempPass123!. This must SUCCEED — a soft ban restricts one action, it does not block sign-in.",
61
- "Open any live auction and try to place a bid. Read the refusal and whether it quotes the reason the admin typed.",
62
- "Sign back in as the admin and lift that soft ban.",
63
- "Now HARD-ban the same account with the reason 'QA sign-in block probe — checklist case, will be lifted.'",
64
- "Sign out and try to sign in as rohit.collect@gmail.com / TempPass123!. Read exactly what is shown.",
65
- "Sign back in as the admin and unban the account, then confirm it signs in again.",
66
- ],
67
- inputs: {
68
- reason: "QA ban probe — checklist case, will be lifted.",
69
- softBanAction: "place_bids",
70
- hardBanReason: "QA sign-in block probe — checklist case, will be lifted.",
71
- },
72
- expectedBehaviour: "The two bans do different things and both must say why. A soft ban blocks ONE action and leaves sign-in alone; a hard ban disables the account outright and sign-in is refused. A refusal with a generic credentials error is worse than a block — the user believes their password is wrong and resets it, repeatedly, against an account that would refuse them either way.",
73
- expectedUiState: "The soft-banned account SIGNS IN NORMALLY — that is correct and is not a finding — and is refused only at the bid, with the admin's reason quoted. The hard-banned account is refused at sign-in with a message naming the disabled account, not an invalid-credentials error. Record the exact wording of both refusals.",
74
- expectedData: { softBannedCanSignIn: true, hardBannedCanSignIn: false },
75
- endResult: "The soft ban is lifted, the hard ban is lifted, and the account signs in and can bid again. 🛑 Both must be lifted separately — /unban clears the hard-ban fields only and leaves softBans untouched.",
76
- },
77
- "checklist-admin-bans-and-trust-soft-ban-requires-reason": {
78
- roles: ["admin"],
79
- startPage: "/admin/users",
80
- steps: [
81
- SIGN_IN_ADMIN,
82
- "Open /admin/users and start a soft ban on the account rohit.collect@gmail.com.",
83
- "Leave the reason field empty and submit.",
84
- "Read what happens and WHERE the error appears — on the field, or as a banner.",
85
- "Type a single character as the reason and submit.",
86
- "Read whether that is accepted — the schema is a minimum of one character, so it should be.",
87
- "If it was accepted, lift that soft ban immediately.",
88
- ],
89
- inputs: { minimumReasonLength: 1 },
90
- expectedBehaviour: "A ban carries a reason, enforced rather than requested. The reason is what the banned user reads and what the audit log records — a ban with none leaves both the user and the next admin with an action and no explanation.",
91
- expectedUiState: "The empty submission is refused with an inline error ON THE REASON FIELD, not a banner. A one-character reason IS accepted — the contract is `z.string().min(1)` — so do not record that as a finding; record instead whether a reason that short is useful to the person who reads it. What would be a finding is an empty reason being accepted, or the refusal appearing only as a banner with nothing marked on the field.",
92
- expectedData: { emptyReasonRejected: true, oneCharReasonAccepted: true },
93
- endResult: "Nobody is left banned — if the one-character ban applied, it is lifted.",
94
- },
95
- "checklist-admin-bans-and-trust-unban-restores-access": {
96
- roles: ["admin", "buyer"],
97
- startPage: "/admin/users",
98
- steps: [
99
- SIGN_IN_ADMIN,
100
- "In a second browser, sign in as rohit.collect@gmail.com / TempPass123! and leave that session open on a signed-in page.",
101
- "As the admin, soft-ban that account from place_bids with the reason 'QA unban probe — checklist case.'",
102
- "In the second browser, WITHOUT signing out or reloading, open a live auction and confirm bidding is refused.",
103
- "As the admin, lift that soft ban.",
104
- "In the second browser, WITHOUT signing out or reloading, navigate to another page and try to bid again.",
105
- "Read whether access is restored, and note how long it took if it was not immediate.",
106
- ],
107
- inputs: { reason: "QA unban probe — checklist case.", softBanAction: "place_bids" },
108
- expectedBehaviour: "A lifted ban takes effect on the next navigation. Role and status fields on a session refresh only periodically, so a guard reading that cached snapshot keeps blocking for minutes after the ban is gone — which reads to the user as the unban not having worked. The guard re-reads on navigation into a gated area for exactly this reason.",
109
- expectedUiState: "Bidding is restored on the next navigation, without a sign-out or a hard reload. A block persisting for minutes is the finding, recorded with how long — that is the cached-session-snapshot failure this case exists for, and it reads to a user as the unban not having worked.",
110
- endResult: "The soft ban is lifted and the account can bid again. Note this case uses a SOFT ban deliberately: a hard ban ends the session outright, so there would be no live session left to observe the restoration on.",
111
- },
112
- "checklist-admin-bans-and-trust-hard-ban-cascade-runs": {
113
- roles: ["admin"],
114
- startPage: "/admin/users",
115
- steps: [
116
- SIGN_IN_ADMIN,
117
- "Open /admin/users and hard-ban the account arjun.builder@gmail.com with the reason 'QA hard-ban cascade probe — checklist case.'",
118
- "Read what the interface says IMMEDIATELY after submitting — the route returns a job id and a token, so it should report started work rather than a finished cascade.",
119
- "Wait for the completion signal and read what it reports.",
120
- "Open the account and read its state — it should now be disabled.",
121
- "Unban the account and confirm it is enabled again.",
122
- ],
123
- inputs: {
124
- reason: "QA hard-ban cascade probe — checklist case.",
125
- jobType: "hardBanCascade",
126
- cascadeStages: 8,
127
- },
128
- expectedBehaviour: "A hard ban runs a multi-stage cascade that exceeds a single request's time budget, so it is queued as a background job and its completion is reported back. A screen that claims success at submit time is claiming an outcome it cannot know — the job may still fail.",
129
- expectedUiState: "The submit reports started or queued work, a completion signal follows separately, and only then does the account's state reflect the finished cascade. An immediate unqualified 'user banned' with no later signal is the finding — the eight-stage cascade runs in a background job and the request cannot know its outcome.",
130
- endResult: "The ban is lifted and the account is enabled again. A hard ban left in place outlives every reseed — users is PRESERVE tier — and silently breaks whichever other page signs in as this persona.",
131
- },
132
- "checklist-admin-bans-and-trust-hard-ban-recorded-in-audit-log": {
133
- roles: ["admin"],
134
- startPage: "/admin/audit-log",
135
- steps: [
136
- SIGN_IN_ADMIN,
137
- "Soft-ban the account rohit.collect@gmail.com with the reason 'QA audit-log probe — checklist case.', then lift it.",
138
- "Open /admin/audit-log.",
139
- "Find the ban entry and the unban entry.",
140
- "Read the acting admin, the target and the reason on each.",
141
- "Check the reason is the one typed.",
142
- "Check no personal name or email of the banned user appears in the entry's stored detail.",
143
- ],
144
- inputs: { reason: "QA audit-log probe — checklist case." },
145
- expectedBehaviour: "Bans, unbans and role changes are the privileged actions the audit log exists for, and each records who acted and why. The log is not encrypted, so it carries the target's identifier rather than their name or email — a readable name there is a leak into a surface that was never designed to hold one.",
146
- expectedUiState: "Both entries present with the acting admin, the target and the exact reason. A missing entry is one finding; a readable email or personal name in the entry's detail is a different and more serious one.",
147
- endResult: "The account is unbanned; the log entries remain.",
148
- },
149
- "checklist-admin-bans-and-trust-ban-status-visible-in-list": {
150
- roles: ["admin"],
151
- startPage: "/admin/users",
152
- steps: [
153
- SIGN_IN_ADMIN,
154
- "Soft-ban the account rohit.collect@gmail.com with the reason 'QA list-marker probe — checklist case.'",
155
- "Return to /admin/users without opening the account.",
156
- "Find the row and read what marks it as banned.",
157
- "Check the marker is readable against its background.",
158
- "Switch to dark mode and read it again.",
159
- "Lift the ban and check the marker clears.",
160
- ],
161
- inputs: { reason: "QA list-marker probe — checklist case." },
162
- expectedBehaviour: "A banned account is marked in the list without opening it, and the marker is legible in both themes. A status tint and its ink both invert with the theme, so a badge pairing a tint with fixed white text is invisible in exactly one of them.",
163
- expectedUiState: "A readable badge on the row in both light and dark mode, cleared when the ban is lifted. White-on-near-white in either theme is the finding.",
164
- endResult: "The account is unbanned and unmarked.",
165
- },
166
- "checklist-admin-bans-and-trust-ban-filter-returns-banned-only": {
167
- roles: ["admin"],
168
- startPage: "/admin/users",
169
- steps: [
170
- SIGN_IN_ADMIN,
171
- "Soft-ban the account rohit.collect@gmail.com with the reason 'QA filter probe — checklist case.'",
172
- "Open /admin/users and apply the filter for banned accounts.",
173
- "Read the rows returned and check the account rohit.collect@gmail.com is among them.",
174
- "Check no unbanned account is in the result.",
175
- "Clear the filter and check the full list returns.",
176
- "Lift the ban and re-apply the filter, checking the account has left it.",
177
- ],
178
- inputs: { reason: "QA filter probe — checklist case." },
179
- expectedBehaviour: "The filter returns exactly the banned accounts. A filter chip whose value does not byte-for-byte match a stored one matches nothing forever and reports no error — an empty result is indistinguishable from 'no banned users', which is why the case bans somebody first.",
180
- expectedUiState: "The banned account is in the filtered result and unbanned accounts are not. An empty result with a known banned account present is the finding.",
181
- endResult: "The account is unbanned.",
182
- },
183
- "checklist-admin-bans-and-trust-session-ip-masked": {
184
- roles: ["admin"],
185
- startPage: "/admin/sessions",
186
- steps: [
187
- SIGN_IN_ADMIN,
188
- "Open /admin/sessions and read a session's IP address as displayed.",
189
- "Check it is partially hidden rather than complete.",
190
- "Open the browser's network panel and read the response that populated the list.",
191
- "Search that payload for a complete IP address.",
192
- "Search the page's own embedded data for one as well.",
193
- ],
194
- expectedBehaviour: "The IP is masked before it leaves the server, not on the way to the screen. A masked display over an unmasked payload is still a leak — the value is in the page and in the browser's history, and only the rendering hides it.",
195
- expectedUiState: "The displayed value is partial AND no complete IP appears in the payload or the page data. A complete address anywhere is the finding, with where it was found.",
196
- endResult: "Read-only.",
197
- },
198
- "checklist-admin-bans-and-trust-sessions-list-device-details": {
199
- roles: ["admin"],
200
- startPage: "/admin/sessions",
201
- steps: [
202
- SIGN_IN_ADMIN,
203
- "Open /admin/sessions.",
204
- "Read each row's browser, operating system and device.",
205
- "Read the last-activity time and check it is a real timestamp rather than a placeholder.",
206
- "Sort or filter by activity and check the order follows.",
207
- "Open a session's detail, if one is offered, and read the same fields there.",
208
- ],
209
- expectedBehaviour: "Each session states which device it belongs to and when it was last used, because that is what an admin needs to decide whether to revoke it. A row showing only an identifier makes the decision impossible.",
210
- expectedUiState: "Browser, operating system, device and a real last-activity timestamp on every row, with sorting that follows. A dash where a device should be is a finding.",
211
- endResult: "Read-only.",
212
- },
213
- "checklist-admin-bans-and-trust-revoke-session-signs-out": {
214
- roles: ["admin", "buyer"],
215
- startPage: "/admin/sessions",
216
- steps: [
217
- "In a second browser, sign in as rohit.collect@gmail.com / TempPass123! and leave a page open.",
218
- SIGN_IN_ADMIN,
219
- "Open /admin/sessions and find that account's session.",
220
- "Revoke it.",
221
- "In the second browser, navigate to any signed-in page.",
222
- "Read whether the account is still signed in.",
223
- "Reload the admin sessions list and check the row is gone.",
224
- ],
225
- expectedBehaviour: "Revoking a session ends it. Removing the row without invalidating the credential is the failure that matters — it reads as done, and the device it was supposed to lock out keeps working indefinitely.",
226
- expectedUiState: "The second browser is signed out on its next navigation and the row is gone from the list. A still-signed-in second browser is the finding, regardless of the row disappearing.",
227
- endResult: "The session is ended; sign the account back in if another case needs it.",
228
- },
229
- "checklist-admin-bans-and-trust-unban-request-reaches-admin": {
230
- roles: ["admin", "buyer"],
231
- startPage: "/admin/users",
232
- steps: [
233
- SIGN_IN_ADMIN,
234
- "Soft-ban the account rohit.collect@gmail.com with the reason 'QA unban-request probe — checklist case.'",
235
- "In a second browser, sign in as rohit.collect@gmail.com / TempPass123! and follow whatever route the block offers for appealing.",
236
- "Submit an unban request with the text 'QA unban request — checklist case, please ignore.'",
237
- "As the admin, find that request in an admin surface.",
238
- "Read whether it can be actioned from there.",
239
- "Lift the ban afterwards.",
240
- ],
241
- inputs: {
242
- banReason: "QA unban-request probe — checklist case.",
243
- requestText: "QA unban request — checklist case, please ignore.",
244
- },
245
- expectedBehaviour: "An appeal a banned user can submit must land somewhere an admin will see it. A submission form with no admin-side surface is the worst half-built shape available here — the user is told their appeal was received, and nobody will ever read it.",
246
- expectedUiState: "The request is visible to the admin with its text and its author, and can be actioned. A form with no admin surface behind it is the finding.",
247
- endResult: "The account is unbanned.",
248
- },
249
- "checklist-admin-bans-and-trust-banned-user-content-handling": {
250
- roles: ["admin", "seller"],
251
- startPage: "/admin/users",
252
- steps: [
253
- "Open /stores/store-beyblade-arena as a signed-out visitor and note that its listings are visible.",
254
- SIGN_IN_ADMIN,
255
- "Soft-ban the seller account tyson@beybladearena.in with the reason 'QA seller-ban content probe — checklist case.'",
256
- "As a signed-out visitor, reload /stores/store-beyblade-arena and read what is shown.",
257
- "Open /products and check whether that store's listings still appear.",
258
- "Lift the ban and reload both.",
259
- ],
260
- inputs: { storeId: "store-beyblade-arena", reason: "QA seller-ban content probe — checklist case." },
261
- expectedBehaviour: "Banning a seller takes their storefront and listings out of public view, and lifting it restores them. Public visibility is gated on the store's own status rather than the user's, so flipping only the user record leaves a banned seller's catalogue fully purchasable.",
262
- expectedUiState: "After the ban, the store page and its listings are not publicly reachable; after the lift, both return exactly as before. Listings still buyable during the ban is the finding.",
263
- endResult: "The ban is lifted and the store is public again.",
264
- },
265
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;