@mohasinac/appkit 4.30.18 → 4.31.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 (557) hide show
  1. package/dist/_internal/client/features/digital-code/CodeRevealPanel.js +5 -2
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +3 -3
  3. package/dist/_internal/client/features/layout/useSidebarSearch.d.ts +21 -5
  4. package/dist/_internal/client/features/layout/useSidebarSearch.js +27 -6
  5. package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +23 -3
  6. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +106 -86
  7. package/dist/_internal/client/features/lottery/LotteryPullForm.d.ts +16 -5
  8. package/dist/_internal/client/features/lottery/LotteryPullForm.js +65 -40
  9. package/dist/_internal/client/features/maintenance/views/AnalysisRunnerView.js +5 -2
  10. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +11 -3
  11. package/dist/_internal/client/hand-mode/HandModeProvider.js +2 -0
  12. package/dist/_internal/server/features/auctions/actions.js +14 -3
  13. package/dist/_internal/server/features/auctions/service.js +1 -1
  14. package/dist/_internal/server/features/auth/permissions.d.ts +2 -0
  15. package/dist/_internal/server/features/auth/permissions.js +3 -2
  16. package/dist/_internal/server/features/blog/data.js +2 -2
  17. package/dist/_internal/server/features/blog/service.js +3 -3
  18. package/dist/_internal/server/features/brands/data.js +1 -1
  19. package/dist/_internal/server/features/brands/service.js +3 -3
  20. package/dist/_internal/server/features/bundles/actions.js +6 -1
  21. package/dist/_internal/server/features/bundles/data.js +21 -4
  22. package/dist/_internal/server/features/cart/data.js +3 -1
  23. package/dist/_internal/server/features/cart/service.js +13 -2
  24. package/dist/_internal/server/features/categories/data.js +26 -6
  25. package/dist/_internal/server/features/classified/index.d.ts +0 -1
  26. package/dist/_internal/server/features/classified/index.js +0 -1
  27. package/dist/_internal/server/features/digital-code/index.d.ts +0 -1
  28. package/dist/_internal/server/features/digital-code/index.js +0 -1
  29. package/dist/_internal/server/features/events/actions.js +17 -4
  30. package/dist/_internal/server/features/events/data.js +1 -1
  31. package/dist/_internal/server/features/events/service.js +1 -1
  32. package/dist/_internal/server/features/grouped/data.js +7 -2
  33. package/dist/_internal/server/features/item-requests/data.js +1 -1
  34. package/dist/_internal/server/features/live/index.d.ts +0 -1
  35. package/dist/_internal/server/features/live/index.js +0 -1
  36. package/dist/_internal/server/features/lottery/actions.js +2 -2
  37. package/dist/_internal/server/features/lottery/data.js +1 -1
  38. package/dist/_internal/server/features/orders/actions.js +7 -7
  39. package/dist/_internal/server/features/orders/data.d.ts +1 -1
  40. package/dist/_internal/server/features/orders/data.js +14 -2
  41. package/dist/_internal/server/features/orders/service.js +1 -1
  42. package/dist/_internal/server/features/pre-orders/service.js +1 -1
  43. package/dist/_internal/server/features/prize-draws/actions.js +1 -1
  44. package/dist/_internal/server/features/products/data.js +21 -6
  45. package/dist/_internal/server/features/products/list-public.d.ts +9 -0
  46. package/dist/_internal/server/features/products/list-public.js +95 -7
  47. package/dist/_internal/server/features/products/service.js +1 -1
  48. package/dist/_internal/server/features/promotions/actions.js +1 -1
  49. package/dist/_internal/server/features/promotions/data.js +1 -1
  50. package/dist/_internal/server/features/promotions/service.js +1 -1
  51. package/dist/_internal/server/features/reviews/data.d.ts +1 -1
  52. package/dist/_internal/server/features/reviews/data.js +6 -1
  53. package/dist/_internal/server/features/reviews/og-data.js +1 -1
  54. package/dist/_internal/server/features/shared/listing-data-factory.js +7 -2
  55. package/dist/_internal/server/features/site-settings/adapters.d.ts +2 -2
  56. package/dist/_internal/server/features/site-settings/adapters.js +8 -5
  57. package/dist/_internal/server/features/stores/data.js +1 -1
  58. package/dist/_internal/server/features/sublisting-categories/data.js +1 -1
  59. package/dist/_internal/server/features/tester/visibility.d.ts +2 -1
  60. package/dist/_internal/server/features/tester/visibility.js +2 -2
  61. package/dist/_internal/server/functions/scheduled.d.ts +3 -1
  62. package/dist/_internal/server/functions/scheduled.js +27 -1
  63. package/dist/_internal/server/jobs/core/auctionSettlement.js +6 -1
  64. package/dist/_internal/server/jobs/core/hardBanCascade.js +4 -0
  65. package/dist/_internal/server/jobs/core/index.d.ts +2 -0
  66. package/dist/_internal/server/jobs/core/index.js +2 -0
  67. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +7 -15
  68. package/dist/_internal/server/jobs/core/pageViewPrune.d.ts +10 -0
  69. package/dist/_internal/server/jobs/core/pageViewPrune.js +44 -0
  70. package/dist/_internal/server/jobs/core/pageViewRollup.d.ts +2 -0
  71. package/dist/_internal/server/jobs/core/pageViewRollup.js +87 -0
  72. package/dist/_internal/server/jobs/core/revenueRollup.js +7 -1
  73. package/dist/_internal/server/jobs/handlers/index.d.ts +2 -0
  74. package/dist/_internal/server/jobs/handlers/index.js +2 -0
  75. package/dist/_internal/server/jobs/handlers/pageViewPrune.d.ts +2 -0
  76. package/dist/_internal/server/jobs/handlers/pageViewPrune.js +2 -0
  77. package/dist/_internal/server/jobs/handlers/pageViewRollup.d.ts +2 -0
  78. package/dist/_internal/server/jobs/handlers/pageViewRollup.js +2 -0
  79. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  80. package/dist/_internal/shared/actions/action-registry.js +69 -22
  81. package/dist/_internal/shared/checkout/rules/classified.rule.d.ts +9 -4
  82. package/dist/_internal/shared/checkout/rules/classified.rule.js +7 -2
  83. package/dist/_internal/shared/features/layout/matchesNavQuery.d.ts +14 -0
  84. package/dist/_internal/shared/features/layout/matchesNavQuery.js +72 -0
  85. package/dist/_internal/shared/features/layout/types.d.ts +37 -1
  86. package/dist/_internal/shared/features/layout/types.js +19 -1
  87. package/dist/_internal/shared/features/notifications/action-url.d.ts +9 -1
  88. package/dist/_internal/shared/features/notifications/action-url.js +47 -0
  89. package/dist/_internal/shared/features/offers/config.d.ts +65 -0
  90. package/dist/_internal/shared/features/offers/config.js +73 -2
  91. package/dist/_internal/shared/features/orders/schema.d.ts +19 -1
  92. package/dist/_internal/shared/features/orders/schema.js +22 -2
  93. package/dist/_internal/shared/features/site-settings/types.d.ts +12 -3
  94. package/dist/_internal/shared/listing-types/capabilities.d.ts +8 -2
  95. package/dist/_internal/shared/listing-types/capabilities.js +6 -1
  96. package/dist/_internal/shared/listing-types/classified/ctas.js +6 -1
  97. package/dist/_internal/shared/listing-types/feature-flags.d.ts +10 -5
  98. package/dist/_internal/shared/listing-types/feature-flags.js +11 -6
  99. package/dist/client/api/useApiQuery.js +17 -6
  100. package/dist/client.d.ts +38 -20
  101. package/dist/client.js +39 -14
  102. package/dist/configs/next.js +10 -2
  103. package/dist/constants/api-endpoints.d.ts +18 -54
  104. package/dist/constants/api-endpoints.js +6 -26
  105. package/dist/constants/field-names.d.ts +6 -24
  106. package/dist/constants/field-names.js +10 -27
  107. package/dist/constants/geo/countries.d.ts +50 -0
  108. package/dist/constants/geo/countries.js +129 -0
  109. package/dist/constants/geo/subdivisions.d.ts +13 -0
  110. package/dist/constants/geo/subdivisions.js +104 -0
  111. package/dist/constants/index.d.ts +2 -2
  112. package/dist/constants/index.js +2 -2
  113. package/dist/constants/table-keys.d.ts +24 -0
  114. package/dist/constants/table-keys.js +28 -0
  115. package/dist/contracts/client-realtime.d.ts +6 -0
  116. package/dist/contracts/extend.d.ts +0 -9
  117. package/dist/contracts/index.d.ts +1 -1
  118. package/dist/contracts/realtime-session.d.ts +12 -12
  119. package/dist/contracts/realtime-session.js +79 -77
  120. package/dist/core/browser.d.ts +1 -1
  121. package/dist/core/browser.js +1 -1
  122. package/dist/core/index.d.ts +1 -1
  123. package/dist/core/index.js +1 -1
  124. package/dist/core/site-config.d.ts +0 -3
  125. package/dist/core/site-config.js +0 -3
  126. package/dist/errors/index.d.ts +1 -1
  127. package/dist/errors/index.js +1 -1
  128. package/dist/errors/messages.d.ts +0 -8
  129. package/dist/errors/messages.js +0 -9
  130. package/dist/features/about/components/DeveloperView.js +7 -2
  131. package/dist/features/about/components/PolicyPageView.js +9 -1
  132. package/dist/features/about/components/PublicProfileView.js +23 -5
  133. package/dist/features/about/schemas/index.d.ts +8 -8
  134. package/dist/features/account/components/AddressFilters.js +32 -11
  135. package/dist/features/account/components/AddressForm.d.ts +26 -25
  136. package/dist/features/account/components/AddressForm.js +81 -103
  137. package/dist/features/account/components/AddressesIndexListing.js +8 -4
  138. package/dist/features/account/components/NotificationBell.js +4 -3
  139. package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
  140. package/dist/features/account/components/UserOffersPanel.js +1 -1
  141. package/dist/features/account/components/UserSidebar.d.ts +3 -4
  142. package/dist/features/account/components/UserSupportView.js +89 -58
  143. package/dist/features/account/components/index.d.ts +1 -7
  144. package/dist/features/account/components/index.js +0 -3
  145. package/dist/features/account/hooks/useAddresses.d.ts +4 -3
  146. package/dist/features/account/hooks/useAddresses.js +4 -6
  147. package/dist/features/account/hooks/useCollapsedSections.d.ts +51 -10
  148. package/dist/features/account/hooks/useCollapsedSections.js +211 -38
  149. package/dist/features/account/hooks/useProfile.d.ts +8 -0
  150. package/dist/features/account/index.d.ts +0 -3
  151. package/dist/features/account/index.js +0 -3
  152. package/dist/features/account/schemas/index.d.ts +0 -92
  153. package/dist/features/account/schemas/index.js +42 -20
  154. package/dist/features/addresses/components/AddressLocationFields.d.ts +13 -0
  155. package/dist/features/addresses/components/AddressLocationFields.js +41 -0
  156. package/dist/features/addresses/hooks/usePostalLookup.d.ts +17 -0
  157. package/dist/features/addresses/hooks/usePostalLookup.js +133 -0
  158. package/dist/features/addresses/schemas/address-form.d.ts +423 -0
  159. package/dist/features/addresses/schemas/address-form.js +212 -0
  160. package/dist/features/addresses/schemas/index.d.ts +1 -0
  161. package/dist/features/addresses/schemas/index.js +8 -0
  162. package/dist/features/admin/actions/admin-read-actions.d.ts +1 -1
  163. package/dist/features/admin/actions/index.d.ts +0 -1
  164. package/dist/features/admin/actions/index.js +0 -1
  165. package/dist/features/admin/actions/notification-actions.js +1 -41
  166. package/dist/features/admin/components/AdminActionIndexView.d.ts +32 -0
  167. package/dist/features/admin/components/AdminActionIndexView.js +128 -0
  168. package/dist/features/admin/components/AdminAdEditorView.js +159 -163
  169. package/dist/features/admin/components/AdminAddressEditorView.js +97 -55
  170. package/dist/features/admin/components/AdminBrandEditorView.d.ts +15 -0
  171. package/dist/features/admin/components/AdminBrandEditorView.js +113 -77
  172. package/dist/features/admin/components/AdminBundleEditorView.d.ts +19 -9
  173. package/dist/features/admin/components/AdminBundleEditorView.js +136 -168
  174. package/dist/features/admin/components/AdminCategoryEditorView.js +120 -43
  175. package/dist/features/admin/components/AdminCouponEditorView.js +145 -109
  176. package/dist/features/admin/components/AdminEmployeeEditorView.js +125 -56
  177. package/dist/features/admin/components/AdminFaqEditorView.js +112 -58
  178. package/dist/features/admin/components/AdminFeatureEditorView.js +108 -68
  179. package/dist/features/admin/components/AdminFulfillmentView.js +5 -2
  180. package/dist/features/admin/components/AdminMediaView.js +3 -3
  181. package/dist/features/admin/components/AdminNavEditorView.js +69 -44
  182. package/dist/features/admin/components/AdminOrderEditorView.js +47 -10
  183. package/dist/features/admin/components/AdminPrizeDrawsView.js +16 -2
  184. package/dist/features/admin/components/AdminSidebar.d.ts +11 -7
  185. package/dist/features/admin/components/AdminSiteSettingsView.js +37 -37
  186. package/dist/features/admin/components/AdminStoreEditorView.js +75 -52
  187. package/dist/features/admin/components/AdminSublistingCategoryEditorView.js +71 -30
  188. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +95 -65
  189. package/dist/features/admin/components/BrandQuickCreateForm.d.ts +10 -0
  190. package/dist/features/admin/components/BrandQuickCreateForm.js +49 -26
  191. package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +11 -0
  192. package/dist/features/admin/components/CategoryQuickCreateForm.js +48 -26
  193. package/dist/features/admin/components/index.d.ts +2 -2
  194. package/dist/features/admin/components/index.js +1 -1
  195. package/dist/features/admin/constants/site-settings-tabs.d.ts +120 -0
  196. package/dist/features/admin/constants/site-settings-tabs.js +152 -0
  197. package/dist/features/admin/index.d.ts +0 -3
  198. package/dist/features/admin/index.js +0 -2
  199. package/dist/features/admin/repository/analytics-rollup.repository.d.ts +35 -0
  200. package/dist/features/admin/repository/analytics-rollup.repository.js +30 -0
  201. package/dist/features/admin/schemas/admin-editor-forms.d.ts +56 -57
  202. package/dist/features/admin/schemas/admin-editor-forms.js +97 -54
  203. package/dist/features/admin/schemas/admin-ops-forms.d.ts +57 -5
  204. package/dist/features/admin/schemas/admin-ops-forms.js +104 -20
  205. package/dist/features/admin/schemas/admin-user-form.js +7 -0
  206. package/dist/features/admin/schemas/firestore.d.ts +48 -95
  207. package/dist/features/admin/schemas/firestore.js +15 -151
  208. package/dist/features/admin/schemas/nav-item-form.js +9 -2
  209. package/dist/features/admin/server.d.ts +0 -4
  210. package/dist/features/admin/server.js +0 -2
  211. package/dist/features/admin/types/index.d.ts +0 -7
  212. package/dist/features/analytics/repository/page-views.repository.d.ts +14 -0
  213. package/dist/features/analytics/repository/page-views.repository.js +24 -0
  214. package/dist/features/analytics/types.d.ts +1 -1
  215. package/dist/features/analytics/types.js +13 -0
  216. package/dist/features/auctions/components/AuctionDetailPageView.js +6 -2
  217. package/dist/features/auctions/components/MarketplaceAuctionCard.js +3 -1
  218. package/dist/features/auth/actions/index.d.ts +0 -1
  219. package/dist/features/auth/actions/index.js +0 -1
  220. package/dist/features/auth/actions/profile-actions.js +4 -3
  221. package/dist/features/auth/actions/realtime-token-actions.js +1 -12
  222. package/dist/features/auth/auth-helpers.js +5 -7
  223. package/dist/features/auth/components/ForgotPasswordView.js +1 -1
  224. package/dist/features/auth/components/Guards.js +2 -1
  225. package/dist/features/auth/components/LoginForm.d.ts +0 -2
  226. package/dist/features/auth/components/LoginForm.js +2 -4
  227. package/dist/features/auth/components/RegisterForm.js +62 -19
  228. package/dist/features/auth/components/ResetPasswordView.js +1 -1
  229. package/dist/features/auth/hooks/useAuth.js +3 -0
  230. package/dist/features/auth/permissions/constants.d.ts +27 -1
  231. package/dist/features/auth/role-predicates.d.ts +75 -7
  232. package/dist/features/auth/role-predicates.js +28 -2
  233. package/dist/features/auth/schemas/firestore.d.ts +22 -0
  234. package/dist/features/auth/schemas/index.d.ts +1 -1
  235. package/dist/features/auth/schemas/index.js +44 -8
  236. package/dist/features/auth/types/index.d.ts +14 -1
  237. package/dist/features/blog/api/route.js +10 -2
  238. package/dist/features/blog/components/BlogIndexListing.js +1 -1
  239. package/dist/features/blog/hooks/useBlog.js +2 -2
  240. package/dist/features/blog/repository/blog.repository.js +3 -1
  241. package/dist/features/blog/schemas/index.d.ts +4 -0
  242. package/dist/features/blog/schemas/index.js +2 -0
  243. package/dist/features/blog/types/index.d.ts +1 -1
  244. package/dist/features/cart/actions/cart-actions.js +13 -4
  245. package/dist/features/cart/utils/pending-ops.js +1 -1
  246. package/dist/features/catalogue/components/CatalogueItemEditorView.d.ts +22 -0
  247. package/dist/features/catalogue/components/CatalogueItemEditorView.js +112 -52
  248. package/dist/features/catalogue/schemas/validation.d.ts +4 -4
  249. package/dist/features/catalogue/schemas/validation.js +47 -10
  250. package/dist/features/categories/components/BrandDetailPageView.js +28 -12
  251. package/dist/features/categories/components/CategoryDetailPageView.js +37 -20
  252. package/dist/features/categories/repository/categories.repository.js +3 -1
  253. package/dist/features/categories/schemas/bundle-form.d.ts +142 -0
  254. package/dist/features/categories/schemas/bundle-form.js +149 -0
  255. package/dist/features/checkout/actions/checkout-value-otp-actions.js +10 -1
  256. package/dist/features/classified/components/ClassifiedContactSellerPanel.js +1 -1
  257. package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +5 -4
  258. package/dist/features/classified/components/ClassifiedDetailPageView.js +47 -18
  259. package/dist/features/consultation/components/ConsultationForm.js +1 -1
  260. package/dist/features/consultation/schemas/index.js +34 -10
  261. package/dist/features/corporate/schemas/index.js +36 -15
  262. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +4 -1
  263. package/dist/features/events/components/EventBanner.js +5 -2
  264. package/dist/features/events/components/EventOfferCard.js +3 -1
  265. package/dist/features/events/components/EventPollWidget.js +1 -1
  266. package/dist/features/events/components/SpinWheelView.js +3 -2
  267. package/dist/features/filters/FilterPanel.js +3 -3
  268. package/dist/features/filters/RangeFilter.d.ts +10 -0
  269. package/dist/features/filters/RangeFilter.js +41 -4
  270. package/dist/features/grouped/components/GroupedListingEditorView.js +2 -1
  271. package/dist/features/history/hooks/useHistory.js +29 -27
  272. package/dist/features/homepage/components/AdSlot.js +3 -1
  273. package/dist/features/homepage/components/GoogleReviewsSection.js +8 -2
  274. package/dist/features/homepage/components/MarketplaceHomepageView.js +58 -15
  275. package/dist/features/homepage/components/SocialFeedSection.js +4 -1
  276. package/dist/features/homepage/hooks/useBlogArticles.js +1 -1
  277. package/dist/features/homepage/lib/live-stats.js +8 -1
  278. package/dist/features/homepage/repository/carousel.repository.js +2 -1
  279. package/dist/features/layout/BottomActions.js +84 -11
  280. package/dist/features/layout/BottomActionsContext.d.ts +1 -6
  281. package/dist/features/layout/BottomActionsContext.js +1 -1
  282. package/dist/features/layout/hooks/useBottomActions.js +2 -2
  283. package/dist/features/layout/hooks/useFormBottomActions.d.ts +12 -1
  284. package/dist/features/layout/hooks/useFormBottomActions.js +12 -6
  285. package/dist/features/live/components/LiveItemDetailPageView.js +4 -1
  286. package/dist/features/lottery/schemas/config-write.d.ts +9 -5
  287. package/dist/features/lottery/schemas/config-write.js +69 -9
  288. package/dist/features/media/finalize.js +3 -1
  289. package/dist/features/media/modals/ImageEditor.js +1 -1
  290. package/dist/features/media/modals/VideoThumbnailSelector.js +5 -2
  291. package/dist/features/media/modals/VideoTrimModal.js +5 -2
  292. package/dist/features/media/upload/MediaUploadField.js +2 -2
  293. package/dist/features/messages/hooks/useConversation.js +18 -4
  294. package/dist/features/messages/hooks/useConversations.js +25 -8
  295. package/dist/features/orders/components/RefundRequestView.js +5 -2
  296. package/dist/features/orders/schemas/buyer-forms.d.ts +6 -3
  297. package/dist/features/orders/schemas/buyer-forms.js +31 -3
  298. package/dist/features/orders/schemas/index.d.ts +2 -2
  299. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +3 -1
  300. package/dist/features/pre-orders/components/PreOrderActionsClient.js +1 -1
  301. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +4 -1
  302. package/dist/features/products/components/GroupSettingsPanel.js +3 -1
  303. package/dist/features/products/components/MakeOfferButton.d.ts +13 -2
  304. package/dist/features/products/components/MakeOfferButton.js +33 -11
  305. package/dist/features/products/components/PrizeDrawDetailPageView.js +4 -1
  306. package/dist/features/products/components/ProductDetailActions.js +0 -1
  307. package/dist/features/products/components/ProductDetailPageView.d.ts +7 -3
  308. package/dist/features/products/components/ProductDetailPageView.js +16 -7
  309. package/dist/features/products/components/ShareButton.js +3 -1
  310. package/dist/features/products/constants/action-defs.d.ts +1 -2
  311. package/dist/features/products/constants/action-defs.js +40 -43
  312. package/dist/features/products/repository/loadProductFeatures.js +10 -2
  313. package/dist/features/products/repository/products.repository.d.ts +5 -1
  314. package/dist/features/products/repository/products.repository.js +25 -2
  315. package/dist/features/products/schemas/firestore.d.ts +7 -3
  316. package/dist/features/products/schemas/product-features.validators.js +3 -0
  317. package/dist/features/promotions/components/CouponCard.js +11 -8
  318. package/dist/features/reviews/actions/review-actions.js +8 -1
  319. package/dist/features/reviews/components/ReviewDetailPageView.js +13 -3
  320. package/dist/features/reviews/components/ReviewDetailShell.js +3 -1
  321. package/dist/features/scams/actions/scam-actions.d.ts +9 -1
  322. package/dist/features/scams/actions/scam-actions.js +52 -12
  323. package/dist/features/scams/components/SellerTrustBadge.d.ts +1 -1
  324. package/dist/features/scams/components/SellerTrustBadge.js +13 -0
  325. package/dist/features/scams/repository/scammer.repository.js +2 -1
  326. package/dist/features/scams/schemas/firestore.d.ts +15 -1
  327. package/dist/features/scams/schemas/report-form.d.ts +5 -5
  328. package/dist/features/scams/schemas/report-form.js +18 -3
  329. package/dist/features/search/action-index/derive.d.ts +49 -0
  330. package/dist/features/search/action-index/derive.js +121 -0
  331. package/dist/features/search/action-index/repository.d.ts +42 -0
  332. package/dist/features/search/action-index/repository.js +100 -0
  333. package/dist/features/search/action-index/settings-entries.d.ts +41 -0
  334. package/dist/features/search/action-index/settings-entries.js +268 -0
  335. package/dist/features/search/action-index/types.d.ts +81 -0
  336. package/dist/features/search/action-index/types.js +102 -0
  337. package/dist/features/search/action-index/validate-entry.d.ts +34 -0
  338. package/dist/features/search/action-index/validate-entry.js +114 -0
  339. package/dist/features/search/hooks/useNavSuggestions.d.ts +5 -1
  340. package/dist/features/search/hooks/useNavSuggestions.js +23 -3
  341. package/dist/features/search/repository/search.repository.js +3 -1
  342. package/dist/features/seller/actions/offer-actions.js +43 -19
  343. package/dist/features/seller/actions/seller-actions.js +29 -5
  344. package/dist/features/seller/components/CategoryChipPicker.d.ts +9 -0
  345. package/dist/features/seller/components/CategoryChipPicker.js +12 -0
  346. package/dist/features/seller/components/FulfillmentView.js +5 -2
  347. package/dist/features/seller/components/PhysicalLocationModal.js +1 -1
  348. package/dist/features/seller/components/PrintCenterView.js +3 -1
  349. package/dist/features/seller/components/SellerAddressesView.js +5 -1
  350. package/dist/features/seller/components/SellerAnalyticsAlertsView.js +83 -43
  351. package/dist/features/seller/components/SellerArtView.d.ts +14 -7
  352. package/dist/features/seller/components/SellerArtView.js +4 -119
  353. package/dist/features/seller/components/SellerBidsView.js +1 -1
  354. package/dist/features/seller/components/SellerClassifiedView.d.ts +14 -7
  355. package/dist/features/seller/components/SellerClassifiedView.js +4 -124
  356. package/dist/features/seller/components/SellerCouponEditorView.d.ts +22 -1
  357. package/dist/features/seller/components/SellerCouponEditorView.js +91 -45
  358. package/dist/features/seller/components/SellerCouponsView.js +1 -1
  359. package/dist/features/seller/components/SellerDigitalCodesView.d.ts +14 -7
  360. package/dist/features/seller/components/SellerDigitalCodesView.js +4 -126
  361. package/dist/features/seller/components/SellerGoogleReviewsView.js +2 -2
  362. package/dist/features/seller/components/SellerListingTypeView.d.ts +66 -0
  363. package/dist/features/seller/components/SellerListingTypeView.js +277 -0
  364. package/dist/features/seller/components/SellerLiveView.d.ts +14 -7
  365. package/dist/features/seller/components/SellerLiveView.js +4 -126
  366. package/dist/features/seller/components/SellerOrdersView.js +3 -3
  367. package/dist/features/seller/components/SellerPayoutMethodsView.js +2 -2
  368. package/dist/features/seller/components/SellerProductShell.d.ts +5 -0
  369. package/dist/features/seller/components/SellerProductShell.js +15 -5
  370. package/dist/features/seller/components/SellerProductsView.js +24 -10
  371. package/dist/features/seller/components/SellerReviewsView.js +47 -16
  372. package/dist/features/seller/components/SellerShippingConfigsView.js +5 -4
  373. package/dist/features/seller/components/SellerSidebar.d.ts +3 -6
  374. package/dist/features/seller/components/SellerStickersView.d.ts +14 -7
  375. package/dist/features/seller/components/SellerStickersView.js +4 -119
  376. package/dist/features/seller/components/SellerStoreCategoriesView.js +3 -2
  377. package/dist/features/seller/components/SellerSupportView.d.ts +31 -0
  378. package/dist/features/seller/components/SellerSupportView.js +100 -0
  379. package/dist/features/seller/components/index.d.ts +4 -8
  380. package/dist/features/seller/components/index.js +2 -4
  381. package/dist/features/seller/index.d.ts +0 -1
  382. package/dist/features/seller/index.js +0 -1
  383. package/dist/features/seller/schemas/coupon-form.d.ts +214 -0
  384. package/dist/features/seller/schemas/coupon-form.js +155 -23
  385. package/dist/features/seller/schemas/offer-forms.d.ts +16 -7
  386. package/dist/features/seller/schemas/offer-forms.js +28 -12
  387. package/dist/features/shell/FormShell.js +2 -2
  388. package/dist/features/shell/QuickFormDrawer.js +2 -2
  389. package/dist/features/shell/SectionForm.d.ts +19 -1
  390. package/dist/features/shell/SectionForm.js +104 -17
  391. package/dist/features/shell/build-sections.d.ts +23 -0
  392. package/dist/features/shell/build-sections.js +106 -8
  393. package/dist/features/shell/field-ui-meta.d.ts +44 -0
  394. package/dist/features/shell/field-ui-meta.js +14 -7
  395. package/dist/features/shell/form-sections.d.ts +46 -0
  396. package/dist/features/shell/form-sections.js +114 -0
  397. package/dist/features/shipments/components/AdminShipmentEditorView.js +87 -64
  398. package/dist/features/shipments/schemas/validation.d.ts +2 -2
  399. package/dist/features/shipments/schemas/validation.js +44 -13
  400. package/dist/features/store-extensions/schemas/custom-role-form.js +6 -2
  401. package/dist/features/store-extensions/schemas/listing-template-form.d.ts +7 -7
  402. package/dist/features/store-extensions/schemas/payout-method-form.js +14 -0
  403. package/dist/features/stores/actions/store-query-actions.js +3 -2
  404. package/dist/features/stores/api/[storeSlug]/auctions/route.js +3 -1
  405. package/dist/features/stores/api/[storeSlug]/products/route.js +3 -1
  406. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -1
  407. package/dist/features/stores/components/StoreDetailLayoutView.js +12 -3
  408. package/dist/features/support/repository/support.repository.d.ts +21 -0
  409. package/dist/features/support/repository/support.repository.js +63 -0
  410. package/dist/features/support/schemas/firestore.d.ts +27 -2
  411. package/dist/features/support/schemas/firestore.js +2 -0
  412. package/dist/features/support/schemas/ticket-create-form.js +7 -0
  413. package/dist/features/tester/schemas/checklist-item-form.d.ts +43 -0
  414. package/dist/features/tester/schemas/checklist-item-form.js +109 -0
  415. package/dist/features/tester/seed-data/blog-tester-seed-data.js +2 -2
  416. package/dist/features/tester/seed-data/categories-tester-seed-data.js +2 -2
  417. package/dist/features/tester/seed-data/events-tester-seed-data.js +5 -5
  418. package/dist/features/tester/seed-data/orders-tester-seed-data.js +2 -2
  419. package/dist/features/tester/seed-data/products-tester-seed-data.js +48 -49
  420. package/dist/features/tester/seed-data/stores-tester-seed-data.js +3 -3
  421. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +291 -30
  422. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +51 -14
  423. package/dist/features/wishlist/hooks/useWishlistToggle.js +8 -1
  424. package/dist/http/api-handler.js +2 -1
  425. package/dist/index.d.ts +25 -104
  426. package/dist/index.js +38 -143
  427. package/dist/jobs.d.ts +1 -1
  428. package/dist/jobs.js +1 -1
  429. package/dist/monitoring/browser.d.ts +0 -2
  430. package/dist/monitoring/browser.js +12 -1
  431. package/dist/monitoring/index.d.ts +0 -2
  432. package/dist/monitoring/index.js +0 -1
  433. package/dist/next/api/routeHandler.js +9 -4
  434. package/dist/next/index.d.ts +1 -2
  435. package/dist/next/index.js +0 -1
  436. package/dist/next/middleware/index.d.ts +0 -2
  437. package/dist/next/middleware/index.js +0 -1
  438. package/dist/next/routing/route-map.d.ts +8 -7
  439. package/dist/next/routing/route-map.js +10 -3
  440. package/dist/providers/auth-firebase/session.js +3 -1
  441. package/dist/providers/db-firebase/admin-app-lite.js +8 -8
  442. package/dist/providers/db-firebase/admin.js +27 -13
  443. package/dist/providers/db-firebase/browser-stub.d.ts +1 -11
  444. package/dist/providers/db-firebase/browser-stub.js +6 -11
  445. package/dist/providers/db-firebase/index.d.ts +0 -1
  446. package/dist/providers/db-firebase/index.js +0 -1
  447. package/dist/providers/db-firebase/rtdb-paths.d.ts +15 -6
  448. package/dist/providers/db-firebase/rtdb-paths.js +15 -6
  449. package/dist/providers/db-firebase/rtdb-url.d.ts +27 -0
  450. package/dist/providers/db-firebase/rtdb-url.js +50 -0
  451. package/dist/providers/db-firebase/sieve.d.ts +22 -0
  452. package/dist/providers/firebase-client/realtime.d.ts +20 -0
  453. package/dist/providers/firebase-client/realtime.js +34 -1
  454. package/dist/providers.d.ts +1 -1
  455. package/dist/providers.js +1 -1
  456. package/dist/react/hooks/use-action-dispatch.js +8 -2
  457. package/dist/react/hooks/useFormStatePreservation.js +3 -1
  458. package/dist/react/hooks/useListingTypeFlags.d.ts +1 -1
  459. package/dist/react/hooks/useListingTypeFlags.js +1 -1
  460. package/dist/react/hooks/usePendingFilters.js +5 -3
  461. package/dist/react/hooks/usePendingTable.js +15 -3
  462. package/dist/react/hooks/useRealtimeEvent.js +20 -9
  463. package/dist/repositories/index.d.ts +0 -1
  464. package/dist/repositories/index.js +0 -1
  465. package/dist/schemas/registry.d.ts +197 -232
  466. package/dist/schemas/registry.js +5 -6
  467. package/dist/schemas/webhooks/razorpay.d.ts +50 -50
  468. package/dist/security/authorization.d.ts +9 -0
  469. package/dist/security/authorization.js +16 -2
  470. package/dist/security/browser.d.ts +1 -3
  471. package/dist/security/browser.js +5 -2
  472. package/dist/security/index.d.ts +1 -3
  473. package/dist/security/index.js +19 -2
  474. package/dist/security/pii-encrypt.js +16 -0
  475. package/dist/security/pii-schemas.d.ts +0 -14
  476. package/dist/security/pii-schemas.js +7 -15
  477. package/dist/seed/_helpers/category-forest.js +2 -2
  478. package/dist/seed/_helpers/media.d.ts +19 -0
  479. package/dist/seed/_helpers/media.js +75 -0
  480. package/dist/seed/blog-posts-seed-data.js +17 -17
  481. package/dist/seed/carousel-slides-seed-data.js +7 -7
  482. package/dist/seed/cart-seed-data.js +13 -13
  483. package/dist/seed/categories-seed-data.js +10 -10
  484. package/dist/seed/events-seed-data.js +24 -24
  485. package/dist/seed/factories/product.factory.js +4 -4
  486. package/dist/seed/factories/store.factory.js +3 -3
  487. package/dist/seed/factories/user.factory.js +2 -2
  488. package/dist/seed/grouped-listings-seed-data.js +11 -11
  489. package/dist/seed/homepage-sections-seed-data.js +2 -2
  490. package/dist/seed/index.d.ts +0 -1
  491. package/dist/seed/index.js +0 -1
  492. package/dist/seed/manifest.d.ts +1 -1
  493. package/dist/seed/manifest.js +0 -5
  494. package/dist/seed/notifications-seed-data.js +20 -1
  495. package/dist/seed/orders-seed-data.js +2 -2
  496. package/dist/seed/products-art-seed-data.js +16 -16
  497. package/dist/seed/products-auctions-seed-data.js +34 -34
  498. package/dist/seed/products-classifieds-seed-data.js +35 -37
  499. package/dist/seed/products-digital-codes-seed-data.js +20 -20
  500. package/dist/seed/products-live-items-seed-data.js +11 -11
  501. package/dist/seed/products-preorders-seed-data.js +13 -13
  502. package/dist/seed/products-prize-draws-seed-data.js +43 -43
  503. package/dist/seed/products-standard-seed-data.js +54 -54
  504. package/dist/seed/products-stickers-seed-data.js +15 -15
  505. package/dist/seed/reviews-seed-data.js +4 -4
  506. package/dist/seed/scammers-seed-data.js +3 -3
  507. package/dist/seed/site-settings-seed-data.js +11 -24
  508. package/dist/seed/store-extensions-seed-data.js +10 -10
  509. package/dist/seed/stores-seed-data.js +11 -11
  510. package/dist/seed/support-tickets-seed-data.d.ts +14 -0
  511. package/dist/seed/support-tickets-seed-data.js +20 -1
  512. package/dist/seed/users-seed-data.js +20 -20
  513. package/dist/server-entry.d.ts +0 -1
  514. package/dist/server-entry.js +0 -1
  515. package/dist/server.d.ts +9 -6
  516. package/dist/server.js +7 -13
  517. package/dist/styles.css +248 -68
  518. package/dist/tailwind-utilities.css +1 -1
  519. package/dist/tokens/themes/default-dark.js +2 -2
  520. package/dist/tokens/themes/default-light.js +2 -2
  521. package/dist/tokens/tokens.css +24 -4
  522. package/dist/ui/components/ActionRow.d.ts +50 -0
  523. package/dist/ui/components/ActionRow.js +53 -0
  524. package/dist/ui/components/ActionRow.style.css +145 -0
  525. package/dist/ui/components/Drawer.d.ts +10 -0
  526. package/dist/ui/components/Drawer.js +2 -1
  527. package/dist/ui/components/FilterDrawer.js +4 -1
  528. package/dist/ui/components/FilterDrawer.style.css +6 -12
  529. package/dist/ui/components/FormActionBar.js +14 -1
  530. package/dist/ui/components/FormActionBar.style.css +12 -11
  531. package/dist/ui/components/ListingLayout.js +8 -1
  532. package/dist/ui/components/ListingLayout.style.css +6 -13
  533. package/dist/ui/components/Modal.d.ts +15 -1
  534. package/dist/ui/components/Modal.js +17 -3
  535. package/dist/ui/components/QuickCreateModal.js +2 -2
  536. package/dist/ui/components/QuickCreateModal.style.css +78 -84
  537. package/dist/ui/components/RecordDetailModal.js +2 -2
  538. package/dist/ui/components/SideDrawer.d.ts +8 -0
  539. package/dist/ui/components/SideDrawer.js +2 -1
  540. package/dist/ui/components/SideDrawer.style.css +6 -3
  541. package/dist/ui/components/SideModal.d.ts +11 -1
  542. package/dist/ui/components/SideModal.js +3 -2
  543. package/dist/ui/components/SideModal.style.css +14 -0
  544. package/dist/ui/components/Typography.style.css +33 -24
  545. package/dist/ui/components/index.style.css +1 -0
  546. package/dist/ui/components/toolbar-collapse.js +1 -2
  547. package/dist/ui/forms/FormShell.style.css +260 -311
  548. package/dist/ui/index.d.ts +2 -0
  549. package/dist/ui/index.js +1 -0
  550. package/dist/utils/index.d.ts +0 -1
  551. package/dist/utils/index.js +0 -1
  552. package/dist/validation/index.d.ts +1 -1
  553. package/dist/validation/index.js +1 -1
  554. package/dist/validation/schemas.d.ts +0 -19
  555. package/dist/validation/schemas.js +8 -19
  556. package/package.json +1 -1
  557. package/scripts/seed-cli.mjs +3 -6
