@mohasinac/appkit 3.6.5 → 3.8.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 (298) hide show
  1. package/dist/_internal/client/features/layout/DashboardLayoutClient.d.ts +17 -3
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +7 -2
  3. package/dist/_internal/client/features/tour/TourProvider.d.ts +5 -2
  4. package/dist/_internal/client/features/tour/TourProvider.js +125 -12
  5. package/dist/_internal/client/theme/ThemeProvider.js +1 -1
  6. package/dist/_internal/server/features/categories/data.js +2 -2
  7. package/dist/_internal/server/features/faqs/og.js +5 -1
  8. package/dist/_internal/server/features/reviews/og.js +5 -1
  9. package/dist/_internal/server/features/seo/manifest.js +2 -1
  10. package/dist/_internal/server/features/seo/og.js +7 -1
  11. package/dist/_internal/server/features/tester/visibility.d.ts +13 -0
  12. package/dist/_internal/server/features/tester/visibility.js +28 -0
  13. package/dist/_internal/server/functions/scheduled.d.ts +2 -1
  14. package/dist/_internal/server/functions/scheduled.js +9 -1
  15. package/dist/_internal/server/jobs/core/jobRunners.js +5 -0
  16. package/dist/_internal/server/jobs/core/resetOtpVerification.d.ts +17 -0
  17. package/dist/_internal/server/jobs/core/resetOtpVerification.js +88 -0
  18. package/dist/_internal/server/jobs/core/testerSandboxCleanup.d.ts +6 -0
  19. package/dist/_internal/server/jobs/core/testerSandboxCleanup.js +35 -0
  20. package/dist/_internal/server/jobs/handlers/_helpers.d.ts +6 -0
  21. package/dist/_internal/server/jobs/handlers/_helpers.js +12 -0
  22. package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
  23. package/dist/_internal/server/jobs/handlers/index.js +2 -0
  24. package/dist/_internal/server/jobs/handlers/messages.d.ts +2 -0
  25. package/dist/_internal/server/jobs/handlers/messages.js +2 -0
  26. package/dist/_internal/server/jobs/handlers/testerSandboxCleanup.d.ts +2 -0
  27. package/dist/_internal/server/jobs/handlers/testerSandboxCleanup.js +2 -0
  28. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  29. package/dist/_internal/shared/actions/action-registry.js +56 -0
  30. package/dist/_internal/shared/tokens/index.d.ts +12 -12
  31. package/dist/client.d.ts +15 -3
  32. package/dist/client.js +10 -2
  33. package/dist/constants/api-endpoints.d.ts +39 -12
  34. package/dist/constants/api-endpoints.js +17 -8
  35. package/dist/constants/field-names.d.ts +9 -0
  36. package/dist/constants/field-names.js +12 -0
  37. package/dist/constants/index.d.ts +1 -1
  38. package/dist/constants/index.js +1 -1
  39. package/dist/features/account/components/LinkedAccountsSection.d.ts +11 -0
  40. package/dist/features/account/components/LinkedAccountsSection.js +11 -0
  41. package/dist/features/account/components/UserSidebar.d.ts +3 -1
  42. package/dist/features/account/components/UserSidebar.js +9 -13
  43. package/dist/features/account/hooks/useCollapsedSections.d.ts +20 -0
  44. package/dist/features/account/hooks/useCollapsedSections.js +63 -0
  45. package/dist/features/account/hooks/useProfile.d.ts +8 -0
  46. package/dist/features/account/index.d.ts +1 -0
  47. package/dist/features/account/index.js +1 -0
  48. package/dist/features/admin/components/AdminAddressEditorView.js +2 -2
  49. package/dist/features/admin/components/AdminBidsView.js +6 -6
  50. package/dist/features/admin/components/AdminBrandsView.js +2 -2
  51. package/dist/features/admin/components/AdminCarouselView.js +2 -2
  52. package/dist/features/admin/components/AdminCategoryEditorView.js +2 -2
  53. package/dist/features/admin/components/AdminPrizeDrawsView.js +3 -3
  54. package/dist/features/admin/components/AdminProductEditorView.js +5 -2
  55. package/dist/features/admin/components/AdminReviewsView.js +5 -5
  56. package/dist/features/admin/components/AdminSectionsView.js +3 -18
  57. package/dist/features/admin/components/AdminSidebar.js +8 -6
  58. package/dist/features/admin/components/AdminSiteSettingsView.js +133 -127
  59. package/dist/features/admin/components/AdminSublistingCategoriesView.js +1 -1
  60. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.d.ts +9 -0
  61. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +129 -0
  62. package/dist/features/admin/components/AdminTesterChecklistView.d.ts +6 -0
  63. package/dist/features/admin/components/AdminTesterChecklistView.js +93 -0
  64. package/dist/features/admin/components/AdminUserEditorView.d.ts +3 -1
  65. package/dist/features/admin/components/AdminUserEditorView.js +7 -1
  66. package/dist/features/admin/components/AdminUsersView.js +1 -1
  67. package/dist/features/admin/components/DataListingView.js +2 -2
  68. package/dist/features/admin/components/analytics/AdminPageViewsReportView.d.ts +8 -0
  69. package/dist/features/admin/components/analytics/AdminPageViewsReportView.js +41 -0
  70. package/dist/features/admin/components/index.d.ts +6 -0
  71. package/dist/features/admin/components/index.js +3 -0
  72. package/dist/features/admin/schemas/firestore.d.ts +0 -7
  73. package/dist/features/admin/schemas/firestore.js +6 -6
  74. package/dist/features/analytics/components/PageViewTracker.d.ts +12 -0
  75. package/dist/features/analytics/components/PageViewTracker.js +22 -0
  76. package/dist/features/analytics/repository/page-views.repository.d.ts +32 -0
  77. package/dist/features/analytics/repository/page-views.repository.js +43 -0
  78. package/dist/features/analytics/types.d.ts +6 -0
  79. package/dist/features/analytics/types.js +13 -0
  80. package/dist/features/auth/components/SocialAuthButtons.js +1 -1
  81. package/dist/features/auth/hooks/useAuth.d.ts +12 -0
  82. package/dist/features/auth/hooks/useAuth.js +109 -0
  83. package/dist/features/auth/permissions/constants.d.ts +1 -1
  84. package/dist/features/auth/repository/session.repository.d.ts +2 -0
  85. package/dist/features/auth/repository/session.repository.js +4 -1
  86. package/dist/features/auth/schemas/firestore.d.ts +17 -1
  87. package/dist/features/auth/schemas/firestore.js +2 -0
  88. package/dist/features/blog/components/BlogIndexListing.js +2 -2
  89. package/dist/features/blog/schemas/firestore.d.ts +4 -0
  90. package/dist/features/cart/actions/cart-actions.js +20 -2
  91. package/dist/features/categories/api/route.js +2 -2
  92. package/dist/features/categories/components/CategoriesIndexListing.js +3 -3
  93. package/dist/features/categories/components/CategoryBundlesListing.js +2 -2
  94. package/dist/features/categories/components/CategoryDetailPageView.js +3 -1
  95. package/dist/features/categories/components/CategoryProductsListing.js +2 -2
  96. package/dist/features/categories/schemas/firestore.d.ts +4 -0
  97. package/dist/features/classified/components/ClassifiedIndexListing.js +2 -2
  98. package/dist/features/digital-codes/components/DigitalCodesIndexListing.js +2 -2
  99. package/dist/features/email/primitives.d.ts +2 -2
  100. package/dist/features/email/primitives.js +2 -2
  101. package/dist/features/events/components/EventsIndexListing.js +2 -2
  102. package/dist/features/events/repository/event-entry.repository.js +1 -0
  103. package/dist/features/events/schemas/firestore.d.ts +7 -1
  104. package/dist/features/events/schemas/firestore.js +1 -0
  105. package/dist/features/layout/BackToTop.d.ts +6 -1
  106. package/dist/features/layout/BackToTop.js +31 -6
  107. package/dist/features/layout/BottomNavbar.js +1 -1
  108. package/dist/features/layout/NavItem.js +1 -1
  109. package/dist/features/layout/NavbarLayout.js +2 -2
  110. package/dist/features/live/components/LiveItemsIndexListing.js +2 -2
  111. package/dist/features/media/MediaVideo.js +5 -1
  112. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -2
  113. package/dist/features/products/components/AuctionsIndexListing.js +2 -2
  114. package/dist/features/products/components/PrizeDrawsIndexListing.js +2 -2
  115. package/dist/features/products/components/ProductsIndexListing.js +2 -2
  116. package/dist/features/products/constants/action-defs.d.ts +2 -0
  117. package/dist/features/products/constants/action-defs.js +2 -0
  118. package/dist/features/products/constants/sieve.d.ts +0 -6
  119. package/dist/features/products/constants/sieve.js +4 -2
  120. package/dist/features/products/repository/products.repository.d.ts +20 -0
  121. package/dist/features/products/repository/products.repository.js +5 -0
  122. package/dist/features/products/schemas/firestore.d.ts +4 -0
  123. package/dist/features/promotions/components/CouponsIndexListing.js +18 -5
  124. package/dist/features/reviews/components/ReviewsIndexListing.js +2 -2
  125. package/dist/features/search/hooks/useNavSuggestions.js +20 -1
  126. package/dist/features/seller/actions/seller-actions.js +11 -6
  127. package/dist/features/seller/components/SellerAddressesView.js +2 -2
  128. package/dist/features/seller/components/SellerBidsView.js +2 -2
  129. package/dist/features/seller/components/SellerCouponsView.js +1 -1
  130. package/dist/features/seller/components/SellerOrdersView.js +2 -2
  131. package/dist/features/seller/components/SellerProductsView.js +2 -2
  132. package/dist/features/seller/components/SellerSidebar.d.ts +3 -1
  133. package/dist/features/seller/components/SellerSidebar.js +9 -8
  134. package/dist/features/seller/components/SellerStoreCategoriesView.js +2 -2
  135. package/dist/features/seller/components/SellerTemplatesView.js +2 -2
  136. package/dist/features/shell/StepForm.js +4 -4
  137. package/dist/features/stores/actions/store-query-actions.d.ts +5 -4
  138. package/dist/features/stores/actions/store-query-actions.js +11 -8
  139. package/dist/features/stores/components/StoreAuctionsListing.js +2 -2
  140. package/dist/features/stores/components/StoreClassifiedsListing.js +2 -2
  141. package/dist/features/stores/components/StoreDetailLayoutView.js +1 -1
  142. package/dist/features/stores/components/StoreDigitalCodesListing.js +2 -2
  143. package/dist/features/stores/components/StoreLiveItemsListing.js +2 -2
  144. package/dist/features/stores/components/StorePreOrdersListing.js +2 -2
  145. package/dist/features/stores/components/StoreProductsListing.js +2 -2
  146. package/dist/features/stores/components/StoreReviewsListing.js +2 -2
  147. package/dist/features/stores/components/StoresIndexListing.js +2 -2
  148. package/dist/features/stores/repository/store.repository.js +3 -0
  149. package/dist/features/stores/schemas/firestore.d.ts +4 -0
  150. package/dist/features/tester/actions/checklist-item-actions.d.ts +69 -0
  151. package/dist/features/tester/actions/checklist-item-actions.js +42 -0
  152. package/dist/features/tester/actions/index.d.ts +1 -0
  153. package/dist/features/tester/actions/index.js +1 -0
  154. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.d.ts +2 -0
  155. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +22 -0
  156. package/dist/features/tester/components/AdminTesterFeedbackListView.d.ts +3 -0
  157. package/dist/features/tester/components/AdminTesterFeedbackListView.js +100 -0
  158. package/dist/features/tester/components/AdminTesterFeedbackReportView.d.ts +2 -0
  159. package/dist/features/tester/components/AdminTesterFeedbackReportView.js +30 -0
  160. package/dist/features/tester/components/AdminTesterFeedbackView.d.ts +2 -0
  161. package/dist/features/tester/components/AdminTesterFeedbackView.js +29 -0
  162. package/dist/features/tester/components/TesterChecklistStepRow.d.ts +18 -0
  163. package/dist/features/tester/components/TesterChecklistStepRow.js +29 -0
  164. package/dist/features/tester/components/TesterFeedbackChart.d.ts +14 -0
  165. package/dist/features/tester/components/TesterFeedbackChart.js +18 -0
  166. package/dist/features/tester/components/TesterHubView.d.ts +5 -0
  167. package/dist/features/tester/components/TesterHubView.js +71 -0
  168. package/dist/features/tester/components/index.d.ts +11 -0
  169. package/dist/features/tester/components/index.js +7 -0
  170. package/dist/features/tester/index.d.ts +2 -0
  171. package/dist/features/tester/index.js +2 -0
  172. package/dist/features/tester/repository/index.d.ts +2 -0
  173. package/dist/features/tester/repository/index.js +2 -0
  174. package/dist/features/tester/repository/tester-checklist-item.repository.d.ts +13 -0
  175. package/dist/features/tester/repository/tester-checklist-item.repository.js +55 -0
  176. package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +50 -0
  177. package/dist/features/tester/repository/tester-checklist-response.repository.js +196 -0
  178. package/dist/features/tester/schemas/firestore.d.ts +85 -0
  179. package/dist/features/tester/schemas/firestore.js +93 -0
  180. package/dist/features/tester/schemas/index.d.ts +1 -0
  181. package/dist/features/tester/schemas/index.js +1 -0
  182. package/dist/features/tester/seed-data/blog-tester-seed-data.d.ts +2 -0
  183. package/dist/features/tester/seed-data/blog-tester-seed-data.js +40 -0
  184. package/dist/features/tester/seed-data/categories-tester-seed-data.d.ts +2 -0
  185. package/dist/features/tester/seed-data/categories-tester-seed-data.js +177 -0
  186. package/dist/features/tester/seed-data/events-tester-seed-data.d.ts +2 -0
  187. package/dist/features/tester/seed-data/events-tester-seed-data.js +50 -0
  188. package/dist/features/tester/seed-data/index.d.ts +6 -0
  189. package/dist/features/tester/seed-data/index.js +6 -0
  190. package/dist/features/tester/seed-data/products-tester-seed-data.d.ts +2 -0
  191. package/dist/features/tester/seed-data/products-tester-seed-data.js +151 -0
  192. package/dist/features/tester/seed-data/stores-tester-seed-data.d.ts +2 -0
  193. package/dist/features/tester/seed-data/stores-tester-seed-data.js +40 -0
  194. package/dist/features/tester/seed-data/tester-checklist-seed-data.d.ts +2 -0
  195. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +248 -0
  196. package/dist/features/tester/seed-data/tester-ttl.d.ts +4 -0
  197. package/dist/features/tester/seed-data/tester-ttl.js +6 -0
  198. package/dist/features/tester/server.d.ts +9 -0
  199. package/dist/features/tester/server.js +8 -0
  200. package/dist/index.d.ts +28 -2
  201. package/dist/index.js +51 -1
  202. package/dist/next/api/api-response.js +5 -1
  203. package/dist/next/api/routeHandler.js +10 -1
  204. package/dist/next/middleware/chain.js +1 -1
  205. package/dist/next/routing/route-map.d.ts +6 -7
  206. package/dist/next/routing/route-map.js +3 -7
  207. package/dist/providers/payment-manual/index.d.ts +2 -2
  208. package/dist/providers/payment-manual/index.js +2 -2
  209. package/dist/react/contexts/SessionContext.d.ts +4 -0
  210. package/dist/react/contexts/SessionContext.js +4 -0
  211. package/dist/repositories/index.d.ts +4 -0
  212. package/dist/repositories/index.js +3 -0
  213. package/dist/security/pii-encrypt.js +12 -2
  214. package/dist/seed/addresses-seed-data.js +1 -1
  215. package/dist/seed/bids-seed-data.js +64 -185
  216. package/dist/seed/blog-posts-seed-data.js +1 -1
  217. package/dist/seed/carousel-slides-seed-data.js +22 -16
  218. package/dist/seed/carousels-seed-data.js +1 -1
  219. package/dist/seed/cart-seed-data.js +1 -1
  220. package/dist/seed/categories-seed-data.js +1 -1
  221. package/dist/seed/claimed-coupons-seed-data.js +1 -1
  222. package/dist/seed/conversations-seed-data.js +1 -1
  223. package/dist/seed/coupon-usage-seed-data.js +1 -1
  224. package/dist/seed/coupons-seed-data.js +1 -1
  225. package/dist/seed/events-seed-data.js +1 -1
  226. package/dist/seed/faq-seed-data.js +119 -3
  227. package/dist/seed/grouped-listings-seed-data.d.ts +2 -0
  228. package/dist/seed/grouped-listings-seed-data.js +1 -1
  229. package/dist/seed/history-seed-data.js +1 -1
  230. package/dist/seed/homepage-sections-seed-data.js +1 -1
  231. package/dist/seed/index.d.ts +2 -2
  232. package/dist/seed/index.js +7 -3
  233. package/dist/seed/lottery-entries-seed-data.js +1 -1
  234. package/dist/seed/manifest.d.ts +4 -3
  235. package/dist/seed/manifest.js +13 -6
  236. package/dist/seed/notifications-seed-data.js +1 -1
  237. package/dist/seed/offers-seed-data.js +1 -1
  238. package/dist/seed/orders-seed-data.js +1 -1
  239. package/dist/seed/payouts-seed-data.js +1 -1
  240. package/dist/seed/products-art-seed-data.js +1 -1
  241. package/dist/seed/products-auctions-seed-data.js +1 -1
  242. package/dist/seed/products-classifieds-seed-data.js +1 -1
  243. package/dist/seed/products-digital-codes-seed-data.js +1 -1
  244. package/dist/seed/products-live-items-seed-data.js +1 -1
  245. package/dist/seed/products-preorders-seed-data.d.ts +2 -0
  246. package/dist/seed/products-preorders-seed-data.js +1 -1
  247. package/dist/seed/products-prize-draws-seed-data.js +1 -1
  248. package/dist/seed/products-standard-seed-data.js +1 -1
  249. package/dist/seed/products-stickers-seed-data.js +1 -1
  250. package/dist/seed/reviews-seed-data.js +1 -1
  251. package/dist/seed/scammers-seed-data.js +1 -1
  252. package/dist/seed/sessions-seed-data.js +1 -1
  253. package/dist/seed/site-settings-seed-data.js +22 -16
  254. package/dist/seed/store-addresses-seed-data.js +1 -1
  255. package/dist/seed/store-extensions-seed-data.js +1 -1
  256. package/dist/seed/stores-seed-data.js +1 -1
  257. package/dist/seed/support-tickets-seed-data.js +1 -1
  258. package/dist/seed/tester-checklist-seed-data.d.ts +2 -0
  259. package/dist/seed/tester-checklist-seed-data.js +248 -0
  260. package/dist/seed/users-seed-data.js +1 -1
  261. package/dist/seed/wishlists-seed-data.js +1 -1
  262. package/dist/server.d.ts +7 -2
  263. package/dist/server.js +19 -12
  264. package/dist/styles.css +181 -165
  265. package/dist/tailwind-utilities.css +1 -1
  266. package/dist/tokens/color-pairs.d.ts +46 -0
  267. package/dist/tokens/color-pairs.js +93 -0
  268. package/dist/tokens/index.d.ts +60 -60
  269. package/dist/tokens/index.js +30 -30
  270. package/dist/tokens/themes/cobalt-night.d.ts +3 -2
  271. package/dist/tokens/themes/cobalt-night.js +3 -2
  272. package/dist/tokens/themes/default-dark.d.ts +4 -1
  273. package/dist/tokens/themes/default-dark.js +53 -50
  274. package/dist/tokens/themes/default-light.d.ts +5 -1
  275. package/dist/tokens/themes/default-light.js +48 -44
  276. package/dist/tokens/themes/sunset.js +4 -4
  277. package/dist/tokens/tokens.css +128 -122
  278. package/dist/ui/components/CollapsibleSection.d.ts +15 -0
  279. package/dist/ui/components/CollapsibleSection.js +13 -0
  280. package/dist/ui/components/ListingToolbar.js +3 -2
  281. package/dist/ui/components/Semantic.style.css +3 -3
  282. package/dist/ui/components/SideDrawer.style.css +19 -19
  283. package/dist/ui/components/Slider.js +1 -1
  284. package/dist/ui/components/StickyToolbar.d.ts +36 -7
  285. package/dist/ui/components/StickyToolbar.js +63 -5
  286. package/dist/ui/components/Tabs.js +17 -1
  287. package/dist/ui/components/Tabs.style.css +10 -0
  288. package/dist/ui/components/Typography.js +7 -0
  289. package/dist/ui/components/surface-tokens.d.ts +0 -7
  290. package/dist/ui/components/surface-tokens.js +7 -0
  291. package/dist/ui/index.d.ts +6 -0
  292. package/dist/ui/index.js +3 -0
  293. package/dist/ui/rich-text/RichText.style.css +20 -20
  294. package/dist/utils/id-generators.d.ts +13 -0
  295. package/dist/utils/id-generators.js +17 -0
  296. package/package.json +1 -1
  297. package/scripts/seed-cli-loader.mjs +15 -0
  298. package/scripts/seed-cli.mjs +71 -17
