@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,329 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the account-auth/signup-login checklist page.
3
- * WHAT: 15 case(s), keyed by full checklist id.
4
- *
5
- * Written by hand, case by case, against the label each one states. There is no
6
- * generator: the authoring scripts were deleted once it was clear they were
7
- * scaffolding around work that is simply writing.
8
- *
9
- * 🛑 TWO CASES HERE CHANGE A PASSWORD, and each owns a persona nothing else uses —
10
- * `password-reset` has neha.op@gmail.com, `auth-email-links-single-use` has
11
- * divya.funko@gmail.com. `seed-cli` sets `TempPass123!` only when it CREATES an
12
- * Auth record and never resets an existing one, so a changed password outlives
13
- * every future re-seed. Both cases restore it in their last step. They used to
14
- * point at vivaan.kapoor@gmail.com, which four other authored pages sign in as.
15
- *
16
- * 🛑 THE GOOGLE CASES NEED REAL GOOGLE CREDENTIALS and cannot be seeded — a
17
- * provider link lives in Firebase Auth, not Firestore. They are NOT flagged
18
- * `needsReview`: their intent is perfectly clear, and a case that cannot be
19
- * reached is a `null` verdict at run time, not an authoring doubt. Confusing the
20
- * two hides the unwritten cases inside the unanswerable ones.
21
- *
22
- * @tag domain:tester
23
- * @tag layer:seed
24
- * @tag pattern:none
25
- * @tag access:server-only
26
- * @tag consumers:seed-data/authored/index.ts
27
- * @tag sideEffects:none
28
- */
29
- export const authored = {
30
- "checklist-account-auth-signup-login-auth-email-links-single-use": {
31
- roles: ["guest"],
32
- startPage: "/auth/forgot-password",
33
- steps: [
34
- "Open /auth/forgot-password.",
35
- "Type divya.funko@gmail.com in the 'Email address' field.",
36
- "Click 'Send reset link'.",
37
- "Open the inbox for divya.funko@gmail.com and copy the reset link URL out of the email before opening it.",
38
- "Open the copied URL, type QaSingleUse789! as the new password, confirm it, and submit.",
39
- "Open the same copied URL a second time.",
40
- "Register a fresh account at /auth/register using an inbox you can open, then open its verification link once, and then open that same link a second time.",
41
- "Open /auth/forgot-password, request a link for divya.funko@gmail.com again, and use it to set the password back to TempPass123!.",
42
- ],
43
- inputs: {
44
- email: "divya.funko@gmail.com",
45
- newPassword: "QaSingleUse789!",
46
- restoredPassword: "TempPass123!",
47
- },
48
- expectedBehaviour: "The action code in each link is one-time. The second open is refused by Firebase and the site turns that refusal into readable English with a way to get a fresh link. No second password change is applied and no second verification is recorded.",
49
- expectedUiState: "On the second open of the reset link: a message in the shape of 'This link has already been used or has expired', plus a control to request a new one. Not a blank page, not a raw 'auth/invalid-action-code', not a stack trace, and not a working password form. The second open of the verification link reads the same way.",
50
- expectedData: { passwordChangesApplied: 1 },
51
- endResult: "Account state after the second click is identical to after the first. divya.funko@gmail.com is back on TempPass123! by the final step — skipping that restore leaves the account unusable by every later case, since the seeder never resets an existing password.",
52
- },
53
- "checklist-account-auth-signup-login-auth-emails-sender-identity-and-inbox": {
54
- roles: ["guest"],
55
- startPage: "/auth/register",
56
- steps: [
57
- "Open /auth/register.",
58
- "Type QA Sender Test in 'Full name', a real Gmail address you can open in 'Email address', TestPass123! in both password fields, tick the terms checkbox, and click 'Create account'.",
59
- "Open that Gmail inbox, checking the Spam and Promotions tabs as well, and find the verification email.",
60
- "Read its From name and From address, and open the link inside it.",
61
- "Open /auth/forgot-password, type the same Gmail address, and click 'Send reset link'.",
62
- "Open the Gmail inbox again, find the password-reset email, and read its From name and From address.",
63
- "Repeat both flows with a non-Gmail address if one is available, and check that inbox the same way.",
64
- ],
65
- inputs: { fullName: "QA Sender Test", password: "TestPass123!" },
66
- expectedBehaviour: "Both emails are delivered to the inbox within a few minutes, from the site's own configured sender. The links inside resolve to the live site and complete their flows rather than 404ing or landing on a Firebase-hosted page the site does not control.",
67
- expectedUiState: "The From display name is spelled 'LetItRip' exactly — not 'Letitrip', not 'LetiTrip', not 'letitrip.in'. Both messages sit in the Primary inbox, not Spam or Promotions. Clicking through opens letitrip.in and the flow finishes.",
68
- expectedData: { senderDisplayName: "LetItRip" },
69
- endResult: "Verification marks the new account verified and the reset link changes its password. If Gmail and non-Gmail were both tried, note in the comment whether delivery differed — that difference is the point of testing two providers.",
70
- },
71
- "checklist-account-auth-signup-login-email-signup": {
72
- roles: ["guest"],
73
- startPage: "/auth/register",
74
- steps: [
75
- "Open /auth/register.",
76
- "Type QA Signup Tester in the 'Full name' field.",
77
- /*
78
- * 🛑 SUBSTITUTE THE RUN ID — this is the one input in the catalogue that
79
- * is deliberately not literal.
80
- *
81
- * `users` is PRESERVE tier: it survives every catalogue wipe, so an
82
- * account created here is permanent and the harness cannot clean it up.
83
- * The previous instruction ("increment the number if it already exists")
84
- * made that explicit and unbounded — one more dead account per run,
85
- * forever.
86
- *
87
- * A run-stamped address under `letitrip-qa.test` fixes both halves:
88
- * the address is unique per run so signup never collides, and
89
- * `.test` is an RFC 2606 reserved TLD that can never be registered and
90
- * can never receive mail — so no real person can ever hold one, which is
91
- * what makes `tester/scripts/purge-qa-signups.mjs` safe to point at the
92
- * PRESERVE tier at all.
93
- *
94
- * Run that purge after the run to remove exactly these accounts.
95
- */
96
- "Type qa-signup+<runId>@letitrip-qa.test in the 'Email address' field, substituting the current run id — e.g. qa-signup+run-1789483929743@letitrip-qa.test.",
97
- "Type TestPass123! in the 'Password' field.",
98
- "Type TestPass123! in the 'Confirm password' field.",
99
- "Tick the 'I accept the terms' checkbox.",
100
- "Click 'Create account'.",
101
- "Open /user.",
102
- ],
103
- inputs: {
104
- fullName: "QA Signup Tester",
105
- email: "qa-signup+<runId>@letitrip-qa.test",
106
- password: "TestPass123!",
107
- },
108
- expectedBehaviour: "A Firebase Auth record and a matching Firestore user document are created, keyed on the Auth uid rather than on a generated user-* slug. A verification email is dispatched. The browser is signed in and moved off /auth/register.",
109
- expectedUiState: "The address bar leaves /auth/register for / or /user, and the header shows a signed-in avatar with no 'Sign in' link. Submitting the same address a second time is refused with a readable 'email already in use' message, not a duplicate account.",
110
- expectedData: { displayName: "QA Signup Tester" },
111
- endResult: "Reloading /user shows 'QA Signup Tester' and the address used. The account persists — this case creates a real row that a later teardown does not remove, which is why the address is numbered rather than fixed.",
112
- },
113
- "checklist-account-auth-signup-login-email-verify": {
114
- roles: ["guest"],
115
- startPage: "/auth/register",
116
- steps: [
117
- "Open /auth/register and create an account with an inbox you can open, using TestPass123! as the password.",
118
- "Open the inbox and find the verification email from Firebase.",
119
- "Open the verification link in the email.",
120
- "Open /auth/login and sign in with that account.",
121
- "Open /user.",
122
- ],
123
- inputs: { password: "TestPass123!" },
124
- expectedBehaviour: "Following the link flips the account's emailVerified flag in Firebase Auth, and the site reads that flag rather than a separate copy of its own. The verified state survives sign-out and sign-in.",
125
- expectedUiState: "The link lands on a confirmation page. After signing in, /user carries no 'Your email is not verified' banner and no prompt to resend the verification email.",
126
- expectedData: { emailVerified: true },
127
- endResult: "Reloading /user still shows no verification warning. An account that reads as unverified after a successful link click is the failure this case catches.",
128
- },
129
- "checklist-account-auth-signup-login-forgot-password-no-account-enumeration": {
130
- roles: ["guest"],
131
- startPage: "/auth/forgot-password",
132
- steps: [
133
- "Open /auth/forgot-password.",
134
- "Type nobody-here-12345@example.com in the 'Email address' field.",
135
- "Click 'Send reset link'.",
136
- "Read the resulting message and note its exact wording.",
137
- "Reload /auth/forgot-password, type rehan.sheikh@gmail.com, and click 'Send reset link'.",
138
- "Read that message and compare the two word for word.",
139
- ],
140
- inputs: { unknownEmail: "nobody-here-12345@example.com", knownEmail: "rehan.sheikh@gmail.com" },
141
- expectedBehaviour: "The browser calls Firebase directly, so it is the client that must swallow auth/user-not-found. Both submissions produce the identical generic response; nothing in the message, the timing or an error toast distinguishes an address that has an account from one that does not.",
142
- expectedUiState: "Both attempts show the same text — 'If an account exists for that email, a reset link is on its way.' or equivalent. The unknown address produces no red toast, no 'user not found', no field-level error, and no different button state.",
143
- endResult: "No email arrives for nobody-here-12345@example.com. The two on-screen responses were indistinguishable, which is the whole point — a difference of any kind is an account-enumeration leak.",
144
- },
145
- "checklist-account-auth-signup-login-google-link-confirmation-shown": {
146
- requiresHumanChannel: true,
147
- humanChannelReason: "interactive Google account",
148
- roles: ["buyer"],
149
- startPage: "/user",
150
- steps: [
151
- "Sign in as an account that already has Google linked — or link one first through /user/settings > 'Linked Accounts' > 'Connect Google'.",
152
- "Open /user.",
153
- "Read the alert area near the top of the dashboard.",
154
- "Reload the page.",
155
- ],
156
- expectedBehaviour: "The dashboard handles the linked case explicitly, not just by omitting the unlinked prompt. Before this was fixed the whole alert block disappeared once linked, so a user had no confirmation on /user at all — only Settings showed a Connected badge.",
157
- expectedUiState: "A green confirmation alert reading 'Google account connected', carrying a Connected badge and the linked Google email address. The blue 'Connect your Google account' prompt is absent. An empty space where the alert used to be is a fail, not a pass.",
158
- endResult: "After reload the green confirmation is still there and the blue prompt has not returned. Needs a Google account to reach — answer null with that reason rather than guessing if none is available.",
159
- },
160
- "checklist-account-auth-signup-login-google-link-conflict-rejected": {
161
- requiresHumanChannel: true,
162
- humanChannelReason: "interactive Google account",
163
- roles: ["buyer"],
164
- startPage: "/user/settings",
165
- steps: [
166
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
167
- "Open /user/settings, expand 'Linked Accounts', click 'Connect Google', and complete the popup with a Google account G.",
168
- "Sign out.",
169
- "Sign in as vivaan.kapoor@gmail.com / TempPass123!.",
170
- "Open /user/settings.",
171
- "Expand the 'Linked Accounts' accordion.",
172
- "Click 'Connect Google'.",
173
- "Select the same Google account G in the popup and complete the flow.",
174
- "Reload /user/settings and expand 'Linked Accounts'.",
175
- ],
176
- inputs: { accountA: "vivaan.kapoor@gmail.com", accountB: "rehan.sheikh@gmail.com" },
177
- expectedBehaviour: "The second link is refused because G already belongs to rehan.sheikh@gmail.com. Neither account is modified: the two are not merged, and G's email is not moved from one to the other. A silent merge here would join two people's orders, addresses and wishlists.",
178
- expectedUiState: "A readable error in the shape of 'This Google account is already linked to another account'. vivaan.kapoor@gmail.com still shows a 'Connect Google' button, not a Connected badge.",
179
- endResult: "After reload vivaan.kapoor@gmail.com has no Google link and rehan.sheikh@gmail.com still has G. Unlink G from rehan.sheikh@gmail.com afterwards. Needs a real Google account — answer null if none is available.",
180
- },
181
- "checklist-account-auth-signup-login-google-link-different-email": {
182
- requiresHumanChannel: true,
183
- humanChannelReason: "interactive Google account",
184
- roles: ["buyer"],
185
- startPage: "/user/settings",
186
- steps: [
187
- "Sign in as vivaan.kapoor@gmail.com / TempPass123!.",
188
- "Open /user/settings.",
189
- "Expand the 'Linked Accounts' accordion.",
190
- "Click 'Connect Google'.",
191
- "Select a Google account whose email is NOT vivaan.kapoor@gmail.com, and complete the popup.",
192
- "Reload /user/settings and expand 'Linked Accounts'.",
193
- "Sign out, open /auth/login, and click 'Sign in with Google' choosing that same Google account.",
194
- ],
195
- inputs: { primaryEmail: "vivaan.kapoor@gmail.com" },
196
- expectedBehaviour: "Linking a differently-addressed Google account requires this explicit button press — it never happens as a side effect of merely signing in with Google. One account now answers to two emails; a second account is not created. The primary login email is unchanged.",
197
- expectedUiState: "'Linked Accounts' shows Google as Connected and displays the OTHER email. The account's own email elsewhere in Settings still reads vivaan.kapoor@gmail.com. Signing in with that Google account afterwards lands in this same account, with its existing orders and wishlist.",
198
- expectedData: { primaryEmail: "vivaan.kapoor@gmail.com" },
199
- endResult: "After reload the link persists and the primary email is still vivaan.kapoor@gmail.com. Unlink afterwards. Needs a second Google account — answer null if none is available.",
200
- },
201
- "checklist-account-auth-signup-login-google-link-existing": {
202
- requiresHumanChannel: true,
203
- humanChannelReason: "interactive Google account",
204
- roles: ["guest"],
205
- startPage: "/auth/register",
206
- steps: [
207
- "Open /auth/register.",
208
- "Type QA Google Merge in 'Full name', the email address of a Google account you control in 'Email address', TestPass123! in both password fields, tick the terms checkbox, and click 'Create account'.",
209
- "Add any product to the wishlist so the account has something identifying in it.",
210
- "Sign out.",
211
- "Open /auth/login.",
212
- "Click 'Sign in with Google'.",
213
- "Select that same Google account in the popup and complete it.",
214
- "Open /wishlist.",
215
- "Open /user/settings and expand 'Linked Accounts'.",
216
- ],
217
- inputs: { fullName: "QA Google Merge", password: "TestPass123!" },
218
- expectedBehaviour: "Because the Google email matches an existing password account exactly, the sign-in resolves to that same account automatically — no duplicate, and no explicit linking step asked of the user. Google is recorded as connected as a side effect.",
219
- expectedUiState: "No 'create account' step appears after the popup. The header shows 'QA Google Merge', and /wishlist still holds the item added before signing out — the proof it is the same account and not a fresh one wearing the same email. 'Linked Accounts' shows Google Connected.",
220
- expectedData: { displayName: "QA Google Merge" },
221
- endResult: "One account exists for that email, not two, and it kept its wishlist. Needs a Google account whose address you can also register with — answer null if none is available.",
222
- },
223
- "checklist-account-auth-signup-login-google-oauth": {
224
- requiresHumanChannel: true,
225
- humanChannelReason: "interactive Google account",
226
- roles: ["guest"],
227
- startPage: "/auth/login",
228
- steps: [
229
- "Open /auth/login.",
230
- "Click 'Sign in with Google'.",
231
- "Complete the Google popup by choosing an account.",
232
- "Wait for the popup to close and the site to respond.",
233
- "Open /user.",
234
- ],
235
- expectedBehaviour: "The popup opens, Google authenticates, the popup closes, and the site establishes its own session cookie from the returned credential. An account is created if the email is new, or signed into if it already exists.",
236
- expectedUiState: "The address bar leaves /auth/login. The header shows a signed-in avatar and no 'Sign in' link. No error toast, and no popup left hanging open after authentication.",
237
- endResult: "Reloading /user keeps the session. Needs a Google account — answer null with that reason if none is available.",
238
- },
239
- "checklist-account-auth-signup-login-google-popup-blocked-fallback": {
240
- requiresHumanChannel: true,
241
- humanChannelReason: "interactive Google account",
242
- roles: ["guest"],
243
- startPage: "/auth/login",
244
- steps: [
245
- "Set the browser to block popups for letitrip.in.",
246
- "Open /auth/login.",
247
- "Click 'Sign in with Google'.",
248
- "Leave the blocked-popup notification alone without unblocking it.",
249
- "Wait up to 30 seconds and watch the page.",
250
- "Open /user.",
251
- ],
252
- expectedBehaviour: "The site notices the popup never opened and falls back — either to a full-page redirect flow, or to the RTDB signal plus postMessage path — and completes sign-in without asking the user to change browser settings.",
253
- expectedUiState: "Within 30 seconds the page reaches a signed-in state: avatar in the header, no 'Sign in' link. What must NOT happen is a button stuck in a loading state forever, or an error toast telling the user to allow popups and nothing else.",
254
- endResult: "Reloading /user keeps the session. Needs a Google account plus popup blocking — answer null if either is unavailable.",
255
- },
256
- "checklist-account-auth-signup-login-login": {
257
- roles: ["guest"],
258
- startPage: "/auth/login",
259
- steps: [
260
- "Open /auth/login.",
261
- "Type vivaan.kapoor@gmail.com in the 'Email address' field.",
262
- "Type TempPass123! in the 'Password' field.",
263
- "Click 'Sign in'.",
264
- "Open /user.",
265
- ],
266
- inputs: { email: "vivaan.kapoor@gmail.com", password: "TempPass123!" },
267
- expectedBehaviour: "Firebase validates the credential, the site exchanges it for its own __session cookie, and the browser is moved off /auth/login. A wrong password is refused with a readable message rather than a raw Firebase code.",
268
- expectedUiState: "The address bar leaves /auth/login for / or /user, and the header shows the avatar for Vivaan Kapoor. No error toast.",
269
- expectedData: { signedInUid: "user-seto-kaiba" },
270
- endResult: "Reloading /user keeps the session as user-seto-kaiba. Every seeded account uses TempPass123!, so no separate credential lookup is needed.",
271
- },
272
- "checklist-account-auth-signup-login-logout": {
273
- roles: ["buyer"],
274
- startPage: "/user",
275
- steps: [
276
- "Sign in as vivaan.kapoor@gmail.com / TempPass123!.",
277
- "Open /user.",
278
- "Click 'Log out' in the sidebar.",
279
- "Open /user again.",
280
- ],
281
- expectedBehaviour: "Both halves of the session end: the server __session cookie is cleared and the Firebase client session is revoked. Clearing only one leaves the browser able to re-mint a session on the next request, which is what makes the second navigation the real check.",
282
- expectedUiState: "After Log out the page redirects and the header shows the signed-out state. Opening /user afterwards redirects to /auth/login rather than rendering the dashboard, even briefly with real data in it.",
283
- expectedData: { redirectTarget: "/auth/login" },
284
- endResult: "Navigating to /user lands on /auth/login and no data for Vivaan Kapoor is rendered at any point. A back-button press does not restore the dashboard.",
285
- },
286
- "checklist-account-auth-signup-login-password-reset": {
287
- roles: ["guest"],
288
- startPage: "/auth/login",
289
- steps: [
290
- "Open /auth/login.",
291
- "Click 'Forgot password?'.",
292
- "Type neha.op@gmail.com in the 'Email address' field.",
293
- "Click 'Send reset link'.",
294
- "Open the inbox for neha.op@gmail.com and open the reset link.",
295
- "Type QaReset321! as the new password, confirm it, and submit.",
296
- "Open /auth/login, type neha.op@gmail.com and TempPass123!, and click 'Sign in'.",
297
- "Type neha.op@gmail.com and QaReset321! instead, and click 'Sign in'.",
298
- "Request another reset link for neha.op@gmail.com and use it to set the password back to TempPass123!.",
299
- ],
300
- inputs: {
301
- email: "neha.op@gmail.com",
302
- newPassword: "QaReset321!",
303
- restoredPassword: "TempPass123!",
304
- },
305
- expectedBehaviour: "The reset email arrives, its link opens a set-password form, and the submitted password replaces the old one in Firebase Auth. The old password stops working at that moment — a reset that leaves both passwords valid is the failure worth catching.",
306
- expectedUiState: "'Send reset link' produces the generic 'If an account exists for that email…' message. Signing in with TempPass123! after the reset is refused with a readable error; signing in with QaReset321! succeeds and lands on the dashboard.",
307
- endResult: "The password is back at TempPass123! by the final step. That restore is mandatory: the seeder never resets an existing password, so skipping it leaves this account permanently signed out of every later case.",
308
- },
309
- "checklist-account-auth-signup-login-signup-verification-email-arrives": {
310
- roles: ["guest"],
311
- startPage: "/auth/register",
312
- steps: [
313
- "Open /auth/register.",
314
- "Type QA Verify Tester in the 'Full name' field.",
315
- "Type a real inbox address you can open in the 'Email address' field.",
316
- "Type TestPass123! in the 'Password' field.",
317
- "Type TestPass123! in the 'Confirm password' field.",
318
- "Tick the 'I accept the terms' checkbox.",
319
- "Click 'Create account'.",
320
- "Open that inbox, checking Spam as well, and wait up to five minutes.",
321
- "Open the verification link in the email.",
322
- ],
323
- inputs: { fullName: "QA Verify Tester", password: "TestPass123!" },
324
- expectedBehaviour: "Firebase's client SDK sends the verification mail directly, so it carries Firebase's own template and sender rather than the branded LetItRip one. The link resolves to the live site and marks the account verified. The on-screen 'check your email' message is not the thing being tested — the arrival is.",
325
- expectedUiState: "An email is present in the inbox within a few minutes. It looks like Firebase's default template, and that difference from the branded Resend emails is expected here, not a defect. Its link opens letitrip.in and reports success.",
326
- expectedData: { emailVerified: true },
327
- endResult: "Signing in and reloading /user shows no 'email not verified' warning. A 'check your email' screen with no email ever arriving is exactly the failure this case exists to separate from success.",
328
- },
329
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,41 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the addresses/address-filters 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
- export const authored = {
17
- "checklist-addresses-address-filters-filters-actually-filter": {
18
- roles: ["buyer"],
19
- startPage: "/user/addresses",
20
- steps: [
21
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
22
- "Open /user/addresses. No address is seeded for this buyer, so create two — one labelled 'Home' at '7 Test Lane', Indore, Madhya Pradesh, 452010, and one labelled 'Office' at '8 Test Lane', Bengaluru, Karnataka, 560001.",
23
- "Back on /user/addresses, read the controls above the list: a Search input and a Label select. There is no filter drawer and no filter badge.",
24
- "Type Indore in Search and read which addresses remain.",
25
- "Clear Search, type zzzznope, and read the count.",
26
- "Clear Search. Choose Office in the Label select and read which addresses remain.",
27
- "Set the Label select back to 'All labels' and confirm both return.",
28
- "Finally type Office into Search, with the Label select on All labels, and read the result.",
29
- ],
30
- inputs: {
31
- firstLabel: "Home",
32
- secondLabel: "Office",
33
- searchHit: "Indore",
34
- searchMiss: "zzzznope",
35
- },
36
- expectedBehaviour: "Both controls narrow the list they sit above, and both are in-memory over the already-fetched addresses rather than a refetch. Search matches the name, street, city, state and postal code; the Label select matches the label, which Search deliberately does not cover. A control that changes nothing is the failure this case exists for.",
37
- expectedUiState: "Searching Indore leaves the Indore address and hides the Bengaluru one. 'zzzznope' leaves NONE — that is the control that separates filtering from returning everything. Choosing Office in the Label select leaves only the Office address, and 'All labels' restores both.\n\n🛑 Typing Office into SEARCH returns nothing, and that is CORRECT: search covers name, street, city, state and postal code, not the label. Do not record it as broken search. The Label select does not appear at all until at least one address has a label.",
38
- expectedData: { searchMissCount: 0, labelFilteredCount: 1 },
39
- endResult: "Both controls are cleared. Delete the two addresses afterwards — the addresses collection is PRESERVE tier and is never wiped between runs, so anything left here accumulates forever."
40
- },
41
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,76 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the addresses/postal-lookup page.
3
- * WHAT: 3 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 three cases are hit / don't-clobber / miss. The miss is the one that
10
- * matters most: coverage is thinner than India Post's, so an unrecognised code
11
- * is the COMMON path and has to be a non-event rather than an error state.
12
- *
13
- * @tag domain:tester
14
- * @tag layer:seed
15
- * @tag pattern:none
16
- * @tag access:server-only
17
- * @tag consumers:seed-data/authored/index.ts
18
- * @tag sideEffects:none
19
- */
20
- export const authored = {
21
- "checklist-addresses-postal-lookup-pin-fills-city-and-state": {
22
- roles: ["buyer"],
23
- startPage: "/user/addresses/new",
24
- steps: [
25
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
26
- "Open /user/addresses/new.",
27
- "Select India as the country.",
28
- "Leave the City and State fields empty.",
29
- "Type 560001 in the PIN code field.",
30
- "Wait one second without typing anything else.",
31
- "Read the City field and the 'State / region' picker, then read the rest of the form.",
32
- "If neither filled, open the network panel and find the api.zippopotam.us request before judging.",
33
- ],
34
- inputs: { country: "India", pincode: "560001", expectedState: "Karnataka" },
35
- expectedBehaviour: "A complete PIN code triggers one debounced lookup that fills only City and State. Nothing else on the form moves — a lookup that also rewrites the street or the label is doing more than it was asked and the user has no way to undo it.",
36
- expectedUiState: "Within about half a second City and 'State / region' are filled for 560001; the state reads Karnataka. Record the city string rather than asserting one — it is whatever Zippopotam returns for that code. Every other field holds exactly what it held before, including any name or street already typed. No spinner is left running and no error appears.",
37
- expectedData: { pincode: "560001" },
38
- endResult: "Nothing is saved unless the form is submitted. Two dead modules once carried the shape of a lookup that had been removed, which is why this looked built long before it was.",
39
- },
40
- "checklist-addresses-postal-lookup-lookup-never-overwrites": {
41
- roles: ["buyer"],
42
- startPage: "/user/addresses/new",
43
- steps: [
44
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
45
- "Open /user/addresses/new.",
46
- "Select India as the country.",
47
- "Type Whitefield in the City field FIRST, before touching the PIN code.",
48
- "Type 560001 in the PIN code field.",
49
- "Wait one second.",
50
- "Read the City field.",
51
- ],
52
- inputs: { country: "India", city: "Whitefield", pincode: "560001" },
53
- expectedBehaviour: "Autofill only ever lands in an EMPTY field. A lookup that corrects deliberate typing produces a bug the user cannot report — they simply watch their own text disappear and assume they mistyped.",
54
- expectedUiState: "City still reads 'Whitefield' after the lookup completes. 'State / region', which was empty, has been filled. Nothing flashes the typed value away and back.",
55
- expectedData: { city: "Whitefield" },
56
- endResult: "Nothing persists until the form is submitted. 'Whitefield' is chosen because it is a real Bengaluru locality that the 560001 lookup will not return — a city name the lookup agrees with would prove nothing.",
57
- },
58
- "checklist-addresses-postal-lookup-lookup-miss-is-a-non-event": {
59
- roles: ["buyer"],
60
- startPage: "/user/addresses/new",
61
- steps: [
62
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
63
- "Open /user/addresses/new.",
64
- "Select India as the country.",
65
- "Type 999999 in the PIN code field.",
66
- "Wait two seconds and read the whole form.",
67
- "Type 'QA Address lookup-miss' as the name, '3 Test Lane' as the street and 'Indore' as the city, then SELECT 'Madhya Pradesh' from the 'State / region' picker — for India it is a 36-option list, not a text box.",
68
- "Save the address.",
69
- ],
70
- inputs: { country: "India", pincode: "999999", city: "Indore", state: "Madhya Pradesh" },
71
- expectedBehaviour: "An unknown but well-formed code resolves to nothing and the form carries on. The code is still valid — six digits — so it must save; only the convenience lookup missed.",
72
- expectedUiState: "No error banner, no red PIN code field, no disabled Save. City stays empty and editable and the 'State / region' picker stays on its placeholder, and the typed and selected values are accepted. The address saves with PIN code 999999, which matches the IN postal pattern of six digits not starting with zero.",
73
- expectedData: { pincode: "999999", saved: true },
74
- endResult: "The address exists in /user/addresses after a reload. Delete it afterwards. Treating a miss as a validation failure would block every address in the many areas the lookup does not cover.",
75
- },
76
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,78 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the addresses/postal-validation page.
3
- * WHAT: 3 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
- * @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
- export const authored = {
17
- "checklist-addresses-postal-validation-letters-rejected-on-the-field": {
18
- roles: ["buyer"],
19
- startPage: "/user/addresses/new",
20
- steps: [
21
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
22
- "Open /user/addresses/new.",
23
- "Select India as the country.",
24
- "Type 'QA Address letters-rejected' as the name, '4 Test Lane' as the street and 'Indore' as the city, then SELECT 'Madhya Pradesh' from the 'State / region' picker.",
25
- "Type abcdef in the PIN code field.",
26
- "Click Save.",
27
- "Read where the error appears.",
28
- ],
29
- inputs: { country: "India", pincode: "abcdef" },
30
- expectedBehaviour: "The format is checked in the browser against the country's own rule, so the request is never sent. A length-only rule passes 'abcdef' — six characters — which is exactly how one admin route treated it as a valid Indian PIN code.",
31
- expectedUiState: "An error appears directly under the PIN code field naming the format, before any network request. There is no server 400 with nothing marked, and no error banner detached from the field that caused it.",
32
- expectedData: { saved: false },
33
- endResult: "No address is created. The form keeps the other typed values so the user only has to fix the one field.",
34
- },
35
- "checklist-addresses-postal-validation-country-decides-the-rule": {
36
- roles: ["buyer"],
37
- startPage: "/user/addresses/new",
38
- steps: [
39
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
40
- "Open /user/addresses/new.",
41
- "Select Canada as the country.",
42
- "Read the label on the postal code field.",
43
- "Type K1A 0B1 in that field, then fill the name 'QA Address country-rule', the street '5 Test Lane' and the city 'Ottawa', and SELECT 'Ontario' from the 'State / region' picker — Canada has one too.",
44
- "Click Save.",
45
- "Open the address for editing, switch the country to India, and type K1A 0B1 in the PIN code field.",
46
- "Type 560001 instead and read the field.",
47
- ],
48
- inputs: { canadaPostcode: "K1A 0B1", indiaPincode: "560001" },
49
- expectedBehaviour: "The postal rule and its label both follow the selected country. An India-only six-digit rule made every real Canadian postcode unsaveable from every surface in the app.",
50
- expectedUiState: "With Canada selected the field is labelled 'Postal code' and K1A 0B1 saves. With India selected the field is labelled 'PIN code', K1A 0B1 is rejected, and 560001 is accepted. The rejection is on the field, not a banner.",
51
- expectedData: { canadaAccepted: true, indiaRejectsCanadaFormat: true },
52
- endResult: "Delete the address afterwards. The reversal is the whole case — a rule that accepts both formats for both countries is not country-aware, it is just permissive.",
53
- },
54
- "checklist-addresses-postal-validation-unknown-country-never-blocks": {
55
- roles: ["buyer"],
56
- startPage: "/user/addresses/new",
57
- steps: [
58
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
59
- "Open /user/addresses/new.",
60
- "Select United Arab Emirates as the country.",
61
- "Type 'QA Address unknown-country' as the name, '6 Test Lane' as the street and 'Dubai' as the city.",
62
- "Type 00000 in the postal code field.",
63
- "Click Save.",
64
- "Open the address for editing, replace the postal code with ABC-1234, and save again.",
65
- ],
66
- inputs: {
67
- country: "United Arab Emirates",
68
- firstCode: "00000",
69
- secondCode: "ABC-1234",
70
- postalMin: 3,
71
- postalMax: 12,
72
- },
73
- expectedBehaviour: "For a country with no known format any code of 3 to 12 characters is accepted, which is the POSTAL_MIN and POSTAL_MAX fallback in the one shared validator. A postal rule exists to catch a typo, never to refuse a real address whose pattern we simply do not have — and an EMPTY code is still refused, because a blank is not a postal code in any country.",
74
- expectedUiState: "Both codes save without an error. The field is not marked red and Save is never disabled. What must not happen is India's six-digit rule being applied by default to a country it does not describe.",
75
- expectedData: { bothCodesAccepted: true },
76
- endResult: "The address holds ABC-1234 after a reload. Delete it afterwards.",
77
- },
78
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;
@@ -1,59 +0,0 @@
1
- /*
2
- * WHY: Authored six-part procedures for the addresses/state-picker 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
- * @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
- export const authored = {
17
- "checklist-addresses-state-picker-state-is-a-picker-for-india": {
18
- roles: ["buyer"],
19
- startPage: "/user/addresses/new",
20
- steps: [
21
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
22
- "Open /user/addresses/new.",
23
- "Select India as the country.",
24
- "Click the 'State / region' field and try to type free text into it.",
25
- "Type karn in the picker's search box and read the options offered.",
26
- "Select Karnataka.",
27
- "Change the country to United Arab Emirates.",
28
- "Click 'State / region' again and try to type free text.",
29
- ],
30
- inputs: { country: "India", stateSearch: "karn", state: "Karnataka" },
31
- expectedBehaviour: "Where a country's regions are enumerated, State is a searchable picker; where they are not, it is a plain text box. The picker is what stops one column holding 'Karnataka', 'karnataka' and 'KA' depending on which screen created the row — which is what happened while this form and the seller drawer wrote free text into the same field the admin editor filled from a 36-option list.",
32
- expectedUiState: "With India selected, 'State / region' cannot be typed into freely and searching 'karn' narrows a list of India's 36 states and union territories to Karnataka. With United Arab Emirates selected the same label becomes an ordinary text input that accepts anything, because the UAE has no subdivisions in the registry.",
33
- expectedData: { indiaStateOptionCount: 36 },
34
- endResult: "Nothing persists unless the form is submitted. A picker offering 28 or 29 options is missing the union territories.",
35
- },
36
- "checklist-addresses-state-picker-changing-country-clears-state": {
37
- roles: ["buyer"],
38
- startPage: "/user/addresses/new",
39
- steps: [
40
- "Sign in as rehan.sheikh@gmail.com / TempPass123!.",
41
- "Open /user/addresses/new.",
42
- "Select India as the country.",
43
- "Select Karnataka in the 'State / region' picker.",
44
- "Change the country to Canada.",
45
- "Read the 'State / region' field, and count the options it now offers.",
46
- "Change the country back to India and read it again.",
47
- ],
48
- inputs: {
49
- firstCountry: "India",
50
- state: "Karnataka",
51
- secondCountry: "Canada",
52
- canadaOptionCount: 13,
53
- },
54
- expectedBehaviour: "Changing the country clears the state, because a state only means something inside the country it belongs to. An address carrying Karnataka under Canada is a row nothing can group, rate for shipping, or tax correctly.",
55
- expectedUiState: "After switching to Canada 'State / region' is empty and offers 13 Canadian options, its 10 provinces and 3 territories — an emptied field still listing India's 36 would mean the clear ran and the option source did not. Switching back to India leaves it empty too: the clear fires on every country change and does not restore 'Karnataka', which would reintroduce the mismatch it exists to prevent.",
56
- expectedData: { stateAfterCountryChange: "", canadaOptionCount: 13 },
57
- endResult: "Nothing persists unless the form is submitted. A retained 'Karnataka' under Canada is the failure.",
58
- },
59
- };
@@ -1,2 +0,0 @@
1
- import type { AuthoredCase } from "./_types";
2
- export declare const authored: Record<string, AuthoredCase>;