package/dist/client.js CHANGED
@@ -4,6 +4,9 @@
4
4
  // Used by useApiMutation / useApiQuery / Button surface-error to route ApiError → toast or inline field error.
5
5
  export { HTTP_ERROR_CODES, mapToHttpError } from "./errors/error-mapping";
6
6
  export { ERROR_DISPLAY_MAP, getErrorDisplay } from "./errors/error-display-map";
7
+ // toUserMessage — the only sanctioned path from a failure to user-facing copy.
8
+ // It terminates in a constant, so a thrown value's own .message never surfaces.
9
+ export { toUserMessage, GENERIC_USER_MESSAGE } from "./errors/error-display-map";
7
10
  export { RazorpayUnreachableError } from "./errors/razorpay-unreachable";
8
11
  export { isOk, unwrap } from "./utils/action-result";
9
12
  // [CLIENT-SAFE] Client error class + surface-error router + reporter primitives.
@@ -22,7 +25,6 @@ export { setErrorTracker, trackError, ErrorCategory, ErrorSeverity, } from "./mo
22
25
  // on failure, optional `loadingMessage` for long ops.
23
26
  export { useApiMutation } from "./client/api/useApiMutation";
24
27
  export { useApiQuery } from "./client/api/useApiQuery";
25
- export { useFeatureFlags } from "./client/api/useFeatureFlags";
26
28
  // [CLIENT-ONLY] Maintenance UI — listing + detail + dashboard + analysis runner.