@@ -1,8 +1,10 @@
1
1
  /*
2
- * WHY: Seeds 55 FAQs for LetItRip collectibles marketplace — covers general platform, shipping,
2
+ * WHY: Seeds 61 FAQs for LetItRip collectibles marketplace — covers general platform, shipping,
3
3
  * returns, payments, auctions, pre-orders, product info, account/security, scam awareness.
4
4
  * WHAT: Mix of broad collectibles marketplace FAQs + category-specific FAQs (trading cards, action figures,
5
- * diecast, Beyblade, model kits, grading, authenticity, bundles, prize draws).
5
+ * diecast, Beyblade, model kits, grading, authenticity, bundles, prize draws), plus (Phase 17,
6
+ * 2026-08-17) the verified-badge trust system, classifieds, digital codes, live items, personal
7
+ * catalogue, and seller procurement shipments — features shipped since the FAQs were last written.
6
8
  *
7
9
  * EXPORTS:
8
10
  * faqSeedData — Array of Partial<FAQDocument> for seed runner
@@ -11,7 +13,7 @@
11
13
  * @tag layer:seed
12
14
  * @tag pattern:none
13
15
  * @tag access:server-only
14
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
16
+ * @tag consumers:seed/index.ts,seed/runner.ts
15
17
  * @tag sideEffects:none
16
18
  */
