@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,115 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for public-pages/store-tabs.
3
- * WHAT: 6 cases, keyed by full checklist id.
4
- *
5
- * 🛑 THE DEFAULT TAB HAD NO CASE. Nine `/stores/[storeSlug]/*` tabs were
6
- * untested, `products` among them — which is the first thing anyone sees after
7
- * clicking a store.
8
- *
9
- * The reviews tab is included deliberately: it answered HTTP 200 with zero
10
- * reviews for EVERY store until 2026-09-14 (Root Cause #100), and the only
11
- * symptom was a sentence that reads as a fact about the store rather than as a
12
- * defect. That is why the case names a store known to have reviews.
13
- *
14
- * @tag domain:tester
15
- * @tag layer:seed
16
- * @tag pattern:none
17
- * @tag access:server-only
18
- * @tag consumers:seed-data/authored/index.ts
19
- * @tag sideEffects:none
20
- */
21
- export const authored = {
22
- "checklist-public-pages-store-tabs-default-tab-lists-products": {
23
- roles: ["guest"],
24
- startPage: "/stores",
25
- steps: [
26
- "Open /stores and click through to Beyblade Arena. The store URL /stores/store-beyblade-arena redirects to /stores/store-beyblade-arena/products — that redirect IS the default-tab behaviour this case is checking, so landing on a /products URL is the pass condition rather than a surprise.",
27
- "Note which tab is selected on arrival.",
28
- "Count the listings shown and read the total the pager reports.",
29
- "Open two of the cards and read which store each says it belongs to.",
30
- ],
31
- inputs: { store: "store-beyblade-arena" },
32
- expectedBehaviour: "A store opens on its Products tab with that store's listings. A listing carries its store as a denormalised field, so a card showing no seller — or the wrong one — means the listing was written without a store rather than that the tab filtered wrongly.",
33
- expectedUiState: "Products is the selected tab on arrival, cards are listed, and each card names Beyblade Arena.",
34
- expectedData: { defaultTab: "products" },
35
- endResult: "Nothing is changed; this case only reads.",
36
- },
37
- "checklist-public-pages-store-tabs-each-tab-lists-only-its-type": {
38
- roles: ["guest"],
39
- startPage: "/stores/store-beyblade-arena",
40
- steps: [
41
- "Open Beyblade Arena and open the Auctions tab.",
42
- "Read the badge on each card shown.",
43
- "Open the Pre-orders tab and read its badges.",
44
- "Open the Digital Codes tab and read its badges.",
45
- "Open the Art tab and read its badges.",
46
- ],
47
- inputs: { store: "store-beyblade-arena" },
48
- expectedBehaviour: "Each tab is a type filter over that one store. Tabs key on a slug that is a DIFFERENT id space from the listing type, so conflating the two either breaks the URL or silently returns nothing — and nothing looks exactly like an empty tab.",
49
- expectedUiState: "Every card under a tab carries that tab's badge. No card of another type appears under any tab.",
50
- expectedData: { mismatchedBadges: 0 },
51
- endResult: "Nothing is changed; this case only reads.",
52
- },
53
- "checklist-public-pages-store-tabs-empty-tab-says-empty": {
54
- roles: ["guest"],
55
- startPage: "/stores/store-letitrip-official",
56
- steps: [
57
- "Open /stores/store-letitrip-official and work through all twelve tabs in turn: Products, Auctions, Pre-orders, Prize Draws, Classified, Digital Codes, Live, Art, Bundles, Coupons, Reviews, About. 🛑 USE THIS STORE, NOT Beyblade Arena: the official store carries SIX listings and every one is a prize draw, so eleven of its twelve tabs are genuinely empty. Beyblade Arena has stock in every single type, so it has no empty tab to find and the case cannot be performed there at all.",
58
- "Find one that lists nothing.",
59
- "Wait for it to finish loading before judging it.",
60
- "Read what it shows.",
61
- ],
62
- inputs: { store: "store-beyblade-arena" },
63
- expectedBehaviour: "An empty tab says it is empty. A spinner that never resolves and a blank panel both read as a failure, and an empty state is also how a genuinely broken query presents — so the wording should say what is absent rather than merely showing nothing.",
64
- expectedUiState: "A worded empty state. Not a permanent skeleton and not a blank area below the tab bar.",
65
- expectedData: { blankPanelFound: false },
66
- endResult: "Nothing is changed; this case only reads.",
67
- },
68
- "checklist-public-pages-store-tabs-tab-survives-a-reload": {
69
- roles: ["guest"],
70
- startPage: "/stores/store-beyblade-arena",
71
- steps: [
72
- "Open Beyblade Arena and switch to the Auctions tab.",
73
- "Copy the URL from the address bar.",
74
- "Reload the page.",
75
- "Note which tab is selected.",
76
- "Open the copied URL in a new tab and note which is selected there.",
77
- ],
78
- inputs: { store: "store-beyblade-arena" },
79
- expectedBehaviour: "The tab is in the URL, so a reload and a shared link both land on it. A tab held only in component state bounces to the default on reload, which makes the URL unshareable without any visible error.",
80
- expectedUiState: "Both the reload and the fresh tab land on Auctions.",
81
- expectedData: { tabAfterReload: "auctions" },
82
- endResult: "Nothing is changed; this case only reads.",
83
- },
84
- "checklist-public-pages-store-tabs-store-tabs-hide-other-stores-items": {
85
- roles: ["guest"],
86
- startPage: "/stores/store-letitrip-official",
87
- steps: [
88
- "Open /stores/store-letitrip-official — SIX listings, all of them prize draws, which is what makes a leak obvious: any card on any other tab belongs to someone else, and the Prize Draws tab should hold exactly six.",
89
- "Work through all twelve tabs and read the store name on each card: Products, Auctions, Pre-orders, Prize Draws, Classified, Digital Codes, Live, Art, Bundles, Coupons, Reviews, About.",
90
- "Note any card naming a different store.",
91
- "Open one card and confirm on its detail page which store it belongs to.",
92
- ],
93
- inputs: { store: "store-letitrip-official" },
94
- expectedBehaviour: "A store page is scoped to one store on every tab. A small catalogue is chosen on purpose: on a store with sixty listings a handful of foreign cards is easy to miss.",
95
- expectedUiState: "Every card on every tab names LetItRip Official.",
96
- expectedData: { foreignStoreCards: 0 },
97
- endResult: "Nothing is changed; this case only reads.",
98
- },
99
- "checklist-public-pages-store-tabs-coupons-tab-shows-this-stores-coupons": {
100
- roles: ["guest"],
101
- startPage: "/stores/store-beyblade-arena",
102
- steps: [
103
- "Open Beyblade Arena and open its Coupons tab.",
104
- "Write down every coupon code shown.",
105
- "Open /stores/store-letitrip-official and open its Coupons tab.",
106
- "Write down those codes.",
107
- "Compare the two lists.",
108
- ],
109
- inputs: { sellerCoupon: "ARENA25", otherStoreCoupon: "OFFICIAL10" },
110
- expectedBehaviour: "A store's coupons tab shows that store's own coupons. A seller coupon is scoped to one storeId and a platform coupon has none, so a tab that does not filter shows every seller's codes to every other seller's customers.",
111
- expectedUiState: "ARENA25 appears under Beyblade Arena and not under LetItRip Official. OFFICIAL10 appears under LetItRip Official and not under Beyblade Arena.",
112
- expectedData: { crossStoreCouponShown: false },
113
- endResult: "Nothing is changed; this case only reads.",
114
- },
115
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,253 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the public-pages/stores-sellers-directories page.
3
- * WHAT: 16 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
- * 🛑 SEVERAL CASES HERE HINGE ON A DISTINCTION THAT IS EASY TO LOSE: a tab's URL
10
- * segment and a listing type are DIFFERENT id spaces. Tab bars key on the URL
11
- * segment, filter chips key on the listing type, and conflating them either
12
- * breaks live URLs or silently returns zero rows. That is why the store tab cases
13
- * name the tab by its visible label and the URL by its path, never interchangeably.
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-public-pages-stores-sellers-directories-store-directory": {
24
- roles: ["guest"],
25
- startPage: "/stores",
26
- steps: [
27
- "Open /stores in a private window with no session.",
28
- "Read every store card — name, logo, verified badge and any rating.",
29
- "Note whether any card names a tester sandbox store.",
30
- "Use the status filter if one is offered, selecting each value in turn and reading the results.",
31
- "Click into 'Beyblade Arena'.",
32
- ],
33
- expectedBehaviour: "The directory lists public stores through a projection that names every field it emits. Sandbox stores are filtered out for signed-out visitors in the application layer — never by a Firestore inequality, which would exclude every document lacking the flag, i.e. all the real ones, and return only test data.",
34
- expectedUiState: "Real stores are listed with names, logos and verified badges. No card names a sandbox store. Any status filter offered changes which stores appear — the seed carries a pending and a suspended store precisely so those chips are not permanently empty.",
35
- expectedData: { sandboxStoresVisibleToGuest: 0 },
36
- endResult: "Read-only; nothing persists.",
37
- },
38
- "checklist-public-pages-stores-sellers-directories-store-detail-tabs": {
39
- roles: ["guest"],
40
- startPage: "/stores/store-beyblade-arena",
41
- steps: [
42
- "Open /stores/store-beyblade-arena in a private window with no session.",
43
- "Read the store header and the tab bar.",
44
- "Click each tab in turn and read the URL and the content.",
45
- "Open the browser's View Source and search for accessToken, wabaId, catalogId, adminNotes and customCommissionRate.",
46
- ],
47
- inputs: { storeId: "store-beyblade-arena" },
48
- expectedBehaviour: "Each tab is a real route whose URL segment is stable and bookmarkable. The page is built from a store projection, not from the raw document — four pages once passed the whole document into a client component behind a cast that has no runtime effect, publishing a decrypted WhatsApp token into the page HTML.",
49
- expectedUiState: "Every tab navigates to its own URL and renders content. None of the five secret field names appears anywhere in the page source, including the data payload embedded at the bottom of the HTML.",
50
- expectedData: { secretFieldsInHtml: 0 },
51
- endResult: "Read-only; nothing persists. A hit on any of those names is a leak regardless of how the page renders.",
52
- },
53
- "checklist-public-pages-stores-sellers-directories-category-tabs-every-type-renders": {
54
- roles: ["guest"],
55
- startPage: "/categories/category-beyblade-burst",
56
- steps: [
57
- "Open /categories/category-beyblade-burst in a private window with no session.",
58
- "Read every tab offered and write the list down.",
59
- "Click each tab in turn and read what renders beneath it.",
60
- "Write down any tab that opens to a blank panel.",
61
- ],
62
- expectedBehaviour: "Every tab that is OFFERED has a render branch behind it. The tab array and the panel that renders each type are two lists, and when one grows and the other does not, the extra tabs are clickable and open to nothing.",
63
- expectedUiState: "Each tab opens to either real content or a named empty state. Not one opens to a blank panel with no message. A tab that is silently dropped from the panel switch is the failure, and it looks exactly like a slow load.",
64
- expectedData: { blankPanelCount: 0 },
65
- endResult: "Read-only; nothing persists.",
66
- },
67
- "checklist-public-pages-stores-sellers-directories-brand-tabs-every-type-offered": {
68
- roles: ["guest"],
69
- startPage: "/brands/brand-beyblade",
70
- steps: [
71
- "Open /categories/category-beyblade-burst in a private window and write down every tab it offers.",
72
- "Open /brands/brand-beyblade and write down every tab it offers.",
73
- "Compare the two lists, ignoring the Stores tab which categories have and brands do not.",
74
- "Look specifically for Classifieds, Digital Codes, Live Items and Art & Stickers on the brand page.",
75
- ],
76
- expectedBehaviour: "A brand page offers the same listing-type tabs as a category page minus Stores. The two components are deliberate near-duplicates with different scoping, and four types were silently missing from one of them while present in the other.",
77
- expectedUiState: "Apart from Stores, the two tab lists match. Classifieds, Digital Codes, Live Items and Art & Stickers are all present on the brand page rather than quietly absent.",
78
- endResult: "Read-only; nothing persists. A missing tab is invisible unless the two pages are compared side by side, which is why both lists are written down.",
79
- },
80
- "checklist-public-pages-stores-sellers-directories-category-brand-tab-counts-match": {
81
- roles: ["guest"],
82
- startPage: "/categories/category-beyblade-burst",
83
- steps: [
84
- "Open /categories/category-beyblade-burst in a private window.",
85
- "Write down the count badge on every tab.",
86
- "Open each tab in turn and count the items it actually shows, paging to the end.",
87
- "Compare each pair.",
88
- "Repeat on /brands/brand-beyblade.",
89
- ],
90
- expectedBehaviour: "Counts come from one derivation over the same tab array, so a badge cannot describe a tab that no longer exists or miss one that does. A count that fails must come back as unknown rather than zero — failing to zero would hide a tab holding real stock on a transient error.",
91
- expectedUiState: "Every badge matches the number of items in its tab. A badge of zero on a tab that has items, or a populated badge over an empty tab, are both failures.",
92
- expectedData: { mismatchedBadgeCount: 0 },
93
- endResult: "Read-only; nothing persists.",
94
- },
95
- "checklist-public-pages-stores-sellers-directories-empty-tabs-hidden": {
96
- roles: ["guest"],
97
- startPage: "/stores/store-beyblade-arena",
98
- steps: [
99
- "Open /stores/store-beyblade-arena in a private window and write down every tab offered.",
100
- "Open each tab and note which are empty.",
101
- "Open /stores/store-letitrip-official — a store whose whole catalogue is prize draws — and write down its tabs.",
102
- "Compare the two stores' tab lists.",
103
- ],
104
- expectedBehaviour: "A tab is hidden when its count is genuinely zero, and shown when the count could not be computed. That distinction is the whole rule: a count map that does not cover an option returns undefined, which reads as unknown and keeps the tab — so an uncovered option is structurally unhideable while a covered one vanishes correctly.",
105
- expectedUiState: "Neither store shows a tab for a listing type it has none of. The two stores offer different tab sets, which is the proof that hiding is happening at all — identical tab bars on stores with different catalogues means nothing is being hidden.",
106
- endResult: "Read-only; nothing persists.",
107
- },
108
- "checklist-public-pages-stores-sellers-directories-store-art-stickers-tab-shows-items": {
109
- roles: ["guest"],
110
- startPage: "/stores/store-beyblade-arena/art",
111
- steps: [
112
- "Open /stores/store-beyblade-arena/art in a private window with no session.",
113
- "Read the grid and every card title.",
114
- "Check whether the items are art prints and sticker sheets rather than ordinary products.",
115
- "Read the availability tabs and click the middle one.",
116
- ],
117
- expectedBehaviour: "Art and stickers are real listing types with their own filter value. Adding a type to the union and to the plugin registry is not enough — it must also be in the repository's filter-alias map, and a type missing there makes the alias return an empty string that is then dropped, so the query runs with NO listing-type filter and returns everything.",
118
- expectedUiState: "The grid holds art prints and sticker sheets — 'Dranzer Phoenix Rising — Fan Art Poster' and similar — and not ordinary Beyblade products. It is not an empty grid. The middle availability tab shows the sold-out art fixture.",
119
- expectedData: { ordinaryProductsInArtTab: 0 },
120
- endResult: "Read-only; nothing persists. A grid full of ordinary products is the dropped-filter failure; an empty grid is a different one.",
121
- },
122
- "checklist-public-pages-stores-sellers-directories-store-tab-counts-match-contents": {
123
- roles: ["guest"],
124
- startPage: "/stores/store-beyblade-arena",
125
- steps: [
126
- "Open /stores/store-beyblade-arena in a private window.",
127
- "Write down the count badge on each of Products, Auctions, Pre-Orders, Prize Draws, Classifieds, Digital Codes, Live Items and Art & Stickers.",
128
- "Open each of those tabs and count the items, paging to the end of each.",
129
- "Compare each pair and note any mismatch.",
130
- ],
131
- expectedBehaviour: "Each badge is computed from the same query its tab runs, under the same availability scope. A badge counted without the availability filter over-reports by every sold or ended row.",
132
- expectedUiState: "All eight badges match their tab contents. A badge that counts sold-out items the Available tab then hides is the most likely mismatch and is still a mismatch.",
133
- expectedData: { mismatchedBadgeCount: 0 },
134
- endResult: "Read-only; nothing persists.",
135
- },
136
- "checklist-public-pages-stores-sellers-directories-store-tab-sort-survives-reload": {
137
- roles: ["guest"],
138
- startPage: "/stores/store-beyblade-arena/auctions",
139
- steps: [
140
- "Open /stores/store-beyblade-arena/auctions in a private window.",
141
- "Read the sort dropdown's selection and the order of the cards.",
142
- "Change the sort to a different option.",
143
- "Read the new card order and the URL.",
144
- "Reload the page.",
145
- "Read the sort dropdown's selection and the card order again, before touching anything.",
146
- ],
147
- expectedBehaviour: "Sort lives in the URL, so the server's first paint and the dropdown agree. When the server renders a default the client does not share, the first paint shows one order and the dropdown claims another — and because the client caches the server's data indefinitely, the disagreement never resolves itself.",
148
- expectedUiState: "After the reload the dropdown shows the chosen sort AND the cards are in that order on first paint — not the default order that then re-sorts a moment later.",
149
- endResult: "Read-only; nothing persists beyond the URL.",
150
- },
151
- "checklist-public-pages-stores-sellers-directories-store-preorders-tab-default-sort": {
152
- roles: ["guest"],
153
- startPage: "/stores/store-beyblade-arena/pre-orders",
154
- steps: [
155
- "Open /pre-orders in a private window and read the sort dropdown's default selection.",
156
- "Open /stores/store-beyblade-arena/pre-orders and read its sort dropdown's default selection.",
157
- "Compare the two.",
158
- "Read the delivery dates on the store tab's cards from the top down.",
159
- ],
160
- expectedBehaviour: "Both surfaces derive their sort options and default from the listing type's own plugin, so they cannot disagree. Store tabs once carried local shadow copies of the sort array which had drifted in both labels and default, so the same data opened newest-first in one place and earliest-delivery-first in the other.",
161
- expectedUiState: "Both dropdowns show earliest-delivery-first. The store tab's dates ascend down the page. Two different defaults for the same listing type is the failure.",
162
- endResult: "Read-only; nothing persists.",
163
- },
164
- "checklist-public-pages-stores-sellers-directories-store-classified-live-facets-filter": {
165
- roles: ["guest"],
166
- startPage: "/stores/store-beyblade-arena/classified",
167
- steps: [
168
- "Open /stores/store-beyblade-arena/classified in a private window and read the result count.",
169
- "Open the filters and select the city Mumbai, then apply.",
170
- "Read the result count and each card's city.",
171
- "Clear that, tick 'negotiable', apply, and read the count.",
172
- "Clear that, tick 'accepts shipping', apply, and read the count.",
173
- "Open the store's Live Items tab and repeat with the species, sex and jurisdiction facets.",
174
- ],
175
- inputs: { city: "Mumbai" },
176
- expectedBehaviour: "Per-type facets reach the query. A facet can render, count toward the filter badge and change nothing at all — that happens when it emits a field the query allowlist does not carry, or carries a field the document does not have, and neither failure raises anything.",
177
- expectedUiState: "Every facet visibly changes the result count and the cards shown. Selecting Mumbai leaves only Mumbai listings. A facet that leaves the count identical while the filter badge increments is the exact failure.",
178
- expectedData: { inertFacetCount: 0 },
179
- endResult: "Read-only; nothing persists beyond the URL.",
180
- },
181
- "checklist-public-pages-stores-sellers-directories-store-tab-empty-state-not-error": {
182
- roles: ["guest"],
183
- startPage: "/stores/store-letitrip-official",
184
- steps: [
185
- "Open /stores/store-letitrip-official in a private window with no session. 🛑 NOT store-vintage-vault-co, which this case used to name: that store is SUSPENDED with isPublic false, and getStoreBySlug returns null unless status is ACTIVE and isPublic is true — so its public page calls notFound(). A tester would meet a 404 and have to judge an empty state on a page that does not exist.",
186
- "Open every tab offered and find one that is genuinely empty. This store carries SIX listings, all prize draws, so eleven of its twelve tabs are empty and one is not — which gives both halves of the comparison.",
187
- "Read exactly what is shown in that empty tab.",
188
- "Wait 10 seconds and read it again.",
189
- "Check for any error toast anywhere on the page.",
190
- ],
191
- expectedBehaviour: "An empty tab shows a named empty state. The two failure modes to separate are a spinner that never resolves — which is what a data fetch that neither succeeds nor reports failure looks like — and a missing-index error surfaced as a toast, which is a real backend fault dressed as a UI hiccup.",
192
- expectedUiState: "The empty tab shows a friendly message inside the normal layout. Not a blank white area, not a spinner still turning after 10 seconds, and no toast mentioning an index or a failed precondition.",
193
- endResult: "Read-only; nothing persists.",
194
- },
195
- "checklist-public-pages-stores-sellers-directories-sellers-directory": {
196
- roles: ["guest"],
197
- startPage: "/sellers",
198
- steps: [
199
- "Open /sellers in a private window with no session.",
200
- "Read every seller card — name, avatar and any stats.",
201
- "Search the page source for an email address and for a phone number.",
202
- "Click into one seller and read where it lands.",
203
- ],
204
- expectedBehaviour: "The directory lists sellers with public-facing detail only. Email and phone are PII-encrypted at rest and have no place on a public directory in any form.",
205
- expectedUiState: "Cards render with names and avatars. Neither the rendered page nor its source contains an email address or a phone number. Each card links to a real seller page rather than a 404.",
206
- expectedData: { piiInSource: 0 },
207
- endResult: "Read-only; nothing persists.",
208
- },
209
- "checklist-public-pages-stores-sellers-directories-seller-detail-page": {
210
- roles: ["guest"],
211
- startPage: "/stores/store-beyblade-arena",
212
- steps: [
213
- "Open /stores/store-beyblade-arena in a private window.",
214
- "Read the header, the tabs and the listings.",
215
- "Open the store's own listing-type dropdown, if it offers one, and select each option in turn.",
216
- "Note any option that returns nothing.",
217
- ],
218
- inputs: { storeId: "store-beyblade-arena" },
219
- expectedBehaviour: "This store carries standard products, auctions, pre-orders, classifieds, digital codes, live items, art and stickers — every type except prize draws, which all belong to store-letitrip-official. So the dropdown must offer the eight it has and not the one it does not: an option for an absent type silently returns nothing, which reads as a broken query rather than an empty catalogue.",
220
- expectedUiState: "The page renders with its header and tabs. Every option the listing-type dropdown offers returns at least one item, and Prize Draws is not offered. An offered option that returns nothing means either the type is absent from this store or it is being dropped from the query.",
221
- expectedData: { emptyTypeOptionCount: 0 },
222
- endResult: "Read-only; nothing persists.",
223
- },
224
- "checklist-public-pages-stores-sellers-directories-scams-registry": {
225
- roles: ["guest"],
226
- startPage: "/scams",
227
- steps: [
228
- "Open /scams in a private window with no session.",
229
- "Read the list and the filters offered.",
230
- "Select each status filter value in turn and read the results.",
231
- "Open one scammer profile and read its fields.",
232
- "Search that page's source for any unmasked full phone number or email.",
233
- ],
234
- expectedBehaviour: "The registry lists reported profiles with filters whose values match the real stored status set. A filter chip whose value is not a real stored status returns zero rows forever with no error — the comparison is byte-exact, so a wrong word or wrong case is a permanently empty chip.",
235
- expectedUiState: "Every status filter value returns rows or a named empty state, and at least one returns rows. The profile page shows the report detail. Identifiers are masked rather than published in full.",
236
- endResult: "Read-only; nothing persists.",
237
- },
238
- "checklist-public-pages-stores-sellers-directories-scam-related-profiles-sections": {
239
- roles: ["guest"],
240
- startPage: "/scams",
241
- steps: [
242
- "Open /scams in a private window and open a scammer profile that has cross-links.",
243
- "Find the 'Related Profiles' section and read its entries.",
244
- "Find the separately-labelled 'Similar Scam Reports' section and read its entries.",
245
- "Check that the two sections are distinct and separately headed.",
246
- "Check whether the current profile appears in either.",
247
- ],
248
- expectedBehaviour: "Same-identity cross-links and same-pattern matches are two different claims and must never be merged. 'Related Profiles' asserts these are the same person; 'Similar Scam Reports' asserts only that the reports share a scam type. Presenting the second as the first accuses someone of being a person they are not.",
249
- expectedUiState: "Two sections with distinct headings. Related Profiles holds only explicit cross-links; Similar Scam Reports holds same-type matches. Neither includes the profile currently open.",
250
- expectedData: { selfLinkCount: 0 },
251
- endResult: "Read-only; nothing persists. One merged section is the failure even if every entry in it is individually correct.",
252
- },
253
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,93 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the search-and-nav/employee-permissions page.
3
- * WHAT: 2 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 SEED ALREADY HAS BOTH EMPLOYEE PERSONAS — user-employee-blog carries the
10
- * blog_poster permission and user-employee-trust carries trust_and_safety. Neither
11
- * case needs to invite anyone; signing in as them is the whole setup. The `users`
12
- * collection is PRESERVED by a tester run, so they survive teardown, but a fresh
13
- * project needs `npx appkit-seed load --collections users` once before they exist.
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
- /*
23
- * Measured on 2026-09-29 with `node scripts/diff-employee-sidebar.mjs`, which
24
- * exists for exactly this and computes what every preset sees:
25
- *
26
- * total 90 items across 12 groups (the case said 91)
27
- * blog_poster sees 5
28
- * trust_and_safety sees 24
29
- * maintenance_employee sees 77 (the most permissive preset)
30
- * 20 presets in all, and the SMALLEST is 5
31
- *
32
- * The nine groups the first case names as vanishing for the blog employee are
33
- * exactly the nine the script reports: Finance, Procurement, Catalog, Testing,
34
- * Site, Events, Trust & Safety, System, Maintenance. That is a strong
35
- * confirmation, so the case is kept as written apart from the count.
36
- *
37
- * 🛑 THE SECOND CASE ASKED FOR 20 SIGN-IN CYCLES to prove something the repo
38
- * already computes. Setting each preset as admin, signing in as the employee
39
- * and counting, twenty times over, is most of a session; and the answer is in
40
- * the script above, where the smallest preset is 5 and no preset reaches zero.
41
- * It now checks two presets by hand and defers the sweep to the script, which
42
- * is the difference between a case a tester will run and one they will skip.
43
- *
44
- * Two things the script itself reports and neither case mentioned:
45
- *
46
- * — 45 distinct preset permissions gate NO sidebar entry at all; they gate
47
- * routes and actions instead. So a preset can differ from another in
48
- * permissions and not differ in sidebar count, and identical counts
49
- * between two presets are not automatically the bug.
50
- * — An employee with hand-picked `permissions[]` rather than a preset is NOT
51
- * covered by any of this. That is a real coverage gap, recorded here
52
- * rather than silently left out.
53
- */
54
- export const authored = {
55
- "checklist-search-and-nav-employee-permissions-employee-sees-only-their-permissions": {
56
- roles: ["employee", "admin"],
57
- startPage: "/admin",
58
- steps: [
59
- "Sign in as employee-blog@letitrip.in / TempPass123!.",
60
- "Open /admin and count every entry in the sidebar.",
61
- "Read every group heading that is present.",
62
- "Look specifically for Finance, Procurement, Catalog, Testing, Site, Events, Trust & Safety, System and Maintenance.",
63
- "Sign out and sign in as employee-trust@letitrip.in / TempPass123!.",
64
- "Open /admin and count the sidebar entries again.",
65
- "Sign out and sign in as admin@letitrip.in / TempPass123!, then open /admin and count the entries.",
66
- ],
67
- inputs: { blogEmployee: "employee-blog@letitrip.in", trustEmployee: "employee-trust@letitrip.in" },
68
- expectedBehaviour: "Nav filtering keys on each item's own id to look up its required permission. `filterNavItems` opens with `if (!item.id) return true;` and no item in the config had one — so all 90 entries passed for everybody and every requiredPermission was decorative. A group left with no visible children is removed entirely rather than rendering an empty heading.",
69
- expectedUiState: "The blog employee sees FIVE entries, not 90. Finance, Procurement, Catalog, Testing, Site, Events, Trust & Safety and System and Maintenance are absent as HEADINGS, not present-and-empty. The trust employee sees 24. The admin sees all 90 across 12 groups. Three genuinely different counts is the pass; three identical counts is the exact bug — and 90 for all three is the specific bug this replaced.",
70
- expectedData: { blogEntries: 5, trustEntries: 24, adminEntries: 90, adminGroups: 12 },
71
- endResult: "Read-only; nothing persists. Comparing two presets against each other AND against admin is what distinguishes real filtering from a filter that happens to hide the same fixed set from everyone.",
72
- },
73
- "checklist-search-and-nav-employee-permissions-employee-sidebar-never-empty": {
74
- roles: ["admin", "employee"],
75
- startPage: "/admin/team",
76
- steps: [
77
- "Sign in as admin@letitrip.in / TempPass123!.",
78
- "Open /admin/team and open the editor for employee-blog@letitrip.in.",
79
- "Read every permission preset the editor offers and count them — there are 20.",
80
- "Set the account to blog_poster, the smallest preset, and save.",
81
- "Sign out, sign in as employee-blog@letitrip.in / TempPass123!, open /admin and count the sidebar entries.",
82
- "Sign back in as admin, set the account to maintenance_employee, the most permissive preset, and save.",
83
- "Sign in as the employee again and count the entries.",
84
- "Sign back in as admin and set the account back to blog_poster as the last step.",
85
- "For the remaining 18 presets, run `node scripts/diff-employee-sidebar.mjs` rather than signing in 18 more times — it computes every preset's count from the same config the sidebar reads.",
86
- ],
87
- inputs: { employee: "employee-blog@letitrip.in" },
88
- expectedBehaviour: "No preset produces a completely blank sidebar. At minimum every employee reaches the dashboard itself, so the portal is navigable from the moment they sign in. Measured: the smallest of the 20 presets is blog_poster at 5 entries and the largest is maintenance_employee at 77, so the floor is well clear of zero.",
89
- expectedUiState: "Both presets checked by hand show entries — 5 for blog_poster and 77 for maintenance_employee — and the script reports no preset below 5. A blank sidebar is the failure: an employee cannot tell it from a broken account and will report it as one, which is a support ticket the permission system caused rather than prevented.",
90
- expectedData: { blogPosterEntries: 5, maintenanceEmployeeEntries: 77, presetCount: 20 },
91
- endResult: "The account is back on blog_poster, which the case above depends on. Leaving it on another preset silently breaks that case's expected count of exactly 5.",
92
- },
93
- };
@@ -1,3 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
3
- export declare const authoredIndexEra: Record<string, AuthoredCase>;