27
29
  // Consumed by the /admin/maintenance/* page shims.
28
30
  export { ServerErrorsListView, ServerErrorDetailView, MaintenanceDashboardView, AnalysisRunnerView, CloudLogsListView, } from "./_internal/client/features/maintenance";
@@ -155,7 +157,8 @@ export { lotteryConfigWriteSchema, lotterySlotWriteSchema } from "./features/lot
155
157
  // The SectionForm engine + its schema-derived section builder. Client-only:
156
158
  // consumer forms need these and the bare package resolves to the SERVER entry.
157
159
  export { SectionForm, useSectionFormNav } from "./features/shell/SectionForm";
158
- export { buildSectionsFromSchema } from "./features/shell/build-sections";
160
+ export { buildSectionsFromSchema, visibleValues } from "./features/shell/build-sections";
161
+ export { FORM_SECTION_GROUP, SECTION_GROUP_DEFAULTS, groupRank, resolveSectionGroup } from "./features/shell/form-sections";
159
162
  export { reportCreateSchema } from "./features/store-extensions/schemas/report-create-form";
160
163
  export { itemRequestCreateSchema } from "./features/store-extensions/schemas/item-request-create-form";
161
164
  export { supportTicketCreateSchema } from "./features/support/schemas/ticket-create-form";