17
19
  const NOW = new Date();
@@ -1094,4 +1096,118 @@ export const faqSeedData = [
1094
1096
  createdAt: daysAgo(40),
1095
1097
  updatedAt: daysAgo(6),
1096
1098
  },
1099
+ {
1100
+ id: "faq-what-is-verified-badge",
1101
+ question: "What does the verified seller badge mean?",
1102
+ answer: html(`<p>A verified badge means LetItRip has manually confirmed the seller's identity and store details before they were allowed to list. Verified sellers have passed our onboarding review — it doesn't guarantee every listing is accurate, but it does mean the seller is a real, accountable business we can act on if something goes wrong. Look for the badge on the store page next to the seller's name.</p>`),
1103
+ category: "account_security",
1104
+ showOnHomepage: false,
1105
+ showInFooter: false,
1106
+ isPinned: false,
1107
+ order: 56,
1108
+ priority: 6,
1109
+ tags: ["verified", "badge", "trust", "seller"],
1110
+ relatedFAQs: ["faq-spot-a-scam-listing", "faq-report-a-scammer"],
1111
+ stats: makeStats(900, 45),
1112
+ seo: { slug: "faq-what-is-verified-badge", metaTitle: "What Is the Verified Seller Badge?", metaDescription: "How LetItRip's seller verification works and what the badge means." },
1113
+ isActive: true,
1114
+ createdBy: "user-admin-letitrip",
1115
+ createdAt: daysAgo(20),
1116
+ updatedAt: daysAgo(2),
1117
+ },
1118
+ {
1119
+ id: "faq-what-are-classifieds",
1120
+ question: "What are Classified listings?",
1121
+ answer: html(`<p>Classifieds are listings for items that don't ship — local meetups, trades, or collections too large/fragile to post. A classified listing shows the seller's general area (not their exact address) and lets buyers message to arrange an in-person exchange or local pickup. LetItRip's escrow payment protection does not apply to classifieds — agree on payment terms directly with the seller and meet in a safe, public location.</p>`),
1122
+ category: "product_information",
1123
+ showOnHomepage: false,
1124
+ showInFooter: false,
1125
+ isPinned: false,
1126
+ order: 57,
1127
+ priority: 5,
1128
+ tags: ["classifieds", "local", "meetup", "listing-type"],
1129
+ relatedFAQs: ["faq-off-platform-payment-warning"],
1130
+ stats: makeStats(650, 30),
1131
+ seo: { slug: "faq-what-are-classifieds", metaTitle: "What Are Classified Listings?", metaDescription: "How local, no-shipping classified listings work on LetItRip." },
1132
+ isActive: true,
1133
+ createdBy: "user-admin-letitrip",
1134
+ createdAt: daysAgo(18),
1135
+ updatedAt: daysAgo(2),
1136
+ },
1137
+ {
1138
+ id: "faq-what-are-digital-codes",
1139
+ question: "How do digital code listings work?",
1140
+ answer: html(`<p>Digital code listings sell redeemable codes — game keys, gift cards, DLC unlocks — with no physical shipping. After payment, the code is revealed to you directly in your order. Because codes can't be "returned" once revealed, digital code purchases are final once you've viewed the code; make sure you're buying from a seller with a strong review history.</p>`),
1141
+ category: "product_information",
1142
+ showOnHomepage: false,
1143
+ showInFooter: false,
1144
+ isPinned: false,
1145
+ order: 58,
1146
+ priority: 5,
1147
+ tags: ["digital-codes", "game-keys", "listing-type"],
1148
+ relatedFAQs: ["faq-what-are-classifieds"],
1149
+ stats: makeStats(700, 35),
1150
+ seo: { slug: "faq-what-are-digital-codes", metaTitle: "How Digital Code Listings Work", metaDescription: "Buying and redeeming digital code listings on LetItRip." },
1151
+ isActive: true,
1152
+ createdBy: "user-admin-letitrip",
1153
+ createdAt: daysAgo(18),
1154
+ updatedAt: daysAgo(2),
1155
+ },
1156
+ {
1157
+ id: "faq-what-are-live-items",
1158
+ question: "What are Live listings?",
1159
+ answer: html(`<p>Live listings are for living animals sold by verified exotic-pet and breeder sellers — axolotls, reptiles, and similar. Every live listing requires the seller to specify safe-handling and shipping/pickup instructions, and buyers should confirm care requirements before purchasing. Live-animal sales follow the same escrow protection as physical goods, but delivery timing is coordinated directly with the seller due to live-animal shipping constraints.</p>`),
1160
+ category: "product_information",
1161
+ showOnHomepage: false,
1162
+ showInFooter: false,
1163
+ isPinned: false,
1164
+ order: 59,
1165
+ priority: 4,
1166
+ tags: ["live-items", "live-animals", "listing-type"],
1167
+ relatedFAQs: [],
1168
+ stats: makeStats(420, 20),
1169
+ seo: { slug: "faq-what-are-live-items", metaTitle: "What Are Live Listings?", metaDescription: "Buying live-animal listings safely on LetItRip." },
1170
+ isActive: true,
1171
+ createdBy: "user-admin-letitrip",
1172
+ createdAt: daysAgo(15),
1173
+ updatedAt: daysAgo(2),
1174
+ },
1175
+ {
1176
+ id: "faq-what-is-personal-catalogue",
1177
+ question: "What is My Catalogue?",
1178
+ answer: html(`<p>My Catalogue is a private space to track your own collection — items you own, whether or not they're for sale. Add items with photos and notes, and optionally submit any of them for review to convert into a real listing without re-entering the details. It's a personal inventory tool first, a fast path to listing second.</p>`),
1179
+ category: "product_information",
1180
+ showOnHomepage: false,
1181
+ showInFooter: false,
1182
+ isPinned: false,
1183
+ order: 60,
1184
+ priority: 4,
1185
+ tags: ["catalogue", "collection", "personal", "inventory"],
1186
+ relatedFAQs: [],
1187
+ stats: makeStats(380, 18),
1188
+ seo: { slug: "faq-what-is-personal-catalogue", metaTitle: "What Is My Catalogue?", metaDescription: "Track your personal collectibles collection with My Catalogue on LetItRip." },
1189
+ isActive: true,
1190
+ createdBy: "user-admin-letitrip",
1191
+ createdAt: daysAgo(12),
1192
+ updatedAt: daysAgo(1),
1193
+ },
1194
+ {
1195
+ id: "faq-what-are-procurement-shipments",
1196
+ question: "What is the Procurement / Shipments tool for sellers?",
1197
+ answer: html(`<p>Procurement Shipments is a seller-side tool for bulk-buying and processing inventory lots. Log a shipment (what you bought, the labor hours spent sorting/categorizing/listing it), and LetItRip computes the labor cost and estimated processing time automatically from your Payout Settings' hourly rate. It's for sellers who buy collections in bulk and turn them into individual listings, not a buyer-facing feature.</p>`),
1198
+ category: "general",
1199
+ showOnHomepage: false,
1200
+ showInFooter: false,
1201
+ isPinned: false,
1202
+ order: 61,
1203
+ priority: 3,
1204
+ tags: ["procurement", "shipments", "seller", "bulk"],
1205
+ relatedFAQs: [],
1206
+ stats: makeStats(210, 10),
1207
+ seo: { slug: "faq-what-are-procurement-shipments", metaTitle: "Procurement Shipments for Sellers", metaDescription: "How LetItRip's seller procurement shipment tracking tool works." },
1208
+ isActive: true,
1209
+ createdBy: "user-admin-letitrip",
1210
+ createdAt: daysAgo(10),
1211
+ updatedAt: daysAgo(1),
1212
+ },
1097
1213
  ];
