@mohasinac/appkit 4.44.0 โ†’ 4.45.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 (1918) hide show
  1. package/dist/.build-stamp.json +8 -0
  2. package/dist/_internal/client/features/digital-code/CodeRevealPanel.js +3 -3
  3. package/dist/_internal/client/features/digital-code/DigitalContentPoolManager.js +5 -5
  4. package/dist/_internal/client/features/filters/filter-load-options.js +3 -3
  5. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +16 -16
  6. package/dist/_internal/client/features/layout/RoleGuard.js +4 -4
  7. package/dist/_internal/client/features/layout/SidebarCollapseToggle.js +1 -1
  8. package/dist/_internal/client/features/layout/index.js +3 -3
  9. package/dist/_internal/client/features/layout/useSidebarSearch.js +1 -1
  10. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +8 -8
  11. package/dist/_internal/client/features/lottery/LotteryAdminSlotView.js +1 -1
  12. package/dist/_internal/client/features/lottery/LotteryDetailView.js +8 -8
  13. package/dist/_internal/client/features/lottery/LotteryEntriesView.js +3 -3
  14. package/dist/_internal/client/features/lottery/LotteryListView.js +3 -3
  15. package/dist/_internal/client/features/lottery/LotteryPullForm.js +9 -9
  16. package/dist/_internal/client/features/lottery/LotterySlotGrid.js +1 -1
  17. package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +7 -7
  18. package/dist/_internal/client/features/maintenance/index.js +5 -5
  19. package/dist/_internal/client/features/maintenance/views/AnalysisRunnerView.js +3 -3
  20. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +3 -3
  21. package/dist/_internal/client/features/products/index.js +1 -1
  22. package/dist/_internal/client/hand-mode/HandModeProvider.js +1 -1
  23. package/dist/_internal/client/hand-mode/index.js +1 -1
  24. package/dist/_internal/client/scaffolds/AppShell.js +1 -1
  25. package/dist/_internal/client/scaffolds/index.js +1 -1
  26. package/dist/_internal/client/theme/ThemeProvider.js +2 -2
  27. package/dist/_internal/client/theme/buildRegistry.js +1 -1
  28. package/dist/_internal/client/theme/index.js +2 -2
  29. package/dist/_internal/server/features/account/actions.js +1 -1
  30. package/dist/_internal/server/features/account/data.js +1 -1
  31. package/dist/_internal/server/features/account/index.js +2 -2
  32. package/dist/_internal/server/features/admin/daily-digest-actions.js +3 -3
  33. package/dist/_internal/server/features/auctions/actions.js +6 -6
  34. package/dist/_internal/server/features/auctions/data.js +1 -1
  35. package/dist/_internal/server/features/auctions/index.js +5 -5
  36. package/dist/_internal/server/features/auctions/og.js +2 -2
  37. package/dist/_internal/server/features/auctions/service.js +4 -4
  38. package/dist/_internal/server/features/audit-log/actions.js +3 -3
  39. package/dist/_internal/server/features/auth/actions.js +1 -1
  40. package/dist/_internal/server/features/auth/capabilities.js +2 -2
  41. package/dist/_internal/server/features/auth/firebase-identity.js +1 -1
  42. package/dist/_internal/server/features/auth/index.js +3 -3
  43. package/dist/_internal/server/features/auth/permissions.js +4 -4
  44. package/dist/_internal/server/features/blog/actions.js +5 -5
  45. package/dist/_internal/server/features/blog/data.js +1 -1
  46. package/dist/_internal/server/features/blog/index.js +5 -5
  47. package/dist/_internal/server/features/blog/og.js +2 -2
  48. package/dist/_internal/server/features/blog/service.js +2 -2
  49. package/dist/_internal/server/features/brands/actions.js +5 -5
  50. package/dist/_internal/server/features/brands/data.js +1 -1
  51. package/dist/_internal/server/features/brands/index.js +5 -5
  52. package/dist/_internal/server/features/brands/og.js +1 -1
  53. package/dist/_internal/server/features/brands/service.js +2 -2
  54. package/dist/_internal/server/features/bundles/actions.js +8 -8
  55. package/dist/_internal/server/features/bundles/data.js +4 -4
  56. package/dist/_internal/server/features/bundles/index.js +4 -4
  57. package/dist/_internal/server/features/bundles/og.js +1 -1
  58. package/dist/_internal/server/features/cart/actions.js +5 -5
  59. package/dist/_internal/server/features/cart/data.js +1 -1
  60. package/dist/_internal/server/features/cart/index.js +4 -4
  61. package/dist/_internal/server/features/cart/service.js +5 -5
  62. package/dist/_internal/server/features/catalogue/og.js +2 -2
  63. package/dist/_internal/server/features/categories/data.js +4 -4
  64. package/dist/_internal/server/features/categories/index.js +2 -2
  65. package/dist/_internal/server/features/categories/og.js +1 -1
  66. package/dist/_internal/server/features/checkout/actions.d.ts +50 -0
  67. package/dist/_internal/server/features/checkout/actions.js +186 -52
  68. package/dist/_internal/server/features/checkout/bundle-expansion.js +3 -3
  69. package/dist/_internal/server/features/checkout/expand-order-items.js +6 -2
  70. package/dist/_internal/server/features/checkout/index.js +3 -3
  71. package/dist/_internal/server/features/checkout/locked-lines.js +14 -14
  72. package/dist/_internal/server/features/checkout/prize-bundle-gates.js +2 -2
  73. package/dist/_internal/server/features/checkout/source-context.js +4 -4
  74. package/dist/_internal/server/features/checkout/stock-restore.js +4 -4
  75. package/dist/_internal/server/features/checkout/upi-resolution.js +2 -2
  76. package/dist/_internal/server/features/classified/adapters.js +1 -1
  77. package/dist/_internal/server/features/classified/data.js +1 -1
  78. package/dist/_internal/server/features/classified/index.js +4 -4
  79. package/dist/_internal/server/features/classified/og.js +2 -2
  80. package/dist/_internal/server/features/digital-code/adapters.js +1 -1
  81. package/dist/_internal/server/features/digital-code/data.js +1 -1
  82. package/dist/_internal/server/features/digital-code/download.js +5 -5
  83. package/dist/_internal/server/features/digital-code/index.js +4 -4
  84. package/dist/_internal/server/features/digital-code/og.js +2 -2
  85. package/dist/_internal/server/features/digital-code/pool.js +7 -7
  86. package/dist/_internal/server/features/digital-code/upload.js +6 -6
  87. package/dist/_internal/server/features/events/actions.js +8 -8
  88. package/dist/_internal/server/features/events/adapters.js +1 -1
  89. package/dist/_internal/server/features/events/data.js +1 -1
  90. package/dist/_internal/server/features/events/index.js +5 -5
  91. package/dist/_internal/server/features/events/og.js +2 -2
  92. package/dist/_internal/server/features/events/service.js +2 -2
  93. package/dist/_internal/server/features/faqs/index.js +1 -1
  94. package/dist/_internal/server/features/faqs/og.js +1 -1
  95. package/dist/_internal/server/features/grouped/data.js +8 -8
  96. package/dist/_internal/server/features/grouped/index.js +4 -4
  97. package/dist/_internal/server/features/grouped/og.js +2 -2
  98. package/dist/_internal/server/features/history/actions.js +2 -2
  99. package/dist/_internal/server/features/history/data.js +1 -1
  100. package/dist/_internal/server/features/history/index.js +3 -3
  101. package/dist/_internal/server/features/homepage/index.js +1 -1
  102. package/dist/_internal/server/features/item-requests/data.js +1 -1
  103. package/dist/_internal/server/features/item-requests/index.js +2 -2
  104. package/dist/_internal/server/features/item-requests/og.js +1 -1
  105. package/dist/_internal/server/features/live/adapters.js +1 -1
  106. package/dist/_internal/server/features/live/data.js +1 -1
  107. package/dist/_internal/server/features/live/index.js +4 -4
  108. package/dist/_internal/server/features/live/og.js +2 -2
  109. package/dist/_internal/server/features/lottery/actions.js +8 -8
  110. package/dist/_internal/server/features/lottery/data.js +3 -3
  111. package/dist/_internal/server/features/maintenance/analyze.js +3 -3
  112. package/dist/_internal/server/features/maintenance/cloud-logs-data.js +1 -1
  113. package/dist/_internal/server/features/maintenance/data.js +2 -2
  114. package/dist/_internal/server/features/media/contextGuards.js +3 -3
  115. package/dist/_internal/server/features/offers/adapters.js +1 -1
  116. package/dist/_internal/server/features/offers/index.js +1 -1
  117. package/dist/_internal/server/features/orders/actions.js +17 -17
  118. package/dist/_internal/server/features/orders/adapters.js +2 -0
  119. package/dist/_internal/server/features/orders/data.js +2 -2
  120. package/dist/_internal/server/features/orders/index.js +5 -5
  121. package/dist/_internal/server/features/orders/service.js +3 -3
  122. package/dist/_internal/server/features/payouts/actions.js +3 -3
  123. package/dist/_internal/server/features/pre-orders/actions.js +5 -5
  124. package/dist/_internal/server/features/pre-orders/data.js +1 -1
  125. package/dist/_internal/server/features/pre-orders/index.js +5 -5
  126. package/dist/_internal/server/features/pre-orders/og.js +2 -2
  127. package/dist/_internal/server/features/pre-orders/service.js +4 -4
  128. package/dist/_internal/server/features/price-index/search.d.ts +119 -0
  129. package/dist/_internal/server/features/price-index/search.js +188 -0
  130. package/dist/_internal/server/features/prize-draws/actions.js +3 -3
  131. package/dist/_internal/server/features/prize-draws/data.js +1 -1
  132. package/dist/_internal/server/features/prize-draws/index.js +4 -4
  133. package/dist/_internal/server/features/prize-draws/og.js +2 -2
  134. package/dist/_internal/server/features/prize-draws/service.js +1 -1
  135. package/dist/_internal/server/features/products/actions.js +8 -8
  136. package/dist/_internal/server/features/products/data.js +15 -15
  137. package/dist/_internal/server/features/products/group-members.js +1 -1
  138. package/dist/_internal/server/features/products/index.js +6 -6
  139. package/dist/_internal/server/features/products/list-public.js +11 -11
  140. package/dist/_internal/server/features/products/listing-tab-counts.js +3 -3
  141. package/dist/_internal/server/features/products/og.js +2 -2
  142. package/dist/_internal/server/features/products/service.js +4 -4
  143. package/dist/_internal/server/features/profile/index.js +1 -1
  144. package/dist/_internal/server/features/promotions/actions.js +6 -6
  145. package/dist/_internal/server/features/promotions/data.js +1 -1
  146. package/dist/_internal/server/features/promotions/index.js +4 -4
  147. package/dist/_internal/server/features/promotions/service.js +3 -3
  148. package/dist/_internal/server/features/raffle/actions.js +3 -3
  149. package/dist/_internal/server/features/refunds/actions.js +12 -12
  150. package/dist/_internal/server/features/reviews/actions.js +6 -6
  151. package/dist/_internal/server/features/reviews/data.js +3 -3
  152. package/dist/_internal/server/features/reviews/index.js +5 -5
  153. package/dist/_internal/server/features/reviews/og-data.js +1 -1
  154. package/dist/_internal/server/features/reviews/og.js +1 -1
  155. package/dist/_internal/server/features/reviews/service.js +2 -2
  156. package/dist/_internal/server/features/scams/data.js +1 -1
  157. package/dist/_internal/server/features/scams/index.js +2 -2
  158. package/dist/_internal/server/features/search/actions.js +1 -1
  159. package/dist/_internal/server/features/search/data.js +1 -1
  160. package/dist/_internal/server/features/search/index.js +2 -2
  161. package/dist/_internal/server/features/seo/index.js +4 -4
  162. package/dist/_internal/server/features/seo/manifest.js +2 -2
  163. package/dist/_internal/server/features/seo/og.js +2 -2
  164. package/dist/_internal/server/features/seo/sitemap.js +13 -13
  165. package/dist/_internal/server/features/shared/listing-data-factory.js +4 -4
  166. package/dist/_internal/server/features/site-settings/actions.js +1 -1
  167. package/dist/_internal/server/features/site-settings/index.js +1 -1
  168. package/dist/_internal/server/features/site-settings/safe-settings.js +3 -3
  169. package/dist/_internal/server/features/stores/adapters.d.ts +2 -2
  170. package/dist/_internal/server/features/stores/adapters.js +44 -0
  171. package/dist/_internal/server/features/stores/data.js +5 -5
  172. package/dist/_internal/server/features/stores/denormalize.js +2 -2
  173. package/dist/_internal/server/features/stores/index.js +5 -5
  174. package/dist/_internal/server/features/stores/og.js +2 -2
  175. package/dist/_internal/server/features/sublisting-categories/data.js +1 -1
  176. package/dist/_internal/server/features/sublisting-categories/index.js +2 -2
  177. package/dist/_internal/server/features/sublisting-categories/og.js +2 -2
  178. package/dist/_internal/server/features/tester/visibility.js +1 -1
  179. package/dist/_internal/server/features/wishlist/actions.js +5 -5
  180. package/dist/_internal/server/features/wishlist/data.js +1 -1
  181. package/dist/_internal/server/features/wishlist/index.js +4 -4
  182. package/dist/_internal/server/functions/bind-all.d.ts +25 -0
  183. package/dist/_internal/server/functions/bind-all.js +41 -6
  184. package/dist/_internal/server/functions/firestore.js +2 -2
  185. package/dist/_internal/server/functions/https.js +2 -2
  186. package/dist/_internal/server/functions/index.js +4 -4
  187. package/dist/_internal/server/functions/manifest.js +3 -3
  188. package/dist/_internal/server/functions/scheduled.js +2 -2
  189. package/dist/_internal/server/jobs/core/adminAnalytics.js +3 -3
  190. package/dist/_internal/server/jobs/core/analyticsAlertEvaluate.js +6 -6
  191. package/dist/_internal/server/jobs/core/assignSpinPrize.js +2 -2
  192. package/dist/_internal/server/jobs/core/auctionSettlement.js +7 -7
  193. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +5 -5
  194. package/dist/_internal/server/jobs/core/bundleStockSync.js +1 -1
  195. package/dist/_internal/server/jobs/core/cartPrune.js +3 -3
  196. package/dist/_internal/server/jobs/core/catalogueImageStalenessReminder.js +4 -4
  197. package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +5 -5
  198. package/dist/_internal/server/jobs/core/countersReconcile.js +7 -7
  199. package/dist/_internal/server/jobs/core/couponExpiry.js +1 -1
  200. package/dist/_internal/server/jobs/core/dailyDataCleanup.js +2 -2
  201. package/dist/_internal/server/jobs/core/dailyStatusDigest.js +14 -14
  202. package/dist/_internal/server/jobs/core/draftPrune.js +2 -2
  203. package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +3 -3
  204. package/dist/_internal/server/jobs/core/hardBanCascade.js +7 -7
  205. package/dist/_internal/server/jobs/core/hardBanReinstatement.js +4 -4
  206. package/dist/_internal/server/jobs/core/index.js +37 -37
  207. package/dist/_internal/server/jobs/core/jobRunners.js +7 -7
  208. package/dist/_internal/server/jobs/core/listingProcessor.js +2 -2
  209. package/dist/_internal/server/jobs/core/mediaTmpCleanup.js +2 -2
  210. package/dist/_internal/server/jobs/core/newsletterExport.js +3 -3
  211. package/dist/_internal/server/jobs/core/notificationPrune.js +3 -3
  212. package/dist/_internal/server/jobs/core/offerExpiry.js +4 -4
  213. package/dist/_internal/server/jobs/core/onCategoryWrite.js +3 -3
  214. package/dist/_internal/server/jobs/core/onJobCreated.js +5 -5
  215. package/dist/_internal/server/jobs/core/onOrderCreate.js +6 -6
  216. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +3 -3
  217. package/dist/_internal/server/jobs/core/onPrizeDrawPaymentConfirmed.js +2 -2
  218. package/dist/_internal/server/jobs/core/onProductStockChange.js +2 -2
  219. package/dist/_internal/server/jobs/core/onProductWrite.js +6 -6
  220. package/dist/_internal/server/jobs/core/onReviewWrite.js +4 -4
  221. package/dist/_internal/server/jobs/core/onScamReportCreate.js +4 -4
  222. package/dist/_internal/server/jobs/core/onScamReportRejected.js +3 -3
  223. package/dist/_internal/server/jobs/core/onScamReportVerified.js +3 -3
  224. package/dist/_internal/server/jobs/core/onStoreWrite.js +1 -1
  225. package/dist/_internal/server/jobs/core/onSupportTicketCreate.js +2 -2
  226. package/dist/_internal/server/jobs/core/onSupportTicketUpdate.js +2 -2
  227. package/dist/_internal/server/jobs/core/onUserBanChange.js +1 -1
  228. package/dist/_internal/server/jobs/core/pageViewPrune.js +2 -2
  229. package/dist/_internal/server/jobs/core/pageViewRollup.js +2 -2
  230. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +4 -4
  231. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +7 -7
  232. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +6 -6
  233. package/dist/_internal/server/jobs/core/positionsReconcile.js +1 -1
  234. package/dist/_internal/server/jobs/core/priceIndexRollup.js +74 -4
  235. package/dist/_internal/server/jobs/core/prizeDrawAssignWinner.js +2 -2
  236. package/dist/_internal/server/jobs/core/prizeDrawExpiryReveal.js +3 -3
  237. package/dist/_internal/server/jobs/core/prizeDrawSoldOutReveal.js +3 -3
  238. package/dist/_internal/server/jobs/core/productStatsSync.js +1 -1
  239. package/dist/_internal/server/jobs/core/promotions.js +2 -2
  240. package/dist/_internal/server/jobs/core/resetOtpVerification.js +3 -3
  241. package/dist/_internal/server/jobs/core/revalidateNotify.js +1 -1
  242. package/dist/_internal/server/jobs/core/revenueRollup.js +2 -2
  243. package/dist/_internal/server/jobs/core/storeAnalytics.js +3 -3
  244. package/dist/_internal/server/jobs/core/storeNameBackfill.js +3 -3
  245. package/dist/_internal/server/jobs/core/testDataCleanup.js +2 -2
  246. package/dist/_internal/server/jobs/core/triggerEventRaffle.js +1 -1
  247. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +5 -5
  248. package/dist/_internal/server/jobs/core/whatsappCatalogImport.js +3 -3
  249. package/dist/_internal/server/jobs/core/whatsappNotify.js +5 -5
  250. package/dist/_internal/server/jobs/core/wrapJobHandler.js +3 -3
  251. package/dist/_internal/server/jobs/handlers/_helpers.js +3 -3
  252. package/dist/_internal/server/jobs/handlers/adminAnalytics.js +1 -1
  253. package/dist/_internal/server/jobs/handlers/analyticsAlertEvaluate.js +1 -1
  254. package/dist/_internal/server/jobs/handlers/assignSpinPrize.js +1 -1
  255. package/dist/_internal/server/jobs/handlers/auctionSettlement.js +1 -1
  256. package/dist/_internal/server/jobs/handlers/autoPayoutEligibility.js +1 -1
  257. package/dist/_internal/server/jobs/handlers/bundleStockSync.js +1 -1
  258. package/dist/_internal/server/jobs/handlers/cartPrune.js +1 -1
  259. package/dist/_internal/server/jobs/handlers/catalogueImageStalenessReminder.js +1 -1
  260. package/dist/_internal/server/jobs/handlers/cleanupRtdbEvents.js +1 -1
  261. package/dist/_internal/server/jobs/handlers/countersReconcile.js +1 -1
  262. package/dist/_internal/server/jobs/handlers/couponExpiry.js +1 -1
  263. package/dist/_internal/server/jobs/handlers/dailyDataCleanup.js +1 -1
  264. package/dist/_internal/server/jobs/handlers/dailyStatusDigest.js +1 -1
  265. package/dist/_internal/server/jobs/handlers/draftPrune.js +1 -1
  266. package/dist/_internal/server/jobs/handlers/emiInstallmentReminder.js +1 -1
  267. package/dist/_internal/server/jobs/handlers/hardBanReinstatement.js +1 -1
  268. package/dist/_internal/server/jobs/handlers/index.js +54 -54
  269. package/dist/_internal/server/jobs/handlers/listingProcessor.js +1 -1
  270. package/dist/_internal/server/jobs/handlers/mediaTmpCleanup.js +1 -1
  271. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  272. package/dist/_internal/server/jobs/handlers/notificationPrune.js +1 -1
  273. package/dist/_internal/server/jobs/handlers/offerExpiry.js +1 -1
  274. package/dist/_internal/server/jobs/handlers/onCatalogueSubmittedForApproval.js +1 -1
  275. package/dist/_internal/server/jobs/handlers/onCategoryWrite.js +1 -1
  276. package/dist/_internal/server/jobs/handlers/onJobCreated.js +1 -1
  277. package/dist/_internal/server/jobs/handlers/onOrderCreate.js +1 -1
  278. package/dist/_internal/server/jobs/handlers/onOrderStatusChange.js +1 -1
  279. package/dist/_internal/server/jobs/handlers/onPrizeDrawPaymentConfirmed.js +1 -1
  280. package/dist/_internal/server/jobs/handlers/onProductStockChange.js +1 -1
  281. package/dist/_internal/server/jobs/handlers/onProductWrite.js +1 -1
  282. package/dist/_internal/server/jobs/handlers/onReviewWrite.js +1 -1
  283. package/dist/_internal/server/jobs/handlers/onScamReportCreate.js +1 -1
  284. package/dist/_internal/server/jobs/handlers/onScamReportUpdate.js +2 -2
  285. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +1 -1
  286. package/dist/_internal/server/jobs/handlers/onStoreWrite.js +1 -1
  287. package/dist/_internal/server/jobs/handlers/onSupportTicketCreate.js +1 -1
  288. package/dist/_internal/server/jobs/handlers/onSupportTicketUpdate.js +1 -1
  289. package/dist/_internal/server/jobs/handlers/onUserBanChange.js +1 -1
  290. package/dist/_internal/server/jobs/handlers/pageViewPrune.js +1 -1
  291. package/dist/_internal/server/jobs/handlers/pageViewRollup.js +1 -1
  292. package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.js +1 -1
  293. package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.js +1 -1
  294. package/dist/_internal/server/jobs/handlers/pendingOrderTimeout.js +1 -1
  295. package/dist/_internal/server/jobs/handlers/positionsReconcile.js +1 -1
  296. package/dist/_internal/server/jobs/handlers/priceIndexRollup.js +1 -1
  297. package/dist/_internal/server/jobs/handlers/prizeDrawExpiryReveal.js +1 -1
  298. package/dist/_internal/server/jobs/handlers/prizeDrawSoldOutReveal.js +1 -1
  299. package/dist/_internal/server/jobs/handlers/productStatsSync.js +1 -1
  300. package/dist/_internal/server/jobs/handlers/promotions.js +1 -1
  301. package/dist/_internal/server/jobs/handlers/revenueRollup.js +1 -1
  302. package/dist/_internal/server/jobs/handlers/storeAnalytics.js +1 -1
  303. package/dist/_internal/server/jobs/handlers/testDataCleanup.js +1 -1
  304. package/dist/_internal/server/jobs/handlers/triggerEventRaffle.js +1 -1
  305. package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.js +1 -1
  306. package/dist/_internal/server/jobs/index.js +4 -4
  307. package/dist/_internal/server/jobs/runtime/adapters/firebase.js +3 -3
  308. package/dist/_internal/server/notifications/channel-health.js +3 -3
  309. package/dist/_internal/server/notifications/send-guard.js +5 -5
  310. package/dist/_internal/server/notifications/send-recorder.js +5 -5
  311. package/dist/_internal/shared/actions/action-registry.js +9 -0
  312. package/dist/_internal/shared/checkout/lanes.js +1 -1
  313. package/dist/_internal/shared/checkout/order-math.js +2 -2
  314. package/dist/_internal/shared/checkout/rules/_defaults.js +1 -1
  315. package/dist/_internal/shared/checkout/rules/_limits.js +1 -1
  316. package/dist/_internal/shared/checkout/rules/_registry.js +12 -12
  317. package/dist/_internal/shared/checkout/rules/art.rule.js +1 -1
  318. package/dist/_internal/shared/checkout/rules/auction.rule.js +1 -1
  319. package/dist/_internal/shared/checkout/rules/classified.rule.js +1 -1
  320. package/dist/_internal/shared/checkout/rules/digital-code.rule.js +1 -1
  321. package/dist/_internal/shared/checkout/rules/index.js +13 -13
  322. package/dist/_internal/shared/checkout/rules/live.rule.js +1 -1
  323. package/dist/_internal/shared/checkout/rules/offer.rule.js +1 -1
  324. package/dist/_internal/shared/checkout/rules/preorder.rule.js +2 -2
  325. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +3 -3
  326. package/dist/_internal/shared/checkout/rules/standard.rule.js +1 -1
  327. package/dist/_internal/shared/checkout/rules/stickers.rule.js +1 -1
  328. package/dist/_internal/shared/features/auctions/errors.js +1 -1
  329. package/dist/_internal/shared/features/blog/errors.js +1 -1
  330. package/dist/_internal/shared/features/blog/schema.js +2 -2
  331. package/dist/_internal/shared/features/brands/errors.js +1 -1
  332. package/dist/_internal/shared/features/brands/schema.js +2 -2
  333. package/dist/_internal/shared/features/cart/config.js +1 -1
  334. package/dist/_internal/shared/features/cart/errors.js +1 -1
  335. package/dist/_internal/shared/features/categories/bundle-schemas.js +2 -2
  336. package/dist/_internal/shared/features/categories/price-guidance.js +1 -1
  337. package/dist/_internal/shared/features/checkout/config.d.ts +3 -0
  338. package/dist/_internal/shared/features/checkout/config.js +4 -1
  339. package/dist/_internal/shared/features/emi/schedule.js +1 -1
  340. package/dist/_internal/shared/features/events/errors.js +1 -1
  341. package/dist/_internal/shared/features/events/schema.js +2 -2
  342. package/dist/_internal/shared/features/layout/index.js +1 -1
  343. package/dist/_internal/shared/features/notifications/action-url.js +1 -1
  344. package/dist/_internal/shared/features/offers/config.js +1 -1
  345. package/dist/_internal/shared/features/orders/errors.js +1 -1
  346. package/dist/_internal/shared/features/orders/schema.js +3 -3
  347. package/dist/_internal/shared/features/pre-orders/errors.js +1 -1
  348. package/dist/_internal/shared/features/products/errors.js +1 -1
  349. package/dist/_internal/shared/features/products/schema.js +3 -3
  350. package/dist/_internal/shared/features/promotions/errors.js +1 -1
  351. package/dist/_internal/shared/features/promotions/schema.d.ts +4 -4
  352. package/dist/_internal/shared/features/promotions/schema.js +1 -1
  353. package/dist/_internal/shared/features/returns/custody.d.ts +99 -0
  354. package/dist/_internal/shared/features/returns/custody.js +172 -0
  355. package/dist/_internal/shared/features/returns/destination.d.ts +172 -0
  356. package/dist/_internal/shared/features/returns/destination.js +158 -0
  357. package/dist/_internal/shared/features/reviews/errors.js +1 -1
  358. package/dist/_internal/shared/features/reviews/schema.js +2 -2
  359. package/dist/_internal/shared/features/shipping/courier-rating.d.ts +145 -0
  360. package/dist/_internal/shared/features/shipping/courier-rating.js +114 -0
  361. package/dist/_internal/shared/features/shipping/mode.d.ts +112 -0
  362. package/dist/_internal/shared/features/shipping/mode.js +108 -0
  363. package/dist/_internal/shared/features/shipping/parcel.d.ts +115 -0
  364. package/dist/_internal/shared/features/shipping/parcel.js +120 -0
  365. package/dist/_internal/shared/features/shipping/protections.d.ts +221 -0
  366. package/dist/_internal/shared/features/shipping/protections.js +213 -0
  367. package/dist/_internal/shared/features/site-settings/fees.d.ts +3 -0
  368. package/dist/_internal/shared/features/site-settings/fees.js +3 -0
  369. package/dist/_internal/shared/features/wishlist/errors.js +1 -1
  370. package/dist/_internal/shared/fees/calculator.d.ts +24 -0
  371. package/dist/_internal/shared/fees/calculator.js +12 -1
  372. package/dist/_internal/shared/history/history.js +2 -2
  373. package/dist/_internal/shared/history/index.js +2 -2
  374. package/dist/_internal/shared/index.js +2 -2
  375. package/dist/_internal/shared/listing-types/_registry.js +12 -12
  376. package/dist/_internal/shared/listing-types/action-tracker.js +1 -1
  377. package/dist/_internal/shared/listing-types/art/config.js +4 -4
  378. package/dist/_internal/shared/listing-types/auction/config.js +6 -6
  379. package/dist/_internal/shared/listing-types/availability.js +1 -1
  380. package/dist/_internal/shared/listing-types/cart-shipping.js +1 -1
  381. package/dist/_internal/shared/listing-types/classified/config.js +5 -5
  382. package/dist/_internal/shared/listing-types/digital-code/config.js +6 -6
  383. package/dist/_internal/shared/listing-types/live/config.js +5 -5
  384. package/dist/_internal/shared/listing-types/pre-order/config.js +6 -6
  385. package/dist/_internal/shared/listing-types/prize-draw/config.js +5 -5
  386. package/dist/_internal/shared/listing-types/standard/config.js +4 -4
  387. package/dist/_internal/shared/listing-types/stickers/config.js +4 -4
  388. package/dist/_internal/shared/search/alias-variants.d.ts +58 -0
  389. package/dist/_internal/shared/search/alias-variants.js +141 -0
  390. package/dist/_internal/shared/tokens/index.js +2 -2
  391. package/dist/_internal/shared/types/action-error-reporter.js +1 -1
  392. package/dist/_internal/shared/types/action-result.js +4 -4
  393. package/dist/_internal/shared/types/base-document.d.ts +19 -0
  394. package/dist/cli/index.js +1 -1
  395. package/dist/client/api/surface-error.js +7 -7
  396. package/dist/client/api/useApiMutation.js +2 -2
  397. package/dist/client/api/useApiQuery.js +4 -4
  398. package/dist/client/observability/installClientErrorReporter.js +1 -1
  399. package/dist/client/observability/reportClientError.js +2 -2
  400. package/dist/client-entry.js +5 -5
  401. package/dist/client.d.ts +4 -0
  402. package/dist/client.js +336 -332
  403. package/dist/constants/api-endpoints.d.ts +16 -0
  404. package/dist/constants/api-endpoints.js +17 -0
  405. package/dist/constants/cache-invalidation.js +1 -1
  406. package/dist/constants/field-names.d.ts +2 -0
  407. package/dist/constants/field-names.js +10 -0
  408. package/dist/constants/index.js +10 -10
  409. package/dist/constants/notification-types.js +1 -1
  410. package/dist/contracts/index.js +12 -12
  411. package/dist/contracts/realtime-session.js +2 -2
  412. package/dist/core/EventBus.js +2 -2
  413. package/dist/core/Logger.js +2 -2
  414. package/dist/core/Queue.js +1 -1
  415. package/dist/core/StorageManager.js +2 -2
  416. package/dist/core/browser.js +9 -9
  417. package/dist/core/components/SyncManagerMount.js +2 -2
  418. package/dist/core/contact-submissions.repository.js +1 -1
  419. package/dist/core/copilot-log.repository.js +1 -1
  420. package/dist/core/hooks/useSiteSettings.js +2 -2
  421. package/dist/core/hooks/useSyncManager.js +3 -3
  422. package/dist/core/index.js +17 -17
  423. package/dist/core/integration-keys.js +2 -2
  424. package/dist/core/mutation-events.js +1 -1
  425. package/dist/core/newsletter-actions.js +2 -2
  426. package/dist/core/newsletter.repository.js +2 -2
  427. package/dist/core/server-action.js +5 -5
  428. package/dist/core/site-config.js +1 -1
  429. package/dist/core/unit-of-work.js +20 -20
  430. package/dist/errors/api-error.js +1 -1
  431. package/dist/errors/authentication-error.js +1 -1
  432. package/dist/errors/authorization-error.js +1 -1
  433. package/dist/errors/conflict-error.js +1 -1
  434. package/dist/errors/database-error.js +2 -2
  435. package/dist/errors/describe-cause.js +1 -1
  436. package/dist/errors/error-display-map.js +3 -3
  437. package/dist/errors/error-envelope.js +1 -1
  438. package/dist/errors/error-handler.js +3 -3
  439. package/dist/errors/error-mapping.js +7 -7
  440. package/dist/errors/index.js +18 -18
  441. package/dist/errors/normalize.js +2 -2
  442. package/dist/errors/not-found-error.js +1 -1
  443. package/dist/errors/payment-provider-unreachable.js +1 -1
  444. package/dist/errors/safe-read.js +2 -2
  445. package/dist/errors/validation-error.js +1 -1
  446. package/dist/features/about/components/AboutView.js +2 -2
  447. package/dist/features/about/components/DeveloperView.js +6 -6
  448. package/dist/features/about/components/FAQPageView.js +5 -5
  449. package/dist/features/about/components/FeesView.js +4 -4
  450. package/dist/features/about/components/HelpPageView.js +5 -5
  451. package/dist/features/about/components/HowAuctionsWorkView.js +4 -4
  452. package/dist/features/about/components/HowCheckoutWorksView.js +4 -4
  453. package/dist/features/about/components/HowEmiWorksView.js +5 -5
  454. package/dist/features/about/components/HowOffersWorkView.js +4 -4
  455. package/dist/features/about/components/HowOrdersWorkView.js +4 -4
  456. package/dist/features/about/components/HowPayoutsWorkView.js +4 -4
  457. package/dist/features/about/components/HowPreOrdersWorkView.js +4 -4
  458. package/dist/features/about/components/HowReviewsWorkView.js +4 -4
  459. package/dist/features/about/components/PolicyPageView.js +7 -7
  460. package/dist/features/about/components/PublicProfileView.js +15 -15
  461. package/dist/features/about/components/SecurityPrivacyView.js +4 -4
  462. package/dist/features/about/components/ShippingPolicyView.js +4 -4
  463. package/dist/features/about/components/TrackOrderView.js +5 -5
  464. package/dist/features/about/components/UnauthorizedView.js +4 -4
  465. package/dist/features/about/index.js +19 -19
  466. package/dist/features/about/schemas/index.js +1 -1
  467. package/dist/features/account/actions/address-actions.js +2 -2
  468. package/dist/features/account/actions/index.js +1 -1
  469. package/dist/features/account/api/[userId]/addresses/route.js +2 -2
  470. package/dist/features/account/api/[userId]/route.js +2 -2
  471. package/dist/features/account/columns/index.js +1 -1
  472. package/dist/features/account/components/AddressBook.js +1 -1
  473. package/dist/features/account/components/AddressFilters.js +3 -3
  474. package/dist/features/account/components/AddressForm.js +9 -9
  475. package/dist/features/account/components/AddressInlineSelect.js +4 -4
  476. package/dist/features/account/components/AddressSelectorCreate.js +2 -2
  477. package/dist/features/account/components/AddressesIndexListing.js +6 -6
  478. package/dist/features/account/components/BecomeSellerView.js +1 -1
  479. package/dist/features/account/components/BuyerAccountGuideView.js +3 -3
  480. package/dist/features/account/components/BuyerAuctionsGuideView.js +2 -2
  481. package/dist/features/account/components/BuyerOrdersGuideView.js +2 -2
  482. package/dist/features/account/components/BuyerShoppingGuideView.js +2 -2
  483. package/dist/features/account/components/LinkedAccountsSection.js +1 -1
  484. package/dist/features/account/components/NotificationBell.js +6 -6
  485. package/dist/features/account/components/NotificationPreferencesPanel.js +4 -4
  486. package/dist/features/account/components/OrderDetailView.js +1 -1
  487. package/dist/features/account/components/ProfileView.js +1 -1
  488. package/dist/features/account/components/UserAccountHubView.js +1 -1
  489. package/dist/features/account/components/UserAddressesView.js +1 -1
  490. package/dist/features/account/components/UserBidsView.js +8 -8
  491. package/dist/features/account/components/UserNotificationsView.js +1 -1
  492. package/dist/features/account/components/UserOffersPanel.js +5 -5
  493. package/dist/features/account/components/UserOrderTrackView.js +1 -1
  494. package/dist/features/account/components/UserOrdersView.js +10 -10
  495. package/dist/features/account/components/UserReturnsView.js +7 -7
  496. package/dist/features/account/components/UserSettingsView.js +1 -1
  497. package/dist/features/account/components/UserSidebar.js +9 -9
  498. package/dist/features/account/components/UserSupportView.js +11 -11
  499. package/dist/features/account/components/index.js +20 -20
  500. package/dist/features/account/hooks/useAccount.js +2 -2
  501. package/dist/features/account/hooks/useAddressSelector.js +2 -2
  502. package/dist/features/account/hooks/useAddresses.js +2 -2
  503. package/dist/features/account/hooks/useCollapsedSections.js +2 -2
  504. package/dist/features/account/hooks/useDataViewMode.js +1 -1
  505. package/dist/features/account/hooks/useNotifications.js +2 -2
  506. package/dist/features/account/hooks/useProfile.js +3 -3
  507. package/dist/features/account/hooks/useProfileStats.js +2 -2
  508. package/dist/features/account/hooks/usePublicProfile.d.ts +1 -1
  509. package/dist/features/account/hooks/usePublicProfile.js +3 -3
  510. package/dist/features/account/index.js +13 -13
  511. package/dist/features/account/schemas/firestore.js +1 -1
  512. package/dist/features/account/schemas/index.js +2 -2
  513. package/dist/features/account/server.js +3 -3
  514. package/dist/features/addresses/components/AddressLocationFields.js +5 -5
  515. package/dist/features/addresses/hooks/usePostalLookup.js +2 -2
  516. package/dist/features/addresses/index.js +2 -2
  517. package/dist/features/addresses/repository/addresses.repository.js +6 -6
  518. package/dist/features/addresses/schemas/address-form.js +2 -2
  519. package/dist/features/addresses/schemas/index.js +3 -3
  520. package/dist/features/addresses/server.js +2 -2
  521. package/dist/features/admin/actions/admin-actions.d.ts +1 -1
  522. package/dist/features/admin/actions/admin-actions.js +17 -17
  523. package/dist/features/admin/actions/admin-coupon-actions.js +5 -5
  524. package/dist/features/admin/actions/admin-read-actions.d.ts +4 -4
  525. package/dist/features/admin/actions/admin-read-actions.js +12 -12
  526. package/dist/features/admin/actions/index.js +5 -5
  527. package/dist/features/admin/actions/notification-actions.js +13 -13
  528. package/dist/features/admin/actions/site-settings-actions.js +2 -2
  529. package/dist/features/admin/api/bids/route.js +2 -2
  530. package/dist/features/admin/api/coupons/route.js +2 -2
  531. package/dist/features/admin/api/products/route.js +2 -2
  532. package/dist/features/admin/api/reviews/route.js +2 -2
  533. package/dist/features/admin/components/AdminActionIndexView.js +4 -4
  534. package/dist/features/admin/components/AdminAdEditorView.js +9 -9
  535. package/dist/features/admin/components/AdminAddressBookView.js +4 -4
  536. package/dist/features/admin/components/AdminAddressClustersView.js +3 -3
  537. package/dist/features/admin/components/AdminAddressEditorView.js +13 -13
  538. package/dist/features/admin/components/AdminAddressesView.js +9 -9
  539. package/dist/features/admin/components/AdminAdsView.js +8 -8
  540. package/dist/features/admin/components/AdminAllEventEntriesView.js +7 -7
  541. package/dist/features/admin/components/AdminAnalyticsGuideView.js +2 -2
  542. package/dist/features/admin/components/AdminAnalyticsView.js +7 -7
  543. package/dist/features/admin/components/AdminArtView.js +4 -4
  544. package/dist/features/admin/components/AdminAuditLogView.js +6 -6
  545. package/dist/features/admin/components/AdminBidsView.js +12 -12
  546. package/dist/features/admin/components/AdminBlogEditorView.js +8 -8
  547. package/dist/features/admin/components/AdminBlogView.js +7 -7
  548. package/dist/features/admin/components/AdminBrandEditorView.js +11 -11
  549. package/dist/features/admin/components/AdminBrandsView.js +7 -7
  550. package/dist/features/admin/components/AdminBundleEditorView.js +13 -13
  551. package/dist/features/admin/components/AdminBundlesView.js +8 -8
  552. package/dist/features/admin/components/AdminCarouselEditorView.js +8 -8
  553. package/dist/features/admin/components/AdminCarouselGroupEditorView.js +6 -6
  554. package/dist/features/admin/components/AdminCarouselView.js +11 -11
  555. package/dist/features/admin/components/AdminCartsView.js +5 -5
  556. package/dist/features/admin/components/AdminCatalogGuideView.js +2 -2
  557. package/dist/features/admin/components/AdminCategoriesView.js +6 -6
  558. package/dist/features/admin/components/AdminCategoryEditorView.js +7 -7
  559. package/dist/features/admin/components/AdminClassifiedView.js +4 -4
  560. package/dist/features/admin/components/AdminContactEditorView.js +3 -3
  561. package/dist/features/admin/components/AdminContactView.js +10 -10
  562. package/dist/features/admin/components/AdminContentGuideView.js +2 -2
  563. package/dist/features/admin/components/AdminCouponEditorView.js +12 -12
  564. package/dist/features/admin/components/AdminCouponsView.js +10 -10
  565. package/dist/features/admin/components/AdminDashboardView.js +5 -5
  566. package/dist/features/admin/components/AdminDigitalCodesView.js +4 -4
  567. package/dist/features/admin/components/AdminEmployeeEditorView.js +10 -10
  568. package/dist/features/admin/components/AdminFaqEditorView.js +6 -6
  569. package/dist/features/admin/components/AdminFaqsView.js +6 -6
  570. package/dist/features/admin/components/AdminFeatureEditorView.js +9 -9
  571. package/dist/features/admin/components/AdminFeaturesView.js +8 -8
  572. package/dist/features/admin/components/AdminFulfillmentView.js +9 -9
  573. package/dist/features/admin/components/AdminGroupedListingsView.js +9 -9
  574. package/dist/features/admin/components/AdminGuideHubView.js +2 -2
  575. package/dist/features/admin/components/AdminHistoryView.js +6 -6
  576. package/dist/features/admin/components/AdminLiveView.js +4 -4
  577. package/dist/features/admin/components/AdminMediaView.js +5 -5
  578. package/dist/features/admin/components/AdminNavEditorView.js +7 -7
  579. package/dist/features/admin/components/AdminNavigationView.js +5 -5
  580. package/dist/features/admin/components/AdminNewsletterView.js +9 -9
  581. package/dist/features/admin/components/AdminNotificationsView.js +10 -10
  582. package/dist/features/admin/components/AdminOffersView.js +13 -13
  583. package/dist/features/admin/components/AdminOrderEditorView.js +15 -15
  584. package/dist/features/admin/components/AdminOrdersGuideView.js +2 -2
  585. package/dist/features/admin/components/AdminOrdersView.js +13 -13
  586. package/dist/features/admin/components/AdminPaymentClustersView.js +3 -3
  587. package/dist/features/admin/components/AdminPaymentMethodsView.js +8 -8
  588. package/dist/features/admin/components/AdminPaymentsGuideView.js +2 -2
  589. package/dist/features/admin/components/AdminPayoutMarkPaidModal.js +7 -7
  590. package/dist/features/admin/components/AdminPayoutsView.js +12 -12
  591. package/dist/features/admin/components/AdminPrizeDrawsView.js +9 -9
  592. package/dist/features/admin/components/AdminProductEditorView.js +13 -13
  593. package/dist/features/admin/components/AdminProductsView.js +15 -15
  594. package/dist/features/admin/components/AdminReturnRequestsView.js +7 -7
  595. package/dist/features/admin/components/AdminReviewsView.js +9 -9
  596. package/dist/features/admin/components/AdminScammerEditorView.js +6 -6
  597. package/dist/features/admin/components/AdminScammersView.js +10 -10
  598. package/dist/features/admin/components/AdminSectionsView.js +15 -15
  599. package/dist/features/admin/components/AdminSessionsManager.js +1 -1
  600. package/dist/features/admin/components/AdminSessionsView.js +6 -6
  601. package/dist/features/admin/components/AdminSidebar.js +8 -8
  602. package/dist/features/admin/components/AdminSiteConfigGuideView.js +2 -2
  603. package/dist/features/admin/components/AdminSiteSettingsView.js +17 -17
  604. package/dist/features/admin/components/AdminStickersView.js +4 -4
  605. package/dist/features/admin/components/AdminStoreAddressesView.js +4 -4
  606. package/dist/features/admin/components/AdminStoreEditorView.js +7 -7
  607. package/dist/features/admin/components/AdminStoresGuideView.js +2 -2
  608. package/dist/features/admin/components/AdminStoresView.js +11 -11
  609. package/dist/features/admin/components/AdminSublistingCategoriesView.js +6 -6
  610. package/dist/features/admin/components/AdminSublistingCategoryEditorView.js +7 -7
  611. package/dist/features/admin/components/AdminSupportTicketDetailView.js +9 -9
  612. package/dist/features/admin/components/AdminSupportTicketsView.js +9 -9
  613. package/dist/features/admin/components/AdminTaxCodeEditorView.js +8 -8
  614. package/dist/features/admin/components/AdminTaxCodesView.js +5 -5
  615. package/dist/features/admin/components/AdminTeamGuideView.js +1 -1
  616. package/dist/features/admin/components/AdminTeamView.js +8 -8
  617. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +10 -10
  618. package/dist/features/admin/components/AdminTesterChecklistView.js +9 -9
  619. package/dist/features/admin/components/AdminTopBar.js +1 -1
  620. package/dist/features/admin/components/AdminTrustGuideView.js +2 -2
  621. package/dist/features/admin/components/AdminUserEditorView.js +8 -8
  622. package/dist/features/admin/components/AdminUsersGuideView.js +2 -2
  623. package/dist/features/admin/components/AdminUsersView.js +15 -15
  624. package/dist/features/admin/components/AdminViewCards.js +3 -3
  625. package/dist/features/admin/components/AdminWhatsAppGuideView.js +2 -2
  626. package/dist/features/admin/components/AdminWishlistsView.js +6 -6
  627. package/dist/features/admin/components/BrandQuickCreateForm.js +8 -8
  628. package/dist/features/admin/components/CategoryQuickCreateForm.js +8 -8
  629. package/dist/features/admin/components/DashboardStats.js +4 -4
  630. package/dist/features/admin/components/DataListingView.js +7 -7
  631. package/dist/features/admin/components/DataTable.js +5 -5
  632. package/dist/features/admin/components/DemoSeedView.js +1 -1
  633. package/dist/features/admin/components/DrawerFormFooter.js +1 -1
  634. package/dist/features/admin/components/QuickEditMenu.js +4 -4
  635. package/dist/features/admin/components/ViewAuditLogEntryModal.js +1 -1
  636. package/dist/features/admin/components/ViewNotificationModal.js +2 -2
  637. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +2 -2
  638. package/dist/features/admin/components/analytics/AdminPageViewsReportView.js +4 -4
  639. package/dist/features/admin/components/analytics/AdminStatCard.js +2 -2
  640. package/dist/features/admin/components/analytics/AdminTopProductsTable.js +1 -1
  641. package/dist/features/admin/components/analytics/index.js +3 -3
  642. package/dist/features/admin/components/index.js +94 -94
  643. package/dist/features/admin/components/sections/adminSectionsBuildParse.js +1 -1
  644. package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +50 -1
  645. package/dist/features/admin/components/sections/adminSectionsTypes.js +30 -11
  646. package/dist/features/admin/hooks/useAdmin.js +2 -2
  647. package/dist/features/admin/hooks/useAdminListing.js +5 -5
  648. package/dist/features/admin/hooks/useAdminListingData.js +2 -2
  649. package/dist/features/admin/hooks/useAdminSectionsListing.js +2 -2
  650. package/dist/features/admin/index.js +7 -7
  651. package/dist/features/admin/repository/analytics-rollup.repository.js +1 -1
  652. package/dist/features/admin/repository/notification.repository.js +5 -5
  653. package/dist/features/admin/repository/site-settings.repository.js +7 -7
  654. package/dist/features/admin/schemas/admin-editor-forms.js +3 -3
  655. package/dist/features/admin/schemas/admin-ops-forms.js +3 -3
  656. package/dist/features/admin/schemas/admin-user-form.d.ts +4 -4
  657. package/dist/features/admin/schemas/admin-user-form.js +1 -1
  658. package/dist/features/admin/schemas/firestore.d.ts +29 -0
  659. package/dist/features/admin/schemas/firestore.js +8 -2
  660. package/dist/features/admin/schemas/homepage-section-form.js +2 -2
  661. package/dist/features/admin/schemas/index.js +1 -1
  662. package/dist/features/admin/schemas/nav-item-form.js +1 -1
  663. package/dist/features/admin/schemas/small-forms.js +1 -1
  664. package/dist/features/admin/server.js +8 -8
  665. package/dist/features/admin/types/index.js +1 -1
  666. package/dist/features/admin/utils/checkActionAllowed.js +4 -4
  667. package/dist/features/admin/utils/getDisabledRoutes.js +1 -1
  668. package/dist/features/admin/utils/getSiteSettingsGlobal.js +1 -1
  669. package/dist/features/analytics/components/PageViewTracker.js +3 -3
  670. package/dist/features/analytics/repository/page-views.repository.js +3 -3
  671. package/dist/features/auctions/actions/bid-actions.js +23 -23
  672. package/dist/features/auctions/actions/index.js +1 -1
  673. package/dist/features/auctions/api/route.js +2 -2
  674. package/dist/features/auctions/columns/index.js +1 -1
  675. package/dist/features/auctions/components/AuctionBidsTable.js +4 -4
  676. package/dist/features/auctions/components/AuctionBottomActions.js +9 -9
  677. package/dist/features/auctions/components/AuctionDetailPageView.js +35 -35
  678. package/dist/features/auctions/components/AuctionFilters.js +4 -4
  679. package/dist/features/auctions/components/AuctionLiveStatusBadge.js +2 -2
  680. package/dist/features/auctions/components/AuctionsListView.js +4 -4
  681. package/dist/features/auctions/components/CollapsibleBidHistory.js +4 -4
  682. package/dist/features/auctions/components/LiveBidPrice.js +3 -3
  683. package/dist/features/auctions/components/LiveMinIncrement.js +5 -5
  684. package/dist/features/auctions/components/MarketplaceAuctionCard.js +13 -13
  685. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +2 -2
  686. package/dist/features/auctions/components/PlaceBidFormClient.js +17 -17
  687. package/dist/features/auctions/components/index.js +5 -5
  688. package/dist/features/auctions/hooks/useAuctions.js +3 -3
  689. package/dist/features/auctions/hooks/useBids.js +2 -2
  690. package/dist/features/auctions/hooks/useLiveAuctionBid.js +1 -1
  691. package/dist/features/auctions/hooks/usePlaceBid.js +2 -2
  692. package/dist/features/auctions/hooks/useRealtimeBids.js +3 -3
  693. package/dist/features/auctions/index.js +8 -8
  694. package/dist/features/auctions/repository/bid.repository.js +7 -7
  695. package/dist/features/auctions/schemas/firestore.js +1 -1
  696. package/dist/features/auctions/schemas/index.js +2 -2
  697. package/dist/features/auctions/server.js +3 -3
  698. package/dist/features/audit-log/repository/audit-log.repository.js +2 -2
  699. package/dist/features/auth/actions/index.js +1 -1
  700. package/dist/features/auth/actions/profile-actions.js +8 -8
  701. package/dist/features/auth/actions/user-slug.js +4 -4
  702. package/dist/features/auth/api/route.js +2 -2
  703. package/dist/features/auth/auth-helpers.js +2 -2
  704. package/dist/features/auth/checkout-value-otp.js +3 -3
  705. package/dist/features/auth/components/AuthStatusPanel.js +2 -2
  706. package/dist/features/auth/components/ForgotPasswordView.js +7 -7
  707. package/dist/features/auth/components/Guards.js +2 -2
  708. package/dist/features/auth/components/LoginForm.js +8 -8
  709. package/dist/features/auth/components/OAuthLoadingView.js +1 -1
  710. package/dist/features/auth/components/RegisterForm.js +9 -9
  711. package/dist/features/auth/components/ResetPasswordView.js +6 -6
  712. package/dist/features/auth/components/SocialAuthButtons.js +1 -1
  713. package/dist/features/auth/components/VerifyEmailView.js +2 -2
  714. package/dist/features/auth/components/index.js +9 -9
  715. package/dist/features/auth/hooks/useAuth.js +7 -7
  716. package/dist/features/auth/hooks/useAuthEvent.js +2 -2
  717. package/dist/features/auth/hooks/useLogout.js +2 -2
  718. package/dist/features/auth/hooks/useRBAC.js +3 -3
  719. package/dist/features/auth/index.js +11 -11
  720. package/dist/features/auth/repository/index.js +4 -4
  721. package/dist/features/auth/repository/session.repository.js +7 -7
  722. package/dist/features/auth/repository/sms-counter.repository.js +2 -2
  723. package/dist/features/auth/repository/token.repository.js +6 -6
  724. package/dist/features/auth/repository/user.repository.js +5 -5
  725. package/dist/features/auth/schemas/index.js +3 -3
  726. package/dist/features/auth/server/checkSoftBan.js +1 -1
  727. package/dist/features/auth/server.js +5 -5
  728. package/dist/features/auth/token-store.js +3 -3
  729. package/dist/features/before-after/api/[id]/route.js +2 -2
  730. package/dist/features/before-after/api/route.js +2 -2
  731. package/dist/features/before-after/columns/index.js +1 -1
  732. package/dist/features/before-after/components/BeforeAfterGallery.js +2 -2
  733. package/dist/features/before-after/components/BeforeAfterSlider.js +1 -1
  734. package/dist/features/before-after/components/index.js +2 -2
  735. package/dist/features/before-after/hooks/useBeforeAfter.js +2 -2
  736. package/dist/features/before-after/index.js +6 -6
  737. package/dist/features/blog/actions/blog-actions.js +6 -6
  738. package/dist/features/blog/actions/index.js +1 -1
  739. package/dist/features/blog/api/[slug]/route.js +3 -3
  740. package/dist/features/blog/api/route.js +3 -3
  741. package/dist/features/blog/columns/index.js +1 -1
  742. package/dist/features/blog/components/BlogFeaturedCard.js +6 -6
  743. package/dist/features/blog/components/BlogFilters.js +7 -7
  744. package/dist/features/blog/components/BlogIndexListing.js +9 -9
  745. package/dist/features/blog/components/BlogIndexPageView.js +6 -6
  746. package/dist/features/blog/components/BlogListView.js +6 -6
  747. package/dist/features/blog/components/BlogPostForm.js +6 -6
  748. package/dist/features/blog/components/BlogPostView.js +10 -10
  749. package/dist/features/blog/components/index.js +6 -6
  750. package/dist/features/blog/hooks/useBlog.js +2 -2
  751. package/dist/features/blog/index.js +6 -6
  752. package/dist/features/blog/repository/blog.repository.js +8 -8
  753. package/dist/features/blog/schemas/blog-form.js +2 -2
  754. package/dist/features/blog/schemas/firestore.js +1 -1
  755. package/dist/features/blog/schemas/index.js +4 -4
  756. package/dist/features/blog/server.js +4 -4
  757. package/dist/features/cart/actions/cart-actions.js +16 -16
  758. package/dist/features/cart/actions/index.js +1 -1
  759. package/dist/features/cart/api/[id]/route.js +2 -2
  760. package/dist/features/cart/api/route.js +2 -2
  761. package/dist/features/cart/columns/index.js +2 -2
  762. package/dist/features/cart/components/CartDrawer.js +6 -6
  763. package/dist/features/cart/components/CartGroupLineRow.js +5 -5
  764. package/dist/features/cart/components/CartPriceBreakdown.d.ts +6 -0
  765. package/dist/features/cart/components/CartPriceBreakdown.js +3 -3
  766. package/dist/features/cart/components/CartSummary.js +1 -1
  767. package/dist/features/cart/components/CartView.js +2 -2
  768. package/dist/features/cart/components/CheckoutAddressStep.js +1 -1
  769. package/dist/features/cart/components/CheckoutSuccessView.js +1 -1
  770. package/dist/features/cart/components/CheckoutView.js +2 -2
  771. package/dist/features/cart/components/ShippingPicker.js +3 -3
  772. package/dist/features/cart/components/StoreAddonsPicker.d.ts +35 -1
  773. package/dist/features/cart/components/StoreAddonsPicker.js +39 -11
  774. package/dist/features/cart/components/index.js +10 -10
  775. package/dist/features/cart/hooks/useAddToCart.js +8 -8
  776. package/dist/features/cart/hooks/useCart.js +3 -3
  777. package/dist/features/cart/hooks/useCartCount.js +4 -4
  778. package/dist/features/cart/hooks/useCartQuery.js +1 -1
  779. package/dist/features/cart/hooks/useCheckoutReadQueries.js +1 -1
  780. package/dist/features/cart/hooks/useGuestCart.js +1 -1
  781. package/dist/features/cart/hooks/useGuestCartMerge.js +4 -4
  782. package/dist/features/cart/hooks/useOrder.js +2 -2
  783. package/dist/features/cart/index.js +15 -15
  784. package/dist/features/cart/repository/cart.repository.js +7 -6
  785. package/dist/features/cart/schemas/firestore.d.ts +10 -0
  786. package/dist/features/cart/schemas/index.d.ts +2 -2
  787. package/dist/features/cart/schemas/index.js +2 -2
  788. package/dist/features/cart/server.js +2 -2
  789. package/dist/features/cart/utils/guest-cart.js +2 -2
  790. package/dist/features/cart/utils/line-total.js +1 -1
  791. package/dist/features/cart/utils/pending-ops.js +1 -1
  792. package/dist/features/catalogue/actions/approve-catalogue-listing.js +5 -5
  793. package/dist/features/catalogue/actions/list-from-catalogue.js +6 -6
  794. package/dist/features/catalogue/actions/submit-for-approval.js +4 -4
  795. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +7 -7
  796. package/dist/features/catalogue/components/CatalogueItemEditorView.js +12 -12
  797. package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +7 -7
  798. package/dist/features/catalogue/components/PublicCatalogueView.js +6 -6
  799. package/dist/features/catalogue/components/UserCatalogueView.js +5 -5
  800. package/dist/features/catalogue/index.js +10 -10
  801. package/dist/features/catalogue/repository/catalogue.repository.js +4 -4
  802. package/dist/features/catalogue/schemas/firestore.js +1 -1
  803. package/dist/features/catalogue/schemas/index.js +2 -2
  804. package/dist/features/catalogue/schemas/validation.js +1 -1
  805. package/dist/features/catalogue/utils/freshness.js +2 -2
  806. package/dist/features/catalogue/utils/product-from-item.js +1 -1
  807. package/dist/features/categories/actions/category-actions.js +3 -3
  808. package/dist/features/categories/actions/index.js +1 -1
  809. package/dist/features/categories/api/[id]/description-template/route.js +4 -4
  810. package/dist/features/categories/api/[id]/route.js +4 -4
  811. package/dist/features/categories/api/route.js +8 -8
  812. package/dist/features/categories/columns/index.js +1 -1
  813. package/dist/features/categories/components/BrandDetailPageView.js +60 -18
  814. package/dist/features/categories/components/BrandDetailTabs.js +9 -9
  815. package/dist/features/categories/components/BreadcrumbTrail.js +2 -2
  816. package/dist/features/categories/components/BundleBuyNowCta.js +7 -7
  817. package/dist/features/categories/components/BundleCollage.js +7 -7
  818. package/dist/features/categories/components/BundleDetailView.js +10 -10
  819. package/dist/features/categories/components/BundleDynamicRuleEditor.js +5 -5
  820. package/dist/features/categories/components/BundleItemsPicker.js +4 -4
  821. package/dist/features/categories/components/BundlesListView.js +6 -6
  822. package/dist/features/categories/components/CategoriesIndexListing.js +9 -9
  823. package/dist/features/categories/components/CategoriesIndexPageView.js +3 -3
  824. package/dist/features/categories/components/CategoryBundlesListing.js +6 -6
  825. package/dist/features/categories/components/CategoryDetailPageView.js +117 -17
  826. package/dist/features/categories/components/CategoryDetailTabs.js +10 -10
  827. package/dist/features/categories/components/CategoryFilters.js +4 -4
  828. package/dist/features/categories/components/CategoryForm.js +6 -6
  829. package/dist/features/categories/components/CategoryGrid.js +4 -4
  830. package/dist/features/categories/components/CategoryHighlightsAndFaqSection.js +2 -2
  831. package/dist/features/categories/components/CategoryProductsListing.js +17 -17
  832. package/dist/features/categories/components/CategoryProductsView.js +3 -3
  833. package/dist/features/categories/components/CategorySelectorCreate.js +7 -7
  834. package/dist/features/categories/components/CategorySortSelect.js +2 -2
  835. package/dist/features/categories/components/CategoryStoresListing.js +3 -3
  836. package/dist/features/categories/components/CategoryTableColumns.js +3 -3
  837. package/dist/features/categories/components/CategoryTemplatePicker.js +5 -5
  838. package/dist/features/categories/components/CategoryTree.js +1 -1
  839. package/dist/features/categories/components/ConcernCard.js +2 -2
  840. package/dist/features/categories/components/ConcernGrid.js +2 -2
  841. package/dist/features/categories/components/index.js +20 -20
  842. package/dist/features/categories/hooks/useCategories.js +3 -3
  843. package/dist/features/categories/hooks/useCategorySelector.js +2 -2
  844. package/dist/features/categories/hooks/useCategoryTree.js +3 -3
  845. package/dist/features/categories/index.js +7 -7
  846. package/dist/features/categories/repository/categories.repository.js +8 -8
  847. package/dist/features/categories/repository/price-index.repository.d.ts +69 -0
  848. package/dist/features/categories/repository/price-index.repository.js +31 -1
  849. package/dist/features/categories/schemas/bundle-form.js +3 -3
  850. package/dist/features/categories/schemas/firestore.js +2 -2
  851. package/dist/features/categories/schemas/index.d.ts +60 -60
  852. package/dist/features/categories/schemas/index.js +2 -2
  853. package/dist/features/categories/server.js +5 -5
  854. package/dist/features/checkout/actions/checkout-value-otp-actions.js +13 -13
  855. package/dist/features/checkout/actions/index.js +1 -1
  856. package/dist/features/checkout/components/CheckoutStepper.js +1 -1
  857. package/dist/features/checkout/components/index.js +1 -1
  858. package/dist/features/checkout/index.js +4 -4
  859. package/dist/features/checkout/repository/failed-checkout.repository.js +2 -2
  860. package/dist/features/checkout/schemas/index.js +1 -1
  861. package/dist/features/checkout/server.js +2 -2
  862. package/dist/features/classified/components/ClassifiedDetailPageView.js +22 -22
  863. package/dist/features/classified/components/ClassifiedFilters.js +4 -4
  864. package/dist/features/classified/components/index.js +1 -1
  865. package/dist/features/collections/api/[slug]/route.js +2 -2
  866. package/dist/features/collections/api/route.js +2 -2
  867. package/dist/features/collections/columns/index.js +1 -1
  868. package/dist/features/collections/components/CollectionCard.js +3 -3
  869. package/dist/features/collections/components/index.js +1 -1
  870. package/dist/features/collections/hooks/useCollections.js +2 -2
  871. package/dist/features/collections/index.js +6 -6
  872. package/dist/features/consultation/api/[id]/route.js +2 -2
  873. package/dist/features/consultation/api/route.js +2 -2
  874. package/dist/features/consultation/columns/index.js +1 -1
  875. package/dist/features/consultation/components/ConsultationForm.js +6 -6
  876. package/dist/features/consultation/components/index.js +1 -1
  877. package/dist/features/consultation/hooks/useBookConsultation.js +2 -2
  878. package/dist/features/consultation/index.js +6 -6
  879. package/dist/features/consultation/schemas/index.d.ts +2 -2
  880. package/dist/features/consultation/schemas/index.js +1 -1
  881. package/dist/features/consultation/server.js +1 -1
  882. package/dist/features/contact/components/ContactForm.js +4 -4
  883. package/dist/features/contact/components/ContactInfoSidebar.js +1 -1
  884. package/dist/features/contact/components/ContactPageView.js +6 -6
  885. package/dist/features/contact/components/index.js +3 -3
  886. package/dist/features/contact/email.js +9 -9
  887. package/dist/features/contact/index.js +2 -2
  888. package/dist/features/contact/schemas/inquiry-forms.js +1 -1
  889. package/dist/features/contact/server.js +1 -1
  890. package/dist/features/copilot/components/AdminCopilotView.js +4 -4
  891. package/dist/features/copilot/components/index.js +1 -1
  892. package/dist/features/copilot/hooks/useCopilotChat.js +2 -2
  893. package/dist/features/copilot/hooks/useCopilotFeedback.js +2 -2
  894. package/dist/features/copilot/index.js +3 -3
  895. package/dist/features/corporate/api/[id]/route.js +2 -2
  896. package/dist/features/corporate/api/route.js +2 -2
  897. package/dist/features/corporate/columns/index.js +1 -1
  898. package/dist/features/corporate/components/CorporateInquiryForm.js +7 -7
  899. package/dist/features/corporate/components/index.js +1 -1
  900. package/dist/features/corporate/hooks/useSubmitCorporateInquiry.js +2 -2
  901. package/dist/features/corporate/index.js +6 -6
  902. package/dist/features/corporate/schemas/index.js +1 -1
  903. package/dist/features/corporate/server.js +1 -1
  904. package/dist/features/cron/index.js +4 -4
  905. package/dist/features/cron/jobs/auction-expiry.job.js +3 -3
  906. package/dist/features/cron/jobs/preorder-reminder.job.js +3 -3
  907. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +20 -20
  908. package/dist/features/digital-codes/components/DigitalCodeFilters.js +4 -4
  909. package/dist/features/digital-codes/components/index.js +1 -1
  910. package/dist/features/email/index.js +1 -1
  911. package/dist/features/email/notification-templates.js +1 -1
  912. package/dist/features/events/actions/event-actions.js +10 -10
  913. package/dist/features/events/actions/index.js +1 -1
  914. package/dist/features/events/api/[id]/route.js +4 -4
  915. package/dist/features/events/columns/index.js +1 -1
  916. package/dist/features/events/components/AdminEventEditorView.js +10 -10
  917. package/dist/features/events/components/AdminEventEntriesView.js +9 -9
  918. package/dist/features/events/components/AdminEventsView.js +8 -8
  919. package/dist/features/events/components/EventBanner.js +4 -4
  920. package/dist/features/events/components/EventCard.js +8 -8
  921. package/dist/features/events/components/EventDetailView.js +1 -1
  922. package/dist/features/events/components/EventFilters.js +8 -8
  923. package/dist/features/events/components/EventFormDrawer.js +1 -1
  924. package/dist/features/events/components/EventLeaderboard.js +1 -1
  925. package/dist/features/events/components/EventOfferCard.js +5 -5
  926. package/dist/features/events/components/EventParticipateView.js +2 -2
  927. package/dist/features/events/components/EventPollWidget.js +5 -5
  928. package/dist/features/events/components/EventRaffleEntryForm.js +7 -7
  929. package/dist/features/events/components/EventRaffleWinnerView.js +1 -1
  930. package/dist/features/events/components/EventRafflesSection.js +8 -8
  931. package/dist/features/events/components/EventSaleBanner.js +4 -4
  932. package/dist/features/events/components/EventStatusBadge.js +1 -1
  933. package/dist/features/events/components/EventsIndexListing.js +9 -9
  934. package/dist/features/events/components/EventsListPageView.js +9 -9
  935. package/dist/features/events/components/EventsListView.js +2 -2
  936. package/dist/features/events/components/RelatedEventsCarousel.js +6 -6
  937. package/dist/features/events/components/SpinWheelView.js +4 -4
  938. package/dist/features/events/components/index.js +21 -21
  939. package/dist/features/events/hooks/useBulkEvent.js +1 -1
  940. package/dist/features/events/hooks/useEvent.js +2 -2
  941. package/dist/features/events/hooks/useEvents.js +2 -2
  942. package/dist/features/events/index.js +8 -8
  943. package/dist/features/events/repository/event-entry.repository.js +6 -6
  944. package/dist/features/events/repository/events.repository.js +10 -10
  945. package/dist/features/events/schemas/event-form.js +1 -1
  946. package/dist/features/events/schemas/index.js +3 -3
  947. package/dist/features/events/server.js +4 -4
  948. package/dist/features/faq/actions/faq-actions.js +3 -3
  949. package/dist/features/faq/actions/index.js +1 -1
  950. package/dist/features/faq/columns/index.js +1 -1
  951. package/dist/features/faq/components/ContactCTA.js +1 -1
  952. package/dist/features/faq/components/FAQAccordion.js +1 -1
  953. package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
  954. package/dist/features/faq/components/FAQHelpfulButtons.js +2 -2
  955. package/dist/features/faq/components/FAQPageContent.js +7 -7
  956. package/dist/features/faq/components/FAQSearchableList.js +2 -2
  957. package/dist/features/faq/components/FAQSortDropdown.js +1 -1
  958. package/dist/features/faq/components/RelatedFAQs.js +1 -1
  959. package/dist/features/faq/components/index.js +7 -7
  960. package/dist/features/faq/hooks/useFaqList.js +2 -2
  961. package/dist/features/faq/hooks/useFaqVote.js +2 -2
  962. package/dist/features/faq/index.js +7 -7
  963. package/dist/features/faq/repository/faqs.repository.js +6 -6
  964. package/dist/features/faq/schemas/firestore.js +3 -2
  965. package/dist/features/faq/schemas/index.js +2 -2
  966. package/dist/features/faq/server.js +2 -2
  967. package/dist/features/faq/types/index.d.ts +9 -1
  968. package/dist/features/faq/utils/getHomepageFaqsCached.js +1 -1
  969. package/dist/features/filters/AsyncFacetSection.js +2 -2
  970. package/dist/features/filters/FilterFacetSection.js +2 -2
  971. package/dist/features/filters/FilterPanel.js +5 -5
  972. package/dist/features/filters/RangeFilter.js +2 -2
  973. package/dist/features/filters/SwitchFilter.js +2 -2
  974. package/dist/features/filters/index.js +8 -8
  975. package/dist/features/forms/Checkbox.js +3 -3
  976. package/dist/features/forms/Input.js +3 -3
  977. package/dist/features/forms/Radio.js +2 -2
  978. package/dist/features/forms/Select.js +3 -3
  979. package/dist/features/forms/Slider.js +3 -3
  980. package/dist/features/forms/Textarea.js +3 -3
  981. package/dist/features/forms/Toggle.js +2 -2
  982. package/dist/features/forms/index.js +8 -8
  983. package/dist/features/grouped/components/GroupedListingDetailView.js +3 -3
  984. package/dist/features/grouped/components/GroupedListingEditorView.js +12 -12
  985. package/dist/features/grouped/components/GroupedListingsCarousel.js +7 -7
  986. package/dist/features/grouped/repository/grouped-listings.repository.js +3 -3
  987. package/dist/features/grouped/schemas/grouped-listing-form.js +1 -1
  988. package/dist/features/grouped/schemas/index.d.ts +2 -2
  989. package/dist/features/grouped/schemas/index.js +2 -2
  990. package/dist/features/history/actions/history-actions.js +2 -2
  991. package/dist/features/history/actions/index.js +1 -1
  992. package/dist/features/history/components/HistoryTracker.js +2 -2
  993. package/dist/features/history/hooks/useHistory.js +4 -4
  994. package/dist/features/history/hooks/useHistoryMergeOnLogin.js +2 -2
  995. package/dist/features/history/index.js +4 -4
  996. package/dist/features/history/repository/user-history.repository.js +3 -3
  997. package/dist/features/history/server.js +2 -2
  998. package/dist/features/history/utils/guest-history.js +2 -2
  999. package/dist/features/homepage/actions/carousel-actions.js +3 -3
  1000. package/dist/features/homepage/actions/homepage-section-actions.js +5 -5
  1001. package/dist/features/homepage/actions/index.js +2 -2
  1002. package/dist/features/homepage/api/[id]/route.js +3 -3
  1003. package/dist/features/homepage/api/carousel/[id]/route.js +4 -4
  1004. package/dist/features/homepage/api/carousel/route.js +4 -4
  1005. package/dist/features/homepage/api/route.js +4 -4
  1006. package/dist/features/homepage/api/sections/[id]/route.js +2 -2
  1007. package/dist/features/homepage/api/sections/route.js +2 -2
  1008. package/dist/features/homepage/components/AdSlot.js +5 -5
  1009. package/dist/features/homepage/components/AdvertisementBanner.js +4 -4
  1010. package/dist/features/homepage/components/AnnouncementBar.js +3 -3
  1011. package/dist/features/homepage/components/BeforeAfterCard.js +3 -3
  1012. package/dist/features/homepage/components/BlogArticlesSection.js +6 -6
  1013. package/dist/features/homepage/components/BrandsSection.js +8 -8
  1014. package/dist/features/homepage/components/CTABannerSection.js +5 -5
  1015. package/dist/features/homepage/components/CharacterHotspot.js +7 -7
  1016. package/dist/features/homepage/components/CharacterHotspotForm.js +7 -7
  1017. package/dist/features/homepage/components/CollectionCardsSection.js +2 -2
  1018. package/dist/features/homepage/components/CustomCardsSection.js +5 -5
  1019. package/dist/features/homepage/components/CustomerReviewsSection.js +4 -4
  1020. package/dist/features/homepage/components/EventsSection.js +4 -4
  1021. package/dist/features/homepage/components/FAQSection.js +3 -3
  1022. package/dist/features/homepage/components/FeaturedAuctionsSection.js +5 -5
  1023. package/dist/features/homepage/components/FeaturedBundlesSection.js +9 -9
  1024. package/dist/features/homepage/components/FeaturedPreOrdersSection.js +5 -5
  1025. package/dist/features/homepage/components/FeaturedProductsSection.js +6 -6
  1026. package/dist/features/homepage/components/FeaturedResultsSection.js +3 -3
  1027. package/dist/features/homepage/components/FeaturedStoresSection.js +5 -5
  1028. package/dist/features/homepage/components/GoogleReviewsSection.js +6 -6
  1029. package/dist/features/homepage/components/HeroBanner.js +4 -4
  1030. package/dist/features/homepage/components/HeroCarousel.js +7 -7
  1031. package/dist/features/homepage/components/HeroSection.js +1 -1
  1032. package/dist/features/homepage/components/HomepageCustomerReviewsSection.js +4 -4
  1033. package/dist/features/homepage/components/HomepageSectionBoundary.js +1 -1
  1034. package/dist/features/homepage/components/HomepageSkeleton.js +3 -3
  1035. package/dist/features/homepage/components/HomepageView.js +1 -1
  1036. package/dist/features/homepage/components/HowItWorksInfoView.js +3 -3
  1037. package/dist/features/homepage/components/HowItWorksSection.js +2 -2
  1038. package/dist/features/homepage/components/MarketplaceHomepageView.js +17 -17
  1039. package/dist/features/homepage/components/NewsletterBanner.js +7 -7
  1040. package/dist/features/homepage/components/NewsletterSection.js +1 -1
  1041. package/dist/features/homepage/components/PromoGrid.js +4 -4
  1042. package/dist/features/homepage/components/SectionCarousel.js +6 -6
  1043. package/dist/features/homepage/components/SecurityHighlightsSection.js +2 -2
  1044. package/dist/features/homepage/components/ShopByCategorySection.js +8 -8
  1045. package/dist/features/homepage/components/SiteFeaturesSection.js +2 -2
  1046. package/dist/features/homepage/components/SocialFeedSection.js +6 -6
  1047. package/dist/features/homepage/components/SocialPostCard.js +2 -2
  1048. package/dist/features/homepage/components/StatsCounterSection.js +1 -1
  1049. package/dist/features/homepage/components/TestimonialsCarousel.js +1 -1
  1050. package/dist/features/homepage/components/TrustBadges.js +1 -1
  1051. package/dist/features/homepage/components/TrustFeaturesSection.js +1 -1
  1052. package/dist/features/homepage/components/TrustIndicatorsSection.js +2 -2
  1053. package/dist/features/homepage/components/WelcomeSection.js +2 -2
  1054. package/dist/features/homepage/components/WhatsAppCommunitySection.js +3 -3
  1055. package/dist/features/homepage/components/index.js +39 -39
  1056. package/dist/features/homepage/constants/faq-category-labels.d.ts +0 -14
  1057. package/dist/features/homepage/constants/faq-category-labels.js +22 -14
  1058. package/dist/features/homepage/hooks/homepage-query.js +1 -1
  1059. package/dist/features/homepage/hooks/useActiveAd.js +2 -2
  1060. package/dist/features/homepage/hooks/useBlogArticles.js +2 -2
  1061. package/dist/features/homepage/hooks/useFeaturedAuctions.js +5 -5
  1062. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +5 -5
  1063. package/dist/features/homepage/hooks/useFeaturedProducts.js +5 -5
  1064. package/dist/features/homepage/hooks/useFeaturedStores.js +2 -2
  1065. package/dist/features/homepage/hooks/useHeroCarousel.js +2 -2
  1066. package/dist/features/homepage/hooks/useHomepage.js +2 -2
  1067. package/dist/features/homepage/hooks/useHomepageEvents.js +2 -2
  1068. package/dist/features/homepage/hooks/useHomepageReviews.d.ts +1 -1
  1069. package/dist/features/homepage/hooks/useHomepageReviews.js +2 -2
  1070. package/dist/features/homepage/hooks/useHomepageSections.js +2 -2
  1071. package/dist/features/homepage/hooks/useNewsletter.js +2 -2
  1072. package/dist/features/homepage/hooks/useTopBrands.js +2 -2
  1073. package/dist/features/homepage/hooks/useTopCategories.js +2 -2
  1074. package/dist/features/homepage/index.js +17 -17
  1075. package/dist/features/homepage/lib/live-stats.js +5 -5
  1076. package/dist/features/homepage/lib/section-helpers.js +1 -1
  1077. package/dist/features/homepage/lib/section-renderer.js +32 -32
  1078. package/dist/features/homepage/repository/carousel.repository.js +6 -6
  1079. package/dist/features/homepage/repository/carousels.repository.js +6 -6
  1080. package/dist/features/homepage/repository/homepage-sections.repository.js +5 -5
  1081. package/dist/features/homepage/schemas/firestore.d.ts +26 -1
  1082. package/dist/features/homepage/schemas/firestore.js +1 -1
  1083. package/dist/features/homepage/schemas/index.js +2 -2
  1084. package/dist/features/homepage/server.js +9 -9
  1085. package/dist/features/jobs/actions/enqueue-job.js +6 -6
  1086. package/dist/features/jobs/repository/jobs.repository.js +2 -2
  1087. package/dist/features/layout/AppLayoutShell.js +18 -18
  1088. package/dist/features/layout/AutoBreadcrumbs.js +3 -3
  1089. package/dist/features/layout/BackToTop.js +4 -4
  1090. package/dist/features/layout/BottomActions.js +3 -3
  1091. package/dist/features/layout/BottomChrome.js +2 -2
  1092. package/dist/features/layout/BottomNavItem.js +1 -1
  1093. package/dist/features/layout/BottomNavLayout.js +2 -2
  1094. package/dist/features/layout/BottomNavbar.js +6 -6
  1095. package/dist/features/layout/BottomSheet.js +1 -1
  1096. package/dist/features/layout/Breadcrumbs.js +2 -2
  1097. package/dist/features/layout/FooterLayout.js +2 -2
  1098. package/dist/features/layout/LocaleSwitcher.js +1 -1
  1099. package/dist/features/layout/MainNavbar.d.ts +6 -0
  1100. package/dist/features/layout/MainNavbar.js +3 -2
  1101. package/dist/features/layout/NavItem.js +2 -2
  1102. package/dist/features/layout/NavbarLayout.d.ts +19 -0
  1103. package/dist/features/layout/NavbarLayout.js +24 -5
  1104. package/dist/features/layout/NavbarWithSettings.js +3 -3
  1105. package/dist/features/layout/PageTabs.js +2 -2
  1106. package/dist/features/layout/SidebarLayout.js +2 -2
  1107. package/dist/features/layout/TitleBar.js +6 -6
  1108. package/dist/features/layout/TitleBarLayout.js +2 -2
  1109. package/dist/features/layout/hooks/useBottomActions.js +1 -1
  1110. package/dist/features/layout/hooks/useFormBottomActions.js +4 -4
  1111. package/dist/features/layout/index.js +23 -23
  1112. package/dist/features/live/components/LiveItemDetailPageView.js +20 -20
  1113. package/dist/features/live/components/LiveItemFilters.js +4 -4
  1114. package/dist/features/live/components/index.js +1 -1
  1115. package/dist/features/lottery/repository/lottery-entry.repository.js +6 -6
  1116. package/dist/features/lottery/schemas/config-write.js +1 -1
  1117. package/dist/features/lottery/schemas/zod.d.ts +8 -8
  1118. package/dist/features/loyalty/api/admin/loyalty/grant/route.js +2 -2
  1119. package/dist/features/loyalty/api/balance/route.js +2 -2
  1120. package/dist/features/loyalty/api/earn/route.js +2 -2
  1121. package/dist/features/loyalty/api/history/route.js +2 -2
  1122. package/dist/features/loyalty/api/redeem/route.js +2 -2
  1123. package/dist/features/loyalty/columns/index.js +1 -1
  1124. package/dist/features/loyalty/components/CoinsDisplay.js +1 -1
  1125. package/dist/features/loyalty/components/index.js +1 -1
  1126. package/dist/features/loyalty/hooks/useLoyaltyBalance.js +3 -3
  1127. package/dist/features/loyalty/index.js +6 -6
  1128. package/dist/features/loyalty/server.js +1 -1
  1129. package/dist/features/loyalty/types/index.js +1 -1
  1130. package/dist/features/media/AvatarUpload.js +6 -6
  1131. package/dist/features/media/MediaAudio.js +2 -2
  1132. package/dist/features/media/MediaAvatar.js +2 -2
  1133. package/dist/features/media/MediaImage.js +4 -4
  1134. package/dist/features/media/MediaLightbox.js +2 -2
  1135. package/dist/features/media/MediaPickerModal.js +7 -7
  1136. package/dist/features/media/MediaVideo.js +3 -3
  1137. package/dist/features/media/finalize.js +3 -3
  1138. package/dist/features/media/hooks/useMedia.js +3 -3
  1139. package/dist/features/media/index.js +17 -17
  1140. package/dist/features/media/modals/ImageCropModal.js +2 -2
  1141. package/dist/features/media/modals/ImageEditor.d.ts +0 -1
  1142. package/dist/features/media/modals/ImageEditor.js +18 -3
  1143. package/dist/features/media/modals/VideoThumbnailSelector.js +3 -3
  1144. package/dist/features/media/modals/VideoTrimModal.js +5 -5
  1145. package/dist/features/media/repository/media-assets.repository.js +1 -1
  1146. package/dist/features/media/server.js +1 -1
  1147. package/dist/features/media/types/index.js +1 -1
  1148. package/dist/features/media/upload/CameraCapture.js +2 -2
  1149. package/dist/features/media/upload/ImageUpload.js +9 -9
  1150. package/dist/features/media/upload/MediaUploadField.js +11 -11
  1151. package/dist/features/media/upload/MediaUploadList.js +6 -6
  1152. package/dist/features/media/upload/video-poster.js +1 -1
  1153. package/dist/features/messaging/repository/message-budget.repository.js +2 -2
  1154. package/dist/features/orders/actions/index.js +2 -2
  1155. package/dist/features/orders/actions/order-actions.js +5 -5
  1156. package/dist/features/orders/actions/refund-actions.js +6 -6
  1157. package/dist/features/orders/api/track/[trackingId]/route.js +2 -2
  1158. package/dist/features/orders/columns/index.js +1 -1
  1159. package/dist/features/orders/components/MarketplaceOrderCard.js +4 -4
  1160. package/dist/features/orders/components/OrderAddonBadges.d.ts +4 -2
  1161. package/dist/features/orders/components/OrderAddonBadges.js +5 -4
  1162. package/dist/features/orders/components/OrderFilters.js +6 -6
  1163. package/dist/features/orders/components/OrderPaymentSummary.js +2 -2
  1164. package/dist/features/orders/components/OrderScopeTabs.js +4 -4
  1165. package/dist/features/orders/components/OrderSiblingPayments.js +5 -5
  1166. package/dist/features/orders/components/OrderStatusTimeline.js +2 -2
  1167. package/dist/features/orders/components/OrdersList.js +5 -5
  1168. package/dist/features/orders/components/RefundHistoryTable.js +3 -3
  1169. package/dist/features/orders/components/RefundRequestView.js +8 -8
  1170. package/dist/features/orders/components/index.js +9 -9
  1171. package/dist/features/orders/constants/order-scope.js +1 -1
  1172. package/dist/features/orders/hooks/useOrders.js +2 -2
  1173. package/dist/features/orders/index.js +9 -9
  1174. package/dist/features/orders/repository/orders.repository.d.ts +8 -0
  1175. package/dist/features/orders/repository/orders.repository.js +13 -11
  1176. package/dist/features/orders/schemas/buyer-forms.js +1 -1
  1177. package/dist/features/orders/schemas/firestore.d.ts +95 -1
  1178. package/dist/features/orders/schemas/firestore.js +1 -1
  1179. package/dist/features/orders/schemas/index.d.ts +6 -6
  1180. package/dist/features/orders/schemas/index.js +2 -2
  1181. package/dist/features/orders/server.js +3 -3
  1182. package/dist/features/orders/types/index.d.ts +3 -0
  1183. package/dist/features/orders/utils/order-splitter.js +2 -2
  1184. package/dist/features/payments/columns/index.js +1 -1
  1185. package/dist/features/payments/hooks/usePaymentEvent.js +2 -2
  1186. package/dist/features/payments/hooks/usePayments.js +2 -2
  1187. package/dist/features/payments/index.js +6 -6
  1188. package/dist/features/payments/repository/payout.repository.js +4 -4
  1189. package/dist/features/payments/repository/saved-payment-methods.repository.js +6 -6
  1190. package/dist/features/payments/schemas/firestore.js +1 -1
  1191. package/dist/features/payments/schemas/index.d.ts +6 -6
  1192. package/dist/features/payments/schemas/index.js +3 -3
  1193. package/dist/features/payments/server.js +4 -4
  1194. package/dist/features/pre-orders/api/[id]/route.js +2 -2
  1195. package/dist/features/pre-orders/api/[slug]/route.js +2 -2
  1196. package/dist/features/pre-orders/api/admin/[id]/route.js +2 -2
  1197. package/dist/features/pre-orders/api/admin/route.js +2 -2
  1198. package/dist/features/pre-orders/api/route.js +3 -3
  1199. package/dist/features/pre-orders/columns/index.js +1 -1
  1200. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +1 -1
  1201. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +14 -14
  1202. package/dist/features/pre-orders/components/PreOrderActionsClient.js +4 -4
  1203. package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
  1204. package/dist/features/pre-orders/components/PreOrderBottomActions.js +1 -1
  1205. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +26 -26
  1206. package/dist/features/pre-orders/components/PreOrderFilters.js +4 -4
  1207. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +23 -23
  1208. package/dist/features/pre-orders/components/PreOrdersListView.js +4 -4
  1209. package/dist/features/pre-orders/components/PreorderCard.js +2 -2
  1210. package/dist/features/pre-orders/components/index.js +6 -6
  1211. package/dist/features/pre-orders/hooks/usePreOrders.js +2 -2
  1212. package/dist/features/pre-orders/index.js +6 -6
  1213. package/dist/features/pre-orders/schemas/index.js +1 -1
  1214. package/dist/features/pre-orders/server.js +1 -1
  1215. package/dist/features/price-index/components/PriceIndexToolView.d.ts +87 -0
  1216. package/dist/features/price-index/components/PriceIndexToolView.js +140 -0
  1217. package/dist/features/products/actions/index.js +1 -1
  1218. package/dist/features/products/actions/product-actions.js +6 -6
  1219. package/dist/features/products/api/[id]/route.js +8 -8
  1220. package/dist/features/products/api/route.js +7 -7
  1221. package/dist/features/products/columns/index.js +2 -2
  1222. package/dist/features/products/columns/productTableColumns.js +3 -3
  1223. package/dist/features/products/components/ArtStickersListView.js +7 -7
  1224. package/dist/features/products/components/AuctionDetailView.js +1 -1
  1225. package/dist/features/products/components/AuctionsIndexListing.js +20 -20
  1226. package/dist/features/products/components/AvailabilityTabs.js +5 -5
  1227. package/dist/features/products/components/BidHistory.js +3 -3
  1228. package/dist/features/products/components/CardStoreLine.js +2 -2
  1229. package/dist/features/products/components/CompareOverlay.js +9 -9
  1230. package/dist/features/products/components/CustomFieldsEditor.js +2 -2
  1231. package/dist/features/products/components/CustomSectionTabContent.js +2 -2
  1232. package/dist/features/products/components/CustomSectionsEditor.js +3 -3
  1233. package/dist/features/products/components/FeatureBadge.js +2 -2
  1234. package/dist/features/products/components/GroupMemberPicker.js +9 -9
  1235. package/dist/features/products/components/GroupSettingsPanel.js +12 -12
  1236. package/dist/features/products/components/InteractiveProductCard.js +2 -2
  1237. package/dist/features/products/components/ListingBottomActions.js +4 -4
  1238. package/dist/features/products/components/MakeOfferButton.js +13 -13
  1239. package/dist/features/products/components/MarketplaceBundleCard.js +9 -9
  1240. package/dist/features/products/components/MarketplacePrizeDrawCard.js +9 -9
  1241. package/dist/features/products/components/NonRefundableConsentModal.js +1 -1
  1242. package/dist/features/products/components/PreOrderDetailView.js +1 -1
  1243. package/dist/features/products/components/PrizeDrawBottomActions.js +1 -1
  1244. package/dist/features/products/components/PrizeDrawCollage.js +4 -4
  1245. package/dist/features/products/components/PrizeDrawDetailPageView.js +18 -18
  1246. package/dist/features/products/components/PrizeDrawEntryActions.js +8 -8
  1247. package/dist/features/products/components/PrizeDrawItemsEditor.js +2 -2
  1248. package/dist/features/products/components/PrizeDrawWinnerMappingView.js +3 -3
  1249. package/dist/features/products/components/PrizeDrawsIndexListing.js +14 -14
  1250. package/dist/features/products/components/PrizeDrawsListingView.js +6 -6
  1251. package/dist/features/products/components/PrizeDrawsSection.js +6 -6
  1252. package/dist/features/products/components/PrizeRevealModal.js +3 -3
  1253. package/dist/features/products/components/ProductCardMetadataSection.js +1 -1
  1254. package/dist/features/products/components/ProductDetailActions.js +14 -14
  1255. package/dist/features/products/components/ProductDetailPageView.js +28 -28
  1256. package/dist/features/products/components/ProductDetailView.js +1 -1
  1257. package/dist/features/products/components/ProductFeatureBadges.js +1 -1
  1258. package/dist/features/products/components/ProductFeaturesSelector.js +5 -5
  1259. package/dist/features/products/components/ProductFilters.js +8 -8
  1260. package/dist/features/products/components/ProductForm.js +15 -15
  1261. package/dist/features/products/components/ProductGalleryClient.js +3 -3
  1262. package/dist/features/products/components/ProductGradingTab.js +3 -3
  1263. package/dist/features/products/components/ProductGrid.js +16 -16
  1264. package/dist/features/products/components/ProductTabs.js +1 -1
  1265. package/dist/features/products/components/ProductTabsShell.js +2 -2
  1266. package/dist/features/products/components/ProductsIndexListing.js +33 -33
  1267. package/dist/features/products/components/ProductsIndexPageView.js +12 -12
  1268. package/dist/features/products/components/ProductsView.js +1 -1
  1269. package/dist/features/products/components/RelatedItemsSection.js +2 -2
  1270. package/dist/features/products/components/RelatedProducts.js +1 -1
  1271. package/dist/features/products/components/RelatedProductsCarousel.js +4 -4
  1272. package/dist/features/products/components/ShareButton.js +2 -2
  1273. package/dist/features/products/components/ShowGroupSection.js +8 -8
  1274. package/dist/features/products/components/SublistingCarouselSection.js +8 -8
  1275. package/dist/features/products/components/SublistingCategorySelect.js +2 -2
  1276. package/dist/features/products/components/index.js +42 -42
  1277. package/dist/features/products/config/listing-type-listing-config.js +7 -7
  1278. package/dist/features/products/constants/action-defs.js +1 -1
  1279. package/dist/features/products/constants/listing-tabs.js +2 -2
  1280. package/dist/features/products/constants/sieve.js +2 -2
  1281. package/dist/features/products/hooks/useAvailabilityScope.js +4 -4
  1282. package/dist/features/products/hooks/useBrands.d.ts +1 -1
  1283. package/dist/features/products/hooks/useBrands.js +2 -2
  1284. package/dist/features/products/hooks/useProductDetail.js +2 -2
  1285. package/dist/features/products/hooks/useProducts.js +5 -5
  1286. package/dist/features/products/hooks/useRelatedProducts.js +4 -4
  1287. package/dist/features/products/index.js +14 -14
  1288. package/dist/features/products/repository/loadProductFeatures.js +2 -2
  1289. package/dist/features/products/repository/product-features.repository.js +7 -7
  1290. package/dist/features/products/repository/product-templates.repository.js +3 -3
  1291. package/dist/features/products/repository/products.repository.d.ts +66 -41
  1292. package/dist/features/products/repository/products.repository.js +193 -81
  1293. package/dist/features/products/schemas/firestore.d.ts +26 -1
  1294. package/dist/features/products/schemas/firestore.js +18 -1
  1295. package/dist/features/products/schemas/index.d.ts +2 -2
  1296. package/dist/features/products/schemas/index.js +3 -3
  1297. package/dist/features/products/schemas/product-features.validators.js +1 -1
  1298. package/dist/features/products/server.js +4 -4
  1299. package/dist/features/products/utils/listing-badge-variant.js +1 -1
  1300. package/dist/features/products/utils/listing-type.js +1 -1
  1301. package/dist/features/promotions/actions/coupon-actions.js +2 -2
  1302. package/dist/features/promotions/actions/index.js +4 -4
  1303. package/dist/features/promotions/actions/promotions-actions.js +3 -3
  1304. package/dist/features/promotions/actions/seller-coupon-actions.js +5 -5
  1305. package/dist/features/promotions/api/route.js +2 -2
  1306. package/dist/features/promotions/columns/index.js +1 -1
  1307. package/dist/features/promotions/components/CouponCard.js +4 -4
  1308. package/dist/features/promotions/components/CouponHelpDetails.js +2 -2
  1309. package/dist/features/promotions/components/CouponsIndexListing.js +8 -8
  1310. package/dist/features/promotions/components/PromotionsView.js +1 -1
  1311. package/dist/features/promotions/components/index.js +4 -4
  1312. package/dist/features/promotions/hooks/useCouponValidate.js +2 -2
  1313. package/dist/features/promotions/hooks/usePromotions.js +2 -2
  1314. package/dist/features/promotions/index.js +7 -7
  1315. package/dist/features/promotions/repository/claimed-coupons.repository.js +5 -5
  1316. package/dist/features/promotions/repository/coupons.repository.js +9 -9
  1317. package/dist/features/promotions/schemas/firestore.js +1 -1
  1318. package/dist/features/promotions/schemas/index.d.ts +24 -24
  1319. package/dist/features/promotions/schemas/index.js +2 -2
  1320. package/dist/features/promotions/server.js +3 -3
  1321. package/dist/features/reviews/actions/index.js +1 -1
  1322. package/dist/features/reviews/actions/review-actions.js +9 -9
  1323. package/dist/features/reviews/api/[id]/route.js +5 -5
  1324. package/dist/features/reviews/columns/index.js +1 -1
  1325. package/dist/features/reviews/components/ReviewDetailPageView.js +7 -7
  1326. package/dist/features/reviews/components/ReviewDetailShell.js +11 -11
  1327. package/dist/features/reviews/components/ReviewFilters.js +7 -7
  1328. package/dist/features/reviews/components/ReviewModal.js +7 -7
  1329. package/dist/features/reviews/components/ReviewSummary.js +3 -3
  1330. package/dist/features/reviews/components/ReviewsIndexListing.js +1 -1
  1331. package/dist/features/reviews/components/ReviewsIndexPageView.js +5 -5
  1332. package/dist/features/reviews/components/ReviewsList.js +9 -9
  1333. package/dist/features/reviews/components/ReviewsListingPanel.js +10 -10
  1334. package/dist/features/reviews/components/index.js +6 -6
  1335. package/dist/features/reviews/hooks/useCreateReview.js +3 -3
  1336. package/dist/features/reviews/hooks/useReviews.js +2 -2
  1337. package/dist/features/reviews/index.js +7 -7
  1338. package/dist/features/reviews/repository/reviews.repository.js +7 -7
  1339. package/dist/features/reviews/schemas/firestore.js +1 -1
  1340. package/dist/features/reviews/schemas/index.js +2 -2
  1341. package/dist/features/reviews/server.js +3 -3
  1342. package/dist/features/scams/actions/scam-actions.js +5 -5
  1343. package/dist/features/scams/components/ScamAwarenessModal.js +5 -5
  1344. package/dist/features/scams/components/ScamProfileView.js +8 -8
  1345. package/dist/features/scams/components/ScamRegistryView.js +7 -7
  1346. package/dist/features/scams/components/SellerTrustBadge.js +3 -3
  1347. package/dist/features/scams/components/index.js +4 -4
  1348. package/dist/features/scams/constants/scammer-status-display.js +1 -1
  1349. package/dist/features/scams/repository/scammer.repository.js +10 -10
  1350. package/dist/features/scams/schemas/index.d.ts +10 -10
  1351. package/dist/features/scams/schemas/index.js +2 -2
  1352. package/dist/features/scams/schemas/report-form.js +1 -1
  1353. package/dist/features/search/action-index/repository.js +2 -2
  1354. package/dist/features/search/actions/index.js +1 -1
  1355. package/dist/features/search/actions/search-actions.js +2 -2
  1356. package/dist/features/search/api/route.js +5 -5
  1357. package/dist/features/search/columns/index.js +1 -1
  1358. package/dist/features/search/components/Search.js +2 -2
  1359. package/dist/features/search/components/SearchFiltersRow.js +1 -1
  1360. package/dist/features/search/components/SearchResultsSection.js +1 -1
  1361. package/dist/features/search/components/SearchView.js +1 -1
  1362. package/dist/features/search/components/index.js +4 -4
  1363. package/dist/features/search/hooks/useNavSuggestions.js +2 -2
  1364. package/dist/features/search/hooks/useSearch.js +2 -2
  1365. package/dist/features/search/index.js +7 -7
  1366. package/dist/features/search/repository/search.repository.js +2 -2
  1367. package/dist/features/search/server.js +4 -4
  1368. package/dist/features/seller/actions/index.js +2 -2
  1369. package/dist/features/seller/actions/offer-actions.js +14 -14
  1370. package/dist/features/seller/actions/seller-actions.js +22 -22
  1371. package/dist/features/seller/api/coupons/route.js +2 -2
  1372. package/dist/features/seller/api/products/route.js +3 -3
  1373. package/dist/features/seller/api/store/route.js +2 -2
  1374. package/dist/features/seller/columns/index.js +1 -1
  1375. package/dist/features/seller/components/BarcodeField.js +3 -3
  1376. package/dist/features/seller/components/BrandInlineSelect.js +4 -4
  1377. package/dist/features/seller/components/BulkStockModal.d.ts +16 -0
  1378. package/dist/features/seller/components/BulkStockModal.js +46 -0
  1379. package/dist/features/seller/components/CategoryChipPicker.js +2 -2
  1380. package/dist/features/seller/components/CategoryInlineSelect.js +4 -4
  1381. package/dist/features/seller/components/CouponInlineSelect.js +3 -3
  1382. package/dist/features/seller/components/FulfillmentView.js +9 -9
  1383. package/dist/features/seller/components/GroupInlineSelect.js +4 -4
  1384. package/dist/features/seller/components/OfferPhaseTimeline.js +1 -1
  1385. package/dist/features/seller/components/PhysicalLocationModal.js +22 -7
  1386. package/dist/features/seller/components/PrintCenterView.js +6 -6
  1387. package/dist/features/seller/components/ProductInlineSelect.js +3 -3
  1388. package/dist/features/seller/components/QuickProductForm.js +2 -2
  1389. package/dist/features/seller/components/SellerAddressesView.js +9 -9
  1390. package/dist/features/seller/components/SellerAnalyticsAlertsView.js +11 -11
  1391. package/dist/features/seller/components/SellerAnalyticsView.js +1 -1
  1392. package/dist/features/seller/components/SellerArtView.js +1 -1
  1393. package/dist/features/seller/components/SellerBidsView.js +14 -14
  1394. package/dist/features/seller/components/SellerBundlesView.js +7 -7
  1395. package/dist/features/seller/components/SellerClassifiedView.js +1 -1
  1396. package/dist/features/seller/components/SellerCouponEditorView.js +10 -10
  1397. package/dist/features/seller/components/SellerCouponsView.js +7 -7
  1398. package/dist/features/seller/components/SellerCreateProductView.js +1 -1
  1399. package/dist/features/seller/components/SellerDashboardView.js +1 -1
  1400. package/dist/features/seller/components/SellerDigitalCodesView.js +1 -1
  1401. package/dist/features/seller/components/SellerEditProductView.js +1 -1
  1402. package/dist/features/seller/components/SellerFeaturesView.js +8 -8
  1403. package/dist/features/seller/components/SellerGoogleReviewsView.js +8 -8
  1404. package/dist/features/seller/components/SellerGroupedListingsView.js +6 -6
  1405. package/dist/features/seller/components/SellerGuideView.js +1 -1
  1406. package/dist/features/seller/components/SellerListingTypeView.js +13 -13
  1407. package/dist/features/seller/components/SellerLiveView.js +1 -1
  1408. package/dist/features/seller/components/SellerOffersView.js +9 -9
  1409. package/dist/features/seller/components/SellerOrdersView.js +23 -23
  1410. package/dist/features/seller/components/SellerPayoutHistoryTable.js +1 -1
  1411. package/dist/features/seller/components/SellerPayoutMethodsView.js +7 -7
  1412. package/dist/features/seller/components/SellerPayoutRequestView.js +3 -3
  1413. package/dist/features/seller/components/SellerPayoutSettingsView.js +30 -8
  1414. package/dist/features/seller/components/SellerPayoutStats.js +1 -1
  1415. package/dist/features/seller/components/SellerPayoutsView.js +11 -11
  1416. package/dist/features/seller/components/SellerProductShell.js +14 -14
  1417. package/dist/features/seller/components/SellerProductsCards.js +5 -5
  1418. package/dist/features/seller/components/SellerProductsFilterDrawer.js +4 -4
  1419. package/dist/features/seller/components/SellerProductsView.js +107 -33
  1420. package/dist/features/seller/components/SellerReviewsView.js +12 -12
  1421. package/dist/features/seller/components/SellerShippingConfigsView.js +9 -9
  1422. package/dist/features/seller/components/SellerShippingView.js +7 -7
  1423. package/dist/features/seller/components/SellerSidebar.js +9 -9
  1424. package/dist/features/seller/components/SellerStickersView.js +1 -1
  1425. package/dist/features/seller/components/SellerStoreCategoriesView.js +10 -10
  1426. package/dist/features/seller/components/SellerStoreSetupView.js +1 -1
  1427. package/dist/features/seller/components/SellerStoreView.js +1 -1
  1428. package/dist/features/seller/components/SellerStorefrontView.js +5 -5
  1429. package/dist/features/seller/components/SellerSupportView.js +6 -6
  1430. package/dist/features/seller/components/SellersListView.js +1 -1
  1431. package/dist/features/seller/components/SublistingInlineSelect.js +3 -3
  1432. package/dist/features/seller/components/analytics/SellerAnalyticsStats.js +2 -2
  1433. package/dist/features/seller/components/analytics/SellerRevenueChart.js +2 -2
  1434. package/dist/features/seller/components/analytics/SellerTopProducts.js +1 -1
  1435. package/dist/features/seller/components/analytics/index.js +3 -3
  1436. package/dist/features/seller/components/index.js +67 -67
  1437. package/dist/features/seller/hooks/useBecomeSeller.js +3 -3
  1438. package/dist/features/seller/hooks/useSellerListingData.js +1 -1
  1439. package/dist/features/seller/hooks/useSellerPayouts.js +2 -2
  1440. package/dist/features/seller/hooks/useSellerStore.js +2 -2
  1441. package/dist/features/seller/hooks/useSellerStorefront.js +2 -2
  1442. package/dist/features/seller/index.js +11 -11
  1443. package/dist/features/seller/repository/offer.repository.js +6 -6
  1444. package/dist/features/seller/schemas/coupon-form.d.ts +20 -20
  1445. package/dist/features/seller/schemas/coupon-form.js +1 -1
  1446. package/dist/features/seller/schemas/firestore.js +1 -1
  1447. package/dist/features/seller/schemas/index.js +1 -1
  1448. package/dist/features/seller/schemas/order-forms.js +2 -2
  1449. package/dist/features/seller/schemas/product-form.js +1 -1
  1450. package/dist/features/seller/schemas/review-forms.js +1 -1
  1451. package/dist/features/seller/server.js +5 -5
  1452. package/dist/features/server-errors/repository/server-errors.repository.js +4 -4
  1453. package/dist/features/server-errors/schemas/index.js +1 -1
  1454. package/dist/features/shell/CommandPalette.js +2 -2
  1455. package/dist/features/shell/FormShell.js +5 -5
  1456. package/dist/features/shell/QuickFormDrawer.js +7 -7
  1457. package/dist/features/shell/SectionForm.js +9 -9
  1458. package/dist/features/shell/build-sections.js +11 -11
  1459. package/dist/features/shell/field-groups/ImageFieldGroup.js +1 -1
  1460. package/dist/features/shell/field-groups/SeoFieldGroup.js +3 -3
  1461. package/dist/features/shell/field-groups/StatusFieldGroup.js +2 -2
  1462. package/dist/features/shell/field-groups/TitleDescriptionGroup.js +3 -3
  1463. package/dist/features/shell/field-groups/index.js +4 -4
  1464. package/dist/features/shell/index.js +8 -8
  1465. package/dist/features/shipments/components/AdminShipmentEditorView.js +13 -13
  1466. package/dist/features/shipments/components/AdminShipmentLotItemsView.js +12 -12
  1467. package/dist/features/shipments/components/AdminShipmentProjectionsView.js +5 -5
  1468. package/dist/features/shipments/components/AdminShipmentsView.js +7 -7
  1469. package/dist/features/shipments/components/ShipmentItemLinkModal.js +4 -4
  1470. package/dist/features/shipments/hooks/useShipments.js +2 -2
  1471. package/dist/features/shipments/index.js +7 -7
  1472. package/dist/features/shipments/repository/shipment-items.repository.js +4 -4
  1473. package/dist/features/shipments/repository/shipment-lots.repository.js +2 -2
  1474. package/dist/features/shipments/repository/shipments.repository.js +4 -4
  1475. package/dist/features/shipments/schemas/firestore.js +1 -1
  1476. package/dist/features/shipments/schemas/index.js +2 -2
  1477. package/dist/features/shipments/schemas/validation.d.ts +4 -4
  1478. package/dist/features/shipments/schemas/validation.js +3 -3
  1479. package/dist/features/shipments/utils/cost-allocation.js +1 -1
  1480. package/dist/features/site-settings/components/ActionPermissionsManager.js +4 -4
  1481. package/dist/features/site-settings/components/NavPermissionsManager.js +3 -3
  1482. package/dist/features/site-settings/components/ThemeManagerView.js +2 -2
  1483. package/dist/features/status-history/components/RecordStatusTimeline.js +1 -1
  1484. package/dist/features/status-history/components/StatusTimeline.js +1 -1
  1485. package/dist/features/status-history/index.js +2 -2
  1486. package/dist/features/store-extensions/components/ReviewDecisionModal.js +10 -10
  1487. package/dist/features/store-extensions/index.js +16 -16
  1488. package/dist/features/store-extensions/repository/rbac.repositories.js +2 -2
  1489. package/dist/features/store-extensions/repository/store-extensions.repositories.js +3 -3
  1490. package/dist/features/store-extensions/schemas/admin-notification-form.js +1 -1
  1491. package/dist/features/store-extensions/schemas/analytics-forms.js +2 -2
  1492. package/dist/features/store-extensions/schemas/custom-role-form.js +2 -2
  1493. package/dist/features/store-extensions/schemas/google-config-form.d.ts +6 -6
  1494. package/dist/features/store-extensions/schemas/google-config-form.js +1 -1
  1495. package/dist/features/store-extensions/schemas/item-request-create-form.js +1 -1
  1496. package/dist/features/store-extensions/schemas/listing-template-form.js +3 -3
  1497. package/dist/features/store-extensions/schemas/moderation-review-form.js +1 -1
  1498. package/dist/features/store-extensions/schemas/payout-method-form.js +1 -1
  1499. package/dist/features/store-extensions/schemas/report-create-form.js +2 -2
  1500. package/dist/features/store-extensions/schemas/report-review-form.js +1 -1
  1501. package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +10 -10
  1502. package/dist/features/store-extensions/schemas/shipping-config-form.js +1 -1
  1503. package/dist/features/store-extensions/schemas/store-category-form.js +1 -1
  1504. package/dist/features/store-extensions/schemas/sublisting-category-form.js +1 -1
  1505. package/dist/features/stores/actions/index.js +2 -2
  1506. package/dist/features/stores/actions/store-address-actions.js +4 -4
  1507. package/dist/features/stores/actions/store-query-actions.js +9 -9
  1508. package/dist/features/stores/api/[storeSlug]/auctions/route.js +5 -5
  1509. package/dist/features/stores/api/[storeSlug]/products/route.js +5 -5
  1510. package/dist/features/stores/api/[storeSlug]/reviews/route.js +4 -4
  1511. package/dist/features/stores/api/[storeSlug]/route.js +3 -3
  1512. package/dist/features/stores/columns/index.js +1 -1
  1513. package/dist/features/stores/components/InteractiveStoreCard.js +5 -5
  1514. package/dist/features/stores/components/StoreAboutView.js +3 -3
  1515. package/dist/features/stores/components/StoreAddressSelectorCreate.js +2 -2
  1516. package/dist/features/stores/components/StoreArtStickersPageView.js +6 -6
  1517. package/dist/features/stores/components/StoreAuctionsListing.js +15 -15
  1518. package/dist/features/stores/components/StoreAuctionsPageView.js +5 -5
  1519. package/dist/features/stores/components/StoreAuctionsView.js +1 -1
  1520. package/dist/features/stores/components/StoreBundlesPageView.js +5 -5
  1521. package/dist/features/stores/components/StoreCapabilitiesGuideView.js +2 -2
  1522. package/dist/features/stores/components/StoreClassifiedsListing.js +12 -12
  1523. package/dist/features/stores/components/StoreClassifiedsPageView.js +5 -5
  1524. package/dist/features/stores/components/StoreDetailLayoutView.js +12 -12
  1525. package/dist/features/stores/components/StoreDigitalCodesListing.js +12 -12
  1526. package/dist/features/stores/components/StoreDigitalCodesPageView.js +5 -5
  1527. package/dist/features/stores/components/StoreFilters.js +4 -4
  1528. package/dist/features/stores/components/StoreFinanceGuideView.js +2 -2
  1529. package/dist/features/stores/components/StoreGuideHubView.js +2 -2
  1530. package/dist/features/stores/components/StoreHeader.js +6 -6
  1531. package/dist/features/stores/components/StoreListingsGuideView.js +2 -2
  1532. package/dist/features/stores/components/StoreLiveItemsListing.js +12 -12
  1533. package/dist/features/stores/components/StoreLiveItemsPageView.js +5 -5
  1534. package/dist/features/stores/components/StoreNavTabs.js +2 -2
  1535. package/dist/features/stores/components/StoreOrdersGuideView.js +2 -2
  1536. package/dist/features/stores/components/StorePreOrdersListing.js +11 -11
  1537. package/dist/features/stores/components/StorePreOrdersPageView.js +5 -5
  1538. package/dist/features/stores/components/StorePrizeDrawsPageView.js +5 -5
  1539. package/dist/features/stores/components/StoreProductsListing.js +15 -15
  1540. package/dist/features/stores/components/StoreProductsPageView.js +5 -5
  1541. package/dist/features/stores/components/StoreProductsView.js +1 -1
  1542. package/dist/features/stores/components/StoreReviewsListing.js +1 -1
  1543. package/dist/features/stores/components/StoreReviewsPageView.js +1 -1
  1544. package/dist/features/stores/components/StoreReviewsView.js +1 -1
  1545. package/dist/features/stores/components/StoreScopedSearch.js +3 -3
  1546. package/dist/features/stores/components/StoreSettingsGuideView.js +2 -2
  1547. package/dist/features/stores/components/StoreWhatsAppGuideView.js +2 -2
  1548. package/dist/features/stores/components/StoresIndexListing.js +12 -12
  1549. package/dist/features/stores/components/StoresIndexPageView.js +7 -7
  1550. package/dist/features/stores/components/index.js +23 -23
  1551. package/dist/features/stores/hooks/useStoreAddressSelector.js +2 -2
  1552. package/dist/features/stores/hooks/useStores.js +2 -2
  1553. package/dist/features/stores/index.js +7 -7
  1554. package/dist/features/stores/repository/store.repository.js +9 -9
  1555. package/dist/features/stores/schemas/firestore.d.ts +86 -0
  1556. package/dist/features/stores/schemas/firestore.js +2 -2
  1557. package/dist/features/stores/schemas/index.d.ts +30 -30
  1558. package/dist/features/stores/schemas/index.js +3 -3
  1559. package/dist/features/stores/server.js +6 -6
  1560. package/dist/features/stores/types/index.d.ts +10 -0
  1561. package/dist/features/support/repository/support.repository.js +11 -11
  1562. package/dist/features/support/schemas/index.d.ts +2 -2
  1563. package/dist/features/support/schemas/index.js +2 -2
  1564. package/dist/features/support/schemas/ticket-create-form.js +2 -2
  1565. package/dist/features/tax-codes/repository/tax-codes.repository.js +4 -4
  1566. package/dist/features/tax-codes/schemas/tax-code-form.js +2 -2
  1567. package/dist/features/tax-codes/schemas/tax-codes.validators.js +1 -1
  1568. package/dist/features/tester/actions/checklist-item-actions.d.ts +8 -8
  1569. package/dist/features/tester/actions/checklist-item-actions.js +2 -2
  1570. package/dist/features/tester/actions/index.js +1 -1
  1571. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +6 -6
  1572. package/dist/features/tester/components/AdminTesterFeedbackListView.js +10 -10
  1573. package/dist/features/tester/components/AdminTesterFeedbackReportView.js +4 -4
  1574. package/dist/features/tester/components/AdminTesterFeedbackView.js +8 -8
  1575. package/dist/features/tester/components/TesterChecklistStepRow.js +4 -4
  1576. package/dist/features/tester/components/TesterFeedbackChart.js +2 -2
  1577. package/dist/features/tester/components/index.js +6 -6
  1578. package/dist/features/tester/index.js +2 -2
  1579. package/dist/features/tester/repository/index.js +2 -2
  1580. package/dist/features/tester/repository/tester-checklist-item.repository.js +4 -4
  1581. package/dist/features/tester/repository/tester-checklist-response.repository.js +3 -3
  1582. package/dist/features/tester/schemas/checklist-item-form.d.ts +4 -4
  1583. package/dist/features/tester/schemas/checklist-item-form.js +1 -1
  1584. package/dist/features/tester/schemas/firestore.js +1 -1
  1585. package/dist/features/tester/schemas/index.js +1 -1
  1586. package/dist/features/tester/seed-data/authored/index.js +118 -118
  1587. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +1 -1
  1588. package/dist/features/tester/seed-data/index.js +2 -2
  1589. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +4 -4
  1590. package/dist/features/tester/server.js +3 -3
  1591. package/dist/features/whatsapp-bot/api/send-status/route.js +2 -2
  1592. package/dist/features/whatsapp-bot/api/webhook/route.js +2 -2
  1593. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +12 -12
  1594. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +1 -1
  1595. package/dist/features/whatsapp-bot/components/index.js +2 -2
  1596. package/dist/features/whatsapp-bot/helpers/whatsapp.js +3 -3
  1597. package/dist/features/whatsapp-bot/index.js +3 -3
  1598. package/dist/features/whatsapp-bot/server.js +2 -2
  1599. package/dist/features/wishlist/actions/index.js +1 -1
  1600. package/dist/features/wishlist/actions/wishlist-actions.js +4 -4
  1601. package/dist/features/wishlist/columns/index.js +1 -1
  1602. package/dist/features/wishlist/components/WishlistCapWatcher.js +2 -2
  1603. package/dist/features/wishlist/components/WishlistHeartButton.js +2 -2
  1604. package/dist/features/wishlist/components/WishlistPage.js +3 -3
  1605. package/dist/features/wishlist/components/WishlistView.js +3 -3
  1606. package/dist/features/wishlist/components/index.js +4 -4
  1607. package/dist/features/wishlist/hooks/useGuestWishlist.js +1 -1
  1608. package/dist/features/wishlist/hooks/useUserWishlist.js +2 -2
  1609. package/dist/features/wishlist/hooks/useWishlist.js +2 -2
  1610. package/dist/features/wishlist/hooks/useWishlistCount.js +8 -8
  1611. package/dist/features/wishlist/hooks/useWishlistToggle.js +3 -3
  1612. package/dist/features/wishlist/hooks/useWishlistWithGuest.js +2 -2
  1613. package/dist/features/wishlist/index.js +12 -12
  1614. package/dist/features/wishlist/repository/user-wishlist.repository.js +4 -4
  1615. package/dist/features/wishlist/server.js +2 -2
  1616. package/dist/features/wishlist/utils/guest-wishlist.js +1 -1
  1617. package/dist/hand-mode/index.js +1 -1
  1618. package/dist/http/api-handler.js +8 -8
  1619. package/dist/http/index.js +2 -2
  1620. package/dist/http/retry.js +1 -1
  1621. package/dist/index.d.ts +20 -3
  1622. package/dist/index.js +2006 -1969
  1623. package/dist/monitoring/browser.js +5 -5
  1624. package/dist/monitoring/cache-metrics.js +1 -1
  1625. package/dist/monitoring/client-logger.js +3 -3
  1626. package/dist/monitoring/index.js +6 -6
  1627. package/dist/monitoring/runtime.js +1 -1
  1628. package/dist/monitoring/server-logger.js +3 -3
  1629. package/dist/next/ErrorBoundary.js +3 -3
  1630. package/dist/next/api/api-response.js +2 -2
  1631. package/dist/next/api/apiHandler.js +3 -3
  1632. package/dist/next/api/parseJsonBody.js +1 -1
  1633. package/dist/next/api/routeHandler.js +9 -9
  1634. package/dist/next/cache-middleware.js +1 -1
  1635. package/dist/next/components/ErrorView.js +3 -3
  1636. package/dist/next/components/GlobalError.js +23 -2
  1637. package/dist/next/components/NotFoundView.js +4 -4
  1638. package/dist/next/components/UnauthorizedView.js +4 -4
  1639. package/dist/next/index.js +21 -21
  1640. package/dist/next/middleware/chain.js +3 -3
  1641. package/dist/next/middleware/index.js +2 -2
  1642. package/dist/next/middleware/pii-scrubber.js +3 -3
  1643. package/dist/next/request-helpers.js +1 -1
  1644. package/dist/next/routing/route-map.d.ts +4 -0
  1645. package/dist/next/routing/route-map.js +9 -0
  1646. package/dist/providers/auth-firebase/helpers.js +5 -5
  1647. package/dist/providers/auth-firebase/index.js +3 -3
  1648. package/dist/providers/auth-firebase/provider.js +2 -2
  1649. package/dist/providers/auth-firebase/session.js +2 -2
  1650. package/dist/providers/db-firebase/admin-app-lite.js +1 -1
  1651. package/dist/providers/db-firebase/admin-auth-lite.js +1 -1
  1652. package/dist/providers/db-firebase/admin-storage-lite.js +1 -1
  1653. package/dist/providers/db-firebase/admin.js +2 -2
  1654. package/dist/providers/db-firebase/base.js +2 -2
  1655. package/dist/providers/db-firebase/base.repository.d.ts +54 -0
  1656. package/dist/providers/db-firebase/base.repository.js +119 -7
  1657. package/dist/providers/db-firebase/browser-stub.js +2 -2
  1658. package/dist/providers/db-firebase/index.js +12 -12
  1659. package/dist/providers/db-firebase/sieve.js +4 -4
  1660. package/dist/providers/email-resend/index.js +1 -1
  1661. package/dist/providers/firebase-client/index.js +2 -2
  1662. package/dist/providers/firebase-client/realtime.js +1 -1
  1663. package/dist/providers/payment-manual/index.js +1 -1
  1664. package/dist/providers/payment-phonepe/index.js +3 -3
  1665. package/dist/providers/shipping-manual/index.js +1 -1
  1666. package/dist/providers/storage-firebase/client.js +2 -2
  1667. package/dist/providers/storage-firebase/index.js +1 -1
  1668. package/dist/providers/storage-firebase/provider.js +4 -4
  1669. package/dist/providers.js +12 -12
  1670. package/dist/react/ErrorBoundary.js +3 -3
  1671. package/dist/react/contexts/SessionContext.js +6 -6
  1672. package/dist/react/contexts/index.js +1 -1
  1673. package/dist/react/hooks/use-action-dispatch.js +5 -5
  1674. package/dist/react/hooks/use-panel-url-sync.js +1 -1
  1675. package/dist/react/hooks/useAuthGate.js +3 -3
  1676. package/dist/react/hooks/useBreakpoint.js +1 -1
  1677. package/dist/react/hooks/useBulkAction.js +1 -1
  1678. package/dist/react/hooks/useCamera.js +1 -1
  1679. package/dist/react/hooks/useCanSeePrices.js +1 -1
  1680. package/dist/react/hooks/useEntityDelete.js +2 -2
  1681. package/dist/react/hooks/useFormStatePreservation.js +1 -1
  1682. package/dist/react/hooks/useInlineRowEdit.js +1 -1
  1683. package/dist/react/hooks/useListingTypeFlags.js +2 -2
  1684. package/dist/react/hooks/useMessage.js +1 -1
  1685. package/dist/react/hooks/usePendingFilters.js +1 -1
  1686. package/dist/react/hooks/usePendingTable.js +2 -2
  1687. package/dist/react/hooks/useRealtimeEvent.js +4 -4
  1688. package/dist/react/hooks/useTabParam.js +2 -2
  1689. package/dist/react/hooks/useUnsavedChanges.js +1 -1
  1690. package/dist/react/hooks/useUrlTable.js +2 -2
  1691. package/dist/react/index.js +28 -28
  1692. package/dist/repositories/index.d.ts +1 -1
  1693. package/dist/repositories/index.js +55 -51
  1694. package/dist/schemas/index.js +1 -1
  1695. package/dist/schemas/registry.d.ts +102 -102
  1696. package/dist/schemas/registry.js +44 -44
  1697. package/dist/security/authorization.js +3 -3
  1698. package/dist/security/browser.js +4 -4
  1699. package/dist/security/index.js +8 -8
  1700. package/dist/security/pii-encrypt.js +3 -3
  1701. package/dist/security/pii-redact.js +1 -1
  1702. package/dist/security/rate-limit.js +1 -1
  1703. package/dist/security/settings-encryption.js +1 -1
  1704. package/dist/seed/_helpers/brand-rows.js +2 -2
  1705. package/dist/seed/_helpers/category-forest.js +3 -3
  1706. package/dist/seed/_helpers/media.js +1 -1
  1707. package/dist/seed/_helpers/product-search-txt.js +1 -1
  1708. package/dist/seed/_helpers/search-txt-wrappers.js +1 -1
  1709. package/dist/seed/blog-posts-seed-data.js +2 -2
  1710. package/dist/seed/carousel-slides-seed-data.js +2 -2
  1711. package/dist/seed/cart-seed-data.js +2 -2
  1712. package/dist/seed/categories-seed-data.js +9 -9
  1713. package/dist/seed/claimed-coupons-seed-data.js +1 -1
  1714. package/dist/seed/coupons-seed-data.js +2 -2
  1715. package/dist/seed/defaults/categories.js +1 -1
  1716. package/dist/seed/defaults/faqs.js +2 -2
  1717. package/dist/seed/defaults/homepage-sections.js +2 -2
  1718. package/dist/seed/events-seed-data.js +3 -3
  1719. package/dist/seed/factories/address.factory.js +1 -1
  1720. package/dist/seed/factories/carousel.factory.js +1 -1
  1721. package/dist/seed/factories/order.factory.js +1 -1
  1722. package/dist/seed/factories/product.factory.js +2 -2
  1723. package/dist/seed/factories/store.factory.js +1 -1
  1724. package/dist/seed/factories/user.factory.js +2 -2
  1725. package/dist/seed/faq-seed-data.js +532 -3
  1726. package/dist/seed/grouped-listings-seed-data.js +1 -1
  1727. package/dist/seed/homepage-sections-seed-data.js +2 -2
  1728. package/dist/seed/index.d.ts +1 -0
  1729. package/dist/seed/index.js +75 -68
  1730. package/dist/seed/manifest.js +43 -43
  1731. package/dist/seed/notifications-seed-data.js +3 -3
  1732. package/dist/seed/offers-seed-data.js +2 -2
  1733. package/dist/seed/orders-seed-data.js +2 -2
  1734. package/dist/seed/payouts-seed-data.js +2 -2
  1735. package/dist/seed/product-features-seed-data.js +2 -2
  1736. package/dist/seed/products-art-seed-data.js +4 -4
  1737. package/dist/seed/products-auctions-seed-data.js +4 -4
  1738. package/dist/seed/products-classifieds-seed-data.js +5 -5
  1739. package/dist/seed/products-digital-codes-seed-data.js +5 -5
  1740. package/dist/seed/products-live-items-seed-data.js +5 -5
  1741. package/dist/seed/products-preorders-seed-data.js +4 -4
  1742. package/dist/seed/products-prize-draws-seed-data.js +5 -5
  1743. package/dist/seed/products-standard-seed-data.js +4 -4
  1744. package/dist/seed/products-stickers-seed-data.js +4 -4
  1745. package/dist/seed/reviews-seed-data.js +2 -2
  1746. package/dist/seed/runner.js +2 -2
  1747. package/dist/seed/scammers-seed-data.js +3 -3
  1748. package/dist/seed/seed-market-config.js +2 -2
  1749. package/dist/seed/seed-purpose.d.ts +200 -0
  1750. package/dist/seed/seed-purpose.js +265 -0
  1751. package/dist/seed/sessions-seed-data.js +2 -2
  1752. package/dist/seed/shipments-seed-data.js +1 -1
  1753. package/dist/seed/site-settings-seed-data.js +9 -3
  1754. package/dist/seed/store-addresses-seed-data.js +1 -1
  1755. package/dist/seed/store-extensions-seed-data.js +1 -1
  1756. package/dist/seed/stores-seed-data.js +3 -3
  1757. package/dist/seed/support-tickets-seed-data.js +2 -2
  1758. package/dist/seed/test-utils.js +8 -8
  1759. package/dist/seed/users-seed-data.js +4 -4
  1760. package/dist/seo/index.js +2 -2
  1761. package/dist/seo/json-ld.d.ts +62 -0
  1762. package/dist/seo/json-ld.js +78 -2
  1763. package/dist/seo/metadata.js +1 -1
  1764. package/dist/server-entry.js +78 -78
  1765. package/dist/server.d.ts +12 -2
  1766. package/dist/server.js +560 -544
  1767. package/dist/styles.css +767 -1
  1768. package/dist/tailwind-utilities.css +1 -1
  1769. package/dist/theme/index.js +2 -2
  1770. package/dist/tokens/index.js +1 -1
  1771. package/dist/tokens/themes/cobalt-night.js +1 -1
  1772. package/dist/tokens/themes/index.js +5 -5
  1773. package/dist/tokens/themes/sunset.js +1 -1
  1774. package/dist/ui/DataTable.js +12 -12
  1775. package/dist/ui/columns/cell-renderers.js +7 -7
  1776. package/dist/ui/columns/column-renderers.js +2 -2
  1777. package/dist/ui/columns/index.js +3 -3
  1778. package/dist/ui/components/Accordion.js +4 -4
  1779. package/dist/ui/components/ActionRow.js +1 -1
  1780. package/dist/ui/components/ActiveFilterChips.js +2 -2
  1781. package/dist/ui/components/Alert.js +2 -2
  1782. package/dist/ui/components/Anchor.js +1 -1
  1783. package/dist/ui/components/Avatar.js +1 -1
  1784. package/dist/ui/components/AvatarDisplay.js +1 -1
  1785. package/dist/ui/components/Badge.js +1 -1
  1786. package/dist/ui/components/BaseListingCard.js +2 -2
  1787. package/dist/ui/components/Breadcrumb.js +3 -3
  1788. package/dist/ui/components/BulkActionBar.js +2 -2
  1789. package/dist/ui/components/Button.js +4 -4
  1790. package/dist/ui/components/Card.js +2 -2
  1791. package/dist/ui/components/Checkbox.js +1 -1
  1792. package/dist/ui/components/ClaimCouponButton.js +6 -6
  1793. package/dist/ui/components/CollapsibleSection.js +5 -5
  1794. package/dist/ui/components/ConfirmDeleteModal.js +3 -3
  1795. package/dist/ui/components/CountdownDisplay.js +2 -2
  1796. package/dist/ui/components/DateInput.js +1 -1
  1797. package/dist/ui/components/DetailPageGallery.js +2 -2
  1798. package/dist/ui/components/DetailPageHero.js +3 -3
  1799. package/dist/ui/components/DetailPageTabs.js +2 -2
  1800. package/dist/ui/components/DetailViewShell.js +2 -2
  1801. package/dist/ui/components/Details.js +1 -1
  1802. package/dist/ui/components/Div.js +1 -1
  1803. package/dist/ui/components/Divider.js +1 -1
  1804. package/dist/ui/components/Drawer.js +4 -4
  1805. package/dist/ui/components/EmptyState.js +4 -4
  1806. package/dist/ui/components/FilePickerButton.js +1 -1
  1807. package/dist/ui/components/FilterChipGroup.js +2 -2
  1808. package/dist/ui/components/FilterDrawer.js +4 -4
  1809. package/dist/ui/components/FlowDiagram.js +2 -2
  1810. package/dist/ui/components/Form.js +4 -4
  1811. package/dist/ui/components/FormActionBar.js +3 -3
  1812. package/dist/ui/components/FormField.js +24 -6
  1813. package/dist/ui/components/GatedPrice.js +6 -6
  1814. package/dist/ui/components/HandModeRow.js +2 -2
  1815. package/dist/ui/components/Icon.js +1 -1
  1816. package/dist/ui/components/IconButton.js +1 -1
  1817. package/dist/ui/components/ImageGallery.js +6 -6
  1818. package/dist/ui/components/ImageLightbox.js +5 -5
  1819. package/dist/ui/components/Input.js +2 -2
  1820. package/dist/ui/components/ItemRow.js +3 -3
  1821. package/dist/ui/components/Layout.js +1 -1
  1822. package/dist/ui/components/ListingFilterDrawer.js +4 -4
  1823. package/dist/ui/components/ListingLayout.js +9 -9
  1824. package/dist/ui/components/ListingToolbar.js +5 -5
  1825. package/dist/ui/components/LoginRequiredModal.js +5 -5
  1826. package/dist/ui/components/Menu.js +1 -1
  1827. package/dist/ui/components/Modal.js +6 -6
  1828. package/dist/ui/components/Motion.js +1 -1
  1829. package/dist/ui/components/NavigationLoader.js +3 -3
  1830. package/dist/ui/components/OtpInput.js +1 -1
  1831. package/dist/ui/components/PageLoader.js +4 -4
  1832. package/dist/ui/components/PaginatedSelect.js +0 -0
  1833. package/dist/ui/components/Pagination.js +2 -2
  1834. package/dist/ui/components/PasswordStrengthIndicator.js +3 -3
  1835. package/dist/ui/components/PriceDisplay.js +1 -1
  1836. package/dist/ui/components/Progress.js +1 -1
  1837. package/dist/ui/components/QuantityStepper.js +3 -3
  1838. package/dist/ui/components/QuickCreateModal.js +5 -5
  1839. package/dist/ui/components/Radio.js +1 -1
  1840. package/dist/ui/components/RatingDisplay.js +2 -2
  1841. package/dist/ui/components/RecordDetailModal.js +2 -2
  1842. package/dist/ui/components/RoleBadge.js +1 -1
  1843. package/dist/ui/components/RowActionMenu.js +3 -3
  1844. package/dist/ui/components/Select.js +2 -2
  1845. package/dist/ui/components/Semantic.js +1 -1
  1846. package/dist/ui/components/SettingsSection.js +2 -2
  1847. package/dist/ui/components/SideDrawer.js +9 -9
  1848. package/dist/ui/components/SideModal.js +4 -4
  1849. package/dist/ui/components/SiteLogo.js +1 -1
  1850. package/dist/ui/components/SiteMark.js +1 -1
  1851. package/dist/ui/components/SkipToMain.js +1 -1
  1852. package/dist/ui/components/Slider.js +1 -1
  1853. package/dist/ui/components/SlottedListingView.js +2 -2
  1854. package/dist/ui/components/SortDropdown.js +3 -3
  1855. package/dist/ui/components/StackedViewShell.js +2 -2
  1856. package/dist/ui/components/StarRating.js +1 -1
  1857. package/dist/ui/components/StatsGrid.js +3 -3
  1858. package/dist/ui/components/StatusBadge.js +1 -1
  1859. package/dist/ui/components/StepperNav.js +3 -3
  1860. package/dist/ui/components/StickyToolbar.js +1 -1
  1861. package/dist/ui/components/SummaryCard.js +4 -4
  1862. package/dist/ui/components/TabBarShell.js +3 -3
  1863. package/dist/ui/components/TablePagination.js +4 -4
  1864. package/dist/ui/components/Tabs.js +1 -1
  1865. package/dist/ui/components/TagInput.js +1 -1
  1866. package/dist/ui/components/TextLink.js +2 -2
  1867. package/dist/ui/components/Textarea.js +1 -1
  1868. package/dist/ui/components/Toast.js +3 -3
  1869. package/dist/ui/components/Toggle.js +1 -1
  1870. package/dist/ui/components/Typography.js +2 -2
  1871. package/dist/ui/components/UnsavedChangesModal.js +5 -5
  1872. package/dist/ui/components/VacationBanner.js +3 -3
  1873. package/dist/ui/components/ViewToggle.js +2 -2
  1874. package/dist/ui/components/index.style.css +4 -0
  1875. package/dist/ui/components/surface-tokens.js +1 -1
  1876. package/dist/ui/components/toolbar-collapse.js +1 -1
  1877. package/dist/ui/forms/ColorPickerField.js +2 -2
  1878. package/dist/ui/forms/FieldCheckbox.js +3 -3
  1879. package/dist/ui/forms/FieldInput.js +3 -3
  1880. package/dist/ui/forms/FieldSelect.js +3 -3
  1881. package/dist/ui/forms/FieldTextarea.js +3 -3
  1882. package/dist/ui/forms/FormErrorList.js +2 -2
  1883. package/dist/ui/forms/FormErrorSummary.js +2 -2
  1884. package/dist/ui/forms/FormShell.js +1 -1
  1885. package/dist/ui/forms/index.js +9 -9
  1886. package/dist/ui/index.d.ts +0 -2
  1887. package/dist/ui/index.js +147 -127
  1888. package/dist/ui/rich-text/RichText.js +2 -2
  1889. package/dist/ui/rich-text/index.js +1 -1
  1890. package/dist/utils/action-response.js +2 -2
  1891. package/dist/utils/action-result.js +1 -1
  1892. package/dist/utils/auth-error.js +1 -1
  1893. package/dist/utils/client.js +1 -1
  1894. package/dist/utils/date.formatter.js +1 -1
  1895. package/dist/utils/id-generators.js +2 -2
  1896. package/dist/utils/index.js +19 -19
  1897. package/dist/utils/media-field.js +1 -1
  1898. package/dist/utils/media-url.js +2 -2
  1899. package/dist/utils/number.formatter.js +1 -1
  1900. package/dist/utils/physical-location.d.ts +68 -0
  1901. package/dist/utils/physical-location.js +82 -0
  1902. package/dist/utils/safe-fire-forget.js +2 -2
  1903. package/dist/utils/search-txt-builders.js +61 -1
  1904. package/dist/utils/search-txt-query.d.ts +54 -6
  1905. package/dist/utils/search-txt-query.js +79 -11
  1906. package/dist/utils/sieve-builder.js +1 -1
  1907. package/dist/utils/string.formatter.js +1 -1
  1908. package/dist/validation/ZodSetup.js +1 -1
  1909. package/dist/validation/index.js +8 -8
  1910. package/dist/validation/phone.validator.js +1 -1
  1911. package/dist/validation/schemas.d.ts +12 -12
  1912. package/dist/validation/schemas.js +1 -1
  1913. package/dist/validation/url.validator.js +1 -1
  1914. package/dist/values/index.js +1 -1
  1915. package/dist/vendor/react-advanced-cropper.css +406 -0
  1916. package/package.json +80 -4
  1917. package/scripts/copy-assets.mjs +53 -1
  1918. package/scripts/seed-cli.mjs +168 -7
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Where a return or an RTO physically goes โ€” C5g / C5h.
3
+ *
4
+ * ## ๐Ÿ›‘ The address is DERIVED, never typed
5
+ *
6
+ * `returnDestination()` in `../shipping/protections` decides warehouse-vs-seller
7
+ * from the add-on and the admin trust flag; this module turns that decision into
8
+ * the actual address string.
9
+ *
10
+ * A free-text `returnAddress` field a human fills in would be a second owner of
11
+ * a value we can compute, and the wrong one is a parcel lost โ€” which is a worse
12
+ * outcome than any of the drift this codebase usually pays for. So it is
13
+ * derived once, at approval, and then SNAPSHOTTED onto the order: an admin
14
+ * flipping `returnsDirectToSeller` while a parcel is in the post must not
15
+ * retroactively change where the buyer was told to send it.
16
+ */
17
+ /** Minimal shape โ€” whatever a store carries that could serve as a pickup point. */
18
+ export interface SellerReturnAddressSource {
19
+ storeName?: string;
20
+ /** The store's own pickup address, when it has one. */
21
+ pickupAddress?: string;
22
+ }
23
+ export type ReturnAddressResolution = {
24
+ kind: "warehouse";
25
+ address: string;
26
+ } | {
27
+ kind: "seller";
28
+ address: string;
29
+ }
30
+ /**
31
+ * ๐Ÿ›‘ The third outcome, and the reason this returns a union rather than a
32
+ * string.
33
+ *
34
+ * A seller-routed return whose store has no pickup address has NO
35
+ * destination, and `""` would be rendered to the buyer as a blank address
36
+ * block โ€” "post it to nowhere", with a success state. Measured 2026-10-11:
37
+ * `addresses` carries zero `ownerType:"store"` rows, so this is the common
38
+ * case today rather than a corner.
39
+ *
40
+ * The caller must refuse to approve the return and tell the seller to add a
41
+ * pickup address. It cannot accidentally hand out an empty one.
42
+ */
43
+ | {
44
+ kind: "unavailable";
45
+ reason: "seller-has-no-pickup-address" | "warehouse-not-configured";
46
+ };
47
+ export interface ResolveReturnAddressInput {
48
+ destination: "warehouse" | "seller";
49
+ /** `process.env.WAREHOUSE_ADDRESS` โ€” config, not a secret. */
50
+ warehouseAddress?: string;
51
+ seller?: SellerReturnAddressSource;
52
+ }
53
+ /**
54
+ * The address to show the buyer.
55
+ *
56
+ * ๐Ÿ›‘ `COMPANY_ADDRESS` is deliberately NOT consulted here, and must never
57
+ * become a fallback. It is a test fixture โ€” a known-good destination for the
58
+ * smoke script โ€” and substituting it for a missing warehouse or seller address
59
+ * would ship a real returned parcel to our own office while reporting success.
60
+ * That is the exact plausible-200 shape this plan keeps finding, and the
61
+ * tempting use is also the dangerous one.
62
+ */
63
+ export declare function resolveReturnAddress(input: ResolveReturnAddressInput): ReturnAddressResolution;
64
+ /**
65
+ * An RTO โ€” Return To Origin โ€” is the carrier sending a parcel back because it
66
+ * could not be delivered. Nobody asked for it.
67
+ *
68
+ * ๐Ÿ›‘ That is what makes it a THIRD path rather than a variant of a return: no
69
+ * claim exists, no return was approved, and it arrives whether or not anyone is
70
+ * expecting it. So it cannot reuse the custody chain's `requested`/`approved`
71
+ * states โ€” it enters at `received`, which is the first state that describes
72
+ * something physically present.
73
+ */
74
+ export declare const RTO_ENTRY_CUSTODY: "received";
75
+ export type RtoCostBearer = "platform" | "seller" | "buyer";
76
+ /**
77
+ * Who bears the RTO leg.
78
+ *
79
+ * ๐Ÿ›‘ **Us, either way**, and this is C5g-policy applied rather than re-decided.
80
+ * The common cause is a wrong or incomplete buyer address: charging the seller
81
+ * for a buyer's typo drives sellers off, and billing the buyer after the fact is
82
+ * uncollectable.
83
+ *
84
+ * But it is RECORDED rather than silently absorbed. An RTO has a real cost โ€”
85
+ * the carrier bills the return leg, and under escrow the buyer's shipping money
86
+ * is already spent on the forward leg, so it is a genuine new charge with
87
+ * nothing collected behind it. Absorbing it quietly is how a cost becomes
88
+ * invisible and then structural; `reason` is what makes it a line someone can
89
+ * total.
90
+ */
91
+ export declare function rtoCostBearer(): {
92
+ bearer: RtoCostBearer;
93
+ reason: string;
94
+ };
95
+ /**
96
+ * Scam-registry types an inspection finding can substantiate.
97
+ *
98
+ * ๐Ÿ›‘ All four ALREADY EXIST in `features/scams/constants/scam-types.ts` โ€”
99
+ * verified, not assumed. The registry anticipated this control before the
100
+ * control existed, so C5i adds no scam type.
101
+ *
102
+ * ๐Ÿ›‘ And inspection is BIDIRECTIONAL evidence, not a buyer-fraud filter. It is
103
+ * the only point in the flow where a human sees the actual item, which makes it
104
+ * the only place either party's pattern can be substantiated. A plan that
105
+ * framed it as buyer-abuse control would be using half of it โ€” so two of these
106
+ * four are seller-side.
107
+ */
108
+ export declare const RETURN_ABUSE_SCAM_TYPES: {
109
+ /** BUYER: returned a different item. Literally why we inspect. */
110
+ readonly returnSwap: "return_swap_fraud";
111
+ /** BUYER: serial no-questions-asked refunds. */
112
+ readonly claimAbuse: "chargeback_fraud";
113
+ /** SELLER: items that keep coming back as "not as described". */
114
+ readonly sellerMisrepresentation: "condition_misrepresentation";
115
+ /** SELLER: shipped nothing. */
116
+ readonly sellerEmptyBox: "empty_box_ship";
117
+ };
118
+ export type ReturnAbuseSignal = (typeof RETURN_ABUSE_SCAM_TYPES)[keyof typeof RETURN_ABUSE_SCAM_TYPES];
119
+ /**
120
+ * Thresholds at which a pattern is worth a human's attention.
121
+ *
122
+ * ๐Ÿ›‘ A threshold is a SIGNAL, not a verdict. Crossing one opens a
123
+ * `ReportDocument` for admin review; it does not deny a claim and it does not
124
+ * ban anyone. An automatic exclusion on a count would punish an unlucky buyer
125
+ * who received two genuinely bad items, and the registry's own entries are
126
+ * written as patterns to RECOGNISE rather than rules to fire.
127
+ */
128
+ export declare const RETURN_ABUSE_THRESHOLDS: {
129
+ /** Change-of-mind claims on a no-questions-asked cover, per buyer. */
130
+ readonly buyerChangeOfMindClaims: 3;
131
+ /** Genuine "not as described" findings against one seller. */
132
+ readonly sellerGenuineFindings: 3;
133
+ };
134
+ export interface ReturnAbuseCounters {
135
+ /** Protected change-of-mind claims by this buyer, pre-computed. */
136
+ buyerChangeOfMindClaims?: number;
137
+ /** Genuine findings against this seller, pre-computed. */
138
+ sellerGenuineFindings?: number;
139
+ }
140
+ /**
141
+ * Which signals this inspection substantiates.
142
+ *
143
+ * ๐Ÿ›‘ The counters are PRE-COMPUTED and passed in. "How many claims has this
144
+ * buyer made" is an unbounded per-request aggregation over orders โ€” the exact
145
+ * pattern that paused this project (Root Cause #104) โ€” so it rides the daily
146
+ * job as one more pass, the same lever as the price index and the pageViews
147
+ * rollup. This function must never query.
148
+ */
149
+ export declare function returnAbuseSignals(input: {
150
+ finding: "genuine" | "change-of-mind";
151
+ protectedSale: boolean;
152
+ /** True when inspection found a DIFFERENT item than the one sold. */
153
+ itemMismatch?: boolean;
154
+ /** True when inspection found an empty or itemless parcel. */
155
+ emptyParcel?: boolean;
156
+ counters?: ReturnAbuseCounters;
157
+ }): ReturnAbuseSignal[];
158
+ /**
159
+ * What enforcement actually is.
160
+ *
161
+ * ๐Ÿ›‘ Withdrawing FUTURE eligibility, never denying a live claim. The moment
162
+ * inspection can block a protected refund the promise is false, and we are back
163
+ * to a badge that means nothing. A buyer flagged for claim abuse keeps the
164
+ * marketplace and loses the cover they abused โ€” which composes with the
165
+ * existing soft-ban machinery (`BannedAction` is already a closed set) rather
166
+ * than extending it.
167
+ */
168
+ export declare function enforcementFor(signals: readonly ReturnAbuseSignal[]): {
169
+ deniesCurrentClaim: false;
170
+ withdrawsFutureSaleProtection: boolean;
171
+ opensReportForReview: boolean;
172
+ };
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Where a return or an RTO physically goes โ€” C5g / C5h.
3
+ *
4
+ * ## ๐Ÿ›‘ The address is DERIVED, never typed
5
+ *
6
+ * `returnDestination()` in `../shipping/protections` decides warehouse-vs-seller
7
+ * from the add-on and the admin trust flag; this module turns that decision into
8
+ * the actual address string.
9
+ *
10
+ * A free-text `returnAddress` field a human fills in would be a second owner of
11
+ * a value we can compute, and the wrong one is a parcel lost โ€” which is a worse
12
+ * outcome than any of the drift this codebase usually pays for. So it is
13
+ * derived once, at approval, and then SNAPSHOTTED onto the order: an admin
14
+ * flipping `returnsDirectToSeller` while a parcel is in the post must not
15
+ * retroactively change where the buyer was told to send it.
16
+ */
17
+ /**
18
+ * The address to show the buyer.
19
+ *
20
+ * ๐Ÿ›‘ `COMPANY_ADDRESS` is deliberately NOT consulted here, and must never
21
+ * become a fallback. It is a test fixture โ€” a known-good destination for the
22
+ * smoke script โ€” and substituting it for a missing warehouse or seller address
23
+ * would ship a real returned parcel to our own office while reporting success.
24
+ * That is the exact plausible-200 shape this plan keeps finding, and the
25
+ * tempting use is also the dangerous one.
26
+ */
27
+ export function resolveReturnAddress(input) {
28
+ if (input.destination === "warehouse") {
29
+ const w = (input.warehouseAddress ?? "").trim();
30
+ if (!w)
31
+ return { kind: "unavailable", reason: "warehouse-not-configured" };
32
+ return { kind: "warehouse", address: w };
33
+ }
34
+ const s = (input.seller?.pickupAddress ?? "").trim();
35
+ if (!s)
36
+ return { kind: "unavailable", reason: "seller-has-no-pickup-address" };
37
+ return { kind: "seller", address: s };
38
+ }
39
+ // โ”€โ”€ C5h: RTO โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
40
+ /**
41
+ * An RTO โ€” Return To Origin โ€” is the carrier sending a parcel back because it
42
+ * could not be delivered. Nobody asked for it.
43
+ *
44
+ * ๐Ÿ›‘ That is what makes it a THIRD path rather than a variant of a return: no
45
+ * claim exists, no return was approved, and it arrives whether or not anyone is
46
+ * expecting it. So it cannot reuse the custody chain's `requested`/`approved`
47
+ * states โ€” it enters at `received`, which is the first state that describes
48
+ * something physically present.
49
+ */
50
+ export const RTO_ENTRY_CUSTODY = "received";
51
+ /**
52
+ * Who bears the RTO leg.
53
+ *
54
+ * ๐Ÿ›‘ **Us, either way**, and this is C5g-policy applied rather than re-decided.
55
+ * The common cause is a wrong or incomplete buyer address: charging the seller
56
+ * for a buyer's typo drives sellers off, and billing the buyer after the fact is
57
+ * uncollectable.
58
+ *
59
+ * But it is RECORDED rather than silently absorbed. An RTO has a real cost โ€”
60
+ * the carrier bills the return leg, and under escrow the buyer's shipping money
61
+ * is already spent on the forward leg, so it is a genuine new charge with
62
+ * nothing collected behind it. Absorbing it quietly is how a cost becomes
63
+ * invisible and then structural; `reason` is what makes it a line someone can
64
+ * total.
65
+ */
66
+ export function rtoCostBearer() {
67
+ return {
68
+ bearer: "platform",
69
+ reason: "RTO legs are absorbed by the platform (C5g-policy): the usual cause is a " +
70
+ "wrong or incomplete delivery address, which is nobody's fault we can bill.",
71
+ };
72
+ }
73
+ // โ”€โ”€ C5i: abuse signal โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
74
+ /**
75
+ * Scam-registry types an inspection finding can substantiate.
76
+ *
77
+ * ๐Ÿ›‘ All four ALREADY EXIST in `features/scams/constants/scam-types.ts` โ€”
78
+ * verified, not assumed. The registry anticipated this control before the
79
+ * control existed, so C5i adds no scam type.
80
+ *
81
+ * ๐Ÿ›‘ And inspection is BIDIRECTIONAL evidence, not a buyer-fraud filter. It is
82
+ * the only point in the flow where a human sees the actual item, which makes it
83
+ * the only place either party's pattern can be substantiated. A plan that
84
+ * framed it as buyer-abuse control would be using half of it โ€” so two of these
85
+ * four are seller-side.
86
+ */
87
+ export const RETURN_ABUSE_SCAM_TYPES = {
88
+ /** BUYER: returned a different item. Literally why we inspect. */
89
+ returnSwap: "return_swap_fraud",
90
+ /** BUYER: serial no-questions-asked refunds. */
91
+ claimAbuse: "chargeback_fraud",
92
+ /** SELLER: items that keep coming back as "not as described". */
93
+ sellerMisrepresentation: "condition_misrepresentation",
94
+ /** SELLER: shipped nothing. */
95
+ sellerEmptyBox: "empty_box_ship",
96
+ };
97
+ /**
98
+ * Thresholds at which a pattern is worth a human's attention.
99
+ *
100
+ * ๐Ÿ›‘ A threshold is a SIGNAL, not a verdict. Crossing one opens a
101
+ * `ReportDocument` for admin review; it does not deny a claim and it does not
102
+ * ban anyone. An automatic exclusion on a count would punish an unlucky buyer
103
+ * who received two genuinely bad items, and the registry's own entries are
104
+ * written as patterns to RECOGNISE rather than rules to fire.
105
+ */
106
+ export const RETURN_ABUSE_THRESHOLDS = {
107
+ /** Change-of-mind claims on a no-questions-asked cover, per buyer. */
108
+ buyerChangeOfMindClaims: 3,
109
+ /** Genuine "not as described" findings against one seller. */
110
+ sellerGenuineFindings: 3,
111
+ };
112
+ /**
113
+ * Which signals this inspection substantiates.
114
+ *
115
+ * ๐Ÿ›‘ The counters are PRE-COMPUTED and passed in. "How many claims has this
116
+ * buyer made" is an unbounded per-request aggregation over orders โ€” the exact
117
+ * pattern that paused this project (Root Cause #104) โ€” so it rides the daily
118
+ * job as one more pass, the same lever as the price index and the pageViews
119
+ * rollup. This function must never query.
120
+ */
121
+ export function returnAbuseSignals(input) {
122
+ const out = [];
123
+ const c = input.counters ?? {};
124
+ // Buyer side. A swap is substantiated by the item itself, with no threshold โ€”
125
+ // one wrong item back is not a pattern, it is an act.
126
+ if (input.itemMismatch)
127
+ out.push(RETURN_ABUSE_SCAM_TYPES.returnSwap);
128
+ if (input.protectedSale &&
129
+ input.finding === "change-of-mind" &&
130
+ (c.buyerChangeOfMindClaims ?? 0) >= RETURN_ABUSE_THRESHOLDS.buyerChangeOfMindClaims) {
131
+ out.push(RETURN_ABUSE_SCAM_TYPES.claimAbuse);
132
+ }
133
+ // Seller side.
134
+ if (input.emptyParcel)
135
+ out.push(RETURN_ABUSE_SCAM_TYPES.sellerEmptyBox);
136
+ if (input.finding === "genuine" &&
137
+ (c.sellerGenuineFindings ?? 0) >= RETURN_ABUSE_THRESHOLDS.sellerGenuineFindings) {
138
+ out.push(RETURN_ABUSE_SCAM_TYPES.sellerMisrepresentation);
139
+ }
140
+ return out;
141
+ }
142
+ /**
143
+ * What enforcement actually is.
144
+ *
145
+ * ๐Ÿ›‘ Withdrawing FUTURE eligibility, never denying a live claim. The moment
146
+ * inspection can block a protected refund the promise is false, and we are back
147
+ * to a badge that means nothing. A buyer flagged for claim abuse keeps the
148
+ * marketplace and loses the cover they abused โ€” which composes with the
149
+ * existing soft-ban machinery (`BannedAction` is already a closed set) rather
150
+ * than extending it.
151
+ */
152
+ export function enforcementFor(signals) {
153
+ return {
154
+ deniesCurrentClaim: false,
155
+ withdrawsFutureSaleProtection: signals.includes(RETURN_ABUSE_SCAM_TYPES.claimAbuse),
156
+ opensReportForReview: signals.length > 0,
157
+ };
158
+ }
@@ -1,4 +1,4 @@
1
- import { NotFoundError, ConflictError, UnauthorizedError } from "../../errors/index";
1
+ import { NotFoundError, ConflictError, UnauthorizedError } from "../../errors/index.js";
2
2
  export class ReviewNotFoundError extends NotFoundError {
3
3
  constructor(id) {
4
4
  super("Review", id);
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
- import { mediaUrlSchema } from "../../../../validation/schemas";
3
- import { REVIEW_BODY_MAX_LENGTH, REVIEW_BODY_MIN_LENGTH, REVIEW_TITLE_MAX_LENGTH, REVIEW_MIN_RATING, REVIEW_MAX_RATING, REVIEW_IMAGES_MAX, REVIEW_REPLY_MAX_LENGTH, } from "./config";
2
+ import { mediaUrlSchema } from "../../../../validation/schemas.js";
3
+ import { REVIEW_BODY_MAX_LENGTH, REVIEW_BODY_MIN_LENGTH, REVIEW_TITLE_MAX_LENGTH, REVIEW_MIN_RATING, REVIEW_MAX_RATING, REVIEW_IMAGES_MAX, REVIEW_REPLY_MAX_LENGTH, } from "./config.js";
4
4
  export const createReviewSchema = z.object({
5
5
  productId: z.string().min(1),
6
6
  storeId: z.string().min(1),
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Courier ratings โ€” C5f. Two numbers, side by side, NEVER blended.
3
+ *
4
+ * ## ๐Ÿ›‘ The one rule
5
+ *
6
+ * The carrier's own rating (Shiprocket's, when a booking exists) and ours are
7
+ * shown separately and are never averaged into a third figure.
8
+ *
9
+ * Same discipline as market-vs-sold price and estimated-vs-actual parcel
10
+ * weight, and for the same reason in all three cases: **the gap is the
11
+ * information**. A courier Shiprocket rates 4.8 and our own buyers rate 4.1 is
12
+ * telling us something specific โ€” that the aggregate across their whole book of
13
+ * business does not describe our lanes, our parcels or our buyers. Averaging
14
+ * the two to 4.45 destroys exactly that signal and launders a vendor's number
15
+ * into one that looks like ours.
16
+ *
17
+ * ```
18
+ * Blue Dart Air Shiprocket 4.8โ˜… ยท LetItRip 4.5โ˜… (23) 1โ€“2 days โ‚น140
19
+ * Delhivery Surface Shiprocket 4.6โ˜… ยท not enough data yet 3โ€“5 days โ‚น60
20
+ * ```
21
+ *
22
+ * ## ๐Ÿ›‘ Below the threshold: "not enough data yet", never a number
23
+ *
24
+ * Identical rule to the price index, and it has to be, because a courier list
25
+ * is a choice made under time pressure: a 5.0 from one rating reads as better
26
+ * than a 4.6 from four hundred, and the reader has no way to know otherwise
27
+ * unless we decline to print it.
28
+ *
29
+ * ## What this module is NOT
30
+ *
31
+ * It does not query, it does not aggregate, and it does not fetch. The rollup
32
+ * runs as a pass in the existing daily job โ€” a new Cloud Scheduler job would be
33
+ * a real registered cost (ยง Firebase budget) for a number nobody reads hourly.
34
+ *
35
+ * ๐Ÿ›‘ And `aggregateRatingJsonLd` stays `Product`-typed and is deliberately NOT
36
+ * extended to cover this. A courier rating is operational feedback for a
37
+ * fulfilment choice, not a product review; marking it up invites a rich result
38
+ * for something we do not sell.
39
+ */
40
+ /**
41
+ * Below this, our own rating renders as a sample count and no star figure.
42
+ *
43
+ * Exported so the rollup, the projection and the view agree. A threshold one
44
+ * applied and another did not would either hide real data or publish an average
45
+ * of two votes as a reliability score.
46
+ */
47
+ export declare const COURIER_RATING_MIN_CONFIDENT_SAMPLES = 5;
48
+ /** One courier's two numbers, as a renderer receives them. */
49
+ export interface CourierRatingPair {
50
+ courierId: string;
51
+ name: string;
52
+ /**
53
+ * The carrier's own rating, passed through verbatim.
54
+ *
55
+ * ๐Ÿ›‘ Absent is not zero. A courier Shiprocket has not rated has no vendor
56
+ * figure, and rendering 0โ˜… would read as "rated terribly" rather than "not
57
+ * rated" โ€” the same distinction `undefined` vs `0` carries on every count in
58
+ * this codebase (Root Cause #72).
59
+ */
60
+ providerRating?: number;
61
+ /** Ours, from `courierStats/{courierId}`. Absent until anyone has rated. */
62
+ platformRating?: {
63
+ average: number;
64
+ count: number;
65
+ onTimeShare?: number;
66
+ };
67
+ }
68
+ export type CourierRatingDisplay = {
69
+ kind: "none";
70
+ label: string;
71
+ } | {
72
+ kind: "provider-only";
73
+ providerRating: number;
74
+ ourLabel: string;
75
+ } | {
76
+ kind: "ours-only";
77
+ average: number;
78
+ count: number;
79
+ } | {
80
+ kind: "both";
81
+ providerRating: number;
82
+ average: number;
83
+ count: number;
84
+ };
85
+ /**
86
+ * What to render for one courier.
87
+ *
88
+ * ๐Ÿ›‘ Returns a discriminated union rather than two optional numbers, because
89
+ * the four cases read differently and a renderer that has to decide will
90
+ * eventually print `0โ˜…` for one of them. The union makes "we have no rating"
91
+ * impossible to confuse with "we have a rating of zero".
92
+ */
93
+ export declare function courierRatingDisplay(pair: CourierRatingPair): CourierRatingDisplay;
94
+ /**
95
+ * ๐Ÿ›‘ There is deliberately NO `combinedRating()` in this module, and this
96
+ * comment is the enforcement.
97
+ *
98
+ * Every time a rating pair reaches a sort, a badge or a "best courier" pick,
99
+ * the cheapest-looking move is to average the two so there is one number to
100
+ * order by. Do not add it. If a single ordering is genuinely needed, order by
101
+ * OURS and fall back to the provider's โ€” stating which one you used โ€” because
102
+ * that is a choice a reader can evaluate, and a mean of two differently-sourced
103
+ * populations is not.
104
+ */
105
+ /** One vote. The document shape of `courierRatings`. */
106
+ export interface CourierRatingVote {
107
+ courierId: string;
108
+ orderId: string;
109
+ userId: string;
110
+ /** 1โ€“5. */
111
+ rating: number;
112
+ /** Did it arrive by the promised date? Tracked separately from the stars. */
113
+ onTime: boolean;
114
+ comment?: string;
115
+ }
116
+ /**
117
+ * Is this vote acceptable?
118
+ *
119
+ * ๐Ÿ›‘ One vote per user per ORDER, not per courier โ€” a buyer who used Blue Dart
120
+ * four times has four legitimate opinions, and collapsing them to one would
121
+ * weight a frequent buyer the same as a one-off. Idempotency is by document id
122
+ * (`{orderId}__{userId}`), reusing the precedent `ReviewDocument.helpfulVoterIds`
123
+ * already sets rather than inventing a second one.
124
+ */
125
+ export declare function isValidCourierVote(vote: Partial<CourierRatingVote>): boolean;
126
+ /** The deterministic id โ€” a re-vote overwrites rather than double-counting. */
127
+ export declare function courierVoteId(orderId: string, userId: string): string;
128
+ /** The rolled-up shape, written daily. */
129
+ export interface CourierStats {
130
+ courierId: string;
131
+ average: number;
132
+ count: number;
133
+ /** Share of votes reporting on-time delivery, 0โ€“1. */
134
+ onTimeShare: number;
135
+ computedAt: Date;
136
+ }
137
+ /**
138
+ * Roll a vote list into stats.
139
+ *
140
+ * Pure, so the daily job and any verification share one implementation.
141
+ * ๐Ÿ›‘ Returns `null` for an empty list rather than a zeroed record โ€” writing
142
+ * `average: 0, count: 0` would publish a courier as rated-zero, and a reader
143
+ * cannot tell that from a genuinely terrible courier.
144
+ */
145
+ export declare function rollUpCourierVotes(courierId: string, votes: readonly CourierRatingVote[], now: Date): CourierStats | null;
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Courier ratings โ€” C5f. Two numbers, side by side, NEVER blended.
3
+ *
4
+ * ## ๐Ÿ›‘ The one rule
5
+ *
6
+ * The carrier's own rating (Shiprocket's, when a booking exists) and ours are
7
+ * shown separately and are never averaged into a third figure.
8
+ *
9
+ * Same discipline as market-vs-sold price and estimated-vs-actual parcel
10
+ * weight, and for the same reason in all three cases: **the gap is the
11
+ * information**. A courier Shiprocket rates 4.8 and our own buyers rate 4.1 is
12
+ * telling us something specific โ€” that the aggregate across their whole book of
13
+ * business does not describe our lanes, our parcels or our buyers. Averaging
14
+ * the two to 4.45 destroys exactly that signal and launders a vendor's number
15
+ * into one that looks like ours.
16
+ *
17
+ * ```
18
+ * Blue Dart Air Shiprocket 4.8โ˜… ยท LetItRip 4.5โ˜… (23) 1โ€“2 days โ‚น140
19
+ * Delhivery Surface Shiprocket 4.6โ˜… ยท not enough data yet 3โ€“5 days โ‚น60
20
+ * ```
21
+ *
22
+ * ## ๐Ÿ›‘ Below the threshold: "not enough data yet", never a number
23
+ *
24
+ * Identical rule to the price index, and it has to be, because a courier list
25
+ * is a choice made under time pressure: a 5.0 from one rating reads as better
26
+ * than a 4.6 from four hundred, and the reader has no way to know otherwise
27
+ * unless we decline to print it.
28
+ *
29
+ * ## What this module is NOT
30
+ *
31
+ * It does not query, it does not aggregate, and it does not fetch. The rollup
32
+ * runs as a pass in the existing daily job โ€” a new Cloud Scheduler job would be
33
+ * a real registered cost (ยง Firebase budget) for a number nobody reads hourly.
34
+ *
35
+ * ๐Ÿ›‘ And `aggregateRatingJsonLd` stays `Product`-typed and is deliberately NOT
36
+ * extended to cover this. A courier rating is operational feedback for a
37
+ * fulfilment choice, not a product review; marking it up invites a rich result
38
+ * for something we do not sell.
39
+ */
40
+ /**
41
+ * Below this, our own rating renders as a sample count and no star figure.
42
+ *
43
+ * Exported so the rollup, the projection and the view agree. A threshold one
44
+ * applied and another did not would either hide real data or publish an average
45
+ * of two votes as a reliability score.
46
+ */
47
+ export const COURIER_RATING_MIN_CONFIDENT_SAMPLES = 5;
48
+ /**
49
+ * What to render for one courier.
50
+ *
51
+ * ๐Ÿ›‘ Returns a discriminated union rather than two optional numbers, because
52
+ * the four cases read differently and a renderer that has to decide will
53
+ * eventually print `0โ˜…` for one of them. The union makes "we have no rating"
54
+ * impossible to confuse with "we have a rating of zero".
55
+ */
56
+ export function courierRatingDisplay(pair) {
57
+ const provider = typeof pair.providerRating === "number" && pair.providerRating > 0
58
+ ? pair.providerRating
59
+ : undefined;
60
+ const ours = pair.platformRating && pair.platformRating.count >= COURIER_RATING_MIN_CONFIDENT_SAMPLES
61
+ ? pair.platformRating
62
+ : undefined;
63
+ if (provider != null && ours) {
64
+ return { kind: "both", providerRating: provider, average: ours.average, count: ours.count };
65
+ }
66
+ if (provider != null) {
67
+ return { kind: "provider-only", providerRating: provider, ourLabel: "not enough data yet" };
68
+ }
69
+ if (ours)
70
+ return { kind: "ours-only", average: ours.average, count: ours.count };
71
+ return { kind: "none", label: "not rated yet" };
72
+ }
73
+ /**
74
+ * Is this vote acceptable?
75
+ *
76
+ * ๐Ÿ›‘ One vote per user per ORDER, not per courier โ€” a buyer who used Blue Dart
77
+ * four times has four legitimate opinions, and collapsing them to one would
78
+ * weight a frequent buyer the same as a one-off. Idempotency is by document id
79
+ * (`{orderId}__{userId}`), reusing the precedent `ReviewDocument.helpfulVoterIds`
80
+ * already sets rather than inventing a second one.
81
+ */
82
+ export function isValidCourierVote(vote) {
83
+ if (!vote.courierId || !vote.orderId || !vote.userId)
84
+ return false;
85
+ if (typeof vote.rating !== "number" || !Number.isInteger(vote.rating))
86
+ return false;
87
+ return vote.rating >= 1 && vote.rating <= 5;
88
+ }
89
+ /** The deterministic id โ€” a re-vote overwrites rather than double-counting. */
90
+ export function courierVoteId(orderId, userId) {
91
+ return `${orderId}__${userId}`;
92
+ }
93
+ /**
94
+ * Roll a vote list into stats.
95
+ *
96
+ * Pure, so the daily job and any verification share one implementation.
97
+ * ๐Ÿ›‘ Returns `null` for an empty list rather than a zeroed record โ€” writing
98
+ * `average: 0, count: 0` would publish a courier as rated-zero, and a reader
99
+ * cannot tell that from a genuinely terrible courier.
100
+ */
101
+ export function rollUpCourierVotes(courierId, votes, now) {
102
+ const valid = votes.filter((v) => isValidCourierVote(v));
103
+ if (valid.length === 0)
104
+ return null;
105
+ const sum = valid.reduce((s, v) => s + v.rating, 0);
106
+ const onTime = valid.filter((v) => v.onTime).length;
107
+ return {
108
+ courierId,
109
+ average: Math.round((sum / valid.length) * 100) / 100,
110
+ count: valid.length,
111
+ onTimeShare: Math.round((onTime / valid.length) * 100) / 100,
112
+ computedAt: now,
113
+ };
114
+ }