@@ -249,6 +252,7 @@ export { Label, Text, Span, Caption } from "./ui/components/Typography";
249
252
  export { TextLink } from "./ui/components/TextLink";
250
253
  export { Anchor } from "./ui/components/Anchor";
251
254
  export { IconButton } from "./ui/index";
255
+ export { ActionRow } from "./ui/components/ActionRow";
252
256
  export { Textarea } from "./ui/components/Textarea";
253
257
  export { GlobalError } from "./next/components/GlobalError";
254
258
  export { AppLayoutShell, LocaleSwitcher, useDashboardNav, BottomActionsProvider, useBottomActions, DashboardNavProvider, LayoutClient } from "./features/layout/index";
@@ -271,7 +275,7 @@ export { CouponHelpDetails } from "./features/promotions/components/CouponHelpDe
271
275
  export { NotificationBell } from "./features/account/components/NotificationBell";
272
276
  export { NotificationPreferencesPanel } from "./features/account/components/NotificationPreferencesPanel";
273
277
  export { LinkedAccountsSection } from "./features/account/components/LinkedAccountsSection";
274
- export { useCollapsedSections } from "./features/account/hooks/useCollapsedSections";
278
+ export { useCollapsedSections, useSectionState, } from "./features/account/hooks/useCollapsedSections";
275
279
  export { PageViewTracker } from "./features/analytics/components/PageViewTracker";
276
280
  export { PAGE_VIEW_ENTITY_TYPES } from "./features/analytics/types";