@@ -3,6 +3,8 @@ export declare const groupedListingsSeedData: {
3
3
  title?: string | undefined;
4
4
  description?: string | undefined;
5
5
  slug?: string | undefined;
6
+ isTestData?: boolean | undefined;
7
+ testDataExpiresAt?: Date | undefined;
6
8
  seoTitle?: string | undefined;
7
9
  seoDescription?: string | undefined;
8
10
  seoKeywords?: string[] | undefined;
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { PRODUCT_FIELDS } from "../constants/field-names";
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  const NOW = new Date();
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { seedExtMedia } from "./_helpers/media";
@@ -1,7 +1,6 @@
1
1
  export type { SeedCollection, SeedConfig, SeedResult } from "./types";
2
2
  export type { SeedLocaleData } from "./seed-market-config";
3
3
  export { registerSeedLocale, getSeedLocale, formatSeedPrice, makeSeedPhone, } from "./seed-market-config";
4
- export type { SeedCollectionName, SeedOperationResult, } from "./actions/demo-seed-actions";
5
4
  export type { SeedBaseUserDocument } from "./factories/user.factory";
6
5
  export { makeUser, makeFullUser, USER_FIXTURES, } from "./factories/user.factory";
7
6
  export type { SeedBaseProductDocument } from "./factories/product.factory";
@@ -80,10 +79,11 @@ export { conversationsSeedData } from "./conversations-seed-data";
80
79
  export { groupedListingsSeedData } from "./grouped-listings-seed-data";
81
80
  export { scammersSeedData } from "./scammers-seed-data";
82
81
  export { supportTicketsSeedData } from "./support-tickets-seed-data";
82
+ export { testerChecklistSeedData, storesTesterSeedData, categoriesTesterSeedData, productsTesterSeedData, blogTesterSeedData, eventsTesterSeedData, } from "../features/tester/seed-data";
83
83
  export { productFeaturesSeedData } from "./product-features-seed-data";
84
84
  export { offersSeedData } from "./offers-seed-data";
85
85
  export { payoutMethodsSeedData, shippingConfigsSeedData, analyticsCardsSeedData, analyticsAlertsSeedData, storeCategoriesSeedData, listingTemplatesSeedData, moderationQueueSeedData, reportsSeedData, itemRequestsSeedData, storeWhatsAppConfigSeedData, storeGoogleConfigSeedData, } from "./store-extensions-seed-data";
86
- export type { SeedManifest, SeedManifestEntry } from "./manifest";
86
+ export type { SeedManifest, SeedManifestEntry, SeedCollectionName } from "./manifest";
87
87
  export { SEED_MANIFEST } from "./manifest";
88
88
  export type { FirestoreIndexConfig } from "./firestore-indexes";
89
89
  export { mergeFirestoreIndices, generateMergedFirestoreIndexFile, } from "./firestore-indexes";
@@ -1,8 +1,9 @@
1
1
  // appkit/src/seed/index.ts
2
2
  //
3
- // Pure fixture data + factories. Server-only seed runner / demoSeed action
4
- // live in `./server.ts` so client-bundles that touch the main appkit barrel
5
- // for fixtures do not transitively reach firebase-admin via the runner.
3
+ // Pure fixture data + factories, consumed by appkit/scripts/seed-cli.mjs
4
+ // (direct-to-Firestore CLI seeding, no web route). The admin seed-panel web
5
+ // UI + its API route were removed see CLAUDE.md Phase 4 (demo seed panel
6
+ // removal).
6
7
  export { registerSeedLocale, getSeedLocale, formatSeedPrice, makeSeedPhone, } from "./seed-market-config";
7
8
  export { makeUser, makeFullUser, USER_FIXTURES, } from "./factories/user.factory";
8
9
  export { makeProduct, makeFullProduct, PRODUCT_FIXTURES, } from "./factories/product.factory";
@@ -67,6 +68,9 @@ export { conversationsSeedData } from "./conversations-seed-data";
67
68
  export { groupedListingsSeedData } from "./grouped-listings-seed-data";
68
69
  export { scammersSeedData } from "./scammers-seed-data";
69
70
  export { supportTicketsSeedData } from "./support-tickets-seed-data";
71
+ // Tester sandbox seed fixtures live in ../features/tester/seed-data (isolated from this
72
+ // folder on purpose) — re-exported here so every other seed consumer keeps one import surface.
73
+ export { testerChecklistSeedData, storesTesterSeedData, categoriesTesterSeedData, productsTesterSeedData, blogTesterSeedData, eventsTesterSeedData, } from "../features/tester/seed-data";
70
74
  export { productFeaturesSeedData } from "./product-features-seed-data";
71
75
  export { offersSeedData } from "./offers-seed-data";
72
76
  // S-STORE Extensions (Tier S-STORE) — 11 new collections
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  const NOW = new Date();
@@ -1,15 +1,16 @@
1
1
  /**
2
2
  * Seed Manifest
3
3
  *
4
- * Lightweight index of every seeded document across all collections.
5
- * Imported by SeedPanel to render previews without loading full seed data.
4
+ * Lightweight index of every seeded document across all collections
5
+ * name/id pairs without loading the full seed data payload.
6
6
  * Auto-derived from the live seed data files — stays in sync automatically.
7
7
  */
8
- import type { SeedCollectionName } from "./actions/demo-seed-actions";
9
8
  export interface SeedManifestEntry {
10
9
  id: string;
11
10
  name: string;
12
11
  type?: string;
13
12
  }
13
+ /** Every collection name the CLI seeder (appkit/scripts/seed-cli.mjs) and this manifest cover. */
14
+ export type SeedCollectionName = "users" | "addresses" | "categories" | "stores" | "products" | "orders" | "reviews" | "bids" | "coupons" | "carousels" | "carouselSlides" | "homepageSections" | "siteSettings" | "faqs" | "notifications" | "payouts" | "blogPosts" | "events" | "eventEntries" | "sessions" | "carts" | "wishlists" | "history" | "conversations" | "groupedListings" | "scammerProfiles" | "supportTickets" | "productFeatures" | "offers" | "couponUsage" | "claimedCoupons" | "payoutMethods" | "shippingConfigs" | "analyticsCards" | "analyticsAlerts" | "storeCategories" | "listingTemplates" | "moderationQueue" | "reports" | "itemRequests" | "storeWhatsAppConfig" | "storeGoogleConfig" | "roleOverrides" | "customRoles" | "adminNotifications" | "lotteryEntries" | "shipments" | "shipmentLots" | "shipmentItems" | "catalogueItems" | "testerChecklistItems";
14
15
  export type SeedManifest = Record<SeedCollectionName, SeedManifestEntry[]>;
15
16
  export declare const SEED_MANIFEST: SeedManifest;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Seed Manifest
3
3
  *
4
- * Lightweight index of every seeded document across all collections.
5
- * Imported by SeedPanel to render previews without loading full seed data.
4
+ * Lightweight index of every seeded document across all collections
5
+ * name/id pairs without loading the full seed data payload.
6
6
  * Auto-derived from the live seed data files — stays in sync automatically.
7
7
  */
8
8
  import { payoutMethodsSeedData, shippingConfigsSeedData, analyticsCardsSeedData, analyticsAlertsSeedData, storeCategoriesSeedData, listingTemplatesSeedData, moderationQueueSeedData, reportsSeedData, itemRequestsSeedData, storeWhatsAppConfigSeedData, storeGoogleConfigSeedData, } from "./store-extensions-seed-data";
@@ -50,6 +50,8 @@ import { productFeaturesSeedData } from "./product-features-seed-data";
50
50
  import { offersSeedData } from "./offers-seed-data";
51
51
  import { couponUsageSeedData } from "./coupon-usage-seed-data";
52
52
  import { claimedCouponsSeedData } from "./claimed-coupons-seed-data";
53
+ // Tester sandbox seed fixtures live in ../features/tester/seed-data (isolated on purpose).
54
+ import { testerChecklistSeedData, storesTesterSeedData, categoriesTesterSeedData, productsTesterSeedData, blogTesterSeedData, eventsTesterSeedData, } from "../features/tester/seed-data";
53
55
  function asArr(items) {
54
56
  return items ?? [];
55
57
  }
@@ -76,12 +78,12 @@ const LISTING_TYPE_TO_MANIFEST_TAG = {
76
78
  stickers: "stickers",
77
79
  };
78
80
  export const SEED_MANIFEST = {
79
- categories: pick(asArr(categoriesSeedData)),
81
+ categories: pick([...asArr(categoriesSeedData), ...asArr(categoriesTesterSeedData)]),
80
82
  users: pick(asArr(usersSeedData).map((u) => ({
81
83
  ...u,
82
84
  name: u.displayName ?? u.email ?? u.uid,
83
85
  }))),
84
- stores: pick(asArr(storesSeedData).map((s) => ({
86
+ stores: pick([...asArr(storesSeedData), ...asArr(storesTesterSeedData)].map((s) => ({
85
87
  ...s,
86
88
  name: s.storeName ?? s.id,
87
89
  }))),
@@ -95,6 +97,7 @@ export const SEED_MANIFEST = {
95
97
  ...asArr(productsLiveItemsSeedData),
96
98
  ...asArr(productsArtSeedData),
97
99
  ...asArr(productsStickersSeedData),
100
+ ...asArr(productsTesterSeedData),
98
101
  ].map((p) => ({
99
102
  ...p,
100
103
  type: p.listingType === "bundle"
@@ -134,11 +137,11 @@ export const SEED_MANIFEST = {
134
137
  shipmentLots: pick(asArr(shipmentLotsSeedData), "lotName"),
135
138
  shipmentItems: pick(asArr(shipmentItemsSeedData), "title"),
136
139
  catalogueItems: pick(asArr(catalogueSeedData), "title"),
137
- blogPosts: pick(asArr(blogPostsSeedData).map((p) => ({
140
+ blogPosts: pick([...asArr(blogPostsSeedData), ...asArr(blogTesterSeedData)].map((p) => ({
138
141
  ...p,
139
142
  name: p.title ?? p.id,
140
143
  }))),
141
- events: pick(asArr(eventsSeedData).map((e) => ({
144
+ events: pick([...asArr(eventsSeedData), ...asArr(eventsTesterSeedData)].map((e) => ({
142
145
  ...e,
143
146
  name: e.title ?? e.id,
144
147
  }))),
@@ -224,4 +227,8 @@ export const SEED_MANIFEST = {
224
227
  roleOverrides: [],
225
228
  customRoles: [],
226
229
  adminNotifications: [],
230
+ testerChecklistItems: pick(asArr(testerChecklistSeedData).map((c) => ({
231
+ ...c,
232
+ name: c.label ?? c.id,
233
+ }))),
227
234
  };
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { NOTIFICATION_FIELDS } from "../features/admin/schemas";
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { OfferStatusValues } from "../features/seller/schemas/firestore";
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  const NOW = new Date();
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { getDefaultCurrency } from "./seed-market-config";
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  export const productsArtSeedData = [];
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  import { PRODUCT_FIELDS } from "../constants/field-names";
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  export const productsClassifiedsSeedData = [];
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  export const productsDigitalCodesSeedData = [];
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  export const productsLiveItemsSeedData = [];
@@ -4,6 +4,8 @@ export declare const productsPreordersSeedData: {
4
4
  title?: string | undefined;
5
5
  description?: string | undefined;
6
6
  slug?: string | undefined;
7
+ isTestData?: boolean | undefined;
8
+ testDataExpiresAt?: Date | undefined;
7
9
  seoTitle?: string | undefined;
8
10
  seoDescription?: string | undefined;
9
11
  seoKeywords?: string[] | undefined;
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  import { PRODUCT_FIELDS } from "../constants/field-names";
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  export const productsPrizeDrawsSeedData = [];
@@ -11,7 +11,7 @@
11
11
  * @tag layer:seed
12
12
  * @tag pattern:none
13
13
  * @tag access:server-only
14
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
14
+ * @tag consumers:seed/index.ts,seed/runner.ts
15
15
  * @tag sideEffects:none
16
16
  */
17
17
  import { PRODUCT_FIELDS } from "../constants/field-names";
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  export const productsStickersSeedData = [];
@@ -11,7 +11,7 @@
11
11
  * @tag layer:seed
12
12
  * @tag pattern:none
13
13
  * @tag access:server-only
14
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
14
+ * @tag consumers:seed/index.ts,seed/runner.ts
15
15
  * @tag sideEffects:none
16
16
  */
17
17
  const NOW = new Date();
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { SCAMMER_FIELDS } from "../constants/field-names";
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  import { getSeedLocale } from "./seed-market-config";
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { getDefaultPhonePrefix, getSeedLocale } from "./seed-market-config";
@@ -381,29 +381,35 @@ export const siteSettingsSeedData = {
381
381
  },
382
382
  featureFlags: {
383
383
  chats: true,
384
- smsVerification: true,
384
+ // Real per-SMS cost via the Firebase phone-auth quota — the one flag
385
+ // that stays off by default; every other flag is enabled.
386
+ smsVerification: false,
385
387
  translations: true,
386
388
  wishlists: true,
387
- auctions: false,
389
+ auctions: true,
388
390
  reviews: true,
389
- events: false,
390
- blog: false,
391
- coupons: false,
391
+ events: true,
392
+ blog: true,
393
+ coupons: true,
392
394
  notifications: true,
393
395
  sellerRegistration: true,
394
- preOrders: false,
395
- seedPanel: true,
396
+ preOrders: true,
396
397
  adminCheckoutBypass: false,
397
- // P-1 MVP: only standard listing type active; others unlocked in later patches.
398
398
  listingTypes: {
399
399
  standard: true,
400
- auction: false,
401
- "pre-order": false,
402
- "prize-draw": false,
403
- bundle: false,
404
- classified: false,
405
- "digital-code": false,
406
- live: false,
400
+ auction: true,
401
+ "pre-order": true,
402
+ "prize-draw": true,
403
+ bundle: true,
404
+ classified: true,
405
+ "digital-code": true,
406
+ live: true,
407
+ },
408
+ categoryTypes: {
409
+ category: true,
410
+ sublisting: true,
411
+ brand: true,
412
+ bundle: true,
407
413
  },
408
414
  },
409
415
  credentials: {
@@ -10,7 +10,7 @@
10
10
  * @tag layer:seed
11
11
  * @tag pattern:none
12
12
  * @tag access:server-only
13
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
13
+ * @tag consumers:seed/index.ts,seed/runner.ts
14
14
  * @tag sideEffects:none
15
15
  */
16
16
  import { getSeedLocale, getDefaultPhonePrefix } from "./seed-market-config";
@@ -13,7 +13,7 @@
13
13
  * @tag layer:seed
14
14
  * @tag pattern:none
15
15
  * @tag access:server-only
16
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
16
+ * @tag consumers:seed/index.ts,seed/runner.ts
17
17
  * @tag sideEffects:none
18
18
  */
19
19
  import { seedExtMedia } from "./_helpers/media";
@@ -11,7 +11,7 @@
11
11
  * @tag layer:seed
12
12
  * @tag pattern:none
13
13
  * @tag access:server-only
14
- * @tag consumers:seed/runner.ts,SeedPanel
14
+ * @tag consumers:seed/runner.ts
15
15
  * @tag sideEffects:none
16
16
  */
17
17
  import { STORE_FIELDS } from "../constants/field-names";
@@ -9,7 +9,7 @@
9
9
  * @tag layer:seed
10
10
  * @tag pattern:none
11
11
  * @tag access:server-only
12
- * @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
12
+ * @tag consumers:seed/index.ts,seed/runner.ts
13
13
  * @tag sideEffects:none
14
14
  */
15
15
  import { SUPPORT_TICKET_FIELDS } from "../constants/field-names";
@@ -0,0 +1,2 @@
1
+ import type { TesterChecklistItemDocument } from "../features/tester/schemas";
2
+ export declare const testerChecklistSeedData: Partial<TesterChecklistItemDocument>[];