277
281
  export { AuctionBidsTable } from "./features/auctions/components/AuctionBidsTable";
@@ -320,13 +324,6 @@ export { COMPARE_MAX_ITEMS } from "./features/products/constants/action-defs";
320
324
  export { STANDARD_SORT_OPTIONS, STANDARD_PUBLIC_SORT_OPTIONS, AUCTION_SORT_OPTIONS, AUCTION_PUBLIC_SORT_OPTIONS, PREORDER_SORT_OPTIONS, PREORDER_PUBLIC_SORT_OPTIONS, BUNDLE_SORT_OPTIONS, PRIZE_DRAW_SORT_OPTIONS, PRIZE_DRAW_PUBLIC_SORT_OPTIONS, } from "./features/products/constants/sieve";
321
325
  // Derived from the listing-type plugin registry — see the note in index.ts.
322
326
  export { sortOptionsFor, commonSortOptionsFor, hideDefaultsFor, } from "./_internal/shared/listing-types/_registry";
323
- // Messages — RTDB-pinged Firestore conversations (D5 + VC7)
324
- export { MessagesView } from "./features/account/components/MessagesView";
325
- export { ChatList } from "./features/account/components/ChatList";
326
- export { ChatWindow } from "./features/account/components/ChatWindow";
327
- export { useConversations, useConversation } from "./features/messages/index";
328
- export { CONVERSATIONS_COLLECTION, CONVERSATIONS_INDEXED_FIELDS, } from "./features/messages/index";
329
- export { CONVERSATIONS_PING_PATH, CONVERSATIONS_PING_USER_PATH, } from "./features/messages/hooks/useConversation";
330
327
  // Product / listing actions
331
328
  export { ACTION_ID, ACTION_META, DETAIL_ACTIONS, MOBILE_PRIMARY_ACTIONS, LISTING_BULK_ACTIONS } from "./features/products/index";
332
329
  // Row / table actions (admin, seller, user dashboards)
@@ -351,7 +348,9 @@ export { ProductFeaturesProvider, useProductFeatures, } from "./features/product
351
348
  export { FeatureBadge, FeatureBadgeList } from "./features/products/components/FeatureBadge";
352
349
  export { UserOffersPanel } from "./features/account/components/UserOffersPanel";
353
350
  export { SellerDashboardView as StoreDashboardView, SellerDashboardView, useSellerDashboard as useStoreDashboard, useSellerDashboard } from "./features/seller/index";
354
- export { SellerPayoutSettingsView, SellerShippingView, SellerReviewsView, SellerPayoutRequestView, SellerAnalyticsStats, SellerTopProducts, SellerAnalyticsView, SellerPayoutsView, SellerCouponEditorView, SellerBidsView, SellerAddressesView, SellerPreOrdersView, SellerPrizeDrawsView, PrintCenterView, SellerOffersView, SellerGroupedListingsView, StoreGroupedListingsView, SellerAnalyticsAlertsView, StoreAnalyticsAlertsView, BarcodeField, FulfillmentView } from "./features/seller/components/index";
351
+ export { SellerPayoutSettingsView, SellerShippingView, SellerReviewsView, SellerPayoutRequestView, SellerAnalyticsStats, SellerTopProducts, SellerAnalyticsView, SellerPayoutsView, SellerCouponEditorView, SellerBidsView, SellerAddressesView, PrintCenterView, SellerOffersView, SellerGroupedListingsView, StoreGroupedListingsView, SellerAnalyticsAlertsView, StoreAnalyticsAlertsView, BarcodeField, FulfillmentView, SellerListingTypeView, SELLER_LISTING_TYPE_SPECS } from "./features/seller/components/index";
352
+ /* The draft → route conversion, so both coupon callsites share one rule. */
353
+ export { couponDraftToPayload } from "./features/seller/schemas/coupon-form";
355
354
  export { UserAccountHubView, UserOrdersView, UserBidsView, OrderDetailView, UserNotificationsView, UserReturnsView, UserSupportView, useNotifications } from "./features/account/index";
356
355
  export { useOrders, useOrder, OrdersList } from "./features/orders/index";
357
356
  export { OrderStatusTimeline } from "./features/orders/components/OrderStatusTimeline";
@@ -390,7 +389,7 @@ export { cartRequiresShipping, cartIsDigitalOnly, cartIsChatOnly, } from "./_int
390
389
  export { ACTIONS, action, act, canPerformAction, actionsForListingType, actionLabel, } from "./_internal/shared/actions/action-registry";
391
390
  export { buildBulkAction } from "./_internal/shared/actions/bulk-helpers";
392
391
  // SB-UNI-E user-role predicates (pure functions, client-safe).
393
- export { isAdminUser, isSellerUser, isModeratorUser, isEmployeeUser, isBuyerUser, isEffectiveAdminUser, } from "./features/auth/role-predicates";
392
+ export { isAdminUser, isSellerUser, isModeratorUser, isEmployeeUser, isBuyerUser, isEffectiveAdminUser, isTesterUser, canTestAdminSurfaces, isStrictSellerUser, isAccountDisabled, } from "./features/auth/role-predicates";
394
393
  // Layout feature — client islands (unifies admin/store/user dashboard layouts).
395
394
  export { DashboardLayoutClient, RoleGuard } from "./_internal/client/features/layout/index";
396
395
  // Listing-type capability registry — SB-UNI X1.
@@ -457,7 +456,7 @@ export { API_ENDPOINTS } from "./constants/index";
457
456
  // sets and Firestore field-name maps. No server dependency of any kind.
458
457
  export { SELLER_LISTING_TABS, } from "./features/products/constants/listing-tabs";
459
458
  export { ALL_TAB, EMPTY_TAB, ADMIN_PRODUCT_STATUS_TABS, ADMIN_PRODUCT_LISTING_TYPE_TABS, ADMIN_BLOG_STATUS_TABS, ADMIN_USER_STATUS_TABS, ADMIN_USER_ROLE_TABS, ADMIN_STORE_STATUS_TABS, ADMIN_PAYOUT_STATUS_TABS, ADMIN_ORDER_STATUS_TABS, ADMIN_REVIEW_STATUS_TABS, ADMIN_REVIEW_RATING_TABS, ADMIN_BID_STATUS_TABS, ADMIN_CONTACT_STATUS_TABS, ADMIN_NEWSLETTER_STATUS_TABS, ADMIN_EVENT_ENTRY_STATUS_TABS, ADMIN_EVENT_STATUS_TABS, ADMIN_CART_OWNERSHIP_TABS, ADMIN_COUPON_TYPE_TABS, SELLER_PRODUCT_STATUS_TABS, SELLER_AUCTION_STATUS_TABS, SELLER_ORDER_STATUS_TABS, SELLER_OFFER_STATUS_TABS, SELLER_BID_STATUS_TABS, } from "./features/admin/constants/filter-tabs";
460
- export { PRODUCT_FIELDS, PRODUCT_STATUS_TRANSITIONS, ORDER_FIELDS, REVIEW_FIELDS, BID_FIELDS, AD_FIELDS, EVENT_FIELDS, EVENT_ENTRY_FIELDS, PAYOUT_FIELDS, STORE_FIELDS, CATEGORY_FIELDS, BLOG_FIELDS, USER_FIELDS, ADDRESS_FIELDS, BRAND_FIELDS, CART_FIELDS, WISHLIST_FIELDS, HISTORY_FIELDS, NOTIFICATION_FIELDS, SESSION_FIELDS, COUPON_USAGE_FIELDS, CONVERSATION_FIELDS, SCAMMER_FIELDS, SUPPORT_TICKET_FIELDS, CAROUSEL_FIELDS, COUPON_FIELDS, FAQ_FIELDS, HOMEPAGE_SECTION_FIELDS, SITE_SETTINGS_FIELDS, COMMON_FIELDS, OAUTH_STATE_VALUES, SCHEMA_DEFAULTS, } from "./constants/field-names";
459
+ export { PRODUCT_FIELDS, PRODUCT_STATUS_TRANSITIONS, ORDER_FIELDS, REVIEW_FIELDS, BID_FIELDS, AD_FIELDS, EVENT_FIELDS, EVENT_ENTRY_FIELDS, PAYOUT_FIELDS, STORE_FIELDS, CATEGORY_FIELDS, BLOG_FIELDS, USER_FIELDS, ADDRESS_FIELDS, BRAND_FIELDS, CART_FIELDS, WISHLIST_FIELDS, HISTORY_FIELDS, NOTIFICATION_FIELDS, SESSION_FIELDS, COUPON_USAGE_FIELDS, SCAMMER_FIELDS, SUPPORT_TICKET_FIELDS, CAROUSEL_FIELDS, COUPON_FIELDS, FAQ_FIELDS, HOMEPAGE_SECTION_FIELDS, SITE_SETTINGS_FIELDS, COMMON_FIELDS, OAUTH_STATE_VALUES, SCHEMA_DEFAULTS, } from "./constants/field-names";
461
460
  // Checkout lanes — the derived auction > offer > standard partition of the
462
461
  // cart, and the priority rule that decides which one may be checked out.
463
462
  export { CART_LANE, CART_LANE_PRIORITY, CART_LANE_LABELS, laneOf, activeLane, laneItems, laneCounts, isLaneCheckoutable, laneBlockReason, isLockedLane, canAddNewItems, } from "./_internal/shared/checkout/lanes";
@@ -466,8 +465,34 @@ export { raffleEntrySchema } from "./features/contact/schemas/inquiry-forms";
466
465
  export { orderCancelSchema, paymentProofSchema, } from "./features/orders/schemas/buyer-forms";
467
466
  export { scamReportFormSchema } from "./features/scams/schemas/report-form";
468
467
  export { sublistingCategoryFormSchema } from "./features/store-extensions/schemas/sublisting-category-form";
469
- export { adminAddressFormSchema, adminStoreUpdateSchema, announcementBarSchema, } from "./features/admin/schemas/admin-editor-forms";
468
+ export { adminStoreUpdateSchema, announcementBarSchema, } from "./features/admin/schemas/admin-editor-forms";
470
469
  export { adminOrderUpdateSchema, employeeInviteSchema, hardBanReasonSchema, featureFlagsUpdateSchema, adminAdFormSchema, } from "./features/admin/schemas/admin-ops-forms";
471
470
  export { changeEmailSchema } from "./features/account/schemas/index";
472
471
  export { adminUserUpdateSchema, whatsappSettingsSchema, lotteryPullSchema, } from "./features/admin/schemas/admin-user-form";
473
472
  export { siteSettingsFormSchema } from "./features/admin/schemas/site-settings-form";
473
+ // The ONE address shape and the ONE postal rule (W5 / D19). Eleven field
474
+ // shapes and fifteen disagreeing postal rules collapsed to these.
475
+ export { refineAddressPostal, addressFormSchema, addressUpdateSchema, adminAddressCreateSchema, adminAddressUpdateSchema, addressUnbanRequestSchema, } from "./features/addresses/schemas/address-form";
476
+ export { COUNTRIES, COUNTRY_CODES, DEFAULT_COUNTRY, countryFor, postalPatternFor, postalLabelFor, isValidPostalCode, } from "./constants/geo/countries";
477
+ export { SUBDIVISIONS, subdivisionsFor } from "./constants/geo/subdivisions";
478
+ // Nav item ids are DERIVED from the href (W6). A hand-written id drifts from
479
+ // the route it names, and because it is also the `navConfig` key, a drifted id
480
+ // silently un-toggles the item.
481
+ export { navItemId } from "./_internal/shared/features/layout/types";
482
+ /*
483
+ * The action index (W7), on the CLIENT entry too.
484
+ *
485
+ * `LayoutShellClient` is a client component, so it must not reach the bare
486
+ * `@mohasinac/appkit` entry — that is the Turbopack client-bundle leak
487
+ * (Root Cause #6), and its audit caught exactly that in the commit that wired
488
+ * this up. The main entry keeps its own copy for Server Components, which have
489
+ * the opposite constraint (Root Cause #76).
490
+ */
491
+ export { mergeActionIndex, projectActionIndexForViewer, } from "./features/search/action-index/types";
492
+ export { deriveNavEntries, deriveQuickActionEntries, buildActionIndexBase, } from "./features/search/action-index/derive";
493
+ export { matchesNavQuery } from "./_internal/shared/features/layout/matchesNavQuery";
494
+ export { SITE_SETTINGS_ENTRIES, deriveSettingsEntries, } from "./features/search/action-index/settings-entries";
495
+ export { SITE_SETTINGS_TABS, SITE_SETTINGS_TAB_IDS, isSiteSettingsTabId, } from "./features/admin/constants/site-settings-tabs";
496
+ export { validateActionIndexEntry, normaliseRoute, } from "./features/search/action-index/validate-entry";
497
+ export { AdminActionIndexView } from "./features/admin/components/AdminActionIndexView";
498
+ export { SellerSupportView } from "./features/seller/components/SellerSupportView";
@@ -65,7 +65,16 @@ const FIREBASE_EXTERNAL_PACKAGES = [
65
65
  * ```
66
66
  */
67
67
  export function defineNextConfig(override = {}) {
68
- const { serverExternalPackages: consumerExternal = [], experimental: consumerExperimental = {}, webpack: consumerWebpack, outputFileTracingIncludes: consumerOutputFileTracingIncludes = {}, turbopack: consumerTurbopack = {}, ...rest } = override;
68
+ const { serverExternalPackages: consumerExternal = [], experimental: consumerExperimental = {}, webpack: consumerWebpack, outputFileTracingIncludes: consumerOutputFileTracingIncludes = {}, turbopack: consumerTurbopack = {},
69
+ /*
70
+ * Destructured out even though it is merged below, because `...rest` is
71
+ * spread AFTER `images: mergedImages`. Left in `rest`, a consumer setting
72
+ * `images: { domains: [...] }` would silently overwrite the merged
73
+ * `unoptimized: true` — and with optimisation back on and no
74
+ * `remotePatterns` declared anywhere in this repo, every external image
75
+ * would 400. Every other key in this list is here for the same reason.
76
+ */
77
+ images: consumerImages = {}, ...rest } = override;
69
78
  const mergedExternal = [
70
79
  ...FIREBASE_EXTERNAL_PACKAGES,
71
80
  ...consumerExternal.filter((p) => !FIREBASE_EXTERNAL_PACKAGES.includes(p)),
@@ -273,7 +282,6 @@ export function defineNextConfig(override = {}) {
273
282
  // hosts (ygoprodeck, unsplash, picsum); prod images move to Firebase
274
283
  // Storage via /api/media. Consumer can still pass an explicit
275
284
  // `images.unoptimized: false` + remotePatterns to opt back in.
276
- const consumerImages = override.images ?? {};
277
285
  const mergedImages = {
278
286
  unoptimized: true,
279
287
  ...consumerImages,
@@ -6,9 +6,7 @@
6
6
  *
7
7
  * Never hard-code `/api/...` strings in hook files — import from here.
8
8
  */
9
- export declare const CONFIG_ENDPOINTS: {
10
- readonly FEATURE_FLAGS: "/api/config/feature-flags";
11
- };
9
+ export declare const CONFIG_ENDPOINTS: {};
12
10
  export declare const LOGS_ENDPOINTS: {
13
11
  readonly WRITE: "/api/logs/write";
14
12
  };
@@ -68,12 +66,6 @@ export declare const ACCOUNT_ENDPOINTS: {
68
66
  readonly TESTER_CHECKLIST: "/api/user/tester-checklist";
69
67
  readonly TESTER_CHECKLIST_ITEM_BY_ID: (checklistItemId: string) => string;
70
68
  };
71
- export declare const CONVERSATION_ENDPOINTS: {
72
- readonly LIST: "/api/user/conversations";
73
- readonly BY_ID: (id: string) => string;
74
- readonly MESSAGES: (id: string) => string;
75
- readonly READ: (id: string) => string;
76
- };
77
69
  export declare const NOTIFICATIONS_ENDPOINTS: {
78
70
  readonly LIST: "/api/notifications";
79
71
  readonly READ_ALL: "/api/notifications/read-all";
@@ -88,8 +80,9 @@ export declare const ADMIN_ENDPOINTS: {
88
80
  readonly ANALYTICS: "/api/admin/analytics";
89
81
  readonly ANALYTICS_PAGE_VIEWS: "/api/admin/analytics/pageviews";
90
82
  readonly ADS: "/api/admin/ads";
83
+ /** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
84
+ readonly ACTION_INDEX: "/api/admin/action-index";
91
85
  readonly AD_BY_ID: (id: string) => string;
92
- readonly REALTIME_TOKEN: "/api/realtime/token";
93
86
  readonly PAYMENTS_SETTINGS: "/api/admin/payments/settings";
94
87
  readonly PRODUCTS: "/api/admin/products";
95
88
  readonly PRODUCT_BY_ID: (id: string) => string;
@@ -182,7 +175,6 @@ export declare const ADMIN_ENDPOINTS: {
182
175
  readonly ADMIN_WISHLISTS: "/api/admin/wishlists";
183
176
  readonly ADMIN_HISTORY: "/api/admin/history";
184
177
  readonly NEWSLETTER_EXPORT: "/api/admin/newsletter/export";
185
- readonly FEATURE_FLAGS: "/api/admin/feature-flags";
186
178
  readonly STORE_ADDRESSES: "/api/admin/store-addresses";
187
179
  readonly CAROUSEL: "/api/admin/carousel";
188
180
  readonly CAROUSEL_BY_ID: (id: string) => string;
@@ -220,11 +212,6 @@ export declare const ADMIN_ENDPOINTS: {
220
212
  readonly MAINTENANCE_CLOUD_LOGS: "/api/admin/maintenance/cloud-logs";
221
213
  readonly MEDIA_LIST: "/api/admin/media";
222
214
  };
223
- export declare const CHAT_ENDPOINTS: {
224
- readonly LIST: "/api/chat";
225
- readonly BY_ID: (chatId: string) => string;
226
- readonly MESSAGES: (chatId: string) => string;
227
- };
228
215
  export declare const AUCTION_ENDPOINTS: {
229
216
  readonly LIST: "/api/auctions";
230
217
  readonly BY_SLUG: (slug: string) => string;
@@ -416,8 +403,9 @@ export declare const SELLER_ENDPOINTS: {
416
403
  readonly PRODUCTS_SCAN: (barcode: string) => string;
417
404
  readonly ORDERS_FULFILLMENT: "/api/store/fulfillment";
418
405
  readonly BUNDLES: "/api/store/bundles";
406
+ /** Tickets raised ABOUT this store (W11). */
407
+ readonly SUPPORT: "/api/store/support";
419
408
  readonly BUNDLE_BY_ID: (id: string) => string;
420
- readonly CONVERSATIONS: "/api/store/conversations";
421
409
  readonly ORDERS_ASSIGN: (orderId: string) => string;
422
410
  readonly PRODUCT_BY_ID: (id: string) => string;
423
411
  readonly PRODUCT_DUPLICATE: (id: string) => string;
@@ -431,7 +419,7 @@ export declare const BRAND_ENDPOINTS: {
431
419
  export declare const BLOG_ENDPOINTS: {
432
420
  readonly LIST: "/api/blog";
433
421
  readonly BY_SLUG: (slug: string) => string;
434
- readonly FEATURED: (perPage?: number) => string;
422
+ readonly FEATURED: (pageSize?: number) => string;
435
423
  readonly SORTED: (sort: string) => string;
436
424
  };
437
425
  export declare const STORE_ENDPOINTS: {
@@ -475,9 +463,7 @@ export declare const WHATSAPP_SELLER_ENDPOINTS: {
475
463
  readonly CATALOG_IMPORT: "/api/store/whatsapp-settings/catalog-import";
476
464
  };
477
465
  export declare const API_ENDPOINTS: {
478
- readonly CONFIG: {
479
- readonly FEATURE_FLAGS: "/api/config/feature-flags";
480
- };
466
+ readonly CONFIG: {};
481
467
  readonly LOGS: {
482
468
  readonly WRITE: "/api/logs/write";
483
469
  };
@@ -537,12 +523,6 @@ export declare const API_ENDPOINTS: {
537
523
  readonly TESTER_CHECKLIST: "/api/user/tester-checklist";
538
524
  readonly TESTER_CHECKLIST_ITEM_BY_ID: (checklistItemId: string) => string;
539
525
  };
540
- readonly CONVERSATIONS: {
541
- readonly LIST: "/api/user/conversations";
542
- readonly BY_ID: (id: string) => string;
543
- readonly MESSAGES: (id: string) => string;
544
- readonly READ: (id: string) => string;
545
- };
546
526
  readonly NOTIFICATIONS: {
547
527
  readonly LIST: "/api/notifications";
548
528
  readonly READ_ALL: "/api/notifications/read-all";
@@ -557,8 +537,9 @@ export declare const API_ENDPOINTS: {
557
537
  readonly ANALYTICS: "/api/admin/analytics";
558
538
  readonly ANALYTICS_PAGE_VIEWS: "/api/admin/analytics/pageviews";
559
539
  readonly ADS: "/api/admin/ads";
540
+ /** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
541
+ readonly ACTION_INDEX: "/api/admin/action-index";
560
542
  readonly AD_BY_ID: (id: string) => string;
561
- readonly REALTIME_TOKEN: "/api/realtime/token";
562
543
  readonly PAYMENTS_SETTINGS: "/api/admin/payments/settings";
563
544
  readonly PRODUCTS: "/api/admin/products";
564
545
  readonly PRODUCT_BY_ID: (id: string) => string;
@@ -651,7 +632,6 @@ export declare const API_ENDPOINTS: {
651
632
  readonly ADMIN_WISHLISTS: "/api/admin/wishlists";
652
633
  readonly ADMIN_HISTORY: "/api/admin/history";
653
634
  readonly NEWSLETTER_EXPORT: "/api/admin/newsletter/export";
654
- readonly FEATURE_FLAGS: "/api/admin/feature-flags";
655
635
  readonly STORE_ADDRESSES: "/api/admin/store-addresses";
656
636
  readonly CAROUSEL: "/api/admin/carousel";
657
637
  readonly CAROUSEL_BY_ID: (id: string) => string;
@@ -689,11 +669,6 @@ export declare const API_ENDPOINTS: {
689
669
  readonly MAINTENANCE_CLOUD_LOGS: "/api/admin/maintenance/cloud-logs";
690
670
  readonly MEDIA_LIST: "/api/admin/media";
691
671
  };
692
- readonly CHAT: {
693
- readonly LIST: "/api/chat";
694
- readonly BY_ID: (chatId: string) => string;
695
- readonly MESSAGES: (chatId: string) => string;
696
- };
697
672
  readonly AUCTIONS: {
698
673
  readonly LIST: "/api/auctions";
699
674
  readonly BY_SLUG: (slug: string) => string;
@@ -885,8 +860,9 @@ export declare const API_ENDPOINTS: {
885
860
  readonly PRODUCTS_SCAN: (barcode: string) => string;
886
861
  readonly ORDERS_FULFILLMENT: "/api/store/fulfillment";
887
862
  readonly BUNDLES: "/api/store/bundles";
863
+ /** Tickets raised ABOUT this store (W11). */
864
+ readonly SUPPORT: "/api/store/support";
888
865
  readonly BUNDLE_BY_ID: (id: string) => string;
889
- readonly CONVERSATIONS: "/api/store/conversations";
890
866
  readonly ORDERS_ASSIGN: (orderId: string) => string;
891
867
  readonly PRODUCT_BY_ID: (id: string) => string;
892
868
  readonly PRODUCT_DUPLICATE: (id: string) => string;
@@ -900,7 +876,7 @@ export declare const API_ENDPOINTS: {
900
876
  readonly BLOG: {
901
877
  readonly LIST: "/api/blog";
902
878
  readonly BY_SLUG: (slug: string) => string;
903
- readonly FEATURED: (perPage?: number) => string;
879
+ readonly FEATURED: (pageSize?: number) => string;
904
880
  readonly SORTED: (sort: string) => string;
905
881
  };
906
882
  readonly STORES: {
@@ -946,9 +922,7 @@ export declare const API_ENDPOINTS: {
946
922
  };
947
923
  /** Canonical alias — prefer API_ROUTES over API_ENDPOINTS in new code. */
948
924
  export declare const API_ROUTES: {
949
- readonly CONFIG: {
950
- readonly FEATURE_FLAGS: "/api/config/feature-flags";
951
- };
925
+ readonly CONFIG: {};
952
926
  readonly LOGS: {
953
927
  readonly WRITE: "/api/logs/write";
954
928
  };
@@ -1008,12 +982,6 @@ export declare const API_ROUTES: {
1008
982
  readonly TESTER_CHECKLIST: "/api/user/tester-checklist";
1009
983
  readonly TESTER_CHECKLIST_ITEM_BY_ID: (checklistItemId: string) => string;
1010
984
  };
1011
- readonly CONVERSATIONS: {
1012
- readonly LIST: "/api/user/conversations";
1013
- readonly BY_ID: (id: string) => string;
1014
- readonly MESSAGES: (id: string) => string;
1015
- readonly READ: (id: string) => string;
1016
- };
1017
985
  readonly NOTIFICATIONS: {
1018
986
  readonly LIST: "/api/notifications";
1019
987
  readonly READ_ALL: "/api/notifications/read-all";
@@ -1028,8 +996,9 @@ export declare const API_ROUTES: {
1028
996
  readonly ANALYTICS: "/api/admin/analytics";
1029
997
  readonly ANALYTICS_PAGE_VIEWS: "/api/admin/analytics/pageviews";
1030
998
  readonly ADS: "/api/admin/ads";
999
+ /** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
1000
+ readonly ACTION_INDEX: "/api/admin/action-index";
1031
1001
  readonly AD_BY_ID: (id: string) => string;
1032
- readonly REALTIME_TOKEN: "/api/realtime/token";
1033
1002
  readonly PAYMENTS_SETTINGS: "/api/admin/payments/settings";
1034
1003
  readonly PRODUCTS: "/api/admin/products";
1035
1004
  readonly PRODUCT_BY_ID: (id: string) => string;
@@ -1122,7 +1091,6 @@ export declare const API_ROUTES: {
1122
1091
  readonly ADMIN_WISHLISTS: "/api/admin/wishlists";
1123
1092
  readonly ADMIN_HISTORY: "/api/admin/history";
1124
1093
  readonly NEWSLETTER_EXPORT: "/api/admin/newsletter/export";
1125
- readonly FEATURE_FLAGS: "/api/admin/feature-flags";
1126
1094
  readonly STORE_ADDRESSES: "/api/admin/store-addresses";
1127
1095
  readonly CAROUSEL: "/api/admin/carousel";
1128
1096
  readonly CAROUSEL_BY_ID: (id: string) => string;
@@ -1160,11 +1128,6 @@ export declare const API_ROUTES: {
1160
1128
  readonly MAINTENANCE_CLOUD_LOGS: "/api/admin/maintenance/cloud-logs";
1161
1129
  readonly MEDIA_LIST: "/api/admin/media";
1162
1130
  };
1163
- readonly CHAT: {
1164
- readonly LIST: "/api/chat";
1165
- readonly BY_ID: (chatId: string) => string;
1166
- readonly MESSAGES: (chatId: string) => string;
1167
- };
1168
1131
  readonly AUCTIONS: {
1169
1132
  readonly LIST: "/api/auctions";
1170
1133
  readonly BY_SLUG: (slug: string) => string;
@@ -1356,8 +1319,9 @@ export declare const API_ROUTES: {
1356
1319
  readonly PRODUCTS_SCAN: (barcode: string) => string;
1357
1320
  readonly ORDERS_FULFILLMENT: "/api/store/fulfillment";
1358
1321
  readonly BUNDLES: "/api/store/bundles";
1322
+ /** Tickets raised ABOUT this store (W11). */
1323
+ readonly SUPPORT: "/api/store/support";
1359
1324
  readonly BUNDLE_BY_ID: (id: string) => string;
1360
- readonly CONVERSATIONS: "/api/store/conversations";
1361
1325
  readonly ORDERS_ASSIGN: (orderId: string) => string;
1362
1326
  readonly PRODUCT_BY_ID: (id: string) => string;
1363
1327
  readonly PRODUCT_DUPLICATE: (id: string) => string;
@@ -1371,7 +1335,7 @@ export declare const API_ROUTES: {
1371
1335
  readonly BLOG: {
1372
1336
  readonly LIST: "/api/blog";
1373
1337
  readonly BY_SLUG: (slug: string) => string;
1374
- readonly FEATURED: (perPage?: number) => string;
1338
+ readonly FEATURED: (pageSize?: number) => string;
1375
1339
  readonly SORTED: (sort: string) => string;
1376
1340
  };
1377
1341
  readonly STORES: {
@@ -9,9 +9,7 @@
9
9
  // ---------------------------------------------------------------------------
10
10
  // Config
11
11
  // ---------------------------------------------------------------------------
12
- export const CONFIG_ENDPOINTS = {
13
- FEATURE_FLAGS: "/api/config/feature-flags",
14
- };
12
+ export const CONFIG_ENDPOINTS = {};
15
13
  // ---------------------------------------------------------------------------
16
14
  // Logs
17
15
  // ---------------------------------------------------------------------------
@@ -91,15 +89,6 @@ export const ACCOUNT_ENDPOINTS = {
91
89
  TESTER_CHECKLIST_ITEM_BY_ID: (checklistItemId) => `/api/user/tester-checklist/${encodeURIComponent(checklistItemId)}`,
92
90
  };
93
91
  // ---------------------------------------------------------------------------
94
- // Conversations (buyer messaging)
95
- // ---------------------------------------------------------------------------
96
- export const CONVERSATION_ENDPOINTS = {
97
- LIST: "/api/user/conversations",
98
- BY_ID: (id) => `/api/user/conversations/${encodeURIComponent(id)}`,
99
- MESSAGES: (id) => `/api/user/conversations/${encodeURIComponent(id)}/messages`,
100
- READ: (id) => `/api/user/conversations/${encodeURIComponent(id)}/read`,
101
- };
102
- // ---------------------------------------------------------------------------
103
92
  // Notifications
104
93
  // ---------------------------------------------------------------------------
105
94
  export const NOTIFICATIONS_ENDPOINTS = {
@@ -122,8 +111,9 @@ export const ADMIN_ENDPOINTS = {
122
111
  ANALYTICS: "/api/admin/analytics",
123
112
  ANALYTICS_PAGE_VIEWS: "/api/admin/analytics/pageviews",
124
113
  ADS: "/api/admin/ads",
114
+ /** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
115
+ ACTION_INDEX: "/api/admin/action-index",
125
116
  AD_BY_ID: (id) => `/api/admin/ads/${id}`,
126
- REALTIME_TOKEN: "/api/realtime/token",
127
117
  PAYMENTS_SETTINGS: "/api/admin/payments/settings",
128
118
  PRODUCTS: "/api/admin/products",
129
119
  PRODUCT_BY_ID: (id) => `/api/admin/products/${id}`,
@@ -217,7 +207,6 @@ export const ADMIN_ENDPOINTS = {
217
207
  ADMIN_WISHLISTS: "/api/admin/wishlists",
218
208
  ADMIN_HISTORY: "/api/admin/history",
219
209
  NEWSLETTER_EXPORT: "/api/admin/newsletter/export",
220
- FEATURE_FLAGS: "/api/admin/feature-flags",
221
210
  STORE_ADDRESSES: "/api/admin/store-addresses",
222
211
  CAROUSEL: "/api/admin/carousel",
223
212
  CAROUSEL_BY_ID: (id) => `/api/admin/carousel/${id}`,
@@ -256,14 +245,6 @@ export const ADMIN_ENDPOINTS = {
256
245
  MEDIA_LIST: "/api/admin/media",
257
246
  };
258
247
  // ---------------------------------------------------------------------------
259
- // Chat
260
- // ---------------------------------------------------------------------------
261
- export const CHAT_ENDPOINTS = {
262
- LIST: "/api/chat",
263
- BY_ID: (chatId) => `/api/chat/${chatId}`,
264
- MESSAGES: (chatId) => `/api/chat/${chatId}/messages`,
265
- };
266
- // ---------------------------------------------------------------------------
267
248
  // Auctions
268
249
  // ---------------------------------------------------------------------------
269
250
  export const AUCTION_ENDPOINTS = {
@@ -543,8 +524,9 @@ export const SELLER_ENDPOINTS = {
543
524
  PRODUCTS_SCAN: (barcode) => `/api/store/products/scan?barcode=${encodeURIComponent(barcode)}`,
544
525
  ORDERS_FULFILLMENT: "/api/store/fulfillment",
545
526
  BUNDLES: "/api/store/bundles",
527
+ /** Tickets raised ABOUT this store (W11). */
528
+ SUPPORT: "/api/store/support",
546
529
  BUNDLE_BY_ID: (id) => `/api/store/bundles/${id}`,
547
- CONVERSATIONS: "/api/store/conversations",
548
530
  ORDERS_ASSIGN: (orderId) => `/api/store/orders/${orderId}/assign`,
549
531
  PRODUCT_BY_ID: (id) => `/api/store/products/${id}`,
550
532
  PRODUCT_DUPLICATE: (id) => `/api/store/products/${id}/duplicate`,
@@ -564,7 +546,7 @@ export const BRAND_ENDPOINTS = {
564
546
  export const BLOG_ENDPOINTS = {
565
547
  LIST: "/api/blog",
566
548
  BY_SLUG: (slug) => `/api/blog/${slug}`,
567
- FEATURED: (perPage) => `/api/blog?featured=true${perPage !== undefined ? `&perPage=${perPage}` : ""}`,
549
+ FEATURED: (pageSize) => `/api/blog?featured=true${pageSize !== undefined ? `&pageSize=${pageSize}` : ""}`,
568
550
  SORTED: (sort) => `/api/blog?sort=${sort}`,
569
551
  };
570
552
  // ---------------------------------------------------------------------------
@@ -643,11 +625,9 @@ export const API_ENDPOINTS = {
643
625
  CLIENT_ERRORS: CLIENT_ERROR_ENDPOINTS,
644
626
  AUTH: AUTH_ENDPOINTS,
645
627
  ACCOUNT: ACCOUNT_ENDPOINTS,
646
- CONVERSATIONS: CONVERSATION_ENDPOINTS,
647
628
  NOTIFICATIONS: NOTIFICATIONS_ENDPOINTS,
648
629
  SITE_SETTINGS: SITE_SETTINGS_ENDPOINTS,
649
630
  ADMIN: ADMIN_ENDPOINTS,
650
- CHAT: CHAT_ENDPOINTS,
651
631
  AUCTIONS: AUCTION_ENDPOINTS,
652
632
  BIDS: BID_ENDPOINTS,
653
633
  CART: CART_ENDPOINTS,
@@ -685,15 +685,6 @@ export declare const COUPON_USAGE_FIELDS: {
685
685
  readonly LAST_USED_AT: "lastUsedAt";
686
686
  readonly ORDERS: "orders";
687
687
  };
688
- export declare const CONVERSATION_FIELDS: {
689
- readonly ID: "id";
690
- readonly BUYER_ID: "buyerId";
691
- readonly STORE_ID: "storeId";
692
- readonly LAST_MESSAGE_AT: "lastMessageAt";
693
- readonly LAST_MESSAGE: "lastMessage";
694
- readonly CREATED_AT: "createdAt";
695
- readonly UPDATED_AT: "updatedAt";
696
- };
697
688
  export declare const SCAMMER_FIELDS: {
698
689
  readonly ID: "id";
699
690
  readonly SCAM_TYPE: "scamType";
@@ -713,6 +704,8 @@ export declare const SUPPORT_TICKET_FIELDS: {
713
704
  readonly ID: "id";
714
705
  readonly USER_ID: "userId";
715
706
  readonly STORE_ID: "storeId";
707
+ /** Word-prefix tokens over `subject` only — see the repository's hook. */
708
+ readonly SEARCH_TXT: "searchTxt";
716
709
  readonly SUBJECT: "subject";
717
710
  readonly CATEGORY: "category";
718
711
  readonly STATUS: "status";
@@ -905,21 +898,10 @@ export declare const SITE_SETTINGS_FIELDS: {
905
898
  readonly EMAIL_SETTINGS: "emailSettings";
906
899
  readonly SEO: "seo";
907
900
  readonly FEATURES: "features";
908
- readonly FEATURE_FLAGS: "featureFlags";
909
- readonly FEATURE_FLAGS_FIELDS: {
910
- readonly CHATS: "featureFlags.chats";
911
- readonly SMS_VERIFICATION: "featureFlags.smsVerification";
912
- readonly TRANSLATIONS: "featureFlags.translations";
913
- readonly WISHLISTS: "featureFlags.wishlists";
914
- readonly AUCTIONS: "featureFlags.auctions";
915
- readonly REVIEWS: "featureFlags.reviews";
916
- readonly EVENTS: "featureFlags.events";
917
- readonly BLOG: "featureFlags.blog";
918
- readonly COUPONS: "featureFlags.coupons";
919
- readonly NOTIFICATIONS: "featureFlags.notifications";
920
- readonly SELLER_REGISTRATION: "featureFlags.sellerRegistration";
921
- readonly PRE_ORDERS: "featureFlags.preOrders";
922
- readonly OFFERS: "featureFlags.offers";
901
+ readonly LISTINGS: "listings";
902
+ readonly LISTINGS_FIELDS: {
903
+ readonly LISTING_TYPES: "listings.listingTypes";
904
+ readonly CATEGORY_TYPES: "listings.categoryTypes";
923
905
  };
924
906
  readonly LEGAL_PAGES: "legalPages";
925
907
  readonly SHIPPING: "shipping";
@@ -794,18 +794,6 @@ export const COUPON_USAGE_FIELDS = {
794
794
  ORDERS: "orders",
795
795
  };
796
796
  // ============================================================================
797
- // CONVERSATION FIELDS
798
- // ============================================================================
799
- export const CONVERSATION_FIELDS = {
800
- ID: "id",
801
- BUYER_ID: "buyerId",
802
- STORE_ID: "storeId",
803
- LAST_MESSAGE_AT: "lastMessageAt",
804
- LAST_MESSAGE: "lastMessage",
805
- CREATED_AT: "createdAt",
806
- UPDATED_AT: "updatedAt",
807
- };
808
- // ============================================================================
809
797
  // SCAMMER FIELDS
810
798
  // ============================================================================
811
799
  export const SCAMMER_FIELDS = {
@@ -836,6 +824,8 @@ export const SUPPORT_TICKET_FIELDS = {
836
824
  ID: "id",
837
825
  USER_ID: "userId",
838
826
  STORE_ID: "storeId",
827
+ /** Word-prefix tokens over `subject` only — see the repository's hook. */
828
+ SEARCH_TXT: "searchTxt",
839
829
  SUBJECT: "subject",
840
830
  CATEGORY: "category",
841
831
  STATUS: "status",
@@ -1048,21 +1038,14 @@ export const SITE_SETTINGS_FIELDS = {
1048
1038
  EMAIL_SETTINGS: "emailSettings",
1049
1039
  SEO: "seo",
1050
1040
  FEATURES: "features",
1051
- FEATURE_FLAGS: "featureFlags",
1052
- FEATURE_FLAGS_FIELDS: {
1053
- CHATS: "featureFlags.chats",
1054
- SMS_VERIFICATION: "featureFlags.smsVerification",
1055
- TRANSLATIONS: "featureFlags.translations",
1056
- WISHLISTS: "featureFlags.wishlists",
1057
- AUCTIONS: "featureFlags.auctions",
1058
- REVIEWS: "featureFlags.reviews",
1059
- EVENTS: "featureFlags.events",
1060
- BLOG: "featureFlags.blog",
1061
- COUPONS: "featureFlags.coupons",
1062
- NOTIFICATIONS: "featureFlags.notifications",
1063
- SELLER_REGISTRATION: "featureFlags.sellerRegistration",
1064
- PRE_ORDERS: "featureFlags.preOrders",
1065
- OFFERS: "featureFlags.offers",
1041
+ // FEATURE_FLAGS / FEATURE_FLAGS_FIELDS were deleted 2026-08-29 along with the
1042
+ // group itself — 11 of its 14 keys had no reader anywhere. The survivors that
1043
+ // were never flags live under LISTINGS below; the two with real behaviour
1044
+ // moved to `payment.smsVerification` and `payment.adminCheckoutBypass`.
1045
+ LISTINGS: "listings",
1046
+ LISTINGS_FIELDS: {
1047
+ LISTING_TYPES: "listings.listingTypes",
1048
+ CATEGORY_TYPES: "listings.categoryTypes",
1066
1049
  },
1067
1050
  LEGAL_PAGES: "legalPages",
1068
1051
  SHIPPING: "shipping",
@@ -0,0 +1,50 @@
1
+ /** One country, as an address form needs it. */
2
+ export interface CountryDef {
3
+ /** ISO-3166-1 alpha-2. Also the key. */
4
+ code: string;
5
+ name: string;
6
+ /**
7
+ * What a valid postal code looks like here, or `null` when we do not know.
8
+ *
9
+ * `null` is a real answer, not a gap to be filled with a guess: the
10
+ * fallback accepts 3–12 characters, which catches an empty box and a pasted
11
+ * paragraph and nothing in between.
12
+ */
13
+ postalPattern: RegExp | null;
14
+ /** What the country calls it — "PIN code", "ZIP code", "Postcode". */
15
+ postalLabel: string;
16
+ /** Whether `SUBDIVISIONS` enumerates its states/provinces. */
17
+ hasStates: boolean;
18
+ /** E.164 calling code, without the `+`. */
19
+ dialCode: string;
20
+ }
21
+ /** The permissive bound applied when a country has no pattern. */
22
+ export declare const POSTAL_MIN = 3;
23
+ export declare const POSTAL_MAX = 12;
24
+ export declare const COUNTRIES: Record<string, CountryDef>;
25
+ export declare const COUNTRY_CODES: string[];
26
+ export type CountryCode = string;
27
+ /** Where this marketplace is, and what an address defaults to. */
28
+ export declare const DEFAULT_COUNTRY = "IN";
29
+ /**
30
+ * Resolve a country by code or by name.
31
+ *
32
+ * By NAME as well, because `AddressDocument.country` is a free-text string
33
+ * today and holds `"India"` on every seeded and user-entered row. A resolver
34
+ * that only understood codes would treat every existing address as an unknown
35
+ * country and silently drop to the permissive rule — the migration would look
36
+ * like it worked and would have switched validation off.
37
+ */
38
+ export declare function countryFor(value: string | undefined | null): CountryDef | null;
39
+ /** The postal pattern for a country, or `null` when none is known. */
40
+ export declare function postalPatternFor(country: string | undefined | null): RegExp | null;
41
+ /** "PIN code" / "ZIP code" / "Postcode" — what to put on the label. */
42
+ export declare function postalLabelFor(country: string | undefined | null): string;
43
+ /**
44
+ * The ONE postal check, used by every form and every route.
45
+ *
46
+ * An empty code is NOT valid — required-ness is the caller's business, but a
47
+ * blank string is never a postal code, and letting it through here is how the
48
+ * `.min(1)` client rule came to disagree with the server in the first place.
49
+ */
50
+ export declare function isValidPostalCode(country: string | undefined | null, postalCode: string | undefined | null): boolean;